Misc graphics demos

Discussions related to graphics (2D and 3D), animation and games programming
David Williams

Misc graphics demos

Post by David Williams »

Open thread. Anyone can post graphics demos or graphics-related example programs here, for entertainment if nothing else.

Here's one for starters (in no way instructive!) - an old program of mine modified for BBCSDL, and runs at ~30 fps on my Android phone (Moto G4 Plus):

Code: Select all

      REM Donut (sic)
      REM Works with BB4W and Intel/ARM BBCSDL (32-bit; not MacOS or iOS)
      REM Released 31-Aug-2018
      REM Based on GFXLIB demo found here: http://www.proggies.uk/gfxlibdemos/gfxlib_demos_index.html

      HIMEM = LOMEM + 2*&100000
      HIMEM = (HIMEM + 3) AND -4

      BB4W% = (INKEY(-256) == &57)

      IF BB4W% THEN OSCLI "ESC OFF"

      ON CLOSE QUIT
      ON ERROR PROCerror( REPORT$ + " at line " + STR$ERL )

      PROCFixWindowSize : REM works for both BB4W and BBCSDL

      MODE 8 : OFF

      IF POS

      ScrW% = @vdu%!208
      ScrH% = @vdu%!212

      IF NOT BB4W% THEN
        REM OSCLI "SYS 4"  : REM Effectively disable SDL_MULTIGESTURE (prevents zooming & panning)
        FontFile$ = @lib$ + "DejaVuSans.ttf"
        F% = OPENIN( FontFile$ )
        CLOSE#F%
        IF F% THEN
          OSCLI "font " + FontFile$ + ", 20"
        ENDIF
        IF (@platform% AND &40) THEN PROCerror( "Not compatible with 64-bit BBCSDL" )
        CASE (@platform% AND &F) OF
          WHEN 2 : PROCerror( "Not compatible with MacOS" )
          WHEN 4 : PROCerror( "Not compatible with iOS" )
        ENDCASE
      ENDIF

      REM -------------------------------------
      IF BB4W% THEN
        GetTicks$ = "GetTickCount"
      ELSE
        GetTicks$ = "SDL_GetTicks"
      ENDIF
      REM -------------------------------------
      REM This code segment is the work of RTR:
      p = PI
      CASE !^p OF
        WHEN &2168C235: cpu$ = "x86" : ARM% = FALSE
        WHEN &54442D18: cpu$ = "arm" : ARM% = TRUE
        OTHERWISE: QUIT
      ENDCASE
      REM -------------------------------------

      INSTALL @lib$+"sortlib"
      Sort% = FN_sortinit(1,0)

      REM Get addresses of x86 or ARM machine code routines:
      ClipBitmap%       = FNread_data( "clipbitmap_"  + cpu$ )
      Clr%              = FNread_data( "clr16_"       + cpu$ )
      Plot%             = FNread_data( "plot16_"      + cpu$ )
      PlotTint%         = FNread_data( "plot16_tint_" + cpu$ )
      ScoreDigits12x20% = FNread_data( "digits12x20" ) : REM 10 12x20 bitmaps for character numbers 0 to 9 (used for FPS display)
      ConvBmRGB565%     = FNread_data( "convbmrgb8888torgb565_" + cpu$ )

      REM Convert the 32bpp 12x20 'digit' bitmaps to 16bpp RGB565
      REM (the original 32bpp bitmaps get overwritten by their respective 16bpp versions, which is safe to do):
      FOR I% = 0 TO 9
        A% = ScoreDigits12x20% + ScoreDigits12x20%!(4*I%) : REM source address
        B% = A% : REM destination address (set here to source address)
        C% = 12 : REM bitmap width
        D% = 20 : REM bitmap height
        CALL ConvBmRGB565%
      NEXT I%

      REM Create the main rendering surface bitmap (16bpp RGB565):
      DIM bmp{a%, w%, h%}
      bmp% = FNCreateBMP_RGB565(ScrW%, ScrH%)
      bmp.a% = bmp% + 70 : REM bmp.a% contains address of first byte of bitmap (header size is 70 bytes)
      bmp.w% = ScrW%
      bmp.h% = ScrH%

      BfVars% = FNmalloc( 32 )
      BfVars%!0 = bmp.a%
      BfVars%!4 = bmp.w%
      BfVars%!8 = bmp.h%
      BmVars% = FNmalloc( 32 )
      ClipVars% = FNmalloc( 64 )
      ClipVars%!0 = ClipBitmap%

      RESTORE
      REPEAT : READ s$ : UNTIL s$ = "ball"
      READ S% : REM size (in bytes)
      ballSprAddr% = FNmalloc( S%+2 ) + 2
      I% = 0
      REPEAT
        READ s$
        IF s$ <> "*" THEN
          FOR J% = 1 TO LENs$ STEP 2
            ballSprAddr%?I% = EVAL( "&" + MID$(s$,J%,2) )
            I% += 1
          NEXT J%
        ENDIF
      UNTIL s$ = "*"
      ballSprAddr% += ballSprAddr%!10

      ballsPerRing% = 12
      ringRadius% = 50
      ringDist% = 180
      numRings% = 30

      N% = ballsPerRing% * numRings% : REM total number of balls

      DIM p(2, N%-1) : REM array to hold coordinates
      DIM q(2, N%-1) : REM array to hold rotated coordinates
      DIM m(2,2)

      I% = 0
      FOR T% = 0 TO numRings%-1
        FOR A% = 0 TO ballsPerRing%-1
          x = ringDist% + ringRadius% * SIN( A% * 2*PI/ballsPerRing% )
          y = ringRadius% * COS( A% * 2*PI/ballsPerRing% )
          z = 0
          PROCrotate( x, y, z, 0, T%*(2*PI/numRings%), 0, p(0,I%), p(1,I%), p(2,I%) )
          I% += 1
        NEXT A%
      NEXT T%

      REM Initial rotation angles:
      a = 2*PI*RND(1) * SGN(RND-RND)
      b = 2*PI*RND(1) * SGN(RND-RND)
      c = 2*PI*RND(1) * SGN(RND-RND)

      d = 2.0 * PI*RND(1) : REM  \
      e = 2.0 * PI*RND(1) : REM   >---  colour-change angles
      f = 2.0 * PI*RND(1) : REM  /

      frames% = 0
      frameRate% = 0

      SYS GetTicks$ TO oldtime% : oldtime% += 1
      time0% = oldtime%

      *REFRESH OFF

      REPEAT
  
        SYS GetTicks$ TO time%
        dt = (time% - oldtime%)/500
        oldtime% = time%
  
        r% = 16 + 15*SINd
        g% = 32 + 31*COSe
        b% = 16 + 15*SINf*COSe
        bgCol% = (r%<<11) OR (g%<<5) OR b%
        A%=bmp.a% : B%=bgCol% : C%=bmp.w%*bmp.h% : CALL Clr%
  
        sA = SINa
        cA = COSa
        sB = SINb
        cB = COSb
        sC = SINc
        cC = COSc
  
        m() = cB*cC, -cB*sC, sB,  cA*sC+sA*sB*cC, cA*cC-sA*sB*sC, -sA*cB, sA*sC-cA*sB*cC, sA*cC+cA*sB*sC, cA*cB
        q() = m().p()
  
        C% = N% : CALL Sort%, q(0,0), q(1,0), q(2,0)
  
        A% = ClipVars%
        B% = BfVars%
        C% = BmVars%
        D% = Plot%
        BmVars%!0 = ballSprAddr%
        BmVars%!4 = 32
        BmVars%!8 = 32
        X% = BmVars%+12
        Y% = BmVars%+16
        I% = BmVars%+24
        BmVars%!20 = bgCol%
        FOR L%=0 TO N%-1
          z = q(0,L%)
          Z = 680/(600 + z)
          !I% = 255*((160 + z)/320)
          !X% = 304+q(1,L%)*Z
          !Y% = 240+q(2,L%)*Z
          CALL PlotTint%
        NEXT
  
        a += 0.492710182113 * dt
        b += 0.563168891711 * dt
        c += 0.421941538383 * dt
        d += 0.06771091552 * dt
        e += 0.12891118723 * dt
        f += 0.03187106721 * dt
        IF a >= 2*PI THEN a -= 2*PI
        IF b >= 2*PI THEN b -= 2*PI
        IF c >= 2*PI THEN c -= 2*PI
        IF d >= 2*PI THEN d -= 2*PI
        IF e >= 2*PI THEN e -= 2*PI
        IF f >= 2*PI THEN f -= 2*PI
  
        PROCPrintFPS
  
        OSCLI "MDISPLAY "+STR$~bmp%
        IF BB4W% THEN PROC`w
        *REFRESH
  
        IF time% - time0% >= 1000 THEN
          frameRate% = frames%
          frames% = 0
          SYS GetTicks$ TO time0%
        ENDIF
  
        frames% += 1
  
      UNTIL FALSE

      DEF PROCrotate( x%, y%, z%, a, b, c, RETURN x`, RETURN y`, RETURN z` )
      LOCAL x1, y1, z1, x2, y2, z2, x3, y3, z3
      LOCAL cosa, cosb, cosc, sina, sinb, sinc
      cosa = COSa
      cosb = COSb
      cosc = COSc
      sina = SINa
      sinb = SINb
      sinc = SINc
      REM X rotation
      y1 = y%*cosa - z%*sina
      z1 = y%*sina + z%*cosa
      x1 = x%
      REM Y rotation
      z2 = z1*cosb - x1*sinb
      x2 = z1*sinb + x1*cosb
      y2 = y1
      REM Z rotation
      x3 = x2*cosc - y2*sinc
      y3 = x2*sinc + y2*cosc
      z3 = z2
      x` = x3
      y` = y3
      z` = z3
      ENDPROC

      DEF PROCPrintFPS
      LOCAL A%, B%, C%, L%, I%, i%, s$
      A% = ClipVars%
      B% = BfVars%
      C% = BmVars%
      BmVars%!4 = 12 : REM bitmap width
      BmVars%!8 = 20 : REM bitmap height
      s$ = STR$frameRate%
      BmVars%!16 = ScrH%-28 : REM bitmap Y pos
      L% = LENs$
      X% = 6
      FOR I% = 1 TO L%
        i% = ASCMID$(s$, I%, 1) - 48
        BmVars%!12 = X% + 12*(I%-1)
        !BmVars% = ScoreDigits12x20% + ScoreDigits12x20%!(4*i%)
        CALL Plot%
      NEXT
      ENDPROC

      DEF FNLoadData( f$ )
      LOCAL A%, F%, S%
      F% = OPENIN( f$ )
      IF F% = 0 THEN CLOSE#F% : VDU 7 : PRINT '" Can't load " + f$ : PRINT '"" : WAIT 300
      S% = EXT#F%
      CLOSE#F%
      DIM A% S%+15
      A% = (A% + 7) AND -8
      OSCLI "LOAD """ + f$ + """ " + STR$~A%
      = A%

      DEF FNCreateBMP_RGB565(W%, H%)
      LOCAL A%, S%
      S% = 70 + 2*W%*H%
      DIM A% S%+15
      A% = ((A% + 7) AND -8) + 2
      A%?0 = ASC"B"
      A%?1 = ASC"M"
      A%!2 = S%
      A%!10 = 70
      A%!14 = 56
      A%!18 = W%
      A%!22 = H%
      A%?26 = 1
      A%?28 = 16
      A%!30 = 3
      A%!34 = 2*W%*H%
      A%!38 = 11808
      A%!42 = 11808
      A%!54 = &0000F800
      A%!58 = &000007E0
      A%!62 = &0000001F
      = A%

      DEF FNread_data( r$ )
      LOCAL I%, data%, byte%, s$
      data% = FNmalloc( 32768 )
      RESTORE
      REPEAT : READ s$ : UNTIL s$ = r$
      I% = 0
      REPEAT
        READ byte%
        IF byte% <> -1 THEN
          data%?I% = byte%
          I% += 1
        ENDIF
      UNTIL byte% = -1
      = data%

      DEF FNmalloc( N% )
      LOCAL A%
      DIM A% N%+15
      A% = (A% + 7) AND -8
      = A%

      REM A BB4W-specific subroutine that waits for the vertical refresh.
      REM The BB4W-specific routine (PROC`7), which uses DirectDraw 7, must have been called (once) first.
      DEFPROC`w:PRIVATEB%,G%,I%,S%,W%:LOCALL%,P%,T%:IFS%=0 S%=FNGetProcAddress("Sleep")
      IFB%=0SYS"timeBeginPeriod",1:B%=1
      IFI%=0PROC`7(I%,G%)
      L%=0:P%=^T%:REPEAT:L%=T%:SYSS%,1:SYSG%,I%,P%:UNTILT%<L%:ENDPROC

      REM A BB4W-specific routine that sets up a DirectDraw 7 interface.
      DEFPROC`7(RETURN I%,RETURN G%):LOCALD%,E%,J%,K%,L%
      SYS"LoadLibrary","DDRAW.DLL"TOD%:IFD%=0 ERROR100,"`7 failed"
      SYS"GetProcAddress",D%,"DirectDrawCreateEx"TOE%:DIMJ%19,L%95:J%=J%+3AND-4
      L%=L%+3AND-4:!J%=&15E65EC0:J%!4=&11D23B9C:J%!8=&60002FB9:J%!12=&5BEA9797
      SYSE%,0,^K%,J%,0:L%=!K%:I%=K%:G%=L%!64
      ENDPROC

      DEF PROCFixWindowSize
      IF BB4W% THEN
        LOCAL W%
        SYS "GetWindowLong", @hwnd%, -16 TO W%
        SYS "SetWindowLong", @hwnd%, -16, W% AND NOT &40000 AND NOT &10000
      ELSE
        REM If BBCSDL (Windows, Linux, or--very unlikely--MacOS) then prevent window resize:
        IF (@platform% AND &F) < 3 THEN
          SYS "SDL_SetWindowResizable", @hwnd%, 0
        ENDIF
      ENDIF
      ENDPROC

      REM BB4W's compiler considers 'equd' a variable name, hence...
      REM!Keep equd
      REM The following function (FNGetProcAddress) is the work of RTR
      DEF FNGetProcAddress(p$)
      LOCAL P% : DIM P% LOCAL 8
      [OPT 0:nop:]
      CASE P%?-1 OF
        WHEN &90: [OPT 0:call p$:] = P% + P%!-4
        WHEN &E1: [OPT 0:equd p$:] = P%!-4
      ENDCASE
      = FALSE

      DEF PROCerror( s$ )
      LOCAL F%
      OSCLI "REFRESH ON"
      F% = OPENIN(@lib$+"../examples/tools/touchide") : CLOSE#F%
      IF NOT BB4W% THEN
        IF ERR = 17 THEN
          OSCLI "font"
          IF F% THEN CHAIN @lib$+"../examples/tools/touchide"
        ENDIF
      ENDIF
      CLS : OFF : VDU 7
      COLOUR 9  : PRINT '" *** ERROR ***" : WAIT 100
      COLOUR 11 : PRINT '" " + s$; : WAIT 250
      COLOUR 7  : PRINT '''" Closing in 5 seconds...";
      WAIT 500
      IF NOT BB4W% THEN
        OSCLI "font"
        IF F% THEN CHAIN @lib$+"../examples/tools/touchide"
      ENDIF
      OSCLI "font"
      QUIT
      ENDPROC

      REM *** Intel x86 machine code routines ***
      DATA "clipbitmap_x86"
      DATA 96,199,64,28,255,255,255,255,139,120,20,59,120,4,15,141,192,0,0,0,139,112,24,59,112,8,15,141,180,0,0,0,139,72,12,139,80,16,131,249,0,125,3,247,217,144,131,250
      DATA 0,125,3,247,218,144,247,217,59,249,15,142,148,0,0,0,247,218,59,242,15,142,138,0,0,0,247,217,247,218,199,64,28,0,0,0,0,199,64,32,0,0,0,0,199,64,36,0
      DATA 0,0,0,199,64,40,0,0,0,0,137,72,44,137,80,48,137,120,52,137,112,56,139,239,3,233,59,104,4,126,13,43,104,4,41,104,44,199,64,32,255,255,255,255,131,255,0,125
      DATA 20,41,120,40,1,120,44,199,64,52,0,0,0,0,199,64,32,255,255,255,255,139,238,3,234,59,104,8,126,13,43,104,8,41,104,48,199,64,32,255,255,255,255,131,254,0,125,20
      DATA 41,112,36,1,112,48,199,64,56,0,0,0,0,199,64,32,255,255,255,255,97,195
      DATA -1

      DATA "clr16_x86"
      DATA 96,139,248,139,195,252,243,102,171,97,195
      DATA -1

      DATA "plot16_x86"
      DATA 96,131,236,32,139,83,4,139,123,8,137,80,4,137,120,8,139,81,4,139,121,8,137,80,12,137,120,16,139,81,12,139,121,16,137,80,20,137,120,24,255,16,247,64,28,255,255,255
      DATA 255,15,133,83,0,0,0,139,27,139,9,139,120,4,137,60,36,209,36,36,15,175,120,56,3,120,52,209,231,3,251,139,112,12,137,116,36,4,209,100,36,4,15,175,112,36,3,112
      DATA 40,209,230,3,241,139,80,44,139,104,48,51,201,102,139,4,78,102,169,255,255,116,4,102,137,4,79,65,59,202,124,237,3,60,36,3,116,36,4,77,117,225,131,196,32,97,195
      DATA -1

      DATA "plot16_tint_x86"
      DATA 96,131,236,32,131,121,24,0,127,8,255,210,144,233,37,1,0,0,129,121,24,0,1,0,0,124,7,199,65,24,0,1,0,0,139,83,4,139,123,8,137,80,4,137,120,8,139,81
      DATA 4,139,121,8,137,80,12,137,120,16,139,81,12,139,121,16,137,80,20,137,120,24,255,16,247,64,28,255,255,255,255,15,133,226,0,0,0,139,81,20,137,84,36,16,139,81,24,137
      DATA 84,36,20,139,27,139,9,139,120,4,137,60,36,209,36,36,15,175,120,56,3,120,52,209,231,3,251,139,112,12,137,116,36,4,209,100,36,4,15,175,112,36,3,112,40,209,230,3
      DATA 241,139,80,44,137,84,36,8,139,80,48,137,84,36,12,51,237,102,247,4,110,255,255,116,114,15,183,4,110,15,183,92,36,16,85,51,237,139,200,139,211,131,225,31,131,226,31,43
      DATA 209,15,175,84,36,24,193,234,8,3,202,11,233,139,200,139,211,129,225,224,7,0,0,129,226,224,7,0,0,193,233,5,193,234,5,43,209,15,175,84,36,24,193,234,8,3,202,193
      DATA 225,5,11,233,37,0,248,0,0,129,227,0,248,0,0,193,232,11,193,235,11,43,216,15,175,92,36,24,193,235,8,3,195,193,224,11,11,197,93,102,137,4,111,69,59,108,36,8
      DATA 15,140,123,255,255,255,3,60,36,3,116,36,4,255,76,36,12,15,133,104,255,255,255,131,196,32,97,195
      DATA -1

      DATA "convbmrgb8888torgb565_x86"
      DATA 96,139,248,139,243,15,175,209,51,237,15,182,4,175,15,182,92,175,1,15,182,76,175,2,105,192,31,31,0,0,105,219,63,63,0,0,105,201,31,31,0,0,193,232,16,131,208,0
      DATA 193,235,16,131,211,0,193,233,16,131,209,0,193,227,5,193,225,11,11,195,11,193,102,137,4,110,69,59,234,124,187,97,195
      DATA -1

      REM *** ARM (32-bit) nachine code routines ***
      DATA "clipbitmap_arm"
      DATA 255,95,45,233,0,192,224,227,28,192,128,229,4,176,128,226,126,0,155,232,1,0,85,225,255,159,189,168,2,0,86,225,255,159,189,168,3,0,117,225,255,159,189,216,4,0,118,225
      DATA 255,159,189,216,148,208,143,229,148,224,143,229,0,208,160,227,0,224,224,227,28,208,128,229,32,208,128,229,0,112,160,227,0,128,160,227,3,144,160,225,4,160,160,225,3,176,133,224
      DATA 1,0,91,225,1,176,75,192,11,144,73,192,32,224,128,197,0,0,85,227,5,128,72,176,5,144,137,176,0,80,160,179,32,224,128,181,4,176,134,224,2,0,91,225,2,176,75,192
      DATA 11,160,74,192,32,224,128,197,0,0,86,227,6,112,71,176,6,160,138,176,0,96,160,179,32,224,128,181,36,112,128,229,40,128,128,229,44,144,128,229,48,160,128,229,52,80,128,229
      DATA 56,96,128,229,4,208,159,229,4,224,159,229,255,159,189,232,0,0,0,0,0,0,0,0
      DATA -1

      DATA "clr16_arm"
      DATA 7,64,45,233,0,0,82,227,7,128,189,216,178,16,192,224,1,32,82,226,252,255,255,202,7,128,189,232
      DATA -1

      DATA "plot16_arm"
      DATA 255,95,45,233,4,64,145,229,8,80,145,229,4,96,146,229,8,112,146,229,12,128,146,229,16,144,146,229,4,64,128,229,8,80,128,229,12,96,128,229,16,112,128,229,20,128,128,229
      DATA 24,144,128,229,0,192,144,229,60,255,47,225,28,192,144,229,0,0,92,227,255,159,189,24,0,16,145,229,0,32,146,229,36,80,144,229,40,112,144,229,44,128,144,229,48,144,144,229
      DATA 52,160,144,229,56,176,144,229,80,208,143,229,80,224,143,229,155,164,42,224,138,16,129,224,149,118,39,224,135,32,130,224,255,192,160,227,12,196,140,225,0,48,160,227,179,80,146,225
      DATA 12,0,21,225,179,80,129,17,2,48,131,226,136,0,83,225,249,255,255,186,134,32,130,224,132,16,129,224,1,144,89,226,244,255,255,26,4,208,159,229,4,224,159,229,255,159,189,232
      DATA 0,0,0,0,0,0,0,0
      DATA -1

      DATA "plot16_tint_arm"
      DATA 255,95,45,233,24,192,146,229,1,12,92,227,1,204,160,195,0,176,160,227,0,0,92,227,1,176,160,211,51,255,47,209,1,0,91,227,255,159,189,8,24,192,130,229,20,48,146,229
      DATA 32,49,143,229,4,64,145,229,8,80,145,229,4,96,146,229,8,112,146,229,12,128,146,229,16,144,146,229,4,64,128,229,8,80,128,229,12,96,128,229,16,112,128,229,20,128,128,229
      DATA 24,144,128,229,0,192,144,229,60,255,47,225,28,192,144,229,0,0,92,227,255,159,189,24,208,208,143,229,208,224,143,229,24,224,146,229,0,16,145,229,0,32,146,229,36,80,144,229
      DATA 40,112,144,229,44,128,144,229,48,144,144,229,52,160,144,229,56,176,144,229,155,164,42,224,138,16,129,224,149,118,39,224,135,32,130,224,156,0,159,229,255,192,160,227,12,196,140,225
      DATA 0,48,160,227,179,80,146,225,12,0,21,225,21,0,0,10,31,160,5,226,31,176,0,226,10,208,75,224,158,13,13,224,45,116,138,224,126,174,5,226,126,190,0,226,170,162,160,225
      DATA 171,178,160,225,10,208,75,224,158,13,13,224,45,212,138,224,141,114,135,225,62,171,5,226,62,187,0,226,170,165,160,225,171,181,160,225,10,208,75,224,158,13,13,224,45,212,138,224
      DATA 141,117,135,225,179,112,129,17,2,48,131,226,136,0,83,225,227,255,255,186,134,32,130,224,132,16,129,224,1,144,89,226,222,255,255,26,4,208,159,229,4,224,159,229,255,159,189,232
      DATA 0,0,0,0,0,0,0,0,0,0,0,0
      DATA -1

      DATA "convbmrgb8888torgb565_arm"
      DATA 255,95,45,233,147,2,2,224,0,48,160,227,255,160,160,227,84,176,159,229,84,192,159,229,3,81,144,231,37,104,10,224,37,116,10,224,5,128,10,224,155,6,6,224,156,7,7,224
      DATA 155,8,8,224,38,104,176,225,0,96,166,226,39,120,176,225,0,112,167,226,40,136,176,225,0,128,168,226,135,130,136,225,134,133,136,225,131,64,160,225,180,128,129,225,1,48,131,226
      DATA 2,0,83,225,235,255,255,186,255,159,189,232,31,31,0,0,63,63,0,0
      DATA -1

      REM *** 32x32 16bpp ball sprite ***
      DATA "ball", 2120
      DATA "424D480800000000000046000000380000002000000020000000010010000300000002080000202E0000202E0000000000000000000000F80000E00700001F000000000000000000000000000000000000000000000000000000000000008308E6180719"
      DATA "0719E7180719E618830800000000000000000000000000000000000000000000000000000000000000000000000000000000000083084921ED290E322F3A303A503A503A713A713A2F3AED31492163080000000000000000000000000000000000000000"
      DATA "00000000000000000000000042088A21503A713A0E32ED31ED310E322F3A503A503A713A713A713A9242503A8B2942080000000000000000000000000000000000000000000000000000C5102F32713A0E32ED31EE312F3A713A913A9242924292429242"
      DATA "B2429242713A9242D44A9142E61800000000000000000000000000000000000000000000081971422F3AED31EE312F3A713AB242D342D442D44AB342B342B342D342D342D34AD34AB342F44A154B49210000000000000000000000000000000000000719"
      DATA "72420E32CD31EE31303A9242B342F44AF54AF54AF54AF44AF44AF44AF44AF44AF44AF44AF44AD34AF44A365349210000000000000000000000000000A510713AEE31CD290E32303A9242D342F54A164B164BF54AF54AF54A154B154B164B365336533653"
      DATA "154BF54AF44A154B5753C6180000000000000000000021002F320E32AC29ED312F3A7142D342F54AF54AF54AF54AF54A154B164B3653375357537853785B785B775B575356533653785BF54A210000000000000000006A21503AAC29CD290F32713AB342"
      DATA "F44AF44AF54AF54A154B164B165337535753785B985B985B985BB863B863B863B863985B775BFB630E320000000000006208303ACD31CC29EE31503AB342D44AD44AF44A154B164B364B57537853995BB95BBA5BDA63DA63FA6B1A6C3A743A741A6C1A6C"
      DATA "FA6BFA63B9636308000000004921503AAC29CD290E329242B442D44AF44AF54A154B36537853995BBA5BDA63DB63FB631B6C3C747C7CBC84DC84DC84BC849C7C7B741B6C9F7C0E3200000000ED310E32CC29ED31503AB242D342D44AF54AF54A36537853"
      DATA "BA5BDB63DB63FB63FB6B1C6C5C749D7CDD8C1D953D953D953D951D95FD8C9C7C9F7C785B000063082F3AED31CC290E32713AB242D342F44A154B3753795BBA5BDB5BFB63FC63FC6B1C745C7C9D84FD8C3D957D9D9DA57D9D5D9D5D9D5D9D1D8DBE7C5D74"
      DATA "A410E618513AED31CC290E32713AB342D44AF54A5753795BBA5BDB5BFC63FC6BFC731C743C7C9D84FD8C5D9D9DA5BDADDDADDDADBDA59DA59DA55D9DFE8CDF7C8A212819713ACD29CD312F327142B342D44A364B795BBA5BBB5BFB63FC6BFC731C745C7C"
      DATA "9C7CFD8C5D9DBDA5FDAD1DB65EBE5EBE1EB6FDB5DDAD9DA53D953F8DED312821923ACD29ED312F32713AB342F54A58539A5BBA5BFB63FC6BFC731C745C7C9C7CFC845D95BDA51EB65EBE7EC6BECEBECE9ECE5EC61EB6DDAD5D9D5F952F3A2821713ACC29"
      DATA "ED292F32913AB3423653995BBA5BDB63FC6B1C6C1C745C7C9C7CFC843D959DA5FDAD3EBE9ECEDED6FEDE1EDFFED6BECE5EC6FEB55D9D5F9D2F3A2819713ACC29CD292F329242D44A5753995BBA5BFB631C6C3C745C749C7CFC843D959DA5DEAD3EBE9ECE"
      DATA "DED63EDF5EE73EE71EDFFED67EC61DB65D9D3F95ED31E618503ACD31ED312F3AB242164B795BBA5BDB63FC6B3C6C5D747C7CDC843D959D9DFEAD3EBE9ECEFED63EDF5EE77EE75EE73EDFFED69ECE1EB65E9DFF8C6A2942082F3A0F320F32713AD44A5753"
      DATA "995BBA5BFB631C6C3D747C7CBC841D8D7D9DDEAD3EBEBECE1EDF5EE77EE77EEF7EEF7EE73EE7FEDEBECE1EB65E9D7D7C84080000CC29503A2F3A9242154B7853995BBA63FC6B3C6C5D749C7CDD8C5D959DA51EB69EC61EDF5EE77EEF9EEF9EF77EEF5EE7"
      DATA "3EE71EDFBECE1DB69FA5B863000000000819713A2F3A9242F54A7853BA5BDB631C6C3D747C7CBC841D8D5D9DDDAD3EBEBECE3EDF7EEFBEF7BEF7BEF79EEF5EE71EDFFED69EC6DEADBFA54E3A000000004208503A713A713AF54A785BBA5BFB631C6C5D74"
      DATA "7C7CBD841D8D7D9DFDAD5EBEBECE3EDF9EEFDEF7DEF7DEF79EEF5EE71EDFDECE3EBEBFA5BD8463080000000000004921B342713AF44A785BDA5BFC633C6C5C747C7CBD841D8D7D9DDDAD5EBEBECE1EDF7EEFBEF7DEF7BEF79EEF3EE71EDF9EC6DEADDFA5"
      DATA "7042000000000000000020002F32B342D44A785BDB631C6C3D6C5C747C7CBD84FD8C5D9DDDAD3EBE9ECEFED63EE77EEF9EEF9EEF5FE71EDFBECE1EB6FFAD7B7C21000000000000000000000083089242F54A5753DB631C6C3D6C3C747C749D84DD8C3D95"
      DATA "9DA51DB65EBE9ECEDED63EDF3EE73EDFFED69ECE1DB6DFA55F9507190000000000000000000000000000C618F54A7853BA5B1C6C3D6C3C745C749C7CBD84FD8C5D9DBDA51EB65EBE9EC6BECEBECEBECE7EBEDDADBFA59F9DCB3100000000000000000000"
      DATA "0000000000000000E71837531C64FC631C6C3D6C3C745C749C7CBD841D8D7D9DDEAD1EB61EB61EB6FEB5DEAD9DA5DFA55F95CB3100000000000000000000000000000000000000000000A510F54A9F747F743D6C3C6C3C745C747C7CBD841D8D5D9D9DA5"
      DATA "9DA55D9D3D957F9DBF9D5A74071900000000000000000000000000000000000000000000000000000000AC29DA5BDF7CBF745E745D745D747D7C9D84FD8C1E953E955F957F957C7C4E3A0000000000000000000000000000000000000000000000000000"
      DATA "00000000000000002100CD2936531C6C7F749F7CDF84FF84DF84DF847C7C97630E3A420800000000000000000000000000000000000000000000000000000000000000000000000000000000000063082821AB29ED31ED31AB2949216308000000000000"
      DATA "0000000000000000000000000000000000000000"
      DATA "*"

      REM *********************************************************************************************************************

      DATA "digits12x20"
      DATA 96,0,0,0,88,4,0,0,80,8,0,0,72,12,0,0,64,16,0,0,56,20,0,0,48,24,0,0,40,28,0,0,32,32,0,0,24,36,0,0,0,0,66,77,248,3,0,0
      DATA 0,0,0,0,54,0,0,0,40,0,0,0,12,0,0,0,20,0,0,0,1,0,32,0,0,0,0,0,194,3,0,0,32,46,0,0,32,46,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,0,0,0
      DATA 0,0,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,0,0,0
      DATA 0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0
      DATA 0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0
      DATA 0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0
      DATA 0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0
      DATA 0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0
      DATA 0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0
      DATA 0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0
      DATA 0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0
      DATA 0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0
      DATA 0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0
      DATA 0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0
      DATA 0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0
      DATA 0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0
      DATA 0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0
      DATA 0,0,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,0,0,0
      DATA 0,0,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,66,77,248,3,0,0,0,0,0,0,54,0,0,0,40,0,0,0,12,0,0,0,20,0,0,0,1,0,32,0,0,0,0,0,194,3,0,0,32,46,0,0,32,46,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,66,77,248,3,0,0,0,0,0,0,54,0,0,0,40,0,0,0,12,0,0,0,20,0,0,0,1,0,32,0,0,0,0,0,194,3,0,0
      DATA 32,46,0,0,32,46,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0
      DATA 0,255,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0
      DATA 0,255,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0
      DATA 0,255,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0
      DATA 0,255,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0
      DATA 0,255,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0
      DATA 0,255,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,77,248,3,0,0,0,0,0,0,54,0,0,0,40,0,0,0,12,0,0,0,20,0,0,0,1,0,32,0
      DATA 0,0,0,0,194,3,0,0,32,46,0,0,32,46,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0
      DATA 0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0
      DATA 0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0
      DATA 0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0
      DATA 0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0
      DATA 0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0
      DATA 0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,77,248,3,0,0,0,0,0,0,54,0,0,0,40,0,0,0,12,0,0,0
      DATA 20,0,0,0,1,0,32,0,0,0,0,0,194,3,0,0,32,46,0,0,32,46,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,255,0,0
      DATA 0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,255,0,0
      DATA 0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,77,248,3,0,0,0,0,0,0,54,0,0,0
      DATA 40,0,0,0,12,0,0,0,20,0,0,0,1,0,32,0,0,0,0,0,194,3,0,0,32,46,0,0,32,46,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0
      DATA 0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,255,0,0
      DATA 0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,255,0,0
      DATA 0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,255,0,0
      DATA 0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,255,0,0
      DATA 0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0
      DATA 0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0
      DATA 0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0
      DATA 0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0
      DATA 0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0
      DATA 0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0
      DATA 0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,255,0,0
      DATA 0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,77,248,3,0,0
      DATA 0,0,0,0,54,0,0,0,40,0,0,0,12,0,0,0,20,0,0,0,1,0,32,0,0,0,0,0,194,3,0,0,32,46,0,0,32,46,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,0,0,0
      DATA 0,0,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,0,0,0
      DATA 0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0
      DATA 0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0
      DATA 0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0
      DATA 0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0
      DATA 0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0
      DATA 0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0
      DATA 0,0,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,0,0,0
      DATA 0,0,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,0,0,0
      DATA 0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,0,0,0
      DATA 0,0,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,66,77,248,3,0,0,0,0,0,0,54,0,0,0,40,0,0,0,12,0,0,0,20,0,0,0,1,0,32,0,0,0,0,0,194,3,0,0,32,46,0,0,32,46,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0
      DATA 0,255,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0
      DATA 0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,66,77,248,3,0,0,0,0,0,0,54,0,0,0,40,0,0,0,12,0,0,0,20,0,0,0,1,0,32,0,0,0,0,0,194,3,0,0
      DATA 32,46,0,0,32,46,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0
      DATA 0,255,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0
      DATA 0,255,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0
      DATA 0,255,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0
      DATA 0,255,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0
      DATA 0,255,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0
      DATA 0,255,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,77,248,3,0,0,0,0,0,0,54,0,0,0,40,0,0,0,12,0,0,0,20,0,0,0,1,0,32,0
      DATA 0,0,0,0,194,3,0,0,32,46,0,0,32,46,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0
      DATA 0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0
      DATA 0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0
      DATA 0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0
      DATA 0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0
      DATA 0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0
      DATA 0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      DATA -1
David Williams

Re: Misc graphics demos

Post by David Williams »

This relates to a current project of mine (BB4W only):

http://www.proggies.uk/temp/spherething.zip