Home » Archimedes archive » Archimedes World » AW-1993-03.adf » AWMar93 » !AWMar93/Goodies/Diary/!Diary/!RunImage

!AWMar93/Goodies/Diary/!Diary/!RunImage

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » Archimedes archive » Archimedes World » AW-1993-03.adf » AWMar93
Filename: !AWMar93/Goodies/Diary/!Diary/!RunImage
Read OK:
File size: 4B0B bytes
Load address: 0000
Exec address: 0000
File contents
   10REM > <Diary$Dir>.!RunImage
   20REM (c) Barry Wickett 1992
   30REM of:
   40REM 43 Almond Avenue
   50REM Yew Tree
   60REM Walsall
   70REM WS5 4JU
   80
   90PROCinitiate
  100ON ERROR exit=FNcheck(REPORT$+", EXIT?")
  110
  120WHILE NOTexit
  130SYS"Wimp_Poll",1,blk% TO reason%
  140CASE reason% OF
  150WHEN 1:PROCredraw
  160WHEN 2:PROCopenwindow
  170WHEN 3:PROCclosewindow(!blk%)
  180WHEN 6:PROCclick(!blk%,blk%!4,blk%!8,blk%!12,blk%!16)
  190WHEN 7:PROCdecodedrag
  200WHEN 8:PROCkey(!blk%,blk%!4,blk%!8,blk%!24)
  210WHEN 9:PROCmenuselect
  220WHEN 17,18:PROCmessage(blk%!4,blk%!8,blk%!16)
  230ENDCASE
  240ENDWHILE
  250PROCclosedown
  260
  270DEF PROCinitiate
  280mblen%=1000
  290DIM blk% 2000, menubuffer% mblen%,q% 256
  300DIM month$(12),ml%(12),sd%(12),day$(6),dc%(13)
  310textsize%=21*5
  320diarylen%=(1+textsize%)*372
  330DIM diary% diarylen%,textbuff% textsize%+30
  340text%=diary%+372
  350month$()="","January","February","March","April","May","June","July","August","September","October","November","December"
  360ml%()=0,31,28,31,30,31,30,31,31,30,31,30,31
  370day$()="Sun","Mon","Tue","Wed","Thu","Fri","Sat"
  380dc%()=0,1,2,3,4,5,8,9,10,11,12,13,14,15
  390$blk%="TASK"
  400program$="Diary"
  410SYS"Wimp_Initialise",200,!blk%,program$ TO ,mytask%
  420$q%="Diary$Dir"
  430SYS"OS_ReadVarVal",q%,blk%,1000,0,3 TO ,,len%
  440blk%?len%=13
  450dir$=$blk%
  460iconbar%=FNcricon(-1,0,0,68,68,&2002,"!diary")
  470!blk%=1
  480SYS"OS_Word",14,blk%
  490thisyear%=VAL(STR$~(?blk%))
  500thismonth%=VAL(STR$~(blk%?1))
  510thisdate%=VAL(STR$~(blk%?2))
  520cdate%=0:cmonth%=0
  530SYS"Wimp_OpenTemplate",,dir$+".Templates"
  540main%=FNloadtemplate("main",128)
  550savefff1%=FNsavewind("fff")
  560savefff2%=FNsavewind("fff")
  570saveaff%=FNsavewind("aff")
  580info%=FNloadtemplate("info",256)
  590edit%=FNloadtemplate("edit",512)
  600filenamefff1%=FNgetfilename(savefff1%)
  610filenamefff2%=FNgetfilename(savefff2%)
  620filenameaff%=FNgetfilename(saveaff%)
  630SYS"Wimp_CloseTemplate"
  640menuptr%=menubuffer%
  650menubar%=FNcrmenu("Diary,Info>,info%,Quit")
  660barheight%=items%*44+96
  670colmenu%=FNcrmenu("Column Width,Thin,Medium,Wide,Extra Wide,Full Width")
  680yearmenu%=FNcrmenu("Year,"+STR$(thisyear%)+","+STR$(thisyear%+1))
  690mainmenu%=FNcrmenu("Diary,Year>,yearmenu%,Columns>-,colmenu%,Save,Load")
  700monthmenu%=FNcrmenu("Month,Text file>,savefff2%,Draw file>,saveaff%")
  710savemenu%=FNcrmenu("Save,Day>,savefff1%,Month>,monthmenu%")
  720editmenu%=FNcrmenu("Diary,Export>-,savemenu%,Clear")
  730year%=-1
  740PROCnewmode
  750exit=FALSE
  760boxh%=48
  770colwidth%=1
  780PROCsetextent
  790textoff%=(boxh%-32)/2+4
  800tft%=&FFF
  810dft%=&AFF
  820PROCtick(colmenu%,colwidth%)
  830PROCsetyear(thisyear%)
  840IF FNload(thisyear%)=FALSE THEN PROCwarn("Cannot load Diary"):PROCclosedown
  850active%=FALSE
  860ENDPROC
  870
  880DEF FNsavewind(filetype$)
  890DIM buff% 300
  900SYS"Wimp_LoadTemplate",,blk%,buff%,buff%+300,-1,"save"
  910$(blk%+88+20)="file_"+filetype$
  920SYS"Wimp_CreateWindow",,blk% TO wind%
  930=wind%
  940
  950DEF FNgetfilename(!blk%)
  960blk%!4=1
  970SYS"Wimp_GetIconState",,blk%
  980=blk%!28
  990
 1000DEF PROCwindowinfo(!blk%)
 1010SYS"Wimp_GetWindowInfo",,blk%
 1020wx%=blk%!4-blk%!20
 1030wy%=blk%!16-blk%!24
 1040ENDPROC
 1050
 1060DEF PROCnewedit(x%,y%)
 1070PROCwindowinfo(main%)
 1080x%-=wx%
 1090y%-=wy%
 1100PROCalter(x%,y%)
 1110IF x%>=1 AND x%<=12 THEN
 1120IF y%>=sd%(x%) AND y%<=sd%(x%)+ml%(x%)-1 THEN
 1130d%=(y%-sd%(x%))+1
 1140m%=x%
 1150PROCedit(d%,m%)
 1160ENDIF
 1170ENDIF
 1180ENDPROC
 1190
 1200DEF PROCedit(d%,m%)
 1210IF cdate%>0 THEN PROCget
 1220cdate%=d%
 1230cmonth%=m%
 1240PROCset
 1250!blk%=edit%
 1260SYS"Wimp_GetWindowInfo",,blk%
 1270title$=day$((sd%(cmonth%)+cdate%-1)MOD7)+" "+STR$(cdate%)+" "+LEFT$(month$(cmonth%),3)+" "+STR$(year%)
 1280$(blk%!76)=title$
 1290blk%!28=-1
 1300SYS"Wimp_OpenWindow",,blk%
 1310SYS"Wimp_SetCaretPosition",!blk%,0,-1,-1,-1,0
 1320PROCnewtitle(!blk%)
 1330ENDPROC
 1340
 1350DEF PROCset
 1360FOR i%=0 TO 4
 1370!blk%=edit%
 1380blk%!4=i%
 1390SYS"Wimp_GetIconState",,blk%
 1400line$=FNline(cdate%,cmonth%,i%)
 1410IF line$<>$(blk%!28) THEN
 1420$(blk%!28)=line$
 1430blk%!8=0
 1440blk%!12=0
 1450SYS"Wimp_SetIconState",,blk%
 1460ENDIF
 1470NEXT i%
 1480highcol%=FNflag(cdate%,cmonth%)AND15
 1490FOR a%=0 TO 13
 1500PROCsetfc(edit%,a%+9,1-(a%=highcol%)*6)
 1510NEXT a%
 1520thischanged%=FALSE
 1530ENDPROC
 1540
 1550DEF PROCget
 1560FOR i%=0 TO 4
 1570!blk%=edit%
 1580blk%!4=i%
 1590SYS"Wimp_GetIconState",,blk%
 1600IF FNline(cdate%,cmonth%,i%)<>$(blk%!28) THEN
 1610changed%=TRUE
 1620thischanged%=TRUE
 1630PROCstore(cdate%,cmonth%,i%,$(blk%!28))
 1640ENDIF
 1650NEXT i%
 1660IF thischanged% THEN PROCupdate(cdate%,cmonth%)
 1670thischanged%=FALSE
 1680ENDPROC
 1690
 1700DEF PROCupdate(d%,m%)
 1710wx%=0:wy%=0
 1720miny%=FNy(d%-1+sd%(m%))-boxh%
 1730SYS"Wimp_ForceRedraw",main%,FNx(m%)+2,miny%+4,FNx(m%)+boxw%-2,miny%+boxh%
 1740ENDPROC
 1750
 1760DEF FNload(yr%)
 1770load%=FALSE
 1780SYS"OS_File",5,dir$+"."+STR$(yr%) TO exist%,,,,len%
 1790IF exist%=1 THEN
 1800IF len%<>diarylen% THEN
 1810PROCerror("Cannot load diary")
 1820ELSE
 1830SYS"OS_File",255,dir$+"."+STR$(yr%),diary%
 1840load%=TRUE
 1850ENDIF
 1860ELSE
 1870IF FNcheck("Diary does not exist, create new one?") THEN
 1880SYS"Hourglass_On"
 1890PROCsetyear(yr%)
 1900d%=1
 1910m%=1
 1920WHILE m%<13
 1930t%=0
 1940IF ((d%+sd%(m%)-1)MOD7)=0 OR ((d%+sd%(m%)-1)MOD7=6) THEN t%=1
 1950IF (d%=25 OR d%=26) AND m%=12 THEN t%=2
 1960IF d%=1 AND m%=1 THEN t%=2
 1970PROCsetflag(d%,m%,t%)
 1980FOR l%=0 TO 4
 1990PROCstore(d%,m%,l%,"")
 2000NEXT l%
 2010d%+=1
 2020IF d%>ml%(m%) THEN d%=1:m%+=1
 2030ENDWHILE
 2040PROCsave(yr%)
 2050SYS"Hourglass_Off"
 2060load%=TRUE
 2070ENDIF
 2080ENDIF
 2090IF load% THEN changed%=FALSE
 2100=load%
 2110
 2120DEF PROCsetflag(d%,m%,f%)
 2130diary%?((d%-1)+(m%-1)*31)=f%
 2140ENDPROC
 2150
 2160DEF FNflag(d%,m%)
 2170=diary%?((d%-1)+(m%-1)*31)
 2180
 2190DEF PROCerror(error$)
 2200d%=FNcheck(error$)
 2210ENDPROC
 2220
 2230DEF PROCsave(year%)
 2240PROCget
 2250SYS"OS_File",0,dir$+"."+STR$(year%),0,0,diary%,diarylen%+diary%
 2260changed%=FALSE
 2270ENDPROC
 2280
 2290DEF PROCsetextent
 2300CASE colwidth% OF
 2310WHEN 0 : boxw%=64
 2320WHEN 1 : boxw%=128
 2330WHEN 2 : boxw%=176
 2340WHEN 3 : boxw%=256
 2350WHEN 4 : boxw%=384
 2360ENDCASE
 2370!blk%=boxw%-84
 2380blk%!4=-(boxh%*38+12)
 2390blk%!8=13*boxw%+82
 2400blk%!12=boxh%
 2410SYS"Wimp_SetExtent",main%,blk%
 2420ENDPROC
 2430
 2440DEF PROCsetyear(ny%)
 2450PROCtick(yearmenu%,ny%-thisyear%)
 2460IF year%<>ny% THEN
 2470year%=ny%
 2480!blk%=main%
 2490SYS"Wimp_GetWindowInfo",,blk%
 2500$(blk%!76)="Year Plan "+STR$(year%)
 2510IF (year% MOD 4)=0 THEN ml%(2)=29 ELSE ml%(2)=28
 2520sd%(1)=((year%+((year%-1) DIV 4)+1)MOD7)
 2530FOR m%=2 TO 12
 2540sd%(m%)=(sd%(m%-1)+ml%(m%-1))MOD7
 2550NEXT m%
 2560ENDIF
 2570ENDPROC
 2580
 2590DEF PROCdecodedrag
 2600CASE dragwind% OF
 2610WHEN savefff1%
 2620PROCcreatetext
 2630size%=FNsize
 2640filetype%=tft%
 2650filename%=filenamefff1%
 2660WHEN savefff2%
 2670size%=0
 2680filetype%=tft%
 2690filename%=filenamefff2%
 2700WHEN saveaff%
 2710size%=0
 2720filetype%=dft%
 2730filename%=filenameaff%
 2740ENDCASE
 2750SYS"Wimp_CreateMenu",,-1
 2760SYS"Wimp_GetPointerInfo",,blk%
 2770blk%!32=blk%!4
 2780blk%!28=!blk%
 2790blk%!24=blk%!16
 2800blk%!20=blk%!12
 2810blk%!16=1
 2820blk%!12=0
 2830blk%!36=size%
 2840blk%!40=filetype%
 2850$(blk%+44)=FNlastbit($filename%)+CHR$0
 2860!blk%=60
 2870SYS"Wimp_SendMessage",17,blk%,blk%!20,blk%!24
 2880trans%=0
 2890ENDPROC
 2900
 2910DEF FNsize
 2920=textsize%+(LEN(title$)+1)*2
 2930
 2940DEF PROCcreatetext
 2950off%=(LEN(title$)+1)*2
 2960$textbuff%=title$+CHR$10
 2970$(textbuff%+LEN(title$)+1)=STRING$(LEN(title$),"~")+CHR$10
 2980FOR i%=0 TO 4
 2990!blk%=edit%
 3000blk%!4=i%
 3010SYS"Wimp_GetIconState",,blk%
 3020$(textbuff%+i%*21+off%)=$(blk%!28)+STRING$(20-LEN($(blk%!28))," ")+CHR$10
 3030NEXT i%
 3040ENDPROC
 3050
 3060DEF FNlastbit(file$)
 3070WHILE INSTR(file$,".")
 3080file$=MID$(file$,INSTR(file$,".")+1)
 3090ENDWHILE
 3100=file$
 3110
 3120DEF PROCkey(wind%,icon%,xpos%,key%)
 3130IF (wind%=savefff1% OR wind%=savefff2% OR wind%=saveaff%) AND key%=13 THEN
 3140CASE wind% OF
 3150WHEN savefff1% : PROCsavetext($filenamefff1%,0)
 3160WHEN savefff2% : PROCsavemonthfff($filenamefff2%,0)
 3170WHEN saveaff% : PROCsavemonthaff($filenameaff%,0)
 3180ENDCASE
 3190ELSE
 3200IF wind%=edit% THEN
 3210CASE key% OF
 3220WHEN &18F : PROCmove(-1)
 3230WHEN &18E,13 : PROCmove(1)
 3240ENDCASE
 3250ELSE
 3260SYS"Wimp_ProcessKey",key%
 3270ENDIF
 3280ENDIF
 3290ENDPROC
 3300
 3310DEF PROCmove(inc%)
 3320IF icon%+inc%>=0 AND icon%+inc%<=4 THEN
 3330icon%+=inc%
 3340SYS"Wimp_SetCaretPosition",wind%,icon%,xpos%,0,-1,-1
 3350ENDIF
 3360PROCget
 3370ENDPROC
 3380
 3390DEF PROCsavetext(file$,ok%)
 3400saved%=FALSE
 3410IF FNnameok THEN
 3420PROCcreatetext
 3430SYS"Wimp_CreateMenu",,-1
 3440SYS"OS_File",10,file$,tft%,0,textbuff%,textbuff%+FNsize
 3450IF INSTR(file$,"<")=0 THEN $filenamefff1%=file$
 3460saved%=TRUE
 3470ENDIF
 3480ENDPROC
 3490
 3500DEF PROCsavemonthaff(file$,ok%)
 3510SYS"Hourglass_On"
 3520ox%=128:oy%=64
 3530saved%=FALSE
 3540IF FNnameok THEN
 3550SYS"Wimp_CreateMenu",,-1
 3560file=OPENOUT(file$)
 3570IF file=0 THEN
 3580PROCreport("Can't open file")
 3590ELSE
 3600PROCheader
 3610PROCfont
 3620y%=5
 3630x%=sd%(cmonth%)
 3640xs%=256
 3650ys%=200
 3660PROCtext(month$(cmonth%),3.5*xs%+ox%,(y%+1)*ys%+96+oy%,32,32,1)
 3670FOR d%=0 TO 6
 3680  PROCtext(day$(d%),(d%+.5)*xs%+ox%,(y%+1)*ys%+16+oy%,32,16,1)
 3690NEXT d%
 3700FOR d%=1 TO ml%(cmonth%)
 3710  PROCquad(x%*xs%+ox%,y%*ys%+oy%,xs%,ys%)
 3720  PROCtext(STR$(d%),x%*xs%+8+ox%,(y%+1)*ys%-32+oy%,14,14,0)
 3730  FOR i%=0 TO 4
 3740    line$=FNline(d%,cmonth%,i%)
 3750    IF LENline$ THEN PROCtext(line$,x%*xs%+8+ox%,(y%+1)*ys%-(i%*28+68)+oy%,10,10,0)
 3760  NEXT i%
 3770  x%+=1
 3780  IF x%>6 THEN x%=0:y%-=1
 3790NEXT d%
 3800PROCtail
 3810IF INSTR(file$,"<")=0 THEN $filenameaff%=file$
 3820EXT#file=PTR#file
 3830size%=EXT#file
 3840CLOSE#file
 3850PROCsetfiletype(file$,dft%)
 3860saved%=TRUE
 3870ENDIF
 3880ENDIF
 3890SYS"Hourglass_Off"
 3900ENDPROC
 3910
 3920DEF PROCfont
 3930start%=PTR#file
 3940PROCw(0)
 3950PROCw(0)
 3960BPUT#file,1
 3970font$="Homerton.Medium"
 3980PROCst0(font$)
 3990PROCsetword(start%+4,(PTR#file)-start%)
 4000ENDPROC
 4010
 4020DEF PROCtext(text$,x0%,y0%,sx%,sy%,type%)
 4030SYS"Font_FindFont",,font$,sx%*16,sy%*16 TO hand%
 4040SYS"Font_StringBBox",,text$ TO ,lx%,ly%,mx%,my%
 4050SYS"Font_ConverttoOS",,lx%*256,ly%*256 TO ,lx%,ly%
 4060SYS"Font_ConverttoOS",,mx%*256,my%*256 TO ,mx%,my%
 4070x0%=x0%*256
 4080y0%=y0%*256
 4090IF type%=1 THEN x0%-=(mx%-lx%)/2
 4100start%=PTR#file
 4110PROCw(1)
 4120PROCw(0)
 4130PROCsetbounds(x0%+lx%,y0%+ly%,x0%+mx%,y0%+my%)
 4140PROCw(0)
 4150PROCw(&FFFFFF00)
 4160PROCw(1)
 4170PROCw(sx%*640)
 4180PROCw(sy%*640)
 4190PROCw(x0%)
 4200PROCw(y0%)
 4210PROCst0(text$)
 4220PROCsetword(start%+4,(PTR#file)-start%)
 4230ENDPROC
 4240
 4250DEF PROCquad(x0%,y0%,x1%,y1%)
 4260x0%=x0%*256
 4270x1%=x1%*256
 4280y0%=y0%*256
 4290y1%=y1%*256
 4300start%=PTR#file
 4310PROCw(2)
 4320PROCw(0)
 4330PROCsetbounds(x0%,y0%,x0%+x1%,y0%+y1%)
 4340PROCw(-1):REM fill col
 4350PROCw(0) :REM line col
 4360PROCw(0)
 4370PROCw(&20100040)
 4380PROCw(2)
 4390PROCplot(x0%,y0%,8)
 4400PROCplot(x0%+x1%,y0%,8)
 4410PROCplot(x0%+x1%,y0%+y1%,8)
 4420PROCplot(x0%,y0%+y1%,8)
 4430PROCplot(x0%,y0%,5)
 4440PROCw(0)
 4450PROCsetword(start%+4,(PTR#file)-start%)
 4460ENDPROC
 4470
 4480DEF PROCst0(text$)
 4490BPUT#file,text$;
 4500BPUT#file,0
 4510WHILE ((PTR#file)MOD4)>0
 4520BPUT#file,0
 4530ENDWHILE
 4540ENDPROC
 4550
 4560DEF PROCsetword(p%,w%)
 4570temp%=PTR#file
 4580PTR#file=p%
 4590PROCw(w%)
 4600PTR#file=temp%
 4610ENDPROC
 4620
 4630DEF PROCplot(x%,y%,t%)
 4640PROCw(x%)
 4650PROCw(y%)
 4660PROCw(t%)
 4670ENDPROC
 4680
 4690DEF PROCheader
 4700BPUT#file,"Draw";
 4710PROCw(201)
 4720PROCw(0)
 4730BPUT#file,"ArcDraw     ";
 4740minx%=1<<30
 4750miny%=1<<30
 4760maxx%=1<<31
 4770maxy%=1<<31
 4780boundsptr%=PTR#file
 4790PROCw(0)
 4800PROCw(0)
 4810PROCw(0)
 4820PROCw(0)
 4830ENDPROC
 4840
 4850DEF PROCtail
 4860temp%=PTR#file
 4870PTR#file=boundsptr%
 4880PROCw(minx%)
 4890PROCw(miny%)
 4900PROCw(maxx%)
 4910PROCw(maxy%)
 4920PTR#file=temp%
 4930ENDPROC
 4940
 4950DEF PROCsetbounds(x0%,y0%,x1%,y1%)
 4960PROCw(x0%)
 4970PROCw(y0%)
 4980PROCw(x1%)
 4990PROCw(y1%)
 5000IF x0%<minx% THEN minx%=x0%
 5010IF y0%<miny% THEN miny%=y0%
 5020IF x1%>maxx% THEN maxx%=x1%
 5030IF y1%>maxy% THEN maxy%=y1%
 5040ENDPROC
 5050
 5060DEF PROCw(!blk%)
 5070FOR a%=0 TO 3
 5080  BPUT#file,blk%?a%
 5090NEXT a%
 5100ENDPROC
 5110
 5120DEF PROCsavemonthfff(file$,ok%)
 5130saved%=FALSE
 5140IF FNnameok THEN
 5150SYS"Wimp_CreateMenu",,-1
 5160file=OPENOUT(file$)
 5170IF file=0 THEN
 5180PROCreport("Cannot create textfile")
 5190ELSE
 5200BPUT#file,STRING$((27-LENmonth$(cmonth%))/2," ");
 5210BPUT#file,month$(cmonth%)
 5220BPUT#file,10
 5230FOR d%=1 TO ml%(cmonth%)
 5240BPUT#file,day$((d%+sd%(cmonth%)-1)MOD7);
 5250IF d%<10 THEN BPUT#file,32
 5260BPUT#file,32
 5270BPUT#file,STR$(d%);
 5280BPUT#file,32
 5290s$=""
 5300c%=FALSE
 5310FOR a%=0 TO 4
 5320l$=FNline(d%,cmonth%,a%)
 5330IF LENl$ THEN
 5340IF c% THEN s$+=", "
 5350s$+=l$
 5360c%=TRUE
 5370ENDIF
 5380NEXT a%
 5390BPUT#file,s$
 5400NEXT d%
 5410CLOSE#file
 5420PROCsetfiletype(file$,tft%)
 5430IF INSTR(file$,"<")=0 THEN $filenamefff2%=file$
 5440saved%=TRUE
 5450ENDIF
 5460ENDIF
 5470ENDPROC
 5480
 5490DEF FNnameok
 5500result%=TRUE
 5510IF INSTR(file$,":")+INSTR(file$,".")=0 AND NOTok% THEN
 5520PROCreport("To save, drag icon to a directory viewer "+file$)
 5530result%=FALSE
 5540ENDIF
 5550=result%
 5560
 5570DEF PROCredraw
 5580PROCwindowinfo(main%)
 5590SYS"Wimp_RedrawWindow",,blk% TO more%
 5600WHILE more%
 5610IF !blk%=main% THEN
 5620minx%=blk%!28-wx%
 5630miny%=blk%!40-wy%
 5640maxx%=(blk%!36-wx%)+boxw%-1
 5650maxy%=(blk%!32-wy%)-(boxh%+1)
 5660top%=maxy%
 5670PROCalter(minx%,miny%)
 5680PROCalter(maxx%,maxy%)
 5690SYS"Wimp_SetColour",7
 5700FOR x%=minx% TO maxx%
 5710IF (top%<0 OR maxy%>37) AND x%>=1 AND x%<=12 THEN
 5720IF colwidth%<2 THEN c%=3 ELSE c%=LEN(month$(x%))
 5730MOVE FNx(x%)+(boxw%-c%*16)/2,FNy(-1-(maxy%>37)*38)-textoff%
 5740PRINTLEFT$(month$(x%),c%)
 5750ENDIF
 5760FOR y%=miny% TO maxy%
 5770IF x%>=1 AND x%<=12 THEN
 5780IF y%>=sd%(x%) AND y%<=sd%(x%)+ml%(x%)-1 THEN
 5790d%=(y%-sd%(x%))+1
 5800m%=x%
 5810flag%=FNflag(d%,m%)
 5820col%=dc%(flag%AND15)
 5830IF col%>0 THEN
 5840SYS"Wimp_SetColour",col%
 5850RECTANGLE FILL FNx(x%),FNy(y%),boxw%-2,-boxh%
 5860IF col%<>7 THEN SYS"Wimp_SetColour",7
 5870ENDIF
 5880IF d%=thisdate% AND m%=thismonth% AND year%=thisyear% THEN
 5890SYS"Wimp_SetColour",11
 5900RECTANGLE FNx(x%)+2,FNy(y%)-4,boxw%-6,8-boxh%
 5910SYS"Wimp_SetColour",7
 5920ENDIF
 5930RECTANGLE FNx(x%),FNy(y%),boxw%-2,-boxh%
 5940MOVE FNx(x%)+4,FNy(y%)-textoff%
 5950IF d%<10 THEN VDU 32
 5960PRINTSTR$(d%);
 5970text$=FNline(d%,m%,0)
 5980IF text$<>"" THEN
 5990IF colwidth%=0 THEN VDU 42 ELSE PRINT" ";LEFT$(text$,(boxw%>>4)-4)
 6000ENDIF
 6010ENDIF
 6020ELSE
 6030IF (x%=0 OR x%=13) AND y%>=0 AND y%<=36 THEN
 6040MOVE FNx(x%)-(boxw%-68)*(x%=0)-(18*(x%=13)),FNy(y%)-textoff%
 6050PRINTday$(y%MOD7)
 6060ENDIF
 6070ENDIF
 6080NEXT y%
 6090NEXT x%
 6100ENDIF
 6110SYS"Wimp_GetRectangle",,blk% TO more%
 6120ENDWHILE
 6130ENDPROC
 6140
 6150DEF FNline(d%,m%,l%)
 6160=$(text%+((m%-1)*31+(d%-1))*textsize%+l%*21)
 6170
 6180DEF PROCstore(d%,m%,l%,text$)
 6190$(text%+((m%-1)*31+(d%-1))*textsize%+l%*21)=text$
 6200ENDPROC
 6210
 6220DEF FNx(x%)
 6230=x%*boxw%+wx%
 6240
 6250DEF FNy(y%)
 6260=(wy%-y%*boxh%)-4
 6270
 6280DEF PROCalter(RETURN x%,RETURN y%)
 6290x%=x% DIV boxw%
 6300y%=-((y%+4) DIV boxh%)
 6310ENDPROC
 6320
 6330DEF PROCclosewindow(!blk%)
 6340IF !blk%=edit% THEN PROCget
 6350SYS"Wimp_CloseWindow",,blk%
 6360IF !blk%=main% THEN PROCclosewindow(edit%)
 6370ENDPROC
 6380
 6390DEF PROCclosedown
 6400SYS"Wimp_CloseDown",mytask%
 6410END
 6420
 6430DEF PROCmouseinfo
 6440SYS"Wimp_GetPointerInfo",,blk%
 6450mx%=!blk%
 6460my%=blk%!4
 6470but%=blk%!8
 6480wind%=blk%!12
 6490icon%=blk%!16
 6500ENDPROC
 6510
 6520DEF PROCmenuselect
 6530CASE openmenu% OF
 6540WHEN menubar%
 6550CASE !blk% OF
 6560WHEN 1 : PROCquit
 6570ENDCASE
 6580WHEN mainmenu%
 6590CASE !blk% OF
 6600WHEN 0
 6610IF blk%!4>=0 AND blk%!4<>year%-thisyear% THEN
 6620ny%=thisyear%+blk%!4
 6630PROCsave(year%)
 6640PROCsetyear(ny%)
 6650dum%=FNload(year%)
 6660PROCtick(yearmenu%,year%-thisyear%)
 6670!blk%=edit%
 6680SYS"Wimp_CloseWindow",,blk%
 6690!blk%=main%
 6700PROCredraw
 6710ENDIF
 6720WHEN 1
 6730IF blk%!4>=0 AND blk%!4<>colwidth% THEN
 6740PROCtick(colmenu%,blk%!4)
 6750colwidth%=blk%!4
 6760PROCsetextent
 6770!blk%=main%
 6780SYS"Wimp_GetWindowState",,blk%
 6790SYS"Wimp_OpenWindow",,blk%
 6800PROCredraw
 6810ENDIF
 6820WHEN 2 : PROCsave(year%)
 6830WHEN 3
 6840d%=FNload(year%)
 6850!blk%=main%
 6860PROCredraw
 6870ENDCASE
 6880WHEN editmenu%
 6890CASE !blk% OF
 6900WHEN 1
 6910FOR i%=0 TO 4
 6920!blk%=edit%
 6930blk%!4=i%
 6940SYS"Wimp_GetIconState",,blk%
 6950blk%!8=0
 6960blk%!12=0
 6970$(blk%!28)=""
 6980SYS"Wimp_SetIconState",,blk%
 6990NEXT i%
 7000PROCget
 7010ENDCASE
 7020ENDCASE
 7030PROCmouseinfo
 7040IF but%=1 THEN SYS"Wimp_CreateMenu",,openmenu%,menux%,menuy%
 7050ENDPROC
 7060
 7070DEF PROCquit
 7080IF changed% THEN IF FNcheck("Save diary first?") THEN PROCsave(year%)
 7090PROCclosedown
 7100ENDPROC
 7110
 7120DEF PROCclick(mx%,my%,but%,wind%,icon%)
 7130CASE wind% OF
 7140WHEN -2
 7150CASE but% OF
 7160WHEN 2 : PROCmenu(menubar%,mx%,barheight%)
 7170WHEN 4 : PROCopen(main%)
 7180ENDCASE
 7190WHEN main%
 7200CASE but% OF
 7210WHEN 2 : PROCmenu(mainmenu%,mx%,my%)
 7220WHEN 4 : PROCnewedit(mx%,my%)
 7230ENDCASE
 7240WHEN edit%
 7250CASE but% OF
 7260WHEN 4,1
 7270IF icon%>=9 AND icon%<=22 THEN
 7280col%=icon%-9
 7290IF col%<>highcol% THEN
 7300PROCsetflag(cdate%,cmonth%,col%)
 7310PROCsetfc(edit%,highcol%+9,1)
 7320highcol%=col%
 7330PROCsetfc(edit%,highcol%+9,7)
 7340PROCupdate(cdate%,cmonth%)
 7350changed%=TRUE
 7360ENDIF
 7370ENDIF
 7380WHEN 2 : PROCmenu(editmenu%,mx%,my%)
 7390ENDCASE
 7400WHEN savefff1%,savefff2%,saveaff%
 7410CASE icon% OF
 7420WHEN 2
 7430CASE wind% OF
 7440WHEN savefff1% : PROCsavetext($filenamefff1%,0)
 7450WHEN savefff2% : PROCsavemonthfff($filenamefff2%,0)
 7460WHEN saveaff% : PROCsavemonthaff($filenameaff%,0)
 7470ENDCASE
 7480WHEN 0 : PROCstartdrag(wind%,icon%)
 7490ENDCASE
 7500ENDCASE
 7510ENDPROC
 7520
 7530DEF PROCstartdrag(wind%,icon%)
 7540dragwind%=wind%
 7550dragicon%=icon%
 7560!blk%=wind%
 7570SYS"Wimp_GetWindowState",,blk%
 7580ys%=blk%!16-blk%!8
 7590x%=blk%!4
 7600y%=blk%!8
 7610blk%!4=icon%
 7620SYS"Wimp_GetIconState",,blk%
 7630!blk%=0
 7640blk%!4=5
 7650blk%!8+=x%
 7660blk%!12+=y%+ys%
 7670blk%!16+=x%
 7680blk%!20+=y%+ys%
 7690blk%!24=0
 7700blk%!28=0
 7710blk%!32=scx%
 7720blk%!36=scy%
 7730SYS"Wimp_DragBox",,blk%
 7740ENDPROC
 7750
 7760DEF PROCmenu(data%,x%,y%)
 7770openmenu%=data%
 7780x%=x%-(data%!16)/2-16
 7790SYS"Wimp_CreateMenu",,data%,x%,y%
 7800menux%=x%
 7810menuy%=y%
 7820ENDPROC
 7830
 7840DEF PROCmessage(task%,ref%,message%)
 7850CASE message% OF
 7860WHEN 0 : PROCquit
 7870WHEN 2
 7880CASE dragwind% OF
 7890WHEN savefff1%:PROCsavetext(FNstring(blk%+44),TRUE)
 7900WHEN savefff2%:PROCsavemonthfff(FNstring(blk%+44),TRUE)
 7910WHEN saveaff%:PROCsavemonthaff(FNstring(blk%+44),TRUE)
 7920ENDCASE
 7930IF saved% THEN
 7940SYS"Wimp_GetPointerInfo",,blk%
 7950blk%!20=blk%!12
 7960blk%!24=blk%!16
 7970blk%!28=!blk%
 7980blk%!32=blk%!4
 7990blk%!36=size%
 8000blk%!40=filetype%
 8010!blk%=48+(LEN(FNstring(blk%+44))+3)ANDNOT3
 8020PROCreply(17,3)
 8030ENDIF
 8040WHEN 6
 8050IF dragwind%=savefff1% THEN
 8060togo%=FNsize-trans%
 8070IF togo%>blk%!24 THEN togo%=blk%!24
 8080SYS"Wimp_TransferBlock",mytask%,textbuff%+trans%,task%,blk%!20,togo%
 8090blk%!24=togo%
 8100PROCreply(18,7)
 8110trans%+=togo%
 8120ENDIF
 8130WHEN &400C1 : PROCnewmode
 8140ENDCASE
 8150ENDPROC
 8160
 8170DEF PROCreply(type%,reason%)
 8180blk%!12=ref%
 8190blk%!16=reason%
 8200SYS"Wimp_SendMessage",type%,blk%,task%
 8210ENDPROC
 8220
 8230DEF PROCnewmode
 8240!blk%=11
 8250blk%!4=12
 8260blk%!8=-1
 8270SYS"OS_ReadVduVariables",blk%,blk%
 8280scx%=(!blk%+1)*2
 8290scy%=(blk%!4+1)*4
 8300ENDPROC
 8310
 8320DEF FNloadtemplate(title$,size%)
 8330DIM buff% size%
 8340SYS"Wimp_LoadTemplate",,blk%,buff%,buff%+size%,-1,title$
 8350SYS"Wimp_CreateWindow",,blk% TO wind%
 8360=wind%
 8370
 8380DEF PROCtick(menu%,tick%)
 8390p%=menu%+4
 8400a%=-1
 8410REPEAT
 8420p%+=24
 8430a%+=1
 8440IF a%=tick% THEN !p%=!p% OR1 ELSE !p%=!p% ANDNOT1
 8450UNTIL !p% AND &80
 8460ENDPROC
 8470
 8480DEF FNcrmenu(text$)
 8490oldptr%=menuptr%
 8500items%=0
 8510text$+=","
 8520title$=FNnextword(text$)
 8530$menuptr%=title$
 8540max%=LENtitle$
 8550menuptr%!12=&70207
 8560menuptr%!20=44
 8570menuptr%!24=0
 8580menuptr%+=4
 8590WHILE text$<>""
 8600items%+=1
 8610menuptr%+=24
 8620!menuptr%=0
 8630menuptr%!4=0
 8640word$=FNnextword(text$)
 8650token$=FNtoken(word$)
 8660WHILE token$<>""
 8670CASE token$ OF
 8680WHEN ">" : menuptr%!4=EVAL(FNnextword(text$))
 8690WHEN "/" : !menuptr%=!menuptr% OR 1
 8700WHEN "-" : !menuptr%=!menuptr% OR 2
 8710WHEN "!" : !menuptr%=!menuptr% OR 4
 8720ENDCASE
 8730token$=FNtoken(word$)
 8740ENDWHILE
 8750menuptr%!8=(7<<24) OR %10001
 8760IF !menuptr% AND 4 OR token$="#" THEN
 8770menuptr%!8=menuptr%!8 OR 1<<8
 8780menuptr%!12=EVAL(FNnextword(text$))
 8790menuptr%!16=-1
 8800menuptr%!20=EVAL(word$)
 8810IF menuptr%!20>max% AND (!menuptr% AND 4)=0 THEN max%=menuptr%!20
 8820ELSE
 8830$(menuptr%+12)=word$
 8840IF LENword$>max% THEN max%=LENword$
 8850ENDIF
 8860ENDWHILE
 8870!menuptr%=!menuptr% OR &80
 8880menuptr%+=24
 8890oldptr%!16=max%*16+8
 8900=oldptr%
 8910
 8920DEF FNtoken(RETURN word$)
 8930token$=""
 8940IF INSTR(">/!#-",RIGHT$(word$)) THEN
 8950token$=RIGHT$(word$,1)
 8960word$=LEFT$(word$,LENword$-1)
 8970ENDIF
 8980=token$
 8990
 9000DEF FNnextword(RETURN text$)
 9010LOCAL word$,pos%
 9020pos%=INSTR(text$,",")
 9030word$=LEFT$(text$,pos%-1)
 9040text$=MID$(text$,pos%+1)
 9050=word$
 9060
 9070DEF FNcricon(!blk%,blk%!4,blk%!8,blk%!12,blk%!16,blk%!20,$(blk%+24))
 9080SYS"Wimp_CreateIcon",,blk% TO icon%
 9090=icon%
 9100
 9110DEF FNcheck(message$)
 9120SYS"Wimp_DragBox",,0
 9130!blk%=0
 9140$(blk%+4)=message$
 9150SYS"Wimp_ReportError",blk%,19,"Message from "+program$ TO ,answer%
 9160IF answer%=1 THEN =TRUE ELSE =FALSE
 9170
 9180DEF FNstring(b%)
 9190LOCAL s$
 9200s$=""
 9210WHILE ?b%>31
 9220s$+=CHR$(?b%)
 9230b%+=1
 9240ENDWHILE
 9250=s$
 9260
 9270DEF PROCreport(message$)
 9280SYS"Wimp_DragBox",,0
 9290!blk%=0
 9300$(blk%+4)=message$
 9310SYS"Wimp_ReportError",blk%,1,program$
 9320ENDPROC
 9330
 9340DEF PROCopen(wind%)
 9350!blk%=wind%
 9360SYS"Wimp_GetWindowState",,blk%
 9370blk%!28=-1
 9380PROCopenwindow
 9390IF NOTactive% THEN
 9400active%=TRUE
 9410$filenamefff1%="TextFile"
 9420$filenamefff2%="TextFile"
 9430$filenameaff%="DrawFile"
 9440ENDIF
 9450ENDPROC
 9460
 9470DEF PROCopenwindow
 9480SYS"Wimp_OpenWindow",,blk%
 9490ENDPROC
 9500
 9510DEF PROCselecticon(!blk%,blk%!4,select%)
 9520SYS"Wimp_GetIconState",,blk%
 9530IF select% THEN blk%!8=1<<21 ELSE blk%!8=0
 9540blk%!12=1<<21
 9550IF (blk%!24 AND blk%!12)<>blk%!8 THEN SYS"Wimp_SetIconState",,blk%
 9560ENDPROC
 9570
 9580DEF PROCsetfc(!blk%,blk%!4,col%)
 9590SYS"Wimp_GetIconState",,blk%
 9600blk%!8=col%<<24
 9610blk%!12=15<<24
 9620IF (blk%!24 AND blk%!12)<>blk%!8 THEN SYS"Wimp_SetIconState",,blk%
 9630ENDPROC
 9640
 9650DEF PROCsetfiletype(file$,filetype%)
 9660SYS"OS_File",&12,file$,filetype%
 9670ENDPROC
 9680
 9690DEF PROCnewtitle(!blk%)
 9700SYS"Wimp_GetWindowOutline",,blk%
 9710SYS"Wimp_ForceRedraw",-1,blk%!4,blk%!16-44,blk%!12,blk%!16
 9720ENDPROC
 9730ENDPROC

� > <Diary$Dir>.!RunImage
� (c) Barry Wickett 1992
	� of:
(� 43 Almond Avenue
2� Yew Tree
<
� Walsall
F
� WS5 4JU
P
Z
�initiate
d!� � exit=�check(�$+", EXIT?")
n
xȕ �exit
�"ș"Wimp_Poll",1,blk% � reason%
�Ȏ reason% �
�� 1:�redraw
�� 2:�openwindow
�� 3:�closewindow(!blk%)
�3� 6:�click(!blk%,blk%!4,blk%!8,blk%!12,blk%!16)
�� 7:�decodedrag
�)� 8:�key(!blk%,blk%!4,blk%!8,blk%!24)
�� 9:�menuselect
�+� 17,18:�message(blk%!4,blk%!8,blk%!16)
��
��
��closedown

� �initiate
mblen%=1000
"*� blk% 2000, menubuffer% mblen%,q% 256
,0� month$(12),ml%(12),sd%(12),day$(6),dc%(13)
6textsize%=21*5
@diarylen%=(1+textsize%)*372
J-� diary% diarylen%,textbuff% textsize%+30
Ttext%=diary%+372
^}month$()="","January","February","March","April","May","June","July","August","September","October","November","December"
h/ml%()=0,31,28,31,30,31,30,31,31,30,31,30,31
r4day$()="Sun","Mon","Tue","Wed","Thu","Fri","Sat"
|+dc%()=0,1,2,3,4,5,8,9,10,11,12,13,14,15
�$blk%="TASK"
�program$="Diary"
�5ș"Wimp_Initialise",200,!blk%,program$ � ,mytask%
�$q%="Diary$Dir"
�/ș"OS_ReadVarVal",q%,blk%,1000,0,3 � ,,len%
�blk%?len%=13
�dir$=$blk%
�1iconbar%=�cricon(-1,0,0,68,68,&2002,"!diary")
�!blk%=1
�ș"OS_Word",14,blk%
�thisyear%=�(�~(?blk%))
�thismonth%=�(�~(blk%?1))
�thisdate%=�(�~(blk%?2))
cdate%=0:cmonth%=0
,ș"Wimp_OpenTemplate",,dir$+".Templates"
#main%=�loadtemplate("main",128)
&savefff1%=�savewind("fff")
0savefff2%=�savewind("fff")
:saveaff%=�savewind("aff")
D#info%=�loadtemplate("info",256)
N#edit%=�loadtemplate("edit",512)
X)filenamefff1%=�getfilename(savefff1%)
b)filenamefff2%=�getfilename(savefff2%)
l'filenameaff%=�getfilename(saveaff%)
vș"Wimp_CloseTemplate"
�menuptr%=menubuffer%
�.menubar%=�crmenu("Diary,Info>,info%,Quit")
�barheight%=items%*44+96
�Kcolmenu%=�crmenu("Column Width,Thin,Medium,Wide,Extra Wide,Full Width")
�>yearmenu%=�crmenu("Year,"+�(thisyear%)+","+�(thisyear%+1))
�Kmainmenu%=�crmenu("Diary,Year>,yearmenu%,Columns>-,colmenu%,Save,Load")
�Hmonthmenu%=�crmenu("Month,Text file>,savefff2%,Draw file>,saveaff%")
�>savemenu%=�crmenu("Save,Day>,savefff1%,Month>,monthmenu%")
�7editmenu%=�crmenu("Diary,Export>-,savemenu%,Clear")
�year%=-1
��newmode
�
exit=�
�boxh%=48
colwidth%=1
�setextent
textoff%=(boxh%-32)/2+4
 
tft%=&FFF
*
dft%=&AFF
4�tick(colmenu%,colwidth%)
>�setyear(thisyear%)
H@� �load(thisyear%)=� � �warn("Cannot load Diary"):�closedown
R
active%=�
\�
f
p� �savewind(filetype$)
z� buff% 300
�9ș"Wimp_LoadTemplate",,blk%,buff%,buff%+300,-1,"save"
�#$(blk%+88+20)="file_"+filetype$
�'ș"Wimp_CreateWindow",,blk% � wind%
�
=wind%
�
�� �getfilename(!blk%)
�blk%!4=1
�ș"Wimp_GetIconState",,blk%
�=blk%!28
�
�� �windowinfo(!blk%)
� ș"Wimp_GetWindowInfo",,blk%
�wx%=blk%!4-blk%!20
wy%=blk%!16-blk%!24
�

$� �newedit(x%,y%)
.�windowinfo(main%)
8x%-=wx%
By%-=wy%
L�alter(x%,y%)
V� x%>=1 � x%<=12 �
`+� y%>=sd%(x%) � y%<=sd%(x%)+ml%(x%)-1 �
jd%=(y%-sd%(x%))+1
t	m%=x%
~�edit(d%,m%)
��
��
��
�
�� �edit(d%,m%)
�� cdate%>0 � �get
�
cdate%=d%
�cmonth%=m%
��set
�!blk%=edit%
� ș"Wimp_GetWindowInfo",,blk%
�]title$=day$((sd%(cmonth%)+cdate%-1)�7)+" "+�(cdate%)+" "+�month$(cmonth%),3)+" "+�(year%)
$(blk%!76)=title$

blk%!28=-1
ș"Wimp_OpenWindow",,blk%
0ș"Wimp_SetCaretPosition",!blk%,0,-1,-1,-1,0
(�newtitle(!blk%)
2�
<
F
� �set
P� i%=0 � 4
Z!blk%=edit%
d
blk%!4=i%
nș"Wimp_GetIconState",,blk%
x"line$=�line(cdate%,cmonth%,i%)
�� line$<>$(blk%!28) �
�$(blk%!28)=line$
�blk%!8=0
�
blk%!12=0
�ș"Wimp_SetIconState",,blk%
��
�� i%
�%highcol%=�flag(cdate%,cmonth%)�15
�� a%=0 � 13
�(�setfc(edit%,a%+9,1-(a%=highcol%)*6)
�� a%
�thischanged%=�
��


� �get
� i%=0 � 4
"!blk%=edit%
,
blk%!4=i%
6ș"Wimp_GetIconState",,blk%
@,� �line(cdate%,cmonth%,i%)<>$(blk%!28) �
Jchanged%=�
Tthischanged%=�
^(�store(cdate%,cmonth%,i%,$(blk%!28))
h�
r� i%
|,� thischanged% � �update(cdate%,cmonth%)
�thischanged%=�
��
�
�� �update(d%,m%)
�wx%=0:wy%=0
� miny%=�y(d%-1+sd%(m%))-boxh%
�Jș"Wimp_ForceRedraw",main%,�x(m%)+2,miny%+4,�x(m%)+boxw%-2,miny%+boxh%
��
�
�� �load(yr%)
�load%=�
�2ș"OS_File",5,dir$+"."+�(yr%) � exist%,,,,len%
�� exist%=1 �
� len%<>diarylen% �
�error("Cannot load diary")
�
&*ș"OS_File",255,dir$+"."+�(yr%),diary%
0load%=�
:�
D�
N7� �check("Diary does not exist, create new one?") �
Xș"Hourglass_On"
b�setyear(yr%)
ld%=1
vm%=1
�ȕ m%<13
�t%=0
�8� ((d%+sd%(m%)-1)�7)=0 � ((d%+sd%(m%)-1)�7=6) � t%=1
�$� (d%=25 � d%=26) � m%=12 � t%=2
�� d%=1 � m%=1 � t%=2
��setflag(d%,m%,t%)
�� l%=0 � 4
��store(d%,m%,l%,"")
�� l%
�	d%+=1
�� d%>ml%(m%) � d%=1:m%+=1
��
��save(yr%)
ș"Hourglass_Off"
load%=�
�
 �
*� load% � changed%=�
4
=load%
>
H� �setflag(d%,m%,f%)
R diary%?((d%-1)+(m%-1)*31)=f%
\�
f
p� �flag(d%,m%)
z=diary%?((d%-1)+(m%-1)*31)
�
�� �error(error$)
�d%=�check(error$)
��
�
�� �save(year%)
��get
�?ș"OS_File",0,dir$+"."+�(year%),0,0,diary%,diarylen%+diary%
�changed%=�
��
�
�� �setextent
�Ȏ colwidth% �
	� 0 : boxw%=64
	� 1 : boxw%=128
	� 2 : boxw%=176
	$� 3 : boxw%=256
	.� 4 : boxw%=384
	8�
	B!blk%=boxw%-84
	Lblk%!4=-(boxh%*38+12)
	Vblk%!8=13*boxw%+82
	`blk%!12=boxh%
	j!ș"Wimp_SetExtent",main%,blk%
	t�
	~
	�� �setyear(ny%)
	�"�tick(yearmenu%,ny%-thisyear%)
	�� year%<>ny% �
	�
year%=ny%
	�!blk%=main%
	� ș"Wimp_GetWindowInfo",,blk%
	�$$(blk%!76)="Year Plan "+�(year%)
	�+� (year% � 4)=0 � ml%(2)=29 � ml%(2)=28
	�(sd%(1)=((year%+((year%-1) � 4)+1)�7)
	�� m%=2 � 12
	�#sd%(m%)=(sd%(m%-1)+ml%(m%-1))�7
	�� m%
�

�

� �decodedrag
(Ȏ dragwind% �
2� savefff1%
<�createtext
Fsize%=�size
Pfiletype%=tft%
Zfilename%=filenamefff1%
d� savefff2%
nsize%=0
xfiletype%=tft%
�filename%=filenamefff2%
�� saveaff%
�size%=0
�filetype%=dft%
�filename%=filenameaff%
��
�ș"Wimp_CreateMenu",,-1
�!ș"Wimp_GetPointerInfo",,blk%
�blk%!32=blk%!4
�blk%!28=!blk%
�blk%!24=blk%!16
�blk%!20=blk%!12
�
blk%!16=1

blk%!12=0
blk%!36=size%
blk%!40=filetype%
"&$(blk%+44)=�lastbit($filename%)+�0
,!blk%=60
60ș"Wimp_SendMessage",17,blk%,blk%!20,blk%!24
@trans%=0
J�
T
^� �size
h=textsize%+(�(title$)+1)*2
r
|� �createtext
�off%=(�(title$)+1)*2
�$textbuff%=title$+�10
�0$(textbuff%+�(title$)+1)=ĩ(title$),"~")+�10
�� i%=0 � 4
�!blk%=edit%
�
blk%!4=i%
�ș"Wimp_GetIconState",,blk%
�A$(textbuff%+i%*21+off%)=$(blk%!28)+�20-�($(blk%!28))," ")+�10
�� i%
��
�
�� �lastbit(file$)
�ȕ �file$,".")
file$=�file$,�file$,".")+1)
�

=file$
&
0"� �key(wind%,icon%,xpos%,key%)
:F� (wind%=savefff1% � wind%=savefff2% � wind%=saveaff%) � key%=13 �
DȎ wind% �
N-� savefff1% : �savetext($filenamefff1%,0)
X1� savefff2% : �savemonthfff($filenamefff2%,0)
b/� saveaff% : �savemonthaff($filenameaff%,0)
l�
v�
�� wind%=edit% �
�
Ȏ key% �
�� &18F : �move(-1)
�� &18E,13 : �move(1)
��
��
�ș"Wimp_ProcessKey",key%
��
��
��
�
�� �move(inc%)
�%� icon%+inc%>=0 � icon%+inc%<=4 �

icon%+=inc%

7ș"Wimp_SetCaretPosition",wind%,icon%,xpos%,0,-1,-1

�

 �get

*�

4

>� �savetext(file$,ok%)

Hsaved%=�

R� �nameok �

\�createtext

fș"Wimp_CreateMenu",,-1

p9ș"OS_File",10,file$,tft%,0,textbuff%,textbuff%+�size

z*� �file$,"<")=0 � $filenamefff1%=file$

�saved%=�

��

��

�

�� �savemonthaff(file$,ok%)

�ș"Hourglass_On"

�ox%=128:oy%=64

�saved%=�

�� �nameok �

�ș"Wimp_CreateMenu",,-1

�file=�(file$)

�� file=0 �

��report("Can't open file")
�
�header
	�font
$y%=5
.x%=sd%(cmonth%)
8xs%=256
Bys%=200
L@�text(month$(cmonth%),3.5*xs%+ox%,(y%+1)*ys%+96+oy%,32,32,1)
V� d%=0 � 6
`?  �text(day$(d%),(d%+.5)*xs%+ox%,(y%+1)*ys%+16+oy%,32,16,1)
j� d%
t� d%=1 � ml%(cmonth%)
~*  �quad(x%*xs%+ox%,y%*ys%+oy%,xs%,ys%)
�9  �text(�(d%),x%*xs%+8+ox%,(y%+1)*ys%-32+oy%,14,14,0)
�  � i%=0 � 4
�"    line$=�line(d%,cmonth%,i%)
�N    � �line$ � �text(line$,x%*xs%+8+ox%,(y%+1)*ys%-(i%*28+68)+oy%,10,10,0)
�
  � i%
�  x%+=1
�  � x%>6 � x%=0:y%-=1
�� d%
�	�tail
�)� �file$,"<")=0 � $filenameaff%=file$
��#file=�#file
�size%=�#file

�#file

�setfiletype(file$,dft%)
saved%=�
�
(�
2ș"Hourglass_Off"
<�
F
P� �font
Zstart%=�#file
d	�w(0)
n	�w(0)
x�#file,1
�font$="Homerton.Medium"
��st0(font$)
�&�setword(start%+4,(�#file)-start%)
��
�
�(� �text(text$,x0%,y0%,sx%,sy%,type%)
�2ș"Font_FindFont",,font$,sx%*16,sy%*16 � hand%
�1ș"Font_StringBBox",,text$ � ,lx%,ly%,mx%,my%
�4ș"Font_ConverttoOS",,lx%*256,ly%*256 � ,lx%,ly%
�4ș"Font_ConverttoOS",,mx%*256,my%*256 � ,mx%,my%
�x0%=x0%*256
�y0%=y0%*256
� � type%=1 � x0%-=(mx%-lx%)/2
start%=�#file
	�w(1)
	�w(0)
"/�setbounds(x0%+lx%,y0%+ly%,x0%+mx%,y0%+my%)
,	�w(0)
6�w(&FFFFFF00)
@	�w(1)
J�w(sx%*640)
T�w(sy%*640)
^�w(x0%)
h�w(y0%)
r�st0(text$)
|&�setword(start%+4,(�#file)-start%)
��
�
�� �quad(x0%,y0%,x1%,y1%)
�x0%=x0%*256
�x1%=x1%*256
�y0%=y0%*256
�y1%=y1%*256
�start%=�#file
�	�w(2)
�	�w(0)
�'�setbounds(x0%,y0%,x0%+x1%,y0%+y1%)
��w(-1):� fill col
��w(0) :� line col
	�w(0)
�w(&20100040)
	�w(2)
&�plot(x0%,y0%,8)
0�plot(x0%+x1%,y0%,8)
:�plot(x0%+x1%,y0%+y1%,8)
D�plot(x0%,y0%+y1%,8)
N�plot(x0%,y0%,5)
X	�w(0)
b&�setword(start%+4,(�#file)-start%)
l�
v
�� �st0(text$)
��#file,text$;
��#file,0
�ȕ ((�#file)�4)>0
��#file,0
��
��
�
�� �setword(p%,w%)
�temp%=�#file
�
�#file=p%
�
�w(w%)
��#file=temp%
�

� �plot(x%,y%,t%)
 
�w(x%)
*
�w(y%)
4
�w(t%)
>�
H
R
� �header
\�#file,"Draw";
f�w(201)
p	�w(0)
z�#file,"ArcDraw     ";
�minx%=1<<30
�miny%=1<<30
�maxx%=1<<31
�maxy%=1<<31
�boundsptr%=�#file
�	�w(0)
�	�w(0)
�	�w(0)
�	�w(0)
��
�
�� �tail
�temp%=�#file
�#file=boundsptr%

�w(minx%)

�w(miny%)
$
�w(maxx%)
.
�w(maxy%)
8�#file=temp%
B�
L
V!� �setbounds(x0%,y0%,x1%,y1%)
`�w(x0%)
j�w(y0%)
t�w(x1%)
~�w(y1%)
�� x0%<minx% � minx%=x0%
�� y0%<miny% � miny%=y0%
�� x1%>maxx% � maxx%=x1%
�� y1%>maxy% � maxy%=y1%
��
�
�� �w(!blk%)
�� a%=0 � 3
�  �#file,blk%?a%
�� a%
��
�
� �savemonthfff(file$,ok%)

saved%=�
� �nameok �
ș"Wimp_CreateMenu",,-1
(file=�(file$)
2� file=0 �
<%�report("Cannot create textfile")
F�
P)�#file,�(27-�month$(cmonth%))/2," ");
Z�#file,month$(cmonth%)
d
�#file,10
n� d%=1 � ml%(cmonth%)
x'�#file,day$((d%+sd%(cmonth%)-1)�7);
�� d%<10 � �#file,32
�
�#file,32
��#file,�(d%);
�
�#file,32
�	s$=""
�c%=�
�� a%=0 � 4
�l$=�line(d%,cmonth%,a%)
�� �l$ �
�� c% � s$+=", "
�
s$+=l$
�c%=�
��
� a%

�#file,s$
� d%
"
�#file
,�setfiletype(file$,tft%)
6*� �file$,"<")=0 � $filenamefff2%=file$
@saved%=�
J�
T�
^�
h
r
� �nameok
|
result%=�
�(� �file$,":")+�file$,".")=0 � �ok% �
�>�report("To save, drag icon to a directory viewer "+file$)
�
result%=�
��
�=result%
�
�
� �redraw
��windowinfo(main%)
�'ș"Wimp_RedrawWindow",,blk% � more%
�ȕ more%
�� !blk%=main% �
�minx%=blk%!28-wx%
�miny%=blk%!40-wy%
maxx%=(blk%!36-wx%)+boxw%-1
!maxy%=(blk%!32-wy%)-(boxh%+1)
top%=maxy%
&�alter(minx%,miny%)
0�alter(maxx%,maxy%)
:ș"Wimp_SetColour",7
D� x%=minx% � maxx%
N,� (top%<0 � maxy%>37) � x%>=1 � x%<=12 �
X+� colwidth%<2 � c%=3 � c%=�(month$(x%))
b:� �x(x%)+(boxw%-c%*16)/2,�y(-1-(maxy%>37)*38)-textoff%
l�month$(x%),c%)
v�
�� y%=miny% � maxy%
�� x%>=1 � x%<=12 �
�+� y%>=sd%(x%) � y%<=sd%(x%)+ml%(x%)-1 �
�d%=(y%-sd%(x%))+1
�	m%=x%
�flag%=�flag(d%,m%)
�col%=dc%(flag%�15)
�� col%>0 �
�ș"Wimp_SetColour",col%
�&ȓ Ȑ �x(x%),�y(y%),boxw%-2,-boxh%
�$� col%<>7 � ș"Wimp_SetColour",7
��
�6� d%=thisdate% � m%=thismonth% � year%=thisyear% �
ș"Wimp_SetColour",11
(ȓ �x(x%)+2,�y(y%)-4,boxw%-6,8-boxh%
ș"Wimp_SetColour",7
 �
*#ȓ �x(x%),�y(y%),boxw%-2,-boxh%
4� �x(x%)+4,�y(y%)-textoff%
>� d%<10 � � 32
H��(d%);
Rtext$=�line(d%,m%,0)
\� text$<>"" �
f4� colwidth%=0 � � 42 � �" ";�text$,(boxw%>>4)-4)
p�
z�
��
�'� (x%=0 � x%=13) � y%>=0 � y%<=36 �
�;� �x(x%)-(boxw%-68)*(x%=0)-(18*(x%=13)),�y(y%)-textoff%
��day$(y%�7)
��
��
�� y%
�� x%
��
�'ș"Wimp_GetRectangle",,blk% � more%
��
��
�
� �line(d%,m%,l%)
0=$(text%+((m%-1)*31+(d%-1))*textsize%+l%*21)

$� �store(d%,m%,l%,text$)
.5$(text%+((m%-1)*31+(d%-1))*textsize%+l%*21)=text$
8�
B
L� �x(x%)
V=x%*boxw%+wx%
`
j� �y(y%)
t=(wy%-y%*boxh%)-4
~
�� �alter(� x%,� y%)
�x%=x% � boxw%
�y%=-((y%+4) � boxh%)
��
�
�� �closewindow(!blk%)
�� !blk%=edit% � �get
�ș"Wimp_CloseWindow",,blk%
�'� !blk%=main% � �closewindow(edit%)
��
�
�� �closedown
ș"Wimp_CloseDown",mytask%

�

� �mouseinfo
(!ș"Wimp_GetPointerInfo",,blk%
2
mx%=!blk%
<my%=blk%!4
Fbut%=blk%!8
Pwind%=blk%!12
Zicon%=blk%!16
d�
n
x� �menuselect
�Ȏ openmenu% �
�� menubar%
�Ȏ !blk% �
�� 1 : �quit
��
�� mainmenu%
�Ȏ !blk% �
�� 0
�+� blk%!4>=0 � blk%!4<>year%-thisyear% �
�ny%=thisyear%+blk%!4
��save(year%)
��setyear(ny%)
�dum%=�load(year%)
$�tick(yearmenu%,year%-thisyear%)
!blk%=edit%
ș"Wimp_CloseWindow",,blk%
"!blk%=main%
,�redraw
6�
@� 1
J%� blk%!4>=0 � blk%!4<>colwidth% �
T�tick(colmenu%,blk%!4)
^colwidth%=blk%!4
h�setextent
r!blk%=main%
|!ș"Wimp_GetWindowState",,blk%
�ș"Wimp_OpenWindow",,blk%
��redraw
��
�� 2 : �save(year%)
�� 3
�d%=�load(year%)
�!blk%=main%
��redraw
��
�� editmenu%
�Ȏ !blk% �
�� 1
�� i%=0 � 4
!blk%=edit%

blk%!4=i%
ș"Wimp_GetIconState",,blk%
&blk%!8=0
0
blk%!12=0
:$(blk%!28)=""
Dș"Wimp_SetIconState",,blk%
N� i%
X�get
b�
l�
v�mouseinfo
�;� but%=1 � ș"Wimp_CreateMenu",,openmenu%,menux%,menuy%
��
�
�� �quit
�=� changed% � � �check("Save diary first?") � �save(year%)
��closedown
��
�
�&� �click(mx%,my%,but%,wind%,icon%)
�Ȏ wind% �
�� -2
�
Ȏ but% �
�(� 2 : �menu(menubar%,mx%,barheight%)
� 4 : �open(main%)
�
� main%
 
Ȏ but% �
*"� 2 : �menu(mainmenu%,mx%,my%)
4� 4 : �newedit(mx%,my%)
>�
H� edit%
R
Ȏ but% �
\	� 4,1
f� icon%>=9 � icon%<=22 �
pcol%=icon%-9
z� col%<>highcol% �
�!�setflag(cdate%,cmonth%,col%)
��setfc(edit%,highcol%+9,1)
�highcol%=col%
��setfc(edit%,highcol%+9,7)
��update(cdate%,cmonth%)
�changed%=�
��
��
�"� 2 : �menu(editmenu%,mx%,my%)
��
�"� savefff1%,savefff2%,saveaff%
�Ȏ icon% �
�� 2
Ȏ wind% �
-� savefff1% : �savetext($filenamefff1%,0)
1� savefff2% : �savemonthfff($filenamefff2%,0)
$/� saveaff% : �savemonthaff($filenameaff%,0)
.�
8!� 0 : �startdrag(wind%,icon%)
B�
L�
V�
`
j� �startdrag(wind%,icon%)
tdragwind%=wind%
~dragicon%=icon%
�!blk%=wind%
�!ș"Wimp_GetWindowState",,blk%
�ys%=blk%!16-blk%!8
�
x%=blk%!4
�
y%=blk%!8
�blk%!4=icon%
�ș"Wimp_GetIconState",,blk%
�!blk%=0
�blk%!4=5
�blk%!8+=x%
�blk%!12+=y%+ys%
�blk%!16+=x%
blk%!20+=y%+ys%


blk%!24=0

blk%!28=0
blk%!32=scx%
(blk%!36=scy%
2ș"Wimp_DragBox",,blk%
<�
F
P� �menu(data%,x%,y%)
Zopenmenu%=data%
dx%=x%-(data%!16)/2-16
n$ș"Wimp_CreateMenu",,data%,x%,y%
x
menux%=x%
�
menuy%=y%
��
�
�#� �message(task%,ref%,message%)
�Ȏ message% �
�� 0 : �quit
�� 2
�Ȏ dragwind% �
�-� savefff1%:�savetext(�string(blk%+44),�)
�1� savefff2%:�savemonthfff(�string(blk%+44),�)
�0� saveaff%:�savemonthaff(�string(blk%+44),�)
��
�� saved% �
!ș"Wimp_GetPointerInfo",,blk%
blk%!20=blk%!12
blk%!24=blk%!16
"blk%!28=!blk%
,blk%!32=blk%!4
6blk%!36=size%
@blk%!40=filetype%
J'!blk%=48+(�(�string(blk%+44))+3)��3
T�reply(17,3)
^�
h� 6
r� dragwind%=savefff1% �
|togo%=�size-trans%
�#� togo%>blk%!24 � togo%=blk%!24
�Gș"Wimp_TransferBlock",mytask%,textbuff%+trans%,task%,blk%!20,togo%
�blk%!24=togo%
��reply(18,7)
�trans%+=togo%
��
�� &400C1 : �newmode
��
��
�
�� �reply(type%,reason%)
�blk%!12=ref%
�blk%!16=reason%
 )ș"Wimp_SendMessage",type%,blk%,task%
 �
 
 &� �newmode
 0!blk%=11
 :
blk%!4=12
 D
blk%!8=-1
 N%ș"OS_ReadVduVariables",blk%,blk%
 Xscx%=(!blk%+1)*2
 bscy%=(blk%!4+1)*4
 l�
 v
 �!� �loadtemplate(title$,size%)
 �� buff% size%
 �;ș"Wimp_LoadTemplate",,blk%,buff%,buff%+size%,-1,title$
 �'ș"Wimp_CreateWindow",,blk% � wind%
 �
=wind%
 �
 �� �tick(menu%,tick%)
 �p%=menu%+4
 �	a%=-1
 ��
 �
p%+=24
 �	a%+=1
 �)� a%=tick% � !p%=!p% �1 � !p%=!p% ��1
!� !p% � &80
!�
!
! � �crmenu(text$)
!*oldptr%=menuptr%
!4items%=0
!>text$+=","
!Htitle$=�nextword(text$)
!R$menuptr%=title$
!\max%=�title$
!fmenuptr%!12=&70207
!pmenuptr%!20=44
!zmenuptr%!24=0
!�menuptr%+=4
!�ȕ text$<>""
!�
items%+=1
!�menuptr%+=24
!�!menuptr%=0
!�menuptr%!4=0
!�word$=�nextword(text$)
!�token$=�token(word$)
!�ȕ token$<>""
!�Ȏ token$ �
!�*� ">" : menuptr%!4=�(�nextword(text$))
!�#� "/" : !menuptr%=!menuptr% � 1
!�#� "-" : !menuptr%=!menuptr% � 2
"#� "!" : !menuptr%=!menuptr% � 4
"�
"token$=�token(word$)
"$�
".menuptr%!8=(7<<24) � %10001
"8"� !menuptr% � 4 � token$="#" �
"B menuptr%!8=menuptr%!8 � 1<<8
"L#menuptr%!12=�(�nextword(text$))
"Vmenuptr%!16=-1
"`menuptr%!20=�(word$)
"j=� menuptr%!20>max% � (!menuptr% � 4)=0 � max%=menuptr%!20
"t�
"~$(menuptr%+12)=word$
"�� �word$>max% � max%=�word$
"��
"��
"�!menuptr%=!menuptr% � &80
"�menuptr%+=24
"�oldptr%!16=max%*16+8
"�=oldptr%
"�
"�� �token(� word$)
"�
token$=""
"�� �">/!#-",�word$)) �
"�token$=�word$,1)
#word$=�word$,�word$-1)
#
�
#=token$
#
#(� �nextword(� text$)
#2� word$,pos%
#<pos%=�text$,",")
#Fword$=�text$,pos%-1)
#Ptext$=�text$,pos%+1)
#Z
=word$
#d
#nE� �cricon(!blk%,blk%!4,blk%!8,blk%!12,blk%!16,blk%!20,$(blk%+24))
#x%ș"Wimp_CreateIcon",,blk% � icon%
#�
=icon%
#�
#�� �check(message$)
#�ș"Wimp_DragBox",,0
#�!blk%=0
#�$(blk%+4)=message$
#�Dș"Wimp_ReportError",blk%,19,"Message from "+program$ � ,answer%
#�� answer%=1 � =� � =�
#�
#�� �string(b%)
#�� s$
#�	s$=""
#�
ȕ ?b%>31
$s$+=�(?b%)
$	b%+=1
$�
$"=s$
$,
$6� �report(message$)
$@ș"Wimp_DragBox",,0
$J!blk%=0
$T$(blk%+4)=message$
$^(ș"Wimp_ReportError",blk%,1,program$
$h�
$r
$|� �open(wind%)
$�!blk%=wind%
$�!ș"Wimp_GetWindowState",,blk%
$�blk%!28=-1
$��openwindow
$�� �active% �
$�
active%=�
$�$filenamefff1%="TextFile"
$�$filenamefff2%="TextFile"
$�$filenameaff%="DrawFile"
$��
$��
$�
$�� �openwindow
%ș"Wimp_OpenWindow",,blk%
%�
%
%&'� �selecticon(!blk%,blk%!4,select%)
%0ș"Wimp_GetIconState",,blk%
%:'� select% � blk%!8=1<<21 � blk%!8=0
%Dblk%!12=1<<21
%N?� (blk%!24 � blk%!12)<>blk%!8 � ș"Wimp_SetIconState",,blk%
%X�
%b
%l� �setfc(!blk%,blk%!4,col%)
%vș"Wimp_GetIconState",,blk%
%�blk%!8=col%<<24
%�blk%!12=15<<24
%�?� (blk%!24 � blk%!12)<>blk%!8 � ș"Wimp_SetIconState",,blk%
%��
%�
%�#� �setfiletype(file$,filetype%)
%�#ș"OS_File",&12,file$,filetype%
%��
%�
%�� �newtitle(!blk%)
%�#ș"Wimp_GetWindowOutline",,blk%
%�=ș"Wimp_ForceRedraw",-1,blk%!4,blk%!16-44,blk%!12,blk%!16
%��
&�
�
00000000  0d 00 0a 1d f4 20 3e 20  3c 44 69 61 72 79 24 44  |..... > <Diary$D|
00000010  69 72 3e 2e 21 52 75 6e  49 6d 61 67 65 0d 00 14  |ir>.!RunImage...|
00000020  1c f4 20 28 63 29 20 42  61 72 72 79 20 57 69 63  |.. (c) Barry Wic|
00000030  6b 65 74 74 20 31 39 39  32 0d 00 1e 09 f4 20 6f  |kett 1992..... o|
00000040  66 3a 0d 00 28 16 f4 20  34 33 20 41 6c 6d 6f 6e  |f:..(.. 43 Almon|
00000050  64 20 41 76 65 6e 75 65  0d 00 32 0e f4 20 59 65  |d Avenue..2.. Ye|
00000060  77 20 54 72 65 65 0d 00  3c 0d f4 20 57 61 6c 73  |w Tree..<.. Wals|
00000070  61 6c 6c 0d 00 46 0d f4  20 57 53 35 20 34 4a 55  |all..F.. WS5 4JU|
00000080  0d 00 50 04 0d 00 5a 0d  f2 69 6e 69 74 69 61 74  |..P...Z..initiat|
00000090  65 0d 00 64 21 ee 20 85  20 65 78 69 74 3d a4 63  |e..d!. . exit=.c|
000000a0  68 65 63 6b 28 f6 24 2b  22 2c 20 45 58 49 54 3f  |heck(.$+", EXIT?|
000000b0  22 29 0d 00 6e 04 0d 00  78 0c c8 95 20 ac 65 78  |")..n...x... .ex|
000000c0  69 74 0d 00 82 22 c8 99  22 57 69 6d 70 5f 50 6f  |it...".."Wimp_Po|
000000d0  6c 6c 22 2c 31 2c 62 6c  6b 25 20 b8 20 72 65 61  |ll",1,blk% . rea|
000000e0  73 6f 6e 25 0d 00 8c 10  c8 8e 20 72 65 61 73 6f  |son%...... reaso|
000000f0  6e 25 20 ca 0d 00 96 0f  c9 20 31 3a f2 72 65 64  |n% ...... 1:.red|
00000100  72 61 77 0d 00 a0 13 c9  20 32 3a f2 6f 70 65 6e  |raw..... 2:.open|
00000110  77 69 6e 64 6f 77 0d 00  aa 1b c9 20 33 3a f2 63  |window..... 3:.c|
00000120  6c 6f 73 65 77 69 6e 64  6f 77 28 21 62 6c 6b 25  |losewindow(!blk%|
00000130  29 0d 00 b4 33 c9 20 36  3a f2 63 6c 69 63 6b 28  |)...3. 6:.click(|
00000140  21 62 6c 6b 25 2c 62 6c  6b 25 21 34 2c 62 6c 6b  |!blk%,blk%!4,blk|
00000150  25 21 38 2c 62 6c 6b 25  21 31 32 2c 62 6c 6b 25  |%!8,blk%!12,blk%|
00000160  21 31 36 29 0d 00 be 13  c9 20 37 3a f2 64 65 63  |!16)..... 7:.dec|
00000170  6f 64 65 64 72 61 67 0d  00 c8 29 c9 20 38 3a f2  |odedrag...). 8:.|
00000180  6b 65 79 28 21 62 6c 6b  25 2c 62 6c 6b 25 21 34  |key(!blk%,blk%!4|
00000190  2c 62 6c 6b 25 21 38 2c  62 6c 6b 25 21 32 34 29  |,blk%!8,blk%!24)|
000001a0  0d 00 d2 13 c9 20 39 3a  f2 6d 65 6e 75 73 65 6c  |..... 9:.menusel|
000001b0  65 63 74 0d 00 dc 2b c9  20 31 37 2c 31 38 3a f2  |ect...+. 17,18:.|
000001c0  6d 65 73 73 61 67 65 28  62 6c 6b 25 21 34 2c 62  |message(blk%!4,b|
000001d0  6c 6b 25 21 38 2c 62 6c  6b 25 21 31 36 29 0d 00  |lk%!8,blk%!16)..|
000001e0  e6 05 cb 0d 00 f0 05 ce  0d 00 fa 0e f2 63 6c 6f  |.............clo|
000001f0  73 65 64 6f 77 6e 0d 01  04 04 0d 01 0e 0f dd 20  |sedown......... |
00000200  f2 69 6e 69 74 69 61 74  65 0d 01 18 0f 6d 62 6c  |.initiate....mbl|
00000210  65 6e 25 3d 31 30 30 30  0d 01 22 2a de 20 62 6c  |en%=1000.."*. bl|
00000220  6b 25 20 32 30 30 30 2c  20 6d 65 6e 75 62 75 66  |k% 2000, menubuf|
00000230  66 65 72 25 20 6d 62 6c  65 6e 25 2c 71 25 20 32  |fer% mblen%,q% 2|
00000240  35 36 0d 01 2c 30 de 20  6d 6f 6e 74 68 24 28 31  |56..,0. month$(1|
00000250  32 29 2c 6d 6c 25 28 31  32 29 2c 73 64 25 28 31  |2),ml%(12),sd%(1|
00000260  32 29 2c 64 61 79 24 28  36 29 2c 64 63 25 28 31  |2),day$(6),dc%(1|
00000270  33 29 0d 01 36 12 74 65  78 74 73 69 7a 65 25 3d  |3)..6.textsize%=|
00000280  32 31 2a 35 0d 01 40 1f  64 69 61 72 79 6c 65 6e  |21*5..@.diarylen|
00000290  25 3d 28 31 2b 74 65 78  74 73 69 7a 65 25 29 2a  |%=(1+textsize%)*|
000002a0  33 37 32 0d 01 4a 2d de  20 64 69 61 72 79 25 20  |372..J-. diary% |
000002b0  64 69 61 72 79 6c 65 6e  25 2c 74 65 78 74 62 75  |diarylen%,textbu|
000002c0  66 66 25 20 74 65 78 74  73 69 7a 65 25 2b 33 30  |ff% textsize%+30|
000002d0  0d 01 54 14 74 65 78 74  25 3d 64 69 61 72 79 25  |..T.text%=diary%|
000002e0  2b 33 37 32 0d 01 5e 7d  6d 6f 6e 74 68 24 28 29  |+372..^}month$()|
000002f0  3d 22 22 2c 22 4a 61 6e  75 61 72 79 22 2c 22 46  |="","January","F|
00000300  65 62 72 75 61 72 79 22  2c 22 4d 61 72 63 68 22  |ebruary","March"|
00000310  2c 22 41 70 72 69 6c 22  2c 22 4d 61 79 22 2c 22  |,"April","May","|
00000320  4a 75 6e 65 22 2c 22 4a  75 6c 79 22 2c 22 41 75  |June","July","Au|
00000330  67 75 73 74 22 2c 22 53  65 70 74 65 6d 62 65 72  |gust","September|
00000340  22 2c 22 4f 63 74 6f 62  65 72 22 2c 22 4e 6f 76  |","October","Nov|
00000350  65 6d 62 65 72 22 2c 22  44 65 63 65 6d 62 65 72  |ember","December|
00000360  22 0d 01 68 2f 6d 6c 25  28 29 3d 30 2c 33 31 2c  |"..h/ml%()=0,31,|
00000370  32 38 2c 33 31 2c 33 30  2c 33 31 2c 33 30 2c 33  |28,31,30,31,30,3|
00000380  31 2c 33 31 2c 33 30 2c  33 31 2c 33 30 2c 33 31  |1,31,30,31,30,31|
00000390  0d 01 72 34 64 61 79 24  28 29 3d 22 53 75 6e 22  |..r4day$()="Sun"|
000003a0  2c 22 4d 6f 6e 22 2c 22  54 75 65 22 2c 22 57 65  |,"Mon","Tue","We|
000003b0  64 22 2c 22 54 68 75 22  2c 22 46 72 69 22 2c 22  |d","Thu","Fri","|
000003c0  53 61 74 22 0d 01 7c 2b  64 63 25 28 29 3d 30 2c  |Sat"..|+dc%()=0,|
000003d0  31 2c 32 2c 33 2c 34 2c  35 2c 38 2c 39 2c 31 30  |1,2,3,4,5,8,9,10|
000003e0  2c 31 31 2c 31 32 2c 31  33 2c 31 34 2c 31 35 0d  |,11,12,13,14,15.|
000003f0  01 86 10 24 62 6c 6b 25  3d 22 54 41 53 4b 22 0d  |...$blk%="TASK".|
00000400  01 90 14 70 72 6f 67 72  61 6d 24 3d 22 44 69 61  |...program$="Dia|
00000410  72 79 22 0d 01 9a 35 c8  99 22 57 69 6d 70 5f 49  |ry"...5.."Wimp_I|
00000420  6e 69 74 69 61 6c 69 73  65 22 2c 32 30 30 2c 21  |nitialise",200,!|
00000430  62 6c 6b 25 2c 70 72 6f  67 72 61 6d 24 20 b8 20  |blk%,program$ . |
00000440  2c 6d 79 74 61 73 6b 25  0d 01 a4 13 24 71 25 3d  |,mytask%....$q%=|
00000450  22 44 69 61 72 79 24 44  69 72 22 0d 01 ae 2f c8  |"Diary$Dir".../.|
00000460  99 22 4f 53 5f 52 65 61  64 56 61 72 56 61 6c 22  |."OS_ReadVarVal"|
00000470  2c 71 25 2c 62 6c 6b 25  2c 31 30 30 30 2c 30 2c  |,q%,blk%,1000,0,|
00000480  33 20 b8 20 2c 2c 6c 65  6e 25 0d 01 b8 10 62 6c  |3 . ,,len%....bl|
00000490  6b 25 3f 6c 65 6e 25 3d  31 33 0d 01 c2 0e 64 69  |k%?len%=13....di|
000004a0  72 24 3d 24 62 6c 6b 25  0d 01 cc 31 69 63 6f 6e  |r$=$blk%...1icon|
000004b0  62 61 72 25 3d a4 63 72  69 63 6f 6e 28 2d 31 2c  |bar%=.cricon(-1,|
000004c0  30 2c 30 2c 36 38 2c 36  38 2c 26 32 30 30 32 2c  |0,0,68,68,&2002,|
000004d0  22 21 64 69 61 72 79 22  29 0d 01 d6 0b 21 62 6c  |"!diary")....!bl|
000004e0  6b 25 3d 31 0d 01 e0 17  c8 99 22 4f 53 5f 57 6f  |k%=1......"OS_Wo|
000004f0  72 64 22 2c 31 34 2c 62  6c 6b 25 0d 01 ea 1a 74  |rd",14,blk%....t|
00000500  68 69 73 79 65 61 72 25  3d bb 28 c3 7e 28 3f 62  |hisyear%=.(.~(?b|
00000510  6c 6b 25 29 29 0d 01 f4  1c 74 68 69 73 6d 6f 6e  |lk%))....thismon|
00000520  74 68 25 3d bb 28 c3 7e  28 62 6c 6b 25 3f 31 29  |th%=.(.~(blk%?1)|
00000530  29 0d 01 fe 1b 74 68 69  73 64 61 74 65 25 3d bb  |)....thisdate%=.|
00000540  28 c3 7e 28 62 6c 6b 25  3f 32 29 29 0d 02 08 16  |(.~(blk%?2))....|
00000550  63 64 61 74 65 25 3d 30  3a 63 6d 6f 6e 74 68 25  |cdate%=0:cmonth%|
00000560  3d 30 0d 02 12 2c c8 99  22 57 69 6d 70 5f 4f 70  |=0...,.."Wimp_Op|
00000570  65 6e 54 65 6d 70 6c 61  74 65 22 2c 2c 64 69 72  |enTemplate",,dir|
00000580  24 2b 22 2e 54 65 6d 70  6c 61 74 65 73 22 0d 02  |$+".Templates"..|
00000590  1c 23 6d 61 69 6e 25 3d  a4 6c 6f 61 64 74 65 6d  |.#main%=.loadtem|
000005a0  70 6c 61 74 65 28 22 6d  61 69 6e 22 2c 31 32 38  |plate("main",128|
000005b0  29 0d 02 26 1e 73 61 76  65 66 66 66 31 25 3d a4  |)..&.savefff1%=.|
000005c0  73 61 76 65 77 69 6e 64  28 22 66 66 66 22 29 0d  |savewind("fff").|
000005d0  02 30 1e 73 61 76 65 66  66 66 32 25 3d a4 73 61  |.0.savefff2%=.sa|
000005e0  76 65 77 69 6e 64 28 22  66 66 66 22 29 0d 02 3a  |vewind("fff")..:|
000005f0  1d 73 61 76 65 61 66 66  25 3d a4 73 61 76 65 77  |.saveaff%=.savew|
00000600  69 6e 64 28 22 61 66 66  22 29 0d 02 44 23 69 6e  |ind("aff")..D#in|
00000610  66 6f 25 3d a4 6c 6f 61  64 74 65 6d 70 6c 61 74  |fo%=.loadtemplat|
00000620  65 28 22 69 6e 66 6f 22  2c 32 35 36 29 0d 02 4e  |e("info",256)..N|
00000630  23 65 64 69 74 25 3d a4  6c 6f 61 64 74 65 6d 70  |#edit%=.loadtemp|
00000640  6c 61 74 65 28 22 65 64  69 74 22 2c 35 31 32 29  |late("edit",512)|
00000650  0d 02 58 29 66 69 6c 65  6e 61 6d 65 66 66 66 31  |..X)filenamefff1|
00000660  25 3d a4 67 65 74 66 69  6c 65 6e 61 6d 65 28 73  |%=.getfilename(s|
00000670  61 76 65 66 66 66 31 25  29 0d 02 62 29 66 69 6c  |avefff1%)..b)fil|
00000680  65 6e 61 6d 65 66 66 66  32 25 3d a4 67 65 74 66  |enamefff2%=.getf|
00000690  69 6c 65 6e 61 6d 65 28  73 61 76 65 66 66 66 32  |ilename(savefff2|
000006a0  25 29 0d 02 6c 27 66 69  6c 65 6e 61 6d 65 61 66  |%)..l'filenameaf|
000006b0  66 25 3d a4 67 65 74 66  69 6c 65 6e 61 6d 65 28  |f%=.getfilename(|
000006c0  73 61 76 65 61 66 66 25  29 0d 02 76 1a c8 99 22  |saveaff%)..v..."|
000006d0  57 69 6d 70 5f 43 6c 6f  73 65 54 65 6d 70 6c 61  |Wimp_CloseTempla|
000006e0  74 65 22 0d 02 80 18 6d  65 6e 75 70 74 72 25 3d  |te"....menuptr%=|
000006f0  6d 65 6e 75 62 75 66 66  65 72 25 0d 02 8a 2e 6d  |menubuffer%....m|
00000700  65 6e 75 62 61 72 25 3d  a4 63 72 6d 65 6e 75 28  |enubar%=.crmenu(|
00000710  22 44 69 61 72 79 2c 49  6e 66 6f 3e 2c 69 6e 66  |"Diary,Info>,inf|
00000720  6f 25 2c 51 75 69 74 22  29 0d 02 94 1b 62 61 72  |o%,Quit")....bar|
00000730  68 65 69 67 68 74 25 3d  69 74 65 6d 73 25 2a 34  |height%=items%*4|
00000740  34 2b 39 36 0d 02 9e 4b  63 6f 6c 6d 65 6e 75 25  |4+96...Kcolmenu%|
00000750  3d a4 63 72 6d 65 6e 75  28 22 43 6f 6c 75 6d 6e  |=.crmenu("Column|
00000760  20 57 69 64 74 68 2c 54  68 69 6e 2c 4d 65 64 69  | Width,Thin,Medi|
00000770  75 6d 2c 57 69 64 65 2c  45 78 74 72 61 20 57 69  |um,Wide,Extra Wi|
00000780  64 65 2c 46 75 6c 6c 20  57 69 64 74 68 22 29 0d  |de,Full Width").|
00000790  02 a8 3e 79 65 61 72 6d  65 6e 75 25 3d a4 63 72  |..>yearmenu%=.cr|
000007a0  6d 65 6e 75 28 22 59 65  61 72 2c 22 2b c3 28 74  |menu("Year,"+.(t|
000007b0  68 69 73 79 65 61 72 25  29 2b 22 2c 22 2b c3 28  |hisyear%)+","+.(|
000007c0  74 68 69 73 79 65 61 72  25 2b 31 29 29 0d 02 b2  |thisyear%+1))...|
000007d0  4b 6d 61 69 6e 6d 65 6e  75 25 3d a4 63 72 6d 65  |Kmainmenu%=.crme|
000007e0  6e 75 28 22 44 69 61 72  79 2c 59 65 61 72 3e 2c  |nu("Diary,Year>,|
000007f0  79 65 61 72 6d 65 6e 75  25 2c 43 6f 6c 75 6d 6e  |yearmenu%,Column|
00000800  73 3e 2d 2c 63 6f 6c 6d  65 6e 75 25 2c 53 61 76  |s>-,colmenu%,Sav|
00000810  65 2c 4c 6f 61 64 22 29  0d 02 bc 48 6d 6f 6e 74  |e,Load")...Hmont|
00000820  68 6d 65 6e 75 25 3d a4  63 72 6d 65 6e 75 28 22  |hmenu%=.crmenu("|
00000830  4d 6f 6e 74 68 2c 54 65  78 74 20 66 69 6c 65 3e  |Month,Text file>|
00000840  2c 73 61 76 65 66 66 66  32 25 2c 44 72 61 77 20  |,savefff2%,Draw |
00000850  66 69 6c 65 3e 2c 73 61  76 65 61 66 66 25 22 29  |file>,saveaff%")|
00000860  0d 02 c6 3e 73 61 76 65  6d 65 6e 75 25 3d a4 63  |...>savemenu%=.c|
00000870  72 6d 65 6e 75 28 22 53  61 76 65 2c 44 61 79 3e  |rmenu("Save,Day>|
00000880  2c 73 61 76 65 66 66 66  31 25 2c 4d 6f 6e 74 68  |,savefff1%,Month|
00000890  3e 2c 6d 6f 6e 74 68 6d  65 6e 75 25 22 29 0d 02  |>,monthmenu%")..|
000008a0  d0 37 65 64 69 74 6d 65  6e 75 25 3d a4 63 72 6d  |.7editmenu%=.crm|
000008b0  65 6e 75 28 22 44 69 61  72 79 2c 45 78 70 6f 72  |enu("Diary,Expor|
000008c0  74 3e 2d 2c 73 61 76 65  6d 65 6e 75 25 2c 43 6c  |t>-,savemenu%,Cl|
000008d0  65 61 72 22 29 0d 02 da  0c 79 65 61 72 25 3d 2d  |ear")....year%=-|
000008e0  31 0d 02 e4 0c f2 6e 65  77 6d 6f 64 65 0d 02 ee  |1.....newmode...|
000008f0  0a 65 78 69 74 3d a3 0d  02 f8 0c 62 6f 78 68 25  |.exit=.....boxh%|
00000900  3d 34 38 0d 03 02 0f 63  6f 6c 77 69 64 74 68 25  |=48....colwidth%|
00000910  3d 31 0d 03 0c 0e f2 73  65 74 65 78 74 65 6e 74  |=1.....setextent|
00000920  0d 03 16 1b 74 65 78 74  6f 66 66 25 3d 28 62 6f  |....textoff%=(bo|
00000930  78 68 25 2d 33 32 29 2f  32 2b 34 0d 03 20 0d 74  |xh%-32)/2+4.. .t|
00000940  66 74 25 3d 26 46 46 46  0d 03 2a 0d 64 66 74 25  |ft%=&FFF..*.dft%|
00000950  3d 26 41 46 46 0d 03 34  1d f2 74 69 63 6b 28 63  |=&AFF..4..tick(c|
00000960  6f 6c 6d 65 6e 75 25 2c  63 6f 6c 77 69 64 74 68  |olmenu%,colwidth|
00000970  25 29 0d 03 3e 17 f2 73  65 74 79 65 61 72 28 74  |%)..>..setyear(t|
00000980  68 69 73 79 65 61 72 25  29 0d 03 48 40 e7 20 a4  |hisyear%)..H@. .|
00000990  6c 6f 61 64 28 74 68 69  73 79 65 61 72 25 29 3d  |load(thisyear%)=|
000009a0  a3 20 8c 20 f2 77 61 72  6e 28 22 43 61 6e 6e 6f  |. . .warn("Canno|
000009b0  74 20 6c 6f 61 64 20 44  69 61 72 79 22 29 3a f2  |t load Diary"):.|
000009c0  63 6c 6f 73 65 64 6f 77  6e 0d 03 52 0d 61 63 74  |closedown..R.act|
000009d0  69 76 65 25 3d a3 0d 03  5c 05 e1 0d 03 66 04 0d  |ive%=...\....f..|
000009e0  03 70 1a dd 20 a4 73 61  76 65 77 69 6e 64 28 66  |.p.. .savewind(f|
000009f0  69 6c 65 74 79 70 65 24  29 0d 03 7a 0f de 20 62  |iletype$)..z.. b|
00000a00  75 66 66 25 20 33 30 30  0d 03 84 39 c8 99 22 57  |uff% 300...9.."W|
00000a10  69 6d 70 5f 4c 6f 61 64  54 65 6d 70 6c 61 74 65  |imp_LoadTemplate|
00000a20  22 2c 2c 62 6c 6b 25 2c  62 75 66 66 25 2c 62 75  |",,blk%,buff%,bu|
00000a30  66 66 25 2b 33 30 30 2c  2d 31 2c 22 73 61 76 65  |ff%+300,-1,"save|
00000a40  22 0d 03 8e 23 24 28 62  6c 6b 25 2b 38 38 2b 32  |"...#$(blk%+88+2|
00000a50  30 29 3d 22 66 69 6c 65  5f 22 2b 66 69 6c 65 74  |0)="file_"+filet|
00000a60  79 70 65 24 0d 03 98 27  c8 99 22 57 69 6d 70 5f  |ype$...'.."Wimp_|
00000a70  43 72 65 61 74 65 57 69  6e 64 6f 77 22 2c 2c 62  |CreateWindow",,b|
00000a80  6c 6b 25 20 b8 20 77 69  6e 64 25 0d 03 a2 0a 3d  |lk% . wind%....=|
00000a90  77 69 6e 64 25 0d 03 ac  04 0d 03 b6 19 dd 20 a4  |wind%......... .|
00000aa0  67 65 74 66 69 6c 65 6e  61 6d 65 28 21 62 6c 6b  |getfilename(!blk|
00000ab0  25 29 0d 03 c0 0c 62 6c  6b 25 21 34 3d 31 0d 03  |%)....blk%!4=1..|
00000ac0  ca 1f c8 99 22 57 69 6d  70 5f 47 65 74 49 63 6f  |...."Wimp_GetIco|
00000ad0  6e 53 74 61 74 65 22 2c  2c 62 6c 6b 25 0d 03 d4  |nState",,blk%...|
00000ae0  0c 3d 62 6c 6b 25 21 32  38 0d 03 de 04 0d 03 e8  |.=blk%!28.......|
00000af0  18 dd 20 f2 77 69 6e 64  6f 77 69 6e 66 6f 28 21  |.. .windowinfo(!|
00000b00  62 6c 6b 25 29 0d 03 f2  20 c8 99 22 57 69 6d 70  |blk%)... .."Wimp|
00000b10  5f 47 65 74 57 69 6e 64  6f 77 49 6e 66 6f 22 2c  |_GetWindowInfo",|
00000b20  2c 62 6c 6b 25 0d 03 fc  16 77 78 25 3d 62 6c 6b  |,blk%....wx%=blk|
00000b30  25 21 34 2d 62 6c 6b 25  21 32 30 0d 04 06 17 77  |%!4-blk%!20....w|
00000b40  79 25 3d 62 6c 6b 25 21  31 36 2d 62 6c 6b 25 21  |y%=blk%!16-blk%!|
00000b50  32 34 0d 04 10 05 e1 0d  04 1a 04 0d 04 24 15 dd  |24...........$..|
00000b60  20 f2 6e 65 77 65 64 69  74 28 78 25 2c 79 25 29  | .newedit(x%,y%)|
00000b70  0d 04 2e 16 f2 77 69 6e  64 6f 77 69 6e 66 6f 28  |.....windowinfo(|
00000b80  6d 61 69 6e 25 29 0d 04  38 0b 78 25 2d 3d 77 78  |main%)..8.x%-=wx|
00000b90  25 0d 04 42 0b 79 25 2d  3d 77 79 25 0d 04 4c 11  |%..B.y%-=wy%..L.|
00000ba0  f2 61 6c 74 65 72 28 78  25 2c 79 25 29 0d 04 56  |.alter(x%,y%)..V|
00000bb0  16 e7 20 78 25 3e 3d 31  20 80 20 78 25 3c 3d 31  |.. x%>=1 . x%<=1|
00000bc0  32 20 8c 0d 04 60 2b e7  20 79 25 3e 3d 73 64 25  |2 ...`+. y%>=sd%|
00000bd0  28 78 25 29 20 80 20 79  25 3c 3d 73 64 25 28 78  |(x%) . y%<=sd%(x|
00000be0  25 29 2b 6d 6c 25 28 78  25 29 2d 31 20 8c 0d 04  |%)+ml%(x%)-1 ...|
00000bf0  6a 15 64 25 3d 28 79 25  2d 73 64 25 28 78 25 29  |j.d%=(y%-sd%(x%)|
00000c00  29 2b 31 0d 04 74 09 6d  25 3d 78 25 0d 04 7e 10  |)+1..t.m%=x%..~.|
00000c10  f2 65 64 69 74 28 64 25  2c 6d 25 29 0d 04 88 05  |.edit(d%,m%)....|
00000c20  cd 0d 04 92 05 cd 0d 04  9c 05 e1 0d 04 a6 04 0d  |................|
00000c30  04 b0 12 dd 20 f2 65 64  69 74 28 64 25 2c 6d 25  |.... .edit(d%,m%|
00000c40  29 0d 04 ba 15 e7 20 63  64 61 74 65 25 3e 30 20  |)..... cdate%>0 |
00000c50  8c 20 f2 67 65 74 0d 04  c4 0d 63 64 61 74 65 25  |. .get....cdate%|
00000c60  3d 64 25 0d 04 ce 0e 63  6d 6f 6e 74 68 25 3d 6d  |=d%....cmonth%=m|
00000c70  25 0d 04 d8 08 f2 73 65  74 0d 04 e2 0f 21 62 6c  |%.....set....!bl|
00000c80  6b 25 3d 65 64 69 74 25  0d 04 ec 20 c8 99 22 57  |k%=edit%... .."W|
00000c90  69 6d 70 5f 47 65 74 57  69 6e 64 6f 77 49 6e 66  |imp_GetWindowInf|
00000ca0  6f 22 2c 2c 62 6c 6b 25  0d 04 f6 5d 74 69 74 6c  |o",,blk%...]titl|
00000cb0  65 24 3d 64 61 79 24 28  28 73 64 25 28 63 6d 6f  |e$=day$((sd%(cmo|
00000cc0  6e 74 68 25 29 2b 63 64  61 74 65 25 2d 31 29 83  |nth%)+cdate%-1).|
00000cd0  37 29 2b 22 20 22 2b c3  28 63 64 61 74 65 25 29  |7)+" "+.(cdate%)|
00000ce0  2b 22 20 22 2b c0 6d 6f  6e 74 68 24 28 63 6d 6f  |+" "+.month$(cmo|
00000cf0  6e 74 68 25 29 2c 33 29  2b 22 20 22 2b c3 28 79  |nth%),3)+" "+.(y|
00000d00  65 61 72 25 29 0d 05 00  15 24 28 62 6c 6b 25 21  |ear%)....$(blk%!|
00000d10  37 36 29 3d 74 69 74 6c  65 24 0d 05 0a 0e 62 6c  |76)=title$....bl|
00000d20  6b 25 21 32 38 3d 2d 31  0d 05 14 1d c8 99 22 57  |k%!28=-1......"W|
00000d30  69 6d 70 5f 4f 70 65 6e  57 69 6e 64 6f 77 22 2c  |imp_OpenWindow",|
00000d40  2c 62 6c 6b 25 0d 05 1e  30 c8 99 22 57 69 6d 70  |,blk%...0.."Wimp|
00000d50  5f 53 65 74 43 61 72 65  74 50 6f 73 69 74 69 6f  |_SetCaretPositio|
00000d60  6e 22 2c 21 62 6c 6b 25  2c 30 2c 2d 31 2c 2d 31  |n",!blk%,0,-1,-1|
00000d70  2c 2d 31 2c 30 0d 05 28  14 f2 6e 65 77 74 69 74  |,-1,0..(..newtit|
00000d80  6c 65 28 21 62 6c 6b 25  29 0d 05 32 05 e1 0d 05  |le(!blk%)..2....|
00000d90  3c 04 0d 05 46 0a dd 20  f2 73 65 74 0d 05 50 0e  |<...F.. .set..P.|
00000da0  e3 20 69 25 3d 30 20 b8  20 34 0d 05 5a 0f 21 62  |. i%=0 . 4..Z.!b|
00000db0  6c 6b 25 3d 65 64 69 74  25 0d 05 64 0d 62 6c 6b  |lk%=edit%..d.blk|
00000dc0  25 21 34 3d 69 25 0d 05  6e 1f c8 99 22 57 69 6d  |%!4=i%..n..."Wim|
00000dd0  70 5f 47 65 74 49 63 6f  6e 53 74 61 74 65 22 2c  |p_GetIconState",|
00000de0  2c 62 6c 6b 25 0d 05 78  22 6c 69 6e 65 24 3d a4  |,blk%..x"line$=.|
00000df0  6c 69 6e 65 28 63 64 61  74 65 25 2c 63 6d 6f 6e  |line(cdate%,cmon|
00000e00  74 68 25 2c 69 25 29 0d  05 82 19 e7 20 6c 69 6e  |th%,i%)..... lin|
00000e10  65 24 3c 3e 24 28 62 6c  6b 25 21 32 38 29 20 8c  |e$<>$(blk%!28) .|
00000e20  0d 05 8c 14 24 28 62 6c  6b 25 21 32 38 29 3d 6c  |....$(blk%!28)=l|
00000e30  69 6e 65 24 0d 05 96 0c  62 6c 6b 25 21 38 3d 30  |ine$....blk%!8=0|
00000e40  0d 05 a0 0d 62 6c 6b 25  21 31 32 3d 30 0d 05 aa  |....blk%!12=0...|
00000e50  1f c8 99 22 57 69 6d 70  5f 53 65 74 49 63 6f 6e  |..."Wimp_SetIcon|
00000e60  53 74 61 74 65 22 2c 2c  62 6c 6b 25 0d 05 b4 05  |State",,blk%....|
00000e70  cd 0d 05 be 08 ed 20 69  25 0d 05 c8 25 68 69 67  |...... i%...%hig|
00000e80  68 63 6f 6c 25 3d a4 66  6c 61 67 28 63 64 61 74  |hcol%=.flag(cdat|
00000e90  65 25 2c 63 6d 6f 6e 74  68 25 29 80 31 35 0d 05  |e%,cmonth%).15..|
00000ea0  d2 0f e3 20 61 25 3d 30  20 b8 20 31 33 0d 05 dc  |... a%=0 . 13...|
00000eb0  28 f2 73 65 74 66 63 28  65 64 69 74 25 2c 61 25  |(.setfc(edit%,a%|
00000ec0  2b 39 2c 31 2d 28 61 25  3d 68 69 67 68 63 6f 6c  |+9,1-(a%=highcol|
00000ed0  25 29 2a 36 29 0d 05 e6  08 ed 20 61 25 0d 05 f0  |%)*6)..... a%...|
00000ee0  12 74 68 69 73 63 68 61  6e 67 65 64 25 3d a3 0d  |.thischanged%=..|
00000ef0  05 fa 05 e1 0d 06 04 04  0d 06 0e 0a dd 20 f2 67  |............. .g|
00000f00  65 74 0d 06 18 0e e3 20  69 25 3d 30 20 b8 20 34  |et..... i%=0 . 4|
00000f10  0d 06 22 0f 21 62 6c 6b  25 3d 65 64 69 74 25 0d  |..".!blk%=edit%.|
00000f20  06 2c 0d 62 6c 6b 25 21  34 3d 69 25 0d 06 36 1f  |.,.blk%!4=i%..6.|
00000f30  c8 99 22 57 69 6d 70 5f  47 65 74 49 63 6f 6e 53  |.."Wimp_GetIconS|
00000f40  74 61 74 65 22 2c 2c 62  6c 6b 25 0d 06 40 2c e7  |tate",,blk%..@,.|
00000f50  20 a4 6c 69 6e 65 28 63  64 61 74 65 25 2c 63 6d  | .line(cdate%,cm|
00000f60  6f 6e 74 68 25 2c 69 25  29 3c 3e 24 28 62 6c 6b  |onth%,i%)<>$(blk|
00000f70  25 21 32 38 29 20 8c 0d  06 4a 0e 63 68 61 6e 67  |%!28) ...J.chang|
00000f80  65 64 25 3d b9 0d 06 54  12 74 68 69 73 63 68 61  |ed%=...T.thischa|
00000f90  6e 67 65 64 25 3d b9 0d  06 5e 28 f2 73 74 6f 72  |nged%=...^(.stor|
00000fa0  65 28 63 64 61 74 65 25  2c 63 6d 6f 6e 74 68 25  |e(cdate%,cmonth%|
00000fb0  2c 69 25 2c 24 28 62 6c  6b 25 21 32 38 29 29 0d  |,i%,$(blk%!28)).|
00000fc0  06 68 05 cd 0d 06 72 08  ed 20 69 25 0d 06 7c 2c  |.h....r.. i%..|,|
00000fd0  e7 20 74 68 69 73 63 68  61 6e 67 65 64 25 20 8c  |. thischanged% .|
00000fe0  20 f2 75 70 64 61 74 65  28 63 64 61 74 65 25 2c  | .update(cdate%,|
00000ff0  63 6d 6f 6e 74 68 25 29  0d 06 86 12 74 68 69 73  |cmonth%)....this|
00001000  63 68 61 6e 67 65 64 25  3d a3 0d 06 90 05 e1 0d  |changed%=.......|
00001010  06 9a 04 0d 06 a4 14 dd  20 f2 75 70 64 61 74 65  |........ .update|
00001020  28 64 25 2c 6d 25 29 0d  06 ae 0f 77 78 25 3d 30  |(d%,m%)....wx%=0|
00001030  3a 77 79 25 3d 30 0d 06  b8 20 6d 69 6e 79 25 3d  |:wy%=0... miny%=|
00001040  a4 79 28 64 25 2d 31 2b  73 64 25 28 6d 25 29 29  |.y(d%-1+sd%(m%))|
00001050  2d 62 6f 78 68 25 0d 06  c2 4a c8 99 22 57 69 6d  |-boxh%...J.."Wim|
00001060  70 5f 46 6f 72 63 65 52  65 64 72 61 77 22 2c 6d  |p_ForceRedraw",m|
00001070  61 69 6e 25 2c a4 78 28  6d 25 29 2b 32 2c 6d 69  |ain%,.x(m%)+2,mi|
00001080  6e 79 25 2b 34 2c a4 78  28 6d 25 29 2b 62 6f 78  |ny%+4,.x(m%)+box|
00001090  77 25 2d 32 2c 6d 69 6e  79 25 2b 62 6f 78 68 25  |w%-2,miny%+boxh%|
000010a0  0d 06 cc 05 e1 0d 06 d6  04 0d 06 e0 10 dd 20 a4  |.............. .|
000010b0  6c 6f 61 64 28 79 72 25  29 0d 06 ea 0b 6c 6f 61  |load(yr%)....loa|
000010c0  64 25 3d a3 0d 06 f4 32  c8 99 22 4f 53 5f 46 69  |d%=....2.."OS_Fi|
000010d0  6c 65 22 2c 35 2c 64 69  72 24 2b 22 2e 22 2b c3  |le",5,dir$+"."+.|
000010e0  28 79 72 25 29 20 b8 20  65 78 69 73 74 25 2c 2c  |(yr%) . exist%,,|
000010f0  2c 2c 6c 65 6e 25 0d 06  fe 10 e7 20 65 78 69 73  |,,len%..... exis|
00001100  74 25 3d 31 20 8c 0d 07  08 17 e7 20 6c 65 6e 25  |t%=1 ...... len%|
00001110  3c 3e 64 69 61 72 79 6c  65 6e 25 20 8c 0d 07 12  |<>diarylen% ....|
00001120  1f f2 65 72 72 6f 72 28  22 43 61 6e 6e 6f 74 20  |..error("Cannot |
00001130  6c 6f 61 64 20 64 69 61  72 79 22 29 0d 07 1c 05  |load diary")....|
00001140  cc 0d 07 26 2a c8 99 22  4f 53 5f 46 69 6c 65 22  |...&*.."OS_File"|
00001150  2c 32 35 35 2c 64 69 72  24 2b 22 2e 22 2b c3 28  |,255,dir$+"."+.(|
00001160  79 72 25 29 2c 64 69 61  72 79 25 0d 07 30 0b 6c  |yr%),diary%..0.l|
00001170  6f 61 64 25 3d b9 0d 07  3a 05 cd 0d 07 44 05 cc  |oad%=...:....D..|
00001180  0d 07 4e 37 e7 20 a4 63  68 65 63 6b 28 22 44 69  |..N7. .check("Di|
00001190  61 72 79 20 64 6f 65 73  20 6e 6f 74 20 65 78 69  |ary does not exi|
000011a0  73 74 2c 20 63 72 65 61  74 65 20 6e 65 77 20 6f  |st, create new o|
000011b0  6e 65 3f 22 29 20 8c 0d  07 58 14 c8 99 22 48 6f  |ne?") ...X..."Ho|
000011c0  75 72 67 6c 61 73 73 5f  4f 6e 22 0d 07 62 11 f2  |urglass_On"..b..|
000011d0  73 65 74 79 65 61 72 28  79 72 25 29 0d 07 6c 08  |setyear(yr%)..l.|
000011e0  64 25 3d 31 0d 07 76 08  6d 25 3d 31 0d 07 80 0c  |d%=1..v.m%=1....|
000011f0  c8 95 20 6d 25 3c 31 33  0d 07 8a 08 74 25 3d 30  |.. m%<13....t%=0|
00001200  0d 07 94 38 e7 20 28 28  64 25 2b 73 64 25 28 6d  |...8. ((d%+sd%(m|
00001210  25 29 2d 31 29 83 37 29  3d 30 20 84 20 28 28 64  |%)-1).7)=0 . ((d|
00001220  25 2b 73 64 25 28 6d 25  29 2d 31 29 83 37 3d 36  |%+sd%(m%)-1).7=6|
00001230  29 20 8c 20 74 25 3d 31  0d 07 9e 24 e7 20 28 64  |) . t%=1...$. (d|
00001240  25 3d 32 35 20 84 20 64  25 3d 32 36 29 20 80 20  |%=25 . d%=26) . |
00001250  6d 25 3d 31 32 20 8c 20  74 25 3d 32 0d 07 a8 18  |m%=12 . t%=2....|
00001260  e7 20 64 25 3d 31 20 80  20 6d 25 3d 31 20 8c 20  |. d%=1 . m%=1 . |
00001270  74 25 3d 32 0d 07 b2 16  f2 73 65 74 66 6c 61 67  |t%=2.....setflag|
00001280  28 64 25 2c 6d 25 2c 74  25 29 0d 07 bc 0e e3 20  |(d%,m%,t%)..... |
00001290  6c 25 3d 30 20 b8 20 34  0d 07 c6 17 f2 73 74 6f  |l%=0 . 4.....sto|
000012a0  72 65 28 64 25 2c 6d 25  2c 6c 25 2c 22 22 29 0d  |re(d%,m%,l%,"").|
000012b0  07 d0 08 ed 20 6c 25 0d  07 da 09 64 25 2b 3d 31  |.... l%....d%+=1|
000012c0  0d 07 e4 1d e7 20 64 25  3e 6d 6c 25 28 6d 25 29  |..... d%>ml%(m%)|
000012d0  20 8c 20 64 25 3d 31 3a  6d 25 2b 3d 31 0d 07 ee  | . d%=1:m%+=1...|
000012e0  05 ce 0d 07 f8 0e f2 73  61 76 65 28 79 72 25 29  |.......save(yr%)|
000012f0  0d 08 02 15 c8 99 22 48  6f 75 72 67 6c 61 73 73  |......"Hourglass|
00001300  5f 4f 66 66 22 0d 08 0c  0b 6c 6f 61 64 25 3d b9  |_Off"....load%=.|
00001310  0d 08 16 05 cd 0d 08 20  05 cd 0d 08 2a 18 e7 20  |....... ....*.. |
00001320  6c 6f 61 64 25 20 8c 20  63 68 61 6e 67 65 64 25  |load% . changed%|
00001330  3d a3 0d 08 34 0a 3d 6c  6f 61 64 25 0d 08 3e 04  |=...4.=load%..>.|
00001340  0d 08 48 18 dd 20 f2 73  65 74 66 6c 61 67 28 64  |..H.. .setflag(d|
00001350  25 2c 6d 25 2c 66 25 29  0d 08 52 20 64 69 61 72  |%,m%,f%)..R diar|
00001360  79 25 3f 28 28 64 25 2d  31 29 2b 28 6d 25 2d 31  |y%?((d%-1)+(m%-1|
00001370  29 2a 33 31 29 3d 66 25  0d 08 5c 05 e1 0d 08 66  |)*31)=f%..\....f|
00001380  04 0d 08 70 12 dd 20 a4  66 6c 61 67 28 64 25 2c  |...p.. .flag(d%,|
00001390  6d 25 29 0d 08 7a 1e 3d  64 69 61 72 79 25 3f 28  |m%)..z.=diary%?(|
000013a0  28 64 25 2d 31 29 2b 28  6d 25 2d 31 29 2a 33 31  |(d%-1)+(m%-1)*31|
000013b0  29 0d 08 84 04 0d 08 8e  14 dd 20 f2 65 72 72 6f  |)......... .erro|
000013c0  72 28 65 72 72 6f 72 24  29 0d 08 98 15 64 25 3d  |r(error$)....d%=|
000013d0  a4 63 68 65 63 6b 28 65  72 72 6f 72 24 29 0d 08  |.check(error$)..|
000013e0  a2 05 e1 0d 08 ac 04 0d  08 b6 12 dd 20 f2 73 61  |............ .sa|
000013f0  76 65 28 79 65 61 72 25  29 0d 08 c0 08 f2 67 65  |ve(year%).....ge|
00001400  74 0d 08 ca 3f c8 99 22  4f 53 5f 46 69 6c 65 22  |t...?.."OS_File"|
00001410  2c 30 2c 64 69 72 24 2b  22 2e 22 2b c3 28 79 65  |,0,dir$+"."+.(ye|
00001420  61 72 25 29 2c 30 2c 30  2c 64 69 61 72 79 25 2c  |ar%),0,0,diary%,|
00001430  64 69 61 72 79 6c 65 6e  25 2b 64 69 61 72 79 25  |diarylen%+diary%|
00001440  0d 08 d4 0e 63 68 61 6e  67 65 64 25 3d a3 0d 08  |....changed%=...|
00001450  de 05 e1 0d 08 e8 04 0d  08 f2 10 dd 20 f2 73 65  |............ .se|
00001460  74 65 78 74 65 6e 74 0d  08 fc 12 c8 8e 20 63 6f  |textent...... co|
00001470  6c 77 69 64 74 68 25 20  ca 0d 09 06 12 c9 20 30  |lwidth% ...... 0|
00001480  20 3a 20 62 6f 78 77 25  3d 36 34 0d 09 10 13 c9  | : boxw%=64.....|
00001490  20 31 20 3a 20 62 6f 78  77 25 3d 31 32 38 0d 09  | 1 : boxw%=128..|
000014a0  1a 13 c9 20 32 20 3a 20  62 6f 78 77 25 3d 31 37  |... 2 : boxw%=17|
000014b0  36 0d 09 24 13 c9 20 33  20 3a 20 62 6f 78 77 25  |6..$.. 3 : boxw%|
000014c0  3d 32 35 36 0d 09 2e 13  c9 20 34 20 3a 20 62 6f  |=256..... 4 : bo|
000014d0  78 77 25 3d 33 38 34 0d  09 38 05 cb 0d 09 42 12  |xw%=384..8....B.|
000014e0  21 62 6c 6b 25 3d 62 6f  78 77 25 2d 38 34 0d 09  |!blk%=boxw%-84..|
000014f0  4c 19 62 6c 6b 25 21 34  3d 2d 28 62 6f 78 68 25  |L.blk%!4=-(boxh%|
00001500  2a 33 38 2b 31 32 29 0d  09 56 16 62 6c 6b 25 21  |*38+12)..V.blk%!|
00001510  38 3d 31 33 2a 62 6f 78  77 25 2b 38 32 0d 09 60  |8=13*boxw%+82..`|
00001520  11 62 6c 6b 25 21 31 32  3d 62 6f 78 68 25 0d 09  |.blk%!12=boxh%..|
00001530  6a 21 c8 99 22 57 69 6d  70 5f 53 65 74 45 78 74  |j!.."Wimp_SetExt|
00001540  65 6e 74 22 2c 6d 61 69  6e 25 2c 62 6c 6b 25 0d  |ent",main%,blk%.|
00001550  09 74 05 e1 0d 09 7e 04  0d 09 88 13 dd 20 f2 73  |.t....~...... .s|
00001560  65 74 79 65 61 72 28 6e  79 25 29 0d 09 92 22 f2  |etyear(ny%)...".|
00001570  74 69 63 6b 28 79 65 61  72 6d 65 6e 75 25 2c 6e  |tick(yearmenu%,n|
00001580  79 25 2d 74 68 69 73 79  65 61 72 25 29 0d 09 9c  |y%-thisyear%)...|
00001590  12 e7 20 79 65 61 72 25  3c 3e 6e 79 25 20 8c 0d  |.. year%<>ny% ..|
000015a0  09 a6 0d 79 65 61 72 25  3d 6e 79 25 0d 09 b0 0f  |...year%=ny%....|
000015b0  21 62 6c 6b 25 3d 6d 61  69 6e 25 0d 09 ba 20 c8  |!blk%=main%... .|
000015c0  99 22 57 69 6d 70 5f 47  65 74 57 69 6e 64 6f 77  |."Wimp_GetWindow|
000015d0  49 6e 66 6f 22 2c 2c 62  6c 6b 25 0d 09 c4 24 24  |Info",,blk%...$$|
000015e0  28 62 6c 6b 25 21 37 36  29 3d 22 59 65 61 72 20  |(blk%!76)="Year |
000015f0  50 6c 61 6e 20 22 2b c3  28 79 65 61 72 25 29 0d  |Plan "+.(year%).|
00001600  09 ce 2b e7 20 28 79 65  61 72 25 20 83 20 34 29  |..+. (year% . 4)|
00001610  3d 30 20 8c 20 6d 6c 25  28 32 29 3d 32 39 20 8b  |=0 . ml%(2)=29 .|
00001620  20 6d 6c 25 28 32 29 3d  32 38 0d 09 d8 28 73 64  | ml%(2)=28...(sd|
00001630  25 28 31 29 3d 28 28 79  65 61 72 25 2b 28 28 79  |%(1)=((year%+((y|
00001640  65 61 72 25 2d 31 29 20  81 20 34 29 2b 31 29 83  |ear%-1) . 4)+1).|
00001650  37 29 0d 09 e2 0f e3 20  6d 25 3d 32 20 b8 20 31  |7)..... m%=2 . 1|
00001660  32 0d 09 ec 23 73 64 25  28 6d 25 29 3d 28 73 64  |2...#sd%(m%)=(sd|
00001670  25 28 6d 25 2d 31 29 2b  6d 6c 25 28 6d 25 2d 31  |%(m%-1)+ml%(m%-1|
00001680  29 29 83 37 0d 09 f6 08  ed 20 6d 25 0d 0a 00 05  |)).7..... m%....|
00001690  cd 0d 0a 0a 05 e1 0d 0a  14 04 0d 0a 1e 11 dd 20  |............... |
000016a0  f2 64 65 63 6f 64 65 64  72 61 67 0d 0a 28 12 c8  |.decodedrag..(..|
000016b0  8e 20 64 72 61 67 77 69  6e 64 25 20 ca 0d 0a 32  |. dragwind% ...2|
000016c0  0f c9 20 73 61 76 65 66  66 66 31 25 0d 0a 3c 0f  |.. savefff1%..<.|
000016d0  f2 63 72 65 61 74 65 74  65 78 74 0d 0a 46 0f 73  |.createtext..F.s|
000016e0  69 7a 65 25 3d a4 73 69  7a 65 0d 0a 50 12 66 69  |ize%=.size..P.fi|
000016f0  6c 65 74 79 70 65 25 3d  74 66 74 25 0d 0a 5a 1b  |letype%=tft%..Z.|
00001700  66 69 6c 65 6e 61 6d 65  25 3d 66 69 6c 65 6e 61  |filename%=filena|
00001710  6d 65 66 66 66 31 25 0d  0a 64 0f c9 20 73 61 76  |mefff1%..d.. sav|
00001720  65 66 66 66 32 25 0d 0a  6e 0b 73 69 7a 65 25 3d  |efff2%..n.size%=|
00001730  30 0d 0a 78 12 66 69 6c  65 74 79 70 65 25 3d 74  |0..x.filetype%=t|
00001740  66 74 25 0d 0a 82 1b 66  69 6c 65 6e 61 6d 65 25  |ft%....filename%|
00001750  3d 66 69 6c 65 6e 61 6d  65 66 66 66 32 25 0d 0a  |=filenamefff2%..|
00001760  8c 0e c9 20 73 61 76 65  61 66 66 25 0d 0a 96 0b  |... saveaff%....|
00001770  73 69 7a 65 25 3d 30 0d  0a a0 12 66 69 6c 65 74  |size%=0....filet|
00001780  79 70 65 25 3d 64 66 74  25 0d 0a aa 1a 66 69 6c  |ype%=dft%....fil|
00001790  65 6e 61 6d 65 25 3d 66  69 6c 65 6e 61 6d 65 61  |ename%=filenamea|
000017a0  66 66 25 0d 0a b4 05 cb  0d 0a be 1b c8 99 22 57  |ff%..........."W|
000017b0  69 6d 70 5f 43 72 65 61  74 65 4d 65 6e 75 22 2c  |imp_CreateMenu",|
000017c0  2c 2d 31 0d 0a c8 21 c8  99 22 57 69 6d 70 5f 47  |,-1...!.."Wimp_G|
000017d0  65 74 50 6f 69 6e 74 65  72 49 6e 66 6f 22 2c 2c  |etPointerInfo",,|
000017e0  62 6c 6b 25 0d 0a d2 12  62 6c 6b 25 21 33 32 3d  |blk%....blk%!32=|
000017f0  62 6c 6b 25 21 34 0d 0a  dc 11 62 6c 6b 25 21 32  |blk%!4....blk%!2|
00001800  38 3d 21 62 6c 6b 25 0d  0a e6 13 62 6c 6b 25 21  |8=!blk%....blk%!|
00001810  32 34 3d 62 6c 6b 25 21  31 36 0d 0a f0 13 62 6c  |24=blk%!16....bl|
00001820  6b 25 21 32 30 3d 62 6c  6b 25 21 31 32 0d 0a fa  |k%!20=blk%!12...|
00001830  0d 62 6c 6b 25 21 31 36  3d 31 0d 0b 04 0d 62 6c  |.blk%!16=1....bl|
00001840  6b 25 21 31 32 3d 30 0d  0b 0e 11 62 6c 6b 25 21  |k%!12=0....blk%!|
00001850  33 36 3d 73 69 7a 65 25  0d 0b 18 15 62 6c 6b 25  |36=size%....blk%|
00001860  21 34 30 3d 66 69 6c 65  74 79 70 65 25 0d 0b 22  |!40=filetype%.."|
00001870  26 24 28 62 6c 6b 25 2b  34 34 29 3d a4 6c 61 73  |&$(blk%+44)=.las|
00001880  74 62 69 74 28 24 66 69  6c 65 6e 61 6d 65 25 29  |tbit($filename%)|
00001890  2b bd 30 0d 0b 2c 0c 21  62 6c 6b 25 3d 36 30 0d  |+.0..,.!blk%=60.|
000018a0  0b 36 30 c8 99 22 57 69  6d 70 5f 53 65 6e 64 4d  |.60.."Wimp_SendM|
000018b0  65 73 73 61 67 65 22 2c  31 37 2c 62 6c 6b 25 2c  |essage",17,blk%,|
000018c0  62 6c 6b 25 21 32 30 2c  62 6c 6b 25 21 32 34 0d  |blk%!20,blk%!24.|
000018d0  0b 40 0c 74 72 61 6e 73  25 3d 30 0d 0b 4a 05 e1  |.@.trans%=0..J..|
000018e0  0d 0b 54 04 0d 0b 5e 0b  dd 20 a4 73 69 7a 65 0d  |..T...^.. .size.|
000018f0  0b 68 1e 3d 74 65 78 74  73 69 7a 65 25 2b 28 a9  |.h.=textsize%+(.|
00001900  28 74 69 74 6c 65 24 29  2b 31 29 2a 32 0d 0b 72  |(title$)+1)*2..r|
00001910  04 0d 0b 7c 11 dd 20 f2  63 72 65 61 74 65 74 65  |...|.. .createte|
00001920  78 74 0d 0b 86 18 6f 66  66 25 3d 28 a9 28 74 69  |xt....off%=(.(ti|
00001930  74 6c 65 24 29 2b 31 29  2a 32 0d 0b 90 19 24 74  |tle$)+1)*2....$t|
00001940  65 78 74 62 75 66 66 25  3d 74 69 74 6c 65 24 2b  |extbuff%=title$+|
00001950  bd 31 30 0d 0b 9a 30 24  28 74 65 78 74 62 75 66  |.10...0$(textbuf|
00001960  66 25 2b a9 28 74 69 74  6c 65 24 29 2b 31 29 3d  |f%+.(title$)+1)=|
00001970  c4 a9 28 74 69 74 6c 65  24 29 2c 22 7e 22 29 2b  |..(title$),"~")+|
00001980  bd 31 30 0d 0b a4 0e e3  20 69 25 3d 30 20 b8 20  |.10..... i%=0 . |
00001990  34 0d 0b ae 0f 21 62 6c  6b 25 3d 65 64 69 74 25  |4....!blk%=edit%|
000019a0  0d 0b b8 0d 62 6c 6b 25  21 34 3d 69 25 0d 0b c2  |....blk%!4=i%...|
000019b0  1f c8 99 22 57 69 6d 70  5f 47 65 74 49 63 6f 6e  |..."Wimp_GetIcon|
000019c0  53 74 61 74 65 22 2c 2c  62 6c 6b 25 0d 0b cc 41  |State",,blk%...A|
000019d0  24 28 74 65 78 74 62 75  66 66 25 2b 69 25 2a 32  |$(textbuff%+i%*2|
000019e0  31 2b 6f 66 66 25 29 3d  24 28 62 6c 6b 25 21 32  |1+off%)=$(blk%!2|
000019f0  38 29 2b c4 32 30 2d a9  28 24 28 62 6c 6b 25 21  |8)+.20-.($(blk%!|
00001a00  32 38 29 29 2c 22 20 22  29 2b bd 31 30 0d 0b d6  |28))," ")+.10...|
00001a10  08 ed 20 69 25 0d 0b e0  05 e1 0d 0b ea 04 0d 0b  |.. i%...........|
00001a20  f4 15 dd 20 a4 6c 61 73  74 62 69 74 28 66 69 6c  |... .lastbit(fil|
00001a30  65 24 29 0d 0b fe 12 c8  95 20 a7 66 69 6c 65 24  |e$)...... .file$|
00001a40  2c 22 2e 22 29 0d 0c 08  1f 66 69 6c 65 24 3d c1  |,".")....file$=.|
00001a50  66 69 6c 65 24 2c a7 66  69 6c 65 24 2c 22 2e 22  |file$,.file$,"."|
00001a60  29 2b 31 29 0d 0c 12 05  ce 0d 0c 1c 0a 3d 66 69  |)+1).........=fi|
00001a70  6c 65 24 0d 0c 26 04 0d  0c 30 22 dd 20 f2 6b 65  |le$..&...0". .ke|
00001a80  79 28 77 69 6e 64 25 2c  69 63 6f 6e 25 2c 78 70  |y(wind%,icon%,xp|
00001a90  6f 73 25 2c 6b 65 79 25  29 0d 0c 3a 46 e7 20 28  |os%,key%)..:F. (|
00001aa0  77 69 6e 64 25 3d 73 61  76 65 66 66 66 31 25 20  |wind%=savefff1% |
00001ab0  84 20 77 69 6e 64 25 3d  73 61 76 65 66 66 66 32  |. wind%=savefff2|
00001ac0  25 20 84 20 77 69 6e 64  25 3d 73 61 76 65 61 66  |% . wind%=saveaf|
00001ad0  66 25 29 20 80 20 6b 65  79 25 3d 31 33 20 8c 0d  |f%) . key%=13 ..|
00001ae0  0c 44 0e c8 8e 20 77 69  6e 64 25 20 ca 0d 0c 4e  |.D... wind% ...N|
00001af0  2d c9 20 73 61 76 65 66  66 66 31 25 20 3a 20 f2  |-. savefff1% : .|
00001b00  73 61 76 65 74 65 78 74  28 24 66 69 6c 65 6e 61  |savetext($filena|
00001b10  6d 65 66 66 66 31 25 2c  30 29 0d 0c 58 31 c9 20  |mefff1%,0)..X1. |
00001b20  73 61 76 65 66 66 66 32  25 20 3a 20 f2 73 61 76  |savefff2% : .sav|
00001b30  65 6d 6f 6e 74 68 66 66  66 28 24 66 69 6c 65 6e  |emonthfff($filen|
00001b40  61 6d 65 66 66 66 32 25  2c 30 29 0d 0c 62 2f c9  |amefff2%,0)..b/.|
00001b50  20 73 61 76 65 61 66 66  25 20 3a 20 f2 73 61 76  | saveaff% : .sav|
00001b60  65 6d 6f 6e 74 68 61 66  66 28 24 66 69 6c 65 6e  |emonthaff($filen|
00001b70  61 6d 65 61 66 66 25 2c  30 29 0d 0c 6c 05 cb 0d  |ameaff%,0)..l...|
00001b80  0c 76 05 cc 0d 0c 80 13  e7 20 77 69 6e 64 25 3d  |.v....... wind%=|
00001b90  65 64 69 74 25 20 8c 0d  0c 8a 0d c8 8e 20 6b 65  |edit% ....... ke|
00001ba0  79 25 20 ca 0d 0c 94 16  c9 20 26 31 38 46 20 3a  |y% ...... &18F :|
00001bb0  20 f2 6d 6f 76 65 28 2d  31 29 0d 0c 9e 18 c9 20  | .move(-1)..... |
00001bc0  26 31 38 45 2c 31 33 20  3a 20 f2 6d 6f 76 65 28  |&18E,13 : .move(|
00001bd0  31 29 0d 0c a8 05 cb 0d  0c b2 05 cc 0d 0c bc 1c  |1)..............|
00001be0  c8 99 22 57 69 6d 70 5f  50 72 6f 63 65 73 73 4b  |.."Wimp_ProcessK|
00001bf0  65 79 22 2c 6b 65 79 25  0d 0c c6 05 cd 0d 0c d0  |ey",key%........|
00001c00  05 cd 0d 0c da 05 e1 0d  0c e4 04 0d 0c ee 11 dd  |................|
00001c10  20 f2 6d 6f 76 65 28 69  6e 63 25 29 0d 0c f8 25  | .move(inc%)...%|
00001c20  e7 20 69 63 6f 6e 25 2b  69 6e 63 25 3e 3d 30 20  |. icon%+inc%>=0 |
00001c30  80 20 69 63 6f 6e 25 2b  69 6e 63 25 3c 3d 34 20  |. icon%+inc%<=4 |
00001c40  8c 0d 0d 02 0f 69 63 6f  6e 25 2b 3d 69 6e 63 25  |.....icon%+=inc%|
00001c50  0d 0d 0c 37 c8 99 22 57  69 6d 70 5f 53 65 74 43  |...7.."Wimp_SetC|
00001c60  61 72 65 74 50 6f 73 69  74 69 6f 6e 22 2c 77 69  |aretPosition",wi|
00001c70  6e 64 25 2c 69 63 6f 6e  25 2c 78 70 6f 73 25 2c  |nd%,icon%,xpos%,|
00001c80  30 2c 2d 31 2c 2d 31 0d  0d 16 05 cd 0d 0d 20 08  |0,-1,-1....... .|
00001c90  f2 67 65 74 0d 0d 2a 05  e1 0d 0d 34 04 0d 0d 3e  |.get..*....4...>|
00001ca0  1a dd 20 f2 73 61 76 65  74 65 78 74 28 66 69 6c  |.. .savetext(fil|
00001cb0  65 24 2c 6f 6b 25 29 0d  0d 48 0c 73 61 76 65 64  |e$,ok%)..H.saved|
00001cc0  25 3d a3 0d 0d 52 0f e7  20 a4 6e 61 6d 65 6f 6b  |%=...R.. .nameok|
00001cd0  20 8c 0d 0d 5c 0f f2 63  72 65 61 74 65 74 65 78  | ...\..createtex|
00001ce0  74 0d 0d 66 1b c8 99 22  57 69 6d 70 5f 43 72 65  |t..f..."Wimp_Cre|
00001cf0  61 74 65 4d 65 6e 75 22  2c 2c 2d 31 0d 0d 70 39  |ateMenu",,-1..p9|
00001d00  c8 99 22 4f 53 5f 46 69  6c 65 22 2c 31 30 2c 66  |.."OS_File",10,f|
00001d10  69 6c 65 24 2c 74 66 74  25 2c 30 2c 74 65 78 74  |ile$,tft%,0,text|
00001d20  62 75 66 66 25 2c 74 65  78 74 62 75 66 66 25 2b  |buff%,textbuff%+|
00001d30  a4 73 69 7a 65 0d 0d 7a  2a e7 20 a7 66 69 6c 65  |.size..z*. .file|
00001d40  24 2c 22 3c 22 29 3d 30  20 8c 20 24 66 69 6c 65  |$,"<")=0 . $file|
00001d50  6e 61 6d 65 66 66 66 31  25 3d 66 69 6c 65 24 0d  |namefff1%=file$.|
00001d60  0d 84 0c 73 61 76 65 64  25 3d b9 0d 0d 8e 05 cd  |...saved%=......|
00001d70  0d 0d 98 05 e1 0d 0d a2  04 0d 0d ac 1e dd 20 f2  |.............. .|
00001d80  73 61 76 65 6d 6f 6e 74  68 61 66 66 28 66 69 6c  |savemonthaff(fil|
00001d90  65 24 2c 6f 6b 25 29 0d  0d b6 14 c8 99 22 48 6f  |e$,ok%)......"Ho|
00001da0  75 72 67 6c 61 73 73 5f  4f 6e 22 0d 0d c0 12 6f  |urglass_On"....o|
00001db0  78 25 3d 31 32 38 3a 6f  79 25 3d 36 34 0d 0d ca  |x%=128:oy%=64...|
00001dc0  0c 73 61 76 65 64 25 3d  a3 0d 0d d4 0f e7 20 a4  |.saved%=...... .|
00001dd0  6e 61 6d 65 6f 6b 20 8c  0d 0d de 1b c8 99 22 57  |nameok ......."W|
00001de0  69 6d 70 5f 43 72 65 61  74 65 4d 65 6e 75 22 2c  |imp_CreateMenu",|
00001df0  2c 2d 31 0d 0d e8 11 66  69 6c 65 3d ae 28 66 69  |,-1....file=.(fi|
00001e00  6c 65 24 29 0d 0d f2 0e  e7 20 66 69 6c 65 3d 30  |le$)..... file=0|
00001e10  20 8c 0d 0d fc 1e f2 72  65 70 6f 72 74 28 22 43  | ......report("C|
00001e20  61 6e 27 74 20 6f 70 65  6e 20 66 69 6c 65 22 29  |an't open file")|
00001e30  0d 0e 06 05 cc 0d 0e 10  0b f2 68 65 61 64 65 72  |..........header|
00001e40  0d 0e 1a 09 f2 66 6f 6e  74 0d 0e 24 08 79 25 3d  |.....font..$.y%=|
00001e50  35 0d 0e 2e 13 78 25 3d  73 64 25 28 63 6d 6f 6e  |5....x%=sd%(cmon|
00001e60  74 68 25 29 0d 0e 38 0b  78 73 25 3d 32 35 36 0d  |th%)..8.xs%=256.|
00001e70  0e 42 0b 79 73 25 3d 32  30 30 0d 0e 4c 40 f2 74  |.B.ys%=200..L@.t|
00001e80  65 78 74 28 6d 6f 6e 74  68 24 28 63 6d 6f 6e 74  |ext(month$(cmont|
00001e90  68 25 29 2c 33 2e 35 2a  78 73 25 2b 6f 78 25 2c  |h%),3.5*xs%+ox%,|
00001ea0  28 79 25 2b 31 29 2a 79  73 25 2b 39 36 2b 6f 79  |(y%+1)*ys%+96+oy|
00001eb0  25 2c 33 32 2c 33 32 2c  31 29 0d 0e 56 0e e3 20  |%,32,32,1)..V.. |
00001ec0  64 25 3d 30 20 b8 20 36  0d 0e 60 3f 20 20 f2 74  |d%=0 . 6..`?  .t|
00001ed0  65 78 74 28 64 61 79 24  28 64 25 29 2c 28 64 25  |ext(day$(d%),(d%|
00001ee0  2b 2e 35 29 2a 78 73 25  2b 6f 78 25 2c 28 79 25  |+.5)*xs%+ox%,(y%|
00001ef0  2b 31 29 2a 79 73 25 2b  31 36 2b 6f 79 25 2c 33  |+1)*ys%+16+oy%,3|
00001f00  32 2c 31 36 2c 31 29 0d  0e 6a 08 ed 20 64 25 0d  |2,16,1)..j.. d%.|
00001f10  0e 74 19 e3 20 64 25 3d  31 20 b8 20 6d 6c 25 28  |.t.. d%=1 . ml%(|
00001f20  63 6d 6f 6e 74 68 25 29  0d 0e 7e 2a 20 20 f2 71  |cmonth%)..~*  .q|
00001f30  75 61 64 28 78 25 2a 78  73 25 2b 6f 78 25 2c 79  |uad(x%*xs%+ox%,y|
00001f40  25 2a 79 73 25 2b 6f 79  25 2c 78 73 25 2c 79 73  |%*ys%+oy%,xs%,ys|
00001f50  25 29 0d 0e 88 39 20 20  f2 74 65 78 74 28 c3 28  |%)...9  .text(.(|
00001f60  64 25 29 2c 78 25 2a 78  73 25 2b 38 2b 6f 78 25  |d%),x%*xs%+8+ox%|
00001f70  2c 28 79 25 2b 31 29 2a  79 73 25 2d 33 32 2b 6f  |,(y%+1)*ys%-32+o|
00001f80  79 25 2c 31 34 2c 31 34  2c 30 29 0d 0e 92 10 20  |y%,14,14,0).... |
00001f90  20 e3 20 69 25 3d 30 20  b8 20 34 0d 0e 9c 22 20  | . i%=0 . 4..." |
00001fa0  20 20 20 6c 69 6e 65 24  3d a4 6c 69 6e 65 28 64  |   line$=.line(d|
00001fb0  25 2c 63 6d 6f 6e 74 68  25 2c 69 25 29 0d 0e a6  |%,cmonth%,i%)...|
00001fc0  4e 20 20 20 20 e7 20 a9  6c 69 6e 65 24 20 8c 20  |N    . .line$ . |
00001fd0  f2 74 65 78 74 28 6c 69  6e 65 24 2c 78 25 2a 78  |.text(line$,x%*x|
00001fe0  73 25 2b 38 2b 6f 78 25  2c 28 79 25 2b 31 29 2a  |s%+8+ox%,(y%+1)*|
00001ff0  79 73 25 2d 28 69 25 2a  32 38 2b 36 38 29 2b 6f  |ys%-(i%*28+68)+o|
00002000  79 25 2c 31 30 2c 31 30  2c 30 29 0d 0e b0 0a 20  |y%,10,10,0).... |
00002010  20 ed 20 69 25 0d 0e ba  0b 20 20 78 25 2b 3d 31  | . i%....  x%+=1|
00002020  0d 0e c4 19 20 20 e7 20  78 25 3e 36 20 8c 20 78  |....  . x%>6 . x|
00002030  25 3d 30 3a 79 25 2d 3d  31 0d 0e ce 08 ed 20 64  |%=0:y%-=1..... d|
00002040  25 0d 0e d8 09 f2 74 61  69 6c 0d 0e e2 29 e7 20  |%.....tail...). |
00002050  a7 66 69 6c 65 24 2c 22  3c 22 29 3d 30 20 8c 20  |.file$,"<")=0 . |
00002060  24 66 69 6c 65 6e 61 6d  65 61 66 66 25 3d 66 69  |$filenameaff%=fi|
00002070  6c 65 24 0d 0e ec 11 a2  23 66 69 6c 65 3d 8f 23  |le$.....#file=.#|
00002080  66 69 6c 65 0d 0e f6 10  73 69 7a 65 25 3d a2 23  |file....size%=.#|
00002090  66 69 6c 65 0d 0f 00 0a  d9 23 66 69 6c 65 0d 0f  |file.....#file..|
000020a0  0a 1c f2 73 65 74 66 69  6c 65 74 79 70 65 28 66  |...setfiletype(f|
000020b0  69 6c 65 24 2c 64 66 74  25 29 0d 0f 14 0c 73 61  |ile$,dft%)....sa|
000020c0  76 65 64 25 3d b9 0d 0f  1e 05 cd 0d 0f 28 05 cd  |ved%=........(..|
000020d0  0d 0f 32 15 c8 99 22 48  6f 75 72 67 6c 61 73 73  |..2..."Hourglass|
000020e0  5f 4f 66 66 22 0d 0f 3c  05 e1 0d 0f 46 04 0d 0f  |_Off"..<....F...|
000020f0  50 0b dd 20 f2 66 6f 6e  74 0d 0f 5a 11 73 74 61  |P.. .font..Z.sta|
00002100  72 74 25 3d 8f 23 66 69  6c 65 0d 0f 64 09 f2 77  |rt%=.#file..d..w|
00002110  28 30 29 0d 0f 6e 09 f2  77 28 30 29 0d 0f 78 0c  |(0)..n..w(0)..x.|
00002120  d5 23 66 69 6c 65 2c 31  0d 0f 82 1b 66 6f 6e 74  |.#file,1....font|
00002130  24 3d 22 48 6f 6d 65 72  74 6f 6e 2e 4d 65 64 69  |$="Homerton.Medi|
00002140  75 6d 22 0d 0f 8c 0f f2  73 74 30 28 66 6f 6e 74  |um".....st0(font|
00002150  24 29 0d 0f 96 26 f2 73  65 74 77 6f 72 64 28 73  |$)...&.setword(s|
00002160  74 61 72 74 25 2b 34 2c  28 8f 23 66 69 6c 65 29  |tart%+4,(.#file)|
00002170  2d 73 74 61 72 74 25 29  0d 0f a0 05 e1 0d 0f aa  |-start%)........|
00002180  04 0d 0f b4 28 dd 20 f2  74 65 78 74 28 74 65 78  |....(. .text(tex|
00002190  74 24 2c 78 30 25 2c 79  30 25 2c 73 78 25 2c 73  |t$,x0%,y0%,sx%,s|
000021a0  79 25 2c 74 79 70 65 25  29 0d 0f be 32 c8 99 22  |y%,type%)...2.."|
000021b0  46 6f 6e 74 5f 46 69 6e  64 46 6f 6e 74 22 2c 2c  |Font_FindFont",,|
000021c0  66 6f 6e 74 24 2c 73 78  25 2a 31 36 2c 73 79 25  |font$,sx%*16,sy%|
000021d0  2a 31 36 20 b8 20 68 61  6e 64 25 0d 0f c8 31 c8  |*16 . hand%...1.|
000021e0  99 22 46 6f 6e 74 5f 53  74 72 69 6e 67 42 42 6f  |."Font_StringBBo|
000021f0  78 22 2c 2c 74 65 78 74  24 20 b8 20 2c 6c 78 25  |x",,text$ . ,lx%|
00002200  2c 6c 79 25 2c 6d 78 25  2c 6d 79 25 0d 0f d2 34  |,ly%,mx%,my%...4|
00002210  c8 99 22 46 6f 6e 74 5f  43 6f 6e 76 65 72 74 74  |.."Font_Convertt|
00002220  6f 4f 53 22 2c 2c 6c 78  25 2a 32 35 36 2c 6c 79  |oOS",,lx%*256,ly|
00002230  25 2a 32 35 36 20 b8 20  2c 6c 78 25 2c 6c 79 25  |%*256 . ,lx%,ly%|
00002240  0d 0f dc 34 c8 99 22 46  6f 6e 74 5f 43 6f 6e 76  |...4.."Font_Conv|
00002250  65 72 74 74 6f 4f 53 22  2c 2c 6d 78 25 2a 32 35  |erttoOS",,mx%*25|
00002260  36 2c 6d 79 25 2a 32 35  36 20 b8 20 2c 6d 78 25  |6,my%*256 . ,mx%|
00002270  2c 6d 79 25 0d 0f e6 0f  78 30 25 3d 78 30 25 2a  |,my%....x0%=x0%*|
00002280  32 35 36 0d 0f f0 0f 79  30 25 3d 79 30 25 2a 32  |256....y0%=y0%*2|
00002290  35 36 0d 0f fa 20 e7 20  74 79 70 65 25 3d 31 20  |56... . type%=1 |
000022a0  8c 20 78 30 25 2d 3d 28  6d 78 25 2d 6c 78 25 29  |. x0%-=(mx%-lx%)|
000022b0  2f 32 0d 10 04 11 73 74  61 72 74 25 3d 8f 23 66  |/2....start%=.#f|
000022c0  69 6c 65 0d 10 0e 09 f2  77 28 31 29 0d 10 18 09  |ile.....w(1)....|
000022d0  f2 77 28 30 29 0d 10 22  2f f2 73 65 74 62 6f 75  |.w(0).."/.setbou|
000022e0  6e 64 73 28 78 30 25 2b  6c 78 25 2c 79 30 25 2b  |nds(x0%+lx%,y0%+|
000022f0  6c 79 25 2c 78 30 25 2b  6d 78 25 2c 79 30 25 2b  |ly%,x0%+mx%,y0%+|
00002300  6d 79 25 29 0d 10 2c 09  f2 77 28 30 29 0d 10 36  |my%)..,..w(0)..6|
00002310  11 f2 77 28 26 46 46 46  46 46 46 30 30 29 0d 10  |..w(&FFFFFF00)..|
00002320  40 09 f2 77 28 31 29 0d  10 4a 0f f2 77 28 73 78  |@..w(1)..J..w(sx|
00002330  25 2a 36 34 30 29 0d 10  54 0f f2 77 28 73 79 25  |%*640)..T..w(sy%|
00002340  2a 36 34 30 29 0d 10 5e  0b f2 77 28 78 30 25 29  |*640)..^..w(x0%)|
00002350  0d 10 68 0b f2 77 28 79  30 25 29 0d 10 72 0f f2  |..h..w(y0%)..r..|
00002360  73 74 30 28 74 65 78 74  24 29 0d 10 7c 26 f2 73  |st0(text$)..|&.s|
00002370  65 74 77 6f 72 64 28 73  74 61 72 74 25 2b 34 2c  |etword(start%+4,|
00002380  28 8f 23 66 69 6c 65 29  2d 73 74 61 72 74 25 29  |(.#file)-start%)|
00002390  0d 10 86 05 e1 0d 10 90  04 0d 10 9a 1c dd 20 f2  |.............. .|
000023a0  71 75 61 64 28 78 30 25  2c 79 30 25 2c 78 31 25  |quad(x0%,y0%,x1%|
000023b0  2c 79 31 25 29 0d 10 a4  0f 78 30 25 3d 78 30 25  |,y1%)....x0%=x0%|
000023c0  2a 32 35 36 0d 10 ae 0f  78 31 25 3d 78 31 25 2a  |*256....x1%=x1%*|
000023d0  32 35 36 0d 10 b8 0f 79  30 25 3d 79 30 25 2a 32  |256....y0%=y0%*2|
000023e0  35 36 0d 10 c2 0f 79 31  25 3d 79 31 25 2a 32 35  |56....y1%=y1%*25|
000023f0  36 0d 10 cc 11 73 74 61  72 74 25 3d 8f 23 66 69  |6....start%=.#fi|
00002400  6c 65 0d 10 d6 09 f2 77  28 32 29 0d 10 e0 09 f2  |le.....w(2).....|
00002410  77 28 30 29 0d 10 ea 27  f2 73 65 74 62 6f 75 6e  |w(0)...'.setboun|
00002420  64 73 28 78 30 25 2c 79  30 25 2c 78 30 25 2b 78  |ds(x0%,y0%,x0%+x|
00002430  31 25 2c 79 30 25 2b 79  31 25 29 0d 10 f4 15 f2  |1%,y0%+y1%).....|
00002440  77 28 2d 31 29 3a f4 20  66 69 6c 6c 20 63 6f 6c  |w(-1):. fill col|
00002450  0d 10 fe 15 f2 77 28 30  29 20 3a f4 20 6c 69 6e  |.....w(0) :. lin|
00002460  65 20 63 6f 6c 0d 11 08  09 f2 77 28 30 29 0d 11  |e col.....w(0)..|
00002470  12 11 f2 77 28 26 32 30  31 30 30 30 34 30 29 0d  |...w(&20100040).|
00002480  11 1c 09 f2 77 28 32 29  0d 11 26 14 f2 70 6c 6f  |....w(2)..&..plo|
00002490  74 28 78 30 25 2c 79 30  25 2c 38 29 0d 11 30 18  |t(x0%,y0%,8)..0.|
000024a0  f2 70 6c 6f 74 28 78 30  25 2b 78 31 25 2c 79 30  |.plot(x0%+x1%,y0|
000024b0  25 2c 38 29 0d 11 3a 1c  f2 70 6c 6f 74 28 78 30  |%,8)..:..plot(x0|
000024c0  25 2b 78 31 25 2c 79 30  25 2b 79 31 25 2c 38 29  |%+x1%,y0%+y1%,8)|
000024d0  0d 11 44 18 f2 70 6c 6f  74 28 78 30 25 2c 79 30  |..D..plot(x0%,y0|
000024e0  25 2b 79 31 25 2c 38 29  0d 11 4e 14 f2 70 6c 6f  |%+y1%,8)..N..plo|
000024f0  74 28 78 30 25 2c 79 30  25 2c 35 29 0d 11 58 09  |t(x0%,y0%,5)..X.|
00002500  f2 77 28 30 29 0d 11 62  26 f2 73 65 74 77 6f 72  |.w(0)..b&.setwor|
00002510  64 28 73 74 61 72 74 25  2b 34 2c 28 8f 23 66 69  |d(start%+4,(.#fi|
00002520  6c 65 29 2d 73 74 61 72  74 25 29 0d 11 6c 05 e1  |le)-start%)..l..|
00002530  0d 11 76 04 0d 11 80 11  dd 20 f2 73 74 30 28 74  |..v...... .st0(t|
00002540  65 78 74 24 29 0d 11 8a  11 d5 23 66 69 6c 65 2c  |ext$).....#file,|
00002550  74 65 78 74 24 3b 0d 11  94 0c d5 23 66 69 6c 65  |text$;.....#file|
00002560  2c 30 0d 11 9e 15 c8 95  20 28 28 8f 23 66 69 6c  |,0...... ((.#fil|
00002570  65 29 83 34 29 3e 30 0d  11 a8 0c d5 23 66 69 6c  |e).4)>0.....#fil|
00002580  65 2c 30 0d 11 b2 05 ce  0d 11 bc 05 e1 0d 11 c6  |e,0.............|
00002590  04 0d 11 d0 15 dd 20 f2  73 65 74 77 6f 72 64 28  |...... .setword(|
000025a0  70 25 2c 77 25 29 0d 11  da 10 74 65 6d 70 25 3d  |p%,w%)....temp%=|
000025b0  8f 23 66 69 6c 65 0d 11  e4 0d cf 23 66 69 6c 65  |.#file.....#file|
000025c0  3d 70 25 0d 11 ee 0a f2  77 28 77 25 29 0d 11 f8  |=p%.....w(w%)...|
000025d0  10 cf 23 66 69 6c 65 3d  74 65 6d 70 25 0d 12 02  |..#file=temp%...|
000025e0  05 e1 0d 12 0c 04 0d 12  16 15 dd 20 f2 70 6c 6f  |........... .plo|
000025f0  74 28 78 25 2c 79 25 2c  74 25 29 0d 12 20 0a f2  |t(x%,y%,t%).. ..|
00002600  77 28 78 25 29 0d 12 2a  0a f2 77 28 79 25 29 0d  |w(x%)..*..w(y%).|
00002610  12 34 0a f2 77 28 74 25  29 0d 12 3e 05 e1 0d 12  |.4..w(t%)..>....|
00002620  48 04 0d 12 52 0d dd 20  f2 68 65 61 64 65 72 0d  |H...R.. .header.|
00002630  12 5c 12 d5 23 66 69 6c  65 2c 22 44 72 61 77 22  |.\..#file,"Draw"|
00002640  3b 0d 12 66 0b f2 77 28  32 30 31 29 0d 12 70 09  |;..f..w(201)..p.|
00002650  f2 77 28 30 29 0d 12 7a  1a d5 23 66 69 6c 65 2c  |.w(0)..z..#file,|
00002660  22 41 72 63 44 72 61 77  20 20 20 20 20 22 3b 0d  |"ArcDraw     ";.|
00002670  12 84 0f 6d 69 6e 78 25  3d 31 3c 3c 33 30 0d 12  |...minx%=1<<30..|
00002680  8e 0f 6d 69 6e 79 25 3d  31 3c 3c 33 30 0d 12 98  |..miny%=1<<30...|
00002690  0f 6d 61 78 78 25 3d 31  3c 3c 33 31 0d 12 a2 0f  |.maxx%=1<<31....|
000026a0  6d 61 78 79 25 3d 31 3c  3c 33 31 0d 12 ac 15 62  |maxy%=1<<31....b|
000026b0  6f 75 6e 64 73 70 74 72  25 3d 8f 23 66 69 6c 65  |oundsptr%=.#file|
000026c0  0d 12 b6 09 f2 77 28 30  29 0d 12 c0 09 f2 77 28  |.....w(0).....w(|
000026d0  30 29 0d 12 ca 09 f2 77  28 30 29 0d 12 d4 09 f2  |0).....w(0).....|
000026e0  77 28 30 29 0d 12 de 05  e1 0d 12 e8 04 0d 12 f2  |w(0)............|
000026f0  0b dd 20 f2 74 61 69 6c  0d 12 fc 10 74 65 6d 70  |.. .tail....temp|
00002700  25 3d 8f 23 66 69 6c 65  0d 13 06 15 cf 23 66 69  |%=.#file.....#fi|
00002710  6c 65 3d 62 6f 75 6e 64  73 70 74 72 25 0d 13 10  |le=boundsptr%...|
00002720  0d f2 77 28 6d 69 6e 78  25 29 0d 13 1a 0d f2 77  |..w(minx%).....w|
00002730  28 6d 69 6e 79 25 29 0d  13 24 0d f2 77 28 6d 61  |(miny%)..$..w(ma|
00002740  78 78 25 29 0d 13 2e 0d  f2 77 28 6d 61 78 79 25  |xx%).....w(maxy%|
00002750  29 0d 13 38 10 cf 23 66  69 6c 65 3d 74 65 6d 70  |)..8..#file=temp|
00002760  25 0d 13 42 05 e1 0d 13  4c 04 0d 13 56 21 dd 20  |%..B....L...V!. |
00002770  f2 73 65 74 62 6f 75 6e  64 73 28 78 30 25 2c 79  |.setbounds(x0%,y|
00002780  30 25 2c 78 31 25 2c 79  31 25 29 0d 13 60 0b f2  |0%,x1%,y1%)..`..|
00002790  77 28 78 30 25 29 0d 13  6a 0b f2 77 28 79 30 25  |w(x0%)..j..w(y0%|
000027a0  29 0d 13 74 0b f2 77 28  78 31 25 29 0d 13 7e 0b  |)..t..w(x1%)..~.|
000027b0  f2 77 28 79 31 25 29 0d  13 88 1b e7 20 78 30 25  |.w(y1%)..... x0%|
000027c0  3c 6d 69 6e 78 25 20 8c  20 6d 69 6e 78 25 3d 78  |<minx% . minx%=x|
000027d0  30 25 0d 13 92 1b e7 20  79 30 25 3c 6d 69 6e 79  |0%..... y0%<miny|
000027e0  25 20 8c 20 6d 69 6e 79  25 3d 79 30 25 0d 13 9c  |% . miny%=y0%...|
000027f0  1b e7 20 78 31 25 3e 6d  61 78 78 25 20 8c 20 6d  |.. x1%>maxx% . m|
00002800  61 78 78 25 3d 78 31 25  0d 13 a6 1b e7 20 79 31  |axx%=x1%..... y1|
00002810  25 3e 6d 61 78 79 25 20  8c 20 6d 61 78 79 25 3d  |%>maxy% . maxy%=|
00002820  79 31 25 0d 13 b0 05 e1  0d 13 ba 04 0d 13 c4 0f  |y1%.............|
00002830  dd 20 f2 77 28 21 62 6c  6b 25 29 0d 13 ce 0e e3  |. .w(!blk%).....|
00002840  20 61 25 3d 30 20 b8 20  33 0d 13 d8 14 20 20 d5  | a%=0 . 3....  .|
00002850  23 66 69 6c 65 2c 62 6c  6b 25 3f 61 25 0d 13 e2  |#file,blk%?a%...|
00002860  08 ed 20 61 25 0d 13 ec  05 e1 0d 13 f6 04 0d 14  |.. a%...........|
00002870  00 1e dd 20 f2 73 61 76  65 6d 6f 6e 74 68 66 66  |... .savemonthff|
00002880  66 28 66 69 6c 65 24 2c  6f 6b 25 29 0d 14 0a 0c  |f(file$,ok%)....|
00002890  73 61 76 65 64 25 3d a3  0d 14 14 0f e7 20 a4 6e  |saved%=...... .n|
000028a0  61 6d 65 6f 6b 20 8c 0d  14 1e 1b c8 99 22 57 69  |ameok ......."Wi|
000028b0  6d 70 5f 43 72 65 61 74  65 4d 65 6e 75 22 2c 2c  |mp_CreateMenu",,|
000028c0  2d 31 0d 14 28 11 66 69  6c 65 3d ae 28 66 69 6c  |-1..(.file=.(fil|
000028d0  65 24 29 0d 14 32 0e e7  20 66 69 6c 65 3d 30 20  |e$)..2.. file=0 |
000028e0  8c 0d 14 3c 25 f2 72 65  70 6f 72 74 28 22 43 61  |...<%.report("Ca|
000028f0  6e 6e 6f 74 20 63 72 65  61 74 65 20 74 65 78 74  |nnot create text|
00002900  66 69 6c 65 22 29 0d 14  46 05 cc 0d 14 50 29 d5  |file")..F....P).|
00002910  23 66 69 6c 65 2c c4 28  32 37 2d a9 6d 6f 6e 74  |#file,.(27-.mont|
00002920  68 24 28 63 6d 6f 6e 74  68 25 29 29 2f 32 2c 22  |h$(cmonth%))/2,"|
00002930  20 22 29 3b 0d 14 5a 1a  d5 23 66 69 6c 65 2c 6d  | ");..Z..#file,m|
00002940  6f 6e 74 68 24 28 63 6d  6f 6e 74 68 25 29 0d 14  |onth$(cmonth%)..|
00002950  64 0d d5 23 66 69 6c 65  2c 31 30 0d 14 6e 19 e3  |d..#file,10..n..|
00002960  20 64 25 3d 31 20 b8 20  6d 6c 25 28 63 6d 6f 6e  | d%=1 . ml%(cmon|
00002970  74 68 25 29 0d 14 78 27  d5 23 66 69 6c 65 2c 64  |th%)..x'.#file,d|
00002980  61 79 24 28 28 64 25 2b  73 64 25 28 63 6d 6f 6e  |ay$((d%+sd%(cmon|
00002990  74 68 25 29 2d 31 29 83  37 29 3b 0d 14 82 17 e7  |th%)-1).7);.....|
000029a0  20 64 25 3c 31 30 20 8c  20 d5 23 66 69 6c 65 2c  | d%<10 . .#file,|
000029b0  33 32 0d 14 8c 0d d5 23  66 69 6c 65 2c 33 32 0d  |32.....#file,32.|
000029c0  14 96 11 d5 23 66 69 6c  65 2c c3 28 64 25 29 3b  |....#file,.(d%);|
000029d0  0d 14 a0 0d d5 23 66 69  6c 65 2c 33 32 0d 14 aa  |.....#file,32...|
000029e0  09 73 24 3d 22 22 0d 14  b4 08 63 25 3d a3 0d 14  |.s$=""....c%=...|
000029f0  be 0e e3 20 61 25 3d 30  20 b8 20 34 0d 14 c8 1b  |... a%=0 . 4....|
00002a00  6c 24 3d a4 6c 69 6e 65  28 64 25 2c 63 6d 6f 6e  |l$=.line(d%,cmon|
00002a10  74 68 25 2c 61 25 29 0d  14 d2 0b e7 20 a9 6c 24  |th%,a%)..... .l$|
00002a20  20 8c 0d 14 dc 13 e7 20  63 25 20 8c 20 73 24 2b  | ...... c% . s$+|
00002a30  3d 22 2c 20 22 0d 14 e6  0a 73 24 2b 3d 6c 24 0d  |=", "....s$+=l$.|
00002a40  14 f0 08 63 25 3d b9 0d  14 fa 05 cd 0d 15 04 08  |...c%=..........|
00002a50  ed 20 61 25 0d 15 0e 0d  d5 23 66 69 6c 65 2c 73  |. a%.....#file,s|
00002a60  24 0d 15 18 08 ed 20 64  25 0d 15 22 0a d9 23 66  |$..... d%.."..#f|
00002a70  69 6c 65 0d 15 2c 1c f2  73 65 74 66 69 6c 65 74  |ile..,..setfilet|
00002a80  79 70 65 28 66 69 6c 65  24 2c 74 66 74 25 29 0d  |ype(file$,tft%).|
00002a90  15 36 2a e7 20 a7 66 69  6c 65 24 2c 22 3c 22 29  |.6*. .file$,"<")|
00002aa0  3d 30 20 8c 20 24 66 69  6c 65 6e 61 6d 65 66 66  |=0 . $filenameff|
00002ab0  66 32 25 3d 66 69 6c 65  24 0d 15 40 0c 73 61 76  |f2%=file$..@.sav|
00002ac0  65 64 25 3d b9 0d 15 4a  05 cd 0d 15 54 05 cd 0d  |ed%=...J....T...|
00002ad0  15 5e 05 e1 0d 15 68 04  0d 15 72 0d dd 20 a4 6e  |.^....h...r.. .n|
00002ae0  61 6d 65 6f 6b 0d 15 7c  0d 72 65 73 75 6c 74 25  |ameok..|.result%|
00002af0  3d b9 0d 15 86 28 e7 20  a7 66 69 6c 65 24 2c 22  |=....(. .file$,"|
00002b00  3a 22 29 2b a7 66 69 6c  65 24 2c 22 2e 22 29 3d  |:")+.file$,".")=|
00002b10  30 20 80 20 ac 6f 6b 25  20 8c 0d 15 90 3e f2 72  |0 . .ok% ....>.r|
00002b20  65 70 6f 72 74 28 22 54  6f 20 73 61 76 65 2c 20  |eport("To save, |
00002b30  64 72 61 67 20 69 63 6f  6e 20 74 6f 20 61 20 64  |drag icon to a d|
00002b40  69 72 65 63 74 6f 72 79  20 76 69 65 77 65 72 20  |irectory viewer |
00002b50  22 2b 66 69 6c 65 24 29  0d 15 9a 0d 72 65 73 75  |"+file$)....resu|
00002b60  6c 74 25 3d a3 0d 15 a4  05 cd 0d 15 ae 0c 3d 72  |lt%=..........=r|
00002b70  65 73 75 6c 74 25 0d 15  b8 04 0d 15 c2 0d dd 20  |esult%......... |
00002b80  f2 72 65 64 72 61 77 0d  15 cc 16 f2 77 69 6e 64  |.redraw.....wind|
00002b90  6f 77 69 6e 66 6f 28 6d  61 69 6e 25 29 0d 15 d6  |owinfo(main%)...|
00002ba0  27 c8 99 22 57 69 6d 70  5f 52 65 64 72 61 77 57  |'.."Wimp_RedrawW|
00002bb0  69 6e 64 6f 77 22 2c 2c  62 6c 6b 25 20 b8 20 6d  |indow",,blk% . m|
00002bc0  6f 72 65 25 0d 15 e0 0c  c8 95 20 6d 6f 72 65 25  |ore%...... more%|
00002bd0  0d 15 ea 13 e7 20 21 62  6c 6b 25 3d 6d 61 69 6e  |..... !blk%=main|
00002be0  25 20 8c 0d 15 f4 15 6d  69 6e 78 25 3d 62 6c 6b  |% .....minx%=blk|
00002bf0  25 21 32 38 2d 77 78 25  0d 15 fe 15 6d 69 6e 79  |%!28-wx%....miny|
00002c00  25 3d 62 6c 6b 25 21 34  30 2d 77 79 25 0d 16 08  |%=blk%!40-wy%...|
00002c10  1f 6d 61 78 78 25 3d 28  62 6c 6b 25 21 33 36 2d  |.maxx%=(blk%!36-|
00002c20  77 78 25 29 2b 62 6f 78  77 25 2d 31 0d 16 12 21  |wx%)+boxw%-1...!|
00002c30  6d 61 78 79 25 3d 28 62  6c 6b 25 21 33 32 2d 77  |maxy%=(blk%!32-w|
00002c40  79 25 29 2d 28 62 6f 78  68 25 2b 31 29 0d 16 1c  |y%)-(boxh%+1)...|
00002c50  0e 74 6f 70 25 3d 6d 61  78 79 25 0d 16 26 17 f2  |.top%=maxy%..&..|
00002c60  61 6c 74 65 72 28 6d 69  6e 78 25 2c 6d 69 6e 79  |alter(minx%,miny|
00002c70  25 29 0d 16 30 17 f2 61  6c 74 65 72 28 6d 61 78  |%)..0..alter(max|
00002c80  78 25 2c 6d 61 78 79 25  29 0d 16 3a 18 c8 99 22  |x%,maxy%)..:..."|
00002c90  57 69 6d 70 5f 53 65 74  43 6f 6c 6f 75 72 22 2c  |Wimp_SetColour",|
00002ca0  37 0d 16 44 16 e3 20 78  25 3d 6d 69 6e 78 25 20  |7..D.. x%=minx% |
00002cb0  b8 20 6d 61 78 78 25 0d  16 4e 2c e7 20 28 74 6f  |. maxx%..N,. (to|
00002cc0  70 25 3c 30 20 84 20 6d  61 78 79 25 3e 33 37 29  |p%<0 . maxy%>37)|
00002cd0  20 80 20 78 25 3e 3d 31  20 80 20 78 25 3c 3d 31  | . x%>=1 . x%<=1|
00002ce0  32 20 8c 0d 16 58 2b e7  20 63 6f 6c 77 69 64 74  |2 ...X+. colwidt|
00002cf0  68 25 3c 32 20 8c 20 63  25 3d 33 20 8b 20 63 25  |h%<2 . c%=3 . c%|
00002d00  3d a9 28 6d 6f 6e 74 68  24 28 78 25 29 29 0d 16  |=.(month$(x%))..|
00002d10  62 3a ec 20 a4 78 28 78  25 29 2b 28 62 6f 78 77  |b:. .x(x%)+(boxw|
00002d20  25 2d 63 25 2a 31 36 29  2f 32 2c a4 79 28 2d 31  |%-c%*16)/2,.y(-1|
00002d30  2d 28 6d 61 78 79 25 3e  33 37 29 2a 33 38 29 2d  |-(maxy%>37)*38)-|
00002d40  74 65 78 74 6f 66 66 25  0d 16 6c 14 f1 c0 6d 6f  |textoff%..l...mo|
00002d50  6e 74 68 24 28 78 25 29  2c 63 25 29 0d 16 76 05  |nth$(x%),c%)..v.|
00002d60  cd 0d 16 80 16 e3 20 79  25 3d 6d 69 6e 79 25 20  |...... y%=miny% |
00002d70  b8 20 6d 61 78 79 25 0d  16 8a 16 e7 20 78 25 3e  |. maxy%..... x%>|
00002d80  3d 31 20 80 20 78 25 3c  3d 31 32 20 8c 0d 16 94  |=1 . x%<=12 ....|
00002d90  2b e7 20 79 25 3e 3d 73  64 25 28 78 25 29 20 80  |+. y%>=sd%(x%) .|
00002da0  20 79 25 3c 3d 73 64 25  28 78 25 29 2b 6d 6c 25  | y%<=sd%(x%)+ml%|
00002db0  28 78 25 29 2d 31 20 8c  0d 16 9e 15 64 25 3d 28  |(x%)-1 .....d%=(|
00002dc0  79 25 2d 73 64 25 28 78  25 29 29 2b 31 0d 16 a8  |y%-sd%(x%))+1...|
00002dd0  09 6d 25 3d 78 25 0d 16  b2 16 66 6c 61 67 25 3d  |.m%=x%....flag%=|
00002de0  a4 66 6c 61 67 28 64 25  2c 6d 25 29 0d 16 bc 16  |.flag(d%,m%)....|
00002df0  63 6f 6c 25 3d 64 63 25  28 66 6c 61 67 25 80 31  |col%=dc%(flag%.1|
00002e00  35 29 0d 16 c6 0e e7 20  63 6f 6c 25 3e 30 20 8c  |5)..... col%>0 .|
00002e10  0d 16 d0 1b c8 99 22 57  69 6d 70 5f 53 65 74 43  |......"Wimp_SetC|
00002e20  6f 6c 6f 75 72 22 2c 63  6f 6c 25 0d 16 da 26 c8  |olour",col%...&.|
00002e30  93 20 c8 90 20 a4 78 28  78 25 29 2c a4 79 28 79  |. .. .x(x%),.y(y|
00002e40  25 29 2c 62 6f 78 77 25  2d 32 2c 2d 62 6f 78 68  |%),boxw%-2,-boxh|
00002e50  25 0d 16 e4 24 e7 20 63  6f 6c 25 3c 3e 37 20 8c  |%...$. col%<>7 .|
00002e60  20 c8 99 22 57 69 6d 70  5f 53 65 74 43 6f 6c 6f  | .."Wimp_SetColo|
00002e70  75 72 22 2c 37 0d 16 ee  05 cd 0d 16 f8 36 e7 20  |ur",7........6. |
00002e80  64 25 3d 74 68 69 73 64  61 74 65 25 20 80 20 6d  |d%=thisdate% . m|
00002e90  25 3d 74 68 69 73 6d 6f  6e 74 68 25 20 80 20 79  |%=thismonth% . y|
00002ea0  65 61 72 25 3d 74 68 69  73 79 65 61 72 25 20 8c  |ear%=thisyear% .|
00002eb0  0d 17 02 19 c8 99 22 57  69 6d 70 5f 53 65 74 43  |......"Wimp_SetC|
00002ec0  6f 6c 6f 75 72 22 2c 31  31 0d 17 0c 28 c8 93 20  |olour",11...(.. |
00002ed0  a4 78 28 78 25 29 2b 32  2c a4 79 28 79 25 29 2d  |.x(x%)+2,.y(y%)-|
00002ee0  34 2c 62 6f 78 77 25 2d  36 2c 38 2d 62 6f 78 68  |4,boxw%-6,8-boxh|
00002ef0  25 0d 17 16 18 c8 99 22  57 69 6d 70 5f 53 65 74  |%......"Wimp_Set|
00002f00  43 6f 6c 6f 75 72 22 2c  37 0d 17 20 05 cd 0d 17  |Colour",7.. ....|
00002f10  2a 23 c8 93 20 a4 78 28  78 25 29 2c a4 79 28 79  |*#.. .x(x%),.y(y|
00002f20  25 29 2c 62 6f 78 77 25  2d 32 2c 2d 62 6f 78 68  |%),boxw%-2,-boxh|
00002f30  25 0d 17 34 1e ec 20 a4  78 28 78 25 29 2b 34 2c  |%..4.. .x(x%)+4,|
00002f40  a4 79 28 79 25 29 2d 74  65 78 74 6f 66 66 25 0d  |.y(y%)-textoff%.|
00002f50  17 3e 12 e7 20 64 25 3c  31 30 20 8c 20 ef 20 33  |.>.. d%<10 . . 3|
00002f60  32 0d 17 48 0b f1 c3 28  64 25 29 3b 0d 17 52 18  |2..H...(d%);..R.|
00002f70  74 65 78 74 24 3d a4 6c  69 6e 65 28 64 25 2c 6d  |text$=.line(d%,m|
00002f80  25 2c 30 29 0d 17 5c 11  e7 20 74 65 78 74 24 3c  |%,0)..\.. text$<|
00002f90  3e 22 22 20 8c 0d 17 66  34 e7 20 63 6f 6c 77 69  |>"" ...f4. colwi|
00002fa0  64 74 68 25 3d 30 20 8c  20 ef 20 34 32 20 8b 20  |dth%=0 . . 42 . |
00002fb0  f1 22 20 22 3b c0 74 65  78 74 24 2c 28 62 6f 78  |." ";.text$,(box|
00002fc0  77 25 3e 3e 34 29 2d 34  29 0d 17 70 05 cd 0d 17  |w%>>4)-4)..p....|
00002fd0  7a 05 cd 0d 17 84 05 cc  0d 17 8e 27 e7 20 28 78  |z..........'. (x|
00002fe0  25 3d 30 20 84 20 78 25  3d 31 33 29 20 80 20 79  |%=0 . x%=13) . y|
00002ff0  25 3e 3d 30 20 80 20 79  25 3c 3d 33 36 20 8c 0d  |%>=0 . y%<=36 ..|
00003000  17 98 3b ec 20 a4 78 28  78 25 29 2d 28 62 6f 78  |..;. .x(x%)-(box|
00003010  77 25 2d 36 38 29 2a 28  78 25 3d 30 29 2d 28 31  |w%-68)*(x%=0)-(1|
00003020  38 2a 28 78 25 3d 31 33  29 29 2c a4 79 28 79 25  |8*(x%=13)),.y(y%|
00003030  29 2d 74 65 78 74 6f 66  66 25 0d 17 a2 0f f1 64  |)-textoff%.....d|
00003040  61 79 24 28 79 25 83 37  29 0d 17 ac 05 cd 0d 17  |ay$(y%.7).......|
00003050  b6 05 cd 0d 17 c0 08 ed  20 79 25 0d 17 ca 08 ed  |........ y%.....|
00003060  20 78 25 0d 17 d4 05 cd  0d 17 de 27 c8 99 22 57  | x%........'.."W|
00003070  69 6d 70 5f 47 65 74 52  65 63 74 61 6e 67 6c 65  |imp_GetRectangle|
00003080  22 2c 2c 62 6c 6b 25 20  b8 20 6d 6f 72 65 25 0d  |",,blk% . more%.|
00003090  17 e8 05 ce 0d 17 f2 05  e1 0d 17 fc 04 0d 18 06  |................|
000030a0  15 dd 20 a4 6c 69 6e 65  28 64 25 2c 6d 25 2c 6c  |.. .line(d%,m%,l|
000030b0  25 29 0d 18 10 30 3d 24  28 74 65 78 74 25 2b 28  |%)...0=$(text%+(|
000030c0  28 6d 25 2d 31 29 2a 33  31 2b 28 64 25 2d 31 29  |(m%-1)*31+(d%-1)|
000030d0  29 2a 74 65 78 74 73 69  7a 65 25 2b 6c 25 2a 32  |)*textsize%+l%*2|
000030e0  31 29 0d 18 1a 04 0d 18  24 1c dd 20 f2 73 74 6f  |1)......$.. .sto|
000030f0  72 65 28 64 25 2c 6d 25  2c 6c 25 2c 74 65 78 74  |re(d%,m%,l%,text|
00003100  24 29 0d 18 2e 35 24 28  74 65 78 74 25 2b 28 28  |$)...5$(text%+((|
00003110  6d 25 2d 31 29 2a 33 31  2b 28 64 25 2d 31 29 29  |m%-1)*31+(d%-1))|
00003120  2a 74 65 78 74 73 69 7a  65 25 2b 6c 25 2a 32 31  |*textsize%+l%*21|
00003130  29 3d 74 65 78 74 24 0d  18 38 05 e1 0d 18 42 04  |)=text$..8....B.|
00003140  0d 18 4c 0c dd 20 a4 78  28 78 25 29 0d 18 56 11  |..L.. .x(x%)..V.|
00003150  3d 78 25 2a 62 6f 78 77  25 2b 77 78 25 0d 18 60  |=x%*boxw%+wx%..`|
00003160  04 0d 18 6a 0c dd 20 a4  79 28 79 25 29 0d 18 74  |...j.. .y(y%)..t|
00003170  15 3d 28 77 79 25 2d 79  25 2a 62 6f 78 68 25 29  |.=(wy%-y%*boxh%)|
00003180  2d 34 0d 18 7e 04 0d 18  88 17 dd 20 f2 61 6c 74  |-4..~...... .alt|
00003190  65 72 28 f8 20 78 25 2c  f8 20 79 25 29 0d 18 92  |er(. x%,. y%)...|
000031a0  11 78 25 3d 78 25 20 81  20 62 6f 78 77 25 0d 18  |.x%=x% . boxw%..|
000031b0  9c 18 79 25 3d 2d 28 28  79 25 2b 34 29 20 81 20  |..y%=-((y%+4) . |
000031c0  62 6f 78 68 25 29 0d 18  a6 05 e1 0d 18 b0 04 0d  |boxh%)..........|
000031d0  18 ba 19 dd 20 f2 63 6c  6f 73 65 77 69 6e 64 6f  |.... .closewindo|
000031e0  77 28 21 62 6c 6b 25 29  0d 18 c4 18 e7 20 21 62  |w(!blk%)..... !b|
000031f0  6c 6b 25 3d 65 64 69 74  25 20 8c 20 f2 67 65 74  |lk%=edit% . .get|
00003200  0d 18 ce 1e c8 99 22 57  69 6d 70 5f 43 6c 6f 73  |......"Wimp_Clos|
00003210  65 57 69 6e 64 6f 77 22  2c 2c 62 6c 6b 25 0d 18  |eWindow",,blk%..|
00003220  d8 27 e7 20 21 62 6c 6b  25 3d 6d 61 69 6e 25 20  |.'. !blk%=main% |
00003230  8c 20 f2 63 6c 6f 73 65  77 69 6e 64 6f 77 28 65  |. .closewindow(e|
00003240  64 69 74 25 29 0d 18 e2  05 e1 0d 18 ec 04 0d 18  |dit%)...........|
00003250  f6 10 dd 20 f2 63 6c 6f  73 65 64 6f 77 6e 0d 19  |... .closedown..|
00003260  00 1e c8 99 22 57 69 6d  70 5f 43 6c 6f 73 65 44  |...."Wimp_CloseD|
00003270  6f 77 6e 22 2c 6d 79 74  61 73 6b 25 0d 19 0a 05  |own",mytask%....|
00003280  e0 0d 19 14 04 0d 19 1e  10 dd 20 f2 6d 6f 75 73  |.......... .mous|
00003290  65 69 6e 66 6f 0d 19 28  21 c8 99 22 57 69 6d 70  |einfo..(!.."Wimp|
000032a0  5f 47 65 74 50 6f 69 6e  74 65 72 49 6e 66 6f 22  |_GetPointerInfo"|
000032b0  2c 2c 62 6c 6b 25 0d 19  32 0d 6d 78 25 3d 21 62  |,,blk%..2.mx%=!b|
000032c0  6c 6b 25 0d 19 3c 0e 6d  79 25 3d 62 6c 6b 25 21  |lk%..<.my%=blk%!|
000032d0  34 0d 19 46 0f 62 75 74  25 3d 62 6c 6b 25 21 38  |4..F.but%=blk%!8|
000032e0  0d 19 50 11 77 69 6e 64  25 3d 62 6c 6b 25 21 31  |..P.wind%=blk%!1|
000032f0  32 0d 19 5a 11 69 63 6f  6e 25 3d 62 6c 6b 25 21  |2..Z.icon%=blk%!|
00003300  31 36 0d 19 64 05 e1 0d  19 6e 04 0d 19 78 11 dd  |16..d....n...x..|
00003310  20 f2 6d 65 6e 75 73 65  6c 65 63 74 0d 19 82 12  | .menuselect....|
00003320  c8 8e 20 6f 70 65 6e 6d  65 6e 75 25 20 ca 0d 19  |.. openmenu% ...|
00003330  8c 0e c9 20 6d 65 6e 75  62 61 72 25 0d 19 96 0e  |... menubar%....|
00003340  c8 8e 20 21 62 6c 6b 25  20 ca 0d 19 a0 0f c9 20  |.. !blk% ...... |
00003350  31 20 3a 20 f2 71 75 69  74 0d 19 aa 05 cb 0d 19  |1 : .quit.......|
00003360  b4 0f c9 20 6d 61 69 6e  6d 65 6e 75 25 0d 19 be  |... mainmenu%...|
00003370  0e c8 8e 20 21 62 6c 6b  25 20 ca 0d 19 c8 07 c9  |... !blk% ......|
00003380  20 30 0d 19 d2 2b e7 20  62 6c 6b 25 21 34 3e 3d  | 0...+. blk%!4>=|
00003390  30 20 80 20 62 6c 6b 25  21 34 3c 3e 79 65 61 72  |0 . blk%!4<>year|
000033a0  25 2d 74 68 69 73 79 65  61 72 25 20 8c 0d 19 dc  |%-thisyear% ....|
000033b0  18 6e 79 25 3d 74 68 69  73 79 65 61 72 25 2b 62  |.ny%=thisyear%+b|
000033c0  6c 6b 25 21 34 0d 19 e6  10 f2 73 61 76 65 28 79  |lk%!4.....save(y|
000033d0  65 61 72 25 29 0d 19 f0  11 f2 73 65 74 79 65 61  |ear%).....setyea|
000033e0  72 28 6e 79 25 29 0d 19  fa 15 64 75 6d 25 3d a4  |r(ny%)....dum%=.|
000033f0  6c 6f 61 64 28 79 65 61  72 25 29 0d 1a 04 24 f2  |load(year%)...$.|
00003400  74 69 63 6b 28 79 65 61  72 6d 65 6e 75 25 2c 79  |tick(yearmenu%,y|
00003410  65 61 72 25 2d 74 68 69  73 79 65 61 72 25 29 0d  |ear%-thisyear%).|
00003420  1a 0e 0f 21 62 6c 6b 25  3d 65 64 69 74 25 0d 1a  |...!blk%=edit%..|
00003430  18 1e c8 99 22 57 69 6d  70 5f 43 6c 6f 73 65 57  |...."Wimp_CloseW|
00003440  69 6e 64 6f 77 22 2c 2c  62 6c 6b 25 0d 1a 22 0f  |indow",,blk%..".|
00003450  21 62 6c 6b 25 3d 6d 61  69 6e 25 0d 1a 2c 0b f2  |!blk%=main%..,..|
00003460  72 65 64 72 61 77 0d 1a  36 05 cd 0d 1a 40 07 c9  |redraw..6....@..|
00003470  20 31 0d 1a 4a 25 e7 20  62 6c 6b 25 21 34 3e 3d  | 1..J%. blk%!4>=|
00003480  30 20 80 20 62 6c 6b 25  21 34 3c 3e 63 6f 6c 77  |0 . blk%!4<>colw|
00003490  69 64 74 68 25 20 8c 0d  1a 54 1a f2 74 69 63 6b  |idth% ...T..tick|
000034a0  28 63 6f 6c 6d 65 6e 75  25 2c 62 6c 6b 25 21 34  |(colmenu%,blk%!4|
000034b0  29 0d 1a 5e 14 63 6f 6c  77 69 64 74 68 25 3d 62  |)..^.colwidth%=b|
000034c0  6c 6b 25 21 34 0d 1a 68  0e f2 73 65 74 65 78 74  |lk%!4..h..setext|
000034d0  65 6e 74 0d 1a 72 0f 21  62 6c 6b 25 3d 6d 61 69  |ent..r.!blk%=mai|
000034e0  6e 25 0d 1a 7c 21 c8 99  22 57 69 6d 70 5f 47 65  |n%..|!.."Wimp_Ge|
000034f0  74 57 69 6e 64 6f 77 53  74 61 74 65 22 2c 2c 62  |tWindowState",,b|
00003500  6c 6b 25 0d 1a 86 1d c8  99 22 57 69 6d 70 5f 4f  |lk%......"Wimp_O|
00003510  70 65 6e 57 69 6e 64 6f  77 22 2c 2c 62 6c 6b 25  |penWindow",,blk%|
00003520  0d 1a 90 0b f2 72 65 64  72 61 77 0d 1a 9a 05 cd  |.....redraw.....|
00003530  0d 1a a4 16 c9 20 32 20  3a 20 f2 73 61 76 65 28  |..... 2 : .save(|
00003540  79 65 61 72 25 29 0d 1a  ae 07 c9 20 33 0d 1a b8  |year%)..... 3...|
00003550  13 64 25 3d a4 6c 6f 61  64 28 79 65 61 72 25 29  |.d%=.load(year%)|
00003560  0d 1a c2 0f 21 62 6c 6b  25 3d 6d 61 69 6e 25 0d  |....!blk%=main%.|
00003570  1a cc 0b f2 72 65 64 72  61 77 0d 1a d6 05 cb 0d  |....redraw......|
00003580  1a e0 0f c9 20 65 64 69  74 6d 65 6e 75 25 0d 1a  |.... editmenu%..|
00003590  ea 0e c8 8e 20 21 62 6c  6b 25 20 ca 0d 1a f4 07  |.... !blk% .....|
000035a0  c9 20 31 0d 1a fe 0e e3  20 69 25 3d 30 20 b8 20  |. 1..... i%=0 . |
000035b0  34 0d 1b 08 0f 21 62 6c  6b 25 3d 65 64 69 74 25  |4....!blk%=edit%|
000035c0  0d 1b 12 0d 62 6c 6b 25  21 34 3d 69 25 0d 1b 1c  |....blk%!4=i%...|
000035d0  1f c8 99 22 57 69 6d 70  5f 47 65 74 49 63 6f 6e  |..."Wimp_GetIcon|
000035e0  53 74 61 74 65 22 2c 2c  62 6c 6b 25 0d 1b 26 0c  |State",,blk%..&.|
000035f0  62 6c 6b 25 21 38 3d 30  0d 1b 30 0d 62 6c 6b 25  |blk%!8=0..0.blk%|
00003600  21 31 32 3d 30 0d 1b 3a  11 24 28 62 6c 6b 25 21  |!12=0..:.$(blk%!|
00003610  32 38 29 3d 22 22 0d 1b  44 1f c8 99 22 57 69 6d  |28)=""..D..."Wim|
00003620  70 5f 53 65 74 49 63 6f  6e 53 74 61 74 65 22 2c  |p_SetIconState",|
00003630  2c 62 6c 6b 25 0d 1b 4e  08 ed 20 69 25 0d 1b 58  |,blk%..N.. i%..X|
00003640  08 f2 67 65 74 0d 1b 62  05 cb 0d 1b 6c 05 cb 0d  |..get..b....l...|
00003650  1b 76 0e f2 6d 6f 75 73  65 69 6e 66 6f 0d 1b 80  |.v..mouseinfo...|
00003660  3b e7 20 62 75 74 25 3d  31 20 8c 20 c8 99 22 57  |;. but%=1 . .."W|
00003670  69 6d 70 5f 43 72 65 61  74 65 4d 65 6e 75 22 2c  |imp_CreateMenu",|
00003680  2c 6f 70 65 6e 6d 65 6e  75 25 2c 6d 65 6e 75 78  |,openmenu%,menux|
00003690  25 2c 6d 65 6e 75 79 25  0d 1b 8a 05 e1 0d 1b 94  |%,menuy%........|
000036a0  04 0d 1b 9e 0b dd 20 f2  71 75 69 74 0d 1b a8 3d  |...... .quit...=|
000036b0  e7 20 63 68 61 6e 67 65  64 25 20 8c 20 e7 20 a4  |. changed% . . .|
000036c0  63 68 65 63 6b 28 22 53  61 76 65 20 64 69 61 72  |check("Save diar|
000036d0  79 20 66 69 72 73 74 3f  22 29 20 8c 20 f2 73 61  |y first?") . .sa|
000036e0  76 65 28 79 65 61 72 25  29 0d 1b b2 0e f2 63 6c  |ve(year%).....cl|
000036f0  6f 73 65 64 6f 77 6e 0d  1b bc 05 e1 0d 1b c6 04  |osedown.........|
00003700  0d 1b d0 26 dd 20 f2 63  6c 69 63 6b 28 6d 78 25  |...&. .click(mx%|
00003710  2c 6d 79 25 2c 62 75 74  25 2c 77 69 6e 64 25 2c  |,my%,but%,wind%,|
00003720  69 63 6f 6e 25 29 0d 1b  da 0e c8 8e 20 77 69 6e  |icon%)...... win|
00003730  64 25 20 ca 0d 1b e4 08  c9 20 2d 32 0d 1b ee 0d  |d% ...... -2....|
00003740  c8 8e 20 62 75 74 25 20  ca 0d 1b f8 28 c9 20 32  |.. but% ....(. 2|
00003750  20 3a 20 f2 6d 65 6e 75  28 6d 65 6e 75 62 61 72  | : .menu(menubar|
00003760  25 2c 6d 78 25 2c 62 61  72 68 65 69 67 68 74 25  |%,mx%,barheight%|
00003770  29 0d 1c 02 16 c9 20 34  20 3a 20 f2 6f 70 65 6e  |)..... 4 : .open|
00003780  28 6d 61 69 6e 25 29 0d  1c 0c 05 cb 0d 1c 16 0b  |(main%).........|
00003790  c9 20 6d 61 69 6e 25 0d  1c 20 0d c8 8e 20 62 75  |. main%.. ... bu|
000037a0  74 25 20 ca 0d 1c 2a 22  c9 20 32 20 3a 20 f2 6d  |t% ...*". 2 : .m|
000037b0  65 6e 75 28 6d 61 69 6e  6d 65 6e 75 25 2c 6d 78  |enu(mainmenu%,mx|
000037c0  25 2c 6d 79 25 29 0d 1c  34 1b c9 20 34 20 3a 20  |%,my%)..4.. 4 : |
000037d0  f2 6e 65 77 65 64 69 74  28 6d 78 25 2c 6d 79 25  |.newedit(mx%,my%|
000037e0  29 0d 1c 3e 05 cb 0d 1c  48 0b c9 20 65 64 69 74  |)..>....H.. edit|
000037f0  25 0d 1c 52 0d c8 8e 20  62 75 74 25 20 ca 0d 1c  |%..R... but% ...|
00003800  5c 09 c9 20 34 2c 31 0d  1c 66 1c e7 20 69 63 6f  |\.. 4,1..f.. ico|
00003810  6e 25 3e 3d 39 20 80 20  69 63 6f 6e 25 3c 3d 32  |n%>=9 . icon%<=2|
00003820  32 20 8c 0d 1c 70 10 63  6f 6c 25 3d 69 63 6f 6e  |2 ...p.col%=icon|
00003830  25 2d 39 0d 1c 7a 16 e7  20 63 6f 6c 25 3c 3e 68  |%-9..z.. col%<>h|
00003840  69 67 68 63 6f 6c 25 20  8c 0d 1c 84 21 f2 73 65  |ighcol% ....!.se|
00003850  74 66 6c 61 67 28 63 64  61 74 65 25 2c 63 6d 6f  |tflag(cdate%,cmo|
00003860  6e 74 68 25 2c 63 6f 6c  25 29 0d 1c 8e 1e f2 73  |nth%,col%).....s|
00003870  65 74 66 63 28 65 64 69  74 25 2c 68 69 67 68 63  |etfc(edit%,highc|
00003880  6f 6c 25 2b 39 2c 31 29  0d 1c 98 11 68 69 67 68  |ol%+9,1)....high|
00003890  63 6f 6c 25 3d 63 6f 6c  25 0d 1c a2 1e f2 73 65  |col%=col%.....se|
000038a0  74 66 63 28 65 64 69 74  25 2c 68 69 67 68 63 6f  |tfc(edit%,highco|
000038b0  6c 25 2b 39 2c 37 29 0d  1c ac 1b f2 75 70 64 61  |l%+9,7).....upda|
000038c0  74 65 28 63 64 61 74 65  25 2c 63 6d 6f 6e 74 68  |te(cdate%,cmonth|
000038d0  25 29 0d 1c b6 0e 63 68  61 6e 67 65 64 25 3d b9  |%)....changed%=.|
000038e0  0d 1c c0 05 cd 0d 1c ca  05 cd 0d 1c d4 22 c9 20  |.............". |
000038f0  32 20 3a 20 f2 6d 65 6e  75 28 65 64 69 74 6d 65  |2 : .menu(editme|
00003900  6e 75 25 2c 6d 78 25 2c  6d 79 25 29 0d 1c de 05  |nu%,mx%,my%)....|
00003910  cb 0d 1c e8 22 c9 20 73  61 76 65 66 66 66 31 25  |....". savefff1%|
00003920  2c 73 61 76 65 66 66 66  32 25 2c 73 61 76 65 61  |,savefff2%,savea|
00003930  66 66 25 0d 1c f2 0e c8  8e 20 69 63 6f 6e 25 20  |ff%...... icon% |
00003940  ca 0d 1c fc 07 c9 20 32  0d 1d 06 0e c8 8e 20 77  |...... 2...... w|
00003950  69 6e 64 25 20 ca 0d 1d  10 2d c9 20 73 61 76 65  |ind% ....-. save|
00003960  66 66 66 31 25 20 3a 20  f2 73 61 76 65 74 65 78  |fff1% : .savetex|
00003970  74 28 24 66 69 6c 65 6e  61 6d 65 66 66 66 31 25  |t($filenamefff1%|
00003980  2c 30 29 0d 1d 1a 31 c9  20 73 61 76 65 66 66 66  |,0)...1. savefff|
00003990  32 25 20 3a 20 f2 73 61  76 65 6d 6f 6e 74 68 66  |2% : .savemonthf|
000039a0  66 66 28 24 66 69 6c 65  6e 61 6d 65 66 66 66 32  |ff($filenamefff2|
000039b0  25 2c 30 29 0d 1d 24 2f  c9 20 73 61 76 65 61 66  |%,0)..$/. saveaf|
000039c0  66 25 20 3a 20 f2 73 61  76 65 6d 6f 6e 74 68 61  |f% : .savemontha|
000039d0  66 66 28 24 66 69 6c 65  6e 61 6d 65 61 66 66 25  |ff($filenameaff%|
000039e0  2c 30 29 0d 1d 2e 05 cb  0d 1d 38 21 c9 20 30 20  |,0).......8!. 0 |
000039f0  3a 20 f2 73 74 61 72 74  64 72 61 67 28 77 69 6e  |: .startdrag(win|
00003a00  64 25 2c 69 63 6f 6e 25  29 0d 1d 42 05 cb 0d 1d  |d%,icon%)..B....|
00003a10  4c 05 cb 0d 1d 56 05 e1  0d 1d 60 04 0d 1d 6a 1d  |L....V....`...j.|
00003a20  dd 20 f2 73 74 61 72 74  64 72 61 67 28 77 69 6e  |. .startdrag(win|
00003a30  64 25 2c 69 63 6f 6e 25  29 0d 1d 74 13 64 72 61  |d%,icon%)..t.dra|
00003a40  67 77 69 6e 64 25 3d 77  69 6e 64 25 0d 1d 7e 13  |gwind%=wind%..~.|
00003a50  64 72 61 67 69 63 6f 6e  25 3d 69 63 6f 6e 25 0d  |dragicon%=icon%.|
00003a60  1d 88 0f 21 62 6c 6b 25  3d 77 69 6e 64 25 0d 1d  |...!blk%=wind%..|
00003a70  92 21 c8 99 22 57 69 6d  70 5f 47 65 74 57 69 6e  |.!.."Wimp_GetWin|
00003a80  64 6f 77 53 74 61 74 65  22 2c 2c 62 6c 6b 25 0d  |dowState",,blk%.|
00003a90  1d 9c 16 79 73 25 3d 62  6c 6b 25 21 31 36 2d 62  |...ys%=blk%!16-b|
00003aa0  6c 6b 25 21 38 0d 1d a6  0d 78 25 3d 62 6c 6b 25  |lk%!8....x%=blk%|
00003ab0  21 34 0d 1d b0 0d 79 25  3d 62 6c 6b 25 21 38 0d  |!4....y%=blk%!8.|
00003ac0  1d ba 10 62 6c 6b 25 21  34 3d 69 63 6f 6e 25 0d  |...blk%!4=icon%.|
00003ad0  1d c4 1f c8 99 22 57 69  6d 70 5f 47 65 74 49 63  |....."Wimp_GetIc|
00003ae0  6f 6e 53 74 61 74 65 22  2c 2c 62 6c 6b 25 0d 1d  |onState",,blk%..|
00003af0  ce 0b 21 62 6c 6b 25 3d  30 0d 1d d8 0c 62 6c 6b  |..!blk%=0....blk|
00003b00  25 21 34 3d 35 0d 1d e2  0e 62 6c 6b 25 21 38 2b  |%!4=5....blk%!8+|
00003b10  3d 78 25 0d 1d ec 13 62  6c 6b 25 21 31 32 2b 3d  |=x%....blk%!12+=|
00003b20  79 25 2b 79 73 25 0d 1d  f6 0f 62 6c 6b 25 21 31  |y%+ys%....blk%!1|
00003b30  36 2b 3d 78 25 0d 1e 00  13 62 6c 6b 25 21 32 30  |6+=x%....blk%!20|
00003b40  2b 3d 79 25 2b 79 73 25  0d 1e 0a 0d 62 6c 6b 25  |+=y%+ys%....blk%|
00003b50  21 32 34 3d 30 0d 1e 14  0d 62 6c 6b 25 21 32 38  |!24=0....blk%!28|
00003b60  3d 30 0d 1e 1e 10 62 6c  6b 25 21 33 32 3d 73 63  |=0....blk%!32=sc|
00003b70  78 25 0d 1e 28 10 62 6c  6b 25 21 33 36 3d 73 63  |x%..(.blk%!36=sc|
00003b80  79 25 0d 1e 32 1a c8 99  22 57 69 6d 70 5f 44 72  |y%..2..."Wimp_Dr|
00003b90  61 67 42 6f 78 22 2c 2c  62 6c 6b 25 0d 1e 3c 05  |agBox",,blk%..<.|
00003ba0  e1 0d 1e 46 04 0d 1e 50  18 dd 20 f2 6d 65 6e 75  |...F...P.. .menu|
00003bb0  28 64 61 74 61 25 2c 78  25 2c 79 25 29 0d 1e 5a  |(data%,x%,y%)..Z|
00003bc0  13 6f 70 65 6e 6d 65 6e  75 25 3d 64 61 74 61 25  |.openmenu%=data%|
00003bd0  0d 1e 64 19 78 25 3d 78  25 2d 28 64 61 74 61 25  |..d.x%=x%-(data%|
00003be0  21 31 36 29 2f 32 2d 31  36 0d 1e 6e 24 c8 99 22  |!16)/2-16..n$.."|
00003bf0  57 69 6d 70 5f 43 72 65  61 74 65 4d 65 6e 75 22  |Wimp_CreateMenu"|
00003c00  2c 2c 64 61 74 61 25 2c  78 25 2c 79 25 0d 1e 78  |,,data%,x%,y%..x|
00003c10  0d 6d 65 6e 75 78 25 3d  78 25 0d 1e 82 0d 6d 65  |.menux%=x%....me|
00003c20  6e 75 79 25 3d 79 25 0d  1e 8c 05 e1 0d 1e 96 04  |nuy%=y%.........|
00003c30  0d 1e a0 23 dd 20 f2 6d  65 73 73 61 67 65 28 74  |...#. .message(t|
00003c40  61 73 6b 25 2c 72 65 66  25 2c 6d 65 73 73 61 67  |ask%,ref%,messag|
00003c50  65 25 29 0d 1e aa 11 c8  8e 20 6d 65 73 73 61 67  |e%)...... messag|
00003c60  65 25 20 ca 0d 1e b4 0f  c9 20 30 20 3a 20 f2 71  |e% ...... 0 : .q|
00003c70  75 69 74 0d 1e be 07 c9  20 32 0d 1e c8 12 c8 8e  |uit..... 2......|
00003c80  20 64 72 61 67 77 69 6e  64 25 20 ca 0d 1e d2 2d  | dragwind% ....-|
00003c90  c9 20 73 61 76 65 66 66  66 31 25 3a f2 73 61 76  |. savefff1%:.sav|
00003ca0  65 74 65 78 74 28 a4 73  74 72 69 6e 67 28 62 6c  |etext(.string(bl|
00003cb0  6b 25 2b 34 34 29 2c b9  29 0d 1e dc 31 c9 20 73  |k%+44),.)...1. s|
00003cc0  61 76 65 66 66 66 32 25  3a f2 73 61 76 65 6d 6f  |avefff2%:.savemo|
00003cd0  6e 74 68 66 66 66 28 a4  73 74 72 69 6e 67 28 62  |nthfff(.string(b|
00003ce0  6c 6b 25 2b 34 34 29 2c  b9 29 0d 1e e6 30 c9 20  |lk%+44),.)...0. |
00003cf0  73 61 76 65 61 66 66 25  3a f2 73 61 76 65 6d 6f  |saveaff%:.savemo|
00003d00  6e 74 68 61 66 66 28 a4  73 74 72 69 6e 67 28 62  |nthaff(.string(b|
00003d10  6c 6b 25 2b 34 34 29 2c  b9 29 0d 1e f0 05 cb 0d  |lk%+44),.)......|
00003d20  1e fa 0e e7 20 73 61 76  65 64 25 20 8c 0d 1f 04  |.... saved% ....|
00003d30  21 c8 99 22 57 69 6d 70  5f 47 65 74 50 6f 69 6e  |!.."Wimp_GetPoin|
00003d40  74 65 72 49 6e 66 6f 22  2c 2c 62 6c 6b 25 0d 1f  |terInfo",,blk%..|
00003d50  0e 13 62 6c 6b 25 21 32  30 3d 62 6c 6b 25 21 31  |..blk%!20=blk%!1|
00003d60  32 0d 1f 18 13 62 6c 6b  25 21 32 34 3d 62 6c 6b  |2....blk%!24=blk|
00003d70  25 21 31 36 0d 1f 22 11  62 6c 6b 25 21 32 38 3d  |%!16..".blk%!28=|
00003d80  21 62 6c 6b 25 0d 1f 2c  12 62 6c 6b 25 21 33 32  |!blk%..,.blk%!32|
00003d90  3d 62 6c 6b 25 21 34 0d  1f 36 11 62 6c 6b 25 21  |=blk%!4..6.blk%!|
00003da0  33 36 3d 73 69 7a 65 25  0d 1f 40 15 62 6c 6b 25  |36=size%..@.blk%|
00003db0  21 34 30 3d 66 69 6c 65  74 79 70 65 25 0d 1f 4a  |!40=filetype%..J|
00003dc0  27 21 62 6c 6b 25 3d 34  38 2b 28 a9 28 a4 73 74  |'!blk%=48+(.(.st|
00003dd0  72 69 6e 67 28 62 6c 6b  25 2b 34 34 29 29 2b 33  |ring(blk%+44))+3|
00003de0  29 80 ac 33 0d 1f 54 10  f2 72 65 70 6c 79 28 31  |)..3..T..reply(1|
00003df0  37 2c 33 29 0d 1f 5e 05  cd 0d 1f 68 07 c9 20 36  |7,3)..^....h.. 6|
00003e00  0d 1f 72 1b e7 20 64 72  61 67 77 69 6e 64 25 3d  |..r.. dragwind%=|
00003e10  73 61 76 65 66 66 66 31  25 20 8c 0d 1f 7c 16 74  |savefff1% ...|.t|
00003e20  6f 67 6f 25 3d a4 73 69  7a 65 2d 74 72 61 6e 73  |ogo%=.size-trans|
00003e30  25 0d 1f 86 23 e7 20 74  6f 67 6f 25 3e 62 6c 6b  |%...#. togo%>blk|
00003e40  25 21 32 34 20 8c 20 74  6f 67 6f 25 3d 62 6c 6b  |%!24 . togo%=blk|
00003e50  25 21 32 34 0d 1f 90 47  c8 99 22 57 69 6d 70 5f  |%!24...G.."Wimp_|
00003e60  54 72 61 6e 73 66 65 72  42 6c 6f 63 6b 22 2c 6d  |TransferBlock",m|
00003e70  79 74 61 73 6b 25 2c 74  65 78 74 62 75 66 66 25  |ytask%,textbuff%|
00003e80  2b 74 72 61 6e 73 25 2c  74 61 73 6b 25 2c 62 6c  |+trans%,task%,bl|
00003e90  6b 25 21 32 30 2c 74 6f  67 6f 25 0d 1f 9a 11 62  |k%!20,togo%....b|
00003ea0  6c 6b 25 21 32 34 3d 74  6f 67 6f 25 0d 1f a4 10  |lk%!24=togo%....|
00003eb0  f2 72 65 70 6c 79 28 31  38 2c 37 29 0d 1f ae 11  |.reply(18,7)....|
00003ec0  74 72 61 6e 73 25 2b 3d  74 6f 67 6f 25 0d 1f b8  |trans%+=togo%...|
00003ed0  05 cd 0d 1f c2 17 c9 20  26 34 30 30 43 31 20 3a  |....... &400C1 :|
00003ee0  20 f2 6e 65 77 6d 6f 64  65 0d 1f cc 05 cb 0d 1f  | .newmode.......|
00003ef0  d6 05 e1 0d 1f e0 04 0d  1f ea 1b dd 20 f2 72 65  |............ .re|
00003f00  70 6c 79 28 74 79 70 65  25 2c 72 65 61 73 6f 6e  |ply(type%,reason|
00003f10  25 29 0d 1f f4 10 62 6c  6b 25 21 31 32 3d 72 65  |%)....blk%!12=re|
00003f20  66 25 0d 1f fe 13 62 6c  6b 25 21 31 36 3d 72 65  |f%....blk%!16=re|
00003f30  61 73 6f 6e 25 0d 20 08  29 c8 99 22 57 69 6d 70  |ason%. .).."Wimp|
00003f40  5f 53 65 6e 64 4d 65 73  73 61 67 65 22 2c 74 79  |_SendMessage",ty|
00003f50  70 65 25 2c 62 6c 6b 25  2c 74 61 73 6b 25 0d 20  |pe%,blk%,task%. |
00003f60  12 05 e1 0d 20 1c 04 0d  20 26 0e dd 20 f2 6e 65  |.... ... &.. .ne|
00003f70  77 6d 6f 64 65 0d 20 30  0c 21 62 6c 6b 25 3d 31  |wmode. 0.!blk%=1|
00003f80  31 0d 20 3a 0d 62 6c 6b  25 21 34 3d 31 32 0d 20  |1. :.blk%!4=12. |
00003f90  44 0d 62 6c 6b 25 21 38  3d 2d 31 0d 20 4e 25 c8  |D.blk%!8=-1. N%.|
00003fa0  99 22 4f 53 5f 52 65 61  64 56 64 75 56 61 72 69  |."OS_ReadVduVari|
00003fb0  61 62 6c 65 73 22 2c 62  6c 6b 25 2c 62 6c 6b 25  |ables",blk%,blk%|
00003fc0  0d 20 58 14 73 63 78 25  3d 28 21 62 6c 6b 25 2b  |. X.scx%=(!blk%+|
00003fd0  31 29 2a 32 0d 20 62 15  73 63 79 25 3d 28 62 6c  |1)*2. b.scy%=(bl|
00003fe0  6b 25 21 34 2b 31 29 2a  34 0d 20 6c 05 e1 0d 20  |k%!4+1)*4. l... |
00003ff0  76 04 0d 20 80 21 dd 20  a4 6c 6f 61 64 74 65 6d  |v.. .!. .loadtem|
00004000  70 6c 61 74 65 28 74 69  74 6c 65 24 2c 73 69 7a  |plate(title$,siz|
00004010  65 25 29 0d 20 8a 11 de  20 62 75 66 66 25 20 73  |e%). ... buff% s|
00004020  69 7a 65 25 0d 20 94 3b  c8 99 22 57 69 6d 70 5f  |ize%. .;.."Wimp_|
00004030  4c 6f 61 64 54 65 6d 70  6c 61 74 65 22 2c 2c 62  |LoadTemplate",,b|
00004040  6c 6b 25 2c 62 75 66 66  25 2c 62 75 66 66 25 2b  |lk%,buff%,buff%+|
00004050  73 69 7a 65 25 2c 2d 31  2c 74 69 74 6c 65 24 0d  |size%,-1,title$.|
00004060  20 9e 27 c8 99 22 57 69  6d 70 5f 43 72 65 61 74  | .'.."Wimp_Creat|
00004070  65 57 69 6e 64 6f 77 22  2c 2c 62 6c 6b 25 20 b8  |eWindow",,blk% .|
00004080  20 77 69 6e 64 25 0d 20  a8 0a 3d 77 69 6e 64 25  | wind%. ..=wind%|
00004090  0d 20 b2 04 0d 20 bc 18  dd 20 f2 74 69 63 6b 28  |. ... ... .tick(|
000040a0  6d 65 6e 75 25 2c 74 69  63 6b 25 29 0d 20 c6 0e  |menu%,tick%). ..|
000040b0  70 25 3d 6d 65 6e 75 25  2b 34 0d 20 d0 09 61 25  |p%=menu%+4. ..a%|
000040c0  3d 2d 31 0d 20 da 05 f5  0d 20 e4 0a 70 25 2b 3d  |=-1. .... ..p%+=|
000040d0  32 34 0d 20 ee 09 61 25  2b 3d 31 0d 20 f8 29 e7  |24. ..a%+=1. .).|
000040e0  20 61 25 3d 74 69 63 6b  25 20 8c 20 21 70 25 3d  | a%=tick% . !p%=|
000040f0  21 70 25 20 84 31 20 8b  20 21 70 25 3d 21 70 25  |!p% .1 . !p%=!p%|
00004100  20 80 ac 31 0d 21 02 0f  fd 20 21 70 25 20 80 20  | ..1.!... !p% . |
00004110  26 38 30 0d 21 0c 05 e1  0d 21 16 04 0d 21 20 14  |&80.!....!...! .|
00004120  dd 20 a4 63 72 6d 65 6e  75 28 74 65 78 74 24 29  |. .crmenu(text$)|
00004130  0d 21 2a 14 6f 6c 64 70  74 72 25 3d 6d 65 6e 75  |.!*.oldptr%=menu|
00004140  70 74 72 25 0d 21 34 0c  69 74 65 6d 73 25 3d 30  |ptr%.!4.items%=0|
00004150  0d 21 3e 0e 74 65 78 74  24 2b 3d 22 2c 22 0d 21  |.!>.text$+=",".!|
00004160  48 1b 74 69 74 6c 65 24  3d a4 6e 65 78 74 77 6f  |H.title$=.nextwo|
00004170  72 64 28 74 65 78 74 24  29 0d 21 52 14 24 6d 65  |rd(text$).!R.$me|
00004180  6e 75 70 74 72 25 3d 74  69 74 6c 65 24 0d 21 5c  |nuptr%=title$.!\|
00004190  10 6d 61 78 25 3d a9 74  69 74 6c 65 24 0d 21 66  |.max%=.title$.!f|
000041a0  16 6d 65 6e 75 70 74 72  25 21 31 32 3d 26 37 30  |.menuptr%!12=&70|
000041b0  32 30 37 0d 21 70 12 6d  65 6e 75 70 74 72 25 21  |207.!p.menuptr%!|
000041c0  32 30 3d 34 34 0d 21 7a  11 6d 65 6e 75 70 74 72  |20=44.!z.menuptr|
000041d0  25 21 32 34 3d 30 0d 21  84 0f 6d 65 6e 75 70 74  |%!24=0.!..menupt|
000041e0  72 25 2b 3d 34 0d 21 8e  10 c8 95 20 74 65 78 74  |r%+=4.!.... text|
000041f0  24 3c 3e 22 22 0d 21 98  0d 69 74 65 6d 73 25 2b  |$<>"".!..items%+|
00004200  3d 31 0d 21 a2 10 6d 65  6e 75 70 74 72 25 2b 3d  |=1.!..menuptr%+=|
00004210  32 34 0d 21 ac 0f 21 6d  65 6e 75 70 74 72 25 3d  |24.!..!menuptr%=|
00004220  30 0d 21 b6 10 6d 65 6e  75 70 74 72 25 21 34 3d  |0.!..menuptr%!4=|
00004230  30 0d 21 c0 1a 77 6f 72  64 24 3d a4 6e 65 78 74  |0.!..word$=.next|
00004240  77 6f 72 64 28 74 65 78  74 24 29 0d 21 ca 18 74  |word(text$).!..t|
00004250  6f 6b 65 6e 24 3d a4 74  6f 6b 65 6e 28 77 6f 72  |oken$=.token(wor|
00004260  64 24 29 0d 21 d4 11 c8  95 20 74 6f 6b 65 6e 24  |d$).!.... token$|
00004270  3c 3e 22 22 0d 21 de 0f  c8 8e 20 74 6f 6b 65 6e  |<>"".!.... token|
00004280  24 20 ca 0d 21 e8 2a c9  20 22 3e 22 20 3a 20 6d  |$ ..!.*. ">" : m|
00004290  65 6e 75 70 74 72 25 21  34 3d a0 28 a4 6e 65 78  |enuptr%!4=.(.nex|
000042a0  74 77 6f 72 64 28 74 65  78 74 24 29 29 0d 21 f2  |tword(text$)).!.|
000042b0  23 c9 20 22 2f 22 20 3a  20 21 6d 65 6e 75 70 74  |#. "/" : !menupt|
000042c0  72 25 3d 21 6d 65 6e 75  70 74 72 25 20 84 20 31  |r%=!menuptr% . 1|
000042d0  0d 21 fc 23 c9 20 22 2d  22 20 3a 20 21 6d 65 6e  |.!.#. "-" : !men|
000042e0  75 70 74 72 25 3d 21 6d  65 6e 75 70 74 72 25 20  |uptr%=!menuptr% |
000042f0  84 20 32 0d 22 06 23 c9  20 22 21 22 20 3a 20 21  |. 2.".#. "!" : !|
00004300  6d 65 6e 75 70 74 72 25  3d 21 6d 65 6e 75 70 74  |menuptr%=!menupt|
00004310  72 25 20 84 20 34 0d 22  10 05 cb 0d 22 1a 18 74  |r% . 4."...."..t|
00004320  6f 6b 65 6e 24 3d a4 74  6f 6b 65 6e 28 77 6f 72  |oken$=.token(wor|
00004330  64 24 29 0d 22 24 05 ce  0d 22 2e 1f 6d 65 6e 75  |d$)."$..."..menu|
00004340  70 74 72 25 21 38 3d 28  37 3c 3c 32 34 29 20 84  |ptr%!8=(7<<24) .|
00004350  20 25 31 30 30 30 31 0d  22 38 22 e7 20 21 6d 65  | %10001."8". !me|
00004360  6e 75 70 74 72 25 20 80  20 34 20 84 20 74 6f 6b  |nuptr% . 4 . tok|
00004370  65 6e 24 3d 22 23 22 20  8c 0d 22 42 20 6d 65 6e  |en$="#" .."B men|
00004380  75 70 74 72 25 21 38 3d  6d 65 6e 75 70 74 72 25  |uptr%!8=menuptr%|
00004390  21 38 20 84 20 31 3c 3c  38 0d 22 4c 23 6d 65 6e  |!8 . 1<<8."L#men|
000043a0  75 70 74 72 25 21 31 32  3d a0 28 a4 6e 65 78 74  |uptr%!12=.(.next|
000043b0  77 6f 72 64 28 74 65 78  74 24 29 29 0d 22 56 12  |word(text$))."V.|
000043c0  6d 65 6e 75 70 74 72 25  21 31 36 3d 2d 31 0d 22  |menuptr%!16=-1."|
000043d0  60 18 6d 65 6e 75 70 74  72 25 21 32 30 3d a0 28  |`.menuptr%!20=.(|
000043e0  77 6f 72 64 24 29 0d 22  6a 3d e7 20 6d 65 6e 75  |word$)."j=. menu|
000043f0  70 74 72 25 21 32 30 3e  6d 61 78 25 20 80 20 28  |ptr%!20>max% . (|
00004400  21 6d 65 6e 75 70 74 72  25 20 80 20 34 29 3d 30  |!menuptr% . 4)=0|
00004410  20 8c 20 6d 61 78 25 3d  6d 65 6e 75 70 74 72 25  | . max%=menuptr%|
00004420  21 32 30 0d 22 74 05 cc  0d 22 7e 18 24 28 6d 65  |!20."t..."~.$(me|
00004430  6e 75 70 74 72 25 2b 31  32 29 3d 77 6f 72 64 24  |nuptr%+12)=word$|
00004440  0d 22 88 1f e7 20 a9 77  6f 72 64 24 3e 6d 61 78  |."... .word$>max|
00004450  25 20 8c 20 6d 61 78 25  3d a9 77 6f 72 64 24 0d  |% . max%=.word$.|
00004460  22 92 05 cd 0d 22 9c 05  ce 0d 22 a6 1d 21 6d 65  |"...."...."..!me|
00004470  6e 75 70 74 72 25 3d 21  6d 65 6e 75 70 74 72 25  |nuptr%=!menuptr%|
00004480  20 84 20 26 38 30 0d 22  b0 10 6d 65 6e 75 70 74  | . &80."..menupt|
00004490  72 25 2b 3d 32 34 0d 22  ba 18 6f 6c 64 70 74 72  |r%+=24."..oldptr|
000044a0  25 21 31 36 3d 6d 61 78  25 2a 31 36 2b 38 0d 22  |%!16=max%*16+8."|
000044b0  c4 0c 3d 6f 6c 64 70 74  72 25 0d 22 ce 04 0d 22  |..=oldptr%."..."|
000044c0  d8 15 dd 20 a4 74 6f 6b  65 6e 28 f8 20 77 6f 72  |... .token(. wor|
000044d0  64 24 29 0d 22 e2 0d 74  6f 6b 65 6e 24 3d 22 22  |d$)."..token$=""|
000044e0  0d 22 ec 19 e7 20 a7 22  3e 2f 21 23 2d 22 2c c2  |."... .">/!#-",.|
000044f0  77 6f 72 64 24 29 29 20  8c 0d 22 f6 14 74 6f 6b  |word$)) .."..tok|
00004500  65 6e 24 3d c2 77 6f 72  64 24 2c 31 29 0d 23 00  |en$=.word$,1).#.|
00004510  1a 77 6f 72 64 24 3d c0  77 6f 72 64 24 2c a9 77  |.word$=.word$,.w|
00004520  6f 72 64 24 2d 31 29 0d  23 0a 05 cd 0d 23 14 0b  |ord$-1).#....#..|
00004530  3d 74 6f 6b 65 6e 24 0d  23 1e 04 0d 23 28 18 dd  |=token$.#...#(..|
00004540  20 a4 6e 65 78 74 77 6f  72 64 28 f8 20 74 65 78  | .nextword(. tex|
00004550  74 24 29 0d 23 32 10 ea  20 77 6f 72 64 24 2c 70  |t$).#2.. word$,p|
00004560  6f 73 25 0d 23 3c 14 70  6f 73 25 3d a7 74 65 78  |os%.#<.pos%=.tex|
00004570  74 24 2c 22 2c 22 29 0d  23 46 18 77 6f 72 64 24  |t$,",").#F.word$|
00004580  3d c0 74 65 78 74 24 2c  70 6f 73 25 2d 31 29 0d  |=.text$,pos%-1).|
00004590  23 50 18 74 65 78 74 24  3d c1 74 65 78 74 24 2c  |#P.text$=.text$,|
000045a0  70 6f 73 25 2b 31 29 0d  23 5a 0a 3d 77 6f 72 64  |pos%+1).#Z.=word|
000045b0  24 0d 23 64 04 0d 23 6e  45 dd 20 a4 63 72 69 63  |$.#d..#nE. .cric|
000045c0  6f 6e 28 21 62 6c 6b 25  2c 62 6c 6b 25 21 34 2c  |on(!blk%,blk%!4,|
000045d0  62 6c 6b 25 21 38 2c 62  6c 6b 25 21 31 32 2c 62  |blk%!8,blk%!12,b|
000045e0  6c 6b 25 21 31 36 2c 62  6c 6b 25 21 32 30 2c 24  |lk%!16,blk%!20,$|
000045f0  28 62 6c 6b 25 2b 32 34  29 29 0d 23 78 25 c8 99  |(blk%+24)).#x%..|
00004600  22 57 69 6d 70 5f 43 72  65 61 74 65 49 63 6f 6e  |"Wimp_CreateIcon|
00004610  22 2c 2c 62 6c 6b 25 20  b8 20 69 63 6f 6e 25 0d  |",,blk% . icon%.|
00004620  23 82 0a 3d 69 63 6f 6e  25 0d 23 8c 04 0d 23 96  |#..=icon%.#...#.|
00004630  16 dd 20 a4 63 68 65 63  6b 28 6d 65 73 73 61 67  |.. .check(messag|
00004640  65 24 29 0d 23 a0 17 c8  99 22 57 69 6d 70 5f 44  |e$).#...."Wimp_D|
00004650  72 61 67 42 6f 78 22 2c  2c 30 0d 23 aa 0b 21 62  |ragBox",,0.#..!b|
00004660  6c 6b 25 3d 30 0d 23 b4  16 24 28 62 6c 6b 25 2b  |lk%=0.#..$(blk%+|
00004670  34 29 3d 6d 65 73 73 61  67 65 24 0d 23 be 44 c8  |4)=message$.#.D.|
00004680  99 22 57 69 6d 70 5f 52  65 70 6f 72 74 45 72 72  |."Wimp_ReportErr|
00004690  6f 72 22 2c 62 6c 6b 25  2c 31 39 2c 22 4d 65 73  |or",blk%,19,"Mes|
000046a0  73 61 67 65 20 66 72 6f  6d 20 22 2b 70 72 6f 67  |sage from "+prog|
000046b0  72 61 6d 24 20 b8 20 2c  61 6e 73 77 65 72 25 0d  |ram$ . ,answer%.|
000046c0  23 c8 19 e7 20 61 6e 73  77 65 72 25 3d 31 20 8c  |#... answer%=1 .|
000046d0  20 3d b9 20 8b 20 3d a3  0d 23 d2 04 0d 23 dc 11  | =. . =..#...#..|
000046e0  dd 20 a4 73 74 72 69 6e  67 28 62 25 29 0d 23 e6  |. .string(b%).#.|
000046f0  08 ea 20 73 24 0d 23 f0  09 73 24 3d 22 22 0d 23  |.. s$.#..s$="".#|
00004700  fa 0d c8 95 20 3f 62 25  3e 33 31 0d 24 04 0e 73  |.... ?b%>31.$..s|
00004710  24 2b 3d bd 28 3f 62 25  29 0d 24 0e 09 62 25 2b  |$+=.(?b%).$..b%+|
00004720  3d 31 0d 24 18 05 ce 0d  24 22 07 3d 73 24 0d 24  |=1.$....$".=s$.$|
00004730  2c 04 0d 24 36 17 dd 20  f2 72 65 70 6f 72 74 28  |,..$6.. .report(|
00004740  6d 65 73 73 61 67 65 24  29 0d 24 40 17 c8 99 22  |message$).$@..."|
00004750  57 69 6d 70 5f 44 72 61  67 42 6f 78 22 2c 2c 30  |Wimp_DragBox",,0|
00004760  0d 24 4a 0b 21 62 6c 6b  25 3d 30 0d 24 54 16 24  |.$J.!blk%=0.$T.$|
00004770  28 62 6c 6b 25 2b 34 29  3d 6d 65 73 73 61 67 65  |(blk%+4)=message|
00004780  24 0d 24 5e 28 c8 99 22  57 69 6d 70 5f 52 65 70  |$.$^(.."Wimp_Rep|
00004790  6f 72 74 45 72 72 6f 72  22 2c 62 6c 6b 25 2c 31  |ortError",blk%,1|
000047a0  2c 70 72 6f 67 72 61 6d  24 0d 24 68 05 e1 0d 24  |,program$.$h...$|
000047b0  72 04 0d 24 7c 12 dd 20  f2 6f 70 65 6e 28 77 69  |r..$|.. .open(wi|
000047c0  6e 64 25 29 0d 24 86 0f  21 62 6c 6b 25 3d 77 69  |nd%).$..!blk%=wi|
000047d0  6e 64 25 0d 24 90 21 c8  99 22 57 69 6d 70 5f 47  |nd%.$.!.."Wimp_G|
000047e0  65 74 57 69 6e 64 6f 77  53 74 61 74 65 22 2c 2c  |etWindowState",,|
000047f0  62 6c 6b 25 0d 24 9a 0e  62 6c 6b 25 21 32 38 3d  |blk%.$..blk%!28=|
00004800  2d 31 0d 24 a4 0f f2 6f  70 65 6e 77 69 6e 64 6f  |-1.$...openwindo|
00004810  77 0d 24 ae 10 e7 20 ac  61 63 74 69 76 65 25 20  |w.$... .active% |
00004820  8c 0d 24 b8 0d 61 63 74  69 76 65 25 3d b9 0d 24  |..$..active%=..$|
00004830  c2 1d 24 66 69 6c 65 6e  61 6d 65 66 66 66 31 25  |..$filenamefff1%|
00004840  3d 22 54 65 78 74 46 69  6c 65 22 0d 24 cc 1d 24  |="TextFile".$..$|
00004850  66 69 6c 65 6e 61 6d 65  66 66 66 32 25 3d 22 54  |filenamefff2%="T|
00004860  65 78 74 46 69 6c 65 22  0d 24 d6 1c 24 66 69 6c  |extFile".$..$fil|
00004870  65 6e 61 6d 65 61 66 66  25 3d 22 44 72 61 77 46  |enameaff%="DrawF|
00004880  69 6c 65 22 0d 24 e0 05  cd 0d 24 ea 05 e1 0d 24  |ile".$....$....$|
00004890  f4 04 0d 24 fe 11 dd 20  f2 6f 70 65 6e 77 69 6e  |...$... .openwin|
000048a0  64 6f 77 0d 25 08 1d c8  99 22 57 69 6d 70 5f 4f  |dow.%...."Wimp_O|
000048b0  70 65 6e 57 69 6e 64 6f  77 22 2c 2c 62 6c 6b 25  |penWindow",,blk%|
000048c0  0d 25 12 05 e1 0d 25 1c  04 0d 25 26 27 dd 20 f2  |.%....%...%&'. .|
000048d0  73 65 6c 65 63 74 69 63  6f 6e 28 21 62 6c 6b 25  |selecticon(!blk%|
000048e0  2c 62 6c 6b 25 21 34 2c  73 65 6c 65 63 74 25 29  |,blk%!4,select%)|
000048f0  0d 25 30 1f c8 99 22 57  69 6d 70 5f 47 65 74 49  |.%0..."Wimp_GetI|
00004900  63 6f 6e 53 74 61 74 65  22 2c 2c 62 6c 6b 25 0d  |conState",,blk%.|
00004910  25 3a 27 e7 20 73 65 6c  65 63 74 25 20 8c 20 62  |%:'. select% . b|
00004920  6c 6b 25 21 38 3d 31 3c  3c 32 31 20 8b 20 62 6c  |lk%!8=1<<21 . bl|
00004930  6b 25 21 38 3d 30 0d 25  44 11 62 6c 6b 25 21 31  |k%!8=0.%D.blk%!1|
00004940  32 3d 31 3c 3c 32 31 0d  25 4e 3f e7 20 28 62 6c  |2=1<<21.%N?. (bl|
00004950  6b 25 21 32 34 20 80 20  62 6c 6b 25 21 31 32 29  |k%!24 . blk%!12)|
00004960  3c 3e 62 6c 6b 25 21 38  20 8c 20 c8 99 22 57 69  |<>blk%!8 . .."Wi|
00004970  6d 70 5f 53 65 74 49 63  6f 6e 53 74 61 74 65 22  |mp_SetIconState"|
00004980  2c 2c 62 6c 6b 25 0d 25  58 05 e1 0d 25 62 04 0d  |,,blk%.%X...%b..|
00004990  25 6c 1f dd 20 f2 73 65  74 66 63 28 21 62 6c 6b  |%l.. .setfc(!blk|
000049a0  25 2c 62 6c 6b 25 21 34  2c 63 6f 6c 25 29 0d 25  |%,blk%!4,col%).%|
000049b0  76 1f c8 99 22 57 69 6d  70 5f 47 65 74 49 63 6f  |v..."Wimp_GetIco|
000049c0  6e 53 74 61 74 65 22 2c  2c 62 6c 6b 25 0d 25 80  |nState",,blk%.%.|
000049d0  13 62 6c 6b 25 21 38 3d  63 6f 6c 25 3c 3c 32 34  |.blk%!8=col%<<24|
000049e0  0d 25 8a 12 62 6c 6b 25  21 31 32 3d 31 35 3c 3c  |.%..blk%!12=15<<|
000049f0  32 34 0d 25 94 3f e7 20  28 62 6c 6b 25 21 32 34  |24.%.?. (blk%!24|
00004a00  20 80 20 62 6c 6b 25 21  31 32 29 3c 3e 62 6c 6b  | . blk%!12)<>blk|
00004a10  25 21 38 20 8c 20 c8 99  22 57 69 6d 70 5f 53 65  |%!8 . .."Wimp_Se|
00004a20  74 49 63 6f 6e 53 74 61  74 65 22 2c 2c 62 6c 6b  |tIconState",,blk|
00004a30  25 0d 25 9e 05 e1 0d 25  a8 04 0d 25 b2 23 dd 20  |%.%....%...%.#. |
00004a40  f2 73 65 74 66 69 6c 65  74 79 70 65 28 66 69 6c  |.setfiletype(fil|
00004a50  65 24 2c 66 69 6c 65 74  79 70 65 25 29 0d 25 bc  |e$,filetype%).%.|
00004a60  23 c8 99 22 4f 53 5f 46  69 6c 65 22 2c 26 31 32  |#.."OS_File",&12|
00004a70  2c 66 69 6c 65 24 2c 66  69 6c 65 74 79 70 65 25  |,file$,filetype%|
00004a80  0d 25 c6 05 e1 0d 25 d0  04 0d 25 da 16 dd 20 f2  |.%....%...%... .|
00004a90  6e 65 77 74 69 74 6c 65  28 21 62 6c 6b 25 29 0d  |newtitle(!blk%).|
00004aa0  25 e4 23 c8 99 22 57 69  6d 70 5f 47 65 74 57 69  |%.#.."Wimp_GetWi|
00004ab0  6e 64 6f 77 4f 75 74 6c  69 6e 65 22 2c 2c 62 6c  |ndowOutline",,bl|
00004ac0  6b 25 0d 25 ee 3d c8 99  22 57 69 6d 70 5f 46 6f  |k%.%.=.."Wimp_Fo|
00004ad0  72 63 65 52 65 64 72 61  77 22 2c 2d 31 2c 62 6c  |rceRedraw",-1,bl|
00004ae0  6b 25 21 34 2c 62 6c 6b  25 21 31 36 2d 34 34 2c  |k%!4,blk%!16-44,|
00004af0  62 6c 6b 25 21 31 32 2c  62 6c 6b 25 21 31 36 0d  |blk%!12,blk%!16.|
00004b00  25 f8 05 e1 0d 26 02 05  e1 0d ff                 |%....&.....|
00004b0b