
 1000  *SAVE GENERIC SCREEN DUMP
 1010  *--------------------------------
 1020  *
 1030  * GENERIC SCREEN DUMP
 1040  * 
 1560  *--------------------------------
 1570   
 1580  GENERIC    .EQ 1
 1590  AIO        .EQ 2
 1600   
 1610  VERSION    .EQ GENERIC
 1620   
 1630  CH         .EQ $24
 1640  BASL       .EQ $28
 1650  CSWL       .EQ $36 
 1660  CSWH       .EQ CSWL+1
 1670  KSWL       .EQ $38
 1680  KSWH       .EQ KSWL+1
 1690   
 1700  DOS.HOOK   .EQ $3EA
 1710   
 1720  BASCALC    .EQ $FBC1
 1730  COUT       .EQ $FDED
 1740  KEYIN      .EQ $FD1B
 1750  RDKEY      .EQ $FD0C
 1760  OUTPORT    .EQ $FE95  
 1770  VTAB       .EQ $FC22
 1780   
 1790  CR         .EQ $8D      CARRIAGE RETURN
 1800  NOVID      .EQ $578
 1810  *--------------------------------
 1820         .OR $300
 1890  *--------------------------------
 1900  START  LDA #ENTRY   HOOK ROUTINE INTO DOS
 1910         STA KSWL
 1920         LDA /ENTRY
 1930         STA KSWH
 1940         JMP DOS.HOOK
 1950  *--------------------------------
 1960  ENTRY  JSR KEYIN    WAIT FOR A KEYPRESS
 1970         CMP #$90     ^P ?
 1980         BNE .1       NO
 1990         JSR DUMP     YES
 2000         JMP RDKEY    
 2010  .1     RTS
 2020  *--------------------------------
 2030  SLOT   .DA #1
 2040  *--------------------------------
 2050  DUMP   PHA          SAVE A, X, Y
 2060         TXA 
 2070         PHA
 2080         TAY
 2090         PHA
 2100         LDA CH       SAVE CH
 2110         PHA
 2120         LDA CSWL     SAVE OUTPUT HOOKS
 2130         PHA
 2140         LDA CSWH
 2150         PHA  
 2160  *
 2170         LDA SLOT     COLD START BOARD
 2180         JSR OUTPORT    IN SLOT 1
 2190         .DO VERSION=GENERIC
 2200         LDA #$89     KILL VIDEO ECHO
 2210         JSR COUT
 2220         LDA #"N"     
 2230         JSR COUT
 2240         NOP          PAD TO STAY ALIGNED W/ AIO VERSION
 2250         .FIN
 2260         .DO VERSION=AIO
 2270         LDA #$80     KILL VIDEO ECHO
 2280         JSR COUT
 2290         LDX SLOT
 2300         STA NOVID,X
 2310         .FIN
 2320  *
 2330         LDA #CR      START ON A NEW LINE
 2340         JSR COUT
 2350  *
 2360         LDX #0       START W/ 1ST LINE (0TH)
 2370         STX CH     SET CH TO 0 SO PRINTER WON'T INDENT
 2380   
 2390  .1     TXA          LINE LOOP
 2400         JSR BASCALC  GET ADDR OF LINE
 2410         LDY #0       START W/ 1ST CHARACTER (0TH)
 2420  .2     LDA (BASL),Y GET A CHAR
 2430  .3     CMP #$A0     CONVERT FLASH/INVERSE CHAR
 2440         BCS .4         NON-FLASHING U.C.
 2450         ADC #$40
 2460         BNE .3       ..ALWAYS
 2470  .4     AND #$7F     MASK OFF HI BIT TO AVOID
 2480  *                      EPSON BLOCK GRAPHICS
 2490         JSR COUT     PRINT IT
 2500         INY          LOOP FOR ANOTHER CHAR
 2510         CPY #40
 2520         BCC .2
 2530         LDA #CR      END OF LINE 
 2540         JSR COUT      
 2550         INX          LOOP FOR ANOTHER LINE
 2560         CPX #24
 2570         BCC .1
 2580   
 2590         PLA          RESTORE OUTPUT HOOKS
 2600         STA CSWH
 2610         PLA
 2620         STA CSWL
 2630         PLA          RESTORE CH
 2640         STA CH
 2650         JSR VTAB       AND LINE
 2660         PLA          RESTORE Y, X, A
 2670         TAY
 2680         PLA
 2690         TAX
 2700         PLA 
 2710         RTS          ..THAT'S ALL FOLKS
 2720  *

