
'
'
'            0600             FORWARD
'            2453         LEFT  TOP   RIGHT  BOTTOM
'            0100             DOWNWARD
'             
'             |
'
'   0300     0300     0300
'   6512  -- 2651 --  1265      LEFT ROLL  = SLIDE LEFT
'   0400     0400     0400      RIGHT ROLL = SLIDE RIGHT
'             
'             |
'            0100
'            2354
'            0600
'

TOUCHSCREEN
REM WAS8BIT

DIM GLOBAL DICE(4,3,26),BIGNUM(6)
GLOBAL UPNUM,TOPNUM,DOWNNUM,LEFTNUM,RIGHTNUM

FOR DI=1 TO 26
RESTORE DIDATA
FOR Y=1 TO 3
FOR X=1 TO 4
    READ DICE(X,Y,DI)
NEXT X
NEXT Y
NEXT DI

DIDATA:
DATA 0,3,0,0
DATA 2,6,5,1
DATA 0,4,0,0

FOR I=1 TO 6
    READ BIGNUM(I)
NEXT I
DATA 2,4,6,8,10,12

BG COPY 0,0,20,16 TO 0,0

DIM XDICE(26),YDICE(26), IBLOX(4)

REM 30-54 = BLOCKS


FOR I=10 TO 63
    SPRITE I SIZE 1
NEXT I

II=29
FOR I=2 TO 7
    INC II
    SPRITE II,16*I,16*0,32
    INC II
    SPRITE II,16*I,16*7,32
NEXT I
FOR I=1 TO 6
    INC II
    SPRITE II,16*1,16*I,32
    INC II
    SPRITE II,16*8,16*I,32
NEXT I

FOR I=1 TO 6
  II=10+I
  CALL GETUM(II)
  XDICE(II)=1+I
  YDICE(II)=1
  SPRITE II,XDICE(II)*16,YDICE(II)*16,BIGNUM(TOPNUM)
  SPRITE II SIZE 1 PAL 0
  J=20+I
  CALL GETUM(J)
  XDICE(J)=1+I
  YDICE(J)=6
  SPRITE J,XDICE(J)*16,YDICE(J)*16,BIGNUM(TOPNUM)
  SPRITE J SIZE 1 PAL 1
NEXT I



ITOUCH=0
IDELAY=0

IDICE=0


REM GAMES
SPRITE 55,0,0,64
SPRITE 57,16,0,66
SPRITE 58,8*16,0,68
SPRITE 59,9*16,0,70
SPRITE 60,0,7*16,72
SPRITE 61,16,7*16,74
SPRITE 62,8*16,7*16,76
SPRITE 63,9*16,7*16,78


DO 


IF ITOUCH=1 THEN INC IDELAY

IF TOUCH THEN
   TX=(TOUCH.X\16)*16+8
   TY=(TOUCH.Y\16)*16+8
     
   IF ITOUCH=0 THEN
      TX1=TX
      TY1=TY
      SPRITE 0,TX,TY,1
      
      
      IF SPRITE HIT(0) THEN
         DHIT=HIT
         '
         '''BLOX CHECKS
            FOR I=1 TO 4
                IBLOX(I)=0
            NEXT I
         SPRITE 0,TX-16,TY,1
          IF SPRITE HIT(0) THEN IBLOX(1)=1 
         SPRITE 0,TX+16,TY,1
          IF SPRITE HIT(0) THEN IBLOX(2)=1
         SPRITE 0,TX,TY-16,1
          IF SPRITE HIT(0) THEN IBLOX(3)=1
         SPRITE 0,TX,TY+16,1
          IF SPRITE HIT(0) THEN IBLOX(4)=1
         '
         '
         IF DHIT>10 AND DHIT<30 THEN
            TX1=TX
            TY1=TY
            X=SPRITE.X(DHIT)
            Y=SPRITE.Y(DHIT)
            SPRITE 1,X+4,Y-8,33+UPNUM
            SPRITE 2,X+4,Y+16,33+DOWNNUM
            SPRITE 3,X-8,Y+4,33+LEFTNUM
            SPRITE 4,X+16,Y+4,33+RIGHTNUM
            ITOUCH=1
            IDELAY=0
            IDICE=DHIT
          END IF
      END IF
      
      
   ELSE IF ITOUCH=1 THEN
   
            PLAY 0,20,1
            TX2=(TX-TX1)\16
            TY2=(TY-TY1)\16
            
            '
            TRACE IBLOX(1),IBLOX(2),IBLOX(3),IBLOX(4)
            '
            '        LEFT     RIGHT    UP       DOWN
            '

            IF (ABS(TX2)=1) OR (ABS(TY2)=1) THEN
            IF (TX2=0 OR TY2=0) THEN
               PLAY 0,90,1
               ITOUCH=2
               
               
               
               IF TX2=-1 AND IBLOX(1)=0 THEN
                  DEC XDICE(IDICE)
                  TEMP=DICE(1,2,IDICE)
                  FOR I=1 TO 3
                      DICE(I,2,IDICE)=DICE(I+1,2,IDICE)
                  NEXT I
                  DICE(4,2,IDICE)=TEMP
                  CALL GETUM(IDICE)
                  SPRITE IDICE,16*XDICE(IDICE),16*YDICE(IDICE),BIGNUM(TOPNUM)
                  
               ELSE IF TX2=1 AND IBLOX(2)=0 THEN
                  INC XDICE(IDICE)
                  TEMP=DICE(4,2,IDICE)
                  FOR I=4 TO 2 STEP -1
                      DICE(I,2,IDICE)=DICE(I-1,2,IDICE)
                  NEXT I
                  DICE(1,2,IDICE)=TEMP
                  CALL GETUM(IDICE)
                  SPRITE IDICE,16*XDICE(IDICE),16*YDICE(IDICE),BIGNUM(TOPNUM)
               
               ELSE IF TY2=-1 AND IBLOX(3)=0 THEN
                   DEC YDICE(IDICE)
                   S1=DICE(2,1,IDICE)
                   S2=DICE(4,2,IDICE)
                   DICE(2,1,IDICE)=DICE(2,2,IDICE)
                   DICE(2,2,IDICE)=DICE(2,3,IDICE)
                   DICE(4,2,IDICE)=S1
                   DICE(2,3,IDICE)=S2
                   CALL GETUM(IDICE)
                   SPRITE IDICE,16*XDICE(IDICE),16*YDICE(IDICE),BIGNUM(TOPNUM)
                   
               ELSE IF TY2=1 AND IBLOX(4)=0 THEN
                   INC YDICE(IDICE)
                   S1=DICE(2,3,IDICE)
                   S2=DICE(4,2,IDICE)
                   DICE(2,3,IDICE)=DICE(2,2,IDICE)
                   DICE(2,2,IDICE)=DICE(2,1,IDICE)
                   DICE(4,2,IDICE)=S1
                   DICE(2,1,IDICE)=S2
                   CALL GETUM(IDICE)
                   SPRITE IDICE,16*XDICE(IDICE),16*YDICE(IDICE),BIGNUM(TOPNUM)
       
               ELSE
                   ' MOVEMENT BLOX
                   PLAY 0,20,30
       
               END IF
               
            END IF
            END IF
            
            IF IDELAY>10 THEN ITOUCH=2
        
        
   ELSE IF ITOUCH=2 THEN
   
        SPRITE OFF 1
        SPRITE OFF 2
        SPRITE OFF 3
        SPRITE OFF 4
        ITOUCH=3
        IDELAY=0
        IDICE=0
   END IF
  
     
ELSE 

   IF ITOUCH=3 THEN ITOUCH=0
END IF


WAIT VBL
LOOP

SUB GETUM(DI)
    UPNUM=DICE(2,1,DI)
    TOPNUM=DICE(2,2,DI)
    DOWNNUM=DICE(2,3,DI)
    LEFTNUM=DICE(1,2,DI)
    RIGHTNUM=DICE(3,2,DI)
END SUB


#1:MAIN PALETTES
2A3F3000003F0800003C0C00003F3C00
003F2A15003F2A15003F2A15003F2A15

#2:MAIN CHARACTERS
00000000000000000000000000000000
80000000000000008000000000000000
0000000707010101007F7F78787E7E7E
000000808080808000FEFE7E7E7E7E7E
0000000F0F000007007F7F70707F7F78
000000E0F03030F000FEFE1E0ECECE0E
0000000F0F000003007F7F70707F7F7C
000000E0F03030E000FEFE1E0ECECE1E
0000000C0C0C0C0F007F7F7373737370
00000030303030F000FEFECECECECE0E
0000000F0F0C0C0F007F7F7070737370
000000F0F00000E000FEFE0E0EFEFE1E
000000070F0C0C0F007F7F7870737370
000000E0E00000E000FEFE1E1EFEFE1E
FF80808080808000FF80808080808000
7F010101010101017F01010101010101
00000000000000000000000000000000
00000000000000000000000000000000
01010107070000007E7E7E78787F7F00
808080E0E00000007E7E7E1E1EFEFE00
0F0C0C0F0F00000070737370707F7F00
E00000F0F00000001EFEFE0E0EFEFE00
0300000F0F0000007C7F7F70707F7F00
E03030F0E00000001ECECE0E1EFEFE00
0F00000000000000707F7F7F7F7F7F00
F0303030300000000ECECECECEFEFE00
0F00000F0F000000707F7F70707F7F00
F03030F0E00000000ECECE0E1EFEFE00
0F0C0C0F0700000070737370787F7F00
F03030F0E00000000ECECE0E1EFEFE00
80808080808080FE80808080808080FE
00010101010101FF00010101010101FF
8060783E3F1F1F0F8060783E3F1F1F0F
01061E7CFCF8F8F001061E7CFCF8F8F0
FFFFFFFFFFFFFFFF00180808081C0000
FFFFFFFFFFFFFFFF00380418203C0000
FFFFFFFFFFFFFFFF0038041804380000
FFFFFFFFFFFFFFFF0024243C04040000
FFFFFFFFFFFFFFFF003C203804380000
FFFFFFFFFFFFFFFF0018203824180000
0000000000000000007F7F7F7F7F7F7F
000000000000000000FEFEFEFEFEFEFE
FFFFFFFFFFFFFFFF0000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
0F1F1F3F3E7860800F1F1F3F3E786080
F0F8F8FC7C1E0601F0F8F8FC7C1E0601
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000007F7F7F7F7F7F7F00
0000000000000000FEFEFEFEFEFEFE00
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
071F3F7F7FFFFFFF071820404F8F8181
E0F8FCFEFEFFFFFFE018040282818181
071F3F7F7FFFFFFF071820404F8F808F
E0F8FCFEFEFFFFFFE0180402F2F131F1
071F3F7F7FFFFFFF071820404F8F8083
E0F8FCFEFEFFFFFFE0180402F2F131F1
071F3F7F7FFFFFFF071820404C8C8C8F
E0F8FCFEFEFFFFFFE0180402323131F1
071F3F7F7FFFFFFF071820404F8F8C8F
E0F8FCFEFEFFFFFFE0180402F2F101F1
071F3F7F7FFFFFFF071820404F8F8C8F
E0F8FCFEFEFFFFFFE0180402F2F101F1
071F3F7F7FFFFFFF071820404F8F8080
E0F8FCFEFEFFFFFFE0180402F2F13131
071F3F7F7FFFFFFF071820404F8F8C8F
E0F8FCFEFEFFFFFFE0180402F2F131F1
FFFFFF7F7F3F1F0781818F4F40201807
FFFFFFFEFEFCF8E08181F1F2020418E0
FFFFFF7F7F3F1F078F8C8F4F40201807
FFFFFFFEFEFCF8E0F101F1F2020418E0
FFFFFF7F7F3F1F0783808F4F40201807
FFFFFFFEFEFCF8E0F131F1F2020418E0
FFFFFF7F7F3F1F078F80804040201807
FFFFFFFEFEFCF8E0F1313132020418E0
FFFFFF7F7F3F1F078F808F4F40201807
FFFFFFFEFEFCF8E0F131F1F2020418E0
FFFFFF7F7F3F1F078F8C8F4F40201807
FFFFFFFEFEFCF8E0F131F1F2020418E0
FFFFFF7F7F3F1F078080804040201807
FFFFFFFEFEFCF8E031313132020418E0
FFFFFF7F7F3F1F078F8C8F4F40201807
FFFFFFFEFEFCF8E0F131F1F2020418E0

#3:MAIN BG
00001410000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
0000000000000000000000000E000F00
0E000F000E000F000E000F000E000F00
0E000F00000000000000000000000000
000000001E001F001E001F001E001F00
1E001F001E001F001E001F0000000000
0000000000000000000000000E000F00
0E000F000E000F000E000F000E000F00
0E000F00000000000000000000000000
000000001E001F001E001F001E001F00
1E001F001E001F001E001F0000000000
0000000000000000000000000E000F00
0E000F000E000F000E000F000E000F00
0E000F00000000000000000000000000
000000001E001F001E001F001E001F00
1E001F001E001F001E001F0000000000
0000000000000000000000000E000F00
0E000F000E000F000E000F000E000F00
0E000F00000000000000000000000000
000000001E001F001E001F001E001F00
1E001F001E001F001E001F0000000000
0000000000000000000000000E000F00
0E000F000E000F000E000F000E000F00
0E000F00000000000000000000000000
000000001E001F001E001F001E001F00
1E001F001E001F001E001F0000000000
0000000000000000000000000E000F00
0E000F000E000F000E000F000E000F00
0E000F00000000000000000000000000
000000001E001F001E001F001E001F00
1E001F001E001F001E001F0000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000

