1000 ;
1010 ;
1020 ;SAVE"",8
1030 ;
1040 ; SCA TITEL V2.15
1050 ;
1060 ; 19.11. 1985,
1070 ; 13. 1. 1986
1080 ; 25. 1. 1986
1090 ;
1100 ; RUECKSPRUNG NACH
1110 ; 32000
1120 ;
1130 ;
1140 ;
1150 ORG 820
1160 ;
1170 COLPTR EQU 160
1180 FLASH EQU 161
1190 TEXTPTR EQU 87
1200 JOBCNTR EQU 89
1210 MODE EQU 90
1220 TMP1 EQU 91
1230 TMP2 EQU 93
1240 ;
1250 F EQU 10 ; SCROLLFARBE
1260 ;
1270 FILEPAR EQU $FFBA
1280 FILENAM EQU $FFBD
1290 OPEN EQU $FFC0
1300 CHKIN EQU $FFC6
1310 CKOUT EQU $FFC9
1320 CLRCH EQU $FFCC
1330 BSOUT EQU $F1CA
1340 CLALL EQU $FFE7
1350 ;
1360 IO EQU 56576
1370 ST EQU 144
1380 PTR EQU 174
1390 CNT EQU 252
1400 LO EQU 253
1410 HI EQU 254
1420 TTP EQU 255
1430 PPU EQU 49152
1440 ;
1450 PU EQU 768
1460 TMP EQU 68
1470 STMP EQU 139
1480 ;
1490 ;
1500 BSP EQU 2048
1510 SPRITEPTR EQU BSP+1016
1520 SPD EQU 3072 ; 49 FF
1530 ;
1540 SOUNDINIT EQU 20480
1550 SOUNDJOB EQU 20492
1560 ;
1570 ;
1580 ;
1590 INIT LDA #1 ;TIMERIRQ
1600 STA 56333 ;ABSCHALTEN
1610 ;
1620 LDA #55
1630 STA 1
1640 JSR SYNC
1650 ;
1660 LDA #%00111111
1670 STA IO+2
1680 LDA IO
1690 ORA #3
1700 STA IO
1710 LDA #0
1720 STA 53265
1730 STA 53280
1740 ;
1750 ;
1760 JSR CLALL
1770 LDA #2
1780 LDX #8
1790 TAY
1800 JSR FILEPAR
1810 LDA #2
1820 LDX #<NAME2 ;#3
1830 LDY #>NAME2
1840 JSR FILENAM
1850 JSR OPEN
1860 ;
1870 LDA #15
1880 LDX #8
1890 TAY
1900 JSR FILEPAR
1910 LDA #7
1920 LDX #<NAME15 ;B-P 2 0
1930 LDY #>NAME15
1940 JSR FILENAM
1950 JSR OPEN
1960 ;
1970 LDX #2
1980 JSR CKOUT
1990 LDX #0
2000 UEBERM1 LDA FLOPPYPRG,X
2010 JSR BSOUT
2020 INX
2030 CPX #220
2040 BCC UEBERM1
2050 JSR CLRCH
2060 ;
2070 LDX #15
2080 JSR CKOUT
2090 LDX #5
2100 UEBERM2 LDA ME,X
2110 JSR BSOUT
2120 DEX
2130 BPL UEBERM2
2140 JSR CLRCH
2150 ;
2160 ;
2170 ;
2180 SEI
2190 LDY #46
2200 INIT1 LDA VICTAB,Y
2210 STA 53248,Y
2220 DEY
2230 BPL INIT1
2240 ;
2250 INY
2260 TYA
2270 INIT2 STA $DA30,Y
2280 STA $DB00,Y
2290 DEY
2300 BNE INIT2
2310 LDA #11 ; GRAU FUER
2320 STA $DBE1 ; DATUM
2330 STA $DBE2
2340 STA $DBE3
2350 STA $DBE4
2360 ;
2370 ;
2380 INIT3 STY COLPTR
2390 LDA #100
2400 STA FLASH
2410 ;
2420 LDA #>ISR
2430 STA 789
2440 LDA #<ISR
2450 STA 788
2460 ;
2470 LDA #0
2480 JSR SOUNDINIT
2490 ;
2500 ;
2510 LDA #1
2520 STA JOBCNTR
2530 LDA 53273 ; REQUEST
2540 STA 53273 ; LOESCHEN
2550 LDA #59
2560 STA MODE
2570 LDA #<TEXT
2580 STA TEXTPTR
2590 LDA #>TEXT
2600 STA TEXTPTR+1
2610 ;
2620 ;
2630 LDY #14
2640 INIT4 JSR SYNC
2650 DEY
2660 BMI INIT4
2670 CLI
2680 ;
2690 CRASH LDX #INIT4-INIT+9
2700 LDA #32
2710 CRASH1 STA INIT,X
2720 DEX
2730 BNE CRASH1
2740 ;
2750 ;
2760 LOAD LDA IO
2770 AND #%00000011
2780 STA HI
2790 STA IO
2800 ORA #%00010000
2810 STA LO
2820 LDY #0
2830 STY ST
2840 ;
2850 LOAD01 INY
2860 BNE LOAD01
2870 ;
2880 JSR GETBYTE
2890 LDA #1
2900 STA PTR
2910 JSR GETBYTE
2920 LDA #97
2930 STA PTR+1
2940 ;
2950 LOAD02 JSR GETBYTE
2960 SEI
2970 LDX #52
2980 STX 1
2990 STA (PTR),Y
3000 LDX #55
3010 STX 1
3020 CLI
3030 INC PTR
3040 BNE LOAD03
3050 INC PTR+1
3060 LOAD03 LDA ST
3070 BEQ LOAD02
3080 ;
3090 LDA PTR
3100 STA 45
3110 LDA PTR+1
3120 STA 46
3130 JMP ENDE
3140 ;
3150 ;
3160 ;
3170 GETBYTE LDA #8
3180 STA CNT
3190 ;
3200 GET01 BIT IO
3210 BVS GET02 ; CL HI
3220 BMI GET01 ; DATA HI
3230 ;
3240 LDA #64 ; ENDE
3250 STA ST
3260 RTS
3270 ;
3280 ;
3290 GET02 LDX LO
3300 LDA IO
3310 STX IO ; CL LOW
3320 ASL
3330 ROL TTP
3340 NOP
3350 ;
3360 LDX HI
3370 STX IO ; CL HI
3380 NOP
3390 NOP
3400 ;
3410 DEC CNT
3420 BNE GET02
3430 ;
3440 LDA TTP
3450 EOR #255
3460 ;
3470 RTS
3480 ;
3490 ;
3500 ;
3510 ENDE JSR SYNC
3520 ;
3530 ENDE0 SEI
3540 LDA #11
3550 STA 53265
3560 LDA #128
3570 STA 53274
3580 ORA #1
3590 STA 56333
3600 LDX #255
3610 STX 56322
3620 INX
3630 STX 54296
3640 LDA #52
3650 STA 1
3660 ;
3670 LDX #127
3680 ENDE1 LDA EXIT,X
3690 STA 512,X
3700 DEX
3710 BPL ENDE1
3720 ;
3730 LDA #1
3740 LDX #97
3750 STA TMP1
3760 STX TMP1+1
3770 STA TMP2
3780 LDX #8
3790 STX TMP2+1
3800 LDY #0
3810 JMP 512
3820 ;
3830 ;
3840 SYNC LDA 53265
3850 BMI SYNC
3860 LDA 53266
3870 BNE SYNC
3880 RTS
3890 ;
3900 ;
3910 ;
3920 ISR LDA 53273
3930 STA 53273
3940 LDX JOBCNTR
3950 BEQ JOB0
3960 CPX #1
3970 BEQ JOB1
3980 BNE JOB2
3990 ;
4000 JOB0 LDA #216 ; MULTICOL
4010 STA 53270
4020 JSR SOUNDJOB
4030 JMP JOBAUS
4040 ;
4050 ;
4060 JOB1 LDA 53265
4070 AND #%11110111 ; 24 Z
4080 STA 53265
4090 LDA #127
4100 STA 53269
4110 BNE JOBAUS
4120 ;
4130 JOB2 LDA MODE
4140 ORA #8 ; 25 Z
4150 STA 53265
4160 LDA #0
4170 STA 53269
4180 LDA #200 ; HIRES
4190 STA 53270
4200 ;
4210 INC FLASH
4220 BNE JOBAUS
4230 ;
4240 LDA #234
4250 STA FLASH
4260 LDX COLPTR
4270 INX
4280 CPX #7
4290 BNE JOB21
4300 LDX #0
4310 JOB21 STX COLPTR
4320 ;
4330 LDY #200
4340 LDA COLOR,X
4350 JOB23 STA 55848,Y
4360 STA 56047,Y
4370 DEY
4380 BNE JOB23
4390 ;
4400 ;
4410 JOBAUS LDX JOBCNTR
4420 INX
4430 CPX #3
4440 BNE JOBAUS1
4450 LDX #0
4460 JOBAUS1 STX JOBCNTR
4470 ;
4480 LDA RASTERTABL,X
4490 STA 53266
4500 LDA 53265
4510 AND #%01111111
4520 ORA RASTERTABH,X
4530 STA 53265
4540 ;
4550 TXA
4560 BNE ISRAUS
4570 ;
4580 JSR MOVE
4590 JSR MOVE
4600 ;
4610 ISRAUS PLA
4620 TAY
4630 PLA
4640 TAX
4650 PLA
4660 RTI
4670 ;
4680 ;
4690 ;
4700 MOVE LDA 53248
4710 CMP #9
4720 BCC SCLOLL
4730 LDX #64
4740 CMP #17
4750 BCC MOVE1
4760 LDX #96
4770 MOVE1 STX 53264
4780 ;
4790 LDX #14
4800 MOVE2 DEC 53248,X
4810 DEX
4820 DEX
4830 BPL MOVE2
4840 RTS
4850 ;
4860 SCLOLL LDX #16
4870 SC0 LDA VICTAB,X
4880 STA 53248,X
4890 DEX
4900 BPL SC0
4910 ;
4920 LDA #<SPD+2
4930 LDX #>SPD
4940 STA TMP1
4950 STX TMP1+1
4960 CLC
4970 ADC #62
4980 STA TMP2
4990 BCC SCLOLL1
5000 INX
5010 SCLOLL1 STX TMP2+1
5020 ;
5030 LDX #7
5040 SCLOLLL LDY #0
5050 SCLOLL2 LDA (TMP2),Y
5060 STA (TMP1),Y
5070 INY
5080 INY
5090 INY
5100 CPY #24
5110 BCC SCLOLL2
5120 ;
5130 LDY #0
5140 SCLOLL3 INY
5150 LDA (TMP2),Y
5160 DEY
5170 STA (TMP2),Y
5180 INY
5190 CPY #24
5200 BCC SCLOLL3
5210 ;
5220 LDA TMP1
5230 CLC
5240 ADC #64
5250 STA TMP1
5260 BCC SCLOLL4
5270 INC TMP1+1
5280 SCLOLL4 LDA TMP2
5290 CLC
5300 ADC #64
5310 STA TMP2
5320 BCC SCLOLL5
5330 INC TMP2+1
5340 ;
5350 SCLOLL5 DEX
5360 BNE SCLOLLL
5370 ;
5380 ;
5390 LDY #0
5400 SCLOLL6 LDA (TEXTPTR),Y
5410 BNE SCLOLL7
5420 ;
5430 LDA #<TEXT
5440 STA TEXTPTR
5450 LDA #>TEXT
5460 STA TEXTPTR+1
5470 BNE SCLOLL6
5480 ;
5490 SCLOLL7 INC TEXTPTR
5500 BNE SCLOLL7A
5510 INC TEXTPTR+1
5520 ;
5530 SCLOLL7A LDY #27
5540 STY TMP1+1
5550 ASL
5560 ROL TMP1+1
5570 ASL
5580 ROL TMP1+1
5590 ASL
5600 ROL TMP1+1
5610 STA TMP1
5620 ;
5630 LDA #51
5640 STA 1
5650 LDY #7
5660 LDX #23
5670 SCLOLL8 LDA (TMP1),Y
5680 STA SPD+448,X
5690 DEX
5700 DEX
5710 DEX
5720 DEY
5730 BPL SCLOLL8
5740 LDA #55
5750 SCLOLL9 STA 1
5760 ;
5770 RTS
5780 ;
5790 ;
5800 EXIT LDA (TMP1),Y
5810 STA (TMP2),Y
5820 INY
5830 BNE EXIT
5840 INC TMP1+1
5850 INC TMP2+1
5860 BNE EXIT
5870 ;
5880 LDA #55
5890 STA 1
5900 LDA #4
5910 STA 648
5920 JSR $FD15 ; I/O.VEKT.
5930 JSR $E453 ; BAS.VEKT.
5940 JSR $FFCC ; CLRCH
5950 CLI
5960 JMP 32000
5970 ;
5980 ;
5990 ;
6000 RASTERTABL DFB 150,248,1
6010 RASTERTABH DFB 0,0,0
6020 ;
6030 COLOR DFB 2,7,5,3,14,4,6
6040 ;
6050 CODE4 DFB 0;29
6060 ;
6070 VICTAB DFB 23,15,71,15,119,15,167,15,215,15,7,15,55,15,0,0,96
6080 DFB 43,248,0,0,127,200,255,40,0,1,0,0,127
6090 DFB 0,0,0,0,0,0,0,0,0,F,F,F,F,F,F,F,F
6100 ;
6110 NAME2 DFB ""
6120 NAME15 DFB ""
6130 ;
6140 ME DFB 13,6,0,""
6150 ;
6160 ;
6170 ;
6180 TEXT DFB ""
6190 DFB ""
6200 DFB ""
6210 DFB ""
6220 DFB ""
6230 DFB ""
6240 DFB ""
6250 DFB ""
6260 DFB ""
6270 DFB ""
6280 DFB "",0
6290 ;
6300 ;
6310 ORG SPRITEPTR
6320 DFB 49,50,51,52,53,54,55,56
6330 ;
6340 ;
6350 ;
6360 ORG 17920 ; $0600
6370 ;
6380 FLOPPYPRG SEI
6390 ;
6400 LDX #17 ;ANFANGSTRACK
6410 LDY #1 ;SEKTOR
6420 ;
6430 ;
6440 FL01 LDA #%00001000 ;CL L
6450 STA 6144
6460 ;
6470 LDA 7168
6480 EOR #%00001000 ;LED
6490 STA 7168
6500 ;
6510 JSR READ
6520 ;
6530 LDA 7168
6540 EOR #%00001000 ;LED
6550 STA 7168
6560 ;
6570 LDY #0
6580 LDX #254
6590 LDA PU
6600 BNE FL02
6610 LDX PU+1
6620 FL02 STX STMP
6630 ;
6640 FL03 LDA PU+2,Y
6650 JSR SENDBT
6660 INY
6670 CPY STMP
6680 BNE FL03
6690 ;
6700 LDX PU
6710 BEQ THEEND
6720 ;
6730 LDY PU+1
6740 JMP FL01
6750 ;
6760 ;
6770 THEEND LDA #%00001010 ;D,C:L
6780 STA 6144
6790 INX
6800 BNE THEEND
6810 ;
6820 JMP (65532)
6830 ;
6840 ;
6850 SENDBT STA TMP
6860 ;
6870 LDX #8
6880 ;
6890 SENDBT1 ROL TMP
6900 ROL
6910 ROL
6920 AND #%00000010
6930 STA 6144
6940 ;
6950 SENDBT2 LDA 6144
6960 AND #4 ;CL
6970 BNE SENDBT2 ;HI
6980 SENDBT3 LDA 6144
6990 AND #4 ;CL
7000 BEQ SENDBT3 ;LO
7010 ;
7020 DEX
7030 BNE SENDBT1
7040 ;
7050 RTS
7060 ;
7070 ;
7080 ;
7090 READ STX 6
7100 STY 7
7110 LDA #128
7120 STA 0
7130 CLI
7140 READ1 LDA 0
7150 BMI READ1
7160 SEI
7170 RTS
READY.