2015.1.8

前へ
次へ
ホームページトップへ戻る

MYCPU80でCP/Mを!
超巨大基板の8080互換HCMOS・CPUでCP/Mを走らせてしまおうという、なんとも狂気なプロジェクトです!


[第97回]


●/SV、/LDのテスト

/SV、/LDはともにZB3BASICのマシン語モニタに標準で備わっている機能です。
/SVはアドレス範囲を指定してマシン語プログラム、データをバイナリファイルとして保存します。
/LDはメモリアドレスを指定してそこにバイナリファイルをロードします。
標準の機能ではシステムROMが置かれているアドレス範囲(0000〜7FFF)を指定して/SVを実行するとROMの内容が保存されます。
またそのアドレス範囲を指定して/LDを実行した場合、ロード動作は行なわれますがROMに対してロードされますから、実際には何も行なわれなかったと同じことになります。
今回の機能追加はアドレス0000〜7FFFを指定して/SV、/LDを実行すると、ROMではなくてその裏にあるRAMに対して働くようにしました。

下は/SV、/LDのテストを行なったときのログです。

>dm@0100,011f
0100  01 34 12 11 78 56 21 AB-90 03 13 23 F6 F9 12 9D  .4..xV!ォ...#....
0110  B5 9D F7 87 FB 9D 52 4C-B6 CB 90 3D A3 57 3F 33  オ.....RLカヒ.=」W?3
>/sv test150106.bin,0100,011f
0020(32)bytes saved
>cm@0100
0100 01-00
0101 34-00
0102 12-00
0103 11-00
0104 78-00
0105 56-00
0106 21-00
0107 AB-00
0108 90-00
0109 03-00
010A 13-00
010B 23-00
010C F6-00
010D F9-
>dm@0100,011f
0100  00 00 00 00 00 00 00 00-00 00 00 00 00 F9 12 9D  ................
0110  B5 9D F7 87 FB 9D 52 4C-B6 CB 90 3D A3 57 3F 33  オ.....RLカヒ.=」W?3
>/ld test150106.bin,0100
loading TEST150106.BIN ... end0020(32)bytes loaded,from 0100 to 011F
>dm@0100,011f
0100  01 34 12 11 78 56 21 AB-90 03 13 23 F6 F9 12 9D  .4..xV!ォ...#....
0110  B5 9D F7 87 FB 9D 52 4C-B6 CB 90 3D A3 57 3F 33  オ.....RLカヒ.=」W?3
>

システムROMの裏に置かれたRAMエリアの0100〜011Fのメモリ内容をDM@コマンドで確認しました。
次にそのメモリ範囲のデータを/SVコマンドでtest150106.binという名前で保存しました。
CP/Mのファイル名やMSDOSのファイル名は名前が半角8文字以内で拡張子が3文字以内と決められています。
しかし/SV、/LDは拡張されたWindowsのコマンドプロンプト上で働きますから、この例のように8文字を越えてもエラーにならずに正しく実行されます。
次は/LDのテストです。
正しくロードされるかどうかを確認するために、CM@コマンドでメモリの一部を00で書き換えておきます。
念のためDM@コマンドで正しく書き換えられていることを確認しました。
そして/LD命令を実行して、さきほど保存したtest150106.binを0100番地にロードしました。
DM@コマンドで正しくロードされていることを確認しました。

本日は急ぎのご注文をいただきましたので、短いですけれど、ここまでといたします。

MYCPU80でCP/Mを![第97回]
2015.1.8upload

前へ
次へ
ホームページトップへ戻る