LDA (START),Y BNE GT.LBLCT LDY *SLAB+1 BEQ END GT.LBLCT LDY #6 GL1 LSR *SLAB+1 ROR A DEY BNE GL1 STA *SLAB CMP *PLAB BNE BEGIN? LDA *SLAB+1 CMP *PLAB+1 BNE BEGIN? JMP OT.LNO BEGIN? LDA *PLAB+1 BPL TO.EL AND #$7F STA *PLAB+1 CMP *SLAB+1 BNE CKLBLBUF LDA *PLAB CMP *SLAB BEQ OT.LIN BNE CKLBLBUF TO.EL JSR END.LIN LDA *LINCT AND #$F0 CLC SED ADC #$10 STA *LINCT LDA *LINCT+1 ADC #0 STA *LINCT+1 CLD CKLBLBUF LDY #2 LDA (LABADDR),Y BNE NTLBL+2 JMP GR3 NTLBL LDA (LABADDR),Y BMI NL1 INY BNE NTLBL NL1 TYA SEC ADC *LABADDR STA *LABADDR BCC NL2 INC *LABADDR+1 NL2 INC *PLAB BNE NL3 INC *PLAB+1 NL3 LDA *SLAB CMP *PLAB BNE CKLBLBUF LDA *SLAB+1 CMP *PLAB+1 BNE CKLBLBUF JSR CMPMEM BCC OT.LIN LDA #H,OT.LIN STA VEC+1 LDA #L,OT.LIN STA VEC JMP GR2 OT.LIN LDA *LINCT JSR OUTCHR LDA *LINCT+1 JSR OUTCHR LDY #2 LDA (LABADDR),Y CMP #'! BNE OT.LBL JSR OUTCHR JSR OUTCHR JSR OUTCHR INY INY INY OT.LBL LDA (LABADDR),Y BMI OT.ELBL JSR OUTCHR INY BNE OT.LBL OT.ELBL AND #$7F JSR OUTCHR JSR SPACE JSR SEMICON LDA #'$ JSR OUTCHR LDY #1 LDA (LABADDR),Y JSR OUTBYT DEY LDA (LABADDR),Y JSR OUTBYT JSR SPACE INC *LABCT OT.LNO DEC *LABCT BNE OTREF3 JSR CR INC *LINCT LDA *LINCT AND #$F CMP #$A BCC OTREF1 DEC *LINCT OTREF1 JSR CMPMEM BCC OTREF2 LDA #H,OTREF2 STA VEC+1 LDA #L,OTREF2 STA VEC JMP GR2 OTREF2 LDA *LINCT JSR OUTCHR LDA *LINCT+1 JSR OUTCHR JSR SPACE JSR SEMICON JSR SPC6 OTREF3 JSR SPC3 LDY #1 LDA (START),Y AND #$20 BNE LIN.NDEF LDA #'# LIN.NDEF JSR OUTCHR BIT *FLAG BVS NOFILHD LDA (START),Y ORA #$40 AND #$5F CLC ADC #1 JSR OUTCHR NOFILHD INY LDA (START),Y JSR OUTBYT INY LDA (START),Y JSR OUTBYT LDA *START CLC ADC #4 STA *START BCC NT.CODE INC *START+1 NT.CODE JMP MO.LBLCO CMPMEM LDA *START SEC SBC *MEMPTR TAY LDA *START+1 SBC *MEMPTR+1 BNE CM1 TYA CMP #$50 BCC CM2 CM1 CLC RTS CM2 LDA #0 JSR OUTCHR LDY #2 STA (MEMPTR),Y LDA *MEMPTR STA *TPRES LDA *MEMPTR+1 STA *TPRES+1 LDA *START STA TXEN LDA *START+1 STA TXEN+1 LDA TXST+1 STA *MEMPTR+1 LDA TXST STA *MEMPTR BNE CM3 DEC *MEMPTR+1 CM3 DEC *MEMPTR SEC RTS SEMICON LDA #'; OUTCHR INC *MEMPTR BNE OTCR1 INC *MEMPTR+1 OTCR1 STY *TEMP LDY #0 STA (MEMPTR),Y LDY *TEMP RTS SPC6 JSR SPC3 SPC3 JSR SPACE JSR SPACE SPACE PHA LDA #$20 JSR OUTCHR PLA RTS CR STY *TEMP PHA LDY #0 LDA (MEMPTR),Y ORA #$80 STA (MEMPTR),Y LDA #L/L STA *LABCT LDY *TEMP PLA RTS OUTBYT PHA PHA LSR A LSR A LSR A LSR A JSR NIBASC JSR OUTCHR PLA JSR NIBASC JSR OUTCHR PLA RTS CONT.TAPE JSR TAPEON1 LDY #CTMSG2-CTMSG1 JSR OTCTMSG LDA #0 LDY #4 HD.ADDR LDA TAPTAB-1,Y STA TSTART-1,Y DEY BNE HD.ADDR JSR U/LOAD BCC CALC ERRMSG LDY #CTMSG1-CTMSG1 JSR OTCTMSG JSR MINCHR PHA JSR RCRLF PLA CMP #'Y BEQ CONT.TAPE CMP #'N BNE ERRMSG JSR TAPEOF1 JMP RAENOMSG CALC LDA TXEN SEC SBC #3 STA TEND STA *USER LDX TXEN+1 BCS CALC1 DEX CALC1 STX TEND+1 STX *USER+1 CLC ADC HSTART PHP SEC SBC HEND STA TSTART TAY TXA SBC HEND+1 PLP ADC HSTART+1 STA TSTART+1 CMP *PBUF+1 BCS CALC3 CALC2 JMP GR2 CALC3 BNE CLREND CPY *PBUF BCC CALC2 CLREND LDY #2 LDA #0 CLE1 STA (USER),Y DEY BPL CLE1 JSR U/LOAD BCS ERRMSG JSR TAPEOF1 LDY #CTMSG3-CTMSG1 OTCTMSG LDA CTMSG1,Y BEQ OCM1 CMP #$A BEQ OCM2 JSR ROUTCHR INY BNE OTCTMSG OCM2 JSR RCRLF INY BNE OTCTMSG OCM1 RTS !!!MOVE .MD (FROM TO) IFP FROM-$100 LDA FROM *** IFM FROM-$100 LDA *FROM *** STA *TO IFP FROM-$FF LDA FROM+1 *** IFM FROM-$FF LDA *FROM+1 *** STA *TO+1 .ME !!!NEXT .MD (ADDRS) ...NEXT1 INY LDA (ADDRS),Y BPL ...NEXT1 SEC TYA ADC *ADDRS STA *ADDRS BCC ...NEXT2 INC *ADDRS+1 ...NEXT2 .ME SORT MOVE (STST LBLPTR) LDY #2 LDA (LBLPTR),Y BNE NEXTLBL SAEND RTS NEXTLBL LDY #1 NEXT (LBLPTR) LDY #2 LDA (LBLPTR),Y BEQ SAEND MOVE (STST CURPTR) COMPARE LDY #1 COMPARE1 INY LDA (CURPTR),Y BMI COMPARE2 LDA (LBLPTR),Y BMI COMPARE3 CMP (CURPTR),Y BCC INSERT BEQ COMPARE1 NEXTCUR NEXT (CURPTR) LDA *CURPTR CMP *LBLPTR BNE COMPARE LDA *CURPTR+1 CMP *LBLPTR+1 BNE COMPARE BEQ NEXTLBL COMPARE2 LDA (LBLPTR),Y ORA #$80 .BY $2C COMPARE3 AND #$7F CMP (CURPTR),Y BCC INSERT BNE NEXTCUR+1 ASL A BCS NEXTCUR+1 INSERT LDY #$FF SAVE INY LDA (LBLPTR),Y STA LBLBU,Y BPL SAVE CPY #2 BCC SAVE LDX #0 MOVE (LBLPTR TPTR) INY INS1 LDA *TPTR BNE INS2 DEC *TPTR+1 INS2 DEC *TPTR LDA (TPTR,X) STA (TPTR),Y LDA *TPTR CMP *CURPTR BNE INS1 LDA *TPTR+1 CMP *CURPTR+1 BNE INS1 DEY TYA TAX INS3 LDA LBLBU,Y STA (TPTR),Y DEY BPL INS3 TXA JMP NEXTLBL+9 END.LIN LDA *LINCT AND #$F BNE EL1 LDA *LABCT CMP #L/L BNE EL1 JSR SPC3 JSR SPACE LDA #'* LDY #4 EL2 DEY JSR OUTCHR BNE EL2 BIT *FLAG BVS EL1 JSR OUTCHR EL1 JMP CR MSG .BY $4 $0 ' / = EXTERNAL ' .BY '# = LINE DEFINE' $C4 .BY $6 $0 $89 .BY $8 $0 'SYMBOL ;VALUE ' .BY 'CROSS-REFERENCE' $D3 MSGEND PSE1 .BY 'ECB' PSE2 .BY 'NTY' CTMSG1 .BY $7 'TAPE LOAD ERROR' $D $A .BY 'TRY AGAIN (Y/N) ? ' 0 CTMSG2 .BY 'LOADING' $D $A $0 CTMSG3 .BY 'LOADED' $D $A $0 TAPTAB .BY $28 $01 $2D $01 LBLBU .DS 10 VEC .DS 2 .EN