***************************** * DIRECTIVES CODE GROUP 11 ***************************** L1125: CPI 11H JNZ L1339 MOV E,B MVI D,0 DCX D LXI H,L1138 DAD D DAD D MOV E,M INX H MOV H,M MOV L,E PCHL L1138: DW AA$00 ;DB DW AA$01 ;DS DW AA$02 ;DW DW AA$03 ;END DW AA$04 ;ENDIF DW AA$05 ;LINK DW AA$06 ;EQU DW AA$07 ;IF DW AA$08 ;MACRO DW AA$09 ;ORG DW AA$10 ;SET DW AA$11 ;TITLE DW AA$12 ;SYM DW AA$13 ;XREF DW AA$14 ;EJECT DW AA$15 ;COPY ***************************** * DB ***************************** AA$00: CALL L15A5 AA$001: CALL GET$STR LDA STR$TYPE CPI 3 JNZ AA$004 LDA STR$SIZE DCR A JZ AA$004 MOV B,A INR B INR B LXI H,STRING AA$002: DCR B JZ AA$003 PUSH B MOV B,M INX H PUSH H CALL PUT$COD$01 POP H POP B JMP AA$002 AA$003: CALL GET$STR JMP AA$005 AA$004: CALL L0F17 LHLD L0161 CALL G$OPRND$01A CALL PUT$COD$00 AA$005: CALL L1594 CALL L141C CPI ',' ;2CH JZ AA$001 JMP END$LINE ***************************** * DS ***************************** AA$01: CALL L15A5 CALL L1641 CALL G$OPRND$00 ;GET OPERAND. 1433H XCHG LHLD LOC$CTR2 DAD D SHLD LOC$CTR2 SHLD LOC$CTR1 JMP END$LINE ***************************** * DW ***************************** AA$02: CALL L15A5 AA$021: CALL G$OPRND$00 PUSH H MOV B,L CALL PUT$COD$01 POP H MOV B,H CALL PUT$COD$01 CALL L1594 CALL L141C CPI ',' ;2CH JZ AA$021 JMP END$LINE ***************************** * END ***************************** AA$03: CALL L15A5 CALL L1641 LDA PRN$LINE CPI ' ' JNZ END$LINE CALL G$OPRND$00 LDA PRN$LINE CPI ' ' JNZ AA$031 SHLD L1688 AA$031: MVI A,' ' STA PRN$LINE CALL GET$STR LDA STR$TYPE CPI 4 JNZ SYNTAX$ERR LDA STRING CPI LF JNZ SYNTAX$ERR JMP E$PASS ***************************** * ENDIF ***************************** AA$04: JMP TIT$01 ***************************** * LINK ***************************** AA$05: CALL NEW$SOURCE AA$053: CALL GET$STR LDA CUR$CHR CPI EOF JZ NEW$SRC$ERR CPI LF JNZ AA$053 CALL RESET$SRC CALL GET$STR JMP MAIN$01 ***************************** * NEW SOURCE FILE ***************************** NEW$SOURCE: CALL GET$STR LXI H,SRCNAME LXI D,STRING LDA STR$SIZE ORA A JZ NEW$SRC$ERR MOV B,A MVI A,9 ; CHECK MAX LEN CMP B JC NEW$SRC$ERR SUB B MOV C,A NEW$SRC$MOV: ; MOVE IN NAME LDAX D MOV M,A INX D INX H DCR B JNZ NEW$SRC$MOV NEW$SRC$CLR: ; CLEAR RESIDUAL DCR C RZ MVI M,' ' INX H JMP NEW$SRC$CLR NEW$SRC$ERR: LXI H,NEW$SRC$MSG CALL MSGOUT CALL PRN$MSG$00 JMP SYSTEM NEW$SRC$MSG: DB '++ NEW FILE SOURCE ERROR ++' DB CR ***************************** * EQU ***************************** AA$06: CALL L159B JZ SYNTAX$ERR LHLD LOC$CTR2 PUSH H CALL G$OPRND$00 SHLD LOC$CTR2 CALL L15A5 CALL L1644 LXI H,L1692 MVI M,'=' POP H SHLD LOC$CTR2 JMP END$LINE ***************************** * IF ***************************** AA$07: CALL L15A5 CALL G$OPRND$00 LDA PRN$LINE CPI ' ' JNZ END$LINE MOV A,L RAR JC END$LINE AA$071: CALL GET$STR LDA STR$TYPE CPI 4 JNZ AA$072 LDA STRING CPI EOF MVI A,'B' ;BALANCE ERROR. 42H CZ ERR$COD JZ E$PASS JMP AA$071 AA$072: CPI 1 JNZ AA$071 CALL SCAN$OP JNZ AA$071 CPI 11H JNZ AA$071 MOV A,B CPI 5 JNZ AA$071 JMP TIT$01 ***************************** * MACRO ***************************** AA$08: CALL NOT$IMP$ERR JMP END$LINE ***************************** * ORG ***************************** AA$09: CALL G$OPRND$00 LDA PRN$LINE CPI ' ' JNZ END$LINE SHLD LOC$CTR2 SHLD LOC$CTR1 CALL L15A5 CALL L1641 JMP END$LINE ***************************** * DEF (NOW/SET) ***************************** AA$10: CALL L159B JZ SYNTAX$ERR CALL SYM$18 CPI 5 CNZ LABLE$ERR MVI A,5 CALL SYM$17 CALL G$OPRND$00 PUSH H CALL L159B POP H CALL PUT$SYM$VAL LXI H,0 SHLD L1686 JMP END$LINE ***************************** * TITLE ***************************** AA$11: CALL GET$STR LDA STR$TYPE CPI 3 JNZ SYNTAX$ERR LDA STR$SIZE MOV B,A INR B LXI H,STRING LXI D,TIT$BUF TIT$00: DCR B JZ TIT$01 MOV A,M STAX D INX H INX D JMP TIT$00 TIT$01: CALL GET$STR JMP END$LINE ***************************** * SYM (12) ***************************** AA$12: LXI H,FLAG$BYT MOV A,M ORI SYMF MOV M,A JMP TIT$01 ***************************** * XREF (13) ***************************** AA$13: LXI H,FLAG$BYT MOV A,M ORI XREFF MOV M,A JMP TIT$01 ***************************** * EJECT (14) ***************************** AA$14: MVI A,56 STA LIN$PAG$CT JMP TIT$01 ***************************** * COPY (15) ***************************** AA$15: LXI H,COPY$LEVEL INR M INX H LXI D,SRCFCB ; SAVE FCB MVI C,12 AA$15A: LDAX D MOV M,A INX D INX H DCR C JNZ AA$15A CALL NEW$SOURCE LHLD IBUF$CTR ; SAVE PTR SHLD COPY$CTR LDA SRC$EXT ; & EXTENT STA COPY$EXT LDA SRC$CR ; & RECORD STA COPY$CR LDA CUR$CHR ; & CHARACTER STA COPY$CHR JMP AA$053 ; GOTO LINK ***************************** * COPY VARIABLES ***************************** COPY$LEVEL DB 0 COPY$FCB DW 0,0,0,0,0,0 COPY$CTR DW 0 COPY$EXT DB 0 COPY$CR DB 0 COPY$CHR DB 0