Author Topic: Competition Intro Full Source Code.  (Read 5061 times)

0 Members and 1 Guest are viewing this topic.

Offline Shockwave

  • good/evil
  • Founder Member
  • DBF Aficionado
  • ********
  • Posts: 17409
  • Karma: 498
  • evil/good
    • View Profile
    • My Homepage
Competition Intro Full Source Code.
« on: October 21, 2006 »
This needs some stuff included so it will not compile unless you have rbraz/jims ptc library and the raw files and ufmod.
This is just for reference really, hope that someone finds it useful.

[code]
' ROTATING BAR THING BY SHOCKWAVE (C) 2006 --
'
'
'--------------------------------------------

'===============================================================================
'                      DEFINE CONSTANTS AND INITIALISE STUFF;
'===============================================================================

    OPTION STATIC
    OPTION EXPLICIT

    CONST  XRES = 640 :           ' SCREEN WIDTH.
    CONST  YRES = 480 :           ' SCREEN HEIGHT.   
    CONST  XCENT = (XRES / 2)     ' X CENTRE OF SCREEN.
    CONST  YCENT = YRES / 2 :      ' Y CENTRE OF SCREEN.

    CONST RAD_2_DEG AS DOUBLE = ( (4*ATN(1)) / 180 )
   
    CONST RAD_2_DEGS AS DOUBLE = ( (4*ATN(1)) / 138 )
    CONST RAD_2_DEGC AS DOUBLE = ( (4*ATN(1)) / 98 )
   
    CONST RAD_2_DEG2 AS DOUBLE = ( (4*ATN(1)) / 328 )
    CONST RAD_2_DEG3 AS DOUBLE = ( (4*ATN(1)) / 438 )
    CONST RAD_2_DEG4 AS DOUBLE = ( (4*ATN(1)) / 548 )
    '-------------------------------------
    ' Includes.
    '-------------------------------------
    #include "ptc.bi"
    #include "windows.bi"
    #Include "tlbmppal.bas"
    #Include "tlbmpraw.bas"
   
    #include "ufmod.bi"
    #include "twist.bas"
   
    #define alpha(s,d) ((((s and &hff00ff)*(s shr 24)+(d and &hff00ff)*(256-(s shr 24)))and &hff00ff00)or(((s and &hff00)*(s shr 24)+(d and &hff00)*(256-(s shr 24)))and &hff0000))shr 8
    Dim hWave As HWAVEOUT
    DIM SHARED AS UINTEGER BUFFER ( XRES * YRES ) :' THE SCREEN BUFFER.
    DIM SHARED AS UINTEGER TEXBUFFER ( 201 , YRES , 200)
    DIM SHARED AS UINTEGER LOGOBUFFER( 201 , YRES )
    DIM SHARED AS UINTEGER YAR (YRES,3)
    dim shared yarp as integer
    YARP=1
    DIM SHARED AS UINTEGER YAR2(YRES)
    DIM SHARED AS UINTEGER COPGG(YRES)
    DIM SHARED BAR(64) AS UBYTE
    DIM SHARED AS INTEGER MALPHA
    MALPHA = 90
    DECLARE SUB PRECALC()
    DECLARE SUB TWISTY()
    DIM SHARED GADD AS DOUBLE   
    DIM SHARED GADD2 AS DOUBLE   
    DIM SHARED AS DOUBLE OLDTIME,DELTAVALUE
    DIM SHARED AS UINTEGER TICKS,NEWTIME
    '--------------
    '--Image size--
    '--------------
   
    Const imgX = 200
    Const imgY = 480
    declare sub MWRITER()
    DECLARE SUB DELTA()
    DECLARE SUB COPPERLIST()
    DECLARE SUB WHITEOUT()
    DECLARE SUB BGCL()
   
   
    DECLARE SUB FLAT_TRIANGLE( BYVAL X1 AS INTEGER , BYVAL Y1 AS INTEGER, BYVAL X2 AS INTEGER , BYVAL Y2 AS INTEGER , BYVAL X3 AS INTEGER, BYVAL Y3 AS INTEGER , BYVAL TC AS INTEGER)
    Declare Sub WritePixelFast( byval intX As Integer, byval intY As Integer, byval intC As Integer )
    Declare Sub DrawImage(byval imxpos as integer,byval imypos as integer)
    Declare Sub LoadDataImage()   
    'Picture buffer
    Dim Shared img_buffer( imgx * imgy ) as integer   
    'RGB color palette buffer
    Dim Shared img_r(256), img_g(256), img_b(256) as short   
    LoadDataImage()
    DRAWIMAGE(0,0)
   
   
    dim shared message as string
    message=""
   
   
    message=message+"***                           "
    message=message+"* *    ITS COMPETITION TIME   "
    message=message+"***                           "
    message=message+" *                            "
    message=message+"* * * * * * * * * * * * * * * "
    message=message+" * * * * * * * * * * * * * * *"
    message=message+"                            * "
    message=message+"                           ***"
    message=message+"   HAVE A DRINK ON US!!    * *"
    message=message+"                           ***"
   
    message=message+"DARK BIT FACTORY ++           "
    message=message+"                              "
    message=message+"&&&  &&&  &&&&   &&  &  & &  &"
    message=message+"&  & &  & &     &    &  & &  &"
    message=message+"&  & &&&  &&&   & && &  &  &&&"
    message=message+"&  & &  & &     &  & &&&&   & "
    message=message+"&  & &  & &     &  &  &&    & "
    message=message+"&&&  &&&  &      &&   &&  &&& "   
    message=message+"                              "
    message=message+"                    ++ GRAVITY"
   
    message=message+"&&&  INVITE THE MEMBERS OF:   "
    message=message+"& &&&&&&&&&&&&&&&&&&&&&&&&&&& "
    message=message+"&&&                         & "
    message=message+" &    THESE COMMUNITIES:    & "   
    message=message+" &  WWW.DBFINTERACTIVE.COM  & "
    message=message+" &  WWW .INTRO-INFERNO.COM  & "
    message=message+" &    WWW. FREEBASIC.NET    & "   
    message=message+" &                         &&&"
    message=message+" &&&&&&&&&&&&&&&&&&&&&&&&&&& &"
    message=message+"   TO A DEMO COMPETITION!  &&&"
   
    message=message+"********************          "
    message=message+"* VISIT THIS SITE: ********** "
    message=message+"********************        * "
    message=message+"                            * "
    message=message+"      DBFINTERACTIVE        * "
    message=message+"  WWW.              .COM    * "
    message=message+"                            * "
    message=message+"********************        * "
    message=message+"* FOR INFORMATION. ********** "
    message=message+"********************          "           

    message=message+"******************************"
    message=message+"*CASH PRIZE FUND UP FOR GRABS*"
    message=message+"******************************"
    message=message+"*                            *"
    message=message+"* ******** ******** ******** *"   
    message=message+"* * 1ST  * * 2ND  * * 3RD  * *"
    message=message+"***PLACE ***PLACE ***PLACE ***"
    message=message+"  * $50  * * $30  * * $20  *  " 
    message=message+"  ******** ******** ********  "   
    message=message+" COMPETITION OPENS 17/10/2006 "


    message=message+"  &&&&&&&&&&&&&&&&&&&&&&&&&&  "
    message=message+" &  CREDITS FOR THIS INTRO  & "
    message=message+"&   ======================   &"
    message=message+"&     CODE  BY SHOCKWAVE     &"
    message=message+"&        LOGO BY WHAM        &"   
    message=message+"&       MUSIC  BY ROLY       &"
    message=message+"&                            &"
    message=message+"& THANKS TO: RBRAZ^GVY + JIM &"
    message=message+" &    FOR TOOL/LIB CODE!    & "
    message=message+"  &&&&&&&&&&&&&&&&&&&&&&&&&&  "

    DIM SHARED MP AS INTEGER
    mp=0
'-----------------------------------------------------------------
' Read In Our Font;
'-----------------------------------------------------------------
        dim shared FONT (169 * 64) as integer
        dim shared lp
        FOR LP=1 TO (169*64)
                READ FONT(LP)
        NEXT
        declare sub DBFTEXT(BYVAL BX AS INTEGER , BYVAL BY AS INTEGER , BYVAL CH AS INTEGER , BYVAL CLR AS INTEGER)       
        declare sub DBFTEXT2(BYVAL BX AS INTEGER , BYVAL BY AS INTEGER , BYVAL CH AS INTEGER , BYVAL CLR AS INTEGER)           


'===============================================================================
'                               OPEN THE SCREEN;
'===============================================================================

        #define VK_A   65       'Define key "VK_A" which the ASCII code is 65 (A)

        IF ( PTC_OPEN ( "DBF+GVY COOL CREATIONS COMPETITION.", XRES, YRES ) = 0 ) THEN
        END -1
        END IF

            ptc_setflip(0) 
            OLDTIME = TIMER
            ticks=51
        PRECALC()
    hWave = uFMOD_PlaySong(@twist.xm(0),20028,XM_MEMORY)
'       DISABLE V-SYNC;   

        ptc_setflip(1) 
'===============================================================================
'                               MAIN LOOP;
'===============================================================================

    OLDTIME = TIMER
    DELTAVALUE=60
    TICKS=80
    DIM SHARED FUCKTARD AS DOUBLE
    DIM SHARED OUTERRADIUS AS DOUBLE
    OUTERRADIUS=500
    DIM SHARED CLICK
    CLICK=0
    FUCKTARD=0
    MALPHA=0
   
WHILE(1)

    DELTA()
    COPPERLIST()
    BGCL()   
    WHITEOUT()   
    TWISTY()       
    MWRITER()           
    PTC_UPDATE@BUFFER(0)   
    ERASE BUFFER
    ticks=ticks+1

WEND
uFMOD_StopSong()
END

SUB BGCL()
    DIM J,K,L,YYP,TC,SLICE
    DIM PP AS INTEGER PTR


    FOR J=1 TO YRES
    COPGG(J) = RGB(20+19*sin((J+GADD2)*RAD_2_DEG3),20+19*sin((J+GADD2)*RAD_2_DEG3),30+19*sin((J+GADD2)*RAD_2_DEG3))   
    SLICE=XRES
    TC=COPGG(J)

    PP = @BUFFER(J*XRES)   
    asm
        mov eax,dword ptr[TC]
        mov ecx, [slice]
        mov edi, [PP]
        rep stosd
    end asm   

    NEXT

END SUB

SUB WHITEOUT()
   
    DIM OUTER,INNER,Z
    DIM AS INTEGER TTX1,TTX2,TTX3
    DIM AS INTEGER TTY1,TTY2,TTY3

    OUTER=450
    INNER=150+49*sin(GADD2*RAD_2_DEGS)
YARP=1   

    FOR Z=1 TO 360 STEP 20
       
        TTX1=(OUTER*SIN((Z+GADD)*RAD_2_DEG))+XCENT
        TTX2=(OUTER*SIN(((Z+GADD)+20)*RAD_2_DEG))+XCENT
        TTX3=(INNER*SIN(((Z+GADD)+13)*RAD_2_DEG))+XCENT
        TTY1=(OUTER*COS(( Z+GADD)*RAD_2_DEG))+YCENT
        TTY2=(OUTER*COS(((Z+GADD)+20)*RAD_2_DEG))+YCENT
        TTY3=(INNER*COS(((Z+GADD)+13)*RAD_2_DEG))+YCENT
       
       
        FLAT_TRIANGLE(TTX1,TTY1,TTX2,TTY2,TTX3,TTY3,&HCCDDEE)
      YARP=YARP+1
      IF YARP>3 THEN YARP=1
    NEXT


END SUB


sub mwriter()
    DIM AS UINTEGER XX,YY,PP,PZ,CRX,CRY,SSVX,SSVY
    CRX=90
    CRY=155
    PZ=1+MP
   
    FOR YY=1 TO 10
        SSVY=4*COS((gadd+YY) / 8)
    FOR XX=1 TO 30
        SSVX=(4*sin((gadd+XX) / 10))+7
        DBFTEXT((XX*14)+CRX+SSVX , (YY*14)+CRY+SSVY , ASC(MID(MESSAGE,PZ,1))-31 , &HFFFFFF)
        PZ=PZ+1
    NEXT
    NEXT

FUCKTARD=FUCKTARD+((2/DELTAVALUE)+1)

IF FUCKTARD<1000 THEN
    MALPHA=MALPHA+((20/DELTAVALUE)+1)
   
END IF

IF FUCKTARD>1000 THEN
    MALPHA=MALPHA-((20/DELTAVALUE)+1)
   
END IF

IF MALPHA>125 THEN MALPHA=125
IF MALPHA<0 THEN MALPHA=0
IF MALPHA<=0 THEN
        FUCKTARD=0
        MP=MP+300
        IF MP>LEN(MESSAGE)-1 THEN MP=0
END IF

END SUB


SUB COPPERLIST()
    DIM AS UINTEGER Y,YY,YYY
    YY=0
    YYY=0
    FOR Y=1 TO YRES-1
        YAR(Y,1)=RGB(20+9*SIN((GADD2+Y)*RAD_2_DEG),10+9*SIN((GADD2+Y)*RAD_2_DEG),10+9*SIN((GADD2+Y)*RAD_2_DEG))
        YAR(Y,2)=RGB(10+9*SIN((GADD2+Y)*RAD_2_DEG),20+9*SIN((GADD2+Y)*RAD_2_DEG),10+9*SIN((GADD2+Y)*RAD_2_DEG))
        YAR(Y,3)=RGB(10+9*SIN((GADD2+Y)*RAD_2_DEG),10+9*SIN((GADD2+Y)*RAD_2_DEG),20+9*SIN((GADD2+Y)*RAD_2_DEG))
YAR2(Y)=RGBA(220+30*SIN((GADD+Y)*RAD_2_DEG2),220+30*SIN((GADD+YY)*RAD_2_DEG3),240+15*SIN((GADD2+YYY)*RAD_2_DEG4),MALPHA)
        YY=YY+2
        YYY=YYY+3
    NEXT
END SUB

SUB DELTA()
    DIM Z AS UINTEGER
    IF TIMER-OLDTIME>=.25 THEN
        DELTAVALUE=(TICKS/4)+1
        NEWTIME = TICKS
        OLDTIME = TIMER
        'PRINT "FPS:"+STR$(NEWTIME*4)
        TICKS =0
    END IF
END SUB


SUB PRECALC()
    DIM PC AS DOUBLE
    DIM CUN AS STRING
    DIM Z AS INTEGER
    PC=0
    dim pp as uinteger PTR
    dim as double ttttt
    dim twat as integer
    ttttt=timer
    DIM X,Y,XXV,L,R,G,B,SA,CL,bl,slice,tc,crunch
    DIM AS DOUBLE INTR,LII,CCL,ALPH
   
    FOR L=200 TO 1 STEP-1
   
        twat=int(rnd*(10))+1
       
        for cl=2 to (yres-2)-twat step twat
           
            tc=rgb(int(rnd*(155)),int(rnd*(155)),int(rnd*(155)))
           
            for bl=cl to cl+twat
            PP = @BUFFER(bl*XRES)   
            slice=xres
            asm
                mov eax,dword ptr[TC]
                mov ecx, [slice]
                mov edi, [PP]
                rep stosd
            end asm   
            next
        next
        CUN="DECRUNCHING "+STR(INT(PC))+" PURRR CENT!"
        PC=PC+.5
        COPPERLIST()

   
    FOR Y=2 TO YRES-2
        INTR=200/L
        LII=1
        ALPH=.005*L
    FOR X=0 TO L     
    SA=LOGOBUFFER(INT(LII),Y)
    r = (((SA Shr 16) And 255) * ALPH)
    g = (((SA Shr 8) And 255) * ALPH)
    b = ((SA And 255) * ALPH)
    TEXBUFFER(X,Y,L)=RGB(R,G,B)
    LII=LII+INTR
    NEXT
    NEXT   
    DELTA()
    ticks=ticks+1
   
        FOR Z=1 TO LEN(CUN)
        DBFTEXT2(XCENT-(LEN(CUN)*7)+(Z*14),YCENT-7,ASC(MID(CUN,Z,1))-31,&HFFFFFF)
        NEXT     
       
    ptc_update@buffer(0)
    NEXT

    FOR Y=1 TO 64
        READ BAR(Y)
        bar(y)=bar(y)*2
    NEXT
END SUB

SUB TWISTY()
    DIM AS INTEGER X1,X2,X3,X4,L,RR,VV,XXS,SUL1,SUL2
    DIM AS INTEGER Y1,Y2,Y3,Y4,preq
    DIM Q AS INTEGER
    DIM AS DOUBLE QQ,VVV
    dim as ubyte v
    dim as integer ptr pa1
    VVV=.5*SIN((GADD)*RAD_2_DEG4)+.6*COS((GADD2)*RAD_2_DEG4)
    GADD=GADD+5  /DELTAVALUE
    GADD2=GADD2+10/DELTAVALUE
    SUL1=35+34*SIN(GADD2*RAD_2_DEG2)
    SUL2=35+34*COS(GADD*RAD_2_DEG3)
FOR Q =0 TO YRES-1
    QQ=QQ+vvv
    XXS=SUL1*sin((Q-GADD2)*RAD_2_DEGS)+SUL2*COS((Q+GADD)*RAD_2_DEGC)
    PREQ=XRES*Q
    X1=XXS+XCENT+(140*(SIN((GADD+QQ)*RAD_2_DEG)))
    X2=XXS+XCENT+(140*(SIN((GADD+90+QQ)*RAD_2_DEG)))
    X3=XXS+XCENT+(140*(SIN((GADD+180+QQ)*RAD_2_DEG)))
    X4=XXS+XCENT+(140*(SIN((GADD+270+QQ)*RAD_2_DEG)))       
    IF X2>X1 THEN
        VV=X2-X1       
        V=0       
        pa1=@BUFFER(PREQ+X1)                   
        FOR L=X1 TO X2
            *PA1 = TEXBUFFER (V,Q,VV)
            PA1 +=1
            v=v+1
        NEXT
    END IF   
    IF X3>X2 THEN
        VV=X3-X2       
        V=0
        pa1=@BUFFER(PREQ+X2)     
        FOR L=X2 TO X3
            *PA1 = TEXBUFFER (V,Q,VV)
            PA1 +=1
            v=v+1
        NEXT
    END IF
    IF X4>X3 THEN
        VV=X4-X3       
        V=0
        pa1=@BUFFER(PREQ+X3)     
        FOR L=X3 TO X4
            *PA1 = TEXBUFFER (V,Q,VV)
            PA1 +=1
            v=v+1
        NEXT
    END IF
    IF X1>X4 THEN
        VV=X1-X4       
        V=0
        pa1=@BUFFER(PREQ+X4)   
        FOR L=X4 TO X1
            *PA1 = TEXBUFFER (V,Q,VV)
            PA1 +=1
            v=v+1
        NEXT
    END IF
    'QQ=QQ+VVV
NEXT Q
END SUB

Sub LoadDataImage()
    dim i as integer

    for i = 0 to 255
         img_r( i ) = tl.bmp.pal (i*3)'Red color
         img_g( i ) = tl.bmp.pal (i*3+1)'Green color
         img_b( i ) = tl.bmp.pal (i*3+2)'Blue color
    Next   
   
    for i = 1 to (imgx*imgy) - 1
         img_buffer(i) = tl.bmp.raw (i)
    next 
       
End Sub

Sub DrawImage(byval xpos as integer,byval ypos as integer)
    dim x,y,pixel as Uinteger   
    for Y = 0 to imgy-1
        for X = 1 to imgx-1
            pixel = img_buffer(x+(y*imgx))
            'if pixel<>0 then
            WritePixelFast( +x+xpos,y+ypos, (img_r(pixel) Shl 16) Or (img_g(pixel) Shl 8 )  Or img_b(pixel) )
        next
    next
   
End Sub

Sub WritePixelFast( byval intX As Integer, byval intY As Integer, byval intC As Integer )

    LOGOBUFFER( intX  ,intY ) = intC       

End Sub

SUB FLAT_TRIANGLE(BYVAL X1 AS INTEGER , BYVAL Y1 AS INTEGER, BYVAL X2 AS INTEGER , BYVAL Y2 AS INTEGER , BYVAL X3 AS INTEGER, BYVAL Y3 AS INTEGER , BYVAL TC AS INTEGER)
'-------------------------------------------------------------------------
' FLAT TRIANGLE RENDERER WITH ASSEMBLY LANGUAGE RASTERISING BY SHOCKWAVE ^ DBF ^ S!P 2006.
'-------------------------------------------------------------------------
'-------------------------------------------------------------------------
' WE NEED TO SORT THESE POINTS INTO ORDER FROM TOP TO BOTTOM, AN EXCHANGE SORT IS OK.
' AS WE ONLY HAVE GOT 3 POINTS TO ARRANGE.
'-------------------------------------------------------------------------
DIM AS INTEGER TEMPX,TEMPY,LO,LI
                DIM AS INTEGER PX(3)
                DIM AS INTEGER PY(3)
                DIM TFLAG AS INTEGER
                dim pp as uinteger PTR
                DIM AS INTEGER IL1,IL2,SLICE
                TFLAG=0

        PX(1)= X1
        PX(2)= X2
        PX(3)= X3
       
        PY(1)= Y1
        PY(2)= Y2
        PY(3)= Y3

FOR LO = 1 TO 2
    FOR LI =1 TO 2     
        IF PY(LI+1) <= PY(LI) THEN
        TEMPX = PX(LI) : TEMPY = PY(LI)
        PX(LI) = PX(LI+1)
        PY(LI) = PY(LI+1)
        PX(LI+1) = TEMPX
        PY(LI+1) = TEMPY
        END IF   
    NEXT LI
NEXT LO

'   BOOT OUT INVISIBLE TRIANGLES!

    IF PX(1)<0 AND PX(2)<0  AND PX(3)< 0 THEN TFLAG=1
    IF PX(1)>XRES AND PX(2)>XRES  AND PX(3)>XRES THEN TFLAG=1
    IF PY(1)>YRES AND PY(2)>YRES  AND PY(3)>YRES THEN TFLAG=1
   
        DIM AS DOUBLE XP1,XP2:' SCREEN POSITIONS.
        DIM AS DOUBLE XI1,XI2:' INTERPOLATIONS.
       
'***
'*** REGULAR TRIANGLE (Y1<Y2 Y2<Y3)
'***

IF PY(1)<PY(2) AND PY(2)<PY(3) or (PY(2) = PY(3)) THEN
    TFLAG=1
XP1 = PX(1)
XP2 = PX(1)
XI1 = (PX(1)-PX(2)) / (PY(2) - PY(1))
XI2 = (PX(1)-PX(3)) / (PY(3) - PY(1))

FOR LO = PY(1) TO PY(2)-1
   
IF LO>=0 AND LO<YRES THEN

    IF XP1<=XP2 THEN
        IL1=XP1
        IL2=XP2
    ELSE
        IL1=XP2
        IL2=XP1
    END IF
   
    IF IL2>XRES THEN IL2=XRES
    IF IL1<0 THEN IL1=0

    SLICE = IL2-IL1
    IF SLICE>0 THEN
        TC=YAR(LO,YARP)
    PP = @BUFFER(IL1+(LO*XRES))   
    asm
        mov eax,dword ptr[TC]
        mov ecx, [slice]
        mov edi, [PP]
        rep stosd
    end asm   
    END IF
   

END IF

XP1=XP1-XI1
XP2=XP2-XI2
NEXT

XI1 = (PX(2)-PX(3)) / (PY(3) - PY(2))
XP1 = PX(2)

FOR LO = PY(2) TO PY(3)
IF LO>=0 AND LO<YRES THEN
    IF XP1<=XP2 THEN
        IL1=XP1
        IL2=XP2
    ELSE
        IL1=XP2
        IL2=XP1
    END IF

    IF IL2>XRES THEN IL2=XRES
    IF IL1<0 THEN IL1=0

    SLICE = IL2-IL1
    IF SLICE>0 THEN
    PP = @BUFFER(IL1+(LO*XRES))   
    TC=YAR(LO,YARP)
    asm
        mov eax,dword ptr[TC]
        mov ecx, [slice]
        mov edi, [PP]
        rep stosd
    end asm   
    END IF
END IF
XP1=XP1-XI1
XP2=XP2-XI2
NEXT

END IF


'***
'*** FLAT TOPPED TRIANGLE Y1=Y2
'***

IF TFLAG=0 AND PY(1) = PY(2) THEN
   
        TFLAG=1
        XP1 = PX(1)
        XP2 = PX(2)
        XI1 = (PX(1)-PX(3)) / (PY(3) - PY(1))
        XI2 = (PX(2)-PX(3)) / (PY(3) - PY(2))
FOR LO = PY(1) TO PY(3)
 IF LO>=0 AND LO<YRES THEN
    IF XP1<=XP2 THEN
        IL1=XP1
        IL2=XP2
    ELSE
        IL1=XP2
        IL2=XP1
    END IF
   
    IF IL2>XRES THEN IL2=XRES
    IF IL1<0 THEN IL1=0
   
    SLICE = IL2-IL1
    IF SLICE>0 THEN
    PP = @BUFFER(IL1+(LO*XRES))   
    TC=YAR(LO,YARP)
    asm
        mov eax,dword ptr[TC]
        mov ecx, [slice]
        mov edi, [PP]
        rep stosd
    end asm   
    END IF
END IF
    XP1=XP1-XI1
    XP2=XP2-XI2

NEXT
END IF
END SUB

'-------------------------------------------------------------------------
'Sub To Draw A Letter AnyWhere On The Screen (With Clipping);
'-------------------------------------------------------------------------
sub DBFTEXT(BYVAL BX AS INTEGER , BYVAL BY AS INTEGER , BYVAL CH AS INTEGER , BYVAL CLR AS INTEGER)
dim blx,bly as integer
dim bm,mm
    '---------------------------------
    'Calculate Offset In Font Data;---
    '---------------------------------
    bm=(ch*169)-169
    FOR BLY=0 TO 12
    FOR BLX=1 TO 13
        '--------
        'Clip;---
        '--------
        'IF (BX+BLX>0) AND (BX+BLX<XRES) AND (BY+BLY>0) AND (BY+BLY<YRES) THEN
           
            '----------------------------------------------------
            'Draw Pixel In Buffer If Onscreen And If Binary 1 ---
            '----------------------------------------------------
           
            MM= FONT(((BLY*13)+BLX)+BM)
            IF MM >0 THEN BUFFER (((BY+BLY)*XRES)+BX+BLX) = ALPHA (YAR2(BY+BLY),BUFFER (((BY+BLY)*XRES)+BX+BLX))
       ' END IF
    NEXT
    NEXT
END SUB


sub DBFTEXT2(BYVAL BX AS INTEGER , BYVAL BY AS INTEGER , BYVAL CH AS INTEGER , BYVAL CLR AS INTEGER)
dim blx,bly as integer
dim bm,mm
    '---------------------------------
    'Calculate Offset In Font Data;---
    '---------------------------------
    bm=(ch*169)-169
    FOR BLY=0 TO 12
    FOR BLX=1 TO 13
        '--------
        'Clip;---
        '--------
        'IF (BX+BLX>0) AND (BX+BLX<XRES) AND (BY+BLY>0) AND (BY+BLY<YRES) THEN
           
            '----------------------------------------------------
            'Draw Pixel In Buffer If Onscreen And If Binary 1 ---
            '----------------------------------------------------
           
            MM= FONT(((BLY*13)+BLX)+BM)
            IF MM >0 THEN BUFFER (((BY+BLY)*XRES)+BX+BLX) = &HFFFFFF
       ' END IF
    NEXT
    NEXT
END SUB

'==============================================================================
' Binary Font By Shockwave / DBF; (64 Chars) 13 * 13
'==============================================================================

'space
data 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
data 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
data 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
data 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
data 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
data 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
data 0,0,0,0,0,0,0,0,0,0,0,0,0
'!
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 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
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
'"

data 0,0,1,1,1,0,1,1,1,0,0,0,0
data 0,0,1,1,1,0,1,1,1,0,0,0,0
data 0,0,1,1,1,0,1,1,1,0,0,0,0
data 0,0,0,1,0,0,0,1,0,0,0,0,0
data 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
data 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
data 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
data 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
data 0,0,0,0,0,0,0,0,0,0,0,0,0
'#
data 0,0,1,1,1,0,0,0,1,1,1,0,0
data 0,0,1,1,1,0,0,0,1,1,1,0,0
data 1,1,1,1,1,1,1,1,1,1,1,1,1
data 1,1,1,1,1,1,1,1,1,1,1,1,1
data 1,1,1,1,1,1,1,1,1,1,1,1,1
data 0,0,1,1,1,0,0,0,1,1,1,0,0
data 0,0,1,1,1,0,0,0,1,1,1,0,0
data 0,0,1,1,1,0,0,0,1,1,1,0,0
data 1,1,1,1,1,1,1,1,1,1,1,1,1
data 1,1,1,1,1,1,1,1,1,1,1,1,1
data 1,1,1,1,1,1,1,1,1,1,1,1,1
data 0,0,1,1,1,0,0,0,1,1,1,0,0
data 0,0,1,1,1,0,0,0,1,1,1,0,0

'£
data 0,0,0,0,0,0,1,1,1,1,1,0,0
data 0,0,0,0,1,1,1,1,1,1,1,0,0
data 0,0,0,0,1,1,1,1,1,1,1,0,0
data 0,0,0,1,1,1,1,0,0,0,0,0,0
data 0,0,0,1,1,1,0,0,0,0,0,0,0
data 0,1,1,1,1,1,1,1,1,0,0,0,0
data 0,1,1,1,1,1,1,1,1,0,0,0,0
data 0,0,0,1,1,1,0,0,0,0,0,0,0
data 0,0,0,1,1,1,0,0,0,0,0,0,0
data 0,0,0,1,1,1,0,0,0,0,0,0,0
data 0,1,1,1,1,1,1,1,1,1,1,1,0
data 0,1,1,1,1,1,1,1,1,1,1,1,0
data 0,1,1,1,1,1,1,1,1,1,1,1,0

'% = CHAIN LINK
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,1,1,0,0,0,1,1,1,1,1
data 0,0,0,1,1,1,0,1,1,1,0,0,0
data 0,0,0,0,1,1,0,1,1,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,0,1,0,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,1,1,0,1,1,0,0,0,0
data 0,0,0,1,1,1,0,1,1,1,0,0,0
data 1,1,1,1,1,0,0,0,1,1,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1

'& = o
data 0,0,0,0,1,1,1,1,1,0,0,0,0
data 0,0,1,1,1,1,1,1,1,1,1,0,0
data 0,1,1,1,1,1,1,1,1,1,1,1,0
data 0,1,1,1,1,1,1,1,1,1,1,1,0
data 1,1,1,1,1,1,1,1,1,1,1,1,1
data 1,1,1,1,1,1,1,1,1,1,1,1,1
data 1,1,1,1,1,1,1,1,1,1,1,1,1
data 1,1,1,1,1,1,1,1,1,1,1,1,1
data 1,1,1,1,1,1,1,1,1,1,1,1,1
data 0,1,1,1,1,1,1,1,1,1,1,1,0
data 0,1,1,1,1,1,1,1,1,1,1,1,0
data 0,0,1,1,1,1,1,1,1,1,1,0,0
data 0,0,0,0,1,1,1,1,1,0,0,0,0
''
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,0,1,0,0,0,0,0,0
data 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
data 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
data 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
data 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
data 0,0,0,0,0,0,0,0,0,0,0,0,0
'(
data 0,0,0,0,1,1,1,1,1,1,0,0,0
data 0,0,1,1,1,1,1,1,1,1,0,0,0
data 0,0,1,1,1,1,1,1,1,1,0,0,0
data 0,1,1,1,1,0,0,0,0,0,0,0,0
data 0,1,1,1,0,0,0,0,0,0,0,0,0
data 0,1,1,1,0,0,0,0,0,0,0,0,0
data 0,1,1,1,0,0,0,0,0,0,0,0,0
data 0,1,1,1,0,0,0,0,0,0,0,0,0
data 0,1,1,1,0,0,0,0,0,0,0,0,0
data 0,1,1,1,1,0,0,0,0,0,0,0,0
data 0,0,1,1,1,1,1,1,1,1,0,0,0
data 0,0,1,1,1,1,1,1,1,1,0,0,0
data 0,0,0,0,1,1,1,1,1,1,0,0,0
')
data 0,0,0,1,1,1,1,1,1,0,0,0,0
data 0,0,0,1,1,1,1,1,1,1,1,0,0
data 0,0,0,1,1,1,1,1,1,1,1,0,0
data 0,0,0,0,0,0,0,0,1,1,1,1,0
data 0,0,0,0,0,0,0,0,0,1,1,1,0
data 0,0,0,0,0,0,0,0,0,1,1,1,0
data 0,0,0,0,0,0,0,0,0,1,1,1,0
data 0,0,0,0,0,0,0,0,0,1,1,1,0
data 0,0,0,0,0,0,0,0,0,1,1,1,0
data 0,0,0,0,0,0,0,0,1,1,1,1,0
data 0,0,0,1,1,1,1,1,1,1,1,0,0
data 0,0,0,1,1,1,1,1,1,1,1,0,0
data 0,0,0,1,1,1,1,1,1,0,0,0,0
'*
data 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
data 0,0,0,0,0,0,1,0,0,0,0,0,0
data 0,0,0,0,1,1,1,1,1,0,0,0,0
data 0,0,0,1,1,1,1,1,1,1,0,0,0
data 0,0,0,1,1,1,1,1,1,1,0,0,0
data 0,0,1,1,1,1,1,1,1,1,1,0,0
data 0,0,0,1,1,1,1,1,1,1,0,0,0
data 0,0,0,1,1,1,1,1,1,1,0,0,0
data 0,0,0,0,1,1,1,1,1,0,0,0,0
data 0,0,0,0,0,0,1,0,0,0,0,0,0
data 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
'+
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 1,1,1,1,1,1,1,1,1,1,1,1,1
data 1,1,1,1,1,1,1,1,1,1,1,1,1
data 1,1,1,1,1,1,1,1,1,1,1,1,1
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
',
data 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
data 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
data 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
data 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
data 0,0,0,0,0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,0,1,0,0,0,0,0,0
'-
data 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
data 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
data 0,0,0,0,0,0,0,0,0,0,0,0,0
data 1,1,1,1,1,1,1,1,1,1,1,1,1
data 1,1,1,1,1,1,1,1,1,1,1,1,1
data 1,1,1,1,1,1,1,1,1,1,1,1,1
data 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
data 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
data 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
data 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
data 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
data 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
data 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
data 0,0,0,0,0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
'/
data 0,0,0,0,0,0,0,0,0,0,0,1,0
data 0,0,0,0,0,0,0,0,0,0,1,1,0
data 0,0,0,0,0,0,0,0,0,1,1,1,0
data 0,0,0,0,0,0,0,0,1,1,1,0,0
data 0,0,0,0,0,0,0,1,1,1,0,0,0
data 0,0,0,0,0,0,1,1,1,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,1,1,1,0,0,0,0,0,0
data 0,0,0,1,1,1,0,0,0,0,0,0,0
data 0,0,1,1,1,0,0,0,0,0,0,0,0
data 0,1,1,1,0,0,0,0,0,0,0,0,0
data 0,1,1,0,0,0,0,0,0,0,0,0,0
data 0,1,0,0,0,0,0,0,0,0,0,0,0
'0
data 0,0,0,1,1,1,1,1,1,1,0,0,0
data 0,1,1,1,1,1,1,1,1,1,1,1,0
data 1,1,1,1,1,1,1,1,1,1,1,1,0
data 1,1,1,1,0,0,0,0,0,1,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,1,0,0,0,0,0,1,1,1,1
data 0,1,1,1,1,1,1,1,1,1,1,1,0
data 0,1,1,1,1,1,1,1,1,1,1,1,0
data 0,0,0,1,1,1,1,1,1,1,0,0,0
'1

data 0,0,0,0,1,1,1,1,0,0,0,0,0
data 0,0,0,1,1,1,1,1,0,0,0,0,0
data 0,0,1,1,1,1,1,1,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,1,1,1,1,1,1,1,1,1,1,1,0
data 0,1,1,1,1,1,1,1,1,1,1,1,0
data 0,1,1,1,1,1,1,1,1,1,1,1,0

'2
data 0,0,0,1,1,1,1,1,1,1,0,0,0
data 0,0,0,1,1,1,1,1,1,1,1,1,0
data 0,0,0,1,1,1,1,1,1,1,1,1,0
data 0,0,0,0,0,0,0,0,0,1,1,1,1
data 0,0,0,0,0,0,0,0,0,0,1,1,1
data 0,0,1,1,1,1,1,1,1,1,1,1,1
data 0,1,1,1,1,1,1,1,1,1,1,1,1
data 0,1,1,1,1,1,1,1,1,1,1,1,0
data 0,1,1,1,0,0,0,0,0,0,0,0,0
data 0,1,1,1,0,0,0,0,0,0,0,0,0
data 0,1,1,1,1,1,1,1,1,1,1,1,1
data 0,1,1,1,1,1,1,1,1,1,1,1,1
data 0,1,1,1,1,1,1,1,1,1,1,1,1

'3

data 0,0,0,1,1,1,1,1,1,1,0,0,0
data 0,0,0,1,1,1,1,1,1,1,1,1,0
data 0,0,0,1,1,1,1,1,1,1,1,1,0
data 0,0,0,0,0,0,0,0,0,1,1,1,1
data 0,0,0,0,0,0,0,0,0,0,1,1,1
data 0,0,0,0,0,1,1,1,1,1,1,1,1
data 0,0,0,0,0,1,1,1,1,1,1,1,0
data 0,0,0,0,0,1,1,1,1,1,1,1,1
data 0,0,0,0,0,0,0,0,0,0,1,1,1
data 0,0,0,0,0,0,0,0,0,1,1,1,1
data 0,1,1,1,1,1,1,1,1,1,1,1,0
data 0,1,1,1,1,1,1,1,1,1,1,1,0
data 0,1,1,1,1,1,1,1,1,1,0,0,0

'4
data 0,1,1,1,0,0,0,0,0,0,0,0,0
data 0,1,1,1,0,0,0,0,0,0,0,0,0
data 0,1,1,1,0,0,0,0,0,0,0,0,0
data 0,1,1,1,0,1,1,1,0,0,0,0,0
data 0,1,1,1,0,1,1,1,0,0,0,0,0
data 0,1,1,1,1,1,1,1,1,1,1,1,1
data 0,0,1,1,1,1,1,1,1,1,1,1,1
data 0,0,0,1,1,1,1,1,1,1,1,1,1
data 0,0,0,0,0,0,1,1,1,0,0,0,0
data 0,0,0,0,0,0,1,1,1,0,0,0,0
data 0,0,0,0,0,0,1,1,1,0,0,0,0
data 0,0,0,0,0,0,1,1,1,0,0,0,0
data 0,0,0,0,0,0,1,1,1,0,0,0,0
'5
data 0,0,0,1,1,1,1,1,1,1,1,1,1
data 0,0,0,1,1,1,1,1,1,1,1,1,1
data 0,0,0,1,1,1,1,1,1,1,1,1,1
data 0,0,0,1,1,1,0,0,0,0,0,0,0
data 0,0,0,1,1,1,0,0,0,0,0,0,0
data 0,0,0,1,1,1,1,1,1,1,1,1,0
data 0,0,0,1,1,1,1,1,1,1,1,1,1
data 0,0,0,0,1,1,1,1,1,1,1,1,1
data 0,0,0,0,0,0,0,0,0,0,1,1,1
data 0,0,0,0,0,0,0,0,0,1,1,1,1
data 0,1,1,1,1,1,1,1,1,1,1,1,0
data 0,1,1,1,1,1,1,1,1,1,1,1,0
data 0,1,1,1,1,1,1,1,1,1,0,0,0
'6
data 0,0,0,0,1,1,1,0,0,0,0,0,0
data 0,0,1,1,1,1,1,0,0,0,0,0,0
data 0,0,1,1,1,1,1,0,0,0,0,0,0
data 0,1,1,1,1,0,0,0,0,0,0,0,0
data 0,1,1,1,0,0,0,0,0,0,0,0,0
data 0,1,1,1,1,1,1,1,1,1,0,0,0
data 0,1,1,1,1,1,1,1,1,1,1,1,0
data 0,1,1,1,1,1,1,1,1,1,1,1,0
data 0,1,1,1,1,0,0,0,0,1,1,1,1
data 0,1,1,1,1,0,0,0,0,1,1,1,1
data 0,0,1,1,1,1,1,1,1,1,1,1,0
data 0,0,1,1,1,1,1,1,1,1,1,1,0
data 0,0,0,0,1,1,1,1,1,1,0,0,0

'7
data 0,0,1,1,1,1,1,1,1,1,1,1,1
data 0,0,1,1,1,1,1,1,1,1,1,1,1
data 0,0,1,1,1,1,1,1,1,1,1,1,1
data 0,0,0,0,0,0,0,0,0,1,1,1,0
data 0,0,0,0,0,0,0,0,0,1,1,1,0
data 0,0,0,0,0,1,1,1,1,1,1,1,1
data 0,0,0,0,0,1,1,1,1,1,1,1,1
data 0,0,0,0,0,1,1,1,1,1,1,1,1
data 0,0,0,0,0,0,0,0,1,1,1,0,0
data 0,0,0,0,0,0,0,1,1,1,0,0,0
data 0,0,0,0,0,0,0,1,1,1,0,0,0
data 0,0,0,0,0,0,0,1,1,1,0,0,0
data 0,0,0,0,0,0,0,1,1,1,0,0,0
'8

data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,1,1,1,1,1,1,1,0,0,0
data 0,0,1,1,1,1,1,1,1,1,1,0,0
data 0,0,1,1,1,0,0,0,1,1,1,0,0
data 0,0,1,1,1,0,0,0,1,1,1,0,0
data 0,0,0,1,1,1,1,1,1,1,0,0,0
data 0,1,1,1,1,1,1,1,1,1,1,1,0
data 0,1,1,1,1,1,1,1,1,1,1,1,0
data 1,1,1,1,0,0,0,0,0,1,1,1,1
data 1,1,1,1,0,0,0,0,0,1,1,1,1
data 0,1,1,1,1,1,1,1,1,1,1,1,0
data 0,1,1,1,1,1,1,1,1,1,1,1,0
data 0,0,0,1,1,1,1,1,1,1,0,0,0

'9
data 0,0,0,0,1,1,1,1,1,1,0,0,0
data 0,0,1,1,1,1,1,1,1,1,1,1,0
data 0,0,1,1,1,1,1,1,1,1,1,1,0
data 0,1,1,1,1,0,0,0,0,1,1,1,1
data 0,1,1,1,0,0,0,0,0,0,1,1,1
data 0,1,1,1,1,0,0,0,0,1,1,1,1
data 0,0,1,1,1,1,1,1,1,1,1,1,1
data 0,0,1,1,1,1,1,1,1,1,1,1,1
data 0,0,0,0,1,1,1,1,1,1,1,1,0
data 0,0,0,0,0,0,0,0,0,1,1,1,0
data 0,0,0,0,0,0,0,0,1,1,1,0,0
data 0,0,0,0,0,0,0,0,1,1,1,0,0
data 0,0,0,0,0,0,0,1,1,1,0,0,0
':
data 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
data 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
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 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
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 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
data 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
data 0,0,0,0,0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 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
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,0,1,0,0,0,0,0,0
'<
data 0,0,0,0,0,0,0,1,0,0,0,0,0
data 0,0,0,0,0,0,1,1,1,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,1,1,1,0,0,0,0,0,0
data 0,0,0,1,1,1,0,0,0,0,0,0,0
data 0,0,1,1,1,0,0,0,0,0,0,0,0
data 0,1,1,1,0,0,0,0,0,0,0,0,0
data 0,0,1,1,1,0,0,0,0,0,0,0,0
data 0,0,0,1,1,1,0,0,0,0,0,0,0
data 0,0,0,0,1,1,1,0,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,0,1,1,1,0,0,0,0
data 0,0,0,0,0,0,0,1,0,0,0,0,0
'=
data 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
data 0,0,0,0,0,0,0,0,0,0,0,0,0
data 0,1,1,1,1,1,1,1,1,1,1,1,0
data 0,1,1,1,1,1,1,1,1,1,1,1,0
data 0,1,1,1,1,1,1,1,1,1,1,1,0
data 0,0,0,0,0,0,0,0,0,0,0,0,0
data 0,1,1,1,1,1,1,1,1,1,1,1,0
data 0,1,1,1,1,1,1,1,1,1,1,1,0
data 0,1,1,1,1,1,1,1,1,1,1,1,0
data 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
data 0,0,0,0,0,0,0,0,0,0,0,0,0
'>
data 0,0,0,0,0,0,1,0,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,0,1,1,1,0,0,0,0
data 0,0,0,0,0,0,0,1,1,1,0,0,0
data 0,0,0,0,0,0,0,0,1,1,1,0,0
data 0,0,0,0,0,0,0,0,0,1,1,1,0
data 0,0,0,0,0,0,0,0,0,0,1,1,1
data 0,0,0,0,0,0,0,0,0,1,1,1,0
data 0,0,0,0,0,0,0,0,1,1,1,0,0
data 0,0,0,0,0,0,0,1,1,1,0,0,0
data 0,0,0,0,0,0,1,1,1,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,0,1,0,0,0,0,0,0
'?
data 0,0,0,1,1,1,1,1,1,1,0,0,0
data 0,0,0,1,1,1,1,1,1,1,1,1,0
data 0,0,0,1,1,1,1,1,1,1,1,1,0
data 0,0,0,0,0,0,0,0,0,1,1,1,1
data 0,0,0,0,0,0,0,0,0,0,1,1,1
data 0,0,0,0,0,1,1,1,1,1,1,1,1
data 0,0,0,0,0,1,1,1,1,1,1,1,1
data 0,0,0,0,0,1,1,1,1,1,1,1,0
data 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
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
'@
data 0,0,1,1,1,1,1,1,1,1,1,0,0
data 0,1,1,1,1,1,1,1,1,1,1,1,0
data 0,1,1,1,0,0,0,0,0,1,1,1,0
data 0,1,1,0,0,1,1,1,0,0,1,1,0
data 0,1,1,0,1,1,1,1,1,0,1,1,0
data 0,1,1,0,1,1,0,1,1,0,1,1,0
data 0,1,1,0,1,1,1,1,1,0,1,1,0
data 0,1,1,0,1,1,1,1,1,0,1,1,0
data 0,1,1,0,1,1,0,1,1,1,1,1,0
data 0,1,1,0,1,1,0,1,1,1,1,0,0
data 0,1,1,1,0,0,0,0,0,0,0,0,0
data 0,1,1,1,1,1,1,1,1,1,1,1,0
data 0,0,1,1,1,1,1,1,1,1,1,1,0

'A
data 0,0,0,1,1,1,1,1,1,1,0,0,0
data 0,1,1,1,1,1,1,1,1,1,1,1,0
data 0,1,1,1,1,1,1,1,1,1,1,1,0
data 1,1,1,1,0,0,0,0,0,1,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,1,1,1,1,1,1,1,1,1,1
data 1,1,1,1,1,1,1,1,1,1,1,1,1
data 1,1,1,1,1,1,1,1,1,1,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
'B
data 1,1,1,1,1,1,1,1,0,0,0,0,0
data 1,1,1,1,1,1,1,1,1,1,0,0,0
data 1,1,1,1,1,1,1,1,1,1,1,0,0
data 1,1,1,0,0,0,0,0,1,1,1,0,0
data 1,1,1,0,0,0,0,0,1,1,0,0,0
data 1,1,1,1,1,1,1,1,1,1,1,1,0
data 1,1,1,1,1,1,1,1,1,1,1,1,0
data 1,1,1,1,1,1,1,1,1,1,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,1,1,1,1,1,1,1,1,1,0
data 1,1,1,1,1,1,1,1,1,1,1,1,0
data 1,1,1,1,1,1,1,1,1,1,0,0,0

'C
data 0,0,0,1,1,1,1,1,1,1,1,1,1
data 0,1,1,1,1,1,1,1,1,1,1,1,1
data 0,1,1,1,1,1,1,1,1,1,1,1,1
data 1,1,1,1,0,0,0,0,0,0,0,0,0
data 1,1,1,0,0,0,0,0,0,0,0,0,0
data 1,1,1,0,0,0,0,0,0,0,0,0,0
data 1,1,1,0,0,0,0,0,0,0,0,0,0
data 1,1,1,0,0,0,0,0,0,0,0,0,0
data 1,1,1,0,0,0,0,0,0,0,0,0,0
data 1,1,1,1,0,0,0,0,0,0,0,0,0
data 0,1,1,1,1,1,1,1,1,1,1,1,1
data 0,1,1,1,1,1,1,1,1,1,1,1,1
data 0,0,0,1,1,1,1,1,1,1,1,1,1
'D
data 1,1,1,1,1,1,1,1,1,1,0,0,0
data 1,1,1,1,1,1,1,1,1,1,1,1,0
data 1,1,1,1,1,1,1,1,1,1,1,1,0
data 1,1,1,0,0,0,0,0,0,1,1,1,0
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,1,1,1,1
data 1,1,1,1,1,1,1,1,1,1,1,1,0
data 1,1,1,1,1,1,1,1,1,1,1,1,0
data 1,1,1,1,1,1,1,1,1,1,0,0,0

'E
data 0,0,0,1,1,1,1,1,1,1,1,1,1
data 0,1,1,1,1,1,1,1,1,1,1,1,1
data 0,1,1,1,1,1,1,1,1,1,1,1,1
data 1,1,1,1,0,0,0,0,0,0,0,0,0
data 1,1,1,0,0,0,0,0,0,0,0,0,0
data 0,1,1,1,1,1,1,1,0,0,0,0,0
data 0,1,1,1,1,1,1,1,0,0,0,0,0
data 0,1,1,1,1,1,1,1,0,0,0,0,0
data 1,1,1,0,0,0,0,0,0,0,0,0,0
data 1,1,1,1,0,0,0,0,0,0,0,0,0
data 0,1,1,1,1,1,1,1,1,1,1,1,1
data 0,1,1,1,1,1,1,1,1,1,1,1,1
data 0,0,0,1,1,1,1,1,1,1,1,1,1

'F
data 0,0,0,1,1,1,1,1,1,1,1,1,1
data 0,1,1,1,1,1,1,1,1,1,1,1,1
data 0,1,1,1,1,1,1,1,1,1,1,1,1
data 1,1,1,1,0,0,0,0,0,0,0,0,0
data 1,1,1,0,0,0,0,0,0,0,0,0,0
data 1,1,1,1,1,1,1,1,0,0,0,0,0
data 1,1,1,1,1,1,1,1,0,0,0,0,0
data 1,1,1,1,1,1,1,1,0,0,0,0,0
data 1,1,1,0,0,0,0,0,0,0,0,0,0
data 1,1,1,0,0,0,0,0,0,0,0,0,0
data 1,1,1,0,0,0,0,0,0,0,0,0,0
data 1,1,1,0,0,0,0,0,0,0,0,0,0
data 1,1,1,0,0,0,0,0,0,0,0,0,0

'G
data 0,0,0,1,1,1,1,1,1,1,1,1,1
data 0,1,1,1,1,1,1,1,1,1,1,1,1
data 0,1,1,1,1,1,1,1,1,1,1,1,1
data 1,1,1,1,0,0,0,0,0,0,0,0,0
data 1,1,1,0,0,0,0,0,0,0,0,0,0
data 1,1,1,0,0,0,0,1,1,1,1,1,0
data 1,1,1,0,0,0,0,1,1,1,1,1,1
data 1,1,1,0,0,0,0,1,1,1,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,1,0,0,0,0,0,1,1,1,1
data 0,1,1,1,1,1,1,1,1,1,1,1,0
data 0,1,1,1,1,1,1,1,1,1,1,1,0
data 0,0,0,1,1,1,1,1,1,1,0,0,0

'H
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,1,1,1,1,1,1,1,1,1,1
data 1,1,1,1,1,1,1,1,1,1,1,1,1
data 1,1,1,1,1,1,1,1,1,1,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1

'I
data 1,1,1,1,1,1,1,1,1,1,1,1,1
data 1,1,1,1,1,1,1,1,1,1,1,1,1
data 1,1,1,1,1,1,1,1,1,1,1,1,1
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 1,1,1,1,1,1,1,1,1,1,1,1,1
data 1,1,1,1,1,1,1,1,1,1,1,1,1
data 1,1,1,1,1,1,1,1,1,1,1,1,1

'J
data 1,1,1,1,1,1,1,1,1,1,1,1,1
data 1,1,1,1,1,1,1,1,1,1,1,1,1
data 1,1,1,1,1,1,1,1,1,1,1,1,1
data 0,0,0,0,0,0,0,0,0,0,1,1,1
data 0,0,0,0,0,0,0,0,0,0,1,1,1
data 0,0,0,0,0,0,0,0,0,0,1,1,1
data 0,0,0,0,0,0,0,0,0,0,1,1,1
data 0,0,0,0,0,0,0,0,0,0,1,1,1
data 0,0,0,0,0,0,0,0,0,0,1,1,1
data 0,0,0,0,0,0,0,0,0,1,1,1,1
data 1,1,1,1,1,1,1,1,1,1,1,1,0
data 1,1,1,1,1,1,1,1,1,1,1,1,0
data 1,1,1,1,1,1,1,1,1,1,0,0,0
'K
data 1,1,1,0,0,0,0,0,1,1,1,0,0
data 1,1,1,0,0,0,0,0,1,1,1,0,0
data 1,1,1,0,0,0,0,0,1,1,1,0,0
data 1,1,1,0,0,0,0,0,1,1,1,0,0
data 1,1,1,0,0,0,0,1,1,1,0,0,0
data 1,1,1,1,1,1,1,1,1,1,0,0,0
data 1,1,1,1,1,1,1,1,1,1,1,1,0
data 1,1,1,1,1,1,1,1,1,1,1,1,0
data 1,1,1,0,0,0,0,0,0,1,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
'L
data 1,1,1,0,0,0,0,0,0,0,0,0,0
data 1,1,1,0,0,0,0,0,0,0,0,0,0
data 1,1,1,0,0,0,0,0,0,0,0,0,0
data 1,1,1,0,0,0,0,0,0,0,0,0,0
data 1,1,1,0,0,0,0,0,0,0,0,0,0
data 1,1,1,0,0,0,0,0,0,0,0,0,0
data 1,1,1,0,0,0,0,0,0,0,0,0,0
data 1,1,1,0,0,0,0,0,0,0,0,0,0
data 1,1,1,0,0,0,0,0,0,0,0,0,0
data 1,1,1,1,0,0,0,0,0,0,0,0,0
data 0,1,1,1,1,1,1,1,1,1,1,1,1
data 0,1,1,1,1,1,1,1,1,1,1,1,1
data 0,0,0,1,1,1,1,1,1,1,1,1,1
'M
data 0,0,0,1,1,1,0,1,1,1,0,0,0
data 0,1,1,1,1,1,1,1,1,1,1,1,0
data 0,1,1,1,1,1,1,1,1,1,1,1,0
data 1,1,1,1,0,1,1,1,0,1,1,1,1
data 1,1,1,0,0,1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1

'N
data 1,1,1,0,1,1,1,1,1,1,0,0,0
data 1,1,1,1,1,1,1,1,1,1,1,1,0
data 1,1,1,1,1,1,1,1,1,1,1,1,0
data 1,1,1,1,0,0,0,0,0,1,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1

'O
data 0,0,0,1,1,1,1,1,1,1,0,0,0
data 0,1,1,1,1,1,1,1,1,1,1,1,0
data 0,1,1,1,1,1,1,1,1,1,1,1,0
data 1,1,1,1,0,0,0,0,0,1,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,1,0,0,0,0,0,1,1,1,1
data 0,1,1,1,1,1,1,1,1,1,1,1,0
data 0,1,1,1,1,1,1,1,1,1,1,1,0
data 0,0,0,1,1,1,1,1,1,1,0,0,0

'P
data 1,1,1,1,1,1,1,1,1,1,0,0,0
data 1,1,1,1,1,1,1,1,1,1,1,1,0
data 1,1,1,1,1,1,1,1,1,1,1,1,0
data 1,1,1,0,0,0,0,0,0,1,1,1,1
data 1,1,1,0,0,0,0,0,0,1,1,1,1
data 1,1,1,1,1,1,1,1,1,1,1,1,0
data 1,1,1,1,1,1,1,1,1,1,1,1,0
data 1,1,1,1,1,1,1,1,1,1,0,0,0
data 1,1,1,0,0,0,0,0,0,0,0,0,0
data 1,1,1,0,0,0,0,0,0,0,0,0,0
data 1,1,1,0,0,0,0,0,0,0,0,0,0
data 1,1,1,0,0,0,0,0,0,0,0,0,0
data 1,1,1,0,0,0,0,0,0,0,0,0,0
'Q
data 0,0,0,1,1,1,1,1,1,1,0,0,0
data 0,1,1,1,1,1,1,1,1,1,1,1,0
data 0,1,1,1,1,1,1,1,1,1,1,1,0
data 1,1,1,1,0,0,0,0,0,1,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,1,1,0,0,1,1,1
data 1,1,1,0,0,0,0,1,1,0,1,1,1
data 1,1,1,0,0,0,0,0,1,1,1,1,1
data 1,1,1,1,0,0,0,0,0,1,1,1,1
data 0,1,1,1,1,1,1,1,1,1,1,1,0
data 0,1,1,1,1,1,1,1,1,1,1,1,1
data 0,0,0,1,1,1,1,1,1,1,0,0,1

'R
data 1,1,1,1,1,1,1,1,1,1,0,0,0
data 1,1,1,1,1,1,1,1,1,1,1,1,0
data 1,1,1,1,1,1,1,1,1,1,1,1,0
data 1,1,1,0,0,0,0,0,0,1,1,1,1
data 1,1,1,0,0,0,0,0,0,1,1,1,1
data 1,1,1,1,1,1,1,1,1,1,1,1,0
data 1,1,1,1,1,1,1,1,1,1,1,1,0
data 1,1,1,1,1,1,1,1,1,1,0,0,0
data 1,1,1,0,0,0,0,0,1,1,1,1,0
data 1,1,1,0,0,0,0,0,0,1,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1

'S
data 0,0,0,1,1,1,1,1,1,1,1,1,1
data 0,1,1,1,1,1,1,1,1,1,1,1,1
data 0,1,1,1,1,1,1,1,1,1,1,1,1
data 1,1,1,1,0,0,0,0,0,0,0,0,0
data 1,1,1,1,0,0,0,0,0,0,0,0,0
data 0,1,1,1,1,1,1,1,1,1,0,0,0
data 0,1,1,1,1,1,1,1,1,1,1,1,0
data 0,0,0,1,1,1,1,1,1,1,1,1,0
data 0,0,0,0,0,0,0,0,0,1,1,1,1
data 0,0,0,0,0,0,0,0,0,1,1,1,1
data 1,1,1,1,1,1,1,1,1,1,1,1,0
data 1,1,1,1,1,1,1,1,1,1,1,1,0
data 1,1,1,1,1,1,1,1,1,1,0,0,0
'T
data 1,1,1,1,1,1,1,1,1,1,1,1,1
data 1,1,1,1,1,1,1,1,1,1,1,1,1
data 1,1,1,1,1,1,1,1,1,1,1,1,1
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0
'U

data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,1,0,0,0,0,0,1,1,1,1
data 0,1,1,1,1,1,1,1,1,1,1,1,0
data 0,1,1,1,1,1,1,1,1,1,1,1,0
data 0,0,0,1,1,1,1,1,1,1,0,0,0

'V
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 0,1,1,1,0,0,0,0,0,1,1,1,0
data 0,0,1,1,1,0,0,0,1,1,1,0,0
data 0,0,0,1,1,1,1,1,1,1,0,0,0
data 0,0,0,0,1,1,1,1,1,0,0,0,0
data 0,0,0,0,0,1,1,1,0,0,0,0,0

'W
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,1,0,1,1,1,0,1,1,1,1
data 1,1,1,1,0,1,1,1,0,1,1,1,1
data 1,1,1,1,0,1,1,1,0,1,1,1,1
data 0,1,1,1,1,1,1,1,1,1,1,1,0
data 0,1,1,1,1,1,1,1,1,1,1,1,0
data 0,0,0,1,1,1,0,1,1,1,0,0,0
'X
data 0,1,1,1,0,0,0,0,0,1,1,1,0
data 0,1,1,1,0,0,0,0,0,1,1,1,0
data 0,1,1,1,0,0,0,0,0,1,1,1,0
data 0,1,1,1,0,0,0,0,0,1,1,1,0
data 0,0,1,1,1,0,0,0,1,1,1,0,0
data 0,0,0,1,1,1,1,1,1,1,0,0,0
data 0,1,1,1,1,1,1,1,1,1,1,1,0
data 0,1,1,1,1,1,1,1,1,1,1,1,0
data 1,1,1,1,0,0,0,0,0,1,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
'Y
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,0,0,0,0,0,0,0,1,1,1
data 1,1,1,1,0,0,0,0,0,0,1,1,1
data 0,1,1,1,1,1,1,1,1,1,1,1,1
data 0,1,1,1,1,1,1,1,1,1,1,1,1
data 0,0,0,1,1,1,1,1,1,1,1,1,1
data 0,0,0,0,0,0,0,0,0,0,1,1,1
data 0,0,0,0,0,0,0,0,0,1,1,1,1
data 1,1,1,1,1,1,1,1,1,1,1,1,0
data 1,1,1,1,1,1,1,1,1,1,1,1,0
data 1,1,1,1,1,1,1,1,1,1,0,0,0
'Z
data 1,1,1,1,1,1,1,1,1,1,0,0,0
data 1,1,1,1,1,1,1,1,1,1,1,1,0
data 1,1,1,1,1,1,1,1,1,1,1,1,0
data 0,0,0,0,0,0,0,0,0,1,1,1,1
data 0,0,0,0,0,0,0,0,0,0,1,1,1
data 0,1,1,1,1,1,1,1,1,1,1,1,1
data 1,1,1,1,1,1,1,1,1,1,1,1,1
data 1,1,1,1,1,1,1,1,1,1,1,1,0
data 1,1,1,0,0,0,0,0,0,0,0,0,0
data 1,1,1,0,0,0,0,0,0,0,0,0,0
data 1,1,1,1,1,1,1,1,1,1,1,1,1
data 1,1,1,1,1,1,1,1,1,1,1,1,1
data 1,1,1,1,1,1,1,1,1,1,1,1,1

'[
data 0,1,1,1,1,1,1,0,0,0,0,0,0
data 0,1,1,1,1,1,1,0,0,0,0,0
Shockwave ^ Codigos
Challenge Trophies Won:

Offline rdc

  • Pentium
  • *****
  • Posts: 1495
  • Karma: 140
  • Yes, it is me.
    • View Profile
    • Clark Productions
Re: Competition Intro Full Source Code.
« Reply #1 on: October 22, 2006 »
Wow, some good stuff here. I was wondering how to do shaded triangles. I will be studying this. Thanks!

Offline Rbz

  • Founder Member
  • DBF Aficionado
  • ********
  • Posts: 2757
  • Karma: 493
    • View Profile
    • https://www.rbraz.com/
Re: Competition Intro Full Source Code.
« Reply #2 on: October 23, 2006 »
Really great work Shockwave, and thanks for share it  8)

Btw, I think that you can remove this line:
Code: [Select]
#define VK_A   65       'Define key "VK_A" which the ASCII code is 65 (A)since you're not checking for key "A" in any part of your program.


 :cheers:
Challenge Trophies Won:

Offline taj

  • Bytes hurt
  • DBF Aficionado
  • ******
  • Posts: 4810
  • Karma: 189
  • Scene there, done that.
    • View Profile
Re: Competition Intro Full Source Code.
« Reply #3 on: October 23, 2006 »
If that was C, we could get it to aronud 4k BTW. Thyanks for posting source, Karma uuuuup!
I espically like the DIM twat variable...


I suggest DIM sum, DIM asyoucouldbe, DIM wit, DIM ension as other options.

Back at my time as a slave in University, I had an office mate who named his variables after fruit.

Code: [Select]
if(victoriaplum || banana) { fruitsalad+=wildstrawberry;}
would not be unusual in code I had to use.
« Last Edit: October 23, 2006 by taj »
Challenge Trophies Won:

Offline Shockwave

  • good/evil
  • Founder Member
  • DBF Aficionado
  • ********
  • Posts: 17409
  • Karma: 498
  • evil/good
    • View Profile
    • My Homepage
Re: Competition Intro Full Source Code.
« Reply #4 on: October 23, 2006 »
Lol, sorry Rbraz, I think you can guess that the checking for "A" came because I used part of your framework for the new ptc lib :) I did credit you for coding the lib of course ;)

Taj, thanks for the Karma up, sexual variable names are a must in most of my listings :)

The program I am working on is filthy!!

Code: [Select]
'
' THIS SUB WILL ZOOM TEH SCROLL TEXT
'
SUB ZOOM_SCROLL(BYVAL X1 AS INTEGER ,BYVAL Y1 AS INTEGER,BYVAL X2 AS INTEGER ,BYVAL Y2 AS INTEGER)
   
    DIM AS DOUBLE XI,YI,XP,YP
    DIM AS UINTEGER YLP,XLP,IYP,IXP,YLPT,DOD,SLICE,start,finish,fook
    DIM AS UINTEGER CUNT(XRES)
    FOR XLP=0 TO XRES
        CUNT(XLP)=60*SIN((XLP+GADD)/53)+60*COS((XLP+(GADD))/43)
        CUNT(XLP)=CUNT(XLP)*XRES
    NEXT
   
    XI = (300) / (X2-X1)
    YI = (15) / (Y2-Y1)
   
    YP=2
   
    if X1>X2 then
        SLICE = x1-x2
        start=x2
        finish=x1
    else
        SLICE = x2-x1
        start=x1
        finish=x2

    end if
   
    FOR YLP= Y1 TO Y2
            XP=0
            IYP=YP-1
            IYP=IYP*300
            YLPT=YLP*XRES
           
        FOR XLP=START TO FINISH                           
                FOOK=TEXTURE(XP+IYP)
                IF FOOK>0 THEN BUFFER(XLP+(YLPT+CUNT(XLP))) = FOOK           
            XP=XP+XI
        NEXT
       
        YP=YP+YI
    NEXT
   
   
END SUB
Shockwave ^ Codigos
Challenge Trophies Won:

Offline Clyde

  • A Little Fuzzy Wuzzy
  • DBF Aficionado
  • ******
  • Posts: 7271
  • Karma: 71
    • View Profile
Re: Competition Intro Full Source Code.
« Reply #5 on: October 23, 2006 »
Shockwave, cheers for posting the source. Im really fasinated by how you achieved the twist / perisalsis effect in 2D. It's very cool.

Cheers,
Clyde.
Still Putting The IT Into Gravy
If Only I Knew Then What I Know Now.

Challenge Trophies Won:

Offline Shockwave

  • good/evil
  • Founder Member
  • DBF Aficionado
  • ********
  • Posts: 17409
  • Karma: 498
  • evil/good
    • View Profile
    • My Homepage
Re: Competition Intro Full Source Code.
« Reply #6 on: October 23, 2006 »
As you can see, it's precalculated :)
Shockwave ^ Codigos
Challenge Trophies Won:

Offline Rbz

  • Founder Member
  • DBF Aficionado
  • ********
  • Posts: 2757
  • Karma: 493
    • View Profile
    • https://www.rbraz.com/
Re: Competition Intro Full Source Code.
« Reply #7 on: October 23, 2006 »
Quote
Lol, sorry Rbraz, I think you can guess that the checking for "A" came because I used part of your framework for the new ptc lib  I did credit you for coding the lib of course

No, Shockie please, this was not my intention !  I just spotted that unused line  :D

Btw, it's not necessary to credit me for that, I know that you like this tool and this is all I need to know !  ;D
Challenge Trophies Won:

Offline Shockwave

  • good/evil
  • Founder Member
  • DBF Aficionado
  • ********
  • Posts: 17409
  • Karma: 498
  • evil/good
    • View Profile
    • My Homepage
Re: Competition Intro Full Source Code.
« Reply #8 on: October 24, 2006 »
The tool is a godsend mate :)

The source above is truncated apparently.. I'll fix that soon. Gotta go out tonight tho.
Shockwave ^ Codigos
Challenge Trophies Won:

Offline mind

  • Texture-San
  • DBF Aficionado
  • ******
  • Posts: 2324
  • Karma: 85
    • View Profile
    • boredom is a beatiful thing.
Re: Competition Intro Full Source Code.
« Reply #9 on: December 24, 2006 »
any place to find the actual exe? the routines look really sweet but i cant really watch any of it since i dont have a basic compiler.. >_<

karma up
Challenge Trophies Won:

Offline Shockwave

  • good/evil
  • Founder Member
  • DBF Aficionado
  • ********
  • Posts: 17409
  • Karma: 498
  • evil/good
    • View Profile
    • My Homepage
Re: Competition Intro Full Source Code.
« Reply #10 on: December 24, 2006 »
Thanks Mind:) You can find the exe here.. http://www.intro-inferno.com/production.php?id=1522 Hope you like it.
Shockwave ^ Codigos
Challenge Trophies Won: