home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Antic Magazine 1989 June
/
Antic_Magazine_1989_06_Antic_Side_A.atr
/
prhand.m65
< prev
next >
Wrap
Text File
|
2023-02-26
|
5KB
|
1 lines
0100 ; MODIFIED PRINTER HANDLER¢0102 ; BY BOB MARTIN¢0104 ; (c)1989, ANTIC PUBLISHING¢0110 ;INITIALIZATION ROUTINE FOR¢0120 ; SPECIAL PRINTER HANDLER¢0140 HATABS = $031A¢0150 ZPAGE1 = $CD¢0160 ;¢0170 *= $0600¢0190 ;PRINTER HANDLER TABLE¢0210 NPTBL¢0220 .WORD 0,0,0¢0230 NPTBLPC¢0240 .WORD 0,0,0,0,0¢0260 ;OLD PRINTER PUT BYTE¢0280 OLDPNT¢0290 JMP OLDPNT¢0300 ;¢0320 ;INITIALIZE NEW PRINTER HANDLER¢0340 INSERT¢0350 LDX #0 :FIND P: HANDLER¢0360 PLOOP¢0370 LDA HATABS,X¢0380 CMP #'P¢0390 BEQ PFND¢0400 INX ¢0410 INX ¢0420 INX ¢0430 BNE PLOOP¢0440 ;¢0450 ;MOVE P: HANDLER TABLE TO NEW¢0460 ; LOCATION¢0480 PFND¢0490 LDA HATABS+1,X¢0500 STA ZPAGE1¢0510 LDA HATABS+2,X¢0520 STA ZPAGE1+1¢0530 LDA #NPTBL&$FF¢0540 STA HATABS+1,X¢0550 LDA #NPTBL/$0100¢0560 STA HATABS+2,X¢0570 LDY #15¢0580 PMVLP¢0590 LDA (ZPAGE1),Y¢0600 STA NPTBL,Y¢0610 DEY ¢0620 BPL PMVLP¢0630 ;¢0640 ;STORE OLD PUT BYTE ADDRESS THEN¢0650 ; CHANGE PUT BYTE ADDRESS TO¢0660 ; POINT TO MODIFIED PUT BYTE¢0670 ; ROUTINE¢0690 CLC ¢0700 LDA NPTBLPC¢0710 ADC #1¢0720 STA OLDPNT+1¢0730 LDA NPTBLPC+1¢0740 ADC #0¢0750 STA OLDPNT+2¢0760 LDA #[NPUTCH-1]&$FF¢0770 STA NPTBLPC¢0780 LDA #[NPUTCH-1]/$0100¢0790 STA NPTBLPC+1¢0800 RTS ¢0810 ;¢0820 *= $02E2¢0830 .WORD INSERT¢0850 ;¢0860 ;MODIFIED PRINTER HANDLER¢0870 ;¢0880 ;INTERCEPTS THE PRINTER HANDLER¢0890 ; AND SENDS UNPRINTABLE¢0900 ; CHARACTERS AS DOT GRAPHICS¢0910 ; OTHER CHARACTERS ARE SENT AS¢0920 ; NORMAL MODE CHARACTERS¢0940 ;¢0950 ;POKE 1791 ($6FF) WITH A "0"¢0960 ; TO ENABLE. ANY OTHER VALUE¢0970 ; WILL DISABLE THIS OPTION.¢0980 ;¢0990 *= INSERT¢1000 ;¢1010 ;JUMP TO OLD PRINTER PUT BYTE¢1020 ;¢1030 PNTPUT¢1040 LDA HA¢1050 PNTPUT2¢1060 LDY HY¢1070 LDX HX¢1080 JSR OLDPNT¢1090 TYA ¢1100 BMI ERROR¢1110 STX RX¢1120 STY RY¢1130 RTS ¢1140 ERROR¢1150 PLA ¢1160 PLA ¢1170 RTS ¢1180 ;¢1190 ;MODIFIED PRINTER PUT BYTE¢1210 NPUTCH¢1220 STA HA ;CK FOR¢1230 STY HY ;UNPRINTABLE¢1240 STX HX ;CHARACTERS¢1250 LDX $06FF¢1260 BEQ PNTOK¢1270 LDX $06FE¢1280 BNE CRGR¢1290 CMP #155¢1300 BEQ PNTOK¢1310 CRGR¢1315 CMP #96¢1320 BEQ NOPNT¢1330 CMP #32¢1340 BCC NOPNT¢1350 CMP #123¢1360 BCS NOPNT¢1370 PNTOK¢1380 JSR PNTPUT¢1390 RTS ¢1400 ;¢1410 ;HANDLER FOR UNPRINTABLE¢1420 ; CHARACTERS¢1430 ;¢1440 NOPNT¢1450 LDX #0¢1460 GRLOOP¢1470 STX HBIT¢1480 LDA GRCODE,X¢1490 JSR PNTPUT2¢1500 LDX HBIT¢1510 INX ¢1520 CPX CODELN¢1530 BCC GRLOOP¢1550 ;¢1560 LDA HA ;GET INTERNAL¢1570 JSR ASC2SCN ;CODE # AND¢1580 STA $CC ;CALC ADDR¢1590 LDA #0 ;OF FONT¢1600 STA ZPAGE1¢1610 STA ZPAGE1+1¢1620 LDX #2¢1630 ALOOP¢1635 CLC ¢1640 ROL $CC¢1650 ROL ZPAGE1¢1660 DEX ¢1670 BPL ALOOP¢1680 CLC ¢1690 LDA #$E0¢1700 ADC ZPAGE1¢1710 STA ZPAGE1¢1730 ;¢1740 LDX #$80 ;CALC THE 8¢1750 STX HBIT ;BYTES¢1760 BLOOP¢1770 JSR SLICE¢1780 JSR PNTPUT2¢1790 LDA #0¢1800 STA ZPAGE1+1¢1810 LSR HBIT¢1820 LDX HBIT¢1830 BNE BLOOP¢1840 LDX RX¢1850 LDY RY¢1860 TYA ¢1870 RTS ¢1880 ;¢1890 ;CONVERT ASCII TO DISPLAY¢1900 ; MEMORY VALUE¢1910 ;¢1920 ASC2SCN¢1930 AND #$7F¢1940 CMP #96¢1950 BCS OUT¢1960 CMP #32¢1970 BCC GRCHR¢1980 SEC ¢1990 SBC #32¢2000 SEC ¢2010 BCS OUT¢2020 GRCHR¢2030 CLC ¢2040 ADC #64¢2050 OUT¢2060 RTS ¢2070 HBIT¢2075 .BYTE 0¢2080 HA .BYTE 0¢2090 HY .BYTE 0¢2100 HX .BYTE 0¢2110 RX .BYTE 0¢2120 RY .BYTE 0¢2130 ;¢2140 ;CALCULATES THE VERTICAL-BYTE¢2150 ; FROM THE CHARACTER FONT¢2160 ;¢2170 ;ADDRESS OF CHARACTER¢2180 ; IN $CC & ZPAGE1¢2190 ;¢2200 ;BIT TO BE SENT TO PRINTER¢2210 ; IN X REGISTER¢2220 ;¢2230 ;RESULTING "SLICED" BYTE IS¢2240 ; RETURNED IN A AND HELD IN¢2250 ; #CE¢2260 ;¢2270 SLICE¢2280 LDA #$01 ;C.ITOH LDA #$80¢2290 STA $CB¢2300 LDY #$07¢2310 LOOP¢2320 TXA ¢2330 AND ($CC),Y¢2340 BEQ NOTSET¢2350 LDA $CB¢2360 ORA ZPAGE1+1¢2370 STA ZPAGE1+1¢2380 NOTSET¢2390 ASL $CB ;C.ITOH LSR $CB¢2400 DEY ¢2410 BPL LOOP¢2420 LDA ZPAGE1+1¢2430 BIT HA ;CK FOR INVID¢2440 BPL NOTINV¢2450 EOR #$FF¢2460 STA ZPAGE1+1¢2470 NOTINV¢2480 RTS ¢2490 ;¢2500 ;PUT THE CONTROL CODE TO CAUSE¢2510 ; YOUR PRINTER TO ACCEPT 8¢2520 ; DOT GRAPHICS BYTES HERE¢2530 ;¢2540 ;C.ITOH CONTROL CODE¢2550 ; GRCODE .BYTE 27,"S0008"¢2560 ;¢2570 GRCODE .BYTE 27,76,8,0¢2580 ;¢2590 CODELN .BYTE CODELN-GRCODE¢2600 ;¢2610 .END ¢