Hi guys,
currently I'm playing around with a lot of sources I found here - as I'm pretty addicted to cool-looking text typer fx things I'm really interested in inproving one of shockwaves' (outstanding) code portions I found here.
I could imagine to build out this code here to a text fx library with a whole bunch of fx one could select.

For example zooming-in and out while building up a line of text or instantly sine-moving text like the one seen in the "Settler 7 cracktro" by Razor 1911 or a highly sophisticated text fx like in "Kings of the playground" ooooor (heaven forbid) the ones seen inf "Frameskool" in the upper left corner by Equinox

[youtube]http://www.youtube.com/watch?v=fW1L68u_exY[/youtube]
[youtube]http://www.youtube.com/watch?v=ogH_SBOWaGA[/youtube]
Could you guys try to explain me some of the fx seen or at least how I could realise a zooming to the existing source?
Many many thanks in advance.
Here's the code portion from shocky I found ... I just extended the screen dimensions a bit ... not more

' ALL VARIABLES MUST BE DECLARED.
' -------------------------------
OPTION STATIC
OPTION EXPLICIT
' SCREEN DIMENSIONS.
' ------------------
CONST XRES = 800:' WIDTH
CONST YRES = 600:' HEIGHT
'#define PTC_WIN
#INCLUDE "WINDOWS.BI"
#INCLUDE "TINYPTC.BI"
' "FLOATING TEXT" ROUTINE VARIABLES;
'-------------------------------------------------------------------------------
DIM SHARED LHORIZ = 80: ' WIDTH OF TEXT PAGES.
DIM SHARED LVERT = 20 :' HEIGHT OF TEXT PAGES.
DIM SHARED fontX = 8:
DIM SHARED fontY = 8:
DIM SHARED fontChars = 64:
DIM SHARED AS INTEGER DYN
DIM SHARED AS INTEGER scrdown
DIM SHARED AS DOUBLE LXT( LHORIZ * LVERT ):' TARGET X LOCATION FOR LETTER.
DIM SHARED AS DOUBLE LYT( LHORIZ * LVERT ):' TARGET Y LOCATION FOR LETTER.
DIM SHARED AS DOUBLE LXA( LHORIZ * LVERT ):' ACTUAL X LOCATION FOR LETTER.
DIM SHARED AS DOUBLE LYA( LHORIZ * LVERT ):' ACTUAL Y LOCATION FOR LETTER.
DIM SHARED AS UBYTE LYO( LHORIZ * LVERT ):' IS LETTER ACTIVE? ON=1 OFF=0
DIM SHARED AS STRING LYC( LHORIZ * LVERT ):' STORES THE LETTER.
DIM SHARED AS DOUBLE YSPD( LHORIZ * LVERT )
DIM SHARED AS DOUBLE XSPD( LHORIZ * LVERT )
DIM SHARED AS UINTEGER LLM: ' HOW MANY LETTERS ARE ON SCREEN ATM?
DIM SHARED AS UINTEGER LTM: ' TIMER (IN FRAMES) FOR NEXT LETTER.
DIM SHARED AS UBYTE CHECK_PLACEMENT=0
DIM SHARED TPP AS INTEGER
DIM SHARED TXT AS STRING
DIM SHARED AS DOUBLE HOLD_TIME
DIM SHARED AS DOUBLE GADD,GADD2,GADD3
DIM SHARED SINEADD AS INTEGER
DIM SHARED SINEADD2 AS INTEGER
'-------------------------------------------------------------------------------
' TEXT WRITER;
'-------------------------------------------------------------------------------
DECLARE SUB PRELOADGRID():' SET UP GRID POSITIONS FOR THE LETTERS.
DECLARE SUB RESETWRITER():' NEW TEXT PAGE FOR WRITER.
DECLARE SUB HYPERTEXTER():' THIS SUB DOES THE TEXT WRITER.
DECLARE SUB TEXT(BYVAL BX AS INTEGER , BYVAL BY AS INTEGER , BYVAL WW AS STRING , BYVAL WR AS INTEGER, BYVAL WG AS INTEGER, BYVAL WB AS INTEGER)
DECLARE SUB READFONT()
DIM SHARED AS UINTEGER FONT (8*8*64) ' FONT BUFFER
DIM SHARED AS UINTEGER BUFFER ( XRES * YRES )
'-------------------------------------------------------------------------------
' IMPORTANT!!!!! PLEASE MAKE SURE THAT YOU
' USE 80 CHARACTERS PER LINE!!!!!!!!!!!!
' YOU >>MUST<< FILL WITH SPACES TO MAKE
' SURE EACH LINE IS 80 CHARS WIDE......
' ALSO THERE ARE 20 LINES OF TEXT PER PAGE.
' DO NOT USE LESS OR MORE. THESE TEXT STRINGS
' HAVE TO BE KEPT THE SAME SIZE!!!!!!!!!!!!!!
' OTHERWISE IT WILL FUCK UP.
' I HAVE PUT THE SPACERS "|" AS A GUIDE FOR YOU
' LINE THEM UP WITH THE QUOTES AND YOU WON'T GO WRONG.
'-------------------------------------------------------------------------------
' |PAGE 1: |
TXT = ""
TXT = TXT+" ======================== "
TXT = TXT+" WHAT A WONDERFUL FLOATING TEXT FX "
TXT = TXT+" ============================================ "
TXT = TXT+" AS I REALLY LOVE THOSE TYPE OF EFFECTS, I WOULD LIKE TO HAVE AS MUCH DIFFERENT "
TXT = TXT+" TYPES OF FLOATING-IN AND FLOATING-OUT FX I COULD IMAGINE "
TXT = TXT+" "
TXT = TXT+" I COULD IMAGINE AN ADDITIONAL ZOOMING-IN "
TXT = TXT+" OF THE LETTERS WHILE BUILDING UP THE TEXT "
TXT = TXT+" OR EVEN ROTATING LETTERS OR "
TXT = TXT+" FALLING DOWN LETTERS OR SPRINGING LIKE A FOUNTAIN "
TXT = TXT+"--------------------------------------------------------------------------------"
TXT = TXT+" "
TXT = TXT+" UNFORTUNATELY I AM TOO DUMB FOR THAT "
TXT = TXT+" SO I'D APPRECIATE ANY HELP I COULD GET FROM YOU GUYS "
TXT = TXT+" "
TXT = TXT+" ERRRM DID I MENTION THAT THE WHOLE CODE FOR THE FX "
TXT = TXT+" YOU ARE CURRENTLY WATCHING "
TXT = TXT+" "
TXT = TXT+" HAS BEEN WRITTEN COMPLETELY BY SHOCKWAVE/CODIGOS AND NOT BY ME?! "
TXT = TXT+" BTW. PLEASE DON'T TAKE THE TEXT TOO SERIOUS AS I NEED TO FILL UP THIS PAGE "
' |PAGE 2: |
TXT = TXT+" "
TXT = TXT+" ****************************************************************** "
TXT = TXT+" ============================================ "
TXT = TXT+" "
TXT = TXT+" JUST A PLACEHOLDER PAGE BECAUSE AT THIS MOMENT I "
TXT = TXT+" "
TXT = TXT+" DUNNO WHAT TO WRITE HERE "
TXT = TXT+" "
TXT = TXT+" XXX XXX XXX "
TXT = TXT+" XXX XXX XXX "
TXT = TXT+" XXX XXX XXX "
TXT = TXT+" XXX XXX XXX "
TXT = TXT+" XXX XXX XXX "
TXT = TXT+" XXXX XXX XXXX "
TXT = TXT+" XXXX XXX XXXX "
TXT = TXT+" XXXXX XXX XXXXX "
TXT = TXT+" -------------------------------- "
TXT = TXT+" WHATEVER ... JUST PLACEHOLDING "
TXT = TXT+" "
TXT = TXT+" (CHICKEN)-WRAP DAT "
LLM=0
LTM=0
TPP=0
READFONT()
PRELOADGRID()
RESETWRITER()
If( PTC_OPEN( "TEXTWRITER", XRES, YRES ) = 0 ) Then
End -1
End If
WHILE(GETASYNCKEYSTATE(VK_ESCAPE) <> -32767)
HYPERTEXTER()
PTC_UPDATE @ BUFFER (0)
ERASE BUFFER
GADD=GADD+1
GADD2=GADD2+.0257
GADD3=GADD3+.04
WEND
'-------------------------------------------------------------------------------
' THE NICE WRITER;
'-------------------------------------------------------------------------------
SUB HYPERTEXTER()
DIM AS INTEGER A,CF
DIM AS DOUBLE FX,FY
DIM AS DOUBLE XDV
DIM AS DOUBLE YDV
XDV=37
YDV=45
'---------------------------------------------------------------------------
' DRAW THE ACTIVE LETTERS ON THE SCREEN;
'---------------------------------------------------------------------------
FOR A=0 TO LLM
IF INT(LXA(A))>-8 AND INT(LXA(A))<XRES AND INT(LYA(A))>-8 AND INT(LYA(A))<YRES THEN
TEXT(INT(LXA(A)),INT(LYA(A)),LYC(A),0,170,0)
END IF
NEXT
'---------------------------------------------------------------------------
' IF ALL LETTERS ARE NOT IN PLACE THEN WE NEED TO DO THE WRITER;
'---------------------------------------------------------------------------
if DYN >= 0 and DYN <= 180 then
DYN = DYN + 8
else
DYN = DYN - 8
end if
IF CHECK_PLACEMENT=0 THEN
'---------------------------------------------------------------------------
' THIS "FLOATING" POINT IS THE ORIGIN WHERE NEW LETTERS APPEAR FROM.
'---------------------------------------------------------------------------
FX = XRES/2 + (70*SIN(GADD2/ 7)+70*COS(GADD/9)+DYN*SIN(GADD3/6))
FY = YRES/2 + (70*SIN(GADD/ 6)+70*COS(GADD/31)+(DYN*2)*SIN(GADD /4))
IF LLM < (LHORIZ * LVERT) THEN
LLM = LLM + 1
LXA(LLM) = FX
LYA(LLM) = FY
LYO(LLM) = 0
END IF
FOR A=0 TO LLM
IF LXA(A)<>LXT(A) THEN
LXA(A)=LXA(A)+((LXT(A)-LXA(A))/XDV)
END IF
IF LYA(A)<>LYT(A) THEN
LYA(A)=LYA(A)+((LYT(A)-LYA(A))/YDV)
END IF
IF LXA(A)-LXT(A) >-.5 AND LXA(A)-LXT(A) <.5 THEN LXA(A)=LXT(A)
IF LYA(A)-LYT(A) >-.5 AND LYA(A)-LYT(A) <.5 THEN LYA(A)=LYT(A)
NEXT
END IF
'---------------------------------------------------------------------------
' CHECK IF ALL LETTERS ARE IN PLACE;
'---------------------------------------------------------------------------
IF LLM >= ( LHORIZ * LVERT ) AND CHECK_PLACEMENT=0 THEN
CF=1
FOR A = 1 TO LLM
IF LXA(A)<> LXT(A) OR LYA(A)<>LYT(A) THEN CF=0
NEXT
'---------------------------------------------------------------------------
' IF ALL LETTERS ARE IN PLACE BEGIN 8 SECOND COUNTDOWN
'---------------------------------------------------------------------------
IF CF=1 THEN
CHECK_PLACEMENT=1
HOLD_TIME = TIMER
END IF
END IF
'---------------------------------------------------------------------------
' IF ALL LETTERS ARE IN PLACE AND THE COUNTDOWN HAS PASSED 5 SECS WE NEED TO
' START GETTING RID OF THE LETTERS
'---------------------------------------------------------------------------
IF CHECK_PLACEMENT=1 AND TIMER-HOLD_TIME >=5.5 AND TIMER-HOLD_TIME <=6 THEN
FOR A=0 TO LLM
LYA(A)=LYA(A)+ (RND(1)-.5)
LXA(A)=LXA(A)+ (RND(1)-.5)
' IF YSPD(A)<12 THEN YSPD(A)=YSPD(A)+.2
NEXT
END IF
'---------------------------------------------------------------------------
' IF ALL LETTERS ARE IN PLACE AND THE COUNTDOWN HAS PASSED 5 SECS WE NEED TO
' START GETTING RID OF THE LETTERS
'---------------------------------------------------------------------------
IF CHECK_PLACEMENT=1 AND TIMER-HOLD_TIME >=6 THEN
FOR A=0 TO LLM
LYA(A)=LYA(A)+YSPD(A)
LXA(A)=LXA(A)+XSPD(A)
IF YSPD(A)<12 THEN YSPD(A)=YSPD(A)+.2
NEXT
END IF
'---------------------------------------------------------------------------
' GO TO NEXT PAGE IF COUNTDOWN>8 SECS AND LETTERS WERE IN PLACE.
'---------------------------------------------------------------------------
IF CHECK_PLACEMENT=1 AND TIMER-HOLD_TIME >=8 THEN
TPP=TPP+(LHORIZ*LVERT)
IF TPP>LEN(TXT)-(LHORIZ*LVERT) THEN TPP=0
RESETWRITER()
END IF
END SUB
'-------------------------------------------------------------------------------
' CLEAR OUT OLD TEXT AND SET UP NEW PAGE IN TEXT WRITER.
'-------------------------------------------------------------------------------
SUB RESETWRITER()
print len(TXT)
DIM AS INTEGER A,PS,T
'---------------------------------------------------------------------------
' BOING DETERMINES WHETHER WE GO BACKWARDS OR FORWARDS THRU THE STRING
' AS LETTES IN ALTERNATE LINES HAVE TO BE REVERSED DUE TO THE ORDER WE
' ACTIVATE THEM!
'---------------------------------------------------------------------------
DIM AS INTEGER BOING
BOING=0
PS=1+TPP
LLM=0
FOR A=1 TO ( LHORIZ * LVERT )
'-----------------------------------------------------------------------
' SET UP SOME SPEEDS FOR EXPLOSION WHEN TEXT SCREEN CHANGES
'-----------------------------------------------------------------------
YSPD(A)= (RND(1)*12)-9
XSPD(A)= (RND(1)*7)-3.5
'-----------------------------------------------------------------------
' TURN OFF THIS LETTER AND GET NEW CHARACTER
'-----------------------------------------------------------------------
LYO(A) = 0
LYC(A) = MID(TXT,PS,1)
'-----------------------------------------------------------------------
' CYCLE THROUGH STRING FORWARDS OR BACKWARDS
'-----------------------------------------------------------------------
IF BOING=0 THEN PS=PS+1
IF BOING=1 THEN PS=PS-1
'-----------------------------------------------------------------------
' WHEN WE HAVE CALCULATED ONE LINE, REVERSE DIRECTION.
'-----------------------------------------------------------------------
T=T+1
IF T>=LHORIZ THEN
T=0
BOING=BOING+1
IF BOING>1 THEN BOING=0
IF BOING=0 THEN PS=PS+(LHORIZ+1)
IF BOING=1 THEN PS=PS+(LHORIZ-1)
END IF
NEXT
'---------------------------------------------------------------------------
' LETTERS ARE NOW OUT OF PLACE, SO RESET THIS FLAG.
'---------------------------------------------------------------------------
CHECK_PLACEMENT=0
END SUB
'-------------------------------------------------------------------------------
' SET UP GRID TARGETS FOR LETTERS IN TYPER..
'-------------------------------------------------------------------------------
SUB PRELOADGRID()
DIM AS INTEGER TOP,LFT,A,T
DIM AS INTEGER TRACKX,TRACKY
DIM AS INTEGER BOING
BOING=0
TOP=XRES/4: '180:' TOP OF GRID.
LFT=0: '124:' LEFT OF GRID.
TRACKY=TOP
TRACKX=LFT
FOR A=1 TO ( LHORIZ * LVERT )
LXT(A) = TRACKX
LYT(A) = TRACKY
IF BOING=0 THEN TRACKX=TRACKX+10
IF BOING=1 THEN TRACKX=TRACKX-10
T=T+1
IF T>=LHORIZ THEN
T=0
BOING=BOING+1
IF BOING>1 THEN BOING=0
IF BOING=0 THEN TRACKX=TRACKX+10
IF BOING=1 THEN TRACKX=TRACKX-10
TRACKY=TRACKY+10
END IF
NEXT
END SUB
'
' Usage : TEXT ( X , Y , "YOUR TEXT" , R , G , B )
'
'
SUB TEXT(BYVAL BX AS INTEGER , BYVAL BY AS INTEGER , BYVAL WW AS STRING , BYVAL WR AS INTEGER , BYVAL WG AS INTEGER , BYVAL WB AS INTEGER)
WW = UCASE (WW)
DIM blx,bly as Uinteger
DIM as INTEGER STRX,STRY,TLP,TC,CH,TC2
DIM bm,mm
FOR TLP = 0 TO LEN(WW)
TC = RGB (WR, WG, WB)
CH = ASC(MID(WW,TLP,1))-31
IF CH<0 OR CH>64 THEN CH=0
IF CH > 0 THEN
'---------------------------------
'Calculate Offset In Font Data;---
'---------------------------------
bm=(ch*64)-64
STRY=BY
FOR BLY=0 TO 7
STRX=BX + ((TLP-1) * 9)
FOR BLX=1 TO 8
'--------
'Clip;---
'--------
'----------------------------------------------------
'Draw Pixel In Buffer If Onscreen And If Binary 1 ---
'----------------------------------------------------
MM= FONT((((BLY)*8)+(BLX))+BM)
IF (STRX>0) AND (STRX<XRES-3) and (STRY>0) AND (STRY<YRES-3)THEN
IF MM >0 THEN
BUFFER (((STRY)*XRES)+STRX) = TC
END IF
END IF
STRX=STRX+1
NEXT BLX
STRY=STRY+1
NEXT BLY
END IF
NEXT TLP
END SUB
SUB READFONT()
DIM lp
RESTORE typerfont
FOR LP=1 TO (8*8*64)
READ FONT(LP)
NEXT
END SUB
typerfont:
'space
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
'!
data 0,0,0,1,1,1,0,0
data 0,0,0,1,1,1,0,0
data 0,0,0,1,1,1,0,0
data 0,0,0,1,1,1,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,1,1,1,0,0
data 0,0,0,1,1,1,0,0
data 0,0,0,1,1,1,0,0
' "
data 0,1,1,1,0,1,1,1
data 0,1,1,1,0,1,1,1
data 0,1,1,1,0,1,1,1
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
' #
data 0,0,0,0,0,0,0,0
data 0,1,1,1,0,1,1,0
data 1,1,1,1,1,1,1,1
data 0,1,1,1,0,1,1,0
data 0,1,1,1,0,1,1,0
data 1,1,1,1,1,1,1,1
data 0,1,1,1,0,1,1,0
data 0,0,0,0,0,0,0,0
' $ = £
data 0,0,1,1,1,1,1,0
data 0,1,1,1,0,1,1,1
data 1,1,1,1,1,0,0,0
data 0,1,1,1,0,0,0,0
data 0,1,1,1,0,0,0,0
data 0,1,1,1,0,0,0,0
data 0,1,1,1,0,0,0,0
data 1,1,1,1,1,1,1,1
' %
data 0,0,0,0,0,0,0,0
data 0,1,1,0,0,1,1,1
data 0,1,1,0,1,1,1,0
data 0,0,0,1,1,1,0,0
data 0,0,1,1,1,0,0,0
data 0,1,1,1,0,1,1,0
data 1,1,1,0,0,1,1,0
data 0,0,0,0,0,0,0,0
' & = O
data 0,0,0,1,1,0,0,0
data 0,1,1,1,1,1,1,0
data 0,1,1,1,1,1,1,0
data 1,1,1,1,1,1,1,1
data 1,1,1,1,1,1,1,1
data 0,1,1,1,1,1,1,0
data 0,1,1,1,1,1,1,0
data 0,0,0,1,1,0,0,0
' '
data 0,0,0,1,1,1,0,0
data 0,0,0,1,1,1,0,0
data 0,0,0,1,1,1,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
' (
data 0,0,1,1,1,1,0,0
data 0,1,1,1,1,0,0,0
data 0,1,1,1,0,0,0,0
data 0,1,1,1,0,0,0,0
data 0,1,1,1,0,0,0,0
data 0,1,1,1,0,0,0,0
data 0,1,1,1,1,0,0,0
data 0,0,1,1,1,1,0,0
' )
data 0,0,1,1,1,1,0,0
data 0,0,0,1,1,1,1,0
data 0,0,0,0,1,1,1,0
data 0,0,0,0,1,1,1,0
data 0,0,0,0,1,1,1,0
data 0,0,0,0,1,1,1,0
data 0,0,0,1,1,1,1,0
data 0,0,1,1,1,1,0,0
' *
data 0,0,0,0,0,0,0,0
data 0,1,0,1,1,0,1,0
data 0,0,1,1,1,1,0,0
data 0,1,1,1,1,1,1,0
data 0,1,1,1,1,1,1,0
data 0,0,1,1,1,1,0,0
data 0,1,0,1,1,0,1,0
data 0,0,0,0,0,0,0,0
' +
data 0,0,0,0,0,0,0,0
data 0,0,0,1,1,0,0,0
data 0,0,0,1,1,0,0,0
data 0,1,1,1,1,1,1,0
data 0,1,1,1,1,1,1,0
data 0,0,0,1,1,0,0,0
data 0,0,0,1,1,0,0,0
data 0,0,0,0,0,0,0,0
' ,
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,1,1,1,0,0
data 0,0,0,1,1,1,0,0
data 0,0,1,1,1,1,0,0
' -
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,1,1,1,1,1,1,0
data 0,1,1,1,1,1,1,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
' .
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,1,1,0,0,0
data 0,0,0,1,1,0,0,0
' /
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,1,1,1
data 0,0,0,0,1,1,1,0
data 0,0,0,1,1,1,0,0
data 0,0,1,1,1,0,0,0
data 0,1,1,1,0,0,0,0
data 1,1,1,0,0,0,0,0
data 0,0,0,0,0,0,0,0
'0
data 0,1,1,1,1,1,1,0
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,1,0,1,1,1
data 1,1,1,0,1,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 0,1,1,1,1,1,1,0
'1
data 0,0,0,1,1,1,0,0
data 0,0,1,1,1,1,0,0
data 0,0,1,1,1,1,0,0
data 0,0,0,1,1,1,0,0
data 0,0,0,1,1,1,0,0
data 0,0,0,1,1,1,0,0
data 0,0,0,1,1,1,0,0
data 0,0,1,1,1,1,1,0
'2
data 0,0,1,1,1,1,1,0
data 0,1,1,1,0,1,1,1
data 0,0,0,0,0,1,1,1
data 0,1,1,1,1,1,1,0
data 1,1,1,0,0,0,0,0
data 1,1,1,0,0,0,0,0
data 1,1,1,0,0,0,1,1
data 1,1,1,1,1,1,1,1
'3
data 0,1,1,1,1,1,1,0
data 1,1,1,0,0,1,1,1
data 0,0,0,0,1,1,1,0
data 0,0,0,0,0,1,1,1
data 0,0,0,0,0,1,1,1
data 0,0,0,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 0,1,1,1,1,1,1,0
'4
data 1,1,1,0,1,1,1,0
data 1,1,1,0,1,1,1,0
data 0,1,1,1,1,1,1,1
data 0,0,1,1,1,0,0,0
data 0,0,1,1,1,0,0,0
data 0,0,1,1,1,0,0,0
data 0,0,1,1,1,0,0,0
data 0,0,1,1,1,0,0,0
'5
data 1,1,1,1,1,1,1,0
data 1,1,1,0,1,1,1,0
data 1,1,1,0,0,0,0,0
data 0,1,1,1,1,1,1,0
data 0,0,0,0,0,1,1,1
data 0,0,0,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 0,1,1,1,1,1,1,0
'6
data 1,1,0,0,0,0,0,0
data 1,1,0,0,0,0,0,0
data 1,1,0,0,0,0,0,0
data 1,1,1,1,1,1,1,0
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 0,1,1,1,1,1,1,0
'7
data 1,1,1,1,1,1,1,0
data 1,1,1,0,0,1,1,1
data 0,0,0,0,1,1,1,1
data 0,0,0,0,0,1,1,1
data 0,0,0,0,0,1,1,1
data 0,0,0,0,0,1,1,1
data 0,0,0,0,0,1,1,1
data 0,0,0,0,0,1,1,1
'8
data 0,1,1,1,1,1,1,0
data 1,1,1,0,0,1,1,1
data 0,1,1,1,1,1,1,0
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 0,1,1,1,1,1,1,0
'9
data 0,1,1,1,1,1,1,1
data 1,1,0,0,0,1,1,1
data 0,1,1,1,1,1,1,1
data 0,0,0,0,0,1,1,1
data 0,0,0,0,0,1,1,1
data 0,0,0,0,0,1,1,1
data 0,0,0,0,0,1,1,1
data 0,0,0,0,0,1,1,1
' :
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,1,1,1,0,0
data 0,0,0,1,1,1,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,1,1,1,0,0
data 0,0,0,1,1,1,0,0
data 0,0,1,1,1,1,0,0
' ;
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,1,1,1,0,0
data 0,0,0,1,1,1,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,1,1,1,0,0
data 0,0,0,1,1,1,0,0
data 0,0,0,1,1,1,0,0
' <
data 0,0,0,0,0,0,0,0
data 0,0,1,1,1,0,0,0
data 0,1,1,1,0,0,0,0
data 1,1,1,0,0,0,0,0
data 1,1,1,0,0,0,0,0
data 0,1,1,1,0,0,0,0
data 0,0,1,1,1,0,0,0
data 0,0,0,0,0,0,0,0
' =
data 0,0,0,0,0,0,0,0
data 0,0,1,1,1,1,0,0
data 0,0,1,1,1,1,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,1,1,1,1,0,0
data 0,0,1,1,1,1,0,0
data 0,0,0,0,0,0,0,0
' >
data 0,0,0,0,0,0,0,0
data 0,0,0,1,1,1,0,0
data 0,0,0,0,1,1,1,0
data 0,0,0,0,0,1,1,1
data 0,0,0,0,0,1,1,1
data 0,0,0,0,1,1,1,0
data 0,0,0,1,1,1,0,0
data 0,0,0,0,0,0,0,0
' ?
data 0,1,1,1,1,1,1,0
data 1,1,1,0,0,1,1,1
data 0,0,0,1,1,1,1,0
data 0,0,0,1,1,1,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,1,1,1,0,0
data 0,0,0,1,1,1,0,0
data 0,0,0,1,1,1,0,0
' @
data 0,0,0,0,0,0,0,0
data 0,0,1,1,1,1,0,0
data 0,1,1,0,0,1,1,0
data 0,1,0,1,1,0,1,0
data 0,1,0,0,0,0,1,0
data 0,1,0,1,1,0,1,0
data 0,0,1,1,1,1,0,0
data 0,0,0,0,0,0,0,0
'[]\^_?@
'A
data 0,1,1,1,1,1,1,0
data 1,1,1,0,0,1,1,1
data 1,1,1,1,1,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
'B
data 1,1,1,1,1,1,1,0
data 1,1,1,0,0,1,1,1
data 1,1,1,1,1,1,1,0
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,1,1,1,1,0
'C
data 0,1,1,1,1,1,1,0
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,0,0,0
data 1,1,1,0,0,0,0,0
data 1,1,1,0,0,0,0,0
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 0,1,1,1,1,1,1,0
'D
data 1,1,1,1,1,1,1,0
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,1,1,1,1,0
'E
data 0,1,1,1,1,1,1,0
data 1,1,1,0,0,1,1,1
data 1,1,1,1,0,0,0,0
data 1,1,1,0,0,0,0,0
data 1,1,1,0,0,0,0,0
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 0,1,1,1,1,1,1,0
'F
data 0,1,1,1,1,1,1,0
data 1,1,1,0,0,1,1,1
data 1,1,1,1,0,0,0,0
data 1,1,1,0,0,0,0,0
data 1,1,1,0,0,0,0,0
data 1,1,1,0,0,0,0,0
data 1,1,1,0,0,0,0,0
data 1,1,1,0,0,0,0,0
'G
data 0,1,1,1,1,1,1,0
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,0,0,0
data 1,1,1,0,0,0,0,0
data 1,1,1,0,1,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 0,1,1,1,1,1,1,0
'H
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,1,1,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
'I
data 0,1,1,1,1,1,0,0
data 0,0,1,1,1,0,0,0
data 0,0,1,1,1,0,0,0
data 0,0,1,1,1,0,0,0
data 0,0,1,1,1,0,0,0
data 0,0,1,1,1,0,0,0
data 0,0,1,1,1,0,0,0
data 0,1,1,1,1,1,0,0
'J
data 0,1,1,1,1,1,1,1
data 1,1,1,0,0,1,1,1
data 0,0,0,0,0,1,1,1
data 0,0,0,0,0,1,1,1
data 1,1,1,1,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 0,1,1,1,1,1,1,0
'K
data 1,1,1,0,1,1,1,0
data 1,1,1,0,1,1,1,0
data 1,1,1,1,1,1,0,0
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
'L
data 1,1,1,0,0,0,0,0
data 1,1,1,0,0,0,0,0
data 1,1,1,0,0,0,0,0
data 1,1,1,0,0,0,0,0
data 1,1,1,0,0,0,0,0
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 0,1,1,1,1,1,1,0
'M
data 0,1,1,0,1,1,1,0
data 1,1,1,1,1,1,1,1
data 1,1,1,1,0,1,1,1
data 1,1,1,1,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
'N
data 1,1,1,1,1,1,1,0
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
'O
data 0,1,1,1,1,1,1,0
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 0,1,1,1,1,1,1,0
'P
data 1,1,1,1,1,1,1,0
data 1,1,1,0,0,1,1,1
data 1,1,1,1,1,1,1,0
data 1,1,1,0,0,0,0,0
data 1,1,1,0,0,0,0,0
data 1,1,1,0,0,0,0,0
data 1,1,1,0,0,0,0,0
data 1,1,1,0,0,0,0,0
'Q
data 0,1,1,1,1,1,1,0
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,1,0,1,1
data 1,1,1,0,1,1,0,1
data 1,1,1,0,0,1,1,0
data 0,1,1,1,1,1,1,0
'R
data 1,1,1,1,1,1,1,0
data 1,1,1,0,0,1,1,1
data 1,1,1,1,1,1,1,0
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
'S
data 0,1,1,1,1,1,1,0
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,0,0,0
data 0,1,1,1,1,1,1,0
data 0,0,0,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 0,1,1,1,1,1,1,0
'T
data 1,1,1,1,1,1,1,0
data 0,0,1,1,1,0,0,0
data 0,0,1,1,1,0,0,0
data 0,0,1,1,1,0,0,0
data 0,0,1,1,1,0,0,0
data 0,0,1,1,1,0,0,0
data 0,0,1,1,1,0,0,0
data 0,0,1,1,1,0,0,0
'U
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 0,1,1,1,1,1,1,0
'V
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 0,1,1,0,0,1,1,0
data 0,0,1,1,1,1,0,0
'W
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,1,0,1,1,1
data 1,1,1,1,0,1,1,1
data 1,1,1,1,0,1,1,1
data 0,1,1,1,1,1,1,0
'X
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 0,1,1,1,1,1,1,0
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
'Y
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 0,1,1,1,1,1,1,1
data 0,0,0,0,0,1,1,1
data 0,0,0,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 0,1,1,1,1,1,1,0
'Z
data 0,1,1,1,1,1,1,1
data 1,1,1,0,0,1,1,1
data 0,0,0,0,0,1,1,1
data 0,1,1,1,1,1,1,0
data 1,1,1,0,0,0,0,0
data 1,1,1,0,0,0,0,0
data 1,1,1,0,0,1,1,1
data 1,1,1,1,1,1,1,0
'[
data 1,1,1,1,0,0,0,0
data 1,1,1,0,0,0,0,0
data 1,1,1,0,0,0,0,0
data 1,1,1,0,0,0,0,0
data 1,1,1,0,0,0,0,0
data 1,1,1,0,0,0,0,0
data 1,1,1,0,0,0,0,0
data 1,1,1,1,0,0,0,0
'\
data 1,1,0,0,0,0,0,0
data 1,1,1,0,0,0,0,0
data 0,1,1,1,0,0,0,0
data 0,0,1,1,1,0,0,0
data 0,0,0,1,1,1,0,0
data 0,0,0,0,1,1,1,0
data 0,0,0,0,0,1,1,1
data 0,0,0,0,0,0,1,1
']
data 0,0,0,0,1,1,1,1
data 0,0,0,0,0,1,1,1
data 0,0,0,0,0,1,1,1
data 0,0,0,0,0,1,1,1
data 0,0,0,0,0,1,1,1
data 0,0,0,0,0,1,1,1
data 0,0,0,0,0,1,1,1
data 0,0,0,0,1,1,1,1
'^
data 0,0,0,1,1,0,0,0
data 0,0,1,1,1,1,0,0
data 0,1,1,0,0,1,1,0
data 1,1,1,0,0,1,1,1
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
'_
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,1,1,1,1,1,1,0