復活!CP/M ワンボードマイコンでCP/Mを!
CP/MがTK−80互換のワンボードマイコンの上で復活します
ND80ZVとMYCPU80の上でCP/Mが走ります!
[第79回]
●ファンクションコール06(ダイレクトコンソール入出力)
今回はファンクションコール06について説明をいたします。
ダイレクトコンソール入出力です。
コンソール入力には、ファンクションコール01があります。
またコンソール出力には、ファンクションコール02があります。
それに対して、ファンクションコール06は入力にも出力にも使えます。
Cレジスタに06をセットして、EレジスタにFFをセットしてシステムをコールすると、コンソール入力になり、キー入力があるときには、その入力コードがAレジスタに入ってリターンします。
同じくCレジスタに06をセットして、Eレジスタに文字コードをセットしてシステムをコールすると、その文字がコンソール出力されます。
ファンクションコール06の入力、出力の機能は、ファンクションコール01、02とちょっと異なっているところがあります。
ファンクションコール01ではコンソール入力があるまでリターンしてきませんが、ファンクションコール06の入力モードでは、コンソール入力がない場合にはAレジスタに00が入って、すぐにリターンしてきます。
ファンクションコール02では、コンソール出力時にコンソール入力のチェックを行なっていて、Ctrl−Sが入力されるとポーズしてコンソール入力を待ちますが、ファンクションコール06の出力モードではCtrl−Sのチェックは行なわれません。
入力も出力もそれぞれBIOSのコンソール入力、コンソール出力ルーチンをほとんどダイレクトにコールしています。
テストプログラムFNC06T2.TXTです。
; BDOS function06 test ;2012/3/31 ; ORG $8100 FCALL=$8005 ; LOOP:LD C,06 LD E,FF CALL FCALL PUSH AF CALL B2HEXDP POP AF OR A JP NZ,AOUT NEXT:CALL SPDP JP LOOP AOUT:PUSH AF LD C,06 LD E,A CALL FCALL POP AF CP 1A;^z RET Z JP NEXT ; |
2012/3/31 17:50 fnc06t2.txt END=8187 ; BDOS function06 test ;2012/3/31 ; ORG $8100 FCALL=$8005 ; 8100 0E06 LOOP:LD C,06 8102 1EFF LD E,FF 8104 CD0580 CALL FCALL 8107 F5 PUSH AF 8108 CD4C81 CALL B2HEXDP 810B F1 POP AF 810C B7 OR A 810D C21681 JP NZ,AOUT 8110 CD2E81 NEXT:CALL SPDP 8113 C30081 JP LOOP 8116 F5 AOUT:PUSH AF 8117 0E06 LD C,06 8119 5F LD E,A 811A CD0580 CALL FCALL 811D F1 POP AF 811E FE1A CP 1A;^z 8120 C8 RET Z 8121 C31081 JP NEXT ; |
logfile nd80zlog\03311753.txt open ND80ZVに接続しました 0001 0000 - z 1000 00C3 - *** nd80z3 basic **** >/ld fnc06t2.bin,8100 loading FNC06T2.BIN ...0088(136)bytes loaded,from 8100 to 8187 >jp d233 a>save 1 fnc06t2.com a>fnc06t2 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 61a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 61a 00 00 00 00 61a 0 0 00 00 00 00 00 00 00 00 00 61a 00 00 00 00 00 00 00 00 00 61a 00 00 00 00 00 0 0 61a 00 00 00 00 00 00 00 61a 00 00 61a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0 0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 62b 00 00 00 00 00 00 00 00 00 00 00 00 00 62b 00 00 00 00 00 00 00 00 62b 00 00 00 00 62b 00 00 00 00 6 2b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 62b 00 00 00 00 62b 00 00 62b 00 00 00 00 00 00 00 62b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 63c 00 00 00 00 63c 00 00 00 00 00 00 00 00 00 63c 00 00 00 00 00 00 00 00 0 0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 63c 00 00 00 00 63c 00 00 6 3c 00 00 00 00 63c 00 00 00 00 00 00 00 00 00 00 00 63c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0 0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 13 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 13 00 00 13 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0 0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0 0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1A a>a A? a> |