復活!CP/M ワンボードマイコンでCP/Mを!
CP/MがTK−80互換のワンボードマイコンの上で復活します
ND80ZVとMYCPU80の上でCP/Mが走ります!
[第254回]
●BIOSに即席のデバッガを組み込みました
前回からの続きです。
プリントアウトされた意味不明の文字列なのですが、しかしLLISTとRUNを交互に繰り返してみますと、文字そのものは意味不明ででたらめなのですが、なんとなくプリンタに出力しようとしているらしく思えます。
どうもMBASICから送られてくる文字コードに問題がありそうです。
そこでMBASICからどういうコードが送られてくるのか、こないのか、そこのところを確かめてみることにしました。
どうやらBIOSのプリンタ出力ルーチンはコールされているらしく思えましたので、BIOSのその部分にデバッグのためのちょいとしたプログラムを仕込みました。
といってもそれほど大げさなものではありません。
ほんの小ワザです。
これがその小ワザを仕込んだBIOSのプリンタ出力部です。
| D3A0 3EFF     CONOUTJ3:LD A,FF
D3A2 D39C     	OUT (9C),A
D3A4 C9       	RET
              ;
              ;PRINTER OUT
D3A5 DB82     LISTJ:IN A,(82)
D3A7 E680     	AND 80
D3A9 C2A5D3   	JP NZ,LISTJ
D3AC 7B       	LD A,E
D3AD D380     	OUT (80),A
D3AF AF       	XOR A
D3B0 D383     	OUT (83),A
D3B2 00       	NOP
D3B3 3C       	INC A
D3B4 D383     	OUT (83),A
              ; printer check ************
D3B6 AF       	XOR A
D3B7 D39C     	OUT (9C),A
D3B9 E5       	PUSH HL
D3BA 63       	LD H,E
D3BB CD4B10   	CALL HDP2
D3BE E1       	POP HL
D3BF C3A0D3   	JP CONOUTJ3
              ;	RET    ************
              ; | 
| logfile nd80zlog\11180723.txt open ND80ZVに接続しました 0001 0000 - z 1000 00C3 - *** nd80z3 basic **** >/ld zbios2qt.bin,d200 loading ZBIOS2QT.BIN ...0360(864)bytes loaded,from D200 to D55F >/cpm can't open D.vfd loading ZBDOS,wait a while... A>b: B>mbasic BASIC-80 Rev. 5.21 [CP/M Version] Copyright 1977-1981 (C) by Microsoft Created: 28-Jul-81 25400 Bytes free Ok auto 10 for a=0 to 5 20 lprint a, 30 next a 40 ^C Ok list 10 FOR A=0 TO 5 20 LPRINT A, 30 NEXT A Ok llist 19191900000000000000000000000000001919192C2C2C2C2C2C2C2C2C2C2C1919194141414141414141Ok run 1515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151313Ok system B>zb3 end of ZBDOS >0000 00C3 - リモート接続を終了しました logfile closed at Sun Nov 18 07:26:13 2012 | 
| NFUNCTS EQU 41 ;number of functions in followin table. ; FUNCTNS DW WBOOT,GETCON,OUTCON,GETRDR,PUNCH,LIST,DIRCIO,GETIOB DW SETIOB,PRTSTR,RDBUFF,GETCSTS,GETVER,RSTDSK,SETDSK,OPENFIL DW CLOSEFIL,GETFST,GETNXT,DELFILE,READSEQ,WRTSEQ,FCREATE DW RENFILE,GETLOG,GETCRNT,PUTDMA,GETALOC,WRTPRTD,GETROV,SETATTR DW GETPARM,GETUSER,RDRANDOM,WTRANDOM,FILESIZE,SETRAN,LOGOFF,RTN DW RTN,WTSPECL | 
| ;************************************************************** ;* ;* B I O S J U M P T A B L E ;* ;************************************************************** ; BOOT JMP 0 ;NOTE WE USE FAKE DESTINATIONS WBOOT JMP 0 CONST JMP 0 CONIN JMP 0 CONOUT JMP 0 LIST JMP 0 PUNCH JMP 0 READER JMP 0 HOME JMP 0 SELDSK JMP 0 SETTRK JMP 0 SETSEC JMP 0 SETDMA JMP 0 READ JMP 0 WRITE JMP 0 PRSTAT JMP 0 SECTRN JMP 0 ; |