復活!CP/M ワンボードマイコンでCP/Mを!
CP/MがTK−80互換のワンボードマイコンの上で復活します
ND80ZVとMYCPU80の上でCP/Mが走ります!
[第363回]
ここ数日ずっと苦しんでおりまして、ホームページの更新ができませんでした。
ほぼ完成したと思っておりましたCP/M互換DOSで思わぬトラブルに遭遇してしまい、その原因究明に没頭しておりました。
何をやっておったのかにつきましては、少しずつ整理して説明をいたします。
再々の延期にて申し訳ありませんが、CP/M互換DOSにつきましては、もう少しお待ちいただきますようお願いいたします。
今回は予想外のトラブルに遭遇してしまいまして、だいたいのところはけりがついたのですけれど、もうあと少しなんとかしたいところがでてきてしまいまして、その作業におそらくあと数日ないしは一週間ほどはかかるのでは、と思います。
当初のレベルからは格段によくなってきておりますので、なんとかあとしばらくのご猶予をお願いいたします。
●COPYコマンドについての訂正
まずは気が付きましたことから書くことにいたします。
前回の説明の訂正です。
前回は、次のような説明をいたしました。
CP/Mの実行ファイルは拡張子がCOMでなければなりません。
ZASMで作成されるバイナリファイルの拡張子はBINです。
そこでまずそのBINをCOMに変更します。
ren vftst1.bin vftst1.com[Enter]
を実行します。
そのように説明をしたのですけれど、とんでもないポカでありました。
COPYコマンドを作りましたときに、そういう面倒な作業はしなくてもよいようにと考えて、BIN→COMへの自動変換機能を組み込んだことをすっかり忘れてしまっておりました。
自分で作成した機能を自分がすっかり忘れてしまっていたのですから情けない話です。
COPYコマンドのその機能につきましては[第200回]に書いておりました。
COPY Z:xxx.BIN
を実行しますと、仮想FDDのカレントドライブには、xxx.COMの名前でセーブされます。
こんな感じです。
●ファンクションコール0Bテストプログラムの訂正
今回遭遇しましたトラブル(ま、はっきり言ってしまえばCP/M互換DOSの不具合)を解消する過程でたまたまみつけてしまったテストプログラムのバグにつきまして、今頃になって恐縮ではありますがつつしんで訂正をいたします。
[第204回]で説明をいたしましたFNC0BT−2.TXTにバグがありました。
下にリストを再掲いたします。
; BDOS function0B test(fnc0bt) ;2012/5/29 8/24 ; ORG $0100 FCALL=$0005 ; LD E,2D LOOP:LD C,02 CALL FCALL LD C,0B CALL FCALL OR A JP Z,LOOP LD C,01 CALL FCALL CP 1A;Ctrl+Z RET Z JP LOOP ; |
どうしてこれで動いていたのか不思議でありますが、とにかく間違っておりました。
それを訂正しましたのが、上のCOPYコマンドで仮想FDDにコピーしましたFNC0BT−3.BINです。
下はそのソースリストです。
; BDOS function0B test(fnc0bt) ;2012/5/29 8/24 ;13/4/7 ; ORG $0100 FCALL=$0005 ; LOOP0:LD E,2D LOOP:LD C,02 CALL FCALL LD C,0B CALL FCALL OR A JP Z,LOOP0 LD C,01 CALL FCALL CP 1A;Ctrl+Z RET Z LD E,A JP LOOP ; |