Home » Archimedes archive » Acorn User » AU 1995-02.adf » !Circuit_Circuit » !Circuit/!RunImage
!Circuit/!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 » Acorn User » AU 1995-02.adf » !Circuit_Circuit |
Filename: | !Circuit/!RunImage |
Read OK: | ✔ |
File size: | 6171 bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
10SYS"Hourglass_On" 20LIBRARY "<Circ$Dir>.DrawBasic" 30ON ERROR PROCerror(REPORT$+" : at line "+STR$ERL):END 40REM ***>$.!Circuit.!RunImage 50REM ***Main Program for !Circuit - Circuit Diagram creator and editor 60REM Version 1.15 (15 Jan '94) 70REM Authur LEN J. Robbins 80sfile$="" 90SYS"OS_ReadModeVariable",MODE,11 TO,,C 100SYS"OS_ReadModeVariable",MODE,12 TO,,B 110C+=1:B+=1 120IF B/C=.8 AND MODE<>13 THEN sfile$="Sprites27" 130IF B/C=.75 AND MODE<>13 THEN sfile$="Sprites27" 140IF B/C<>.8 AND B/C<>.75 OR MODE=13 sfile$="Sprites12" 150PROCloadsprites(sfile$) 160SYS"Hourglass_Smash" 170DIM block 4*1024, menu% 1024, curbuf% 2.5*1024, icond 2*1024, point% 25,mblock 512 180maxlev%=32 190DIM start%(maxlev%),box%(maxlev%) 200DIM l%(maxlev%),b%(maxlev%),r%(maxlev%),t%(maxlev%) 210DIM pset$(30,30),textinfo$(50),p% 10, scal 20, scalblock 255 220DIM palette% 255,defpal% 255,winpal(15) 230end%=-1:text=FALSE:gridx=15:gridy=8:toolson=TRUE:shutdownsave=FALSE 240endbuf%=curbuf%+&6000 250tot=-1:found=FALSE:saved=FALSE:prequitsave=FALSE:prequit=FALSE 260in=FALSE:started=0:fontmess=FALSE 270FOR I=0 TO 15 280READ hexa 290winpal(I)=hexa 300defpal%!(I*4)=hexa 310NEXT 320DATA &FFFFFF10,&DDDDDD10,&BBBBBB10,&99999910,&77777710,&55555510,&33333310,&010 330DATA &99440010,&EEEE10,&CC0010,&DD10,&BBEEEE10,&885510,&BBFF10,&FFBB0010 340SYS "Wimp_Initialise",200,&4B534154,"!Circuit" TO version%,mytask% 350SYS "Wimp_ClaimInterface",mytask% 360PROCtemplate 370SYS"XOS_ReadVarVal","Circ$Drag",block,256,0,0 TO ,,len:block?len=13:drag$=$block 380IF drag$="TRUE" THEN dragspr=TRUE ELSE dragspr=FALSE 390SYS "OS_GetEnv" TO env$ 400IF INSTR(env$,"-quit") THEN 410I%=INSTR(env$,"""") 420I%=INSTR(env$,"""",I%+1) 430REPEAT 440I%+=1 450UNTIL MID$(env$,I%,1)<>" " 460env$=MID$(env$,I%) 470ENDIF 480initic=FNicon 490end%=FALSE:drag%=0:drive%=0:tool$="resistor" 500size%=48:font%=-1:family%=0:style%=-1:n_font%=1 510reinter=&81683 520PROCalterwin(15,8,0) 530PROCinfo(grid%,8,"8"):PROCinfo(grid%,5,"15") 540ON ERROR PROCerror(REPORT$+" : at line "+STR$ERL) 550IF env$<>"" PROCload(env$) 560REPEAT 570SYS"Wimp_Poll",0,block TO eventcode 580SYS "Wimp_PollPointer",eventcode,,version% 590CASE eventcode OF 600WHEN 0:IF NOT saved AND prequit SYS"Wimp_ProcessKey",&1FC 610WHEN 1:PROCredraw(block!0) 620WHEN 2:win=!block:IF win=circuit% THEN PROCpane:ELSE SYS "Wimp_OpenWindow",,block 630WHEN 3:PROCrequest3 640WHEN 4:$point%="ptr_default":SYS "Wimp_SpriteOp",36,,point%,1,0,0 650WHEN 5:IF tool$="ptr_text" OR tool$="ptr_xtext" THEN x=0:y=0:ELSE x=8:y=8 660IF block!0=circuit% THEN $point%=tool$:SYS "Wimp_SpriteOp",36,,point%,1,x,y 670WHEN 6:PROCclick(block) 680WHEN 7:PROCout 690WHEN 8:PROCprocess 700WHEN 9:PROCselect 710WHEN 17,18:PROCmessagein 720ENDCASE 730UNTIL end% 740DEFPROCrequest3 750CASE !block OF 760WHEN enter%:SYS "Wimp_CloseWindow",,block:text=FALSE:tool$=oldtool$:$point%=tool$:SYS "Wimp_SpriteOp",36,,point%,1,8,8 770WHEN circuit%:SYS "Wimp_CloseWindow",,block:!block=toolbox%:SYS "Wimp_CloseWindow",,block 780WHEN saved%:IFprequit THEN prequit=FALSE 790WHEN toolbox%:toolson=FALSE:SYS "Wimp_CloseWindow",,block 800OTHERWISE :SYS "Wimp_CloseWindow",,block 810ENDCASE 820ENDPROC 830DEFFNicon 840!icond=-1 850icond!4=0 860icond!8=0:icond!12=68:icond!16=68 870icond!20=%11010+((2^12)*3):icond?23=112 880$(icond+24)="!Circuit"+CHR$13 890SYS "Wimp_CreateIcon",,icond TO icon 900=icon 910DEFFNsprinfo(handle,icon) 920PROCgee(handle,icon) 930=(icond+28) 940DEFFNinf(handle,icon) 950PROCgee(handle,icon) 960=icond!28 970 DEFFNbit(a$) 980WHILE INSTR(a$,":")>0 990a$=MID$(a$,INSTR(a$,":")+1) 1000ENDWHILE 1010WHILE INSTR(a$,".")>0 1020a$=MID$(a$,INSTR(a$,".")+1) 1030ENDWHILE 1040=a$ 1050DEFFNwool(wool%) 1060LOCAL cot$ 1070 WHILE ?wool%>=32 1080cot$+=CHR$(?wool%) 1090wool%+=1 1100ENDWHILE 1110=cot$ 1120DEFPROCloadsprites(Gee$) 1130OSCLI("Iconsprites <Circ$Dir>."+Gee$+"!") 1140SYS "OS_File",5,"<Circ$Dir>."+Gee$+"!" TO ,,,,spr_len% 1150spr_len%=spr_len%+4 1160DIM spr% spr_len% 1170!spr%=spr_len% 1180SYS "OS_File",255,"<Circ$Dir>."+Gee$+"!",spr%+4 1190ENDPROC 1200DEFPROCtemplate 1210SYS"Wimp_OpenTemplate",,"<Circ$Dir>.Templates" 1220indir=curbuf% 1230info%=FNtemplate("ProgInfo") 1240save%=FNtemplate("save") 1250saved%=FNtemplate("savetext") 1260circuit%=FNtemplate("Circuit") 1270tools%=FNtemplate("Icons") 1280lines%=FNtemplate("LINES") 1290toolbox%=FNtemplate("TOOLS") 1300enter%=FNtemplate("text") 1310grid%=FNtemplate("size") 1320query%=FNtemplate("query") 1330quit%=FNtemplate("quitbox") 1340scroll%=FNtemplate("scroll") 1350SYS "Wimp_CloseTemplate" 1360stex=FNinfo(save%,1) 1370stexd=FNinfo(saved%,1) 1380ENDPROC 1390DEFFNtemplate(a$) 1400SYS"Wimp_LoadTemplate",,block,indir,endbuf%,-1,a$,0 TO ,,indir,,,,c% 1410IF c%=0 THEN PROCmess("Template "+a$+" not found."):END 1420block!64=1 1430SYS"Wimp_CreateWindow",,block TO handle 1440=handle 1450DEFFNinfo(handle,icon) 1460PROCgee(handle,icon) 1470=icond!28 1480DEFPROCinfo(handle,icon,text$) 1490!block=handle:block!4=icon:SYS"Wimp_GetIconState",,block 1500$(block!28)=text$:block!36=LEN(text$)+1 1510block!8=0:block!12=0 1520SYS"Wimp_SetIconState",,block 1530ENDPROC 1540DEFPROCsprinfo(handle,icon,text$) 1550!block=handle:block!4=icon:SYS"Wimp_GetIconState",,block 1560$(block!28)=text$:block!36=LEN(text$)+1 1570block!8=0:block!12=0 1580SYS"Wimp_SetIconState",,block 1590ENDPROC 1600DEFPROCgee(handle,icon) 1610!icond=handle:icond!4=icon 1620SYS"Wimp_GetIconState",,icond 1630ENDPROC 1640DEFPROCcmenus 1650menuopen=-44 1660menuptr=menu% 1670MOUSE x,y,b 1680IF toolson THEN toolon$="{�}Tools":ELSE toolon$="Tools" 1690SaveMenu%=FNmenu("Save",174,"{b|save%}Draw,{b|saved%}Data") 1700iconmenu%=FNmenu("!Circuit",174,"{b|info%}Info,Circuit,"+toolon$+",Lines,{b|grid%}Size,{b|scroll%}Scroll,{b|SaveMenu%}Save,Quit") 1710IF block!12=-2 AND block!8=2 THEN 1720openmenu%=iconmenu%:a=x-75:b=(8+2)*48:REM No. of items+2*48 1730ELSE a=x:b=y:openmenu%=iconmenu% 1740ENDIF 1750PROCopenmenu(a,b) 1760ENDPROC 1770DEFPROCopenmenu(x,y) 1780SYS"Wimp_CreateMenu",,openmenu%,x,y 1790ENDPROC 1800DEFFNmenu(tit$,wid,menu$) 1810menu$+="," 1820oldmenu=menuptr 1830$menuptr=tit$ 1840menuptr?12=7 1850menuptr?13=2 1860menuptr?14=7 1870menuptr?15=0 1880menuptr!16=wid 1890menuptr!20=48 1900menuptr!24=0 1910menuptr+=28 1920REPEAT 1930PROCthing(menu$) 1940menu$=MID$(menu$,INSTR(menu$,",")+1) 1950menuptr+=24 1960UNTIL menu$="" 1970menuptr!-24=(menuptr!-24) OR %10000000 1980=oldmenu 1990DEFPROCthing(m$) 2000m$=LEFT$(m$,INSTR(m$,",")-1) 2010i$="":j$="" 2020IF INSTR(m$,"{")>0 THEN 2030i$=LEFT$(m$,INSTR(m$,"}")-1) 2040m$=MID$(m$,INSTR(m$,"}")+1) 2050j$=LEFT$(i$,INSTR(i$,"|")-1) 2060i$=MID$(i$,INSTR(i$,"|")+1) 2070ENDIF 2080ijack=&07000021 2090mjack=0 2100submenu=-1 2110IF INSTR(j$,"b")>0 THEN submenu=EVAL(i$) 2120IF INSTR(j$,"_")>0 THEN mjack=mjack OR 2 2130IF INSTR(j$,"�")>0 THEN mjack=mjack OR 1 2140IF INSTR(j$,"u")>0 THEN mjack=mjack OR 2:submenu=EVAL(i$) 2150!menuptr=mjack 2160menuptr!4=submenu 2170menuptr!8=ijack 2180$(menuptr+12)=m$ 2190ENDIF 2200ENDPROC 2210DEFPROCclick(block) 2220keepb%=block!12 2230IF FNcheckit(block!12,block!16)=983040 THEN 2240PROCslabin(keepb%):PROCslabout(keepb%) 2250ENDIF 2260IF shutdownsave THEN quitin=FALSE:PROCclose(quit%) 2270IF block!12=-2 AND block!8=2 PROCcmenus:ENDPROC 2280IF block!12=-2 AND block!8=4 PROCopenwin(circuit%):PROCpane 2290IF block!12=save% AND block!16=2 winsave%=block!12:filetype$="file_AFF":PROCdefsave 2300IF block!12=saved% AND block!16=2 winsave%=block!12:filetype$="file_00C":PROCdefsave 2310IF block!12=save% AND block!16=0 winsave%=block!12:PROCsave($FNinfo(winsave%,1)) 2320IF block!12=saved% AND block!16=0 winsave%=block!12:PROCsave($FNinfo(winsave%,1)) 2330IF block!12=grid% AND block!16=7 THEN PROCgrid(0,8) 2340IF block!12=grid% AND block!16=6 THEN PROCgrid(1,8) 2350IF block!12=grid% AND block!16=3 THEN PROCgrid(2,5) 2360IF block!12=grid% AND block!16=4 THEN PROCgrid(3,5) 2370IF block!12=scroll% AND block!16=1 THEN PROCscroll(0,1) 2380IF block!12=scroll% AND block!16=2 THEN PROCscroll(0,-1) 2390IF block!12=scroll% AND block!16=3 THEN PROCscroll(1,0) 2400IF block!12=scroll% AND block!16=4 THEN PROCscroll(-1,0) 2410IF block!12=tools% THEN tool$=$FNsprinfo(tools%,block!16):text=FALSE 2420IF block!12=circuit% AND block!8=4 AND NOT text AND tool$<>"ptr_xtext" THEN vx=block!0:vy=block!4:PROCdoit(vx,vy,block!12):ENDPROC 2430IF block!12=circuit% AND block!8=4 AND text PROCdotext(block!0,block!4) 2440IF block!12=circuit% AND block!8=1 AND tool$="ptr_xtext" THEN vx=block!0:vy=block!4:PROCdeltext(vx,vy) 2450IF block!12=circuit% AND block!8=2 THEN PROCcmenus 2460IF block!12=lines% THEN tool$=$FNsprinfo(lines%,block!16):text=FALSE 2470IF block!12=circuit% AND block!8=1 AND NOT text AND tool$<>"ptr_xtext" THEN PROCclearit(block!0,block!4,block!12):ENDPROC 2480IF block!12=toolbox% AND block!16=0 THEN PROCgotext(block!0,block!4) 2490IF block!12=toolbox% AND block!16=1 PROCopenwin(tools%) 2500IF block!12=toolbox% AND block!16=2 PROCopenwin(lines%) 2510IF block!12=toolbox% AND block!16=3 PROCclearall 2520IF block!12=toolbox% AND block!16=8 AND tool$<>"ptr_xtext" THEN Voldtool$=tool$:tool$="ptr_xtext":$point%=tool$:SYS "Wimp_SpriteOp",36,,point%,1,0,0 2530IF block!12=query% AND block!16=0 THEN PROCclose(query%):PROCendq 2540IF prequit THEN 2550IF block!12=quit% AND block!16=0 THEN SYS"Wimp_ProcessKey",&1FC:SYSreinter,mytask%:SYS"Wimp_CloseDown" 2560IF block!12=quit% AND block!16=2 THEN PROCclose(quit%):prequit=FALSE 2570IF block!12=quit% AND block!16=3 THEN PROCclose(quit%):PROCopenwin(saved%):prequitsave=TRUE 2580IF prequit AND NOT prequitsave prequit=FALSE 2590ELSE 2600IF block!12=quit% AND block!16=0 THEN SYSreinter,mytask%:SYS"Wimp_CloseDown" 2610IF block!12=quit% AND block!16=2 THEN PROCclose(quit%) 2620IF block!12=quit% AND block!16=3 THEN PROCclose(quit%):PROCopenwin(saved%):shutdownsave=TRUE 2630ENDIF 2640ENDPROC 2650DEFPROCprocess 2660IF !block=circuit% AND block!24=13 THEN PROCcaret 2670SYS"Wimp_ProcessKey",block!24 2680ENDPROC 2690DEFPROCcaret 2700SYS"Wimp_GetCaretPosition",,block 2710IF !block=circuit% THEN ENDPROC 2720ENDPROC 2730DEFPROCselect 2740noway=0 2750SYS"Wimp_DecodeMenu",,openmenu%,block,icond 2760IF $icond="Quit" THEN PROCareyousure:shutdownsave%=TRUE 2770IF $icond="Tools" AND toolson THEN toolson=FALSE:PROCtoolbox(-1):noway=-1 2780IF $icond="Tools" AND NOT toolson AND noway=0 THEN toolson=TRUE:PROCtoolbox(1) 2790IF $icond="Components" THEN PROCopenwin(tools%) 2800IF $icond="Lines" THEN PROCopenwin(lines%) 2810IF $icond="Circuit" THEN PROCopenwin(circuit%) 2820SYS"Wimp_GetPointerInfo",,block 2830IF block!8=1 THEN 2840IF menuopen=-44 THEN PROCcmenus 2850SYS"Wimp_CreateMenu",,openmenu% 2860ELSE 2870SYS"Wimp_CreateMenu",,-1 2880ENDIF 2890ENDPROC 2900DEFPROCgrid(dir,icn) 2910numb=VAL$FNinfo(grid%,icn) 2920IF numb=30 THEN ENDPROC 2930IF numb=5 THEN ENDPROC 2940CASE dir OF 2950WHEN 0:REM up;IF numb=30 THEN ENDPROC 2960PROCinfo(grid%,icn,STR$(numb+1)):gridy=numb+1:alter=1 2970WHEN 1:REM down:IF numb=5 THEN ENDPROC 2980PROCinfo(grid%,icn,STR$(numb-1)):gridy=numb-1:alter=-1 2990WHEN 2:REM small:IF numb=5 THEN ENDPROC 3000PROCinfo(grid%,icn,STR$(numb-1)):gridx=numb-1:alter=-1 3010WHEN 3:REM wider:IF numb=30 THEN ENDPROC 3020PROCinfo(grid%,icn,STR$(numb+1)):gridx=numb+1:alter=2 3030ENDCASE 3040PROCalterwin(gridx,gridy,alter) 3050ENDPROC 3060DEFPROCalterwin(newgridx,newgridy,alter) 3070IF alter=2 THEN 3080FOR I=0 TO newgridy-1 3090pset$(newgridx-1,I)="" 3100NEXT 3110ENDIF 3120IF alter=1 THEN 3130FOR I=0 TO newgridx+1 3140pset$(I,newgridy-1)="" 3150NEXT 3160ENDIF 3170block!64=0:block!68=-(newgridy*62):block!72=newgridx*62:block!76=0 3180SYS "Wimp_SetExtent",circuit%,block+64 3190!block=circuit% 3200SYS"Wimp_GetWindowState",,block 3210open=block!32 AND (1<<16) 3220IF open<>0 THEN 3230SYS"Wimp_OpenWindow",,block 3240SYS"Wimp_ForceRedraw",circuit%,0,-(newgridy*62),newgridx*62,0 3250ENDIF 3260ENDPROC 3270DEFPROCmess(mess$) 3280!icond=0:$(icond+4)=mess$+CHR$0 3290SYS"Wimp_ReportError",icond,1,"!Circuit" 3300ENDPROC 3310DEFPROCout 3320PROCdragspr(1) 3330IF winsave%=save% THEN stext=stex:ft=&AFF 3340IF winsave%=saved% THEN stext=stexd:ft=&00C 3350IF drive%=1 THEN 3360SYS "Wimp_GetPointerInfo",,block 3370ToX=block!0:ToY=block!4:Window=block!12:Icon=block!16 3380mblock!0=256:mblock!12=0:mblock!16=1:REM DataSave 3390mblock!20=Window:mblock!24=Icon:mblock!28=ToX:mblock!32=ToY 3400mblock!36=-1:REM No idea what the size is going to be 3410mblock!40=ft: 3420$stext=$FNinfo(winsave%,1) 3430$stext=FNgetleaf($stext) 3440FOR I=0 TO 255:IF I?stext<32 THEN I?stext=13 3450NEXT 3460$(mblock+44)=FNbit($stext)+CHR$0 3470SYS "Wimp_SendMessage",17,mblock,Window,Icon:REM DataSave 3480drag%=0 3490ENDIF 3500ENDPROC 3510DEFFNgetleaf(leaf$) 3520WHILE INSTR(leaf$,".") 3530leaf$=MID$(leaf$,INSTR(leaf$,".")+1) 3540ENDWHILE:=leaf$ 3550DEFPROCdefsave 3560PROCMode 3570!block=winsave% 3580SYS "Wimp_GetWindowState",,block 3590ysize%=block!16-block!8 3600x%=block!4:y%=block!8:block!4=2 3610SYS"Wimp_GetIconState",,block 3620block!8+=x%:block!12+=y%+ysize% 3630block!16+=x%:block!20+=y%+ysize% 3640block!24=0:block!28=0:block!32=xmax:block!36=ymax 3650!block=0:block!4=5:drag%=TRUE:drive%=1 3660IF dragspr THEN 3670SYS "DragASprite_Start",%10000101,1,filetype$,block+8 3680PROCdragspr(-1) 3690ELSE 3700SYS"Wimp_DragBox",,block 3710ENDIF 3720ENDPROC 3730DEFPROCMode 3740!block=130:block!4=131:block!8=-1:SYS"OS_ReadVduVariables",block,block+128 3750SYS"OS_ReadModeVariable",MODE,4 TO ,,Xeig% 3760SYS"OS_ReadModeVariable",MODE,5 TO ,,Yeig% 3770xmax=((block!128)+1)*2^Xeig%:ymax=((block!132)+1)*2^Yeig% 3780ENDPROC 3790DEFPROCsave(save$) 3800IF INSTR(save$,".")<1 AND INSTR(save$,":")<1 AND save$<>"<Wimp$Scrap>" THEN PROCmess("To save, drag the save icon to a directory viewer"):ENDPROC 3810IF winsave%=saved% THEN 3820file%=OPENOUT(save$) 3830PRINT#file%,"Circuit Data File" 3840PRINT#file%,gridx,gridy 3850FOR A=0 TO gridx 3860FOR B=0 TO gridy 3870PRINT#file%,pset$(A,B) 3880NEXT B 3890NEXT A 3900IF tot>-1 THEN 3910PRINT#file%,1,"Text Details:-",tot 3920FOR I=0 TO tot 3930PRINT#file%,textinfo$(I) 3940NEXT 3950ELSE PRINT#file%,-1 3960ENDIF 3970CLOSE#file% 3980OSCLI("Settype "+save$+" &00C") 3990CASE save$ OF 4000WHEN "<Wimp$Scrap>" 4010OTHERWISE 4020!block=circuit% 4030SYS"Wimp_GetWindowInfo",,block 4040saved=FALSE 4050_p% = !(block+76):$_p%=save$ 4060SYS"Wimp_ForceRedraw",-1,block!4,(block!16)-32,block!12,block!16+36 4070ENDCASE 4080IF shutdownsave SYSreinter,mytask%:SYS"Wimp_CloseDown":END 4090ENDIF 4100IF winsave%=save% THEN 4110PROCsavedraw 4120ENDIF 4130IF save$<>"<Wimp$Scrap>" THEN PROCinfo(winsave%,1,save$) 4140ENDPROC 4150DEFPROCmessagein 4160sendm=&400E7 4170ref=block!8:task=block!4 4180CASE block!16 OF 4190WHEN 0:SYSreinter,mytask%:SYS"Wimp_CloseDown":END 4200WHEN 2: 4210save$=FNwool(block+44) 4220PROCdragspr(1) 4230IF drive%=1 THEN 4240PROCsave(save$) 4250mblock!0=256 4260mblock!12=ref 4270mblock!16=3 4280mblock!36=-1 4290$(mblock+44)=save$ 4300SYS &400E7,18,mblock,task:REM DataLoad 4310ENDIF 4320WHEN 3: 4330IF block!40<>&00C THEN PROCmess("Only Circuit Data files can be loaded"):ENDPROC 4340load$=FNwool(block+44):PROCload(load$) 4350WHEN 5: 4360IF block!40=&00C THEN 4370block!12=block!8:block!16=4 4380SYS sendm,18,block,block!4:REM DataLoadAck 4390PROCload(FNwool(block+44)) 4400ENDIF 4410WHEN 8:IF prequit SYSreinter,mytask%:SYS"Wimp_CloseDown":END:ELSE:block!12=ref:SYSsendm,19,block:prequit=TRUE:PROCareyousure 4420ENDCASE 4430ENDPROC 4440DEFPROCload(load$) 4450in=TRUE 4460fontmess=FALSE 4470load%=OPENIN(load$) 4480INPUT#load%,title$ 4490IF title$<>"Circuit Data File" THEN PROCquery("This is not a true Circuit Data file!"):CLOSE#load%:ENDPROC 4500INPUT#load%,gridx,gridy 4510tot=-1 4520FOR A=0 TO gridx 4530FOR B=0 TO gridy 4540INPUT#load%,a$ 4550pset$(A,B)=a$ 4560NEXT B 4570NEXT A 4580INPUT#load%,text 4590IF text=1 THEN 4600INPUT#load%,thing$,noof 4610FOR F=0 TO noof 4620tot+=1 4630INPUT#load%,text$ 4640textinfo$(tot)=text$ 4650NEXT F 4660ENDIF 4670text=FALSE 4680CLOSE#load% 4690!icond=circuit% 4700SYS"Wimp_GetWindowInfo",,icond 4710saved=FALSE:_p% = !(icond+76):$_p%=load$:SYS"Wimp_ForceRedraw",-1,icond!4,icond!16,icond!12,icond!16+36 4720$FNinfo(saved%,1)=load$ 4730PROCalterwin(gridx,gridy,0) 4740PROCinfo(grid%,8,STR$gridy):PROCinfo(grid%,5,STR$gridx) 4750PROCopenwin(circuit%):PROCopenwin(toolbox%) 4760ENDIF 4770ENDPROC 4780DEFPROCopenwin(handle%) 4790!block=handle% 4800SYS"Wimp_GetWindowInfo",,block 4810a=block!32 AND (1<<16) 4820b=block!32 AND (1<<17) 4830IF a=0 THEN 4840SYS"Wimp_OpenWindow",,block 4850ENDIF 4860IF b=0 THEN 4870block!28=-1:SYS"Wimp_OpenWindow",,block 4880ENDIF 4890ENDPROC 4900DEFPROCredo(handle%) 4910!block=handle% 4920SYS"Wimp_CloseWindow",,block 4930PROCopenwin(handle%) 4940ENDPROC 4950DEFFNcheckit(hnd%,ic%) 4960!icond=hnd%:icond!4=ic% 4970SYS"Wimp_GetIconState",,icond 4980flags%=icond!24 4990=flags%AND&F0000 5000DEFPROCslabicn(handle,icn) 5010icond!12=handle 5020icond!16=2 5030SYS "Wimp_BorderIcon",,icond 5040icond!8=0 5050SYS "Wimp_BorderIcon",,icond 5060ENDPROC 5070DEF PROCslabin(handle) 5080!icond=handle 5090SYS "Wimp_GetPointerInfo",,icond 5100SYS "Wimp_BorderIcon",,icond 5110ENDPROC 5120DEF PROCslabout(handle) 5130!icond=handle 5140SYS "Wimp_GetPointerInfo",,icond 5150icond!8 = 0 5160SYS "Wimp_BorderIcon",,icond 5170ENDPROC 5180DEFPROCclearall 5190SYS"OS_Confirm" TO press 5200IF CHR$press="y" THEN 5210FOR A=0 TO 16 5220FOR B=0 TO 11 5230pset$(A,B)="" 5240NEXT B 5250NEXT A 5260IF tot>-1 THEN tot=-1 5270PROCredraw(circuit%) 5280ENDIF 5290ENDPROC 5300DEFPROCdoit(xc,yc,handle) 5310!block=handle 5320SYS"Wimp_GetWindowInfo",,block 5330IF NOT saved THEN saved=TRUE:new$=$(block!76)+" *": _p% = !(block+76):$_p%=new$:SYS"Wimp_ForceRedraw",-1,block!4,(block!16)-32,block!12,block!16+36 5340workx%=block!4-block!20 5350worky%=block!16-block!24 5360px=0-(workx%-xc) 5370py=worky%-yc 5380px=INT(px/62) 5390py=INT(py/62) 5400pset$(px,py)=tool$ 5410SYS "Wimp_ForceRedraw",circuit%,px*62,0-(py*62)-62,px*62+62,0-(py*62) 5420ENDPROC 5430DEF PROCredraw(handle) 5440nofonts=FALSE 5450!block=handle 5460LOCALmore% 5470SYS "Wimp_RedrawWindow",,block TO more% 5480WHILE more% 5490 CASE handle OF 5500 WHEN circuit% 5510 PROCapplication_redraw 5520 OTHERWISE 5530 SYS"Wimp_BorderWindow",,block 5540 ENDCASE 5550SYS "Wimp_GetRectangle",,block TO more% 5560 ENDWHILE 5570IF nofonts AND fontmess=FALSE THEN PROCquery("This window contains text. Please locate the !Fonts directory to enable text to be seen."):fontmess=TRUE:ENDPROC 5580ENDPROC 5590DEFPROCapplication_redraw 5600workx%=block!4-block!20 5610worky%=block!16-block!24 5620PROCmodeproc 5630SYS &2E,256+40,spr%,"ledU" TO A,B,C,w%,h%,D,mode% 5640SYS"OS_ReadModeVariable",mode%,3 TOc,cl,cols 5650SYS"OS_ReadModeVariable",mode%,4 TO,,xeig% 5660SYS"OS_ReadModeVariable",mode%,5 TO,,yeig% 5670wi%=w%<<xeig% 5680he%=h%<<yeig% 5690IF !(4+spr%)>0 THEN 5700IF !(48+spr%)>44 THEN 5710FOR col%=0 TO 15 5720palette%!(col%*4)=!(60+col%*8+spr%) 5730NEXT col% 5740SYS "ColourTrans_SelectTable",!(56+spr%),palette%,-1,-1,scalblock 5750ELSE 5760SYS "ColourTrans_SelectTable",!(56+spr%),defpal%,-1,-1,scalblock 5770ENDIF 5780ENDIF 5790FOR A=0 TO gridx 5800FOR B=0 TO gridy 5810IF pset$(A,B)>"" THEN 5820SYS 46,&134,spr%,pset$(A,B),workx%+(A*62),worky%-(B*62)-62,8,scal,scalblock 5830ENDIF 5840NEXT B 5850NEXT A 5860IF tot>-1 THEN 5870nofonts=FALSE 5880num=0 5890SYS "XFont_ListFonts",,icond,num TO ,,num 5900IF num=-1 THEN nofonts=TRUE 5910IF NOT nofonts THEN 5920PROCfindfont 5930FOR I=0 TO tot 5940PROCworkout(textinfo$(I)) 5950px2=0-(workx%-wxco) 5960py2=worky%-wyco 5970SYS"Font_SetFont",font% 5980SYS"Font_Paint",,wtext$,%10010,workx%+wxco,worky%-wyco 5990NEXT 6000ENDIF 6010ENDIF 6020ENDPROC 6030DEFPROCfindfont 6040SYS"XFont_FindFont",,"Trinity.Medium",12*16,12*16 TO font%:found=TRUE 6050IF font%!0=523 THEN 6060num=0 6070SYS "XFont_ListFonts",,icond,num TO ,,num 6080sfont$=$icond 6090SYS"Font_FindFont",,sfont$,12*16,12*16 TO font%:found=TRUE 6100ENDIF 6110ENDPROC 6120DEFPROCclearit(xc,yc,handle) 6130vx=block!0:vy=block!4 6140!block=handle 6150SYS"Wimp_GetWindowInfo",,block 6160IF NOT saved THEN saved=TRUE:new$=$(block!76)+" *": _p% = !(block+76):$_p%=new$:SYS"Wimp_ForceRedraw",-1,block!4,(block!16)-32,block!12,block!16+36 6170workx%=block!4-block!20 6180worky%=block!16-block!24 6190px=0-(workx%-xc) 6200py=worky%-yc 6210px=INT(px/62) 6220py=INT(py/62) 6230pset$(px,py)="" 6240GCOL 0 6250SYS"Wimp_ForceRedraw",circuit%,px*62,0-(py*62)-62,(px*62)+62,0-(py*62) 6260PROCdoem(vx,vy) 6270ENDPROC 6280DEFPROCgotext(xco,yco) 6290num=0 6300SYS "XFont_ListFonts",,icond,num TO ,,num 6310ffont$=$icond 6320IF num=-1 THEN PROCquery("Please locate the !Fonts directory to enable text to be entred."):ENDPROC 6330IF tool$="ptr_text" ENDPROC 6340oldtool$=tool$ 6350tool$="ptr_text" 6360text=TRUE 6370!block=enter% 6380SYS"Wimp_GetWindowInfo",,block 6390block!4=xco+100:block!12=xco+430:block!8=yco-46-48:block!16=yco 6400SYS"Wimp_OpenWindow",,block 6410SYS"Wimp_SetCaretPosition",enter%,0,0,0,-1,-1 6420ENDPROC 6430DEFPROCdotext(xco,yco) 6440IF tot=50 ENDPROC 6450IF $FNinfo(enter%,0)="" ENDPROC 6460tot+=1 6470PROCfindfont 6480SYS"Font_SetFont",font% 6490SYS"Font_StringWidth",,$FNinfo(enter%,0),228000,228000,31,LEN($FNinfo(enter%,0)) TO ,,x%,y% 6500SYS"Font_ConverttoOS",,x%,y% TO ,x,y 6510!block=circuit% 6520SYS"Wimp_GetWindowInfo",,block 6530IF NOT saved THEN saved=TRUE:new$=$(block!76)+" *": _p% = !(block+76):$_p%=new$:SYS"Wimp_ForceRedraw",-1,block!4,(block!16)-32,block!12,block!16+36 6540workx%=block!4-block!20 6550worky%=block!16-block!24 6560px=0-(workx%-xco) 6570py=worky%-yco 6580textinfo$(tot)=$FNinfo(enter%,0)+","+STR$px+","+STR$py+","+STR$x 6590SYS "Wimp_ForceRedraw",-1,workx%+px,worky%-py,workx%+px+x,worky%-py+32 6600!block=enter% 6610!block=enter% 6620SYS"Wimp_CloseWindow",,block 6630text=FALSE 6640tool$=oldtool$ 6650$point%=tool$:SYS "Wimp_SpriteOp",36,,point%,1,8,8 6660ENDPROC 6670DEFPROCdoem(mx,my) 6680IF tot=-1 ENDPROC 6690!block=circuit% 6700SYS"Wimp_GetWindowInfo",,block 6710workx%=block!4-block!20 6720worky%=block!16-block!24 6730FOR I=0 TO tot 6740PROCworkout(textinfo$(I)) 6750px=workx%+wxco 6760px2=0-(workx%-wxco) 6770py=worky%-wyco 6780IF mx>px-31 AND mx<px+wwidth+31 AND my>py-31 AND my<py+24+31 THEN 6790GCOL 15 6800PROCviable(wtext$,block!12,px) 6810SYS"Font_Paint",,newtext$,%10010,workx%+wxco,worky%-wyco 6820ENDIF 6830NEXT 6840ENDPROC 6850DEFPROCworkout(work$) 6860wtext$=LEFT$(work$,INSTR(work$,",")-1) 6870work$=RIGHT$(work$,LEN(work$)-INSTR(work$,",")) 6880wxco=VAL(LEFT$(work$,INSTR(work$,",")-1)) 6890work$=RIGHT$(work$,LEN(work$)-INSTR(work$,",")) 6900wyco=VAL(LEFT$(work$,INSTR(work$,",")-1)) 6910work$=RIGHT$(work$,LEN(work$)-INSTR(work$,",")) 6920wwidth=VAL(LEFT$(work$,INSTR(work$,",")-1)) 6930ENDPROC 6940DEFPROCviable(dt$,y1,y2) 6950REPEAT 6960xy=FNwidth(dt$,y1-y2) 6970IF xy=0 dt$=LEFT$(dt$,LEN(dt$)-1) 6980UNTIL xy>0 6990newtext$=dt$ 7000ENDPROC 7010DEFFNwidth(ftext$,op) 7020SYS"Font_SetFont",font% 7030SYS"Font_Converttopoints",,op,op TO ,xcy,ycy 7040SYS"Font_StringWidth",,ftext$,xcy,ycy,31,LEN(ftext$) TO ,,x%,y% 7050=x% 7060DEFFNask(fn$) 7070!icond=0:$(icond+4)=fn$+CHR$0 7080SYS"Wimp_ReportError",icond,&13,"!Circuit" TO ,but 7090=but 7100DEFPROCdeltext(xg,yg) 7110IF tot=-1 THEN tool$=Voldtool$:$point%=tool$:SYS "Wimp_SpriteOp",36,,point%,1,8,8:ENDPROC 7120!block=circuit% 7130SYS"Wimp_GetWindowInfo",,block 7140workx%=block!4-block!20 7150worky%=block!16-block!24 7160FOR H=0 TO tot 7170PROCworkout(textinfo$(H)) 7180px=workx%+wxco 7190py=worky%-wyco 7200IF xg>px AND xg<px+wwidth AND yg>py AND yg<py+24 THEN PROCdelete(H):ENDPROC 7210NEXT H 7220tool$=Voldtool$:$point%=tool$:SYS "Wimp_SpriteOp",36,,point%,1,8,8 7230ENDPROC 7240DEFPROCdelete(let) 7250!block=circuit% 7260SYS"Wimp_GetWindowInfo",,block 7270workx%=block!4-block!20 7280worky%=block!16-block!24 7290PROCworkout(textinfo$(let)) 7300IF let=tot THEN 7310tot-=1 7320SYS "Wimp_ForceRedraw",-1,workx%+wxco,worky%-wyco-5,workx%+wxco+wwidth,worky%-wyco+32 7330tool$=Voldtool$:$point%=tool$:SYS "Wimp_SpriteOp",36,,point%,1,8,8 7340ENDIF 7350IF let<tot THEN 7360FOR V=let TO tot-1 7370textinfo$(V)=textinfo$(V+1) 7380NEXT V 7390tot-=1 7400SYS "Wimp_ForceRedraw",-1,workx%+wxco,worky%-wyco-5,workx%+wxco+wwidth,worky%-wyco+32 7410tool$=Voldtool$:$point%=tool$:SYS "Wimp_SpriteOp",36,,point%,1,8,8 7420ENDIF 7430ENDPROC 7440DEFPROCmodeproc 7450SYS &2E,256+40,spr%,"ledr" TO ,,,w%,h%,,mode% 7460SYS"OS_ReadModeVariable",mode%,4 TO,,xeig% 7470SYS"OS_ReadModeVariable",mode%,5 TO,,yeig% 7480wi%=w%<<xeig% 7490he%=h%<<yeig% 7500SYS&40740,mode%,0,-1,0,scalblock 7510SYS"OS_ReadModeVariable",MODE,11 TO,,o 7520SYS"OS_ReadModeVariable",MODE,12 TO,,p 7530o+=1:p+=1 7540IF p/o=.8 AND MODE<>13 THEN ss=1 7550IF p/o=.75 AND MODE<>13 THEN ss=1 7560IF p/o<>.8 AND p/o<>.75 OR MODE=13 ss=.5 7570!scal=wi%:scal!4=he%:scal!8=w%<<(1/1):scal!12=h%<<(1/ss) 7580ENDPROC 7590DEFPROCpane 7600IF toolson THEN 7610x1=block!4-250:x2=x1+248:y1=block!8:y2=block!16 7620size=x2-x1 7630p%=block!28:!icond=toolbox%:SYS"Wimp_GetWindowInfo",,icond 7640IF x1<0 THEN x1=0:x2=size 7650icond!4=x1:icond!8=y2-308:icond!12=x2:icond!16=y2:icond!28=p%: 7660SYS"Wimp_OpenWindow",,icond 7670block!28=toolbox%:SYS"Wimp_OpenWindow",,block 7680ENDIF 7690SYS"Wimp_OpenWindow",,block 7700ENDPROC 7710DEFPROCtoolbox(flag) 7720IF flag=-1 THEN !block=toolbox%:SYS"Wimp_CloseWindow",,block 7730IF flag=1 THEN 7740!block=circuit% 7750SYS"Wimp_GetWindowState",,block 7760open=block!32 AND (1<<16) 7770IF open<>0 THEN !icond=circuit%:PROCpane 7780ENDIF 7790ENDPROC 7800DEFPROCerror(err$) 7810!icond=0:$(icond+4)=err$+"."+" Press OK to continue or Cancel to quit"+CHR$0 7820SYS"Wimp_ReportError",icond,3,"!Circuit" TO ,but 7830IF but=2 THEN SYSreinter,mytask%:SYS"Wimp_CloseDown":END 7840ENDPROC 7850DEFPROCareyousure 7860IF saved THEN 7870PROCopenwin(quit%) 7880VDU 7 7890PROCinfo(quit%,1,"Your file has been modified.") 7900!block=130:block!4=131:block!8=-1:SYS"OS_ReadVduVariables",block,block+128 7910SYS"OS_ReadModeVariable",MODE,4 TO ,,x 7920SYS"OS_ReadModeVariable",MODE,5 TO ,,y 7930MOUSE RECTANGLE 0,0,(((block!128)+1)*2^x)-1,((block!132)+1)*2^y 7940ENDIF 7950IF NOT saved SYSreinter,mytask%:SYS"Wimp_CloseDown":END 7960ENDPROC 7970DEFPROCquery(qu$) 7980PROCopenwin(query%) 7990VDU 7 8000!block=query% 8010SYS"Wimp_GetWindowInfo",,block 8020workx%=block!12-block!4 8030worky%=block!16-block!8 8040MOUSE RECTANGLE block!4,block!8,workx%,worky% 8050PROCinfo(query%,1,qu$) 8060ENDPROC 8070DEFPROCendq 8080PROCclose(query%) 8090!block=130:block!4=131:block!8=-1:SYS"OS_ReadVduVariables",block,block+128 8100SYS"OS_ReadModeVariable",MODE,4 TO ,,x 8110SYS"OS_ReadModeVariable",MODE,5 TO ,,y 8120MOUSE RECTANGLE 0,0,(((block!128)+1)*2^x)-1,((block!132)+1)*2^y 8130ENDPROC 8140DEFPROCclose(!block) 8150SYS"Wimp_CloseWindow",,block 8160ENDPROC 8170DEFPROCdragspr(flag) 8180IF dragspr THEN 8190CASE flag OF 8200WHEN 1: 8210!block=winsave%:block!4=2:SYS "Wimp_GetIconState",,block 8220block!8=0:block!12=0:$(block!32)=indir$ 8230SYS "Wimp_SetIconState",,block 8240SYS "DragASprite_Stop" 8250WHEN -1: 8260!block=winsave%:block!4=2:SYS "Wimp_GetIconState",,block 8270indir$=$(block!32) 8280block!8=0:block!12=0:$(block!32)=CHR$13 8290SYS "Wimp_SetIconState",,block 8300ENDCASE 8310ENDIF 8320ENDPROC 8330DEFPROCscroll(x,y) 8340IF x=0 THEN 8350CASE y OF 8360WHEN 1: 8370buffer2$=pset$(0,gridy) 8380FOR J=0 TO gridx-1 8390buffer2$=pset$(gridx-J-1,0) 8400FOR I=1 TO gridy 8410buffer$=pset$(gridx-J-1,gridy-I) 8420pset$(gridx-J-1,gridy-I)=buffer2$ 8430buffer2$=buffer$ 8440NEXT 8450NEXT 8460IF tot>-1 THEN 8470FOR I=0 TO tot 8480PROCworkout(textinfo$(I)) 8490py=wyco-62:IF py<0 THEN py=py+(gridy*62) 8500textinfo$(I)=wtext$+","+STR$wxco+","+STR$py+","+STR$wwidth 8510NEXT 8520ENDIF 8530WHEN -1: 8540buffer2$=pset$(0,gridy) 8550FOR J=0 TO gridx-1 8560buffer2$=pset$(gridx-J-1,gridy-1) 8570FOR I=0 TO gridy-1 8580buffer$=pset$(gridx-J-1,I) 8590pset$(gridx-J-1,I)=buffer2$ 8600buffer2$=buffer$ 8610NEXT 8620NEXT 8630IF tot>-1 THEN 8640FOR I=0 TO tot 8650PROCworkout(textinfo$(I)) 8660py=wyco+62:IF py>gridy*62 THEN py=py-(gridy*62) 8670textinfo$(I)=wtext$+","+STR$wxco+","+STR$py+","+STR$wwidth 8680NEXT 8690ENDIF 8700ENDCASE 8710ENDIF 8720IF y=0 THEN 8730CASE x OF 8740WHEN 1 8750buffer2$=pset$(0,gridy) 8760FOR I=0 TO gridy 8770buffer2$=pset$(0,gridy-I) 8780FOR J=0 TO gridx-1 8790buffer$=pset$(gridx-J-1,gridy-I) 8800pset$(gridx-J-1,gridy-I)=buffer2$ 8810buffer2$=buffer$ 8820NEXT 8830NEXT 8840IF tot>-1 THEN 8850FOR I=0 TO tot 8860PROCworkout(textinfo$(I)) 8870px=wxco-62:IF px<0 THEN px=px+(gridx*62) 8880textinfo$(I)=wtext$+","+STR$px+","+STR$wyco+","+STR$wwidth 8890NEXT 8900ENDIF 8910WHEN -1 8920buffer2$=pset$(gridx-1,gridy) 8930FOR I=0 TO gridy 8940buffer2$=pset$(gridx-1,gridy-I) 8950FOR J=0 TO gridx 8960buffer$=pset$(J,gridy-I) 8970pset$(J,gridy-I)=buffer2$ 8980buffer2$=buffer$ 8990NEXT 9000NEXT 9010IF tot>-1 THEN 9020FOR I=0 TO tot 9030PROCworkout(textinfo$(I)) 9040px=wxco+62:IF px<gridx*62 THEN px=px-(gridx*62) 9050textinfo$(I)=wtext$+","+STR$px+","+STR$wyco+","+STR$wwidth 9060NEXT 9070ENDIF 9080ENDCASE 9090ENDIF 9100PROCredraw(circuit%) 9110ENDPROC
ș"Hourglass_On" ț "<Circ$Dir>.DrawBasic" %� � �error(�$+" : at line "+Þ):� (� ***>$.!Circuit.!RunImage 2G� ***Main Program for !Circuit - Circuit Diagram creator and editor <� Version 1.15 (15 Jan '94) F� Authur � J. Robbins P sfile$="" Z%ș"OS_ReadModeVariable",�,11 �,,C d%ș"OS_ReadModeVariable",�,12 �,,B n C+=1:B+=1 x)� B/C=.8 � �<>13 � sfile$="Sprites27" �*� B/C=.75 � �<>13 � sfile$="Sprites27" �2� B/C<>.8 � B/C<>.75 � �=13 sfile$="Sprites12" ��loadsprites(sfile$) �ș"Hourglass_Smash" �T� block 4*1024, menu% 1024, curbuf% 2.5*1024, icond 2*1024, point% 25,mblock 512 �maxlev%=32 �#� start%(maxlev%),box%(maxlev%) �5� l%(maxlev%),b%(maxlev%),r%(maxlev%),t%(maxlev%) �>� pset$(30,30),textinfo$(50),p% 10, scal 20, scalblock 255 �)� palette% 255,defpal% 255,winpal(15) �<end%=-1:text=�:gridx=15:gridy=8:toolson=�:shutdownsave=� �endbuf%=curbuf%+&6000 �2tot=-1:found=�:saved=�:prequitsave=�:prequit=� in=�:started=0:fontmess=� � I=0 � 15 � hexa "winpal(I)=hexa ,defpal%!(I*4)=hexa 6� @P� &FFFFFF10,&DDDDDD10,&BBBBBB10,&99999910,&77777710,&55555510,&33333310,&010 JI� &99440010,&EEEE10,&CC0010,&DD10,&BBEEEE10,&885510,&BBFF10,&FFBB0010 TDș "Wimp_Initialise",200,&4B534154,"!Circuit" � version%,mytask% ^$ș "Wimp_ClaimInterface",mytask% h �template rRș"XOS_ReadVarVal","Circ$Drag",block,256,0,0 � ,,len:block?len=13:drag$=$block |*� drag$="TRUE" � dragspr=� � dragspr=� �ș "OS_GetEnv" � env$ �� �env$,"-quit") � �I%=�env$,"""") �I%=�env$,"""",I%+1) �� � I%+=1 �� �env$,I%,1)<>" " �env$=�env$,I%) �� �initic=�icon �,end%=�:drag%=0:drive%=0:tool$="resistor" �3size%=48:font%=-1:family%=0:style%=-1:n_font%=1 �reinter=&81683 �alterwin(15,8,0) *�info(grid%,8,"8"):�info(grid%,5,"15") #� � �error(�$+" : at line "+Þ) &� env$<>"" �load(env$) 0� :%ș"Wimp_Poll",0,block � eventcode D-ș "Wimp_PollPointer",eventcode,,version% NȎ eventcode � X4� 0:� � saved � prequit ș"Wimp_ProcessKey",&1FC b� 1:�redraw(block!0) lG� 2:win=!block:� win=circuit% � �pane:� ș "Wimp_OpenWindow",,block v� 3:�request3 �A� 4:$point%="ptr_default":ș "Wimp_SpriteOp",36,,point%,1,0,0 �B� 5:� tool$="ptr_text" � tool$="ptr_xtext" � x=0:y=0:� x=8:y=8 �J� block!0=circuit% � $point%=tool$:ș "Wimp_SpriteOp",36,,point%,1,x,y �� 6:�click(block) �� 7:�out �� 8:�process �� 9:�select �� 17,18:�messagein �� � � end% ���request3 �Ȏ !block � �q� enter%:ș "Wimp_CloseWindow",,block:text=�:tool$=oldtool$:$point%=tool$:ș "Wimp_SpriteOp",36,,point%,1,8,8 X� circuit%:ș "Wimp_CloseWindow",,block:!block=toolbox%:ș "Wimp_CloseWindow",,block !� saved%:�prequit � prequit=� 5� toolbox%:toolson=�:ș "Wimp_CloseWindow",,block # :ș "Wimp_CloseWindow",,block *� 4� > ݤicon H !icond=-1 R icond!4=0 \%icond!8=0:icond!12=68:icond!16=68 f+icond!20=%11010+((2^12)*3):icond?23=112 p$(icond+24)="!Circuit"+�13 z&ș "Wimp_CreateIcon",,icond � icon � =icon �ݤsprinfo(handle,icon) ��gee(handle,icon) �=(icond+28) �ݤinf(handle,icon) ��gee(handle,icon) � =icond!28 � ݤbit(a$) �ȕ �a$,":")>0 �a$=�a$,�a$,":")+1) �� �ȕ �a$,".")>0 �a$=�a$,�a$,".")+1) � =a$ ݤwool(wool%) $ � cot$ . ȕ ?wool%>=32 8cot$+=�(?wool%) Bwool%+=1 L� V =cot$ `��loadsprites(Gee$) j)�("Iconsprites <Circ$Dir>."+Gee$+"!") t8ș "OS_File",5,"<Circ$Dir>."+Gee$+"!" � ,,,,spr_len% ~spr_len%=spr_len%+4 �� spr% spr_len% �!spr%=spr_len% �2ș "OS_File",255,"<Circ$Dir>."+Gee$+"!",spr%+4 �� ���template �1ș"Wimp_OpenTemplate",,"<Circ$Dir>.Templates" �indir=curbuf% �info%=�template("ProgInfo") �save%=�template("save") � saved%=�template("savetext") �!circuit%=�template("Circuit") �tools%=�template("Icons") lines%=�template("LINES") toolbox%=�template("TOOLS") enter%=�template("text") grid%=�template("size") (query%=�template("query") 2quit%=�template("quitbox") <scroll%=�template("scroll") Fș "Wimp_CloseTemplate" Pstex=�info(save%,1) Zstexd=�info(saved%,1) d� nݤtemplate(a$) xFș"Wimp_LoadTemplate",,block,indir,endbuf%,-1,a$,0 � ,,indir,,,,c% �2� c%=0 � �mess("Template "+a$+" not found."):� �block!64=1 �)ș"Wimp_CreateWindow",,block � handle �=handle �ݤinfo(handle,icon) ��gee(handle,icon) � =icond!28 ���info(handle,icon,text$) �;!block=handle:block!4=icon:ș"Wimp_GetIconState",,block �)$(block!28)=text$:block!36=�(text$)+1 �block!8=0:block!12=0 � ș"Wimp_SetIconState",,block �� ��sprinfo(handle,icon,text$) ;!block=handle:block!4=icon:ș"Wimp_GetIconState",,block )$(block!28)=text$:block!36=�(text$)+1 "block!8=0:block!12=0 , ș"Wimp_SetIconState",,block 6� @��gee(handle,icon) J!icond=handle:icond!4=icon T ș"Wimp_GetIconState",,icond ^� h��cmenus rmenuopen=-44 |menuptr=menu% �ȗ x,y,b �4� toolson � toolon$="{�}Tools":� toolon$="Tools" �>SaveMenu%=�menu("Save",174,"{b|save%}Draw,{b|saved%}Data") ��iconmenu%=�menu("!Circuit",174,"{b|info%}Info,Circuit,"+toolon$+",Lines,{b|grid%}Size,{b|scroll%}Scroll,{b|SaveMenu%}Save,Quit") �� block!12=-2 � block!8=2 � �=openmenu%=iconmenu%:a=x-75:b=(8+2)*48:� No. of items+2*48 �!� a=x:b=y:openmenu%=iconmenu% �� ��openmenu(a,b) �� ���openmenu(x,y) �&ș"Wimp_CreateMenu",,openmenu%,x,y �� ݤmenu(tit$,wid,menu$) menu$+="," oldmenu=menuptr &$menuptr=tit$ 0menuptr?12=7 :menuptr?13=2 Dmenuptr?14=7 Nmenuptr?15=0 Xmenuptr!16=wid bmenuptr!20=48 lmenuptr!24=0 vmenuptr+=28 �� ��thing(menu$) �menu$=�menu$,�menu$,",")+1) �menuptr+=24 �� menu$="" �)menuptr!-24=(menuptr!-24) � %10000000 �=oldmenu ���thing(m$) �m$=�m$,�m$,",")-1) �i$="":j$="" �� �m$,"{")>0 � �i$=�m$,�m$,"}")-1) �m$=�m$,�m$,"}")+1) j$=�i$,�i$,"|")-1) i$=�i$,�i$,"|")+1) � ijack=&07000021 *mjack=0 4submenu=-1 > � �j$,"b")>0 � submenu=�(i$) H"� �j$,"_")>0 � mjack=mjack � 2 R"� �j$,"�")>0 � mjack=mjack � 1 \0� �j$,"u")>0 � mjack=mjack � 2:submenu=�(i$) f!menuptr=mjack pmenuptr!4=submenu zmenuptr!8=ijack �$(menuptr+12)=m$ �� �� ���click(block) �keepb%=block!12 �*� �checkit(block!12,block!16)=983040 � �$�slabin(keepb%):�slabout(keepb%) �� �+� shutdownsave � quitin=�:�close(quit%) �'� block!12=-2 � block!8=2 �cmenus:� �6� block!12=-2 � block!8=4 �openwin(circuit%):�pane �Q� block!12=save% � block!16=2 winsave%=block!12:filetype$="file_AFF":�defsave �R� block!12=saved% � block!16=2 winsave%=block!12:filetype$="file_00C":�defsave M� block!12=save% � block!16=0 winsave%=block!12:�save($�info(winsave%,1)) N� block!12=saved% � block!16=0 winsave%=block!12:�save($�info(winsave%,1)) .� block!12=grid% � block!16=7 � �grid(0,8) $.� block!12=grid% � block!16=6 � �grid(1,8) ..� block!12=grid% � block!16=3 � �grid(2,5) 8.� block!12=grid% � block!16=4 � �grid(3,5) B2� block!12=scroll% � block!16=1 � �scroll(0,1) L3� block!12=scroll% � block!16=2 � �scroll(0,-1) V2� block!12=scroll% � block!16=3 � �scroll(1,0) `3� block!12=scroll% � block!16=4 � �scroll(-1,0) j?� block!12=tools% � tool$=$�sprinfo(tools%,block!16):text=� tq� block!12=circuit% � block!8=4 � � text � tool$<>"ptr_xtext" � vx=block!0:vy=block!4:�doit(vx,vy,block!12):� ~C� block!12=circuit% � block!8=4 � text �dotext(block!0,block!4) �_� block!12=circuit% � block!8=1 � tool$="ptr_xtext" � vx=block!0:vy=block!4:�deltext(vx,vy) �-� block!12=circuit% � block!8=2 � �cmenus �?� block!12=lines% � tool$=$�sprinfo(lines%,block!16):text=� �h� block!12=circuit% � block!8=1 � � text � tool$<>"ptr_xtext" � �clearit(block!0,block!4,block!12):� �?� block!12=toolbox% � block!16=0 � �gotext(block!0,block!4) �5� block!12=toolbox% � block!16=1 �openwin(tools%) �5� block!12=toolbox% � block!16=2 �openwin(lines%) �.� block!12=toolbox% � block!16=3 �clearall ؏� block!12=toolbox% � block!16=8 � tool$<>"ptr_xtext" � Voldtool$=tool$:tool$="ptr_xtext":$point%=tool$:ș "Wimp_SpriteOp",36,,point%,1,0,0 �9� block!12=query% � block!16=0 � �close(query%):�endq �� prequit � �a� block!12=quit% � block!16=0 � ș"Wimp_ProcessKey",&1FC:șreinter,mytask%:ș"Wimp_CloseDown" ;� block!12=quit% � block!16=2 � �close(quit%):prequit=� P� block!12=quit% � block!16=3 � �close(quit%):�openwin(saved%):prequitsave=� '� prequit � � prequitsave prequit=� � (H� block!12=quit% � block!16=0 � șreinter,mytask%:ș"Wimp_CloseDown" 21� block!12=quit% � block!16=2 � �close(quit%) <Q� block!12=quit% � block!16=3 � �close(quit%):�openwin(saved%):shutdownsave=� F� P� Z ��process d,� !block=circuit% � block!24=13 � �caret n ș"Wimp_ProcessKey",block!24 x� ���caret �$ș"Wimp_GetCaretPosition",,block �� !block=circuit% � � �� ���select �noway=0 �.ș"Wimp_DecodeMenu",,openmenu%,block,icond �1� $icond="Quit" � �areyousure:shutdownsave%=� �@� $icond="Tools" � toolson � toolson=�:�toolbox(-1):noway=-1 �B� $icond="Tools" � � toolson � noway=0 � toolson=�:�toolbox(1) �,� $icond="Components" � �openwin(tools%) �'� $icond="Lines" � �openwin(lines%) �+� $icond="Circuit" � �openwin(circuit%) "ș"Wimp_GetPointerInfo",,block � block!8=1 � � menuopen=-44 � �cmenus ""ș"Wimp_CreateMenu",,openmenu% ,� 6ș"Wimp_CreateMenu",,-1 @� J� T��grid(dir,icn) ^numb=�$�info(grid%,icn) h� numb=30 � � r� numb=5 � � |Ȏ dir � �$� 0:� up;IF numb=30 THEN ENDPROC �3�info(grid%,icn,�(numb+1)):gridy=numb+1:alter=1 �%� 1:� down:IF numb=5 THEN ENDPROC �4�info(grid%,icn,�(numb-1)):gridy=numb-1:alter=-1 �&� 2:� small:IF numb=5 THEN ENDPROC �4�info(grid%,icn,�(numb-1)):gridx=numb-1:alter=-1 �'� 3:� wider:IF numb=30 THEN ENDPROC �3�info(grid%,icn,�(numb+1)):gridx=numb+1:alter=2 �� � �alterwin(gridx,gridy,alter) �� �'��alterwin(newgridx,newgridy,alter) �� alter=2 � � I=0 � newgridy-1 pset$(newgridx-1,I)="" � &� 0� alter=1 � :� I=0 � newgridx+1 Dpset$(I,newgridy-1)="" N� X� bFblock!64=0:block!68=-(newgridy*62):block!72=newgridx*62:block!76=0 l)ș "Wimp_SetExtent",circuit%,block+64 v!block=circuit% �"ș"Wimp_GetWindowState",,block �open=block!32 � (1<<16) �� open<>0 � �ș"Wimp_OpenWindow",,block �@ș"Wimp_ForceRedraw",circuit%,0,-(newgridy*62),newgridx*62,0 �� �� ���mess(mess$) � !icond=0:$(icond+4)=mess$+�0 �+ș"Wimp_ReportError",icond,1,"!Circuit" �� � ��out ��dragspr(1) )� winsave%=save% � stext=stex:ft=&AFF +� winsave%=saved% � stext=stexd:ft=&00C � drive%=1 � #ș "Wimp_GetPointerInfo",,block *9ToX=block!0:ToY=block!4:Window=block!12:Icon=block!16 43mblock!0=256:mblock!12=0:mblock!16=1:� DataSave >?mblock!20=Window:mblock!24=Icon:mblock!28=ToX:mblock!32=ToY H7mblock!36=-1:� No idea what the size is going to be Rmblock!40=ft: \$stext=$�info(winsave%,1) f$stext=�getleaf($stext) p)� I=0 � 255:� I?stext<32 � I?stext=13 z� � $(mblock+44)=�bit($stext)+�0 �:ș "Wimp_SendMessage",17,mblock,Window,Icon:� DataSave �drag%=0 �� �� �ݤgetleaf(leaf$) �ȕ �leaf$,".") �leaf$=�leaf$,�leaf$,".")+1) ��:=leaf$ � ��defsave � �Mode �!block=winsave% �#ș "Wimp_GetWindowState",,block ysize%=block!16-block!8 #x%=block!4:y%=block!8:block!4=2 ș"Wimp_GetIconState",,block $#block!8+=x%:block!12+=y%+ysize% .$block!16+=x%:block!20+=y%+ysize% 85block!24=0:block!28=0:block!32=xmax:block!36=ymax B'!block=0:block!4=5:drag%=�:drive%=1 L� dragspr � V8ș "DragASprite_Start",%10000101,1,filetype$,block+8 `�dragspr(-1) j� tș"Wimp_DragBox",,block ~� �� � ��Mode �M!block=130:block!4=131:block!8=-1:ș"OS_ReadVduVariables",block,block+128 �)ș"OS_ReadModeVariable",�,4 � ,,Xeig% �)ș"OS_ReadModeVariable",�,5 � ,,Yeig% �=xmax=((block!128)+1)*2^Xeig%:ymax=((block!132)+1)*2^Yeig% �� ���save(save$) �z� �save$,".")<1 � �save$,":")<1 � save$<>"<Wimp$Scrap>" � �mess("To save, drag the save icon to a directory viewer"):� �� winsave%=saved% � �file%=�(save$) ��#file%,"Circuit Data File" �#file%,gridx,gridy � A=0 � gridx � B=0 � gridy �#file%,pset$(A,B) (� B 2� A <� tot>-1 � F"�#file%,1,"Text Details:-",tot P� I=0 � tot Z�#file%,textinfo$(I) d� n� �#file%,-1 x� ��#file% ��("Settype "+save$+" &00C") �Ȏ save$ � �� "<Wimp$Scrap>" � �!block=circuit% �!ș"Wimp_GetWindowInfo",,block �saved=� � _p% = !(block+76):$_p%=save$ �Fș"Wimp_ForceRedraw",-1,block!4,(block!16)-32,block!12,block!16+36 �� �9� shutdownsave șreinter,mytask%:ș"Wimp_CloseDown":� �� � winsave%=save% � �savedraw � "5� save$<>"<Wimp$Scrap>" � �info(winsave%,1,save$) ,� 6��messagein @sendm=&400E7 Jref=block!8:task=block!4 TȎ block!16 � ^.� 0:șreinter,mytask%:ș"Wimp_CloseDown":� h� 2: rsave$=�wool(block+44) |�dragspr(1) �� drive%=1 � ��save(save$) �mblock!0=256 �mblock!12=ref �mblock!16=3 �mblock!36=-1 �$(mblock+44)=save$ �'ș &400E7,18,mblock,task:� DataLoad �� �� 3: �G� block!40<>&00C � �mess("Only Circuit Data files can be loaded"):� �&load$=�wool(block+44):�load(load$) �� 5: � block!40=&00C � block!12=block!8:block!16=4 +ș sendm,18,block,block!4:� DataLoadAck &�load(�wool(block+44)) 0� :n� 8:� prequit șreinter,mytask%:ș"Wimp_CloseDown":�:�:block!12=ref:șsendm,19,block:prequit=�:�areyousure D� N� X��load(load$) bin=� lfontmess=� vload%=�(load$) ��#load%,title$ �]� title$<>"Circuit Data File" � �query("This is not a true Circuit Data file!"):�#load%:� ��#load%,gridx,gridy � tot=-1 �� A=0 � gridx �� B=0 � gridy ��#load%,a$ �pset$(A,B)=a$ �� B �� A ��#load%,text �� text=1 � ��#load%,thing$,noof � F=0 � noof tot+=1 �#load%,text$ textinfo$(tot)=text$ *� F 4� > text=� H�#load% R!icond=circuit% \!ș"Wimp_GetWindowInfo",,icond ffsaved=�:_p% = !(icond+76):$_p%=load$:ș"Wimp_ForceRedraw",-1,icond!4,icond!16,icond!12,icond!16+36 p$�info(saved%,1)=load$ z�alterwin(gridx,gridy,0) �/�info(grid%,8,�gridy):�info(grid%,5,�gridx) �)�openwin(circuit%):�openwin(toolbox%) �� �� ���openwin(handle%) �!block=handle% �!ș"Wimp_GetWindowInfo",,block �a=block!32 � (1<<16) �b=block!32 � (1<<17) �� a=0 � �ș"Wimp_OpenWindow",,block �� �� b=0 � *block!28=-1:ș"Wimp_OpenWindow",,block � � $��redo(handle%) .!block=handle% 8ș"Wimp_CloseWindow",,block B�openwin(handle%) L� Vݤcheckit(hnd%,ic%) `!icond=hnd%:icond!4=ic% j ș"Wimp_GetIconState",,icond tflags%=icond!24 ~=flags%�&F0000 ���slabicn(handle,icn) �icond!12=handle �icond!16=2 �ș "Wimp_BorderIcon",,icond � icond!8=0 �ș "Wimp_BorderIcon",,icond �� �� �slabin(handle) �!icond=handle �#ș "Wimp_GetPointerInfo",,icond �ș "Wimp_BorderIcon",,icond �� � �slabout(handle) !icond=handle #ș "Wimp_GetPointerInfo",,icond icond!8 = 0 (ș "Wimp_BorderIcon",,icond 2� <��clearall Fș"OS_Confirm" � press P� �press="y" � Z� A=0 � 16 d� B=0 � 11 npset$(A,B)="" x� B �� A �� tot>-1 � tot=-1 ��redraw(circuit%) �� �� ���doit(xc,yc,handle) �!block=handle �!ș"Wimp_GetWindowInfo",,block ҍ� � saved � saved=�:new$=$(block!76)+" *": _p% = !(block+76):$_p%=new$:ș"Wimp_ForceRedraw",-1,block!4,(block!16)-32,block!12,block!16+36 �workx%=block!4-block!20 �worky%=block!16-block!24 �px=0-(workx%-xc) �py=worky%-yc px=�(px/62) py=�(py/62) pset$(px,py)=tool$ "Hș "Wimp_ForceRedraw",circuit%,px*62,0-(py*62)-62,px*62+62,0-(py*62) ,� 6� �redraw(handle) @ nofonts=� J!block=handle T �more% ^)ș "Wimp_RedrawWindow",,block � more% hȕ more% r Ȏ handle � | � circuit% � �application_redraw � �! ș"Wimp_BorderWindow",,block � � �)ș "Wimp_GetRectangle",,block � more% � � � nofonts � fontmess=� � �query("This window contains text. Please locate the !Fonts directory to enable text to be seen."):fontmess=�:� �� ���application_redraw �workx%=block!4-block!20 �worky%=block!16-block!24 � �modeproc �3ș &2E,256+40,spr%,"ledU" � A,B,C,w%,h%,D,mode% .ș"OS_ReadModeVariable",mode%,3 �c,cl,cols ,ș"OS_ReadModeVariable",mode%,4 �,,xeig% ,ș"OS_ReadModeVariable",mode%,5 �,,yeig% &wi%=w%<<xeig% 0he%=h%<<yeig% :� !(4+spr%)>0 � D� !(48+spr%)>44 � N� col%=0 � 15 X'palette%!(col%*4)=!(60+col%*8+spr%) b � col% lDș "ColourTrans_SelectTable",!(56+spr%),palette%,-1,-1,scalblock v� �Cș "ColourTrans_SelectTable",!(56+spr%),defpal%,-1,-1,scalblock �� �� �� A=0 � gridx �� B=0 � gridy �� pset$(A,B)>"" � �Nș 46,&134,spr%,pset$(A,B),workx%+(A*62),worky%-(B*62)-62,8,scal,scalblock �� �� B �� A �� tot>-1 � � nofonts=� � num=0 +ș "XFont_ListFonts",,icond,num � ,,num � num=-1 � nofonts=� � � nofonts � �findfont *� I=0 � tot 4�workout(textinfo$(I)) >px2=0-(workx%-wxco) Hpy2=worky%-wyco Rș"Font_SetFont",font% \9ș"Font_Paint",,wtext$,%10010,workx%+wxco,worky%-wyco f� p� z� �� ���findfont �Dș"XFont_FindFont",,"Trinity.Medium",12*16,12*16 � font%:found=� �� font%!0=523 � � num=0 �+ș "XFont_ListFonts",,icond,num � ,,num �sfont$=$icond �9ș"Font_FindFont",,sfont$,12*16,12*16 � font%:found=� �� �� ���clearit(xc,yc,handle) �vx=block!0:vy=block!4 �!block=handle !ș"Wimp_GetWindowInfo",,block �� � saved � saved=�:new$=$(block!76)+" *": _p% = !(block+76):$_p%=new$:ș"Wimp_ForceRedraw",-1,block!4,(block!16)-32,block!12,block!16+36 workx%=block!4-block!20 $worky%=block!16-block!24 .px=0-(workx%-xc) 8py=worky%-yc Bpx=�(px/62) Lpy=�(py/62) Vpset$(px,py)="" `� 0 jIș"Wimp_ForceRedraw",circuit%,px*62,0-(py*62)-62,(px*62)+62,0-(py*62) t�doem(vx,vy) ~� ���gotext(xco,yco) � num=0 �+ș "XFont_ListFonts",,icond,num � ,,num �ffont$=$icond �Z� num=-1 � �query("Please locate the !Fonts directory to enable text to be entred."):� �� tool$="ptr_text" � �oldtool$=tool$ �tool$="ptr_text" � text=� �!block=enter% �!ș"Wimp_GetWindowInfo",,block �Cblock!4=xco+100:block!12=xco+430:block!8=yco-46-48:block!16=yco ș"Wimp_OpenWindow",,block 0ș"Wimp_SetCaretPosition",enter%,0,0,0,-1,-1 � ��dotext(xco,yco) (� tot=50 � 2� $�info(enter%,0)="" � < tot+=1 F �findfont Pș"Font_SetFont",font% ZYș"Font_StringWidth",,$�info(enter%,0),228000,228000,31,�($�info(enter%,0)) � ,,x%,y% d&ș"Font_ConverttoOS",,x%,y% � ,x,y n!block=circuit% x!ș"Wimp_GetWindowInfo",,block ��� � saved � saved=�:new$=$(block!76)+" *": _p% = !(block+76):$_p%=new$:ș"Wimp_ForceRedraw",-1,block!4,(block!16)-32,block!12,block!16+36 �workx%=block!4-block!20 �worky%=block!16-block!24 �px=0-(workx%-xco) �py=worky%-yco �:textinfo$(tot)=$�info(enter%,0)+","+�px+","+�py+","+�x �Iș "Wimp_ForceRedraw",-1,workx%+px,worky%-py,workx%+px+x,worky%-py+32 �!block=enter% �!block=enter% �ș"Wimp_CloseWindow",,block � text=� �tool$=oldtool$ �5$point%=tool$:ș "Wimp_SpriteOp",36,,point%,1,8,8 � ��doem(mx,my) � tot=-1 � "!block=circuit% ,!ș"Wimp_GetWindowInfo",,block 6workx%=block!4-block!20 @worky%=block!16-block!24 J� I=0 � tot T�workout(textinfo$(I)) ^px=workx%+wxco hpx2=0-(workx%-wxco) rpy=worky%-wyco |;� mx>px-31 � mx<px+wwidth+31 � my>py-31 � my<py+24+31 � �� 15 ��viable(wtext$,block!12,px) �;ș"Font_Paint",,newtext$,%10010,workx%+wxco,worky%-wyco �� �� �� ���workout(work$) � wtext$=�work$,�work$,",")-1) �&work$=�work$,�(work$)-�work$,",")) �!wxco=�(�work$,�work$,",")-1)) �&work$=�work$,�(work$)-�work$,",")) �!wyco=�(�work$,�work$,",")-1)) �&work$=�work$,�(work$)-�work$,",")) #wwidth=�(�work$,�work$,",")-1)) � ��viable(dt$,y1,y2) &� 0xy=�width(dt$,y1-y2) :� xy=0 dt$=�dt$,�(dt$)-1) D � xy>0 Nnewtext$=dt$ X� bݤwidth(ftext$,op) lș"Font_SetFont",font% v.ș"Font_Converttopoints",,op,op � ,xcy,ycy �?ș"Font_StringWidth",,ftext$,xcy,ycy,31,�(ftext$) � ,,x%,y% �=x% �ݤask(fn$) �!icond=0:$(icond+4)=fn$+�0 �4ș"Wimp_ReportError",icond,&13,"!Circuit" � ,but �=but ���deltext(xg,yg) �R� tot=-1 � tool$=Voldtool$:$point%=tool$:ș "Wimp_SpriteOp",36,,point%,1,8,8:� �!block=circuit% �!ș"Wimp_GetWindowInfo",,block �workx%=block!4-block!20 �worky%=block!16-block!24 �� H=0 � tot �workout(textinfo$(H)) px=workx%+wxco py=worky%-wyco <� xg>px � xg<px+wwidth � yg>py � yg<py+24 � �delete(H):� *� H 4Etool$=Voldtool$:$point%=tool$:ș "Wimp_SpriteOp",36,,point%,1,8,8 >� H��delete(let) R!block=circuit% \!ș"Wimp_GetWindowInfo",,block fworkx%=block!4-block!20 pworky%=block!16-block!24 z�workout(textinfo$(let)) �� let=tot � � tot-=1 �Xș "Wimp_ForceRedraw",-1,workx%+wxco,worky%-wyco-5,workx%+wxco+wwidth,worky%-wyco+32 �Etool$=Voldtool$:$point%=tool$:ș "Wimp_SpriteOp",36,,point%,1,8,8 �� �� let<tot � �� V=let � tot-1 �textinfo$(V)=textinfo$(V+1) �� V � tot-=1 �Xș "Wimp_ForceRedraw",-1,workx%+wxco,worky%-wyco-5,workx%+wxco+wwidth,worky%-wyco+32 �Etool$=Voldtool$:$point%=tool$:ș "Wimp_SpriteOp",36,,point%,1,8,8 �� � ��modeproc /ș &2E,256+40,spr%,"ledr" � ,,,w%,h%,,mode% $,ș"OS_ReadModeVariable",mode%,4 �,,xeig% .,ș"OS_ReadModeVariable",mode%,5 �,,yeig% 8wi%=w%<<xeig% Bhe%=h%<<yeig% L#ș&40740,mode%,0,-1,0,scalblock V%ș"OS_ReadModeVariable",�,11 �,,o `%ș"OS_ReadModeVariable",�,12 �,,p j o+=1:p+=1 t� p/o=.8 � �<>13 � ss=1 ~� p/o=.75 � �<>13 � ss=1 �%� p/o<>.8 � p/o<>.75 � �=13 ss=.5 �<!scal=wi%:scal!4=he%:scal!8=w%<<(1/1):scal!12=h%<<(1/ss) �� � ��pane �� toolson � �3x1=block!4-250:x2=x1+248:y1=block!8:y2=block!16 �size=x2-x1 �=p%=block!28:!icond=toolbox%:ș"Wimp_GetWindowInfo",,icond �� x1<0 � x1=0:x2=size �Bicond!4=x1:icond!8=y2-308:icond!12=x2:icond!16=y2:icond!28=p%: �ș"Wimp_OpenWindow",,icond �0block!28=toolbox%:ș"Wimp_OpenWindow",,block � ș"Wimp_OpenWindow",,block � ��toolbox(flag) (;� flag=-1 � !block=toolbox%:ș"Wimp_CloseWindow",,block 2� flag=1 � <!block=circuit% F"ș"Wimp_GetWindowState",,block Popen=block!32 � (1<<16) Z%� open<>0 � !icond=circuit%:�pane d� n� x��error(err$) �M!icond=0:$(icond+4)=err$+"."+" Press OK to continue or Cancel to quit"+�0 �2ș"Wimp_ReportError",icond,3,"!Circuit" � ,but �4� but=2 � șreinter,mytask%:ș"Wimp_CloseDown":� �� ���areyousure � � saved � ��openwin(quit%) �� 7 �1�info(quit%,1,"Your file has been modified.") �M!block=130:block!4=131:block!8=-1:ș"OS_ReadVduVariables",block,block+128 �%ș"OS_ReadModeVariable",�,4 � ,,x �%ș"OS_ReadModeVariable",�,5 � ,,y �9ȗ ȓ 0,0,(((block!128)+1)*2^x)-1,((block!132)+1)*2^y � 4� � saved șreinter,mytask%:ș"Wimp_CloseDown":� � "��query(qu$) ,�openwin(query%) 6� 7 @!block=query% J!ș"Wimp_GetWindowInfo",,block Tworkx%=block!12-block!4 ^worky%=block!16-block!8 h'ȗ ȓ block!4,block!8,workx%,worky% r�info(query%,1,qu$) |� � ��endq ��close(query%) �M!block=130:block!4=131:block!8=-1:ș"OS_ReadVduVariables",block,block+128 �%ș"OS_ReadModeVariable",�,4 � ,,x �%ș"OS_ReadModeVariable",�,5 � ,,y �9ȗ ȓ 0,0,(((block!128)+1)*2^x)-1,((block!132)+1)*2^y �� ���close(!block) �ș"Wimp_CloseWindow",,block �� ���dragspr(flag) �� dragspr � � Ȏ flag � � 1: ;!block=winsave%:block!4=2:ș "Wimp_GetIconState",,block +block!8=0:block!12=0:$(block!32)=indir$ &!ș "Wimp_SetIconState",,block 0ș "DragASprite_Stop" : � -1: D;!block=winsave%:block!4=2:ș "Wimp_GetIconState",,block Nindir$=$(block!32) X(block!8=0:block!12=0:$(block!32)=�13 b!ș "Wimp_SetIconState",,block l� v� �� ���scroll(x,y) �� x=0 � � Ȏ y � �� 1: �buffer2$=pset$(0,gridy) �� J=0 � gridx-1 �buffer2$=pset$(gridx-J-1,0) �� I=1 � gridy �$buffer$=pset$(gridx-J-1,gridy-I) �%pset$(gridx-J-1,gridy-I)=buffer2$ �buffer2$=buffer$ �� !� !� tot>-1 � !� I=0 � tot ! �workout(textinfo$(I)) !*(py=wyco-62:� py<0 � py=py+(gridy*62) !45textinfo$(I)=wtext$+","+�wxco+","+�py+","+�wwidth !>� !H� !R � -1: !\buffer2$=pset$(0,gridy) !f� J=0 � gridx-1 !p%buffer2$=pset$(gridx-J-1,gridy-1) !z� I=0 � gridy-1 !�buffer$=pset$(gridx-J-1,I) !�pset$(gridx-J-1,I)=buffer2$ !�buffer2$=buffer$ !�� !�� !�� tot>-1 � !�� I=0 � tot !��workout(textinfo$(I)) !�/py=wyco+62:� py>gridy*62 � py=py-(gridy*62) !�5textinfo$(I)=wtext$+","+�wxco+","+�py+","+�wwidth !�� !�� !�� "� "� y=0 � " Ȏ x � "$� 1 ".buffer2$=pset$(0,gridy) "8� I=0 � gridy "Bbuffer2$=pset$(0,gridy-I) "L� J=0 � gridx-1 "V$buffer$=pset$(gridx-J-1,gridy-I) "`%pset$(gridx-J-1,gridy-I)=buffer2$ "jbuffer2$=buffer$ "t� "~� "�� tot>-1 � "�� I=0 � tot "��workout(textinfo$(I)) "�(px=wxco-62:� px<0 � px=px+(gridx*62) "�5textinfo$(I)=wtext$+","+�px+","+�wyco+","+�wwidth "�� "�� "�� -1 "�!buffer2$=pset$(gridx-1,gridy) "�� I=0 � gridy "�#buffer2$=pset$(gridx-1,gridy-I) "�� J=0 � gridx # buffer$=pset$(J,gridy-I) # pset$(J,gridy-I)=buffer2$ #buffer2$=buffer$ #� #(� #2� tot>-1 � #<� I=0 � tot #F�workout(textinfo$(I)) #P/px=wxco+62:� px<gridx*62 � px=px-(gridx*62) #Z5textinfo$(I)=wtext$+","+�px+","+�wyco+","+�wwidth #d� #n� #x� #�� #��redraw(circuit%) #�� �
00000000 0d 00 0a 14 c8 99 22 48 6f 75 72 67 6c 61 73 73 |......"Hourglass| 00000010 5f 4f 6e 22 0d 00 14 1d c8 9b 20 22 3c 43 69 72 |_On"...... "<Cir| 00000020 63 24 44 69 72 3e 2e 44 72 61 77 42 61 73 69 63 |c$Dir>.DrawBasic| 00000030 22 0d 00 1e 25 ee 20 85 20 f2 65 72 72 6f 72 28 |"...%. . .error(| 00000040 f6 24 2b 22 20 3a 20 61 74 20 6c 69 6e 65 20 22 |.$+" : at line "| 00000050 2b c3 9e 29 3a e0 0d 00 28 1e f4 20 2a 2a 2a 3e |+..):...(.. ***>| 00000060 24 2e 21 43 69 72 63 75 69 74 2e 21 52 75 6e 49 |$.!Circuit.!RunI| 00000070 6d 61 67 65 0d 00 32 47 f4 20 2a 2a 2a 4d 61 69 |mage..2G. ***Mai| 00000080 6e 20 50 72 6f 67 72 61 6d 20 66 6f 72 20 21 43 |n Program for !C| 00000090 69 72 63 75 69 74 20 2d 20 43 69 72 63 75 69 74 |ircuit - Circuit| 000000a0 20 44 69 61 67 72 61 6d 20 63 72 65 61 74 6f 72 | Diagram creator| 000000b0 20 61 6e 64 20 65 64 69 74 6f 72 0d 00 3c 1f f4 | and editor..<..| 000000c0 20 56 65 72 73 69 6f 6e 20 31 2e 31 35 20 28 31 | Version 1.15 (1| 000000d0 35 20 4a 61 6e 20 27 39 34 29 0d 00 46 19 f4 20 |5 Jan '94)..F.. | 000000e0 41 75 74 68 75 72 20 a9 20 4a 2e 20 52 6f 62 62 |Authur . J. Robb| 000000f0 69 6e 73 0d 00 50 0d 73 66 69 6c 65 24 3d 22 22 |ins..P.sfile$=""| 00000100 0d 00 5a 25 c8 99 22 4f 53 5f 52 65 61 64 4d 6f |..Z%.."OS_ReadMo| 00000110 64 65 56 61 72 69 61 62 6c 65 22 2c eb 2c 31 31 |deVariable",.,11| 00000120 20 b8 2c 2c 43 0d 00 64 25 c8 99 22 4f 53 5f 52 | .,,C..d%.."OS_R| 00000130 65 61 64 4d 6f 64 65 56 61 72 69 61 62 6c 65 22 |eadModeVariable"| 00000140 2c eb 2c 31 32 20 b8 2c 2c 42 0d 00 6e 0d 43 2b |,.,12 .,,B..n.C+| 00000150 3d 31 3a 42 2b 3d 31 0d 00 78 29 e7 20 42 2f 43 |=1:B+=1..x). B/C| 00000160 3d 2e 38 20 80 20 eb 3c 3e 31 33 20 8c 20 73 66 |=.8 . .<>13 . sf| 00000170 69 6c 65 24 3d 22 53 70 72 69 74 65 73 32 37 22 |ile$="Sprites27"| 00000180 0d 00 82 2a e7 20 42 2f 43 3d 2e 37 35 20 80 20 |...*. B/C=.75 . | 00000190 eb 3c 3e 31 33 20 8c 20 73 66 69 6c 65 24 3d 22 |.<>13 . sfile$="| 000001a0 53 70 72 69 74 65 73 32 37 22 0d 00 8c 32 e7 20 |Sprites27"...2. | 000001b0 42 2f 43 3c 3e 2e 38 20 80 20 42 2f 43 3c 3e 2e |B/C<>.8 . B/C<>.| 000001c0 37 35 20 84 20 eb 3d 31 33 20 73 66 69 6c 65 24 |75 . .=13 sfile$| 000001d0 3d 22 53 70 72 69 74 65 73 31 32 22 0d 00 96 18 |="Sprites12"....| 000001e0 f2 6c 6f 61 64 73 70 72 69 74 65 73 28 73 66 69 |.loadsprites(sfi| 000001f0 6c 65 24 29 0d 00 a0 17 c8 99 22 48 6f 75 72 67 |le$)......"Hourg| 00000200 6c 61 73 73 5f 53 6d 61 73 68 22 0d 00 aa 54 de |lass_Smash"...T.| 00000210 20 62 6c 6f 63 6b 20 34 2a 31 30 32 34 2c 20 6d | block 4*1024, m| 00000220 65 6e 75 25 20 31 30 32 34 2c 20 63 75 72 62 75 |enu% 1024, curbu| 00000230 66 25 20 32 2e 35 2a 31 30 32 34 2c 20 69 63 6f |f% 2.5*1024, ico| 00000240 6e 64 20 32 2a 31 30 32 34 2c 20 70 6f 69 6e 74 |nd 2*1024, point| 00000250 25 20 32 35 2c 6d 62 6c 6f 63 6b 20 35 31 32 0d |% 25,mblock 512.| 00000260 00 b4 0e 6d 61 78 6c 65 76 25 3d 33 32 0d 00 be |...maxlev%=32...| 00000270 23 de 20 73 74 61 72 74 25 28 6d 61 78 6c 65 76 |#. start%(maxlev| 00000280 25 29 2c 62 6f 78 25 28 6d 61 78 6c 65 76 25 29 |%),box%(maxlev%)| 00000290 0d 00 c8 35 de 20 6c 25 28 6d 61 78 6c 65 76 25 |...5. l%(maxlev%| 000002a0 29 2c 62 25 28 6d 61 78 6c 65 76 25 29 2c 72 25 |),b%(maxlev%),r%| 000002b0 28 6d 61 78 6c 65 76 25 29 2c 74 25 28 6d 61 78 |(maxlev%),t%(max| 000002c0 6c 65 76 25 29 0d 00 d2 3e de 20 70 73 65 74 24 |lev%)...>. pset$| 000002d0 28 33 30 2c 33 30 29 2c 74 65 78 74 69 6e 66 6f |(30,30),textinfo| 000002e0 24 28 35 30 29 2c 70 25 20 31 30 2c 20 73 63 61 |$(50),p% 10, sca| 000002f0 6c 20 32 30 2c 20 73 63 61 6c 62 6c 6f 63 6b 20 |l 20, scalblock | 00000300 32 35 35 0d 00 dc 29 de 20 70 61 6c 65 74 74 65 |255...). palette| 00000310 25 20 32 35 35 2c 64 65 66 70 61 6c 25 20 32 35 |% 255,defpal% 25| 00000320 35 2c 77 69 6e 70 61 6c 28 31 35 29 0d 00 e6 3c |5,winpal(15)...<| 00000330 65 6e 64 25 3d 2d 31 3a 74 65 78 74 3d a3 3a 67 |end%=-1:text=.:g| 00000340 72 69 64 78 3d 31 35 3a 67 72 69 64 79 3d 38 3a |ridx=15:gridy=8:| 00000350 74 6f 6f 6c 73 6f 6e 3d b9 3a 73 68 75 74 64 6f |toolson=.:shutdo| 00000360 77 6e 73 61 76 65 3d a3 0d 00 f0 19 65 6e 64 62 |wnsave=.....endb| 00000370 75 66 25 3d 63 75 72 62 75 66 25 2b 26 36 30 30 |uf%=curbuf%+&600| 00000380 30 0d 00 fa 32 74 6f 74 3d 2d 31 3a 66 6f 75 6e |0...2tot=-1:foun| 00000390 64 3d a3 3a 73 61 76 65 64 3d a3 3a 70 72 65 71 |d=.:saved=.:preq| 000003a0 75 69 74 73 61 76 65 3d a3 3a 70 72 65 71 75 69 |uitsave=.:prequi| 000003b0 74 3d a3 0d 01 04 1d 69 6e 3d a3 3a 73 74 61 72 |t=.....in=.:star| 000003c0 74 65 64 3d 30 3a 66 6f 6e 74 6d 65 73 73 3d a3 |ted=0:fontmess=.| 000003d0 0d 01 0e 0e e3 20 49 3d 30 20 b8 20 31 35 0d 01 |..... I=0 . 15..| 000003e0 18 0a f3 20 68 65 78 61 0d 01 22 12 77 69 6e 70 |... hexa..".winp| 000003f0 61 6c 28 49 29 3d 68 65 78 61 0d 01 2c 16 64 65 |al(I)=hexa..,.de| 00000400 66 70 61 6c 25 21 28 49 2a 34 29 3d 68 65 78 61 |fpal%!(I*4)=hexa| 00000410 0d 01 36 05 ed 0d 01 40 50 dc 20 26 46 46 46 46 |..6....@P. &FFFF| 00000420 46 46 31 30 2c 26 44 44 44 44 44 44 31 30 2c 26 |FF10,&DDDDDD10,&| 00000430 42 42 42 42 42 42 31 30 2c 26 39 39 39 39 39 39 |BBBBBB10,&999999| 00000440 31 30 2c 26 37 37 37 37 37 37 31 30 2c 26 35 35 |10,&77777710,&55| 00000450 35 35 35 35 31 30 2c 26 33 33 33 33 33 33 31 30 |555510,&33333310| 00000460 2c 26 30 31 30 0d 01 4a 49 dc 20 26 39 39 34 34 |,&010..JI. &9944| 00000470 30 30 31 30 2c 26 45 45 45 45 31 30 2c 26 43 43 |0010,&EEEE10,&CC| 00000480 30 30 31 30 2c 26 44 44 31 30 2c 26 42 42 45 45 |0010,&DD10,&BBEE| 00000490 45 45 31 30 2c 26 38 38 35 35 31 30 2c 26 42 42 |EE10,&885510,&BB| 000004a0 46 46 31 30 2c 26 46 46 42 42 30 30 31 30 0d 01 |FF10,&FFBB0010..| 000004b0 54 44 c8 99 20 22 57 69 6d 70 5f 49 6e 69 74 69 |TD.. "Wimp_Initi| 000004c0 61 6c 69 73 65 22 2c 32 30 30 2c 26 34 42 35 33 |alise",200,&4B53| 000004d0 34 31 35 34 2c 22 21 43 69 72 63 75 69 74 22 20 |4154,"!Circuit" | 000004e0 b8 20 76 65 72 73 69 6f 6e 25 2c 6d 79 74 61 73 |. version%,mytas| 000004f0 6b 25 0d 01 5e 24 c8 99 20 22 57 69 6d 70 5f 43 |k%..^$.. "Wimp_C| 00000500 6c 61 69 6d 49 6e 74 65 72 66 61 63 65 22 2c 6d |laimInterface",m| 00000510 79 74 61 73 6b 25 0d 01 68 0d f2 74 65 6d 70 6c |ytask%..h..templ| 00000520 61 74 65 0d 01 72 52 c8 99 22 58 4f 53 5f 52 65 |ate..rR.."XOS_Re| 00000530 61 64 56 61 72 56 61 6c 22 2c 22 43 69 72 63 24 |adVarVal","Circ$| 00000540 44 72 61 67 22 2c 62 6c 6f 63 6b 2c 32 35 36 2c |Drag",block,256,| 00000550 30 2c 30 20 b8 20 2c 2c 6c 65 6e 3a 62 6c 6f 63 |0,0 . ,,len:bloc| 00000560 6b 3f 6c 65 6e 3d 31 33 3a 64 72 61 67 24 3d 24 |k?len=13:drag$=$| 00000570 62 6c 6f 63 6b 0d 01 7c 2a e7 20 64 72 61 67 24 |block..|*. drag$| 00000580 3d 22 54 52 55 45 22 20 8c 20 64 72 61 67 73 70 |="TRUE" . dragsp| 00000590 72 3d b9 20 8b 20 64 72 61 67 73 70 72 3d a3 0d |r=. . dragspr=..| 000005a0 01 86 19 c8 99 20 22 4f 53 5f 47 65 74 45 6e 76 |..... "OS_GetEnv| 000005b0 22 20 b8 20 65 6e 76 24 0d 01 90 16 e7 20 a7 65 |" . env$..... .e| 000005c0 6e 76 24 2c 22 2d 71 75 69 74 22 29 20 8c 0d 01 |nv$,"-quit") ...| 000005d0 9a 12 49 25 3d a7 65 6e 76 24 2c 22 22 22 22 29 |..I%=.env$,"""")| 000005e0 0d 01 a4 17 49 25 3d a7 65 6e 76 24 2c 22 22 22 |....I%=.env$,"""| 000005f0 22 2c 49 25 2b 31 29 0d 01 ae 05 f5 0d 01 b8 09 |",I%+1).........| 00000600 49 25 2b 3d 31 0d 01 c2 16 fd 20 c1 65 6e 76 24 |I%+=1..... .env$| 00000610 2c 49 25 2c 31 29 3c 3e 22 20 22 0d 01 cc 12 65 |,I%,1)<>" "....e| 00000620 6e 76 24 3d c1 65 6e 76 24 2c 49 25 29 0d 01 d6 |nv$=.env$,I%)...| 00000630 05 cd 0d 01 e0 10 69 6e 69 74 69 63 3d a4 69 63 |......initic=.ic| 00000640 6f 6e 0d 01 ea 2c 65 6e 64 25 3d a3 3a 64 72 61 |on...,end%=.:dra| 00000650 67 25 3d 30 3a 64 72 69 76 65 25 3d 30 3a 74 6f |g%=0:drive%=0:to| 00000660 6f 6c 24 3d 22 72 65 73 69 73 74 6f 72 22 0d 01 |ol$="resistor"..| 00000670 f4 33 73 69 7a 65 25 3d 34 38 3a 66 6f 6e 74 25 |.3size%=48:font%| 00000680 3d 2d 31 3a 66 61 6d 69 6c 79 25 3d 30 3a 73 74 |=-1:family%=0:st| 00000690 79 6c 65 25 3d 2d 31 3a 6e 5f 66 6f 6e 74 25 3d |yle%=-1:n_font%=| 000006a0 31 0d 01 fe 12 72 65 69 6e 74 65 72 3d 26 38 31 |1....reinter=&81| 000006b0 36 38 33 0d 02 08 15 f2 61 6c 74 65 72 77 69 6e |683.....alterwin| 000006c0 28 31 35 2c 38 2c 30 29 0d 02 12 2a f2 69 6e 66 |(15,8,0)...*.inf| 000006d0 6f 28 67 72 69 64 25 2c 38 2c 22 38 22 29 3a f2 |o(grid%,8,"8"):.| 000006e0 69 6e 66 6f 28 67 72 69 64 25 2c 35 2c 22 31 35 |info(grid%,5,"15| 000006f0 22 29 0d 02 1c 23 ee 20 85 20 f2 65 72 72 6f 72 |")...#. . .error| 00000700 28 f6 24 2b 22 20 3a 20 61 74 20 6c 69 6e 65 20 |(.$+" : at line | 00000710 22 2b c3 9e 29 0d 02 26 1a e7 20 65 6e 76 24 3c |"+..)..&.. env$<| 00000720 3e 22 22 20 f2 6c 6f 61 64 28 65 6e 76 24 29 0d |>"" .load(env$).| 00000730 02 30 05 f5 0d 02 3a 25 c8 99 22 57 69 6d 70 5f |.0....:%.."Wimp_| 00000740 50 6f 6c 6c 22 2c 30 2c 62 6c 6f 63 6b 20 b8 20 |Poll",0,block . | 00000750 65 76 65 6e 74 63 6f 64 65 0d 02 44 2d c8 99 20 |eventcode..D-.. | 00000760 22 57 69 6d 70 5f 50 6f 6c 6c 50 6f 69 6e 74 65 |"Wimp_PollPointe| 00000770 72 22 2c 65 76 65 6e 74 63 6f 64 65 2c 2c 76 65 |r",eventcode,,ve| 00000780 72 73 69 6f 6e 25 0d 02 4e 12 c8 8e 20 65 76 65 |rsion%..N... eve| 00000790 6e 74 63 6f 64 65 20 ca 0d 02 58 34 c9 20 30 3a |ntcode ...X4. 0:| 000007a0 e7 20 ac 20 73 61 76 65 64 20 80 20 70 72 65 71 |. . saved . preq| 000007b0 75 69 74 20 c8 99 22 57 69 6d 70 5f 50 72 6f 63 |uit .."Wimp_Proc| 000007c0 65 73 73 4b 65 79 22 2c 26 31 46 43 0d 02 62 18 |essKey",&1FC..b.| 000007d0 c9 20 31 3a f2 72 65 64 72 61 77 28 62 6c 6f 63 |. 1:.redraw(bloc| 000007e0 6b 21 30 29 0d 02 6c 47 c9 20 32 3a 77 69 6e 3d |k!0)..lG. 2:win=| 000007f0 21 62 6c 6f 63 6b 3a e7 20 77 69 6e 3d 63 69 72 |!block:. win=cir| 00000800 63 75 69 74 25 20 8c 20 f2 70 61 6e 65 3a 8b 20 |cuit% . .pane:. | 00000810 c8 99 20 22 57 69 6d 70 5f 4f 70 65 6e 57 69 6e |.. "Wimp_OpenWin| 00000820 64 6f 77 22 2c 2c 62 6c 6f 63 6b 0d 02 76 11 c9 |dow",,block..v..| 00000830 20 33 3a f2 72 65 71 75 65 73 74 33 0d 02 80 41 | 3:.request3...A| 00000840 c9 20 34 3a 24 70 6f 69 6e 74 25 3d 22 70 74 72 |. 4:$point%="ptr| 00000850 5f 64 65 66 61 75 6c 74 22 3a c8 99 20 22 57 69 |_default":.. "Wi| 00000860 6d 70 5f 53 70 72 69 74 65 4f 70 22 2c 33 36 2c |mp_SpriteOp",36,| 00000870 2c 70 6f 69 6e 74 25 2c 31 2c 30 2c 30 0d 02 8a |,point%,1,0,0...| 00000880 42 c9 20 35 3a e7 20 74 6f 6f 6c 24 3d 22 70 74 |B. 5:. tool$="pt| 00000890 72 5f 74 65 78 74 22 20 84 20 74 6f 6f 6c 24 3d |r_text" . tool$=| 000008a0 22 70 74 72 5f 78 74 65 78 74 22 20 8c 20 78 3d |"ptr_xtext" . x=| 000008b0 30 3a 79 3d 30 3a 8b 20 78 3d 38 3a 79 3d 38 0d |0:y=0:. x=8:y=8.| 000008c0 02 94 4a e7 20 62 6c 6f 63 6b 21 30 3d 63 69 72 |..J. block!0=cir| 000008d0 63 75 69 74 25 20 8c 20 24 70 6f 69 6e 74 25 3d |cuit% . $point%=| 000008e0 74 6f 6f 6c 24 3a c8 99 20 22 57 69 6d 70 5f 53 |tool$:.. "Wimp_S| 000008f0 70 72 69 74 65 4f 70 22 2c 33 36 2c 2c 70 6f 69 |priteOp",36,,poi| 00000900 6e 74 25 2c 31 2c 78 2c 79 0d 02 9e 15 c9 20 36 |nt%,1,x,y..... 6| 00000910 3a f2 63 6c 69 63 6b 28 62 6c 6f 63 6b 29 0d 02 |:.click(block)..| 00000920 a8 0c c9 20 37 3a f2 6f 75 74 0d 02 b2 10 c9 20 |... 7:.out..... | 00000930 38 3a f2 70 72 6f 63 65 73 73 0d 02 bc 0f c9 20 |8:.process..... | 00000940 39 3a f2 73 65 6c 65 63 74 0d 02 c6 16 c9 20 31 |9:.select..... 1| 00000950 37 2c 31 38 3a f2 6d 65 73 73 61 67 65 69 6e 0d |7,18:.messagein.| 00000960 02 d0 05 cb 0d 02 da 0a fd 20 65 6e 64 25 0d 02 |......... end%..| 00000970 e4 0e dd f2 72 65 71 75 65 73 74 33 0d 02 ee 0f |....request3....| 00000980 c8 8e 20 21 62 6c 6f 63 6b 20 ca 0d 02 f8 71 c9 |.. !block ....q.| 00000990 20 65 6e 74 65 72 25 3a c8 99 20 22 57 69 6d 70 | enter%:.. "Wimp| 000009a0 5f 43 6c 6f 73 65 57 69 6e 64 6f 77 22 2c 2c 62 |_CloseWindow",,b| 000009b0 6c 6f 63 6b 3a 74 65 78 74 3d a3 3a 74 6f 6f 6c |lock:text=.:tool| 000009c0 24 3d 6f 6c 64 74 6f 6f 6c 24 3a 24 70 6f 69 6e |$=oldtool$:$poin| 000009d0 74 25 3d 74 6f 6f 6c 24 3a c8 99 20 22 57 69 6d |t%=tool$:.. "Wim| 000009e0 70 5f 53 70 72 69 74 65 4f 70 22 2c 33 36 2c 2c |p_SpriteOp",36,,| 000009f0 70 6f 69 6e 74 25 2c 31 2c 38 2c 38 0d 03 02 58 |point%,1,8,8...X| 00000a00 c9 20 63 69 72 63 75 69 74 25 3a c8 99 20 22 57 |. circuit%:.. "W| 00000a10 69 6d 70 5f 43 6c 6f 73 65 57 69 6e 64 6f 77 22 |imp_CloseWindow"| 00000a20 2c 2c 62 6c 6f 63 6b 3a 21 62 6c 6f 63 6b 3d 74 |,,block:!block=t| 00000a30 6f 6f 6c 62 6f 78 25 3a c8 99 20 22 57 69 6d 70 |oolbox%:.. "Wimp| 00000a40 5f 43 6c 6f 73 65 57 69 6e 64 6f 77 22 2c 2c 62 |_CloseWindow",,b| 00000a50 6c 6f 63 6b 0d 03 0c 21 c9 20 73 61 76 65 64 25 |lock...!. saved%| 00000a60 3a e7 70 72 65 71 75 69 74 20 8c 20 70 72 65 71 |:.prequit . preq| 00000a70 75 69 74 3d a3 0d 03 16 35 c9 20 74 6f 6f 6c 62 |uit=....5. toolb| 00000a80 6f 78 25 3a 74 6f 6f 6c 73 6f 6e 3d a3 3a c8 99 |ox%:toolson=.:..| 00000a90 20 22 57 69 6d 70 5f 43 6c 6f 73 65 57 69 6e 64 | "Wimp_CloseWind| 00000aa0 6f 77 22 2c 2c 62 6c 6f 63 6b 0d 03 20 23 7f 20 |ow",,block.. #. | 00000ab0 3a c8 99 20 22 57 69 6d 70 5f 43 6c 6f 73 65 57 |:.. "Wimp_CloseW| 00000ac0 69 6e 64 6f 77 22 2c 2c 62 6c 6f 63 6b 0d 03 2a |indow",,block..*| 00000ad0 05 cb 0d 03 34 05 e1 0d 03 3e 0a dd a4 69 63 6f |....4....>...ico| 00000ae0 6e 0d 03 48 0d 21 69 63 6f 6e 64 3d 2d 31 0d 03 |n..H.!icond=-1..| 00000af0 52 0d 69 63 6f 6e 64 21 34 3d 30 0d 03 5c 25 69 |R.icond!4=0..\%i| 00000b00 63 6f 6e 64 21 38 3d 30 3a 69 63 6f 6e 64 21 31 |cond!8=0:icond!1| 00000b10 32 3d 36 38 3a 69 63 6f 6e 64 21 31 36 3d 36 38 |2=68:icond!16=68| 00000b20 0d 03 66 2b 69 63 6f 6e 64 21 32 30 3d 25 31 31 |..f+icond!20=%11| 00000b30 30 31 30 2b 28 28 32 5e 31 32 29 2a 33 29 3a 69 |010+((2^12)*3):i| 00000b40 63 6f 6e 64 3f 32 33 3d 31 31 32 0d 03 70 1e 24 |cond?23=112..p.$| 00000b50 28 69 63 6f 6e 64 2b 32 34 29 3d 22 21 43 69 72 |(icond+24)="!Cir| 00000b60 63 75 69 74 22 2b bd 31 33 0d 03 7a 26 c8 99 20 |cuit"+.13..z&.. | 00000b70 22 57 69 6d 70 5f 43 72 65 61 74 65 49 63 6f 6e |"Wimp_CreateIcon| 00000b80 22 2c 2c 69 63 6f 6e 64 20 b8 20 69 63 6f 6e 0d |",,icond . icon.| 00000b90 03 84 09 3d 69 63 6f 6e 0d 03 8e 1a dd a4 73 70 |...=icon......sp| 00000ba0 72 69 6e 66 6f 28 68 61 6e 64 6c 65 2c 69 63 6f |rinfo(handle,ico| 00000bb0 6e 29 0d 03 98 15 f2 67 65 65 28 68 61 6e 64 6c |n).....gee(handl| 00000bc0 65 2c 69 63 6f 6e 29 0d 03 a2 0f 3d 28 69 63 6f |e,icon)....=(ico| 00000bd0 6e 64 2b 32 38 29 0d 03 ac 16 dd a4 69 6e 66 28 |nd+28)......inf(| 00000be0 68 61 6e 64 6c 65 2c 69 63 6f 6e 29 0d 03 b6 15 |handle,icon)....| 00000bf0 f2 67 65 65 28 68 61 6e 64 6c 65 2c 69 63 6f 6e |.gee(handle,icon| 00000c00 29 0d 03 c0 0d 3d 69 63 6f 6e 64 21 32 38 0d 03 |)....=icond!28..| 00000c10 ca 0e 20 dd a4 62 69 74 28 61 24 29 0d 03 d4 11 |.. ..bit(a$)....| 00000c20 c8 95 20 a7 61 24 2c 22 3a 22 29 3e 30 0d 03 de |.. .a$,":")>0...| 00000c30 16 61 24 3d c1 61 24 2c a7 61 24 2c 22 3a 22 29 |.a$=.a$,.a$,":")| 00000c40 2b 31 29 0d 03 e8 05 ce 0d 03 f2 11 c8 95 20 a7 |+1)........... .| 00000c50 61 24 2c 22 2e 22 29 3e 30 0d 03 fc 16 61 24 3d |a$,".")>0....a$=| 00000c60 c1 61 24 2c a7 61 24 2c 22 2e 22 29 2b 31 29 0d |.a$,.a$,".")+1).| 00000c70 04 06 05 ce 0d 04 10 07 3d 61 24 0d 04 1a 11 dd |........=a$.....| 00000c80 a4 77 6f 6f 6c 28 77 6f 6f 6c 25 29 0d 04 24 0a |.wool(wool%)..$.| 00000c90 ea 20 63 6f 74 24 0d 04 2e 12 20 c8 95 20 3f 77 |. cot$.... .. ?w| 00000ca0 6f 6f 6c 25 3e 3d 33 32 0d 04 38 13 63 6f 74 24 |ool%>=32..8.cot$| 00000cb0 2b 3d bd 28 3f 77 6f 6f 6c 25 29 0d 04 42 0c 77 |+=.(?wool%)..B.w| 00000cc0 6f 6f 6c 25 2b 3d 31 0d 04 4c 05 ce 0d 04 56 09 |ool%+=1..L....V.| 00000cd0 3d 63 6f 74 24 0d 04 60 17 dd f2 6c 6f 61 64 73 |=cot$..`...loads| 00000ce0 70 72 69 74 65 73 28 47 65 65 24 29 0d 04 6a 29 |prites(Gee$)..j)| 00000cf0 ff 28 22 49 63 6f 6e 73 70 72 69 74 65 73 20 3c |.("Iconsprites <| 00000d00 43 69 72 63 24 44 69 72 3e 2e 22 2b 47 65 65 24 |Circ$Dir>."+Gee$| 00000d10 2b 22 21 22 29 0d 04 74 38 c8 99 20 22 4f 53 5f |+"!")..t8.. "OS_| 00000d20 46 69 6c 65 22 2c 35 2c 22 3c 43 69 72 63 24 44 |File",5,"<Circ$D| 00000d30 69 72 3e 2e 22 2b 47 65 65 24 2b 22 21 22 20 b8 |ir>."+Gee$+"!" .| 00000d40 20 2c 2c 2c 2c 73 70 72 5f 6c 65 6e 25 0d 04 7e | ,,,,spr_len%..~| 00000d50 17 73 70 72 5f 6c 65 6e 25 3d 73 70 72 5f 6c 65 |.spr_len%=spr_le| 00000d60 6e 25 2b 34 0d 04 88 13 de 20 73 70 72 25 20 73 |n%+4..... spr% s| 00000d70 70 72 5f 6c 65 6e 25 0d 04 92 12 21 73 70 72 25 |pr_len%....!spr%| 00000d80 3d 73 70 72 5f 6c 65 6e 25 0d 04 9c 32 c8 99 20 |=spr_len%...2.. | 00000d90 22 4f 53 5f 46 69 6c 65 22 2c 32 35 35 2c 22 3c |"OS_File",255,"<| 00000da0 43 69 72 63 24 44 69 72 3e 2e 22 2b 47 65 65 24 |Circ$Dir>."+Gee$| 00000db0 2b 22 21 22 2c 73 70 72 25 2b 34 0d 04 a6 05 e1 |+"!",spr%+4.....| 00000dc0 0d 04 b0 0e dd f2 74 65 6d 70 6c 61 74 65 0d 04 |......template..| 00000dd0 ba 31 c8 99 22 57 69 6d 70 5f 4f 70 65 6e 54 65 |.1.."Wimp_OpenTe| 00000de0 6d 70 6c 61 74 65 22 2c 2c 22 3c 43 69 72 63 24 |mplate",,"<Circ$| 00000df0 44 69 72 3e 2e 54 65 6d 70 6c 61 74 65 73 22 0d |Dir>.Templates".| 00000e00 04 c4 11 69 6e 64 69 72 3d 63 75 72 62 75 66 25 |...indir=curbuf%| 00000e10 0d 04 ce 1f 69 6e 66 6f 25 3d a4 74 65 6d 70 6c |....info%=.templ| 00000e20 61 74 65 28 22 50 72 6f 67 49 6e 66 6f 22 29 0d |ate("ProgInfo").| 00000e30 04 d8 1b 73 61 76 65 25 3d a4 74 65 6d 70 6c 61 |...save%=.templa| 00000e40 74 65 28 22 73 61 76 65 22 29 0d 04 e2 20 73 61 |te("save")... sa| 00000e50 76 65 64 25 3d a4 74 65 6d 70 6c 61 74 65 28 22 |ved%=.template("| 00000e60 73 61 76 65 74 65 78 74 22 29 0d 04 ec 21 63 69 |savetext")...!ci| 00000e70 72 63 75 69 74 25 3d a4 74 65 6d 70 6c 61 74 65 |rcuit%=.template| 00000e80 28 22 43 69 72 63 75 69 74 22 29 0d 04 f6 1d 74 |("Circuit")....t| 00000e90 6f 6f 6c 73 25 3d a4 74 65 6d 70 6c 61 74 65 28 |ools%=.template(| 00000ea0 22 49 63 6f 6e 73 22 29 0d 05 00 1d 6c 69 6e 65 |"Icons")....line| 00000eb0 73 25 3d a4 74 65 6d 70 6c 61 74 65 28 22 4c 49 |s%=.template("LI| 00000ec0 4e 45 53 22 29 0d 05 0a 1f 74 6f 6f 6c 62 6f 78 |NES")....toolbox| 00000ed0 25 3d a4 74 65 6d 70 6c 61 74 65 28 22 54 4f 4f |%=.template("TOO| 00000ee0 4c 53 22 29 0d 05 14 1c 65 6e 74 65 72 25 3d a4 |LS")....enter%=.| 00000ef0 74 65 6d 70 6c 61 74 65 28 22 74 65 78 74 22 29 |template("text")| 00000f00 0d 05 1e 1b 67 72 69 64 25 3d a4 74 65 6d 70 6c |....grid%=.templ| 00000f10 61 74 65 28 22 73 69 7a 65 22 29 0d 05 28 1d 71 |ate("size")..(.q| 00000f20 75 65 72 79 25 3d a4 74 65 6d 70 6c 61 74 65 28 |uery%=.template(| 00000f30 22 71 75 65 72 79 22 29 0d 05 32 1e 71 75 69 74 |"query")..2.quit| 00000f40 25 3d a4 74 65 6d 70 6c 61 74 65 28 22 71 75 69 |%=.template("qui| 00000f50 74 62 6f 78 22 29 0d 05 3c 1f 73 63 72 6f 6c 6c |tbox")..<.scroll| 00000f60 25 3d a4 74 65 6d 70 6c 61 74 65 28 22 73 63 72 |%=.template("scr| 00000f70 6f 6c 6c 22 29 0d 05 46 1b c8 99 20 22 57 69 6d |oll")..F... "Wim| 00000f80 70 5f 43 6c 6f 73 65 54 65 6d 70 6c 61 74 65 22 |p_CloseTemplate"| 00000f90 0d 05 50 17 73 74 65 78 3d a4 69 6e 66 6f 28 73 |..P.stex=.info(s| 00000fa0 61 76 65 25 2c 31 29 0d 05 5a 19 73 74 65 78 64 |ave%,1)..Z.stexd| 00000fb0 3d a4 69 6e 66 6f 28 73 61 76 65 64 25 2c 31 29 |=.info(saved%,1)| 00000fc0 0d 05 64 05 e1 0d 05 6e 12 dd a4 74 65 6d 70 6c |..d....n...templ| 00000fd0 61 74 65 28 61 24 29 0d 05 78 46 c8 99 22 57 69 |ate(a$)..xF.."Wi| 00000fe0 6d 70 5f 4c 6f 61 64 54 65 6d 70 6c 61 74 65 22 |mp_LoadTemplate"| 00000ff0 2c 2c 62 6c 6f 63 6b 2c 69 6e 64 69 72 2c 65 6e |,,block,indir,en| 00001000 64 62 75 66 25 2c 2d 31 2c 61 24 2c 30 20 b8 20 |dbuf%,-1,a$,0 . | 00001010 2c 2c 69 6e 64 69 72 2c 2c 2c 2c 63 25 0d 05 82 |,,indir,,,,c%...| 00001020 32 e7 20 63 25 3d 30 20 8c 20 f2 6d 65 73 73 28 |2. c%=0 . .mess(| 00001030 22 54 65 6d 70 6c 61 74 65 20 22 2b 61 24 2b 22 |"Template "+a$+"| 00001040 20 6e 6f 74 20 66 6f 75 6e 64 2e 22 29 3a e0 0d | not found."):..| 00001050 05 8c 0e 62 6c 6f 63 6b 21 36 34 3d 31 0d 05 96 |...block!64=1...| 00001060 29 c8 99 22 57 69 6d 70 5f 43 72 65 61 74 65 57 |).."Wimp_CreateW| 00001070 69 6e 64 6f 77 22 2c 2c 62 6c 6f 63 6b 20 b8 20 |indow",,block . | 00001080 68 61 6e 64 6c 65 0d 05 a0 0b 3d 68 61 6e 64 6c |handle....=handl| 00001090 65 0d 05 aa 17 dd a4 69 6e 66 6f 28 68 61 6e 64 |e......info(hand| 000010a0 6c 65 2c 69 63 6f 6e 29 0d 05 b4 15 f2 67 65 65 |le,icon).....gee| 000010b0 28 68 61 6e 64 6c 65 2c 69 63 6f 6e 29 0d 05 be |(handle,icon)...| 000010c0 0d 3d 69 63 6f 6e 64 21 32 38 0d 05 c8 1d dd f2 |.=icond!28......| 000010d0 69 6e 66 6f 28 68 61 6e 64 6c 65 2c 69 63 6f 6e |info(handle,icon| 000010e0 2c 74 65 78 74 24 29 0d 05 d2 3b 21 62 6c 6f 63 |,text$)...;!bloc| 000010f0 6b 3d 68 61 6e 64 6c 65 3a 62 6c 6f 63 6b 21 34 |k=handle:block!4| 00001100 3d 69 63 6f 6e 3a c8 99 22 57 69 6d 70 5f 47 65 |=icon:.."Wimp_Ge| 00001110 74 49 63 6f 6e 53 74 61 74 65 22 2c 2c 62 6c 6f |tIconState",,blo| 00001120 63 6b 0d 05 dc 29 24 28 62 6c 6f 63 6b 21 32 38 |ck...)$(block!28| 00001130 29 3d 74 65 78 74 24 3a 62 6c 6f 63 6b 21 33 36 |)=text$:block!36| 00001140 3d a9 28 74 65 78 74 24 29 2b 31 0d 05 e6 18 62 |=.(text$)+1....b| 00001150 6c 6f 63 6b 21 38 3d 30 3a 62 6c 6f 63 6b 21 31 |lock!8=0:block!1| 00001160 32 3d 30 0d 05 f0 20 c8 99 22 57 69 6d 70 5f 53 |2=0... .."Wimp_S| 00001170 65 74 49 63 6f 6e 53 74 61 74 65 22 2c 2c 62 6c |etIconState",,bl| 00001180 6f 63 6b 0d 05 fa 05 e1 0d 06 04 20 dd f2 73 70 |ock........ ..sp| 00001190 72 69 6e 66 6f 28 68 61 6e 64 6c 65 2c 69 63 6f |rinfo(handle,ico| 000011a0 6e 2c 74 65 78 74 24 29 0d 06 0e 3b 21 62 6c 6f |n,text$)...;!blo| 000011b0 63 6b 3d 68 61 6e 64 6c 65 3a 62 6c 6f 63 6b 21 |ck=handle:block!| 000011c0 34 3d 69 63 6f 6e 3a c8 99 22 57 69 6d 70 5f 47 |4=icon:.."Wimp_G| 000011d0 65 74 49 63 6f 6e 53 74 61 74 65 22 2c 2c 62 6c |etIconState",,bl| 000011e0 6f 63 6b 0d 06 18 29 24 28 62 6c 6f 63 6b 21 32 |ock...)$(block!2| 000011f0 38 29 3d 74 65 78 74 24 3a 62 6c 6f 63 6b 21 33 |8)=text$:block!3| 00001200 36 3d a9 28 74 65 78 74 24 29 2b 31 0d 06 22 18 |6=.(text$)+1..".| 00001210 62 6c 6f 63 6b 21 38 3d 30 3a 62 6c 6f 63 6b 21 |block!8=0:block!| 00001220 31 32 3d 30 0d 06 2c 20 c8 99 22 57 69 6d 70 5f |12=0.., .."Wimp_| 00001230 53 65 74 49 63 6f 6e 53 74 61 74 65 22 2c 2c 62 |SetIconState",,b| 00001240 6c 6f 63 6b 0d 06 36 05 e1 0d 06 40 16 dd f2 67 |lock..6....@...g| 00001250 65 65 28 68 61 6e 64 6c 65 2c 69 63 6f 6e 29 0d |ee(handle,icon).| 00001260 06 4a 1e 21 69 63 6f 6e 64 3d 68 61 6e 64 6c 65 |.J.!icond=handle| 00001270 3a 69 63 6f 6e 64 21 34 3d 69 63 6f 6e 0d 06 54 |:icond!4=icon..T| 00001280 20 c8 99 22 57 69 6d 70 5f 47 65 74 49 63 6f 6e | .."Wimp_GetIcon| 00001290 53 74 61 74 65 22 2c 2c 69 63 6f 6e 64 0d 06 5e |State",,icond..^| 000012a0 05 e1 0d 06 68 0c dd f2 63 6d 65 6e 75 73 0d 06 |....h...cmenus..| 000012b0 72 10 6d 65 6e 75 6f 70 65 6e 3d 2d 34 34 0d 06 |r.menuopen=-44..| 000012c0 7c 11 6d 65 6e 75 70 74 72 3d 6d 65 6e 75 25 0d ||.menuptr=menu%.| 000012d0 06 86 0c c8 97 20 78 2c 79 2c 62 0d 06 90 34 e7 |..... x,y,b...4.| 000012e0 20 74 6f 6f 6c 73 6f 6e 20 8c 20 74 6f 6f 6c 6f | toolson . toolo| 000012f0 6e 24 3d 22 7b 80 7d 54 6f 6f 6c 73 22 3a 8b 20 |n$="{.}Tools":. | 00001300 74 6f 6f 6c 6f 6e 24 3d 22 54 6f 6f 6c 73 22 0d |toolon$="Tools".| 00001310 06 9a 3e 53 61 76 65 4d 65 6e 75 25 3d a4 6d 65 |..>SaveMenu%=.me| 00001320 6e 75 28 22 53 61 76 65 22 2c 31 37 34 2c 22 7b |nu("Save",174,"{| 00001330 62 7c 73 61 76 65 25 7d 44 72 61 77 2c 7b 62 7c |b|save%}Draw,{b|| 00001340 73 61 76 65 64 25 7d 44 61 74 61 22 29 0d 06 a4 |saved%}Data")...| 00001350 84 69 63 6f 6e 6d 65 6e 75 25 3d a4 6d 65 6e 75 |.iconmenu%=.menu| 00001360 28 22 21 43 69 72 63 75 69 74 22 2c 31 37 34 2c |("!Circuit",174,| 00001370 22 7b 62 7c 69 6e 66 6f 25 7d 49 6e 66 6f 2c 43 |"{b|info%}Info,C| 00001380 69 72 63 75 69 74 2c 22 2b 74 6f 6f 6c 6f 6e 24 |ircuit,"+toolon$| 00001390 2b 22 2c 4c 69 6e 65 73 2c 7b 62 7c 67 72 69 64 |+",Lines,{b|grid| 000013a0 25 7d 53 69 7a 65 2c 7b 62 7c 73 63 72 6f 6c 6c |%}Size,{b|scroll| 000013b0 25 7d 53 63 72 6f 6c 6c 2c 7b 62 7c 53 61 76 65 |%}Scroll,{b|Save| 000013c0 4d 65 6e 75 25 7d 53 61 76 65 2c 51 75 69 74 22 |Menu%}Save,Quit"| 000013d0 29 0d 06 ae 1f e7 20 62 6c 6f 63 6b 21 31 32 3d |)..... block!12=| 000013e0 2d 32 20 80 20 62 6c 6f 63 6b 21 38 3d 32 20 8c |-2 . block!8=2 .| 000013f0 0d 06 b8 3d 6f 70 65 6e 6d 65 6e 75 25 3d 69 63 |...=openmenu%=ic| 00001400 6f 6e 6d 65 6e 75 25 3a 61 3d 78 2d 37 35 3a 62 |onmenu%:a=x-75:b| 00001410 3d 28 38 2b 32 29 2a 34 38 3a f4 20 4e 6f 2e 20 |=(8+2)*48:. No. | 00001420 6f 66 20 69 74 65 6d 73 2b 32 2a 34 38 0d 06 c2 |of items+2*48...| 00001430 21 cc 20 61 3d 78 3a 62 3d 79 3a 6f 70 65 6e 6d |!. a=x:b=y:openm| 00001440 65 6e 75 25 3d 69 63 6f 6e 6d 65 6e 75 25 0d 06 |enu%=iconmenu%..| 00001450 cc 05 cd 0d 06 d6 12 f2 6f 70 65 6e 6d 65 6e 75 |........openmenu| 00001460 28 61 2c 62 29 0d 06 e0 05 e1 0d 06 ea 13 dd f2 |(a,b)...........| 00001470 6f 70 65 6e 6d 65 6e 75 28 78 2c 79 29 0d 06 f4 |openmenu(x,y)...| 00001480 26 c8 99 22 57 69 6d 70 5f 43 72 65 61 74 65 4d |&.."Wimp_CreateM| 00001490 65 6e 75 22 2c 2c 6f 70 65 6e 6d 65 6e 75 25 2c |enu",,openmenu%,| 000014a0 78 2c 79 0d 06 fe 05 e1 0d 07 08 1a dd a4 6d 65 |x,y...........me| 000014b0 6e 75 28 74 69 74 24 2c 77 69 64 2c 6d 65 6e 75 |nu(tit$,wid,menu| 000014c0 24 29 0d 07 12 0e 6d 65 6e 75 24 2b 3d 22 2c 22 |$)....menu$+=","| 000014d0 0d 07 1c 13 6f 6c 64 6d 65 6e 75 3d 6d 65 6e 75 |....oldmenu=menu| 000014e0 70 74 72 0d 07 26 11 24 6d 65 6e 75 70 74 72 3d |ptr..&.$menuptr=| 000014f0 74 69 74 24 0d 07 30 10 6d 65 6e 75 70 74 72 3f |tit$..0.menuptr?| 00001500 31 32 3d 37 0d 07 3a 10 6d 65 6e 75 70 74 72 3f |12=7..:.menuptr?| 00001510 31 33 3d 32 0d 07 44 10 6d 65 6e 75 70 74 72 3f |13=2..D.menuptr?| 00001520 31 34 3d 37 0d 07 4e 10 6d 65 6e 75 70 74 72 3f |14=7..N.menuptr?| 00001530 31 35 3d 30 0d 07 58 12 6d 65 6e 75 70 74 72 21 |15=0..X.menuptr!| 00001540 31 36 3d 77 69 64 0d 07 62 11 6d 65 6e 75 70 74 |16=wid..b.menupt| 00001550 72 21 32 30 3d 34 38 0d 07 6c 10 6d 65 6e 75 70 |r!20=48..l.menup| 00001560 74 72 21 32 34 3d 30 0d 07 76 0f 6d 65 6e 75 70 |tr!24=0..v.menup| 00001570 74 72 2b 3d 32 38 0d 07 80 05 f5 0d 07 8a 11 f2 |tr+=28..........| 00001580 74 68 69 6e 67 28 6d 65 6e 75 24 29 0d 07 94 1f |thing(menu$)....| 00001590 6d 65 6e 75 24 3d c1 6d 65 6e 75 24 2c a7 6d 65 |menu$=.menu$,.me| 000015a0 6e 75 24 2c 22 2c 22 29 2b 31 29 0d 07 9e 0f 6d |nu$,",")+1)....m| 000015b0 65 6e 75 70 74 72 2b 3d 32 34 0d 07 a8 0e fd 20 |enuptr+=24..... | 000015c0 6d 65 6e 75 24 3d 22 22 0d 07 b2 29 6d 65 6e 75 |menu$=""...)menu| 000015d0 70 74 72 21 2d 32 34 3d 28 6d 65 6e 75 70 74 72 |ptr!-24=(menuptr| 000015e0 21 2d 32 34 29 20 84 20 25 31 30 30 30 30 30 30 |!-24) . %1000000| 000015f0 30 0d 07 bc 0c 3d 6f 6c 64 6d 65 6e 75 0d 07 c6 |0....=oldmenu...| 00001600 0f dd f2 74 68 69 6e 67 28 6d 24 29 0d 07 d0 16 |...thing(m$)....| 00001610 6d 24 3d c0 6d 24 2c a7 6d 24 2c 22 2c 22 29 2d |m$=.m$,.m$,",")-| 00001620 31 29 0d 07 da 0f 69 24 3d 22 22 3a 6a 24 3d 22 |1)....i$="":j$="| 00001630 22 0d 07 e4 12 e7 20 a7 6d 24 2c 22 7b 22 29 3e |"..... .m$,"{")>| 00001640 30 20 8c 0d 07 ee 16 69 24 3d c0 6d 24 2c a7 6d |0 .....i$=.m$,.m| 00001650 24 2c 22 7d 22 29 2d 31 29 0d 07 f8 16 6d 24 3d |$,"}")-1)....m$=| 00001660 c1 6d 24 2c a7 6d 24 2c 22 7d 22 29 2b 31 29 0d |.m$,.m$,"}")+1).| 00001670 08 02 16 6a 24 3d c0 69 24 2c a7 69 24 2c 22 7c |...j$=.i$,.i$,"|| 00001680 22 29 2d 31 29 0d 08 0c 16 69 24 3d c1 69 24 2c |")-1)....i$=.i$,| 00001690 a7 69 24 2c 22 7c 22 29 2b 31 29 0d 08 16 05 cd |.i$,"|")+1).....| 000016a0 0d 08 20 13 69 6a 61 63 6b 3d 26 30 37 30 30 30 |.. .ijack=&07000| 000016b0 30 32 31 0d 08 2a 0b 6d 6a 61 63 6b 3d 30 0d 08 |021..*.mjack=0..| 000016c0 34 0e 73 75 62 6d 65 6e 75 3d 2d 31 0d 08 3e 20 |4.submenu=-1..> | 000016d0 e7 20 a7 6a 24 2c 22 62 22 29 3e 30 20 8c 20 73 |. .j$,"b")>0 . s| 000016e0 75 62 6d 65 6e 75 3d a0 28 69 24 29 0d 08 48 22 |ubmenu=.(i$)..H"| 000016f0 e7 20 a7 6a 24 2c 22 5f 22 29 3e 30 20 8c 20 6d |. .j$,"_")>0 . m| 00001700 6a 61 63 6b 3d 6d 6a 61 63 6b 20 84 20 32 0d 08 |jack=mjack . 2..| 00001710 52 22 e7 20 a7 6a 24 2c 22 80 22 29 3e 30 20 8c |R". .j$,".")>0 .| 00001720 20 6d 6a 61 63 6b 3d 6d 6a 61 63 6b 20 84 20 31 | mjack=mjack . 1| 00001730 0d 08 5c 30 e7 20 a7 6a 24 2c 22 75 22 29 3e 30 |..\0. .j$,"u")>0| 00001740 20 8c 20 6d 6a 61 63 6b 3d 6d 6a 61 63 6b 20 84 | . mjack=mjack .| 00001750 20 32 3a 73 75 62 6d 65 6e 75 3d a0 28 69 24 29 | 2:submenu=.(i$)| 00001760 0d 08 66 12 21 6d 65 6e 75 70 74 72 3d 6d 6a 61 |..f.!menuptr=mja| 00001770 63 6b 0d 08 70 15 6d 65 6e 75 70 74 72 21 34 3d |ck..p.menuptr!4=| 00001780 73 75 62 6d 65 6e 75 0d 08 7a 13 6d 65 6e 75 70 |submenu..z.menup| 00001790 74 72 21 38 3d 69 6a 61 63 6b 0d 08 84 14 24 28 |tr!8=ijack....$(| 000017a0 6d 65 6e 75 70 74 72 2b 31 32 29 3d 6d 24 0d 08 |menuptr+12)=m$..| 000017b0 8e 05 cd 0d 08 98 05 e1 0d 08 a2 12 dd f2 63 6c |..............cl| 000017c0 69 63 6b 28 62 6c 6f 63 6b 29 0d 08 ac 13 6b 65 |ick(block)....ke| 000017d0 65 70 62 25 3d 62 6c 6f 63 6b 21 31 32 0d 08 b6 |epb%=block!12...| 000017e0 2a e7 20 a4 63 68 65 63 6b 69 74 28 62 6c 6f 63 |*. .checkit(bloc| 000017f0 6b 21 31 32 2c 62 6c 6f 63 6b 21 31 36 29 3d 39 |k!12,block!16)=9| 00001800 38 33 30 34 30 20 8c 0d 08 c0 24 f2 73 6c 61 62 |83040 ....$.slab| 00001810 69 6e 28 6b 65 65 70 62 25 29 3a f2 73 6c 61 62 |in(keepb%):.slab| 00001820 6f 75 74 28 6b 65 65 70 62 25 29 0d 08 ca 05 cd |out(keepb%).....| 00001830 0d 08 d4 2b e7 20 73 68 75 74 64 6f 77 6e 73 61 |...+. shutdownsa| 00001840 76 65 20 8c 20 71 75 69 74 69 6e 3d a3 3a f2 63 |ve . quitin=.:.c| 00001850 6c 6f 73 65 28 71 75 69 74 25 29 0d 08 de 27 e7 |lose(quit%)...'.| 00001860 20 62 6c 6f 63 6b 21 31 32 3d 2d 32 20 80 20 62 | block!12=-2 . b| 00001870 6c 6f 63 6b 21 38 3d 32 20 f2 63 6d 65 6e 75 73 |lock!8=2 .cmenus| 00001880 3a e1 0d 08 e8 36 e7 20 62 6c 6f 63 6b 21 31 32 |:....6. block!12| 00001890 3d 2d 32 20 80 20 62 6c 6f 63 6b 21 38 3d 34 20 |=-2 . block!8=4 | 000018a0 f2 6f 70 65 6e 77 69 6e 28 63 69 72 63 75 69 74 |.openwin(circuit| 000018b0 25 29 3a f2 70 61 6e 65 0d 08 f2 51 e7 20 62 6c |%):.pane...Q. bl| 000018c0 6f 63 6b 21 31 32 3d 73 61 76 65 25 20 80 20 62 |ock!12=save% . b| 000018d0 6c 6f 63 6b 21 31 36 3d 32 20 77 69 6e 73 61 76 |lock!16=2 winsav| 000018e0 65 25 3d 62 6c 6f 63 6b 21 31 32 3a 66 69 6c 65 |e%=block!12:file| 000018f0 74 79 70 65 24 3d 22 66 69 6c 65 5f 41 46 46 22 |type$="file_AFF"| 00001900 3a f2 64 65 66 73 61 76 65 0d 08 fc 52 e7 20 62 |:.defsave...R. b| 00001910 6c 6f 63 6b 21 31 32 3d 73 61 76 65 64 25 20 80 |lock!12=saved% .| 00001920 20 62 6c 6f 63 6b 21 31 36 3d 32 20 77 69 6e 73 | block!16=2 wins| 00001930 61 76 65 25 3d 62 6c 6f 63 6b 21 31 32 3a 66 69 |ave%=block!12:fi| 00001940 6c 65 74 79 70 65 24 3d 22 66 69 6c 65 5f 30 30 |letype$="file_00| 00001950 43 22 3a f2 64 65 66 73 61 76 65 0d 09 06 4d e7 |C":.defsave...M.| 00001960 20 62 6c 6f 63 6b 21 31 32 3d 73 61 76 65 25 20 | block!12=save% | 00001970 80 20 62 6c 6f 63 6b 21 31 36 3d 30 20 77 69 6e |. block!16=0 win| 00001980 73 61 76 65 25 3d 62 6c 6f 63 6b 21 31 32 3a f2 |save%=block!12:.| 00001990 73 61 76 65 28 24 a4 69 6e 66 6f 28 77 69 6e 73 |save($.info(wins| 000019a0 61 76 65 25 2c 31 29 29 0d 09 10 4e e7 20 62 6c |ave%,1))...N. bl| 000019b0 6f 63 6b 21 31 32 3d 73 61 76 65 64 25 20 80 20 |ock!12=saved% . | 000019c0 62 6c 6f 63 6b 21 31 36 3d 30 20 77 69 6e 73 61 |block!16=0 winsa| 000019d0 76 65 25 3d 62 6c 6f 63 6b 21 31 32 3a f2 73 61 |ve%=block!12:.sa| 000019e0 76 65 28 24 a4 69 6e 66 6f 28 77 69 6e 73 61 76 |ve($.info(winsav| 000019f0 65 25 2c 31 29 29 0d 09 1a 2e e7 20 62 6c 6f 63 |e%,1))..... bloc| 00001a00 6b 21 31 32 3d 67 72 69 64 25 20 80 20 62 6c 6f |k!12=grid% . blo| 00001a10 63 6b 21 31 36 3d 37 20 8c 20 f2 67 72 69 64 28 |ck!16=7 . .grid(| 00001a20 30 2c 38 29 0d 09 24 2e e7 20 62 6c 6f 63 6b 21 |0,8)..$.. block!| 00001a30 31 32 3d 67 72 69 64 25 20 80 20 62 6c 6f 63 6b |12=grid% . block| 00001a40 21 31 36 3d 36 20 8c 20 f2 67 72 69 64 28 31 2c |!16=6 . .grid(1,| 00001a50 38 29 0d 09 2e 2e e7 20 62 6c 6f 63 6b 21 31 32 |8)..... block!12| 00001a60 3d 67 72 69 64 25 20 80 20 62 6c 6f 63 6b 21 31 |=grid% . block!1| 00001a70 36 3d 33 20 8c 20 f2 67 72 69 64 28 32 2c 35 29 |6=3 . .grid(2,5)| 00001a80 0d 09 38 2e e7 20 62 6c 6f 63 6b 21 31 32 3d 67 |..8.. block!12=g| 00001a90 72 69 64 25 20 80 20 62 6c 6f 63 6b 21 31 36 3d |rid% . block!16=| 00001aa0 34 20 8c 20 f2 67 72 69 64 28 33 2c 35 29 0d 09 |4 . .grid(3,5)..| 00001ab0 42 32 e7 20 62 6c 6f 63 6b 21 31 32 3d 73 63 72 |B2. block!12=scr| 00001ac0 6f 6c 6c 25 20 80 20 62 6c 6f 63 6b 21 31 36 3d |oll% . block!16=| 00001ad0 31 20 8c 20 f2 73 63 72 6f 6c 6c 28 30 2c 31 29 |1 . .scroll(0,1)| 00001ae0 0d 09 4c 33 e7 20 62 6c 6f 63 6b 21 31 32 3d 73 |..L3. block!12=s| 00001af0 63 72 6f 6c 6c 25 20 80 20 62 6c 6f 63 6b 21 31 |croll% . block!1| 00001b00 36 3d 32 20 8c 20 f2 73 63 72 6f 6c 6c 28 30 2c |6=2 . .scroll(0,| 00001b10 2d 31 29 0d 09 56 32 e7 20 62 6c 6f 63 6b 21 31 |-1)..V2. block!1| 00001b20 32 3d 73 63 72 6f 6c 6c 25 20 80 20 62 6c 6f 63 |2=scroll% . bloc| 00001b30 6b 21 31 36 3d 33 20 8c 20 f2 73 63 72 6f 6c 6c |k!16=3 . .scroll| 00001b40 28 31 2c 30 29 0d 09 60 33 e7 20 62 6c 6f 63 6b |(1,0)..`3. block| 00001b50 21 31 32 3d 73 63 72 6f 6c 6c 25 20 80 20 62 6c |!12=scroll% . bl| 00001b60 6f 63 6b 21 31 36 3d 34 20 8c 20 f2 73 63 72 6f |ock!16=4 . .scro| 00001b70 6c 6c 28 2d 31 2c 30 29 0d 09 6a 3f e7 20 62 6c |ll(-1,0)..j?. bl| 00001b80 6f 63 6b 21 31 32 3d 74 6f 6f 6c 73 25 20 8c 20 |ock!12=tools% . | 00001b90 74 6f 6f 6c 24 3d 24 a4 73 70 72 69 6e 66 6f 28 |tool$=$.sprinfo(| 00001ba0 74 6f 6f 6c 73 25 2c 62 6c 6f 63 6b 21 31 36 29 |tools%,block!16)| 00001bb0 3a 74 65 78 74 3d a3 0d 09 74 71 e7 20 62 6c 6f |:text=...tq. blo| 00001bc0 63 6b 21 31 32 3d 63 69 72 63 75 69 74 25 20 80 |ck!12=circuit% .| 00001bd0 20 62 6c 6f 63 6b 21 38 3d 34 20 80 20 ac 20 74 | block!8=4 . . t| 00001be0 65 78 74 20 80 20 74 6f 6f 6c 24 3c 3e 22 70 74 |ext . tool$<>"pt| 00001bf0 72 5f 78 74 65 78 74 22 20 8c 20 76 78 3d 62 6c |r_xtext" . vx=bl| 00001c00 6f 63 6b 21 30 3a 76 79 3d 62 6c 6f 63 6b 21 34 |ock!0:vy=block!4| 00001c10 3a f2 64 6f 69 74 28 76 78 2c 76 79 2c 62 6c 6f |:.doit(vx,vy,blo| 00001c20 63 6b 21 31 32 29 3a e1 0d 09 7e 43 e7 20 62 6c |ck!12):...~C. bl| 00001c30 6f 63 6b 21 31 32 3d 63 69 72 63 75 69 74 25 20 |ock!12=circuit% | 00001c40 80 20 62 6c 6f 63 6b 21 38 3d 34 20 80 20 74 65 |. block!8=4 . te| 00001c50 78 74 20 f2 64 6f 74 65 78 74 28 62 6c 6f 63 6b |xt .dotext(block| 00001c60 21 30 2c 62 6c 6f 63 6b 21 34 29 0d 09 88 5f e7 |!0,block!4)..._.| 00001c70 20 62 6c 6f 63 6b 21 31 32 3d 63 69 72 63 75 69 | block!12=circui| 00001c80 74 25 20 80 20 62 6c 6f 63 6b 21 38 3d 31 20 80 |t% . block!8=1 .| 00001c90 20 74 6f 6f 6c 24 3d 22 70 74 72 5f 78 74 65 78 | tool$="ptr_xtex| 00001ca0 74 22 20 8c 20 76 78 3d 62 6c 6f 63 6b 21 30 3a |t" . vx=block!0:| 00001cb0 76 79 3d 62 6c 6f 63 6b 21 34 3a f2 64 65 6c 74 |vy=block!4:.delt| 00001cc0 65 78 74 28 76 78 2c 76 79 29 0d 09 92 2d e7 20 |ext(vx,vy)...-. | 00001cd0 62 6c 6f 63 6b 21 31 32 3d 63 69 72 63 75 69 74 |block!12=circuit| 00001ce0 25 20 80 20 62 6c 6f 63 6b 21 38 3d 32 20 8c 20 |% . block!8=2 . | 00001cf0 f2 63 6d 65 6e 75 73 0d 09 9c 3f e7 20 62 6c 6f |.cmenus...?. blo| 00001d00 63 6b 21 31 32 3d 6c 69 6e 65 73 25 20 8c 20 74 |ck!12=lines% . t| 00001d10 6f 6f 6c 24 3d 24 a4 73 70 72 69 6e 66 6f 28 6c |ool$=$.sprinfo(l| 00001d20 69 6e 65 73 25 2c 62 6c 6f 63 6b 21 31 36 29 3a |ines%,block!16):| 00001d30 74 65 78 74 3d a3 0d 09 a6 68 e7 20 62 6c 6f 63 |text=....h. bloc| 00001d40 6b 21 31 32 3d 63 69 72 63 75 69 74 25 20 80 20 |k!12=circuit% . | 00001d50 62 6c 6f 63 6b 21 38 3d 31 20 80 20 ac 20 74 65 |block!8=1 . . te| 00001d60 78 74 20 80 20 74 6f 6f 6c 24 3c 3e 22 70 74 72 |xt . tool$<>"ptr| 00001d70 5f 78 74 65 78 74 22 20 8c 20 f2 63 6c 65 61 72 |_xtext" . .clear| 00001d80 69 74 28 62 6c 6f 63 6b 21 30 2c 62 6c 6f 63 6b |it(block!0,block| 00001d90 21 34 2c 62 6c 6f 63 6b 21 31 32 29 3a e1 0d 09 |!4,block!12):...| 00001da0 b0 3f e7 20 62 6c 6f 63 6b 21 31 32 3d 74 6f 6f |.?. block!12=too| 00001db0 6c 62 6f 78 25 20 80 20 62 6c 6f 63 6b 21 31 36 |lbox% . block!16| 00001dc0 3d 30 20 8c 20 f2 67 6f 74 65 78 74 28 62 6c 6f |=0 . .gotext(blo| 00001dd0 63 6b 21 30 2c 62 6c 6f 63 6b 21 34 29 0d 09 ba |ck!0,block!4)...| 00001de0 35 e7 20 62 6c 6f 63 6b 21 31 32 3d 74 6f 6f 6c |5. block!12=tool| 00001df0 62 6f 78 25 20 80 20 62 6c 6f 63 6b 21 31 36 3d |box% . block!16=| 00001e00 31 20 f2 6f 70 65 6e 77 69 6e 28 74 6f 6f 6c 73 |1 .openwin(tools| 00001e10 25 29 0d 09 c4 35 e7 20 62 6c 6f 63 6b 21 31 32 |%)...5. block!12| 00001e20 3d 74 6f 6f 6c 62 6f 78 25 20 80 20 62 6c 6f 63 |=toolbox% . bloc| 00001e30 6b 21 31 36 3d 32 20 f2 6f 70 65 6e 77 69 6e 28 |k!16=2 .openwin(| 00001e40 6c 69 6e 65 73 25 29 0d 09 ce 2e e7 20 62 6c 6f |lines%)..... blo| 00001e50 63 6b 21 31 32 3d 74 6f 6f 6c 62 6f 78 25 20 80 |ck!12=toolbox% .| 00001e60 20 62 6c 6f 63 6b 21 31 36 3d 33 20 f2 63 6c 65 | block!16=3 .cle| 00001e70 61 72 61 6c 6c 0d 09 d8 8f e7 20 62 6c 6f 63 6b |arall..... block| 00001e80 21 31 32 3d 74 6f 6f 6c 62 6f 78 25 20 80 20 62 |!12=toolbox% . b| 00001e90 6c 6f 63 6b 21 31 36 3d 38 20 80 20 74 6f 6f 6c |lock!16=8 . tool| 00001ea0 24 3c 3e 22 70 74 72 5f 78 74 65 78 74 22 20 8c |$<>"ptr_xtext" .| 00001eb0 20 56 6f 6c 64 74 6f 6f 6c 24 3d 74 6f 6f 6c 24 | Voldtool$=tool$| 00001ec0 3a 74 6f 6f 6c 24 3d 22 70 74 72 5f 78 74 65 78 |:tool$="ptr_xtex| 00001ed0 74 22 3a 24 70 6f 69 6e 74 25 3d 74 6f 6f 6c 24 |t":$point%=tool$| 00001ee0 3a c8 99 20 22 57 69 6d 70 5f 53 70 72 69 74 65 |:.. "Wimp_Sprite| 00001ef0 4f 70 22 2c 33 36 2c 2c 70 6f 69 6e 74 25 2c 31 |Op",36,,point%,1| 00001f00 2c 30 2c 30 0d 09 e2 39 e7 20 62 6c 6f 63 6b 21 |,0,0...9. block!| 00001f10 31 32 3d 71 75 65 72 79 25 20 80 20 62 6c 6f 63 |12=query% . bloc| 00001f20 6b 21 31 36 3d 30 20 8c 20 f2 63 6c 6f 73 65 28 |k!16=0 . .close(| 00001f30 71 75 65 72 79 25 29 3a f2 65 6e 64 71 0d 09 ec |query%):.endq...| 00001f40 0f e7 20 70 72 65 71 75 69 74 20 8c 0d 09 f6 61 |.. prequit ....a| 00001f50 e7 20 62 6c 6f 63 6b 21 31 32 3d 71 75 69 74 25 |. block!12=quit%| 00001f60 20 80 20 62 6c 6f 63 6b 21 31 36 3d 30 20 8c 20 | . block!16=0 . | 00001f70 c8 99 22 57 69 6d 70 5f 50 72 6f 63 65 73 73 4b |.."Wimp_ProcessK| 00001f80 65 79 22 2c 26 31 46 43 3a c8 99 72 65 69 6e 74 |ey",&1FC:..reint| 00001f90 65 72 2c 6d 79 74 61 73 6b 25 3a c8 99 22 57 69 |er,mytask%:.."Wi| 00001fa0 6d 70 5f 43 6c 6f 73 65 44 6f 77 6e 22 0d 0a 00 |mp_CloseDown"...| 00001fb0 3b e7 20 62 6c 6f 63 6b 21 31 32 3d 71 75 69 74 |;. block!12=quit| 00001fc0 25 20 80 20 62 6c 6f 63 6b 21 31 36 3d 32 20 8c |% . block!16=2 .| 00001fd0 20 f2 63 6c 6f 73 65 28 71 75 69 74 25 29 3a 70 | .close(quit%):p| 00001fe0 72 65 71 75 69 74 3d a3 0d 0a 0a 50 e7 20 62 6c |requit=....P. bl| 00001ff0 6f 63 6b 21 31 32 3d 71 75 69 74 25 20 80 20 62 |ock!12=quit% . b| 00002000 6c 6f 63 6b 21 31 36 3d 33 20 8c 20 f2 63 6c 6f |lock!16=3 . .clo| 00002010 73 65 28 71 75 69 74 25 29 3a f2 6f 70 65 6e 77 |se(quit%):.openw| 00002020 69 6e 28 73 61 76 65 64 25 29 3a 70 72 65 71 75 |in(saved%):prequ| 00002030 69 74 73 61 76 65 3d b9 0d 0a 14 27 e7 20 70 72 |itsave=....'. pr| 00002040 65 71 75 69 74 20 80 20 ac 20 70 72 65 71 75 69 |equit . . prequi| 00002050 74 73 61 76 65 20 70 72 65 71 75 69 74 3d a3 0d |tsave prequit=..| 00002060 0a 1e 05 cc 0d 0a 28 48 e7 20 62 6c 6f 63 6b 21 |......(H. block!| 00002070 31 32 3d 71 75 69 74 25 20 80 20 62 6c 6f 63 6b |12=quit% . block| 00002080 21 31 36 3d 30 20 8c 20 c8 99 72 65 69 6e 74 65 |!16=0 . ..reinte| 00002090 72 2c 6d 79 74 61 73 6b 25 3a c8 99 22 57 69 6d |r,mytask%:.."Wim| 000020a0 70 5f 43 6c 6f 73 65 44 6f 77 6e 22 0d 0a 32 31 |p_CloseDown"..21| 000020b0 e7 20 62 6c 6f 63 6b 21 31 32 3d 71 75 69 74 25 |. block!12=quit%| 000020c0 20 80 20 62 6c 6f 63 6b 21 31 36 3d 32 20 8c 20 | . block!16=2 . | 000020d0 f2 63 6c 6f 73 65 28 71 75 69 74 25 29 0d 0a 3c |.close(quit%)..<| 000020e0 51 e7 20 62 6c 6f 63 6b 21 31 32 3d 71 75 69 74 |Q. block!12=quit| 000020f0 25 20 80 20 62 6c 6f 63 6b 21 31 36 3d 33 20 8c |% . block!16=3 .| 00002100 20 f2 63 6c 6f 73 65 28 71 75 69 74 25 29 3a f2 | .close(quit%):.| 00002110 6f 70 65 6e 77 69 6e 28 73 61 76 65 64 25 29 3a |openwin(saved%):| 00002120 73 68 75 74 64 6f 77 6e 73 61 76 65 3d b9 0d 0a |shutdownsave=...| 00002130 46 05 cd 0d 0a 50 05 e1 0d 0a 5a 0d dd f2 70 72 |F....P....Z...pr| 00002140 6f 63 65 73 73 0d 0a 64 2c e7 20 21 62 6c 6f 63 |ocess..d,. !bloc| 00002150 6b 3d 63 69 72 63 75 69 74 25 20 80 20 62 6c 6f |k=circuit% . blo| 00002160 63 6b 21 32 34 3d 31 33 20 8c 20 f2 63 61 72 65 |ck!24=13 . .care| 00002170 74 0d 0a 6e 20 c8 99 22 57 69 6d 70 5f 50 72 6f |t..n .."Wimp_Pro| 00002180 63 65 73 73 4b 65 79 22 2c 62 6c 6f 63 6b 21 32 |cessKey",block!2| 00002190 34 0d 0a 78 05 e1 0d 0a 82 0b dd f2 63 61 72 65 |4..x........care| 000021a0 74 0d 0a 8c 24 c8 99 22 57 69 6d 70 5f 47 65 74 |t...$.."Wimp_Get| 000021b0 43 61 72 65 74 50 6f 73 69 74 69 6f 6e 22 2c 2c |CaretPosition",,| 000021c0 62 6c 6f 63 6b 0d 0a 96 19 e7 20 21 62 6c 6f 63 |block..... !bloc| 000021d0 6b 3d 63 69 72 63 75 69 74 25 20 8c 20 e1 0d 0a |k=circuit% . ...| 000021e0 a0 05 e1 0d 0a aa 0c dd f2 73 65 6c 65 63 74 0d |.........select.| 000021f0 0a b4 0b 6e 6f 77 61 79 3d 30 0d 0a be 2e c8 99 |...noway=0......| 00002200 22 57 69 6d 70 5f 44 65 63 6f 64 65 4d 65 6e 75 |"Wimp_DecodeMenu| 00002210 22 2c 2c 6f 70 65 6e 6d 65 6e 75 25 2c 62 6c 6f |",,openmenu%,blo| 00002220 63 6b 2c 69 63 6f 6e 64 0d 0a c8 31 e7 20 24 69 |ck,icond...1. $i| 00002230 63 6f 6e 64 3d 22 51 75 69 74 22 20 8c 20 f2 61 |cond="Quit" . .a| 00002240 72 65 79 6f 75 73 75 72 65 3a 73 68 75 74 64 6f |reyousure:shutdo| 00002250 77 6e 73 61 76 65 25 3d b9 0d 0a d2 40 e7 20 24 |wnsave%=....@. $| 00002260 69 63 6f 6e 64 3d 22 54 6f 6f 6c 73 22 20 80 20 |icond="Tools" . | 00002270 74 6f 6f 6c 73 6f 6e 20 8c 20 74 6f 6f 6c 73 6f |toolson . toolso| 00002280 6e 3d a3 3a f2 74 6f 6f 6c 62 6f 78 28 2d 31 29 |n=.:.toolbox(-1)| 00002290 3a 6e 6f 77 61 79 3d 2d 31 0d 0a dc 42 e7 20 24 |:noway=-1...B. $| 000022a0 69 63 6f 6e 64 3d 22 54 6f 6f 6c 73 22 20 80 20 |icond="Tools" . | 000022b0 ac 20 74 6f 6f 6c 73 6f 6e 20 80 20 6e 6f 77 61 |. toolson . nowa| 000022c0 79 3d 30 20 8c 20 74 6f 6f 6c 73 6f 6e 3d b9 3a |y=0 . toolson=.:| 000022d0 f2 74 6f 6f 6c 62 6f 78 28 31 29 0d 0a e6 2c e7 |.toolbox(1)...,.| 000022e0 20 24 69 63 6f 6e 64 3d 22 43 6f 6d 70 6f 6e 65 | $icond="Compone| 000022f0 6e 74 73 22 20 8c 20 f2 6f 70 65 6e 77 69 6e 28 |nts" . .openwin(| 00002300 74 6f 6f 6c 73 25 29 0d 0a f0 27 e7 20 24 69 63 |tools%)...'. $ic| 00002310 6f 6e 64 3d 22 4c 69 6e 65 73 22 20 8c 20 f2 6f |ond="Lines" . .o| 00002320 70 65 6e 77 69 6e 28 6c 69 6e 65 73 25 29 0d 0a |penwin(lines%)..| 00002330 fa 2b e7 20 24 69 63 6f 6e 64 3d 22 43 69 72 63 |.+. $icond="Circ| 00002340 75 69 74 22 20 8c 20 f2 6f 70 65 6e 77 69 6e 28 |uit" . .openwin(| 00002350 63 69 72 63 75 69 74 25 29 0d 0b 04 22 c8 99 22 |circuit%)...".."| 00002360 57 69 6d 70 5f 47 65 74 50 6f 69 6e 74 65 72 49 |Wimp_GetPointerI| 00002370 6e 66 6f 22 2c 2c 62 6c 6f 63 6b 0d 0b 0e 11 e7 |nfo",,block.....| 00002380 20 62 6c 6f 63 6b 21 38 3d 31 20 8c 0d 0b 18 1c | block!8=1 .....| 00002390 e7 20 6d 65 6e 75 6f 70 65 6e 3d 2d 34 34 20 8c |. menuopen=-44 .| 000023a0 20 f2 63 6d 65 6e 75 73 0d 0b 22 22 c8 99 22 57 | .cmenus.."".."W| 000023b0 69 6d 70 5f 43 72 65 61 74 65 4d 65 6e 75 22 2c |imp_CreateMenu",| 000023c0 2c 6f 70 65 6e 6d 65 6e 75 25 0d 0b 2c 05 cc 0d |,openmenu%..,...| 000023d0 0b 36 1b c8 99 22 57 69 6d 70 5f 43 72 65 61 74 |.6..."Wimp_Creat| 000023e0 65 4d 65 6e 75 22 2c 2c 2d 31 0d 0b 40 05 cd 0d |eMenu",,-1..@...| 000023f0 0b 4a 05 e1 0d 0b 54 13 dd f2 67 72 69 64 28 64 |.J....T...grid(d| 00002400 69 72 2c 69 63 6e 29 0d 0b 5e 1b 6e 75 6d 62 3d |ir,icn)..^.numb=| 00002410 bb 24 a4 69 6e 66 6f 28 67 72 69 64 25 2c 69 63 |.$.info(grid%,ic| 00002420 6e 29 0d 0b 68 11 e7 20 6e 75 6d 62 3d 33 30 20 |n)..h.. numb=30 | 00002430 8c 20 e1 0d 0b 72 10 e7 20 6e 75 6d 62 3d 35 20 |. ...r.. numb=5 | 00002440 8c 20 e1 0d 0b 7c 0c c8 8e 20 64 69 72 20 ca 0d |. ...|... dir ..| 00002450 0b 86 24 c9 20 30 3a f4 20 75 70 3b 49 46 20 6e |..$. 0:. up;IF n| 00002460 75 6d 62 3d 33 30 20 54 48 45 4e 20 45 4e 44 50 |umb=30 THEN ENDP| 00002470 52 4f 43 0d 0b 90 33 f2 69 6e 66 6f 28 67 72 69 |ROC...3.info(gri| 00002480 64 25 2c 69 63 6e 2c c3 28 6e 75 6d 62 2b 31 29 |d%,icn,.(numb+1)| 00002490 29 3a 67 72 69 64 79 3d 6e 75 6d 62 2b 31 3a 61 |):gridy=numb+1:a| 000024a0 6c 74 65 72 3d 31 0d 0b 9a 25 c9 20 31 3a f4 20 |lter=1...%. 1:. | 000024b0 64 6f 77 6e 3a 49 46 20 6e 75 6d 62 3d 35 20 54 |down:IF numb=5 T| 000024c0 48 45 4e 20 45 4e 44 50 52 4f 43 0d 0b a4 34 f2 |HEN ENDPROC...4.| 000024d0 69 6e 66 6f 28 67 72 69 64 25 2c 69 63 6e 2c c3 |info(grid%,icn,.| 000024e0 28 6e 75 6d 62 2d 31 29 29 3a 67 72 69 64 79 3d |(numb-1)):gridy=| 000024f0 6e 75 6d 62 2d 31 3a 61 6c 74 65 72 3d 2d 31 0d |numb-1:alter=-1.| 00002500 0b ae 26 c9 20 32 3a f4 20 73 6d 61 6c 6c 3a 49 |..&. 2:. small:I| 00002510 46 20 6e 75 6d 62 3d 35 20 54 48 45 4e 20 45 4e |F numb=5 THEN EN| 00002520 44 50 52 4f 43 0d 0b b8 34 f2 69 6e 66 6f 28 67 |DPROC...4.info(g| 00002530 72 69 64 25 2c 69 63 6e 2c c3 28 6e 75 6d 62 2d |rid%,icn,.(numb-| 00002540 31 29 29 3a 67 72 69 64 78 3d 6e 75 6d 62 2d 31 |1)):gridx=numb-1| 00002550 3a 61 6c 74 65 72 3d 2d 31 0d 0b c2 27 c9 20 33 |:alter=-1...'. 3| 00002560 3a f4 20 77 69 64 65 72 3a 49 46 20 6e 75 6d 62 |:. wider:IF numb| 00002570 3d 33 30 20 54 48 45 4e 20 45 4e 44 50 52 4f 43 |=30 THEN ENDPROC| 00002580 0d 0b cc 33 f2 69 6e 66 6f 28 67 72 69 64 25 2c |...3.info(grid%,| 00002590 69 63 6e 2c c3 28 6e 75 6d 62 2b 31 29 29 3a 67 |icn,.(numb+1)):g| 000025a0 72 69 64 78 3d 6e 75 6d 62 2b 31 3a 61 6c 74 65 |ridx=numb+1:alte| 000025b0 72 3d 32 0d 0b d6 05 cb 0d 0b e0 20 f2 61 6c 74 |r=2........ .alt| 000025c0 65 72 77 69 6e 28 67 72 69 64 78 2c 67 72 69 64 |erwin(gridx,grid| 000025d0 79 2c 61 6c 74 65 72 29 0d 0b ea 05 e1 0d 0b f4 |y,alter)........| 000025e0 27 dd f2 61 6c 74 65 72 77 69 6e 28 6e 65 77 67 |'..alterwin(newg| 000025f0 72 69 64 78 2c 6e 65 77 67 72 69 64 79 2c 61 6c |ridx,newgridy,al| 00002600 74 65 72 29 0d 0b fe 0f e7 20 61 6c 74 65 72 3d |ter)..... alter=| 00002610 32 20 8c 0d 0c 08 16 e3 20 49 3d 30 20 b8 20 6e |2 ...... I=0 . n| 00002620 65 77 67 72 69 64 79 2d 31 0d 0c 12 1a 70 73 65 |ewgridy-1....pse| 00002630 74 24 28 6e 65 77 67 72 69 64 78 2d 31 2c 49 29 |t$(newgridx-1,I)| 00002640 3d 22 22 0d 0c 1c 05 ed 0d 0c 26 05 cd 0d 0c 30 |="".......&....0| 00002650 0f e7 20 61 6c 74 65 72 3d 31 20 8c 0d 0c 3a 16 |.. alter=1 ...:.| 00002660 e3 20 49 3d 30 20 b8 20 6e 65 77 67 72 69 64 78 |. I=0 . newgridx| 00002670 2b 31 0d 0c 44 1a 70 73 65 74 24 28 49 2c 6e 65 |+1..D.pset$(I,ne| 00002680 77 67 72 69 64 79 2d 31 29 3d 22 22 0d 0c 4e 05 |wgridy-1)=""..N.| 00002690 ed 0d 0c 58 05 cd 0d 0c 62 46 62 6c 6f 63 6b 21 |...X....bFblock!| 000026a0 36 34 3d 30 3a 62 6c 6f 63 6b 21 36 38 3d 2d 28 |64=0:block!68=-(| 000026b0 6e 65 77 67 72 69 64 79 2a 36 32 29 3a 62 6c 6f |newgridy*62):blo| 000026c0 63 6b 21 37 32 3d 6e 65 77 67 72 69 64 78 2a 36 |ck!72=newgridx*6| 000026d0 32 3a 62 6c 6f 63 6b 21 37 36 3d 30 0d 0c 6c 29 |2:block!76=0..l)| 000026e0 c8 99 20 22 57 69 6d 70 5f 53 65 74 45 78 74 65 |.. "Wimp_SetExte| 000026f0 6e 74 22 2c 63 69 72 63 75 69 74 25 2c 62 6c 6f |nt",circuit%,blo| 00002700 63 6b 2b 36 34 0d 0c 76 13 21 62 6c 6f 63 6b 3d |ck+64..v.!block=| 00002710 63 69 72 63 75 69 74 25 0d 0c 80 22 c8 99 22 57 |circuit%...".."W| 00002720 69 6d 70 5f 47 65 74 57 69 6e 64 6f 77 53 74 61 |imp_GetWindowSta| 00002730 74 65 22 2c 2c 62 6c 6f 63 6b 0d 0c 8a 1b 6f 70 |te",,block....op| 00002740 65 6e 3d 62 6c 6f 63 6b 21 33 32 20 80 20 28 31 |en=block!32 . (1| 00002750 3c 3c 31 36 29 0d 0c 94 0f e7 20 6f 70 65 6e 3c |<<16)..... open<| 00002760 3e 30 20 8c 0d 0c 9e 1e c8 99 22 57 69 6d 70 5f |>0 ......."Wimp_| 00002770 4f 70 65 6e 57 69 6e 64 6f 77 22 2c 2c 62 6c 6f |OpenWindow",,blo| 00002780 63 6b 0d 0c a8 40 c8 99 22 57 69 6d 70 5f 46 6f |ck...@.."Wimp_Fo| 00002790 72 63 65 52 65 64 72 61 77 22 2c 63 69 72 63 75 |rceRedraw",circu| 000027a0 69 74 25 2c 30 2c 2d 28 6e 65 77 67 72 69 64 79 |it%,0,-(newgridy| 000027b0 2a 36 32 29 2c 6e 65 77 67 72 69 64 78 2a 36 32 |*62),newgridx*62| 000027c0 2c 30 0d 0c b2 05 cd 0d 0c bc 05 e1 0d 0c c6 11 |,0..............| 000027d0 dd f2 6d 65 73 73 28 6d 65 73 73 24 29 0d 0c d0 |..mess(mess$)...| 000027e0 20 21 69 63 6f 6e 64 3d 30 3a 24 28 69 63 6f 6e | !icond=0:$(icon| 000027f0 64 2b 34 29 3d 6d 65 73 73 24 2b bd 30 0d 0c da |d+4)=mess$+.0...| 00002800 2b c8 99 22 57 69 6d 70 5f 52 65 70 6f 72 74 45 |+.."Wimp_ReportE| 00002810 72 72 6f 72 22 2c 69 63 6f 6e 64 2c 31 2c 22 21 |rror",icond,1,"!| 00002820 43 69 72 63 75 69 74 22 0d 0c e4 05 e1 0d 0c ee |Circuit"........| 00002830 09 dd f2 6f 75 74 0d 0c f8 0f f2 64 72 61 67 73 |...out.....drags| 00002840 70 72 28 31 29 0d 0d 02 29 e7 20 77 69 6e 73 61 |pr(1)...). winsa| 00002850 76 65 25 3d 73 61 76 65 25 20 8c 20 73 74 65 78 |ve%=save% . stex| 00002860 74 3d 73 74 65 78 3a 66 74 3d 26 41 46 46 0d 0d |t=stex:ft=&AFF..| 00002870 0c 2b e7 20 77 69 6e 73 61 76 65 25 3d 73 61 76 |.+. winsave%=sav| 00002880 65 64 25 20 8c 20 73 74 65 78 74 3d 73 74 65 78 |ed% . stext=stex| 00002890 64 3a 66 74 3d 26 30 30 43 0d 0d 16 10 e7 20 64 |d:ft=&00C..... d| 000028a0 72 69 76 65 25 3d 31 20 8c 0d 0d 20 23 c8 99 20 |rive%=1 ... #.. | 000028b0 22 57 69 6d 70 5f 47 65 74 50 6f 69 6e 74 65 72 |"Wimp_GetPointer| 000028c0 49 6e 66 6f 22 2c 2c 62 6c 6f 63 6b 0d 0d 2a 39 |Info",,block..*9| 000028d0 54 6f 58 3d 62 6c 6f 63 6b 21 30 3a 54 6f 59 3d |ToX=block!0:ToY=| 000028e0 62 6c 6f 63 6b 21 34 3a 57 69 6e 64 6f 77 3d 62 |block!4:Window=b| 000028f0 6c 6f 63 6b 21 31 32 3a 49 63 6f 6e 3d 62 6c 6f |lock!12:Icon=blo| 00002900 63 6b 21 31 36 0d 0d 34 33 6d 62 6c 6f 63 6b 21 |ck!16..43mblock!| 00002910 30 3d 32 35 36 3a 6d 62 6c 6f 63 6b 21 31 32 3d |0=256:mblock!12=| 00002920 30 3a 6d 62 6c 6f 63 6b 21 31 36 3d 31 3a f4 20 |0:mblock!16=1:. | 00002930 44 61 74 61 53 61 76 65 0d 0d 3e 3f 6d 62 6c 6f |DataSave..>?mblo| 00002940 63 6b 21 32 30 3d 57 69 6e 64 6f 77 3a 6d 62 6c |ck!20=Window:mbl| 00002950 6f 63 6b 21 32 34 3d 49 63 6f 6e 3a 6d 62 6c 6f |ock!24=Icon:mblo| 00002960 63 6b 21 32 38 3d 54 6f 58 3a 6d 62 6c 6f 63 6b |ck!28=ToX:mblock| 00002970 21 33 32 3d 54 6f 59 0d 0d 48 37 6d 62 6c 6f 63 |!32=ToY..H7mbloc| 00002980 6b 21 33 36 3d 2d 31 3a f4 20 4e 6f 20 69 64 65 |k!36=-1:. No ide| 00002990 61 20 77 68 61 74 20 74 68 65 20 73 69 7a 65 20 |a what the size | 000029a0 69 73 20 67 6f 69 6e 67 20 74 6f 20 62 65 0d 0d |is going to be..| 000029b0 52 11 6d 62 6c 6f 63 6b 21 34 30 3d 66 74 3a 0d |R.mblock!40=ft:.| 000029c0 0d 5c 1d 24 73 74 65 78 74 3d 24 a4 69 6e 66 6f |.\.$stext=$.info| 000029d0 28 77 69 6e 73 61 76 65 25 2c 31 29 0d 0d 66 1b |(winsave%,1)..f.| 000029e0 24 73 74 65 78 74 3d a4 67 65 74 6c 65 61 66 28 |$stext=.getleaf(| 000029f0 24 73 74 65 78 74 29 0d 0d 70 29 e3 20 49 3d 30 |$stext)..p). I=0| 00002a00 20 b8 20 32 35 35 3a e7 20 49 3f 73 74 65 78 74 | . 255:. I?stext| 00002a10 3c 33 32 20 8c 20 49 3f 73 74 65 78 74 3d 31 33 |<32 . I?stext=13| 00002a20 0d 0d 7a 05 ed 0d 0d 84 20 24 28 6d 62 6c 6f 63 |..z..... $(mbloc| 00002a30 6b 2b 34 34 29 3d a4 62 69 74 28 24 73 74 65 78 |k+44)=.bit($stex| 00002a40 74 29 2b bd 30 0d 0d 8e 3a c8 99 20 22 57 69 6d |t)+.0...:.. "Wim| 00002a50 70 5f 53 65 6e 64 4d 65 73 73 61 67 65 22 2c 31 |p_SendMessage",1| 00002a60 37 2c 6d 62 6c 6f 63 6b 2c 57 69 6e 64 6f 77 2c |7,mblock,Window,| 00002a70 49 63 6f 6e 3a f4 20 44 61 74 61 53 61 76 65 0d |Icon:. DataSave.| 00002a80 0d 98 0b 64 72 61 67 25 3d 30 0d 0d a2 05 cd 0d |...drag%=0......| 00002a90 0d ac 05 e1 0d 0d b6 14 dd a4 67 65 74 6c 65 61 |..........getlea| 00002aa0 66 28 6c 65 61 66 24 29 0d 0d c0 12 c8 95 20 a7 |f(leaf$)...... .| 00002ab0 6c 65 61 66 24 2c 22 2e 22 29 0d 0d ca 1f 6c 65 |leaf$,".")....le| 00002ac0 61 66 24 3d c1 6c 65 61 66 24 2c a7 6c 65 61 66 |af$=.leaf$,.leaf| 00002ad0 24 2c 22 2e 22 29 2b 31 29 0d 0d d4 0c ce 3a 3d |$,".")+1).....:=| 00002ae0 6c 65 61 66 24 0d 0d de 0d dd f2 64 65 66 73 61 |leaf$......defsa| 00002af0 76 65 0d 0d e8 09 f2 4d 6f 64 65 0d 0d f2 13 21 |ve.....Mode....!| 00002b00 62 6c 6f 63 6b 3d 77 69 6e 73 61 76 65 25 0d 0d |block=winsave%..| 00002b10 fc 23 c8 99 20 22 57 69 6d 70 5f 47 65 74 57 69 |.#.. "Wimp_GetWi| 00002b20 6e 64 6f 77 53 74 61 74 65 22 2c 2c 62 6c 6f 63 |ndowState",,bloc| 00002b30 6b 0d 0e 06 1b 79 73 69 7a 65 25 3d 62 6c 6f 63 |k....ysize%=bloc| 00002b40 6b 21 31 36 2d 62 6c 6f 63 6b 21 38 0d 0e 10 23 |k!16-block!8...#| 00002b50 78 25 3d 62 6c 6f 63 6b 21 34 3a 79 25 3d 62 6c |x%=block!4:y%=bl| 00002b60 6f 63 6b 21 38 3a 62 6c 6f 63 6b 21 34 3d 32 0d |ock!8:block!4=2.| 00002b70 0e 1a 20 c8 99 22 57 69 6d 70 5f 47 65 74 49 63 |.. .."Wimp_GetIc| 00002b80 6f 6e 53 74 61 74 65 22 2c 2c 62 6c 6f 63 6b 0d |onState",,block.| 00002b90 0e 24 23 62 6c 6f 63 6b 21 38 2b 3d 78 25 3a 62 |.$#block!8+=x%:b| 00002ba0 6c 6f 63 6b 21 31 32 2b 3d 79 25 2b 79 73 69 7a |lock!12+=y%+ysiz| 00002bb0 65 25 0d 0e 2e 24 62 6c 6f 63 6b 21 31 36 2b 3d |e%...$block!16+=| 00002bc0 78 25 3a 62 6c 6f 63 6b 21 32 30 2b 3d 79 25 2b |x%:block!20+=y%+| 00002bd0 79 73 69 7a 65 25 0d 0e 38 35 62 6c 6f 63 6b 21 |ysize%..85block!| 00002be0 32 34 3d 30 3a 62 6c 6f 63 6b 21 32 38 3d 30 3a |24=0:block!28=0:| 00002bf0 62 6c 6f 63 6b 21 33 32 3d 78 6d 61 78 3a 62 6c |block!32=xmax:bl| 00002c00 6f 63 6b 21 33 36 3d 79 6d 61 78 0d 0e 42 27 21 |ock!36=ymax..B'!| 00002c10 62 6c 6f 63 6b 3d 30 3a 62 6c 6f 63 6b 21 34 3d |block=0:block!4=| 00002c20 35 3a 64 72 61 67 25 3d b9 3a 64 72 69 76 65 25 |5:drag%=.:drive%| 00002c30 3d 31 0d 0e 4c 0f e7 20 64 72 61 67 73 70 72 20 |=1..L.. dragspr | 00002c40 8c 0d 0e 56 38 c8 99 20 22 44 72 61 67 41 53 70 |...V8.. "DragASp| 00002c50 72 69 74 65 5f 53 74 61 72 74 22 2c 25 31 30 30 |rite_Start",%100| 00002c60 30 30 31 30 31 2c 31 2c 66 69 6c 65 74 79 70 65 |00101,1,filetype| 00002c70 24 2c 62 6c 6f 63 6b 2b 38 0d 0e 60 10 f2 64 72 |$,block+8..`..dr| 00002c80 61 67 73 70 72 28 2d 31 29 0d 0e 6a 05 cc 0d 0e |agspr(-1)..j....| 00002c90 74 1b c8 99 22 57 69 6d 70 5f 44 72 61 67 42 6f |t..."Wimp_DragBo| 00002ca0 78 22 2c 2c 62 6c 6f 63 6b 0d 0e 7e 05 cd 0d 0e |x",,block..~....| 00002cb0 88 05 e1 0d 0e 92 0a dd f2 4d 6f 64 65 0d 0e 9c |.........Mode...| 00002cc0 4d 21 62 6c 6f 63 6b 3d 31 33 30 3a 62 6c 6f 63 |M!block=130:bloc| 00002cd0 6b 21 34 3d 31 33 31 3a 62 6c 6f 63 6b 21 38 3d |k!4=131:block!8=| 00002ce0 2d 31 3a c8 99 22 4f 53 5f 52 65 61 64 56 64 75 |-1:.."OS_ReadVdu| 00002cf0 56 61 72 69 61 62 6c 65 73 22 2c 62 6c 6f 63 6b |Variables",block| 00002d00 2c 62 6c 6f 63 6b 2b 31 32 38 0d 0e a6 29 c8 99 |,block+128...)..| 00002d10 22 4f 53 5f 52 65 61 64 4d 6f 64 65 56 61 72 69 |"OS_ReadModeVari| 00002d20 61 62 6c 65 22 2c eb 2c 34 20 b8 20 2c 2c 58 65 |able",.,4 . ,,Xe| 00002d30 69 67 25 0d 0e b0 29 c8 99 22 4f 53 5f 52 65 61 |ig%...).."OS_Rea| 00002d40 64 4d 6f 64 65 56 61 72 69 61 62 6c 65 22 2c eb |dModeVariable",.| 00002d50 2c 35 20 b8 20 2c 2c 59 65 69 67 25 0d 0e ba 3d |,5 . ,,Yeig%...=| 00002d60 78 6d 61 78 3d 28 28 62 6c 6f 63 6b 21 31 32 38 |xmax=((block!128| 00002d70 29 2b 31 29 2a 32 5e 58 65 69 67 25 3a 79 6d 61 |)+1)*2^Xeig%:yma| 00002d80 78 3d 28 28 62 6c 6f 63 6b 21 31 33 32 29 2b 31 |x=((block!132)+1| 00002d90 29 2a 32 5e 59 65 69 67 25 0d 0e c4 05 e1 0d 0e |)*2^Yeig%.......| 00002da0 ce 11 dd f2 73 61 76 65 28 73 61 76 65 24 29 0d |....save(save$).| 00002db0 0e d8 7a e7 20 a7 73 61 76 65 24 2c 22 2e 22 29 |..z. .save$,".")| 00002dc0 3c 31 20 80 20 a7 73 61 76 65 24 2c 22 3a 22 29 |<1 . .save$,":")| 00002dd0 3c 31 20 80 20 73 61 76 65 24 3c 3e 22 3c 57 69 |<1 . save$<>"<Wi| 00002de0 6d 70 24 53 63 72 61 70 3e 22 20 8c 20 f2 6d 65 |mp$Scrap>" . .me| 00002df0 73 73 28 22 54 6f 20 73 61 76 65 2c 20 64 72 61 |ss("To save, dra| 00002e00 67 20 74 68 65 20 73 61 76 65 20 69 63 6f 6e 20 |g the save icon | 00002e10 74 6f 20 61 20 64 69 72 65 63 74 6f 72 79 20 76 |to a directory v| 00002e20 69 65 77 65 72 22 29 3a e1 0d 0e e2 17 e7 20 77 |iewer"):...... w| 00002e30 69 6e 73 61 76 65 25 3d 73 61 76 65 64 25 20 8c |insave%=saved% .| 00002e40 0d 0e ec 12 66 69 6c 65 25 3d ae 28 73 61 76 65 |....file%=.(save| 00002e50 24 29 0d 0e f6 1f f1 23 66 69 6c 65 25 2c 22 43 |$).....#file%,"C| 00002e60 69 72 63 75 69 74 20 44 61 74 61 20 46 69 6c 65 |ircuit Data File| 00002e70 22 0d 0f 00 17 f1 23 66 69 6c 65 25 2c 67 72 69 |".....#file%,gri| 00002e80 64 78 2c 67 72 69 64 79 0d 0f 0a 11 e3 20 41 3d |dx,gridy..... A=| 00002e90 30 20 b8 20 67 72 69 64 78 0d 0f 14 11 e3 20 42 |0 . gridx..... B| 00002ea0 3d 30 20 b8 20 67 72 69 64 79 0d 0f 1e 16 f1 23 |=0 . gridy.....#| 00002eb0 66 69 6c 65 25 2c 70 73 65 74 24 28 41 2c 42 29 |file%,pset$(A,B)| 00002ec0 0d 0f 28 07 ed 20 42 0d 0f 32 07 ed 20 41 0d 0f |..(.. B..2.. A..| 00002ed0 3c 0e e7 20 74 6f 74 3e 2d 31 20 8c 0d 0f 46 22 |<.. tot>-1 ...F"| 00002ee0 f1 23 66 69 6c 65 25 2c 31 2c 22 54 65 78 74 20 |.#file%,1,"Text | 00002ef0 44 65 74 61 69 6c 73 3a 2d 22 2c 74 6f 74 0d 0f |Details:-",tot..| 00002f00 50 0f e3 20 49 3d 30 20 b8 20 74 6f 74 0d 0f 5a |P.. I=0 . tot..Z| 00002f10 18 f1 23 66 69 6c 65 25 2c 74 65 78 74 69 6e 66 |..#file%,textinf| 00002f20 6f 24 28 49 29 0d 0f 64 05 ed 0d 0f 6e 10 cc 20 |o$(I)..d....n.. | 00002f30 f1 23 66 69 6c 65 25 2c 2d 31 0d 0f 78 05 cd 0d |.#file%,-1..x...| 00002f40 0f 82 0b d9 23 66 69 6c 65 25 0d 0f 8c 1f ff 28 |....#file%.....(| 00002f50 22 53 65 74 74 79 70 65 20 22 2b 73 61 76 65 24 |"Settype "+save$| 00002f60 2b 22 20 26 30 30 43 22 29 0d 0f 96 0e c8 8e 20 |+" &00C")...... | 00002f70 73 61 76 65 24 20 ca 0d 0f a0 14 c9 20 22 3c 57 |save$ ...... "<W| 00002f80 69 6d 70 24 53 63 72 61 70 3e 22 0d 0f aa 05 7f |imp$Scrap>".....| 00002f90 0d 0f b4 13 21 62 6c 6f 63 6b 3d 63 69 72 63 75 |....!block=circu| 00002fa0 69 74 25 0d 0f be 21 c8 99 22 57 69 6d 70 5f 47 |it%...!.."Wimp_G| 00002fb0 65 74 57 69 6e 64 6f 77 49 6e 66 6f 22 2c 2c 62 |etWindowInfo",,b| 00002fc0 6c 6f 63 6b 0d 0f c8 0b 73 61 76 65 64 3d a3 0d |lock....saved=..| 00002fd0 0f d2 20 5f 70 25 20 3d 20 21 28 62 6c 6f 63 6b |.. _p% = !(block| 00002fe0 2b 37 36 29 3a 24 5f 70 25 3d 73 61 76 65 24 0d |+76):$_p%=save$.| 00002ff0 0f dc 46 c8 99 22 57 69 6d 70 5f 46 6f 72 63 65 |..F.."Wimp_Force| 00003000 52 65 64 72 61 77 22 2c 2d 31 2c 62 6c 6f 63 6b |Redraw",-1,block| 00003010 21 34 2c 28 62 6c 6f 63 6b 21 31 36 29 2d 33 32 |!4,(block!16)-32| 00003020 2c 62 6c 6f 63 6b 21 31 32 2c 62 6c 6f 63 6b 21 |,block!12,block!| 00003030 31 36 2b 33 36 0d 0f e6 05 cb 0d 0f f0 39 e7 20 |16+36........9. | 00003040 73 68 75 74 64 6f 77 6e 73 61 76 65 20 c8 99 72 |shutdownsave ..r| 00003050 65 69 6e 74 65 72 2c 6d 79 74 61 73 6b 25 3a c8 |einter,mytask%:.| 00003060 99 22 57 69 6d 70 5f 43 6c 6f 73 65 44 6f 77 6e |."Wimp_CloseDown| 00003070 22 3a e0 0d 0f fa 05 cd 0d 10 04 16 e7 20 77 69 |":........... wi| 00003080 6e 73 61 76 65 25 3d 73 61 76 65 25 20 8c 0d 10 |nsave%=save% ...| 00003090 0e 0d f2 73 61 76 65 64 72 61 77 0d 10 18 05 cd |...savedraw.....| 000030a0 0d 10 22 35 e7 20 73 61 76 65 24 3c 3e 22 3c 57 |.."5. save$<>"<W| 000030b0 69 6d 70 24 53 63 72 61 70 3e 22 20 8c 20 f2 69 |imp$Scrap>" . .i| 000030c0 6e 66 6f 28 77 69 6e 73 61 76 65 25 2c 31 2c 73 |nfo(winsave%,1,s| 000030d0 61 76 65 24 29 0d 10 2c 05 e1 0d 10 36 0f dd f2 |ave$)..,....6...| 000030e0 6d 65 73 73 61 67 65 69 6e 0d 10 40 10 73 65 6e |messagein..@.sen| 000030f0 64 6d 3d 26 34 30 30 45 37 0d 10 4a 1c 72 65 66 |dm=&400E7..J.ref| 00003100 3d 62 6c 6f 63 6b 21 38 3a 74 61 73 6b 3d 62 6c |=block!8:task=bl| 00003110 6f 63 6b 21 34 0d 10 54 11 c8 8e 20 62 6c 6f 63 |ock!4..T... bloc| 00003120 6b 21 31 36 20 ca 0d 10 5e 2e c9 20 30 3a c8 99 |k!16 ...^.. 0:..| 00003130 72 65 69 6e 74 65 72 2c 6d 79 74 61 73 6b 25 3a |reinter,mytask%:| 00003140 c8 99 22 57 69 6d 70 5f 43 6c 6f 73 65 44 6f 77 |.."Wimp_CloseDow| 00003150 6e 22 3a e0 0d 10 68 08 c9 20 32 3a 0d 10 72 19 |n":...h.. 2:..r.| 00003160 73 61 76 65 24 3d a4 77 6f 6f 6c 28 62 6c 6f 63 |save$=.wool(bloc| 00003170 6b 2b 34 34 29 0d 10 7c 0f f2 64 72 61 67 73 70 |k+44)..|..dragsp| 00003180 72 28 31 29 0d 10 86 10 e7 20 64 72 69 76 65 25 |r(1)..... drive%| 00003190 3d 31 20 8c 0d 10 90 10 f2 73 61 76 65 28 73 61 |=1 ......save(sa| 000031a0 76 65 24 29 0d 10 9a 10 6d 62 6c 6f 63 6b 21 30 |ve$)....mblock!0| 000031b0 3d 32 35 36 0d 10 a4 11 6d 62 6c 6f 63 6b 21 31 |=256....mblock!1| 000031c0 32 3d 72 65 66 0d 10 ae 0f 6d 62 6c 6f 63 6b 21 |2=ref....mblock!| 000031d0 31 36 3d 33 0d 10 b8 10 6d 62 6c 6f 63 6b 21 33 |16=3....mblock!3| 000031e0 36 3d 2d 31 0d 10 c2 16 24 28 6d 62 6c 6f 63 6b |6=-1....$(mblock| 000031f0 2b 34 34 29 3d 73 61 76 65 24 0d 10 cc 27 c8 99 |+44)=save$...'..| 00003200 20 26 34 30 30 45 37 2c 31 38 2c 6d 62 6c 6f 63 | &400E7,18,mbloc| 00003210 6b 2c 74 61 73 6b 3a f4 20 44 61 74 61 4c 6f 61 |k,task:. DataLoa| 00003220 64 0d 10 d6 05 cd 0d 10 e0 08 c9 20 33 3a 0d 10 |d.......... 3:..| 00003230 ea 47 e7 20 62 6c 6f 63 6b 21 34 30 3c 3e 26 30 |.G. block!40<>&0| 00003240 30 43 20 8c 20 f2 6d 65 73 73 28 22 4f 6e 6c 79 |0C . .mess("Only| 00003250 20 43 69 72 63 75 69 74 20 44 61 74 61 20 66 69 | Circuit Data fi| 00003260 6c 65 73 20 63 61 6e 20 62 65 20 6c 6f 61 64 65 |les can be loade| 00003270 64 22 29 3a e1 0d 10 f4 26 6c 6f 61 64 24 3d a4 |d"):....&load$=.| 00003280 77 6f 6f 6c 28 62 6c 6f 63 6b 2b 34 34 29 3a f2 |wool(block+44):.| 00003290 6c 6f 61 64 28 6c 6f 61 64 24 29 0d 10 fe 08 c9 |load(load$).....| 000032a0 20 35 3a 0d 11 08 15 e7 20 62 6c 6f 63 6b 21 34 | 5:..... block!4| 000032b0 30 3d 26 30 30 43 20 8c 0d 11 12 1f 62 6c 6f 63 |0=&00C .....bloc| 000032c0 6b 21 31 32 3d 62 6c 6f 63 6b 21 38 3a 62 6c 6f |k!12=block!8:blo| 000032d0 63 6b 21 31 36 3d 34 0d 11 1c 2b c8 99 20 73 65 |ck!16=4...+.. se| 000032e0 6e 64 6d 2c 31 38 2c 62 6c 6f 63 6b 2c 62 6c 6f |ndm,18,block,blo| 000032f0 63 6b 21 34 3a f4 20 44 61 74 61 4c 6f 61 64 41 |ck!4:. DataLoadA| 00003300 63 6b 0d 11 26 1a f2 6c 6f 61 64 28 a4 77 6f 6f |ck..&..load(.woo| 00003310 6c 28 62 6c 6f 63 6b 2b 34 34 29 29 0d 11 30 05 |l(block+44))..0.| 00003320 cd 0d 11 3a 6e c9 20 38 3a e7 20 70 72 65 71 75 |...:n. 8:. prequ| 00003330 69 74 20 c8 99 72 65 69 6e 74 65 72 2c 6d 79 74 |it ..reinter,myt| 00003340 61 73 6b 25 3a c8 99 22 57 69 6d 70 5f 43 6c 6f |ask%:.."Wimp_Clo| 00003350 73 65 44 6f 77 6e 22 3a e0 3a 8b 3a 62 6c 6f 63 |seDown":.:.:bloc| 00003360 6b 21 31 32 3d 72 65 66 3a c8 99 73 65 6e 64 6d |k!12=ref:..sendm| 00003370 2c 31 39 2c 62 6c 6f 63 6b 3a 70 72 65 71 75 69 |,19,block:prequi| 00003380 74 3d b9 3a f2 61 72 65 79 6f 75 73 75 72 65 0d |t=.:.areyousure.| 00003390 11 44 05 cb 0d 11 4e 05 e1 0d 11 58 11 dd f2 6c |.D....N....X...l| 000033a0 6f 61 64 28 6c 6f 61 64 24 29 0d 11 62 08 69 6e |oad(load$)..b.in| 000033b0 3d b9 0d 11 6c 0e 66 6f 6e 74 6d 65 73 73 3d a3 |=...l.fontmess=.| 000033c0 0d 11 76 12 6c 6f 61 64 25 3d 8e 28 6c 6f 61 64 |..v.load%=.(load| 000033d0 24 29 0d 11 80 12 e8 23 6c 6f 61 64 25 2c 74 69 |$).....#load%,ti| 000033e0 74 6c 65 24 0d 11 8a 5d e7 20 74 69 74 6c 65 24 |tle$...]. title$| 000033f0 3c 3e 22 43 69 72 63 75 69 74 20 44 61 74 61 20 |<>"Circuit Data | 00003400 46 69 6c 65 22 20 8c 20 f2 71 75 65 72 79 28 22 |File" . .query("| 00003410 54 68 69 73 20 69 73 20 6e 6f 74 20 61 20 74 72 |This is not a tr| 00003420 75 65 20 43 69 72 63 75 69 74 20 44 61 74 61 20 |ue Circuit Data | 00003430 66 69 6c 65 21 22 29 3a d9 23 6c 6f 61 64 25 3a |file!"):.#load%:| 00003440 e1 0d 11 94 17 e8 23 6c 6f 61 64 25 2c 67 72 69 |......#load%,gri| 00003450 64 78 2c 67 72 69 64 79 0d 11 9e 0a 74 6f 74 3d |dx,gridy....tot=| 00003460 2d 31 0d 11 a8 11 e3 20 41 3d 30 20 b8 20 67 72 |-1..... A=0 . gr| 00003470 69 64 78 0d 11 b2 11 e3 20 42 3d 30 20 b8 20 67 |idx..... B=0 . g| 00003480 72 69 64 79 0d 11 bc 0e e8 23 6c 6f 61 64 25 2c |ridy.....#load%,| 00003490 61 24 0d 11 c6 11 70 73 65 74 24 28 41 2c 42 29 |a$....pset$(A,B)| 000034a0 3d 61 24 0d 11 d0 07 ed 20 42 0d 11 da 07 ed 20 |=a$..... B..... | 000034b0 41 0d 11 e4 10 e8 23 6c 6f 61 64 25 2c 74 65 78 |A.....#load%,tex| 000034c0 74 0d 11 ee 0e e7 20 74 65 78 74 3d 31 20 8c 0d |t..... text=1 ..| 000034d0 11 f8 17 e8 23 6c 6f 61 64 25 2c 74 68 69 6e 67 |....#load%,thing| 000034e0 24 2c 6e 6f 6f 66 0d 12 02 10 e3 20 46 3d 30 20 |$,noof..... F=0 | 000034f0 b8 20 6e 6f 6f 66 0d 12 0c 0a 74 6f 74 2b 3d 31 |. noof....tot+=1| 00003500 0d 12 16 11 e8 23 6c 6f 61 64 25 2c 74 65 78 74 |.....#load%,text| 00003510 24 0d 12 20 18 74 65 78 74 69 6e 66 6f 24 28 74 |$.. .textinfo$(t| 00003520 6f 74 29 3d 74 65 78 74 24 0d 12 2a 07 ed 20 46 |ot)=text$..*.. F| 00003530 0d 12 34 05 cd 0d 12 3e 0a 74 65 78 74 3d a3 0d |..4....>.text=..| 00003540 12 48 0b d9 23 6c 6f 61 64 25 0d 12 52 13 21 69 |.H..#load%..R.!i| 00003550 63 6f 6e 64 3d 63 69 72 63 75 69 74 25 0d 12 5c |cond=circuit%..\| 00003560 21 c8 99 22 57 69 6d 70 5f 47 65 74 57 69 6e 64 |!.."Wimp_GetWind| 00003570 6f 77 49 6e 66 6f 22 2c 2c 69 63 6f 6e 64 0d 12 |owInfo",,icond..| 00003580 66 66 73 61 76 65 64 3d a3 3a 5f 70 25 20 3d 20 |ffsaved=.:_p% = | 00003590 21 28 69 63 6f 6e 64 2b 37 36 29 3a 24 5f 70 25 |!(icond+76):$_p%| 000035a0 3d 6c 6f 61 64 24 3a c8 99 22 57 69 6d 70 5f 46 |=load$:.."Wimp_F| 000035b0 6f 72 63 65 52 65 64 72 61 77 22 2c 2d 31 2c 69 |orceRedraw",-1,i| 000035c0 63 6f 6e 64 21 34 2c 69 63 6f 6e 64 21 31 36 2c |cond!4,icond!16,| 000035d0 69 63 6f 6e 64 21 31 32 2c 69 63 6f 6e 64 21 31 |icond!12,icond!1| 000035e0 36 2b 33 36 0d 12 70 1a 24 a4 69 6e 66 6f 28 73 |6+36..p.$.info(s| 000035f0 61 76 65 64 25 2c 31 29 3d 6c 6f 61 64 24 0d 12 |aved%,1)=load$..| 00003600 7a 1c f2 61 6c 74 65 72 77 69 6e 28 67 72 69 64 |z..alterwin(grid| 00003610 78 2c 67 72 69 64 79 2c 30 29 0d 12 84 2f f2 69 |x,gridy,0).../.i| 00003620 6e 66 6f 28 67 72 69 64 25 2c 38 2c c3 67 72 69 |nfo(grid%,8,.gri| 00003630 64 79 29 3a f2 69 6e 66 6f 28 67 72 69 64 25 2c |dy):.info(grid%,| 00003640 35 2c c3 67 72 69 64 78 29 0d 12 8e 29 f2 6f 70 |5,.gridx)...).op| 00003650 65 6e 77 69 6e 28 63 69 72 63 75 69 74 25 29 3a |enwin(circuit%):| 00003660 f2 6f 70 65 6e 77 69 6e 28 74 6f 6f 6c 62 6f 78 |.openwin(toolbox| 00003670 25 29 0d 12 98 05 cd 0d 12 a2 05 e1 0d 12 ac 16 |%)..............| 00003680 dd f2 6f 70 65 6e 77 69 6e 28 68 61 6e 64 6c 65 |..openwin(handle| 00003690 25 29 0d 12 b6 12 21 62 6c 6f 63 6b 3d 68 61 6e |%)....!block=han| 000036a0 64 6c 65 25 0d 12 c0 21 c8 99 22 57 69 6d 70 5f |dle%...!.."Wimp_| 000036b0 47 65 74 57 69 6e 64 6f 77 49 6e 66 6f 22 2c 2c |GetWindowInfo",,| 000036c0 62 6c 6f 63 6b 0d 12 ca 18 61 3d 62 6c 6f 63 6b |block....a=block| 000036d0 21 33 32 20 80 20 28 31 3c 3c 31 36 29 0d 12 d4 |!32 . (1<<16)...| 000036e0 18 62 3d 62 6c 6f 63 6b 21 33 32 20 80 20 28 31 |.b=block!32 . (1| 000036f0 3c 3c 31 37 29 0d 12 de 0b e7 20 61 3d 30 20 8c |<<17)..... a=0 .| 00003700 0d 12 e8 1e c8 99 22 57 69 6d 70 5f 4f 70 65 6e |......"Wimp_Open| 00003710 57 69 6e 64 6f 77 22 2c 2c 62 6c 6f 63 6b 0d 12 |Window",,block..| 00003720 f2 05 cd 0d 12 fc 0b e7 20 62 3d 30 20 8c 0d 13 |........ b=0 ...| 00003730 06 2a 62 6c 6f 63 6b 21 32 38 3d 2d 31 3a c8 99 |.*block!28=-1:..| 00003740 22 57 69 6d 70 5f 4f 70 65 6e 57 69 6e 64 6f 77 |"Wimp_OpenWindow| 00003750 22 2c 2c 62 6c 6f 63 6b 0d 13 10 05 cd 0d 13 1a |",,block........| 00003760 05 e1 0d 13 24 13 dd f2 72 65 64 6f 28 68 61 6e |....$...redo(han| 00003770 64 6c 65 25 29 0d 13 2e 12 21 62 6c 6f 63 6b 3d |dle%)....!block=| 00003780 68 61 6e 64 6c 65 25 0d 13 38 1f c8 99 22 57 69 |handle%..8..."Wi| 00003790 6d 70 5f 43 6c 6f 73 65 57 69 6e 64 6f 77 22 2c |mp_CloseWindow",| 000037a0 2c 62 6c 6f 63 6b 0d 13 42 15 f2 6f 70 65 6e 77 |,block..B..openw| 000037b0 69 6e 28 68 61 6e 64 6c 65 25 29 0d 13 4c 05 e1 |in(handle%)..L..| 000037c0 0d 13 56 17 dd a4 63 68 65 63 6b 69 74 28 68 6e |..V...checkit(hn| 000037d0 64 25 2c 69 63 25 29 0d 13 60 1b 21 69 63 6f 6e |d%,ic%)..`.!icon| 000037e0 64 3d 68 6e 64 25 3a 69 63 6f 6e 64 21 34 3d 69 |d=hnd%:icond!4=i| 000037f0 63 25 0d 13 6a 20 c8 99 22 57 69 6d 70 5f 47 65 |c%..j .."Wimp_Ge| 00003800 74 49 63 6f 6e 53 74 61 74 65 22 2c 2c 69 63 6f |tIconState",,ico| 00003810 6e 64 0d 13 74 13 66 6c 61 67 73 25 3d 69 63 6f |nd..t.flags%=ico| 00003820 6e 64 21 32 34 0d 13 7e 12 3d 66 6c 61 67 73 25 |nd!24..~.=flags%| 00003830 80 26 46 30 30 30 30 0d 13 88 19 dd f2 73 6c 61 |.&F0000......sla| 00003840 62 69 63 6e 28 68 61 6e 64 6c 65 2c 69 63 6e 29 |bicn(handle,icn)| 00003850 0d 13 92 13 69 63 6f 6e 64 21 31 32 3d 68 61 6e |....icond!12=han| 00003860 64 6c 65 0d 13 9c 0e 69 63 6f 6e 64 21 31 36 3d |dle....icond!16=| 00003870 32 0d 13 a6 1f c8 99 20 22 57 69 6d 70 5f 42 6f |2...... "Wimp_Bo| 00003880 72 64 65 72 49 63 6f 6e 22 2c 2c 69 63 6f 6e 64 |rderIcon",,icond| 00003890 0d 13 b0 0d 69 63 6f 6e 64 21 38 3d 30 0d 13 ba |....icond!8=0...| 000038a0 1f c8 99 20 22 57 69 6d 70 5f 42 6f 72 64 65 72 |... "Wimp_Border| 000038b0 49 63 6f 6e 22 2c 2c 69 63 6f 6e 64 0d 13 c4 05 |Icon",,icond....| 000038c0 e1 0d 13 ce 15 dd 20 f2 73 6c 61 62 69 6e 28 68 |...... .slabin(h| 000038d0 61 6e 64 6c 65 29 0d 13 d8 11 21 69 63 6f 6e 64 |andle)....!icond| 000038e0 3d 68 61 6e 64 6c 65 0d 13 e2 23 c8 99 20 22 57 |=handle...#.. "W| 000038f0 69 6d 70 5f 47 65 74 50 6f 69 6e 74 65 72 49 6e |imp_GetPointerIn| 00003900 66 6f 22 2c 2c 69 63 6f 6e 64 0d 13 ec 1f c8 99 |fo",,icond......| 00003910 20 22 57 69 6d 70 5f 42 6f 72 64 65 72 49 63 6f | "Wimp_BorderIco| 00003920 6e 22 2c 2c 69 63 6f 6e 64 0d 13 f6 05 e1 0d 14 |n",,icond.......| 00003930 00 16 dd 20 f2 73 6c 61 62 6f 75 74 28 68 61 6e |... .slabout(han| 00003940 64 6c 65 29 0d 14 0a 11 21 69 63 6f 6e 64 3d 68 |dle)....!icond=h| 00003950 61 6e 64 6c 65 0d 14 14 23 c8 99 20 22 57 69 6d |andle...#.. "Wim| 00003960 70 5f 47 65 74 50 6f 69 6e 74 65 72 49 6e 66 6f |p_GetPointerInfo| 00003970 22 2c 2c 69 63 6f 6e 64 0d 14 1e 0f 69 63 6f 6e |",,icond....icon| 00003980 64 21 38 20 3d 20 30 0d 14 28 1f c8 99 20 22 57 |d!8 = 0..(... "W| 00003990 69 6d 70 5f 42 6f 72 64 65 72 49 63 6f 6e 22 2c |imp_BorderIcon",| 000039a0 2c 69 63 6f 6e 64 0d 14 32 05 e1 0d 14 3c 0e dd |,icond..2....<..| 000039b0 f2 63 6c 65 61 72 61 6c 6c 0d 14 46 1a c8 99 22 |.clearall..F..."| 000039c0 4f 53 5f 43 6f 6e 66 69 72 6d 22 20 b8 20 70 72 |OS_Confirm" . pr| 000039d0 65 73 73 0d 14 50 12 e7 20 bd 70 72 65 73 73 3d |ess..P.. .press=| 000039e0 22 79 22 20 8c 0d 14 5a 0e e3 20 41 3d 30 20 b8 |"y" ...Z.. A=0 .| 000039f0 20 31 36 0d 14 64 0e e3 20 42 3d 30 20 b8 20 31 | 16..d.. B=0 . 1| 00003a00 31 0d 14 6e 11 70 73 65 74 24 28 41 2c 42 29 3d |1..n.pset$(A,B)=| 00003a10 22 22 0d 14 78 07 ed 20 42 0d 14 82 07 ed 20 41 |""..x.. B..... A| 00003a20 0d 14 8c 15 e7 20 74 6f 74 3e 2d 31 20 8c 20 74 |..... tot>-1 . t| 00003a30 6f 74 3d 2d 31 0d 14 96 15 f2 72 65 64 72 61 77 |ot=-1.....redraw| 00003a40 28 63 69 72 63 75 69 74 25 29 0d 14 a0 05 cd 0d |(circuit%)......| 00003a50 14 aa 05 e1 0d 14 b4 18 dd f2 64 6f 69 74 28 78 |..........doit(x| 00003a60 63 2c 79 63 2c 68 61 6e 64 6c 65 29 0d 14 be 11 |c,yc,handle)....| 00003a70 21 62 6c 6f 63 6b 3d 68 61 6e 64 6c 65 0d 14 c8 |!block=handle...| 00003a80 21 c8 99 22 57 69 6d 70 5f 47 65 74 57 69 6e 64 |!.."Wimp_GetWind| 00003a90 6f 77 49 6e 66 6f 22 2c 2c 62 6c 6f 63 6b 0d 14 |owInfo",,block..| 00003aa0 d2 8d e7 20 ac 20 73 61 76 65 64 20 8c 20 73 61 |... . saved . sa| 00003ab0 76 65 64 3d b9 3a 6e 65 77 24 3d 24 28 62 6c 6f |ved=.:new$=$(blo| 00003ac0 63 6b 21 37 36 29 2b 22 20 2a 22 3a 20 5f 70 25 |ck!76)+" *": _p%| 00003ad0 20 3d 20 21 28 62 6c 6f 63 6b 2b 37 36 29 3a 24 | = !(block+76):$| 00003ae0 5f 70 25 3d 6e 65 77 24 3a c8 99 22 57 69 6d 70 |_p%=new$:.."Wimp| 00003af0 5f 46 6f 72 63 65 52 65 64 72 61 77 22 2c 2d 31 |_ForceRedraw",-1| 00003b00 2c 62 6c 6f 63 6b 21 34 2c 28 62 6c 6f 63 6b 21 |,block!4,(block!| 00003b10 31 36 29 2d 33 32 2c 62 6c 6f 63 6b 21 31 32 2c |16)-32,block!12,| 00003b20 62 6c 6f 63 6b 21 31 36 2b 33 36 0d 14 dc 1b 77 |block!16+36....w| 00003b30 6f 72 6b 78 25 3d 62 6c 6f 63 6b 21 34 2d 62 6c |orkx%=block!4-bl| 00003b40 6f 63 6b 21 32 30 0d 14 e6 1c 77 6f 72 6b 79 25 |ock!20....worky%| 00003b50 3d 62 6c 6f 63 6b 21 31 36 2d 62 6c 6f 63 6b 21 |=block!16-block!| 00003b60 32 34 0d 14 f0 14 70 78 3d 30 2d 28 77 6f 72 6b |24....px=0-(work| 00003b70 78 25 2d 78 63 29 0d 14 fa 10 70 79 3d 77 6f 72 |x%-xc)....py=wor| 00003b80 6b 79 25 2d 79 63 0d 15 04 0f 70 78 3d a8 28 70 |ky%-yc....px=.(p| 00003b90 78 2f 36 32 29 0d 15 0e 0f 70 79 3d a8 28 70 79 |x/62)....py=.(py| 00003ba0 2f 36 32 29 0d 15 18 16 70 73 65 74 24 28 70 78 |/62)....pset$(px| 00003bb0 2c 70 79 29 3d 74 6f 6f 6c 24 0d 15 22 48 c8 99 |,py)=tool$.."H..| 00003bc0 20 22 57 69 6d 70 5f 46 6f 72 63 65 52 65 64 72 | "Wimp_ForceRedr| 00003bd0 61 77 22 2c 63 69 72 63 75 69 74 25 2c 70 78 2a |aw",circuit%,px*| 00003be0 36 32 2c 30 2d 28 70 79 2a 36 32 29 2d 36 32 2c |62,0-(py*62)-62,| 00003bf0 70 78 2a 36 32 2b 36 32 2c 30 2d 28 70 79 2a 36 |px*62+62,0-(py*6| 00003c00 32 29 0d 15 2c 05 e1 0d 15 36 15 dd 20 f2 72 65 |2)..,....6.. .re| 00003c10 64 72 61 77 28 68 61 6e 64 6c 65 29 0d 15 40 0d |draw(handle)..@.| 00003c20 6e 6f 66 6f 6e 74 73 3d a3 0d 15 4a 11 21 62 6c |nofonts=...J.!bl| 00003c30 6f 63 6b 3d 68 61 6e 64 6c 65 0d 15 54 0a ea 6d |ock=handle..T..m| 00003c40 6f 72 65 25 0d 15 5e 29 c8 99 20 22 57 69 6d 70 |ore%..^).. "Wimp| 00003c50 5f 52 65 64 72 61 77 57 69 6e 64 6f 77 22 2c 2c |_RedrawWindow",,| 00003c60 62 6c 6f 63 6b 20 b8 20 6d 6f 72 65 25 0d 15 68 |block . more%..h| 00003c70 0c c8 95 20 6d 6f 72 65 25 0d 15 72 10 20 c8 8e |... more%..r. ..| 00003c80 20 68 61 6e 64 6c 65 20 ca 0d 15 7c 0f 20 c9 20 | handle ...|. . | 00003c90 63 69 72 63 75 69 74 25 0d 15 86 18 20 f2 61 70 |circuit%.... .ap| 00003ca0 70 6c 69 63 61 74 69 6f 6e 5f 72 65 64 72 61 77 |plication_redraw| 00003cb0 0d 15 90 06 20 7f 0d 15 9a 21 20 c8 99 22 57 69 |.... ....! .."Wi| 00003cc0 6d 70 5f 42 6f 72 64 65 72 57 69 6e 64 6f 77 22 |mp_BorderWindow"| 00003cd0 2c 2c 62 6c 6f 63 6b 0d 15 a4 06 20 cb 0d 15 ae |,,block.... ....| 00003ce0 29 c8 99 20 22 57 69 6d 70 5f 47 65 74 52 65 63 |).. "Wimp_GetRec| 00003cf0 74 61 6e 67 6c 65 22 2c 2c 62 6c 6f 63 6b 20 b8 |tangle",,block .| 00003d00 20 6d 6f 72 65 25 0d 15 b8 06 20 ce 0d 15 c2 8c | more%.... .....| 00003d10 e7 20 6e 6f 66 6f 6e 74 73 20 80 20 66 6f 6e 74 |. nofonts . font| 00003d20 6d 65 73 73 3d a3 20 8c 20 f2 71 75 65 72 79 28 |mess=. . .query(| 00003d30 22 54 68 69 73 20 77 69 6e 64 6f 77 20 63 6f 6e |"This window con| 00003d40 74 61 69 6e 73 20 74 65 78 74 2e 20 50 6c 65 61 |tains text. Plea| 00003d50 73 65 20 6c 6f 63 61 74 65 20 74 68 65 20 21 46 |se locate the !F| 00003d60 6f 6e 74 73 20 64 69 72 65 63 74 6f 72 79 20 74 |onts directory t| 00003d70 6f 20 65 6e 61 62 6c 65 20 74 65 78 74 20 74 6f |o enable text to| 00003d80 20 62 65 20 73 65 65 6e 2e 22 29 3a 66 6f 6e 74 | be seen."):font| 00003d90 6d 65 73 73 3d b9 3a e1 0d 15 cc 05 e1 0d 15 d6 |mess=.:.........| 00003da0 18 dd f2 61 70 70 6c 69 63 61 74 69 6f 6e 5f 72 |...application_r| 00003db0 65 64 72 61 77 0d 15 e0 1b 77 6f 72 6b 78 25 3d |edraw....workx%=| 00003dc0 62 6c 6f 63 6b 21 34 2d 62 6c 6f 63 6b 21 32 30 |block!4-block!20| 00003dd0 0d 15 ea 1c 77 6f 72 6b 79 25 3d 62 6c 6f 63 6b |....worky%=block| 00003de0 21 31 36 2d 62 6c 6f 63 6b 21 32 34 0d 15 f4 0d |!16-block!24....| 00003df0 f2 6d 6f 64 65 70 72 6f 63 0d 15 fe 33 c8 99 20 |.modeproc...3.. | 00003e00 26 32 45 2c 32 35 36 2b 34 30 2c 73 70 72 25 2c |&2E,256+40,spr%,| 00003e10 22 6c 65 64 55 22 20 b8 20 41 2c 42 2c 43 2c 77 |"ledU" . A,B,C,w| 00003e20 25 2c 68 25 2c 44 2c 6d 6f 64 65 25 0d 16 08 2e |%,h%,D,mode%....| 00003e30 c8 99 22 4f 53 5f 52 65 61 64 4d 6f 64 65 56 61 |.."OS_ReadModeVa| 00003e40 72 69 61 62 6c 65 22 2c 6d 6f 64 65 25 2c 33 20 |riable",mode%,3 | 00003e50 b8 63 2c 63 6c 2c 63 6f 6c 73 0d 16 12 2c c8 99 |.c,cl,cols...,..| 00003e60 22 4f 53 5f 52 65 61 64 4d 6f 64 65 56 61 72 69 |"OS_ReadModeVari| 00003e70 61 62 6c 65 22 2c 6d 6f 64 65 25 2c 34 20 b8 2c |able",mode%,4 .,| 00003e80 2c 78 65 69 67 25 0d 16 1c 2c c8 99 22 4f 53 5f |,xeig%...,.."OS_| 00003e90 52 65 61 64 4d 6f 64 65 56 61 72 69 61 62 6c 65 |ReadModeVariable| 00003ea0 22 2c 6d 6f 64 65 25 2c 35 20 b8 2c 2c 79 65 69 |",mode%,5 .,,yei| 00003eb0 67 25 0d 16 26 11 77 69 25 3d 77 25 3c 3c 78 65 |g%..&.wi%=w%<<xe| 00003ec0 69 67 25 0d 16 30 11 68 65 25 3d 68 25 3c 3c 79 |ig%..0.he%=h%<<y| 00003ed0 65 69 67 25 0d 16 3a 13 e7 20 21 28 34 2b 73 70 |eig%..:.. !(4+sp| 00003ee0 72 25 29 3e 30 20 8c 0d 16 44 15 e7 20 21 28 34 |r%)>0 ...D.. !(4| 00003ef0 38 2b 73 70 72 25 29 3e 34 34 20 8c 0d 16 4e 11 |8+spr%)>44 ...N.| 00003f00 e3 20 63 6f 6c 25 3d 30 20 b8 20 31 35 0d 16 58 |. col%=0 . 15..X| 00003f10 27 70 61 6c 65 74 74 65 25 21 28 63 6f 6c 25 2a |'palette%!(col%*| 00003f20 34 29 3d 21 28 36 30 2b 63 6f 6c 25 2a 38 2b 73 |4)=!(60+col%*8+s| 00003f30 70 72 25 29 0d 16 62 0a ed 20 63 6f 6c 25 0d 16 |pr%)..b.. col%..| 00003f40 6c 44 c8 99 20 22 43 6f 6c 6f 75 72 54 72 61 6e |lD.. "ColourTran| 00003f50 73 5f 53 65 6c 65 63 74 54 61 62 6c 65 22 2c 21 |s_SelectTable",!| 00003f60 28 35 36 2b 73 70 72 25 29 2c 70 61 6c 65 74 74 |(56+spr%),palett| 00003f70 65 25 2c 2d 31 2c 2d 31 2c 73 63 61 6c 62 6c 6f |e%,-1,-1,scalblo| 00003f80 63 6b 0d 16 76 05 cc 0d 16 80 43 c8 99 20 22 43 |ck..v.....C.. "C| 00003f90 6f 6c 6f 75 72 54 72 61 6e 73 5f 53 65 6c 65 63 |olourTrans_Selec| 00003fa0 74 54 61 62 6c 65 22 2c 21 28 35 36 2b 73 70 72 |tTable",!(56+spr| 00003fb0 25 29 2c 64 65 66 70 61 6c 25 2c 2d 31 2c 2d 31 |%),defpal%,-1,-1| 00003fc0 2c 73 63 61 6c 62 6c 6f 63 6b 0d 16 8a 05 cd 0d |,scalblock......| 00003fd0 16 94 05 cd 0d 16 9e 11 e3 20 41 3d 30 20 b8 20 |......... A=0 . | 00003fe0 67 72 69 64 78 0d 16 a8 11 e3 20 42 3d 30 20 b8 |gridx..... B=0 .| 00003ff0 20 67 72 69 64 79 0d 16 b2 15 e7 20 70 73 65 74 | gridy..... pset| 00004000 24 28 41 2c 42 29 3e 22 22 20 8c 0d 16 bc 4e c8 |$(A,B)>"" ....N.| 00004010 99 20 34 36 2c 26 31 33 34 2c 73 70 72 25 2c 70 |. 46,&134,spr%,p| 00004020 73 65 74 24 28 41 2c 42 29 2c 77 6f 72 6b 78 25 |set$(A,B),workx%| 00004030 2b 28 41 2a 36 32 29 2c 77 6f 72 6b 79 25 2d 28 |+(A*62),worky%-(| 00004040 42 2a 36 32 29 2d 36 32 2c 38 2c 73 63 61 6c 2c |B*62)-62,8,scal,| 00004050 73 63 61 6c 62 6c 6f 63 6b 0d 16 c6 05 cd 0d 16 |scalblock.......| 00004060 d0 07 ed 20 42 0d 16 da 07 ed 20 41 0d 16 e4 0e |... B..... A....| 00004070 e7 20 74 6f 74 3e 2d 31 20 8c 0d 16 ee 0d 6e 6f |. tot>-1 .....no| 00004080 66 6f 6e 74 73 3d a3 0d 16 f8 09 6e 75 6d 3d 30 |fonts=.....num=0| 00004090 0d 17 02 2b c8 99 20 22 58 46 6f 6e 74 5f 4c 69 |...+.. "XFont_Li| 000040a0 73 74 46 6f 6e 74 73 22 2c 2c 69 63 6f 6e 64 2c |stFonts",,icond,| 000040b0 6e 75 6d 20 b8 20 2c 2c 6e 75 6d 0d 17 0c 18 e7 |num . ,,num.....| 000040c0 20 6e 75 6d 3d 2d 31 20 8c 20 6e 6f 66 6f 6e 74 | num=-1 . nofont| 000040d0 73 3d b9 0d 17 16 11 e7 20 ac 20 6e 6f 66 6f 6e |s=...... . nofon| 000040e0 74 73 20 8c 0d 17 20 0d f2 66 69 6e 64 66 6f 6e |ts ... ..findfon| 000040f0 74 0d 17 2a 0f e3 20 49 3d 30 20 b8 20 74 6f 74 |t..*.. I=0 . tot| 00004100 0d 17 34 1a f2 77 6f 72 6b 6f 75 74 28 74 65 78 |..4..workout(tex| 00004110 74 69 6e 66 6f 24 28 49 29 29 0d 17 3e 17 70 78 |tinfo$(I))..>.px| 00004120 32 3d 30 2d 28 77 6f 72 6b 78 25 2d 77 78 63 6f |2=0-(workx%-wxco| 00004130 29 0d 17 48 13 70 79 32 3d 77 6f 72 6b 79 25 2d |)..H.py2=worky%-| 00004140 77 79 63 6f 0d 17 52 1a c8 99 22 46 6f 6e 74 5f |wyco..R..."Font_| 00004150 53 65 74 46 6f 6e 74 22 2c 66 6f 6e 74 25 0d 17 |SetFont",font%..| 00004160 5c 39 c8 99 22 46 6f 6e 74 5f 50 61 69 6e 74 22 |\9.."Font_Paint"| 00004170 2c 2c 77 74 65 78 74 24 2c 25 31 30 30 31 30 2c |,,wtext$,%10010,| 00004180 77 6f 72 6b 78 25 2b 77 78 63 6f 2c 77 6f 72 6b |workx%+wxco,work| 00004190 79 25 2d 77 79 63 6f 0d 17 66 05 ed 0d 17 70 05 |y%-wyco..f....p.| 000041a0 cd 0d 17 7a 05 cd 0d 17 84 05 e1 0d 17 8e 0e dd |...z............| 000041b0 f2 66 69 6e 64 66 6f 6e 74 0d 17 98 44 c8 99 22 |.findfont...D.."| 000041c0 58 46 6f 6e 74 5f 46 69 6e 64 46 6f 6e 74 22 2c |XFont_FindFont",| 000041d0 2c 22 54 72 69 6e 69 74 79 2e 4d 65 64 69 75 6d |,"Trinity.Medium| 000041e0 22 2c 31 32 2a 31 36 2c 31 32 2a 31 36 20 b8 20 |",12*16,12*16 . | 000041f0 66 6f 6e 74 25 3a 66 6f 75 6e 64 3d b9 0d 17 a2 |font%:found=....| 00004200 13 e7 20 66 6f 6e 74 25 21 30 3d 35 32 33 20 8c |.. font%!0=523 .| 00004210 0d 17 ac 09 6e 75 6d 3d 30 0d 17 b6 2b c8 99 20 |....num=0...+.. | 00004220 22 58 46 6f 6e 74 5f 4c 69 73 74 46 6f 6e 74 73 |"XFont_ListFonts| 00004230 22 2c 2c 69 63 6f 6e 64 2c 6e 75 6d 20 b8 20 2c |",,icond,num . ,| 00004240 2c 6e 75 6d 0d 17 c0 11 73 66 6f 6e 74 24 3d 24 |,num....sfont$=$| 00004250 69 63 6f 6e 64 0d 17 ca 39 c8 99 22 46 6f 6e 74 |icond...9.."Font| 00004260 5f 46 69 6e 64 46 6f 6e 74 22 2c 2c 73 66 6f 6e |_FindFont",,sfon| 00004270 74 24 2c 31 32 2a 31 36 2c 31 32 2a 31 36 20 b8 |t$,12*16,12*16 .| 00004280 20 66 6f 6e 74 25 3a 66 6f 75 6e 64 3d b9 0d 17 | font%:found=...| 00004290 d4 05 cd 0d 17 de 05 e1 0d 17 e8 1b dd f2 63 6c |..............cl| 000042a0 65 61 72 69 74 28 78 63 2c 79 63 2c 68 61 6e 64 |earit(xc,yc,hand| 000042b0 6c 65 29 0d 17 f2 19 76 78 3d 62 6c 6f 63 6b 21 |le)....vx=block!| 000042c0 30 3a 76 79 3d 62 6c 6f 63 6b 21 34 0d 17 fc 11 |0:vy=block!4....| 000042d0 21 62 6c 6f 63 6b 3d 68 61 6e 64 6c 65 0d 18 06 |!block=handle...| 000042e0 21 c8 99 22 57 69 6d 70 5f 47 65 74 57 69 6e 64 |!.."Wimp_GetWind| 000042f0 6f 77 49 6e 66 6f 22 2c 2c 62 6c 6f 63 6b 0d 18 |owInfo",,block..| 00004300 10 8d e7 20 ac 20 73 61 76 65 64 20 8c 20 73 61 |... . saved . sa| 00004310 76 65 64 3d b9 3a 6e 65 77 24 3d 24 28 62 6c 6f |ved=.:new$=$(blo| 00004320 63 6b 21 37 36 29 2b 22 20 2a 22 3a 20 5f 70 25 |ck!76)+" *": _p%| 00004330 20 3d 20 21 28 62 6c 6f 63 6b 2b 37 36 29 3a 24 | = !(block+76):$| 00004340 5f 70 25 3d 6e 65 77 24 3a c8 99 22 57 69 6d 70 |_p%=new$:.."Wimp| 00004350 5f 46 6f 72 63 65 52 65 64 72 61 77 22 2c 2d 31 |_ForceRedraw",-1| 00004360 2c 62 6c 6f 63 6b 21 34 2c 28 62 6c 6f 63 6b 21 |,block!4,(block!| 00004370 31 36 29 2d 33 32 2c 62 6c 6f 63 6b 21 31 32 2c |16)-32,block!12,| 00004380 62 6c 6f 63 6b 21 31 36 2b 33 36 0d 18 1a 1b 77 |block!16+36....w| 00004390 6f 72 6b 78 25 3d 62 6c 6f 63 6b 21 34 2d 62 6c |orkx%=block!4-bl| 000043a0 6f 63 6b 21 32 30 0d 18 24 1c 77 6f 72 6b 79 25 |ock!20..$.worky%| 000043b0 3d 62 6c 6f 63 6b 21 31 36 2d 62 6c 6f 63 6b 21 |=block!16-block!| 000043c0 32 34 0d 18 2e 14 70 78 3d 30 2d 28 77 6f 72 6b |24....px=0-(work| 000043d0 78 25 2d 78 63 29 0d 18 38 10 70 79 3d 77 6f 72 |x%-xc)..8.py=wor| 000043e0 6b 79 25 2d 79 63 0d 18 42 0f 70 78 3d a8 28 70 |ky%-yc..B.px=.(p| 000043f0 78 2f 36 32 29 0d 18 4c 0f 70 79 3d a8 28 70 79 |x/62)..L.py=.(py| 00004400 2f 36 32 29 0d 18 56 13 70 73 65 74 24 28 70 78 |/62)..V.pset$(px| 00004410 2c 70 79 29 3d 22 22 0d 18 60 07 e6 20 30 0d 18 |,py)=""..`.. 0..| 00004420 6a 49 c8 99 22 57 69 6d 70 5f 46 6f 72 63 65 52 |jI.."Wimp_ForceR| 00004430 65 64 72 61 77 22 2c 63 69 72 63 75 69 74 25 2c |edraw",circuit%,| 00004440 70 78 2a 36 32 2c 30 2d 28 70 79 2a 36 32 29 2d |px*62,0-(py*62)-| 00004450 36 32 2c 28 70 78 2a 36 32 29 2b 36 32 2c 30 2d |62,(px*62)+62,0-| 00004460 28 70 79 2a 36 32 29 0d 18 74 10 f2 64 6f 65 6d |(py*62)..t..doem| 00004470 28 76 78 2c 76 79 29 0d 18 7e 05 e1 0d 18 88 15 |(vx,vy)..~......| 00004480 dd f2 67 6f 74 65 78 74 28 78 63 6f 2c 79 63 6f |..gotext(xco,yco| 00004490 29 0d 18 92 09 6e 75 6d 3d 30 0d 18 9c 2b c8 99 |)....num=0...+..| 000044a0 20 22 58 46 6f 6e 74 5f 4c 69 73 74 46 6f 6e 74 | "XFont_ListFont| 000044b0 73 22 2c 2c 69 63 6f 6e 64 2c 6e 75 6d 20 b8 20 |s",,icond,num . | 000044c0 2c 2c 6e 75 6d 0d 18 a6 11 66 66 6f 6e 74 24 3d |,,num....ffont$=| 000044d0 24 69 63 6f 6e 64 0d 18 b0 5a e7 20 6e 75 6d 3d |$icond...Z. num=| 000044e0 2d 31 20 8c 20 f2 71 75 65 72 79 28 22 50 6c 65 |-1 . .query("Ple| 000044f0 61 73 65 20 6c 6f 63 61 74 65 20 74 68 65 20 21 |ase locate the !| 00004500 46 6f 6e 74 73 20 64 69 72 65 63 74 6f 72 79 20 |Fonts directory | 00004510 74 6f 20 65 6e 61 62 6c 65 20 74 65 78 74 20 74 |to enable text t| 00004520 6f 20 62 65 20 65 6e 74 72 65 64 2e 22 29 3a e1 |o be entred."):.| 00004530 0d 18 ba 18 e7 20 74 6f 6f 6c 24 3d 22 70 74 72 |..... tool$="ptr| 00004540 5f 74 65 78 74 22 20 e1 0d 18 c4 12 6f 6c 64 74 |_text" .....oldt| 00004550 6f 6f 6c 24 3d 74 6f 6f 6c 24 0d 18 ce 14 74 6f |ool$=tool$....to| 00004560 6f 6c 24 3d 22 70 74 72 5f 74 65 78 74 22 0d 18 |ol$="ptr_text"..| 00004570 d8 0a 74 65 78 74 3d b9 0d 18 e2 11 21 62 6c 6f |..text=.....!blo| 00004580 63 6b 3d 65 6e 74 65 72 25 0d 18 ec 21 c8 99 22 |ck=enter%...!.."| 00004590 57 69 6d 70 5f 47 65 74 57 69 6e 64 6f 77 49 6e |Wimp_GetWindowIn| 000045a0 66 6f 22 2c 2c 62 6c 6f 63 6b 0d 18 f6 43 62 6c |fo",,block...Cbl| 000045b0 6f 63 6b 21 34 3d 78 63 6f 2b 31 30 30 3a 62 6c |ock!4=xco+100:bl| 000045c0 6f 63 6b 21 31 32 3d 78 63 6f 2b 34 33 30 3a 62 |ock!12=xco+430:b| 000045d0 6c 6f 63 6b 21 38 3d 79 63 6f 2d 34 36 2d 34 38 |lock!8=yco-46-48| 000045e0 3a 62 6c 6f 63 6b 21 31 36 3d 79 63 6f 0d 19 00 |:block!16=yco...| 000045f0 1e c8 99 22 57 69 6d 70 5f 4f 70 65 6e 57 69 6e |..."Wimp_OpenWin| 00004600 64 6f 77 22 2c 2c 62 6c 6f 63 6b 0d 19 0a 30 c8 |dow",,block...0.| 00004610 99 22 57 69 6d 70 5f 53 65 74 43 61 72 65 74 50 |."Wimp_SetCaretP| 00004620 6f 73 69 74 69 6f 6e 22 2c 65 6e 74 65 72 25 2c |osition",enter%,| 00004630 30 2c 30 2c 30 2c 2d 31 2c 2d 31 0d 19 14 05 e1 |0,0,0,-1,-1.....| 00004640 0d 19 1e 15 dd f2 64 6f 74 65 78 74 28 78 63 6f |......dotext(xco| 00004650 2c 79 63 6f 29 0d 19 28 0e e7 20 74 6f 74 3d 35 |,yco)..(.. tot=5| 00004660 30 20 e1 0d 19 32 1b e7 20 24 a4 69 6e 66 6f 28 |0 ...2.. $.info(| 00004670 65 6e 74 65 72 25 2c 30 29 3d 22 22 20 e1 0d 19 |enter%,0)="" ...| 00004680 3c 0a 74 6f 74 2b 3d 31 0d 19 46 0d f2 66 69 6e |<.tot+=1..F..fin| 00004690 64 66 6f 6e 74 0d 19 50 1a c8 99 22 46 6f 6e 74 |dfont..P..."Font| 000046a0 5f 53 65 74 46 6f 6e 74 22 2c 66 6f 6e 74 25 0d |_SetFont",font%.| 000046b0 19 5a 59 c8 99 22 46 6f 6e 74 5f 53 74 72 69 6e |.ZY.."Font_Strin| 000046c0 67 57 69 64 74 68 22 2c 2c 24 a4 69 6e 66 6f 28 |gWidth",,$.info(| 000046d0 65 6e 74 65 72 25 2c 30 29 2c 32 32 38 30 30 30 |enter%,0),228000| 000046e0 2c 32 32 38 30 30 30 2c 33 31 2c a9 28 24 a4 69 |,228000,31,.($.i| 000046f0 6e 66 6f 28 65 6e 74 65 72 25 2c 30 29 29 20 b8 |nfo(enter%,0)) .| 00004700 20 2c 2c 78 25 2c 79 25 0d 19 64 26 c8 99 22 46 | ,,x%,y%..d&.."F| 00004710 6f 6e 74 5f 43 6f 6e 76 65 72 74 74 6f 4f 53 22 |ont_ConverttoOS"| 00004720 2c 2c 78 25 2c 79 25 20 b8 20 2c 78 2c 79 0d 19 |,,x%,y% . ,x,y..| 00004730 6e 13 21 62 6c 6f 63 6b 3d 63 69 72 63 75 69 74 |n.!block=circuit| 00004740 25 0d 19 78 21 c8 99 22 57 69 6d 70 5f 47 65 74 |%..x!.."Wimp_Get| 00004750 57 69 6e 64 6f 77 49 6e 66 6f 22 2c 2c 62 6c 6f |WindowInfo",,blo| 00004760 63 6b 0d 19 82 8d e7 20 ac 20 73 61 76 65 64 20 |ck..... . saved | 00004770 8c 20 73 61 76 65 64 3d b9 3a 6e 65 77 24 3d 24 |. saved=.:new$=$| 00004780 28 62 6c 6f 63 6b 21 37 36 29 2b 22 20 2a 22 3a |(block!76)+" *":| 00004790 20 5f 70 25 20 3d 20 21 28 62 6c 6f 63 6b 2b 37 | _p% = !(block+7| 000047a0 36 29 3a 24 5f 70 25 3d 6e 65 77 24 3a c8 99 22 |6):$_p%=new$:.."| 000047b0 57 69 6d 70 5f 46 6f 72 63 65 52 65 64 72 61 77 |Wimp_ForceRedraw| 000047c0 22 2c 2d 31 2c 62 6c 6f 63 6b 21 34 2c 28 62 6c |",-1,block!4,(bl| 000047d0 6f 63 6b 21 31 36 29 2d 33 32 2c 62 6c 6f 63 6b |ock!16)-32,block| 000047e0 21 31 32 2c 62 6c 6f 63 6b 21 31 36 2b 33 36 0d |!12,block!16+36.| 000047f0 19 8c 1b 77 6f 72 6b 78 25 3d 62 6c 6f 63 6b 21 |...workx%=block!| 00004800 34 2d 62 6c 6f 63 6b 21 32 30 0d 19 96 1c 77 6f |4-block!20....wo| 00004810 72 6b 79 25 3d 62 6c 6f 63 6b 21 31 36 2d 62 6c |rky%=block!16-bl| 00004820 6f 63 6b 21 32 34 0d 19 a0 15 70 78 3d 30 2d 28 |ock!24....px=0-(| 00004830 77 6f 72 6b 78 25 2d 78 63 6f 29 0d 19 aa 11 70 |workx%-xco)....p| 00004840 79 3d 77 6f 72 6b 79 25 2d 79 63 6f 0d 19 b4 3a |y=worky%-yco...:| 00004850 74 65 78 74 69 6e 66 6f 24 28 74 6f 74 29 3d 24 |textinfo$(tot)=$| 00004860 a4 69 6e 66 6f 28 65 6e 74 65 72 25 2c 30 29 2b |.info(enter%,0)+| 00004870 22 2c 22 2b c3 70 78 2b 22 2c 22 2b c3 70 79 2b |","+.px+","+.py+| 00004880 22 2c 22 2b c3 78 0d 19 be 49 c8 99 20 22 57 69 |","+.x...I.. "Wi| 00004890 6d 70 5f 46 6f 72 63 65 52 65 64 72 61 77 22 2c |mp_ForceRedraw",| 000048a0 2d 31 2c 77 6f 72 6b 78 25 2b 70 78 2c 77 6f 72 |-1,workx%+px,wor| 000048b0 6b 79 25 2d 70 79 2c 77 6f 72 6b 78 25 2b 70 78 |ky%-py,workx%+px| 000048c0 2b 78 2c 77 6f 72 6b 79 25 2d 70 79 2b 33 32 0d |+x,worky%-py+32.| 000048d0 19 c8 11 21 62 6c 6f 63 6b 3d 65 6e 74 65 72 25 |...!block=enter%| 000048e0 0d 19 d2 11 21 62 6c 6f 63 6b 3d 65 6e 74 65 72 |....!block=enter| 000048f0 25 0d 19 dc 1f c8 99 22 57 69 6d 70 5f 43 6c 6f |%......"Wimp_Clo| 00004900 73 65 57 69 6e 64 6f 77 22 2c 2c 62 6c 6f 63 6b |seWindow",,block| 00004910 0d 19 e6 0a 74 65 78 74 3d a3 0d 19 f0 12 74 6f |....text=.....to| 00004920 6f 6c 24 3d 6f 6c 64 74 6f 6f 6c 24 0d 19 fa 35 |ol$=oldtool$...5| 00004930 24 70 6f 69 6e 74 25 3d 74 6f 6f 6c 24 3a c8 99 |$point%=tool$:..| 00004940 20 22 57 69 6d 70 5f 53 70 72 69 74 65 4f 70 22 | "Wimp_SpriteOp"| 00004950 2c 33 36 2c 2c 70 6f 69 6e 74 25 2c 31 2c 38 2c |,36,,point%,1,8,| 00004960 38 0d 1a 04 05 e1 0d 1a 0e 11 dd f2 64 6f 65 6d |8...........doem| 00004970 28 6d 78 2c 6d 79 29 0d 1a 18 0e e7 20 74 6f 74 |(mx,my)..... tot| 00004980 3d 2d 31 20 e1 0d 1a 22 13 21 62 6c 6f 63 6b 3d |=-1 ...".!block=| 00004990 63 69 72 63 75 69 74 25 0d 1a 2c 21 c8 99 22 57 |circuit%..,!.."W| 000049a0 69 6d 70 5f 47 65 74 57 69 6e 64 6f 77 49 6e 66 |imp_GetWindowInf| 000049b0 6f 22 2c 2c 62 6c 6f 63 6b 0d 1a 36 1b 77 6f 72 |o",,block..6.wor| 000049c0 6b 78 25 3d 62 6c 6f 63 6b 21 34 2d 62 6c 6f 63 |kx%=block!4-bloc| 000049d0 6b 21 32 30 0d 1a 40 1c 77 6f 72 6b 79 25 3d 62 |k!20..@.worky%=b| 000049e0 6c 6f 63 6b 21 31 36 2d 62 6c 6f 63 6b 21 32 34 |lock!16-block!24| 000049f0 0d 1a 4a 0f e3 20 49 3d 30 20 b8 20 74 6f 74 0d |..J.. I=0 . tot.| 00004a00 1a 54 1a f2 77 6f 72 6b 6f 75 74 28 74 65 78 74 |.T..workout(text| 00004a10 69 6e 66 6f 24 28 49 29 29 0d 1a 5e 12 70 78 3d |info$(I))..^.px=| 00004a20 77 6f 72 6b 78 25 2b 77 78 63 6f 0d 1a 68 17 70 |workx%+wxco..h.p| 00004a30 78 32 3d 30 2d 28 77 6f 72 6b 78 25 2d 77 78 63 |x2=0-(workx%-wxc| 00004a40 6f 29 0d 1a 72 12 70 79 3d 77 6f 72 6b 79 25 2d |o)..r.py=worky%-| 00004a50 77 79 63 6f 0d 1a 7c 3b e7 20 6d 78 3e 70 78 2d |wyco..|;. mx>px-| 00004a60 33 31 20 80 20 6d 78 3c 70 78 2b 77 77 69 64 74 |31 . mx<px+wwidt| 00004a70 68 2b 33 31 20 80 20 6d 79 3e 70 79 2d 33 31 20 |h+31 . my>py-31 | 00004a80 80 20 6d 79 3c 70 79 2b 32 34 2b 33 31 20 8c 0d |. my<py+24+31 ..| 00004a90 1a 86 08 e6 20 31 35 0d 1a 90 1f f2 76 69 61 62 |.... 15.....viab| 00004aa0 6c 65 28 77 74 65 78 74 24 2c 62 6c 6f 63 6b 21 |le(wtext$,block!| 00004ab0 31 32 2c 70 78 29 0d 1a 9a 3b c8 99 22 46 6f 6e |12,px)...;.."Fon| 00004ac0 74 5f 50 61 69 6e 74 22 2c 2c 6e 65 77 74 65 78 |t_Paint",,newtex| 00004ad0 74 24 2c 25 31 30 30 31 30 2c 77 6f 72 6b 78 25 |t$,%10010,workx%| 00004ae0 2b 77 78 63 6f 2c 77 6f 72 6b 79 25 2d 77 79 63 |+wxco,worky%-wyc| 00004af0 6f 0d 1a a4 05 cd 0d 1a ae 05 ed 0d 1a b8 05 e1 |o...............| 00004b00 0d 1a c2 14 dd f2 77 6f 72 6b 6f 75 74 28 77 6f |......workout(wo| 00004b10 72 6b 24 29 0d 1a cc 20 77 74 65 78 74 24 3d c0 |rk$)... wtext$=.| 00004b20 77 6f 72 6b 24 2c a7 77 6f 72 6b 24 2c 22 2c 22 |work$,.work$,","| 00004b30 29 2d 31 29 0d 1a d6 26 77 6f 72 6b 24 3d c2 77 |)-1)...&work$=.w| 00004b40 6f 72 6b 24 2c a9 28 77 6f 72 6b 24 29 2d a7 77 |ork$,.(work$)-.w| 00004b50 6f 72 6b 24 2c 22 2c 22 29 29 0d 1a e0 21 77 78 |ork$,","))...!wx| 00004b60 63 6f 3d bb 28 c0 77 6f 72 6b 24 2c a7 77 6f 72 |co=.(.work$,.wor| 00004b70 6b 24 2c 22 2c 22 29 2d 31 29 29 0d 1a ea 26 77 |k$,",")-1))...&w| 00004b80 6f 72 6b 24 3d c2 77 6f 72 6b 24 2c a9 28 77 6f |ork$=.work$,.(wo| 00004b90 72 6b 24 29 2d a7 77 6f 72 6b 24 2c 22 2c 22 29 |rk$)-.work$,",")| 00004ba0 29 0d 1a f4 21 77 79 63 6f 3d bb 28 c0 77 6f 72 |)...!wyco=.(.wor| 00004bb0 6b 24 2c a7 77 6f 72 6b 24 2c 22 2c 22 29 2d 31 |k$,.work$,",")-1| 00004bc0 29 29 0d 1a fe 26 77 6f 72 6b 24 3d c2 77 6f 72 |))...&work$=.wor| 00004bd0 6b 24 2c a9 28 77 6f 72 6b 24 29 2d a7 77 6f 72 |k$,.(work$)-.wor| 00004be0 6b 24 2c 22 2c 22 29 29 0d 1b 08 23 77 77 69 64 |k$,","))...#wwid| 00004bf0 74 68 3d bb 28 c0 77 6f 72 6b 24 2c a7 77 6f 72 |th=.(.work$,.wor| 00004c00 6b 24 2c 22 2c 22 29 2d 31 29 29 0d 1b 12 05 e1 |k$,",")-1)).....| 00004c10 0d 1b 1c 17 dd f2 76 69 61 62 6c 65 28 64 74 24 |......viable(dt$| 00004c20 2c 79 31 2c 79 32 29 0d 1b 26 05 f5 0d 1b 30 18 |,y1,y2)..&....0.| 00004c30 78 79 3d a4 77 69 64 74 68 28 64 74 24 2c 79 31 |xy=.width(dt$,y1| 00004c40 2d 79 32 29 0d 1b 3a 1d e7 20 78 79 3d 30 20 64 |-y2)..:.. xy=0 d| 00004c50 74 24 3d c0 64 74 24 2c a9 28 64 74 24 29 2d 31 |t$=.dt$,.(dt$)-1| 00004c60 29 0d 1b 44 0a fd 20 78 79 3e 30 0d 1b 4e 10 6e |)..D.. xy>0..N.n| 00004c70 65 77 74 65 78 74 24 3d 64 74 24 0d 1b 58 05 e1 |ewtext$=dt$..X..| 00004c80 0d 1b 62 16 dd a4 77 69 64 74 68 28 66 74 65 78 |..b...width(ftex| 00004c90 74 24 2c 6f 70 29 0d 1b 6c 1a c8 99 22 46 6f 6e |t$,op)..l..."Fon| 00004ca0 74 5f 53 65 74 46 6f 6e 74 22 2c 66 6f 6e 74 25 |t_SetFont",font%| 00004cb0 0d 1b 76 2e c8 99 22 46 6f 6e 74 5f 43 6f 6e 76 |..v..."Font_Conv| 00004cc0 65 72 74 74 6f 70 6f 69 6e 74 73 22 2c 2c 6f 70 |erttopoints",,op| 00004cd0 2c 6f 70 20 b8 20 2c 78 63 79 2c 79 63 79 0d 1b |,op . ,xcy,ycy..| 00004ce0 80 3f c8 99 22 46 6f 6e 74 5f 53 74 72 69 6e 67 |.?.."Font_String| 00004cf0 57 69 64 74 68 22 2c 2c 66 74 65 78 74 24 2c 78 |Width",,ftext$,x| 00004d00 63 79 2c 79 63 79 2c 33 31 2c a9 28 66 74 65 78 |cy,ycy,31,.(ftex| 00004d10 74 24 29 20 b8 20 2c 2c 78 25 2c 79 25 0d 1b 8a |t$) . ,,x%,y%...| 00004d20 07 3d 78 25 0d 1b 94 0e dd a4 61 73 6b 28 66 6e |.=x%......ask(fn| 00004d30 24 29 0d 1b 9e 1e 21 69 63 6f 6e 64 3d 30 3a 24 |$)....!icond=0:$| 00004d40 28 69 63 6f 6e 64 2b 34 29 3d 66 6e 24 2b bd 30 |(icond+4)=fn$+.0| 00004d50 0d 1b a8 34 c8 99 22 57 69 6d 70 5f 52 65 70 6f |...4.."Wimp_Repo| 00004d60 72 74 45 72 72 6f 72 22 2c 69 63 6f 6e 64 2c 26 |rtError",icond,&| 00004d70 31 33 2c 22 21 43 69 72 63 75 69 74 22 20 b8 20 |13,"!Circuit" . | 00004d80 2c 62 75 74 0d 1b b2 08 3d 62 75 74 0d 1b bc 14 |,but....=but....| 00004d90 dd f2 64 65 6c 74 65 78 74 28 78 67 2c 79 67 29 |..deltext(xg,yg)| 00004da0 0d 1b c6 52 e7 20 74 6f 74 3d 2d 31 20 8c 20 74 |...R. tot=-1 . t| 00004db0 6f 6f 6c 24 3d 56 6f 6c 64 74 6f 6f 6c 24 3a 24 |ool$=Voldtool$:$| 00004dc0 70 6f 69 6e 74 25 3d 74 6f 6f 6c 24 3a c8 99 20 |point%=tool$:.. | 00004dd0 22 57 69 6d 70 5f 53 70 72 69 74 65 4f 70 22 2c |"Wimp_SpriteOp",| 00004de0 33 36 2c 2c 70 6f 69 6e 74 25 2c 31 2c 38 2c 38 |36,,point%,1,8,8| 00004df0 3a e1 0d 1b d0 13 21 62 6c 6f 63 6b 3d 63 69 72 |:.....!block=cir| 00004e00 63 75 69 74 25 0d 1b da 21 c8 99 22 57 69 6d 70 |cuit%...!.."Wimp| 00004e10 5f 47 65 74 57 69 6e 64 6f 77 49 6e 66 6f 22 2c |_GetWindowInfo",| 00004e20 2c 62 6c 6f 63 6b 0d 1b e4 1b 77 6f 72 6b 78 25 |,block....workx%| 00004e30 3d 62 6c 6f 63 6b 21 34 2d 62 6c 6f 63 6b 21 32 |=block!4-block!2| 00004e40 30 0d 1b ee 1c 77 6f 72 6b 79 25 3d 62 6c 6f 63 |0....worky%=bloc| 00004e50 6b 21 31 36 2d 62 6c 6f 63 6b 21 32 34 0d 1b f8 |k!16-block!24...| 00004e60 0f e3 20 48 3d 30 20 b8 20 74 6f 74 0d 1c 02 1a |.. H=0 . tot....| 00004e70 f2 77 6f 72 6b 6f 75 74 28 74 65 78 74 69 6e 66 |.workout(textinf| 00004e80 6f 24 28 48 29 29 0d 1c 0c 12 70 78 3d 77 6f 72 |o$(H))....px=wor| 00004e90 6b 78 25 2b 77 78 63 6f 0d 1c 16 12 70 79 3d 77 |kx%+wxco....py=w| 00004ea0 6f 72 6b 79 25 2d 77 79 63 6f 0d 1c 20 3c e7 20 |orky%-wyco.. <. | 00004eb0 78 67 3e 70 78 20 80 20 78 67 3c 70 78 2b 77 77 |xg>px . xg<px+ww| 00004ec0 69 64 74 68 20 80 20 79 67 3e 70 79 20 80 20 79 |idth . yg>py . y| 00004ed0 67 3c 70 79 2b 32 34 20 8c 20 f2 64 65 6c 65 74 |g<py+24 . .delet| 00004ee0 65 28 48 29 3a e1 0d 1c 2a 07 ed 20 48 0d 1c 34 |e(H):...*.. H..4| 00004ef0 45 74 6f 6f 6c 24 3d 56 6f 6c 64 74 6f 6f 6c 24 |Etool$=Voldtool$| 00004f00 3a 24 70 6f 69 6e 74 25 3d 74 6f 6f 6c 24 3a c8 |:$point%=tool$:.| 00004f10 99 20 22 57 69 6d 70 5f 53 70 72 69 74 65 4f 70 |. "Wimp_SpriteOp| 00004f20 22 2c 33 36 2c 2c 70 6f 69 6e 74 25 2c 31 2c 38 |",36,,point%,1,8| 00004f30 2c 38 0d 1c 3e 05 e1 0d 1c 48 11 dd f2 64 65 6c |,8..>....H...del| 00004f40 65 74 65 28 6c 65 74 29 0d 1c 52 13 21 62 6c 6f |ete(let)..R.!blo| 00004f50 63 6b 3d 63 69 72 63 75 69 74 25 0d 1c 5c 21 c8 |ck=circuit%..\!.| 00004f60 99 22 57 69 6d 70 5f 47 65 74 57 69 6e 64 6f 77 |."Wimp_GetWindow| 00004f70 49 6e 66 6f 22 2c 2c 62 6c 6f 63 6b 0d 1c 66 1b |Info",,block..f.| 00004f80 77 6f 72 6b 78 25 3d 62 6c 6f 63 6b 21 34 2d 62 |workx%=block!4-b| 00004f90 6c 6f 63 6b 21 32 30 0d 1c 70 1c 77 6f 72 6b 79 |lock!20..p.worky| 00004fa0 25 3d 62 6c 6f 63 6b 21 31 36 2d 62 6c 6f 63 6b |%=block!16-block| 00004fb0 21 32 34 0d 1c 7a 1c f2 77 6f 72 6b 6f 75 74 28 |!24..z..workout(| 00004fc0 74 65 78 74 69 6e 66 6f 24 28 6c 65 74 29 29 0d |textinfo$(let)).| 00004fd0 1c 84 0f e7 20 6c 65 74 3d 74 6f 74 20 8c 0d 1c |.... let=tot ...| 00004fe0 8e 0a 74 6f 74 2d 3d 31 0d 1c 98 58 c8 99 20 22 |..tot-=1...X.. "| 00004ff0 57 69 6d 70 5f 46 6f 72 63 65 52 65 64 72 61 77 |Wimp_ForceRedraw| 00005000 22 2c 2d 31 2c 77 6f 72 6b 78 25 2b 77 78 63 6f |",-1,workx%+wxco| 00005010 2c 77 6f 72 6b 79 25 2d 77 79 63 6f 2d 35 2c 77 |,worky%-wyco-5,w| 00005020 6f 72 6b 78 25 2b 77 78 63 6f 2b 77 77 69 64 74 |orkx%+wxco+wwidt| 00005030 68 2c 77 6f 72 6b 79 25 2d 77 79 63 6f 2b 33 32 |h,worky%-wyco+32| 00005040 0d 1c a2 45 74 6f 6f 6c 24 3d 56 6f 6c 64 74 6f |...Etool$=Voldto| 00005050 6f 6c 24 3a 24 70 6f 69 6e 74 25 3d 74 6f 6f 6c |ol$:$point%=tool| 00005060 24 3a c8 99 20 22 57 69 6d 70 5f 53 70 72 69 74 |$:.. "Wimp_Sprit| 00005070 65 4f 70 22 2c 33 36 2c 2c 70 6f 69 6e 74 25 2c |eOp",36,,point%,| 00005080 31 2c 38 2c 38 0d 1c ac 05 cd 0d 1c b6 0f e7 20 |1,8,8.......... | 00005090 6c 65 74 3c 74 6f 74 20 8c 0d 1c c0 13 e3 20 56 |let<tot ...... V| 000050a0 3d 6c 65 74 20 b8 20 74 6f 74 2d 31 0d 1c ca 1f |=let . tot-1....| 000050b0 74 65 78 74 69 6e 66 6f 24 28 56 29 3d 74 65 78 |textinfo$(V)=tex| 000050c0 74 69 6e 66 6f 24 28 56 2b 31 29 0d 1c d4 07 ed |tinfo$(V+1).....| 000050d0 20 56 0d 1c de 0a 74 6f 74 2d 3d 31 0d 1c e8 58 | V....tot-=1...X| 000050e0 c8 99 20 22 57 69 6d 70 5f 46 6f 72 63 65 52 65 |.. "Wimp_ForceRe| 000050f0 64 72 61 77 22 2c 2d 31 2c 77 6f 72 6b 78 25 2b |draw",-1,workx%+| 00005100 77 78 63 6f 2c 77 6f 72 6b 79 25 2d 77 79 63 6f |wxco,worky%-wyco| 00005110 2d 35 2c 77 6f 72 6b 78 25 2b 77 78 63 6f 2b 77 |-5,workx%+wxco+w| 00005120 77 69 64 74 68 2c 77 6f 72 6b 79 25 2d 77 79 63 |width,worky%-wyc| 00005130 6f 2b 33 32 0d 1c f2 45 74 6f 6f 6c 24 3d 56 6f |o+32...Etool$=Vo| 00005140 6c 64 74 6f 6f 6c 24 3a 24 70 6f 69 6e 74 25 3d |ldtool$:$point%=| 00005150 74 6f 6f 6c 24 3a c8 99 20 22 57 69 6d 70 5f 53 |tool$:.. "Wimp_S| 00005160 70 72 69 74 65 4f 70 22 2c 33 36 2c 2c 70 6f 69 |priteOp",36,,poi| 00005170 6e 74 25 2c 31 2c 38 2c 38 0d 1c fc 05 cd 0d 1d |nt%,1,8,8.......| 00005180 06 05 e1 0d 1d 10 0e dd f2 6d 6f 64 65 70 72 6f |.........modepro| 00005190 63 0d 1d 1a 2f c8 99 20 26 32 45 2c 32 35 36 2b |c.../.. &2E,256+| 000051a0 34 30 2c 73 70 72 25 2c 22 6c 65 64 72 22 20 b8 |40,spr%,"ledr" .| 000051b0 20 2c 2c 2c 77 25 2c 68 25 2c 2c 6d 6f 64 65 25 | ,,,w%,h%,,mode%| 000051c0 0d 1d 24 2c c8 99 22 4f 53 5f 52 65 61 64 4d 6f |..$,.."OS_ReadMo| 000051d0 64 65 56 61 72 69 61 62 6c 65 22 2c 6d 6f 64 65 |deVariable",mode| 000051e0 25 2c 34 20 b8 2c 2c 78 65 69 67 25 0d 1d 2e 2c |%,4 .,,xeig%...,| 000051f0 c8 99 22 4f 53 5f 52 65 61 64 4d 6f 64 65 56 61 |.."OS_ReadModeVa| 00005200 72 69 61 62 6c 65 22 2c 6d 6f 64 65 25 2c 35 20 |riable",mode%,5 | 00005210 b8 2c 2c 79 65 69 67 25 0d 1d 38 11 77 69 25 3d |.,,yeig%..8.wi%=| 00005220 77 25 3c 3c 78 65 69 67 25 0d 1d 42 11 68 65 25 |w%<<xeig%..B.he%| 00005230 3d 68 25 3c 3c 79 65 69 67 25 0d 1d 4c 23 c8 99 |=h%<<yeig%..L#..| 00005240 26 34 30 37 34 30 2c 6d 6f 64 65 25 2c 30 2c 2d |&40740,mode%,0,-| 00005250 31 2c 30 2c 73 63 61 6c 62 6c 6f 63 6b 0d 1d 56 |1,0,scalblock..V| 00005260 25 c8 99 22 4f 53 5f 52 65 61 64 4d 6f 64 65 56 |%.."OS_ReadModeV| 00005270 61 72 69 61 62 6c 65 22 2c eb 2c 31 31 20 b8 2c |ariable",.,11 .,| 00005280 2c 6f 0d 1d 60 25 c8 99 22 4f 53 5f 52 65 61 64 |,o..`%.."OS_Read| 00005290 4d 6f 64 65 56 61 72 69 61 62 6c 65 22 2c eb 2c |ModeVariable",.,| 000052a0 31 32 20 b8 2c 2c 70 0d 1d 6a 0d 6f 2b 3d 31 3a |12 .,,p..j.o+=1:| 000052b0 70 2b 3d 31 0d 1d 74 1b e7 20 70 2f 6f 3d 2e 38 |p+=1..t.. p/o=.8| 000052c0 20 80 20 eb 3c 3e 31 33 20 8c 20 73 73 3d 31 0d | . .<>13 . ss=1.| 000052d0 1d 7e 1c e7 20 70 2f 6f 3d 2e 37 35 20 80 20 eb |.~.. p/o=.75 . .| 000052e0 3c 3e 31 33 20 8c 20 73 73 3d 31 0d 1d 88 25 e7 |<>13 . ss=1...%.| 000052f0 20 70 2f 6f 3c 3e 2e 38 20 80 20 70 2f 6f 3c 3e | p/o<>.8 . p/o<>| 00005300 2e 37 35 20 84 20 eb 3d 31 33 20 73 73 3d 2e 35 |.75 . .=13 ss=.5| 00005310 0d 1d 92 3c 21 73 63 61 6c 3d 77 69 25 3a 73 63 |...<!scal=wi%:sc| 00005320 61 6c 21 34 3d 68 65 25 3a 73 63 61 6c 21 38 3d |al!4=he%:scal!8=| 00005330 77 25 3c 3c 28 31 2f 31 29 3a 73 63 61 6c 21 31 |w%<<(1/1):scal!1| 00005340 32 3d 68 25 3c 3c 28 31 2f 73 73 29 0d 1d 9c 05 |2=h%<<(1/ss)....| 00005350 e1 0d 1d a6 0a dd f2 70 61 6e 65 0d 1d b0 0f e7 |.......pane.....| 00005360 20 74 6f 6f 6c 73 6f 6e 20 8c 0d 1d ba 33 78 31 | toolson ....3x1| 00005370 3d 62 6c 6f 63 6b 21 34 2d 32 35 30 3a 78 32 3d |=block!4-250:x2=| 00005380 78 31 2b 32 34 38 3a 79 31 3d 62 6c 6f 63 6b 21 |x1+248:y1=block!| 00005390 38 3a 79 32 3d 62 6c 6f 63 6b 21 31 36 0d 1d c4 |8:y2=block!16...| 000053a0 0e 73 69 7a 65 3d 78 32 2d 78 31 0d 1d ce 3d 70 |.size=x2-x1...=p| 000053b0 25 3d 62 6c 6f 63 6b 21 32 38 3a 21 69 63 6f 6e |%=block!28:!icon| 000053c0 64 3d 74 6f 6f 6c 62 6f 78 25 3a c8 99 22 57 69 |d=toolbox%:.."Wi| 000053d0 6d 70 5f 47 65 74 57 69 6e 64 6f 77 49 6e 66 6f |mp_GetWindowInfo| 000053e0 22 2c 2c 69 63 6f 6e 64 0d 1d d8 19 e7 20 78 31 |",,icond..... x1| 000053f0 3c 30 20 8c 20 78 31 3d 30 3a 78 32 3d 73 69 7a |<0 . x1=0:x2=siz| 00005400 65 0d 1d e2 42 69 63 6f 6e 64 21 34 3d 78 31 3a |e...Bicond!4=x1:| 00005410 69 63 6f 6e 64 21 38 3d 79 32 2d 33 30 38 3a 69 |icond!8=y2-308:i| 00005420 63 6f 6e 64 21 31 32 3d 78 32 3a 69 63 6f 6e 64 |cond!12=x2:icond| 00005430 21 31 36 3d 79 32 3a 69 63 6f 6e 64 21 32 38 3d |!16=y2:icond!28=| 00005440 70 25 3a 0d 1d ec 1e c8 99 22 57 69 6d 70 5f 4f |p%:......"Wimp_O| 00005450 70 65 6e 57 69 6e 64 6f 77 22 2c 2c 69 63 6f 6e |penWindow",,icon| 00005460 64 0d 1d f6 30 62 6c 6f 63 6b 21 32 38 3d 74 6f |d...0block!28=to| 00005470 6f 6c 62 6f 78 25 3a c8 99 22 57 69 6d 70 5f 4f |olbox%:.."Wimp_O| 00005480 70 65 6e 57 69 6e 64 6f 77 22 2c 2c 62 6c 6f 63 |penWindow",,bloc| 00005490 6b 0d 1e 00 05 cd 0d 1e 0a 1e c8 99 22 57 69 6d |k..........."Wim| 000054a0 70 5f 4f 70 65 6e 57 69 6e 64 6f 77 22 2c 2c 62 |p_OpenWindow",,b| 000054b0 6c 6f 63 6b 0d 1e 14 05 e1 0d 1e 1e 13 dd f2 74 |lock...........t| 000054c0 6f 6f 6c 62 6f 78 28 66 6c 61 67 29 0d 1e 28 3b |oolbox(flag)..(;| 000054d0 e7 20 66 6c 61 67 3d 2d 31 20 8c 20 21 62 6c 6f |. flag=-1 . !blo| 000054e0 63 6b 3d 74 6f 6f 6c 62 6f 78 25 3a c8 99 22 57 |ck=toolbox%:.."W| 000054f0 69 6d 70 5f 43 6c 6f 73 65 57 69 6e 64 6f 77 22 |imp_CloseWindow"| 00005500 2c 2c 62 6c 6f 63 6b 0d 1e 32 0e e7 20 66 6c 61 |,,block..2.. fla| 00005510 67 3d 31 20 8c 0d 1e 3c 13 21 62 6c 6f 63 6b 3d |g=1 ...<.!block=| 00005520 63 69 72 63 75 69 74 25 0d 1e 46 22 c8 99 22 57 |circuit%..F".."W| 00005530 69 6d 70 5f 47 65 74 57 69 6e 64 6f 77 53 74 61 |imp_GetWindowSta| 00005540 74 65 22 2c 2c 62 6c 6f 63 6b 0d 1e 50 1b 6f 70 |te",,block..P.op| 00005550 65 6e 3d 62 6c 6f 63 6b 21 33 32 20 80 20 28 31 |en=block!32 . (1| 00005560 3c 3c 31 36 29 0d 1e 5a 25 e7 20 6f 70 65 6e 3c |<<16)..Z%. open<| 00005570 3e 30 20 8c 20 21 69 63 6f 6e 64 3d 63 69 72 63 |>0 . !icond=circ| 00005580 75 69 74 25 3a f2 70 61 6e 65 0d 1e 64 05 cd 0d |uit%:.pane..d...| 00005590 1e 6e 05 e1 0d 1e 78 11 dd f2 65 72 72 6f 72 28 |.n....x...error(| 000055a0 65 72 72 24 29 0d 1e 82 4d 21 69 63 6f 6e 64 3d |err$)...M!icond=| 000055b0 30 3a 24 28 69 63 6f 6e 64 2b 34 29 3d 65 72 72 |0:$(icond+4)=err| 000055c0 24 2b 22 2e 22 2b 22 20 50 72 65 73 73 20 4f 4b |$+"."+" Press OK| 000055d0 20 74 6f 20 63 6f 6e 74 69 6e 75 65 20 6f 72 20 | to continue or | 000055e0 43 61 6e 63 65 6c 20 74 6f 20 71 75 69 74 22 2b |Cancel to quit"+| 000055f0 bd 30 0d 1e 8c 32 c8 99 22 57 69 6d 70 5f 52 65 |.0...2.."Wimp_Re| 00005600 70 6f 72 74 45 72 72 6f 72 22 2c 69 63 6f 6e 64 |portError",icond| 00005610 2c 33 2c 22 21 43 69 72 63 75 69 74 22 20 b8 20 |,3,"!Circuit" . | 00005620 2c 62 75 74 0d 1e 96 34 e7 20 62 75 74 3d 32 20 |,but...4. but=2 | 00005630 8c 20 c8 99 72 65 69 6e 74 65 72 2c 6d 79 74 61 |. ..reinter,myta| 00005640 73 6b 25 3a c8 99 22 57 69 6d 70 5f 43 6c 6f 73 |sk%:.."Wimp_Clos| 00005650 65 44 6f 77 6e 22 3a e0 0d 1e a0 05 e1 0d 1e aa |eDown":.........| 00005660 10 dd f2 61 72 65 79 6f 75 73 75 72 65 0d 1e b4 |...areyousure...| 00005670 0d e7 20 73 61 76 65 64 20 8c 0d 1e be 13 f2 6f |.. saved ......o| 00005680 70 65 6e 77 69 6e 28 71 75 69 74 25 29 0d 1e c8 |penwin(quit%)...| 00005690 07 ef 20 37 0d 1e d2 31 f2 69 6e 66 6f 28 71 75 |.. 7...1.info(qu| 000056a0 69 74 25 2c 31 2c 22 59 6f 75 72 20 66 69 6c 65 |it%,1,"Your file| 000056b0 20 68 61 73 20 62 65 65 6e 20 6d 6f 64 69 66 69 | has been modifi| 000056c0 65 64 2e 22 29 0d 1e dc 4d 21 62 6c 6f 63 6b 3d |ed.")...M!block=| 000056d0 31 33 30 3a 62 6c 6f 63 6b 21 34 3d 31 33 31 3a |130:block!4=131:| 000056e0 62 6c 6f 63 6b 21 38 3d 2d 31 3a c8 99 22 4f 53 |block!8=-1:.."OS| 000056f0 5f 52 65 61 64 56 64 75 56 61 72 69 61 62 6c 65 |_ReadVduVariable| 00005700 73 22 2c 62 6c 6f 63 6b 2c 62 6c 6f 63 6b 2b 31 |s",block,block+1| 00005710 32 38 0d 1e e6 25 c8 99 22 4f 53 5f 52 65 61 64 |28...%.."OS_Read| 00005720 4d 6f 64 65 56 61 72 69 61 62 6c 65 22 2c eb 2c |ModeVariable",.,| 00005730 34 20 b8 20 2c 2c 78 0d 1e f0 25 c8 99 22 4f 53 |4 . ,,x...%.."OS| 00005740 5f 52 65 61 64 4d 6f 64 65 56 61 72 69 61 62 6c |_ReadModeVariabl| 00005750 65 22 2c eb 2c 35 20 b8 20 2c 2c 79 0d 1e fa 39 |e",.,5 . ,,y...9| 00005760 c8 97 20 c8 93 20 30 2c 30 2c 28 28 28 62 6c 6f |.. .. 0,0,(((blo| 00005770 63 6b 21 31 32 38 29 2b 31 29 2a 32 5e 78 29 2d |ck!128)+1)*2^x)-| 00005780 31 2c 28 28 62 6c 6f 63 6b 21 31 33 32 29 2b 31 |1,((block!132)+1| 00005790 29 2a 32 5e 79 0d 1f 04 05 cd 0d 1f 0e 34 e7 20 |)*2^y........4. | 000057a0 ac 20 73 61 76 65 64 20 c8 99 72 65 69 6e 74 65 |. saved ..reinte| 000057b0 72 2c 6d 79 74 61 73 6b 25 3a c8 99 22 57 69 6d |r,mytask%:.."Wim| 000057c0 70 5f 43 6c 6f 73 65 44 6f 77 6e 22 3a e0 0d 1f |p_CloseDown":...| 000057d0 18 05 e1 0d 1f 22 10 dd f2 71 75 65 72 79 28 71 |....."...query(q| 000057e0 75 24 29 0d 1f 2c 14 f2 6f 70 65 6e 77 69 6e 28 |u$)..,..openwin(| 000057f0 71 75 65 72 79 25 29 0d 1f 36 07 ef 20 37 0d 1f |query%)..6.. 7..| 00005800 40 11 21 62 6c 6f 63 6b 3d 71 75 65 72 79 25 0d |@.!block=query%.| 00005810 1f 4a 21 c8 99 22 57 69 6d 70 5f 47 65 74 57 69 |.J!.."Wimp_GetWi| 00005820 6e 64 6f 77 49 6e 66 6f 22 2c 2c 62 6c 6f 63 6b |ndowInfo",,block| 00005830 0d 1f 54 1b 77 6f 72 6b 78 25 3d 62 6c 6f 63 6b |..T.workx%=block| 00005840 21 31 32 2d 62 6c 6f 63 6b 21 34 0d 1f 5e 1b 77 |!12-block!4..^.w| 00005850 6f 72 6b 79 25 3d 62 6c 6f 63 6b 21 31 36 2d 62 |orky%=block!16-b| 00005860 6c 6f 63 6b 21 38 0d 1f 68 27 c8 97 20 c8 93 20 |lock!8..h'.. .. | 00005870 62 6c 6f 63 6b 21 34 2c 62 6c 6f 63 6b 21 38 2c |block!4,block!8,| 00005880 77 6f 72 6b 78 25 2c 77 6f 72 6b 79 25 0d 1f 72 |workx%,worky%..r| 00005890 17 f2 69 6e 66 6f 28 71 75 65 72 79 25 2c 31 2c |..info(query%,1,| 000058a0 71 75 24 29 0d 1f 7c 05 e1 0d 1f 86 0a dd f2 65 |qu$)..|........e| 000058b0 6e 64 71 0d 1f 90 12 f2 63 6c 6f 73 65 28 71 75 |ndq.....close(qu| 000058c0 65 72 79 25 29 0d 1f 9a 4d 21 62 6c 6f 63 6b 3d |ery%)...M!block=| 000058d0 31 33 30 3a 62 6c 6f 63 6b 21 34 3d 31 33 31 3a |130:block!4=131:| 000058e0 62 6c 6f 63 6b 21 38 3d 2d 31 3a c8 99 22 4f 53 |block!8=-1:.."OS| 000058f0 5f 52 65 61 64 56 64 75 56 61 72 69 61 62 6c 65 |_ReadVduVariable| 00005900 73 22 2c 62 6c 6f 63 6b 2c 62 6c 6f 63 6b 2b 31 |s",block,block+1| 00005910 32 38 0d 1f a4 25 c8 99 22 4f 53 5f 52 65 61 64 |28...%.."OS_Read| 00005920 4d 6f 64 65 56 61 72 69 61 62 6c 65 22 2c eb 2c |ModeVariable",.,| 00005930 34 20 b8 20 2c 2c 78 0d 1f ae 25 c8 99 22 4f 53 |4 . ,,x...%.."OS| 00005940 5f 52 65 61 64 4d 6f 64 65 56 61 72 69 61 62 6c |_ReadModeVariabl| 00005950 65 22 2c eb 2c 35 20 b8 20 2c 2c 79 0d 1f b8 39 |e",.,5 . ,,y...9| 00005960 c8 97 20 c8 93 20 30 2c 30 2c 28 28 28 62 6c 6f |.. .. 0,0,(((blo| 00005970 63 6b 21 31 32 38 29 2b 31 29 2a 32 5e 78 29 2d |ck!128)+1)*2^x)-| 00005980 31 2c 28 28 62 6c 6f 63 6b 21 31 33 32 29 2b 31 |1,((block!132)+1| 00005990 29 2a 32 5e 79 0d 1f c2 05 e1 0d 1f cc 13 dd f2 |)*2^y...........| 000059a0 63 6c 6f 73 65 28 21 62 6c 6f 63 6b 29 0d 1f d6 |close(!block)...| 000059b0 1f c8 99 22 57 69 6d 70 5f 43 6c 6f 73 65 57 69 |..."Wimp_CloseWi| 000059c0 6e 64 6f 77 22 2c 2c 62 6c 6f 63 6b 0d 1f e0 05 |ndow",,block....| 000059d0 e1 0d 1f ea 13 dd f2 64 72 61 67 73 70 72 28 66 |.......dragspr(f| 000059e0 6c 61 67 29 0d 1f f4 0f e7 20 64 72 61 67 73 70 |lag)..... dragsp| 000059f0 72 20 8c 0d 1f fe 0d c8 8e 20 66 6c 61 67 20 ca |r ....... flag .| 00005a00 0d 20 08 08 c9 20 31 3a 0d 20 12 3b 21 62 6c 6f |. ... 1:. .;!blo| 00005a10 63 6b 3d 77 69 6e 73 61 76 65 25 3a 62 6c 6f 63 |ck=winsave%:bloc| 00005a20 6b 21 34 3d 32 3a c8 99 20 22 57 69 6d 70 5f 47 |k!4=2:.. "Wimp_G| 00005a30 65 74 49 63 6f 6e 53 74 61 74 65 22 2c 2c 62 6c |etIconState",,bl| 00005a40 6f 63 6b 0d 20 1c 2b 62 6c 6f 63 6b 21 38 3d 30 |ock. .+block!8=0| 00005a50 3a 62 6c 6f 63 6b 21 31 32 3d 30 3a 24 28 62 6c |:block!12=0:$(bl| 00005a60 6f 63 6b 21 33 32 29 3d 69 6e 64 69 72 24 0d 20 |ock!32)=indir$. | 00005a70 26 21 c8 99 20 22 57 69 6d 70 5f 53 65 74 49 63 |&!.. "Wimp_SetIc| 00005a80 6f 6e 53 74 61 74 65 22 2c 2c 62 6c 6f 63 6b 0d |onState",,block.| 00005a90 20 30 19 c8 99 20 22 44 72 61 67 41 53 70 72 69 | 0... "DragASpri| 00005aa0 74 65 5f 53 74 6f 70 22 0d 20 3a 09 c9 20 2d 31 |te_Stop". :.. -1| 00005ab0 3a 0d 20 44 3b 21 62 6c 6f 63 6b 3d 77 69 6e 73 |:. D;!block=wins| 00005ac0 61 76 65 25 3a 62 6c 6f 63 6b 21 34 3d 32 3a c8 |ave%:block!4=2:.| 00005ad0 99 20 22 57 69 6d 70 5f 47 65 74 49 63 6f 6e 53 |. "Wimp_GetIconS| 00005ae0 74 61 74 65 22 2c 2c 62 6c 6f 63 6b 0d 20 4e 16 |tate",,block. N.| 00005af0 69 6e 64 69 72 24 3d 24 28 62 6c 6f 63 6b 21 33 |indir$=$(block!3| 00005b00 32 29 0d 20 58 28 62 6c 6f 63 6b 21 38 3d 30 3a |2). X(block!8=0:| 00005b10 62 6c 6f 63 6b 21 31 32 3d 30 3a 24 28 62 6c 6f |block!12=0:$(blo| 00005b20 63 6b 21 33 32 29 3d bd 31 33 0d 20 62 21 c8 99 |ck!32)=.13. b!..| 00005b30 20 22 57 69 6d 70 5f 53 65 74 49 63 6f 6e 53 74 | "Wimp_SetIconSt| 00005b40 61 74 65 22 2c 2c 62 6c 6f 63 6b 0d 20 6c 05 cb |ate",,block. l..| 00005b50 0d 20 76 05 cd 0d 20 80 05 e1 0d 20 8a 11 dd f2 |. v... .... ....| 00005b60 73 63 72 6f 6c 6c 28 78 2c 79 29 0d 20 94 0b e7 |scroll(x,y). ...| 00005b70 20 78 3d 30 20 8c 0d 20 9e 0a c8 8e 20 79 20 ca | x=0 .. .... y .| 00005b80 0d 20 a8 08 c9 20 31 3a 0d 20 b2 1b 62 75 66 66 |. ... 1:. ..buff| 00005b90 65 72 32 24 3d 70 73 65 74 24 28 30 2c 67 72 69 |er2$=pset$(0,gri| 00005ba0 64 79 29 0d 20 bc 13 e3 20 4a 3d 30 20 b8 20 67 |dy). ... J=0 . g| 00005bb0 72 69 64 78 2d 31 0d 20 c6 1f 62 75 66 66 65 72 |ridx-1. ..buffer| 00005bc0 32 24 3d 70 73 65 74 24 28 67 72 69 64 78 2d 4a |2$=pset$(gridx-J| 00005bd0 2d 31 2c 30 29 0d 20 d0 11 e3 20 49 3d 31 20 b8 |-1,0). ... I=1 .| 00005be0 20 67 72 69 64 79 0d 20 da 24 62 75 66 66 65 72 | gridy. .$buffer| 00005bf0 24 3d 70 73 65 74 24 28 67 72 69 64 78 2d 4a 2d |$=pset$(gridx-J-| 00005c00 31 2c 67 72 69 64 79 2d 49 29 0d 20 e4 25 70 73 |1,gridy-I). .%ps| 00005c10 65 74 24 28 67 72 69 64 78 2d 4a 2d 31 2c 67 72 |et$(gridx-J-1,gr| 00005c20 69 64 79 2d 49 29 3d 62 75 66 66 65 72 32 24 0d |idy-I)=buffer2$.| 00005c30 20 ee 14 62 75 66 66 65 72 32 24 3d 62 75 66 66 | ..buffer2$=buff| 00005c40 65 72 24 0d 20 f8 05 ed 0d 21 02 05 ed 0d 21 0c |er$. ....!....!.| 00005c50 0e e7 20 74 6f 74 3e 2d 31 20 8c 0d 21 16 0f e3 |.. tot>-1 ..!...| 00005c60 20 49 3d 30 20 b8 20 74 6f 74 0d 21 20 1a f2 77 | I=0 . tot.! ..w| 00005c70 6f 72 6b 6f 75 74 28 74 65 78 74 69 6e 66 6f 24 |orkout(textinfo$| 00005c80 28 49 29 29 0d 21 2a 28 70 79 3d 77 79 63 6f 2d |(I)).!*(py=wyco-| 00005c90 36 32 3a e7 20 70 79 3c 30 20 8c 20 70 79 3d 70 |62:. py<0 . py=p| 00005ca0 79 2b 28 67 72 69 64 79 2a 36 32 29 0d 21 34 35 |y+(gridy*62).!45| 00005cb0 74 65 78 74 69 6e 66 6f 24 28 49 29 3d 77 74 65 |textinfo$(I)=wte| 00005cc0 78 74 24 2b 22 2c 22 2b c3 77 78 63 6f 2b 22 2c |xt$+","+.wxco+",| 00005cd0 22 2b c3 70 79 2b 22 2c 22 2b c3 77 77 69 64 74 |"+.py+","+.wwidt| 00005ce0 68 0d 21 3e 05 ed 0d 21 48 05 cd 0d 21 52 09 c9 |h.!>...!H...!R..| 00005cf0 20 2d 31 3a 0d 21 5c 1b 62 75 66 66 65 72 32 24 | -1:.!\.buffer2$| 00005d00 3d 70 73 65 74 24 28 30 2c 67 72 69 64 79 29 0d |=pset$(0,gridy).| 00005d10 21 66 13 e3 20 4a 3d 30 20 b8 20 67 72 69 64 78 |!f.. J=0 . gridx| 00005d20 2d 31 0d 21 70 25 62 75 66 66 65 72 32 24 3d 70 |-1.!p%buffer2$=p| 00005d30 73 65 74 24 28 67 72 69 64 78 2d 4a 2d 31 2c 67 |set$(gridx-J-1,g| 00005d40 72 69 64 79 2d 31 29 0d 21 7a 13 e3 20 49 3d 30 |ridy-1).!z.. I=0| 00005d50 20 b8 20 67 72 69 64 79 2d 31 0d 21 84 1e 62 75 | . gridy-1.!..bu| 00005d60 66 66 65 72 24 3d 70 73 65 74 24 28 67 72 69 64 |ffer$=pset$(grid| 00005d70 78 2d 4a 2d 31 2c 49 29 0d 21 8e 1f 70 73 65 74 |x-J-1,I).!..pset| 00005d80 24 28 67 72 69 64 78 2d 4a 2d 31 2c 49 29 3d 62 |$(gridx-J-1,I)=b| 00005d90 75 66 66 65 72 32 24 0d 21 98 14 62 75 66 66 65 |uffer2$.!..buffe| 00005da0 72 32 24 3d 62 75 66 66 65 72 24 0d 21 a2 05 ed |r2$=buffer$.!...| 00005db0 0d 21 ac 05 ed 0d 21 b6 0e e7 20 74 6f 74 3e 2d |.!....!... tot>-| 00005dc0 31 20 8c 0d 21 c0 0f e3 20 49 3d 30 20 b8 20 74 |1 ..!... I=0 . t| 00005dd0 6f 74 0d 21 ca 1a f2 77 6f 72 6b 6f 75 74 28 74 |ot.!...workout(t| 00005de0 65 78 74 69 6e 66 6f 24 28 49 29 29 0d 21 d4 2f |extinfo$(I)).!./| 00005df0 70 79 3d 77 79 63 6f 2b 36 32 3a e7 20 70 79 3e |py=wyco+62:. py>| 00005e00 67 72 69 64 79 2a 36 32 20 8c 20 70 79 3d 70 79 |gridy*62 . py=py| 00005e10 2d 28 67 72 69 64 79 2a 36 32 29 0d 21 de 35 74 |-(gridy*62).!.5t| 00005e20 65 78 74 69 6e 66 6f 24 28 49 29 3d 77 74 65 78 |extinfo$(I)=wtex| 00005e30 74 24 2b 22 2c 22 2b c3 77 78 63 6f 2b 22 2c 22 |t$+","+.wxco+","| 00005e40 2b c3 70 79 2b 22 2c 22 2b c3 77 77 69 64 74 68 |+.py+","+.wwidth| 00005e50 0d 21 e8 05 ed 0d 21 f2 05 cd 0d 21 fc 05 cb 0d |.!....!....!....| 00005e60 22 06 05 cd 0d 22 10 0b e7 20 79 3d 30 20 8c 0d |"...."... y=0 ..| 00005e70 22 1a 0a c8 8e 20 78 20 ca 0d 22 24 07 c9 20 31 |".... x .."$.. 1| 00005e80 0d 22 2e 1b 62 75 66 66 65 72 32 24 3d 70 73 65 |."..buffer2$=pse| 00005e90 74 24 28 30 2c 67 72 69 64 79 29 0d 22 38 11 e3 |t$(0,gridy)."8..| 00005ea0 20 49 3d 30 20 b8 20 67 72 69 64 79 0d 22 42 1d | I=0 . gridy."B.| 00005eb0 62 75 66 66 65 72 32 24 3d 70 73 65 74 24 28 30 |buffer2$=pset$(0| 00005ec0 2c 67 72 69 64 79 2d 49 29 0d 22 4c 13 e3 20 4a |,gridy-I)."L.. J| 00005ed0 3d 30 20 b8 20 67 72 69 64 78 2d 31 0d 22 56 24 |=0 . gridx-1."V$| 00005ee0 62 75 66 66 65 72 24 3d 70 73 65 74 24 28 67 72 |buffer$=pset$(gr| 00005ef0 69 64 78 2d 4a 2d 31 2c 67 72 69 64 79 2d 49 29 |idx-J-1,gridy-I)| 00005f00 0d 22 60 25 70 73 65 74 24 28 67 72 69 64 78 2d |."`%pset$(gridx-| 00005f10 4a 2d 31 2c 67 72 69 64 79 2d 49 29 3d 62 75 66 |J-1,gridy-I)=buf| 00005f20 66 65 72 32 24 0d 22 6a 14 62 75 66 66 65 72 32 |fer2$."j.buffer2| 00005f30 24 3d 62 75 66 66 65 72 24 0d 22 74 05 ed 0d 22 |$=buffer$."t..."| 00005f40 7e 05 ed 0d 22 88 0e e7 20 74 6f 74 3e 2d 31 20 |~..."... tot>-1 | 00005f50 8c 0d 22 92 0f e3 20 49 3d 30 20 b8 20 74 6f 74 |.."... I=0 . tot| 00005f60 0d 22 9c 1a f2 77 6f 72 6b 6f 75 74 28 74 65 78 |."...workout(tex| 00005f70 74 69 6e 66 6f 24 28 49 29 29 0d 22 a6 28 70 78 |tinfo$(I)).".(px| 00005f80 3d 77 78 63 6f 2d 36 32 3a e7 20 70 78 3c 30 20 |=wxco-62:. px<0 | 00005f90 8c 20 70 78 3d 70 78 2b 28 67 72 69 64 78 2a 36 |. px=px+(gridx*6| 00005fa0 32 29 0d 22 b0 35 74 65 78 74 69 6e 66 6f 24 28 |2).".5textinfo$(| 00005fb0 49 29 3d 77 74 65 78 74 24 2b 22 2c 22 2b c3 70 |I)=wtext$+","+.p| 00005fc0 78 2b 22 2c 22 2b c3 77 79 63 6f 2b 22 2c 22 2b |x+","+.wyco+","+| 00005fd0 c3 77 77 69 64 74 68 0d 22 ba 05 ed 0d 22 c4 05 |.wwidth."...."..| 00005fe0 cd 0d 22 ce 08 c9 20 2d 31 0d 22 d8 21 62 75 66 |.."... -1.".!buf| 00005ff0 66 65 72 32 24 3d 70 73 65 74 24 28 67 72 69 64 |fer2$=pset$(grid| 00006000 78 2d 31 2c 67 72 69 64 79 29 0d 22 e2 11 e3 20 |x-1,gridy)."... | 00006010 49 3d 30 20 b8 20 67 72 69 64 79 0d 22 ec 23 62 |I=0 . gridy.".#b| 00006020 75 66 66 65 72 32 24 3d 70 73 65 74 24 28 67 72 |uffer2$=pset$(gr| 00006030 69 64 78 2d 31 2c 67 72 69 64 79 2d 49 29 0d 22 |idx-1,gridy-I)."| 00006040 f6 11 e3 20 4a 3d 30 20 b8 20 67 72 69 64 78 0d |... J=0 . gridx.| 00006050 23 00 1c 62 75 66 66 65 72 24 3d 70 73 65 74 24 |#..buffer$=pset$| 00006060 28 4a 2c 67 72 69 64 79 2d 49 29 0d 23 0a 1d 70 |(J,gridy-I).#..p| 00006070 73 65 74 24 28 4a 2c 67 72 69 64 79 2d 49 29 3d |set$(J,gridy-I)=| 00006080 62 75 66 66 65 72 32 24 0d 23 14 14 62 75 66 66 |buffer2$.#..buff| 00006090 65 72 32 24 3d 62 75 66 66 65 72 24 0d 23 1e 05 |er2$=buffer$.#..| 000060a0 ed 0d 23 28 05 ed 0d 23 32 0e e7 20 74 6f 74 3e |..#(...#2.. tot>| 000060b0 2d 31 20 8c 0d 23 3c 0f e3 20 49 3d 30 20 b8 20 |-1 ..#<.. I=0 . | 000060c0 74 6f 74 0d 23 46 1a f2 77 6f 72 6b 6f 75 74 28 |tot.#F..workout(| 000060d0 74 65 78 74 69 6e 66 6f 24 28 49 29 29 0d 23 50 |textinfo$(I)).#P| 000060e0 2f 70 78 3d 77 78 63 6f 2b 36 32 3a e7 20 70 78 |/px=wxco+62:. px| 000060f0 3c 67 72 69 64 78 2a 36 32 20 8c 20 70 78 3d 70 |<gridx*62 . px=p| 00006100 78 2d 28 67 72 69 64 78 2a 36 32 29 0d 23 5a 35 |x-(gridx*62).#Z5| 00006110 74 65 78 74 69 6e 66 6f 24 28 49 29 3d 77 74 65 |textinfo$(I)=wte| 00006120 78 74 24 2b 22 2c 22 2b c3 70 78 2b 22 2c 22 2b |xt$+","+.px+","+| 00006130 c3 77 79 63 6f 2b 22 2c 22 2b c3 77 77 69 64 74 |.wyco+","+.wwidt| 00006140 68 0d 23 64 05 ed 0d 23 6e 05 cd 0d 23 78 05 cb |h.#d...#n...#x..| 00006150 0d 23 82 05 cd 0d 23 8c 15 f2 72 65 64 72 61 77 |.#....#...redraw| 00006160 28 63 69 72 63 75 69 74 25 29 0d 23 96 05 e1 0d |(circuit%).#....| 00006170 ff |.| 00006171