REM OUTS NEED TO BE SAVED AND LOADED REM ASC->#VALUE: (-208) RANDOMIZE TIMER REM WAS8BIT DIM GLOBAL PATTERN$(8) PATTERN$(0)="000000000000000000000000000000000000000000" PATTERN$(1)="010101010101010101010101010101010101010101" PATTERN$(2)="101010101010101010101010101010101010101010" PATTERN$(3)="001001001001001001001001001001001001001001" PATTERN$(4)="010010010010010010010010010010010010010010" PATTERN$(5)="100100100100100100100100100100100100100100" PATTERN$(6)="001001001001001001001001001001001001001001" PATTERN$(7)="100100100100100100100100100100100100100100" PATTERN$(8)="010010010010010010010010010010010010010010" DIM GLOBAL BSPEED(6),B1(6),B2(6) GLOBAL BI FOR I=0 TO 4 READ BSPEED(I),B1(I),B2(I) NEXT I DATA 9999,0,0 DATA 15,1,2 DATA 5,1,2 DATA 10,3,5 DATA 10,6,8 DIM GLOBAL DICECHAR(6),NDICE(6),IDICE(6) DICECHAR(1)=8 DICECHAR(2)=12 DICECHAR(3)=64 DICECHAR(4)=68 DICECHAR(5)=72 DICECHAR(6)=76 GLOBAL ILEVEL,IOUT IOUT=0 ILEVEL=0 DIM GLOBAL MULTIPLY(10) FOR I=0 TO 10 READ MULTIPLY(I) NEXT I DATA 1,5,10,50,100,500,1000,5000,10000,50000,100000,500000 DIM GLOBAL PSCORE(3) GLOBAL CARRY CARRY=0 BGCOLOR=0 GLOBAL IROLL,ISCORE IROLL=16 ISCORE=0 SCREEN_ADDRESS=$9000 PERSIST_ADDRESS=$E000 BG0_BG1_SIZE=$1000 GLOBAL XSCORE GLOBAL YSCORE XSCORE=3 YSCORE=1 REM WAS8BIT TOUCHSCREEN GOSUB LOAD_DATA IPAT=0 CALL NEWPATTERN(IPAT) CALL LEVELOUT GOTO LOADROUND NEXTROUND: IROLL=16 CALL LEVELOUT LOADROUND: NUMBER 9,15,IROLL,2 CALL SHOWROLLS CALL NEWDICE DO BWAIT=(BWAIT+1) MOD BSPEED(IPAT) IF BWAIT=0 THEN ADD BI,1,B1(IPAT) TO B2(IPAT) CALL BLINK(BI) END IF IF TOUCH THEN TX=(TOUCH.X\16)*2 TY=(TOUCH.Y\16)*2 TX2=(TOUCH.X\32) TY2=((TOUCH.Y-8)\32) IF TY2=1 AND IDICE(TX2)=1 THEN IDICE(TX2)=0 CALL ALLDICE ELSE IF TY2=2 AND IDICE(TX2)=0 THEN IDICE(TX2)=1 CALL ALLDICE END IF REM BG COLOR IF TX=0 AND TY=14 THEN ADD BGCOLOR,1,0 TO 63 ATTR(0) NUMBER 0,15,BGCOLOR,2 PALETTE 0,BGCOLOR,,, GOSUB SAVE_DATA WAIT 15 END IF REM XXX IF TX=2 AND TY=14 THEN REM ADD IPAT,1,0 TO 4 REM CALL NEWPATTERN(IPAT) REM WAIT 15 END IF REM ROLL IF TX=6 AND TY=14 AND IROLL>0 THEN CHECK=0 FOR I=0 TO 4 IF IDICE(I)=0 THEN CHECK=1 NEXT I FOR I=0 TO 4 IF IDICE(I)=1 THEN CHECK=0 NEXT I IF CHECK=1 THEN CALL ROLLDICE ELSE CHECK=1 FOR I=0 TO 4 IF IDICE(I)<2 THEN CHECK=0 NEXT I IF CHECK=1 THEN CALL NEWDICE END IF END IF REM CASH OUT IF TX=12 AND TY=14 THEN CALL GETSCORE GOSUB SAVE_DATA WAIT 15 IF IROLL=0 THEN PLAY 1,90,10 WAIT 120 WSCORE=INT(ISCORE/10) IF ISCORE>=(1000+ILEVEL*100) THEN ISCORE=ISCORE*MULTIPLY(ILEVEL) IOUT=0 INC ILEVEL IF ILEVEL=11 THEN END ELSE INC IOUT CALL LEVELOUT IF IOUT=3 THEN END END IF PLAY 1,90,10 CALL SHOWSCORE WAIT 120 WHILE ISCORE>0 CALL ADDSCORE(1) DEC ISCORE IWAIT=(IWAIT+1) MOD WSCORE IF IWAIT=0 THEN WAIT VBL WEND CALL SHOWSCORE PLAY 0,90,10 BG FILL 0,5 TO 19,12 CHAR 0 GOSUB SAVE_DATA WAIT 120 GOTO NEXTROUND END IF END IF END IF WAIT VBL LOOP SUB LEVELOUT CELL 8,13,0 ATTR(5) TEXT 0,13,"LEVEL:" NUMBER 6,13,ILEVEL,2 TEXT 9,13,"TARGET:" NUMBER 16,13,1000+(ILEVEL*100),4 ATTR(2) IADD=0 FOR I=1 TO 3 IF I>IOUT THEN IADD=1 CELL 0,I,17+IADD CELL 19,I,17+IADD NEXT I NUMBER 10,14,IOUT,1 END SUB SUB SHOWSCORE ATTR(0) S$=STR$(ISCORE) L=LEN(S$) BG FILL 2,2 TO 17,2 CHAR 16 NUMBER 17-L+1,2,ISCORE,L END SUB SUB GETSCORE SCORE$="" IADD=0 FOR I=0 TO 4 IF IDICE(I)=1 THEN SCORE$=SCORE$+STR$(NDICE(I)) NEXT I IF SCORE$="5" THEN IADD=50 IF SCORE$="1" THEN IADD=100 IF SCORE$="111" THEN IADD=1000 IF SCORE$="222" THEN IADD=200 IF SCORE$="333" THEN IADD=300 IF SCORE$="444" THEN IADD=400 IF SCORE$="555" THEN IADD=500 IF IADD=0 THEN FOR I=0 TO 4 IF IDICE(I)=1 THEN IF NDICE(I)=1 THEN IADD=IADD+100 ELSE IF NDICE(I)=5 THEN IADD=IADD+50 ELSE IDICE(I)=0 END IF END IF NEXT I END IF IF IADD>0 THEN FOR I=0 TO 4 IF IDICE(I)=1 THEN IDICE(I)=2 NEXT I ISCORE=ISCORE+IADD CALL SHOWSCORE PLAY 0,70,1 ELSE IF IADD=0 THEN FOR I=0 TO 4 IF IDICE(I)=1 THEN IDICE(I)=0 NEXT I PLAY 0,30,1 END IF CALL ALLDICE END SUB SUB SHOWROLLS BG FILL 2,3 TO 17,3 CHAR 0 ATTR(5) FOR X=2 TO IROLL+1 CELL X,3,3 NEXT X ATTR(0) NUMBER 9,15,IROLL,2 CALL SHOWSCORE END SUB SUB NEWDICE FOR II=0 TO 5 FOR I=0 TO 4 NDICE(I)=RND(5)+1 IDICE(I)=0 NEXT I CALL ALLDICE PLAY 0,30,1 SOUND 0 WAIT 5 NEXT II END SUB SUB ROLLDICE DEC IROLL CALL SHOWROLLS FOR II=0 TO 5 FOR I=0 TO 4 IF IDICE(I)=0 THEN NDICE(I)=RND(5)+1 IF IDICE(I)=1 THEN IDICE(I)=2 NEXT I CALL ALLDICE PLAY 0,30,1 SOUND 0 WAIT 5 NEXT II END SUB SUB ALLDICE BG FILL 0,5 TO 19,12 CHAR 0 FOR I=0 TO 4 ATTR(2+IDICE(I)) IF IDICE(I)>0 THEN IY=4 ELSE IY=0 CALL PUTDICE(I*4,5+IY,NDICE(I)) NEXT I END SUB SUB PUTDICE(X,Y,I) FOR IX=0 TO 3 FOR IY=0 TO 3 CELL X+IX,Y+IY,DICECHAR(I)+IX+(16*IY) NEXT IY NEXT IX END SUB SUB SPLIT(BNUM,CNUM) I=BNUM MOD 1000 CNUM=(BNUM-I)\1000 BNUM=I END SUB LOAD_DATA: COPY PERSIST_ADDRESS,BG0_BG1_SIZE TO SCREEN_ADDRESS REM LOAD BUTTONS BG 1 BG COPY 0,0,20,16 TO 0,0 REM LOAD COUNTER BG 0 FOR I=0 TO 3 NUM$="" II=3-I IX=XSCORE+(II*4) FOR X=0 TO 2 C=CELL.C(IX+X,YSCORE) IF C=0 THEN C=208 A=C-160 NUM$=NUM$+CHR$(A) REM ASC 48="0" REM CHAR 208="0" NEXT X PSCORE(I)=VAL(NUM$) NEXT I REM LOAD BGCOLOR NUM$="" BG 0 FOR X=0 TO 1 C=CELL.C(X+9,15) IF C=0 THEN C=208 A=C-208 NUM$=NUM$+STR$(A) REM ASC 48="0" REM CHAR 208="0" NEXT X IROLL=VAL(NUM$) IF IROLL=0 THEN IROLL=16 CALL SHOWROLLS NUM$="" FOR X=0 TO 1 C=CELL.C(X,15) IF C=0 THEN C=208 A=C-208 NUM$=NUM$+STR$(A) REM ASC 48="0" REM CHAR 208="0" NEXT X BGCOLOR=VAL(NUM$) PALETTE 0,BGCOLOR,,, ATTR(0) NUMBER 0,15,BGCOLOR,2 CALL ADDSCORE(0) REM IOUT C=CELL.C(10,14) IF C=0 THEN C=208 IOUT=(C-208) NUMBER 10,14,IOUT,1 RETURN SAVE_DATA: COPY SCREEN_ADDRESS,BG0_BG1_SIZE TO PERSIST_ADDRESS RETURN SUB NEWPATTERN(I) BI=B1(I) CALL BLINK(I) END SUB SUB BLINK(I) ATTR(1) B=1 FOR X=1 TO 18 CELL X,0,1+VAL(MID$(PATTERN$(I),B,1)) INC B NEXT X FOR Y=1 TO 3 CELL 18,Y,1+VAL(MID$(PATTERN$(I),B,1)) INC B NEXT Y FOR X=18 TO 1 STEP -1 CELL X,4,1+VAL(MID$(PATTERN$(I),B,1)) INC B NEXT X FOR Y=3 TO 1 STEP -1 CELL 1,Y,1+VAL(MID$(PATTERN$(I),B,1)) INC B NEXT Y END SUB SUB ADDSCORE(I) IF I>0 THEN INC PSCORE(0) IF PSCORE(0)>999 THEN CALL SPLIT(PSCORE(0),CARRY) PSCORE(1)=PSCORE(1)+CARRY IF PSCORE(1)>999 THEN CALL SPLIT(PSCORE(1),CARRY) PSCORE(2)=PSCORE(2)+CARRY IF PSCORE(2)>999 THEN CALL SPLIT(PSCORE(2),CARRY) PSCORE(3)=PSCORE(3)+CARRY END IF END IF END IF ATTR(0) TEXT XSCORE-1,YSCORE,"$" NUMBER XSCORE,YSCORE,PSCORE(3),3 TEXT XSCORE+3,YSCORE,"," NUMBER XSCORE+4,YSCORE,PSCORE(2),3 TEXT XSCORE+7,YSCORE,"," NUMBER XSCORE+8,YSCORE,PSCORE(1),3 TEXT XSCORE+11,YSCORE,"," NUMBER XSCORE+12,YSCORE,PSCORE(0),3 END SUB #1:MAIN PALETTES 003F3F00003C2814003F2000003F1900 002A0815003F2A15003F2A15003F2A15 #2:MAIN CHARACTERS 00000000000000000000000000000000 FFFFE7C3C3E7FFFFFFFFFFFFFFFFFFFF E7DBBD7E7EBDDBE7FFE7C38181C3E7FF 0018245A5A2418000000183C3C180000 FF80B1AAB2AAB180007F7F7F7F7F7F7F FF01CD11D151CD0100FFFFFFFFFFFFFF FF8080CBEADBCACB007F7F7F7F7F7F7F FF0101454555552900FFFFFFFFFFFFFF 00071C30206040400000030F1F1F3F3F 00FF0000000000000000FFFFFFFFFFFF 00FF0000000000000000FFFFFFFFFFFF 00E0380C040602020000C0FCFCFEFEFE 00071C30206040400000030F1F1F3F3F 00FF0000000000000000FFFFFFFFFFFF 00FF0000000307070000FFFFFFFCF8F8 00E0380C04C6E2E20000C0FCFC3E1E1E 00000000000000000000001818000000 62954A24244A95620062341818346200 FFE3B59999B5E3FF0062341818346200 00000000000000000000000000000000 80808080808080FF7F7F7F7F7F7F7F7F 01010101010101FFFFFFFFFFFFFFFFFF 80A2948894A280FF7F7F7F7F7F7F7F7F 017D5545457D01FFFFFFFFFFFFFFFFFF 40404040404040403F3F3F3F3F3F3F3F 0000000000030707FFFFFFFFFFFCF8F8 0000000000C0E0E0FFFFFFFFFF3F1F1F 0202020202020202FEFEFEFEFEFEFEFE 40404040404040403F3F3F3F3F3F3F3F 0000000000000000FFFFFFFFFFFFFFFF 0707030000000000F8F8FCFFFFFFFFFF E2E2C202020202021E1E3EFEFEFEFEFE FF80B1AAB2AAA980007F4E554D55567F FF0129A9A9A93D0100FFD7575757C3FF FF80818187898987007F7E7E78767678 FF010101E10101C100FFFFFF1FFFFF3F 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 40404040404040403F3F3F3F3F3F3F3F 0707030000000000F8F8FCFFFFFFFFFF E0E0C000000000001F1F3FFFFFFFFFFF 0202020202020202FEFEFEFEFEFEFEFE 40404040404347473F3F3F3F3F3C3838 0000000000C0E0E0FFFFFFFFFF3F1F1F 0000000000000000FFFFFFFFFFFFFFFF 0202020202020202FEFEFEFEFEFEFEFE 80B2AAAAAAB280FF7F4D5555554D7F7F 014DA98DA94D01FFFFB3577357B3FFFF 81818F81818080FF7E7E707E7E7F7F7F 2121C101010101FFDFDF3FFFFFFFFFFF 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 40406020301C07003F3F1F1F1F1F0700 000000000000FF00FFFFFFFFFFFFFF00 000000000000FF00FFFFFFFFFFFFFF00 020206040C38E000FEFEFEFCFCF8E000 47476320301C070038381C1F1F1F0700 E0E0C0000000FF001F1F3FFFFFFFFF00 000000000000FF00FFFFFFFFFFFFFF00 020206040C38E000FEFEFEFCFCF8E000 00071C30206040400000030F1F1F3F3F 00FF0000000000000000FFFFFFFFFFFF 00FF0000000307070000FFFFFFFCF8F8 00E0380C04C6E2E20000C0FCFC3E1E1E 00071C30206347470000030F1F1C3838 00FF000000C0E0E00000FFFFFF3F1F1F 00FF0000000307070000FFFFFFFCF8F8 00E0380C04C6E2E20000C0FCFC3E1E1E 00071C30206347470000030F1F1C3838 00FF000000C0E0E00000FFFFFF3F1F1F 00FF0000000307070000FFFFFFFCF8F8 00E0380C04C6E2E20000C0FCFC3E1E1E 00071C30206347470000030F1F1C3838 00FF000000C0E0E00000FFFFFF3F1F1F 00FF0000000307070000FFFFFFFCF8F8 00E0380C04C6E2E20000C0FCFC3E1E1E 40404040404040403F3F3F3F3F3F3F3F 0000000000030707FFFFFFFFFFFCF8F8 0707030000C0E0E0F8F8FCFFFF3F1F1F E2E2C202020202021E1E3EFEFEFEFEFE 474743404040404038383C3F3F3F3F3F E0E0C000000000001F1F3FFFFFFFFFFF 0707030000000000F8F8FCFFFFFFFFFF E2E2C202020202021E1E3EFEFEFEFEFE 474743404040404038383C3F3F3F3F3F E0E0C000000307071F1F3FFFFFFCF8F8 0707030000C0E0E0F8F8FCFFFF3F1F1F E2E2C202020202021E1E3EFEFEFEFEFE 474743404043474738383C3F3F3C3838 E0E0C00000C0E0E01F1F3FFFFF3F1F1F 0707030000030707F8F8FCFFFFFCF8F8 E2E2C20202C2E2E21E1E3EFEFE3E1E1E 40404040404347473F3F3F3F3F3C3838 0707030000C0E0E0F8F8FCFFFF3F1F1F E0E0C000000000001F1F3FFFFFFFFFFF 0202020202020202FEFEFEFEFEFEFEFE 40404040404347473F3F3F3F3F3C3838 0000000000C0E0E0FFFFFFFFFF3F1F1F 0000000000030707FFFFFFFFFFFCF8F8 0202020202C2E2E2FEFEFEFEFE3E1E1E 40404040404347473F3F3F3F3F3C3838 0707030000C0E0E0F8F8FCFFFF3F1F1F E0E0C000000307071F1F3FFFFFFCF8F8 0202020202C2E2E2FEFEFEFEFE3E1E1E 474743404043474738383C3F3F3C3838 E0E0C00000C0E0E01F1F3FFFFF3F1F1F 0707030000030707F8F8FCFFFFFCF8F8 E2E2C20202C2E2E21E1E3EFEFE3E1E1E 47476320301C070038381C1F1F1F0700 E0E0C0000000FF001F1F3FFFFFFFFF00 000000000000FF00FFFFFFFFFFFFFF00 020206040C38E000FEFEFEFCFCF8E000 47476320301C070038381C1F1F1F0700 E0E0C0000000FF001F1F3FFFFFFFFF00 070703000000FF00F8F8FCFFFFFFFF00 E2E2C6040C38E0001E1E3EFCFCF8E000 47476320301C070038381C1F1F1F0700 E0E0C0000000FF001F1F3FFFFFFFFF00 070703000000FF00F8F8FCFFFFFFFF00 E2E2C6040C38E0001E1E3EFCFCF8E000 47476320301C070038381C1F1F1F0700 E0E0C0000000FF001F1F3FFFFFFFFF00 070703000000FF00F8F8FCFFFFFFFF00 E2E2C6040C38E0001E1E3EFCFCF8E000 #3:MAIN BG 00001410000000000000000000000000 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 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000040505050000000000000000 20022102000000000000000022032303 00000000000000000605070514051505 00000000000000003002310200000000 00000000320333030000000000000000 16051705 #15:MAIN SOUND 2100F0551000F9001800846C003A0000 08006060000000002800303019FE0000 38002020000000003800505000000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000