2022/10/18(火) [n年前の日記]
#1 [mz][z80] X1やMZ-2000のモニタについて調べてる
X1エミュレータ上で、標準版 S-OS SWORD のバイナリが起動しない件についてまだ調べている。Huモニタなるものが無いと起動しないのではないか、というところまでは分かってきたけど、それって本当なのかなと気になったので…。
S-OS SWORD の前身となった S-OS MACE ではどうだったのだろうとググっていたら、MZ-2000版 S-OS MACE について気になる一文を見かけた。
_S-OS "MACE"
MZ-1Z001M、とな…。それは一体なんですか?
_MZ型番考
MZ-1Z001M は「モニタ」と呼ばれるプログラムらしい。
モニタって…何? ディスプレイのことを _モニター って言ったりするけれど、それとは関係ありますか?
例えば、MZ-700の電源をONにした時に立ち上がってくる 1Z-009A というプログラムがあるけれど、それは「ROMモニタ」と呼ばれていたらしい。ROMに入ってるから、ROMモニタ。つまり、「モニタ」とは「ROMに入ってないモニタ」のことだろうなと。
ROMに入ってないなら、どこに入ってるんだよ? やっぱり、ストレージの類、カセットテープやフロッピーディスク(以下FDと記述)の中に入ってたんじゃないかな…。他に入れられそうなブツは無いし…。
MZ-700 のROMモニタでどんなことができるのかを思い浮かべると、おそらくここでモニタと呼ばれているものは…。
要するに…。「当時、PCで、『対話的に』マシン語/機械語を扱える状態にするためのプログラムが、モニタと呼ばれいてた」 ―― ということじゃないかなと。たぶん。おそらく。
ところで、最初のあたりで「IPL」という単語が出てきたけれど、それって一体なんだろう? モニタとは違うものなの?
_MZ-2000 - Wikipedia
IPL は、Initial Program Loader の略だったららしい。
つまり…。
では、MZ-2000 のモニタプログラム、MZ-1Z001M は、どうやって入手していたのだろう。単体販売されていたのかな?
BASIC や PASCAL などの、システムソフトウェアと呼ばれるジャンルのプログラム群に含まれていた、とある。
_S-BASIC (MZ-1Z001) Reference Manual
BASIC をロードすると、モニタ MZ-1Z001M も一緒にロードされた状態になっていたらしい。そして、mon と打つと、モニタに切り替わる。更に、$1300 にジャンプすれば BASIC に戻れた、とある。となると、そのモニタとやらは、$1300 より前のメモリ領域に格納されていた可能性が高そうだなと…。
MZ-80B/2000/2200版 S-OS SWORD のメモリマップを確認してみたけれど、SWORD自体は $1300 から格納される模様。となると、モニタ MZ-1Z001M は、$0000 - $12FFH に入ってたプログラムなのだろう…。
X1についても調べてみた。
_X1 (コンピュータ) - Wikipedia
ここでも IPL と言ってるから、MZ-2000 と同様の仕組みらしい。
_X1型番考
おそらくだけど、Huモニタと呼ばれるものは、これらのBASICに含まれていたのだろう。そして、mon と打ち込むとモニタモードに切り替わる。更に、例えば X1用の S-OS SWORD は $1500 から始まっているから、Huモニタとやらは $0000 - $14FF に入っているのではあるまいか。
つまり、標準版の X1用S-OS、MZ-2000用S-OS は…。
ということで、「X1 や MZ-2000 で標準版の S-OS を使いたかったら BASIC が必要ですよ」「BASIC の中に入ってるモニタを利用しますので」ということで間違いなさそう。
MZ-700 は ROMにモニタが入ってるんで、いきなり S-OS を読み込んで使うことができたのだな。しかし、X1 や MZ-2000 はそうじゃないよ、ROM に IPL は入ってるけど、それだけじゃ足りないよ、別途モニタが必要だよ、と…。
そして、そのモニタとやらは、今となっては正規に入手する術がない。CP/Mあたりと比べると、日本のレトロPCって不自由…。
S-OS SWORD の前身となった S-OS MACE ではどうだったのだろうとググっていたら、MZ-2000版 S-OS MACE について気になる一文を見かけた。
_S-OS "MACE"
IPL起動は出来ず、MZ-1Z001Mが必要だった。S-OS "MACE" より
MZ-1Z001M、とな…。それは一体なんですか?
_MZ型番考
MZ-1Z001 MZ-2000/2200 BASIC
MZ-1Z001M MZ-2000/2200 モニタ
MZ-1Z002 MZ-2000/2200 カラーBASIC
MZ-1Z003 MZ-2000/2200 倍精度BASICMZ型番考 より
MZ-1Z001M は「モニタ」と呼ばれるプログラムらしい。
モニタって…何? ディスプレイのことを _モニター って言ったりするけれど、それとは関係ありますか?
MZ-1Z009A MZ-700 ROMモニタ
MZ-1Z009B MZ-1500 ROMモニタMZ型番考 より
例えば、MZ-700の電源をONにした時に立ち上がってくる 1Z-009A というプログラムがあるけれど、それは「ROMモニタ」と呼ばれていたらしい。ROMに入ってるから、ROMモニタ。つまり、「モニタ」とは「ROMに入ってないモニタ」のことだろうなと。
ROMに入ってないなら、どこに入ってるんだよ? やっぱり、ストレージの類、カセットテープやフロッピーディスク(以下FDと記述)の中に入ってたんじゃないかな…。他に入れられそうなブツは無いし…。
MZ-700 のROMモニタでどんなことができるのかを思い浮かべると、おそらくここでモニタと呼ばれているものは…。
- 対話的に、マシン語/機械語を入力したり。
- メモリ内容を、カセットテープやFDにセーブ(保存)したり。
- テープやFDから、マシン語/機械語のバイナリを、メモリにロードしたり。
要するに…。「当時、PCで、『対話的に』マシン語/機械語を扱える状態にするためのプログラムが、モニタと呼ばれいてた」 ―― ということじゃないかなと。たぶん。おそらく。
ところで、最初のあたりで「IPL」という単語が出てきたけれど、それって一体なんだろう? モニタとは違うものなの?
_MZ-2000 - Wikipedia
MZ-80Bの同様、MZ-2000ではInitial Program LoaderのみがROMに書き込まれており、CMT、FD、特定のメモリからの起動をサポートする。
IPL は、Initial Program Loader の略だったららしい。
つまり…。
- IPLは、マシン語/機械語を扱える状態にするわけではなくて、あくまでロード処理しかやってくれない。
- マシン語/機械語を入力したり、テープやFDに保存したりしたいなら、IPL を通じて、モニタをロードしないといけない。
では、MZ-2000 のモニタプログラム、MZ-1Z001M は、どうやって入手していたのだろう。単体販売されていたのかな?
システムソフトウェア
型番のハイフンの次が1で始まるものはカセットテープ、2で始まるものはフロッピーディスクによる供給である。 その多くが、モニタMZ-1Z001Mを含み、標準から拡張されている部分はBASIC本体で直接サポートされるため、データレコーダなしでバイナリを取り扱うことには制限があった。
BASIC や PASCAL などの、システムソフトウェアと呼ばれるジャンルのプログラム群に含まれていた、とある。
_S-BASIC (MZ-1Z001) Reference Manual
MON : 機械語モニタ(メモリを直接いじれる簡易エディタ あるいは 超機能限定版デバッガ のようなもの。 昔のパソコンには大抵ついていた。)に入る。モニタからBASICに戻るには J コマンドで $1300 にジャンプ。
BASIC をロードすると、モニタ MZ-1Z001M も一緒にロードされた状態になっていたらしい。そして、mon と打つと、モニタに切り替わる。更に、$1300 にジャンプすれば BASIC に戻れた、とある。となると、そのモニタとやらは、$1300 より前のメモリ領域に格納されていた可能性が高そうだなと…。
MZ-80B/2000/2200版 S-OS SWORD のメモリマップを確認してみたけれど、SWORD自体は $1300 から格納される模様。となると、モニタ MZ-1Z001M は、$0000 - $12FFH に入ってたプログラムなのだろう…。
X1についても調べてみた。
_X1 (コンピュータ) - Wikipedia
電源投入直後、最初にIPL (Initial Program Loader) が起動し、FDD、拡張ROMボード、CMTの順にブートを試みる。
ここでも IPL と言ってるから、MZ-2000 と同様の仕組みらしい。
_X1型番考
CZ-8CB01 : テープBASIC
CZ-8FB01 : ディスクBASIC, 5インチ、BASICそのものの型番でもある
CZ-8FB02 : turbo BASIC
CZ-8FB03 : Z-BASIC
CZ-8RB : ROM BASIC
CZ-8W301 : ディスクBASIC, 3インチ
CZ-8WB51 : X1ターボBASIC
CZ-112SF : NEW BASIC, カセット版
CZ-113SF : 3インチ版、当初5インチ版も同梱の予定だったらしい
CZ-124SF : NEW BASIC, 5インチ版X1型番考 より
おそらくだけど、Huモニタと呼ばれるものは、これらのBASICに含まれていたのだろう。そして、mon と打ち込むとモニタモードに切り替わる。更に、例えば X1用の S-OS SWORD は $1500 から始まっているから、Huモニタとやらは $0000 - $14FF に入っているのではあるまいか。
つまり、標準版の X1用S-OS、MZ-2000用S-OS は…。
- 一旦BASICをロードして、
- mon と打ってモニタ(Huモニタや MZ-1Z001M)に切り替えて、
- そこでようやく S-OS SWORD をロードすることで、S-OS が起動する。
ということで、「X1 や MZ-2000 で標準版の S-OS を使いたかったら BASIC が必要ですよ」「BASIC の中に入ってるモニタを利用しますので」ということで間違いなさそう。
MZ-700 は ROMにモニタが入ってるんで、いきなり S-OS を読み込んで使うことができたのだな。しかし、X1 や MZ-2000 はそうじゃないよ、ROM に IPL は入ってるけど、それだけじゃ足りないよ、別途モニタが必要だよ、と…。
そして、そのモニタとやらは、今となっては正規に入手する術がない。CP/Mあたりと比べると、日本のレトロPCって不自由…。
◎ 2022/10/19追記。 :
上記が分かった上でググってみたら、そもそも S-OS SWORD のドキュメント(?)に、このあたりちゃんと書いてあることに気づいた…。
_S-OS Sword Ver2.0 (J)(1986-02)(Oh!mz) [mz80K][type-in].txt
最後のあたりに書いてあったから気づかなかった…。
_S-OS Sword Ver2.0 (J)(1986-02)(Oh!mz) [mz80K][type-in].txt
S-OS“SWORD"は、
X1では BASIC CZ-8CB01/8FB01のモニタ、
MZ-80B/2000/2200/2500ではモニタSB-1520またはMZ-1Z001M、
MZ-80K/C/1200/700/1500ではROMモニタ上で動作します。
それぞれのマシン語モニタから入力してください。
最後のあたりに書いてあったから気づかなかった…。
[ ツッコむ ]
以上です。