1000 ;
1010 ;
1020 ;********************
1030 ;** **
1040 ;** MUSIC PLAYER **
1050 ;** **
1060 ;** COPYRIGHT 1985 **
1070 ;** BY C. WEBER **
1080 ;** **
1090 ;********************
1100 ;
1110 ;
1120 ;
1130 ORG 40250
1140 ;
1150 SID EQU 54272
1160 LO EQU SID
1170 HI EQU SID+1
1180 ;
1190 W EQU SID+4
1200 ;
1210 ;
1220 SPEED EQU 56325
1230 VECTOR EQU 40930
1240 CNT EQU 40932
1250 PTR EQU 247
1260 ;
1270 ;
1280 INIT SEI
1290 LDA #40
1300 STA SPEED
1310 LDA 788
1320 STA VECTOR
1330 LDA 789
1340 STA VECTOR+1
1350 LDA #<IRQ
1360 STA 788
1370 LDA #>IRQ
1380 STA 789
1390 LDX #27
1400 INIT1 LDA INITTAB,X
1410 STA SID,X
1420 DEX
1430 BNE INIT1
1440 LDX #0
1450 INIT3 DEY
1460 BNE INIT3
1470 DEX
1480 BNE INIT3
1490 INIT2 LDA #<STI1
1500 STA PTR
1510 LDA #>STI1
1520 STA PTR+1
1530 LDA #<STI2
1540 STA PTR+2
1550 LDA #>STI2
1560 STA PTR+3
1570 LDA #<STI3
1580 STA PTR+4
1590 LDA #>STI3
1600 STA PTR+5
1610 LDA #1
1620 STA CNT
1630 STA CNT+1
1640 STA CNT+2
1650 CLI
1660 RTS
1670 ;
1680 ENDE SEI
1690 LDA VECTOR
1700 STA 788
1710 LDA VECTOR+1
1720 STA 789
1730 LDX #27
1740 LDA #0
1750 ENDE1 STA SID,X
1760 DEX
1770 BNE ENDE1
1780 CLI
1790 PLA
1800 PLA
1810 JMP (VECTOR)
1820 ;
1830 INITTAB DFB 0,0,10,5,0,8,243
1840 DFB 0,0,10,5,0,8,251
1850 DFB 0,0,10,5,0,8,251
1860 DFB 0,0,0,15,0,0,0
1870 ;
1880 ;
1890 IRQ DEC CNT
1900 BNE IRQ1
1910 LDX #0
1920 JSR TON
1930 IRQ1 DEC CNT+1
1940 BNE IRQ2
1950 LDX #2
1960 JSR TON
1970 IRQ2 DEC CNT+2
1980 BNE IRQ3
1990 LDX #4
2000 JSR TON
2010 IRQ3 JMP (VECTOR)
2020 ;
2030 ;
2040 ;
2050 TON LDA (PTR,X)
2060 PHA
2070 BPL TON3
2080 PLA
2090 JMP ENDE
2100 TON3 BNE TON1
2110 LDY IND2,X
2120 LDA WF,X
2130 STA W,Y
2140 PLA
2150 JMP TON2
2160 TON1 PLA
2170 CLC
2180 ASL
2190 TAY
2200 LDA TONTAB,Y
2210 PHA
2220 LDA TONTAB+1,Y
2230 LDY IND2,X
2240 STA LO,Y
2250 PLA
2260 STA HI,Y
2270 LDY IND2,X
2280 LDA WF,X
2290 ORA #1
2300 STA W,Y
2310 TON2 JSR INKPTR
2320 LDA (PTR,X)
2330 LDY IND1,X
2340 STA CNT,Y
2350 JMP INKPTR
2360 ;
2370 INKPTR INC PTR,X
2380 BNE INKPTR1
2390 INC PTR+1,X
2400 INKPTR1 RTS
2410 ;
2420 WF DFB 64,0,16,0,16
2430 IND1 DFB 0,0,1,0,2,0
2440 IND2 DFB 0,0,7,0,14,0
2450 ;
2460 TONTAB DFB 0,0 ; C-0 BIS A#-7
2470 DFB 1,22,1,39,1,57,1,75
2480 DFB 1,95,1,116,1,138,1,161
2490 DFB 1,186,1,212,1,240,2,14
2500 DFB 2,45,2,78,2,113,2,150
2510 DFB 2,190,2,231,3,20,3,66
2520 DFB 3,116,3,169,3,224,4,27
2530 DFB 4,90,4,156,4,226,5,45
2540 DFB 5,123,5,207,6,39,6,133
2550 DFB 6,232,7,81,7,193,8,55
2560 DFB 8,180,9,56,9,196,10,89
2570 DFB 10,247,11,158,12,78,13,10
2580 DFB 13,208,14,162,15,129,16,109
2590 DFB 17,103,18,112,19,137,20,178
2600 DFB 21,237,23,59,24,157,26,20
2610 DFB 27,160,29,69,31,3,32,219
2620 DFB 34,207,36,225,39,18,41,101
2630 DFB 43,219,46,118,49,58,52,39
2640 DFB 55,65,58,138,62,5,65,181
2650 DFB 69,157,73,193,78,36,82,201
2660 DFB 87,182,92,237,98,115,104,78
2670 DFB 110,130,117,20,124,10,131,106
2680 DFB 139,59,147,130,156,72,165,147
2690 DFB 175,107,185,218,196,231,208,156
2700 DFB 221,4,234,40,248,20
2710 ;
2720 ;
2730 ;
2740 ;
2750 STI1 DFB74,8,72,12
2760 DFB71,16,72,16,74,16
2770 DFB72,32,60,64,64,64
2780 DFB67,16,0,16,67,32
2790 DFB65,32,65,64
2800 DFB67,4,65,16,64,16
2810 DFB65,16,67,16,65,32
2820 DFB55,64,59,64,62,16
2830 DFB0,16,65,32,64,32
2840 DFB64,64,72,48,69,16
2850 DFB67,32,66,26,0,6
2860 DFB66,26,0,6,66,26
2870 DFB0,6,60,48,57,16
2880 DFB55,32,54,26,0,6
2890 DFB54,26,0,6,54,26
2900 DFB0,6,72,48,69,16
2910 DFB71,32,67,32,64,32
2920 DFB72,32,66,6,67,6
2930 DFB66,6,67,6,66,6
2940 DFB67,6,66,6,67,6
2950 DFB66,6,64,10,66,10
2960 DFB67,64,0,64
2970 DFB255
2980 ;
2990 ;
3000 ;
3010 ;
3020 STI2 DFB0,70,36,64,48,64
3030 DFB0,64,35,64,50,64
3040 DFB0,64,31,64,53,64
3050 DFB0,64,36,64,43,64
3060 DFB0,64,38,64,48,64
3070 DFB0,64,38,64,48,64
3080 DFB0,64,47,64,45,64
3090 DFB45,64,47,64,31,64
3100 ;
3110 ;
3120 ;
3130 ;
3140 STI3 DFB0,134,43,64
3150 DFB0,128,43,64,0,128
3160 DFB47,64,0,64,0,64
3170 DFB48,64,0,64,26,64
3180 DFB38,64,0,64,26,64
3190 DFB38,64,0,64,43,64
3200 DFB36,64,38,64,43,64
3210 DFB31,64,0,0
READY.