2008年01月09日

2008年01月09日:Z80 のプログラミング

 高木浩光さん、「古い手書きメモが出てきた」。Z80 命令表とか I/O 誌とか PCG とか、ああ懐かしい。たぶん同じ頃に僕は MZ-80B でプログラミングをしていた(ハードは全くやらずソフトだけだったあたりが軟弱だが)。10H が DJNZ, 18H が JR, 01H, 11H, 21H が LD BC/DE/HL,nn, C3H が JP, CDH が CALL, ... なんかは今でも覚えている。DDH と FDH が IX, IY 関係の拡張命令でしたかね。ハードをやらないのもあって僕は I/O でなく ASCII 誌をもっぱら愛読していた。掲載ソフトはほとんど PC-8001 用だったので、一生懸命移植したり自分で作ったりしていた。ゲームもやったけど、印象深いのはこんなソフトたちだなあ。

  • スクリーンエディタ:確かオリジナルは MZ-80K 用だったと思う。行指向ではなく完全なスクリーンエディタで、しかもメモリ管理がスマートで非常に高速だった。かなり早い時期に移植して、ずっと愛用していた。
  • Z80 アセンブラ:ディスアセンブラはわりと早くに手に入れていたのだが、ハンドアセンブルはしんどくてどうしてもアセンブラが欲しかった。ザイログ表記のアセンブラって作るの難しいんだよね。PC-8001 用に掲載されたものを打ち込んで、解析しながら頑張って移植した。PC-8001 の ROM をコールしているところはどうしようもないので、前後の文脈から機能を推測した。ちなみに、MZ-80B は全回路図とモニタプログラムのアセンブリリストが本体に付属していたんです。あれはものすごく勉強になった。
  • BASIC 拡張:MZ-80 シリーズは BASIC を起動時にカセットからロードするので、起動時間はかかるけど、改造の自由度が非常に高かった。付属の BASIC は IF 文に ELSE がないとか RENUMBER コマンドがないとか、N-BASIC にくらべて大きく見劣りしていたので、そのへんの機能をちょこちょこ拡張していた。ちなみに、Hu-BASIC 等には目もくれなかった。自分で作ることに意味があると思っていたから。お子様ですね。(←今でもあまり変わってない)
  • 自作 DOS:CP/M にも手を出していたのだが、BASIC とディスクフォーマットが違うのが面倒だったので、BASIC のディスク操作コマンドとフォーマット互換の簡易 DOS を作ろうと計画した。一応自力でブートするところまでできたんじゃなかったかな。もう実機もフロッピーも捨ててしまって証拠がないので何とでも言えますが。

 その後 X1 turbo(あまり活躍せず)、X68000(むちゃくちゃ使い倒した)と移ろった後 Mac の世界に入って現在に至っております。

Posted at 2008年01月09日 02:13:41
email.png