Home » Archimedes archive » Micro User » MU 1991-07.adf » PD-Stuff » Utilities/!WimpAid/FlagSetter
Utilities/!WimpAid/FlagSetter
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 » Micro User » MU 1991-07.adf » PD-Stuff |
Filename: | Utilities/!WimpAid/FlagSetter |
Read OK: | ✔ |
File size: | 3B67 bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
10REM > <WimpAid$Dir>.FlagSetter 20REM Graham Crow 15/3/90 30: 40REM Utility for setting the WIMP window/icon flags 50: 60REM================ 70REM. Program set-up 80REM================ 90: 100MODE 12 110ON ERROR OSCLI("FX4"):MODE12:VDU3:REPORT:PRINT" at line ";ERL:ON:END 120PROCinit 130GCOL1:PROCtext(0,1,"RISC OS WIMP -",2,1):PROCheading("Window Flags") 140PROCdrawplinths(area1%(),"Window1",0) 150PROCdrawplinths(area2%(),"Window2",0) 160PROCdrawplinths(area3%(),"Flags",0) 170PROCdrawplinths(area4%(),"Menu",0) 180PROCflags:PROCmenuticks(flags$) 190: 200REM=================== 210REM. Main program loop 220REM=================== 230: 240quit%=FALSE 250REPEAT 260PROCmousewait(-8) 270IF z%=4 THEN 280choice%=-1 290CASE TRUE OF 300WHEN FNgetboxno(x%,y%,area1%())>0 310choice%=FNgetboxno(x%,y%,area1%())-1:PROCaction(choice%,flags$) 320WHEN FNgetboxno(x%,y%,area2%())>0 330choice%=15+FNgetboxno(x%,y%,area2%()):PROCaction(choice%,flags$) 340WHEN FNgetboxno(x%,y%,area3%())>0:PROCinput 350IFflags$="icon"PROCshownumbers 360PROCticks:PROCflags 370WHEN FNgetboxno(x%,y%,area4%())>0 380choice%=FNgetboxno(x%,y%,area4%()) 390CASE choice% OF 400WHEN1:PROCwindowflags 410WHEN2:PROCiconflags 420WHEN3:PROCadjust(flags$):PROCticks:PROCflags 430WHEN4:PROCprint(flags$) 440WHEN5:quit%=TRUE 450ENDCASE 460OTHERWISE choice%=-1 470ENDCASE 480ENDIF 490UNTIL quit% 500OSCLI("FX4"):MODE 12 510END 520: 530:========================================== 540REM. Display ticks and hex number for flags 550:========================================== 560: 570DEFPROCflags 580REM build hex number from bits in bit%() and display 590hex$=FNflags 600COLOUR 128+14:COLOUR 3 610PRINTTAB(70,1)"&"hex$ 620ENDPROC 630: 640DEFFNflags 650LOCALJ%,K%,hex%,b$,i%:hex$="" 660FOR J%=8 TO 1 STEP-1:b$="" 670FOR K%=4 TO 1 STEP-1 680i%=(J%*4)-(5-K%):IF bit%(i%) b$+="1" ELSE b$+="0" 690NEXT 700hex$+=STR$~(EVAL("%"+b$)) 710NEXT 720=hex$ 730: 740DEFPROCmenuticks(flags$) 750VDU 5:gy%=area4%(1)+40 760gx%=area4%(0)+area4%(2)-32:MOVE gx%,gy% 770IF flags$="window" GCOL 3:ELSE GCOL 14 780PRINT CHR$248 790gx%+=area4%(2):MOVE gx%,gy% 800IF flags$="icon" GCOL 3:ELSE GCOL 14 810PRINT CHR$248 820VDU 4:OFF 830ENDPROC 840: 850DEFPROCticks 860LOCAL bit%:bit%=0 870PROCdrawticks(area1%()) 880PROCdrawticks(area2%()) 890ENDPROC 900: 910DEFPROCdrawticks(a%()) 920LOCAL ix%,iy% 930VDU 5 940FOR iy%=a%(1)+a%(7)-a%(3) TO a%(1) STEP -a%(3) 950FOR ix%=a%(0) TO a%(0)+a%(6)-a%(2) STEP a%(2) 960MOVE ix%+a%(2)-32,iy%+a%(3)-a%(12) 970IF bit%(bit%) GCOL 3:ELSE GCOL 14 980PRINT CHR$248:bit%+=1 990NEXT 1000NEXT 1010VDU 4:OFF 1020ENDPROC 1030: 1040:========================================== 1050REM. Action following click on a bit plinth 1060:========================================== 1070: 1080DEFPROCaction(choice%,flags$) 1090LOCAL J% 1100CASE flags$ OF 1110WHEN "window" 1120bit%(choice%)=NOT bit%(choice%):PROCticks:PROCflags 1130: 1140WHEN "icon" 1150CASE choice% OF 1160WHEN0,1,2,3,4,5,7,8,9,10,11,21,22,23 1170bit%(choice%)=NOT bit%(choice%):PROCticks:PROCflags 1180: 1190WHEN 6:REM anti-alias 1200bit%(choice%)=NOT bit%(choice%) 1210IF bit%(choice%) PROCdrawplinths(area5%(),"Bit6Set",-1) 1220IF NOT bit%(choice%) PROCdrawplinths(area5%(),"Bit6Unset",-1) 1230FOR J%=24 TO 31:bit%(J%)=0:NEXT:PROCticks:PROCflags 1240: 1250WHEN 12:REM button type 1260PROCin(500,260,"",2):o%=VALo$ 1270IF NOT FNnumber(o$) OR o%<0 OR o%>15 VDU 7:o$="" 1280PROCshownum(500,260,2,o$):PROCsetbits(12,15,VALo$) 1290PROCticks:PROCflags 1300: 1310WHEN 16:REM ESG 1320PROCin(1160,884,"",2):o%=VALo$ 1330IF NOT FNnumber(o$) OR (o%<1 AND o$<>"") OR o%>31 VDU 7:o$="" 1340PROCshownum(1160,884,2,o$):PROCsetbits(16,20,VALo$) 1350PROCticks:PROCflags 1360: 1370WHEN 24:REM fg col OR (if bit 6 set) start of font handle 1380IF bit%(6) THEN 1390PROCin(1160,468,"",3):o%=VALo$ 1400IF NOT FNnumber(o$) OR (o%<1 AND o$<>"") OR o%>255 VDU 7:o$="" 1410PROCshownum(1160,468,3,o$):PROCsetbits(24,31,VALo$) 1420ENDIF 1430IF NOT bit%(6) THEN 1440PROCin(1160,468,"",2):o%=VALo$ 1450IF NOT FNnumber(o$) OR o%<0 OR o%>15 VDU 7:o$="" 1460PROCshownum(1160,468,2,o$):PROCsetbits(24,27,VALo$) 1470ENDIF 1480PROCticks:PROCflags 1490: 1500WHEN 28:REM bg col OR (if bit 6 set) rest of font handle 1510IF NOT bit%(6) THEN 1520PROCin(1160,262,"",2):o%=VALo$ 1530IF NOT FNnumber(o$) OR o%<0 OR o%>15 VDU 7:o$="" 1540PROCshownum(1160,262,2,o$):PROCsetbits(28,31,VALo$) 1550PROCticks:PROCflags 1560ENDIF 1570ENDCASE 1580: 1590ENDCASE 1600ENDPROC 1610: 1620DEFFNnumber(c$) 1630LOCAL l$,r$:l$=LEFT$(c$,1):r$=RIGHT$(c$,1) 1640=FNnum(l$) AND FNnum(r$) 1650 1660DEFFNnum(c$) 1670=INSTR("0123456789",c$)>0 1680: 1690DEFPROCshownumbers 1700o$=STR$FNdecodebits(12,15):PROCshownum(500,260,2,o$) 1710o$=STR$FNdecodebits(16,20):PROCshownum(1160,884,2,o$) 1720IF bit%(6) THEN 1730PROCdrawplinths(area5%(),"Bit6Set",-1) 1740o$=STR$FNdecodebits(24,31):PROCshownum(1160,468,3,o$) 1750ENDIF 1760IF NOT bit%(6)THEN 1770PROCdrawplinths(area5%(),"Bit6Unset",-1) 1780o$=STR$FNdecodebits(24,27):PROCshownum(1160,468,2,o$) 1790o$=STR$FNdecodebits(28,31):PROCshownum(1160,262,2,o$) 1800ENDIF 1810ENDPROC 1820: 1830DEFPROCshownum(x%,y%,m%,n$) 1840GCOL 14:RECTANGLEFILLx%,y%,m%*16,30 1850GCOL 128+14:GCOL 3:VDU 5:MOVE x%,y%+30:PRINT n$:VDU 4:OFF 1860ENDPROC 1870: 1880DEFPROCsetbits(f%,t%,n%) 1890LOCAL J%,d%,v%:v%=2^(t%-f%) 1900FOR J%=t% TO f% STEP-1 1910d%=n% DIV v%:bit%(J%)=d%>0:n%=n% MOD v%:v%=v% DIV 2 1920NEXT 1930ENDPROC 1940: 1950DEFFNdecodebits(f%,t%) 1960LOCAL J%,n%,v%:v%=2^(t%-f%) 1970FOR J%=t% TO f% STEP-1:IF bit%(J%) n%+=v% 1980v%=v% DIV 2 1990NEXT 2000=n% 2010: 2020:======================================== 2030REM. Change between window and icon flags 2040:======================================== 2050: 2060DEFPROCwindowflags 2070IF flags$="window" ENDPROC 2080flags$="window":PROCmenuticks(flags$):bit%()=0 2090PROCscreen(flags$) 2100ENDPROC 2110: 2120DEFPROCiconflags 2130IF flags$="icon" ENDPROC 2140flags$="icon":PROCmenuticks(flags$):bit%()=0 2150PROCscreen(flags$) 2160ENDPROC 2170: 2180DEFPROCscreen(flags$) 2190IF flags$="window" THEN 2200PROCheading("Window Flags") 2210PROCdrawplinths(area1%(),"Window1",-1) 2220PROCdrawplinths(area2%(),"Window2",-1) 2230PROCticks:PROCflags 2240ENDIF 2250IF flags$="icon" THEN 2260PROCheading("Icon Flags") 2270PROCdrawplinths(area1%(),"Icon1",-1) 2280PROCdrawplinths(area2%(),"Icon2",-1) 2290PROCticks:PROCflags 2300ENDIF 2310ENDPROC 2320: 2330DEFPROCheading(text$) 2340COLOUR 128+12:PRINTTAB(28,1)STRING$(32," ") 2350GCOL 1:PROCtext(30,1,text$,2,1) 2360ENDPROC 2370: 2380:============================= 2390REM. Input flags as hex number 2400:============================= 2410: 2420DEFPROCinput 2430REM accept hex number from user and place bits in bit%() 2440LOCAL J%,K%,I%,hex$,h$,b$,c$,i% 2450PROCin(1136,960,"",8):IFo$="" OR k%=27 THEN ENDPROC 2460IF NOT FNhex(o$) VDU 7:ENDPROC 2470hex$=RIGHT$(STRING$(8,"0")+o$,8) 2480FOR J%=1 TO 4 2490h$="":FOR K%=1 TO 2:h$+=MID$(hex$,J%*2-(2-K%),1):NEXT 2500b$=FNbin(EVAL("&"+h$)) 2510FOR I%=1 TO 8 2520c$=MID$(b$,I%,1) 2530i%=31-((J%*8)-(9-I%)) 2540IFc$="1" bit%(i%)=-1:ELSE bit%(i%)=0 2550NEXT 2560NEXT 2570ENDPROC 2580: 2590DEFFNbin(dec%) 2600REM returns 8 chr string of binary representation of dec% 2610LOCAL bin$,bit%,div% 2620bin$="":div%=128 2630FOR bit%=7 TO 0 STEP-1 2640IF dec% DIV div%>0 bin$+="1":dec%=dec% MOD div% ELSE bin$+="0" 2650div%=div% DIV 2 2660NEXT 2670=bin$ 2680: 2690DEFPROCin(x%,y%,i$,m%):LOCALl%,k%,p$,exit%:*FX4,1 2700l%=LENi$:p$=STRING$(m%-l%,"-"):o$=i$:exit%=FALSE:*FX229,1 2710REPEAT:*FX21 2720GCOL7:RECTANGLEFILLx%,y%,m%*16,30:GCOL0 2730VDU5:MOVEx%,y%+30:PRINTo$+p$;:MOVEx%+l%*16,y%+30 2740REPEAT:MOUSEmx%,my%,mb%:UNTILmb%=0 2750REPEAT:k%=INKEY0:MOUSEmx%,my%,mb%:UNTILNOTk%ORmb%>0 2760REM print 2770IFk%>31ANDk%<127ANDl%<m%o$=o$+CHR$k%:p$=LEFT$(p$,LENp$-1):l%+=1 2780REM delete 2790IFk%=127ANDl%>0o$=LEFT$(o$,l%-1):p$=p$+"-":l%-=1 2800REM exit conditions 2810IFk%=27ORk%=13ORmb%>0exit%=TRUE 2820UNTILexit%:OFF 2830GCOL14:RECTANGLEFILLx%,y%,m%*16,30 2840GCOL128+14:GCOL3:MOVEx%,y%+30:PRINTo$:VDU4:OFF 2850IFk%=13REPEATUNTILNOTINKEY-74:*FX21 2860IFmb%>0REPEAT:MOUSEmx%,my%,mb%:UNTILmb%=0 2870*FX229 2880ENDPROC 2890: 2900DEFFNhex(s$) 2910REM Is this a valid hex string? 2920LOCAL c$,i%,c%:c%=1 2930REPEAT:c$=MID$(s$,c%,1):c%+=1 2940i%=INSTR("ABCDEFabcdef0123456789",c$) 2950UNTIL i%=0 OR c%>LENs$ 2960IFi%=0 THEN=FALSE:ELSE=TRUE 2970: 2980:============================================= 2990REM. Adjust user's selection if logic dictates 3000:============================================= 3010: 3020DEFPROCadjust(flags$) 3030REM if necessary, alter the user's selection 3040LOCAL J% 3050IF flags$="window" THEN 3060FOR J%=13 TO 15:bit%(J%)=0:NEXT :REM reserved 3070FOR J%=20 TO 23:bit%(J%)=0:NEXT :REM reserved 3080FOR J%=16 TO 19:bit%(J%)=0:NEXT :REM return info only 3090IF bit%(31) bit%(0)=0:bit%(2)=0:bit%(3)=0:bit%(7)=0 :REM Arthur only 3100IF NOT bit%(26) bit%(24)=0:bit%(25)=0 3110 REM need title bar for back and close 3120IF NOT bit%(28) bit%(27)=0:bit%(29)=0 3130 REM need vert scroll for resize and toggle 3140ENDIF 3150IF flags$="icon" THEN 3160IF bit%(6) OR bit%(9) THEN bit%(0)=TRUE:REM text 3170IF bit%(11) THEN bit%(1)=TRUE:REM sprite 3180ENDIF 3190ENDPROC 3200: 3210:========================================== 3220REM. Hard-copy printout of current settings 3230:========================================== 3240: 3250DEFPROCprint(flags$) 3260IF NOT FNprinterOK THEN VDU 7:ENDPROC 3270VDU28,60,30,60,30,2:PRINT' 3280: 3290IF flags$="window" THEN 3300PRINT"WINDOW FLAGS = &";FNflags' 3310PROCrestore("Window1") 3320FOR J%=0 TO 15 3330READ t$:IF J%<13 THEN 3340PRINT t$+STRING$(40-LENt$," "); 3350IF bit%(J%) PRINT"Y" ELSE PRINT"-" 3360ENDIF 3370NEXT:PRINT"13-24 Unused" 3380PROCrestore("Window2") 3390FOR J%=16 TO 31 3400READ t$:IF J%>23 THEN 3410PRINT t$+STRING$(40-LENt$," "); 3420IF bit%(J%) PRINT"Y" ELSE PRINT"-" 3430ENDIF 3440NEXT 3450ENDIF 3460: 3470IF flags$="icon" THEN 3480PRINT"ICON FLAGS = &";FNflags' 3490PROCrestore("Icon1") 3500FOR J%=0 TO 15 3510READ t$:IF J%<13 THEN 3520IF bit%(J%) n$="Y" ELSE n$="-" 3530IF J%=12 n$=STR$FNdecodebits(12,15) 3540PRINT t$+STRING$(40-LENt$-LENn$," ")+n$ 3550ENDIF 3560NEXT 3570PROCrestore("Icon2") 3580FOR J%=16 TO 23 3590READ t$:IF J%=16 OR (J%>20ANDJ%<25) OR J%=28 THEN 3600IF bit%(J%) n$="Y" ELSE n$="-" 3610IF J%=16 n$=STR$FNdecodebits(16,20) 3620PRINT t$+STRING$(40-LENt$-LENn$," ")+n$ 3630ENDIF 3640NEXT 3650: 3660IF bit%(6) THEN 3670PROCrestore("Bit6Set"):READ t$:n$=STR$FNdecodebits(24,31) 3680PRINT t$+STRING$(40-LENt$-LENn$," ")+n$ 3690ENDIF 3700: 3710IF NOT bit%(6) THEN 3720PROCrestore("Bit6Unset") 3730FOR J%=24 TO 28 3740READ t$:IF J%=24 OR J%=28 THEN 3750IF J%=24 n$=STR$FNdecodebits(24,27) 3760IF J%=28 n$=STR$FNdecodebits(28,31) 3770PRINT t$+STRING$(40-LENt$-LENn$," ")+n$ 3780ENDIF 3790NEXT 3800ENDIF 3810ENDIF 3820: 3830VDU3,26 3840ENDPROC 3850: 3860DEFFNprinterOK 3870buffersize=ADVAL(-4) 3880VDU2,1,0,1,0,1,0,1,0,1,0,3 3890dummy=INKEY(2) 3900=(ADVAL(-4)=buffersize) 3910: 3920:==================================== 3930REM. General procedures and functions 3940:==================================== 3950: 3960DEFPROCtext(x%,y%,t$,xs,ys) 3970LOCAL m%,p%,n%:m%=MODE 3980p%=2^((m%-(m%>5ANDm%<12ORm%=14))MOD3+1) 3990VDU5 4000VDU23,17,7,6,8*xs;8*ys| 4010IFLEN(t$)<5n%=24:ELSEn%=4 4020MOVEx%*8*p%+n%,1020-y%*32 4030PRINTt$; 4040VDU23,17,7,6,8;8| 4050VDU4:OFF 4060ENDPROC 4070: 4080DEFPROCmousewait(n) 4090REM 0-7: Wait for this mouse state 4100REM neg: Wait for zero first 4110REM 8: Wait for any button 4120REM 16: Wait for keypress 4130LOCAL anypress,inkey,m,a,b,c 4140*FX21,9 4150IF n<0 THEN PROCmousewait(0):n=ABS(n) 4160IF (n AND 16)>0 THEN inkey=TRUE:*FX21 4170IF (n AND 8)>0 THEN anypress=TRUE 4180m=n AND 7:w%=-1 4190REPEAT 4200MOUSE x%,y%,z% 4210IF inkey THEN w%=INKEY(0) 4220a=(z%=m AND NOT (n>7 AND m=0)) 4230b=(anypress AND (z%>0)) 4240c=(inkey AND (w%>-1)) 4250UNTIL a OR b OR c 4260ENDPROC 4270: 4280DEFFNpositiond(x%,y%,x1%,y1%,xd%,yd%) 4290=x%>x1% AND x%<x1%+xd% AND y%>y1% AND y%<y1%+yd% 4300: 4310DEFFNgetboxno(x%,y%,a%()) 4320REM Returns no of selected box 4330REM Counting from top left (=no 1) 4340REM and moving left to right 4350LOCAL ix%,iy%,no% 4360IF FNpositiond(x%,y%,a%(0),a%(1),a%(6),a%(7)) THEN 4370ix%=(x%-a%(0)) DIV a%(2)+1 4380iy%=a%(5)-(y%-a%(1)) DIV a%(3)-1 4390no%=ix%+a%(4)*iy% 4400ELSE no%=-1 4410ENDIF 4420=no% 4430: 4440DEFPROCdrawplinths(a%(),text$,t%) 4450REM Draws set of plinths (t%=text only) 4460LOCAL ix%,iy%,no% 4470a%(6)=a%(2)*a%(4) 4480a%(7)=a%(3)*a%(5) 4490IF a%(0)=-1 THEN a%(0)=(1280-a%(6))DIV 2 4500IF text$<>"" THEN PROCrestore(text$):VDU5 4510FOR iy%=a%(1)+a%(7)-a%(3) TO a%(1) STEP -a%(3) 4520FOR ix%=a%(0) TO a%(0)+a%(6)-a%(2) STEP a%(2) 4530IFt%THEN 4540GCOL a%(15) AND 63 TINT a%(15) 4550x=ix%:y=iy%:w=8:wx=a%(2):wy=a%(3) 4560RECTANGLE FILL x+w,y+w,wx-2*w,wy-2*w 4570ELSE 4580PROCplinth(ix%,iy%,a%(2),a%(3),8,a%(13),a%(14),a%(15),a%(16),a%(17),TRUE) 4590ENDIF 4600IF text$<>"" THEN 4610MOVE ix%+a%(11),iy%+a%(3)-a%(12) 4620READ text$:GCOL a%(10):PRINTtext$ 4630ENDIF 4640NEXT 4650NEXT 4660IF text$<>"" THEN VDU4:OFF 4670ENDIF 4680ENDPROC 4690: 4700DEFPROCplinth(x,y,wx,wy,w,c0,c1,c2,c3,c4,raised) 4710IF NOT raised THEN SWAP c1,c3 4720GCOL c1 AND 63 TINT c1 4730RECTANGLE FILL x,y,wx,wy 4740GCOL c3 AND 63 TINT c3 4750RECTANGLE FILL x+w,y,wx-2*w,w 4760RECTANGLE FILL x+wx-w,y,w,wy-w 4770MOVE x,y:MOVE x+w,y 4780PLOT85,x+w,y+w:MOVE x+wx-w,y+wy-w 4790MOVE x+wx,y+wy-w 4800PLOT85,x+wx,y+wy:PLOT85,x+wx,y+wy 4810IF NOT raised THEN SWAP c0,c4 4820GCOL c0 AND 63 TINT c0 4830LINE x,y+wy,x+w,y+wy-w 4840GCOL c4 AND 63 TINT c4 4850LINE x+wx,y,x+wx-w,y+w 4860GCOL c2 AND 63 TINT c2 4870RECTANGLE FILL x+w,y+w,wx-2*w,wy-2*w 4880ENDPROC 4890: 4900:================== 4910REM. Initialisation 4920:================== 4930: 4940DEFPROCinit 4950DIM bit%(31) 4960DIM area1%(17) :REM bits 0-15 4970DIM area2%(17) :REM bits 16-31 4980DIM area3%(17) :REM flags 4990DIM area4%(17) :REM menu 5000DIM area5%(17) :REM bits 24-31 (icon flags) 5010: 5020REM set up palette 5030COLOUR 12,208,208,192 5040COLOUR 13,176,176,176 5050COLOUR 14,128,128,128 5060COLOUR 15,16,16,16 5070: 5080COLOUR12+128:CLS :REM yellow/grey screen 5090VDU19,0,24,208,208,192 :REM yellow/grey border 5100: 5110REM define chr for tick 5120VDU23,248,&0100;&4402;&1028;&0000; 5130: 5140flags$="window" 5150OFF:*POINTER 5160: 5170REM bits 5180area1%(0)=0 :area2%(0)=638 :REM X coord 5190area1%(1)=96 :area2%(1)=96 :REM Y coord 5200area1%(2)=624 :area2%(2)=636 :REM Cell width 5210area1%(3)=52 :area2%(3)=52 :REM Cell height 5220area1%(4)=1 :area2%(4)=1 :REM Cells across 5230area1%(5)=16 :area2%(5)=16 :REM Cells down 5240: 5250REM flags :REM menu :REM bits 24-31 (icon flags) 5260area3%(0)=968 :area4%(0)=0 :area5%(0)=638 5270area3%(1)=948 :area4%(1)=16 :area5%(1)=96 5280area3%(2)=304 :area4%(2)=255 :area5%(2)=636 5290area3%(3)=60 :area4%(3)=60 :area5%(3)=52 5300area3%(4)=1 :area4%(4)=5 :area5%(4)=1 5310area3%(5)=1 :area4%(5)=1 :area5%(5)=8 5320: 5330REM Colours 5340PROCrestore("Colours") 5350FOR J%=8 TO 17 5360READ n% 5370area1%(J%)=n%:area2%(J%)=n%:area3%(J%)=n%:area4%(J%)=n%:area5%(J%)=n% 5380NEXT 5390ENDPROC 5400: 5410DEFPROCrestore(label$) 5420RESTORE 5430REPEAT:READ a$:UNTIL a$=label$ 5440ENDPROC 5450: 5460DATA Window1 5470DATA " 0 (Arthur only)" 5480DATA " 1 Window can be dragged" 5490DATA " 2 (Arthur only)" 5500DATA " 3 (Arthur only)" 5510DATA " 4 No user graphics" 5520DATA " 5 Window is a pane" 5530DATA " 6 Window can go beyond screen" 5540DATA " 7 (Arthur only)" 5550DATA " 8 Scroll without auto-repeat" 5560DATA " 9 Scroll with auto-repeat" 5570DATA "10 Treat colours as GCOL numbers" 5580DATA "11 No windows below this one" 5590DATA "12 Produce reasons for 'hot keys'" 5600DATA "13 (Reserved - must be zero)" 5610DATA "14 (Reserved - must be zero)" 5620DATA "15 (Reserved - must be zero)" 5630: 5640DATA Window2 5650DATA "16 (Used to return info only)" 5660DATA "17 (Used to return info only)" 5670DATA "18 (Used to return info only)" 5680DATA "19 (Used to return info only)" 5690DATA "20 (Reserved - must be zero)" 5700DATA "21 (Reserved - must be zero)" 5710DATA "22 (Reserved - must be zero)" 5720DATA "23 (Reserved - must be zero)" 5730DATA "24 Window has a back icon" 5740DATA "25 Window has a close icon" 5750DATA "26 Window has a title bar" 5760DATA "27 Window has a toggle size icon" 5770DATA "28 Window has a vert scroll bar" 5780DATA "29 Window has an adj size icon" 5790DATA "30 Window has a horiz scroll bar" 5800DATA "31 Ignore 'Arthur only' flags" 5810: 5820DATA Icon1 5830DATA " 0 Icon contains text" 5840DATA " 1 Icon contains a sprite" 5850DATA " 2 Icon has a border" 5860DATA " 3 Horizontally centered" 5870DATA " 4 Vertically centered" 5880DATA " 5 Filled background" 5890DATA " 6 Text is anti-aliased" 5900DATA " 7 Needs task to redraw icon" 5910DATA " 8 Icon data is indirected" 5920DATA " 9 Text is right-justified" 5930DATA "10 If Adjust clicked keep ESG" 5940DATA "11 Display sprite at half size" 5950DATA "12-15 Icon button type (0-15)" 5960DATA "13 ''" 5970DATA "14 ''" 5980DATA "15 ''" 5990: 6000DATA Icon2 6010DATA "16-20 E S G (1-31)" 6020DATA "17 ''" 6030DATA "18 ''" 6040DATA "19 ''" 6050DATA "20 ''" 6060DATA "21 Icon is already selected" 6070DATA "22 Icon is not selectable" 6080DATA "23 Icon has been deleted" 6090DATA "24-27 Foreground colour (0-15)" 6100DATA "25 ''" 6110DATA "26 ''" 6120DATA "27 ''" 6130DATA "28-31 Background colour (0-15)" 6140DATA "29 ''" 6150DATA "30 ''" 6160DATA "31 ''" 6170: 6180DATA Bit6Unset 6190DATA "24-27 Foreground colour (0-15)" 6200DATA "25 ''" 6210DATA "26 ''" 6220DATA "27 ''" 6230DATA "28-31 Background colour (0-15)" 6240DATA "29 ''" 6250DATA "30 ''" 6260DATA "31 ''" 6270: 6280DATA Bit6Set 6290DATA "24-31 Alias font handle (1-255)" 6300DATA "25 ''" 6310DATA "26 ''" 6320DATA "27 ''" 6330DATA "28 ''" 6340DATA "29 ''" 6350DATA "30 ''" 6360DATA "31 ''" 6370: 6380DATA Flags 6390DATA "Flags =" 6400: 6410DATA Menu 6420DATA Window flags 6430DATA Icon flags 6440DATA " Adjust" 6450DATA " Print" 6460DATA " Quit" 6470: 6480DATA Colours 6490DATA 4,7,7,16,16 6500REM Box bcg blue 6510REM Box line white 6520REM White text 6530REM Text x offset 6540REM Text y offset 6550DATA 7,13,14,15,0,7
� > <WimpAid$Dir>.FlagSetter � Graham Crow 15/3/90 : (4� Utility for setting the WIMP window/icon flags 2: <�================ F�. Program set-up P�================ Z: d� 12 n,� � �("FX4"):�12:�3:�:�" at line ";�:�:� x �init �?�1:�text(0,1,"RISC OS WIMP -",2,1):�heading("Window Flags") �&�drawplinths(area1%(),"Window1",0) �&�drawplinths(area2%(),"Window2",0) �$�drawplinths(area3%(),"Flags",0) �#�drawplinths(area4%(),"Menu",0) ��flags:�menuticks(flags$) �: ��=================== ��. Main program loop ��=================== �: �quit%=� �� �mousewait(-8) � z%=4 � choice%=-1 " Ȏ � � ,!� �getboxno(x%,y%,area1%())>0 6?choice%=�getboxno(x%,y%,area1%())-1:�action(choice%,flags$) @!� �getboxno(x%,y%,area2%())>0 J@choice%=15+�getboxno(x%,y%,area2%()):�action(choice%,flags$) T(� �getboxno(x%,y%,area3%())>0:�input ^�flags$="icon"�shownumbers h�ticks:�flags r!� �getboxno(x%,y%,area4%())>0 |%choice%=�getboxno(x%,y%,area4%()) �Ȏ choice% � ��1:�windowflags ��2:�iconflags �$�3:�adjust(flags$):�ticks:�flags ��4:�print(flags$) ��5:quit%=� �� � choice%=-1 �� �� �� quit% ��("FX4"):� 12 �� : /:========================================== -�. Display ticks and hex number for flags &/:========================================== 0: :��flags D6� build hex number from bits in bit%() and display Nhex$=�flags X� 128+14:� 3 b�70,1)"&"hex$ l� v: �ݤflags ��J%,K%,hex%,b$,i%:hex$="" �� J%=8 � 1 �-1:b$="" �� K%=4 � 1 �-1 �1i%=(J%*4)-(5-K%):� bit%(i%) b$+="1" � b$+="0" �� �hex$+=�~(�("%"+b$)) �� � =hex$ �: ���menuticks(flags$) �� 5:gy%=area4%(1)+40 �(gx%=area4%(0)+area4%(2)-32:� gx%,gy% � flags$="window" � 3:� � 14 � �248 gx%+=area4%(2):� gx%,gy% � flags$="icon" � 3:� � 14 * � �248 4 � 4:� >� H: R��ticks \� bit%:bit%=0 f�drawticks(area1%()) p�drawticks(area2%()) z� �: ���drawticks(a%()) � � ix%,iy% �� 5 �,� iy%=a%(1)+a%(7)-a%(3) � a%(1) � -a%(3) �+� ix%=a%(0) � a%(0)+a%(6)-a%(2) � a%(2) �#� ix%+a%(2)-32,iy%+a%(3)-a%(12) �� bit%(bit%) � 3:� � 14 �� �248:bit%+=1 �� �� � � 4:� �� : /:========================================== -�. Action following click on a bit plinth $/:========================================== .: 8��action(choice%,flags$) B� J% LȎ flags$ � V� "window" `/bit%(choice%)=� bit%(choice%):�ticks:�flags j: t� "icon" ~Ȏ choice% � �%�0,1,2,3,4,5,7,8,9,10,11,21,22,23 �/bit%(choice%)=� bit%(choice%):�ticks:�flags �: �� 6:� anti-alias �!bit%(choice%)=� bit%(choice%) �7� bit%(choice%) �drawplinths(area5%(),"Bit6Set",-1) �;� � bit%(choice%) �drawplinths(area5%(),"Bit6Unset",-1) �+� J%=24 � 31:bit%(J%)=0:�:�ticks:�flags �: �� 12:� button type ��in(500,260,"",2):o%=�o$ �,� � �number(o$) � o%<0 � o%>15 � 7:o$="" .�shownum(500,260,2,o$):�setbits(12,15,�o$) �ticks:�flags : � 16:� ESG (�in(1160,884,"",2):o%=�o$ 27� � �number(o$) � (o%<1 � o$<>"") � o%>31 � 7:o$="" </�shownum(1160,884,2,o$):�setbits(16,20,�o$) F�ticks:�flags P: Z8� 24:� fg col OR (if bit 6 set) start of font handle d� bit%(6) � n�in(1160,468,"",3):o%=�o$ x8� � �number(o$) � (o%<1 � o$<>"") � o%>255 � 7:o$="" �/�shownum(1160,468,3,o$):�setbits(24,31,�o$) �� �� � bit%(6) � ��in(1160,468,"",2):o%=�o$ �,� � �number(o$) � o%<0 � o%>15 � 7:o$="" �/�shownum(1160,468,2,o$):�setbits(24,27,�o$) �� ��ticks:�flags �: �7� 28:� bg col OR (if bit 6 set) rest of font handle �� � bit%(6) � ��in(1160,262,"",2):o%=�o$ �,� � �number(o$) � o%<0 � o%>15 � 7:o$="" /�shownum(1160,262,2,o$):�setbits(28,31,�o$) �ticks:�flags � "� ,: 6� @� J: Tݤnumber(c$) ^� l$,r$:l$=�c$,1):r$=�c$,1) h=�num(l$) � �num(r$) r | ݤnum(c$) �=�"0123456789",c$)>0 �: ���shownumbers �1o$=ädecodebits(12,15):�shownum(500,260,2,o$) �2o$=ädecodebits(16,20):�shownum(1160,884,2,o$) �� bit%(6) � �'�drawplinths(area5%(),"Bit6Set",-1) �2o$=ädecodebits(24,31):�shownum(1160,468,3,o$) �� �� � bit%(6)� �)�drawplinths(area5%(),"Bit6Unset",-1) �2o$=ädecodebits(24,27):�shownum(1160,468,2,o$) �2o$=ädecodebits(28,31):�shownum(1160,262,2,o$) � � : &��shownum(x%,y%,m%,n$) 0� 14:ȓȐx%,y%,m%*16,30 :*� 128+14:� 3:� 5:� x%,y%+30:� n$:� 4:� D� N: X��setbits(f%,t%,n%) b� J%,d%,v%:v%=2^(t%-f%) l� J%=t% � f% �-1 v1d%=n% � v%:bit%(J%)=d%>0:n%=n% � v%:v%=v% � 2 �� �� �: �ݤdecodebits(f%,t%) �� J%,n%,v%:v%=2^(t%-f%) �&� J%=t% � f% �-1:� bit%(J%) n%+=v% � v%=v% � 2 �� �=n% �: �-:======================================== �+�. Change between window and icon flags �-:======================================== : ��windowflags � flags$="window" � /flags$="window":�menuticks(flags$):bit%()=0 *�screen(flags$) 4� >: H��iconflags R� flags$="icon" � \-flags$="icon":�menuticks(flags$):bit%()=0 f�screen(flags$) p� z: ���screen(flags$) �� flags$="window" � ��heading("Window Flags") �'�drawplinths(area1%(),"Window1",-1) �'�drawplinths(area2%(),"Window2",-1) ��ticks:�flags �� �� flags$="icon" � ��heading("Icon Flags") �%�drawplinths(area1%(),"Icon1",-1) �%�drawplinths(area2%(),"Icon2",-1) ��ticks:�flags �� � : ��heading(text$) $� 128+12:�28,1)�32," ") .� 1:�text(30,1,text$,2,1) 8� B: L":============================= V �. Input flags as hex number `":============================= j: t��input ~:� accept hex number from user and place bits in bit%() �� J%,K%,I%,hex$,h$,b$,c$,i% �)�in(1136,960,"",8):�o$="" � k%=27 � � �� � �hex(o$) � 7:� �hex$=��8,"0")+o$,8) �� J%=1 � 4 �/h$="":� K%=1 � 2:h$+=�hex$,J%*2-(2-K%),1):� �b$=�bin(�("&"+h$)) �� I%=1 � 8 �c$=�b$,I%,1) �i%=31-((J%*8)-(9-I%)) �$�c$="1" bit%(i%)=-1:� bit%(i%)=0 �� � � : ݤbin(dec%) (;� returns 8 chr string of binary representation of dec% 2� bin$,bit%,div% <bin$="":div%=128 F� bit%=7 � 0 �-1 P:� dec% � div%>0 bin$+="1":dec%=dec% � div% � bin$+="0" Zdiv%=div% � 2 d� n =bin$ x: �,��in(x%,y%,i$,m%):�l%,k%,p$,exit%:*FX4,1 �0l%=�i$:p$=�m%-l%,"-"):o$=i$:exit%=�:*FX229,1 ��:*FX21 ��7:ȓȐx%,y%,m%*16,30:�0 �(�5:�x%,y%+30:�o$+p$;:�x%+l%*16,y%+30 ��:ȗmx%,my%,mb%:�mb%=0 �$�:k%=�0:ȗmx%,my%,mb%:��k%�mb%>0 �� print �4�k%>31�k%<127�l%<m%o$=o$+�k%:p$=�p$,�p$-1):l%+=1 �� delete �,�k%=127�l%>0o$=�o$,l%-1):p$=p$+"-":l%-=1 �� exit conditions ��k%=27�k%=13�mb%>0exit%=� �exit%:� �14:ȓȐx%,y%,m%*16,30 !�128+14:�3:�x%,y%+30:�o$:�4:� "�k%=13����-74:*FX21 , �mb%>0�:ȗmx%,my%,mb%:�mb%=0 6 *FX229 @� J: T ݤhex(s$) ^!� Is this a valid hex string? h� c$,i%,c%:c%=1 r�:c$=�s$,c%,1):c%+=1 |$i%=�"ABCDEFabcdef0123456789",c$) �� i%=0 � c%>�s$ ��i%=0 �=�:�=� �: �2:============================================= �0�. Adjust user's selection if logic dictates �2:============================================= �: ���adjust(flags$) �.� if necessary, alter the user's selection �� J% �� flags$="window" � �*� J%=13 � 15:bit%(J%)=0:� :� reserved �*� J%=20 � 23:bit%(J%)=0:� :� reserved 2� J%=16 � 19:bit%(J%)=0:� :� return info only F� bit%(31) bit%(0)=0:bit%(2)=0:bit%(3)=0:bit%(7)=0 :� Arthur only &� � bit%(26) bit%(24)=0:bit%(25)=0 &* � need title bar for back and close 0&� � bit%(28) bit%(27)=0:bit%(29)=0 :/ � need vert scroll for resize and toggle D� N� flags$="icon" � X*� bit%(6) � bit%(9) � bit%(0)=�:� text b#� bit%(11) � bit%(1)=�:� sprite l� v� �: �/:========================================== �-�. Hard-copy printout of current settings �/:========================================== �: ���print(flags$) �� � �printerOK � � 7:� ��28,60,30,60,30,2:�' �: �� flags$="window" � ��"WINDOW FLAGS = &";�flags' ��restore("Window1") �� J%=0 � 15 � t$:� J%<13 � � t$+�40-�t$," "); � bit%(J%) �"Y" � �"-" � *�:�"13-24 Unused" 4�restore("Window2") >� J%=16 � 31 H� t$:� J%>23 � R� t$+�40-�t$," "); \� bit%(J%) �"Y" � �"-" f� p� z� �: �� flags$="icon" � ��"ICON FLAGS = &";�flags' ��restore("Icon1") �� J%=0 � 15 �� t$:� J%<13 � �� bit%(J%) n$="Y" � n$="-" �"� J%=12 n$=ädecodebits(12,15) �� t$+�40-�t$-�n$," ")+n$ �� �� ��restore("Icon2") �� J%=16 � 23 *� t$:� J%=16 � (J%>20�J%<25) � J%=28 � � bit%(J%) n$="Y" � n$="-" "� J%=16 n$=ädecodebits(16,20) $� t$+�40-�t$-�n$," ")+n$ .� 8� B: L� bit%(6) � V3�restore("Bit6Set"):� t$:n$=ädecodebits(24,31) `� t$+�40-�t$-�n$," ")+n$ j� t: ~� � bit%(6) � ��restore("Bit6Unset") �� J%=24 � 28 �� t$:� J%=24 � J%=28 � �"� J%=24 n$=ädecodebits(24,27) �"� J%=28 n$=ädecodebits(28,31) �� t$+�40-�t$-�n$," ")+n$ �� �� �� �� �: � �3,26 � : ݤprinterOK buffersize=�(-4) (�2,1,0,1,0,1,0,1,0,1,0,3 2dummy=�(2) <=(�(-4)=buffersize) F: P):==================================== Z'�. General procedures and functions d):==================================== n: x��text(x%,y%,t$,xs,ys) �� m%,p%,n%:m%=� �&p%=2^((m%-(m%>5�m%<12�m%=14))�3+1) ��5 ��23,17,7,6,8*xs;8*ys| ��(t$)<5n%=24:�n%=4 ��x%*8*p%+n%,1020-y%*32 ��t$; ��23,17,7,6,8;8| ��4:� �� �: ���mousewait(n) �$� 0-7: Wait for this mouse state � neg: Wait for zero first � 8: Wait for any button � 16: Wait for keypress "� anypress,inkey,m,a,b,c ,*FX21,9 6 � n<0 � �mousewait(0):n=�(n) @ � (n � 16)>0 � inkey=�:*FX21 J� (n � 8)>0 � anypress=� Tm=n � 7:w%=-1 ^� hȗ x%,y%,z% r� inkey � w%=�(0) |a=(z%=m � � (n>7 � m=0)) �b=(anypress � (z%>0)) �c=(inkey � (w%>-1)) �� a � b � c �� �: �&ݤpositiond(x%,y%,x1%,y1%,xd%,yd%) �.=x%>x1% � x%<x1%+xd% � y%>y1% � y%<y1%+yd% �: �ݤgetboxno(x%,y%,a%()) � � Returns no of selected box �$� Counting from top left (=no 1) �� and moving left to right �� ix%,iy%,no% 1� �positiond(x%,y%,a%(0),a%(1),a%(6),a%(7)) � ix%=(x%-a%(0)) � a%(2)+1 "iy%=a%(5)-(y%-a%(1)) � a%(3)-1 &no%=ix%+a%(4)*iy% 0� no%=-1 :� D=no% N: X ��drawplinths(a%(),text$,t%) b)� Draws set of plinths (t%=text only) l� ix%,iy%,no% va%(6)=a%(2)*a%(4) �a%(7)=a%(3)*a%(5) �&� a%(0)=-1 � a%(0)=(1280-a%(6))� 2 �$� text$<>"" � �restore(text$):�5 �,� iy%=a%(1)+a%(7)-a%(3) � a%(1) � -a%(3) �+� ix%=a%(0) � a%(0)+a%(6)-a%(2) � a%(2) ��t%� �� a%(15) � 63 Ȝ a%(15) �%x=ix%:y=iy%:w=8:wx=a%(2):wy=a%(3) �ȓ Ȑ x+w,y+w,wx-2*w,wy-2*w �� �G�plinth(ix%,iy%,a%(2),a%(3),8,a%(13),a%(14),a%(15),a%(16),a%(17),�) �� �� text$<>"" � !� ix%+a%(11),iy%+a%(3)-a%(12) � text$:� a%(10):�text$ � � *� 4� text$<>"" � �4:� >� H� R: \/��plinth(x,y,wx,wy,w,c0,c1,c2,c3,c4,raised) f� � raised � Ȕ c1,c3 p� c1 � 63 Ȝ c1 zȓ Ȑ x,y,wx,wy �� c3 � 63 Ȝ c3 �ȓ Ȑ x+w,y,wx-2*w,w �ȓ Ȑ x+wx-w,y,w,wy-w �� x,y:� x+w,y ��85,x+w,y+w:� x+wx-w,y+wy-w �� x+wx,y+wy-w ��85,x+wx,y+wy:�85,x+wx,y+wy �� � raised � Ȕ c0,c4 �� c0 � 63 Ȝ c0 �� x,y+wy,x+w,y+wy-w �� c4 � 63 Ȝ c4 �� x+wx,y,x+wx-w,y+w �� c2 � 63 Ȝ c2 ȓ Ȑ x+w,y+w,wx-2*w,wy-2*w � : $:================== .�. Initialisation 8:================== B: L ��init V� bit%(31) `� area1%(17) :� bits 0-15 j� area2%(17) :� bits 16-31 t� area3%(17) :� flags ~� area4%(17) :� menu �,� area5%(17) :� bits 24-31 (icon flags) �: �� set up palette �� 12,208,208,192 �� 13,176,176,176 �� 14,128,128,128 �� 15,16,16,16 �: �*�12+128:� :� yellow/grey screen �/�19,0,24,208,208,192 :� yellow/grey border �: �� define chr for tick $�23,248,&0100;&4402;&1028;&0000; : flags$="window" �:*POINTER (: 2 � bits <-area1%(0)=0 :area2%(0)=638 :� X coord F-area1%(1)=96 :area2%(1)=96 :� Y coord P0area1%(2)=624 :area2%(2)=636 :� Cell width Z1area1%(3)=52 :area2%(3)=52 :� Cell height d2area1%(4)=1 :area2%(4)=1 :� Cells across n0area1%(5)=16 :area2%(5)=16 :� Cells down x: �=� flags :REM menu :REM bits 24-31 (icon flags) �1area3%(0)=968 :area4%(0)=0 :area5%(0)=638 �0area3%(1)=948 :area4%(1)=16 :area5%(1)=96 �1area3%(2)=304 :area4%(2)=255 :area5%(2)=636 �0area3%(3)=60 :area4%(3)=60 :area5%(3)=52 �/area3%(4)=1 :area4%(4)=5 :area5%(4)=1 �/area3%(5)=1 :area4%(5)=1 :area5%(5)=8 �: � � Colours ��restore("Colours") �� J%=8 � 17 �� n% �Iarea1%(J%)=n%:area2%(J%)=n%:area3%(J%)=n%:area4%(J%)=n%:area5%(J%)=n% � � : "��restore(label$) ,� 6�:� a$:� a$=label$ @� J: T � Window1 ^� " 0 (Arthur only)" h!� " 1 Window can be dragged" r� " 2 (Arthur only)" |� " 3 (Arthur only)" �� " 4 No user graphics" �� " 5 Window is a pane" �'� " 6 Window can go beyond screen" �� " 7 (Arthur only)" �&� " 8 Scroll without auto-repeat" �#� " 9 Scroll with auto-repeat" �)� "10 Treat colours as GCOL numbers" �%� "11 No windows below this one" �*� "12 Produce reasons for 'hot keys'" �%� "13 (Reserved - must be zero)" �%� "14 (Reserved - must be zero)" �%� "15 (Reserved - must be zero)" �: � Window2 &� "16 (Used to return info only)" &� "17 (Used to return info only)" &&� "18 (Used to return info only)" 0&� "19 (Used to return info only)" :%� "20 (Reserved - must be zero)" D%� "21 (Reserved - must be zero)" N%� "22 (Reserved - must be zero)" X%� "23 (Reserved - must be zero)" b"� "24 Window has a back icon" l#� "25 Window has a close icon" v"� "26 Window has a title bar" �)� "27 Window has a toggle size icon" �(� "28 Window has a vert scroll bar" �'� "29 Window has an adj size icon" �)� "30 Window has a horiz scroll bar" �&� "31 Ignore 'Arthur only' flags" �: �� Icon1 � � " 0 Icon contains text" �$� " 1 Icon contains a sprite" �� " 2 Icon has a border" �#� " 3 Horizontally centered" �!� " 4 Vertically centered" �� " 5 Filled background" "� " 6 Text is anti-aliased" '� " 7 Needs task to redraw icon" %� " 8 Icon data is indirected" %� " 9 Text is right-justified" *(� "10 If Adjust clicked keep ESG" 4)� "11 Display sprite at half size" >%� "12-15 Icon button type (0-15)" H� "13 ''" R� "14 ''" \� "15 ''" f: p� Icon2 z� "16-20 E S G (1-31)" �� "17 ''" �� "18 ''" �� "19 ''" �� "20 ''" �&� "21 Icon is already selected" �$� "22 Icon is not selectable" �#� "23 Icon has been deleted" �&� "24-27 Foreground colour (0-15)" �� "25 ''" �� "26 ''" �� "27 ''" �&� "28-31 Background colour (0-15)" �� "29 ''" � "30 ''" � "31 ''" : $� Bit6Unset .&� "24-27 Foreground colour (0-15)" 8� "25 ''" B� "26 ''" L� "27 ''" V&� "28-31 Background colour (0-15)" `� "29 ''" j� "30 ''" t� "31 ''" ~: � � Bit6Set �'� "24-31 Alias font handle (1-255)" �� "25 ''" �� "26 ''" �� "27 ''" �� "28 ''" �� "29 ''" �� "30 ''" �� "31 ''" �: �� Flags �� "Flags =" : � Menu � Window flags � Icon flags (� " Adjust" 2� " Print" <� " Quit" F: P � Colours Z� 4,7,7,16,16 d� Box bcg blue n� Box line white x� White text �� Text x offset �� Text y offset �� 7,13,14,15,0,7 �
00000000 0d 00 0a 20 f4 20 3e 20 3c 57 69 6d 70 41 69 64 |... . > <WimpAid| 00000010 24 44 69 72 3e 2e 46 6c 61 67 53 65 74 74 65 72 |$Dir>.FlagSetter| 00000020 0d 00 14 1a f4 20 47 72 61 68 61 6d 20 43 72 6f |..... Graham Cro| 00000030 77 20 20 31 35 2f 33 2f 39 30 0d 00 1e 05 3a 0d |w 15/3/90....:.| 00000040 00 28 34 f4 20 55 74 69 6c 69 74 79 20 66 6f 72 |.(4. Utility for| 00000050 20 73 65 74 74 69 6e 67 20 74 68 65 20 57 49 4d | setting the WIM| 00000060 50 20 77 69 6e 64 6f 77 2f 69 63 6f 6e 20 66 6c |P window/icon fl| 00000070 61 67 73 0d 00 32 05 3a 0d 00 3c 15 f4 3d 3d 3d |ags..2.:..<..===| 00000080 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0d 00 46 |=============..F| 00000090 15 f4 2e 20 50 72 6f 67 72 61 6d 20 73 65 74 2d |... Program set-| 000000a0 75 70 0d 00 50 15 f4 3d 3d 3d 3d 3d 3d 3d 3d 3d |up..P..=========| 000000b0 3d 3d 3d 3d 3d 3d 3d 0d 00 5a 05 3a 0d 00 64 08 |=======..Z.:..d.| 000000c0 eb 20 31 32 0d 00 6e 2c ee 20 85 20 ff 28 22 46 |. 12..n,. . .("F| 000000d0 58 34 22 29 3a eb 31 32 3a ef 33 3a f6 3a f1 22 |X4"):.12:.3:.:."| 000000e0 20 61 74 20 6c 69 6e 65 20 22 3b 9e 3a ee 3a e0 | at line ";.:.:.| 000000f0 0d 00 78 09 f2 69 6e 69 74 0d 00 82 3f e6 31 3a |..x..init...?.1:| 00000100 f2 74 65 78 74 28 30 2c 31 2c 22 52 49 53 43 20 |.text(0,1,"RISC | 00000110 4f 53 20 57 49 4d 50 20 2d 22 2c 32 2c 31 29 3a |OS WIMP -",2,1):| 00000120 f2 68 65 61 64 69 6e 67 28 22 57 69 6e 64 6f 77 |.heading("Window| 00000130 20 46 6c 61 67 73 22 29 0d 00 8c 26 f2 64 72 61 | Flags")...&.dra| 00000140 77 70 6c 69 6e 74 68 73 28 61 72 65 61 31 25 28 |wplinths(area1%(| 00000150 29 2c 22 57 69 6e 64 6f 77 31 22 2c 30 29 0d 00 |),"Window1",0)..| 00000160 96 26 f2 64 72 61 77 70 6c 69 6e 74 68 73 28 61 |.&.drawplinths(a| 00000170 72 65 61 32 25 28 29 2c 22 57 69 6e 64 6f 77 32 |rea2%(),"Window2| 00000180 22 2c 30 29 0d 00 a0 24 f2 64 72 61 77 70 6c 69 |",0)...$.drawpli| 00000190 6e 74 68 73 28 61 72 65 61 33 25 28 29 2c 22 46 |nths(area3%(),"F| 000001a0 6c 61 67 73 22 2c 30 29 0d 00 aa 23 f2 64 72 61 |lags",0)...#.dra| 000001b0 77 70 6c 69 6e 74 68 73 28 61 72 65 61 34 25 28 |wplinths(area4%(| 000001c0 29 2c 22 4d 65 6e 75 22 2c 30 29 0d 00 b4 1d f2 |),"Menu",0).....| 000001d0 66 6c 61 67 73 3a f2 6d 65 6e 75 74 69 63 6b 73 |flags:.menuticks| 000001e0 28 66 6c 61 67 73 24 29 0d 00 be 05 3a 0d 00 c8 |(flags$)....:...| 000001f0 18 f4 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |..==============| 00000200 3d 3d 3d 3d 3d 0d 00 d2 18 f4 2e 20 4d 61 69 6e |=====...... Main| 00000210 20 70 72 6f 67 72 61 6d 20 6c 6f 6f 70 0d 00 dc | program loop...| 00000220 18 f4 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |..==============| 00000230 3d 3d 3d 3d 3d 0d 00 e6 05 3a 0d 00 f0 0b 71 75 |=====....:....qu| 00000240 69 74 25 3d a3 0d 00 fa 05 f5 0d 01 04 12 f2 6d |it%=...........m| 00000250 6f 75 73 65 77 61 69 74 28 2d 38 29 0d 01 0e 0c |ousewait(-8)....| 00000260 e7 20 7a 25 3d 34 20 8c 0d 01 18 0e 63 68 6f 69 |. z%=4 .....choi| 00000270 63 65 25 3d 2d 31 0d 01 22 0a c8 8e 20 b9 20 ca |ce%=-1.."... . .| 00000280 0d 01 2c 21 c9 20 a4 67 65 74 62 6f 78 6e 6f 28 |..,!. .getboxno(| 00000290 78 25 2c 79 25 2c 61 72 65 61 31 25 28 29 29 3e |x%,y%,area1%())>| 000002a0 30 0d 01 36 3f 63 68 6f 69 63 65 25 3d a4 67 65 |0..6?choice%=.ge| 000002b0 74 62 6f 78 6e 6f 28 78 25 2c 79 25 2c 61 72 65 |tboxno(x%,y%,are| 000002c0 61 31 25 28 29 29 2d 31 3a f2 61 63 74 69 6f 6e |a1%())-1:.action| 000002d0 28 63 68 6f 69 63 65 25 2c 66 6c 61 67 73 24 29 |(choice%,flags$)| 000002e0 0d 01 40 21 c9 20 a4 67 65 74 62 6f 78 6e 6f 28 |..@!. .getboxno(| 000002f0 78 25 2c 79 25 2c 61 72 65 61 32 25 28 29 29 3e |x%,y%,area2%())>| 00000300 30 0d 01 4a 40 63 68 6f 69 63 65 25 3d 31 35 2b |0..J@choice%=15+| 00000310 a4 67 65 74 62 6f 78 6e 6f 28 78 25 2c 79 25 2c |.getboxno(x%,y%,| 00000320 61 72 65 61 32 25 28 29 29 3a f2 61 63 74 69 6f |area2%()):.actio| 00000330 6e 28 63 68 6f 69 63 65 25 2c 66 6c 61 67 73 24 |n(choice%,flags$| 00000340 29 0d 01 54 28 c9 20 a4 67 65 74 62 6f 78 6e 6f |)..T(. .getboxno| 00000350 28 78 25 2c 79 25 2c 61 72 65 61 33 25 28 29 29 |(x%,y%,area3%())| 00000360 3e 30 3a f2 69 6e 70 75 74 0d 01 5e 1e e7 66 6c |>0:.input..^..fl| 00000370 61 67 73 24 3d 22 69 63 6f 6e 22 f2 73 68 6f 77 |ags$="icon".show| 00000380 6e 75 6d 62 65 72 73 0d 01 68 11 f2 74 69 63 6b |numbers..h..tick| 00000390 73 3a f2 66 6c 61 67 73 0d 01 72 21 c9 20 a4 67 |s:.flags..r!. .g| 000003a0 65 74 62 6f 78 6e 6f 28 78 25 2c 79 25 2c 61 72 |etboxno(x%,y%,ar| 000003b0 65 61 34 25 28 29 29 3e 30 0d 01 7c 25 63 68 6f |ea4%())>0..|%cho| 000003c0 69 63 65 25 3d a4 67 65 74 62 6f 78 6e 6f 28 78 |ice%=.getboxno(x| 000003d0 25 2c 79 25 2c 61 72 65 61 34 25 28 29 29 0d 01 |%,y%,area4%())..| 000003e0 86 10 c8 8e 20 63 68 6f 69 63 65 25 20 ca 0d 01 |.... choice% ...| 000003f0 90 13 c9 31 3a f2 77 69 6e 64 6f 77 66 6c 61 67 |...1:.windowflag| 00000400 73 0d 01 9a 11 c9 32 3a f2 69 63 6f 6e 66 6c 61 |s.....2:.iconfla| 00000410 67 73 0d 01 a4 24 c9 33 3a f2 61 64 6a 75 73 74 |gs...$.3:.adjust| 00000420 28 66 6c 61 67 73 24 29 3a f2 74 69 63 6b 73 3a |(flags$):.ticks:| 00000430 f2 66 6c 61 67 73 0d 01 ae 15 c9 34 3a f2 70 72 |.flags.....4:.pr| 00000440 69 6e 74 28 66 6c 61 67 73 24 29 0d 01 b8 0e c9 |int(flags$).....| 00000450 35 3a 71 75 69 74 25 3d b9 0d 01 c2 05 cb 0d 01 |5:quit%=........| 00000460 cc 10 7f 20 63 68 6f 69 63 65 25 3d 2d 31 0d 01 |... choice%=-1..| 00000470 d6 05 cb 0d 01 e0 05 cd 0d 01 ea 0b fd 20 71 75 |............. qu| 00000480 69 74 25 0d 01 f4 11 ff 28 22 46 58 34 22 29 3a |it%.....("FX4"):| 00000490 eb 20 31 32 0d 01 fe 05 e0 0d 02 08 05 3a 0d 02 |. 12.........:..| 000004a0 12 2f 3a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |./:=============| 000004b0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |================| 000004c0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0d 02 1c |=============...| 000004d0 2d f4 2e 20 44 69 73 70 6c 61 79 20 74 69 63 6b |-.. Display tick| 000004e0 73 20 61 6e 64 20 68 65 78 20 6e 75 6d 62 65 72 |s and hex number| 000004f0 20 66 6f 72 20 66 6c 61 67 73 0d 02 26 2f 3a 3d | for flags..&/:=| 00000500 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |================| * 00000520 3d 3d 3d 3d 3d 3d 3d 3d 3d 0d 02 30 05 3a 0d 02 |=========..0.:..| 00000530 3a 0b dd f2 66 6c 61 67 73 0d 02 44 36 f4 20 62 |:...flags..D6. b| 00000540 75 69 6c 64 20 68 65 78 20 6e 75 6d 62 65 72 20 |uild hex number | 00000550 66 72 6f 6d 20 62 69 74 73 20 69 6e 20 62 69 74 |from bits in bit| 00000560 25 28 29 20 61 6e 64 20 64 69 73 70 6c 61 79 0d |%() and display.| 00000570 02 4e 0f 68 65 78 24 3d a4 66 6c 61 67 73 0d 02 |.N.hex$=.flags..| 00000580 58 10 fb 20 31 32 38 2b 31 34 3a fb 20 33 0d 02 |X.. 128+14:. 3..| 00000590 62 12 f1 8a 37 30 2c 31 29 22 26 22 68 65 78 24 |b...70,1)"&"hex$| 000005a0 0d 02 6c 05 e1 0d 02 76 05 3a 0d 02 80 0b dd a4 |..l....v.:......| 000005b0 66 6c 61 67 73 0d 02 8a 1d ea 4a 25 2c 4b 25 2c |flags.....J%,K%,| 000005c0 68 65 78 25 2c 62 24 2c 69 25 3a 68 65 78 24 3d |hex%,b$,i%:hex$=| 000005d0 22 22 0d 02 94 18 e3 20 4a 25 3d 38 20 b8 20 31 |""..... J%=8 . 1| 000005e0 20 88 2d 31 3a 62 24 3d 22 22 0d 02 9e 12 e3 20 | .-1:b$=""..... | 000005f0 4b 25 3d 34 20 b8 20 31 20 88 2d 31 0d 02 a8 31 |K%=4 . 1 .-1...1| 00000600 69 25 3d 28 4a 25 2a 34 29 2d 28 35 2d 4b 25 29 |i%=(J%*4)-(5-K%)| 00000610 3a e7 20 62 69 74 25 28 69 25 29 20 62 24 2b 3d |:. bit%(i%) b$+=| 00000620 22 31 22 20 8b 20 62 24 2b 3d 22 30 22 0d 02 b2 |"1" . b$+="0"...| 00000630 05 ed 0d 02 bc 17 68 65 78 24 2b 3d c3 7e 28 a0 |......hex$+=.~(.| 00000640 28 22 25 22 2b 62 24 29 29 0d 02 c6 05 ed 0d 02 |("%"+b$)).......| 00000650 d0 09 3d 68 65 78 24 0d 02 da 05 3a 0d 02 e4 17 |..=hex$....:....| 00000660 dd f2 6d 65 6e 75 74 69 63 6b 73 28 66 6c 61 67 |..menuticks(flag| 00000670 73 24 29 0d 02 ee 18 ef 20 35 3a 67 79 25 3d 61 |s$)..... 5:gy%=a| 00000680 72 65 61 34 25 28 31 29 2b 34 30 0d 02 f8 28 67 |rea4%(1)+40...(g| 00000690 78 25 3d 61 72 65 61 34 25 28 30 29 2b 61 72 65 |x%=area4%(0)+are| 000006a0 61 34 25 28 32 29 2d 33 32 3a ec 20 67 78 25 2c |a4%(2)-32:. gx%,| 000006b0 67 79 25 0d 03 02 20 e7 20 66 6c 61 67 73 24 3d |gy%... . flags$=| 000006c0 22 77 69 6e 64 6f 77 22 20 e6 20 33 3a 8b 20 e6 |"window" . 3:. .| 000006d0 20 31 34 0d 03 0c 0a f1 20 bd 32 34 38 0d 03 16 | 14..... .248...| 000006e0 1c 67 78 25 2b 3d 61 72 65 61 34 25 28 32 29 3a |.gx%+=area4%(2):| 000006f0 ec 20 67 78 25 2c 67 79 25 0d 03 20 1e e7 20 66 |. gx%,gy%.. .. f| 00000700 6c 61 67 73 24 3d 22 69 63 6f 6e 22 20 e6 20 33 |lags$="icon" . 3| 00000710 3a 8b 20 e6 20 31 34 0d 03 2a 0a f1 20 bd 32 34 |:. . 14..*.. .24| 00000720 38 0d 03 34 09 ef 20 34 3a 87 0d 03 3e 05 e1 0d |8..4.. 4:...>...| 00000730 03 48 05 3a 0d 03 52 0b dd f2 74 69 63 6b 73 0d |.H.:..R...ticks.| 00000740 03 5c 11 ea 20 62 69 74 25 3a 62 69 74 25 3d 30 |.\.. bit%:bit%=0| 00000750 0d 03 66 18 f2 64 72 61 77 74 69 63 6b 73 28 61 |..f..drawticks(a| 00000760 72 65 61 31 25 28 29 29 0d 03 70 18 f2 64 72 61 |rea1%())..p..dra| 00000770 77 74 69 63 6b 73 28 61 72 65 61 32 25 28 29 29 |wticks(area2%())| 00000780 0d 03 7a 05 e1 0d 03 84 05 3a 0d 03 8e 15 dd f2 |..z......:......| 00000790 64 72 61 77 74 69 63 6b 73 28 61 25 28 29 29 0d |drawticks(a%()).| 000007a0 03 98 0d ea 20 69 78 25 2c 69 79 25 0d 03 a2 07 |.... ix%,iy%....| 000007b0 ef 20 35 0d 03 ac 2c e3 20 69 79 25 3d 61 25 28 |. 5...,. iy%=a%(| 000007c0 31 29 2b 61 25 28 37 29 2d 61 25 28 33 29 20 b8 |1)+a%(7)-a%(3) .| 000007d0 20 61 25 28 31 29 20 88 20 2d 61 25 28 33 29 0d | a%(1) . -a%(3).| 000007e0 03 b6 2b e3 20 69 78 25 3d 61 25 28 30 29 20 b8 |..+. ix%=a%(0) .| 000007f0 20 61 25 28 30 29 2b 61 25 28 36 29 2d 61 25 28 | a%(0)+a%(6)-a%(| 00000800 32 29 20 88 20 61 25 28 32 29 0d 03 c0 23 ec 20 |2) . a%(2)...#. | 00000810 69 78 25 2b 61 25 28 32 29 2d 33 32 2c 69 79 25 |ix%+a%(2)-32,iy%| 00000820 2b 61 25 28 33 29 2d 61 25 28 31 32 29 0d 03 ca |+a%(3)-a%(12)...| 00000830 1b e7 20 62 69 74 25 28 62 69 74 25 29 20 e6 20 |.. bit%(bit%) . | 00000840 33 3a 8b 20 e6 20 31 34 0d 03 d4 12 f1 20 bd 32 |3:. . 14..... .2| 00000850 34 38 3a 62 69 74 25 2b 3d 31 0d 03 de 05 ed 0d |48:bit%+=1......| 00000860 03 e8 05 ed 0d 03 f2 09 ef 20 34 3a 87 0d 03 fc |......... 4:....| 00000870 05 e1 0d 04 06 05 3a 0d 04 10 2f 3a 3d 3d 3d 3d |......:.../:====| 00000880 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |================| * 000008a0 3d 3d 3d 3d 3d 3d 0d 04 1a 2d f4 2e 20 41 63 74 |======...-.. Act| 000008b0 69 6f 6e 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6c |ion following cl| 000008c0 69 63 6b 20 6f 6e 20 61 20 62 69 74 20 70 6c 69 |ick on a bit pli| 000008d0 6e 74 68 0d 04 24 2f 3a 3d 3d 3d 3d 3d 3d 3d 3d |nth..$/:========| 000008e0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |================| * 00000900 3d 3d 0d 04 2e 05 3a 0d 04 38 1c dd f2 61 63 74 |==....:..8...act| 00000910 69 6f 6e 28 63 68 6f 69 63 65 25 2c 66 6c 61 67 |ion(choice%,flag| 00000920 73 24 29 0d 04 42 08 ea 20 4a 25 0d 04 4c 0f c8 |s$)..B.. J%..L..| 00000930 8e 20 66 6c 61 67 73 24 20 ca 0d 04 56 0e c9 20 |. flags$ ...V.. | 00000940 22 77 69 6e 64 6f 77 22 0d 04 60 2f 62 69 74 25 |"window"..`/bit%| 00000950 28 63 68 6f 69 63 65 25 29 3d ac 20 62 69 74 25 |(choice%)=. bit%| 00000960 28 63 68 6f 69 63 65 25 29 3a f2 74 69 63 6b 73 |(choice%):.ticks| 00000970 3a f2 66 6c 61 67 73 0d 04 6a 05 3a 0d 04 74 0c |:.flags..j.:..t.| 00000980 c9 20 22 69 63 6f 6e 22 0d 04 7e 10 c8 8e 20 63 |. "icon"..~... c| 00000990 68 6f 69 63 65 25 20 ca 0d 04 88 25 c9 30 2c 31 |hoice% ....%.0,1| 000009a0 2c 32 2c 33 2c 34 2c 35 2c 37 2c 38 2c 39 2c 31 |,2,3,4,5,7,8,9,1| 000009b0 30 2c 31 31 2c 32 31 2c 32 32 2c 32 33 0d 04 92 |0,11,21,22,23...| 000009c0 2f 62 69 74 25 28 63 68 6f 69 63 65 25 29 3d ac |/bit%(choice%)=.| 000009d0 20 62 69 74 25 28 63 68 6f 69 63 65 25 29 3a f2 | bit%(choice%):.| 000009e0 74 69 63 6b 73 3a f2 66 6c 61 67 73 0d 04 9c 05 |ticks:.flags....| 000009f0 3a 0d 04 a6 14 c9 20 36 3a f4 20 61 6e 74 69 2d |:..... 6:. anti-| 00000a00 61 6c 69 61 73 0d 04 b0 21 62 69 74 25 28 63 68 |alias...!bit%(ch| 00000a10 6f 69 63 65 25 29 3d ac 20 62 69 74 25 28 63 68 |oice%)=. bit%(ch| 00000a20 6f 69 63 65 25 29 0d 04 ba 37 e7 20 62 69 74 25 |oice%)...7. bit%| 00000a30 28 63 68 6f 69 63 65 25 29 20 f2 64 72 61 77 70 |(choice%) .drawp| 00000a40 6c 69 6e 74 68 73 28 61 72 65 61 35 25 28 29 2c |linths(area5%(),| 00000a50 22 42 69 74 36 53 65 74 22 2c 2d 31 29 0d 04 c4 |"Bit6Set",-1)...| 00000a60 3b e7 20 ac 20 62 69 74 25 28 63 68 6f 69 63 65 |;. . bit%(choice| 00000a70 25 29 20 f2 64 72 61 77 70 6c 69 6e 74 68 73 28 |%) .drawplinths(| 00000a80 61 72 65 61 35 25 28 29 2c 22 42 69 74 36 55 6e |area5%(),"Bit6Un| 00000a90 73 65 74 22 2c 2d 31 29 0d 04 ce 2b e3 20 4a 25 |set",-1)...+. J%| 00000aa0 3d 32 34 20 b8 20 33 31 3a 62 69 74 25 28 4a 25 |=24 . 31:bit%(J%| 00000ab0 29 3d 30 3a ed 3a f2 74 69 63 6b 73 3a f2 66 6c |)=0:.:.ticks:.fl| 00000ac0 61 67 73 0d 04 d8 05 3a 0d 04 e2 16 c9 20 31 32 |ags....:..... 12| 00000ad0 3a f4 20 62 75 74 74 6f 6e 20 74 79 70 65 0d 04 |:. button type..| 00000ae0 ec 1c f2 69 6e 28 35 30 30 2c 32 36 30 2c 22 22 |...in(500,260,""| 00000af0 2c 32 29 3a 6f 25 3d bb 6f 24 0d 04 f6 2c e7 20 |,2):o%=.o$...,. | 00000b00 ac 20 a4 6e 75 6d 62 65 72 28 6f 24 29 20 84 20 |. .number(o$) . | 00000b10 6f 25 3c 30 20 84 20 6f 25 3e 31 35 20 ef 20 37 |o%<0 . o%>15 . 7| 00000b20 3a 6f 24 3d 22 22 0d 05 00 2e f2 73 68 6f 77 6e |:o$="".....shown| 00000b30 75 6d 28 35 30 30 2c 32 36 30 2c 32 2c 6f 24 29 |um(500,260,2,o$)| 00000b40 3a f2 73 65 74 62 69 74 73 28 31 32 2c 31 35 2c |:.setbits(12,15,| 00000b50 bb 6f 24 29 0d 05 0a 11 f2 74 69 63 6b 73 3a f2 |.o$).....ticks:.| 00000b60 66 6c 61 67 73 0d 05 14 05 3a 0d 05 1e 0e c9 20 |flags....:..... | 00000b70 31 36 3a f4 20 45 53 47 0d 05 28 1d f2 69 6e 28 |16:. ESG..(..in(| 00000b80 31 31 36 30 2c 38 38 34 2c 22 22 2c 32 29 3a 6f |1160,884,"",2):o| 00000b90 25 3d bb 6f 24 0d 05 32 37 e7 20 ac 20 a4 6e 75 |%=.o$..27. . .nu| 00000ba0 6d 62 65 72 28 6f 24 29 20 84 20 28 6f 25 3c 31 |mber(o$) . (o%<1| 00000bb0 20 80 20 6f 24 3c 3e 22 22 29 20 84 20 6f 25 3e | . o$<>"") . o%>| 00000bc0 33 31 20 ef 20 37 3a 6f 24 3d 22 22 0d 05 3c 2f |31 . 7:o$=""..</| 00000bd0 f2 73 68 6f 77 6e 75 6d 28 31 31 36 30 2c 38 38 |.shownum(1160,88| 00000be0 34 2c 32 2c 6f 24 29 3a f2 73 65 74 62 69 74 73 |4,2,o$):.setbits| 00000bf0 28 31 36 2c 32 30 2c bb 6f 24 29 0d 05 46 11 f2 |(16,20,.o$)..F..| 00000c00 74 69 63 6b 73 3a f2 66 6c 61 67 73 0d 05 50 05 |ticks:.flags..P.| 00000c10 3a 0d 05 5a 38 c9 20 32 34 3a f4 20 66 67 20 63 |:..Z8. 24:. fg c| 00000c20 6f 6c 20 4f 52 20 28 69 66 20 62 69 74 20 36 20 |ol OR (if bit 6 | 00000c30 73 65 74 29 20 73 74 61 72 74 20 6f 66 20 66 6f |set) start of fo| 00000c40 6e 74 20 68 61 6e 64 6c 65 0d 05 64 0f e7 20 62 |nt handle..d.. b| 00000c50 69 74 25 28 36 29 20 8c 0d 05 6e 1d f2 69 6e 28 |it%(6) ...n..in(| 00000c60 31 31 36 30 2c 34 36 38 2c 22 22 2c 33 29 3a 6f |1160,468,"",3):o| 00000c70 25 3d bb 6f 24 0d 05 78 38 e7 20 ac 20 a4 6e 75 |%=.o$..x8. . .nu| 00000c80 6d 62 65 72 28 6f 24 29 20 84 20 28 6f 25 3c 31 |mber(o$) . (o%<1| 00000c90 20 80 20 6f 24 3c 3e 22 22 29 20 84 20 6f 25 3e | . o$<>"") . o%>| 00000ca0 32 35 35 20 ef 20 37 3a 6f 24 3d 22 22 0d 05 82 |255 . 7:o$=""...| 00000cb0 2f f2 73 68 6f 77 6e 75 6d 28 31 31 36 30 2c 34 |/.shownum(1160,4| 00000cc0 36 38 2c 33 2c 6f 24 29 3a f2 73 65 74 62 69 74 |68,3,o$):.setbit| 00000cd0 73 28 32 34 2c 33 31 2c bb 6f 24 29 0d 05 8c 05 |s(24,31,.o$)....| 00000ce0 cd 0d 05 96 11 e7 20 ac 20 62 69 74 25 28 36 29 |...... . bit%(6)| 00000cf0 20 8c 0d 05 a0 1d f2 69 6e 28 31 31 36 30 2c 34 | ......in(1160,4| 00000d00 36 38 2c 22 22 2c 32 29 3a 6f 25 3d bb 6f 24 0d |68,"",2):o%=.o$.| 00000d10 05 aa 2c e7 20 ac 20 a4 6e 75 6d 62 65 72 28 6f |..,. . .number(o| 00000d20 24 29 20 84 20 6f 25 3c 30 20 84 20 6f 25 3e 31 |$) . o%<0 . o%>1| 00000d30 35 20 ef 20 37 3a 6f 24 3d 22 22 0d 05 b4 2f f2 |5 . 7:o$="".../.| 00000d40 73 68 6f 77 6e 75 6d 28 31 31 36 30 2c 34 36 38 |shownum(1160,468| 00000d50 2c 32 2c 6f 24 29 3a f2 73 65 74 62 69 74 73 28 |,2,o$):.setbits(| 00000d60 32 34 2c 32 37 2c bb 6f 24 29 0d 05 be 05 cd 0d |24,27,.o$)......| 00000d70 05 c8 11 f2 74 69 63 6b 73 3a f2 66 6c 61 67 73 |....ticks:.flags| 00000d80 0d 05 d2 05 3a 0d 05 dc 37 c9 20 32 38 3a f4 20 |....:...7. 28:. | 00000d90 62 67 20 63 6f 6c 20 4f 52 20 28 69 66 20 62 69 |bg col OR (if bi| 00000da0 74 20 36 20 73 65 74 29 20 72 65 73 74 20 6f 66 |t 6 set) rest of| 00000db0 20 66 6f 6e 74 20 68 61 6e 64 6c 65 0d 05 e6 11 | font handle....| 00000dc0 e7 20 ac 20 62 69 74 25 28 36 29 20 8c 0d 05 f0 |. . bit%(6) ....| 00000dd0 1d f2 69 6e 28 31 31 36 30 2c 32 36 32 2c 22 22 |..in(1160,262,""| 00000de0 2c 32 29 3a 6f 25 3d bb 6f 24 0d 05 fa 2c e7 20 |,2):o%=.o$...,. | 00000df0 ac 20 a4 6e 75 6d 62 65 72 28 6f 24 29 20 84 20 |. .number(o$) . | 00000e00 6f 25 3c 30 20 84 20 6f 25 3e 31 35 20 ef 20 37 |o%<0 . o%>15 . 7| 00000e10 3a 6f 24 3d 22 22 0d 06 04 2f f2 73 68 6f 77 6e |:o$="".../.shown| 00000e20 75 6d 28 31 31 36 30 2c 32 36 32 2c 32 2c 6f 24 |um(1160,262,2,o$| 00000e30 29 3a f2 73 65 74 62 69 74 73 28 32 38 2c 33 31 |):.setbits(28,31| 00000e40 2c bb 6f 24 29 0d 06 0e 11 f2 74 69 63 6b 73 3a |,.o$).....ticks:| 00000e50 f2 66 6c 61 67 73 0d 06 18 05 cd 0d 06 22 05 cb |.flags......."..| 00000e60 0d 06 2c 05 3a 0d 06 36 05 cb 0d 06 40 05 e1 0d |..,.:..6....@...| 00000e70 06 4a 05 3a 0d 06 54 10 dd a4 6e 75 6d 62 65 72 |.J.:..T...number| 00000e80 28 63 24 29 0d 06 5e 1f ea 20 6c 24 2c 72 24 3a |(c$)..^.. l$,r$:| 00000e90 6c 24 3d c0 63 24 2c 31 29 3a 72 24 3d c2 63 24 |l$=.c$,1):r$=.c$| 00000ea0 2c 31 29 0d 06 68 18 3d a4 6e 75 6d 28 6c 24 29 |,1)..h.=.num(l$)| 00000eb0 20 80 20 a4 6e 75 6d 28 72 24 29 0d 06 72 04 0d | . .num(r$)..r..| 00000ec0 06 7c 0d dd a4 6e 75 6d 28 63 24 29 0d 06 86 18 |.|...num(c$)....| 00000ed0 3d a7 22 30 31 32 33 34 35 36 37 38 39 22 2c 63 |=."0123456789",c| 00000ee0 24 29 3e 30 0d 06 90 05 3a 0d 06 9a 11 dd f2 73 |$)>0....:......s| 00000ef0 68 6f 77 6e 75 6d 62 65 72 73 0d 06 a4 31 6f 24 |hownumbers...1o$| 00000f00 3d c3 a4 64 65 63 6f 64 65 62 69 74 73 28 31 32 |=..decodebits(12| 00000f10 2c 31 35 29 3a f2 73 68 6f 77 6e 75 6d 28 35 30 |,15):.shownum(50| 00000f20 30 2c 32 36 30 2c 32 2c 6f 24 29 0d 06 ae 32 6f |0,260,2,o$)...2o| 00000f30 24 3d c3 a4 64 65 63 6f 64 65 62 69 74 73 28 31 |$=..decodebits(1| 00000f40 36 2c 32 30 29 3a f2 73 68 6f 77 6e 75 6d 28 31 |6,20):.shownum(1| 00000f50 31 36 30 2c 38 38 34 2c 32 2c 6f 24 29 0d 06 b8 |160,884,2,o$)...| 00000f60 0f e7 20 62 69 74 25 28 36 29 20 8c 0d 06 c2 27 |.. bit%(6) ....'| 00000f70 f2 64 72 61 77 70 6c 69 6e 74 68 73 28 61 72 65 |.drawplinths(are| 00000f80 61 35 25 28 29 2c 22 42 69 74 36 53 65 74 22 2c |a5%(),"Bit6Set",| 00000f90 2d 31 29 0d 06 cc 32 6f 24 3d c3 a4 64 65 63 6f |-1)...2o$=..deco| 00000fa0 64 65 62 69 74 73 28 32 34 2c 33 31 29 3a f2 73 |debits(24,31):.s| 00000fb0 68 6f 77 6e 75 6d 28 31 31 36 30 2c 34 36 38 2c |hownum(1160,468,| 00000fc0 33 2c 6f 24 29 0d 06 d6 05 cd 0d 06 e0 10 e7 20 |3,o$).......... | 00000fd0 ac 20 62 69 74 25 28 36 29 8c 0d 06 ea 29 f2 64 |. bit%(6)....).d| 00000fe0 72 61 77 70 6c 69 6e 74 68 73 28 61 72 65 61 35 |rawplinths(area5| 00000ff0 25 28 29 2c 22 42 69 74 36 55 6e 73 65 74 22 2c |%(),"Bit6Unset",| 00001000 2d 31 29 0d 06 f4 32 6f 24 3d c3 a4 64 65 63 6f |-1)...2o$=..deco| 00001010 64 65 62 69 74 73 28 32 34 2c 32 37 29 3a f2 73 |debits(24,27):.s| 00001020 68 6f 77 6e 75 6d 28 31 31 36 30 2c 34 36 38 2c |hownum(1160,468,| 00001030 32 2c 6f 24 29 0d 06 fe 32 6f 24 3d c3 a4 64 65 |2,o$)...2o$=..de| 00001040 63 6f 64 65 62 69 74 73 28 32 38 2c 33 31 29 3a |codebits(28,31):| 00001050 f2 73 68 6f 77 6e 75 6d 28 31 31 36 30 2c 32 36 |.shownum(1160,26| 00001060 32 2c 32 2c 6f 24 29 0d 07 08 05 cd 0d 07 12 05 |2,2,o$).........| 00001070 e1 0d 07 1c 05 3a 0d 07 26 1a dd f2 73 68 6f 77 |.....:..&...show| 00001080 6e 75 6d 28 78 25 2c 79 25 2c 6d 25 2c 6e 24 29 |num(x%,y%,m%,n$)| 00001090 0d 07 30 1b e6 20 31 34 3a c8 93 c8 90 78 25 2c |..0.. 14:....x%,| 000010a0 79 25 2c 6d 25 2a 31 36 2c 33 30 0d 07 3a 2a e6 |y%,m%*16,30..:*.| 000010b0 20 31 32 38 2b 31 34 3a e6 20 33 3a ef 20 35 3a | 128+14:. 3:. 5:| 000010c0 ec 20 78 25 2c 79 25 2b 33 30 3a f1 20 6e 24 3a |. x%,y%+30:. n$:| 000010d0 ef 20 34 3a 87 0d 07 44 05 e1 0d 07 4e 05 3a 0d |. 4:...D....N.:.| 000010e0 07 58 17 dd f2 73 65 74 62 69 74 73 28 66 25 2c |.X...setbits(f%,| 000010f0 74 25 2c 6e 25 29 0d 07 62 1b ea 20 4a 25 2c 64 |t%,n%)..b.. J%,d| 00001100 25 2c 76 25 3a 76 25 3d 32 5e 28 74 25 2d 66 25 |%,v%:v%=2^(t%-f%| 00001110 29 0d 07 6c 14 e3 20 4a 25 3d 74 25 20 b8 20 66 |)..l.. J%=t% . f| 00001120 25 20 88 2d 31 0d 07 76 31 64 25 3d 6e 25 20 81 |% .-1..v1d%=n% .| 00001130 20 76 25 3a 62 69 74 25 28 4a 25 29 3d 64 25 3e | v%:bit%(J%)=d%>| 00001140 30 3a 6e 25 3d 6e 25 20 83 20 76 25 3a 76 25 3d |0:n%=n% . v%:v%=| 00001150 76 25 20 81 20 32 0d 07 80 05 ed 0d 07 8a 05 e1 |v% . 2..........| 00001160 0d 07 94 05 3a 0d 07 9e 17 dd a4 64 65 63 6f 64 |....:......decod| 00001170 65 62 69 74 73 28 66 25 2c 74 25 29 0d 07 a8 1b |ebits(f%,t%)....| 00001180 ea 20 4a 25 2c 6e 25 2c 76 25 3a 76 25 3d 32 5e |. J%,n%,v%:v%=2^| 00001190 28 74 25 2d 66 25 29 0d 07 b2 26 e3 20 4a 25 3d |(t%-f%)...&. J%=| 000011a0 74 25 20 b8 20 66 25 20 88 2d 31 3a e7 20 62 69 |t% . f% .-1:. bi| 000011b0 74 25 28 4a 25 29 20 6e 25 2b 3d 76 25 0d 07 bc |t%(J%) n%+=v%...| 000011c0 0d 76 25 3d 76 25 20 81 20 32 0d 07 c6 05 ed 0d |.v%=v% . 2......| 000011d0 07 d0 07 3d 6e 25 0d 07 da 05 3a 0d 07 e4 2d 3a |...=n%....:...-:| 000011e0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |================| * 00001200 3d 3d 3d 3d 3d 3d 3d 3d 0d 07 ee 2b f4 2e 20 43 |========...+.. C| 00001210 68 61 6e 67 65 20 62 65 74 77 65 65 6e 20 77 69 |hange between wi| 00001220 6e 64 6f 77 20 61 6e 64 20 69 63 6f 6e 20 66 6c |ndow and icon fl| 00001230 61 67 73 0d 07 f8 2d 3a 3d 3d 3d 3d 3d 3d 3d 3d |ags...-:========| 00001240 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |================| * 00001260 0d 08 02 05 3a 0d 08 0c 11 dd f2 77 69 6e 64 6f |....:......windo| 00001270 77 66 6c 61 67 73 0d 08 16 17 e7 20 66 6c 61 67 |wflags..... flag| 00001280 73 24 3d 22 77 69 6e 64 6f 77 22 20 e1 0d 08 20 |s$="window" ... | 00001290 2f 66 6c 61 67 73 24 3d 22 77 69 6e 64 6f 77 22 |/flags$="window"| 000012a0 3a f2 6d 65 6e 75 74 69 63 6b 73 28 66 6c 61 67 |:.menuticks(flag| 000012b0 73 24 29 3a 62 69 74 25 28 29 3d 30 0d 08 2a 13 |s$):bit%()=0..*.| 000012c0 f2 73 63 72 65 65 6e 28 66 6c 61 67 73 24 29 0d |.screen(flags$).| 000012d0 08 34 05 e1 0d 08 3e 05 3a 0d 08 48 0f dd f2 69 |.4....>.:..H...i| 000012e0 63 6f 6e 66 6c 61 67 73 0d 08 52 15 e7 20 66 6c |conflags..R.. fl| 000012f0 61 67 73 24 3d 22 69 63 6f 6e 22 20 e1 0d 08 5c |ags$="icon" ...\| 00001300 2d 66 6c 61 67 73 24 3d 22 69 63 6f 6e 22 3a f2 |-flags$="icon":.| 00001310 6d 65 6e 75 74 69 63 6b 73 28 66 6c 61 67 73 24 |menuticks(flags$| 00001320 29 3a 62 69 74 25 28 29 3d 30 0d 08 66 13 f2 73 |):bit%()=0..f..s| 00001330 63 72 65 65 6e 28 66 6c 61 67 73 24 29 0d 08 70 |creen(flags$)..p| 00001340 05 e1 0d 08 7a 05 3a 0d 08 84 14 dd f2 73 63 72 |....z.:......scr| 00001350 65 65 6e 28 66 6c 61 67 73 24 29 0d 08 8e 17 e7 |een(flags$).....| 00001360 20 66 6c 61 67 73 24 3d 22 77 69 6e 64 6f 77 22 | flags$="window"| 00001370 20 8c 0d 08 98 1c f2 68 65 61 64 69 6e 67 28 22 | ......heading("| 00001380 57 69 6e 64 6f 77 20 46 6c 61 67 73 22 29 0d 08 |Window Flags")..| 00001390 a2 27 f2 64 72 61 77 70 6c 69 6e 74 68 73 28 61 |.'.drawplinths(a| 000013a0 72 65 61 31 25 28 29 2c 22 57 69 6e 64 6f 77 31 |rea1%(),"Window1| 000013b0 22 2c 2d 31 29 0d 08 ac 27 f2 64 72 61 77 70 6c |",-1)...'.drawpl| 000013c0 69 6e 74 68 73 28 61 72 65 61 32 25 28 29 2c 22 |inths(area2%(),"| 000013d0 57 69 6e 64 6f 77 32 22 2c 2d 31 29 0d 08 b6 11 |Window2",-1)....| 000013e0 f2 74 69 63 6b 73 3a f2 66 6c 61 67 73 0d 08 c0 |.ticks:.flags...| 000013f0 05 cd 0d 08 ca 15 e7 20 66 6c 61 67 73 24 3d 22 |....... flags$="| 00001400 69 63 6f 6e 22 20 8c 0d 08 d4 1a f2 68 65 61 64 |icon" ......head| 00001410 69 6e 67 28 22 49 63 6f 6e 20 46 6c 61 67 73 22 |ing("Icon Flags"| 00001420 29 0d 08 de 25 f2 64 72 61 77 70 6c 69 6e 74 68 |)...%.drawplinth| 00001430 73 28 61 72 65 61 31 25 28 29 2c 22 49 63 6f 6e |s(area1%(),"Icon| 00001440 31 22 2c 2d 31 29 0d 08 e8 25 f2 64 72 61 77 70 |1",-1)...%.drawp| 00001450 6c 69 6e 74 68 73 28 61 72 65 61 32 25 28 29 2c |linths(area2%(),| 00001460 22 49 63 6f 6e 32 22 2c 2d 31 29 0d 08 f2 11 f2 |"Icon2",-1).....| 00001470 74 69 63 6b 73 3a f2 66 6c 61 67 73 0d 08 fc 05 |ticks:.flags....| 00001480 cd 0d 09 06 05 e1 0d 09 10 05 3a 0d 09 1a 14 dd |..........:.....| 00001490 f2 68 65 61 64 69 6e 67 28 74 65 78 74 24 29 0d |.heading(text$).| 000014a0 09 24 1c fb 20 31 32 38 2b 31 32 3a f1 8a 32 38 |.$.. 128+12:..28| 000014b0 2c 31 29 c4 33 32 2c 22 20 22 29 0d 09 2e 1d e6 |,1).32," ").....| 000014c0 20 31 3a f2 74 65 78 74 28 33 30 2c 31 2c 74 65 | 1:.text(30,1,te| 000014d0 78 74 24 2c 32 2c 31 29 0d 09 38 05 e1 0d 09 42 |xt$,2,1)..8....B| 000014e0 05 3a 0d 09 4c 22 3a 3d 3d 3d 3d 3d 3d 3d 3d 3d |.:..L":=========| 000014f0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |================| 00001500 3d 3d 3d 3d 0d 09 56 20 f4 2e 20 49 6e 70 75 74 |====..V .. Input| 00001510 20 66 6c 61 67 73 20 61 73 20 68 65 78 20 6e 75 | flags as hex nu| 00001520 6d 62 65 72 0d 09 60 22 3a 3d 3d 3d 3d 3d 3d 3d |mber..`":=======| 00001530 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |================| 00001540 3d 3d 3d 3d 3d 3d 0d 09 6a 05 3a 0d 09 74 0b dd |======..j.:..t..| 00001550 f2 69 6e 70 75 74 0d 09 7e 3a f4 20 61 63 63 65 |.input..~:. acce| 00001560 70 74 20 68 65 78 20 6e 75 6d 62 65 72 20 66 72 |pt hex number fr| 00001570 6f 6d 20 75 73 65 72 20 61 6e 64 20 70 6c 61 63 |om user and plac| 00001580 65 20 62 69 74 73 20 69 6e 20 62 69 74 25 28 29 |e bits in bit%()| 00001590 0d 09 88 1f ea 20 4a 25 2c 4b 25 2c 49 25 2c 68 |..... J%,K%,I%,h| 000015a0 65 78 24 2c 68 24 2c 62 24 2c 63 24 2c 69 25 0d |ex$,h$,b$,c$,i%.| 000015b0 09 92 29 f2 69 6e 28 31 31 33 36 2c 39 36 30 2c |..).in(1136,960,| 000015c0 22 22 2c 38 29 3a e7 6f 24 3d 22 22 20 84 20 6b |"",8):.o$="" . k| 000015d0 25 3d 32 37 20 8c 20 e1 0d 09 9c 16 e7 20 ac 20 |%=27 . ...... . | 000015e0 a4 68 65 78 28 6f 24 29 20 ef 20 37 3a e1 0d 09 |.hex(o$) . 7:...| 000015f0 a6 17 68 65 78 24 3d c2 c4 38 2c 22 30 22 29 2b |..hex$=..8,"0")+| 00001600 6f 24 2c 38 29 0d 09 b0 0e e3 20 4a 25 3d 31 20 |o$,8)..... J%=1 | 00001610 b8 20 34 0d 09 ba 2f 68 24 3d 22 22 3a e3 20 4b |. 4.../h$="":. K| 00001620 25 3d 31 20 b8 20 32 3a 68 24 2b 3d c1 68 65 78 |%=1 . 2:h$+=.hex| 00001630 24 2c 4a 25 2a 32 2d 28 32 2d 4b 25 29 2c 31 29 |$,J%*2-(2-K%),1)| 00001640 3a ed 0d 09 c4 16 62 24 3d a4 62 69 6e 28 a0 28 |:.....b$=.bin(.(| 00001650 22 26 22 2b 68 24 29 29 0d 09 ce 0e e3 20 49 25 |"&"+h$))..... I%| 00001660 3d 31 20 b8 20 38 0d 09 d8 10 63 24 3d c1 62 24 |=1 . 8....c$=.b$| 00001670 2c 49 25 2c 31 29 0d 09 e2 19 69 25 3d 33 31 2d |,I%,1)....i%=31-| 00001680 28 28 4a 25 2a 38 29 2d 28 39 2d 49 25 29 29 0d |((J%*8)-(9-I%)).| 00001690 09 ec 24 e7 63 24 3d 22 31 22 20 62 69 74 25 28 |..$.c$="1" bit%(| 000016a0 69 25 29 3d 2d 31 3a 8b 20 62 69 74 25 28 69 25 |i%)=-1:. bit%(i%| 000016b0 29 3d 30 0d 09 f6 05 ed 0d 0a 00 05 ed 0d 0a 0a |)=0.............| 000016c0 05 e1 0d 0a 14 05 3a 0d 0a 1e 0f dd a4 62 69 6e |......:......bin| 000016d0 28 64 65 63 25 29 0d 0a 28 3b f4 20 72 65 74 75 |(dec%)..(;. retu| 000016e0 72 6e 73 20 38 20 63 68 72 20 73 74 72 69 6e 67 |rns 8 chr string| 000016f0 20 6f 66 20 62 69 6e 61 72 79 20 72 65 70 72 65 | of binary repre| 00001700 73 65 6e 74 61 74 69 6f 6e 20 6f 66 20 64 65 63 |sentation of dec| 00001710 25 0d 0a 32 14 ea 20 62 69 6e 24 2c 62 69 74 25 |%..2.. bin$,bit%| 00001720 2c 64 69 76 25 0d 0a 3c 14 62 69 6e 24 3d 22 22 |,div%..<.bin$=""| 00001730 3a 64 69 76 25 3d 31 32 38 0d 0a 46 14 e3 20 62 |:div%=128..F.. b| 00001740 69 74 25 3d 37 20 b8 20 30 20 88 2d 31 0d 0a 50 |it%=7 . 0 .-1..P| 00001750 3a e7 20 64 65 63 25 20 81 20 64 69 76 25 3e 30 |:. dec% . div%>0| 00001760 20 62 69 6e 24 2b 3d 22 31 22 3a 64 65 63 25 3d | bin$+="1":dec%=| 00001770 64 65 63 25 20 83 20 64 69 76 25 20 8b 20 62 69 |dec% . div% . bi| 00001780 6e 24 2b 3d 22 30 22 0d 0a 5a 11 64 69 76 25 3d |n$+="0"..Z.div%=| 00001790 64 69 76 25 20 81 20 32 0d 0a 64 05 ed 0d 0a 6e |div% . 2..d....n| 000017a0 09 3d 62 69 6e 24 0d 0a 78 05 3a 0d 0a 82 2c dd |.=bin$..x.:...,.| 000017b0 f2 69 6e 28 78 25 2c 79 25 2c 69 24 2c 6d 25 29 |.in(x%,y%,i$,m%)| 000017c0 3a ea 6c 25 2c 6b 25 2c 70 24 2c 65 78 69 74 25 |:.l%,k%,p$,exit%| 000017d0 3a 2a 46 58 34 2c 31 0d 0a 8c 30 6c 25 3d a9 69 |:*FX4,1...0l%=.i| 000017e0 24 3a 70 24 3d c4 6d 25 2d 6c 25 2c 22 2d 22 29 |$:p$=.m%-l%,"-")| 000017f0 3a 6f 24 3d 69 24 3a 65 78 69 74 25 3d a3 3a 2a |:o$=i$:exit%=.:*| 00001800 46 58 32 32 39 2c 31 0d 0a 96 0b f5 3a 2a 46 58 |FX229,1.....:*FX| 00001810 32 31 0d 0a a0 1c e6 37 3a c8 93 c8 90 78 25 2c |21.....7:....x%,| 00001820 79 25 2c 6d 25 2a 31 36 2c 33 30 3a e6 30 0d 0a |y%,m%*16,30:.0..| 00001830 aa 28 ef 35 3a ec 78 25 2c 79 25 2b 33 30 3a f1 |.(.5:.x%,y%+30:.| 00001840 6f 24 2b 70 24 3b 3a ec 78 25 2b 6c 25 2a 31 36 |o$+p$;:.x%+l%*16| 00001850 2c 79 25 2b 33 30 0d 0a b4 1a f5 3a c8 97 6d 78 |,y%+30.....:..mx| 00001860 25 2c 6d 79 25 2c 6d 62 25 3a fd 6d 62 25 3d 30 |%,my%,mb%:.mb%=0| 00001870 0d 0a be 24 f5 3a 6b 25 3d a6 30 3a c8 97 6d 78 |...$.:k%=.0:..mx| 00001880 25 2c 6d 79 25 2c 6d 62 25 3a fd ac 6b 25 84 6d |%,my%,mb%:..k%.m| 00001890 62 25 3e 30 0d 0a c8 0b f4 20 70 72 69 6e 74 0d |b%>0..... print.| 000018a0 0a d2 34 e7 6b 25 3e 33 31 80 6b 25 3c 31 32 37 |..4.k%>31.k%<127| 000018b0 80 6c 25 3c 6d 25 6f 24 3d 6f 24 2b bd 6b 25 3a |.l%<m%o$=o$+.k%:| 000018c0 70 24 3d c0 70 24 2c a9 70 24 2d 31 29 3a 6c 25 |p$=.p$,.p$-1):l%| 000018d0 2b 3d 31 0d 0a dc 0c f4 20 64 65 6c 65 74 65 0d |+=1..... delete.| 000018e0 0a e6 2c e7 6b 25 3d 31 32 37 80 6c 25 3e 30 6f |..,.k%=127.l%>0o| 000018f0 24 3d c0 6f 24 2c 6c 25 2d 31 29 3a 70 24 3d 70 |$=.o$,l%-1):p$=p| 00001900 24 2b 22 2d 22 3a 6c 25 2d 3d 31 0d 0a f0 15 f4 |$+"-":l%-=1.....| 00001910 20 65 78 69 74 20 63 6f 6e 64 69 74 69 6f 6e 73 | exit conditions| 00001920 0d 0a fa 1d e7 6b 25 3d 32 37 84 6b 25 3d 31 33 |.....k%=27.k%=13| 00001930 84 6d 62 25 3e 30 65 78 69 74 25 3d b9 0d 0b 04 |.mb%>0exit%=....| 00001940 0c fd 65 78 69 74 25 3a 87 0d 0b 0e 1a e6 31 34 |..exit%:......14| 00001950 3a c8 93 c8 90 78 25 2c 79 25 2c 6d 25 2a 31 36 |:....x%,y%,m%*16| 00001960 2c 33 30 0d 0b 18 21 e6 31 32 38 2b 31 34 3a e6 |,30...!.128+14:.| 00001970 33 3a ec 78 25 2c 79 25 2b 33 30 3a f1 6f 24 3a |3:.x%,y%+30:.o$:| 00001980 ef 34 3a 87 0d 0b 22 17 e7 6b 25 3d 31 33 f5 fd |.4:..."..k%=13..| 00001990 ac a6 2d 37 34 3a 2a 46 58 32 31 0d 0b 2c 20 e7 |..-74:*FX21.., .| 000019a0 6d 62 25 3e 30 f5 3a c8 97 6d 78 25 2c 6d 79 25 |mb%>0.:..mx%,my%| 000019b0 2c 6d 62 25 3a fd 6d 62 25 3d 30 0d 0b 36 0a 2a |,mb%:.mb%=0..6.*| 000019c0 46 58 32 32 39 0d 0b 40 05 e1 0d 0b 4a 05 3a 0d |FX229..@....J.:.| 000019d0 0b 54 0d dd a4 68 65 78 28 73 24 29 0d 0b 5e 21 |.T...hex(s$)..^!| 000019e0 f4 20 49 73 20 74 68 69 73 20 61 20 76 61 6c 69 |. Is this a vali| 000019f0 64 20 68 65 78 20 73 74 72 69 6e 67 3f 0d 0b 68 |d hex string?..h| 00001a00 13 ea 20 63 24 2c 69 25 2c 63 25 3a 63 25 3d 31 |.. c$,i%,c%:c%=1| 00001a10 0d 0b 72 18 f5 3a 63 24 3d c1 73 24 2c 63 25 2c |..r..:c$=.s$,c%,| 00001a20 31 29 3a 63 25 2b 3d 31 0d 0b 7c 24 69 25 3d a7 |1):c%+=1..|$i%=.| 00001a30 22 41 42 43 44 45 46 61 62 63 64 65 66 30 31 32 |"ABCDEFabcdef012| 00001a40 33 34 35 36 37 38 39 22 2c 63 24 29 0d 0b 86 13 |3456789",c$)....| 00001a50 fd 20 69 25 3d 30 20 84 20 63 25 3e a9 73 24 0d |. i%=0 . c%>.s$.| 00001a60 0b 90 11 e7 69 25 3d 30 20 8c 3d a3 3a 8b 3d b9 |....i%=0 .=.:.=.| 00001a70 0d 0b 9a 05 3a 0d 0b a4 32 3a 3d 3d 3d 3d 3d 3d |....:...2:======| 00001a80 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |================| * 00001aa0 3d 3d 3d 3d 3d 3d 3d 0d 0b ae 30 f4 2e 20 41 64 |=======...0.. Ad| 00001ab0 6a 75 73 74 20 75 73 65 72 27 73 20 73 65 6c 65 |just user's sele| 00001ac0 63 74 69 6f 6e 20 69 66 20 6c 6f 67 69 63 20 64 |ction if logic d| 00001ad0 69 63 74 61 74 65 73 0d 0b b8 32 3a 3d 3d 3d 3d |ictates...2:====| 00001ae0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |================| * 00001b00 3d 3d 3d 3d 3d 3d 3d 3d 3d 0d 0b c2 05 3a 0d 0b |=========....:..| 00001b10 cc 14 dd f2 61 64 6a 75 73 74 28 66 6c 61 67 73 |....adjust(flags| 00001b20 24 29 0d 0b d6 2e f4 20 69 66 20 6e 65 63 65 73 |$)..... if neces| 00001b30 73 61 72 79 2c 20 61 6c 74 65 72 20 74 68 65 20 |sary, alter the | 00001b40 75 73 65 72 27 73 20 73 65 6c 65 63 74 69 6f 6e |user's selection| 00001b50 0d 0b e0 08 ea 20 4a 25 0d 0b ea 17 e7 20 66 6c |..... J%..... fl| 00001b60 61 67 73 24 3d 22 77 69 6e 64 6f 77 22 20 8c 0d |ags$="window" ..| 00001b70 0b f4 2a e3 20 4a 25 3d 31 33 20 b8 20 31 35 3a |..*. J%=13 . 15:| 00001b80 62 69 74 25 28 4a 25 29 3d 30 3a ed 20 20 3a f4 |bit%(J%)=0:. :.| 00001b90 20 72 65 73 65 72 76 65 64 0d 0b fe 2a e3 20 4a | reserved...*. J| 00001ba0 25 3d 32 30 20 b8 20 32 33 3a 62 69 74 25 28 4a |%=20 . 23:bit%(J| 00001bb0 25 29 3d 30 3a ed 20 20 3a f4 20 72 65 73 65 72 |%)=0:. :. reser| 00001bc0 76 65 64 0d 0c 08 32 e3 20 4a 25 3d 31 36 20 b8 |ved...2. J%=16 .| 00001bd0 20 31 39 3a 62 69 74 25 28 4a 25 29 3d 30 3a ed | 19:bit%(J%)=0:.| 00001be0 20 20 3a f4 20 72 65 74 75 72 6e 20 69 6e 66 6f | :. return info| 00001bf0 20 6f 6e 6c 79 0d 0c 12 46 e7 20 62 69 74 25 28 | only...F. bit%(| 00001c00 33 31 29 20 62 69 74 25 28 30 29 3d 30 3a 62 69 |31) bit%(0)=0:bi| 00001c10 74 25 28 32 29 3d 30 3a 62 69 74 25 28 33 29 3d |t%(2)=0:bit%(3)=| 00001c20 30 3a 62 69 74 25 28 37 29 3d 30 20 20 3a f4 20 |0:bit%(7)=0 :. | 00001c30 41 72 74 68 75 72 20 6f 6e 6c 79 0d 0c 1c 26 e7 |Arthur only...&.| 00001c40 20 ac 20 62 69 74 25 28 32 36 29 20 62 69 74 25 | . bit%(26) bit%| 00001c50 28 32 34 29 3d 30 3a 62 69 74 25 28 32 35 29 3d |(24)=0:bit%(25)=| 00001c60 30 0d 0c 26 2a 20 20 20 f4 20 6e 65 65 64 20 74 |0..&* . need t| 00001c70 69 74 6c 65 20 62 61 72 20 66 6f 72 20 62 61 63 |itle bar for bac| 00001c80 6b 20 61 6e 64 20 63 6c 6f 73 65 0d 0c 30 26 e7 |k and close..0&.| 00001c90 20 ac 20 62 69 74 25 28 32 38 29 20 62 69 74 25 | . bit%(28) bit%| 00001ca0 28 32 37 29 3d 30 3a 62 69 74 25 28 32 39 29 3d |(27)=0:bit%(29)=| 00001cb0 30 0d 0c 3a 2f 20 20 20 f4 20 6e 65 65 64 20 76 |0..:/ . need v| 00001cc0 65 72 74 20 73 63 72 6f 6c 6c 20 66 6f 72 20 72 |ert scroll for r| 00001cd0 65 73 69 7a 65 20 61 6e 64 20 74 6f 67 67 6c 65 |esize and toggle| 00001ce0 0d 0c 44 05 cd 0d 0c 4e 15 e7 20 66 6c 61 67 73 |..D....N.. flags| 00001cf0 24 3d 22 69 63 6f 6e 22 20 8c 0d 0c 58 2a e7 20 |$="icon" ...X*. | 00001d00 62 69 74 25 28 36 29 20 84 20 62 69 74 25 28 39 |bit%(6) . bit%(9| 00001d10 29 20 8c 20 62 69 74 25 28 30 29 3d b9 3a f4 20 |) . bit%(0)=.:. | 00001d20 74 65 78 74 0d 0c 62 23 e7 20 62 69 74 25 28 31 |text..b#. bit%(1| 00001d30 31 29 20 8c 20 62 69 74 25 28 31 29 3d b9 3a f4 |1) . bit%(1)=.:.| 00001d40 20 73 70 72 69 74 65 0d 0c 6c 05 cd 0d 0c 76 05 | sprite..l....v.| 00001d50 e1 0d 0c 80 05 3a 0d 0c 8a 2f 3a 3d 3d 3d 3d 3d |.....:.../:=====| 00001d60 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |================| * 00001d80 3d 3d 3d 3d 3d 0d 0c 94 2d f4 2e 20 48 61 72 64 |=====...-.. Hard| 00001d90 2d 63 6f 70 79 20 70 72 69 6e 74 6f 75 74 20 6f |-copy printout o| 00001da0 66 20 63 75 72 72 65 6e 74 20 73 65 74 74 69 6e |f current settin| 00001db0 67 73 0d 0c 9e 2f 3a 3d 3d 3d 3d 3d 3d 3d 3d 3d |gs.../:=========| 00001dc0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |================| * 00001de0 3d 0d 0c a8 05 3a 0d 0c b2 13 dd f2 70 72 69 6e |=....:......prin| 00001df0 74 28 66 6c 61 67 73 24 29 0d 0c bc 1a e7 20 ac |t(flags$)..... .| 00001e00 20 a4 70 72 69 6e 74 65 72 4f 4b 20 8c 20 ef 20 | .printerOK . . | 00001e10 37 3a e1 0d 0c c6 18 ef 32 38 2c 36 30 2c 33 30 |7:......28,60,30| 00001e20 2c 36 30 2c 33 30 2c 32 3a f1 27 0d 0c d0 05 3a |,60,30,2:.'....:| 00001e30 0d 0c da 17 e7 20 66 6c 61 67 73 24 3d 22 77 69 |..... flags$="wi| 00001e40 6e 64 6f 77 22 20 8c 0d 0c e4 1f f1 22 57 49 4e |ndow" ......"WIN| 00001e50 44 4f 57 20 46 4c 41 47 53 20 3d 20 26 22 3b a4 |DOW FLAGS = &";.| 00001e60 66 6c 61 67 73 27 0d 0c ee 17 f2 72 65 73 74 6f |flags'.....resto| 00001e70 72 65 28 22 57 69 6e 64 6f 77 31 22 29 0d 0c f8 |re("Window1")...| 00001e80 0f e3 20 4a 25 3d 30 20 b8 20 31 35 0d 0d 02 12 |.. J%=0 . 15....| 00001e90 f3 20 74 24 3a e7 20 4a 25 3c 31 33 20 8c 0d 0d |. t$:. J%<13 ...| 00001ea0 0c 16 f1 20 74 24 2b c4 34 30 2d a9 74 24 2c 22 |... t$+.40-.t$,"| 00001eb0 20 22 29 3b 0d 0d 16 1a e7 20 62 69 74 25 28 4a | ");..... bit%(J| 00001ec0 25 29 20 f1 22 59 22 20 8b 20 f1 22 2d 22 0d 0d |%) ."Y" . ."-"..| 00001ed0 20 05 cd 0d 0d 2a 15 ed 3a f1 22 31 33 2d 32 34 | ....*..:."13-24| 00001ee0 20 55 6e 75 73 65 64 22 0d 0d 34 17 f2 72 65 73 | Unused"..4..res| 00001ef0 74 6f 72 65 28 22 57 69 6e 64 6f 77 32 22 29 0d |tore("Window2").| 00001f00 0d 3e 10 e3 20 4a 25 3d 31 36 20 b8 20 33 31 0d |.>.. J%=16 . 31.| 00001f10 0d 48 12 f3 20 74 24 3a e7 20 4a 25 3e 32 33 20 |.H.. t$:. J%>23 | 00001f20 8c 0d 0d 52 16 f1 20 74 24 2b c4 34 30 2d a9 74 |...R.. t$+.40-.t| 00001f30 24 2c 22 20 22 29 3b 0d 0d 5c 1a e7 20 62 69 74 |$," ");..\.. bit| 00001f40 25 28 4a 25 29 20 f1 22 59 22 20 8b 20 f1 22 2d |%(J%) ."Y" . ."-| 00001f50 22 0d 0d 66 05 cd 0d 0d 70 05 ed 0d 0d 7a 05 cd |"..f....p....z..| 00001f60 0d 0d 84 05 3a 0d 0d 8e 15 e7 20 66 6c 61 67 73 |....:..... flags| 00001f70 24 3d 22 69 63 6f 6e 22 20 8c 0d 0d 98 1d f1 22 |$="icon" ......"| 00001f80 49 43 4f 4e 20 46 4c 41 47 53 20 3d 20 26 22 3b |ICON FLAGS = &";| 00001f90 a4 66 6c 61 67 73 27 0d 0d a2 15 f2 72 65 73 74 |.flags'.....rest| 00001fa0 6f 72 65 28 22 49 63 6f 6e 31 22 29 0d 0d ac 0f |ore("Icon1")....| 00001fb0 e3 20 4a 25 3d 30 20 b8 20 31 35 0d 0d b6 12 f3 |. J%=0 . 15.....| 00001fc0 20 74 24 3a e7 20 4a 25 3c 31 33 20 8c 0d 0d c0 | t$:. J%<13 ....| 00001fd0 1e e7 20 62 69 74 25 28 4a 25 29 20 6e 24 3d 22 |.. bit%(J%) n$="| 00001fe0 59 22 20 8b 20 6e 24 3d 22 2d 22 0d 0d ca 22 e7 |Y" . n$="-"...".| 00001ff0 20 4a 25 3d 31 32 20 6e 24 3d c3 a4 64 65 63 6f | J%=12 n$=..deco| 00002000 64 65 62 69 74 73 28 31 32 2c 31 35 29 0d 0d d4 |debits(12,15)...| 00002010 1c f1 20 74 24 2b c4 34 30 2d a9 74 24 2d a9 6e |.. t$+.40-.t$-.n| 00002020 24 2c 22 20 22 29 2b 6e 24 0d 0d de 05 cd 0d 0d |$," ")+n$.......| 00002030 e8 05 ed 0d 0d f2 15 f2 72 65 73 74 6f 72 65 28 |........restore(| 00002040 22 49 63 6f 6e 32 22 29 0d 0d fc 10 e3 20 4a 25 |"Icon2")..... J%| 00002050 3d 31 36 20 b8 20 32 33 0d 0e 06 2a f3 20 74 24 |=16 . 23...*. t$| 00002060 3a e7 20 4a 25 3d 31 36 20 84 20 28 4a 25 3e 32 |:. J%=16 . (J%>2| 00002070 30 80 4a 25 3c 32 35 29 20 84 20 4a 25 3d 32 38 |0.J%<25) . J%=28| 00002080 20 8c 0d 0e 10 1e e7 20 62 69 74 25 28 4a 25 29 | ...... bit%(J%)| 00002090 20 6e 24 3d 22 59 22 20 8b 20 6e 24 3d 22 2d 22 | n$="Y" . n$="-"| 000020a0 0d 0e 1a 22 e7 20 4a 25 3d 31 36 20 6e 24 3d c3 |...". J%=16 n$=.| 000020b0 a4 64 65 63 6f 64 65 62 69 74 73 28 31 36 2c 32 |.decodebits(16,2| 000020c0 30 29 0d 0e 24 1c f1 20 74 24 2b c4 34 30 2d a9 |0)..$.. t$+.40-.| 000020d0 74 24 2d a9 6e 24 2c 22 20 22 29 2b 6e 24 0d 0e |t$-.n$," ")+n$..| 000020e0 2e 05 cd 0d 0e 38 05 ed 0d 0e 42 05 3a 0d 0e 4c |.....8....B.:..L| 000020f0 0f e7 20 62 69 74 25 28 36 29 20 8c 0d 0e 56 33 |.. bit%(6) ...V3| 00002100 f2 72 65 73 74 6f 72 65 28 22 42 69 74 36 53 65 |.restore("Bit6Se| 00002110 74 22 29 3a f3 20 74 24 3a 6e 24 3d c3 a4 64 65 |t"):. t$:n$=..de| 00002120 63 6f 64 65 62 69 74 73 28 32 34 2c 33 31 29 0d |codebits(24,31).| 00002130 0e 60 1c f1 20 74 24 2b c4 34 30 2d a9 74 24 2d |.`.. t$+.40-.t$-| 00002140 a9 6e 24 2c 22 20 22 29 2b 6e 24 0d 0e 6a 05 cd |.n$," ")+n$..j..| 00002150 0d 0e 74 05 3a 0d 0e 7e 11 e7 20 ac 20 62 69 74 |..t.:..~.. . bit| 00002160 25 28 36 29 20 8c 0d 0e 88 19 f2 72 65 73 74 6f |%(6) ......resto| 00002170 72 65 28 22 42 69 74 36 55 6e 73 65 74 22 29 0d |re("Bit6Unset").| 00002180 0e 92 10 e3 20 4a 25 3d 32 34 20 b8 20 32 38 0d |.... J%=24 . 28.| 00002190 0e 9c 1a f3 20 74 24 3a e7 20 4a 25 3d 32 34 20 |.... t$:. J%=24 | 000021a0 84 20 4a 25 3d 32 38 20 8c 0d 0e a6 22 e7 20 4a |. J%=28 ....". J| 000021b0 25 3d 32 34 20 6e 24 3d c3 a4 64 65 63 6f 64 65 |%=24 n$=..decode| 000021c0 62 69 74 73 28 32 34 2c 32 37 29 0d 0e b0 22 e7 |bits(24,27)...".| 000021d0 20 4a 25 3d 32 38 20 6e 24 3d c3 a4 64 65 63 6f | J%=28 n$=..deco| 000021e0 64 65 62 69 74 73 28 32 38 2c 33 31 29 0d 0e ba |debits(28,31)...| 000021f0 1c f1 20 74 24 2b c4 34 30 2d a9 74 24 2d a9 6e |.. t$+.40-.t$-.n| 00002200 24 2c 22 20 22 29 2b 6e 24 0d 0e c4 05 cd 0d 0e |$," ")+n$.......| 00002210 ce 05 ed 0d 0e d8 05 cd 0d 0e e2 05 cd 0d 0e ec |................| 00002220 05 3a 0d 0e f6 09 ef 33 2c 32 36 0d 0f 00 05 e1 |.:.....3,26.....| 00002230 0d 0f 0a 05 3a 0d 0f 14 0f dd a4 70 72 69 6e 74 |....:......print| 00002240 65 72 4f 4b 0d 0f 1e 14 62 75 66 66 65 72 73 69 |erOK....buffersi| 00002250 7a 65 3d 96 28 2d 34 29 0d 0f 28 1c ef 32 2c 31 |ze=.(-4)..(..2,1| 00002260 2c 30 2c 31 2c 30 2c 31 2c 30 2c 31 2c 30 2c 31 |,0,1,0,1,0,1,0,1| 00002270 2c 30 2c 33 0d 0f 32 0e 64 75 6d 6d 79 3d a6 28 |,0,3..2.dummy=.(| 00002280 32 29 0d 0f 3c 17 3d 28 96 28 2d 34 29 3d 62 75 |2)..<.=(.(-4)=bu| 00002290 66 66 65 72 73 69 7a 65 29 0d 0f 46 05 3a 0d 0f |ffersize)..F.:..| 000022a0 50 29 3a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |P):=============| 000022b0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |================| 000022c0 3d 3d 3d 3d 3d 3d 3d 0d 0f 5a 27 f4 2e 20 47 65 |=======..Z'.. Ge| 000022d0 6e 65 72 61 6c 20 70 72 6f 63 65 64 75 72 65 73 |neral procedures| 000022e0 20 61 6e 64 20 66 75 6e 63 74 69 6f 6e 73 0d 0f | and functions..| 000022f0 64 29 3a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |d):=============| 00002300 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |================| 00002310 3d 3d 3d 3d 3d 3d 3d 0d 0f 6e 05 3a 0d 0f 78 1a |=======..n.:..x.| 00002320 dd f2 74 65 78 74 28 78 25 2c 79 25 2c 74 24 2c |..text(x%,y%,t$,| 00002330 78 73 2c 79 73 29 0d 0f 82 13 ea 20 6d 25 2c 70 |xs,ys)..... m%,p| 00002340 25 2c 6e 25 3a 6d 25 3d eb 0d 0f 8c 26 70 25 3d |%,n%:m%=....&p%=| 00002350 32 5e 28 28 6d 25 2d 28 6d 25 3e 35 80 6d 25 3c |2^((m%-(m%>5.m%<| 00002360 31 32 84 6d 25 3d 31 34 29 29 83 33 2b 31 29 0d |12.m%=14)).3+1).| 00002370 0f 96 06 ef 35 0d 0f a0 19 ef 32 33 2c 31 37 2c |....5.....23,17,| 00002380 37 2c 36 2c 38 2a 78 73 3b 38 2a 79 73 7c 0d 0f |7,6,8*xs;8*ys|..| 00002390 aa 17 e7 a9 28 74 24 29 3c 35 6e 25 3d 32 34 3a |....(t$)<5n%=24:| 000023a0 8b 6e 25 3d 34 0d 0f b4 1a ec 78 25 2a 38 2a 70 |.n%=4.....x%*8*p| 000023b0 25 2b 6e 25 2c 31 30 32 30 2d 79 25 2a 33 32 0d |%+n%,1020-y%*32.| 000023c0 0f be 08 f1 74 24 3b 0d 0f c8 13 ef 32 33 2c 31 |....t$;.....23,1| 000023d0 37 2c 37 2c 36 2c 38 3b 38 7c 0d 0f d2 08 ef 34 |7,7,6,8;8|.....4| 000023e0 3a 87 0d 0f dc 05 e1 0d 0f e6 05 3a 0d 0f f0 12 |:..........:....| 000023f0 dd f2 6d 6f 75 73 65 77 61 69 74 28 6e 29 0d 0f |..mousewait(n)..| 00002400 fa 24 f4 20 30 2d 37 3a 20 57 61 69 74 20 66 6f |.$. 0-7: Wait fo| 00002410 72 20 74 68 69 73 20 6d 6f 75 73 65 20 73 74 61 |r this mouse sta| 00002420 74 65 0d 10 04 1e f4 20 6e 65 67 3a 20 57 61 69 |te..... neg: Wai| 00002430 74 20 66 6f 72 20 7a 65 72 6f 20 66 69 72 73 74 |t for zero first| 00002440 0d 10 0e 1e f4 20 38 3a 20 20 20 57 61 69 74 20 |..... 8: Wait | 00002450 66 6f 72 20 61 6e 79 20 62 75 74 74 6f 6e 0d 10 |for any button..| 00002460 18 1c f4 20 31 36 3a 20 20 57 61 69 74 20 66 6f |... 16: Wait fo| 00002470 72 20 6b 65 79 70 72 65 73 73 0d 10 22 1c ea 20 |r keypress..".. | 00002480 61 6e 79 70 72 65 73 73 2c 69 6e 6b 65 79 2c 6d |anypress,inkey,m| 00002490 2c 61 2c 62 2c 63 0d 10 2c 0b 2a 46 58 32 31 2c |,a,b,c..,.*FX21,| 000024a0 39 0d 10 36 20 e7 20 6e 3c 30 20 8c 20 f2 6d 6f |9..6 . n<0 . .mo| 000024b0 75 73 65 77 61 69 74 28 30 29 3a 6e 3d 94 28 6e |usewait(0):n=.(n| 000024c0 29 0d 10 40 20 e7 20 28 6e 20 80 20 31 36 29 3e |)..@ . (n . 16)>| 000024d0 30 20 8c 20 69 6e 6b 65 79 3d b9 3a 2a 46 58 32 |0 . inkey=.:*FX2| 000024e0 31 0d 10 4a 1c e7 20 28 6e 20 80 20 38 29 3e 30 |1..J.. (n . 8)>0| 000024f0 20 8c 20 61 6e 79 70 72 65 73 73 3d b9 0d 10 54 | . anypress=...T| 00002500 11 6d 3d 6e 20 80 20 37 3a 77 25 3d 2d 31 0d 10 |.m=n . 7:w%=-1..| 00002510 5e 05 f5 0d 10 68 0f c8 97 20 78 25 2c 79 25 2c |^....h... x%,y%,| 00002520 7a 25 0d 10 72 15 e7 20 69 6e 6b 65 79 20 8c 20 |z%..r.. inkey . | 00002530 77 25 3d a6 28 30 29 0d 10 7c 1c 61 3d 28 7a 25 |w%=.(0)..|.a=(z%| 00002540 3d 6d 20 80 20 ac 20 28 6e 3e 37 20 80 20 6d 3d |=m . . (n>7 . m=| 00002550 30 29 29 0d 10 86 19 62 3d 28 61 6e 79 70 72 65 |0))....b=(anypre| 00002560 73 73 20 80 20 28 7a 25 3e 30 29 29 0d 10 90 17 |ss . (z%>0))....| 00002570 63 3d 28 69 6e 6b 65 79 20 80 20 28 77 25 3e 2d |c=(inkey . (w%>-| 00002580 31 29 29 0d 10 9a 0f fd 20 61 20 84 20 62 20 84 |1))..... a . b .| 00002590 20 63 0d 10 a4 05 e1 0d 10 ae 05 3a 0d 10 b8 26 | c.........:...&| 000025a0 dd a4 70 6f 73 69 74 69 6f 6e 64 28 78 25 2c 79 |..positiond(x%,y| 000025b0 25 2c 78 31 25 2c 79 31 25 2c 78 64 25 2c 79 64 |%,x1%,y1%,xd%,yd| 000025c0 25 29 0d 10 c2 2e 3d 78 25 3e 78 31 25 20 80 20 |%)....=x%>x1% . | 000025d0 78 25 3c 78 31 25 2b 78 64 25 20 80 20 79 25 3e |x%<x1%+xd% . y%>| 000025e0 79 31 25 20 80 20 79 25 3c 79 31 25 2b 79 64 25 |y1% . y%<y1%+yd%| 000025f0 0d 10 cc 05 3a 0d 10 d6 1a dd a4 67 65 74 62 6f |....:......getbo| 00002600 78 6e 6f 28 78 25 2c 79 25 2c 61 25 28 29 29 0d |xno(x%,y%,a%()).| 00002610 10 e0 20 f4 20 52 65 74 75 72 6e 73 20 6e 6f 20 |.. . Returns no | 00002620 6f 66 20 73 65 6c 65 63 74 65 64 20 62 6f 78 0d |of selected box.| 00002630 10 ea 24 f4 20 43 6f 75 6e 74 69 6e 67 20 66 72 |..$. Counting fr| 00002640 6f 6d 20 74 6f 70 20 6c 65 66 74 20 28 3d 6e 6f |om top left (=no| 00002650 20 31 29 0d 10 f4 1e f4 20 61 6e 64 20 6d 6f 76 | 1)..... and mov| 00002660 69 6e 67 20 6c 65 66 74 20 74 6f 20 72 69 67 68 |ing left to righ| 00002670 74 0d 10 fe 11 ea 20 69 78 25 2c 69 79 25 2c 6e |t..... ix%,iy%,n| 00002680 6f 25 0d 11 08 31 e7 20 a4 70 6f 73 69 74 69 6f |o%...1. .positio| 00002690 6e 64 28 78 25 2c 79 25 2c 61 25 28 30 29 2c 61 |nd(x%,y%,a%(0),a| 000026a0 25 28 31 29 2c 61 25 28 36 29 2c 61 25 28 37 29 |%(1),a%(6),a%(7)| 000026b0 29 20 8c 0d 11 12 1c 69 78 25 3d 28 78 25 2d 61 |) .....ix%=(x%-a| 000026c0 25 28 30 29 29 20 81 20 61 25 28 32 29 2b 31 0d |%(0)) . a%(2)+1.| 000026d0 11 1c 22 69 79 25 3d 61 25 28 35 29 2d 28 79 25 |.."iy%=a%(5)-(y%| 000026e0 2d 61 25 28 31 29 29 20 81 20 61 25 28 33 29 2d |-a%(1)) . a%(3)-| 000026f0 31 0d 11 26 15 6e 6f 25 3d 69 78 25 2b 61 25 28 |1..&.no%=ix%+a%(| 00002700 34 29 2a 69 79 25 0d 11 30 0c cc 20 6e 6f 25 3d |4)*iy%..0.. no%=| 00002710 2d 31 0d 11 3a 05 cd 0d 11 44 08 3d 6e 6f 25 0d |-1..:....D.=no%.| 00002720 11 4e 05 3a 0d 11 58 20 dd f2 64 72 61 77 70 6c |.N.:..X ..drawpl| 00002730 69 6e 74 68 73 28 61 25 28 29 2c 74 65 78 74 24 |inths(a%(),text$| 00002740 2c 74 25 29 0d 11 62 29 f4 20 44 72 61 77 73 20 |,t%)..b). Draws | 00002750 73 65 74 20 6f 66 20 70 6c 69 6e 74 68 73 20 28 |set of plinths (| 00002760 74 25 3d 74 65 78 74 20 6f 6e 6c 79 29 0d 11 6c |t%=text only)..l| 00002770 11 ea 20 69 78 25 2c 69 79 25 2c 6e 6f 25 0d 11 |.. ix%,iy%,no%..| 00002780 76 15 61 25 28 36 29 3d 61 25 28 32 29 2a 61 25 |v.a%(6)=a%(2)*a%| 00002790 28 34 29 0d 11 80 15 61 25 28 37 29 3d 61 25 28 |(4)....a%(7)=a%(| 000027a0 33 29 2a 61 25 28 35 29 0d 11 8a 26 e7 20 61 25 |3)*a%(5)...&. a%| 000027b0 28 30 29 3d 2d 31 20 8c 20 61 25 28 30 29 3d 28 |(0)=-1 . a%(0)=(| 000027c0 31 32 38 30 2d 61 25 28 36 29 29 81 20 32 0d 11 |1280-a%(6)). 2..| 000027d0 94 24 e7 20 74 65 78 74 24 3c 3e 22 22 20 8c 20 |.$. text$<>"" . | 000027e0 f2 72 65 73 74 6f 72 65 28 74 65 78 74 24 29 3a |.restore(text$):| 000027f0 ef 35 0d 11 9e 2c e3 20 69 79 25 3d 61 25 28 31 |.5...,. iy%=a%(1| 00002800 29 2b 61 25 28 37 29 2d 61 25 28 33 29 20 b8 20 |)+a%(7)-a%(3) . | 00002810 61 25 28 31 29 20 88 20 2d 61 25 28 33 29 0d 11 |a%(1) . -a%(3)..| 00002820 a8 2b e3 20 69 78 25 3d 61 25 28 30 29 20 b8 20 |.+. ix%=a%(0) . | 00002830 61 25 28 30 29 2b 61 25 28 36 29 2d 61 25 28 32 |a%(0)+a%(6)-a%(2| 00002840 29 20 88 20 61 25 28 32 29 0d 11 b2 08 e7 74 25 |) . a%(2).....t%| 00002850 8c 0d 11 bc 1b e6 20 61 25 28 31 35 29 20 80 20 |...... a%(15) . | 00002860 36 33 20 c8 9c 20 61 25 28 31 35 29 0d 11 c6 25 |63 .. a%(15)...%| 00002870 78 3d 69 78 25 3a 79 3d 69 79 25 3a 77 3d 38 3a |x=ix%:y=iy%:w=8:| 00002880 77 78 3d 61 25 28 32 29 3a 77 79 3d 61 25 28 33 |wx=a%(2):wy=a%(3| 00002890 29 0d 11 d0 1f c8 93 20 c8 90 20 78 2b 77 2c 79 |)...... .. x+w,y| 000028a0 2b 77 2c 77 78 2d 32 2a 77 2c 77 79 2d 32 2a 77 |+w,wx-2*w,wy-2*w| 000028b0 0d 11 da 05 cc 0d 11 e4 47 f2 70 6c 69 6e 74 68 |........G.plinth| 000028c0 28 69 78 25 2c 69 79 25 2c 61 25 28 32 29 2c 61 |(ix%,iy%,a%(2),a| 000028d0 25 28 33 29 2c 38 2c 61 25 28 31 33 29 2c 61 25 |%(3),8,a%(13),a%| 000028e0 28 31 34 29 2c 61 25 28 31 35 29 2c 61 25 28 31 |(14),a%(15),a%(1| 000028f0 36 29 2c 61 25 28 31 37 29 2c b9 29 0d 11 ee 05 |6),a%(17),.)....| 00002900 cd 0d 11 f8 11 e7 20 74 65 78 74 24 3c 3e 22 22 |...... text$<>""| 00002910 20 8c 0d 12 02 21 ec 20 69 78 25 2b 61 25 28 31 | ....!. ix%+a%(1| 00002920 31 29 2c 69 79 25 2b 61 25 28 33 29 2d 61 25 28 |1),iy%+a%(3)-a%(| 00002930 31 32 29 0d 12 0c 1b f3 20 74 65 78 74 24 3a e6 |12)..... text$:.| 00002940 20 61 25 28 31 30 29 3a f1 74 65 78 74 24 0d 12 | a%(10):.text$..| 00002950 16 05 cd 0d 12 20 05 ed 0d 12 2a 05 ed 0d 12 34 |..... ....*....4| 00002960 16 e7 20 74 65 78 74 24 3c 3e 22 22 20 8c 20 ef |.. text$<>"" . .| 00002970 34 3a 87 0d 12 3e 05 cd 0d 12 48 05 e1 0d 12 52 |4:...>....H....R| 00002980 05 3a 0d 12 5c 2f dd f2 70 6c 69 6e 74 68 28 78 |.:..\/..plinth(x| 00002990 2c 79 2c 77 78 2c 77 79 2c 77 2c 63 30 2c 63 31 |,y,wx,wy,w,c0,c1| 000029a0 2c 63 32 2c 63 33 2c 63 34 2c 72 61 69 73 65 64 |,c2,c3,c4,raised| 000029b0 29 0d 12 66 19 e7 20 ac 20 72 61 69 73 65 64 20 |)..f.. . raised | 000029c0 8c 20 c8 94 20 63 31 2c 63 33 0d 12 70 13 e6 20 |. .. c1,c3..p.. | 000029d0 63 31 20 80 20 36 33 20 c8 9c 20 63 31 0d 12 7a |c1 . 63 .. c1..z| 000029e0 13 c8 93 20 c8 90 20 78 2c 79 2c 77 78 2c 77 79 |... .. x,y,wx,wy| 000029f0 0d 12 84 13 e6 20 63 33 20 80 20 36 33 20 c8 9c |..... c3 . 63 ..| 00002a00 20 63 33 0d 12 8e 18 c8 93 20 c8 90 20 78 2b 77 | c3...... .. x+w| 00002a10 2c 79 2c 77 78 2d 32 2a 77 2c 77 0d 12 98 19 c8 |,y,wx-2*w,w.....| 00002a20 93 20 c8 90 20 78 2b 77 78 2d 77 2c 79 2c 77 2c |. .. x+wx-w,y,w,| 00002a30 77 79 2d 77 0d 12 a2 11 ec 20 78 2c 79 3a ec 20 |wy-w..... x,y:. | 00002a40 78 2b 77 2c 79 0d 12 ac 1f f0 38 35 2c 78 2b 77 |x+w,y.....85,x+w| 00002a50 2c 79 2b 77 3a ec 20 78 2b 77 78 2d 77 2c 79 2b |,y+w:. x+wx-w,y+| 00002a60 77 79 2d 77 0d 12 b6 11 ec 20 78 2b 77 78 2c 79 |wy-w..... x+wx,y| 00002a70 2b 77 79 2d 77 0d 12 c0 1f f0 38 35 2c 78 2b 77 |+wy-w.....85,x+w| 00002a80 78 2c 79 2b 77 79 3a f0 38 35 2c 78 2b 77 78 2c |x,y+wy:.85,x+wx,| 00002a90 79 2b 77 79 0d 12 ca 19 e7 20 ac 20 72 61 69 73 |y+wy..... . rais| 00002aa0 65 64 20 8c 20 c8 94 20 63 30 2c 63 34 0d 12 d4 |ed . .. c0,c4...| 00002ab0 13 e6 20 63 30 20 80 20 36 33 20 c8 9c 20 63 30 |.. c0 . 63 .. c0| 00002ac0 0d 12 de 17 86 20 78 2c 79 2b 77 79 2c 78 2b 77 |..... x,y+wy,x+w| 00002ad0 2c 79 2b 77 79 2d 77 0d 12 e8 13 e6 20 63 34 20 |,y+wy-w..... c4 | 00002ae0 80 20 36 33 20 c8 9c 20 63 34 0d 12 f2 17 86 20 |. 63 .. c4..... | 00002af0 78 2b 77 78 2c 79 2c 78 2b 77 78 2d 77 2c 79 2b |x+wx,y,x+wx-w,y+| 00002b00 77 0d 12 fc 13 e6 20 63 32 20 80 20 36 33 20 c8 |w..... c2 . 63 .| 00002b10 9c 20 63 32 0d 13 06 1f c8 93 20 c8 90 20 78 2b |. c2...... .. x+| 00002b20 77 2c 79 2b 77 2c 77 78 2d 32 2a 77 2c 77 79 2d |w,y+w,wx-2*w,wy-| 00002b30 32 2a 77 0d 13 10 05 e1 0d 13 1a 05 3a 0d 13 24 |2*w.........:..$| 00002b40 17 3a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |.:==============| 00002b50 3d 3d 3d 3d 0d 13 2e 15 f4 2e 20 49 6e 69 74 69 |====...... Initi| 00002b60 61 6c 69 73 61 74 69 6f 6e 0d 13 38 17 3a 3d 3d |alisation..8.:==| 00002b70 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |================| 00002b80 0d 13 42 05 3a 0d 13 4c 0a dd f2 69 6e 69 74 0d |..B.:..L...init.| 00002b90 13 56 0e de 20 62 69 74 25 28 33 31 29 0d 13 60 |.V.. bit%(31)..`| 00002ba0 1e de 20 61 72 65 61 31 25 28 31 37 29 20 20 3a |.. area1%(17) :| 00002bb0 f4 20 62 69 74 73 20 30 2d 31 35 0d 13 6a 1f de |. bits 0-15..j..| 00002bc0 20 61 72 65 61 32 25 28 31 37 29 20 20 3a f4 20 | area2%(17) :. | 00002bd0 62 69 74 73 20 31 36 2d 33 31 0d 13 74 1a de 20 |bits 16-31..t.. | 00002be0 61 72 65 61 33 25 28 31 37 29 20 20 3a f4 20 66 |area3%(17) :. f| 00002bf0 6c 61 67 73 0d 13 7e 19 de 20 61 72 65 61 34 25 |lags..~.. area4%| 00002c00 28 31 37 29 20 20 3a f4 20 6d 65 6e 75 0d 13 88 |(17) :. menu...| 00002c10 2c de 20 61 72 65 61 35 25 28 31 37 29 20 20 3a |,. area5%(17) :| 00002c20 f4 20 62 69 74 73 20 32 34 2d 33 31 20 28 69 63 |. bits 24-31 (ic| 00002c30 6f 6e 20 66 6c 61 67 73 29 0d 13 92 05 3a 0d 13 |on flags)....:..| 00002c40 9c 14 f4 20 73 65 74 20 75 70 20 70 61 6c 65 74 |... set up palet| 00002c50 74 65 0d 13 a6 14 fb 20 31 32 2c 32 30 38 2c 32 |te..... 12,208,2| 00002c60 30 38 2c 31 39 32 0d 13 b0 14 fb 20 31 33 2c 31 |08,192..... 13,1| 00002c70 37 36 2c 31 37 36 2c 31 37 36 0d 13 ba 14 fb 20 |76,176,176..... | 00002c80 31 34 2c 31 32 38 2c 31 32 38 2c 31 32 38 0d 13 |14,128,128,128..| 00002c90 c4 11 fb 20 31 35 2c 31 36 2c 31 36 2c 31 36 0d |... 15,16,16,16.| 00002ca0 13 ce 05 3a 0d 13 d8 2a fb 31 32 2b 31 32 38 3a |...:...*.12+128:| 00002cb0 db 20 20 20 20 20 20 20 20 3a f4 20 79 65 6c 6c |. :. yell| 00002cc0 6f 77 2f 67 72 65 79 20 73 63 72 65 65 6e 0d 13 |ow/grey screen..| 00002cd0 e2 2f ef 31 39 2c 30 2c 32 34 2c 32 30 38 2c 32 |./.19,0,24,208,2| 00002ce0 30 38 2c 31 39 32 20 20 3a f4 20 79 65 6c 6c 6f |08,192 :. yello| 00002cf0 77 2f 67 72 65 79 20 62 6f 72 64 65 72 0d 13 ec |w/grey border...| 00002d00 05 3a 0d 13 f6 19 f4 20 64 65 66 69 6e 65 20 63 |.:..... define c| 00002d10 68 72 20 66 6f 72 20 74 69 63 6b 0d 14 00 24 ef |hr for tick...$.| 00002d20 32 33 2c 32 34 38 2c 26 30 31 30 30 3b 26 34 34 |23,248,&0100;&44| 00002d30 30 32 3b 26 31 30 32 38 3b 26 30 30 30 30 3b 0d |02;&1028;&0000;.| 00002d40 14 0a 05 3a 0d 14 14 13 66 6c 61 67 73 24 3d 22 |...:....flags$="| 00002d50 77 69 6e 64 6f 77 22 0d 14 1e 0e 87 3a 2a 50 4f |window".....:*PO| 00002d60 49 4e 54 45 52 0d 14 28 05 3a 0d 14 32 0a f4 20 |INTER..(.:..2.. | 00002d70 62 69 74 73 0d 14 3c 2d 61 72 65 61 31 25 28 30 |bits..<-area1%(0| 00002d80 29 3d 30 20 20 20 20 3a 61 72 65 61 32 25 28 30 |)=0 :area2%(0| 00002d90 29 3d 36 33 38 20 20 3a f4 20 58 20 63 6f 6f 72 |)=638 :. X coor| 00002da0 64 0d 14 46 2d 61 72 65 61 31 25 28 31 29 3d 39 |d..F-area1%(1)=9| 00002db0 36 20 20 20 3a 61 72 65 61 32 25 28 31 29 3d 39 |6 :area2%(1)=9| 00002dc0 36 20 20 20 3a f4 20 59 20 63 6f 6f 72 64 0d 14 |6 :. Y coord..| 00002dd0 50 30 61 72 65 61 31 25 28 32 29 3d 36 32 34 20 |P0area1%(2)=624 | 00002de0 20 3a 61 72 65 61 32 25 28 32 29 3d 36 33 36 20 | :area2%(2)=636 | 00002df0 20 3a f4 20 43 65 6c 6c 20 77 69 64 74 68 0d 14 | :. Cell width..| 00002e00 5a 31 61 72 65 61 31 25 28 33 29 3d 35 32 20 20 |Z1area1%(3)=52 | 00002e10 20 3a 61 72 65 61 32 25 28 33 29 3d 35 32 20 20 | :area2%(3)=52 | 00002e20 20 3a f4 20 43 65 6c 6c 20 68 65 69 67 68 74 0d | :. Cell height.| 00002e30 14 64 32 61 72 65 61 31 25 28 34 29 3d 31 20 20 |.d2area1%(4)=1 | 00002e40 20 20 3a 61 72 65 61 32 25 28 34 29 3d 31 20 20 | :area2%(4)=1 | 00002e50 20 20 3a f4 20 43 65 6c 6c 73 20 61 63 72 6f 73 | :. Cells acros| 00002e60 73 0d 14 6e 30 61 72 65 61 31 25 28 35 29 3d 31 |s..n0area1%(5)=1| 00002e70 36 20 20 20 3a 61 72 65 61 32 25 28 35 29 3d 31 |6 :area2%(5)=1| 00002e80 36 20 20 20 3a f4 20 43 65 6c 6c 73 20 64 6f 77 |6 :. Cells dow| 00002e90 6e 0d 14 78 05 3a 0d 14 82 3d f4 20 66 6c 61 67 |n..x.:...=. flag| 00002ea0 73 20 20 20 20 20 20 3a 52 45 4d 20 6d 65 6e 75 |s :REM menu| 00002eb0 20 20 20 20 20 20 20 3a 52 45 4d 20 62 69 74 73 | :REM bits| 00002ec0 20 32 34 2d 33 31 20 28 69 63 6f 6e 20 66 6c 61 | 24-31 (icon fla| 00002ed0 67 73 29 0d 14 8c 31 61 72 65 61 33 25 28 30 29 |gs)...1area3%(0)| 00002ee0 3d 39 36 38 20 20 3a 61 72 65 61 34 25 28 30 29 |=968 :area4%(0)| 00002ef0 3d 30 20 20 20 20 3a 61 72 65 61 35 25 28 30 29 |=0 :area5%(0)| 00002f00 3d 36 33 38 0d 14 96 30 61 72 65 61 33 25 28 31 |=638...0area3%(1| 00002f10 29 3d 39 34 38 20 20 3a 61 72 65 61 34 25 28 31 |)=948 :area4%(1| 00002f20 29 3d 31 36 20 20 20 3a 61 72 65 61 35 25 28 31 |)=16 :area5%(1| 00002f30 29 3d 39 36 0d 14 a0 31 61 72 65 61 33 25 28 32 |)=96...1area3%(2| 00002f40 29 3d 33 30 34 20 20 3a 61 72 65 61 34 25 28 32 |)=304 :area4%(2| 00002f50 29 3d 32 35 35 20 20 3a 61 72 65 61 35 25 28 32 |)=255 :area5%(2| 00002f60 29 3d 36 33 36 0d 14 aa 30 61 72 65 61 33 25 28 |)=636...0area3%(| 00002f70 33 29 3d 36 30 20 20 20 3a 61 72 65 61 34 25 28 |3)=60 :area4%(| 00002f80 33 29 3d 36 30 20 20 20 3a 61 72 65 61 35 25 28 |3)=60 :area5%(| 00002f90 33 29 3d 35 32 0d 14 b4 2f 61 72 65 61 33 25 28 |3)=52.../area3%(| 00002fa0 34 29 3d 31 20 20 20 20 3a 61 72 65 61 34 25 28 |4)=1 :area4%(| 00002fb0 34 29 3d 35 20 20 20 20 3a 61 72 65 61 35 25 28 |4)=5 :area5%(| 00002fc0 34 29 3d 31 0d 14 be 2f 61 72 65 61 33 25 28 35 |4)=1.../area3%(5| 00002fd0 29 3d 31 20 20 20 20 3a 61 72 65 61 34 25 28 35 |)=1 :area4%(5| 00002fe0 29 3d 31 20 20 20 20 3a 61 72 65 61 35 25 28 35 |)=1 :area5%(5| 00002ff0 29 3d 38 0d 14 c8 05 3a 0d 14 d2 0d f4 20 43 6f |)=8....:..... Co| 00003000 6c 6f 75 72 73 0d 14 dc 17 f2 72 65 73 74 6f 72 |lours.....restor| 00003010 65 28 22 43 6f 6c 6f 75 72 73 22 29 0d 14 e6 0f |e("Colours")....| 00003020 e3 20 4a 25 3d 38 20 b8 20 31 37 0d 14 f0 08 f3 |. J%=8 . 17.....| 00003030 20 6e 25 0d 14 fa 49 61 72 65 61 31 25 28 4a 25 | n%...Iarea1%(J%| 00003040 29 3d 6e 25 3a 61 72 65 61 32 25 28 4a 25 29 3d |)=n%:area2%(J%)=| 00003050 6e 25 3a 61 72 65 61 33 25 28 4a 25 29 3d 6e 25 |n%:area3%(J%)=n%| 00003060 3a 61 72 65 61 34 25 28 4a 25 29 3d 6e 25 3a 61 |:area4%(J%)=n%:a| 00003070 72 65 61 35 25 28 4a 25 29 3d 6e 25 0d 15 04 05 |rea5%(J%)=n%....| 00003080 ed 0d 15 0e 05 e1 0d 15 18 05 3a 0d 15 22 15 dd |..........:.."..| 00003090 f2 72 65 73 74 6f 72 65 28 6c 61 62 65 6c 24 29 |.restore(label$)| 000030a0 0d 15 2c 05 f7 0d 15 36 16 f5 3a f3 20 61 24 3a |..,....6..:. a$:| 000030b0 fd 20 61 24 3d 6c 61 62 65 6c 24 0d 15 40 05 e1 |. a$=label$..@..| 000030c0 0d 15 4a 05 3a 0d 15 54 0d dc 20 57 69 6e 64 6f |..J.:..T.. Windo| 000030d0 77 31 0d 15 5e 19 dc 20 22 20 30 20 20 28 41 72 |w1..^.. " 0 (Ar| 000030e0 74 68 75 72 20 6f 6e 6c 79 29 22 0d 15 68 21 dc |thur only)"..h!.| 000030f0 20 22 20 31 20 20 57 69 6e 64 6f 77 20 63 61 6e | " 1 Window can| 00003100 20 62 65 20 64 72 61 67 67 65 64 22 0d 15 72 19 | be dragged"..r.| 00003110 dc 20 22 20 32 20 20 28 41 72 74 68 75 72 20 6f |. " 2 (Arthur o| 00003120 6e 6c 79 29 22 0d 15 7c 19 dc 20 22 20 33 20 20 |nly)"..|.. " 3 | 00003130 28 41 72 74 68 75 72 20 6f 6e 6c 79 29 22 0d 15 |(Arthur only)"..| 00003140 86 1c dc 20 22 20 34 20 20 4e 6f 20 75 73 65 72 |... " 4 No user| 00003150 20 67 72 61 70 68 69 63 73 22 0d 15 90 1c dc 20 | graphics"..... | 00003160 22 20 35 20 20 57 69 6e 64 6f 77 20 69 73 20 61 |" 5 Window is a| 00003170 20 70 61 6e 65 22 0d 15 9a 27 dc 20 22 20 36 20 | pane"...'. " 6 | 00003180 20 57 69 6e 64 6f 77 20 63 61 6e 20 67 6f 20 62 | Window can go b| 00003190 65 79 6f 6e 64 20 73 63 72 65 65 6e 22 0d 15 a4 |eyond screen"...| 000031a0 19 dc 20 22 20 37 20 20 28 41 72 74 68 75 72 20 |.. " 7 (Arthur | 000031b0 6f 6e 6c 79 29 22 0d 15 ae 26 dc 20 22 20 38 20 |only)"...&. " 8 | 000031c0 20 53 63 72 6f 6c 6c 20 77 69 74 68 6f 75 74 20 | Scroll without | 000031d0 61 75 74 6f 2d 72 65 70 65 61 74 22 0d 15 b8 23 |auto-repeat"...#| 000031e0 dc 20 22 20 39 20 20 53 63 72 6f 6c 6c 20 77 69 |. " 9 Scroll wi| 000031f0 74 68 20 61 75 74 6f 2d 72 65 70 65 61 74 22 0d |th auto-repeat".| 00003200 15 c2 29 dc 20 22 31 30 20 20 54 72 65 61 74 20 |..). "10 Treat | 00003210 63 6f 6c 6f 75 72 73 20 61 73 20 47 43 4f 4c 20 |colours as GCOL | 00003220 6e 75 6d 62 65 72 73 22 0d 15 cc 25 dc 20 22 31 |numbers"...%. "1| 00003230 31 20 20 4e 6f 20 77 69 6e 64 6f 77 73 20 62 65 |1 No windows be| 00003240 6c 6f 77 20 74 68 69 73 20 6f 6e 65 22 0d 15 d6 |low this one"...| 00003250 2a dc 20 22 31 32 20 20 50 72 6f 64 75 63 65 20 |*. "12 Produce | 00003260 72 65 61 73 6f 6e 73 20 66 6f 72 20 27 68 6f 74 |reasons for 'hot| 00003270 20 6b 65 79 73 27 22 0d 15 e0 25 dc 20 22 31 33 | keys'"...%. "13| 00003280 20 20 28 52 65 73 65 72 76 65 64 20 2d 20 6d 75 | (Reserved - mu| 00003290 73 74 20 62 65 20 7a 65 72 6f 29 22 0d 15 ea 25 |st be zero)"...%| 000032a0 dc 20 22 31 34 20 20 28 52 65 73 65 72 76 65 64 |. "14 (Reserved| 000032b0 20 2d 20 6d 75 73 74 20 62 65 20 7a 65 72 6f 29 | - must be zero)| 000032c0 22 0d 15 f4 25 dc 20 22 31 35 20 20 28 52 65 73 |"...%. "15 (Res| 000032d0 65 72 76 65 64 20 2d 20 6d 75 73 74 20 62 65 20 |erved - must be | 000032e0 7a 65 72 6f 29 22 0d 15 fe 05 3a 0d 16 08 0d dc |zero)"....:.....| 000032f0 20 57 69 6e 64 6f 77 32 0d 16 12 26 dc 20 22 31 | Window2...&. "1| 00003300 36 20 20 28 55 73 65 64 20 74 6f 20 72 65 74 75 |6 (Used to retu| 00003310 72 6e 20 69 6e 66 6f 20 6f 6e 6c 79 29 22 0d 16 |rn info only)"..| 00003320 1c 26 dc 20 22 31 37 20 20 28 55 73 65 64 20 74 |.&. "17 (Used t| 00003330 6f 20 72 65 74 75 72 6e 20 69 6e 66 6f 20 6f 6e |o return info on| 00003340 6c 79 29 22 0d 16 26 26 dc 20 22 31 38 20 20 28 |ly)"..&&. "18 (| 00003350 55 73 65 64 20 74 6f 20 72 65 74 75 72 6e 20 69 |Used to return i| 00003360 6e 66 6f 20 6f 6e 6c 79 29 22 0d 16 30 26 dc 20 |nfo only)"..0&. | 00003370 22 31 39 20 20 28 55 73 65 64 20 74 6f 20 72 65 |"19 (Used to re| 00003380 74 75 72 6e 20 69 6e 66 6f 20 6f 6e 6c 79 29 22 |turn info only)"| 00003390 0d 16 3a 25 dc 20 22 32 30 20 20 28 52 65 73 65 |..:%. "20 (Rese| 000033a0 72 76 65 64 20 2d 20 6d 75 73 74 20 62 65 20 7a |rved - must be z| 000033b0 65 72 6f 29 22 0d 16 44 25 dc 20 22 32 31 20 20 |ero)"..D%. "21 | 000033c0 28 52 65 73 65 72 76 65 64 20 2d 20 6d 75 73 74 |(Reserved - must| 000033d0 20 62 65 20 7a 65 72 6f 29 22 0d 16 4e 25 dc 20 | be zero)"..N%. | 000033e0 22 32 32 20 20 28 52 65 73 65 72 76 65 64 20 2d |"22 (Reserved -| 000033f0 20 6d 75 73 74 20 62 65 20 7a 65 72 6f 29 22 0d | must be zero)".| 00003400 16 58 25 dc 20 22 32 33 20 20 28 52 65 73 65 72 |.X%. "23 (Reser| 00003410 76 65 64 20 2d 20 6d 75 73 74 20 62 65 20 7a 65 |ved - must be ze| 00003420 72 6f 29 22 0d 16 62 22 dc 20 22 32 34 20 20 57 |ro)"..b". "24 W| 00003430 69 6e 64 6f 77 20 68 61 73 20 61 20 62 61 63 6b |indow has a back| 00003440 20 69 63 6f 6e 22 0d 16 6c 23 dc 20 22 32 35 20 | icon"..l#. "25 | 00003450 20 57 69 6e 64 6f 77 20 68 61 73 20 61 20 63 6c | Window has a cl| 00003460 6f 73 65 20 69 63 6f 6e 22 0d 16 76 22 dc 20 22 |ose icon"..v". "| 00003470 32 36 20 20 57 69 6e 64 6f 77 20 68 61 73 20 61 |26 Window has a| 00003480 20 74 69 74 6c 65 20 62 61 72 22 0d 16 80 29 dc | title bar"...).| 00003490 20 22 32 37 20 20 57 69 6e 64 6f 77 20 68 61 73 | "27 Window has| 000034a0 20 61 20 74 6f 67 67 6c 65 20 73 69 7a 65 20 69 | a toggle size i| 000034b0 63 6f 6e 22 0d 16 8a 28 dc 20 22 32 38 20 20 57 |con"...(. "28 W| 000034c0 69 6e 64 6f 77 20 68 61 73 20 61 20 76 65 72 74 |indow has a vert| 000034d0 20 73 63 72 6f 6c 6c 20 62 61 72 22 0d 16 94 27 | scroll bar"...'| 000034e0 dc 20 22 32 39 20 20 57 69 6e 64 6f 77 20 68 61 |. "29 Window ha| 000034f0 73 20 61 6e 20 61 64 6a 20 73 69 7a 65 20 69 63 |s an adj size ic| 00003500 6f 6e 22 0d 16 9e 29 dc 20 22 33 30 20 20 57 69 |on"...). "30 Wi| 00003510 6e 64 6f 77 20 68 61 73 20 61 20 68 6f 72 69 7a |ndow has a horiz| 00003520 20 73 63 72 6f 6c 6c 20 62 61 72 22 0d 16 a8 26 | scroll bar"...&| 00003530 dc 20 22 33 31 20 20 49 67 6e 6f 72 65 20 27 41 |. "31 Ignore 'A| 00003540 72 74 68 75 72 20 6f 6e 6c 79 27 20 66 6c 61 67 |rthur only' flag| 00003550 73 22 0d 16 b2 05 3a 0d 16 bc 0b dc 20 49 63 6f |s"....:..... Ico| 00003560 6e 31 0d 16 c6 20 dc 20 22 20 30 20 20 20 20 49 |n1... . " 0 I| 00003570 63 6f 6e 20 63 6f 6e 74 61 69 6e 73 20 74 65 78 |con contains tex| 00003580 74 22 0d 16 d0 24 dc 20 22 20 31 20 20 20 20 49 |t"...$. " 1 I| 00003590 63 6f 6e 20 63 6f 6e 74 61 69 6e 73 20 61 20 73 |con contains a s| 000035a0 70 72 69 74 65 22 0d 16 da 1f dc 20 22 20 32 20 |prite"..... " 2 | 000035b0 20 20 20 49 63 6f 6e 20 68 61 73 20 61 20 62 6f | Icon has a bo| 000035c0 72 64 65 72 22 0d 16 e4 23 dc 20 22 20 33 20 20 |rder"...#. " 3 | 000035d0 20 20 48 6f 72 69 7a 6f 6e 74 61 6c 6c 79 20 63 | Horizontally c| 000035e0 65 6e 74 65 72 65 64 22 0d 16 ee 21 dc 20 22 20 |entered"...!. " | 000035f0 34 20 20 20 20 56 65 72 74 69 63 61 6c 6c 79 20 |4 Vertically | 00003600 63 65 6e 74 65 72 65 64 22 0d 16 f8 1f dc 20 22 |centered"..... "| 00003610 20 35 20 20 20 20 46 69 6c 6c 65 64 20 62 61 63 | 5 Filled bac| 00003620 6b 67 72 6f 75 6e 64 22 0d 17 02 22 dc 20 22 20 |kground"...". " | 00003630 36 20 20 20 20 54 65 78 74 20 69 73 20 61 6e 74 |6 Text is ant| 00003640 69 2d 61 6c 69 61 73 65 64 22 0d 17 0c 27 dc 20 |i-aliased"...'. | 00003650 22 20 37 20 20 20 20 4e 65 65 64 73 20 74 61 73 |" 7 Needs tas| 00003660 6b 20 74 6f 20 72 65 64 72 61 77 20 69 63 6f 6e |k to redraw icon| 00003670 22 0d 17 16 25 dc 20 22 20 38 20 20 20 20 49 63 |"...%. " 8 Ic| 00003680 6f 6e 20 64 61 74 61 20 69 73 20 69 6e 64 69 72 |on data is indir| 00003690 65 63 74 65 64 22 0d 17 20 25 dc 20 22 20 39 20 |ected".. %. " 9 | 000036a0 20 20 20 54 65 78 74 20 69 73 20 72 69 67 68 74 | Text is right| 000036b0 2d 6a 75 73 74 69 66 69 65 64 22 0d 17 2a 28 dc |-justified"..*(.| 000036c0 20 22 31 30 20 20 20 20 49 66 20 41 64 6a 75 73 | "10 If Adjus| 000036d0 74 20 63 6c 69 63 6b 65 64 20 6b 65 65 70 20 45 |t clicked keep E| 000036e0 53 47 22 0d 17 34 29 dc 20 22 31 31 20 20 20 20 |SG"..4). "11 | 000036f0 44 69 73 70 6c 61 79 20 73 70 72 69 74 65 20 61 |Display sprite a| 00003700 74 20 68 61 6c 66 20 73 69 7a 65 22 0d 17 3e 25 |t half size"..>%| 00003710 dc 20 22 31 32 2d 31 35 20 49 63 6f 6e 20 62 75 |. "12-15 Icon bu| 00003720 74 74 6f 6e 20 74 79 70 65 20 28 30 2d 31 35 29 |tton type (0-15)| 00003730 22 0d 17 48 10 dc 20 22 31 33 20 20 20 20 27 27 |"..H.. "13 ''| 00003740 22 0d 17 52 10 dc 20 22 31 34 20 20 20 20 27 27 |"..R.. "14 ''| 00003750 22 0d 17 5c 10 dc 20 22 31 35 20 20 20 20 27 27 |"..\.. "15 ''| 00003760 22 0d 17 66 05 3a 0d 17 70 0b dc 20 49 63 6f 6e |"..f.:..p.. Icon| 00003770 32 0d 17 7a 1a dc 20 22 31 36 2d 32 30 20 45 20 |2..z.. "16-20 E | 00003780 53 20 47 20 28 31 2d 33 31 29 22 0d 17 84 10 dc |S G (1-31)".....| 00003790 20 22 31 37 20 20 20 20 27 27 22 0d 17 8e 10 dc | "17 ''".....| 000037a0 20 22 31 38 20 20 20 20 27 27 22 0d 17 98 10 dc | "18 ''".....| 000037b0 20 22 31 39 20 20 20 20 27 27 22 0d 17 a2 10 dc | "19 ''".....| 000037c0 20 22 32 30 20 20 20 20 27 27 22 0d 17 ac 26 dc | "20 ''"...&.| 000037d0 20 22 32 31 20 20 20 20 49 63 6f 6e 20 69 73 20 | "21 Icon is | 000037e0 61 6c 72 65 61 64 79 20 73 65 6c 65 63 74 65 64 |already selected| 000037f0 22 0d 17 b6 24 dc 20 22 32 32 20 20 20 20 49 63 |"...$. "22 Ic| 00003800 6f 6e 20 69 73 20 6e 6f 74 20 73 65 6c 65 63 74 |on is not select| 00003810 61 62 6c 65 22 0d 17 c0 23 dc 20 22 32 33 20 20 |able"...#. "23 | 00003820 20 20 49 63 6f 6e 20 68 61 73 20 62 65 65 6e 20 | Icon has been | 00003830 64 65 6c 65 74 65 64 22 0d 17 ca 26 dc 20 22 32 |deleted"...&. "2| 00003840 34 2d 32 37 20 46 6f 72 65 67 72 6f 75 6e 64 20 |4-27 Foreground | 00003850 63 6f 6c 6f 75 72 20 28 30 2d 31 35 29 22 0d 17 |colour (0-15)"..| 00003860 d4 10 dc 20 22 32 35 20 20 20 20 27 27 22 0d 17 |... "25 ''"..| 00003870 de 10 dc 20 22 32 36 20 20 20 20 27 27 22 0d 17 |... "26 ''"..| 00003880 e8 10 dc 20 22 32 37 20 20 20 20 27 27 22 0d 17 |... "27 ''"..| 00003890 f2 26 dc 20 22 32 38 2d 33 31 20 42 61 63 6b 67 |.&. "28-31 Backg| 000038a0 72 6f 75 6e 64 20 63 6f 6c 6f 75 72 20 28 30 2d |round colour (0-| 000038b0 31 35 29 22 0d 17 fc 10 dc 20 22 32 39 20 20 20 |15)"..... "29 | 000038c0 20 27 27 22 0d 18 06 10 dc 20 22 33 30 20 20 20 | ''"..... "30 | 000038d0 20 27 27 22 0d 18 10 10 dc 20 22 33 31 20 20 20 | ''"..... "31 | 000038e0 20 27 27 22 0d 18 1a 05 3a 0d 18 24 0f dc 20 42 | ''"....:..$.. B| 000038f0 69 74 36 55 6e 73 65 74 0d 18 2e 26 dc 20 22 32 |it6Unset...&. "2| 00003900 34 2d 32 37 20 46 6f 72 65 67 72 6f 75 6e 64 20 |4-27 Foreground | 00003910 63 6f 6c 6f 75 72 20 28 30 2d 31 35 29 22 0d 18 |colour (0-15)"..| 00003920 38 10 dc 20 22 32 35 20 20 20 20 27 27 22 0d 18 |8.. "25 ''"..| 00003930 42 10 dc 20 22 32 36 20 20 20 20 27 27 22 0d 18 |B.. "26 ''"..| 00003940 4c 10 dc 20 22 32 37 20 20 20 20 27 27 22 0d 18 |L.. "27 ''"..| 00003950 56 26 dc 20 22 32 38 2d 33 31 20 42 61 63 6b 67 |V&. "28-31 Backg| 00003960 72 6f 75 6e 64 20 63 6f 6c 6f 75 72 20 28 30 2d |round colour (0-| 00003970 31 35 29 22 0d 18 60 10 dc 20 22 32 39 20 20 20 |15)"..`.. "29 | 00003980 20 27 27 22 0d 18 6a 10 dc 20 22 33 30 20 20 20 | ''"..j.. "30 | 00003990 20 27 27 22 0d 18 74 10 dc 20 22 33 31 20 20 20 | ''"..t.. "31 | 000039a0 20 27 27 22 0d 18 7e 05 3a 0d 18 88 0d dc 20 42 | ''"..~.:..... B| 000039b0 69 74 36 53 65 74 0d 18 92 27 dc 20 22 32 34 2d |it6Set...'. "24-| 000039c0 33 31 20 41 6c 69 61 73 20 66 6f 6e 74 20 68 61 |31 Alias font ha| 000039d0 6e 64 6c 65 20 28 31 2d 32 35 35 29 22 0d 18 9c |ndle (1-255)"...| 000039e0 10 dc 20 22 32 35 20 20 20 20 27 27 22 0d 18 a6 |.. "25 ''"...| 000039f0 10 dc 20 22 32 36 20 20 20 20 27 27 22 0d 18 b0 |.. "26 ''"...| 00003a00 10 dc 20 22 32 37 20 20 20 20 27 27 22 0d 18 ba |.. "27 ''"...| 00003a10 10 dc 20 22 32 38 20 20 20 20 27 27 22 0d 18 c4 |.. "28 ''"...| 00003a20 10 dc 20 22 32 39 20 20 20 20 27 27 22 0d 18 ce |.. "29 ''"...| 00003a30 10 dc 20 22 33 30 20 20 20 20 27 27 22 0d 18 d8 |.. "30 ''"...| 00003a40 10 dc 20 22 33 31 20 20 20 20 27 27 22 0d 18 e2 |.. "31 ''"...| 00003a50 05 3a 0d 18 ec 0b dc 20 46 6c 61 67 73 0d 18 f6 |.:..... Flags...| 00003a60 0f dc 20 22 46 6c 61 67 73 20 3d 22 0d 19 00 05 |.. "Flags ="....| 00003a70 3a 0d 19 0a 0a dc 20 4d 65 6e 75 0d 19 14 12 dc |:..... Menu.....| 00003a80 20 57 69 6e 64 6f 77 20 66 6c 61 67 73 0d 19 1e | Window flags...| 00003a90 10 dc 20 49 63 6f 6e 20 66 6c 61 67 73 0d 19 28 |.. Icon flags..(| 00003aa0 12 dc 20 22 20 20 20 20 41 64 6a 75 73 74 22 0d |.. " Adjust".| 00003ab0 19 32 12 dc 20 22 20 20 20 20 20 50 72 69 6e 74 |.2.. " Print| 00003ac0 22 0d 19 3c 11 dc 20 22 20 20 20 20 20 51 75 69 |"..<.. " Qui| 00003ad0 74 22 0d 19 46 05 3a 0d 19 50 0d dc 20 43 6f 6c |t"..F.:..P.. Col| 00003ae0 6f 75 72 73 0d 19 5a 11 dc 20 34 2c 37 2c 37 2c |ours..Z.. 4,7,7,| 00003af0 31 36 2c 31 36 0d 19 64 12 f4 20 42 6f 78 20 62 |16,16..d.. Box b| 00003b00 63 67 20 62 6c 75 65 0d 19 6e 14 f4 20 42 6f 78 |cg blue..n.. Box| 00003b10 20 6c 69 6e 65 20 77 68 69 74 65 0d 19 78 10 f4 | line white..x..| 00003b20 20 57 68 69 74 65 20 74 65 78 74 0d 19 82 13 f4 | White text.....| 00003b30 20 54 65 78 74 20 78 20 6f 66 66 73 65 74 0d 19 | Text x offset..| 00003b40 8c 13 f4 20 54 65 78 74 20 79 20 6f 66 66 73 65 |... Text y offse| 00003b50 74 0d 19 96 14 dc 20 37 2c 31 33 2c 31 34 2c 31 |t..... 7,13,14,1| 00003b60 35 2c 30 2c 37 0d ff |5,0,7..| 00003b67