Listing of file='MON.SRC;01' on disk='vmedia/taylor_4-sector.ccvf'
INIT: LXI SP,SPTR MVI A,0CH CALL PTCN START: LXI SP,SPTR CALL CRLF MVI A,'*' CALL PTCN CALL RDCN ANI 5FH PUSH PSW CALL SPCE POP PSW LXI H,START PUSH H CPI 'A' RC CPI 05BH RNC LXI H,CMDTB+7EH PUSH PSW ADD A ADD L MOV L,A MOV E,M INX H MOV D,M XCHG POP PSW PCHL ; ; COMMAND TABLE ; CMDTB: DW DISP ;A DW START DW COMPR DW DISP DW START DW SRCH ;F DW EXEC DW START DW START DW START DW START ;K DW START DW MOVEB DW NDMT DW START DW PGM ;P DW START DW START DW SRCH DW TMEM DW START ;U DW START DW START DW MOVEB DW START DW ZEROM ;Z ; ; GO COMAND ; EXEC: CALL AHEX XCHG PCHL ; ; HEX TO BINARY ; AHEX: MVI C,4 AHE0: LXI H,0 AHE1: CALL RDCN CPI 30H JC START CPI ':' CNC ALPH DAD H DAD H DAD H DAD H SUI 48 CPI 10 JC ALF SUI 7 ALF: ADD L MOV L,A DCR C JNZ AHE1 XCHG SPCE: MVI A,20H PTCN: JMP OUT CRLF: MVI A,0DH CALL PTCN MVI A,0AH JMP PTCN ALPH: CPI 'A' JC START ANI 5FH CPI 'G' JNC START RET ; ; IN CHAR ; RDCN: LDA READY CPI 50H JZ RDCN CPI 80H LDA KBUF JNZ RDCN PUSH PSW XRA A STA READY POP PSW ANI 7FH RET PAUSE: LDA READY CPI 50H JZ PAUSE LDA KBUF PUSH PSW XRA A STA READY POP PSW CPI 12H ; CTRL-R JZ START RET ; ; MEMORY TEST ; TMEM: CALL TAHEX LXI B,5A5AH CYCL: CALL RNDM PUSH B PUSH H PUSH D TLOP: CALL RNDM MOV M,B CALL BMP JNZ TLOP POP D POP H POP B PUSH H PUSH D RLOP: CALL RNDM MOV A,M CMP B CNZ ERR CALL BMP JNZ RLOP POP D POP H CALL PAUSE JMP CYCL ; ; RANDOM NUMBER ROUTINE ; RNDM: MOV A,B ANI 0B4H ANA A JPE PEVE STC PEVE: MOV A,C RAL MOV C,A MOV A,B RAL MOV B,A RET ; ; ERROR PRINT-OUT ROUTINE ; PTAD: CALL CRLF CALL PAUSE MOV A,H CALL PT2 MOV A,L CALL PT2 CALL SPCE RET ERR: PUSH PSW CALL PTAD MOV A,B CALL PT2 CALL SPCE POP PSW PT2: PUSH PSW CALL BINH POP PSW JMP BINL BINH: RAR RAR RAR RAR BINL: ANI 0FH ADI 48 CPI 58 JC PTCN ADI 7 JMP PTCN ; ; DISPLAY MEMORY CONTENTS ; DISP: MOV B,A CALL TAHEX ENT1: MVI C,16 CALL PTAD LP2: MOV A,B CPI 'A' MOV A,M JZ ASCD CALL PT2 CALL SPCE LP3: CALL BMP RZ DCR C JZ ENT1 JMP LP2 ASCD: ANI 60H JNZ NCON CALL SPCE JMP LP3 NCON: MOV A,M ANI 7FH CALL PTCN JMP LP3 ; ; PROGRAM MEMORY ; PGM: CALL AHEX XCHG CALL CRLF PGLP: MOV A,M CALL PT2 MVI A,'-' CALL PTCN CRIG: CALL RDCN CPI 20H JZ CON2 CPI 0DH JNZ CON1 CALL CRLF JMP CRIG CON1: XCHG LXI H,0 MVI C,2 CALL AHE1+3 MOV M,E CON2: INX H JMP PGLP ; ; COMPARE ADDRESSES, INCR H ; BMP: MOV A,E SUB L JNZ GOON MOV A,D SBB H GOON: INX H RET ; ; FILL MEMORY ; ZEROM: CALL TAHEX PUSH H MVI C,2 CALL AHE0 XCHG XTHL POP B ZLOOP: MOV M,C CALL BMP RZ JMP ZLOOP ; ; MOVE BLOCK ; MOVEB: MOV B,A CALL TAHEX PUSH H CALL AHEX XCHG XTHL MLOOP: MOV C,M XTHL MOV A,B CPI 'M' JZ NEXCH MOV A,M XTHL MOV M,A XTHL NEXCH: MOV M,C INX H XTHL CALL BMP JZ START JMP MLOOP ; ; NON-DEST. MEM TEST ; NDMT: LXI H,0 NDLOP: MOV C,M MVI B,0FFH MOV M,B MOV A,M CMP B JNZ ERR MVI B,0 MOV M,B MOV A,M CMP B JNZ ERR MOV M,C INX H JMP NDLOP ; ; COMPARE BLOCKS ; COMPR: CALL TAHEX PUSH H CALL AHEX XCHG VMLOP: MOV A,M INX H XTHL CMP M MOV B,M CNZ ERR CALL BMP XTHL JNZ VMLOP POP PSW RET ; ; SEARCH FOR BYTE/WORD ; SRCH: PUSH PSW CALL TAHEX PUSH H MVI C,2 CALL AHE0 XCHG MOV B,L POP H POP PSW CPI 'S' PUSH PSW JZ CONT PUSH H MVI C,2 CALL AHE0 XCHG MOV C,L POP H CONT: MOV A,M CMP B JNZ SKP POP PSW CPI 'S' PUSH PSW JZ OBCP INX H MOV A,M DCX H CMP C JNZ SKP OBCP: INX H MOV A,M DCX H CALL ERR SKP: CALL BMP JNZ CONT POP PSW RET ; TAHEX: CALL AHEX JMP AHEX OUT EQU 0033H READY EQU 81FFH KBUF EQU 81FEH DS 64 SPTR EQU $ END