GLOBAL NUMZONES NUMZONES=9 GLOBAL USERCHARS,USERBG,USERPALS,TEMPMEM USERCHARS = $A000 USERBG = $B000 USERPALS = $D004 UNDOBUFFER = $D024 TEMPMEM = $D024 DIM GLOBAL MENU$(6) DIM GLOBAL PXL(63,63),PXLOVER(63,63) GLOBAL SELCHAR,SELSIZE,SELPAGE,SELCOLOR GLOBAL SELPAL,SELPALPAGE GLOBAL HIDECOUNT,CHAROFFSET GLOBAL NUMSUBMENUS NUMSUBMENUS=7 SELCHAR=1 SELSIZE=1 SELPAGE=0 SELCOLOR=1 SELPAL=0 SELPALPAGE=0 DIM GLOBAL SUBMENUS$(NUMSUBMENUS-1),SUBMENUC(NUMSUBMENUS-1),SUBMENUCT(NUMSUBMENUS-1),SUBMENUITEMS$(NUMSUBMENUS-1,5),SUBMENUGRP(NUMSUBMENUS-1,5) GLOBAL SUBMENU_MOVE,SUBMENU_FLIP,SUBMENU_SEL,SUBMENU_EDIT,SUBMENU_FILE,SUBMENU_DRAW,SUBMENU_STYLE GLOBAL CURSUB,LASTSUB,DRAWMODE,MODE_PENCIL,MODE_LINE,MODE_RECT,MODE_ELLIPS,MODE_FILL,DRAWANCHORX,DRAWANCHORY,STYLEW,STYLEFILL MODE_PENCIL=0 MODE_LINE=1 MODE_RECT=2 MODE_ELLIPS=3 MODE_FILL=4 DRAWMODE=0 CURSUB=2 LASTSUB=2 SUBMENU_MOVE=0 SUBMENU_FLIP=1 SUBMENU_SEL=2 SUBMENU_EDIT=3 SUBMENU_FILE=4 SUBMENU_DRAW=5 SUBMENU_STYLE=6 DRAWANCHORX=-1 DRAWANCHORY=-1 STYLEFILL=0 STYLEW=1 GLOBAL MAPW,MAPH,CELLSIZE MAPW=32 MAPH=32 CELLSIZE=0 GLOBAL EDMODE,TOOLMODE,FLIPMODE,PRI,MAPX,MAPY,DRAGX,DRAGY GLOBAL STAMPW,STAMPH GLOBAL MAPBARST GLOBAL WINW,WINH EDMODE=1 GLOBAL FTYPE$,FILESOFFS,SELFILE GLOBAL PALFILE,CHARFILE,BGFILE SELFILE=-1 PALFILE=1 CHARFILE=2 BGFILE=3 DIM GLOBAL SIZESW(5),SIZESH(5) DATA 10,20,32,64,96,128 DATA 8,16,32,64,96,128 FOR I=0 TO 5 READ SIZESW(I) NEXT I FOR I=0 TO 5 READ SIZESH(I) NEXT I FONT 128 'DEFAULT USER PALETTE COPY ROM(10),SIZE(10) TO USERPALS OK=0 R=0 FILES CALL BLOADCHR(OK) '==== TOUCH ZONES INIT ==== 'SETTINGS GLOBAL MAX_ZONE, ZONE_PAL 'STATUS GETTERS GLOBAL CUR_ZONE, ZONE_EVENT, ZONE_IN_X, ZONE_IN_Y, ZONE_RESULT, ZONE_IN_TX, ZONE_IN_TY 'INTERNAL GLOBAL ZONE_LAST_X, ZONE_LAST_Y, ZONE_LAST_TX, ZONE_LAST_TY, ZONE_LAST_DRAWX, ZONE_LAST_DRAWY ZONE_LAST_DRAWX=-1 ZONE_LAST_DRAWY=-1 GLOBAL E_DOWN, E_UP, E_OUT, E_DRAG E_DOWN=1 E_UP=2 E_OUT=3 E_DRAG=4 MAX_ZONE=33 DIM GLOBAL ZONEX(MAX_ZONE), ZONEY(MAX_ZONE), ZONEW(MAX_ZONE), ZONEH(MAX_ZONE), ZONEP(MAX_ZONE) CALL INITSUBMENUS TOUCHSCREEN '====================================== CHAREDITOR: '-------------------------------------- HIDECOUNT=0 CALL INITMEM CALL CLEAROVERLAY CALL READCHAR CALL READPAGE CALL DRAWCHARUI CALL DRAWSUBMENU CALL RESETZONES RESTORE ZONES FOR I=0 TO NUMZONES READ Z,X,Y,W,H,P ZONE_PAL=P CALL SETZONE(Z,X,Y,W,H) NEXT I DO CALL UPDATEZONES IF ZONE_EVENT=E_DOWN THEN END IF CALL HANDLECHARSEL(0) IF ZONE_EVENT=E_DOWN OR ZONE_EVENT=E_DRAG THEN IF CUR_ZONE=20 THEN IF DRAWMODE=MODE_PENCIL THEN IF SELSIZE=0 THEN PXL(ZONE_IN_X,ZONE_IN_Y)=SELCOLOR PAL SELPAL MOD 4 CELL ZONE_LAST_X,ZONE_LAST_Y,48+SELCOLOR CALL WRITECHAR ELSE IF ZONE_EVENT=E_DRAG THEN CALL DRAWHALF END IF PXL(ZONE_IN_TX,ZONE_IN_TY)=SELCOLOR PAL SELPAL MOD 4 CALL WRITECHAR CALL DRAWCHAR ZONE_LAST_DRAWX=ZONE_IN_TX ZONE_LAST_DRAWY=ZONE_IN_TY END IF ELSE IF DRAWMODE=MODE_FILL THEN CALL FLOODFILL ELSE IF ZONE_EVENT=E_DOWN THEN IF SELSIZE=0 THEN DRAWANCHORX=ZONE_IN_X DRAWANCHORY=ZONE_IN_Y ELSE DRAWANCHORX=ZONE_IN_TX DRAWANCHORY=ZONE_IN_TY END IF ELSE IF SELSIZE=0 THEN PTX=ZONE_IN_X PTY=ZONE_IN_Y ELSE PTX=ZONE_IN_TX PTY=ZONE_IN_TY END IF PT1X=MIN(DRAWANCHORX,PTX) PT1Y=MIN(DRAWANCHORY,PTY) PT2X=PT1X+ABS(DRAWANCHORX-PTX) PT2Y=PT1Y+ABS(DRAWANCHORY-PTY) IF DRAWMODE=MODE_LINE THEN CALL PREVIEWLINE(DRAWANCHORX,DRAWANCHORY,PTX,PTY) ELSE IF DRAWMODE=MODE_RECT THEN CALL PREVIEWRECT(PT1X,PT1Y,PT2X,PT2Y) ELSE IF DRAWMODE=MODE_ELLIPS THEN CALL PREVIEWELLIPS(PT1X,PT1Y,PT2X,PT2Y) END IF CALL DRAWCHAR END IF END IF END IF IF CUR_ZONE=21 THEN SELCOLOR=ZONE_IN_Y\2 CALL DRAWSELCOLOR(10,1) END IF END IF IF ZONE_EVENT=E_UP THEN ZONE_LAST_DRAWX=-1 ZONE_LAST_DRAWY=-1 IF CUR_ZONE=20 THEN IF DRAWANCHORX>=0 THEN IF SELSIZE=0 THEN PTX=ZONE_IN_X PTY=ZONE_IN_Y ELSE PTX=ZONE_IN_TX PTY=ZONE_IN_TY END IF PT1X=MIN(DRAWANCHORX,PTX) PT1Y=MIN(DRAWANCHORY,PTY) PT2X=PT1X+ABS(DRAWANCHORX-PTX) PT2Y=PT1Y+ABS(DRAWANCHORY-PTY) IF DRAWMODE=MODE_LINE OR DRAWMODE=MODE_RECT OR DRAWMODE=MODE_ELLIPS THEN CALL DRAWSHAPE END IF DRAWANCHORX=-1 DRAWANCHORY=-1 CALL CLEAROVERLAY END IF END IF IF CUR_ZONE=22 THEN CALL MENUPREV IF CUR_ZONE=23 THEN CALL MENUNEXT IF CUR_ZONE=24 THEN CALL MENUITEM END IF IF HIDECOUNT>0 THEN DEC HIDECOUNT IF HIDECOUNT=0 THEN CALL HIDESELCHAR END IF WAIT VBL LOOP '-------------- ' SUBS '-------------- SUB CLEAROVERLAY FOR Y=0 TO 63 FOR X=0 TO 63 PXLOVER(X,Y)=-1 NEXT X NEXT Y END SUB SUB PLOTOVERLAY(X,Y) QO=(STYLEW-1)\2 FOR QX=0 TO STYLEW-1 FOR QY=0 TO STYLEW-1 OX=X+QX-QO OY=Y+QY-QO IF OX>=0 AND OX<64 AND OY>=0 AND OY<64 THEN PXLOVER(OX,OY)=SELCOLOR END IF NEXT QY NEXT QX END SUB SUB PREVIEWLINE(PT1X,PT1Y,PT2X,PT2Y) CALL CLEAROVERLAY DX=ABS(PT1X-PT2X) DY=ABS(PT1Y-PT2Y) IF DX=0 THEN IF DY=0 THEN EXIT SUB ELSE DDX=0 DDY=SGN(PT2Y-PT1Y) END IF ELSE IF DY=0 THEN DDX=SGN(PT2X-PT1X) DDY=0 ELSE IF DXPT2X AND INT(TY)<>PT2Y CALL PLOTOVERLAY(INT(TX),INT(TY)) ADD TX,DDX ADD TY,DDY WEND CALL PLOTOVERLAY(PT2X,PT2Y) END SUB SUB PREVIEWRECT(PT1X,PT1Y,PT2X,PT2Y) CALL CLEAROVERLAY IF STYLEFILL THEN FOR X=PT1X TO PT2X FOR Y=PT1Y TO PT2Y CALL PLOTOVERLAY(X,Y) NEXT Y NEXT X ELSE FOR H=0 TO ABS(PT1Y-PT2Y) CALL PLOTOVERLAY(PT1X,PT1Y+H) CALL PLOTOVERLAY(PT2X,PT1Y+H) NEXT H FOR W=0 TO ABS(PT1X-PT2X) CALL PLOTOVERLAY(PT1X+W,PT1Y) CALL PLOTOVERLAY(PT1X+W,PT2Y) NEXT W END IF END SUB SUB PREVIEWELLIPS(PT1X,PT1Y,PT2X,PT2Y) CALL CLEAROVERLAY TW=ABS(PT1X-PT2X)+1 TH=ABS(PT1Y-PT2Y)+1 HX=(TW\2) HY=(TH\2) HXE=TW-(2*HX) HYE=TH-(2*HY) IF HX=0 OR HY=0 THEN EXIT SUB X=HX FOR Y=0 TO HY IF Y=0 THEN ANG=0 ELSE ANG=ATAN(Y/X) END IF EX=INT((1-COS(ANG))*HX) EY=INT((1-SIN(ANG))*HY) IF EX=0 THEN EY=HY-Y END IF CALL PLOTOVERLAY(PT2X-EX,PT1Y+EY) CALL PLOTOVERLAY(PT1X+EX,PT1Y+EY) CALL PLOTOVERLAY(PT2X-EX,PT2Y-EY) CALL PLOTOVERLAY(PT1X+EX,PT2Y-EY) NEXT Y IF HXE=1 THEN CALL PLOTOVERLAY(PT1X+HX,PT1Y) CALL PLOTOVERLAY(PT1X+HX,PT2Y) END IF Y=HY FOR X=HX TO 0 STEP -1 IF X=0 THEN ANG=PI/2 ELSE ANG=ATAN(Y/X) END IF EX=INT((1-COS(ANG))*HX) EY=INT((1-SIN(ANG))*HY) IF EY=0 THEN EX=HX-X END IF CALL PLOTOVERLAY(PT2X-EX,PT1Y+EY) CALL PLOTOVERLAY(PT1X+EX,PT1Y+EY) CALL PLOTOVERLAY(PT2X-EX,PT2Y-EY) CALL PLOTOVERLAY(PT1X+EX,PT2Y-EY) NEXT X IF HYE=1 THEN CALL PLOTOVERLAY(PT1X,PT1Y+HY) CALL PLOTOVERLAY(PT2X,PT1Y+HY) END IF END SUB SUB DRAWSHAPE FOR Y=0 TO ((SELSIZE+1)*8)-1 FOR X=0 TO ((SELSIZE+1)*8)-1 IF PXLOVER(X,Y)>=0 THEN PXL(X,Y)=PXLOVER(X,Y) END IF NEXT X NEXT Y CALL WRITECHARSEL END SUB SUB FLOODFILL FFX=ZONE_IN_X FFY=ZONE_IN_Y FMAX=8 IF SELSIZE>0 THEN FFX=ZONE_IN_TX FFY=ZONE_IN_TY FMAX=8*(SELSIZE+1) END IF MCC=PXL(FFX,FFY) DIM CHKD(63,63),STCK(4096) SP=1 STCK(0)=(FFX OR (FFY*256)) REPEAT DEC SP POP=STCK(SP) FFX=POP AND 255 FFY=(POP \ 256) IF CHKD(FFX,FFY)=0 THEN CHKD(FFX,FFY)=-1 IF PXL(FFX,FFY)=MCC THEN PXL(FFX,FFY)=SELCOLOR IF FFX>0 THEN STCK(SP)=(FFX-1) OR (FFY * 256) INC SP END IF IF FFY>0 THEN STCK(SP)=(FFX) OR ((FFY-1) * 256) INC SP END IF IF FFX<(FMAX-1) THEN STCK(SP)=(FFX+1) OR (FFY * 256) INC SP END IF IF FFY<(FMAX-1) THEN STCK(SP)=(FFX) OR ((FFY+1) * 256) INC SP END IF END IF END IF UNTIL SP=0 CALL DRAWCHAR CALL WRITECHAR END SUB SUB BCLEAR S=(SELSIZE+1)*8-1 FOR PY=0 TO S FOR PX=0 TO S PXL(PX,PY)=SELCOLOR NEXT PX NEXT PY CALL WRITECHARSEL CALL DRAWCHAR CALL CHAR2PAGE CALL DRAWCHARNUM(0) END SUB SUB BLOADCHR(OK) OK=0 IF FSIZE(CHARFILE)>$1000 THEN CHARFILE=-1 EXIT SUB END IF FILL USERCHARS,$1000,0 LOAD CHARFILE,USERCHARS OK=-1 END SUB SUB BSAVECHR 'FIND LAST USED CHARACTER N=0 I=255 REPEAT A=USERCHARS+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$(CHARFILE) IF F$="" THEN F$="CHARACTERS" SAVE CHARFILE,F$,USERCHARS,N*16 END SUB SUB DRAWCHARUI BG COPY 0,0,20,16 TO 0,0 CALL INITSPRITES CALL DRAWCHAR CALL DRAWSELCOLOR(10,1) CALL DRAWCHARNUM(0) CALL DRAWPAGE P=(SELPAL MOD 4) BG TINT 10,1 TO 11,8 PAL P END SUB SUB INITMEM ON RASTER OFF SPRITE OFF COPY ROM(1),SIZE(1) TO $FF00 COPY ROM(2),SIZE(2) TO $8000 BG SOURCE ROM(3) END SUB SUB INITSPRITES SPRITE 0 PAL 6 FLIP 0,0 SPRITE 1 PAL 6 FLIP 1,0 SPRITE 2 PAL 6 FLIP 0,1 SPRITE 3 PAL 6 FLIP 1,1 SPRITE 4 PAL 6 FLIP 0,0 SPRITE 5 PAL 6 FLIP 1,0 SPRITE 6 PAL 6 FLIP 0,1 SPRITE 7 PAL 6 FLIP 1,1 SPRITE 8 PAL 6 FLIP 0,0 SPRITE 9 PAL 6 FLIP 1,0 SPRITE 10 PAL 6 FLIP 0,1 SPRITE 11 PAL 6 FLIP 1,1 END SUB SUB DRAWCHAR PAL SELPAL MOD 4 IF SELSIZE=0 THEN FOR PY=0 TO 7 FOR PX=0 TO 7 BG 1 CELL PX+1,PY+1,0 BG 0 IF PXLOVER(PX,PY)>=0 THEN CELL PX+1,PY+1,48+PXLOVER(PX,PY) ELSE CELL PX+1,PY+1,48+PXL(PX,PY) END IF NEXT PX NEXT PY ELSE FOR PY=0 TO 14 STEP 2 FOR PX=0 TO 14 STEP 2 TL=PXL(PX,PY) IF PXLOVER(PX,PY)>=0 THEN TL=PXLOVER(PX,PY) TR=PXL(PX+1,PY) IF PXLOVER(PX+1,PY)>=0 THEN TR=PXLOVER(PX+1,PY) BL=PXL(PX,PY+1) IF PXLOVER(PX,PY+1)>=0 THEN BL=PXLOVER(PX,PY+1) BR=PXL(PX+1,PY+1) IF PXLOVER(PX+1,PY+1)>=0 THEN BR=PXLOVER(PX+1,PY+1) BG 0 CELL (PX\2)+1,(PY\2)+1,(TR*4)+TL BG 1 CELL (PX\2)+1,(PY\2)+1,16+((BR*4)+BL) NEXT PX NEXT PY BG 0 END IF END SUB SUB DRAWSELCOLOR(X,Y) SX=X*8 SY=Y*8+SELCOLOR*2*8 SPRITE 4,SX,SY,52 SPRITE 5,SX+8,SY,52 SPRITE 6,SX,SY+8,52 SPRITE 7,SX+8,SY+8,52 END SUB SUB HANDLECHARSEL(MAP) IF ZONE_EVENT=E_DOWN OR ZONE_EVENT=E_DRAG THEN IF CUR_ZONE=10 THEN SELCHAR=(ZONE_IN_Y*16)+ZONE_IN_X+SELPAGE*64 CALL FIXSEL(MAP) IF NOT MAP THEN CALL READCHAR CALL DRAWCHAR END IF CALL DRAWCHARNUM(MAP) END IF END IF IF ZONE_EVENT=E_DOWN THEN IF CUR_ZONE=11 AND SELPAGE>0 THEN SELPAGE=SELPAGE-1 CALL READPAGE CALL DRAWCHARNUM(MAP) END IF IF CUR_ZONE=12 AND SELPAGE<3 THEN SELPAGE=SELPAGE+1 CALL READPAGE CALL DRAWCHARNUM(MAP) END IF IF CUR_ZONE=13 THEN IF SELSIZE>0 THEN DEC SELSIZE CALL DRAWCHARNUM(MAP) END IF IF CUR_ZONE=14 THEN IF SELSIZE<3 THEN INC SELSIZE CALL FIXSEL(MAP) IF NOT MAP THEN CALL READCHAR CALL DRAWCHAR END IF CALL DRAWCHARNUM(MAP) END IF END IF END SUB SUB FIXSEL(MAP) REM IF SELSIZE=0 THEN EXIT SUB IF MAP AND CELLSIZE=1 THEN SELCHAR=SELCHAR AND %11101110 IF SELSIZE>1 THEN SELSIZE=1 S=(SELSIZE+1)*2-1 ELSE S=SELSIZE END IF N=SELCHAR MOD 64 X=(N MOD 16) Y=(N\16) IF X+S>=16 THEN X=15-S IF Y+S>=4 THEN Y=3-S SELCHAR=(SELCHAR\64*64)+Y*16+X END SUB SUB DRAWCHARNUM(MAP) PAL 4 BG FILL 4,15 TO 13,15 CHAR 128 TEXT 5,15,"#" NUMBER 6,15,SELCHAR,3 NUMBER 10,15,SELPAGE+1,1 TEXT 11,15,"/4" IF SELCHAR>=SELPAGE*64 AND SELCHARZONE_LAST_DRAWX THEN DX=ZONE_IN_TX-ZONE_LAST_DRAWX IF ZONE_IN_TY<>ZONE_LAST_DRAWY THEN DY=ZONE_IN_TY-ZONE_LAST_DRAWY ELSE DY=0 END IF ELSE DX=0 IF ZONE_IN_TY<>ZONE_LAST_DRAWY THEN DY=ZONE_IN_TY-ZONE_LAST_DRAWY ELSE DY=0 END IF END IF IF ABS(DX)>1 OR ABS(DY)>1 THEN IF DX=0 THEN DDX=0 IF DY=0 THEN DDY=0 ELSE DDY=SGN(DY) DCT=ABS(DY) END IF ELSE IF DY=0 THEN DDX=SGN(DX) DCT=ABS(DX) DDY=0 ELSE IF ABS(DX)>ABS(DY) THEN DDX=SGN(DX) DDY=ABS(DY/DX)*SGN(DY) DCT=ABS(DX) ELSE DDY=SGN(DY) DDX=ABS(DX/DY)*SGN(DX) DCT=ABS(DY) END IF END IF END IF IF DDX<>0 OR DDY<>0 THEN TDX=ZONE_LAST_DRAWX+DDX TDY=ZONE_LAST_DRAWY+DDY IF (INT(TDX)<>ZONE_LAST_DRAWX) OR (INT(TDY)<>ZONE_LAST_DRAWY) THEN IF INT(TDX)>=0 AND INT(TDX)<=63 AND INT(TDY)>=0 AND INT(TDY)<=63 THEN PXL(INT(TDX),INT(TDY))=SELCOLOR ZONE_LAST_DRAWX=INT(TDX) ZONE_LAST_DRAWY=INT(TDY) END IF END IF FOR I=1 TO DCT ADD TDX,DDX ADD TDY,DDY IF (INT(TDX)<>ZONE_LAST_DRAWX) OR (INT(TDY)<>ZONE_LAST_DRAWY) THEN IF INT(TDX)>=0 AND INT(TDX)<=63 AND INT(TDY)>=0 AND INT(TDY)<=63 THEN PXL(INT(TDX),INT(TDY))=SELCOLOR ZONE_LAST_DRAWX=INT(TDX) ZONE_LAST_DRAWY=INT(TDY) END IF END IF NEXT I END IF END IF END SUB SUB WRITECHARSEL FOR CY=0 TO SELSIZE FOR CX=0 TO SELSIZE CALL WRITECHARNUM(CX,CY) NEXT CX NEXT CY CALL CHAR2PAGE END SUB SUB WRITECHARNUM(CX,CY) AD=USERCHARS+(SELCHAR+CX+CY*16)*16 FOR BI=1 TO 2 FOR PY=0 TO 7 V=0 FOR PX=0 TO 7 BV=2^(7-PX) IF PXL(PX+CX*8,PY+CY*8) AND BI THEN V=V OR BV NEXT PX POKE AD,V AD=AD+1 NEXT PY NEXT BI END SUB SUB CHAR2PAGE FOR CY=0 TO SELSIZE FOR CX=0 TO SELSIZE CALL CHAR2PAGENUM(SELCHAR+CY*16+CX) NEXT CX NEXT CY END SUB SUB CHAR2PAGENUM(C) IF C>=SELPAGE*64 AND C<(SELPAGE+1)*64 THEN COPY USERCHARS+C*16,16 TO $8C00+(C MOD 64)*16 END IF END SUB SUB READCHAR FOR CY=0 TO SELSIZE FOR CX=0 TO SELSIZE CALL READCHARNUM(CX,CY) NEXT CX NEXT CY END SUB SUB READCHARNUM(CX,CY) AD=USERCHARS+(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 '====================================== ' TOUCH ZONE SUBS '-------------------------------------- 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 CUR_ZONE=-1 ZONE_PAL=-1 END SUB SUB UPDATEZONES CX=TOUCH.X\8 CY=TOUCH.Y\8 TX=TOUCH.X\4 TY=TOUCH.Y\4 IF ZONE_EVENT=E_UP OR ZONE_EVENT=E_OUT THEN CUR_ZONE=-1 ZONE_EVENT=0 IF CUR_ZONE>=0 THEN CALL INSIDEZONE(CUR_ZONE,CX,CY) IF ZONE_RESULT THEN ZONE_IN_X=CX-ZONEX(CUR_ZONE) ZONE_IN_Y=CY-ZONEY(CUR_ZONE) ZONE_IN_TX=TX-(ZONEX(CUR_ZONE)*2) ZONE_IN_TY=TY-(ZONEY(CUR_ZONE)*2) IF NOT TOUCH THEN CALL PAINTZONE(CUR_ZONE,0) ZONE_EVENT=E_UP ELSE IF CX<>ZONE_LAST_X OR CY<>ZONE_LAST_Y THEN ZONE_EVENT=E_DRAG ELSE IF CUR_ZONE=20 AND (ZONE_LAST_TX<>TX OR ZONE_LAST_TY<>TY) THEN ZONE_EVENT=E_DRAG END IF ELSE CALL PAINTZONE(CUR_ZONE,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 CUR_ZONE=I ZONE_IN_X=CX-ZONEX(I) ZONE_IN_Y=CY-ZONEY(I) ZONE_IN_TX=TX-(ZONEX(I)*2) ZONE_IN_TY=TY-(ZONEY(I)*2) CALL PAINTZONE(I,1) END IF END IF NEXT I END IF ZONE_LAST_X=CX ZONE_LAST_Y=CY ZONE_LAST_TX=TX ZONE_LAST_TY=TY 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 BG TINT ZONEX(N),ZONEY(N) TO ZONEX(N)+ZONEW(N)-1,ZONEY(N)+ZONEH(N)-1 PAL P END IF END SUB '============================================= ' SUBMENU SUBS '============================================= SUB INITSUBMENUS RESTORE SUBMENUDATA FOR I=0 TO NUMSUBMENUS-1 READ SUBMENUS$(I) NEXT I FOR I=0 TO NUMSUBMENUS-1 READ SUBMENUC(I) NEXT I RESTORE SUBMENUITEMDATA FOR I=0 TO NUMSUBMENUS-1 READ SUBIDX,CT SUBMENUCT(SUBIDX)=CT FOR J=0 TO CT-1 READ SI,SZ$,SG SUBMENUITEMS$(SUBIDX,SI)=SZ$ SUBMENUGRP(SUBIDX,SI)=SG NEXT J NEXT I END SUB SUB DRAWSUBMENU IF LASTSUB<>CURSUB THEN IF CURSUB>LASTSUB THEN IF (CURSUB-LASTSUB)>(NUMSUBMENUS\2) THEN DSUB=-1 ELSE DSUB=1 END IF ELSE IF (LASTSUB-CURSUB)>(NUMSUBMENUS\2) THEN DSUB=1 ELSE DSUB=-1 END IF END IF WHILE LASTSUB<>CURSUB IF DSUB<0 THEN MENL=LASTSUB-1 IF MENL<0 THEN MENL=(NUMSUBMENUS-1) MENR=LASTSUB ELSE MENL=LASTSUB MENR=LASTSUB+1 IF MENR>(NUMSUBMENUS-1) THEN MENR=0 END IF PAL 4 CELL 14,1,SUBMENUC(MENL) CELL 14,2,SUBMENUC(MENL)+16 CELL 17,1,SUBMENUC(MENR)+1 CELL 17,2,SUBMENUC(MENR)+17 PAL 5 CELL 15,1,SUBMENUC(MENL)+1 CELL 15,2,SUBMENUC(MENL)+17 CELL 16,1,SUBMENUC(MENR) CELL 16,2,SUBMENUC(MENR)+16 WAIT 5 ADD LASTSUB,DSUB IF LASTSUB<0 THEN LASTSUB=(NUMSUBMENUS-1) IF LASTSUB>(NUMSUBMENUS-1) THEN LASTSUB=0 MENL=LASTSUB-1 MENR=LASTSUB+1 IF MENL<0 THEN MENL=(NUMSUBMENUS-1) IF MENR>(NUMSUBMENUS-1) THEN MENR=0 PAL 4 CELL 14,1,SUBMENUC(MENL)+1 CELL 14,2,SUBMENUC(MENL)+17 CELL 17,1,SUBMENUC(MENR) CELL 17,2,SUBMENUC(MENR)+16 PAL 5 CELL 15,1,SUBMENUC(LASTSUB) CELL 15,2,SUBMENUC(LASTSUB)+16 CELL 16,1,SUBMENUC(LASTSUB)+1 CELL 16,2,SUBMENUC(LASTSUB)+17 WAIT 5 WEND ELSE MENL=CURSUB-1 MENR=CURSUB+1 IF MENL<0 THEN MENL=(NUMSUBMENUS-1) IF MENR>(NUMSUBMENUS-1) THEN MENR=0 PAL 4 CELL 14,1,SUBMENUC(MENL)+1 CELL 14,2,SUBMENUC(MENL)+17 CELL 17,1,SUBMENUC(MENR) CELL 17,2,SUBMENUC(MENR)+16 PAL 5 CELL 15,1,SUBMENUC(CURSUB) CELL 15,2,SUBMENUC(CURSUB)+16 CELL 16,1,SUBMENUC(CURSUB)+1 CELL 16,2,SUBMENUC(CURSUB)+17 END IF BG FILL 13,3 TO 18,8 CHAR 32 BG TINT 13,3 TO 18,8 PAL 4 FOR I=0 TO SUBMENUCT(CURSUB)-1 G=SUBMENUGRP(CURSUB,I) PAL 4 TEXT 13,3+I,SUBMENUITEMS$(CURSUB,I) IF G>=0 THEN IF G=0 THEN IF SELSIZE=I THEN BG TINT 13,3+I TO 18,3+I PAL 7 END IF ELSE IF G=1 THEN IF DRAWMODE=I THEN BG TINT 13,3+I TO 18,3+I PAL 7 END IF ELSE IF G=2 THEN IF STYLEW-1=I THEN BG TINT 13,3+I TO 18,3+I PAL 7 END IF ELSE IF G=3 THEN IF STYLEFILL THEN IF I=4 THEN BG TINT 13,3+I TO 18,3+I PAL 7 END IF ELSE IF I=5 THEN BG TINT 13,3+I TO 18,3+I PAL 7 END IF END IF END IF END IF NEXT I LASTSUB=CURSUB END SUB SUB MENUPREV LASTSUB=CURSUB DEC CURSUB IF CURSUB<0 THEN CURSUB=NUMSUBMENUS-1 CALL DRAWSUBMENU END SUB SUB MENUNEXT LASTSUB=CURSUB INC CURSUB IF CURSUB>=NUMSUBMENUS THEN CURSUB=0 CALL DRAWSUBMENU END SUB SUB MENUITEM SUBIDX=ZONE_IN_Y IF SUBIDX>=0 AND SUBIDX32 THEN PALFILE=-1 EXIT SUB END IF LOAD PALFILE,USERPALS OK=-1 END SUB SUB BSAVEPAL F$=FILE$(PALFILE) IF F$="" THEN F$="PALETTES" SAVE PALFILE,F$,USERPALS,32 END SUB SUB UPDATEMAPINFO POKE USERBG,0 POKE USERBG+1,CELLSIZE POKE USERBG+2,MAPW POKE USERBG+3,MAPH END SUB SUB RESETBG FILL USERBG,$2004,0 MAPW=20 MAPH=16 MAPX=0 MAPY=0 CELLSIZE=0 SELCHAR=1 CALL UPDATEMAPINFO END SUB SUB BLOADBG(OK) OK=0 CALL RESETBG IF FSIZE(BGFILE)=0 THEN OK=-1 EXIT SUB END IF IF FSIZE(BGFILE)<4 OR FSIZE(BGFILE)>$2004 THEN BGFILE=-1 EXIT SUB END IF LOAD BGFILE,USERBG T=PEEK(USERBG) CELLSIZE=PEEK(USERBG+1) MAPW=PEEK(USERBG+2) MAPH=PEEK(USERBG+3) MAPX=0 MAPY=0 IF CELLSIZE=0 THEN SELCHAR=1 ELSE SELCHAR=2 'CHECK FILE FORMAT IF T=0 AND CELLSIZE<2 AND MAPW>0 AND MAPH>0 THEN OK=-1 ELSE BGFILE=-1 CALL RESETBG END IF END SUB SUB BSAVEBG F$=FILE$(BGFILE) IF F$="" THEN F$="BG" SAVE BGFILE,F$,USERBG,4+MAPW*MAPH*2 END SUB '==== GENERIC UI ==== SUB SHOWMESSAGE(MSG$) COPY $9000,$800 TO TEMPMEM PAL 5 BG FILL 0,0 TO 19,0 CHAR 128 TEXT 0,0,MSG$ WAIT 60 COPY TEMPMEM,$800 TO $9000 END SUB SUB SHOWMENU(MSG$,MAXI,RESULT) PAL 5 PRIO 1 BG FILL 0,0 TO 19,0 CHAR 128 TEXT (20-LEN(MSG$))/2,0,MSG$ PAL 4 Y=3+MAXI*2 BG FILL 0,1 TO 19,Y CHAR 1 BG FILL 0,1 TO 19,1 CHAR 3 BG FILL 0,Y TO 19,Y CHAR 5 FOR I=0 TO MAXI T$=MENU$(I) TEXT (20-LEN(T$))/2,2+I*2,T$ NEXT I WHILE TOUCH WAIT VBL WEND DO IF TOUCH AND TOUCH.Y>=12 THEN I=(((TOUCH.Y-4)\8)-1)\2 IF I<=MAXI THEN CALL HIGHLIGHT(0,2+I*2,19,2+I*2) WHILE TOUCH WAIT VBL WEND RESULT=I EXIT END IF END IF WAIT VBL LOOP PRIO 0 END SUB SUB HIGHLIGHT(X1,Y1,X2,Y2) BG TINT X1,Y1 TO X2,Y2 PAL 5 END SUB '====================================== ' DATA '-------------------------------------- ZONES: DATA 20,1,1,8,8,-1 DATA 21,10,1,2,8,-1 DATA 10,2,10,16,4,-1 DATA 11,18,10,2,2,4 DATA 12,18,12,2,2,4 ' 22: MENU LEFT, 23: MENU RIGHT DATA 22,13,1,2,2,4 DATA 23,17,1,2,2,4 ' 24: MENU ITEMS DATA 24,13,3,6,6,-1 ' 25: UNDO 26: REDO DATA 25,0,14,2,2,-1 DATA 26,0,14,2,2,-1 SUBMENUDATA: DATA "MOVE","FLIP","SEL","EDIT","FILE","DRAW","STYLE" DATA 68,70,72,74,76,78,66 SUBMENUITEMDATA: DATA 0,4 DATA 0,"UP",-1 DATA 1,"DOWN",-1 DATA 2,"LEFT",-1 DATA 3,"RIGHT",-1 DATA 1,3 DATA 0,"FLIP X",-1 DATA 1,"FLIP Y",-1 DATA 2,"SPIN",-1 DATA 2,4 DATA 0,"1X1",0 DATA 1,"2X2",0 DATA 2,"3X3",0 DATA 3,"4X4",0 DATA 3,4 DATA 0,"CLEAR",-1 DATA 1,"CUT",-1 DATA 2,"COPY",-1 DATA 3,"PASTE",-1 DATA 4,5 DATA 0,"NEW",-1 DATA 1,"LOAD",-1 DATA 2,"SAVE",-1 DATA 3,"FONT",-1 DATA 4,"PAGE",-1 DATA 5,5 DATA 0,"PENCIL",1 DATA 1,"LINE",1 DATA 2,"RECT",1 DATA 3,"ELLIPS",1 DATA 4,"FILL",1 DATA 6,6 DATA 0,"1 PX",2 DATA 1,"2 PX",2 DATA 2,"3 PX",2 DATA 3,"4 PX",2 DATA 4,"FILL",3 DATA 5,"NOFILL",3 '====================================== ' ROMS '-------------------------------------- #1:MAIN PALETTES 053F2F0000383400003C0C00003F3C00 003F2A15002F0A050030052F002F0530 #2:MAIN CHARACTERS 00000000000000000000000000000000 F0F0F0F0000000000000000000000000 0000000000000000F0F0F0F000000000 F0F0F0F000000000F0F0F0F000000000 0F0F0F0F000000000000000000000000 FFFFFFFF000000000000000000000000 0F0F0F0F00000000F0F0F0F000000000 FFFFFFFF00000000F0F0F0F000000000 00000000000000000F0F0F0F00000000 F0F0F0F0000000000F0F0F0F00000000 0000000000000000FFFFFFFF00000000 F0F0F0F000000000FFFFFFFF00000000 0F0F0F0F000000000F0F0F0F00000000 FFFFFFFF000000000F0F0F0F00000000 0F0F0F0F00000000FFFFFFFF00000000 FFFFFFFF00000000FFFFFFFF00000000 00000000000000000000000000000000 00000000F0F0F0F00000000000000000 000000000000000000000000F0F0F0F0 00000000F0F0F0F000000000F0F0F0F0 000000000F0F0F0F0000000000000000 00000000FFFFFFFF0000000000000000 000000000F0F0F0F00000000F0F0F0F0 00000000FFFFFFFF00000000F0F0F0F0 0000000000000000000000000F0F0F0F 00000000F0F0F0F0000000000F0F0F0F 000000000000000000000000FFFFFFFF 00000000F0F0F0F000000000FFFFFFFF 000000000F0F0F0F000000000F0F0F0F 00000000FFFFFFFF000000000F0F0F0F 000000000F0F0F0F00000000FFFFFFFF 00000000FFFFFFFF00000000FFFFFFFF 0000000000000000FFFFFFFFFFFFFFFF 00000000000000FFFFFFFFFFFFFFFFFF 0101010101010101FFFFFFFFFFFFFFFF FF0000000000000000FFFFFFFFFFFFFF 80808080808080807F7F7F7F7F7F7F7F 81818181818181817F7F7F7F7F7F7F7F FF000000000000FF00FFFFFFFFFFFFFF FF808080808080800000000000000000 FF010101010101010000000000000000 FF80808080808080007F7F7F7F7F7F7F FE0101010101010101FFFFFFFFFFFFFF FF80808080818387007F7F7F7F7F7F7F FE0101010181C1E101FFFFFFFFFFFFFF FF80808080809F8F007F7F7F7F7F7F7F FE0101010101F9F101FFFFFFFFFFFFFF 00000000000000000000000000000000 00000000000000000000000000000000 FFFFFFFFFFFFFFFF0000000000000000 0000000000000000FFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FE808080808080000000000000000000 808080808080807F7F7F7F7F7F7F7FFF FF0101010101010100FFFFFFFFFFFFFF 80808080808080FF0000000000000000 01010101010101FF0000000000000000 808080808080807F7F7F7F7F7F7F7FFF 01010101010101FFFFFFFFFFFFFFFFFF 8F9F80808080807F7F7F7F7F7F7F7FFF F1F90101010101FFFFFFFFFFFFFFFFFF 878381808080807F7F7F7F7F7F7F7FFF E1C18101010101FFFFFFFFFFFFFFFFFF 00000000000000000000000000000000 FF80808080818387007F7F7F7F7F7F7F FE010141C1C1C1C101FFFFFFFFFFFFFF 007E7E00007E7E7EFF81FFFFFF8181FF 007E7E7E7E7E7E00FF8181818181FFFF 000103070709193EFFFEFCF8FEF6E7C1 0080C0E0E090987CFF7F3F1F7F6FE783 0000020206060E0EFFFFFDFDF9F9F1F1 00008080C0C0A0A0FFFF7FFF3FFF5FFF 00540040004D0D0DFFFFFFFFFFF2F6F2 002A000200A2A0A0FFFFFFFFFF5FDF5F 0076776565777600FF89BA9ABA89FFFF 005C5C4848484800FFA3B7B7B7B7FFFF 007F40417F7F7F7EFFFFFFFEC0FFFEFD 00FEBE7EFEFCFE7EFFFF5F9F1FFF7FBF 00CCEEAEAEEACA00FF3355535535FFFF 004AEAEEEEAEAA00FFB555115155FFFF 878381808080807F7F7F7F7F7F7F7FFF C1C1C1C1410101FFFFFFFFFFFFFFFFFF 0000007E7E7E7E00FFFFFF818181FFFF 007E7E42427E7E00FF81BDBDBD81FFFF 3E3E190907070301C1E7F6FEF8FCFEFF 7C7C9890E0E0C08083E76F7F1F3F7FFF 0E1E1E1E3E3E0000F1E1E1E1C1FFFFFF A0A09090A8A800005FFF6FFF57FFFFFF 0D0D4D0040005400FAF2FFFFFFFFFFFF A0B0B20002002A00DF4FFFFFFFFFFFFF 73787D7C7D7C7D00FFCFD7C7D7D7FFFF B81CBE1EBE1EBE00FFE7EBE3EBEBFFFF 7E7F7F7F7F7F7F00FDFEFFFFFFFFFFFF 7EFEFEFEFE7EFE00BF7FFF7F7FFFFFFF 081422757A7C7800FFFFFFDFCFE7FFFF 101038387C7C3800FFFFFFFFFFDFFFFF FE8181858D9DBDFD017F7F7F7F7F7F7F FE8181C1E1F1F9FD017F7F7F7F7F7F7F FF82868E9FBFBF9F007D797160406071 FF010101F1F9FDFD00FFFFFF0F0703C3 FF8080808F9FBFBF007F7F7F70604043 FF416171F9FDFDF900BF9F8F0703078F FF004E4E4A4A6E6E00FFB1B5B5B591FF FF01EDEFEBEBAFAD00FF1355155553FF FF006E6E6E6E6A6A00FF91B591D595FF FF01AFAFADADEF4F00FF51575357B1FF 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 FDBD9D8D8581817F7F7F7F7F7F7F7FFF FDF9F1E1C181817F7F7F7F7F7F7F7FFF 8E8682808080807F797D7F7F7F7F7FFF 3D1D3DFDFDF9E1FFE3E3C303071FFFFF BCB8BCBFBF9F8F7F4747434060707FFF 71614101010101FF9FBFFFFFFFFFFFFF 00010307070303FFFFFEFCF8FCFCFFFF 010181C1C18181FFFFFF7F3F7F7FFFFF 00030307070301FFFFFCFCF8FCFEFFFF 018181C1C18101FFFF7F7F3F7FFFFFFF 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 00001410200421042104210421042104 21042104210420042104210420042104 21042104210421042104200422040000 00000000000000000000000000002504 00000000250460044704480549054A04 61042404220400000000000000000000 00000000000025040000000025047004 5704580559055A047104240422040000 00000000000000000000000000002504 3100310025049107B807910720072007 20062404220400000000000000000000 00000000000025043100310025049204 B8049204200420042004240422040000 00000000000000000000000000002504 3200320025049304B804930420042004 20042404220400000000000000000000 00000000000025043200320025049404 B8049404200420042004240422040000 00000000000000000000000000002504 33003300250420042004200420042004 20042404220400000000000000000000 00000000000025043300330025042004 20042004200420042004240421042604 26042604260426042604260426042104 26042604210426042604260426042604 26042104200422040000000000000000 00000000000000000000000000000000 00000000000000002B042C0420042204 00000000000000000000000000000000 00000000000000000000000000000000 3B043C04200422040000000000000000 00000000000000000000000000000000 00000000000000002D042E0420042204 00000000000000000000000000000000 00000000000000000000000000000000 3D043E04620463046404650423042304 23042304230423042304230423042304 23042304230423042304230472047304 74047504320432043204320432043204 32043204320432043204320432043204 32042004 #4:DISK BG 00001420320732073207320732073207 32073207320732073207320732073207 32073207320732073207320726042604 26042604260426042604260426042604 26042604260426042604260426042604 26042604320432043204320432043204 32043204320432043204320432043204 32043204320432042B042C0432043204 32043204320432043204320432043204 32043204320432043204320432043204 3B043C04320432043204320432043204 32043204320432043204320432043204 32043204320432042404320432043204 32043204320432043204320432043204 32043204320432043204320432043204 24043204320432043204320432043204 32043204320432043204320432043204 32043204320432042404320432043204 32043204320432043204320432043204 32043204320432043204320432043204 24043204320432043204320432043204 32043204320432043204320432043204 32043204320432042404320432043204 32043204320432043204320432043204 32043204320432043204320432043204 24043204320432043204320432043204 32043204320432043204320432043204 32043204320432042404320432043204 32043204320432043204320432043204 32043204320432043204320432043204 2D042E04320432043204320432043204 32043204320432043204320432043204 32043204320432043D043E0426042604 26042604260426042604260426042604 26042604260426042604260426042604 26042604230423042304230423042304 23042304230423042304230423042304 23043604660467046804690420042004 20042004200420042004200420042004 20042004200420042004220476047704 78047904230423042304230423042304 23042304230423042304230423042304 23043604660467046804690420042004 20042004200420042004200420042004 20042004200420042004220476047704 78047904230423042304230423042304 23042304230423042304230423042304 23043604660467046804690420042004 20042004200420042004200420042004 20042004200420042004220476047704 78047904000000000000000000000000 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 00000000 #5:BIG EDIT BG 00001410000000000000000000000000 00000000000000000000000000000000 00000000250442044304240400000000 00000000000000000000000000000000 00000000000000000000000025045204 53042404000000000000000000000000 00000000000000000000000000000000 00000000240426042604200400000000 00000000000000000000000000000000 00000000000000000000000025040000 00002404000000000000000000000000 00000000000000000000000000000000 00000000250400000000240400000000 00000000000000000000000000000000 00000000000000000000000025043104 31042404000000000000000000000000 00000000000000000000000000000000 00000000250431043104240400000000 00000000000000000000000000000000 00000000000000000000000025042004 20042404000000000000000000000000 00000000000000000000000000000000 00000000250420042004240400000000 00000000000000000000000000000000 00000000000000000000000025043304 33042404000000000000000000000000 00000000000000000000000000000000 00000000250433043304240400000000 00000000000000000000000000000000 00000000000000000000000035042604 26042104000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000