GLOBAL R,R$ SUB HASH(S$) H=$FFFF FOR I=1 TO LEN(S$) H=H XOR ASC(MID$(S$,I,1))*65535+I NEXT I R=H END SUB FONT 32 CHNS=3 L=100 SPEED=1 GLOBAL CHNS,L,SPEED DIM GLOBAL NOTES(5) NOTES(0)=1 NOTES(1)=3 NOTES(2)=5 NOTES(3)=6 NOTES(4)=8 DIM GLOBAL OCTAVES(8) OCTAVES(0)=37 OCTAVES(1)=13 OCTAVES(2)=25 OCTAVES(3)=37 OCTAVES(4)=49 OCTAVES(5)=61 OCTAVES(6)=73 OCTAVES(7)=85 DIM GLOBAL NOTES$(6) NOTES$(0)="C" NOTES$(1)="D" NOTES$(2)="E" NOTES$(3)="F" NOTES$(4)="G" NOTES$(5)="R" DIM GLOBAL OC$(2) OC$(0)="<" OC$(1)=">" DIM GLOBAL SONG$(CHNS) DIM GLOBAL INSTS(CHNS) DIM GLOBAL HEADX(CHNS) HEADX(0)=5 HEADX(1)=7 HEADX(2)=9 HEADX(3)=11 SUB CLEAR FOR I=0 TO UBOUND(SONG$) SONG$(I)="" NEXT I FOR I=0 TO UBOUND(INSTS) INSTS(I)=0 NEXT I END SUB SUB CHECKTAP IF TAP THEN GOTO TITLE END SUB SUB PLAYSONG(SPEED) OCTAVE=4 W=1 FOR I=0 TO CHNS CELL HEADX(I),14,3 NEXT I FOR I=0 TO L FOR C=0 TO CHNS CALL CHECKTAP N$=MID$(SONG$(C),I+1,1) IF NOT (N$="<" OR N$=">" OR N$="R") THEN W=1 FOR F=6 TO 7 CELL HEADX(C),13,F WAIT VBL NEXT F PLAY C,NOTES(ASC(N$)-67)+OCTAVES(OCTAVE),20/SPEED SOUND INSTS(C) ELSE CELL HEADX(C),13,2 IF N$="<" OR N$=">" THEN W=0 IF N$="<" THEN OCTAVE=(OCTAVE-12) AND 7 IF N$=">" THEN OCTAVE=(OCTAVE+12) MOD 8 END IF NEXT C IF W THEN WAIT 20/SPEED NEXT I END SUB TOUCHSCREEN TITLE: INPUT "ENTER TITLE:";TITLE$ GEN: CLS PRINT TITLE$ CALL CLEAR CALL HASH(TITLE$) SEED=R PRINT "SEED:";SEED RANDOMIZE SEED SPEED=RND(2-0.5)+0.5+RND PRINT "SPEED:";SPEED FOR C=0 TO CHNS INSTS(C)=RND(4) NEXT C FOR C=0 TO CHNS FOR I=0 TO L OC=RND(100) IF OC>50 THEN SONG$(C)=SONG$(C)+OC$(RND(UBOUND(OC$)-1)) SONG$(C)=SONG$(C)+NOTES$(RND(UBOUND(NOTES$)-1)) NEXT I NEXT C PRINT SONG$(0) CALL PLAYSONG(SPEED) FOR I=0 TO CHNS CELL HEADX(I),13,2 NEXT I DO CALL CHECKTAP LOOP #1:MAIN PALETTES 003C0F3300300C03003D1F3700351D17 003F2A15003F2A15003F2A15003F2A15 #2:MAIN CHARACTERS 00000000000000000000000000000000 007C82AA82BA827C0000000000000000 007CFED6FEC6FE7C0000000000000000 00000000000024243C7E7E7E7E7E0000 00000000000024203C7E7E7E7E7E0000 00000000000024043C7E7E7E7E7E0000 007CFED67C00827C0000000000000000 007CD67C0000827C0000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 007C82AAAABA827C00006C6C6C000000 007C8282BABA827C00007C7C7C000000 007C82BABAFEFE7C00007C7C7C000000 007C82BABA7C827C00007C7C7C000000 007CBA000000007C00007C0000000000 0038000000000038007C000000000000 00100000000000100038000000000000 00100000000000000010000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00808080808000800000000000000000 00282800000000000000000000000000 0048FC484848FC480000000000000000 00107E907C12FC100000000000000000 00E2A4E8102E4A8E0000000000000000 00000000000000000000000000000000 00101000000000000000000000000000 02040404040404020000000000000000 80404040404040800000000000000000 00281028000000000000000000000000 00101010FE1010100000000000000000 00000000000040800000000000000000 000000003C0000000000000000000000 00000000000000800000000000000000 00020408102040800000000000000000 007C82820082827C0000000000000000 00001010001010000000000000000000 007C02027C80807C0000000000000000 007C02027C02027C0000000000000000 000082827C0202000000000000000000 007C80807C02027C0000000000000000 007C80807C82827C0000000000000000 007C0202000202000000000000000000 007C82827C82827C0000000000000000 007C82827C02027C0000000000000000 00008000000000800000000000000000 00008000000080800000000000000000 00061860806018060000000000000000 0000007C007C00000000000000000000 00C0300C020C30C00000000000000000 E01010E0808000800000000000000000 007C82BABAAC807C0000000000000000 007C8282FE8282820000000000000000 007C8282FC8282FC0000000000000000 007E80808080807E0000000000000000 00FC8282828282FC0000000000000000 00FE8080FE8080FE0000000000000000 00FE8080F08080800000000000000000 007C82808E82827C0000000000000000 00828282FE8282820000000000000000 00FE1010101010FE0000000000000000 00040404040484780000000000000000 008890A0C0A090880000000000000000 00808080808080FE0000000000000000 00C6AA92828282820000000000000000 00C2A2928A8682820000000000000000 007C82828282827C0000000000000000 00FC8282FC8080800000000000000000 00788484848C847A0000000000000000 007C8282FC8282820000000000000000 007E80807C0202FC0000000000000000 00FE1010101010100000000000000000 008282828282827C0000000000000000 00828244442828100000000000000000 008282828292AAC60000000000000000 00824428102844820000000000000000 008282827E0202FC0000000000000000 00FE020C106080FE0000000000000000 00060404040404060000000000000000 00804020100804020000000000000000 00C04040404040C00000000000000000 00102844000000000000000000000000 00000000000000FF0000000000000000 00804000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00060404080404060000000000000000 00101010101010100000000000000000 00C04040204040C00000000000000000 000040A8A81000000000000000000000 #15:MAIN SOUND 00007050061D000018008400003A0000 280060000AFF00002800420002FF0000 30005000000000001800500000000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 00014040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 250F000000002C0F000000002A0F0000 00002C0F00000000300F000000002E0F 000000002C0F000000002E0F00000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 251F000000002C1F000000002A1F0000 00002C1F00000000302F000000002E2F 000000002C3F000000002E3F00000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000