TITLE 'ZERO-PAGE EQUATES'›SUBTTL 'File ZPEQU.AMA'›;›; This module outputs equate statements›; for all referenced zero-page locations other›; than system locations. These equates must be›; placed at the front of the pseudo-source file›; because of the zero-page forward reference problem›; in 6502 assemblers.›;›PROC›ZPEQULDA #LOW STR6;Output opening msg›STA STRACC›LDA #HIGH STR6›STA STRACC+1›LDX #0›JSR WRTSTR›LDA #EOL›STA LINEBF,X›JSR RECOUT›LDA LABCNT;Store LABCNT/2›STA LABNR›LDA LABCNT+1›STA LABNR+1›LSR LABNR+1›ROR LABNR›LDA #0 ;Initialize label nr›STA LABEL›STA LABEL+1›:LP1INC LABEL;Pick a label›BNE :NOCAR›INC LABEL+1›:NOCARSEC ;Out of labels?›LDA LABNR›SBC LABEL›LDA LABNR+1›SBC LABEL+1›BCC :WRAP;Yes, get out›CLC ;No, check this one›LDA #LOW LABBAS›ADC LABEL›STA LABACC›LDA #HIGH LABBAS›ADC LABEL+1›STA LABACC+1›LDA LABACC›ADC LABEL›STA LABACC›LDA LABACC+1›ADC LABEL+1›STA LABACC+1›LDY #1 ;Zero-page label?›LDA (LABACC),Y›BNE :LP1;No, try another›LDX #0 ;Yes, format it›STA ADRBUF+1;"Z/L" logic keys on this›JSR WRTLAB›LDA #' '›:LP4STA LINEBF,X›INX›CPX #7›BCC :LP4›LDA #'='›STA LINEBF,X›INX›LDA #' '›STA LINEBF,X›INX›LDA #'$'›STA LINEBF,X›INX›LDY #0›LDA (LABACC),Y›JSR WRTHEX›LDA #EOL›STA LINEBF,X›JSR RECOUT;Output equate›JMP :LP1;and do it again›:WRAPLDA #LOW STR7;Output closing msg›STA STRACC›LDA #HIGH STR7›STA STRACC+1›LDX #0›JSR WRTSTR›LDA #EOL›STA LINEBF,X›JSR RECOUT›RTS›EPROC›››