00000000: 00 20 54 4F 20 53 49 4E 47 20 3A 50 0D 20 49 46 |. TO SING :P. IF|
00000010: 20 3A 50 20 3D 20 5B 5D 20 53 54 4F 50 0D 20 4E | :P = [] STOP. N|
00000020: 4F 54 45 20 46 49 52 53 54 20 3A 50 20 31 30 0D |OTE FIRST :P 10.|
00000030: 20 53 49 4E 47 20 42 46 20 3A 50 0D 45 4E 44 0D | SING BF :P.END.|
00000040: 0D 54 4F 20 53 53 48 45 52 20 3A 44 55 52 53 0D |.TO SSHER :DURS.|
00000050: 20 49 46 20 45 4D 50 54 59 3F 20 3A 44 55 52 53 | IF EMPTY? :DURS|
00000060: 20 53 54 4F 50 0D 20 53 53 48 20 46 49 52 53 54 | STOP. SSH FIRST|
00000070: 20 3A 44 55 52 53 0D 20 53 53 48 45 52 20 42 46 | :DURS. SSHER BF|
00000080: 20 3A 44 55 52 53 0D 45 4E 44 0D 0D 54 4F 20 53 | :DURS.END..TO S|
00000090: 53 48 20 3A 44 0D 20 53 4F 55 4E 44 20 32 30 30 |SH :D. SOUND 200|
000000A0: 30 30 20 3A 44 20 37 20 30 20 31 32 39 0D 45 4E |00 :D 7 0 129.EN|
000000B0: 44 0D 0D 54 4F 20 52 45 4C 45 41 53 45 20 3A 41 |D..TO RELEASE :A|
000000C0: 0D 20 4D 41 4B 45 20 22 53 52 20 42 49 54 4F 52 |. MAKE "SR BITOR|
000000D0: 20 28 20 42 49 54 41 4E 44 20 3A 41 20 31 35 20 | ( BITAND :A 15 |
000000E0: 29 20 28 20 42 49 54 41 4E 44 20 3A 53 52 20 32 |) ( BITAND :SR 2|
000000F0: 34 30 20 29 0D 45 4E 44 0D 0D 54 4F 20 53 55 53 |40 ).END..TO SUS|
00000100: 54 41 49 4E 20 3A 41 0D 20 4D 41 4B 45 20 22 53 |TAIN :A. MAKE "S|
00000110: 52 20 42 49 54 4F 52 20 28 20 42 49 54 41 4E 44 |R BITOR ( BITAND|
00000120: 20 3A 41 20 31 35 20 29 20 2A 20 31 36 20 28 20 | :A 15 ) * 16 ( |
00000130: 42 49 54 41 4E 44 20 3A 53 52 20 31 35 20 29 0D |BITAND :SR 15 ).|
00000140: 45 4E 44 0D 0D 54 4F 20 53 45 54 55 50 0D 20 49 |END..TO SETUP. I|
00000150: 46 20 5B 5D 20 3D 20 54 45 58 54 20 22 53 4F 55 |F [] = TEXT "SOU|
00000160: 4E 44 20 52 45 41 44 20 22 53 4F 55 4E 44 0D 20 |ND READ "SOUND. |
00000170: 54 45 4D 50 4F 20 32 30 0D 20 4D 41 4B 45 20 22 |TEMPO 20. MAKE "|
00000180: 41 44 20 39 0D 20 4D 41 4B 45 20 22 53 52 20 30 |AD 9. MAKE "SR 0|
00000190: 0D 20 4D 41 4B 45 20 22 57 41 56 45 46 4F 52 4D |. MAKE "WAVEFORM|
000001A0: 20 31 37 0D 20 4D 41 4B 45 20 22 4F 43 54 41 56 | 17. MAKE "OCTAV|
000001B0: 45 20 31 0D 20 4D 41 4B 45 20 22 50 49 54 43 48 |E 1. MAKE "PITCH|
000001C0: 45 53 20 5B 38 37 37 39 20 39 33 30 31 20 39 38 |ES [8779 9301 98|
000001D0: 35 34 20 31 30 34 34 30 20 31 31 30 36 30 20 31 |54 10440 11060 1|
000001E0: 31 37 31 38 20 31 32 34 31 35 20 31 33 31 35 33 |1718 12415 13153|
000001F0: 20 31 33 39 33 35 20 31 34 37 36 34 20 31 35 37 | 13935 14764 157|
00000200: 34 32 20 31 36 35 37 32 20 31 37 35 35 37 20 31 |42 16572 17557 1|
00000210: 38 36 30 31 5D 0D 45 4E 44 0D 0D 54 4F 20 54 45 |8601].END..TO TE|
00000220: 4D 50 4F 20 3A 4E 0D 20 4D 41 4B 45 20 22 54 45 |MPO :N. MAKE "TE|
00000230: 4D 50 4F 20 3A 4E 0D 45 4E 44 0D 0D 54 4F 20 44 |MPO :N.END..TO D|
00000240: 45 43 41 59 20 3A 41 0D 20 4D 41 4B 45 20 22 41 |ECAY :A. MAKE "A|
00000250: 44 20 42 49 54 4F 52 20 28 20 42 49 54 41 4E 44 |D BITOR ( BITAND|
00000260: 20 3A 41 20 31 35 20 29 20 28 20 42 49 54 41 4E | :A 15 ) ( BITAN|
00000270: 44 20 3A 41 44 20 32 34 30 20 29 0D 45 4E 44 0D |D :AD 240 ).END.|
00000280: 0D 54 4F 20 41 54 54 41 43 4B 20 3A 41 0D 20 4D |.TO ATTACK :A. M|
00000290: 41 4B 45 20 22 41 44 20 42 49 54 4F 52 20 28 20 |AKE "AD BITOR ( |
000002A0: 42 49 54 41 4E 44 20 3A 41 20 31 35 20 29 20 2A |BITAND :A 15 ) *|
000002B0: 20 31 36 20 28 20 42 49 54 41 4E 44 20 3A 41 44 | 16 ( BITAND :AD|
000002C0: 20 31 35 20 29 0D 45 4E 44 0D 0D 54 4F 20 4F 43 | 15 ).END..TO OC|
000002D0: 54 20 3A 4E 0D 20 4F 50 20 49 54 45 4D 20 31 20 |T :N. OP ITEM 1 |
000002E0: 2B 20 3A 4E 20 5B 30 2E 31 32 35 20 30 2E 32 35 |+ :N [0.125 0.25|
000002F0: 20 30 2E 35 20 31 20 32 20 34 20 38 5D 0D 45 4E | 0.5 1 2 4 8].EN|
00000300: 44 0D 0D 54 4F 20 4E 4F 54 45 20 3A 50 20 3A 44 |D..TO NOTE :P :D|
00000310: 0D 20 49 46 20 3A 50 20 3D 20 22 52 20 52 45 50 |. IF :P = "R REP|
00000320: 45 41 54 20 3A 54 45 4D 50 4F 20 2A 20 3A 44 20 |EAT :TEMPO * :D |
00000330: 5B 5D 20 53 54 4F 50 0D 20 4D 41 4B 45 20 22 50 |[] STOP. MAKE "P|
00000340: 20 3A 50 20 2B 20 32 34 0D 20 53 4F 55 4E 44 20 | :P + 24. SOUND |
00000350: 28 20 49 54 45 4D 20 31 20 2B 20 28 20 52 45 4D |( ITEM 1 + ( REM|
00000360: 41 49 4E 44 45 52 20 3A 50 20 31 32 20 29 20 3A |AINDER :P 12 ) :|
00000370: 50 49 54 43 48 45 53 20 29 20 2A 20 28 20 4F 43 |PITCHES ) * ( OC|
00000380: 54 20 51 55 4F 54 49 45 4E 54 20 3A 50 20 31 32 |T QUOTIENT :P 12|
00000390: 20 29 20 3A 44 20 3A 41 44 20 3A 53 52 20 3A 57 | ) :D :AD :SR :W|
000003A0: 41 56 45 46 4F 52 4D 0D 45 4E 44 0D 0D 54 4F 20 |AVEFORM.END..TO |
000003B0: 50 4C 41 59 20 3A 50 20 3A 44 0D 20 49 46 20 45 |PLAY :P :D. IF E|
000003C0: 4D 50 54 59 3F 20 3A 50 20 53 54 4F 50 0D 20 4E |MPTY? :P STOP. N|
000003D0: 4F 54 45 20 46 49 52 53 54 20 3A 50 20 46 49 52 |OTE FIRST :P FIR|
000003E0: 53 54 20 3A 44 0D 20 50 4C 41 59 20 42 46 20 3A |ST :D. PLAY BF :|
000003F0: 50 20 42 46 20 3A 44 0D 45 4E 44 0D 0D 54 4F 20 |P BF :D.END..TO |
00000400: 57 41 56 45 20 3A 4E 0D 20 4D 41 4B 45 20 22 57 |WAVE :N. MAKE "W|
00000410: 41 56 45 46 4F 52 4D 20 3A 4E 0D 45 4E 44 0D 0D |AVEFORM :N.END..|
00000420: 54 4F 20 50 55 4C 53 45 20 3A 57 49 44 54 48 0D |TO PULSE :WIDTH.|
00000430: 20 2E 44 45 50 4F 53 49 54 20 35 34 32 37 35 20 | .DEPOSIT 54275 |
00000440: 51 55 4F 54 49 45 4E 54 20 3A 57 49 44 54 48 20 |QUOTIENT :WIDTH |
00000450: 32 35 36 0D 20 2E 44 45 50 4F 53 49 54 20 35 34 |256. .DEPOSIT 54|
00000460: 32 37 34 20 42 49 54 41 4E 44 20 3A 57 49 44 54 |274 BITAND :WIDT|
00000470: 48 20 32 35 35 0D 45 4E 44 0D 0D 4D 41 4B 45 20 |H 255.END..MAKE |
00000480: 22 53 54 41 52 54 55 50 20 5B 53 45 54 55 50 5D |"STARTUP [SETUP]|
00000490: 0D 39 0D 45 |.9.E |
. TO SING :P. IF :P = [] STOP. NOTE FIRS
T :P 10. SING BF :P.END..TO SSHER :DURS.
IF EMPTY? :DURS STOP. SSH FIRST :DURS.
SSHER BF :DURS.END..TO SSH :D. SOUND 200
00 :D 7 0 129.END..TO RELEASE :A. MAKE "
SR BITOR ( BITAND :A 15 ) ( BITAND :SR 2
40 ).END..TO SUSTAIN :A. MAKE "SR BITOR
( BITAND :A 15 ) * 16 ( BITAND :SR 15 ).
END..TO SETUP. IF [] = TEXT "SOUND READ
"SOUND. TEMPO 20. MAKE "AD 9. MAKE "SR 0
. MAKE "WAVEFORM 17. MAKE "OCTAVE 1. MAK
E "PITCHES [8779 9301 9854 10440 11060 1
1718 12415 13153 13935 14764 15742 16572
17557 18601].END..TO TEMPO :N. MAKE "TE
MPO :N.END..TO DECAY :A. MAKE "AD BITOR
( BITAND :A 15 ) ( BITAND :AD 240 ).END.
.TO ATTACK :A. MAKE "AD BITOR ( BITAND :
A 15 ) * 16 ( BITAND :AD 15 ).END..TO OC
T :N. OP ITEM 1 + :N [0.125 0.25 0.5 1 2
4 8].END..TO NOTE :P :D. IF :P = "R REP
EAT :TEMPO * :D [] STOP. MAKE "P :P + 24
. SOUND ( ITEM 1 + ( REMAINDER :P 12 ) :
PITCHES ) * ( OCT QUOTIENT :P 12 ) :D :A
D :SR :WAVEFORM.END..TO PLAY :P :D. IF E
MPTY? :P STOP. NOTE FIRST :P FIRST :D. P
LAY BF :P BF :D.END..TO WAVE :N. MAKE "W
AVEFORM :N.END..TO PULSE :WIDTH. .DEPOSI
T 54275 QUOTIENT :WIDTH 256. .DEPOSIT 54
274 BITAND :WIDTH 255.END..MAKE "STARTUP
[SETUP].9.E
×
C64 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL