C言語 Advent Calendar 2019 - Day 4

ふうせん🎈 Fu-sen. と申します。

#include <stdio.h>

main()
{
  printf("Hello World\n");
}

この C 言語 hello.c を、これで実行してみます。

PC-E200

シャープのポケットコンピュータ PC-E200 です。😲😆😊

PC-E200 は Z80 互換 CPU を持っています。
同時に PC-E500 という機種も発売されているのですが、
PC-G シリーズとして学校教育向けにも作られ、
こちらが最後まで残りました。
2009年発売の PC-G850VS が最後に発売されているポケットコンピュータです。
ちょうど 10 年前になりますね。

ああ、ポケコンのサイトを運営しているんですよ。
2003 年からなので、16 年になりますね~ 😆😲😁

さて、C 言語の話に戻りましょう。CPU は Z80 系。
このためにクロス開発できる環境があるんです。

嬉しい事に、ちゃんと GitHub にリポジトリがあります。

最新情報の Wiki も GitHub 内で構築されてきています。
この中に Paltform として対応機種があります。

https://github.com/z88dk/z88dk/wiki/Platform

この中に…… Sharp PC-G8xx, PC-E2xx。はい、ありました。

https://github.com/z88dk/z88dk/wiki/Platform---Sharp-PC

Command Line に書いてあるとおり、実行してみれば良いんですね。
hello.c で保存してました。

zcc +g800 -create-app hello.c

最終的に a.ihx が作られます。
(-bn ファイル名 として出力ファイル名を指定できます)
これをポケコンに転送します。ケーブルが必要ですが……

自作ケーブル

今や容易に自作できるんですね~~~!

パソコンとポケコンを接続

こんな感じに接続します。転送ツールもあります。
今回はフリーソフトで公開されている PCGtool を使用しました。
接続している COM ポート、ボーレートはポケコン側に合わせます。
PC-E200 だと最大 4800bps です。
(TEXT キー → Sio → Format から設定できます)

PCGtool

まずポケコンで MON を実行し、マシン語モニタにします。
続いて R で受信し、パソコン側から送信します。

受信完了

受信したアドレスが「INFO:~」で表示されました。
見やすいように CLS ボタンで画面をクリアし、
開始番号は 100 番地からなので、G100 で実行します。

G100 を入力

Hello World が表示された

Hello World が表示されました! やった~~~! 😄

エミュレータ g800

まぁ、わざわざポケコン実機でなくても、
エミュレータ g800 がありまして、パソコン上で実行できるのですが…… 😅

PC-G850V

PC-G850V(最終 PC-G850VS より一つ前の機種)も手元にあります。
同じ手順で実行できるのですが、この機種は C 言語を内蔵しているので、
念の為、C 言語が内蔵していない PC-E200 にしてみました。
とはいってもこのポケコンの C 言語は BASIC のような行番組付なのですが…… 😅😅😅

z88dk 関連はこのブログで過去にも話題にしていますので、
カテゴリー・タブの z88dk を参照してみて下さい。


z88dk は Z80 が動作する幅広い機種に対応しています。

MSX で Hello World

MSX もこんな感じで実行できます。
他にも MZ-80/MZ-700、MZ-2500、PC-6001/6601、PC-8801、SG-1000/SC-3000、X1、……

同じように 6502 関連の環境向けに使えるクロス環境 cc65 も存在します。
PC エンジン、ファミコン、Commodore 64、Atari 2600/5200 などに対応しています。

こちらも GitHub プロジェクトがあり、事実上こちらが更新されている状態。
公式サイトは別途独自ドメインによる運営があるのですが、
そちらは更新されていませんので、ご注意下さい。

もし 1970~80 年代の環境が手元に残っていましたら、
C 言語を使ってまた動かしてみませんか?


C言語 Advent Calendar 2019

C言語 Advent Calendar 2019 | Qiita