復活!CP/M ワンボードマイコンでCP/Mを!
CP/MがTK−80互換のワンボードマイコンの上で復活します
ND80ZVとMYCPU80の上でCP/Mが走ります!
[第85回]
●ファンクションコール0Eテストプログラム(2)
前回からの続きです。
ファンクションコール0Eは、デフォルトのドライブ(カレントドライブ?)を変更するための機能のはずなのですが、簡単なプログラムを作って試してみたところ、プログラムの実行前と後とでカレントドライブは変更されませんでした。
そこで今回はもう少しましなプログラムを書いて、テストをしてみることにいたします。
[第65回]で作ったファイル名サーチプログラム(FTST10.TXT)をもとにして、そこにファンクションコール0Eを追加しました。
下はそのようにして作ったプログラム(FTST10−2.TXT)のソースリストです。
FTST10.TXTの先頭にドライブb入力する部分を追加しました。
LOOP:からDNOPASS:までです。
; BDOS TEST10 filename search function0e,11,12 ;2012/3/19 4/4 ; ORG $8100 FCALL=$8005 FCB=$805C DMA=$8080 ; LOOP:LD DE,INPMSG CALL MSGDP LD C,01 CALL FCALL CP 1A;^z RET Z CP 30 JP Z,DNOPASS AND 0F DEC A LD E,A LD C,0E CALL FCALL DNOPASS:CALL CRLF LD C,11;first file search LD DE,FCB CALL FCALL CP FF JP Z,NOFILE ; LD HL,DMA LD DE,$0020 OR A;dirctory code 00-03 LOOP1: JP Z,NMDISP ADD HL,DE DEC A JP LOOP1 NMDISP:INC HL;pass drive no. LD B,08 NMDISP2:LD A,(HL) CP 20 JP Z,NMDISP3 CALL ADP NMDISP3:INC HL DEC B JP NZ,NMDISP2 LD A,2E;"." CALL ADP LD B,03 NMDISP4:LD A,(HL) CALL ADP INC HL DEC B JP NZ,NMDISP4 CALL CRLF ;next file search LD C,12;next file search LD DE,FCB CALL FCALL CP FF JP Z,END LD HL,DMA LD DE,$0020 OR A;dirctory code 00-03 NXTSRCH:JP Z,NMDISP ADD HL,DE DEC A JP NXTSRCH ; NOFILE:LD DE,NFMSG CALL MSGDP JP LOOP ; END:LD DE,ENDMSG CALL MSGDP JP LOOP ; MSGDP:LD C,09 CALL FCALL RET ; ;CL & LF CRLF:LD A,0D CALL ADP LD A,0A JP ADP ;space disp SPDP:LD A,20 ;A disp ADP:PUSH BC PUSH HL LD E,A LD C,02 CALL FCALL POP HL POP BC RET ; INPMSG:"drvn" "o." DB 3F;? DB 24;$ NFMSG:"not " "foun" "d" DB 0D DB 0A DB 24;$ ENDMSG:"end" DB 0D DB 0A DB 24;$ ; |
2012/4/4 23:3 ftst10-2.txt END=81C3 ; BDOS TEST10 filename search function0e,11,12 ;2012/3/19 4/4 ; ORG $8100 FCALL=$8005 FCB=$805C DMA=$8080 ; 8100 11AA81 LOOP:LD DE,INPMSG 8103 CD8D81 CALL MSGDP 8106 0E01 LD C,01 8108 CD0580 CALL FCALL 810B FE1A CP 1A;^z 810D C8 RET Z 810E FE30 CP 30 8110 CA1C81 JP Z,DNOPASS 8113 E60F AND 0F 8115 3D DEC A 8116 5F LD E,A 8117 0E0E LD C,0E 8119 CD0580 CALL FCALL 811C CD9381 DNOPASS:CALL CRLF 811F 0E11 LD C,11;first file search 8121 115C80 LD DE,FCB 8124 CD0580 CALL FCALL 8127 FEFF CP FF 8129 CA7B81 JP Z,NOFILE ; 812C 218080 LD HL,DMA 812F 112000 LD DE,$0020 8132 B7 OR A;dirctory code 00-03 8133 CA3B81 LOOP1: JP Z,NMDISP 8136 19 ADD HL,DE 8137 3D DEC A 8138 C33381 JP LOOP1 813B 23 NMDISP:INC HL;pass drive no. 813C 0608 LD B,08 813E 7E NMDISP2:LD A,(HL) 813F FE20 CP 20 8141 CA4781 JP Z,NMDISP3 8144 CD9F81 CALL ADP 8147 23 NMDISP3:INC HL 8148 05 DEC B 8149 C23E81 JP NZ,NMDISP2 814C 3E2E LD A,2E;"." 814E CD9F81 CALL ADP 8151 0603 LD B,03 8153 7E NMDISP4:LD A,(HL) 8154 CD9F81 CALL ADP 8157 23 INC HL 8158 05 DEC B 8159 C25381 JP NZ,NMDISP4 815C CD9381 CALL CRLF ;next file search 815F 0E12 LD C,12;next file search 8161 115C80 LD DE,FCB 8164 CD0580 CALL FCALL 8167 FEFF CP FF 8169 CA8481 JP Z,END 816C 218080 LD HL,DMA 816F 112000 LD DE,$0020 8172 B7 OR A;dirctory code 00-03 8173 CA3B81 NXTSRCH:JP Z,NMDISP 8176 19 ADD HL,DE 8177 3D DEC A 8178 C37381 JP NXTSRCH ; 817B 11B281 NOFILE:LD DE,NFMSG 817E CD8D81 CALL MSGDP 8181 C30081 JP LOOP ; 8184 11BE81 END:LD DE,ENDMSG 8187 CD8D81 CALL MSGDP 818A C30081 JP LOOP ; 818D 0E09 MSGDP:LD C,09 818F CD0580 CALL FCALL 8192 C9 RET ; ;CL & LF 8193 3E0D CRLF:LD A,0D 8195 CD9F81 CALL ADP 8198 3E0A LD A,0A 819A C39F81 JP ADP ;space disp 819D 3E20 SPDP:LD A,20 ;A disp 819F C5 ADP:PUSH BC 81A0 E5 PUSH HL 81A1 5F LD E,A 81A2 0E02 LD C,02 81A4 CD0580 CALL FCALL 81A7 E1 POP HL 81A8 C1 POP BC 81A9 C9 RET ; 81AA 6472766E INPMSG:"drvn" 81AE 6F2E "o." 81B0 3F DB 3F;? 81B1 24 DB 24;$ 81B2 6E6F7420 NFMSG:"not " 81B6 666F756E "foun" 81BA 64 "d" 81BB 0D DB 0D 81BC 0A DB 0A 81BD 24 DB 24;$ 81BE 656E64 ENDMSG:"end" 81C1 0D DB 0D 81C2 0A DB 0A 81C3 24 DB 24;$ ; ADP =819F CRLF =8193 DMA =8080 DNOPASS =811C END =8184 ENDMSG =81BE FCALL =8005 FCB =805C INPMSG =81AA LOOP =8100 LOOP1 =8133 MSGDP =818D NFMSG =81B2 NMDISP =813B NMDISP2 =813E NMDISP3 =8147 NMDISP4 =8153 NOFILE =817B NXTSRCH =8173 SPDP =819D |
logfile nd80zlog\04070812.txt open ND80ZVに接続しました 0001 0000 - z 1000 00C3 - *** nd80z3 basic **** >/ld ftst10-2.bin,8100 loading FTST10-2.BIN ...00c4(196)bytes loaded,from 8100 to 81C3 >jp d233 a>save 1 ftst10-2.com a>dir A: FNC0E-1 COM : FTST10 COM : FTST10-2 COM a>b: b>dir B: FNC0E-0 COM |
b>a:ftst10-2 *.* drvno.?a FNC0E-1.COM FTST10.COM FTST10-2.COM end drvno.?b FNC0E-0.COM end drvno.?c Bdos Err On C: Select |
a>ftst10-2 *.* drvno.?1 FNC0E-1.COM FTST10.COM FTST10-2.COM end drvno.?2 FNC0E-0.COM end drvno.? a> |
a>b: b>a:ftst10-2 *.* drvno.?a FNC0E-1.COM FTST10.COM FTST10-2.COM end drvno.? b> |