mieki256's diary



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"
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 倍精度BASIC

MZ型番考 より


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モニタでどんなことができるのかを思い浮かべると、おそらくここでモニタと呼ばれているものは…。 そういうことができるプログラム、なのだろう…。

要するに…。「当時、PCで、『対話的に』マシン語/機械語を扱える状態にするためのプログラムが、モニタと呼ばれいてた」 ―― ということじゃないかなと。たぶん。おそらく。

ところで、最初のあたりで「IPL」という単語が出てきたけれど、それって一体なんだろう? モニタとは違うものなの?

_MZ-2000 - Wikipedia
MZ-80Bの同様、MZ-2000ではInitial Program LoaderのみがROMに書き込まれており、CMT、FD、特定のメモリからの起動をサポートする。

MZ-2000 - Wikipedia より


IPL は、Initial Program Loader の略だったららしい。

つまり…。
では、MZ-2000 のモニタプログラム、MZ-1Z001M は、どうやって入手していたのだろう。単体販売されていたのかな?

システムソフトウェア

型番のハイフンの次が1で始まるものはカセットテープ、2で始まるものはフロッピーディスクによる供給である。 その多くが、モニタMZ-1Z001Mを含み、標準から拡張されている部分はBASIC本体で直接サポートされるため、データレコーダなしでバイナリを取り扱うことには制限があった。

MZ-2000 - Wikipedia より


BASIC や PASCAL などの、システムソフトウェアと呼ばれるジャンルのプログラム群に含まれていた、とある。

_S-BASIC (MZ-1Z001) Reference Manual
MON : 機械語モニタ(メモリを直接いじれる簡易エディタ あるいは 超機能限定版デバッガ のようなもの。 昔のパソコンには大抵ついていた。)に入る。モニタからBASICに戻るには J コマンドで $1300 にジャンプ。

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 (Initial Program Loader) が起動し、FDD、拡張ROMボード、CMTの順にブートを試みる。

X1 (コンピュータ) - Wikipedia より


ここでも 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 は…。
  1. 一旦BASICをロードして、
  2. mon と打ってモニタ(Huモニタや MZ-1Z001M)に切り替えて、
  3. そこでようやく S-OS SWORD をロードすることで、S-OS が起動する。
そんな操作手順で使ってたのかなと。あくまで想像だけど。実際どうだったのかは分からんけど。いや、自分もX1turboユーザだったのだから、当時触ってたはずなんだけど、完全に何もかも忘れているわけで…。

ということで、「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"は、
X1では BASIC CZ-8CB01/8FB01のモニタ、
MZ-80B/2000/2200/2500ではモニタSB-1520またはMZ-1Z001M、
MZ-80K/C/1200/700/1500ではROMモニタ上で動作します。
それぞれのマシン語モニタから入力してください。

最後のあたりに書いてあったから気づかなかった…。

以上です。

過去ログ表示

Prev - 2022/10 - Next
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project