
 1000  *---------------------------------
 1010  *      SCREEN PRINTER
 1020  *---------------------------------
 1030  MON.CH     .EQ $24
 1040  MON.BASL   .EQ $28,29
 1050  MON.BASCAL .EQ $FBC1
 1060  MON.VTAB   .EQ $FC22
 1070  MON.RDKEY  .EQ $FD0C
 1080  MON.KEYIN  .EQ $FD1B
 1090  DOS.REHOOK .EQ $3EA
 1100  *---------------------------------
 1110  SLOT   .EQ 1
 1120  PRINT  .EQ $C102    $C002+SLOT*256
 1130  MSTRT  .EQ $5F8+SLOT
 1140  MODE   .EQ $678+SLOT
 1150  ESCHAR .EQ $6F8+SLOT
 1160  FLAGS  .EQ $778+SLOT
 1170  *---------------------------------
 1180         .OR $300
 1190  *---------------------------------
 1200         LDA #SCRN.PRNT
 1210         STA $38
 1220         LDA /SCRN.PRNT
 1230         STA $39
 1240         JMP DOS.REHOOK
 1250  *---------------------------------
 1260  SCRN.PRNT
 1270         JSR MON.KEYIN  GET CHAR
 1280         CMP #$90     CONTROL-P?
 1290         BNE .1
 1300         JSR SCREEN.PRINTER
 1310         JMP MON.RDKEY
 1320  .1     RTS
 1330  *---------------------------------
 1340  SCREEN.PRINTER
 1350         PHA          SAVE REGS
 1360         TXA
 1370         PHA
 1380         TYA
 1390         PHA
 1400         LDA MON.CH   SAVE CH
 1410         PHA
 1420         LDA #40      SET UP APPLE CONTROLLER ROM
 1430         STA MSTRT    TEMPORARIES
 1440         LDA #0
 1450         STA MODE
 1460         LDA #$89
 1470         STA ESCHAR
 1480         LDA #1
 1490         STA FLAGS
 1500         LDX #0       START AT LINE 0
 1510  .1     TXA
 1520         JSR MON.BASCAL  COMPUTE BASE POINTER FOR LINE
 1530         LDY #0       START AT CHAR 0
 1540  .2     LDA (MON.BASL),Y
 1550  .3     CMP #$A0     MAP FLASH AND INVERSE TO NORMAL
 1560         BCS .4
 1570         ADC #$40
 1580         BNE .3       ...ALWAYS
 1590  .4     JSR PRINT
 1600         INY          NEXT CHARACTER
 1610         CPY #40      END OF LINE?
 1620         BCC .2       NO
 1630         LDA #$8D     YES, PRINT CARRIAGE RETURN
 1640         JSR PRINT
 1650         INX          NEXT LINE
 1660         CPX #24      END OF SCREEN
 1670         BCC .1       NO
 1680         PLA          YES, RESTORE CH
 1690         STA MON.CH
 1700         JSR MON.VTAB   RESTORE BASE POINTER
 1710         PLA          RESTORE REGS
 1720         TAY
 1730         PLA
 1740         TAX
 1750         PLA
 1760         RTS

