Home » Archimedes archive » Archimedes World » AW-1994-05-Disc1.adf » Disk1May94 » !AWMay94/Goodies/Italic/!Italix/!RunImage
!AWMay94/Goodies/Italic/!Italix/!RunImage
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
Tape/disk: | Home » Archimedes archive » Archimedes World » AW-1994-05-Disc1.adf » Disk1May94 |
Filename: | !AWMay94/Goodies/Italic/!Italix/!RunImage |
Read OK: | ✔ |
File size: | 46A0 bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
10REM >!RunImage for !Italix 20REM By Ben Schofield 30REM LEN1994 Archimedes World 40REM Hello hackers, 50REM I know that this program isn't a major work of master programming 60REM but watch out for my Disassembler, coming soon... 70ON ERROR OSCLI"Error Pre-init error ["+REPORT$+" / "+ERL+"]" 80: 90task_version$="1.46" 100task_name$="Italix" 110task_path$="<Italix$Dir>.Resources." 120LIBRARY task_path$+"DSLib" 130: 140task_handle=FNtask_init(310) 150: 160PROCmess_load(task_path$+"Messages") 170ON ERROR PROCerror_rep 180: 190PROCinit 200: 210REM Check that Font$Path is correctly set 220REM If you are having problems with this utility sodding up the machine's 230REM fonts, then REM out these lines. And don't swear at me too much, I can't 240REM find anything in the PRMs or Style Guide about it! 250exists=FNvar_checkexistance("Font$Path") 260IF exists=TRUE THEN 270 a$=FNvar_get("Font$Path") 280ELSE 290 a$="" 300ENDIF 310IF INSTR(a$,".,Resources:$.Fonts.")=0 OR exists=FALSE THEN 320 SYS"OS_SetVarVal","Font$Path","<Font$Prefix>.,Resources:$.Fonts.",,,2 330 OSCLI"FontInstall" 340ENDIF 350: 360PROCtemp_open(task_path$+"Templates") 370DIM font_info 256, font_main 256, font_xfse 256, font_mes1 256, font_mes2 256 380winh_info=FNtemp("proginfo",font_info) 390winh_main=FNtemp("main",font_main) 400winh_xfse=FNtemp("xfer_send",font_xfse) 410winh_mes1=FNtemp("message1",font_mes1) 420winh_mes2=FNtemp("message2",font_mes2) 430SYS "Wimp_CloseTemplate" 440: 450PROCloadchoices 460: 470DIM men_misc FNmenu_space(3) 480PROCmenu_make(men_misc,"mMi",STR$winh_info+"##",3) 490DIM men_main FNmenu_space(3) 500PROCmenu_make(men_main,"mMa",STR$men_misc+"#"+STR$winh_xfse+"#",3) 510DIM men_bar FNmenu_space(2) 520PROCmenu_make(men_bar,"mBa",STR$winh_info+"#",2) 530: 540PROCic_ch(task_name$+" v"+task_version$,7,winh_info) 550PROCic_makeindspr("drophere",isb%,10,winh_main,ish%) 560: 570PROCibar 580: 590PROCactions_shade(1) 600: 610REM Polling loop 620REPEAT 630 SYS"Wimp_Poll",1,block TO reason 640 CASE reason OF 650 WHEN 1:PROCredraw 660 WHEN 2:SYS "Wimp_OpenWindow",,block 670 WHEN 3:SYS "Wimp_CloseWindow",,block 680 WHEN 6:PROCclick(block!0,block!4,block!8,block!12,block!16) 690 WHEN 7:PROCfile_dragend 700 WHEN 8:PROCkey(!block,block!4,block!24) 710 WHEN 9:PROCmenu_sel(block!0,block!4) 720 WHEN 17,18:PROCmess 730 ENDCASE 740UNTIL FALSE 750: 760DEFPROCquit 770SYS "MessageTrans_CloseFile",mess_desc% 780SYS "Wimp_CloseDown",task_handle,&4B534154 790END 800ENDPROC 810: 820DEFPROCredraw 830SYS "Wimp_RedrawWindow",,block TO more 840WHILE more 850 SYS "Wimp_GetRectangle",,block TO more 860ENDWHILE 870ENDPROC 880: 890DEFPROCinit 900DIM temp_block 1400 910temp_ilen=1500 920DIM temp_ibuff temp_ilen 930temp_ipoint=temp_ibuff 940DIM block 256 950DIM iblk 64 960DIM ibtxt 20 970DIM spr% 1000 ,isb% 64 980!spr%=1000 990spr%!8=16 1000SYS&2E,9+256,spr% 1010SYS&2E,10+256,spr%,task_path$+"Sprites" 1020SYS"Wimp_SlotSize",-1,-1 TO appsize_orig 1030data_start=HIMEM+8 1040xfer_xferring=FALSE 1050xfer_point=data_start 1060file_loaded=FALSE 1070file_sheared=FALSE 1080ENDPROC 1090: 1100DEFPROCkey(wh%,ih%,keycode%) 1110IF keycode%=13 THEN 1120 CASE wh% OF 1130 WHEN winh_main:IF ih%=14 PROCshear_anglelimits 1140 WHEN winh_xfse:IF ih%=2 PROCfile_save(FNic_rd(2,winh_xfse)):ENDPROC 1150 ENDCASE 1160ELSE 1170 SYS"Wimp_ProcessKey",keycode% 1180ENDIF 1190ENDPROC 1200: 1210DEFPROCclick(msx%,msy%,msb%,mswh%,msih%) 1220CASE mswh% OF 1230 WHEN -2:CASE msb% OF 1240 WHEN 1,4:PROCwindow_open(winh_main) 1250 WHEN 2:SYS"Wimp_CreateMenu",,men_bar,msx%-64,184:menu_last=men_bar 1260 ENDCASE 1270 WHEN winh_main:CASE msb% OF 1280 WHEN 1,4:CASE msih% OF 1290 WHEN 4,5,6:PROCradiolock(1,msih%,mswh%) 1300 WHEN 7,8,9:PROCradiolock(2,msih%,mswh%) 1310 WHEN 15:PROCshear 1320 WHEN 16:PROCstartdraw 1330 WHEN 17:PROCwindow_open(winh_xfse) 1340 WHEN 18:PROCfile_drop 1350 WHEN 20,21:PROCradiolock(3,msih%,mswh%) 1360 ENDCASE 1370 WHEN 2:SYS"Wimp_CreateMenu",,men_main,msx%-64,msy%:menu_last=men_main 1380 ENDCASE 1390 WHEN winh_xfse:IF msb%=1 OR msb%=4 CASE msih% OF 1400 WHEN 0:PROCsave(FNic_rd(2,winh_xfse)) 1410 WHEN 1:PROCwindow_close(winh_xfse) 1420 WHEN 3:PROCfile_draginit 1430 ENDCASE 1440ENDCASE 1450ENDPROC 1460: 1470DEFPROCmess 1480shan=block!4 1490sref=block!8 1500CASE block!16 OF 1510 WHEN 0:PROCquit 1520 WHEN 1 1530 IF FNvar_checkexistance("Wimp$Scrap")=FALSE PROCmess_box1("NOSCRAP","","OK"):ENDPROC 1540 IF block!40=&AFF THEN 1550 !block=256 1560 block!12=block!8 1570 block!16=2 1580 block!36=-1 1590 $(block+44)="<Wimp$Scrap>"+CHR$0 1600 SYS"Wimp_SendMessage",17,block,block!4 1610 file_loadref=block!8 1620 ELSE 1630 PROCmess_box1("ONLYDRAW","","OK") 1640 ENDIF 1650 WHEN 2 1660 CASE block!12 OF 1670 WHEN file_saveref 1680 path$=FNrd0(block+44) 1690 PROCfile_save(path$) 1700 IF file_savedOK=TRUE PROCfile_supload(path$) 1710 SYS"Wimp_CreateMenu",,-1 1720 PROCwindow_close(winh_xfse) 1730 OTHERWISE 1740 PROCfile_unex("DSAVEACK") 1750 ENDCASE 1760 WHEN 3 1770 CASE block!12 OF 1780 WHEN 0:PROCfile_load(0) 1790 WHEN file_loadref:PROCfile_load(1) 1800 OTHERWISE 1810 PROCfile_unex("DLOAD") 1820 ENDCASE 1830 WHEN 6:xfer_lastref=block!8:PROCfile_xfer 1840 WHEN &502:PROChelpreq 1850ENDCASE 1860ENDPROC 1870: 1880DEFPROChelpreq 1890a$="hlp_" 1900IF block!36=-1 THEN 1910 a$+="xxX" 1920ELSE 1930 CASE block!32 OF 1940 WHEN winh_main:a$+="Ma"+STR$(block!36) 1950 WHEN winh_xfse:a$+="Xf"+STR$(block!36) 1960 WHEN winh_info:a$+="InX" 1970 WHEN -2:a$+="BaX" 1980OTHERWISE 1990 SYS"Wimp_GetMenuState",1,block+40,block!32,block!36 2000 snum0=block!40:snum1=block!44 2010 CASE menu_last OF 2020 WHEN men_bar:a$+="mBa"+STR$snum0 2030 WHEN men_main:IF snum0=0 THEN 2040 IF snum1>-1 a$+="mMi"+STR$snum1 ELSE a$+="mMa"+STR$snum0 2050 ELSE 2060 a$+="mMa"+STR$snum0 2070 ENDIF 2080 ENDCASE 2090 ENDCASE 2100ENDIF 2110$mess_genbuff%=a$+CHR$0 2120SYS"XMessageTrans_Lookup",mess_desc%,mess_genbuff%,mess_genbuff%,255,0,0,0,0 TO ;vset 2130IF (vset AND 1)=0 a$=FNrd0(mess_genbuff%) ELSE a$=FNtoken("hlp_xxX","") 2140!block=256 2150block!12=block!8 2160block!16=&503 2170$(block+20)=a$+CHR$0 2180SYS"Wimp_SendMessage",17,block,block!4 2190ENDPROC 2200: 2210DEFPROCibar 2220!iblk=-1 2230iblk!4=0 2240iblk!8=4 2250iblk!12=64 2260iblk!16=72 2270iblk!20=&311A 2280iblk!24=ibtxt 2290iblk!28=spr% 2300iblk!32=11 2310$ibtxt="italix_ibar" 2320SYS "Wimp_CreateIcon",,iblk TO ihan_ibar 2330ENDPROC 2340: 2350DEFPROCmenu_sel(snum0,snum1) 2360CASE menu_last OF 2370 WHEN men_bar:IF snum0=1 PROCquit 2380 WHEN men_main:CASE snum0 OF 2390 WHEN 0:CASE snum1 OF 2400 WHEN 1:PROCsavechoices 2410 WHEN 2:PROCstartdraw 2420 ENDCASE 2430 WHEN 2:PROCfile_drop 2440 ENDCASE 2450ENDCASE 2460SYS"Wimp_GetPointerInfo",,block 2470IF block!8=1 THEN SYS"Wimp_CreateMenu",,men_main ELSE SYS"Wimp_CreateMenu",,-1 2480ENDIF 2490ENDPROC 2500: 2510DEFPROCactions_shade(bit) 2520FOR i%=15 TO 18 2530 PROCic_grey(bit,i%,winh_main) 2540NEXT 2550PROCmen_grey(bit,men_main,1) 2560PROCmen_grey(bit,men_main,2) 2570PROCmen_grey(bit,men_misc,2) 2580ENDPROC 2590: 2600DEFPROCshear 2610IF file_sheared=TRUE IF FNmess_box2("SHEARAGAIN","","CANCEL","SHEAR","")=1 ENDPROC 2620shear=FNwhich(1,winh_main)-4 2630shear_from=FNwhich(2,winh_main)-7 2640PROCshear_anglelimits 2650IF FNwhich(3,winh_main)=21 shear_deg=NOT(shear_deg)+1 2660SYS"Hourglass_On" 2670CASE shear OF 2680 WHEN0,1 2690 PROCdsl_shear(data_start,data_end,shear_deg,shear,shear_from) 2700 WHEN2 2710 PROCdsl_shear(data_start,data_end,shear_deg,0,shear_from) 2720 PROCdsl_shear(data_start,data_end,shear_deg,1,shear_from) 2730ENDCASE 2740SYS"Hourglass_Off" 2750VDU7:a=INKEY(8) 2760VDU7 2770PROCwindow_open(winh_xfse) 2780file_sheared=TRUE 2790ENDPROC 2800: 2810DEFPROCshear_anglelimits 2820num$=FNic_rd(14,winh_main) 2830shear_deg=VAL(num$) 2840IF shear_deg>89 shear_deg=89:PROCic_ch(STR$(shear_deg),14,winh_main) 2850ENDPROC 2860: 2870DEFPROCstartdraw 2880REM It is VITAL that the block length isn't set to 256. 2890REM Thumbs up to Acorn for bug-testing properly.... 2900call=0 2910REPEAT 2920 SYS"TaskManager_EnumerateTasks",call,block,24 TO call 2930 tnp=block!4 2940 IF call>0 a$=FNrd0(tnp) 2950UNTIL call<0 OR a$="Draw" 2960IF a$="Draw" drawhan=!block 2970IF call<0 SYS"Wimp_StartTask","Filer_Run Resources:$.Apps.!Draw" TO drawhan 2980IF drawhan=0 ENDPROC 2990xfer_point=data_start 3000xfer_xferring=FALSE 3010block!0=256 3020block!12=0 3030block!16=1 3040block!40=&AFF 3050$(block+44)="Italixed"+CHR$0 3060SYS"Wimp_SendMessage",17,block,drawhan 3070file_saveref=block!8 3080ENDPROC 3090: 3100DEFPROCfile_load(delete) 3110IF block!40<>&AFF PROCmess_box1("ONLYDRAW","","OK"):ENDPROC 3120file_name$=FNrd0(block+44) 3130IF file_loaded=TRUE THEN 3140 a=FNmess_box2("ALRLOAD","","CANCEL","DISCARD","") 3150 IF a=1 AND delete=1 SYS"XOS_File",6,file_name$ 3160 IF a=1 ENDPROC 3170ENDIF 3180SYS"OS_File",23,file_name$ TO found,,,,data_length 3190IF found<>1 PROCmess_box1(FNmess_lookup("NOTFOUND"),FNrodot(file_name$),"OK"):ENDPROC 3200SYS"Wimp_SlotSize",appsize_orig+8+data_length+8,-1 TO size 3210IF size<(appsize_orig+8+data_length+8) PROCmess_box1("CANTCLAIM",STR$(INT(data_length/1024)+1),"OK"):SYS"Wimp_SlotSize",appsize_orig,-1:ENDPROC 3220SYS"OS_File",16,file_name$,data_start,0 3230IF found<>1 PROCmess_box1("NOTFOUND",FNrodot(file_name$),"OK"):ENDPROC 3240IF delete=1 SYS"XOS_File",6,file_name$ 3250!block=256 3260block!12=sref 3270block!16=4 3280SYS"Wimp_SendMessage",17,block,shan 3290file_loaded=TRUE 3300file_sheared=FALSE 3310data_end=data_length+data_start 3320PROCactions_shade(0) 3330PROCwindow_open(winh_main) 3340ENDPROC 3350: 3360DEFPROCfile_drop 3370file_loaded=FALSE 3380file_sheared=FALSE 3390SYS"Wimp_SlotSize",appsize_orig,-1 3400PROCactions_shade(1) 3410PROCwindow_close(winh_xfse) 3420ENDPROC 3430: 3440DEFPROCfile_unex(a$) 3450SYS"XTaskManager_TaskNameFromHandle",block!4 TO a;vset 3460IF (vset AND 1)>0 ENDPROC 3470taskn$=FNrd0(a) 3480PROCmess_box1(a$,taskn$,"OK"):ENDPROC 3490ENDPROC 3500: 3510DEFPROCfile_draginit 3520!block=winh_xfse 3530SYS"Wimp_GetWindowState",,block 3540x0=block!4 3550y1=block!16 3560!block=winh_xfse 3570block!4=3 3580SYS"Wimp_GetIconState",,block 3590minx=block!8+x0:miny=block!12+y1 3600maxx=block!16+x0:maxy=block!20+y1 3610!block=minx 3620block!4=miny 3630block!8=maxx 3640block!12=maxy 3650SYS"DragASprite_Start",%11000101,1,"file_aff",block 3660PROCic_valid("R2;Pptr_hand",3,winh_xfse) 3670ENDPROC 3680: 3690DEFPROCfile_dragend 3700PROCic_valid("R2;Sfile_aff;Pptr_hand",3,winh_xfse) 3710SYS"DragASprite_Stop" 3720SYS"Wimp_GetPointerInfo",,block 3730file_destx=block!0 3740file_desty=block!4 3750file_destwi=block!12 3760file_destic=block!16 3770leaf$=FNrodot(FNic_rd(2,winh_xfse)) 3780block!0=256 3790block!12=0 3800block!16=1 3810block!20=file_destwi 3820block!24=file_destic 3830block!28=file_destx 3840block!32=file_desty 3850block!36=data_length 3860block!40=&AFF 3870$(block+44)=leaf$+CHR$0 3880SYS"Wimp_SendMessage",17,block,file_destwi,file_destic 3890file_saveref=block!8 3900PROCwindow_close(winh_xfse) 3910ENDPROC 3920: 3930DEFPROCfile_save(a$) 3940file_savedOK=FALSE 3950SYS"XOS_File",10,a$,&AFF,,data_start,data_end TO e;vset 3960vset=vset AND 1 3970IF vset=0 file_savedOK=TRUE ELSE PROCmess_box1("SAVEFAILED",FNrd0(e+4),"OK") 3980ENDPROC 3990: 4000DEFPROCfile_supload(a$) 4010block!0=256 4020block!12=sref 4030block!16=3 4040block!20=file_destwi 4050block!24=file_destic 4060block!28=file_destx 4070block!32=file_desty 4080block!36=data_length 4090block!40=&AFF 4100$(block+44)=a$+CHR$0 4110SYS"Wimp_SendMessage",17,block,file_destwi,file_destic 4120ENDPROC 4130: 4140DEFPROCfile_xfer 4150REM this part is a bit of bodge, but it works! 4160xfer_destpoint=block!20 4170xfer_destlength=block!24 4180x=block!4 4190IF xfer_xferring=FALSE xfer_point=data_start:xfer_xferring=TRUE 4200IF xfer_point<data_end THEN 4210 IF (xfer_point+xfer_destlength)>data_end xfer_destlength=data_end-xfer_point 4220 SYS"Wimp_TransferBlock",task_handle,xfer_point,x,xfer_destpoint,xfer_destlength 4230 xfer_point+=xfer_destlength 4240ELSE 4250 xfer_xferring=FALSE 4260ENDIF 4270IF xfer_point>data_end xfer_xferring=FALSE 4280!block=256 4290block!4=x 4300block!12=xfer_lastref 4310block!16=7 4320block!20=xfer_destpoint 4330CASE xfer_xferring OF 4340 WHEN TRUE 4350 block!24=xfer_destlength 4360 type=18 4370OTHERWISE 4380 block!24=0 4390 type=17 4400ENDCASE 4410SYS"Wimp_SendMessage",type,block,block!4 4420ENDPROC 4430: 4440DEFPROCsavechoices 4450esg1=FNwhich(1,winh_main) 4460esg2=FNwhich(2,winh_main) 4470esg3=FNwhich(3,winh_main) 4480PROCshear_anglelimits 4490block!0=esg1 4500block!4=esg2 4510block!8=esg3 4520block!12=shear_deg 4530SYS"XOS_File",17,task_path$+"Choices" TO found,,,,,attrib 4540IF found=1 THEN 4550 attrib=attrib AND %10 4560 SYS"XOS_File",4,task_path$+"Choices",,,,attrib 4570ENDIF 4580SYS"XOS_File",10,task_path$+"Choices",&FFD,,block,block+16 TO e;vset 4590IF (vset AND 1)>0 PROCmess_box1("SAVEFAILED",FNrd0(e+4),"OK") 4600ENDPROC 4610: 4620DEFPROCloadchoices 4630SYS"XOS_File",16,task_path$+"Choices",block,0 TO found ;flags 4640IF (flags AND 1)=1 OR found<>1 THEN 4650 esg1=5 4660 esg2=8 4670 esg3=20 4680 shear_deg=30 4690ELSE 4700 esg1=block!0 4710 esg2=block!4 4720 esg3=block!8 4730 shear_deg=block!12 4740ENDIF 4750FOR i%=0 TO 2 4760 IF esg1=(i%+4) bit=1 ELSE bit=0 4770 PROCic_sel(bit,i%+4,winh_main) 4780 IF esg2=(i%+7) bit=1 ELSE bit=0 4790 PROCic_sel(bit,i%+7,winh_main) 4800NEXT 4810FOR i%=20 TO 21 4820 IF esg3=i% bit=1 ELSE bit=0 4830 PROCic_sel(bit,i%,winh_main) 4840NEXT 4850PROCic_ch(STR$shear_deg,14,winh_main) 4860ENDPROC 4870: 4880DEFFNtask_init(ver):DIM task_id% 20:$(task_id%+4)="TASK":!task_id%=0:SYS"Wimp_Initialise",ver,task_id%!4,task_name$,task_id% TO a,b:=b 4890DEFPROCtemp_open(fnam$) 4900SYS"XOS_File",23,fnam$ TO found,,,,temp_filelength ;flags 4910flags=flags AND 1 4920IF flags=1 OR found<>1 PROCmess_box1("NOLOAD",fnam$,"OK"):END 4930SYS"Wimp_OpenTemplate",,fnam$ 4940ENDPROC 4950DEFFNtemp(a$,fontref) 4960SYS "Wimp_LoadTemplate",,temp_block,temp_ipoint,(temp_ibuff+temp_ilen),fontref,a$,0 TO ,,temp_ipoint,,,,fnd% 4970SYS "Wimp_CreateWindow",,temp_block TO handle 4980=handle 4990DEFPROCwindow_open(han) 5000block!0=han 5010SYS "Wimp_GetWindowState",,block 5020SYS "Wimp_OpenWindow",,block 5030ENDPROC 5040DEFPROCwindow_close(han) 5050block!0=han 5060SYS "Wimp_CloseWindow",,block 5070ENDPROC 5080DEFPROCwindow_position(han,x,y) 5090block!0=han 5100SYS "Wimp_GetWindowState",,block 5110xS=block!12-block!4 5120yS=block!16-block!8 5130block!4=x 5140block!8=y 5150block!12=x+xS 5160block!16=y+yS 5170SYS "Wimp_OpenWindow",,block 5180ENDPROC 5190DEFPROCic_ch(data$,inum,hand) 5200block!0=hand 5210block!4=inum 5220SYS "Wimp_GetIconState",,block 5230block!8=0 5240block!12=0 5250$(block!28)=data$ 5260block!36=LEN(data$) 5270SYS "Wimp_SetIconState",,block 5280ENDPROC 5290DEFFNic_rd(inum,hand) 5300block!0=hand 5310block!4=inum 5320SYS "Wimp_GetIconState",,block 5330=$(block!28) 5340DEFPROCic_makeindspr(a$,adr,inum,hand,RETURN ihan) 5350adr!0=hand 5360adr!4=inum 5370SYS"Wimp_GetIconState",,adr 5380adr!4=adr!8 5390adr!8=adr!12 5400adr!12=adr!16 5410adr!16=adr!20 5420adr!20=&11A 5430adr!24=(adr+42) 5440$(adr+42)=a$+CHR$0 5450adr!28=spr% 5460adr!32=LEN(a$) 5470SYS"Wimp_CreateIcon",,adr TO ihan 5480ENDPROC 5490DEFPROCic_valid(data$,inum,hand) 5500block!0=hand 5510block!4=inum 5520SYS "Wimp_GetIconState",,block 5530block!8=0 5540block!12=0 5550$(block!32)=data$ 5560SYS "Wimp_SetIconState",,block 5570ENDPROC 5580DEFPROCic_sel(bit,inum,hand) 5590IF bit<>0 bit=1<<21 5600block!0=hand 5610block!4=inum 5620SYS "Wimp_GetIconState",,block 5630block!8=bit 5640block!12=1<<21 5650SYS "Wimp_SetIconState",,block 5660ENDPROC 5670DEFPROCic_grey(bit,inum,hand) 5680IF bit<>0 bit=1<<22 5690block!0=hand 5700block!4=inum 5710SYS "Wimp_GetIconState",,block 5720block!8=bit 5730block!12=1<<22 5740SYS "Wimp_SetIconState",,block 5750ENDPROC 5760DEFFNic_readsel(inum,hand) 5770block!0=hand 5780block!4=inum 5790SYS "Wimp_GetIconState",,block 5800iflags=block!24 5810iflags=iflags AND (1<<21) 5820IF iflags>0 =1 ELSE =0 5830DEFPROCmenu_make(menblok,base$,j$,items) 5840LOCAL sub$,xx$,lbit$,ptr,submenp 5850$menblok=FNtoken(base$+"T","") 5860menblok?12=7 5870menblok?13=2 5880menblok?14=7 5890menblok?15=0 5900menblok!16=(VAL(FNtoken(base$+"W",""))*16)+16 5910menblok!20=44 5920menblok!24=0 5930ptr=28 5940sub$=j$ 5950def$=FNtoken(base$+"D","") 5960FOR i%=1 TO items 5970 lbit$=LEFT$(sub$,INSTR(sub$,"#")-1) 5980 sub$=RIGHT$(sub$,LEN(sub$)-INSTR(sub$,"#")) 5990 menblok!ptr=0 6000 IF LEFT$(lbit$,1)="�" lbit$=RIGHT$(lbit$,LEN(lbit$)-1):menblok!ptr=(menblok!ptr) OR %1000 6010 IF LEFT$(lbit$,1)="|" lbit$=RIGHT$(lbit$,LEN(lbit$)-1):menblok!ptr=(menblok!ptr) OR %10 6020 IF i%=items menblok!ptr=menblok!ptr OR %10000000 6030 IF lbit$="" submenp=-1 ELSE submenp=VAL(lbit$) 6040 menblok!(ptr+4)=submenp 6050 menblok!(ptr+8)=&7009031 6060 lbit$=LEFT$(def$,INSTR(def$,",")-1) 6070 def$=RIGHT$(def$,LEN(def$)-INSTR(def$,",")) 6080 $(menblok+(ptr+12))=lbit$ 6090 ptr+=24 6100NEXT 6110ENDPROC 6120DEFFNmenu_space(num) 6130=(num*24)+28+8 6140DEFFNrd0(rdzp) 6150rdz$="" 6160rdzz=0 6170REPEAT 6180 IF rdzp?rdzz<>0 rdz$+=CHR$(rdzp?rdzz):rdzz+=1 6190UNTIL rdzp?rdzz=0 OR rdzp=255 6200=rdz$ 6210DEFPROCerror_rep 6220block!0=0 6230$(block+4)=FNtoken("FATALINT",STR$ERL+" ("+REPORT$+")") 6240VDU 7 6250SYS &400DF,block,0,task_name$ 6260SYS "Wimp_CloseDown",task_handle,&4B534154:END 6270ENDPROC 6280DEFPROCmen_tick(bit,hand,num) 6290num=num*24 6300num+=28 6310num+=hand 6320a=!num 6330IF (a AND 1)=0 AND bit>0 !num=a+1 6340IF (a AND 1)>0 AND bit=0 !num=a-1 6350ENDPROC 6360DEFPROCmen_grey(bit,hand,num) 6370num=num*24 6380num+=36 6390num+=hand 6400a=!num 6410IF (a AND (1<<22))=0 AND bit>0 !num=a+(1<<22) 6420IF (a AND (1<<22))>0 AND bit=0 !num=a-(1<<22) 6430ENDPROC 6440DEFFNrodot(a$) 6450IF INSTR(a$,".")=0 =a$ 6460i=LENa$ 6470REPEAT:i-=1:UNTIL MID$(a$,i,1)="." 6480=RIGHT$(a$,LENa$-i) 6490DEFPROCradiolock(esg,icon,window) 6500esg=(esg<<16)+&200000 6510SYS"Wimp_WhichIcon",window,block,&3F0000,esg 6520IF !block=-1 PROCic_sel(1,icon,window) 6530ENDPROC 6540DEFFNwhich(esg,window) 6550esg=(esg<<16)+&200000 6560SYS"Wimp_WhichIcon",window,block,&3F0000,esg 6570=!block 6580DEFPROCmess_load(file$) 6590SYS"MessageTrans_FileInfo",,file$ TO ,,mess_buffsize 6600DIM mess_buff% mess_buffsize 6610DIM mess_desc% 17+LEN(file$) 6620DIM mess_genbuff% 256 6630$(mess_desc%+16)=file$ 6640SYS"MessageTrans_OpenFile",mess_desc%,mess_desc%+16,mess_buff% 6650ENDPROC 6660DEFPROCmess_close 6670SYS"MessageTrans_CloseFile",mess_desc% 6680ENDPROC 6690DEFFNtoken(a$,b$) 6700$mess_genbuff%=a$+CHR$(0) 6710SYS"MessageTrans_Lookup",mess_desc%,mess_genbuff%,mess_genbuff%,255,b$,0,0,0 6720=FNrd0(mess_genbuff%) 6730DEFPROCmess_box1(token$,sub1$,resp$) 6740PROCic_ch(FNtoken(token$,sub1$),0,winh_mes1) 6750PROCic_ch(FNtoken(resp$,""),1,winh_mes1) 6760VDU 7 6770PROCwindow_position(winh_mes1,(FNscreen_x-738)/2,((FNscreen_y-276)/2)+40) 6780PROCmouse_window(winh_mes1) 6790icon=FNfakepoll 6800PROCmouse_screen 6810PROCwindow_close(winh_mes1) 6820ENDPROC 6830DEFFNmess_box2(token$,sub1$,resp1$,resp2$,resp3$) 6840PROCic_ch(FNtoken(token$,sub1$),0,winh_mes2) 6850PROCic_ch(FNtoken(resp1$,""),1,winh_mes2) 6860PROCic_ch(FNtoken(resp2$,""),2,winh_mes2) 6870VDU 7 6880PROCwindow_position(winh_mes2,(FNscreen_x-738)/2,((FNscreen_y-276)/2)+40) 6890PROCmouse_window(winh_mes2) 6900icon=FNfakepoll 6910PROCmouse_screen 6920PROCwindow_close(winh_mes2) 6930=icon 6940DEFFNfakepoll 6950REPEAT 6960 REPEAT 6970 SYS"Wimp_Poll",%1110011100000110011,block TO reason 6980 UNTIL reason=6 6990UNTIL (block!8=1 OR block!8=4) AND block!16>0 7000=block!16 7010DEFPROCmouse_window(hand) 7020!block=hand 7030SYS"Wimp_GetWindowOutline",,block 7040?block=1 7050block!1=block!4 7060block!3=block!8 7070block!5=block!12 7080block!7=block!16 7090SYS"OS_Word",21,block 7100ENDPROC 7110DEFPROCmouse_screen 7120?block=1 7130block!1=0 7140block!3=0 7150block!5=FNscreen_x 7160block!7=FNscreen_y 7170SYS"OS_Word",21,block 7180ENDPROC 7190DEFFNscreen_x 7200SYS"OS_ReadModeVariable",-1,4 TO ,,xeig% 7210xeig%=1<<xeig% 7220SYS"OS_ReadModeVariable",-1,11 TO ,,xpix% 7230xpix%+=1 7240=xeig%*xpix% 7250DEFFNscreen_y 7260SYS"OS_ReadModeVariable",-1,5 TO ,,yeig% 7270yeig%=1<<yeig% 7280SYS"OS_ReadModeVariable",-1,12 TO ,,ypix% 7290ypix%+=1 7300=yeig%*ypix% 7310DEFFNvar_checkexistance(var$) 7320SYS"XOS_ReadVarVal",var$,,1<<31 TO ,,exists 7330IF exists=0 =FALSE ELSE =TRUE 7340DEFFNvar_get(var$) 7350LOCAL a$,bytes,i% 7360SYS"XOS_ReadVarVal",var$,block,255,0 TO ,,bytes;vset 7370a$="" 7380IF (vset AND 1)=0 THEN 7390 FOR i%=block TO block+(bytes-1) 7400 a$+=CHR$(?i%) 7410 NEXT 7420ENDIF 7430=a$
� >!RunImage for !Italix � By Ben Schofield � �1994 Archimedes World (� Hello hackers, 2H� I know that this program isn't a major work of master programming <7� but watch out for my Disassembler, coming soon... F0� � �"Error Pre-init error ["+�$+" / "+�+"]" P: Ztask_version$="1.46" dtask_name$="Italix" n(task_path$="<Italix$Dir>.Resources." xț task_path$+"DSLib" �: �task_handle=�task_init(310) �: �%�mess_load(task_path$+"Messages") �� � �error_rep �: � �init �: �+� Check that Font$Path is correctly set �K� If you are having problems with this utility sodding up the machine's �O� fonts, then REM out these lines. And don't swear at me too much, I can't �9� find anything in the PRMs or Style Guide about it! �+exists=�var_checkexistance("Font$Path") � exists=� � a$=�var_get("Font$Path") � " a$="" ,� 60� �a$,".,Resources:$.Fonts.")=0 � exists=� � @I ș"OS_SetVarVal","Font$Path","<Font$Prefix>.,Resources:$.Fonts.",,,2 J �"FontInstall" T� ^: h&�temp_open(task_path$+"Templates") rO� font_info 256, font_main 256, font_xfse 256, font_mes1 256, font_mes2 256 |)winh_info=�temp("proginfo",font_info) �%winh_main=�temp("main",font_main) �*winh_xfse=�temp("xfer_send",font_xfse) �)winh_mes1=�temp("message1",font_mes1) �)winh_mes2=�temp("message2",font_mes2) �ș "Wimp_CloseTemplate" �: ��loadchoices �: �� men_misc �menu_space(3) �0�menu_make(men_misc,"mMi",�winh_info+"##",3) �� men_main �menu_space(3) �=�menu_make(men_main,"mMa",�men_misc+"#"+�winh_xfse+"#",3) �� men_bar �menu_space(2) .�menu_make(men_bar,"mBa",�winh_info+"#",2) : 5�ic_ch(task_name$+" v"+task_version$,7,winh_info) &5�ic_makeindspr("drophere",isb%,10,winh_main,ish%) 0: : �ibar D: N�actions_shade(1) X: b� Polling loop l� v# ș"Wimp_Poll",1,block � reason � Ȏ reason � � � 1:�redraw �% � 2:ș "Wimp_OpenWindow",,block �& � 3:ș "Wimp_CloseWindow",,block �; � 6:�click(block!0,block!4,block!8,block!12,block!16) � � 7:�file_dragend �' � 8:�key(!block,block!4,block!24) �$ � 9:�menu_sel(block!0,block!4) � � 17,18:�mess � � �� � �: � ��quit *ș "MessageTrans_CloseFile",mess_desc% -ș "Wimp_CloseDown",task_handle,&4B534154 � � *: 4��redraw >(ș "Wimp_RedrawWindow",,block � more Hȕ more R+ ș "Wimp_GetRectangle",,block � more \� f� p: z ��init �� temp_block 1400 �temp_ilen=1500 �� temp_ibuff temp_ilen �temp_ipoint=temp_ibuff �� block 256 � � iblk 64 �� ibtxt 20 �� spr% 1000 ,isb% 64 �!spr%=1000 � spr%!8=16 �ș&2E,9+256,spr% �*ș&2E,10+256,spr%,task_path$+"Sprites" �*ș"Wimp_SlotSize",-1,-1 � appsize_orig data_start=�+8 xfer_xferring=� xfer_point=data_start $file_loaded=� .file_sheared=� 8� B: L��key(wh%,ih%,keycode%) V� keycode%=13 � ` Ȏ wh% � j- � winh_main:� ih%=14 �shear_anglelimits t; � winh_xfse:� ih%=2 �file_save(�ic_rd(2,winh_xfse)):� ~ � �� �! ș"Wimp_ProcessKey",keycode% �� �� �: �'��click(msx%,msy%,msb%,mswh%,msih%) �Ȏ mswh% � � � -2:Ȏ msb% � �$ � 1,4:�window_open(winh_main) �E � 2:ș"Wimp_CreateMenu",,men_bar,msx%-64,184:menu_last=men_bar � � � � winh_main:Ȏ msb% � � 1,4:Ȏ msih% � * � 4,5,6:�radiolock(1,msih%,mswh%) * � 7,8,9:�radiolock(2,msih%,mswh%) � 15:�shear ( � 16:�startdraw 2% � 17:�window_open(winh_xfse) < � 18:�file_drop F* � 20,21:�radiolock(3,msih%,mswh%) P � ZH � 2:ș"Wimp_CreateMenu",,men_main,msx%-64,msy%:menu_last=men_main d � n- � winh_xfse:� msb%=1 � msb%=4 Ȏ msih% � x% � 0:�save(�ic_rd(2,winh_xfse)) �# � 1:�window_close(winh_xfse) � � 3:�file_draginit � � �� �� �: � ��mess �shan=block!4 �sref=block!8 �Ȏ block!16 � � � 0:�quit � � 1 �K � �var_checkexistance("Wimp$Scrap")=� �mess_box1("NOSCRAP","","OK"):� � block!40=&AFF � !block=256 block!12=block!8 " block!16=2 , block!36=-1 6$ $(block+44)="<Wimp$Scrap>"+�0 @, ș"Wimp_SendMessage",17,block,block!4 J file_loadref=block!8 T � ^% �mess_box1("ONLYDRAW","","OK") h � r � 2 | Ȏ block!12 � � � file_saveref � path$=�rd0(block+44) � �file_save(path$) �- � file_savedOK=� �file_supload(path$) � ș"Wimp_CreateMenu",,-1 � �window_close(winh_xfse) � � �file_unex("DSAVEACK") � � � � 3 � Ȏ block!12 � � � 0:�file_load(0) �# � file_loadref:�file_load(1) �file_unex("DLOAD") � &( � 6:xfer_lastref=block!8:�file_xfer 0 � &502:�helpreq :� D� N: X ��helpreq b a$="hlp_" l� block!36=-1 � v a$+="xxX" �� � Ȏ block!32 � �& � winh_main:a$+="Ma"+�(block!36) �& � winh_xfse:a$+="Xf"+�(block!36) � � winh_info:a$+="InX" � � -2:a$+="BaX" � �8 ș"Wimp_GetMenuState",1,block+40,block!32,block!36 �# snum0=block!40:snum1=block!44 � Ȏ menu_last � �! � men_bar:a$+="mBa"+�snum0 � � men_main:� snum0=0 � �D � snum1>-1 a$+="mMi"+�snum1 � a$+="mMa"+�snum0 � & a$+="mMa"+�snum0 � � * � 4� >$mess_genbuff%=a$+�0 HWș"XMessageTrans_Lookup",mess_desc%,mess_genbuff%,mess_genbuff%,255,0,0,0,0 � ;vset RC� (vset � 1)=0 a$=�rd0(mess_genbuff%) � a$=�token("hlp_xxX","") \!block=256 fblock!12=block!8 pblock!16=&503 z$(block+20)=a$+�0 �)ș"Wimp_SendMessage",17,block,block!4 �� �: � ��ibar �!iblk=-1 �iblk!4=0 �iblk!8=4 �iblk!12=64 �iblk!16=72 �iblk!20=&311A �iblk!24=ibtxt �iblk!28=spr% �iblk!32=11 $ibtxt="italix_ibar" *ș "Wimp_CreateIcon",,iblk � ihan_ibar � $: .��menu_sel(snum0,snum1) 8Ȏ menu_last � B � men_bar:� snum0=1 �quit L � men_main:Ȏ snum0 � V � 0:Ȏ snum1 � ` � 1:�savechoices j � 2:�startdraw t � ~ � 2:�file_drop � � �� �"ș"Wimp_GetPointerInfo",,block �I� block!8=1 � ș"Wimp_CreateMenu",,men_main � ș"Wimp_CreateMenu",,-1 �� �� �: ���actions_shade(bit) �� i%=15 � 18 � �ic_grey(bit,i%,winh_main) �� ��men_grey(bit,men_main,1) �men_grey(bit,men_main,2) �men_grey(bit,men_misc,2) � : (��shear 2J� file_sheared=� � �mess_box2("SHEARAGAIN","","CANCEL","SHEAR","")=1 � <shear=�which(1,winh_main)-4 F$shear_from=�which(2,winh_main)-7 P�shear_anglelimits Z5� �which(3,winh_main)=21 shear_deg=�(shear_deg)+1 dș"Hourglass_On" nȎ shear � x �0,1 �@ �dsl_shear(data_start,data_end,shear_deg,shear,shear_from) � �2 �< �dsl_shear(data_start,data_end,shear_deg,0,shear_from) �< �dsl_shear(data_start,data_end,shear_deg,1,shear_from) �� �ș"Hourglass_Off" � �7:a=�(8) ��7 ��window_open(winh_xfse) �file_sheared=� �� �: ���shear_anglelimits num$=�ic_rd(14,winh_main) shear_deg=�(num$) A� shear_deg>89 shear_deg=89:�ic_ch(�(shear_deg),14,winh_main) "� ,: 6��startdraw @9� It is VITAL that the block length isn't set to 256. J5� Thumbs up to Acorn for bug-testing properly.... T call=0 ^� h8 ș"TaskManager_EnumerateTasks",call,block,24 � call r tnp=block!4 | � call>0 a$=�rd0(tnp) �� call<0 � a$="Draw" �� a$="Draw" drawhan=!block �L� call<0 ș"Wimp_StartTask","Filer_Run Resources:$.Apps.!Draw" � drawhan �� drawhan=0 � �xfer_point=data_start �xfer_xferring=� �block!0=256 �block!12=0 �block!16=1 �block!40=&AFF �$(block+44)="Italixed"+�0 �)ș"Wimp_SendMessage",17,block,drawhan �file_saveref=block!8 � : ��file_load(delete) &5� block!40<>&AFF �mess_box1("ONLYDRAW","","OK"):� 0file_name$=�rd0(block+44) :� file_loaded=� � D5 a=�mess_box2("ALRLOAD","","CANCEL","DISCARD","") N/ � a=1 � delete=1 ș"XOS_File",6,file_name$ X � a=1 � b� l4ș"OS_File",23,file_name$ � found,,,,data_length vM� found<>1 �mess_box1(�mess_lookup("NOTFOUND"),�rodot(file_name$),"OK"):� �<ș"Wimp_SlotSize",appsize_orig+8+data_length+8,-1 � size ��� size<(appsize_orig+8+data_length+8) �mess_box1("CANTCLAIM",�(�(data_length/1024)+1),"OK"):ș"Wimp_SlotSize",appsize_orig,-1:� �*ș"OS_File",16,file_name$,data_start,0 �?� found<>1 �mess_box1("NOTFOUND",�rodot(file_name$),"OK"):� �(� delete=1 ș"XOS_File",6,file_name$ �!block=256 �block!12=sref �block!16=4 �&ș"Wimp_SendMessage",17,block,shan �file_loaded=� �file_sheared=� �#data_end=data_length+data_start ��actions_shade(0) �window_open(winh_main) � : ��file_drop *file_loaded=� 4file_sheared=� >%ș"Wimp_SlotSize",appsize_orig,-1 H�actions_shade(1) R�window_close(winh_xfse) \� f: p��file_unex(a$) z8ș"XTaskManager_TaskNameFromHandle",block!4 � a;vset �� (vset � 1)>0 � �taskn$=�rd0(a) � �mess_box1(a$,taskn$,"OK"):� �� �: ���file_draginit �!block=winh_xfse �"ș"Wimp_GetWindowState",,block �x0=block!4 �y1=block!16 �!block=winh_xfse � block!4=3 � ș"Wimp_GetIconState",,block $minx=block!8+x0:miny=block!12+y1 %maxx=block!16+x0:maxy=block!20+y1 !block=minx $block!4=miny .block!8=maxx 8block!12=maxy B6ș"DragASprite_Start",%11000101,1,"file_aff",block L)�ic_valid("R2;Pptr_hand",3,winh_xfse) V� `: j��file_dragend t3�ic_valid("R2;Sfile_aff;Pptr_hand",3,winh_xfse) ~ș"DragASprite_Stop" �"ș"Wimp_GetPointerInfo",,block �file_destx=block!0 �file_desty=block!4 �file_destwi=block!12 �file_destic=block!16 �%leaf$=�rodot(�ic_rd(2,winh_xfse)) �block!0=256 �block!12=0 �block!16=1 �block!20=file_destwi �block!24=file_destic �block!28=file_destx block!32=file_desty block!36=data_length block!40=&AFF $(block+44)=leaf$+�0 (9ș"Wimp_SendMessage",17,block,file_destwi,file_destic 2file_saveref=block!8 <�window_close(winh_xfse) F� P: Z��file_save(a$) dfile_savedOK=� n9ș"XOS_File",10,a$,&AFF,,data_start,data_end � e;vset xvset=vset � 1 �E� vset=0 file_savedOK=� � �mess_box1("SAVEFAILED",�rd0(e+4),"OK") �� �: ���file_supload(a$) �block!0=256 �block!12=sref �block!16=3 �block!20=file_destwi �block!24=file_destic �block!28=file_destx �block!32=file_desty �block!36=data_length �block!40=&AFF $(block+44)=a$+�0 9ș"Wimp_SendMessage",17,block,file_destwi,file_destic � ": ,��file_xfer 60� this part is a bit of bodge, but it works! @xfer_destpoint=block!20 Jxfer_destlength=block!24 T x=block!4 ^;� xfer_xferring=� xfer_point=data_start:xfer_xferring=� h� xfer_point<data_end � rP � (xfer_point+xfer_destlength)>data_end xfer_destlength=data_end-xfer_point |S ș"Wimp_TransferBlock",task_handle,xfer_point,x,xfer_destpoint,xfer_destlength � xfer_point+=xfer_destlength �� � xfer_xferring=� �� �)� xfer_point>data_end xfer_xferring=� �!block=256 � block!4=x �block!12=xfer_lastref �block!16=7 �block!20=xfer_destpoint �Ȏ xfer_xferring � � � � � block!24=xfer_destlength type=18 block!24=0 & type=17 0� :+ș"Wimp_SendMessage",type,block,block!4 D� N: X��savechoices besg1=�which(1,winh_main) lesg2=�which(2,winh_main) vesg3=�which(3,winh_main) ��shear_anglelimits �block!0=esg1 �block!4=esg2 �block!8=esg3 �block!12=shear_deg �;ș"XOS_File",17,task_path$+"Choices" � found,,,,,attrib �� found=1 � � attrib=attrib � %10 �2 ș"XOS_File",4,task_path$+"Choices",,,,attrib �� �Fș"XOS_File",10,task_path$+"Choices",&FFD,,block,block+16 � e;vset �:� (vset � 1)>0 �mess_box1("SAVEFAILED",�rd0(e+4),"OK") �� : ��loadchoices ?ș"XOS_File",16,task_path$+"Choices",block,0 � found ;flags � (flags � 1)=1 � found<>1 � * esg1=5 4 esg2=8 > esg3=20 H shear_deg=30 R� \ esg1=block!0 f esg2=block!4 p esg3=block!8 z shear_deg=block!12 �� �� i%=0 � 2 � � esg1=(i%+4) bit=1 � bit=0 � �ic_sel(bit,i%+4,winh_main) � � esg2=(i%+7) bit=1 � bit=0 � �ic_sel(bit,i%+7,winh_main) �� �� i%=20 � 21 � � esg3=i% bit=1 � bit=0 � �ic_sel(bit,i%,winh_main) �� �#�ic_ch(�shear_deg,14,winh_main) �� : �ݤtask_init(ver):� task_id% 20:$(task_id%+4)="TASK":!task_id%=0:ș"Wimp_Initialise",ver,task_id%!4,task_name$,task_id% � a,b:=b ��temp_open(fnam$) $;ș"XOS_File",23,fnam$ � found,,,,temp_filelength ;flags .flags=flags � 1 8:� flags=1 � found<>1 �mess_box1("NOLOAD",fnam$,"OK"):� B ș"Wimp_OpenTemplate",,fnam$ L� Vݤtemp(a$,fontref) `nș "Wimp_LoadTemplate",,temp_block,temp_ipoint,(temp_ibuff+temp_ilen),fontref,a$,0 � ,,temp_ipoint,,,,fnd% j/ș "Wimp_CreateWindow",,temp_block � handle t=handle ~��window_open(han) �block!0=han �#ș "Wimp_GetWindowState",,block �ș "Wimp_OpenWindow",,block �� ���window_close(han) �block!0=han � ș "Wimp_CloseWindow",,block �� ���window_position(han,x,y) �block!0=han �#ș "Wimp_GetWindowState",,block �xS=block!12-block!4 yS=block!16-block!8 block!4=x block!8=y block!12=x+xS (block!16=y+yS 2ș "Wimp_OpenWindow",,block <� F��ic_ch(data$,inum,hand) Pblock!0=hand Zblock!4=inum d!ș "Wimp_GetIconState",,block n block!8=0 xblock!12=0 �$(block!28)=data$ �block!36=�(data$) �!ș "Wimp_SetIconState",,block �� �ݤic_rd(inum,hand) �block!0=hand �block!4=inum �!ș "Wimp_GetIconState",,block �=$(block!28) �,��ic_makeindspr(a$,adr,inum,hand,� ihan) �adr!0=hand �adr!4=inum �ș"Wimp_GetIconState",,adr adr!4=adr!8 adr!8=adr!12 adr!12=adr!16 "adr!16=adr!20 ,adr!20=&11A 6adr!24=(adr+42) @$(adr+42)=a$+�0 Jadr!28=spr% Tadr!32=�(a$) ^#ș"Wimp_CreateIcon",,adr � ihan h� r��ic_valid(data$,inum,hand) |block!0=hand �block!4=inum �!ș "Wimp_GetIconState",,block � block!8=0 �block!12=0 �$(block!32)=data$ �!ș "Wimp_SetIconState",,block �� ���ic_sel(bit,inum,hand) �� bit<>0 bit=1<<21 �block!0=hand �block!4=inum �!ș "Wimp_GetIconState",,block �block!8=bit block!12=1<<21 !ș "Wimp_SetIconState",,block � &��ic_grey(bit,inum,hand) 0� bit<>0 bit=1<<22 :block!0=hand Dblock!4=inum N!ș "Wimp_GetIconState",,block Xblock!8=bit bblock!12=1<<22 l!ș "Wimp_SetIconState",,block v� �ݤic_readsel(inum,hand) �block!0=hand �block!4=inum �!ș "Wimp_GetIconState",,block �iflags=block!24 �iflags=iflags � (1<<21) �� iflags>0 =1 � =0 �'��menu_make(menblok,base$,j$,items) � � sub$,xx$,lbit$,ptr,submenp �!$menblok=�token(base$+"T","") �menblok?12=7 �menblok?13=2 �menblok?14=7 menblok?15=0 .menblok!16=(�(�token(base$+"W",""))*16)+16 menblok!20=44 menblok!24=0 * ptr=28 4sub$=j$ >def$=�token(base$+"D","") H� i%=1 � items R lbit$=�sub$,�sub$,"#")-1) \# sub$=�sub$,�(sub$)-�sub$,"#")) f menblok!ptr=0 pO � �lbit$,1)="�" lbit$=�lbit$,�(lbit$)-1):menblok!ptr=(menblok!ptr) � %1000 zM � �lbit$,1)="|" lbit$=�lbit$,�(lbit$)-1):menblok!ptr=(menblok!ptr) � %10 �3 � i%=items menblok!ptr=menblok!ptr � %10000000 �- � lbit$="" submenp=-1 � submenp=�(lbit$) � menblok!(ptr+4)=submenp � menblok!(ptr+8)=&7009031 � lbit$=�def$,�def$,",")-1) �# def$=�def$,�(def$)-�def$,",")) � $(menblok+(ptr+12))=lbit$ � ptr+=24 �� �� �ݤmenu_space(num) �=(num*24)+28+8 �ݤrd0(rdzp) rdz$="" rdzz=0 � $. � rdzp?rdzz<>0 rdz$+=�(rdzp?rdzz):rdzz+=1 .� rdzp?rdzz=0 � rdzp=255 8 =rdz$ B��error_rep L block!0=0 V0$(block+4)=�token("FATALINT",Þ+" ("+�$+")") `� 7 j ș &400DF,block,0,task_name$ t/ș "Wimp_CloseDown",task_handle,&4B534154:� ~� ���men_tick(bit,hand,num) �num=num*24 �num+=28 � num+=hand � a=!num � � (a � 1)=0 � bit>0 !num=a+1 � � (a � 1)>0 � bit=0 !num=a-1 �� ���men_grey(bit,hand,num) �num=num*24 �num+=36 � num+=hand a=!num ,� (a � (1<<22))=0 � bit>0 !num=a+(1<<22) ,� (a � (1<<22))>0 � bit=0 !num=a-(1<<22) � (ݤrodot(a$) 2� �a$,".")=0 =a$ < i=�a$ F�:i-=1:� �a$,i,1)="." P=�a$,�a$-i) Z ��radiolock(esg,icon,window) desg=(esg<<16)+&200000 n/ș"Wimp_WhichIcon",window,block,&3F0000,esg x&� !block=-1 �ic_sel(1,icon,window) �� �ݤwhich(esg,window) �esg=(esg<<16)+&200000 �/ș"Wimp_WhichIcon",window,block,&3F0000,esg �=!block ���mess_load(file$) �6ș"MessageTrans_FileInfo",,file$ � ,,mess_buffsize �� mess_buff% mess_buffsize �� mess_desc% 17+�(file$) �� mess_genbuff% 256 �$(mess_desc%+16)=file$ �Aș"MessageTrans_OpenFile",mess_desc%,mess_desc%+16,mess_buff% �� ��mess_close )ș"MessageTrans_CloseFile",mess_desc% � "ݤtoken(a$,b$) ,$mess_genbuff%=a$+�(0) 6Oș"MessageTrans_Lookup",mess_desc%,mess_genbuff%,mess_genbuff%,255,b$,0,0,0 @=�rd0(mess_genbuff%) J#��mess_box1(token$,sub1$,resp$) T,�ic_ch(�token(token$,sub1$),0,winh_mes1) ^(�ic_ch(�token(resp$,""),1,winh_mes1) h� 7 rH�window_position(winh_mes1,(�screen_x-738)/2,((�screen_y-276)/2)+40) |�mouse_window(winh_mes1) �icon=�fakepoll ��mouse_screen ��window_close(winh_mes1) �� �2ݤmess_box2(token$,sub1$,resp1$,resp2$,resp3$) �,�ic_ch(�token(token$,sub1$),0,winh_mes2) �)�ic_ch(�token(resp1$,""),1,winh_mes2) �)�ic_ch(�token(resp2$,""),2,winh_mes2) �� 7 �H�window_position(winh_mes2,(�screen_x-738)/2,((�screen_y-276)/2)+40) ��mouse_window(winh_mes2) �icon=�fakepoll ��mouse_screen �window_close(winh_mes2) =icon ݤfakepoll &� 0 � :7 ș"Wimp_Poll",%1110011100000110011,block � reason D � reason=6 N*� (block!8=1 � block!8=4) � block!16>0 X =block!16 b��mouse_window(hand) l!block=hand v$ș"Wimp_GetWindowOutline",,block �?block=1 �block!1=block!4 �block!3=block!8 �block!5=block!12 �block!7=block!16 �ș"OS_Word",21,block �� ���mouse_screen �?block=1 � block!1=0 � block!3=0 �block!5=�screen_x �block!7=�screen_y ș"OS_Word",21,block � ݤscreen_x *ș"OS_ReadModeVariable",-1,4 � ,,xeig% *xeig%=1<<xeig% 4+ș"OS_ReadModeVariable",-1,11 � ,,xpix% >xpix%+=1 H=xeig%*xpix% Rݤscreen_y \*ș"OS_ReadModeVariable",-1,5 � ,,yeig% fyeig%=1<<yeig% p+ș"OS_ReadModeVariable",-1,12 � ,,ypix% zypix%+=1 �=yeig%*ypix% �ݤvar_checkexistance(var$) �-ș"XOS_ReadVarVal",var$,,1<<31 � ,,exists �� exists=0 =� � =� �ݤvar_get(var$) �� a$,bytes,i% �6ș"XOS_ReadVarVal",var$,block,255,0 � ,,bytes;vset � a$="" �� (vset � 1)=0 � �! � i%=block � block+(bytes-1) � a$+=�(?i%) � � �� =a$ �
00000000 0d 00 0a 1c f4 20 3e 21 52 75 6e 49 6d 61 67 65 |..... >!RunImage| 00000010 20 66 6f 72 20 21 49 74 61 6c 69 78 0d 00 14 16 | for !Italix....| 00000020 f4 20 42 79 20 42 65 6e 20 53 63 68 6f 66 69 65 |. By Ben Schofie| 00000030 6c 64 0d 00 1e 1c f4 20 a9 31 39 39 34 20 41 72 |ld..... .1994 Ar| 00000040 63 68 69 6d 65 64 65 73 20 57 6f 72 6c 64 0d 00 |chimedes World..| 00000050 28 14 f4 20 48 65 6c 6c 6f 20 68 61 63 6b 65 72 |(.. Hello hacker| 00000060 73 2c 0d 00 32 48 f4 20 20 49 20 6b 6e 6f 77 20 |s,..2H. I know | 00000070 74 68 61 74 20 74 68 69 73 20 70 72 6f 67 72 61 |that this progra| 00000080 6d 20 69 73 6e 27 74 20 61 20 6d 61 6a 6f 72 20 |m isn't a major | 00000090 77 6f 72 6b 20 6f 66 20 6d 61 73 74 65 72 20 70 |work of master p| 000000a0 72 6f 67 72 61 6d 6d 69 6e 67 0d 00 3c 37 f4 20 |rogramming..<7. | 000000b0 62 75 74 20 77 61 74 63 68 20 6f 75 74 20 66 6f |but watch out fo| 000000c0 72 20 6d 79 20 44 69 73 61 73 73 65 6d 62 6c 65 |r my Disassemble| 000000d0 72 2c 20 63 6f 6d 69 6e 67 20 73 6f 6f 6e 2e 2e |r, coming soon..| 000000e0 2e 0d 00 46 30 ee 20 85 20 ff 22 45 72 72 6f 72 |...F0. . ."Error| 000000f0 20 50 72 65 2d 69 6e 69 74 20 65 72 72 6f 72 20 | Pre-init error | 00000100 5b 22 2b f6 24 2b 22 20 2f 20 22 2b 9e 2b 22 5d |["+.$+" / "+.+"]| 00000110 22 0d 00 50 05 3a 0d 00 5a 18 74 61 73 6b 5f 76 |"..P.:..Z.task_v| 00000120 65 72 73 69 6f 6e 24 3d 22 31 2e 34 36 22 0d 00 |ersion$="1.46"..| 00000130 64 17 74 61 73 6b 5f 6e 61 6d 65 24 3d 22 49 74 |d.task_name$="It| 00000140 61 6c 69 78 22 0d 00 6e 28 74 61 73 6b 5f 70 61 |alix"..n(task_pa| 00000150 74 68 24 3d 22 3c 49 74 61 6c 69 78 24 44 69 72 |th$="<Italix$Dir| 00000160 3e 2e 52 65 73 6f 75 72 63 65 73 2e 22 0d 00 78 |>.Resources."..x| 00000170 19 c8 9b 20 74 61 73 6b 5f 70 61 74 68 24 2b 22 |... task_path$+"| 00000180 44 53 4c 69 62 22 0d 00 82 05 3a 0d 00 8c 1f 74 |DSLib"....:....t| 00000190 61 73 6b 5f 68 61 6e 64 6c 65 3d a4 74 61 73 6b |ask_handle=.task| 000001a0 5f 69 6e 69 74 28 33 31 30 29 0d 00 96 05 3a 0d |_init(310)....:.| 000001b0 00 a0 25 f2 6d 65 73 73 5f 6c 6f 61 64 28 74 61 |..%.mess_load(ta| 000001c0 73 6b 5f 70 61 74 68 24 2b 22 4d 65 73 73 61 67 |sk_path$+"Messag| 000001d0 65 73 22 29 0d 00 aa 12 ee 20 85 20 f2 65 72 72 |es")..... . .err| 000001e0 6f 72 5f 72 65 70 0d 00 b4 05 3a 0d 00 be 09 f2 |or_rep....:.....| 000001f0 69 6e 69 74 0d 00 c8 05 3a 0d 00 d2 2b f4 20 43 |init....:...+. C| 00000200 68 65 63 6b 20 74 68 61 74 20 46 6f 6e 74 24 50 |heck that Font$P| 00000210 61 74 68 20 69 73 20 63 6f 72 72 65 63 74 6c 79 |ath is correctly| 00000220 20 73 65 74 0d 00 dc 4b f4 20 49 66 20 79 6f 75 | set...K. If you| 00000230 20 61 72 65 20 68 61 76 69 6e 67 20 70 72 6f 62 | are having prob| 00000240 6c 65 6d 73 20 77 69 74 68 20 74 68 69 73 20 75 |lems with this u| 00000250 74 69 6c 69 74 79 20 73 6f 64 64 69 6e 67 20 75 |tility sodding u| 00000260 70 20 74 68 65 20 6d 61 63 68 69 6e 65 27 73 0d |p the machine's.| 00000270 00 e6 4f f4 20 20 66 6f 6e 74 73 2c 20 74 68 65 |..O. fonts, the| 00000280 6e 20 52 45 4d 20 6f 75 74 20 74 68 65 73 65 20 |n REM out these | 00000290 6c 69 6e 65 73 2e 20 41 6e 64 20 64 6f 6e 27 74 |lines. And don't| 000002a0 20 73 77 65 61 72 20 61 74 20 6d 65 20 74 6f 6f | swear at me too| 000002b0 20 6d 75 63 68 2c 20 49 20 63 61 6e 27 74 0d 00 | much, I can't..| 000002c0 f0 39 f4 20 20 66 69 6e 64 20 61 6e 79 74 68 69 |.9. find anythi| 000002d0 6e 67 20 69 6e 20 74 68 65 20 50 52 4d 73 20 6f |ng in the PRMs o| 000002e0 72 20 53 74 79 6c 65 20 47 75 69 64 65 20 61 62 |r Style Guide ab| 000002f0 6f 75 74 20 69 74 21 0d 00 fa 2b 65 78 69 73 74 |out it!...+exist| 00000300 73 3d a4 76 61 72 5f 63 68 65 63 6b 65 78 69 73 |s=.var_checkexis| 00000310 74 61 6e 63 65 28 22 46 6f 6e 74 24 50 61 74 68 |tance("Font$Path| 00000320 22 29 0d 01 04 10 e7 20 65 78 69 73 74 73 3d b9 |")..... exists=.| 00000330 20 8c 0d 01 0e 1d 20 61 24 3d a4 76 61 72 5f 67 | ..... a$=.var_g| 00000340 65 74 28 22 46 6f 6e 74 24 50 61 74 68 22 29 0d |et("Font$Path").| 00000350 01 18 05 cc 0d 01 22 0a 20 61 24 3d 22 22 0d 01 |......". a$=""..| 00000360 2c 05 cd 0d 01 36 30 e7 20 a7 61 24 2c 22 2e 2c |,....60. .a$,".,| 00000370 52 65 73 6f 75 72 63 65 73 3a 24 2e 46 6f 6e 74 |Resources:$.Font| 00000380 73 2e 22 29 3d 30 20 84 20 65 78 69 73 74 73 3d |s.")=0 . exists=| 00000390 a3 20 8c 0d 01 40 49 20 c8 99 22 4f 53 5f 53 65 |. ...@I .."OS_Se| 000003a0 74 56 61 72 56 61 6c 22 2c 22 46 6f 6e 74 24 50 |tVarVal","Font$P| 000003b0 61 74 68 22 2c 22 3c 46 6f 6e 74 24 50 72 65 66 |ath","<Font$Pref| 000003c0 69 78 3e 2e 2c 52 65 73 6f 75 72 63 65 73 3a 24 |ix>.,Resources:$| 000003d0 2e 46 6f 6e 74 73 2e 22 2c 2c 2c 32 0d 01 4a 13 |.Fonts.",,,2..J.| 000003e0 20 ff 22 46 6f 6e 74 49 6e 73 74 61 6c 6c 22 0d | ."FontInstall".| 000003f0 01 54 05 cd 0d 01 5e 05 3a 0d 01 68 26 f2 74 65 |.T....^.:..h&.te| 00000400 6d 70 5f 6f 70 65 6e 28 74 61 73 6b 5f 70 61 74 |mp_open(task_pat| 00000410 68 24 2b 22 54 65 6d 70 6c 61 74 65 73 22 29 0d |h$+"Templates").| 00000420 01 72 4f de 20 66 6f 6e 74 5f 69 6e 66 6f 20 32 |.rO. font_info 2| 00000430 35 36 2c 20 66 6f 6e 74 5f 6d 61 69 6e 20 32 35 |56, font_main 25| 00000440 36 2c 20 66 6f 6e 74 5f 78 66 73 65 20 32 35 36 |6, font_xfse 256| 00000450 2c 20 66 6f 6e 74 5f 6d 65 73 31 20 32 35 36 2c |, font_mes1 256,| 00000460 20 66 6f 6e 74 5f 6d 65 73 32 20 32 35 36 0d 01 | font_mes2 256..| 00000470 7c 29 77 69 6e 68 5f 69 6e 66 6f 3d a4 74 65 6d ||)winh_info=.tem| 00000480 70 28 22 70 72 6f 67 69 6e 66 6f 22 2c 66 6f 6e |p("proginfo",fon| 00000490 74 5f 69 6e 66 6f 29 0d 01 86 25 77 69 6e 68 5f |t_info)...%winh_| 000004a0 6d 61 69 6e 3d a4 74 65 6d 70 28 22 6d 61 69 6e |main=.temp("main| 000004b0 22 2c 66 6f 6e 74 5f 6d 61 69 6e 29 0d 01 90 2a |",font_main)...*| 000004c0 77 69 6e 68 5f 78 66 73 65 3d a4 74 65 6d 70 28 |winh_xfse=.temp(| 000004d0 22 78 66 65 72 5f 73 65 6e 64 22 2c 66 6f 6e 74 |"xfer_send",font| 000004e0 5f 78 66 73 65 29 0d 01 9a 29 77 69 6e 68 5f 6d |_xfse)...)winh_m| 000004f0 65 73 31 3d a4 74 65 6d 70 28 22 6d 65 73 73 61 |es1=.temp("messa| 00000500 67 65 31 22 2c 66 6f 6e 74 5f 6d 65 73 31 29 0d |ge1",font_mes1).| 00000510 01 a4 29 77 69 6e 68 5f 6d 65 73 32 3d a4 74 65 |..)winh_mes2=.te| 00000520 6d 70 28 22 6d 65 73 73 61 67 65 32 22 2c 66 6f |mp("message2",fo| 00000530 6e 74 5f 6d 65 73 32 29 0d 01 ae 1b c8 99 20 22 |nt_mes2)...... "| 00000540 57 69 6d 70 5f 43 6c 6f 73 65 54 65 6d 70 6c 61 |Wimp_CloseTempla| 00000550 74 65 22 0d 01 b8 05 3a 0d 01 c2 10 f2 6c 6f 61 |te"....:.....loa| 00000560 64 63 68 6f 69 63 65 73 0d 01 cc 05 3a 0d 01 d6 |dchoices....:...| 00000570 1d de 20 6d 65 6e 5f 6d 69 73 63 20 a4 6d 65 6e |.. men_misc .men| 00000580 75 5f 73 70 61 63 65 28 33 29 0d 01 e0 30 f2 6d |u_space(3)...0.m| 00000590 65 6e 75 5f 6d 61 6b 65 28 6d 65 6e 5f 6d 69 73 |enu_make(men_mis| 000005a0 63 2c 22 6d 4d 69 22 2c c3 77 69 6e 68 5f 69 6e |c,"mMi",.winh_in| 000005b0 66 6f 2b 22 23 23 22 2c 33 29 0d 01 ea 1d de 20 |fo+"##",3)..... | 000005c0 6d 65 6e 5f 6d 61 69 6e 20 a4 6d 65 6e 75 5f 73 |men_main .menu_s| 000005d0 70 61 63 65 28 33 29 0d 01 f4 3d f2 6d 65 6e 75 |pace(3)...=.menu| 000005e0 5f 6d 61 6b 65 28 6d 65 6e 5f 6d 61 69 6e 2c 22 |_make(men_main,"| 000005f0 6d 4d 61 22 2c c3 6d 65 6e 5f 6d 69 73 63 2b 22 |mMa",.men_misc+"| 00000600 23 22 2b c3 77 69 6e 68 5f 78 66 73 65 2b 22 23 |#"+.winh_xfse+"#| 00000610 22 2c 33 29 0d 01 fe 1c de 20 6d 65 6e 5f 62 61 |",3)..... men_ba| 00000620 72 20 a4 6d 65 6e 75 5f 73 70 61 63 65 28 32 29 |r .menu_space(2)| 00000630 0d 02 08 2e f2 6d 65 6e 75 5f 6d 61 6b 65 28 6d |.....menu_make(m| 00000640 65 6e 5f 62 61 72 2c 22 6d 42 61 22 2c c3 77 69 |en_bar,"mBa",.wi| 00000650 6e 68 5f 69 6e 66 6f 2b 22 23 22 2c 32 29 0d 02 |nh_info+"#",2)..| 00000660 12 05 3a 0d 02 1c 35 f2 69 63 5f 63 68 28 74 61 |..:...5.ic_ch(ta| 00000670 73 6b 5f 6e 61 6d 65 24 2b 22 20 76 22 2b 74 61 |sk_name$+" v"+ta| 00000680 73 6b 5f 76 65 72 73 69 6f 6e 24 2c 37 2c 77 69 |sk_version$,7,wi| 00000690 6e 68 5f 69 6e 66 6f 29 0d 02 26 35 f2 69 63 5f |nh_info)..&5.ic_| 000006a0 6d 61 6b 65 69 6e 64 73 70 72 28 22 64 72 6f 70 |makeindspr("drop| 000006b0 68 65 72 65 22 2c 69 73 62 25 2c 31 30 2c 77 69 |here",isb%,10,wi| 000006c0 6e 68 5f 6d 61 69 6e 2c 69 73 68 25 29 0d 02 30 |nh_main,ish%)..0| 000006d0 05 3a 0d 02 3a 09 f2 69 62 61 72 0d 02 44 05 3a |.:..:..ibar..D.:| 000006e0 0d 02 4e 15 f2 61 63 74 69 6f 6e 73 5f 73 68 61 |..N..actions_sha| 000006f0 64 65 28 31 29 0d 02 58 05 3a 0d 02 62 12 f4 20 |de(1)..X.:..b.. | 00000700 50 6f 6c 6c 69 6e 67 20 6c 6f 6f 70 0d 02 6c 05 |Polling loop..l.| 00000710 f5 0d 02 76 23 20 c8 99 22 57 69 6d 70 5f 50 6f |...v# .."Wimp_Po| 00000720 6c 6c 22 2c 31 2c 62 6c 6f 63 6b 20 b8 20 72 65 |ll",1,block . re| 00000730 61 73 6f 6e 0d 02 80 10 20 c8 8e 20 72 65 61 73 |ason.... .. reas| 00000740 6f 6e 20 ca 0d 02 8a 11 20 20 c9 20 31 3a f2 72 |on ..... . 1:.r| 00000750 65 64 72 61 77 0d 02 94 25 20 20 c9 20 32 3a c8 |edraw...% . 2:.| 00000760 99 20 22 57 69 6d 70 5f 4f 70 65 6e 57 69 6e 64 |. "Wimp_OpenWind| 00000770 6f 77 22 2c 2c 62 6c 6f 63 6b 0d 02 9e 26 20 20 |ow",,block...& | 00000780 c9 20 33 3a c8 99 20 22 57 69 6d 70 5f 43 6c 6f |. 3:.. "Wimp_Clo| 00000790 73 65 57 69 6e 64 6f 77 22 2c 2c 62 6c 6f 63 6b |seWindow",,block| 000007a0 0d 02 a8 3b 20 20 c9 20 36 3a f2 63 6c 69 63 6b |...; . 6:.click| 000007b0 28 62 6c 6f 63 6b 21 30 2c 62 6c 6f 63 6b 21 34 |(block!0,block!4| 000007c0 2c 62 6c 6f 63 6b 21 38 2c 62 6c 6f 63 6b 21 31 |,block!8,block!1| 000007d0 32 2c 62 6c 6f 63 6b 21 31 36 29 0d 02 b2 17 20 |2,block!16).... | 000007e0 20 c9 20 37 3a f2 66 69 6c 65 5f 64 72 61 67 65 | . 7:.file_drage| 000007f0 6e 64 0d 02 bc 27 20 20 c9 20 38 3a f2 6b 65 79 |nd...' . 8:.key| 00000800 28 21 62 6c 6f 63 6b 2c 62 6c 6f 63 6b 21 34 2c |(!block,block!4,| 00000810 62 6c 6f 63 6b 21 32 34 29 0d 02 c6 24 20 20 c9 |block!24)...$ .| 00000820 20 39 3a f2 6d 65 6e 75 5f 73 65 6c 28 62 6c 6f | 9:.menu_sel(blo| 00000830 63 6b 21 30 2c 62 6c 6f 63 6b 21 34 29 0d 02 d0 |ck!0,block!4)...| 00000840 13 20 20 c9 20 31 37 2c 31 38 3a f2 6d 65 73 73 |. . 17,18:.mess| 00000850 0d 02 da 06 20 cb 0d 02 e4 07 fd 20 a3 0d 02 ee |.... ...... ....| 00000860 05 3a 0d 02 f8 0a dd f2 71 75 69 74 0d 03 02 2a |.:......quit...*| 00000870 c8 99 20 22 4d 65 73 73 61 67 65 54 72 61 6e 73 |.. "MessageTrans| 00000880 5f 43 6c 6f 73 65 46 69 6c 65 22 2c 6d 65 73 73 |_CloseFile",mess| 00000890 5f 64 65 73 63 25 0d 03 0c 2d c8 99 20 22 57 69 |_desc%...-.. "Wi| 000008a0 6d 70 5f 43 6c 6f 73 65 44 6f 77 6e 22 2c 74 61 |mp_CloseDown",ta| 000008b0 73 6b 5f 68 61 6e 64 6c 65 2c 26 34 42 35 33 34 |sk_handle,&4B534| 000008c0 31 35 34 0d 03 16 05 e0 0d 03 20 05 e1 0d 03 2a |154....... ....*| 000008d0 05 3a 0d 03 34 0c dd f2 72 65 64 72 61 77 0d 03 |.:..4...redraw..| 000008e0 3e 28 c8 99 20 22 57 69 6d 70 5f 52 65 64 72 61 |>(.. "Wimp_Redra| 000008f0 77 57 69 6e 64 6f 77 22 2c 2c 62 6c 6f 63 6b 20 |wWindow",,block | 00000900 b8 20 6d 6f 72 65 0d 03 48 0b c8 95 20 6d 6f 72 |. more..H... mor| 00000910 65 0d 03 52 2b 20 20 20 c8 99 20 22 57 69 6d 70 |e..R+ .. "Wimp| 00000920 5f 47 65 74 52 65 63 74 61 6e 67 6c 65 22 2c 2c |_GetRectangle",,| 00000930 62 6c 6f 63 6b 20 b8 20 6d 6f 72 65 0d 03 5c 05 |block . more..\.| 00000940 ce 0d 03 66 05 e1 0d 03 70 05 3a 0d 03 7a 0a dd |...f....p.:..z..| 00000950 f2 69 6e 69 74 0d 03 84 15 de 20 74 65 6d 70 5f |.init..... temp_| 00000960 62 6c 6f 63 6b 20 31 34 30 30 0d 03 8e 12 74 65 |block 1400....te| 00000970 6d 70 5f 69 6c 65 6e 3d 31 35 30 30 0d 03 98 1a |mp_ilen=1500....| 00000980 de 20 74 65 6d 70 5f 69 62 75 66 66 20 74 65 6d |. temp_ibuff tem| 00000990 70 5f 69 6c 65 6e 0d 03 a2 1a 74 65 6d 70 5f 69 |p_ilen....temp_i| 000009a0 70 6f 69 6e 74 3d 74 65 6d 70 5f 69 62 75 66 66 |point=temp_ibuff| 000009b0 0d 03 ac 0f de 20 62 6c 6f 63 6b 20 32 35 36 0d |..... block 256.| 000009c0 03 b6 0d de 20 69 62 6c 6b 20 36 34 0d 03 c0 0e |.... iblk 64....| 000009d0 de 20 69 62 74 78 74 20 32 30 0d 03 ca 18 de 20 |. ibtxt 20..... | 000009e0 73 70 72 25 20 31 30 30 30 20 2c 69 73 62 25 20 |spr% 1000 ,isb% | 000009f0 36 34 0d 03 d4 0e 21 73 70 72 25 3d 31 30 30 30 |64....!spr%=1000| 00000a00 0d 03 de 0d 73 70 72 25 21 38 3d 31 36 0d 03 e8 |....spr%!8=16...| 00000a10 14 c8 99 26 32 45 2c 39 2b 32 35 36 2c 73 70 72 |...&2E,9+256,spr| 00000a20 25 0d 03 f2 2a c8 99 26 32 45 2c 31 30 2b 32 35 |%...*..&2E,10+25| 00000a30 36 2c 73 70 72 25 2c 74 61 73 6b 5f 70 61 74 68 |6,spr%,task_path| 00000a40 24 2b 22 53 70 72 69 74 65 73 22 0d 03 fc 2a c8 |$+"Sprites"...*.| 00000a50 99 22 57 69 6d 70 5f 53 6c 6f 74 53 69 7a 65 22 |."Wimp_SlotSize"| 00000a60 2c 2d 31 2c 2d 31 20 b8 20 61 70 70 73 69 7a 65 |,-1,-1 . appsize| 00000a70 5f 6f 72 69 67 0d 04 06 12 64 61 74 61 5f 73 74 |_orig....data_st| 00000a80 61 72 74 3d 93 2b 38 0d 04 10 13 78 66 65 72 5f |art=.+8....xfer_| 00000a90 78 66 65 72 72 69 6e 67 3d a3 0d 04 1a 19 78 66 |xferring=.....xf| 00000aa0 65 72 5f 70 6f 69 6e 74 3d 64 61 74 61 5f 73 74 |er_point=data_st| 00000ab0 61 72 74 0d 04 24 11 66 69 6c 65 5f 6c 6f 61 64 |art..$.file_load| 00000ac0 65 64 3d a3 0d 04 2e 12 66 69 6c 65 5f 73 68 65 |ed=.....file_she| 00000ad0 61 72 65 64 3d a3 0d 04 38 05 e1 0d 04 42 05 3a |ared=...8....B.:| 00000ae0 0d 04 4c 1b dd f2 6b 65 79 28 77 68 25 2c 69 68 |..L...key(wh%,ih| 00000af0 25 2c 6b 65 79 63 6f 64 65 25 29 0d 04 56 13 e7 |%,keycode%)..V..| 00000b00 20 6b 65 79 63 6f 64 65 25 3d 31 33 20 8c 0d 04 | keycode%=13 ...| 00000b10 60 0d 20 c8 8e 20 77 68 25 20 ca 0d 04 6a 2d 20 |`. .. wh% ...j- | 00000b20 20 c9 20 77 69 6e 68 5f 6d 61 69 6e 3a e7 20 69 | . winh_main:. i| 00000b30 68 25 3d 31 34 20 f2 73 68 65 61 72 5f 61 6e 67 |h%=14 .shear_ang| 00000b40 6c 65 6c 69 6d 69 74 73 0d 04 74 3b 20 20 c9 20 |lelimits..t; . | 00000b50 77 69 6e 68 5f 78 66 73 65 3a e7 20 69 68 25 3d |winh_xfse:. ih%=| 00000b60 32 20 f2 66 69 6c 65 5f 73 61 76 65 28 a4 69 63 |2 .file_save(.ic| 00000b70 5f 72 64 28 32 2c 77 69 6e 68 5f 78 66 73 65 29 |_rd(2,winh_xfse)| 00000b80 29 3a e1 0d 04 7e 06 20 cb 0d 04 88 05 cc 0d 04 |):...~. ........| 00000b90 92 21 20 c8 99 22 57 69 6d 70 5f 50 72 6f 63 65 |.! .."Wimp_Proce| 00000ba0 73 73 4b 65 79 22 2c 6b 65 79 63 6f 64 65 25 0d |ssKey",keycode%.| 00000bb0 04 9c 05 cd 0d 04 a6 05 e1 0d 04 b0 05 3a 0d 04 |.............:..| 00000bc0 ba 27 dd f2 63 6c 69 63 6b 28 6d 73 78 25 2c 6d |.'..click(msx%,m| 00000bd0 73 79 25 2c 6d 73 62 25 2c 6d 73 77 68 25 2c 6d |sy%,msb%,mswh%,m| 00000be0 73 69 68 25 29 0d 04 c4 0e c8 8e 20 6d 73 77 68 |sih%)...... mswh| 00000bf0 25 20 ca 0d 04 ce 13 20 c9 20 2d 32 3a c8 8e 20 |% ..... . -2:.. | 00000c00 6d 73 62 25 20 ca 0d 04 d8 24 20 20 20 c9 20 31 |msb% ....$ . 1| 00000c10 2c 34 3a f2 77 69 6e 64 6f 77 5f 6f 70 65 6e 28 |,4:.window_open(| 00000c20 77 69 6e 68 5f 6d 61 69 6e 29 0d 04 e2 45 20 20 |winh_main)...E | 00000c30 20 c9 20 32 3a c8 99 22 57 69 6d 70 5f 43 72 65 | . 2:.."Wimp_Cre| 00000c40 61 74 65 4d 65 6e 75 22 2c 2c 6d 65 6e 5f 62 61 |ateMenu",,men_ba| 00000c50 72 2c 6d 73 78 25 2d 36 34 2c 31 38 34 3a 6d 65 |r,msx%-64,184:me| 00000c60 6e 75 5f 6c 61 73 74 3d 6d 65 6e 5f 62 61 72 0d |nu_last=men_bar.| 00000c70 04 ec 07 20 20 cb 0d 04 f6 1a 20 c9 20 77 69 6e |... ..... . win| 00000c80 68 5f 6d 61 69 6e 3a c8 8e 20 6d 73 62 25 20 ca |h_main:.. msb% .| 00000c90 0d 05 00 17 20 20 20 c9 20 31 2c 34 3a c8 8e 20 |.... . 1,4:.. | 00000ca0 6d 73 69 68 25 20 ca 0d 05 0a 2a 20 20 20 20 20 |msih% ....* | 00000cb0 c9 20 34 2c 35 2c 36 3a f2 72 61 64 69 6f 6c 6f |. 4,5,6:.radiolo| 00000cc0 63 6b 28 31 2c 6d 73 69 68 25 2c 6d 73 77 68 25 |ck(1,msih%,mswh%| 00000cd0 29 0d 05 14 2a 20 20 20 20 20 c9 20 37 2c 38 2c |)...* . 7,8,| 00000ce0 39 3a f2 72 61 64 69 6f 6c 6f 63 6b 28 32 2c 6d |9:.radiolock(2,m| 00000cf0 73 69 68 25 2c 6d 73 77 68 25 29 0d 05 1e 14 20 |sih%,mswh%).... | 00000d00 20 20 20 20 c9 20 31 35 3a f2 73 68 65 61 72 0d | . 15:.shear.| 00000d10 05 28 18 20 20 20 20 20 c9 20 31 36 3a f2 73 74 |.(. . 16:.st| 00000d20 61 72 74 64 72 61 77 0d 05 32 25 20 20 20 20 20 |artdraw..2% | 00000d30 c9 20 31 37 3a f2 77 69 6e 64 6f 77 5f 6f 70 65 |. 17:.window_ope| 00000d40 6e 28 77 69 6e 68 5f 78 66 73 65 29 0d 05 3c 18 |n(winh_xfse)..<.| 00000d50 20 20 20 20 20 c9 20 31 38 3a f2 66 69 6c 65 5f | . 18:.file_| 00000d60 64 72 6f 70 0d 05 46 2a 20 20 20 20 20 c9 20 32 |drop..F* . 2| 00000d70 30 2c 32 31 3a f2 72 61 64 69 6f 6c 6f 63 6b 28 |0,21:.radiolock(| 00000d80 33 2c 6d 73 69 68 25 2c 6d 73 77 68 25 29 0d 05 |3,msih%,mswh%)..| 00000d90 50 09 20 20 20 20 cb 0d 05 5a 48 20 20 20 c9 20 |P. ...ZH . | 00000da0 32 3a c8 99 22 57 69 6d 70 5f 43 72 65 61 74 65 |2:.."Wimp_Create| 00000db0 4d 65 6e 75 22 2c 2c 6d 65 6e 5f 6d 61 69 6e 2c |Menu",,men_main,| 00000dc0 6d 73 78 25 2d 36 34 2c 6d 73 79 25 3a 6d 65 6e |msx%-64,msy%:men| 00000dd0 75 5f 6c 61 73 74 3d 6d 65 6e 5f 6d 61 69 6e 0d |u_last=men_main.| 00000de0 05 64 07 20 20 cb 0d 05 6e 2d 20 c9 20 77 69 6e |.d. ...n- . win| 00000df0 68 5f 78 66 73 65 3a e7 20 6d 73 62 25 3d 31 20 |h_xfse:. msb%=1 | 00000e00 84 20 6d 73 62 25 3d 34 20 c8 8e 20 6d 73 69 68 |. msb%=4 .. msih| 00000e10 25 20 ca 0d 05 78 25 20 20 20 c9 20 30 3a f2 73 |% ...x% . 0:.s| 00000e20 61 76 65 28 a4 69 63 5f 72 64 28 32 2c 77 69 6e |ave(.ic_rd(2,win| 00000e30 68 5f 78 66 73 65 29 29 0d 05 82 23 20 20 20 c9 |h_xfse))...# .| 00000e40 20 31 3a f2 77 69 6e 64 6f 77 5f 63 6c 6f 73 65 | 1:.window_close| 00000e50 28 77 69 6e 68 5f 78 66 73 65 29 0d 05 8c 19 20 |(winh_xfse).... | 00000e60 20 20 c9 20 33 3a f2 66 69 6c 65 5f 64 72 61 67 | . 3:.file_drag| 00000e70 69 6e 69 74 0d 05 96 07 20 20 cb 0d 05 a0 05 cb |init.... ......| 00000e80 0d 05 aa 05 e1 0d 05 b4 05 3a 0d 05 be 0a dd f2 |.........:......| 00000e90 6d 65 73 73 0d 05 c8 10 73 68 61 6e 3d 62 6c 6f |mess....shan=blo| 00000ea0 63 6b 21 34 0d 05 d2 10 73 72 65 66 3d 62 6c 6f |ck!4....sref=blo| 00000eb0 63 6b 21 38 0d 05 dc 11 c8 8e 20 62 6c 6f 63 6b |ck!8...... block| 00000ec0 21 31 36 20 ca 0d 05 e6 0e 20 c9 20 30 3a f2 71 |!16 ..... . 0:.q| 00000ed0 75 69 74 0d 05 f0 08 20 c9 20 31 0d 05 fa 4b 20 |uit.... . 1...K | 00000ee0 20 e7 20 a4 76 61 72 5f 63 68 65 63 6b 65 78 69 | . .var_checkexi| 00000ef0 73 74 61 6e 63 65 28 22 57 69 6d 70 24 53 63 72 |stance("Wimp$Scr| 00000f00 61 70 22 29 3d a3 20 f2 6d 65 73 73 5f 62 6f 78 |ap")=. .mess_box| 00000f10 31 28 22 4e 4f 53 43 52 41 50 22 2c 22 22 2c 22 |1("NOSCRAP","","| 00000f20 4f 4b 22 29 3a e1 0d 06 04 17 20 20 e7 20 62 6c |OK"):..... . bl| 00000f30 6f 63 6b 21 34 30 3d 26 41 46 46 20 8c 0d 06 0e |ock!40=&AFF ....| 00000f40 11 20 20 20 21 62 6c 6f 63 6b 3d 32 35 36 0d 06 |. !block=256..| 00000f50 18 17 20 20 20 62 6c 6f 63 6b 21 31 32 3d 62 6c |.. block!12=bl| 00000f60 6f 63 6b 21 38 0d 06 22 11 20 20 20 62 6c 6f 63 |ock!8..". bloc| 00000f70 6b 21 31 36 3d 32 0d 06 2c 12 20 20 20 62 6c 6f |k!16=2..,. blo| 00000f80 63 6b 21 33 36 3d 2d 31 0d 06 36 24 20 20 20 24 |ck!36=-1..6$ $| 00000f90 28 62 6c 6f 63 6b 2b 34 34 29 3d 22 3c 57 69 6d |(block+44)="<Wim| 00000fa0 70 24 53 63 72 61 70 3e 22 2b bd 30 0d 06 40 2c |p$Scrap>"+.0..@,| 00000fb0 20 20 20 c8 99 22 57 69 6d 70 5f 53 65 6e 64 4d | .."Wimp_SendM| 00000fc0 65 73 73 61 67 65 22 2c 31 37 2c 62 6c 6f 63 6b |essage",17,block| 00000fd0 2c 62 6c 6f 63 6b 21 34 0d 06 4a 1b 20 20 20 66 |,block!4..J. f| 00000fe0 69 6c 65 5f 6c 6f 61 64 72 65 66 3d 62 6c 6f 63 |ile_loadref=bloc| 00000ff0 6b 21 38 0d 06 54 07 20 20 cc 0d 06 5e 25 20 20 |k!8..T. ...^% | 00001000 20 f2 6d 65 73 73 5f 62 6f 78 31 28 22 4f 4e 4c | .mess_box1("ONL| 00001010 59 44 52 41 57 22 2c 22 22 2c 22 4f 4b 22 29 0d |YDRAW","","OK").| 00001020 06 68 07 20 20 cd 0d 06 72 08 20 c9 20 32 0d 06 |.h. ...r. . 2..| 00001030 7c 13 20 20 c8 8e 20 62 6c 6f 63 6b 21 31 32 20 ||. .. block!12 | 00001040 ca 0d 06 86 15 20 20 20 c9 20 66 69 6c 65 5f 73 |..... . file_s| 00001050 61 76 65 72 65 66 0d 06 90 1c 20 20 20 20 70 61 |averef.... pa| 00001060 74 68 24 3d a4 72 64 30 28 62 6c 6f 63 6b 2b 34 |th$=.rd0(block+4| 00001070 34 29 0d 06 9a 19 20 20 20 20 f2 66 69 6c 65 5f |4).... .file_| 00001080 73 61 76 65 28 70 61 74 68 24 29 0d 06 a4 2d 20 |save(path$)...- | 00001090 20 20 20 e7 20 66 69 6c 65 5f 73 61 76 65 64 4f | . file_savedO| 000010a0 4b 3d b9 20 f2 66 69 6c 65 5f 73 75 70 6c 6f 61 |K=. .file_suploa| 000010b0 64 28 70 61 74 68 24 29 0d 06 ae 1f 20 20 20 20 |d(path$).... | 000010c0 c8 99 22 57 69 6d 70 5f 43 72 65 61 74 65 4d 65 |.."Wimp_CreateMe| 000010d0 6e 75 22 2c 2c 2d 31 0d 06 b8 20 20 20 20 20 f2 |nu",,-1... .| 000010e0 77 69 6e 64 6f 77 5f 63 6c 6f 73 65 28 77 69 6e |window_close(win| 000010f0 68 5f 78 66 73 65 29 0d 06 c2 07 20 20 7f 0d 06 |h_xfse).... ...| 00001100 cc 1d 20 20 20 f2 66 69 6c 65 5f 75 6e 65 78 28 |.. .file_unex(| 00001110 22 44 53 41 56 45 41 43 4b 22 29 0d 06 d6 07 20 |"DSAVEACK").... | 00001120 20 cb 0d 06 e0 08 20 c9 20 33 0d 06 ea 13 20 20 | ..... . 3.... | 00001130 c8 8e 20 62 6c 6f 63 6b 21 31 32 20 ca 0d 06 f4 |.. block!12 ....| 00001140 18 20 20 20 c9 20 30 3a f2 66 69 6c 65 5f 6c 6f |. . 0:.file_lo| 00001150 61 64 28 30 29 0d 06 fe 23 20 20 20 c9 20 66 69 |ad(0)...# . fi| 00001160 6c 65 5f 6c 6f 61 64 72 65 66 3a f2 66 69 6c 65 |le_loadref:.file| 00001170 5f 6c 6f 61 64 28 31 29 0d 07 08 07 20 20 7f 0d |_load(1).... ..| 00001180 07 12 1a 20 20 20 f2 66 69 6c 65 5f 75 6e 65 78 |... .file_unex| 00001190 28 22 44 4c 4f 41 44 22 29 0d 07 1c 07 20 20 cb |("DLOAD").... .| 000011a0 0d 07 26 28 20 c9 20 36 3a 78 66 65 72 5f 6c 61 |..&( . 6:xfer_la| 000011b0 73 74 72 65 66 3d 62 6c 6f 63 6b 21 38 3a f2 66 |stref=block!8:.f| 000011c0 69 6c 65 5f 78 66 65 72 0d 07 30 14 20 c9 20 26 |ile_xfer..0. . &| 000011d0 35 30 32 3a f2 68 65 6c 70 72 65 71 0d 07 3a 05 |502:.helpreq..:.| 000011e0 cb 0d 07 44 05 e1 0d 07 4e 05 3a 0d 07 58 0d dd |...D....N.:..X..| 000011f0 f2 68 65 6c 70 72 65 71 0d 07 62 0d 61 24 3d 22 |.helpreq..b.a$="| 00001200 68 6c 70 5f 22 0d 07 6c 13 e7 20 62 6c 6f 63 6b |hlp_"..l.. block| 00001210 21 33 36 3d 2d 31 20 8c 0d 07 76 0e 20 61 24 2b |!36=-1 ...v. a$+| 00001220 3d 22 78 78 58 22 0d 07 80 05 cc 0d 07 8a 12 20 |="xxX"......... | 00001230 c8 8e 20 62 6c 6f 63 6b 21 33 32 20 ca 0d 07 94 |.. block!32 ....| 00001240 26 20 20 c9 20 77 69 6e 68 5f 6d 61 69 6e 3a 61 |& . winh_main:a| 00001250 24 2b 3d 22 4d 61 22 2b c3 28 62 6c 6f 63 6b 21 |$+="Ma"+.(block!| 00001260 33 36 29 0d 07 9e 26 20 20 c9 20 77 69 6e 68 5f |36)...& . winh_| 00001270 78 66 73 65 3a 61 24 2b 3d 22 58 66 22 2b c3 28 |xfse:a$+="Xf"+.(| 00001280 62 6c 6f 63 6b 21 33 36 29 0d 07 a8 1b 20 20 c9 |block!36).... .| 00001290 20 77 69 6e 68 5f 69 6e 66 6f 3a 61 24 2b 3d 22 | winh_info:a$+="| 000012a0 49 6e 58 22 0d 07 b2 14 20 20 c9 20 2d 32 3a 61 |InX".... . -2:a| 000012b0 24 2b 3d 22 42 61 58 22 0d 07 bc 05 7f 0d 07 c6 |$+="BaX"........| 000012c0 38 20 20 c8 99 22 57 69 6d 70 5f 47 65 74 4d 65 |8 .."Wimp_GetMe| 000012d0 6e 75 53 74 61 74 65 22 2c 31 2c 62 6c 6f 63 6b |nuState",1,block| 000012e0 2b 34 30 2c 62 6c 6f 63 6b 21 33 32 2c 62 6c 6f |+40,block!32,blo| 000012f0 63 6b 21 33 36 0d 07 d0 23 20 20 73 6e 75 6d 30 |ck!36...# snum0| 00001300 3d 62 6c 6f 63 6b 21 34 30 3a 73 6e 75 6d 31 3d |=block!40:snum1=| 00001310 62 6c 6f 63 6b 21 34 34 0d 07 da 14 20 20 c8 8e |block!44.... ..| 00001320 20 6d 65 6e 75 5f 6c 61 73 74 20 ca 0d 07 e4 21 | menu_last ....!| 00001330 20 20 20 c9 20 6d 65 6e 5f 62 61 72 3a 61 24 2b | . men_bar:a$+| 00001340 3d 22 6d 42 61 22 2b c3 73 6e 75 6d 30 0d 07 ee |="mBa"+.snum0...| 00001350 1d 20 20 20 c9 20 6d 65 6e 5f 6d 61 69 6e 3a e7 |. . men_main:.| 00001360 20 73 6e 75 6d 30 3d 30 20 8c 0d 07 f8 44 20 20 | snum0=0 ....D | 00001370 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00001380 e7 20 73 6e 75 6d 31 3e 2d 31 20 61 24 2b 3d 22 |. snum1>-1 a$+="| 00001390 6d 4d 69 22 2b c3 73 6e 75 6d 31 20 8b 20 61 24 |mMi"+.snum1 . a$| 000013a0 2b 3d 22 6d 4d 61 22 2b c3 73 6e 75 6d 30 0d 08 |+="mMa"+.snum0..| 000013b0 02 16 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |.. | 000013c0 20 20 20 cc 0d 08 0c 26 20 20 20 20 20 20 20 20 | ....& | 000013d0 20 20 20 20 20 20 20 20 20 20 61 24 2b 3d 22 6d | a$+="m| 000013e0 4d 61 22 2b c3 73 6e 75 6d 30 0d 08 16 16 20 20 |Ma"+.snum0.... | 000013f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 cd | .| 00001400 0d 08 20 07 20 20 cb 0d 08 2a 06 20 cb 0d 08 34 |.. . ...*. ...4| 00001410 05 cd 0d 08 3e 18 24 6d 65 73 73 5f 67 65 6e 62 |....>.$mess_genb| 00001420 75 66 66 25 3d 61 24 2b bd 30 0d 08 48 57 c8 99 |uff%=a$+.0..HW..| 00001430 22 58 4d 65 73 73 61 67 65 54 72 61 6e 73 5f 4c |"XMessageTrans_L| 00001440 6f 6f 6b 75 70 22 2c 6d 65 73 73 5f 64 65 73 63 |ookup",mess_desc| 00001450 25 2c 6d 65 73 73 5f 67 65 6e 62 75 66 66 25 2c |%,mess_genbuff%,| 00001460 6d 65 73 73 5f 67 65 6e 62 75 66 66 25 2c 32 35 |mess_genbuff%,25| 00001470 35 2c 30 2c 30 2c 30 2c 30 20 b8 20 3b 76 73 65 |5,0,0,0,0 . ;vse| 00001480 74 0d 08 52 43 e7 20 28 76 73 65 74 20 80 20 31 |t..RC. (vset . 1| 00001490 29 3d 30 20 61 24 3d a4 72 64 30 28 6d 65 73 73 |)=0 a$=.rd0(mess| 000014a0 5f 67 65 6e 62 75 66 66 25 29 20 8b 20 61 24 3d |_genbuff%) . a$=| 000014b0 a4 74 6f 6b 65 6e 28 22 68 6c 70 5f 78 78 58 22 |.token("hlp_xxX"| 000014c0 2c 22 22 29 0d 08 5c 0e 21 62 6c 6f 63 6b 3d 32 |,"")..\.!block=2| 000014d0 35 36 0d 08 66 14 62 6c 6f 63 6b 21 31 32 3d 62 |56..f.block!12=b| 000014e0 6c 6f 63 6b 21 38 0d 08 70 11 62 6c 6f 63 6b 21 |lock!8..p.block!| 000014f0 31 36 3d 26 35 30 33 0d 08 7a 15 24 28 62 6c 6f |16=&503..z.$(blo| 00001500 63 6b 2b 32 30 29 3d 61 24 2b bd 30 0d 08 84 29 |ck+20)=a$+.0...)| 00001510 c8 99 22 57 69 6d 70 5f 53 65 6e 64 4d 65 73 73 |.."Wimp_SendMess| 00001520 61 67 65 22 2c 31 37 2c 62 6c 6f 63 6b 2c 62 6c |age",17,block,bl| 00001530 6f 63 6b 21 34 0d 08 8e 05 e1 0d 08 98 05 3a 0d |ock!4.........:.| 00001540 08 a2 0a dd f2 69 62 61 72 0d 08 ac 0c 21 69 62 |.....ibar....!ib| 00001550 6c 6b 3d 2d 31 0d 08 b6 0c 69 62 6c 6b 21 34 3d |lk=-1....iblk!4=| 00001560 30 0d 08 c0 0c 69 62 6c 6b 21 38 3d 34 0d 08 ca |0....iblk!8=4...| 00001570 0e 69 62 6c 6b 21 31 32 3d 36 34 0d 08 d4 0e 69 |.iblk!12=64....i| 00001580 62 6c 6b 21 31 36 3d 37 32 0d 08 de 11 69 62 6c |blk!16=72....ibl| 00001590 6b 21 32 30 3d 26 33 31 31 41 0d 08 e8 11 69 62 |k!20=&311A....ib| 000015a0 6c 6b 21 32 34 3d 69 62 74 78 74 0d 08 f2 10 69 |lk!24=ibtxt....i| 000015b0 62 6c 6b 21 32 38 3d 73 70 72 25 0d 08 fc 0e 69 |blk!28=spr%....i| 000015c0 62 6c 6b 21 33 32 3d 31 31 0d 09 06 18 24 69 62 |blk!32=11....$ib| 000015d0 74 78 74 3d 22 69 74 61 6c 69 78 5f 69 62 61 72 |txt="italix_ibar| 000015e0 22 0d 09 10 2a c8 99 20 22 57 69 6d 70 5f 43 72 |"...*.. "Wimp_Cr| 000015f0 65 61 74 65 49 63 6f 6e 22 2c 2c 69 62 6c 6b 20 |eateIcon",,iblk | 00001600 b8 20 69 68 61 6e 5f 69 62 61 72 0d 09 1a 05 e1 |. ihan_ibar.....| 00001610 0d 09 24 05 3a 0d 09 2e 1b dd f2 6d 65 6e 75 5f |..$.:......menu_| 00001620 73 65 6c 28 73 6e 75 6d 30 2c 73 6e 75 6d 31 29 |sel(snum0,snum1)| 00001630 0d 09 38 12 c8 8e 20 6d 65 6e 75 5f 6c 61 73 74 |..8... menu_last| 00001640 20 ca 0d 09 42 1e 20 c9 20 6d 65 6e 5f 62 61 72 | ...B. . men_bar| 00001650 3a e7 20 73 6e 75 6d 30 3d 31 20 f2 71 75 69 74 |:. snum0=1 .quit| 00001660 0d 09 4c 1a 20 c9 20 6d 65 6e 5f 6d 61 69 6e 3a |..L. . men_main:| 00001670 c8 8e 20 73 6e 75 6d 30 20 ca 0d 09 56 15 20 20 |.. snum0 ...V. | 00001680 20 c9 20 30 3a c8 8e 20 73 6e 75 6d 31 20 ca 0d | . 0:.. snum1 ..| 00001690 09 60 19 20 20 20 20 20 c9 20 31 3a f2 73 61 76 |.`. . 1:.sav| 000016a0 65 63 68 6f 69 63 65 73 0d 09 6a 17 20 20 20 20 |echoices..j. | 000016b0 20 c9 20 32 3a f2 73 74 61 72 74 64 72 61 77 0d | . 2:.startdraw.| 000016c0 09 74 09 20 20 20 20 cb 0d 09 7e 15 20 20 20 c9 |.t. ...~. .| 000016d0 20 32 3a f2 66 69 6c 65 5f 64 72 6f 70 0d 09 88 | 2:.file_drop...| 000016e0 07 20 20 cb 0d 09 92 05 cb 0d 09 9c 22 c8 99 22 |. .........".."| 000016f0 57 69 6d 70 5f 47 65 74 50 6f 69 6e 74 65 72 49 |Wimp_GetPointerI| 00001700 6e 66 6f 22 2c 2c 62 6c 6f 63 6b 0d 09 a6 49 e7 |nfo",,block...I.| 00001710 20 62 6c 6f 63 6b 21 38 3d 31 20 8c 20 c8 99 22 | block!8=1 . .."| 00001720 57 69 6d 70 5f 43 72 65 61 74 65 4d 65 6e 75 22 |Wimp_CreateMenu"| 00001730 2c 2c 6d 65 6e 5f 6d 61 69 6e 20 8b 20 c8 99 22 |,,men_main . .."| 00001740 57 69 6d 70 5f 43 72 65 61 74 65 4d 65 6e 75 22 |Wimp_CreateMenu"| 00001750 2c 2c 2d 31 0d 09 b0 05 cd 0d 09 ba 05 e1 0d 09 |,,-1............| 00001760 c4 05 3a 0d 09 ce 18 dd f2 61 63 74 69 6f 6e 73 |..:......actions| 00001770 5f 73 68 61 64 65 28 62 69 74 29 0d 09 d8 10 e3 |_shade(bit).....| 00001780 20 69 25 3d 31 35 20 b8 20 31 38 0d 09 e2 1f 20 | i%=15 . 18.... | 00001790 f2 69 63 5f 67 72 65 79 28 62 69 74 2c 69 25 2c |.ic_grey(bit,i%,| 000017a0 77 69 6e 68 5f 6d 61 69 6e 29 0d 09 ec 05 ed 0d |winh_main)......| 000017b0 09 f6 1d f2 6d 65 6e 5f 67 72 65 79 28 62 69 74 |....men_grey(bit| 000017c0 2c 6d 65 6e 5f 6d 61 69 6e 2c 31 29 0d 0a 00 1d |,men_main,1)....| 000017d0 f2 6d 65 6e 5f 67 72 65 79 28 62 69 74 2c 6d 65 |.men_grey(bit,me| 000017e0 6e 5f 6d 61 69 6e 2c 32 29 0d 0a 0a 1d f2 6d 65 |n_main,2).....me| 000017f0 6e 5f 67 72 65 79 28 62 69 74 2c 6d 65 6e 5f 6d |n_grey(bit,men_m| 00001800 69 73 63 2c 32 29 0d 0a 14 05 e1 0d 0a 1e 05 3a |isc,2).........:| 00001810 0d 0a 28 0b dd f2 73 68 65 61 72 0d 0a 32 4a e7 |..(...shear..2J.| 00001820 20 66 69 6c 65 5f 73 68 65 61 72 65 64 3d b9 20 | file_sheared=. | 00001830 e7 20 a4 6d 65 73 73 5f 62 6f 78 32 28 22 53 48 |. .mess_box2("SH| 00001840 45 41 52 41 47 41 49 4e 22 2c 22 22 2c 22 43 41 |EARAGAIN","","CA| 00001850 4e 43 45 4c 22 2c 22 53 48 45 41 52 22 2c 22 22 |NCEL","SHEAR",""| 00001860 29 3d 31 20 e1 0d 0a 3c 1f 73 68 65 61 72 3d a4 |)=1 ...<.shear=.| 00001870 77 68 69 63 68 28 31 2c 77 69 6e 68 5f 6d 61 69 |which(1,winh_mai| 00001880 6e 29 2d 34 0d 0a 46 24 73 68 65 61 72 5f 66 72 |n)-4..F$shear_fr| 00001890 6f 6d 3d a4 77 68 69 63 68 28 32 2c 77 69 6e 68 |om=.which(2,winh| 000018a0 5f 6d 61 69 6e 29 2d 37 0d 0a 50 16 f2 73 68 65 |_main)-7..P..she| 000018b0 61 72 5f 61 6e 67 6c 65 6c 69 6d 69 74 73 0d 0a |ar_anglelimits..| 000018c0 5a 35 e7 20 a4 77 68 69 63 68 28 33 2c 77 69 6e |Z5. .which(3,win| 000018d0 68 5f 6d 61 69 6e 29 3d 32 31 20 73 68 65 61 72 |h_main)=21 shear| 000018e0 5f 64 65 67 3d ac 28 73 68 65 61 72 5f 64 65 67 |_deg=.(shear_deg| 000018f0 29 2b 31 0d 0a 64 14 c8 99 22 48 6f 75 72 67 6c |)+1..d..."Hourgl| 00001900 61 73 73 5f 4f 6e 22 0d 0a 6e 0e c8 8e 20 73 68 |ass_On"..n... sh| 00001910 65 61 72 20 ca 0d 0a 78 09 20 c9 30 2c 31 0d 0a |ear ...x. .0,1..| 00001920 82 40 20 20 f2 64 73 6c 5f 73 68 65 61 72 28 64 |.@ .dsl_shear(d| 00001930 61 74 61 5f 73 74 61 72 74 2c 64 61 74 61 5f 65 |ata_start,data_e| 00001940 6e 64 2c 73 68 65 61 72 5f 64 65 67 2c 73 68 65 |nd,shear_deg,she| 00001950 61 72 2c 73 68 65 61 72 5f 66 72 6f 6d 29 0d 0a |ar,shear_from)..| 00001960 8c 07 20 c9 32 0d 0a 96 3c 20 20 f2 64 73 6c 5f |.. .2...< .dsl_| 00001970 73 68 65 61 72 28 64 61 74 61 5f 73 74 61 72 74 |shear(data_start| 00001980 2c 64 61 74 61 5f 65 6e 64 2c 73 68 65 61 72 5f |,data_end,shear_| 00001990 64 65 67 2c 30 2c 73 68 65 61 72 5f 66 72 6f 6d |deg,0,shear_from| 000019a0 29 0d 0a a0 3c 20 20 f2 64 73 6c 5f 73 68 65 61 |)...< .dsl_shea| 000019b0 72 28 64 61 74 61 5f 73 74 61 72 74 2c 64 61 74 |r(data_start,dat| 000019c0 61 5f 65 6e 64 2c 73 68 65 61 72 5f 64 65 67 2c |a_end,shear_deg,| 000019d0 31 2c 73 68 65 61 72 5f 66 72 6f 6d 29 0d 0a aa |1,shear_from)...| 000019e0 05 cb 0d 0a b4 15 c8 99 22 48 6f 75 72 67 6c 61 |........"Hourgla| 000019f0 73 73 5f 4f 66 66 22 0d 0a be 0d ef 37 3a 61 3d |ss_Off".....7:a=| 00001a00 a6 28 38 29 0d 0a c8 06 ef 37 0d 0a d2 1b f2 77 |.(8).....7.....w| 00001a10 69 6e 64 6f 77 5f 6f 70 65 6e 28 77 69 6e 68 5f |indow_open(winh_| 00001a20 78 66 73 65 29 0d 0a dc 12 66 69 6c 65 5f 73 68 |xfse)....file_sh| 00001a30 65 61 72 65 64 3d b9 0d 0a e6 05 e1 0d 0a f0 05 |eared=..........| 00001a40 3a 0d 0a fa 17 dd f2 73 68 65 61 72 5f 61 6e 67 |:......shear_ang| 00001a50 6c 65 6c 69 6d 69 74 73 0d 0b 04 1d 6e 75 6d 24 |lelimits....num$| 00001a60 3d a4 69 63 5f 72 64 28 31 34 2c 77 69 6e 68 5f |=.ic_rd(14,winh_| 00001a70 6d 61 69 6e 29 0d 0b 0e 15 73 68 65 61 72 5f 64 |main)....shear_d| 00001a80 65 67 3d bb 28 6e 75 6d 24 29 0d 0b 18 41 e7 20 |eg=.(num$)...A. | 00001a90 73 68 65 61 72 5f 64 65 67 3e 38 39 20 73 68 65 |shear_deg>89 she| 00001aa0 61 72 5f 64 65 67 3d 38 39 3a f2 69 63 5f 63 68 |ar_deg=89:.ic_ch| 00001ab0 28 c3 28 73 68 65 61 72 5f 64 65 67 29 2c 31 34 |(.(shear_deg),14| 00001ac0 2c 77 69 6e 68 5f 6d 61 69 6e 29 0d 0b 22 05 e1 |,winh_main).."..| 00001ad0 0d 0b 2c 05 3a 0d 0b 36 0f dd f2 73 74 61 72 74 |..,.:..6...start| 00001ae0 64 72 61 77 0d 0b 40 39 f4 20 49 74 20 69 73 20 |draw..@9. It is | 00001af0 56 49 54 41 4c 20 74 68 61 74 20 74 68 65 20 62 |VITAL that the b| 00001b00 6c 6f 63 6b 20 6c 65 6e 67 74 68 20 69 73 6e 27 |lock length isn'| 00001b10 74 20 73 65 74 20 74 6f 20 32 35 36 2e 0d 0b 4a |t set to 256...J| 00001b20 35 f4 20 54 68 75 6d 62 73 20 75 70 20 74 6f 20 |5. Thumbs up to | 00001b30 41 63 6f 72 6e 20 66 6f 72 20 62 75 67 2d 74 65 |Acorn for bug-te| 00001b40 73 74 69 6e 67 20 70 72 6f 70 65 72 6c 79 2e 2e |sting properly..| 00001b50 2e 2e 0d 0b 54 0a 63 61 6c 6c 3d 30 0d 0b 5e 05 |....T.call=0..^.| 00001b60 f5 0d 0b 68 38 20 c8 99 22 54 61 73 6b 4d 61 6e |...h8 .."TaskMan| 00001b70 61 67 65 72 5f 45 6e 75 6d 65 72 61 74 65 54 61 |ager_EnumerateTa| 00001b80 73 6b 73 22 2c 63 61 6c 6c 2c 62 6c 6f 63 6b 2c |sks",call,block,| 00001b90 32 34 20 b8 20 63 61 6c 6c 0d 0b 72 10 20 74 6e |24 . call..r. tn| 00001ba0 70 3d 62 6c 6f 63 6b 21 34 0d 0b 7c 1a 20 e7 20 |p=block!4..|. . | 00001bb0 63 61 6c 6c 3e 30 20 61 24 3d a4 72 64 30 28 74 |call>0 a$=.rd0(t| 00001bc0 6e 70 29 0d 0b 86 18 fd 20 63 61 6c 6c 3c 30 20 |np)..... call<0 | 00001bd0 84 20 61 24 3d 22 44 72 61 77 22 0d 0b 90 1e e7 |. a$="Draw".....| 00001be0 20 61 24 3d 22 44 72 61 77 22 20 64 72 61 77 68 | a$="Draw" drawh| 00001bf0 61 6e 3d 21 62 6c 6f 63 6b 0d 0b 9a 4c e7 20 63 |an=!block...L. c| 00001c00 61 6c 6c 3c 30 20 c8 99 22 57 69 6d 70 5f 53 74 |all<0 .."Wimp_St| 00001c10 61 72 74 54 61 73 6b 22 2c 22 46 69 6c 65 72 5f |artTask","Filer_| 00001c20 52 75 6e 20 52 65 73 6f 75 72 63 65 73 3a 24 2e |Run Resources:$.| 00001c30 41 70 70 73 2e 21 44 72 61 77 22 20 b8 20 64 72 |Apps.!Draw" . dr| 00001c40 61 77 68 61 6e 0d 0b a4 11 e7 20 64 72 61 77 68 |awhan..... drawh| 00001c50 61 6e 3d 30 20 e1 0d 0b ae 19 78 66 65 72 5f 70 |an=0 .....xfer_p| 00001c60 6f 69 6e 74 3d 64 61 74 61 5f 73 74 61 72 74 0d |oint=data_start.| 00001c70 0b b8 13 78 66 65 72 5f 78 66 65 72 72 69 6e 67 |...xfer_xferring| 00001c80 3d a3 0d 0b c2 0f 62 6c 6f 63 6b 21 30 3d 32 35 |=.....block!0=25| 00001c90 36 0d 0b cc 0e 62 6c 6f 63 6b 21 31 32 3d 30 0d |6....block!12=0.| 00001ca0 0b d6 0e 62 6c 6f 63 6b 21 31 36 3d 31 0d 0b e0 |...block!16=1...| 00001cb0 11 62 6c 6f 63 6b 21 34 30 3d 26 41 46 46 0d 0b |.block!40=&AFF..| 00001cc0 ea 1d 24 28 62 6c 6f 63 6b 2b 34 34 29 3d 22 49 |..$(block+44)="I| 00001cd0 74 61 6c 69 78 65 64 22 2b bd 30 0d 0b f4 29 c8 |talixed"+.0...).| 00001ce0 99 22 57 69 6d 70 5f 53 65 6e 64 4d 65 73 73 61 |."Wimp_SendMessa| 00001cf0 67 65 22 2c 31 37 2c 62 6c 6f 63 6b 2c 64 72 61 |ge",17,block,dra| 00001d00 77 68 61 6e 0d 0b fe 18 66 69 6c 65 5f 73 61 76 |whan....file_sav| 00001d10 65 72 65 66 3d 62 6c 6f 63 6b 21 38 0d 0c 08 05 |eref=block!8....| 00001d20 e1 0d 0c 12 05 3a 0d 0c 1c 17 dd f2 66 69 6c 65 |.....:......file| 00001d30 5f 6c 6f 61 64 28 64 65 6c 65 74 65 29 0d 0c 26 |_load(delete)..&| 00001d40 35 e7 20 62 6c 6f 63 6b 21 34 30 3c 3e 26 41 46 |5. block!40<>&AF| 00001d50 46 20 f2 6d 65 73 73 5f 62 6f 78 31 28 22 4f 4e |F .mess_box1("ON| 00001d60 4c 59 44 52 41 57 22 2c 22 22 2c 22 4f 4b 22 29 |LYDRAW","","OK")| 00001d70 3a e1 0d 0c 30 1d 66 69 6c 65 5f 6e 61 6d 65 24 |:...0.file_name$| 00001d80 3d a4 72 64 30 28 62 6c 6f 63 6b 2b 34 34 29 0d |=.rd0(block+44).| 00001d90 0c 3a 15 e7 20 66 69 6c 65 5f 6c 6f 61 64 65 64 |.:.. file_loaded| 00001da0 3d b9 20 8c 0d 0c 44 35 20 61 3d a4 6d 65 73 73 |=. ...D5 a=.mess| 00001db0 5f 62 6f 78 32 28 22 41 4c 52 4c 4f 41 44 22 2c |_box2("ALRLOAD",| 00001dc0 22 22 2c 22 43 41 4e 43 45 4c 22 2c 22 44 49 53 |"","CANCEL","DIS| 00001dd0 43 41 52 44 22 2c 22 22 29 0d 0c 4e 2f 20 e7 20 |CARD","")..N/ . | 00001de0 61 3d 31 20 80 20 64 65 6c 65 74 65 3d 31 20 c8 |a=1 . delete=1 .| 00001df0 99 22 58 4f 53 5f 46 69 6c 65 22 2c 36 2c 66 69 |."XOS_File",6,fi| 00001e00 6c 65 5f 6e 61 6d 65 24 0d 0c 58 0c 20 e7 20 61 |le_name$..X. . a| 00001e10 3d 31 20 e1 0d 0c 62 05 cd 0d 0c 6c 34 c8 99 22 |=1 ...b....l4.."| 00001e20 4f 53 5f 46 69 6c 65 22 2c 32 33 2c 66 69 6c 65 |OS_File",23,file| 00001e30 5f 6e 61 6d 65 24 20 b8 20 66 6f 75 6e 64 2c 2c |_name$ . found,,| 00001e40 2c 2c 64 61 74 61 5f 6c 65 6e 67 74 68 0d 0c 76 |,,data_length..v| 00001e50 4d e7 20 66 6f 75 6e 64 3c 3e 31 20 f2 6d 65 73 |M. found<>1 .mes| 00001e60 73 5f 62 6f 78 31 28 a4 6d 65 73 73 5f 6c 6f 6f |s_box1(.mess_loo| 00001e70 6b 75 70 28 22 4e 4f 54 46 4f 55 4e 44 22 29 2c |kup("NOTFOUND"),| 00001e80 a4 72 6f 64 6f 74 28 66 69 6c 65 5f 6e 61 6d 65 |.rodot(file_name| 00001e90 24 29 2c 22 4f 4b 22 29 3a e1 0d 0c 80 3c c8 99 |$),"OK"):....<..| 00001ea0 22 57 69 6d 70 5f 53 6c 6f 74 53 69 7a 65 22 2c |"Wimp_SlotSize",| 00001eb0 61 70 70 73 69 7a 65 5f 6f 72 69 67 2b 38 2b 64 |appsize_orig+8+d| 00001ec0 61 74 61 5f 6c 65 6e 67 74 68 2b 38 2c 2d 31 20 |ata_length+8,-1 | 00001ed0 b8 20 73 69 7a 65 0d 0c 8a 83 e7 20 73 69 7a 65 |. size..... size| 00001ee0 3c 28 61 70 70 73 69 7a 65 5f 6f 72 69 67 2b 38 |<(appsize_orig+8| 00001ef0 2b 64 61 74 61 5f 6c 65 6e 67 74 68 2b 38 29 20 |+data_length+8) | 00001f00 f2 6d 65 73 73 5f 62 6f 78 31 28 22 43 41 4e 54 |.mess_box1("CANT| 00001f10 43 4c 41 49 4d 22 2c c3 28 a8 28 64 61 74 61 5f |CLAIM",.(.(data_| 00001f20 6c 65 6e 67 74 68 2f 31 30 32 34 29 2b 31 29 2c |length/1024)+1),| 00001f30 22 4f 4b 22 29 3a c8 99 22 57 69 6d 70 5f 53 6c |"OK"):.."Wimp_Sl| 00001f40 6f 74 53 69 7a 65 22 2c 61 70 70 73 69 7a 65 5f |otSize",appsize_| 00001f50 6f 72 69 67 2c 2d 31 3a e1 0d 0c 94 2a c8 99 22 |orig,-1:....*.."| 00001f60 4f 53 5f 46 69 6c 65 22 2c 31 36 2c 66 69 6c 65 |OS_File",16,file| 00001f70 5f 6e 61 6d 65 24 2c 64 61 74 61 5f 73 74 61 72 |_name$,data_star| 00001f80 74 2c 30 0d 0c 9e 3f e7 20 66 6f 75 6e 64 3c 3e |t,0...?. found<>| 00001f90 31 20 f2 6d 65 73 73 5f 62 6f 78 31 28 22 4e 4f |1 .mess_box1("NO| 00001fa0 54 46 4f 55 4e 44 22 2c a4 72 6f 64 6f 74 28 66 |TFOUND",.rodot(f| 00001fb0 69 6c 65 5f 6e 61 6d 65 24 29 2c 22 4f 4b 22 29 |ile_name$),"OK")| 00001fc0 3a e1 0d 0c a8 28 e7 20 64 65 6c 65 74 65 3d 31 |:....(. delete=1| 00001fd0 20 c8 99 22 58 4f 53 5f 46 69 6c 65 22 2c 36 2c | .."XOS_File",6,| 00001fe0 66 69 6c 65 5f 6e 61 6d 65 24 0d 0c b2 0e 21 62 |file_name$....!b| 00001ff0 6c 6f 63 6b 3d 32 35 36 0d 0c bc 11 62 6c 6f 63 |lock=256....bloc| 00002000 6b 21 31 32 3d 73 72 65 66 0d 0c c6 0e 62 6c 6f |k!12=sref....blo| 00002010 63 6b 21 31 36 3d 34 0d 0c d0 26 c8 99 22 57 69 |ck!16=4...&.."Wi| 00002020 6d 70 5f 53 65 6e 64 4d 65 73 73 61 67 65 22 2c |mp_SendMessage",| 00002030 31 37 2c 62 6c 6f 63 6b 2c 73 68 61 6e 0d 0c da |17,block,shan...| 00002040 11 66 69 6c 65 5f 6c 6f 61 64 65 64 3d b9 0d 0c |.file_loaded=...| 00002050 e4 12 66 69 6c 65 5f 73 68 65 61 72 65 64 3d a3 |..file_sheared=.| 00002060 0d 0c ee 23 64 61 74 61 5f 65 6e 64 3d 64 61 74 |...#data_end=dat| 00002070 61 5f 6c 65 6e 67 74 68 2b 64 61 74 61 5f 73 74 |a_length+data_st| 00002080 61 72 74 0d 0c f8 15 f2 61 63 74 69 6f 6e 73 5f |art.....actions_| 00002090 73 68 61 64 65 28 30 29 0d 0d 02 1b f2 77 69 6e |shade(0).....win| 000020a0 64 6f 77 5f 6f 70 65 6e 28 77 69 6e 68 5f 6d 61 |dow_open(winh_ma| 000020b0 69 6e 29 0d 0d 0c 05 e1 0d 0d 16 05 3a 0d 0d 20 |in).........:.. | 000020c0 0f dd f2 66 69 6c 65 5f 64 72 6f 70 0d 0d 2a 11 |...file_drop..*.| 000020d0 66 69 6c 65 5f 6c 6f 61 64 65 64 3d a3 0d 0d 34 |file_loaded=...4| 000020e0 12 66 69 6c 65 5f 73 68 65 61 72 65 64 3d a3 0d |.file_sheared=..| 000020f0 0d 3e 25 c8 99 22 57 69 6d 70 5f 53 6c 6f 74 53 |.>%.."Wimp_SlotS| 00002100 69 7a 65 22 2c 61 70 70 73 69 7a 65 5f 6f 72 69 |ize",appsize_ori| 00002110 67 2c 2d 31 0d 0d 48 15 f2 61 63 74 69 6f 6e 73 |g,-1..H..actions| 00002120 5f 73 68 61 64 65 28 31 29 0d 0d 52 1c f2 77 69 |_shade(1)..R..wi| 00002130 6e 64 6f 77 5f 63 6c 6f 73 65 28 77 69 6e 68 5f |ndow_close(winh_| 00002140 78 66 73 65 29 0d 0d 5c 05 e1 0d 0d 66 05 3a 0d |xfse)..\....f.:.| 00002150 0d 70 13 dd f2 66 69 6c 65 5f 75 6e 65 78 28 61 |.p...file_unex(a| 00002160 24 29 0d 0d 7a 38 c8 99 22 58 54 61 73 6b 4d 61 |$)..z8.."XTaskMa| 00002170 6e 61 67 65 72 5f 54 61 73 6b 4e 61 6d 65 46 72 |nager_TaskNameFr| 00002180 6f 6d 48 61 6e 64 6c 65 22 2c 62 6c 6f 63 6b 21 |omHandle",block!| 00002190 34 20 b8 20 61 3b 76 73 65 74 0d 0d 84 14 e7 20 |4 . a;vset..... | 000021a0 28 76 73 65 74 20 80 20 31 29 3e 30 20 e1 0d 0d |(vset . 1)>0 ...| 000021b0 8e 12 74 61 73 6b 6e 24 3d a4 72 64 30 28 61 29 |..taskn$=.rd0(a)| 000021c0 0d 0d 98 20 f2 6d 65 73 73 5f 62 6f 78 31 28 61 |... .mess_box1(a| 000021d0 24 2c 74 61 73 6b 6e 24 2c 22 4f 4b 22 29 3a e1 |$,taskn$,"OK"):.| 000021e0 0d 0d a2 05 e1 0d 0d ac 05 3a 0d 0d b6 13 dd f2 |.........:......| 000021f0 66 69 6c 65 5f 64 72 61 67 69 6e 69 74 0d 0d c0 |file_draginit...| 00002200 14 21 62 6c 6f 63 6b 3d 77 69 6e 68 5f 78 66 73 |.!block=winh_xfs| 00002210 65 0d 0d ca 22 c8 99 22 57 69 6d 70 5f 47 65 74 |e...".."Wimp_Get| 00002220 57 69 6e 64 6f 77 53 74 61 74 65 22 2c 2c 62 6c |WindowState",,bl| 00002230 6f 63 6b 0d 0d d4 0e 78 30 3d 62 6c 6f 63 6b 21 |ock....x0=block!| 00002240 34 0d 0d de 0f 79 31 3d 62 6c 6f 63 6b 21 31 36 |4....y1=block!16| 00002250 0d 0d e8 14 21 62 6c 6f 63 6b 3d 77 69 6e 68 5f |....!block=winh_| 00002260 78 66 73 65 0d 0d f2 0d 62 6c 6f 63 6b 21 34 3d |xfse....block!4=| 00002270 33 0d 0d fc 20 c8 99 22 57 69 6d 70 5f 47 65 74 |3... .."Wimp_Get| 00002280 49 63 6f 6e 53 74 61 74 65 22 2c 2c 62 6c 6f 63 |IconState",,bloc| 00002290 6b 0d 0e 06 24 6d 69 6e 78 3d 62 6c 6f 63 6b 21 |k...$minx=block!| 000022a0 38 2b 78 30 3a 6d 69 6e 79 3d 62 6c 6f 63 6b 21 |8+x0:miny=block!| 000022b0 31 32 2b 79 31 0d 0e 10 25 6d 61 78 78 3d 62 6c |12+y1...%maxx=bl| 000022c0 6f 63 6b 21 31 36 2b 78 30 3a 6d 61 78 79 3d 62 |ock!16+x0:maxy=b| 000022d0 6c 6f 63 6b 21 32 30 2b 79 31 0d 0e 1a 0f 21 62 |lock!20+y1....!b| 000022e0 6c 6f 63 6b 3d 6d 69 6e 78 0d 0e 24 10 62 6c 6f |lock=minx..$.blo| 000022f0 63 6b 21 34 3d 6d 69 6e 79 0d 0e 2e 10 62 6c 6f |ck!4=miny....blo| 00002300 63 6b 21 38 3d 6d 61 78 78 0d 0e 38 11 62 6c 6f |ck!8=maxx..8.blo| 00002310 63 6b 21 31 32 3d 6d 61 78 79 0d 0e 42 36 c8 99 |ck!12=maxy..B6..| 00002320 22 44 72 61 67 41 53 70 72 69 74 65 5f 53 74 61 |"DragASprite_Sta| 00002330 72 74 22 2c 25 31 31 30 30 30 31 30 31 2c 31 2c |rt",%11000101,1,| 00002340 22 66 69 6c 65 5f 61 66 66 22 2c 62 6c 6f 63 6b |"file_aff",block| 00002350 0d 0e 4c 29 f2 69 63 5f 76 61 6c 69 64 28 22 52 |..L).ic_valid("R| 00002360 32 3b 50 70 74 72 5f 68 61 6e 64 22 2c 33 2c 77 |2;Pptr_hand",3,w| 00002370 69 6e 68 5f 78 66 73 65 29 0d 0e 56 05 e1 0d 0e |inh_xfse)..V....| 00002380 60 05 3a 0d 0e 6a 12 dd f2 66 69 6c 65 5f 64 72 |`.:..j...file_dr| 00002390 61 67 65 6e 64 0d 0e 74 33 f2 69 63 5f 76 61 6c |agend..t3.ic_val| 000023a0 69 64 28 22 52 32 3b 53 66 69 6c 65 5f 61 66 66 |id("R2;Sfile_aff| 000023b0 3b 50 70 74 72 5f 68 61 6e 64 22 2c 33 2c 77 69 |;Pptr_hand",3,wi| 000023c0 6e 68 5f 78 66 73 65 29 0d 0e 7e 18 c8 99 22 44 |nh_xfse)..~..."D| 000023d0 72 61 67 41 53 70 72 69 74 65 5f 53 74 6f 70 22 |ragASprite_Stop"| 000023e0 0d 0e 88 22 c8 99 22 57 69 6d 70 5f 47 65 74 50 |...".."Wimp_GetP| 000023f0 6f 69 6e 74 65 72 49 6e 66 6f 22 2c 2c 62 6c 6f |ointerInfo",,blo| 00002400 63 6b 0d 0e 92 16 66 69 6c 65 5f 64 65 73 74 78 |ck....file_destx| 00002410 3d 62 6c 6f 63 6b 21 30 0d 0e 9c 16 66 69 6c 65 |=block!0....file| 00002420 5f 64 65 73 74 79 3d 62 6c 6f 63 6b 21 34 0d 0e |_desty=block!4..| 00002430 a6 18 66 69 6c 65 5f 64 65 73 74 77 69 3d 62 6c |..file_destwi=bl| 00002440 6f 63 6b 21 31 32 0d 0e b0 18 66 69 6c 65 5f 64 |ock!12....file_d| 00002450 65 73 74 69 63 3d 62 6c 6f 63 6b 21 31 36 0d 0e |estic=block!16..| 00002460 ba 25 6c 65 61 66 24 3d a4 72 6f 64 6f 74 28 a4 |.%leaf$=.rodot(.| 00002470 69 63 5f 72 64 28 32 2c 77 69 6e 68 5f 78 66 73 |ic_rd(2,winh_xfs| 00002480 65 29 29 0d 0e c4 0f 62 6c 6f 63 6b 21 30 3d 32 |e))....block!0=2| 00002490 35 36 0d 0e ce 0e 62 6c 6f 63 6b 21 31 32 3d 30 |56....block!12=0| 000024a0 0d 0e d8 0e 62 6c 6f 63 6b 21 31 36 3d 31 0d 0e |....block!16=1..| 000024b0 e2 18 62 6c 6f 63 6b 21 32 30 3d 66 69 6c 65 5f |..block!20=file_| 000024c0 64 65 73 74 77 69 0d 0e ec 18 62 6c 6f 63 6b 21 |destwi....block!| 000024d0 32 34 3d 66 69 6c 65 5f 64 65 73 74 69 63 0d 0e |24=file_destic..| 000024e0 f6 17 62 6c 6f 63 6b 21 32 38 3d 66 69 6c 65 5f |..block!28=file_| 000024f0 64 65 73 74 78 0d 0f 00 17 62 6c 6f 63 6b 21 33 |destx....block!3| 00002500 32 3d 66 69 6c 65 5f 64 65 73 74 79 0d 0f 0a 18 |2=file_desty....| 00002510 62 6c 6f 63 6b 21 33 36 3d 64 61 74 61 5f 6c 65 |block!36=data_le| 00002520 6e 67 74 68 0d 0f 14 11 62 6c 6f 63 6b 21 34 30 |ngth....block!40| 00002530 3d 26 41 46 46 0d 0f 1e 18 24 28 62 6c 6f 63 6b |=&AFF....$(block| 00002540 2b 34 34 29 3d 6c 65 61 66 24 2b bd 30 0d 0f 28 |+44)=leaf$+.0..(| 00002550 39 c8 99 22 57 69 6d 70 5f 53 65 6e 64 4d 65 73 |9.."Wimp_SendMes| 00002560 73 61 67 65 22 2c 31 37 2c 62 6c 6f 63 6b 2c 66 |sage",17,block,f| 00002570 69 6c 65 5f 64 65 73 74 77 69 2c 66 69 6c 65 5f |ile_destwi,file_| 00002580 64 65 73 74 69 63 0d 0f 32 18 66 69 6c 65 5f 73 |destic..2.file_s| 00002590 61 76 65 72 65 66 3d 62 6c 6f 63 6b 21 38 0d 0f |averef=block!8..| 000025a0 3c 1c f2 77 69 6e 64 6f 77 5f 63 6c 6f 73 65 28 |<..window_close(| 000025b0 77 69 6e 68 5f 78 66 73 65 29 0d 0f 46 05 e1 0d |winh_xfse)..F...| 000025c0 0f 50 05 3a 0d 0f 5a 13 dd f2 66 69 6c 65 5f 73 |.P.:..Z...file_s| 000025d0 61 76 65 28 61 24 29 0d 0f 64 12 66 69 6c 65 5f |ave(a$)..d.file_| 000025e0 73 61 76 65 64 4f 4b 3d a3 0d 0f 6e 39 c8 99 22 |savedOK=...n9.."| 000025f0 58 4f 53 5f 46 69 6c 65 22 2c 31 30 2c 61 24 2c |XOS_File",10,a$,| 00002600 26 41 46 46 2c 2c 64 61 74 61 5f 73 74 61 72 74 |&AFF,,data_start| 00002610 2c 64 61 74 61 5f 65 6e 64 20 b8 20 65 3b 76 73 |,data_end . e;vs| 00002620 65 74 0d 0f 78 11 76 73 65 74 3d 76 73 65 74 20 |et..x.vset=vset | 00002630 80 20 31 0d 0f 82 45 e7 20 76 73 65 74 3d 30 20 |. 1...E. vset=0 | 00002640 66 69 6c 65 5f 73 61 76 65 64 4f 4b 3d b9 20 8b |file_savedOK=. .| 00002650 20 f2 6d 65 73 73 5f 62 6f 78 31 28 22 53 41 56 | .mess_box1("SAV| 00002660 45 46 41 49 4c 45 44 22 2c a4 72 64 30 28 65 2b |EFAILED",.rd0(e+| 00002670 34 29 2c 22 4f 4b 22 29 0d 0f 8c 05 e1 0d 0f 96 |4),"OK")........| 00002680 05 3a 0d 0f a0 16 dd f2 66 69 6c 65 5f 73 75 70 |.:......file_sup| 00002690 6c 6f 61 64 28 61 24 29 0d 0f aa 0f 62 6c 6f 63 |load(a$)....bloc| 000026a0 6b 21 30 3d 32 35 36 0d 0f b4 11 62 6c 6f 63 6b |k!0=256....block| 000026b0 21 31 32 3d 73 72 65 66 0d 0f be 0e 62 6c 6f 63 |!12=sref....bloc| 000026c0 6b 21 31 36 3d 33 0d 0f c8 18 62 6c 6f 63 6b 21 |k!16=3....block!| 000026d0 32 30 3d 66 69 6c 65 5f 64 65 73 74 77 69 0d 0f |20=file_destwi..| 000026e0 d2 18 62 6c 6f 63 6b 21 32 34 3d 66 69 6c 65 5f |..block!24=file_| 000026f0 64 65 73 74 69 63 0d 0f dc 17 62 6c 6f 63 6b 21 |destic....block!| 00002700 32 38 3d 66 69 6c 65 5f 64 65 73 74 78 0d 0f e6 |28=file_destx...| 00002710 17 62 6c 6f 63 6b 21 33 32 3d 66 69 6c 65 5f 64 |.block!32=file_d| 00002720 65 73 74 79 0d 0f f0 18 62 6c 6f 63 6b 21 33 36 |esty....block!36| 00002730 3d 64 61 74 61 5f 6c 65 6e 67 74 68 0d 0f fa 11 |=data_length....| 00002740 62 6c 6f 63 6b 21 34 30 3d 26 41 46 46 0d 10 04 |block!40=&AFF...| 00002750 15 24 28 62 6c 6f 63 6b 2b 34 34 29 3d 61 24 2b |.$(block+44)=a$+| 00002760 bd 30 0d 10 0e 39 c8 99 22 57 69 6d 70 5f 53 65 |.0...9.."Wimp_Se| 00002770 6e 64 4d 65 73 73 61 67 65 22 2c 31 37 2c 62 6c |ndMessage",17,bl| 00002780 6f 63 6b 2c 66 69 6c 65 5f 64 65 73 74 77 69 2c |ock,file_destwi,| 00002790 66 69 6c 65 5f 64 65 73 74 69 63 0d 10 18 05 e1 |file_destic.....| 000027a0 0d 10 22 05 3a 0d 10 2c 0f dd f2 66 69 6c 65 5f |..".:..,...file_| 000027b0 78 66 65 72 0d 10 36 30 f4 20 74 68 69 73 20 70 |xfer..60. this p| 000027c0 61 72 74 20 69 73 20 61 20 62 69 74 20 6f 66 20 |art is a bit of | 000027d0 62 6f 64 67 65 2c 20 62 75 74 20 69 74 20 77 6f |bodge, but it wo| 000027e0 72 6b 73 21 0d 10 40 1b 78 66 65 72 5f 64 65 73 |rks!..@.xfer_des| 000027f0 74 70 6f 69 6e 74 3d 62 6c 6f 63 6b 21 32 30 0d |tpoint=block!20.| 00002800 10 4a 1c 78 66 65 72 5f 64 65 73 74 6c 65 6e 67 |.J.xfer_destleng| 00002810 74 68 3d 62 6c 6f 63 6b 21 32 34 0d 10 54 0d 78 |th=block!24..T.x| 00002820 3d 62 6c 6f 63 6b 21 34 0d 10 5e 3b e7 20 78 66 |=block!4..^;. xf| 00002830 65 72 5f 78 66 65 72 72 69 6e 67 3d a3 20 78 66 |er_xferring=. xf| 00002840 65 72 5f 70 6f 69 6e 74 3d 64 61 74 61 5f 73 74 |er_point=data_st| 00002850 61 72 74 3a 78 66 65 72 5f 78 66 65 72 72 69 6e |art:xfer_xferrin| 00002860 67 3d b9 0d 10 68 1b e7 20 78 66 65 72 5f 70 6f |g=...h.. xfer_po| 00002870 69 6e 74 3c 64 61 74 61 5f 65 6e 64 20 8c 0d 10 |int<data_end ...| 00002880 72 50 20 e7 20 28 78 66 65 72 5f 70 6f 69 6e 74 |rP . (xfer_point| 00002890 2b 78 66 65 72 5f 64 65 73 74 6c 65 6e 67 74 68 |+xfer_destlength| 000028a0 29 3e 64 61 74 61 5f 65 6e 64 20 78 66 65 72 5f |)>data_end xfer_| 000028b0 64 65 73 74 6c 65 6e 67 74 68 3d 64 61 74 61 5f |destlength=data_| 000028c0 65 6e 64 2d 78 66 65 72 5f 70 6f 69 6e 74 0d 10 |end-xfer_point..| 000028d0 7c 53 20 c8 99 22 57 69 6d 70 5f 54 72 61 6e 73 ||S .."Wimp_Trans| 000028e0 66 65 72 42 6c 6f 63 6b 22 2c 74 61 73 6b 5f 68 |ferBlock",task_h| 000028f0 61 6e 64 6c 65 2c 78 66 65 72 5f 70 6f 69 6e 74 |andle,xfer_point| 00002900 2c 78 2c 78 66 65 72 5f 64 65 73 74 70 6f 69 6e |,x,xfer_destpoin| 00002910 74 2c 78 66 65 72 5f 64 65 73 74 6c 65 6e 67 74 |t,xfer_destlengt| 00002920 68 0d 10 86 20 20 78 66 65 72 5f 70 6f 69 6e 74 |h... xfer_point| 00002930 2b 3d 78 66 65 72 5f 64 65 73 74 6c 65 6e 67 74 |+=xfer_destlengt| 00002940 68 0d 10 90 05 cc 0d 10 9a 14 20 78 66 65 72 5f |h......... xfer_| 00002950 78 66 65 72 72 69 6e 67 3d a3 0d 10 a4 05 cd 0d |xferring=.......| 00002960 10 ae 29 e7 20 78 66 65 72 5f 70 6f 69 6e 74 3e |..). xfer_point>| 00002970 64 61 74 61 5f 65 6e 64 20 78 66 65 72 5f 78 66 |data_end xfer_xf| 00002980 65 72 72 69 6e 67 3d a3 0d 10 b8 0e 21 62 6c 6f |erring=.....!blo| 00002990 63 6b 3d 32 35 36 0d 10 c2 0d 62 6c 6f 63 6b 21 |ck=256....block!| 000029a0 34 3d 78 0d 10 cc 19 62 6c 6f 63 6b 21 31 32 3d |4=x....block!12=| 000029b0 78 66 65 72 5f 6c 61 73 74 72 65 66 0d 10 d6 0e |xfer_lastref....| 000029c0 62 6c 6f 63 6b 21 31 36 3d 37 0d 10 e0 1b 62 6c |block!16=7....bl| 000029d0 6f 63 6b 21 32 30 3d 78 66 65 72 5f 64 65 73 74 |ock!20=xfer_dest| 000029e0 70 6f 69 6e 74 0d 10 ea 16 c8 8e 20 78 66 65 72 |point...... xfer| 000029f0 5f 78 66 65 72 72 69 6e 67 20 ca 0d 10 f4 08 20 |_xferring ..... | 00002a00 c9 20 b9 0d 10 fe 1e 20 20 62 6c 6f 63 6b 21 32 |. ..... block!2| 00002a10 34 3d 78 66 65 72 5f 64 65 73 74 6c 65 6e 67 74 |4=xfer_destlengt| 00002a20 68 0d 11 08 0d 20 20 74 79 70 65 3d 31 38 0d 11 |h.... type=18..| 00002a30 12 05 7f 0d 11 1c 0f 20 62 6c 6f 63 6b 21 32 34 |....... block!24| 00002a40 3d 30 0d 11 26 0c 20 74 79 70 65 3d 31 37 0d 11 |=0..&. type=17..| 00002a50 30 05 cb 0d 11 3a 2b c8 99 22 57 69 6d 70 5f 53 |0....:+.."Wimp_S| 00002a60 65 6e 64 4d 65 73 73 61 67 65 22 2c 74 79 70 65 |endMessage",type| 00002a70 2c 62 6c 6f 63 6b 2c 62 6c 6f 63 6b 21 34 0d 11 |,block,block!4..| 00002a80 44 05 e1 0d 11 4e 05 3a 0d 11 58 11 dd f2 73 61 |D....N.:..X...sa| 00002a90 76 65 63 68 6f 69 63 65 73 0d 11 62 1c 65 73 67 |vechoices..b.esg| 00002aa0 31 3d a4 77 68 69 63 68 28 31 2c 77 69 6e 68 5f |1=.which(1,winh_| 00002ab0 6d 61 69 6e 29 0d 11 6c 1c 65 73 67 32 3d a4 77 |main)..l.esg2=.w| 00002ac0 68 69 63 68 28 32 2c 77 69 6e 68 5f 6d 61 69 6e |hich(2,winh_main| 00002ad0 29 0d 11 76 1c 65 73 67 33 3d a4 77 68 69 63 68 |)..v.esg3=.which| 00002ae0 28 33 2c 77 69 6e 68 5f 6d 61 69 6e 29 0d 11 80 |(3,winh_main)...| 00002af0 16 f2 73 68 65 61 72 5f 61 6e 67 6c 65 6c 69 6d |..shear_anglelim| 00002b00 69 74 73 0d 11 8a 10 62 6c 6f 63 6b 21 30 3d 65 |its....block!0=e| 00002b10 73 67 31 0d 11 94 10 62 6c 6f 63 6b 21 34 3d 65 |sg1....block!4=e| 00002b20 73 67 32 0d 11 9e 10 62 6c 6f 63 6b 21 38 3d 65 |sg2....block!8=e| 00002b30 73 67 33 0d 11 a8 16 62 6c 6f 63 6b 21 31 32 3d |sg3....block!12=| 00002b40 73 68 65 61 72 5f 64 65 67 0d 11 b2 3b c8 99 22 |shear_deg...;.."| 00002b50 58 4f 53 5f 46 69 6c 65 22 2c 31 37 2c 74 61 73 |XOS_File",17,tas| 00002b60 6b 5f 70 61 74 68 24 2b 22 43 68 6f 69 63 65 73 |k_path$+"Choices| 00002b70 22 20 b8 20 66 6f 75 6e 64 2c 2c 2c 2c 2c 61 74 |" . found,,,,,at| 00002b80 74 72 69 62 0d 11 bc 0f e7 20 66 6f 75 6e 64 3d |trib..... found=| 00002b90 31 20 8c 0d 11 c6 18 20 61 74 74 72 69 62 3d 61 |1 ..... attrib=a| 00002ba0 74 74 72 69 62 20 80 20 25 31 30 0d 11 d0 32 20 |ttrib . %10...2 | 00002bb0 c8 99 22 58 4f 53 5f 46 69 6c 65 22 2c 34 2c 74 |.."XOS_File",4,t| 00002bc0 61 73 6b 5f 70 61 74 68 24 2b 22 43 68 6f 69 63 |ask_path$+"Choic| 00002bd0 65 73 22 2c 2c 2c 2c 61 74 74 72 69 62 0d 11 da |es",,,,attrib...| 00002be0 05 cd 0d 11 e4 46 c8 99 22 58 4f 53 5f 46 69 6c |.....F.."XOS_Fil| 00002bf0 65 22 2c 31 30 2c 74 61 73 6b 5f 70 61 74 68 24 |e",10,task_path$| 00002c00 2b 22 43 68 6f 69 63 65 73 22 2c 26 46 46 44 2c |+"Choices",&FFD,| 00002c10 2c 62 6c 6f 63 6b 2c 62 6c 6f 63 6b 2b 31 36 20 |,block,block+16 | 00002c20 b8 20 65 3b 76 73 65 74 0d 11 ee 3a e7 20 28 76 |. e;vset...:. (v| 00002c30 73 65 74 20 80 20 31 29 3e 30 20 f2 6d 65 73 73 |set . 1)>0 .mess| 00002c40 5f 62 6f 78 31 28 22 53 41 56 45 46 41 49 4c 45 |_box1("SAVEFAILE| 00002c50 44 22 2c a4 72 64 30 28 65 2b 34 29 2c 22 4f 4b |D",.rd0(e+4),"OK| 00002c60 22 29 0d 11 f8 05 e1 0d 12 02 05 3a 0d 12 0c 11 |").........:....| 00002c70 dd f2 6c 6f 61 64 63 68 6f 69 63 65 73 0d 12 16 |..loadchoices...| 00002c80 3f c8 99 22 58 4f 53 5f 46 69 6c 65 22 2c 31 36 |?.."XOS_File",16| 00002c90 2c 74 61 73 6b 5f 70 61 74 68 24 2b 22 43 68 6f |,task_path$+"Cho| 00002ca0 69 63 65 73 22 2c 62 6c 6f 63 6b 2c 30 20 b8 20 |ices",block,0 . | 00002cb0 66 6f 75 6e 64 20 3b 66 6c 61 67 73 0d 12 20 20 |found ;flags.. | 00002cc0 e7 20 28 66 6c 61 67 73 20 80 20 31 29 3d 31 20 |. (flags . 1)=1 | 00002cd0 84 20 66 6f 75 6e 64 3c 3e 31 20 8c 0d 12 2a 0b |. found<>1 ...*.| 00002ce0 20 65 73 67 31 3d 35 0d 12 34 0b 20 65 73 67 32 | esg1=5..4. esg2| 00002cf0 3d 38 0d 12 3e 0c 20 65 73 67 33 3d 32 30 0d 12 |=8..>. esg3=20..| 00002d00 48 11 20 73 68 65 61 72 5f 64 65 67 3d 33 30 0d |H. shear_deg=30.| 00002d10 12 52 05 cc 0d 12 5c 11 20 65 73 67 31 3d 62 6c |.R....\. esg1=bl| 00002d20 6f 63 6b 21 30 0d 12 66 11 20 65 73 67 32 3d 62 |ock!0..f. esg2=b| 00002d30 6c 6f 63 6b 21 34 0d 12 70 11 20 65 73 67 33 3d |lock!4..p. esg3=| 00002d40 62 6c 6f 63 6b 21 38 0d 12 7a 17 20 73 68 65 61 |block!8..z. shea| 00002d50 72 5f 64 65 67 3d 62 6c 6f 63 6b 21 31 32 0d 12 |r_deg=block!12..| 00002d60 84 05 cd 0d 12 8e 0e e3 20 69 25 3d 30 20 b8 20 |........ i%=0 . | 00002d70 32 0d 12 98 20 20 e7 20 65 73 67 31 3d 28 69 25 |2... . esg1=(i%| 00002d80 2b 34 29 20 62 69 74 3d 31 20 8b 20 62 69 74 3d |+4) bit=1 . bit=| 00002d90 30 0d 12 a2 20 20 f2 69 63 5f 73 65 6c 28 62 69 |0... .ic_sel(bi| 00002da0 74 2c 69 25 2b 34 2c 77 69 6e 68 5f 6d 61 69 6e |t,i%+4,winh_main| 00002db0 29 0d 12 ac 20 20 e7 20 65 73 67 32 3d 28 69 25 |)... . esg2=(i%| 00002dc0 2b 37 29 20 62 69 74 3d 31 20 8b 20 62 69 74 3d |+7) bit=1 . bit=| 00002dd0 30 0d 12 b6 20 20 f2 69 63 5f 73 65 6c 28 62 69 |0... .ic_sel(bi| 00002de0 74 2c 69 25 2b 37 2c 77 69 6e 68 5f 6d 61 69 6e |t,i%+7,winh_main| 00002df0 29 0d 12 c0 05 ed 0d 12 ca 10 e3 20 69 25 3d 32 |).......... i%=2| 00002e00 30 20 b8 20 32 31 0d 12 d4 1c 20 e7 20 65 73 67 |0 . 21.... . esg| 00002e10 33 3d 69 25 20 62 69 74 3d 31 20 8b 20 62 69 74 |3=i% bit=1 . bit| 00002e20 3d 30 0d 12 de 1e 20 f2 69 63 5f 73 65 6c 28 62 |=0.... .ic_sel(b| 00002e30 69 74 2c 69 25 2c 77 69 6e 68 5f 6d 61 69 6e 29 |it,i%,winh_main)| 00002e40 0d 12 e8 05 ed 0d 12 f2 23 f2 69 63 5f 63 68 28 |........#.ic_ch(| 00002e50 c3 73 68 65 61 72 5f 64 65 67 2c 31 34 2c 77 69 |.shear_deg,14,wi| 00002e60 6e 68 5f 6d 61 69 6e 29 0d 12 fc 05 e1 0d 13 06 |nh_main)........| 00002e70 05 3a 0d 13 10 83 dd a4 74 61 73 6b 5f 69 6e 69 |.:......task_ini| 00002e80 74 28 76 65 72 29 3a de 20 74 61 73 6b 5f 69 64 |t(ver):. task_id| 00002e90 25 20 32 30 3a 24 28 74 61 73 6b 5f 69 64 25 2b |% 20:$(task_id%+| 00002ea0 34 29 3d 22 54 41 53 4b 22 3a 21 74 61 73 6b 5f |4)="TASK":!task_| 00002eb0 69 64 25 3d 30 3a c8 99 22 57 69 6d 70 5f 49 6e |id%=0:.."Wimp_In| 00002ec0 69 74 69 61 6c 69 73 65 22 2c 76 65 72 2c 74 61 |itialise",ver,ta| 00002ed0 73 6b 5f 69 64 25 21 34 2c 74 61 73 6b 5f 6e 61 |sk_id%!4,task_na| 00002ee0 6d 65 24 2c 74 61 73 6b 5f 69 64 25 20 b8 20 61 |me$,task_id% . a| 00002ef0 2c 62 3a 3d 62 0d 13 1a 16 dd f2 74 65 6d 70 5f |,b:=b......temp_| 00002f00 6f 70 65 6e 28 66 6e 61 6d 24 29 0d 13 24 3b c8 |open(fnam$)..$;.| 00002f10 99 22 58 4f 53 5f 46 69 6c 65 22 2c 32 33 2c 66 |."XOS_File",23,f| 00002f20 6e 61 6d 24 20 b8 20 66 6f 75 6e 64 2c 2c 2c 2c |nam$ . found,,,,| 00002f30 74 65 6d 70 5f 66 69 6c 65 6c 65 6e 67 74 68 20 |temp_filelength | 00002f40 3b 66 6c 61 67 73 0d 13 2e 13 66 6c 61 67 73 3d |;flags....flags=| 00002f50 66 6c 61 67 73 20 80 20 31 0d 13 38 3a e7 20 66 |flags . 1..8:. f| 00002f60 6c 61 67 73 3d 31 20 84 20 66 6f 75 6e 64 3c 3e |lags=1 . found<>| 00002f70 31 20 f2 6d 65 73 73 5f 62 6f 78 31 28 22 4e 4f |1 .mess_box1("NO| 00002f80 4c 4f 41 44 22 2c 66 6e 61 6d 24 2c 22 4f 4b 22 |LOAD",fnam$,"OK"| 00002f90 29 3a e0 0d 13 42 20 c8 99 22 57 69 6d 70 5f 4f |):...B .."Wimp_O| 00002fa0 70 65 6e 54 65 6d 70 6c 61 74 65 22 2c 2c 66 6e |penTemplate",,fn| 00002fb0 61 6d 24 0d 13 4c 05 e1 0d 13 56 16 dd a4 74 65 |am$..L....V...te| 00002fc0 6d 70 28 61 24 2c 66 6f 6e 74 72 65 66 29 0d 13 |mp(a$,fontref)..| 00002fd0 60 6e c8 99 20 22 57 69 6d 70 5f 4c 6f 61 64 54 |`n.. "Wimp_LoadT| 00002fe0 65 6d 70 6c 61 74 65 22 2c 2c 74 65 6d 70 5f 62 |emplate",,temp_b| 00002ff0 6c 6f 63 6b 2c 74 65 6d 70 5f 69 70 6f 69 6e 74 |lock,temp_ipoint| 00003000 2c 28 74 65 6d 70 5f 69 62 75 66 66 2b 74 65 6d |,(temp_ibuff+tem| 00003010 70 5f 69 6c 65 6e 29 2c 66 6f 6e 74 72 65 66 2c |p_ilen),fontref,| 00003020 61 24 2c 30 20 b8 20 2c 2c 74 65 6d 70 5f 69 70 |a$,0 . ,,temp_ip| 00003030 6f 69 6e 74 2c 2c 2c 2c 66 6e 64 25 0d 13 6a 2f |oint,,,,fnd%..j/| 00003040 c8 99 20 22 57 69 6d 70 5f 43 72 65 61 74 65 57 |.. "Wimp_CreateW| 00003050 69 6e 64 6f 77 22 2c 2c 74 65 6d 70 5f 62 6c 6f |indow",,temp_blo| 00003060 63 6b 20 b8 20 68 61 6e 64 6c 65 0d 13 74 0b 3d |ck . handle..t.=| 00003070 68 61 6e 64 6c 65 0d 13 7e 16 dd f2 77 69 6e 64 |handle..~...wind| 00003080 6f 77 5f 6f 70 65 6e 28 68 61 6e 29 0d 13 88 0f |ow_open(han)....| 00003090 62 6c 6f 63 6b 21 30 3d 68 61 6e 0d 13 92 23 c8 |block!0=han...#.| 000030a0 99 20 22 57 69 6d 70 5f 47 65 74 57 69 6e 64 6f |. "Wimp_GetWindo| 000030b0 77 53 74 61 74 65 22 2c 2c 62 6c 6f 63 6b 0d 13 |wState",,block..| 000030c0 9c 1f c8 99 20 22 57 69 6d 70 5f 4f 70 65 6e 57 |.... "Wimp_OpenW| 000030d0 69 6e 64 6f 77 22 2c 2c 62 6c 6f 63 6b 0d 13 a6 |indow",,block...| 000030e0 05 e1 0d 13 b0 17 dd f2 77 69 6e 64 6f 77 5f 63 |........window_c| 000030f0 6c 6f 73 65 28 68 61 6e 29 0d 13 ba 0f 62 6c 6f |lose(han)....blo| 00003100 63 6b 21 30 3d 68 61 6e 0d 13 c4 20 c8 99 20 22 |ck!0=han... .. "| 00003110 57 69 6d 70 5f 43 6c 6f 73 65 57 69 6e 64 6f 77 |Wimp_CloseWindow| 00003120 22 2c 2c 62 6c 6f 63 6b 0d 13 ce 05 e1 0d 13 d8 |",,block........| 00003130 1e dd f2 77 69 6e 64 6f 77 5f 70 6f 73 69 74 69 |...window_positi| 00003140 6f 6e 28 68 61 6e 2c 78 2c 79 29 0d 13 e2 0f 62 |on(han,x,y)....b| 00003150 6c 6f 63 6b 21 30 3d 68 61 6e 0d 13 ec 23 c8 99 |lock!0=han...#..| 00003160 20 22 57 69 6d 70 5f 47 65 74 57 69 6e 64 6f 77 | "Wimp_GetWindow| 00003170 53 74 61 74 65 22 2c 2c 62 6c 6f 63 6b 0d 13 f6 |State",,block...| 00003180 17 78 53 3d 62 6c 6f 63 6b 21 31 32 2d 62 6c 6f |.xS=block!12-blo| 00003190 63 6b 21 34 0d 14 00 17 79 53 3d 62 6c 6f 63 6b |ck!4....yS=block| 000031a0 21 31 36 2d 62 6c 6f 63 6b 21 38 0d 14 0a 0d 62 |!16-block!8....b| 000031b0 6c 6f 63 6b 21 34 3d 78 0d 14 14 0d 62 6c 6f 63 |lock!4=x....bloc| 000031c0 6b 21 38 3d 79 0d 14 1e 11 62 6c 6f 63 6b 21 31 |k!8=y....block!1| 000031d0 32 3d 78 2b 78 53 0d 14 28 11 62 6c 6f 63 6b 21 |2=x+xS..(.block!| 000031e0 31 36 3d 79 2b 79 53 0d 14 32 1f c8 99 20 22 57 |16=y+yS..2... "W| 000031f0 69 6d 70 5f 4f 70 65 6e 57 69 6e 64 6f 77 22 2c |imp_OpenWindow",| 00003200 2c 62 6c 6f 63 6b 0d 14 3c 05 e1 0d 14 46 1c dd |,block..<....F..| 00003210 f2 69 63 5f 63 68 28 64 61 74 61 24 2c 69 6e 75 |.ic_ch(data$,inu| 00003220 6d 2c 68 61 6e 64 29 0d 14 50 10 62 6c 6f 63 6b |m,hand)..P.block| 00003230 21 30 3d 68 61 6e 64 0d 14 5a 10 62 6c 6f 63 6b |!0=hand..Z.block| 00003240 21 34 3d 69 6e 75 6d 0d 14 64 21 c8 99 20 22 57 |!4=inum..d!.. "W| 00003250 69 6d 70 5f 47 65 74 49 63 6f 6e 53 74 61 74 65 |imp_GetIconState| 00003260 22 2c 2c 62 6c 6f 63 6b 0d 14 6e 0d 62 6c 6f 63 |",,block..n.bloc| 00003270 6b 21 38 3d 30 0d 14 78 0e 62 6c 6f 63 6b 21 31 |k!8=0..x.block!1| 00003280 32 3d 30 0d 14 82 15 24 28 62 6c 6f 63 6b 21 32 |2=0....$(block!2| 00003290 38 29 3d 64 61 74 61 24 0d 14 8c 15 62 6c 6f 63 |8)=data$....bloc| 000032a0 6b 21 33 36 3d a9 28 64 61 74 61 24 29 0d 14 96 |k!36=.(data$)...| 000032b0 21 c8 99 20 22 57 69 6d 70 5f 53 65 74 49 63 6f |!.. "Wimp_SetIco| 000032c0 6e 53 74 61 74 65 22 2c 2c 62 6c 6f 63 6b 0d 14 |nState",,block..| 000032d0 a0 05 e1 0d 14 aa 16 dd a4 69 63 5f 72 64 28 69 |.........ic_rd(i| 000032e0 6e 75 6d 2c 68 61 6e 64 29 0d 14 b4 10 62 6c 6f |num,hand)....blo| 000032f0 63 6b 21 30 3d 68 61 6e 64 0d 14 be 10 62 6c 6f |ck!0=hand....blo| 00003300 63 6b 21 34 3d 69 6e 75 6d 0d 14 c8 21 c8 99 20 |ck!4=inum...!.. | 00003310 22 57 69 6d 70 5f 47 65 74 49 63 6f 6e 53 74 61 |"Wimp_GetIconSta| 00003320 74 65 22 2c 2c 62 6c 6f 63 6b 0d 14 d2 10 3d 24 |te",,block....=$| 00003330 28 62 6c 6f 63 6b 21 32 38 29 0d 14 dc 2c dd f2 |(block!28)...,..| 00003340 69 63 5f 6d 61 6b 65 69 6e 64 73 70 72 28 61 24 |ic_makeindspr(a$| 00003350 2c 61 64 72 2c 69 6e 75 6d 2c 68 61 6e 64 2c f8 |,adr,inum,hand,.| 00003360 20 69 68 61 6e 29 0d 14 e6 0e 61 64 72 21 30 3d | ihan)....adr!0=| 00003370 68 61 6e 64 0d 14 f0 0e 61 64 72 21 34 3d 69 6e |hand....adr!4=in| 00003380 75 6d 0d 14 fa 1e c8 99 22 57 69 6d 70 5f 47 65 |um......"Wimp_Ge| 00003390 74 49 63 6f 6e 53 74 61 74 65 22 2c 2c 61 64 72 |tIconState",,adr| 000033a0 0d 15 04 0f 61 64 72 21 34 3d 61 64 72 21 38 0d |....adr!4=adr!8.| 000033b0 15 0e 10 61 64 72 21 38 3d 61 64 72 21 31 32 0d |...adr!8=adr!12.| 000033c0 15 18 11 61 64 72 21 31 32 3d 61 64 72 21 31 36 |...adr!12=adr!16| 000033d0 0d 15 22 11 61 64 72 21 31 36 3d 61 64 72 21 32 |..".adr!16=adr!2| 000033e0 30 0d 15 2c 0f 61 64 72 21 32 30 3d 26 31 31 41 |0..,.adr!20=&11A| 000033f0 0d 15 36 13 61 64 72 21 32 34 3d 28 61 64 72 2b |..6.adr!24=(adr+| 00003400 34 32 29 0d 15 40 13 24 28 61 64 72 2b 34 32 29 |42)..@.$(adr+42)| 00003410 3d 61 24 2b bd 30 0d 15 4a 0f 61 64 72 21 32 38 |=a$+.0..J.adr!28| 00003420 3d 73 70 72 25 0d 15 54 10 61 64 72 21 33 32 3d |=spr%..T.adr!32=| 00003430 a9 28 61 24 29 0d 15 5e 23 c8 99 22 57 69 6d 70 |.(a$)..^#.."Wimp| 00003440 5f 43 72 65 61 74 65 49 63 6f 6e 22 2c 2c 61 64 |_CreateIcon",,ad| 00003450 72 20 b8 20 69 68 61 6e 0d 15 68 05 e1 0d 15 72 |r . ihan..h....r| 00003460 1f dd f2 69 63 5f 76 61 6c 69 64 28 64 61 74 61 |...ic_valid(data| 00003470 24 2c 69 6e 75 6d 2c 68 61 6e 64 29 0d 15 7c 10 |$,inum,hand)..|.| 00003480 62 6c 6f 63 6b 21 30 3d 68 61 6e 64 0d 15 86 10 |block!0=hand....| 00003490 62 6c 6f 63 6b 21 34 3d 69 6e 75 6d 0d 15 90 21 |block!4=inum...!| 000034a0 c8 99 20 22 57 69 6d 70 5f 47 65 74 49 63 6f 6e |.. "Wimp_GetIcon| 000034b0 53 74 61 74 65 22 2c 2c 62 6c 6f 63 6b 0d 15 9a |State",,block...| 000034c0 0d 62 6c 6f 63 6b 21 38 3d 30 0d 15 a4 0e 62 6c |.block!8=0....bl| 000034d0 6f 63 6b 21 31 32 3d 30 0d 15 ae 15 24 28 62 6c |ock!12=0....$(bl| 000034e0 6f 63 6b 21 33 32 29 3d 64 61 74 61 24 0d 15 b8 |ock!32)=data$...| 000034f0 21 c8 99 20 22 57 69 6d 70 5f 53 65 74 49 63 6f |!.. "Wimp_SetIco| 00003500 6e 53 74 61 74 65 22 2c 2c 62 6c 6f 63 6b 0d 15 |nState",,block..| 00003510 c2 05 e1 0d 15 cc 1b dd f2 69 63 5f 73 65 6c 28 |.........ic_sel(| 00003520 62 69 74 2c 69 6e 75 6d 2c 68 61 6e 64 29 0d 15 |bit,inum,hand)..| 00003530 d6 16 e7 20 62 69 74 3c 3e 30 20 62 69 74 3d 31 |... bit<>0 bit=1| 00003540 3c 3c 32 31 0d 15 e0 10 62 6c 6f 63 6b 21 30 3d |<<21....block!0=| 00003550 68 61 6e 64 0d 15 ea 10 62 6c 6f 63 6b 21 34 3d |hand....block!4=| 00003560 69 6e 75 6d 0d 15 f4 21 c8 99 20 22 57 69 6d 70 |inum...!.. "Wimp| 00003570 5f 47 65 74 49 63 6f 6e 53 74 61 74 65 22 2c 2c |_GetIconState",,| 00003580 62 6c 6f 63 6b 0d 15 fe 0f 62 6c 6f 63 6b 21 38 |block....block!8| 00003590 3d 62 69 74 0d 16 08 12 62 6c 6f 63 6b 21 31 32 |=bit....block!12| 000035a0 3d 31 3c 3c 32 31 0d 16 12 21 c8 99 20 22 57 69 |=1<<21...!.. "Wi| 000035b0 6d 70 5f 53 65 74 49 63 6f 6e 53 74 61 74 65 22 |mp_SetIconState"| 000035c0 2c 2c 62 6c 6f 63 6b 0d 16 1c 05 e1 0d 16 26 1c |,,block.......&.| 000035d0 dd f2 69 63 5f 67 72 65 79 28 62 69 74 2c 69 6e |..ic_grey(bit,in| 000035e0 75 6d 2c 68 61 6e 64 29 0d 16 30 16 e7 20 62 69 |um,hand)..0.. bi| 000035f0 74 3c 3e 30 20 62 69 74 3d 31 3c 3c 32 32 0d 16 |t<>0 bit=1<<22..| 00003600 3a 10 62 6c 6f 63 6b 21 30 3d 68 61 6e 64 0d 16 |:.block!0=hand..| 00003610 44 10 62 6c 6f 63 6b 21 34 3d 69 6e 75 6d 0d 16 |D.block!4=inum..| 00003620 4e 21 c8 99 20 22 57 69 6d 70 5f 47 65 74 49 63 |N!.. "Wimp_GetIc| 00003630 6f 6e 53 74 61 74 65 22 2c 2c 62 6c 6f 63 6b 0d |onState",,block.| 00003640 16 58 0f 62 6c 6f 63 6b 21 38 3d 62 69 74 0d 16 |.X.block!8=bit..| 00003650 62 12 62 6c 6f 63 6b 21 31 32 3d 31 3c 3c 32 32 |b.block!12=1<<22| 00003660 0d 16 6c 21 c8 99 20 22 57 69 6d 70 5f 53 65 74 |..l!.. "Wimp_Set| 00003670 49 63 6f 6e 53 74 61 74 65 22 2c 2c 62 6c 6f 63 |IconState",,bloc| 00003680 6b 0d 16 76 05 e1 0d 16 80 1b dd a4 69 63 5f 72 |k..v........ic_r| 00003690 65 61 64 73 65 6c 28 69 6e 75 6d 2c 68 61 6e 64 |eadsel(inum,hand| 000036a0 29 0d 16 8a 10 62 6c 6f 63 6b 21 30 3d 68 61 6e |)....block!0=han| 000036b0 64 0d 16 94 10 62 6c 6f 63 6b 21 34 3d 69 6e 75 |d....block!4=inu| 000036c0 6d 0d 16 9e 21 c8 99 20 22 57 69 6d 70 5f 47 65 |m...!.. "Wimp_Ge| 000036d0 74 49 63 6f 6e 53 74 61 74 65 22 2c 2c 62 6c 6f |tIconState",,blo| 000036e0 63 6b 0d 16 a8 13 69 66 6c 61 67 73 3d 62 6c 6f |ck....iflags=blo| 000036f0 63 6b 21 32 34 0d 16 b2 1b 69 66 6c 61 67 73 3d |ck!24....iflags=| 00003700 69 66 6c 61 67 73 20 80 20 28 31 3c 3c 32 31 29 |iflags . (1<<21)| 00003710 0d 16 bc 16 e7 20 69 66 6c 61 67 73 3e 30 20 3d |..... iflags>0 =| 00003720 31 20 8b 20 3d 30 0d 16 c6 27 dd f2 6d 65 6e 75 |1 . =0...'..menu| 00003730 5f 6d 61 6b 65 28 6d 65 6e 62 6c 6f 6b 2c 62 61 |_make(menblok,ba| 00003740 73 65 24 2c 6a 24 2c 69 74 65 6d 73 29 0d 16 d0 |se$,j$,items)...| 00003750 20 ea 20 73 75 62 24 2c 78 78 24 2c 6c 62 69 74 | . sub$,xx$,lbit| 00003760 24 2c 70 74 72 2c 73 75 62 6d 65 6e 70 0d 16 da |$,ptr,submenp...| 00003770 21 24 6d 65 6e 62 6c 6f 6b 3d a4 74 6f 6b 65 6e |!$menblok=.token| 00003780 28 62 61 73 65 24 2b 22 54 22 2c 22 22 29 0d 16 |(base$+"T","")..| 00003790 e4 10 6d 65 6e 62 6c 6f 6b 3f 31 32 3d 37 0d 16 |..menblok?12=7..| 000037a0 ee 10 6d 65 6e 62 6c 6f 6b 3f 31 33 3d 32 0d 16 |..menblok?13=2..| 000037b0 f8 10 6d 65 6e 62 6c 6f 6b 3f 31 34 3d 37 0d 17 |..menblok?14=7..| 000037c0 02 10 6d 65 6e 62 6c 6f 6b 3f 31 35 3d 30 0d 17 |..menblok?15=0..| 000037d0 0c 2e 6d 65 6e 62 6c 6f 6b 21 31 36 3d 28 bb 28 |..menblok!16=(.(| 000037e0 a4 74 6f 6b 65 6e 28 62 61 73 65 24 2b 22 57 22 |.token(base$+"W"| 000037f0 2c 22 22 29 29 2a 31 36 29 2b 31 36 0d 17 16 11 |,""))*16)+16....| 00003800 6d 65 6e 62 6c 6f 6b 21 32 30 3d 34 34 0d 17 20 |menblok!20=44.. | 00003810 10 6d 65 6e 62 6c 6f 6b 21 32 34 3d 30 0d 17 2a |.menblok!24=0..*| 00003820 0a 70 74 72 3d 32 38 0d 17 34 0b 73 75 62 24 3d |.ptr=28..4.sub$=| 00003830 6a 24 0d 17 3e 1d 64 65 66 24 3d a4 74 6f 6b 65 |j$..>.def$=.toke| 00003840 6e 28 62 61 73 65 24 2b 22 44 22 2c 22 22 29 0d |n(base$+"D","").| 00003850 17 48 12 e3 20 69 25 3d 31 20 b8 20 69 74 65 6d |.H.. i%=1 . item| 00003860 73 0d 17 52 1e 20 6c 62 69 74 24 3d c0 73 75 62 |s..R. lbit$=.sub| 00003870 24 2c a7 73 75 62 24 2c 22 23 22 29 2d 31 29 0d |$,.sub$,"#")-1).| 00003880 17 5c 23 20 73 75 62 24 3d c2 73 75 62 24 2c a9 |.\# sub$=.sub$,.| 00003890 28 73 75 62 24 29 2d a7 73 75 62 24 2c 22 23 22 |(sub$)-.sub$,"#"| 000038a0 29 29 0d 17 66 12 20 6d 65 6e 62 6c 6f 6b 21 70 |))..f. menblok!p| 000038b0 74 72 3d 30 0d 17 70 4f 20 e7 20 c0 6c 62 69 74 |tr=0..pO . .lbit| 000038c0 24 2c 31 29 3d 22 81 22 20 6c 62 69 74 24 3d c2 |$,1)="." lbit$=.| 000038d0 6c 62 69 74 24 2c a9 28 6c 62 69 74 24 29 2d 31 |lbit$,.(lbit$)-1| 000038e0 29 3a 6d 65 6e 62 6c 6f 6b 21 70 74 72 3d 28 6d |):menblok!ptr=(m| 000038f0 65 6e 62 6c 6f 6b 21 70 74 72 29 20 84 20 25 31 |enblok!ptr) . %1| 00003900 30 30 30 0d 17 7a 4d 20 e7 20 c0 6c 62 69 74 24 |000..zM . .lbit$| 00003910 2c 31 29 3d 22 7c 22 20 6c 62 69 74 24 3d c2 6c |,1)="|" lbit$=.l| 00003920 62 69 74 24 2c a9 28 6c 62 69 74 24 29 2d 31 29 |bit$,.(lbit$)-1)| 00003930 3a 6d 65 6e 62 6c 6f 6b 21 70 74 72 3d 28 6d 65 |:menblok!ptr=(me| 00003940 6e 62 6c 6f 6b 21 70 74 72 29 20 84 20 25 31 30 |nblok!ptr) . %10| 00003950 0d 17 84 33 20 e7 20 69 25 3d 69 74 65 6d 73 20 |...3 . i%=items | 00003960 6d 65 6e 62 6c 6f 6b 21 70 74 72 3d 6d 65 6e 62 |menblok!ptr=menb| 00003970 6c 6f 6b 21 70 74 72 20 84 20 25 31 30 30 30 30 |lok!ptr . %10000| 00003980 30 30 30 0d 17 8e 2d 20 e7 20 6c 62 69 74 24 3d |000...- . lbit$=| 00003990 22 22 20 73 75 62 6d 65 6e 70 3d 2d 31 20 8b 20 |"" submenp=-1 . | 000039a0 73 75 62 6d 65 6e 70 3d bb 28 6c 62 69 74 24 29 |submenp=.(lbit$)| 000039b0 0d 17 98 1c 20 6d 65 6e 62 6c 6f 6b 21 28 70 74 |.... menblok!(pt| 000039c0 72 2b 34 29 3d 73 75 62 6d 65 6e 70 0d 17 a2 1d |r+4)=submenp....| 000039d0 20 6d 65 6e 62 6c 6f 6b 21 28 70 74 72 2b 38 29 | menblok!(ptr+8)| 000039e0 3d 26 37 30 30 39 30 33 31 0d 17 ac 1e 20 6c 62 |=&7009031.... lb| 000039f0 69 74 24 3d c0 64 65 66 24 2c a7 64 65 66 24 2c |it$=.def$,.def$,| 00003a00 22 2c 22 29 2d 31 29 0d 17 b6 23 20 64 65 66 24 |",")-1)...# def$| 00003a10 3d c2 64 65 66 24 2c a9 28 64 65 66 24 29 2d a7 |=.def$,.(def$)-.| 00003a20 64 65 66 24 2c 22 2c 22 29 29 0d 17 c0 1e 20 24 |def$,",")).... $| 00003a30 28 6d 65 6e 62 6c 6f 6b 2b 28 70 74 72 2b 31 32 |(menblok+(ptr+12| 00003a40 29 29 3d 6c 62 69 74 24 0d 17 ca 0c 20 70 74 72 |))=lbit$.... ptr| 00003a50 2b 3d 32 34 0d 17 d4 05 ed 0d 17 de 05 e1 0d 17 |+=24............| 00003a60 e8 15 dd a4 6d 65 6e 75 5f 73 70 61 63 65 28 6e |....menu_space(n| 00003a70 75 6d 29 0d 17 f2 12 3d 28 6e 75 6d 2a 32 34 29 |um)....=(num*24)| 00003a80 2b 32 38 2b 38 0d 17 fc 0f dd a4 72 64 30 28 72 |+28+8......rd0(r| 00003a90 64 7a 70 29 0d 18 06 0b 72 64 7a 24 3d 22 22 0d |dzp)....rdz$="".| 00003aa0 18 10 0a 72 64 7a 7a 3d 30 0d 18 1a 05 f5 0d 18 |...rdzz=0.......| 00003ab0 24 2e 20 e7 20 72 64 7a 70 3f 72 64 7a 7a 3c 3e |$. . rdzp?rdzz<>| 00003ac0 30 20 72 64 7a 24 2b 3d bd 28 72 64 7a 70 3f 72 |0 rdz$+=.(rdzp?r| 00003ad0 64 7a 7a 29 3a 72 64 7a 7a 2b 3d 31 0d 18 2e 1c |dzz):rdzz+=1....| 00003ae0 fd 20 72 64 7a 70 3f 72 64 7a 7a 3d 30 20 84 20 |. rdzp?rdzz=0 . | 00003af0 72 64 7a 70 3d 32 35 35 0d 18 38 09 3d 72 64 7a |rdzp=255..8.=rdz| 00003b00 24 0d 18 42 0f dd f2 65 72 72 6f 72 5f 72 65 70 |$..B...error_rep| 00003b10 0d 18 4c 0d 62 6c 6f 63 6b 21 30 3d 30 0d 18 56 |..L.block!0=0..V| 00003b20 30 24 28 62 6c 6f 63 6b 2b 34 29 3d a4 74 6f 6b |0$(block+4)=.tok| 00003b30 65 6e 28 22 46 41 54 41 4c 49 4e 54 22 2c c3 9e |en("FATALINT",..| 00003b40 2b 22 20 28 22 2b f6 24 2b 22 29 22 29 0d 18 60 |+" ("+.$+")")..`| 00003b50 07 ef 20 37 0d 18 6a 20 c8 99 20 26 34 30 30 44 |.. 7..j .. &400D| 00003b60 46 2c 62 6c 6f 63 6b 2c 30 2c 74 61 73 6b 5f 6e |F,block,0,task_n| 00003b70 61 6d 65 24 0d 18 74 2f c8 99 20 22 57 69 6d 70 |ame$..t/.. "Wimp| 00003b80 5f 43 6c 6f 73 65 44 6f 77 6e 22 2c 74 61 73 6b |_CloseDown",task| 00003b90 5f 68 61 6e 64 6c 65 2c 26 34 42 35 33 34 31 35 |_handle,&4B53415| 00003ba0 34 3a e0 0d 18 7e 05 e1 0d 18 88 1c dd f2 6d 65 |4:...~........me| 00003bb0 6e 5f 74 69 63 6b 28 62 69 74 2c 68 61 6e 64 2c |n_tick(bit,hand,| 00003bc0 6e 75 6d 29 0d 18 92 0e 6e 75 6d 3d 6e 75 6d 2a |num)....num=num*| 00003bd0 32 34 0d 18 9c 0b 6e 75 6d 2b 3d 32 38 0d 18 a6 |24....num+=28...| 00003be0 0d 6e 75 6d 2b 3d 68 61 6e 64 0d 18 b0 0a 61 3d |.num+=hand....a=| 00003bf0 21 6e 75 6d 0d 18 ba 20 e7 20 28 61 20 80 20 31 |!num... . (a . 1| 00003c00 29 3d 30 20 80 20 62 69 74 3e 30 20 21 6e 75 6d |)=0 . bit>0 !num| 00003c10 3d 61 2b 31 0d 18 c4 20 e7 20 28 61 20 80 20 31 |=a+1... . (a . 1| 00003c20 29 3e 30 20 80 20 62 69 74 3d 30 20 21 6e 75 6d |)>0 . bit=0 !num| 00003c30 3d 61 2d 31 0d 18 ce 05 e1 0d 18 d8 1c dd f2 6d |=a-1...........m| 00003c40 65 6e 5f 67 72 65 79 28 62 69 74 2c 68 61 6e 64 |en_grey(bit,hand| 00003c50 2c 6e 75 6d 29 0d 18 e2 0e 6e 75 6d 3d 6e 75 6d |,num)....num=num| 00003c60 2a 32 34 0d 18 ec 0b 6e 75 6d 2b 3d 33 36 0d 18 |*24....num+=36..| 00003c70 f6 0d 6e 75 6d 2b 3d 68 61 6e 64 0d 19 00 0a 61 |..num+=hand....a| 00003c80 3d 21 6e 75 6d 0d 19 0a 2c e7 20 28 61 20 80 20 |=!num...,. (a . | 00003c90 28 31 3c 3c 32 32 29 29 3d 30 20 80 20 62 69 74 |(1<<22))=0 . bit| 00003ca0 3e 30 20 21 6e 75 6d 3d 61 2b 28 31 3c 3c 32 32 |>0 !num=a+(1<<22| 00003cb0 29 0d 19 14 2c e7 20 28 61 20 80 20 28 31 3c 3c |)...,. (a . (1<<| 00003cc0 32 32 29 29 3e 30 20 80 20 62 69 74 3d 30 20 21 |22))>0 . bit=0 !| 00003cd0 6e 75 6d 3d 61 2d 28 31 3c 3c 32 32 29 0d 19 1e |num=a-(1<<22)...| 00003ce0 05 e1 0d 19 28 0f dd a4 72 6f 64 6f 74 28 61 24 |....(...rodot(a$| 00003cf0 29 0d 19 32 14 e7 20 a7 61 24 2c 22 2e 22 29 3d |)..2.. .a$,".")=| 00003d00 30 20 3d 61 24 0d 19 3c 09 69 3d a9 61 24 0d 19 |0 =a$..<.i=.a$..| 00003d10 46 19 f5 3a 69 2d 3d 31 3a fd 20 c1 61 24 2c 69 |F..:i-=1:. .a$,i| 00003d20 2c 31 29 3d 22 2e 22 0d 19 50 0f 3d c2 61 24 2c |,1)="."..P.=.a$,| 00003d30 a9 61 24 2d 69 29 0d 19 5a 20 dd f2 72 61 64 69 |.a$-i)..Z ..radi| 00003d40 6f 6c 6f 63 6b 28 65 73 67 2c 69 63 6f 6e 2c 77 |olock(esg,icon,w| 00003d50 69 6e 64 6f 77 29 0d 19 64 19 65 73 67 3d 28 65 |indow)..d.esg=(e| 00003d60 73 67 3c 3c 31 36 29 2b 26 32 30 30 30 30 30 0d |sg<<16)+&200000.| 00003d70 19 6e 2f c8 99 22 57 69 6d 70 5f 57 68 69 63 68 |.n/.."Wimp_Which| 00003d80 49 63 6f 6e 22 2c 77 69 6e 64 6f 77 2c 62 6c 6f |Icon",window,blo| 00003d90 63 6b 2c 26 33 46 30 30 30 30 2c 65 73 67 0d 19 |ck,&3F0000,esg..| 00003da0 78 26 e7 20 21 62 6c 6f 63 6b 3d 2d 31 20 f2 69 |x&. !block=-1 .i| 00003db0 63 5f 73 65 6c 28 31 2c 69 63 6f 6e 2c 77 69 6e |c_sel(1,icon,win| 00003dc0 64 6f 77 29 0d 19 82 05 e1 0d 19 8c 17 dd a4 77 |dow)...........w| 00003dd0 68 69 63 68 28 65 73 67 2c 77 69 6e 64 6f 77 29 |hich(esg,window)| 00003de0 0d 19 96 19 65 73 67 3d 28 65 73 67 3c 3c 31 36 |....esg=(esg<<16| 00003df0 29 2b 26 32 30 30 30 30 30 0d 19 a0 2f c8 99 22 |)+&200000.../.."| 00003e00 57 69 6d 70 5f 57 68 69 63 68 49 63 6f 6e 22 2c |Wimp_WhichIcon",| 00003e10 77 69 6e 64 6f 77 2c 62 6c 6f 63 6b 2c 26 33 46 |window,block,&3F| 00003e20 30 30 30 30 2c 65 73 67 0d 19 aa 0b 3d 21 62 6c |0000,esg....=!bl| 00003e30 6f 63 6b 0d 19 b4 16 dd f2 6d 65 73 73 5f 6c 6f |ock......mess_lo| 00003e40 61 64 28 66 69 6c 65 24 29 0d 19 be 36 c8 99 22 |ad(file$)...6.."| 00003e50 4d 65 73 73 61 67 65 54 72 61 6e 73 5f 46 69 6c |MessageTrans_Fil| 00003e60 65 49 6e 66 6f 22 2c 2c 66 69 6c 65 24 20 b8 20 |eInfo",,file$ . | 00003e70 2c 2c 6d 65 73 73 5f 62 75 66 66 73 69 7a 65 0d |,,mess_buffsize.| 00003e80 19 c8 1e de 20 6d 65 73 73 5f 62 75 66 66 25 20 |.... mess_buff% | 00003e90 6d 65 73 73 5f 62 75 66 66 73 69 7a 65 0d 19 d2 |mess_buffsize...| 00003ea0 1c de 20 6d 65 73 73 5f 64 65 73 63 25 20 31 37 |.. mess_desc% 17| 00003eb0 2b a9 28 66 69 6c 65 24 29 0d 19 dc 17 de 20 6d |+.(file$)..... m| 00003ec0 65 73 73 5f 67 65 6e 62 75 66 66 25 20 32 35 36 |ess_genbuff% 256| 00003ed0 0d 19 e6 1a 24 28 6d 65 73 73 5f 64 65 73 63 25 |....$(mess_desc%| 00003ee0 2b 31 36 29 3d 66 69 6c 65 24 0d 19 f0 41 c8 99 |+16)=file$...A..| 00003ef0 22 4d 65 73 73 61 67 65 54 72 61 6e 73 5f 4f 70 |"MessageTrans_Op| 00003f00 65 6e 46 69 6c 65 22 2c 6d 65 73 73 5f 64 65 73 |enFile",mess_des| 00003f10 63 25 2c 6d 65 73 73 5f 64 65 73 63 25 2b 31 36 |c%,mess_desc%+16| 00003f20 2c 6d 65 73 73 5f 62 75 66 66 25 0d 19 fa 05 e1 |,mess_buff%.....| 00003f30 0d 1a 04 10 dd f2 6d 65 73 73 5f 63 6c 6f 73 65 |......mess_close| 00003f40 0d 1a 0e 29 c8 99 22 4d 65 73 73 61 67 65 54 72 |...).."MessageTr| 00003f50 61 6e 73 5f 43 6c 6f 73 65 46 69 6c 65 22 2c 6d |ans_CloseFile",m| 00003f60 65 73 73 5f 64 65 73 63 25 0d 1a 18 05 e1 0d 1a |ess_desc%.......| 00003f70 22 12 dd a4 74 6f 6b 65 6e 28 61 24 2c 62 24 29 |"...token(a$,b$)| 00003f80 0d 1a 2c 1a 24 6d 65 73 73 5f 67 65 6e 62 75 66 |..,.$mess_genbuf| 00003f90 66 25 3d 61 24 2b bd 28 30 29 0d 1a 36 4f c8 99 |f%=a$+.(0)..6O..| 00003fa0 22 4d 65 73 73 61 67 65 54 72 61 6e 73 5f 4c 6f |"MessageTrans_Lo| 00003fb0 6f 6b 75 70 22 2c 6d 65 73 73 5f 64 65 73 63 25 |okup",mess_desc%| 00003fc0 2c 6d 65 73 73 5f 67 65 6e 62 75 66 66 25 2c 6d |,mess_genbuff%,m| 00003fd0 65 73 73 5f 67 65 6e 62 75 66 66 25 2c 32 35 35 |ess_genbuff%,255| 00003fe0 2c 62 24 2c 30 2c 30 2c 30 0d 1a 40 18 3d a4 72 |,b$,0,0,0..@.=.r| 00003ff0 64 30 28 6d 65 73 73 5f 67 65 6e 62 75 66 66 25 |d0(mess_genbuff%| 00004000 29 0d 1a 4a 23 dd f2 6d 65 73 73 5f 62 6f 78 31 |)..J#..mess_box1| 00004010 28 74 6f 6b 65 6e 24 2c 73 75 62 31 24 2c 72 65 |(token$,sub1$,re| 00004020 73 70 24 29 0d 1a 54 2c f2 69 63 5f 63 68 28 a4 |sp$)..T,.ic_ch(.| 00004030 74 6f 6b 65 6e 28 74 6f 6b 65 6e 24 2c 73 75 62 |token(token$,sub| 00004040 31 24 29 2c 30 2c 77 69 6e 68 5f 6d 65 73 31 29 |1$),0,winh_mes1)| 00004050 0d 1a 5e 28 f2 69 63 5f 63 68 28 a4 74 6f 6b 65 |..^(.ic_ch(.toke| 00004060 6e 28 72 65 73 70 24 2c 22 22 29 2c 31 2c 77 69 |n(resp$,""),1,wi| 00004070 6e 68 5f 6d 65 73 31 29 0d 1a 68 07 ef 20 37 0d |nh_mes1)..h.. 7.| 00004080 1a 72 48 f2 77 69 6e 64 6f 77 5f 70 6f 73 69 74 |.rH.window_posit| 00004090 69 6f 6e 28 77 69 6e 68 5f 6d 65 73 31 2c 28 a4 |ion(winh_mes1,(.| 000040a0 73 63 72 65 65 6e 5f 78 2d 37 33 38 29 2f 32 2c |screen_x-738)/2,| 000040b0 28 28 a4 73 63 72 65 65 6e 5f 79 2d 32 37 36 29 |((.screen_y-276)| 000040c0 2f 32 29 2b 34 30 29 0d 1a 7c 1c f2 6d 6f 75 73 |/2)+40)..|..mous| 000040d0 65 5f 77 69 6e 64 6f 77 28 77 69 6e 68 5f 6d 65 |e_window(winh_me| 000040e0 73 31 29 0d 1a 86 12 69 63 6f 6e 3d a4 66 61 6b |s1)....icon=.fak| 000040f0 65 70 6f 6c 6c 0d 1a 90 11 f2 6d 6f 75 73 65 5f |epoll.....mouse_| 00004100 73 63 72 65 65 6e 0d 1a 9a 1c f2 77 69 6e 64 6f |screen.....windo| 00004110 77 5f 63 6c 6f 73 65 28 77 69 6e 68 5f 6d 65 73 |w_close(winh_mes| 00004120 31 29 0d 1a a4 05 e1 0d 1a ae 32 dd a4 6d 65 73 |1)........2..mes| 00004130 73 5f 62 6f 78 32 28 74 6f 6b 65 6e 24 2c 73 75 |s_box2(token$,su| 00004140 62 31 24 2c 72 65 73 70 31 24 2c 72 65 73 70 32 |b1$,resp1$,resp2| 00004150 24 2c 72 65 73 70 33 24 29 0d 1a b8 2c f2 69 63 |$,resp3$)...,.ic| 00004160 5f 63 68 28 a4 74 6f 6b 65 6e 28 74 6f 6b 65 6e |_ch(.token(token| 00004170 24 2c 73 75 62 31 24 29 2c 30 2c 77 69 6e 68 5f |$,sub1$),0,winh_| 00004180 6d 65 73 32 29 0d 1a c2 29 f2 69 63 5f 63 68 28 |mes2)...).ic_ch(| 00004190 a4 74 6f 6b 65 6e 28 72 65 73 70 31 24 2c 22 22 |.token(resp1$,""| 000041a0 29 2c 31 2c 77 69 6e 68 5f 6d 65 73 32 29 0d 1a |),1,winh_mes2)..| 000041b0 cc 29 f2 69 63 5f 63 68 28 a4 74 6f 6b 65 6e 28 |.).ic_ch(.token(| 000041c0 72 65 73 70 32 24 2c 22 22 29 2c 32 2c 77 69 6e |resp2$,""),2,win| 000041d0 68 5f 6d 65 73 32 29 0d 1a d6 07 ef 20 37 0d 1a |h_mes2)..... 7..| 000041e0 e0 48 f2 77 69 6e 64 6f 77 5f 70 6f 73 69 74 69 |.H.window_positi| 000041f0 6f 6e 28 77 69 6e 68 5f 6d 65 73 32 2c 28 a4 73 |on(winh_mes2,(.s| 00004200 63 72 65 65 6e 5f 78 2d 37 33 38 29 2f 32 2c 28 |creen_x-738)/2,(| 00004210 28 a4 73 63 72 65 65 6e 5f 79 2d 32 37 36 29 2f |(.screen_y-276)/| 00004220 32 29 2b 34 30 29 0d 1a ea 1c f2 6d 6f 75 73 65 |2)+40).....mouse| 00004230 5f 77 69 6e 64 6f 77 28 77 69 6e 68 5f 6d 65 73 |_window(winh_mes| 00004240 32 29 0d 1a f4 12 69 63 6f 6e 3d a4 66 61 6b 65 |2)....icon=.fake| 00004250 70 6f 6c 6c 0d 1a fe 11 f2 6d 6f 75 73 65 5f 73 |poll.....mouse_s| 00004260 63 72 65 65 6e 0d 1b 08 1c f2 77 69 6e 64 6f 77 |creen.....window| 00004270 5f 63 6c 6f 73 65 28 77 69 6e 68 5f 6d 65 73 32 |_close(winh_mes2| 00004280 29 0d 1b 12 09 3d 69 63 6f 6e 0d 1b 1c 0e dd a4 |)....=icon......| 00004290 66 61 6b 65 70 6f 6c 6c 0d 1b 26 05 f5 0d 1b 30 |fakepoll..&....0| 000042a0 06 20 f5 0d 1b 3a 37 20 20 c8 99 22 57 69 6d 70 |. ...:7 .."Wimp| 000042b0 5f 50 6f 6c 6c 22 2c 25 31 31 31 30 30 31 31 31 |_Poll",%11100111| 000042c0 30 30 30 30 30 31 31 30 30 31 31 2c 62 6c 6f 63 |00000110011,bloc| 000042d0 6b 20 b8 20 72 65 61 73 6f 6e 0d 1b 44 0f 20 fd |k . reason..D. .| 000042e0 20 72 65 61 73 6f 6e 3d 36 0d 1b 4e 2a fd 20 28 | reason=6..N*. (| 000042f0 62 6c 6f 63 6b 21 38 3d 31 20 84 20 62 6c 6f 63 |block!8=1 . bloc| 00004300 6b 21 38 3d 34 29 20 80 20 62 6c 6f 63 6b 21 31 |k!8=4) . block!1| 00004310 36 3e 30 0d 1b 58 0d 3d 62 6c 6f 63 6b 21 31 36 |6>0..X.=block!16| 00004320 0d 1b 62 18 dd f2 6d 6f 75 73 65 5f 77 69 6e 64 |..b...mouse_wind| 00004330 6f 77 28 68 61 6e 64 29 0d 1b 6c 0f 21 62 6c 6f |ow(hand)..l.!blo| 00004340 63 6b 3d 68 61 6e 64 0d 1b 76 24 c8 99 22 57 69 |ck=hand..v$.."Wi| 00004350 6d 70 5f 47 65 74 57 69 6e 64 6f 77 4f 75 74 6c |mp_GetWindowOutl| 00004360 69 6e 65 22 2c 2c 62 6c 6f 63 6b 0d 1b 80 0c 3f |ine",,block....?| 00004370 62 6c 6f 63 6b 3d 31 0d 1b 8a 13 62 6c 6f 63 6b |block=1....block| 00004380 21 31 3d 62 6c 6f 63 6b 21 34 0d 1b 94 13 62 6c |!1=block!4....bl| 00004390 6f 63 6b 21 33 3d 62 6c 6f 63 6b 21 38 0d 1b 9e |ock!3=block!8...| 000043a0 14 62 6c 6f 63 6b 21 35 3d 62 6c 6f 63 6b 21 31 |.block!5=block!1| 000043b0 32 0d 1b a8 14 62 6c 6f 63 6b 21 37 3d 62 6c 6f |2....block!7=blo| 000043c0 63 6b 21 31 36 0d 1b b2 18 c8 99 22 4f 53 5f 57 |ck!16......"OS_W| 000043d0 6f 72 64 22 2c 32 31 2c 62 6c 6f 63 6b 0d 1b bc |ord",21,block...| 000043e0 05 e1 0d 1b c6 12 dd f2 6d 6f 75 73 65 5f 73 63 |........mouse_sc| 000043f0 72 65 65 6e 0d 1b d0 0c 3f 62 6c 6f 63 6b 3d 31 |reen....?block=1| 00004400 0d 1b da 0d 62 6c 6f 63 6b 21 31 3d 30 0d 1b e4 |....block!1=0...| 00004410 0d 62 6c 6f 63 6b 21 33 3d 30 0d 1b ee 15 62 6c |.block!3=0....bl| 00004420 6f 63 6b 21 35 3d a4 73 63 72 65 65 6e 5f 78 0d |ock!5=.screen_x.| 00004430 1b f8 15 62 6c 6f 63 6b 21 37 3d a4 73 63 72 65 |...block!7=.scre| 00004440 65 6e 5f 79 0d 1c 02 18 c8 99 22 4f 53 5f 57 6f |en_y......"OS_Wo| 00004450 72 64 22 2c 32 31 2c 62 6c 6f 63 6b 0d 1c 0c 05 |rd",21,block....| 00004460 e1 0d 1c 16 0e dd a4 73 63 72 65 65 6e 5f 78 0d |.......screen_x.| 00004470 1c 20 2a c8 99 22 4f 53 5f 52 65 61 64 4d 6f 64 |. *.."OS_ReadMod| 00004480 65 56 61 72 69 61 62 6c 65 22 2c 2d 31 2c 34 20 |eVariable",-1,4 | 00004490 b8 20 2c 2c 78 65 69 67 25 0d 1c 2a 12 78 65 69 |. ,,xeig%..*.xei| 000044a0 67 25 3d 31 3c 3c 78 65 69 67 25 0d 1c 34 2b c8 |g%=1<<xeig%..4+.| 000044b0 99 22 4f 53 5f 52 65 61 64 4d 6f 64 65 56 61 72 |."OS_ReadModeVar| 000044c0 69 61 62 6c 65 22 2c 2d 31 2c 31 31 20 b8 20 2c |iable",-1,11 . ,| 000044d0 2c 78 70 69 78 25 0d 1c 3e 0c 78 70 69 78 25 2b |,xpix%..>.xpix%+| 000044e0 3d 31 0d 1c 48 10 3d 78 65 69 67 25 2a 78 70 69 |=1..H.=xeig%*xpi| 000044f0 78 25 0d 1c 52 0e dd a4 73 63 72 65 65 6e 5f 79 |x%..R...screen_y| 00004500 0d 1c 5c 2a c8 99 22 4f 53 5f 52 65 61 64 4d 6f |..\*.."OS_ReadMo| 00004510 64 65 56 61 72 69 61 62 6c 65 22 2c 2d 31 2c 35 |deVariable",-1,5| 00004520 20 b8 20 2c 2c 79 65 69 67 25 0d 1c 66 12 79 65 | . ,,yeig%..f.ye| 00004530 69 67 25 3d 31 3c 3c 79 65 69 67 25 0d 1c 70 2b |ig%=1<<yeig%..p+| 00004540 c8 99 22 4f 53 5f 52 65 61 64 4d 6f 64 65 56 61 |.."OS_ReadModeVa| 00004550 72 69 61 62 6c 65 22 2c 2d 31 2c 31 32 20 b8 20 |riable",-1,12 . | 00004560 2c 2c 79 70 69 78 25 0d 1c 7a 0c 79 70 69 78 25 |,,ypix%..z.ypix%| 00004570 2b 3d 31 0d 1c 84 10 3d 79 65 69 67 25 2a 79 70 |+=1....=yeig%*yp| 00004580 69 78 25 0d 1c 8e 1e dd a4 76 61 72 5f 63 68 65 |ix%......var_che| 00004590 63 6b 65 78 69 73 74 61 6e 63 65 28 76 61 72 24 |ckexistance(var$| 000045a0 29 0d 1c 98 2d c8 99 22 58 4f 53 5f 52 65 61 64 |)...-.."XOS_Read| 000045b0 56 61 72 56 61 6c 22 2c 76 61 72 24 2c 2c 31 3c |VarVal",var$,,1<| 000045c0 3c 33 31 20 b8 20 2c 2c 65 78 69 73 74 73 0d 1c |<31 . ,,exists..| 000045d0 a2 16 e7 20 65 78 69 73 74 73 3d 30 20 3d a3 20 |... exists=0 =. | 000045e0 8b 20 3d b9 0d 1c ac 13 dd a4 76 61 72 5f 67 65 |. =.......var_ge| 000045f0 74 28 76 61 72 24 29 0d 1c b6 11 ea 20 61 24 2c |t(var$)..... a$,| 00004600 62 79 74 65 73 2c 69 25 0d 1c c0 36 c8 99 22 58 |bytes,i%...6.."X| 00004610 4f 53 5f 52 65 61 64 56 61 72 56 61 6c 22 2c 76 |OS_ReadVarVal",v| 00004620 61 72 24 2c 62 6c 6f 63 6b 2c 32 35 35 2c 30 20 |ar$,block,255,0 | 00004630 b8 20 2c 2c 62 79 74 65 73 3b 76 73 65 74 0d 1c |. ,,bytes;vset..| 00004640 ca 09 61 24 3d 22 22 0d 1c d4 14 e7 20 28 76 73 |..a$=""..... (vs| 00004650 65 74 20 80 20 31 29 3d 30 20 8c 0d 1c de 21 20 |et . 1)=0 ....! | 00004660 e3 20 69 25 3d 62 6c 6f 63 6b 20 b8 20 62 6c 6f |. i%=block . blo| 00004670 63 6b 2b 28 62 79 74 65 73 2d 31 29 0d 1c e8 10 |ck+(bytes-1)....| 00004680 20 20 61 24 2b 3d bd 28 3f 69 25 29 0d 1c f2 06 | a$+=.(?i%)....| 00004690 20 ed 0d 1c fc 05 cd 0d 1d 06 07 3d 61 24 0d ff | ..........=a$..| 000046a0