80系プログラムの開発  

 

8085やZ80の最大64KバイトのメモリでWindowsのようなOSやOfficeのようなアプリケーションは動かない。当時のホビイストにならい、モニタを自作し、タイニーBASICを移植する。開発環境はおもにCP/Mで、まず8085で動かし、Z80に移植する。8085もZ80も8080としてしか使えないが、悪い、勘弁してくれ。


【開発環境】
8085やZ80などいわゆる80系のCPUのプログラムの開発環境はこれらのOSとして1976年からあと広く普及したデジタルリサーチ社のCP/Mがたいへん優れている。開発ツールの一式が付属するし、プログラムの作りかたをとやかくいわないし、きわめつけにいまは事実上のフリーウェアとなっていてタダで手に入る。問題はもうCP/Mを動かせるコンピュータがないことだが、かわりにWindows XPで動くCP/Mエミュレータがある。これらの配布もとを下に示す。


プログラム

動作環境

配布もと
CP/Mエミュレータ Win95-XP CP/M program EXEcutor for Win32
Mac OS CP/M Emulator
本物のCP/M - The Unofficial CP/M Web site

CP/Mでは周辺装置の制御をBDOSが実現している。CP/Mのプログラムは仮想BDOSとでもいうべきものを組み込むことで自作のコンピュータに簡単に移植できる、というかそのまま動く。したがってプログラムはまずCP/Mで動かすことに全力をあげ、のちほど仮想BDOSを作って 追加し、ごっそり移植する。


【CP/M版8080アセンブラ付きモニタ】
モニタは端末機の簡単な操作とメモリの読み書きができればいいと思っていたが、だんだん欲が出て8080アセンブラまで付けることになり、アセンブリ言語では書ききれなくなってC言語で書いた。Cコンパイラは以前ニフティ・サーブの
Future Forumで配布していたSmall-Cを使った。これはもう配布されていないので、うちのカビくさいフロッピーにあったものを再配布する。実は、一部の文書ファイルが破損していて修正したとき末尾が消えてしまった のだが、プログラムの本体や大切なマニュアルは残っているから問題はないと思う。


プログラム

動作環境

配布もと
Cコンパイラ CP/M Small-C Future Forum版Version3.0

プログラム 内容 開発言語 配布ファイル 詳細
モニタ CP/M版 Small-C/ASM MON80.zip 詳細
Small-C/XZ80 MON80Z.zip 詳細

【CP/M版タイニーBASIC】
タイニーBASICはCP/M EmulatorのサンプルプログラムTB.ASMを改編した。ソースの感じからもとは東大版タイニーBASICで、そのもとはパロアルト版タイニーBASICだと思う。TB.ASMは一部にマクロを使っており、CP/MのASMではアセンブルできない ためMACでアセンブルした。MACはCP/Mの時代に別売りだったマクロアセンブラで
、現在はやはり無料で配布されている。


プログラム

動作環境

配布もと
MAC.COM CP/M The Unofficial CP/M Web site

プログラム 内容 開発言語 配布ファイル 詳細
タイニーBASIC CP/M版 MAC TBCPM.zip 詳細
XZ80 TBZCPM.zip 詳細

【8085への移植】
CP/Mのもとで開発し、動作確認したプログラムに8085用仮想BDOSを組み込み、自作の8085のコンピュータで動かした。本物のBDOSは41の機能をもつが自作のコンピュータは周辺装置がシリアルインタフェースしかないから仮想BDOSはせいぜい7くらいの機能を作ればいい。これならゲイリー・キルドールでなくたって作れる。アセンブリ言語で書いてASMでアセンブルした。


プログラム 内容 開発言語 配布ファイル 詳細
モニタ 8085版 Small-C/ASM MON80I85.zip 詳細
タイニーBASIC 8085版 MAC TB85.zip 詳細

【Z80(AKI-80)への移植】
CP/Mのプログラムを自作したZ80のコンピュータで動かすにはただZ80用仮想BDOSを組み込むだけでいいし、それはもうちゃんと動いている8085用仮想BDOSの一部を修正すればいい。Z80の独自の命令はMACがアセンブルしてくれる のだハッハッハと考えていたらなぜかMACがうまく動作してくれない。しかたがないので、8085のアセンブリ言語のソースをTOZでZ80のアセンブリ言語に変換し、改編してXZ80でアセンブルした。いずれもDOSのプログラムで、開発環境は一気に10年進んだ。10年進んでもまだDOSなのである。


プログラム

動作環境

配布もと
ソースコンバータ MS-DOS TOZ-8085(8080)→Z80
アセンブラ(含XZ80) MS-DOS アークピット

プログラム 内容 開発言語 配布ファイル 詳細
モニタ Z80(AKI-80)版 Small-C/XZ80 MON80Z80.zip 詳細
タイニーBASIC Z80(AKI-80)版 XZ80 TBZ80.zip 詳細

【ROMの書き込み】
完成したプログラムはインテルHEXフォーマットで拡張子.HEXのファイルに記録されている。これをROMライターでROMに書き込み、自作のコンピュータに取り付けて動かす。ROMは27256タイプのEPROMで、アクセスタイムは、8085は何でもいいがZ80(AKI-80)はが100n秒より高速でなければならない。ROMライター は案外いい値段する。左の写真は秋月電子通商で販売しているLEAPER-3Cで、激安だが16,000円 。


【端末機の接続】
自作のコンピュータにはシリアルインタフェースがあり、ここに適当な端末機を接続して操作する。端末機は何でもいいが、たぶん、IBM PC/AT互換機を接続し、Windowsのハイパーターミナルで操作することになると思う。端末機との入出力は仮想BDOSがやっているため、ハイパーターミナルの接続の設定は8080アセンブラ付きモニタもタイニーBASICとも同じで、次のようになる。


項目 設定
シリアルポート 接続に使っているシリアルポート(たぶんCOM1)
通信速度 9,600bps
データ長 8ビット
パリティビット なし
ストップビット 1
フロー制御 Xon/Xoff