2014.12.8

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

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


[第78回]


●MYCPU80にリモートモニタプログラムを組み込んでいます

また何日か更新できませんでした。
[第75回]でとりあえずZB3DOS(CP/M互換DOS)が起動するところをお見せしました。
そのあと続けてその作業を進めていくつもりだったのですが、急いでここまで進めてきましたので、あちこちにやり残した作業があって、それが気になりだしました。

今はZB3DOSのBASICプログラム部分がだいたい完成したところです。
ここから先、さらにZB3DOS(CP/M互換DOS)の組込み作業を進めていくには、BASICプログラム部分をROM化しなければなりません。
現在はデバッグのため拡張RAM上に置いています。
Legacy8080はフルRAM構成で標準で512KBもありますから、余裕でZB3BASICもRAM上に置けるのですが、MYCPU80の場合にはND80ZV(ND80Z3.5)と同様に標準でROM32KB+RAM32KBのところに、ROMと同じアドレスにRAMを32KB増設するだけの構成になっています。
ZB3BASICシステムはアドレス0000〜7FFFに配置しますが、そのアドレスはCP/Mではユーザー用トランジェントエリアになります。
同じアドレスにZB3BASICプログラムを配置するにはどうしてもROMにするしかありません。

もっともCP/Mさえ起動しなければ、増設RAM上にZB3BASICを置いても問題はありませんから、せっかくこうやって作業もしていることでもありますから、RAMバージョンもROMと一緒に供給してもいいのでは、と思っています。

それはともかくとしまして。
とにかくどこかの時点でROM化しなければなりませんから、ROM化する前にできることはやっておこう、と考えました。
ND80ZV(ND80Z3.5)のROMにはZB3BASICのほかにマシン語モニタコマンドが含まれています。
そのほかにリモートモニタプログラムというのも入っています。
USBでパソコンと接続してND80ZV(ND80Z3.5)のキーボードとLEDの代わりにパソコンのフルキーボードから入力して、それをディスプレイ画面に表示させるプログラムです。
同様のプログラムはMYCPU80にもRAM上で動くユーザープログラムとして付属していますが、ND80ZV(ND80Z3.5)の場合にはROMに組み込まれていてもっと高機能です。
ブレーク機能やメモリダンプ、トレース機能などもあります。

せっかくですから、それもMYCPU80に組み込んでしまうことを思いつきました。
しかしマシン語ツールとはいえ、これもまたなかなかに複雑なつくりになっておりまして、それでこの数日間またもや苦闘していたのです。
あ。
つい、過去形で書いてしまいましたが、今も苦闘は続いております。
現在進行形であります。
というか、それもやっと少し動き出しただけのところです。

ともあれ、この数日間でやっと、少しは動くところまできましたので、ほんの少しですが現況のご報告です。

4桁+4桁の数値はMYCPU80の7セグメントLEDの表示をモニタして表示しています。
[RD+][RD−][ADRSSET][WR+]はTK−80回路のキーボードから入力する代わりにパソコンのフルキーボードから入力したものです。
[RD+]は[+]キー、[RD−]は[−]キー、[WR+]は[Enter]キー、[ADRSSET]は[.](ピリオド)を使います。
おっと、ちょっと[RD−]の部分にバグがあるようです。
このリモートモードはZB3DOSの下層に組み込まれていて、パソコンと接続すると、最初はこのモードで始まります。
[z]を入力するとZB3BASICにエントリします。


ここまで、MYCPU80で動作しています。

ND80ZV(ND80Z3.5)と同機能ですので、ちゃんとログも取れています。

logfile mycpu80log\12082145.txt open
mzbdos2n2 2014.11.30 by Chunichidenko

MYCPU80に接続しました(9600bps)
0001 0020 - [RD+]
0002 2003 - [RD+]
0003 03C3 - [RD+]
0004 C355 - [RD+]
0005 5503 - [RD-]
0004 0355 - [RD-]
0003 55C3 - [RD-]
0002 C303 - 8000[ADRSSET]
8000 0012 - ab[WR+]
8001 AB34 - cd[WR+]
8002 CD56 - [RD-]
[RD-]
[RD-]
8000 CDAB - z
1000 00C3 - 
*** mycpu80 zb3basic ****
>help
TEXT 8004-8060
ヘンスウ DFFB-DFFF
>list
    10 FOR A=0 TO 10
    20 PRINT "a=";A,"sqr(a)=";SQR(A)
    30 NEXT A
    40 PRINT "end"
>run
a=0          sqr(a)=0
a=1          sqr(a)=1
a=2          sqr(a)=1.41421
a=3          sqr(a)=1.73205
a=4          sqr(a)=2
a=5          sqr(a)=2.23607
a=6          sqr(a)=2.44949
a=7          sqr(a)=2.64575
a=8          sqr(a)=2.82843
a=9          sqr(a)=3
a=10         sqr(a)=3.16228
end

>/exit
0000 00C3 - 
リモート接続を終了しました
logfile closed at Mon Dec 08 21:50:44 2014

MYCPU80でCP/Mを![第78回]
2014.12.8upload

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