TITLE 'EXTERNAL EQUATES'›SUBTTL 'File EXTEQU.AMA'›;›; This module outputs equate pseudo-ops for all›; non-system address references not contained in›; the disassembled program.›;›PROC›EXTEQULDA #LOW STR4;External equates comment›STA STRACC›LDA #HIGH STR4›STA STRACC+1›LDX #0›JSR WRTSTR›LDA #EOL›STA LINEBF,X›JSR RECOUT›LDA LABCNT›STA LABNR;Temp storage for LABCNT/2›LDA LABCNT+1›STA LABNR+1›LSR LABNR+1;Divide by 2›ROR LABNR›LDA #0›STA LABEL›STA LABEL+1›:LP1INC LABEL;Pick a label›BNE :NOCAR›INC LABEL+1›:NOCARSEC›LDA LABNR›SBC LABEL›LDA LABNR+1›SBC LABEL+1›BCC :WRAP›LDX LABEL;See if it was ref'd›LDY LABEL+1›JSR MAPACC›LDA LABMAP,X›AND MASK,Y›BNE :LP1;Yes, try another›LDX #0;No, output equate›JSR WRTLAB›LDA #' '›:LP3STA LINEBF,X›INX›CPX #7›BCC :LP3›LDA #'='›STA LINEBF,X›INX›LDA #' '›STA LINEBF,X›INX›LDA #'$'›STA LINEBF,X›INX›LDY #1›CLC ; Add 2x LABEL to LABBAS›LDA #LOW LABBAS ; to get LABACC›ADC LABEL;Inelegant, what?›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›LDA (LABACC),Y›BEQ :LP1;Skip hi byte if p.0›JSR WRTHEX›DEY›LDA (LABACC),Y›JSR WRTHEX›LDA #EOL›STA LINEBF,X›JSR RECOUT›JMP :LP1;Back for another›:WRAPLDA #LOW STR5;Closing comment›STA STRACC›LDA #HIGH STR5›STA STRACC+1›LDX #0›JSR WRTSTR›LDA #EOL›STA LINEBF,X›JSR RECOUT›RTS›EPROC›››