C64 Software  <  SCA: The C64 Software Collection / PODSCHIFF

  Run
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.