2017-10-14 16:04 — asano
ハードウェア編に続きまして、今回はソフトウェア編です。
トレーニングキットの時代は回路図同様にソフトウェアについてもオープンなものが多かったと思います。
ソフトウェアといってもメモリの内容を表示・変更したりプログラムの実行ができるモニタ等ですが、これのソースコードがマニュアルに掲載されていたりするわけです。これもサンプルとしての意味が大きいからでしょう。オブジェクトのサイズも数kB以下ですから量的にも大したことはありません。
BASICインタープリタをROM搭載したいわゆるパソコンになると状況が変わりました。シャープのようにモニタのソースコードのマニュアルへの掲載を続けたところもありますが、BASIC自体となるとそうはいきません。
- マイクロソフト等の社外開発のものが多く勝手に公開できない
- サイズも小さなものでも10kB以上と大きくなり紙面的にも難しい
- ユーザ層としても必要としない人が増えた
といった事情からソースコードの公開は困難になります。
一方でROMの中には「画面に1文字表示する」といったアセンブリ言語でプログラムを書く際に便利なルーチンが含まれています。ソースコードに替わってこれらルーチンのアドレスと使い方(パラメータの渡し方や破壊されるレジスタ等)が公開されるようになります。
PC-8001mk2のマニュアルには1文字表示・キーから1文字入力(待つのと待たないもの)・プリンタへ1文字出力・文字列表示・BASICまたはモニタへ戻るためのアドレスが掲載されています。
またユーザによる解析もおこなわれてしばしば雑誌等に掲載され、I/Oポートマップ・ROM内のエントリポイントやテーブルのアドレス・RAM上のワークエリアといった情報が公然の秘密となっていました。
事件もありました。秀和システムトレーディング(当時)が「PC-8001 BASIC SOURCE PROGRAM LISTING」という本を出版したのですが、これが何とPC-8001のROMを全部逆アセンブルして注釈をつけたというもの。確かマイクロソフトと裁判沙汰になって負けたはずです。
一方で「PC-Techknow8000mkII」にもROMのダンプリストが掲載されていましたが、こちらは訴えられたという話は聞いていません。この違いはどこなのでしょう?
CP/MやMS-DOSなどが使われるようになるとこのような情報は減ってきました。公開のAPI (当時はまだ「API」とは呼ばなかったと思います)が充実してきたことや、互換性を気にするようになってきたためでしょうか。それまでのROMと違い、バージョンアップが容易になったので情報の旬の期間が短くなったということもあるかもしれません。
コメントを追加