; ; PRINT THE GENERATED CODE/SOURCE LINE ; PRINT JSR CLEAR LDA ADRERR STA PRBUF ; LDX #2 LDA ISVAL BMI NOADDR BNE VALADR ; LDA PC+1 JSR PRHEX LDA PC JMP LSTHLF ; VALADR LDA VALUE+1 JSR PRHEX LDA VALUE LSTHLF JSR PRHEX ; NOADDR LDA LEN STA TEMP BEQ NODATA LDA MODE BMI NODATA JSR PROBJT ;PRINT 1 TO 6 BYTES OF OBJECT CODE NODATA LDX #20 JSR PRSRC EXCODE JSR LIST BMI LINXIT LDA MODE BMI LOKXIT LDA TEMP BEQ LINXIT JSR CLEAR JSR PROBJT LDA #EOL STA PRBUF,X JMP EXCODE ; LOKXIT LDA #0 LINXIT RTS ; ; PRINT A FORMATTED LINE TO LISTING DEVICE ; LIST LDA CURLINE INC CURLINE CMP LPP ;NUMBER OF LINES/PAGE BCC NONEWP LDA #' ' STA PAGE+3 ;BLANK OUT PAGE NO. STA PAGE+2 STA PAGE+1 LDA #0 STA CURLINE ;START OF NEW PAGE INC CURPAGE BNE PAGEOK INC CURPAGE+1 PAGEOK LDA CURPAGE STA FR0 LDA CURPAGE+1 STA FR0+1 JSR IFP JSR FASCII ;CONVERT TO ASCII STRING LDY #$FF PGCPLP INY LDA (INBUFF),Y STA PAGE,Y ;COPY TO HEADING BUFFER BPL PGCPLP AND #$7F STA PAGE,Y ; LDX #PRUNIT LDA #11 ;PRINT MULTIPLE LINES STA ICMD,X LDA #LOW[TTLINE] STA IBUF,X LDA #HIGH[TTLINE] STA IBUF+1,X LDA TTLLEN STA ILEN,X LDA #0 STA ILEN+1 JSR CIOV ;WRITE TITLE LINE ; NONEWP LDX #PRUNIT LDA #9 STA ICMD,X ;PRINT A LINE ENDING WITH EOL LDA #LOW[PRBUF] STA IBUF,X LDA #HIGH[PRBUF] STA IBUF+1,X LDA #81 STA ILEN,X LDA #0 STA ILEN+1,X JMP CIOV ; ; CONVERT NUMBER TO HEX IN PRINT LINE ; PRHEX PHA LSR A LSR A LSR A LSR A SED SEC SBC #9+1 ADC #'9'+1 STA PRBUF,X INX PLA AND #$0F SEC SBC #9+1 ADC #'9'+1 CLD STA PRBUF,X INX RTS ; ; CLEAR THE PRINT LINE ; CLEAR LDX #0 CLLP LDA #' ' STA PRBUF,X INX CPX #80 BCC CLLP LDA #EOL STA PRBUF,X RTS ; ; PRINT SOURCE LINE ; PRSRC LDY #0 PRSCP LDA (TEXTP),Y CMP #TAB BNE STINBF ; TXA LDX #NTABS NXTTAB DEX CMP TABTAB,X BCC NXTTAB LDA TABTAB+1,X TAX BCS PRBMPY STINBF STA PRBUF,X CMP #EOL BEQ GOTEOL INX PRBMPY INY CPX #80 BCC PRSCP GOTEOL RTS ; TABTAB DB 0,2,7,20,29 DB 35,43,51,59,67 DB 72,73,74,75,76 DB 77,78,79 NTABS = *-TABTAB ; ; PRINT OUT A CHUNK OF OBJECT CODE ; PROBJT LDX #7 LDY #0 STY TEMP+1 OBJPRL LDA OPCODE,Y JSR PRHEX DEC TEMP BEQ HEXIT INC TEMP+1 LDY TEMP+1 CPY #6 BNE OBJPRL ; LDOUTB LDA DATBUF-1+6,Y STA OPCODE-1,Y DEY BNE LDOUTB ; PRNX6 LDA DATBUF+6,Y STA DATBUF,Y INY CPY TEMP BCC PRNX6 ; HEXIT RTS