'TITLE: CHARACTER DESIGNER 'AUTHOR: TIMO KLOSS 'EDIT: MRLEGOBOY '====================== '** RAM MAP ** '$A000 - USER CHARS '$D022 - TEMP '====================== DIM GLOBAL PIC(7,7) C=0 DIM GLOBAL PXL(15,15) DIM GLOBAL MENU$(4) GLOBAL CHARSFILE,FILESOFFS GLOBAL SELCHAR,SELPAGE,SELCOLOR GLOBAL HIDECOUNT,CHAROFFSET 'UI COLORS 'PALETTE 0 'BIG PIXEL COLORS (GRID AND FILL) 'PALETTE 1 'CHARACTER COLORS 'PALETTE 5 'LOAD MAIN CHARACTERS CHARSFILE=2 FILESOFFS=0 OK=0 R=0 CALL BLOAD(OK) '==== TOUCH ZONES INIT ==== 'SETTINGS GLOBAL MAX_ZONE, ZONE_PAL 'STATUS GETTERS GLOBAL CURZONE, ZONE_EVENT, ZONE_IN_X, ZONE_IN_Y, ZONE_RESULT 'INTERNAL GLOBAL ZONE_LAST_X, ZONE_LAST_Y GLOBAL E_DOWN, E_UP, E_OUT, E_DRAG E_DOWN=1 E_UP=2 E_OUT=3 E_DRAG=4 MAX_ZONE=19 DIM GLOBAL ZONEX(MAX_ZONE), ZONEY(MAX_ZONE), ZONEW(MAX_ZONE), ZONEH(MAX_ZONE), ZONEP(MAX_ZONE) TOUCHSCREEN '================================= MAINRESET: SELCHAR=1 SELPAGE=0 SELCOLOR=1 SELFONT=0 MAIN: CALL RESETZONES HIDECOUNT=0 CALL READCHAR CALL READPAGE CALL DRAWUI ZONE_PAL=-1 CALL SETZONE(0,1,2,8,8) CALL SETZONE(1,10,2,2,8) CALL SETZONE(2,1,11,16,4) ZONE_PAL=7 CALL SETZONE(3,17,11,2,2) CALL SETZONE(4,17,13,2,2) CALL SETZONE(9,15,2,2,2) CALL SETZONE(10,15,4,2,2) CALL SETZONE(11,15,6,2,2) CALL SETZONE(12,15,8,2,2) CALL SETZONE(13,17,2,2,2) CALL SETZONE(14,17,4,2,2) CALL SETZONE(15,17,6,2,2) CALL SETZONE(16,17,8,2,2) CALL SETZONE(17,13,2,2,2) CALL SETZONE(18,13,4,2,2) CALL SETZONE(19,13,6,2,2) DO CALL UPDATEZONES IF ZONE_EVENT=E_DOWN OR ZONE_EVENT=E_DRAG THEN IF CURZONE=0 THEN PXL(ZONE_IN_X,ZONE_IN_Y)=SELCOLOR ATTR (SELCOLOR+1,0) CELL ZONE_LAST_X,ZONE_LAST_Y,16 CALL WRITECHAR END IF IF CURZONE=1 THEN SELCOLOR=ZONE_IN_Y\2 CALL DRAWSELCOLOR(10,2) END IF IF CURZONE=2 THEN SELCHAR=(ZONE_IN_Y*16)+ZONE_IN_X+SELPAGE*64 CALL READCHAR CALL DRAWCHAR CALL DRAWCHARNUM END IF END IF IF ZONE_EVENT=E_DOWN THEN IF CURZONE=3 AND SELPAGE>0 THEN SELPAGE=SELPAGE-1 CALL READPAGE CALL DRAWCHARNUM END IF IF CURZONE=4 AND SELPAGE<3 THEN SELPAGE=SELPAGE+1 CALL READPAGE CALL DRAWCHARNUM END IF END IF IF ZONE_EVENT=E_UP THEN IF CURZONE=9 THEN CALL BCLEAR IF CURZONE=10 THEN CALL BCUT IF CURZONE=11 THEN CALL BCOPY IF CURZONE=12 THEN CALL BPASTE IF CURZONE=13 THEN GOTO DISKMENU IF CURZONE=14 THEN GOTO BIGEDITOR IF CURZONE=15 THEN MENU$(0)="NORMAL" MENU$(1)="OPAQUE" MENU$(2)="OUTLINE" MENU$(3)="SHADOW" MENU$(4)="CANCEL" CALL SHOWMENU("LOAD FONT?",4,R) IF R=4 THEN CALL DRAWUI ELSE CALL BFONT(R) END IF END IF IF CURZONE=17 THEN FOR Y=0 TO 7 FOR X= 0 TO 3 SWAP PXL(X,Y),PXL(7-X,Y) NEXT X NEXT Y CALL WRITECHAR CALL DRAWCHAR END IF IF CURZONE=18 THEN FOR X=0 TO 7 FOR Y= 0 TO 3 SWAP PXL(X,Y),PXL(X,7-Y) NEXT Y NEXT X CALL WRITECHAR CALL DRAWCHAR END IF IF CURZONE=19 THEN FOR X=0 TO 7 FOR Y=X+1 TO 7 SWAP PXL(X,Y),PXL(Y,X) NEXT Y NEXT X FOR X=0 TO 7 FOR Y= 0 TO 3 SWAP PXL(X,Y),PXL(X,7-Y) NEXT Y NEXT X CALL WRITECHAR CALL DRAWCHAR END IF IF CURZONE=16 THEN MENU$(0)="CLEAR" MENU$(1)="CANCEL" CALL SHOWMENU("CLEAR ALL?",1,R) IF R=0 THEN CALL BNEW GOTO MAINRESET ELSE CALL DRAWUI END IF END IF END IF IF HIDECOUNT>0 THEN HIDECOUNT=HIDECOUNT-1 IF HIDECOUNT=0 THEN CALL HIDESELCHAR END IF WAIT VBL LOOP SUB DRAWUI BG SOURCE ROM(3) BG COPY 0,0,20,16 TO 0,0 ATTR (7,0,0,0,0) TEXT 0,0," CHARACTER DESIGNER " SPRITE.A 0,(6,0,0,0,0) SPRITE.A 1,(6,1,0,0,0) SPRITE.A 2,(6,0,1,0,0) SPRITE.A 3,(6,1,1,0,0) SPRITE.A 4,(6,0,0,0,0) SPRITE.A 5,(6,1,0,0,0) SPRITE.A 6,(6,0,1,0,0) SPRITE.A 7,(6,1,1,0,0) CALL DRAWCHAR CALL DRAWCOLORS(10,2) CALL DRAWSELCOLOR(10,2) CALL DRAWCHARNUM CALL DRAWPAGE END SUB SUB DRAWCHAR FOR PY=0 TO 7 FOR PX=0 TO 7 ATTR (PXL(PX,PY)+1,0) CELL PX+1,PY+2,16 NEXT PX NEXT PY END SUB SUB DRAWCOLORS(X,Y) FOR CI=0 TO 3 ATTR (CI+1) BG FILL X,Y+CI*2 TO X+1,Y+1+CI*2 CHAR 192 NEXT CI END SUB SUB DRAWSELCOLOR(X,Y) SX=X*8 SY=Y*8+SELCOLOR*2*8 SPRITE 4,SX,SY,36 SPRITE 5,SX+8,SY,36 SPRITE 6,SX,SY+8,36 SPRITE 7,SX+8,SY+8,36 END SUB SUB DRAWCHARNUM ATTR (0) BG FILL 0,15 TO 19,15 CHAR 192 TEXT 1,15,"#" NUMBER 2,15,SELCHAR,3 NUMBER 14,15,SELPAGE+1,1 TEXT 15,15,"/4" IF SELCHAR>=SELPAGE*64 AND SELCHAR=SELPAGE*64 AND C<(SELPAGE+1)*64 THEN COPY $A000+C*16,16 TO $8800+(C MOD 64)*16 END IF END SUB SUB READCHAR CALL READCHARNUM(0,0) END SUB SUB READCHARNUM(CX,CY) AD=$A000+(SELCHAR+CX+CY*16)*16 FOR PY=0 TO 7 FOR PX=0 TO 7 BV=2^(7-PX) PV=0 IF PEEK(AD) AND BV THEN PV=1 IF PEEK(AD+8) AND BV THEN PV=PV+2 PXL(PX+CX*8,PY+CY*8)=PV NEXT PX AD=AD+1 NEXT PY END SUB SUB BCLEAR FOR PY=0 TO 7 FOR PX=0 TO 7 PXL(PX,PY)=SELCOLOR NEXT PX NEXT PY CALL WRITECHAR CALL DRAWCHAR CALL CHAR2PAGE END SUB SUB BCUT AD=$A000+SELCHAR*16 COPY AD,16 TO $B000 FILL AD,16,0 CALL READCHAR CALL DRAWCHAR CALL CHAR2PAGE END SUB SUB BCOPY AD=$A000+SELCHAR*16 COPY AD,16 TO $B000 END SUB SUB BPASTE AD=$A000+SELCHAR*16 COPY $B000,16 TO AD CALL READCHAR CALL DRAWCHAR CALL CHAR2PAGE END SUB SUB BFONT(N) COPY ROM(10)+N*$400,$400 TO $A000+SELPAGE*$400 CALL READCHAR CALL READPAGE CALL DRAWUI END SUB SUB BNEW FILL $A000,$1000,0 CHARSFILE=-1 END SUB '=================================== BIGEDITOR: IF SELCHAR MOD 16>14 THEN SELCHAR=SELCHAR-1 IF (SELCHAR MOD 64)\16>2 THEN SELCHAR=SELCHAR-16 CHAROFFSET=MIN(12,SELCHAR MOD 16) HIDECOUNT=0 CALL READCHARBIG CALL DRAWUIBIG CALL RESETZONES ZONE_PAL=-1 CALL SETZONE(0,0,0,16,16) CALL SETZONE(1,17,3,2,8) CALL SETZONE(2,16,12,4,4) ZONE_PAL=7 CALL SETZONE(3,17,0,2,2) DO CALL UPDATEZONES IF ZONE_EVENT=E_DOWN OR ZONE_EVENT=E_DRAG THEN IF CURZONE=0 THEN PXL(ZONE_IN_X,ZONE_IN_Y)=SELCOLOR ATTR (SELCOLOR+1,0) CELL ZONE_LAST_X,ZONE_LAST_Y,16 CALL WRITECHARBIG END IF IF CURZONE=1 THEN SELCOLOR=ZONE_IN_Y\2 CALL DRAWSELCOLOR(17,3) END IF IF CURZONE=2 THEN SX=MAX(0,MIN(2,ZONE_IN_X-1)) SY=MAX(0,MIN(2,ZONE_IN_Y-1)) SELCHAR=(SY*16)+SX+SELPAGE*64+CHAROFFSET CALL READCHARBIG CALL DRAWCHARBIG CALL DRAWCHARNUMBIG END IF END IF IF ZONE_EVENT=E_UP THEN IF CURZONE=3 THEN GOTO MAIN END IF IF HIDECOUNT>0 THEN HIDECOUNT=HIDECOUNT-1 IF HIDECOUNT=0 THEN CALL HIDESELCHAR END IF WAIT VBL LOOP SUB DRAWUIBIG ATTR (0,0,0,0) BG SOURCE ROM(5) BG COPY 0,0,20,16 TO 0,0 CALL DRAWCHARBIG CALL DRAWCOLORS(17,3) CALL DRAWSELCOLOR(17,3) CALL DRAWPAGEBIG CALL DRAWCHARNUMBIG END SUB SUB DRAWCHARBIG FOR PY=0 TO 15 FOR PX=0 TO 15 ATTR (PXL(PX,PY)+1,0) CELL PX,PY,16 NEXT PX NEXT PY END SUB SUB READCHARBIG CALL READCHARNUM(0,0) CALL READCHARNUM(1,0) CALL READCHARNUM(0,1) CALL READCHARNUM(1,1) END SUB SUB WRITECHARBIG CALL WRITECHARNUM(0,0) CALL WRITECHARNUM(1,0) CALL WRITECHARNUM(0,1) CALL WRITECHARNUM(1,1) CALL CHAR2PAGENUM(SELCHAR) CALL CHAR2PAGENUM(SELCHAR+1) CALL CHAR2PAGENUM(SELCHAR+16) CALL CHAR2PAGENUM(SELCHAR+17) END SUB SUB DRAWPAGEBIG ATTR (5) CI=128+CHAROFFSET FOR CY=12 TO 15 FOR CX=16 TO 19 CELL CX,CY,CI CI=CI+1 NEXT CX CI=CI+12 NEXT CY END SUB SUB DRAWCHARNUMBIG N=SELCHAR MOD 64 SX=128+((N-CHAROFFSET) MOD 16)*8 SY=96+(N\16)*8 SPRITE 0,SX-1,SY-1,36 SPRITE 1,SX+9,SY-1,36 SPRITE 2,SX-1,SY+9,36 SPRITE 3,SX+9,SY+9,36 HIDECOUNT=60 END SUB '=================================== DISKMENU: FILES CALL DRAWDISKMENU CALL RESETZONES ZONE_PAL=-1 CALL SETZONE(0,0,2,18,10) ZONE_PAL=7 CALL SETZONE(1,18,2,2,2) CALL SETZONE(2,18,10,2,2) CALL SETZONE(3,1,13,2,2) CALL SETZONE(4,15,13,2,2) CALL SETZONE(5,17,13,2,2) DO CALL UPDATEZONES IF ZONE_EVENT=E_DOWN OR ZONE_EVENT=E_DRAG THEN IF CURZONE=0 THEN CHARSFILE=ZONE_IN_Y+FILESOFFS CALL DRAWFILES END IF END IF IF ZONE_EVENT=E_DOWN THEN IF CURZONE=1 THEN FILESOFFS=0 CALL DRAWFILES END IF IF CURZONE=2 THEN FILESOFFS=6 CALL DRAWFILES END IF END IF IF ZONE_EVENT=E_UP THEN IF CURZONE=3 THEN GOTO MAIN IF CURZONE=4 THEN OK=0 CALL BLOAD(OK) IF OK THEN GOTO MAINRESET END IF IF CURZONE=5 THEN OK=0 CALL BSAVE(OK) IF OK THEN GOTO MAIN END IF END IF WAIT VBL LOOP SUB DRAWDISKMENU BG SOURCE ROM(4) BG COPY 0,0,20,16 TO 0,0 ATTR (7,0,0,0) TEXT 0,0," DISK MENU " SPRITE OFF CALL DRAWFILES END SUB SUB DRAWFILES FOR I=0 TO 9 N=I+FILESOFFS IF N=CHARSFILE THEN ATTR (7) ELSE ATTR (0) NUMBER 0,2+I,N,2 TEXT 2,2+I,": " TEXT 3,2+I,LEFT$(FILE$(N),17) NEXT I END SUB SUB BLOAD(OK) OK=0 IF CHARSFILE=-1 THEN CALL SHOWMESSAGE("SELECT FILE") EXIT SUB END IF FILL $A000,$1000,0 LOAD CHARSFILE,$A000 OK=-1 END SUB SUB BSAVE(OK) IF CHARSFILE=-1 THEN CALL SHOWMESSAGE("SELECT FILE") EXIT SUB END IF 'FIND LAST USED CHARACTER N=0 I=255 REPEAT A=$A000+I*16 FOR J=0 TO 15 IF PEEK(A+J)<>0 THEN N=I+1 NEXT J I=I-1 IF I<0 THEN N=1 UNTIL N<>0 F$=FILE$(CHARSFILE) IF F$="" THEN F$="CHARACTERS" SAVE CHARSFILE,F$,$A000,N*16 CALL DRAWFILES CALL SHOWMESSAGE("SAVED") OK=-1 END SUB '=================================== SUB SHOWMESSAGE(MSG$) COPY $9000,$800 TO $D022 ATTR (7) BG FILL 0,0 TO 19,0 CHAR 192 TEXT 0,0,MSG$ WAIT 60 COPY $D022,$800 TO $9000 END SUB SUB SHOWMENU(MSG$,MAXI,RESULT) ATTR (7,0,0,1) BG FILL 0,0 TO 19,0 CHAR 192 TEXT (20-LEN(MSG$))/2,0,MSG$ ATTR (0) FOR I=0 TO MAXI CALL DRAWBUTTON(MENU$(I),0,1+I*3,19,3+I*3) NEXT I WHILE TOUCH WAIT VBL WEND DO IF TOUCH THEN I=((TOUCH.Y\8)-1)\3 IF I<=MAXI THEN CALL HIGHLIGHT(0,1+I*3,19,3+I*3) WHILE TOUCH WAIT VBL WEND RESULT=I GOTO EXITMENU END IF END IF WAIT VBL LOOP EXITMENU: END SUB SUB DRAWBUTTON(T$,X1,Y1,X2,Y2) ATTR (0) BG FILL X1,Y1 TO X2,Y2 CHAR 1 BG FILL X1,Y1 TO X2,Y1 CHAR 3 BG FILL X1,Y2 TO X2,Y2 CHAR 5 TEXT (X1+X2+1-LEN(T$))/2,Y1+1,T$ END SUB SUB HIGHLIGHT(X1,Y1,X2,Y2) ATTR (7),%00000111 BG FILL X1,Y1 TO X2,Y2 END SUB '==== TOUCH ZONES SUBPROGRAMS ==== SUB SETZONE(N,X,Y,W,H) ZONEX(N)=X ZONEY(N)=Y ZONEW(N)=W ZONEH(N)=H IF ZONE_PAL>=0 AND ZONE_PAL<8 THEN 'HIGHLIGHT AND NORMAL PALETTE P=CELL.A(X,Y) AND %111 ZONEP(N)=(ZONE_PAL*16)+P ELSE 'NO HIGHLIGHT ZONEP(N)=$FF END IF END SUB SUB CLEARZONE(N) CALL SETZONE(N,0,0,0,0) END SUB SUB RESETZONES FOR I=0 TO MAX_ZONE CALL CLEARZONE(I) NEXT I CURZONE=-1 ZONE_PAL=-1 END SUB SUB UPDATEZONES CX=TOUCH.X\8 CY=TOUCH.Y\8 IF ZONE_EVENT=E_UP OR ZONE_EVENT=E_OUT THEN CURZONE=-1 ZONE_EVENT=0 IF CURZONE>=0 THEN CALL INSIDEZONE(CURZONE,CX,CY) IF ZONE_RESULT THEN ZONE_IN_X=CX-ZONEX(CURZONE) ZONE_IN_Y=CY-ZONEY(CURZONE) IF NOT TOUCH THEN CALL PAINTZONE(CURZONE,0) ZONE_EVENT=E_UP ELSE IF CX<>ZONE_LAST_X OR CY<>ZONE_LAST_Y THEN ZONE_EVENT=E_DRAG END IF ELSE CALL PAINTZONE(CURZONE,0) ZONE_EVENT=E_OUT END IF ELSE IF TAP THEN FOR I=0 TO MAX_ZONE IF ZONEW(I)>0 THEN CALL INSIDEZONE(I,CX,CY) IF ZONE_RESULT THEN ZONE_EVENT=E_DOWN CURZONE=I ZONE_IN_X=CX-ZONEX(I) ZONE_IN_Y=CY-ZONEY(I) CALL PAINTZONE(I,1) END IF END IF NEXT I END IF ZONE_LAST_X=CX ZONE_LAST_Y=CY END SUB SUB INSIDEZONE(N,CX,CY) ZONE_RESULT=(CX>=ZONEX(N) AND CX=ZONEY(N) AND CY$FF THEN IF SEL THEN P=P\16 ELSE P=P MOD 16 ATTR P,%111 BG FILL ZONEX(N),ZONEY(N) TO ZONEX(N)+ZONEW(N)-1,ZONEY(N)+ZONEH(N)-1 ATTR 0 END IF END SUB SUB SETPIXEL(X,Y,C,CH) YY=INT(Y) XX=7-X CH=INT(CH) C=INT(C) P1=$8000+16*CH+Y P2=P1+8 N=2^XX N1=((C) MOD 2)*N N2=(-(C>1))*N M=NOT N POKE P1,(PEEK(P1) AND M)+N1 POKE P2,(PEEK(P2) AND M)+N2 END SUB SUB GETPIXEL(X,Y,C,CH) XX=7-X P1=$8000+16*CH+Y P2=P1+8 M=2^XX IF(PEEK(P1)AND M)>0 THEN C=1 ELSE C=0 END IF IF(PEEK(P2)AND M)>0 THEN C=C+2 END IF END SUB '=================================== #1:MAIN PALETTES 003F2A1500000000003F3F00002A2A00 00151500003F2A1500300000000F0500 #2:MAIN CHARACTERS 00000000000000000000000000000000 0000000000000000FFFFFFFFFFFFFFFF 0101010101010101FFFFFFFFFFFFFFFF FF0000000000000000FFFFFFFFFFFFFF 80808080808080807F7F7F7F7F7F7F7F 00000000000000FFFFFFFFFFFFFFFFFF FF000000000000FF00FFFFFFFFFFFFFF 81818181818181817F7F7F7F7F7F7F7F FF809AA2A29B8080007F7F7F7F7F7F7F FE01312931A9010101FFFFFFFFFFFFFF FF809AA2A2998080007F7F7F7F7F7F7F FE01B9919111010101FFFFFFFFFFFFFF FF8099A2A2998080007F7F7F7F7F7F7F FE0131A9B12101F101FFFFFFFFFFFFFF FF80B1AAB3A28080007F7F7F7F7F7F7F FE0119B189B101F101FFFFFFFFFFFFFF 80000000000000007FFFFFFFFFFFFFFF FFFFFFFFFFFFFFFF0000000000000000 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 808080808080807F7F7F7F7F7F7F7FFF 11397DF9F16101FFFFEFC7EFFFFFFFFF 808380808083807F7F7F7F7F7F7F7FFF 0109D579D50901FFFFFFFFFFFFFFFFFF 808080808080807F7F7F7F7F7F7F7FFF F1FDFDFD3D3D01FF9FBFA7E7E7FFFFFF 818181818180807F7F7F7F7F7F7F7FFF 693D3D3DFD3D01FF9FFFE7E7E7FFFFFF FF80808080818387007F7F7F7F7F7F7F FE0101010181C1E101FFFFFFFFFFFFFF FF80808080809F8F007F7F7F7F7F7F7F FE0101010101F9F101FFFFFFFFFFFFFF FF808080808080800000000000000000 60F0F0F0F0F0F0F0FFFFFFFFFFFFFFFF 3F7FF0FFF0FF403F00000F000F807F3F F8FC1EFE1EFE04F80000E000E002FCF8 FF80A1A2A2B98080007F7F7F7F7F7F7F FE0111A9B929010101FFFFFFFFFFFFFF FF8099B28BB28080007F7F7F7F7F7F7F FE0129A9B991010101FFFFFFFFFFFFFF FF80B9A2B2A18080007F7F7F7F7F7F7F FE0131A9A929010101FFFFFFFFFFFFFF FF80B3ABAAAB8080007F7F7F7F7F7F7F FE01A92939B9010101FFFFFFFFFFFFFF 8F9F80808080807F7F7F7F7F7F7F7FFF F1F90101010101FFFFFFFFFFFFFFFFFF 878381808080807F7F7F7F7F7F7F7FFF E1C18101010101FFFFFFFFFFFFFFFFFF 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 808898BE9888807F7F7F7F7F7F7F7FFF FDFDFDFDFD7D01FFFF8787B7B7FFFFFF 80888CBE8C88807F7F7F7F7F7F7F7FFF FDFDFDFDFD7D01FFFF8787B7B7FFFFFF 848E9B9F9B9B807F7F7F7F7F7F7F7FFF 796D796D6D7901FFFFFFFFFFFFFFFFFF 808080808080807F7F7F7F7F7F7F7FFF 1D3D7D7D7D7D01FFFFE7C7C7C7FFFFFF FF80B2AAAAB28080007F7F7F7F7F7F7F FE01D59955D5010101FFFFFFFFFFFFFF FF80B1B2ABB28080007F7F7F7F7F7F7F FE0119A1A199010101FFFFFFFFFFFFFF FF80ACA9ADAC8081007F7F7F7F7F7F7F FE012DA9AD2D01FD01FFFFFFFFFFFFFF FF80B4A4B4A68080007F7F7F7F7F7F7F FE01B1A9B1A1010101FFFFFFFFFFFFFF FF80B4A4B4A68080007F7F7F7F7F7F7F FE01B1A9B1A1011101FFFFFFFFFFFFFF FF80B6A596B48080007F7F7F7F7F7F7F FE0159555555011D01FFFFFFFFFFFFFF 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 808080808080807F7F7F7F7F7F7F7FFF FDFDFDFDFD7D01FFFF8787B7B7FFFFFF 8898BFBF9888807F7F7F7F7F7F7F7FFF 0101C1C1010101FFFFFFFFFFFFFFFFFF 818181818181807F7F7F7F7F7F7F7FFF B525FDB525FD01FF6FFFFF6FFFFFFFFF 808081838180807F7F7F7F7F7F7F7FFF 019199FD999101FFFFFFFFFFFFFFFFFF 808080808080807F7F7F7F7F7F7F7FFF 397D117D391101FFFFFFFFFFFFFFFFFF 808181818080807F7F7F7F7F7F7F7FFF 99150505897101FFFFFFFFFFFFFFFFFF 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 0000000000000000FFFFFFFFFFFFFFFF 0018181818001800FFE7E7E7E7FFE7FF 006C6C2400000000FF9393DBFFFFFFFF 00247E24247E2400FFDB81DBDB81DBFF 00083E380E3E0800FFF7C1C7F1C1F7FF 0062640810264600FF9D9BF7EFD9B9FF 001C34386E643A00FFE3CBC7919BC5FF 0018183000000000FFE7E7CFFFFFFFFF 000C183030180C00FFF3E7CFCFE7F3FF 0030180C0C183000FFCFE7F3F3E7CFFF 000024187E182400FFFFDBE781E7DBFF 000018187E181800FFFFE7E781E7E7FF 0000000018183000FFFFFFFFE7E7CFFF 000000007E000000FFFFFFFF81FFFFFF 0000000000181800FFFFFFFFFFE7E7FF 00060C1830604000FFF9F3E7CF9FBFFF 003C666E76663C00FFC399918999C3FF 0018381818187E00FFE7C7E7E7E781FF 003C660C18307E00FFC399F3E7CF81FF 003C660C06663C00FFC399F3F999C3FF 0066667E06060600FF999981F9F9F9FF 007E607C06067C00FF819F83F9F983FF 001C307C66663C00FFE3CF839999C3FF 007E060C18303000FF81F9F3E7CFCFFF 003C663C66663C00FFC399C39999C3FF 003C663E06663C00FFC399C1F999C3FF 0000001800180000FFFFFFE7FFE7FFFF 0000001800183000FFFFFFE7FFE7CFFF 00000C1830180C00FFFFF3E7CFE7F3FF 0000007E007E0000FFFFFF81FF81FFFF 000030180C183000FFFFCFE7F3E7CFFF 003C660C18001800FFC399F3E7FFE7FF 003C666E6E603C00FFC39991919FC3FF 00183C667E666600FFE7C399819999FF 007C667C66667C00FF839983999983FF 003C666060663C00FFC3999F9F99C3FF 00786C66666C7800FF879399999387FF 007E607860607E00FF819F879F9F81FF 007E607860606000FF819F879F9F9FFF 003C606E66663C00FFC39F919999C3FF 0066667E66666600FF999981999999FF 003C181818183C00FFC3E7E7E7E7C3FF 001E060606663C00FFE1F9F9F999C3FF 00666C78786C6600FF999387879399FF 0060606060607E00FF9F9F9F9F9F81FF 0042667E7E666600FFBD9981819999FF 0066767E6E666600FF998981919999FF 003C666666663C00FFC399999999C3FF 007C667C60606000FF8399839F9F9FFF 003C66666A6C3E00FFC399999593C1FF 007C667C786C6600FF839983879399FF 003E603C06067C00FFC19FC3F9F983FF 007E181818181800FF81E7E7E7E7E7FF 0066666666663C00FF9999999999C3FF 00666666663C1800FF99999999C3E7FF 0066667E7E664200FF9999818199BDFF 00663C183C666600FF99C3E7C39999FF 0066663C18181800FF9999C3E7E7E7FF 007E0C1830607E00FF81F3E7CF9F81FF 003C303030303C00FFC3CFCFCFCFC3FF 006030180C060200FF9FCFE7F3F9FDFF 003C0C0C0C0C3C00FFC3F3F3F3F3C3FF 00183C6600000000FFE7C399FFFFFFFF 0000000000007E00FFFFFFFFFFFF81FF #3:MAIN BG 00001410010001000100010001000100 01000100010001000100010001000100 01000100010001000100010003000600 06000600060006000600060006000300 06000600030006000600060006000600 06000300020010001000100010001000 10001000100007004600470007004600 47000800090040004100040002001000 10001000100010001000100010000700 56005700070056005700180019005000 51000400020010001000100010001000 10001000100007000100010007004800 49000A000B0044004500040002001000 10001000100010001000100010000700 010001000700580059001A001B005400 55000400020010001000100010001000 10001000100007000100010007004A00 4B000C000D002C002D00040002001000 10001000100010001000100010000700 0100010007005A005B001C001D003C00 3D000400020010001000100010001000 10001000100007000100010007000100 01000E000F002E002F00040002001000 10001000100010001000100010000700 010001000700010001001E001F003E00 3F000400010006000600060006000600 06000600060005000600060005000600 06000600060006000600010002000000 00000000000000000000000000000000 00000000000000000000000000002000 21000400020000000000000000000000 00000000000000000000000000000000 00000000000030003100040002000000 00000000000000000000000000000000 00000000000000000000000000002200 23000400020000000000000000000000 00000000000000000000000000000000 00000000000032003300040001000100 01000100010001000100010001000100 01000100010001000100010001000100 01000100 #4:DISK BG 00001410010701070107010701070107 01070107010701070107010701070107 01070107010701070107010706000600 06000600060006000600060006000600 06000600060006000600060006000600 06000600010001000100010001000100 01000100010001000100010001000100 01000100010001002000210001000100 01000100010001000100010001000100 01000100010001000100010001000100 30003100010001000100010001000100 01000100010001000100010001000100 01000100010001000400010001000100 01000100010001000100010001000100 01000100010001000100010001000100 04000100010001000100010001000100 01000100010001000100010001000100 01000100010001000400010001000100 01000100010001000100010001000100 01000100010001000100010001000100 04000100010001000100010001000100 01000100010001000100010001000100 01000100010001000400010001000100 01000100010001000100010001000100 01000100010001000100010001000100 04000100010001000100010001000100 01000100010001000100010001000100 01000100010001002200230001000100 01000100010001000100010001000100 01000100010001000100010001000100 32003300030006000600060006000600 06000600060006000600060006000600 06000600060006000600030002004200 43000100010001000100010001000100 01000100010001000100280029002A00 2B000400020052005300010001000100 01000100010001000100010001000100 0100380039003A003B00040001000300 03000300030003000300030003000300 03000300030003000300030003000300 03000100 #5:BIG EDITOR BG 00001410000000000000000000000000 00000000000000000000000000000000 00000000070042004300040000000000 00000000000000000000000000000000 00000000000000000000000007005200 53000400000000000000000000000000 00000000000000000000000000000000 00000000040006000600010000000000 00000000000000000000000000000000 00000000000000000000000007000000 00000400000000000000000000000000 00000000000000000000000000000000 00000000070000000000040000000000 00000000000000000000000000000000 00000000000000000000000007000000 00000400000000000000000000000000 00000000000000000000000000000000 00000000070000000000040000000000 00000000000000000000000000000000 00000000000000000000000007000000 00000400000000000000000000000000 00000000000000000000000000000000 00000000070000000000040000000000 00000000000000000000000000000000 00000000000000000000000007000000 00000400000000000000000000000000 00000000000000000000000000000000 00000000070000000000040000000000 00000000000000000000000000000000 00000000000000000000000004000300 03000100000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000 #10: FONTS 00000000000000000000000000000000 00181818180018000000000000000000 006C6C24000000000000000000000000 00247E24247E24000000000000000000 00083E380E3E08000000000000000000 00626408102646000000000000000000 001C34386E643A000000000000000000 00181830000000000000000000000000 000C183030180C000000000000000000 0030180C0C1830000000000000000000 000024187E1824000000000000000000 000018187E1818000000000000000000 00000000181830000000000000000000 000000007E0000000000000000000000 00000000001818000000000000000000 00060C18306040000000000000000000 003C666E76663C000000000000000000 0018381818187E000000000000000000 003C660C18307E000000000000000000 003C660C06663C000000000000000000 0066667E060606000000000000000000 007E607C06067C000000000000000000 001C307C66663C000000000000000000 007E060C183030000000000000000000 003C663C66663C000000000000000000 003C663E06663C000000000000000000 00000018001800000000000000000000 00000018001830000000000000000000 00000C1830180C000000000000000000 0000007E007E00000000000000000000 000030180C1830000000000000000000 003C660C180018000000000000000000 003C666E6E603C000000000000000000 00183C667E6666000000000000000000 007C667C66667C000000000000000000 003C666060663C000000000000000000 00786C66666C78000000000000000000 007E607860607E000000000000000000 007E6078606060000000000000000000 003C606E66663C000000000000000000 0066667E666666000000000000000000 003C181818183C000000000000000000 001E060606663C000000000000000000 00666C78786C66000000000000000000 0060606060607E000000000000000000 0042667E7E6666000000000000000000 0066767E6E6666000000000000000000 003C666666663C000000000000000000 007C667C606060000000000000000000 003C66666A6C3E000000000000000000 007C667C786C66000000000000000000 003E603C06067C000000000000000000 007E1818181818000000000000000000 0066666666663C000000000000000000 00666666663C18000000000000000000 0066667E7E6642000000000000000000 00663C183C6666000000000000000000 0066663C181818000000000000000000 007E0C1830607E000000000000000000 003C303030303C000000000000000000 006030180C0602000000000000000000 003C0C0C0C0C3C000000000000000000 00183C66000000000000000000000000 0000000000007E000000000000000000 0000000000000000FFFFFFFFFFFFFFFF 0018181818001800FFE7E7E7E7FFE7FF 006C6C2400000000FF9393DBFFFFFFFF 00247E24247E2400FFDB81DBDB81DBFF 00083E380E3E0800FFF7C1C7F1C1F7FF 0062640810264600FF9D9BF7EFD9B9FF 001C34386E643A00FFE3CBC7919BC5FF 0018183000000000FFE7E7CFFFFFFFFF 000C183030180C00FFF3E7CFCFE7F3FF 0030180C0C183000FFCFE7F3F3E7CFFF 000024187E182400FFFFDBE781E7DBFF 000018187E181800FFFFE7E781E7E7FF 0000000018183000FFFFFFFFE7E7CFFF 000000007E000000FFFFFFFF81FFFFFF 0000000000181800FFFFFFFFFFE7E7FF 00060C1830604000FFF9F3E7CF9FBFFF 003C666E76663C00FFC399918999C3FF 0018381818187E00FFE7C7E7E7E781FF 003C660C18307E00FFC399F3E7CF81FF 003C660C06663C00FFC399F3F999C3FF 0066667E06060600FF999981F9F9F9FF 007E607C06067C00FF819F83F9F983FF 001C307C66663C00FFE3CF839999C3FF 007E060C18303000FF81F9F3E7CFCFFF 003C663C66663C00FFC399C39999C3FF 003C663E06663C00FFC399C1F999C3FF 0000001800180000FFFFFFE7FFE7FFFF 0000001800183000FFFFFFE7FFE7CFFF 00000C1830180C00FFFFF3E7CFE7F3FF 0000007E007E0000FFFFFF81FF81FFFF 000030180C183000FFFFCFE7F3E7CFFF 003C660C18001800FFC399F3E7FFE7FF 003C666E6E603C00FFC39991919FC3FF 00183C667E666600FFE7C399819999FF 007C667C66667C00FF839983999983FF 003C666060663C00FFC3999F9F99C3FF 00786C66666C7800FF879399999387FF 007E607860607E00FF819F879F9F81FF 007E607860606000FF819F879F9F9FFF 003C606E66663C00FFC39F919999C3FF 0066667E66666600FF999981999999FF 003C181818183C00FFC3E7E7E7E7C3FF 001E060606663C00FFE1F9F9F999C3FF 00666C78786C6600FF999387879399FF 0060606060607E00FF9F9F9F9F9F81FF 0042667E7E666600FFBD9981819999FF 0066767E6E666600FF998981919999FF 003C666666663C00FFC399999999C3FF 007C667C60606000FF8399839F9F9FFF 003C66666A6C3E00FFC399999593C1FF 007C667C786C6600FF839983879399FF 003E603C06067C00FFC19FC3F9F983FF 007E181818181800FF81E7E7E7E7E7FF 0066666666663C00FF9999999999C3FF 00666666663C1800FF99999999C3E7FF 0066667E7E664200FF9999818199BDFF 00663C183C666600FF99C3E7C39999FF 0066663C18181800FF9999C3E7E7E7FF 007E0C1830607E00FF81F3E7CF9F81FF 003C303030303C00FFC3CFCFCFCFC3FF 006030180C060200FF9FCFE7F3F9FDFF 003C0C0C0C0C3C00FFC3F3F3F3F3C3FF 00183C6600000000FFE7C399FFFFFFFF 0000000000007E00FFFFFFFFFFFF81FF 00000000000000000000000000000000 183C3C3C3C183C181824242424182418 6CFEFE7E240000006C92925A24000000 247EFF7E7EFF7E24245A815A5A815A24 083E7F7E3F7F3E080836414631413608 62F7FE7C3E7FEF4662959A742E59A946 1C3E7E7EFFFE7F3A1C224A46919A453A 183C3C78300000001824244830000000 0C1E3C78783C1E0C0C1224484824120C 30783C1E1E3C78303048241212244830 00247E7EFF7E7E2400245A6681665A24 00183C7EFF7E3C180018246681662418 000000183C3C78300000001824244830 0000007EFF7E00000000007E817E0000 00000000183C3C180000000018242418 060F1E3C78F0E040060912244890A040 3C7EFFFFFFFF7E3C3C4299918999423C 183C7C3C3C7EFF7E182444242466817E 3C7EFF7E3C7EFF7E3C429972244E817E 3C7EFF7E6FFF7E3C3C4299726999423C 66FFFFFF7F0F0F066699998179090906 7EFFFEFE7F7FFE7C7E819E827979827C 1C3E7CFEFFFF7E3C1C224C829999423C 7EFF7F1E3C7878307E81791224484830 3C7EFF7EFFFF7E3C3C4299429999423C 3C7EFF7F7FFF7E3C3C4299417999423C 0000183C183C18000000182418241800 0000183C183C78300000182418244830 000C1E3C783C1E0C000C12244824120C 00007EFF7EFF7E0000007E817E817E00 0030783C1E3C78300030482412244830 3C7EFF7E3C183C183C42997224182418 3C7EFFFFFFFE7E3C3C429991919E423C 183C7EFFFFFFFF661824429981999966 7CFEFFFEFFFFFE7C7C8299829999827C 3C7EFFF6F6FF7E3C3C4299969699423C 78FCFEFFFFFEFC787884929999928478 7EFFFEFCF8FEFF7E7E819E84989E817E 7EFFFEFCF8F0F0607E819E8498909060 3C7EFEFFFFFF7E3C3C429E919999423C 66FFFFFFFFFFFF666699998199999966 3C7E3C3C3C3C7E3C3C4224242424423C 1E3F1F0F6FFF7E3C1E2119096999423C 66FFFEFCFCFEFF666699928484929966 60F0F0F0F0FEFF7E60909090909E817E 42E7FFFFFFFFFF6642A5998181999966 66FFFFFFFFFFFF666699898191999966 3C7EFFFFFFFF7E3C3C4299999999423C 7CFEFFFEFCF0F0607C8299829C909060 3C7EFFFFFFFE7F3E3C4299999592413E 7CFEFFFEFCFEFF667C82998284929966 3E7FFE7E3F7FFE7C3E419E423979827C 7EFF7E3C3C3C3C187E81662424242418 66FFFFFFFFFF7E3C669999999999423C 66FFFFFFFF7E3C186699999999422418 66FFFFFFFFFFE742669999818199A542 66FF7E3C7EFFFF666699422442999966 66FFFF7E3C3C3C186699994224242418 7EFF7E3C78FEFF7E7E817224489E817E 3C7E7C78787C7E3C3C424C48484C423C 60F0783C1E0F07026090482412090502 3C7E3E1E1E3E7E3C3C4232121232423C 183C7EFF660000001824429966000000 00000000007EFF7E00000000007E817E 00000000000000000000000000000000 00181C1C1C0C180C00000404040C000C 006C7E36120000000000121212000000 00247E3F367E3F120000001B12001B12 00083E3F1E3F1F040000000710011704 0062753A142E57230000113204081123 001C3E3A7E773A1D00000A021013001D 00181C3C180000000000040C18000000 000C1E3C38180C060000060C08000006 0030180C0E1E3C180000000002060C18 0000241A7E3F2C120000000200270812 0000181C7E3F1C0C000000040027040C 00000000181C3C180000000000040C18 000000007E3F000000000000003F0000 0000000000181C0C000000000000040C 00060F1E3C787020000003060C183020 003C7E7F777F3F1E000018110119031E 00183C1C1C1C7E3F000004040404003F 003C7E3F1E3C7E3F00001833060C003F 003C7E3F06673F1E000018330001031E 0066777F3F0707030000110139010103 007E7F7C3E077F3E00001F003801033E 001C3E7C7E773F1E00000E001811031E 007E3F0F1E3C381800003903060C0818 003C7E3F7E773F1E000018031811031E 003C7E3F1F673F1E000018011901031E 000000180C180C00000000000C000C00 000000180C183C18000000000C000C18 00000C1E3C180C06000000060C000006 0000007E3F7E3F00000000003F003F00 000030180C1E3C180000000000060C18 003C7E3F1E0C180C00001833060C000C 003C7E7F7F773C1E000018111117001E 00183C7E7F7F77330000001801191133 007C7E7F7E777F3E000018031811033E 003C7E7370763F1E000018131010031E 00787C76777F7E3C000010101113063C 007E7F787C707E3F00001F001C10003F 007E7F787C70703000001F001C101030 003C7E7E77773F1E00001E101111031E 0066777F7F7777330000110119111133 003C1E1C1C1C3C1E000006040404001E 001E0F0707673F1E000009010101031E 00667F7E7C7C76330000130604101033 0060707070707E3F000010101010003F 0042677F7F7F77330000010101191133 0066777F7F7777330000010111111133 003C7E7777773F1E000018111111031E 007C7E7F7E707030000018031E101030 003C7E777B7D3E1F000018111111001F 007C7E7F7E7C76330000180306101033 003E7F3C1E077F3E00001F001801033E 007E3F1C1C1C1C0C000027040404040C 0066777777773F1E000011111111031E 00667777773F1E0C000011111103060C 0066777F7F7F73210000110101193121 00663F1E3C7E77330000030600181133 0066773F1E1C1C0C000011030604040C 007E3F1E3C787E3F000033060C18003F 003C3E3838383C1E00000E080808001E 006030180C0603010000000000000101 003C1E0E0E0E3E1E000012020202021E 00183C7E330000000000001833000000 0000000000007E3F000000000000003F