復活!CP/M ワンボードマイコンでCP/Mを!
CP/MがTK−80互換のワンボードマイコンの上で復活します
ND80ZVとMYCPU80の上でCP/Mが走ります!
[第40回]
●参考書を送っていただきました
Amazonから技術参考書が届きました。
ですけれど、注文した覚えはありません。
誤配ではないようです。
ちゃんと宛名は中日電工の私あてになっています。
どなたかが私宛てということで、ご注文いただいたようです。
あの。
ひとことお礼を申し上げたいと思いますので、ぜひメールをいただけませんでしょうか。
書名はここでは書きませんが、いずれやらなきゃならないだろうなあ、と思っておりましたものの参考書です。
まあ、お送りいただいた理由は、いろいろ考えられるのでありますけれど。
これでも読んでちっとは勉強しなさいよ、というお叱りとも取れますし。
これを読んで、こういうものをぜひ作ってくださいよ、ということかも知れません。
今は、とにかくCP/Mにかかりっきりですので、これが片付きましたら、いずれその方面にも挑戦したいと思っております。
いずれはやりたいと思っておりますので、気長にお待ちいただきますよう、お願いいたします。
まずは当ページにてひとことお礼申し上げます。
有難うございました。
今後ともご支援をたまわりますようお願いいたします。
●ファンクションコール1および2を使ったプログラム
前回は、ファンクションコール1とファンクションコール2を使ったテストプログラムのリストをお見せしたところで終わってしまいました。
ファンクションコール1と2については、前回説明しましたが、もう一度下に書いておくことにします。
ファンクションコール 1 は、コンソール入力です。
コンソールというのはキーボードとディスプレイを備えた端末装置ですが、ND80ZVにインストールするCP/Mシステムでは、コンソールはND80ZVとUSB接続したWindowsパソコンのキーボードとDOSプロンプト画面になります。
Cレジスタに01をセットしてシステムをコールすると、キー入力した文字コードがAレジスタに入ってリターンします。
同時に画面にエコー表示が行なわれます。
実際にキー入力されるまでリターンせずに待っています。
ファンクションコール 2 は、コンソール出力です。
Eレジスタに出力したい文字コードをセットして、Cレジスタに02をセットしてシステムをコールすると、画面にその文字が表示されます。
前回はソースプログラムをお見せしましたから、今回はアセンブルリストをお見せすることにします。
ND80ZVに附属の中日電工製のZ80アセンブラzasm.comでアセンブルします。
CP/Mソースをアセンブルするのに使った、zasm1.64を使うと、一部文法表現が異なっているため、エラーになってしまいます。
2012/2/20 22:28 ftest1.txt END=814C ; BDOS function 1 & 2 test ; ORG $8100 FCALL=$8005 ; 8100 1E3F LOOP:LD E,3F;? 8102 0E02 LD C,02 8104 CD0580 CALL FCALL 8107 0E01 LD C,01 8109 CD0580 CALL FCALL 810C FE1A CP 1A;^z? 810E C8 RET Z 810F F5 PUSH AF 8110 1E3D LD E,3D;= 8112 0E02 LD C,02 8114 CD0580 CALL FCALL 8117 F1 POP AF 8118 57 LD D,A 8119 CD4381 CALL HEX1 811C 5F LD E,A 811D 7A LD A,D 811E 0F RRCA 811F 0F RRCA 8120 0F RRCA 8121 0F RRCA 8122 CD4381 CALL HEX1 8125 D5 PUSH DE 8126 5F LD E,A 8127 0E02 LD C,02 8129 CD0580 CALL FCALL 812C D1 POP DE 812D 0E02 LD C,02 812F CD0580 CALL FCALL 8132 1E0D LD E,0D 8134 0E02 LD C,02 8136 CD0580 CALL FCALL 8139 1E0A LD E,0A 813B 0E02 LD C,02 813D CD0580 CALL FCALL 8140 C30081 JP LOOP 8143 E60F HEX1:AND 0F 8145 C630 ADD A,30 8147 FE3A CP 3A 8149 D8 RET C;0-9 814A C607 ADD A,07;A-F 814C C9 RET ; FCALL =8005 HEX1 =8143 LOOP =8100 |