.PREL .IDENT SUBS .INSERT BBEQU.ASM CKHLDE:: MOV A,H XRA D JP COMP XCHG ; ... COMP:: MOV A,H CMP D RNZ MOV A,L CMP E RET ; SUBROUTINE TO RETURN ZERO STATUS IF CHARACTER IN A IS NL OR ; ';' ATNL:: CPI ';' ; CHECK FOR CONTINUATION RZ CPI CR ; AND FOR CR RET IGNBLK:: LDAX D CPI ' ' RNZ INX D JMPR IGNBLK ; TSTCH AND TSTNUM TSTCH:: XTHL CALL IGNBLK CMP M INX H JRZ TC1 PUSH B MOV C,M MVI B,0 DAD B POP B DCX D TC1: INX D INX H XTHL RET TSTNUM:: LXI H,0 MOV B,H CALL TSTCH .BYTE '!' .BYTE TN1-.-1 ; TRY FOR HEX NUMBER TH1: LDAX D CPI '0' RC CPI 'G' RNC CPI '9'+1 JRC HOK SUI 'A'-10 ; BETWEEN 9 AND F (ASCII) CPI 10 RC HOK: ANI 0FH PUSH PSW MOV A,H ; CHECK FOR OVERFLOW ANI 0F0H JNZ QHOW# POP PSW INR B ; SAY WE GOT ONE DAD H ; HL=HL*16 DAD H DAD H DAD H ADD L ; ADD IN NEW DIGIT MOV L,A MVI A,0 ADC H MOV H,A INX D ; BUMP CHAR PTR JMPR TH1 ; AND GO FOR MORE TN1: CPI '0' RC CPI 3AH RNC MVI A,0F0H ANA H JNZ QHOW# INR B PUSH B MOV B,H MOV C,L DAD H DAD H DAD B DAD H LDAX D INX D ANI 00FH ADD L MOV L,A MVI A,0 ADC H MOV H,A POP B LDAX D JP TN1 JMP QHOW# .END