home *** CD-ROM | disk | FTP | other *** search
- 10 REM
- 20 REM SOUND DRIVER BASIC INTERFACE EXAMPLE
- 30 REM
- 40 DEFINT A-Z
- 50 REM
- 60 FSDINIT = 0
- 70 FSDRELTIMESTART = 2
- 80 FSDSETSTATE = 3
- 90 FSDGETSTATE = 4
- 100 FSDFLUSH = 5
- 110 FSDSETMODE = 6
- 120 FSDGETMODE = 7
- 130 FSDSETRELVOLUME = 8
- 140 FSDSETTEMPO = 9
- 150 FSDSETTRANPOSE = 10
- 160 FSDGETTRANSPOSE = 11
- 170 FSDSETACTVOICE = 12
- 180 FSDGETACTVOICE = 13
- 190 FSDPLAYNOTEDEL = 14
- 200 FSDPLAYNOTE = 15
- 210 FSDSETTIMBRE = 16
- 220 FSDSETPITCH = 17
- 230 FSDSETTICKBEAT = 18
- 240 FSDNOTEON = 19
- 250 FSDNOTEOFF = 20
- 260 FSDTIMBRE = 21
- 270 REM
- 280 FIN = 100
- 290 S0 = 0: S1 = 0: S2 = 0: S3 = 0: S4 = 0: S5 = 0: REM RESET ARGUMENTS
- 300 I = 0: MEM = 0: BYTE = 0
- 310 FUNCSIZE = 66: REM CODE SIZE
- 320 DIM FUNC%( FUNCSIZE /2 +1): REM CODE ARRAY
- 330 DIM INSTRUM( 26): REM TIMBRE DATA
- 340 REM
- 350 REM LOAD TIMBRE INTO ARRAY, FROM DATA
- 360 REM
- 370 MEM = VARPTR( INSTRUM(0))
- 380 FOR I = 1 TO 52: READ BYTE: POKE MEM, BYTE: MEM = MEM +1: NEXT I
- 390 REM
- 400 REM LOAD CODE (SOUNDBAS.ASM) INTO FUNC% ARRAY
- 410 REM
- 420 MEM = VARPTR( FUNC%(0))
- 430 FOR I = 1 TO FUNCSIZE
- 440 READ BYTE
- 450 POKE MEM, BYTE
- 460 MEM = MEM +1
- 470 NEXT I
- 480 REM
- 490 REM SET UP SOUND DRIVER
- 500 REM
- 510 S0 = FSDINIT: GOSUB 730: REM INITIALIZE SD
- 520 S0 = FSDRELTIMESTART: S1 = 0: S2 = 1: GOSUB 730: REM START TIME
- 530 S0 = FSDSETTEMPO: S1=100: S2=0: S3=1: GOSUB 730: REM TEMPO = 100
- 540 S0 = FSDSETACTVOICE: S1 = 0: GOSUB 730: REM SET ACTIVE VOICE
- 550 S0 = FSDSETTIMBRE: MEM = VARPTR( FUNC(0)): REM SET INSTRUMENT
- 560 CALL MEM( S0, INSTRUM(0), S2, S3, S4, S5)
- 570 GOSUB 630: REM LOAD SONG INTO SD
- 580 S0 = FSDSETSTATE: S1 = 1: GOSUB 730: REM START PLAYING SONG
- 590 S0 = FSDGETSTATE: GOSUB 730: REM TEST IF FINISH
- 600 IF S0 <> 0 GOTO 590
- 610 STOP
- 620 REM PLAY SONGS
- 630 S0 = FSDPLAYNOTE
- 640 READ S1: READ S2: READ S3
- 650 IF S1 = FIN THEN RETURN
- 660 GOSUB 730
- 670 GOTO 630
- 680 REM
- 690 STOP
- 700 REM
- 710 REM SOUND DRIVER CALL
- 720 REM
- 730 MEM = VARPTR( FUNC%(0))
- 740 CALL MEM( S0, S1, S2, S3, S4, S5)
- 750 RETURN
- 760 REM
- 770 REM intrument marimba3
- 780 DATA &H01, &H00, &H05, &H00, &H05, &H00, &H0D, &H00, &H01
- 790 DATA &H00, &H00, &H00, &H0A, &H00, &H05, &H00, &H0E, &H00, &H01, &H00
- 800 DATA &H00, &H00, &H00, &H00, &H01, &H00, &H02, &H00, &H01, &H00, &H00
- 810 DATA &H00, &H0F, &H00, &H01, &H00, &H00, &H00, &H09, &H00, &H03, &H00
- 820 DATA &H00, &H00, &H01, &H00, &H00, &H00, &H00, &H00, &H01, &H00
- 830 REM
- 840 REM MACHINE CODE (SOUNDBAS.ASM)
- 850 DATA &H06, &H56, &H57, &H8B, &HEC, &H8B, &H5E, &H14, &H8B, &H37, &H8B
- 860 DATA &H5E, &H0A, &HFF, &H37, &H8B, &H5E, &H0C, &HFF, &H37, &H8B, &H5E
- 870 DATA &H0E, &HFF, &H37, &H8B, &H5E, &H10, &HFF, &H37, &H83, &HFE, &H10
- 880 DATA &H75, &H07, &H1E, &HFF, &H76, &H12, &HEB, &H06, &H90, &H8B, &H5E
- 890 DATA &H12, &HFF, &H37, &H16, &H07, &H8B, &HDC, &HCD, &H65, &H8B, &HE5
- 900 DATA &H8B, &H5E, &H14, &H89, &H07, &H5F, &H5E, &H07, &HCA, &H0C, &H00
- 910 REM
- 920 REM SONG #1
- 930 DATA 0, 1, 2
- 940 DATA 2, 1, 2
- 950 DATA 4, 3, 4
- 960 DATA 7, 1, 4
- 970 DATA 7, 1, 1
- 980 DATA 4, 3, 4
- 990 DATA 0, 1, 4
- 1000 DATA 4, 3, 2
- 1010 DATA 2, 1, 2
- 1020 DATA 0, 2, 1
- 1030 REM
- 1040 REM SONG #2
- 1050 DATA 0,1,2,4,1,2,7,1,2,12,3,2,2,3,4,5,1,4,9,1,2,12,3,2
- 1060 DATA 11,3,4,9,1,4,7,1,2,5,1,1,2,1,2,4,1,1,9,1,2,7,3,2
- 1070 DATA 100, 100, 100