1000 ;
1010 ; BREITSCHRIFT
1020 ;
1030 ; RASTER INTERRUPT
1040 ;
1050 ; KKAMPF JS/SPRITES
1060 ;
1070 ;
1080 ; 10. 8. 1985
1090 ;
1100 ;
1110 ORG 20000
1120 ;
1130 ;
1140 ;
1150 CSET EQU $D000
1160 CSET2 EQU $E000
1170 TMP1 EQU 250
1180 TMP2 EQU 252
1190 TMP3 EQU 254
1200 TMP4 EQU 2
1210 TMP5 EQU 3
1220 ;
1230 JS1 EQU 254
1240 JS2 EQU 255
1250 ;
1260 ;
1270 ZAEHLER EQU 251
1280 ANZAHL EQU 252
1290 ANZAHLTMP EQU 253
1300 ;
1310 CHRGET EQU $0073
1320 FRMNUM EQU $AD8A
1330 GETADR EQU $B7F7
1340 ;
1350 ;
1360 ;********************
1370 ;
1380 VEKTOREN JMP ZSINIT
1390 JMP EINSPRUNG1
1400 JMP EINSPRUNG2
1410 JMP JOYSTICK
1420 JMP MOVESPRITES
1430 ;
1440 DFB <SPRITEX,>SPRITEX
1450 ;
1460 ;********************
1470 ;
1480 ;
1490 ;
1500 ZSINIT LDY #0
1510 STY TMP1
1520 STY TMP2
1530 STY TMP3
1540 LDA #>CSET
1550 STA TMP1+1
1560 LDA #>CSET2
1570 STA TMP2+1
1580 ;
1590 VERSCHIEBEN SEI
1600 LDA #51
1610 STA 1
1620 LDX #16
1630 VSLOOP LDA (TMP1),Y
1640 STA (TMP2),Y
1650 INY
1660 BNE VSLOOP
1670 INC TMP1+1
1680 INC TMP2+1
1690 DEX
1700 BNE VSLOOP
1710 LDA #53
1720 STA 1
1730 ;
1740 ;
1750 VERBREITERN LDX #1
1760 LDA #>CSET2
1770 STA TMP1+1
1780 LDA #>CSET2+4
1790 STA TMP2+1
1800 LDA #>CSET2+6
1810 STA TMP3+1
1820 ;
1830 LDA #2
1840 STA TMP5
1850 VBLOOP LDA (TMP1),Y
1860 STA TMP4
1870 JSR SCHIEB
1880 STA (TMP2),Y
1890 JSR SCHIEB
1900 STA (TMP3),Y
1910 INY
1920 BNE VBLOOP
1930 INC TMP1+1
1940 INC TMP2+1
1950 INC TMP3+1
1960 DEC TMP5
1970 BNE VBLOOP
1980 ;
1990 ;
2000 NEUEZEICHEN LDX #7
2010 NZLOOP LDA #255
2020 STA 58624,X
2030 STA 59136,X
2040 LDA Z27,X
2050 STA 57560,X
2060 LDA Z29,X
2070 STA 57576,X
2080 DEX
2090 BPL NZLOOP
2100 ;
2110 ;
2120 LDA #148
2130 STA 56576
2140 LDA #24
2150 STA 53272
2160 LDA #196
2170 STA 648
2180 LDA #55
2190 STA 1
2200 CLI
2210 LDA #147
2220 JSR 65490
2230 ;
2240 ;
2250 LDA #<OUTPUT
2260 STA 806
2270 LDA #>OUTPUT
2280 STA 807
2290 ;
2300 RTS
2310 ;
2320 ;
2330 SCHIEB LDX #4
2340 SCHIEB1 ASL TMP4
2350 PHP
2360 ROL
2370 PLP
2380 ROL
2390 DEX
2400 BNE SCHIEB1
2410 RTS
2420 ;
2430 ;
2440 OUTPUT PHA
2450 LDA $9A
2460 CMP #3
2470 BNE NORMAL
2480 LDA 199 ;RVS
2490 BEQ NORMAL
2500 PLA
2510 PHA
2520 CMP #32
2530 BCC NORMAL
2540 BEQ SPACE
2550 CMP #96
2560 BCS NORMAL
2570 ;
2580 JSR $E716
2590 PLA
2600 ORA #128
2610 JMP $E716
2620 ;
2630 SPACE PLA
2640 LDA #0
2650 STA 199
2660 LDA #32
2670 JSR $E716
2680 JSR $E716
2690 INC 199
2700 RTS
2710 ;
2720 NORMAL JMP $F1CB
2730 ;
2740 ;
2750 ;
2760 ;
2770 ;KKAMPF JS/SPRITES
2780 ;
2790 ;
2800 JOYSTICK SEI
2810 LDA #224
2820 STA 56322
2830 LDA 56321
2840 AND #31
2850 EOR #31
2860 STA JS1
2870 LDA 56320
2880 AND #31
2890 EOR #31
2900 STA JS2
2910 LDA #255
2920 STA 56322
2930 CLI
2940 RTS
2950 ;
2960 ;
2970 MOVESPRITES LDX #2
2980 LDY JS1
2990 JSR MOVE
3000 LDX #5
3010 LDY JS2
3020 JSR MOVE
3030 RTS
3040 ;
3050 ;
3060 MOVE STX SPRITENR
3070 TYA
3080 AND #16
3090 BNE BUTTON
3100 ;
3110 TYA
3120 AND #4 ; LINKS
3130 BEQ RECHTS?
3140 LDA SPRITEX,X
3150 CMP #15
3160 BCC MOVE2
3170 DEC SPRITEX,X
3180 DEC SPRITEX+1,X
3190 DEC SPRITEX+2,X
3200 JMP DOIT
3210 ;
3220 RECHTS? TYA
3230 AND #8
3240 BEQ MOVE2
3250 LDA SPRITEX,X
3260 CMP #158
3270 BCS MOVE2
3280 INC SPRITEX,X
3290 INC SPRITEX+1,X
3300 INC SPRITEX+2,X
3310 JMP DOIT
3320 ;
3330 MOVE2 RTS
3340 ;
3350 ;
3360 DOIT LDA 53265
3370 BPL DOIT
3380 LDX #7
3390 LDY #14
3400 DOIT1 LDA SPRITEX,X
3410 ASL
3420 STA 53248,Y
3430 ROL UEBERTRAG
3440 DEY
3450 DEY
3460 DEX
3470 BPL DOIT1
3480 LDA UEBERTRAG
3490 STA 53264
3500 RTS
3510 ;
3520 BUTTON RTS
3530 ;
3540 ;
3550 ;
3560 ;
3570 ; RASTER INTERRUPT
3580 ;
3590 ;
3600 ;
3610 EINSPRUNG1 LDA #0
3620 STA ANZAHLTMP
3630 ;
3640 LOOP1 JSR GETNEXT
3650 BCC WEITER1
3660 ;
3670 CMP #0
3680 BNE IQERR
3690 TYA
3700 LDX ANZAHLTMP
3710 STA BCOL,X
3720 LSR
3730 LSR
3740 LSR
3750 LSR
3760 STA FCOL,X
3770 ;
3780 INX
3790 STX ANZAHLTMP
3800 CPX #16
3810 BCC LOOP1
3820 JMP OUTOFMEM
3830 ;
3840 WEITER1 RTS
3850 ;
3860 ;
3870 ;
3880 EINSPRUNG2 LDA #0
3890 STA ANZAHLTMP
3900 ;
3910 LOOP2 JSR GETNEXT
3920 BCC WEITER2
3930 ;
3940 CMP #1
3950 BEQ PRUEFY
3960 BCC WERTOK
3970 ;
3980 IQERR JSR RASTERAUS
3990 JMP $B248
4000 ;
4010 PRUEFY CPY #56
4020 BCS IQERR
4030 LDA #128
4040 ;
4050 WERTOK ORA #27
4060 LDX ANZAHLTMP
4070 STA RASTERH,X
4080 TYA
4090 STA RASTERL,X
4100 ;
4110 INX
4120 STX ANZAHLTMP
4130 CPX #16
4140 BCC LOOP2
4150 ;
4160 OUTOFMEM JSR RASTERAUS
4170 JMP $A435
4180 ;
4190 ;
4200 WEITER2 LDA ANZAHLTMP
4210 BEQ RASTERAUS
4220 STA ANZAHL
4230 ;
4240 LDA 789
4250 CMP #>ISR
4260 BEQ WEITER3
4270 ;
4280 SEI
4290 STA VECTOR+1
4300 LDA 788
4310 STA VECTOR
4320 LDA #>ISR
4330 STA 789
4340 LDA #<ISR
4350 STA 788
4360 LDA #129
4370 STA 53274
4380 LDA #127
4390 STA 56333
4400 ;
4410 LDA 53280
4420 STA COLORS
4430 LDA 53281
4440 STA COLORS+1
4450 ;
4460 LDA RASTERL
4470 STA 53266
4480 LDA RASTERH
4490 STA 53265
4500 ;
4510 LDX #0
4520 STX ZAEHLER
4530 ;
4540 CLI
4550 ;
4560 WEITER3 RTS
4570 ;
4580 ;
4590 RASTERAUS SEI
4600 LDA #128
4610 STA 53274
4620 LDA VECTOR
4630 STA 788
4640 LDA VECTOR+1
4650 STA 789
4660 LDA COLORS
4670 STA 53280
4680 LDA COLORS+1
4690 STA 53281
4700 LDA #129
4710 STA 56333
4720 CLI
4730 RTS
4740 ;
4750 ;
4760 GETNEXT LDY #0
4770 LDA #$2C ; KOMMA
4780 CMP ($7A),Y ; ZEICHEN
4790 BNE NONEXT
4800 ;
4810 JSR CHRGET
4820 JSR FRMNUM
4830 JSR GETADR
4840 SEC
4850 RTS
4860 NONEXT CLC
4870 RTS
4880 ;
4890 ;
4900 ;
4910 ISR LDA 53273
4920 STA 53273
4930 CLI
4940 ;
4950 LDX ZAEHLER
4960 LDY RASTERL,X
4970 LDA BCOL,X
4980 STA 53280
4990 LDA FCOL,X
5000 STA 53281
5010 STY 53266
5020 LDY RASTERH,X
5030 STY 53265
5040 ;
5050 INX
5060 CPX ANZAHL
5070 BCC ISR1
5080 LDX #0
5090 ISR1 STX ZAEHLER
5100 ;
5110 LDA 56333
5120 AND #1
5130 BNE ISR2
5140 ;
5150 PLA
5160 TAY
5170 PLA
5180 TAX
5190 PLA
5200 RTI
5210 ;
5220 ISR2 DFB 76 ; JMP
5230 VECTOR DFB 49,234
5240 ;
5250 ;
5260 ;
5270 ;
5280 Z27 DFB 0,96,120,62,31,62,120,96
5290 Z29 DFB 0,6,30,124,248,124,30,6
5300 ;
5310 ;
5320 SPRITENR DFB 0
5330 UEBERTRAG DFB 0
5340 SPRITEX DFB 0,0,0,0,0,0,0,0
5350 ;
5360 ;
5370 ;
5380 COLORS DFB 14,6
5390 ;
5400 RASTERL DFB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
5410 RASTERH DFB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
5420 BCOL DFB 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
5430 FCOL DFB 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
READY.