home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Antic Magazine 1985 November
/
Antic_Magazine_1985_11_Antic.atr
/
codewrit.m65
< prev
next >
Wrap
Text File
|
2023-02-26
|
8KB
|
1 lines
10 ;CODEWRITER III¢20 ;BY STEVE STUNTZ¢30 ;(c) 1985, ANTIC PUBLISHING¢40 ;¢50 *= $8000¢55 START¢60 MEM = $B0¢70 VTBASE = $E400¢80 SETVBV = $E45C¢90 PACTL = $D302¢0100 PORTA = $D300¢0110 AUDC1 = $D201¢0120 CH = $02FC¢0130 CDTMA1 = $0226¢0140 ROWCRS = $54¢0150 COLCRS = $55¢0160 VDSLST = $0200¢0170 NMIEN = $D40E¢0180 SDLSTL = $0230¢0185 ATRACT = $4D¢0190 MEMINT = $B4¢0200 MEMRX = $B2¢0210 JSR HEAD1¢0220 LDA #$38¢0230 STA PACTL¢0240 LDA #$01¢0250 STA PORTA¢0260 LDA #$3C¢0270 STA PACTL¢0280 LDA #$01¢0290 STA PORTA¢0300 LDA SDLSTL¢0310 STA MEMINT¢0320 LDA SDLSTL+1¢0330 STA MEMINT+1¢0340 LDA #$82¢0350 LDY #12¢0360 STA (MEMINT),Y¢0370 LDY #28¢0380 STA (MEMINT),Y¢0390 LDA #RXLOOP&255¢0400 STA VDSLST¢0410 LDA #RXLOOP/256¢0420 STA VDSLST+1¢0430 LDA #$FF¢0440 STA POINTRI¢0450 STA POINTRO¢0460 LDA #$20¢0470 STA CWSPC¢0480 LDA #$40¢0490 STA CWMAX¢0500 LDA #$0F¢0510 STA CWAVG¢0520 LDA #$00¢0530 STA I23X37¢0540 STA HILO¢0550 STA NBITS¢0560 STA RXCW¢0570 STA IAMREDI¢0580 STA CTAVG¢0590 STA CWTOT¢0600 STA CWTOT+1¢0610 LDA #2¢0620 STA PREVHILO¢0630 LDA MRX¢0640 STA MEMRX¢0650 LDA MRX+1¢0660 STA MEMRX+1¢0670 LDA #$C0¢0680 STA NMIEN¢0690 ;¢0700 ;SEARCH FOR KEYBOARD CHARACTER¢0710 LP1 JSR RXCH¢0720 JMP LP1¢0730 ;¢0740 ; DEVICE HANDLER¢0750 GOVEC CPX #6¢0760 BNE GOV1¢0770 LDY ROWCRS¢0780 CPY #23¢0790 BNE GOV1¢0800 LDY COLCRS¢0810 CPY #39¢0820 BNE GOV1¢0830 LDY #1¢0840 STY I23X37¢0850 GOV1 TAY ¢0860 LDA VTBASE+1,X¢0870 PHA ¢0880 LDA VTBASE,X¢0890 PHA ¢0900 TYA ¢0910 RTS ¢0920 ;¢0930 ; SCROLL¢0940 SCROLL LDY I23X37¢0950 CPY #1¢0960 BNE SCROL1¢0970 JSR HEAD3¢0980 LDY #0¢0990 STY I23X37¢1000 SCROL1 RTS ¢1010 ;¢1020 ; RX WORD WRAP¢1030 RXWRA LDY COLCRS¢1040 CPY #34¢1050 BCC RXWR9¢1060 CPY #39¢1070 BEQ RXWR9¢1080 RXWR1 LDA #$A0¢1090 JSR RXPNT¢1100 LDY COLCRS¢1110 CPY #39¢1120 BNE RXWR1¢1130 RXWR9 RTS ¢1140 ;¢1150 ;SET PIN1 AND SOUND¢1160 ONOFF CMP #$02¢1170 BNE OFF¢1180 LDY #$00¢1190 STY PORTA SET PIN1 LOW¢1200 LDY #$2F¢1210 STY AUDC1 TURN SOUND ON¢1220 JMP ONOF1¢1230 OFF LDY #$01¢1240 STY PORTA SET PIN1 HIGH¢1250 LDY #$00¢1260 STY AUDC1 TURN SOUND OFF¢1270 ONOF1 RTS ¢1280 ;¢1290 ;HEADING¢1300 HEAD LDY #$00¢1310 STY COPYI¢1320 CR1 LDA COPYR,Y¢1330 LDX #6¢1340 JSR GOVEC¢1350 INC COPYI¢1360 LDY COPYI¢1370 CPY #38¢1380 BNE CR1¢1390 RTS ¢1400 ;¢1410 ;SET CURSOR AT 0,0¢1420 HEAD00 LDA ROWCRS¢1430 STA ROW¢1440 LDA COLCRS¢1450 STA COL¢1460 LDA #$00¢1470 STA ROWCRS¢1480 LDA #$02¢1490 STA COLCRS¢1500 RTS ¢1510 ;¢1520 ;SET CURSOR AT ORIGINAL POSITION¢1530 HEADORG LDA ROW¢1540 STA ROWCRS¢1550 LDA COL¢1560 STA COLCRS¢1570 LDA #$1E¢1580 LDX #6¢1590 JSR GOVEC¢1600 LDA #$1F¢1610 LDX #6¢1620 JSR GOVEC¢1630 RTS ¢1640 ;¢1650 ;KEYBOARD HEADING¢1660 HEAD1 JSR HEADCLR¢1670 JSR HEAD¢1680 RTS ¢1690 ;¢1700 ;CHANGE SPEED HEADING¢1710 HEAD3 JSR HEAD00¢1720 JSR HEAD¢1730 JSR HEADORG¢1740 RTS ¢1750 ;¢1760 ;¢1770 HEADCLR LDA #$7D¢1780 LDX #6¢1790 JSR GOVEC¢1800 RTS ¢1810 ;¢1820 ; RX INTERRUPT LOOP¢1830 RXLOOP = *¢1840 PHA ¢1850 TYA ¢1860 PHA ¢1870 JSR CWCOUNT¢1872 LDA #0¢1874 STA ATRACT¢1880 LDA PORTA¢1890 AND #$02¢1900 CMP PREVHILO¢1910 BNE RI1¢1920 JMP RI2¢1930 RI1 JSR CHANGE¢1940 RI2 PLA ¢1950 TAY ¢1960 PLA ¢1970 RTI ¢1980 ;¢1990 ; RX CW COUNT BY 1¢2000 CWCOUNT LDY POINTRI¢2010 LDA (MEMRX),Y¢2020 CMP CWMAX¢2030 BEQ RC1¢2040 CLC ¢2050 ADC #$01¢2060 STA (MEMRX),Y¢2070 RC1 RTS ¢2080 ;¢2090 ; DETECT CW CHANGE¢2100 CHANGE INC POINTRI¢2110 LDA PREVHILO¢2120 JSR ONOFF¢2130 EOR #$02¢2140 STA PREVHILO¢2150 LDY POINTRI¢2160 LDA #0¢2170 STA (MEMRX),Y¢2180 RTS ¢2190 ;¢2200 ;¢2210 ; RX CHARACTER FROM PIN 2¢2220 RXCH JSR READY¢2230 LDA IAMREDI¢2240 CMP #1¢2250 BNE RX02¢2260 INC POINTRO¢2270 JSR COUNTAVG¢2280 LDA #1¢2290 EOR HILO¢2300 STA HILO¢2310 CMP #1¢2320 BNE RX01¢2330 JSR SHIFT¢2340 JMP RX02¢2350 RX01 JSR FINDCH¢2360 RX02 RTS ¢2370 ;¢2380 ; SHIFT ROR BUILD NBITS¢2390 SHIFT LDA NBITS¢2400 CMP #7¢2410 BEQ SHIFT9¢2420 INC NBITS¢2430 LDY POINTRO¢2440 LDA (MEMRX),Y¢2450 CMP CWAVG¢2460 BCC SHIFT1¢2470 SEC ;DASH¢2480 JMP SHIFT2¢2490 SHIFT1 CLC ;DOT¢2500 SHIFT2 ROR RXCW¢2510 SHIFT9 RTS ¢2520 ;¢2530 ; READY TO READ COUNT¢2540 READY LDX POINTRO¢2550 CPX POINTRI¢2560 BEQ READY1¢2570 INX ¢2580 CPX POINTRI¢2590 BNE READY2¢2600 LDY POINTRI¢2610 LDA (MEMRX),Y¢2620 CMP CWMAX¢2630 BEQ READY2¢2640 READY1 LDA #0¢2650 JMP READY3¢2660 READY2 LDA #1¢2670 READY3 STA IAMREDI¢2680 RTS ¢2690 ;¢2700 ; FIND CW CHARACTER¢2710 FINDCH LDY POINTRO¢2720 LDA (MEMRX),Y¢2730 CMP CWAVG¢2740 BCC FIND09¢2750 JSR FINISHCH¢2760 JSR LOOKASCI¢2770 LDY POINTRO¢2780 LDA (MEMRX),Y¢2790 CMP CWSPC¢2800 BCC FIND09¢2810 JSR RXWRA¢2820 LDA #$A0¢2830 JSR RXPNT¢2840 FIND09 RTS ¢2850 ;¢2860 ; PRINT RECEIVED DATA¢2870 RXPNT LDX #6¢2880 JSR GOVEC¢2890 JSR SCROLL¢2900 RXPN1 RTS ¢2910 ;¢2920 ; FINISH RXC2 CHARACTER¢2930 FINISHCH SEC ¢2940 ROR RXCW¢2950 INC NBITS¢2960 FINISH1 LDA NBITS¢2970 CMP #8¢2980 BCS FINISH9¢2990 CLC ¢3000 ROR RXCW¢3010 INC NBITS¢3020 JMP FINISH1¢3030 FINISH9 LDA #0¢3040 STA NBITS¢3050 RTS ¢3060 ;¢3070 ; LOOKUP AND PRINT CHARACTER¢3080 LOOKASCI LDX #40¢3090 LOOK1 LDA CWCHA,X¢3100 CMP RXCW¢3110 BEQ LOOK3¢3120 INX ¢3130 CPX #91¢3140 BEQ LOOK2¢3150 JMP LOOK1¢3160 LOOK2 LDA #63¢3170 JMP LOOK4¢3180 LOOK3 TXA ¢3190 LOOK4 EOR #$80¢3200 JSR RXPNT¢3210 RTS ¢3220 ;¢3230 ; COUNT FOR AVERAGE¢3240 COUNTAVG LDX CTAVG¢3250 INX ¢3260 CPX #16¢3270 BEQ COUNTA1¢3280 INC CTAVG¢3290 LDY POINTRO¢3300 LDA (MEMRX),Y¢3310 CLC ¢3320 ADC CWTOT¢3330 STA CWTOT¢3340 LDA #0¢3350 ADC CWTOT+1¢3360 STA CWTOT+1¢3370 JMP COUNTA2¢3380 COUNTA1 JSR CALCAVG¢3390 COUNTA2 RTS ¢3400 ;¢3410 ; CALCULATE AVERAGE¢3420 CALCAVG CLC ¢3430 ROR CWTOT+1¢3440 ROR CWTOT¢3450 CLC ¢3460 ROR CWTOT+1¢3470 ROR CWTOT¢3480 LDA CWTOT¢3490 STA CWMAX¢3500 CLC ¢3510 ROR CWTOT¢3520 LDA CWTOT¢3530 STA CWSPC¢3540 CLC ¢3550 ROR CWTOT¢3560 LDA CWTOT¢3570 STA CWAVG¢3580 CLC ¢3590 ROR CWTOT¢3600 LDA CWTOT¢3610 CLC ¢3620 ADC CWSPC¢3630 STA CWSPC¢3640 LDA #0¢3650 STA CWTOT¢3660 STA CWTOT+1¢3670 STA CTAVG¢3680 RTS ¢3690 ;¢3700 ;ROM DATA¢3710 COPYR¢3720 .BYTE " Codewriter III BY STEVE STUNTZ "¢3730 MRX .WORD MEMRX1¢3740 CWCHA¢3750 .BYTE 0,0,0,0,0,0,0,0¢3760 .BYTE 0,0,0,0,0,0,0,0¢3770 .BYTE 0,0,0,0,0,0,0,0¢3780 .BYTE 0,0,0,0,0,0,0,0¢3790 .BYTE $FE,$00¢3800 .BYTE $00,$00,$00,$00,$00,$00¢3810 .BYTE $6D,$6D,$22,$2A,$73,$68¢3820 .BYTE $6A,$29,$3F,$3E,$3C,$38¢3830 .BYTE $30,$20,$21,$23,$27,$2F¢3840 .BYTE $47,$55,$FF,$31,$FF,$4C¢3850 .BYTE $00,$06,$11,$15,$09,$02¢3860 .BYTE $14,$0B,$10,$04,$1E,$0D¢3870 .BYTE $12,$07,$05,$0F,$16,$1B¢3880 .BYTE $0A,$08,$03,$0C,$18,$0E¢3890 .BYTE $19,$1D,$13¢3900 *= CWCHA+$0100¢3910 ;¢3920 PND = * ; END OF BOOT FILE¢3930 ;*=$1000¢3940 COPYI *= *+1¢3950 ROW *= *+1¢3960 COL *= *+1¢3970 MEMRX1 = *¢3980 *= *+$0100¢3990 POINTRI *= *+1¢4000 POINTRO *= *+1¢4010 CWMAX *= *+1¢4020 CWSPC *= *+1¢4030 CWAVG *= *+1¢4040 PREVHILO *= *+1¢4050 HILO *= *+1¢4060 NBITS *= *+1¢4070 RXCW *= *+1¢4080 IAMREDI *= *+1¢4090 CTAVG *= *+1¢4100 CWTOT *= *+2¢4110 I23X37 *= *+1¢4120 RXINDX *= *+1¢4122 *= $02E0¢4124 .WORD START¢4130 .END ¢