1000 ORG 20000
1010 V EQU 53248
1020 H1 EQU 832
1030 HRGCOL EQU $C400
1040 HRG EQU $E000
1050 CHRGEN EQU $C800
1060 BSP EQU $C400+800
1070 BSPCOL EQU $D800+800
1080 P1 EQU 20
1090 P2 EQU 139
1100 ALTPTR EQU 141
1110 ;
1120 TMP1 EQU 21
1130 BLINK EQU 22
1140 SCHUSSFLAG EQU 144
1150 ;
1160 ;
1170 ;********************
1180 ;
1190 INIT JSR SETMEMORY
1200 JSR SETIRQ
1210 JSR ZEICHENSATZ
1220 JSR SETSCREEN
1230 JSR HRGCLR
1240 JSR SETALTIM
1250 CLI
1260 JMP PODSCHIFF
1270 ;
1280 ;
1290 ;********************
1300 SETMEMORY SEI
1310 LDA 1
1320 AND #253
1330 STA 1
1340 LDA #<NMI
1350 STA $FFFA
1360 STA $FFFC
1370 LDA #>NMI
1380 STA $FFFB
1390 STA $FFFD
1400 LDA #<ISR
1410 STA $FFFE
1420 LDA #>ISR
1430 STA $FFFF
1440 LDX #32
1450 LDA #$C0
1460 STA P1+1
1470 LDA #$60
1480 STA P2+1
1490 LDY #0
1500 STY P1
1510 STY P2
1520 A1 LDA (P1),Y
1530 STA (P2),Y
1540 DEY
1550 BNE A1
1560 INC P1+1
1570 INC P2+1
1580 DEX
1590 BNE A1
1600 RTS
1610 ;********************
1620 SETIRQ LDA #11
1630 STA V+17
1640 LDA #127
1650 STA 56333
1660 LDA #241
1670 STA V+26
1680 LDA #27
1690 STA V+17
1700 LDA #0
1710 STA H1
1720 STA V+33
1730 LDA 56576
1740 AND #255-3
1750 STA 56576
1760 RTS
1770 ;********************
1780 NMI SEI
1790 PHA
1800 TXA
1810 PHA
1820 TYA
1830 PHA
1840 LDA 1
1850 ORA #2
1860 STA 1
1870 LDX #32
1880 LDA #$60
1890 STA P1+1
1900 LDA #$C0
1910 STA P2+1
1920 LDY #0
1930 STY P1
1940 STY P2
1950 A2 LDA (P1),Y
1960 STA (P2),Y
1970 DEY
1980 BNE A2
1990 INC P1+1
2000 INC P2+1
2010 DEX
2020 BNE A2
2030 PLA
2040 TAY
2050 PLA
2060 TAX
2070 PLA
2080 BRK
2090 ;********************
2100 ;********************
2110 ZEICHENSATZ LDX #0
2120 AAA LDA ZEICHEN,X
2130 STA CHRGEN,X
2140 LDA ZEICHEN+256,X
2150 STA CHRGEN+256,X
2160 INX
2170 BNE AAA
2180 RTS
2190 ;********************
2200 SETSCREEN LDX #200
2210 AB LDA DAT-1,X
2220 STA BSP-1,X
2230 LDA COL-1,X
2240 STA BSPCOL-1,X
2250 DEX
2260 BNE AB
2270 RTS
2280 DAT DFB 33,34,35,32,32,32,47,47,47,47,48,32,32,32,32,32
2290 DFB 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32
2300 DFB 32,32,32,32,32,36,37,33
2310 ;
2320 DFB 42,32,0,0,32,32,20,24,28,28,46,32,32,32,32,32
2330 DFB 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32
2340 DFB 38,32,0,0,0,0,0,0
2350 ;
2360 DFB 43,32,1,1,32,32,21,25,29,29,46,32,32,32,32,32
2370 DFB 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32
2380 DFB 39,32,1,1,1,1,1,1
2390 ;
2400 DFB 44,32,0,0,32,32,22,26,30,30,46,32,32,32,32,32
2410 DFB 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32
2420 DFB 40,32,0,0,0,0,0,0
2430 ;
2440 DFB 45,32,1,1,32,32,23,27,31,31,46,32,32,32,32,32
2450 DFB 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32
2460 DFB 41,32,1,1,1,1,1,1
2470 ;
2480 ;
2490 COL DFB 12,12,12,0,0,0,8,8,8,8,8,3,3,3,3,3
2500 DFB 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3
2510 DFB 3,3,3,3,3,12,12,12
2520 ;
2530 DFB 14,0,14,14,0,0,8,8,7,7,8,3,3,3,3,3
2540 DFB 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3
2550 DFB 14,0,14,14,14,14,14,14
2560 ;
2570 DFB 14,0,14,14,0,0,8,8,7,7,8,3,3,3,3,3
2580 DFB 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3
2590 DFB 14,0,14,14,14,14,14,14
2600 ;
2610 DFB 4,0,4,4,0,0,8,8,7,7,8,3,3,3,3,3
2620 DFB 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3
2630 DFB 4,0,4,4,4,4,4,4
2640 ;
2650 DFB 4,0,4,4,0,0,8,8,7,7,8,3,3,3,3,3
2660 DFB 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3
2670 DFB 4,0,4,4,4,4,4,4
2680 ;********************
2690 HRGCLR LDA #>HRG
2700 STA P1+1
2710 LDA #0
2720 STA P1
2730 TAY
2740 LDX #25
2750 AD STA (P1),Y
2760 INY
2770 BNE AD
2780 INC P1+1
2790 DEX
2800 BNE AD
2810 LDA #0
2820 AE STA HRGCOL,X
2830 STA HRGCOL+256,X
2840 STA HRGCOL+512,X
2850 STA HRGCOL+543,X
2860 DEX
2870 BNE AE
2880 LDA #12
2890 STA HRGCOL+799
2900 RTS
2910 ;********************
2920 SETALTIM LDA #30
2930 STA ALTPTR
2940 ;********************
2950 INKALT LDX ALTPTR
2960 DEX
2970 BPL ALTANZ
2980 RTS
2990 ;********************
3000 DEKALT LDX ALTPTR
3010 LDA #0
3020 STA CHRGEN+224,X
3030 INX
3040 CPX #30
3050 BCC ALTANZ
3060 RTS
3070 ;********************
3080 ALTANZ LDA #255
3090 STA CHRGEN+224,X
3100 STX ALTPTR
3110 RTS
3120 ;********************
3130 ;********************
3140 ISR PHA
3150 TXA
3160 PHA
3170 TYA
3180 PHA
3190 LDX H1
3200 LDA #1
3210 STA V+25
3220 NOP
3230 NOP
3240 NOP
3250 NOP
3260 NOP
3270 NOP
3280 NOP
3290 NOP
3300 LDA TAB1,X
3310 STA V+17
3320 LDA TAB2,X
3330 STA V+32
3340 LDA TAB3,X
3350 STA V+18
3360 LDA TAB4,X
3370 STA V+24
3380 LDA TAB5,X
3390 STA V+33
3400 LDA TAB6,X
3410 STA V+22
3420 LDA #1
3430 STA V+25
3440 INX
3450 CPX #3
3460 BCC AQ
3470 LDX #0
3480 AQ STX H1
3490 LDA 56333
3500 PLA
3510 TAY
3520 PLA
3530 TAX
3540 PLA
3550 RTI
3560 TAB1 DFB 16,48,16 ;MODE
3570 TAB2 DFB 11,12,12 ;RAND
3580 TAB3 DFB 47,207,215 ;RAST
3590 TAB4 DFB 18,24,18 ;BASE
3600 TAB5 DFB 11,0,11 ;GRND
3610 TAB6 DFB 200,199,200;LEFT
3620 ; ********************
3630 ZEICHEN ;
3640 ZAHLEN DFB0,0,0,254,198,198,198,230,230,230,230,230,254,0,0,0
3650 DFB0,0,0,24,24,24,24,56,56,56,56,56,56,0,0,0
3660 DFB0,0,0,254,198,6,6,254,224,224,224,230,254,0,0,0
3670 DFB0,0,0,254,198,6,6,126,14,14,14,206,254,0,0,0
3680 DFB0,0,0,198,198,198,198,254,14,14,14,14,14,0,0,0
3690 DFB0,0,0,254,198,192,192,254,14,14,14,206,254,0,0,0
3700 DFB0,0,0,254,198,192,192,254,230,230,230,230,254,0,0,0
3710 DFB0,0,0,254,198,12,24,24,56,56,56,56,56,0,0,0
3720 DFB0,0,0,126,102,102,102,126,230,230,230,230,254,0,0,0
3730 DFB0,0,0,254,198,198,198,254,14,14,14,206,254,0,0,0
3740 ALTIM DFB 255,255,224,230,230,230,224,230,230,230
3750 DFB 255,255,231,231,231,231,231,231,231,224
3760 DFB 255,255,224,249,249,249,249,249,249,255,255,255
3770 I DFB 255,255,103,103,103,103,103,103,103,103
3780 DFB 231,231,231,227,225,224,225,227,231,103
3790 DFB 231,231,103,231,231,231,231,231,231,255,255,0
3800 ALTLINE DFB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
3810 DFB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0
3820 SPACES DFB 0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255
3830 TREPPAUF DFB 255,255,255,255,252,240,192,0,252,240,192,0,0,0,0,0
3840 TREPPAB DFB 255,63,15,3,0,0,0,0,255,255,255,255,255,63,15,3
3850 P DFB 0,0,0,127,99,99,99,127,112,112,112,112,112,0,0,0
3860 E DFB 0,0,0,126,96,96,96,124,112,112,112,112,126,0,0,0
3870 L DFB 0,0,0,96,96,96,96,96,112,112,112,112,126,0,0,0
3880 B DFB 0,0,0,124,108,108,108,126,118,118,118,118,126,0,0,0
3890 LINIE LI DFB 192,192,192,192,192,192,192,192
3900 LINIE UNT DFB 0,0,0,0,0,0,0,255
3910 PUNKT UNT DFB 0,0,0,0,0,0,0,192
3920 ;
3930 ;
3940 ;
3950 ;********************
3960 ;
3970 ;
3980 PODSCHIFF LDX #0
3990 STX BLINK
4000 STX V+33
4010 STX V+32
4020 LDX #240
4030 STX 2040+49152
4040 INX
4050 STX 2041+49152
4060 INX
4070 STX 2042+49152
4080 INX
4090 LDA #130
4100 STA V+1
4110 STA V+3
4120 STA V+5
4130 LDA #100
4140 STA V
4150 LDA #148;X2
4160 STA V+2
4170 LDA #196;X3
4180 STA V+4
4190 LDA #7
4200 STA V+21
4210 STA V+28
4220 LDA #7
4230 STA V+29 ; EXPAND X
4240 STA V+23 ; EXPAND Y
4250 LDA #12
4260 STA V+37
4270 LDA #2
4280 STA V+38
4290 LDA #3
4300 STA V+39
4310 STA V+40
4320 STA V+41
4330 ;********************
4340 LOOP101 LDA #2
4350 STA V+38
4360 JSR DELAY
4370 LDA #8
4380 STA V+38
4390 JSR DELAY
4400 LDA #7
4410 STA V+38
4420 JSR DELAY
4430 LDA #8
4440 STA V+38
4450 JSR DELAY
4460 INC BLINK
4470 LDA BLINK
4480 AND #1
4490 BNE LOOP101
4500 LDA V+39
4510 AND #15
4520 CMP #11
4530 BEQ DF
4540 LDA #11
4550 DFB $2C
4560 DF LDA #1
4570 STA V+39
4580 STA V+41
4590 BNE LOOP101
4600 ;
4610 ;
4620 DELAY LDX #8
4630 LDY #0
4640 QQ DEY
4650 NOP
4660 NOP
4670 NOP
4680 NOP
4690 NOP
4700 NOP
4710 NOP
4720 NOP
4730 BNE QQ
4740 JSR MOVE
4750 DEX
4760 BNE QQ
4770 RTS
4780 ;********************
4790 MOVE TXA
4800 PHA
4810 LDA #224
4820 STA 56322
4830 LDA 56320
4840 STA TMP1
4850 LDA #255
4860 STA 56322
4870 OBEN? LDA TMP1
4880 AND #1
4890 BNE UNTEN?
4900 LDA V+1
4910 CMP #51
4920 BCC UNTEN?
4930 DEC V+1
4940 DEC V+3
4950 DEC V+5
4960 JSR INKALT
4970 UNTEN? LDA TMP1
4980 AND #2
4990 BNE LINKS?
5000 LDA V+1
5010 CMP #166
5020 BCS LINKS?
5030 INC V+1
5040 INC V+3
5050 INC V+5
5060 JSR DEKALT
5070 LINKS? LDA TMP1
5080 AND #4
5090 BNE RECHTS?
5100 LDA V
5110 CMP #24
5120 BCC RECHTS?
5130 DEC V
5140 LDA V
5150 CMP #255
5160 BNE BA
5170 LDA V+16
5180 AND #255-1
5190 STA V+16
5200 BA DEC V+2
5210 LDA V+2
5220 CMP #255
5230 BNE BB
5240 LDA V+16
5250 AND #255-2
5260 STA V+16
5270 BB DEC V+4
5280 LDA V+4
5290 CMP #255
5300 BNE RECHTS?
5310 LDA V+16
5320 AND #255-4
5330 STA V+16
5340 RECHTS? LDA TMP1
5350 AND #8
5360 BNE SCHUSS?
5370 LDA V+16
5380 AND #4
5390 BEQ JA
5400 LDA V+4
5410 CMP #41
5420 BCS SCHUSS?
5430 JA INC V
5440 BNE AA
5450 LDA V+16
5460 ORA #1
5470 STA V+16
5480 AA INC V+2
5490 BNE ABA
5500 LDA V+16
5510 ORA #2
5520 STA V+16
5530 ABA INC V+4
5540 BNE SCHUSS?
5550 LDA V+16
5560 ORA #4
5570 STA V+16
5580 SCHUSS? LDA TMP1
5590 AND #16
5600 BNE KEINSCHUSS
5610 LDA SCHUSSFLAG
5620 BNE ENDE
5630 LDA #1
5640 STA SCHUSSFLAG
5650 STA 53280
5660 STA 53281
5670 BNE ENDE
5680 KEINSCHUSS LDA #0
5690 STA SCHUSSFLAG
5700 ENDE PLA
5710 TAX
5720 RTS
5730 ;********************
5740 ;
5750 ORG 64512
5760 DATAS DFB85,88,0,5,64,0,1,64,0,0,80,0,0,20,0,0
5770 DFB5,0,0,1,64,0,5,85,0,21,85,0,87,255,0,95
5780 DFB255,0,95,255,0,87,255,0,21,85,0,5,85,0,1,64
5790 DFB0,5,0,0,20,0,0,80,0,5,96,0,85,64,0,0
5800 DFB0,0,0,1,85,64,5,0,80,5,85,80,5,85,80,85
5810 DFB85,85,85,255,85,87,255,213,87,255,213,87,255,213,213,255
5820 DFB87,213,85,87,85,85,85,85,0,85,80,0,5,0,0,0
5830 DFB0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
5840 DFB0,37,85,0,1,80,0,1,64,0,5,0,0,20,0,0
5850 DFB80,0,1,64,0,85,80,0,85,84,0,255,213,0,255,245
5860 DFB0,255,245,0,255,213,0,85,84,0,85,80,0,1,64,0
5870 DFB0,80,0,0,20,0,0,5,0,0,9,80,0,1,85,0
READY.