0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0DU-V75 OBJ. FILE-XT2ASM:COMAND $$$APLMODEMASM€ !"#$l sectors read',CR,LF,'$' ; SECCNT: DW 0 ;NUMBER OF SECTORS READ ; ENDIF ;TEST ; DS 64 ;ROOM FOR 32 LEVEL STACK NEWSTKDU-V75 OBJ. FILE-XT2ASM:COMAND $$$APLMODEMASM€ !"#$' CHARACTER OR STRING ENCLOSED IN SINGLE QUOTES WHICH ;; IS TO BE PRINTED IN THE EVENT AN INPUT COMMAND DOES ;; NOT MATCH THDU-V75 OBJ. FILE-XT2ASM:COMAND $$$APLMODEMASM€ !"#$L WILL BE ALLOWED. HEX WILL BE THE DEFAULT ;; BASE. (THAT IS ANY NUMBERS WHICH ARE NOT FOLLOWED BY ;; A BASE DELIMITER ANDDU-V75 OBJ. FILE-XT2ASM:COMAND $$$APLMODEMASM€ !"#$ORDS WHICH ARE TO BE ;; PLACED IN THE LOOK UP TABLE. WORDS CAN BE OF ANY ;; LENGTH. ANY NUMBER OF WORDS CAN BE PRESENT. WDU-V75 OBJ. FILE-XT2ASM:COMAND $$$APLMODEMASM€ !"#$TABLE JZ EROR INT4 LDAX D ;;GET CHARACTER FROM BUFFER CPI '@' ;;IS IT A LETTER JC INT5 ANI 0DFH ;;IF SO MAKE IT CAPITALDU-V75 OBJ. FILE-XT2ASM:COMAND $$$APLMODEMASM€ !"#$D MACRO PROMPT,ERR,IBUF,LEN,COMS,ACON IF NOT NUL IBUF @LINPT SET IBUF @BUF SET IBUF+2 ELSE @LINPT SET 080H @BUF SET 082HDU-V75 OBJ. FILE-XT2ASM:COMAND $$$APLMODEMASM€ !"#$ DW @&C? ENDM DB 0 IRPC B?,ACON IF NOT('B?&'='0') PARAM @LINPT,ACON,EROR ENDIF EXITM ENDM ENDM ;; ;; ;; ;;DU-V75 OBJ. FILE-XT2ASM:COMAND $$$APLMODEMASM€ !"#$F ;;DO A CRLF PRINT PROMPT,S ;;PRINT PROMPT AND SUPRESS CRLF LXI D,@BUF ;;POINT TO BUFFER MVI A,@LONG ;;SET BUFFER LENGTHDU-V75 OBJ. FILE-XT2ASM:COMAND $$$APLMODEMASM€ !"#$SION BASE. ;; : IS THE OPTIONAL BASE DELIMITER ;; Y IS THE OPTIONAL CONVERSION BASE ;; THE PARAMETERS PASSED TO THE MACRO AREDU-V75 OBJ. FILE-XT2ASM:COMAND $$$APLMODEMASM€ !"#$A INX H JNZ INT2 INX H INX H ;;STEP PAST ADDRESS INT3 LXI D,@BUF+2 ;;POINT TO WORD MOV A,M ORA A ;;TEST FOR END OF DU-V75 OBJ. FILE-XT2ASM:COMAND $$$APLMODEMASM€ !"#$ ;; THE LEADING BASE IS ASSUMED TO BE THE DEFAULT BASE. ;; EXAMPLE - IF "HOD" IS PASSED TO ACON - HEX, OCTAL ;; AND DECIMADU-V75 OBJ. FILE-XT2ASM:COMAND $$$APLMODEMASM€ !"#$LD BE COMPUTED AS ;; THE MAXIMUM LENGTH OF INPUT EXPECTED + 20. ;; DEFAULT LENGTH IS 80H. ;; LIST OF VALID COMMAND WDU-V75 OBJ. FILE-XT2ASM:COMAND $$$APLMODEMASM€ !"#$HE EVENT OF AN ERROR IN THE CONVERSION ROUTINE. ;; DEFAULT WILL RETURN TO THE CALLING PROGRAM WITH ;; CARRY SET. ;; ON RETUDU-V75 OBJ. FILE-XT2ASM:COMAND $$$APLMODEMASM€ !"#$RATED BY COMMAS. EXAMPLE ;; ACON SEE PARAM MACRO. IF ACON = '0' PARAM WILL NOT BE ;; EXPANDED. ;; COMANDU-V75 OBJ. FILE-XT2ASM:COMAND $$$APLMODEMASM€ !"#$A,M INX H MOV H,M MOV L,A XCHG SHLD @LINPT XCHG PUSH H CRLF POP H PCHL CTABLE IRP C?, DB 'C?&',0 DU-V75 OBJ. FILE-XT2ASM:COMAND $$$APLMODEMASM€ !"#$ESSAGE EROR CRLF PRINT ERR @MAIN LXI SP,STACK ;;STACK DEFINED ELSEWARE LXI H,@MAIN ;;SET RETURN ADDRESS PUSH H INT1 CRLDU-V75 OBJ. FILE-XT2ASM:COMAND $$$APLMODEMASM€ !"#$ XXX ;; WHERE X IS AN ASCII CHARACTER FROM '0' THRU '9' OR 'A' THRU 'F' ;; DEPENDING ON THE VALUE OF Y OR THE DEFAULT CONVERDU-V75 OBJ. FILE-XT2ASM:COMAND $$$APLMODEMASM€ !"#$ MOV M,D ;;PLACE 0 AT END OF INPUT LINE LXI H,CTABLE ;;POINT TO TABLE JMP INT3 INT2 MOV A,M ;;STEP TO END OF COMMAND ORA DU-V75 OBJ. FILE-XT2ASM:COMAND $$$APLMODEMASM€ !"#$RSION BASES AS FOLLOWS ;; H=HEX (0-FFFF) ;; B=BINARY (0-1111111111111111) ;; O=OCTAL (0-177777) ;; D=DECIMAL (0-65535)DU-V75 OBJ. FILE-XT2ASM:COMAND $$$APLMODEMASM€ !"#$OSE FOUND IN THE TABLE. ;; IBUF ADDRESS OF INPUT LINE BUFFER. ;; DEFAULT IS 80H. ;; LEN LENGTH OF INPUT LINE BUFFER. SHOUDU-V75 OBJ. FILE-XT2ASM:COMAND $$$APLMODEMASM€ !"#$ CONVERSION BASE WILL BE ASSUMED ;; IN THIS CASE TO BE HEX.) ;; ERR ADDRESS OR LABEL OF ROUTINE TO PASS CONTROL TO ;; IN TDU-V75 OBJ. FILE-XT2ASM:COMAND $$$APLMODEMASM€ !"#$ORDS ;; MUST EVALUATE TO LABELS USED ELSEWARE IN THE ;; PROGRAM. LIST OF WORDS MUST BE ENCLOSED IN <> AND ;; MUST BE SEPADU-V75 OBJ. FILE-XT2ASM:COMAND $$$APLMODEMASM€ !"#$ INT5 CMP M ;;COMPARE TO TABLE JNZ INT2 INX H INX D MOV A,M ORA A JNZ INT4 ;;JUMP IF NOT END OF WORD INX H MOV DU-V75 OBJ. FILE-XT2ASM:COMAND $$$APLMODEMASM€ !"#$ ENDIF IF NUL LEN @LONG SET 80H ELSE @LONG SET LEN ENDIF LOCAL INT1,INT2,INT3,INT4,INT5 JMP @MAIN ;;BYPASS ERROR MDU-V75 OBJ. FILE-XT2ASM:COMAND $$$APLMODEMASM€ !"#$ THIS MACRO EXTRACTS THE BINARY VALUE FROM A STRING OF CHARACTERS. ;; THE STRING OF CHARACTERS MUST BE OF THE FORM ;; XXX:Y ORDU-V75 OBJ. FILE-XT2ASM:COMAND $$$APLMODEMASM€ !"#$ STAX D MVI C,@BIN CALL @BDOS LXI H,@BUF+1 ;;TEST FOR INPUT MOV A,M ORA A RZ MVI D,0 MOV E,A DAD D INX H DU-V75 OBJ. FILE-XT2ASM:COMAND $$$APLMODEMASM€ !"#$: ;; ADR ADDRESS OF POINTER TO BUFFER CONTAINING ASCII ;; REPRESENTATION OF NUMBERS TO BE CONVERTED. ;; ACON ALLOWED CONVEDU-V75 OBJ. FILE-XT2ASM:COMAND $$$APLMODEMASM€ !"#$