Home » Recent acquisitions » Acorn ADFS disks » adfs_AcornUser_199508.adf » !Regulars » Regulars/StarInfo/Allison/!Today/!RunImage

Regulars/StarInfo/Allison/!Today/!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 » Recent acquisitions » Acorn ADFS disks » adfs_AcornUser_199508.adf » !Regulars
Filename: Regulars/StarInfo/Allison/!Today/!RunImage
Read OK:
File size: 4FFE bytes
Load address: 0000
Exec address: 0000
File contents
   10PROCWimp_Start("Today",701,308)
   20PROCUser_SetInitialData
   30PROCCreate_Windows
   40PROCCreate_Menus
   50PROCWimp_WaitForEvent
   60PROCWimp_CloseDown
   70END
   80DEFPROCUser_SetInitialData
   90DIMtimeblk 8,timeformat 128,timestring 128
  100DIMmdays%(12),m3$(12),m3lc$(12)
  110timeblk?0=3:SYS7,14,timeblk
  120MaxLines%=20*3
  130DIMBday$(MaxLines%/3),Eday$(MaxLines%/3),Rday$(MaxLines%/3),Plist$(MaxLines%+10)
  140today$=FNtimetext("%MN%DY"):month$=FNtimetext("%M3"):day$=FNtimetext("%DY")
  150Today%=VAL(FNtimetext("%WN"))
  160Bday%=0:Eday%=0:Rday%=0
  170file$="<Today$Dir>.TodayData."+FNLowerCase(FNtimetext("%M3"))
  180ownfile$="<Today$Dir>.TodayData.own"
  190RESTORE:FORI%=1TO12:READmdays%(I%),m3$(I%),m3lc$(I%):NEXT
  200DATA 31,Jan,jan,29,Feb,feb,31,Mar,mar,30,Apr,apr,31,May,may,30,Jun,jun,31,Jul,jul,31,Aug,aug,30,Sep,sep,31,Oct,oct,30,Nov,nov,31,Dec,dec
  210PROCData_Load(ownfile$)
  220PROCData_Load(file$)
  230PROCPrepare_PrintList(0,"","")
  240ENDPROC
  250DEFPROCCreate_Windows
  260PROCWimp_SpritesLoad
  270Main_Window%=FNWimp_WindowLoad("Main")
  280Info_Window%=FNWimp_WindowLoad("Info")
  290Search_Window%=FNWimp_WindowLoad("Search")
  300Bar_Icon%=FNWimp_IconBar("!Today")
  310PROCWimp_IconPutText(Search_Window%,0,day$):PROCWimp_IconPutText(Search_Window%,1,month$)
  320ENDPROC
  330DEFFNEvent_Save(window%)=FALSE
  340DEFFNEvent_Sprites(window%)=sprites%
  350DEFPROCCreate_Menus
  360menu$="!Today\Info>Info_Window%\Help\Quit"
  370Bar_Menu%=FNWimp_MenuCreate(menu$)
  380menu$="!Today\Info>Info_Window%\Not Today>Search_Window%\Edit\Quit"
  390Main_Menu%=FNWimp_MenuCreate(menu$)
  400ENDPROC
  410DEFFNEvent_Menu(window%)
  420CASEwindow%OF
  430WHENBar_Window%:=Bar_Menu%
  440WHENMain_Window%:=Main_Menu%
  450OTHERWISE:=FALSE
  460ENDCASE
  470DEFPROCEvent_WindowClose(window%,buttons%)
  480CASEwindow%OF
  490ENDCASE
  500ENDPROC
  510DEFPROCEvent_Draw(window%,x_origin%,y_origin%)
  520CASEwindow%OF
  530WHENMain_Window%:PROCUser_DrawMainWindow
  540WHENInfo_Window%:PROCUser_DrawInfoWindow
  550WHENSearch_Window%:PROCUser_DrawSearchWindow
  560ENDCASE
  570ENDPROC
  580DEFPROCUser_DrawMainWindow
  590LOCALi%,x%,y%,h%,l%:Pr%=TRUE
  600h%=32
  610y%=y_origin%-h%
  620FORi%=1TOPlist%
  630x%=x_origin%+h%
  640MOVEx%,y%
  650PRINTPlist$(i%)
  660y%-=h%
  670NEXT
  680Pr%=FALSE
  690ENDPROC
  700DEFPROCUser_DrawInfoWindow
  710ENDPROC
  720DEFPROCUser_DrawSearchWindow
  730ENDPROC
  740DEFPROCEvent_MouseClick(window%,icon%,button%,x%,y%)
  750CASEwindow%OF
  760WHENBar_Window%:PROCWimp_WindowBringToTop(Main_Window%)
  770WHENMain_Window%:PROCUser_MouseMain(button%,icon%)
  780WHENInfo_Window%:PROCUser_MouseInfo(button%,icon%)
  790WHENSearch_Window%:PROCUser_MouseSearch(button%,icon%)
  800ENDCASE
  810ENDPROC
  820DEFPROCUser_MouseMain(button%,icon%)
  830ENDPROC
  840DEFPROCUser_MouseInfo(button%,icon%)
  850ENDPROC
  860DEFPROCUser_MouseSearch(button%,icon%)
  870CASEicon%OF
  880WHEN2:PROCIncDate
  890WHEN3:PROCIncMonth
  900WHEN4:PROCDecDate
  910WHEN5:PROCDecMonth
  920WHEN6:PROCUpdateMain
  930ENDCASE
  940ENDPROC
  950DEFPROCEvent_KeyPress(window%,icon%,key%)
  960CASEwindow%OF
  970WHENSearch_Window%:IFkey%=13PROCUpdateMain:ENDCASE
  980ENDCASE
  990ENDPROC
 1000DEFPROCEvent_MenuChoice(menu%)
 1010CASEmenu%OF
 1020WHENBar_Menu%:PROCUser_MenuChoiceBar
 1030WHENMain_Menu%:PROCUser_MenuChoiceMain
 1040ENDCASE
 1050ENDPROC
 1060DEFPROCUser_MenuChoiceBar
 1070CASEFNWimp_MenuChoice(0)OF
 1080WHEN1
 1090WHEN2:PROCWimp_SendToEdit("<Today$Dir>.!Help")
 1100WHEN3:finished%=TRUE
 1110ENDCASE
 1120ENDPROC
 1130DEFPROCUser_MenuChoiceMain
 1140CASEFNWimp_MenuChoice(0)OF
 1150WHEN1
 1160WHEN2
 1170WHEN3:PROCWimp_SendToEdit("<Today$Dir>.TodayData.own")
 1180WHEN4:finished%=TRUE
 1190ENDCASE
 1200ENDPROC
 1210DEFPROCEvent_LoadFile(file$,type$)
 1220ENDPROC
 1230DEFPROCEvent_SaveFile(file$,window%)
 1240ENDPROC
 1250DEFFNtimetext(f$)
 1260$timeformat=f$+CHR$0
 1270SYS&C1,timeblk,timestring,64,timeformatTOr0,r1
 1280?r1=13
 1290=$timestring
 1300DEFFNLowerCase(A$)
 1310LOCALI%:B$=""
 1320FORI%=1TOLEN(A$)
 1330B$=B$+CHR$(ASC(MID$(A$,I%,1))OR&20)
 1340NEXT
 1350=B$
 1360DEFPROCData_Load(file$)
 1370SYS"Hourglass_On"
 1380LOCALF%,Line$,Failed%
 1390F%=OPENIN(file$)
 1400REPEAT
 1410Line$=GET$#F%
 1420IFLEFT$(Line$,1)="*"THENLine$=GET$#F%
 1430PROCWeekday
 1440IF(MID$(Line$,2,4)=today$OR((MID$(Line$,2,2)="00"ANDMID$(Line$,4,2)=MID$(today$,3,2))OR(MID$(Line$,4,2)="00"ANDMID$(Line$,2,2)=MID$(today$,1,2))))X%=TRUEELSEX%=FALSE
 1450IF(LEFT$(Line$,1)="B"AND X%)THENBday$(Bday%+1)=Line$:Bday%+=1
 1460IF(LEFT$(Line$,1)="S"AND X%)THENEday$(Eday%+1)=Line$:Eday%+=1
 1470IF(LEFT$(Line$,1)="R"AND X%)THENRday$(Rday%+1)=Line$:Rday%+=1
 1480UNTIL(EOF#F%OR(Bday%+Eday%+Rday%)=MaxLines%)
 1490CLOSE#F%
 1500SYS"Hourglass_Off"
 1510IF(Bday%+Eday%)=MaxLines%THENMess$="Data Overflow...":PROCWimp_WindowAlert("WHOOPS!...",Mess$)
 1520ENDPROC
 1530DEFPROCWeekday
 1540LOCALQ%
 1550Q%=INSTR("1234567C ",MID$(Line$,10,1))
 1560IFQ%>7ENDPROC
 1570IFEOF#F%THEN
 1580IFQ%<>Today%THENLine$="":ENDPROCELSEENDPROC
 1590ENDIF
 1600IFQ%<>Today%Line$=GET$#F%:PROCWeekdayELSEENDPROC
 1610ENDPROC
 1620DEFPROCPrepare_PrintList(Q%,A$,B$)
 1630Plist%=1
 1640IFQ%=0THENPlist$(Plist%)=FNtimetext("Today is %WE %zDY%ST %MO %CE%YR"):Plist%+=1
 1650IFQ%=1THENPlist$(Plist%)="Data for "+A$+" "+B$:Plist%+=1
 1660PROCAddToList("Reminders ",Rday%,Rday$())
 1670PROCAddToList("Birthdays ",Bday%,Bday$())
 1680PROCAddToList("Anniversaries ",Eday%,Eday$())
 1690ENDPROC
 1700DEFPROCAddToList(Z$,Z%,Y$())
 1710IFZ%=0THENENDPROC
 1720Plist$(Plist%)="":Plist%+=1
 1730Plist$(Plist%)=Z$:Plist%+=1
 1740Plist$(Plist%)="":Plist%+=1
 1750FORI%=1TOZ%
 1760A$=MID$(Y$(I%),6)
 1770IFMID$(A$,5,1)<>" "THENA$=STRING$(5," ")+MID$(A$,6)
 1780Plist$(Plist%)=A$:Plist%+=1
 1790NEXT
 1800ENDPROC
 1810DEFPROCIncDate
 1820LOCALA$,B$,I%
 1830A$=FNWimp_IconText(Search_Window%,0)
 1840B$=FNWimp_IconText(Search_Window%,1)
 1850B$=FNLowerCase(B$)
 1860I%=0:REPEAT:I%+=1:UNTILB$=m3lc$(I%)
 1870A$=STR$(VAL(A$)+1)
 1880IFVAL(A$)>=mdays%(I%)THENA$=STR$(mdays%(I%))
 1890PROCWimp_IconPutText(Search_Window%,0,A$)
 1900ENDPROC
 1910DEFPROCIncMonth
 1920LOCALA$,I%
 1930A$=FNWimp_IconText(Search_Window%,1)
 1940A$=FNLowerCase(A$)
 1950I%=0:REPEAT:I%+=1:UNTILA$=m3lc$(I%)
 1960IFI%=12 I%=0
 1970PROCWimp_IconPutText(Search_Window%,1,m3$(I%+1))
 1980ENDPROC
 1990DEFPROCDecDate
 2000LOCALA$,I%
 2010A$=FNWimp_IconText(Search_Window%,0)
 2020A$=STR$(VAL(A$)-1)
 2030IFA$="0"A$="1"
 2040PROCWimp_IconPutText(Search_Window%,0,A$)
 2050ENDPROC
 2060DEFPROCDecMonth
 2070LOCALA$,I%
 2080A$=FNWimp_IconText(Search_Window%,1)
 2090A$=FNLowerCase(A$)
 2100I%=0:REPEAT:I%+=1:UNTILA$=m3lc$(I%)
 2110IFI%=1 I%=13
 2120PROCWimp_IconPutText(Search_Window%,1,m3$(I%-1))
 2130ENDPROC
 2140DEFPROCUpdateMain
 2150LOCALA$,B$,C$,J%,I%,K%,Mess$
 2160A$=FNWimp_IconText(Search_Window%,0)
 2170B$=FNWimp_IconText(Search_Window%,1)
 2180Today%=9:J%=0:B$=FNLowerCase(B$)
 2190IFLEN(A$)=1 A$="0"+A$
 2200FORI%=1TO12
 2210IFm3lc$(I%)=B$THENJ%=1
 2220NEXT
 2230IFJ%=0THENMess$="Month spelt incorrectly":PROCWimp_WindowAlert("Whoops!",Mess$):ENDPROC
 2240K%=0:REPEAT:K%+=1:UNTILB$=m3lc$(K%)
 2250C$=STR$(K%):IFLEN(C$)=1 C$="0"+C$
 2260IFVAL(A$)>mdays%(K%)THENMess$="Too many days in this month":PROCWimp_WindowAlert("Whoops!",Mess$):ENDPROC
 2270FORI%=0TOMaxLines%/3:Bday$(I%)="":Eday$(I%)="":Rday$(I%)="":NEXT
 2280FORI%=0TOMaxLines%+10:Plist$="":NEXT
 2290file$="<Today$Dir>.TodayData."+B$
 2300Bday%=0:Eday%=0:Rday%=0:today$=C$+A$
 2310FORI%=1TOPlist%:Plist$(I%)="":NEXT
 2320PROCData_Load(ownfile$)
 2330PROCData_Load(file$)
 2340PROCPrepare_PrintList(1,A$,m3$(K%))
 2350PROCWimp_WindowForceDraw(Main_Window%)
 2360PROCWimp_WindowClose(Search_Window%)
 2370PROCWimp_MenuClose
 2380ENDPROC
 2390DEFPROCWimp_WindowAlert(title$,message$)
 2400PROCWimp_WindowAlertBox(title$,message$,0)
 2410ENDPROC
 2420DEFPROCWimp_WindowAlertBox(title$,message$,button%)
 2430LOCALresponse%
 2440$(wimp%+4)=message$
 2450CASEbutton%OF
 2460WHEN2:response%=1
 2470WHEN1:response%=15
 2480WHEN3:response%=(1<<5)+16
 2490WHEN4:response%=(1<<6)+16
 2500OTHERWISE:response%=16
 2510ENDCASE
 2520SYS"Wimp_ReportError",wimp%,response%,title$TO,response%
 2530ENDPROC
 2540DEFFNWimp_WindowCancel(title$,message$)
 2550$(wimp%+4)=message$
 2560response%=23
 2570SYS"Wimp_ReportError",wimp%,response%,title$TO,response%
 2580=response%-2
 2590DEFPROCWimp_WindowErrorBox(title$,message$)
 2600PROCWimp_WindowAlertBox(title$,message$,2)
 2610ENDPROC
 2620DEFFNWimp_WindowTitle(window%)
 2630wimp%!0=window%
 2640SYS"Wimp_GetWindInfo",,wimp%
 2650IF((wimp%!60)AND&100)=0ERROR1,"Title isn't indirected"
 2660=$(wimp%!76)
 2670DEFFNWimp_WindowLoad(window$)
 2680=FNWimp_WindowLoadFrom(window$,"<Obey$Dir>.Templates")
 2690DEFFNWimp_WindowLoadFrom(window$,template$)
 2700LOCALc%,i%,n%,j%,sp$,sp2$
 2710SYS"Wimp_OpenTemplate",,template$
 2720SYS"Wimp_LoadTemplate",,wimp%,icons%,icon_memory%,-1,window$,0TO,,icons%
 2730CASEsprites%OF
 2740WHEN1:wimp%!64=sprites%
 2750OTHERWISE:wimp%!64=FNEvent_Sprites(window%)
 2760ENDCASE
 2770SYS"Wimp_CreateWindow",,wimp%TOc%
 2780SYS"Wimp_CloseTemplate"
 2790SYS"Wimp_WhichIcon",c%,wimp%+40,1+2+(1<<8),2+(1<<8)
 2800CASEwimp%!40OF
 2810WHEN-1
 2820OTHERWISE:i%=40
 2830REPEAT
 2840wimp%!4=wimp%!i%:wimp%!0=c%
 2850SYS"Wimp_GetIconState",,wimp%
 2860sp$=FNWimp_GetStringAtAddress(wimp%!28)
 2870SYS"Wimp_DeleteIcon",,wimp%
 2880CASEsprites%OF
 2890WHEN1:wimp%!32=1
 2900OTHERWISE
 2910SYS"OS_SpriteOp",&108,sprites%TO,,,n%
 2920j%=0
 2930REPEAT:j%+=1
 2940SYS"OS_SpriteOp",&10D,sprites%,pointer_block%,20,j%
 2950sp2$=FNWimp_GetStringAtAddress(pointer_block%)
 2960UNTILj%=n%ORsp$=sp2$
 2970IFsp$=sp2$THENwimp%!32=sprites%ELSEwimp%!32=1
 2980ENDCASE
 2990wimp%!4=c%
 3000SYS"Wimp_CreateIcon",,wimp%+4TOhandle%
 3010i%+=4
 3020UNTIL(wimp%!i%)=-1
 3030ENDCASE
 3040=c%
 3050DEFPROCWimp_WindowBringToTop(window%)
 3060!wimp%=window%
 3070SYS"Wimp_GetWindowState",,wimp%
 3080wimp%!28=-1
 3090SYS"Wimp_OpenWindow",,wimp%
 3100ENDPROC
 3110DEFPROCWimp_WindowClose(window%)
 3120!wimp%=window%
 3130SYS"Wimp_CloseWindow",,wimp%
 3140ENDPROC
 3150DEFPROCWimp_WindowForceDraw(window%)
 3160CASEwindow%OF
 3170WHEN-1:SYS"Wimp_ForceRedraw",-1,0,0,2*1280,2*1024
 3180OTHERWISE:SYS"Wimp_ForceRedraw",window%,0,-2*1024,2*1280,0
 3190ENDCASE
 3200ENDPROC
 3210DEFPROCWimp_WindowOpen(window%)
 3220!wimp%=window%
 3230SYS"Wimp_GetWindowState",,wimp%
 3240SYS"Wimp_OpenWindow",,wimp%
 3250ENDPROC
 3260PROCWimp_WindowInterface
 3270SYS"Wimp_BorderWindow",,wimp%
 3280ENDPROC
 3290DEFFNWimp_IconBar(Sprite$)
 3300LOCALicon%
 3310wimp%!0=-1
 3320wimp%!4=0:wimp%!8=0
 3330wimp%!12=68:wimp%!16=68
 3340wimp%!20=&3002
 3350$(wimp%+24)=Sprite$
 3360SYS"Wimp_CreateIcon",,wimp%TOicon%
 3370=icon%
 3380DEFPROCWimp_IconCaret(window%,icon%,chars%)
 3390SYS"Wimp_SetCaretPosition",window%,icon%,,,-1,chars%
 3400ENDPROC
 3410DEFFNWimp_IconText(window%,icon%)
 3420wimp%!0=window%:wimp%!4=icon%
 3430SYS"Wimp_GetIconState",,wimp%
 3440IF((wimp%!24)AND&100)=0ERROR1,"Icon isn't indirected"
 3450=$(wimp%!28)
 3460DEFFNWimp_IconValidation(window%,icon%)
 3470wimp%!0=window%:wimp%!4=icon%
 3480SYS"Wimp_GetIconState",,wimp%
 3490IF((wimp%!24)AND&100)=0ERROR1,"Icon isn't indirected"
 3500=$(wimp%!32)
 3510DEFPROCWimp_IconDisable(window%,icon%)
 3520wimp%!0=window%:wimp%!4=icon%
 3530wimp%!8=1<<22:wimp%!12=1<<22
 3540SYS"Wimp_SetIconState",,wimp%
 3550ENDPROC
 3560DEFPROCWimp_IconEnable(window%,icon%)
 3570wimp%!0=window%:wimp%!4=icon%
 3580wimp%!8=0:wimp%!12=1<<22
 3590SYS"Wimp_SetIconState",,wimp%
 3600ENDPROC
 3610DEFFNWimp_IconPutSprite(window%,icon%,sprite$)
 3620wimp%!0=window%:wimp%!4=icon%
 3630SYS"Wimp_GetIconState",,wimp%
 3640SYS"Wimp_DeleteIcon",,wimp%
 3650wimp%!4=wimp%!8:wimp%!8=wimp%!12:wimp%!12=wimp%!16
 3660wimp%!16=wimp%!20:wimp%!20=wimp%!24:$(wimp%+24)=sprite$
 3670SYS"Wimp_CreateIcon",,wimp%TOicon%
 3680=icon%
 3690DEFPROCWimp_IconPutText(window%,icon%,text$)
 3700wimp%!0=window%:wimp%!4=icon%
 3710SYS"Wimp_GetIconState",,wimp%
 3720IF((wimp%!24)AND&100)=0ERROR1,"Icon isn't indirected"
 3730$(wimp%!28)=text$
 3740wimp%!0=window%:wimp%!4=icon%
 3750wimp%!8=0:wimp%!12=0
 3760SYS"Wimp_SetIconState",,wimp%
 3770ENDPROC
 3780DEFPROCWimp_IconInterfaceStart
 3790SYS"Wimp_BorderIcon",,wimp%
 3800ENDPROC
 3810DEFPROCWimp_IconInterfaceFinish
 3820wimp%!8=0
 3830SYS"Wimp_BorderIcon",,wimp%
 3840ENDPROC
 3850DEFPROCWimp_MenuAdjustOn(menu%)
 3860SYS"Wimp_GetPointerInfo",,pointer_block%
 3870IF((pointer_block%!8)AND1)=1THENSYS"Wimp_CreateMenu",,menu%,pointer_block%!0,pointer_block%!4
 3880ENDPROC
 3890DEFFNWimp_MenuChoice(level%)
 3900=(wimp%!(4*level%))+1
 3910DEFFNWimp_MenuCreate(menu$)
 3920IFmenu$="Colours"THEN=FNWimp_MenuColours
 3930LOCALmenu%,index%,width%,length%,k%,s%
 3940DIMmenu%28+FNWimp_MenuNoOfEntries(menu$)*24
 3950menu%?12=7:menu%?13=2:menu%?14=7:menu%?15=0
 3960menu%!16=140:menu%!20=44:menu%!24=0
 3970index%=menu%+28
 3980$menu%=LEFT$(menu$,INSTR(menu$,"\")-1)
 3990width%=LEN(LEFT$(menu$,INSTR(menu$,"\")-1))
 4000menu$+="\":Menu_NoOfEntries%=0
 4010WHILEmenu$<>""
 4020menu$=MID$(menu$,INSTR(menu$,"\")+1)
 4030CASEmenu$OF
 4040WHEN""
 4050OTHERWISE
 4060!index%=0:index%!4=-1:index%!8=&7000021
 4070length%=INSTR(menu$,"\")-1
 4080k%=INSTR(LEFT$(menu$,length%),">")
 4090CASEk%OF
 4100WHEN0
 4110OTHERWISE
 4120s%=EVAL(MID$(menu$,k%+1,length%-k%))
 4130index%!4=s%
 4140length%=k%-1
 4150ENDCASE
 4160$(index%+12)=LEFT$(menu$,length%)
 4170IFlength%>width%THENwidth%=length%
 4180index%+=24
 4190ENDCASE
 4200ENDWHILE
 4210menu%!16=16*(width%+1)
 4220index%!-24=index%!-24OR&80:=menu%
 4230DEFFNWimp_MenuColours
 4240=FNWimp_MenuCreateColours(" ")
 4250DEFFNWimp_MenuCreateColours(title$)
 4260LOCALx$,men%,j%,i%
 4270x$=title$+"\0\1\2\3\4\5\6\7\8\9\10\11\12\13\14\15"
 4280men%=FNWimp_MenuCreate(x$)
 4290FORi%=0TO15
 4300CASETRUEOF
 4310WHENi%<4,i%=9,i%=12,i%=14,i%=15:j%=7
 4320OTHERWISE:j%=0
 4330ENDCASE
 4340men%?(39+i%*24)=i%*16+j%
 4350PROCWimp_MenuCentre(men%,i%+1)
 4360NEXT
 4370=men%
 4380DEFFNWimp_MenuNoOfEntries(menu$)
 4390LOCALn%,j%:n%=0:j%=0
 4400REPEAT
 4410j%=INSTR(menu$,"\",j%+1)
 4420IFj%<>0THENn%+=1
 4430UNTILj%=0
 4440=n%
 4450DEFPROCWimp_MenuBackGroundColour(menu%,item%,colour%)
 4460LOCALfore%,i%
 4470fore%=(menu%?(39+(item%-1)*24))MOD16
 4480i%=((menu%?(39+(item%-1)*24))DIV16)MOD16
 4490menu%?(39+(item%-1)*24)=fore%+16*colour%+i%
 4500ENDPROC
 4510DEFPROCWimp_MenuCentre(menu%,item%)
 4520menu%!(36+(item%-1)*24)=menu%!(36+(item%-1)*24)OR(1<<3)
 4530ENDPROC
 4540DEFPROCWimp_MenuClose
 4550SYS"Wimp_CreateMenu",-1
 4560ENDPROC
 4570DEFPROCWimp_MenuDisable(menu%,item%)
 4580menu%!(36+(item%-1)*24)=menu%!(36+(item%-1)*24)OR(1<<22)
 4590ENDPROC
 4600DEFPROCWimp_MenuDottedLine(menu%,item%)
 4610menu%!(28+(item%-1)*24)=(menu%!(28+(item%-1)*24))OR2
 4620ENDPROC
 4630DEFPROCWimp_MenuEnable(menu%,item%)
 4640PROCWimp_MenuDisable(menu%,item%)
 4650menu%!(36+(item%-1)*24)=menu%!(36+(item%-1)*24)EOR(1<<22)
 4660ENDPROC
 4670DEFPROCWimp_MenuForegroundColour(menu%,item%,colour%)
 4680menu%?(39+(item%-1)*24)=colour%+16*((menu%?(39+(item%-1)*24))DIV16)
 4690ENDPROC
 4700DEFPROCWimp_MenuGlue(menu1%,item%,menu2%)
 4710menu1%!(8+item%*24)=menu2%
 4720ENDPROC
 4730DEFPROCWimp_MenuItem(menu%,item%,item$)
 4740$(menu%+(40+(item%-1)*24))=LEFT$(item$,12)+CHR$0
 4750ENDPROC
 4760DEFPROCWimp_MenuMessage(menu%,item%)
 4770menu%!(28+(item%-1)*24)=(menu%!(28+(item%-1)*24))EOR(1<<3)
 4780ENDPROC
 4790DEFPROCWimp_MenuPopUp(Menu%,x%,y%)
 4800menu%=Menu%
 4810SYS"Wimp_CreateMenu",,menu%,x%-64,y%+20
 4820ENDPROC
 4830DEFPROCWimp_MenuPopUpBar(x%,y%)
 4840LOCALn%:n%=0
 4850WHILE((Bar_Menu%!(28+n%*24))AND%10000000)=0
 4860n%+=1
 4870ENDWHILE
 4880SYS"Wimp_CreateMenu",,Bar_Menu%,x%-64,96+n%*44
 4890menu%=Bar_Menu%
 4900ENDPROC
 4910DEFPROCWimp_MenuTick(menu%,item%)
 4920menu%!(28+(item%-1)*24)=(menu%!(28+(item%-1)*24))EOR1
 4930ENDPROC
 4940DEFPROCWimp_MenuTitle(menu%,title$)
 4950$menu%=LEFT$(title$,12)+CHR$0
 4960ENDPROC
 4970DEFPROCWimp_MenuWrite(menu%,item%,buffer%,val%,BufferLength%)
 4980menu%!(28+(item%-1)*24)=(menu%!(28+(item%-1)*24))OR4
 4990menu%!(36+(item%-1)*24)=menu%!(36+(item%-1)*24)OR&100
 5000menu%!(40+(item%-1)*24)=buffer%
 5010menu%!(44+(item%-1)*24)=val%
 5020menu%!(48+(item%-1)*24)=BufferLength%
 5030ENDPROC
 5040DEFPROCWimp_SpritesLoad
 5050PROCWimp_SpritesPathLoad("<Obey$Dir>.Sprites")
 5060direct_sprites%=sprites%
 5070ENDPROC
 5080DEFPROCWimp_SpritesPathLoad(pathname$)
 5090LOCALS%,T%
 5100S%=OPENIN"<Obey$Dir>.Sprites":T%=EXT#S%+16:CLOSE#S%
 5110DIMsprites%T%,spname%12
 5120!sprites%=T%:sprites%!8=0
 5130SYS"OS_SpriteOp",&109,sprites%
 5140SYS"OS_SpriteOp",&10A,sprites%,pathname$
 5150ENDPROC
 5160DEFFNWimp_FileType(type%)
 5170CASEtype%OF
 5180WHEN&FFF:="Text"
 5190WHEN&FFD:="Data"
 5200WHEN&FFB:="Basic"
 5210WHEN&FF9:="Sprite"
 5220WHEN&FED:="Palette"
 5230WHEN&FEC:="Template"
 5240WHEN&AFF:="Draw"
 5250WHEN&1000:="Folder"
 5260WHEN&2000:="Application"
 5270OTHERWISE=STR$~(type%)
 5280ENDCASE
 5290DEFFNWimp_GetFilePathName
 5300=FNWimp_GetStringAtAddress(wimp%+44)
 5310DEFFNWimp_FileLoad(pathname$)
 5320LOCALS%,T%,file%
 5330S%=OPENINpathname$
 5340T%=EXT#S%+16
 5350CLOSE#S%
 5360DIMfile%T%
 5370OSCLI("LOAD"+pathname$+""+STR$~file%)
 5380=file%
 5390DEFFNWimp_GetStringAtAddress(array%)
 5400LOCALs$:s$=""
 5410WHILE(?array%<>13)AND(?array%<>0):s$+=CHR$(?array%):array%+=1:ENDWHILE
 5420=s$
 5430DEFFNWimp_GetFileFromPathname(f$)
 5440CASEINSTR(f$,".")OF
 5450WHEN0:=f$
 5460OTHERWISE:=FNWimp_GetFileFromPathname(RIGHT$(f$,LEN(f$)-INSTR(f$,".")))
 5470ENDCASE
 5480DEFPROCWimp_SendToEdit(file$)
 5490LOCALn%
 5500wimp%!4=&6CC01C0C
 5510wimp%!16=5
 5520wimp%!36=0
 5530wimp%!40=&FFF
 5540$(wimp%+44)=file$+CHR$0
 5550n%=LENfile$+45
 5560IFn%MOD4THEN!wimp%=4+(n%>>2)<<2ELSE!wimp%=n%
 5570SYS"Wimp_SendMessage",17,wimp%,0
 5580ENDPROC
 5590DEFPROCWimp_Start(TaskName$,wimp_memory%,icon%)
 5600DIMwimp%wimp_memory%,icons%icon%
 5610IFwimp_memory%<256THENwimp_memory%=256
 5620icon_memory%=icons%+icon%
 5630task$=TaskName$
 5640indirect_sprites%=1:direct_sprites%=1
 5650PROCWimp_SetEventVariables
 5660ONERRORPROCWimp_Error:END
 5670SYS"Wimp_Initialise",200,&4B534154,TaskName$TOversion%,task%
 5680ENDPROC
 5690DEFFNWimp_BASICParameters
 5700LOCALcom$,param$,I%
 5710SYS"OS_GetEnv"TOcom$
 5720params$=""
 5730I%=INSTR(com$," -quit ")
 5740IFI%THENparams$=MID$(com$,INSTR(com$," ",I%+LEN" -quit ")+1)
 5750=params$
 5760DEFPROCWimp_SetEventVariables
 5770DIMpointer_block%20
 5780interface%=FALSE
 5790null%=1:draw%=2:pointer_leaving%=1<<4
 5800pointer_entering%=1<<5:mouse%=1<<6:drag%=1<<7
 5810key%=1<<8:menu%=1<<9:scroll%=1<<10
 5820lose_caret%=1<<11:gain_caret%=1<<12:message%=(1<<17)+(1<<18)
 5830recorder%=1<<18:acknowledge%=1<<19:window%=0
 5840sprites%=1:version%=0:task%=0
 5850Bar_Window%=-2:Bar_Icon%=0:Bar_Menu%=0
 5860x_origin%=0:y_origin%=0:SaveWindow%=-3
 5870message_quit%=0:message_save%=2:message_load%=3
 5880mouse_button%=2:save_event%=0
 5890top_line%=0:bottom_line%=0
 5900ENDPROC
 5910DEFPROCWimp_Error
 5920LOCALX$,x%
 5930ONERROROFF
 5940x%=ERL
 5950X$=REPORT$+"atline"+STR$(x%DIV10)
 5960DIMErrorMsg%36
 5970ErrorMsg%!0=36:ErrorMsg%!12=0:ErrorMsg%!16=&81080:ErrorMsg%!20=x%
 5980$(ErrorMsg%+24)="!RunImage"
 5990SYS"Wimp_SendMessage",17,ErrorMsg%
 6000PROCWimp_WindowAlert(task$,X$)
 6010PROCWimp_CloseDown
 6020ENDPROC
 6030DEFPROCWimp_CloseDown
 6040SYS"Wimp_CloseDown",task%,"TASK"
 6050ENDPROC
 6060DEFPROCWimp_Quit
 6070finished%=TRUE
 6080ENDPROC
 6090DEFFNWimp_ReadVariable(Variable$)
 6100LOCALlen%,result%,variable%
 6110$wimp%=Variable$
 6120SYS"OS_ReadVarVal",wimp%,wimp%+255,255,,3TO,,len%
 6130wimp%?(len%+255)=13
 6140=$(wimp%+255)
 6150DEFPROCWimp_WaitForEvent
 6160LOCALmask%,event%
 6170finished%=FALSE
 6180mask%=%111000011001
 6190REPEAT
 6200SYS"Wimp_Poll",mask%,wimp%TOevent%
 6210CASEevent%OF
 6220WHEN0
 6230WHEN1:PROCWimp_PollDrawWindow
 6240WHEN2:SYS"Wimp_OpenWindow",,wimp%
 6250WHEN3:PROCWimp_PollCloseWindow
 6260WHEN4
 6270WHEN5
 6280WHEN6:PROCWimp_PollMouseClick
 6290WHEN7:PROCWimp_PollSaveMessage
 6300WHEN8:PROCWimp_PollKeyPress
 6310WHEN9:PROCEvent_MenuChoice(menu%)
 6320WHEN10
 6330WHEN11
 6340WHEN12
 6350WHEN17,18:PROCWimp_PollMessages
 6360WHEN19
 6370ENDCASE
 6380UNTILfinished%
 6390ENDPROC
 6400DEFPROCWimp_PollDrawWindow
 6410LOCALmore%
 6420SYS"Wimp_RedrawWindow",,wimp%TOmore%
 6430window%=wimp%!0
 6440x_origin%=16+wimp%!4-wimp%!20:y_origin%=-16+wimp%!16-wimp%!24
 6450WHILEmore%
 6460IFinterface%THENSYS"Wimp_BorderWindow",,wimp%
 6470PROCEvent_Draw(window%,x_origin%,y_origin%)
 6480SYS"Wimp_GetRectangle",,wimp%TOmore%
 6490ENDWHILE
 6500ENDPROC
 6510DEFPROCWimp_PollCloseWindow
 6520SYS"Wimp_GetPointerInfo",,wimp%
 6530window%=wimp%!12:buttons%=wimp%!8
 6540PROCEvent_WindowClose(window%,buttons%)
 6550!wimp%=window%:SYS"Wimp_CloseWindow",,wimp%
 6560ENDPROC
 6570DEFPROCWimp_PollMouseClick
 6580button%=wimp%!8:window%=wimp%!12:icon%=wimp%!16:x%=wimp%!0:y%=wimp%!4
 6590CASEbutton%OF
 6600WHEN2:PROCWimp_PollMenuPopUp
 6610OTHERWISE:CASEFNEvent_Save(window%)OF
 6620WHENTRUE:PROCWimp_PollMouseSave
 6630WHENFALSE:PROCWimp_PollEventMouseClick
 6640ENDCASE
 6650ENDCASE
 6660ENDPROC
 6670DEFPROCWimp_PollMenuPopUp
 6680menu%=FNEvent_Menu(window%)
 6690CASEmenu%OF
 6700WHENFALSE
 6710OTHERWISE
 6720CASEwindow%OF
 6730WHEN-2:n%=0
 6740WHILE((Bar_Menu%!(28+n%*24))AND%10000000)=0
 6750n%+=1
 6760ENDWHILE
 6770SYS"Wimp_CreateMenu",,Bar_Menu%,x%-64,96+n%*44
 6780OTHERWISE:SYS"Wimp_CreateMenu",,menu%,x%-64,y%+20
 6790ENDCASE
 6800ENDCASE
 6810ENDPROC
 6820DEFPROCWimp_PollMouseSave
 6830CASEicon%OF
 6840WHEN0:IFbutton%AND&50THENPROCWimp_PollDragBox(window%)
 6850WHEN2:IFbutton%AND 5THENPROCWimp_PollSaveFile(window%)
 6860ENDCASE
 6870ENDPROC
 6880DEFPROCWimp_PollEventMouseClick
 6890IFinterface%THENSYS"Wimp_BorderIcon",,wimp%
 6900PROCEvent_MouseClick(window%,icon%,button%,x%,y%)
 6910CASEinterface%OF
 6920WHENTRUE
 6930wimp%!0=x%:wimp%!4=y%:wimp%!8=0
 6940wimp%!12=window%:wimp%!16=icon%
 6950SYS"Wimp_BorderIcon",,wimp%
 6960ENDCASE
 6970ENDPROC
 6980DEFPROCWimp_PollSaveFile(window%)
 6990LOCALfile$
 7000wimp%!0=window%:wimp%!4=1:SYS"Wimp_GetIconState",,wimp%
 7010file$=$(wimp%!28)
 7020CASEINSTR(file$,".")OF
 7030WHEN0
 7040$(wimp%+4)="To save, drag the icon to a directory window"
 7050SYS"Wimp_ReportError",wimp%,16,task$
 7060OTHERWISE
 7070PROCEvent_SaveFile(file$,window%)
 7080ENDCASE
 7090SYS"Wimp_CreateMenu",-1
 7100ENDPROC
 7110DEFPROCWimp_PollDragBox(window%)
 7120LOCALx%,y%
 7130save%=window%
 7140!wimp%=window%
 7150SYS"Wimp_GetWindowState",,wimp%
 7160x%=wimp%!4-wimp%!20:y%=wimp%!16-wimp%!24
 7170wimp%!4=0
 7180SYS"Wimp_GetIconState",,wimp%
 7190!wimp%=window%
 7200wimp%!4=5
 7210wimp%!8=x%+wimp%!8:wimp%!12=y%+wimp%!12
 7220wimp%!16=x%+wimp%!16:wimp%!20=y%+wimp%!20
 7230wimp%!24=0:wimp%!28=0
 7240wimp%!32=&7FFFFFFF:wimp%!36=&7FFFFFFF
 7250SYS"Wimp_DragBox",,wimp%
 7260ENDPROC
 7270DEFPROCWimp_PollKeyPress
 7280window%=wimp%!0:icon%=wimp%!4:key%=wimp%!24
 7290CASEFNEvent_Save(window%)OF
 7300WHENTRUE:PROCWimpPoll_SaveFile(window%)
 7310WHENFALSE:PROCEvent_KeyPress(window%,icon%,key%)
 7320ENDCASE
 7330ENDPROC
 7340DEFPROCWimp_PollSaveMessage
 7350LOCALfile$,window%,icon%,x%,y%
 7360SYS"Wimp_GetPointerInfo",,wimp%
 7370window%=wimp%!12:icon%=wimp%!16:x%=wimp%!0:y%=wimp%!4
 7380wimp%!0=save%:wimp%!4=1:SYS"Wimp_GetIconState",,wimp%
 7390file$=$(wimp%!28)
 7400file$=FNWimp_GetFileFromPathname(file$)
 7410wimp%!20=window%
 7420wimp%!24=icon%
 7430wimp%!28=x%:wimp%!32=y%
 7440wimp%!36=length%
 7450wimp%!0=64
 7460wimp%!12=0
 7470wimp%!16=1
 7480wimp%!40=&FFF
 7490$(wimp%+44)=file$
 7500SYS"Wimp_SendMessage",17,wimp%,wimp%!20,wimp%!24
 7510ENDPROC
 7520DEFPROCWimp_PollMessages
 7530LOCALfile$
 7540file$=FNWimp_GetStringAtAddress(wimp%+44)
 7550CASEwimp%!16OF
 7560WHEN0:finished%=TRUE
 7570WHEN1
 7580WHEN2
 7590wimp%!0=save%:wimp%!4=1:SYS"Wimp_GetIconState",,wimp%
 7600$(wimp%!28)=file$
 7610wimp%!0=save%:wimp%!4=1:wimp%!8=0:wimp%!12=0
 7620SYS"Wimp_SetIconState",,wimp%
 7630SYS"Wimp_SetCaretPosition",save%,1,,,-1,LENfile$
 7640PROCEvent_SaveFile(file$,save%)
 7650WHEN3
 7660type$=FNWimp_FileType(wimp%!40):PROCEvent_LoadFile(file$,type$)
 7670ENDCASE
 7680ENDPROC
 7690DEFFNWimp_GetStringAtAddress(array%)
 7700LOCALs$:s$=""
 7710WHILE(?array%<>13)AND(?array%<>0):s$+=CHR$(?array%):array%+=1:ENDWHILE
 7720=s$
 7730DEFFNWimp_GetFileFromPathname(f$)
 7740CASEINSTR(f$,".")OF
 7750WHEN0:=f$
 7760OTHERWISE:=FNWimp_GetFileFromPathname(RIGHT$(f$,LEN(f$)-INSTR(f$,".")))
 7770ENDCASE
 7780DEFFNWimp_FileType(type%)
 7790CASEtype%OF
 7800WHEN&FFF:="Text"
 7810WHEN&FFD:="Data"
 7820WHEN&FFB:="Basic"
 7830WHEN&FF9:="Sprite"
 7840WHEN&FED:="Palette"
 7850WHEN&FEC:="Template"
 7860WHEN&AFF:="Draw"
 7870WHEN&1000:="Folder"
 7880WHEN&2000:="Application"
 7890OTHERWISE=STR$~(type%)
 7900ENDCASE
 7910DEFPROCshell_WindowResize(whandle%,bx%,by%,tx%,ty%,open%)
 7920!_Q%=bx%:_Q%!4=by%:_Q%!8=tx%:_Q%!12=ty%
 7930SYS"Wimp_SetExtent",whandle%,_Q%
 7940IFopen%THEN
 7950_Q%!0=whandle%
 7960SYS"Wimp_GetWindowInfo",,_Q%
 7970SYS"Wimp_OpenWindow",,_Q%
 7980ENDIF
 7990ENDPROC

 �Wimp_Start("Today",701,308)
�User_SetInitialData
�Create_Windows
(�Create_Menus
2�Wimp_WaitForEvent
<�Wimp_CloseDown
F�
P��User_SetInitialData
Z,�timeblk 8,timeformat 128,timestring 128
d!�mdays%(12),m3$(12),m3lc$(12)
ntimeblk?0=3:ș7,14,timeblk
xMaxLines%=20*3
�R�Bday$(MaxLines%/3),Eday$(MaxLines%/3),Rday$(MaxLines%/3),Plist$(MaxLines%+10)
�Ltoday$=�timetext("%MN%DY"):month$=�timetext("%M3"):day$=�timetext("%DY")
�Today%=�(�timetext("%WN"))
�Bday%=0:Eday%=0:Rday%=0
�?file$="<Today$Dir>.TodayData."+�LowerCase(�timetext("%M3"))
�(ownfile$="<Today$Dir>.TodayData.own"
�.�:�I%=1�12:�mdays%(I%),m3$(I%),m3lc$(I%):�
ȉ� 31,Jan,jan,29,Feb,feb,31,Mar,mar,30,Apr,apr,31,May,may,30,Jun,jun,31,Jul,jul,31,Aug,aug,30,Sep,sep,31,Oct,oct,30,Nov,nov,31,Dec,dec
��Data_Load(ownfile$)
��Data_Load(file$)
��Prepare_PrintList(0,"","")
��
���Create_Windows
�Wimp_SpritesLoad
)Main_Window%=�Wimp_WindowLoad("Main")
)Info_Window%=�Wimp_WindowLoad("Info")
"-Search_Window%=�Wimp_WindowLoad("Search")
,%Bar_Icon%=�Wimp_IconBar("!Today")
6W�Wimp_IconPutText(Search_Window%,0,day$):�Wimp_IconPutText(Search_Window%,1,month$)
@�
JݤEvent_Save(window%)=�
T%ݤEvent_Sprites(window%)=sprites%
^��Create_Menus
h.menu$="!Today\Info>Info_Window%\Help\Quit"
r%Bar_Menu%=�Wimp_MenuCreate(menu$)
|Gmenu$="!Today\Info>Info_Window%\Not Today>Search_Window%\Edit\Quit"
�&Main_Menu%=�Wimp_MenuCreate(menu$)
��
�ݤEvent_Menu(window%)
�Ȏwindow%�
��Bar_Window%:=Bar_Menu%
��Main_Window%:=Main_Menu%
�:=�
��
�)��Event_WindowClose(window%,buttons%)
�Ȏwindow%�
��
��
�-��Event_Draw(window%,x_origin%,y_origin%)
Ȏwindow%�
&�Main_Window%:�User_DrawMainWindow
&�Info_Window%:�User_DrawInfoWindow
&*�Search_Window%:�User_DrawSearchWindow
0�
:�
D��User_DrawMainWindow
N�i%,x%,y%,h%,l%:Pr%=�
X	h%=32
by%=y_origin%-h%
l�i%=1�Plist%
vx%=x_origin%+h%
�
�x%,y%
��Plist$(i%)
�
y%-=h%
��
�	Pr%=�
��
���User_DrawInfoWindow
��
���User_DrawSearchWindow
��
�3��Event_MouseClick(window%,icon%,button%,x%,y%)
�Ȏwindow%�
�5�Bar_Window%:�Wimp_WindowBringToTop(Main_Window%)
0�Main_Window%:�User_MouseMain(button%,icon%)
0�Info_Window%:�User_MouseInfo(button%,icon%)
4�Search_Window%:�User_MouseSearch(button%,icon%)
 �
*�
4#��User_MouseMain(button%,icon%)
>�
H#��User_MouseInfo(button%,icon%)
R�
\%��User_MouseSearch(button%,icon%)
fȎicon%�
p�2:�IncDate
z�3:�IncMonth
��4:�DecDate
��5:�DecMonth
��6:�UpdateMain
��
��
�(��Event_KeyPress(window%,icon%,key%)
�Ȏwindow%�
�)�Search_Window%:�key%=13�UpdateMain:�
��
��
���Event_MenuChoice(menu%)
�Ȏmenu%�
�"�Bar_Menu%:�User_MenuChoiceBar
$�Main_Menu%:�User_MenuChoiceMain
�
�
$��User_MenuChoiceBar
.Ȏ�Wimp_MenuChoice(0)�
8�1
B,�2:�Wimp_SendToEdit("<Today$Dir>.!Help")
L�3:finished%=�
V�
`�
j��User_MenuChoiceMain
tȎ�Wimp_MenuChoice(0)�
~�1
��2
�4�3:�Wimp_SendToEdit("<Today$Dir>.TodayData.own")
��4:finished%=�
��
��
�!��Event_LoadFile(file$,type$)
��
�#��Event_SaveFile(file$,window%)
��
�ݤtimetext(f$)
�$timeformat=f$+�0
�0ș&C1,timeblk,timestring,64,timeformat�r0,r1

?r1=13

=$timestring
ݤLowerCase(A$)

�I%:B$=""
(�I%=1��(A$)
2B$=B$+�(�(�A$,I%,1))�&20)
<�
F=B$
P��Data_Load(file$)
Zș"Hourglass_On"
d�F%,Line$,Failed%
nF%=�(file$)
x�
�Line$=�#F%
��Line$,1)="*"�Line$=�#F%
��Weekday
�|�(�Line$,2,4)=today$�((�Line$,2,2)="00"��Line$,4,2)=�today$,3,2))�(�Line$,4,2)="00"��Line$,2,2)=�today$,1,2))))X%=��X%=�
�6�(�Line$,1)="B"� X%)�Bday$(Bday%+1)=Line$:Bday%+=1
�6�(�Line$,1)="S"� X%)�Eday$(Eday%+1)=Line$:Eday%+=1
�6�(�Line$,1)="R"� X%)�Rday$(Rday%+1)=Line$:Rday%+=1
�)�(�#F%�(Bday%+Eday%+Rday%)=MaxLines%)
��#F%
�ș"Hourglass_Off"
�[�(Bday%+Eday%)=MaxLines%�Mess$="Data Overflow...":�Wimp_WindowAlert("WHOOPS!...",Mess$)
��
�
��Weekday
�Q%
!Q%=�"1234567C ",�Line$,10,1))

�Q%>7�
"
��#F%�
,�Q%<>Today%�Line$="":��
6�
@$�Q%<>Today%Line$=�#F%:�Weekday��
J�
T!��Prepare_PrintList(Q%,A$,B$)
^Plist%=1
hO�Q%=0�Plist$(Plist%)=�timetext("Today is %WE %zDY%ST %MO %CE%YR"):Plist%+=1
r8�Q%=1�Plist$(Plist%)="Data for "+A$+" "+B$:Plist%+=1
|*�AddToList("Reminders ",Rday%,Rday$())
�*�AddToList("Birthdays ",Bday%,Bday$())
�.�AddToList("Anniversaries ",Eday%,Eday$())
��
���AddToList(Z$,Z%,Y$())
��Z%=0��
�Plist$(Plist%)="":Plist%+=1
�Plist$(Plist%)=Z$:Plist%+=1
�Plist$(Plist%)="":Plist%+=1
��I%=1�Z%
�A$=�Y$(I%),6)
�$�A$,5,1)<>" "�A$=�5," ")+�A$,6)
�Plist$(Plist%)=A$:Plist%+=1
��
�

��IncDate

�A$,B$,I%
&'A$=�Wimp_IconText(Search_Window%,0)
0'B$=�Wimp_IconText(Search_Window%,1)
:B$=�LowerCase(B$)
DI%=0:�:I%+=1:�B$=m3lc$(I%)
NA$=�(�(A$)+1)
X'�(A$)>=mdays%(I%)�A$=�(mdays%(I%))
b*�Wimp_IconPutText(Search_Window%,0,A$)
l�
v��IncMonth
�
�A$,I%
�'A$=�Wimp_IconText(Search_Window%,1)
�A$=�LowerCase(A$)
�I%=0:�:I%+=1:�A$=m3lc$(I%)
��I%=12 I%=0
�1�Wimp_IconPutText(Search_Window%,1,m3$(I%+1))
��
�
��DecDate
�
�A$,I%
�'A$=�Wimp_IconText(Search_Window%,0)
�A$=�(�(A$)-1)
��A$="0"A$="1"
�*�Wimp_IconPutText(Search_Window%,0,A$)
�
��DecMonth

�A$,I%
 'A$=�Wimp_IconText(Search_Window%,1)
*A$=�LowerCase(A$)
4I%=0:�:I%+=1:�A$=m3lc$(I%)
>�I%=1 I%=13
H1�Wimp_IconPutText(Search_Window%,1,m3$(I%-1))
R�
\��UpdateMain
f�A$,B$,C$,J%,I%,K%,Mess$
p'A$=�Wimp_IconText(Search_Window%,0)
z'B$=�Wimp_IconText(Search_Window%,1)
�#Today%=9:J%=0:B$=�LowerCase(B$)
��(A$)=1 A$="0"+A$
��I%=1�12
��m3lc$(I%)=B$�J%=1
��
�N�J%=0�Mess$="Month spelt incorrectly":�Wimp_WindowAlert("Whoops!",Mess$):�
�K%=0:�:K%+=1:�B$=m3lc$(K%)
�C$=�(K%):�(C$)=1 C$="0"+C$
�^�(A$)>mdays%(K%)�Mess$="Too many days in this month":�Wimp_WindowAlert("Whoops!",Mess$):�
�>�I%=0�MaxLines%/3:Bday$(I%)="":Eday$(I%)="":Rday$(I%)="":�
�"�I%=0�MaxLines%+10:Plist$="":�
�%file$="<Today$Dir>.TodayData."+B$
�(Bday%=0:Eday%=0:Rday%=0:today$=C$+A$
	 �I%=1�Plist%:Plist$(I%)="":�
	�Data_Load(ownfile$)
	�Data_Load(file$)
	$$�Prepare_PrintList(1,A$,m3$(K%))
	.'�Wimp_WindowForceDraw(Main_Window%)
	8%�Wimp_WindowClose(Search_Window%)
	B�Wimp_MenuClose
	L�
	V'��Wimp_WindowAlert(title$,message$)
	`+�Wimp_WindowAlertBox(title$,message$,0)
	j�
	t2��Wimp_WindowAlertBox(title$,message$,button%)
	~�response%
	�$(wimp%+4)=message$
	�Ȏbutton%�
	��2:response%=1
	��1:response%=15
	��3:response%=(1<<5)+16
	��4:response%=(1<<6)+16
	�:response%=16
	��
	�:ș"Wimp_ReportError",wimp%,response%,title$�,response%
	��
	�(ݤWimp_WindowCancel(title$,message$)
	�$(wimp%+4)=message$
response%=23

:ș"Wimp_ReportError",wimp%,response%,title$�,response%
=response%-2
*��Wimp_WindowErrorBox(title$,message$)
(+�Wimp_WindowAlertBox(title$,message$,2)
2�
<ݤWimp_WindowTitle(window%)
Fwimp%!0=window%
Pș"Wimp_GetWindInfo",,wimp%
Z3�((wimp%!60)�&100)=0�1,"Title isn't indirected"
d=$(wimp%!76)
nݤWimp_WindowLoad(window$)
x9=�Wimp_WindowLoadFrom(window$,"<Obey$Dir>.Templates")
�,ݤWimp_WindowLoadFrom(window$,template$)
��c%,i%,n%,j%,sp$,sp2$
�$ș"Wimp_OpenTemplate",,template$
�Jș"Wimp_LoadTemplate",,wimp%,icons%,icon_memory%,-1,window$,0�,,icons%
�Ȏsprites%�
��1:wimp%!64=sprites%
�&:wimp%!64=�Event_Sprites(window%)
��
�#ș"Wimp_CreateWindow",,wimp%�c%
�ș"Wimp_CloseTemplate"
�6ș"Wimp_WhichIcon",c%,wimp%+40,1+2+(1<<8),2+(1<<8)
�Ȏwimp%!40�
��-1
:i%=40
�
wimp%!4=wimp%!i%:wimp%!0=c%
" ș"Wimp_GetIconState",,wimp%
,*sp$=�Wimp_GetStringAtAddress(wimp%!28)
6ș"Wimp_DeleteIcon",,wimp%
@Ȏsprites%�
J�1:wimp%!32=1
T
^'ș"OS_SpriteOp",&108,sprites%�,,,n%
hj%=0
r�:j%+=1
|6ș"OS_SpriteOp",&10D,sprites%,pointer_block%,20,j%
�1sp2$=�Wimp_GetStringAtAddress(pointer_block%)
��j%=n%�sp$=sp2$
�*�sp$=sp2$�wimp%!32=sprites%�wimp%!32=1
��
�wimp%!4=c%
�(ș"Wimp_CreateIcon",,wimp%+4�handle%
�	i%+=4
��(wimp%!i%)=-1
��
�=c%
�$��Wimp_WindowBringToTop(window%)
�!wimp%=window%
�"ș"Wimp_GetWindowState",,wimp%
wimp%!28=-1
ș"Wimp_OpenWindow",,wimp%
�
&��Wimp_WindowClose(window%)
0!wimp%=window%
:ș"Wimp_CloseWindow",,wimp%
D�
N#��Wimp_WindowForceDraw(window%)
XȎwindow%�
b1�-1:ș"Wimp_ForceRedraw",-1,0,0,2*1280,2*1024
l5:ș"Wimp_ForceRedraw",window%,0,-2*1024,2*1280,0
v�
��
���Wimp_WindowOpen(window%)
�!wimp%=window%
�"ș"Wimp_GetWindowState",,wimp%
�ș"Wimp_OpenWindow",,wimp%
��
��Wimp_WindowInterface
� ș"Wimp_BorderWindow",,wimp%
��
�ݤWimp_IconBar(Sprite$)
�
�icon%
�wimp%!0=-1
�wimp%!4=0:wimp%!8=0

wimp%!12=68:wimp%!16=68

wimp%!20=&3002

$(wimp%+24)=Sprite$

 $ș"Wimp_CreateIcon",,wimp%�icon%

*
=icon%

4*��Wimp_IconCaret(window%,icon%,chars%)

>7ș"Wimp_SetCaretPosition",window%,icon%,,,-1,chars%

H�

R"ݤWimp_IconText(window%,icon%)

\!wimp%!0=window%:wimp%!4=icon%

f ș"Wimp_GetIconState",,wimp%

p2�((wimp%!24)�&100)=0�1,"Icon isn't indirected"

z=$(wimp%!28)

�(ݤWimp_IconValidation(window%,icon%)

�!wimp%!0=window%:wimp%!4=icon%

� ș"Wimp_GetIconState",,wimp%

�2�((wimp%!24)�&100)=0�1,"Icon isn't indirected"

�=$(wimp%!32)

�%��Wimp_IconDisable(window%,icon%)

�!wimp%!0=window%:wimp%!4=icon%

� wimp%!8=1<<22:wimp%!12=1<<22

� ș"Wimp_SetIconState",,wimp%

��

�$��Wimp_IconEnable(window%,icon%)

�!wimp%!0=window%:wimp%!4=icon%

�wimp%!8=0:wimp%!12=1<<22
 ș"Wimp_SetIconState",,wimp%
�
/ݤWimp_IconPutSprite(window%,icon%,sprite$)
$!wimp%!0=window%:wimp%!4=icon%
. ș"Wimp_GetIconState",,wimp%
8ș"Wimp_DeleteIcon",,wimp%
B6wimp%!4=wimp%!8:wimp%!8=wimp%!12:wimp%!12=wimp%!16
L;wimp%!16=wimp%!20:wimp%!20=wimp%!24:$(wimp%+24)=sprite$
V$ș"Wimp_CreateIcon",,wimp%�icon%
`
=icon%
j+��Wimp_IconPutText(window%,icon%,text$)
t!wimp%!0=window%:wimp%!4=icon%
~ ș"Wimp_GetIconState",,wimp%
�2�((wimp%!24)�&100)=0�1,"Icon isn't indirected"
�$(wimp%!28)=text$
�!wimp%!0=window%:wimp%!4=icon%
�wimp%!8=0:wimp%!12=0
� ș"Wimp_SetIconState",,wimp%
��
���Wimp_IconInterfaceStart
�ș"Wimp_BorderIcon",,wimp%
��
���Wimp_IconInterfaceFinish
�
wimp%!8=0
�ș"Wimp_BorderIcon",,wimp%
�

��Wimp_MenuAdjustOn(menu%)
+ș"Wimp_GetPointerInfo",,pointer_block%
Z�((pointer_block%!8)�1)=1�ș"Wimp_CreateMenu",,menu%,pointer_block%!0,pointer_block%!4
(�
2ݤWimp_MenuChoice(level%)
<=(wimp%!(4*level%))+1
FݤWimp_MenuCreate(menu$)
P'�menu$="Colours"�=�Wimp_MenuColours
Z&�menu%,index%,width%,length%,k%,s%
d,�menu%28+�Wimp_MenuNoOfEntries(menu$)*24
n/menu%?12=7:menu%?13=2:menu%?14=7:menu%?15=0
x'menu%!16=140:menu%!20=44:menu%!24=0
�index%=menu%+28
� $menu%=�menu$,�menu$,"\")-1)
�#width%=�(�menu$,�menu$,"\")-1))
�"menu$+="\":Menu_NoOfEntries%=0
�ȕmenu$<>""
�menu$=�menu$,�menu$,"\")+1)
�Ȏmenu$�
��""
�
�+!index%=0:index%!4=-1:index%!8=&7000021
�length%=�menu$,"\")-1
�k%=��menu$,length%),">")
�	Ȏk%�
�0

!s%=�(�menu$,k%+1,length%-k%))
"index%!4=s%
,length%=k%-1
6�
@ $(index%+12)=�menu$,length%)
J"�length%>width%�width%=length%
Tindex%+=24
^�
h�
rmenu%!16=16*(width%+1)
|$index%!-24=index%!-24�&80:=menu%
�ݤWimp_MenuColours
�!=�Wimp_MenuCreateColours(" ")
�$ݤWimp_MenuCreateColours(title$)
��x$,men%,j%,i%
�6x$=title$+"\0\1\2\3\4\5\6\7\8\9\10\11\12\13\14\15"
�men%=�Wimp_MenuCreate(x$)
��i%=0�15
�Ȏ��
�%�i%<4,i%=9,i%=12,i%=14,i%=15:j%=7
�
:j%=0
��
�men%?(39+i%*24)=i%*16+j%
��Wimp_MenuCentre(men%,i%+1)
�
	=men%
!ݤWimp_MenuNoOfEntries(menu$)
&�n%,j%:n%=0:j%=0
0�
:j%=�menu$,"\",j%+1)
D�j%<>0�n%+=1
N	�j%=0
X=n%
b4��Wimp_MenuBackGroundColour(menu%,item%,colour%)
l
�fore%,i%
v&fore%=(menu%?(39+(item%-1)*24))�16
�(i%=((menu%?(39+(item%-1)*24))�16)�16
�/menu%?(39+(item%-1)*24)=fore%+16*colour%+i%
��
�"��Wimp_MenuCentre(menu%,item%)
�:menu%!(36+(item%-1)*24)=menu%!(36+(item%-1)*24)�(1<<3)
��
���Wimp_MenuClose
�ș"Wimp_CreateMenu",-1
��
�#��Wimp_MenuDisable(menu%,item%)
�;menu%!(36+(item%-1)*24)=menu%!(36+(item%-1)*24)�(1<<22)
��
�&��Wimp_MenuDottedLine(menu%,item%)
7menu%!(28+(item%-1)*24)=(menu%!(28+(item%-1)*24))�2
�
"��Wimp_MenuEnable(menu%,item%)
 "�Wimp_MenuDisable(menu%,item%)
*;menu%!(36+(item%-1)*24)=menu%!(36+(item%-1)*24)�(1<<22)
4�
>4��Wimp_MenuForegroundColour(menu%,item%,colour%)
HEmenu%?(39+(item%-1)*24)=colour%+16*((menu%?(39+(item%-1)*24))�16)
R�
\(��Wimp_MenuGlue(menu1%,item%,menu2%)
fmenu1%!(8+item%*24)=menu2%
p�
z&��Wimp_MenuItem(menu%,item%,item$)
�,$(menu%+(40+(item%-1)*24))=�item$,12)+�0
��
�#��Wimp_MenuMessage(menu%,item%)
�<menu%!(28+(item%-1)*24)=(menu%!(28+(item%-1)*24))�(1<<3)
��
�!��Wimp_MenuPopUp(Menu%,x%,y%)
�menu%=Menu%
�*ș"Wimp_CreateMenu",,menu%,x%-64,y%+20
��
���Wimp_MenuPopUpBar(x%,y%)
��n%:n%=0
�*ȕ((Bar_Menu%!(28+n%*24))�%10000000)=0
�	n%+=1
�
1ș"Wimp_CreateMenu",,Bar_Menu%,x%-64,96+n%*44
menu%=Bar_Menu%
$�
. ��Wimp_MenuTick(menu%,item%)
87menu%!(28+(item%-1)*24)=(menu%!(28+(item%-1)*24))�1
B�
L"��Wimp_MenuTitle(menu%,title$)
V$menu%=�title$,12)+�0
`�
j<��Wimp_MenuWrite(menu%,item%,buffer%,val%,BufferLength%)
t7menu%!(28+(item%-1)*24)=(menu%!(28+(item%-1)*24))�4
~8menu%!(36+(item%-1)*24)=menu%!(36+(item%-1)*24)�&100
�#menu%!(40+(item%-1)*24)=buffer%
� menu%!(44+(item%-1)*24)=val%
�)menu%!(48+(item%-1)*24)=BufferLength%
��
���Wimp_SpritesLoad
�/�Wimp_SpritesPathLoad("<Obey$Dir>.Sprites")
�direct_sprites%=sprites%
��
�%��Wimp_SpritesPathLoad(pathname$)
�
�S%,T%
�,S%=�"<Obey$Dir>.Sprites":T%=�#S%+16:�#S%
��sprites%T%,spname%12
!sprites%=T%:sprites%!8=0

!ș"OS_SpriteOp",&109,sprites%
+ș"OS_SpriteOp",&10A,sprites%,pathname$
�
(ݤWimp_FileType(type%)
2Ȏtype%�
<�&FFF:="Text"
F�&FFD:="Data"
P�&FFB:="Basic"
Z�&FF9:="Sprite"
d�&FED:="Palette"
n�&FEC:="Template"
x�&AFF:="Draw"
��&1000:="Folder"
��&2000:="Application"
�=�~(type%)
��
�ݤWimp_GetFilePathName
�'=�Wimp_GetStringAtAddress(wimp%+44)
�ݤWimp_FileLoad(pathname$)
��S%,T%,file%
�S%=�pathname$
�T%=�#S%+16
��#S%
��file%T%
�"�("LOAD"+pathname$+""+�~file%)

=file%
%ݤWimp_GetStringAtAddress(array%)

�s$:s$=""
";ȕ(?array%<>13)�(?array%<>0):s$+=�(?array%):array%+=1:�
,=s$
6"ݤWimp_GetFileFromPathname(f$)
@Ȏ�f$,".")�
J
�0:=f$
T5:=�Wimp_GetFileFromPathname(�f$,�(f$)-�f$,".")))
^�
h��Wimp_SendToEdit(file$)
r�n%
|wimp%!4=&6CC01C0C
�wimp%!16=5
�wimp%!36=0
�wimp%!40=&FFF
�$(wimp%+44)=file$+�0
�n%=�file$+45
�'�n%�4�!wimp%=4+(n%>>2)<<2�!wimp%=n%
�#ș"Wimp_SendMessage",17,wimp%,0
��
�.��Wimp_Start(TaskName$,wimp_memory%,icon%)
�"�wimp%wimp_memory%,icons%icon%
�&�wimp_memory%<256�wimp_memory%=256
�icon_memory%=icons%+icon%
�task$=TaskName$
)indirect_sprites%=1:direct_sprites%=1
�Wimp_SetEventVariables
��Wimp_Error:�
&>ș"Wimp_Initialise",200,&4B534154,TaskName$�version%,task%
0�
:ݤWimp_BASICParameters
D�com$,param$,I%
Nș"OS_GetEnv"�com$
Xparams$=""
bI%=�com$," -quit ")
l1�I%�params$=�com$,�com$," ",I%+�" -quit ")+1)
v=params$
���Wimp_SetEventVariables
��pointer_block%20
�interface%=�
�)null%=1:draw%=2:pointer_leaving%=1<<4
�1pointer_entering%=1<<5:mouse%=1<<6:drag%=1<<7
�&key%=1<<8:menu%=1<<9:scroll%=1<<10
�@lose_caret%=1<<11:gain_caret%=1<<12:message%=(1<<17)+(1<<18)
�0recorder%=1<<18:acknowledge%=1<<19:window%=0
�!sprites%=1:version%=0:task%=0
�*Bar_Window%=-2:Bar_Icon%=0:Bar_Menu%=0
�*x_origin%=0:y_origin%=0:SaveWindow%=-3
�3message_quit%=0:message_save%=2:message_load%=3
�!mouse_button%=2:save_event%=0
top_line%=0:bottom_line%=0
�
��Wimp_Error
 
�X$,x%
*
4x%=�
>X$=�$+"atline"+�(x%�10)
H�ErrorMsg%36
REErrorMsg%!0=36:ErrorMsg%!12=0:ErrorMsg%!16=&81080:ErrorMsg%!20=x%
\$(ErrorMsg%+24)="!RunImage"
f%ș"Wimp_SendMessage",17,ErrorMsg%
p�Wimp_WindowAlert(task$,X$)
z�Wimp_CloseDown
��
���Wimp_CloseDown
�#ș"Wimp_CloseDown",task%,"TASK"
��
���Wimp_Quit
�finished%=�
��
�"ݤWimp_ReadVariable(Variable$)
��len%,result%,variable%
�$wimp%=Variable$
�3ș"OS_ReadVarVal",wimp%,wimp%+255,255,,3�,,len%
�wimp%?(len%+255)=13
�=$(wimp%+255)
��Wimp_WaitForEvent
�mask%,event%
finished%=�
$mask%=%111000011001
.�
8$ș"Wimp_Poll",mask%,wimp%�event%
B
Ȏevent%�
L�0
V�1:�Wimp_PollDrawWindow
`!�2:ș"Wimp_OpenWindow",,wimp%
j�3:�Wimp_PollCloseWindow
t�4
~�5
��6:�Wimp_PollMouseClick
��7:�Wimp_PollSaveMessage
��8:�Wimp_PollKeyPress
��9:�Event_MenuChoice(menu%)
��10
��11
��12
��17,18:�Wimp_PollMessages
��19
��
��finished%
��
��Wimp_PollDrawWindow


�more%
&ș"Wimp_RedrawWindow",,wimp%�more%
window%=wimp%!0
(Ax_origin%=16+wimp%!4-wimp%!20:y_origin%=-16+wimp%!16-wimp%!24
2ȕmore%
<,�interface%�ș"Wimp_BorderWindow",,wimp%
F,�Event_Draw(window%,x_origin%,y_origin%)
P&ș"Wimp_GetRectangle",,wimp%�more%
Z�
d�
n��Wimp_PollCloseWindow
x"ș"Wimp_GetPointerInfo",,wimp%
�%window%=wimp%!12:buttons%=wimp%!8
�(�Event_WindowClose(window%,buttons%)
�.!wimp%=window%:ș"Wimp_CloseWindow",,wimp%
��
���Wimp_PollMouseClick
�Ibutton%=wimp%!8:window%=wimp%!12:icon%=wimp%!16:x%=wimp%!0:y%=wimp%!4
�Ȏbutton%�
��2:�Wimp_PollMenuPopUp
�:Ȏ�Event_Save(window%)�
�ɹ:�Wimp_PollMouseSave
� ɣ:�Wimp_PollEventMouseClick
��
��
�
��Wimp_PollMenuPopUp
menu%=�Event_Menu(window%)
"Ȏmenu%�
,ɣ
6
@Ȏwindow%�
J�-2:n%=0
T*ȕ((Bar_Menu%!(28+n%*24))�%10000000)=0
^	n%+=1
h�
r1ș"Wimp_CreateMenu",,Bar_Menu%,x%-64,96+n%*44
|,:ș"Wimp_CreateMenu",,menu%,x%-64,y%+20
��
��
��
���Wimp_PollMouseSave
�Ȏicon%�
�.�0:�button%�&50��Wimp_PollDragBox(window%)
�.�2:�button%� 5��Wimp_PollSaveFile(window%)
��
��
���Wimp_PollEventMouseClick
�*�interface%�ș"Wimp_BorderIcon",,wimp%
�2�Event_MouseClick(window%,icon%,button%,x%,y%)
�Ȏinterface%�
ɹ
#wimp%!0=x%:wimp%!4=y%:wimp%!8=0
#wimp%!12=window%:wimp%!16=icon%
&ș"Wimp_BorderIcon",,wimp%
0�
:�
D ��Wimp_PollSaveFile(window%)
N
�file$
X:wimp%!0=window%:wimp%!4=1:ș"Wimp_GetIconState",,wimp%
bfile$=$(wimp%!28)
lȎ�file$,".")�
v�0
�=$(wimp%+4)="To save, drag the icon to a directory window"
�'ș"Wimp_ReportError",wimp%,16,task$
�
�"�Event_SaveFile(file$,window%)
��
�ș"Wimp_CreateMenu",-1
��
���Wimp_PollDragBox(window%)
�
�x%,y%
�save%=window%
�!wimp%=window%
�"ș"Wimp_GetWindowState",,wimp%
�,x%=wimp%!4-wimp%!20:y%=wimp%!16-wimp%!24

wimp%!4=0
 ș"Wimp_GetIconState",,wimp%
!wimp%=window%
 
wimp%!4=5
*+wimp%!8=x%+wimp%!8:wimp%!12=y%+wimp%!12
4-wimp%!16=x%+wimp%!16:wimp%!20=y%+wimp%!20
>wimp%!24=0:wimp%!28=0
H)wimp%!32=&7FFFFFFF:wimp%!36=&7FFFFFFF
Rș"Wimp_DragBox",,wimp%
\�
f��Wimp_PollKeyPress
p/window%=wimp%!0:icon%=wimp%!4:key%=wimp%!24
zȎ�Event_Save(window%)�
�"ɹ:�WimpPoll_SaveFile(window%)
�*ɣ:�Event_KeyPress(window%,icon%,key%)
��
��
���Wimp_PollSaveMessage
��file$,window%,icon%,x%,y%
�"ș"Wimp_GetPointerInfo",,wimp%
�9window%=wimp%!12:icon%=wimp%!16:x%=wimp%!0:y%=wimp%!4
�8wimp%!0=save%:wimp%!4=1:ș"Wimp_GetIconState",,wimp%
�file$=$(wimp%!28)
�*file$=�Wimp_GetFileFromPathname(file$)
�wimp%!20=window%
�wimp%!24=icon%
wimp%!28=x%:wimp%!32=y%
wimp%!36=length%
wimp%!0=64
$wimp%!12=0
.wimp%!16=1
8wimp%!40=&FFF
B$(wimp%+44)=file$
L3ș"Wimp_SendMessage",17,wimp%,wimp%!20,wimp%!24
V�
`��Wimp_PollMessages
j
�file$
t,file$=�Wimp_GetStringAtAddress(wimp%+44)
~Ȏwimp%!16�
��0:finished%=�
��1
��2
�8wimp%!0=save%:wimp%!4=1:ș"Wimp_GetIconState",,wimp%
�$(wimp%!28)=file$
�0wimp%!0=save%:wimp%!4=1:wimp%!8=0:wimp%!12=0
� ș"Wimp_SetIconState",,wimp%
�1ș"Wimp_SetCaretPosition",save%,1,,,-1,�file$
� �Event_SaveFile(file$,save%)
��3
�?type$=�Wimp_FileType(wimp%!40):�Event_LoadFile(file$,type$)
��
�

%ݤWimp_GetStringAtAddress(array%)

�s$:s$=""
;ȕ(?array%<>13)�(?array%<>0):s$+=�(?array%):array%+=1:�
(=s$
2"ݤWimp_GetFileFromPathname(f$)
<Ȏ�f$,".")�
F
�0:=f$
P5:=�Wimp_GetFileFromPathname(�f$,�(f$)-�f$,".")))
Z�
dݤWimp_FileType(type%)
nȎtype%�
x�&FFF:="Text"
��&FFD:="Data"
��&FFB:="Basic"
��&FF9:="Sprite"
��&FED:="Palette"
��&FEC:="Template"
��&AFF:="Draw"
��&1000:="Folder"
��&2000:="Application"
�=�~(type%)
��
�8��shell_WindowResize(whandle%,bx%,by%,tx%,ty%,open%)
�+!_Q%=bx%:_Q%!4=by%:_Q%!8=tx%:_Q%!12=ty%
�#ș"Wimp_SetExtent",whandle%,_Q%
�open%�
_Q%!0=whandle%
ș"Wimp_GetWindowInfo",,_Q%
"ș"Wimp_OpenWindow",,_Q%
,�
6�
�
00000000  0d 00 0a 20 f2 57 69 6d  70 5f 53 74 61 72 74 28  |... .Wimp_Start(|
00000010  22 54 6f 64 61 79 22 2c  37 30 31 2c 33 30 38 29  |"Today",701,308)|
00000020  0d 00 14 18 f2 55 73 65  72 5f 53 65 74 49 6e 69  |.....User_SetIni|
00000030  74 69 61 6c 44 61 74 61  0d 00 1e 13 f2 43 72 65  |tialData.....Cre|
00000040  61 74 65 5f 57 69 6e 64  6f 77 73 0d 00 28 11 f2  |ate_Windows..(..|
00000050  43 72 65 61 74 65 5f 4d  65 6e 75 73 0d 00 32 16  |Create_Menus..2.|
00000060  f2 57 69 6d 70 5f 57 61  69 74 46 6f 72 45 76 65  |.Wimp_WaitForEve|
00000070  6e 74 0d 00 3c 13 f2 57  69 6d 70 5f 43 6c 6f 73  |nt..<..Wimp_Clos|
00000080  65 44 6f 77 6e 0d 00 46  05 e0 0d 00 50 19 dd f2  |eDown..F....P...|
00000090  55 73 65 72 5f 53 65 74  49 6e 69 74 69 61 6c 44  |User_SetInitialD|
000000a0  61 74 61 0d 00 5a 2c de  74 69 6d 65 62 6c 6b 20  |ata..Z,.timeblk |
000000b0  38 2c 74 69 6d 65 66 6f  72 6d 61 74 20 31 32 38  |8,timeformat 128|
000000c0  2c 74 69 6d 65 73 74 72  69 6e 67 20 31 32 38 0d  |,timestring 128.|
000000d0  00 64 21 de 6d 64 61 79  73 25 28 31 32 29 2c 6d  |.d!.mdays%(12),m|
000000e0  33 24 28 31 32 29 2c 6d  33 6c 63 24 28 31 32 29  |3$(12),m3lc$(12)|
000000f0  0d 00 6e 1e 74 69 6d 65  62 6c 6b 3f 30 3d 33 3a  |..n.timeblk?0=3:|
00000100  c8 99 37 2c 31 34 2c 74  69 6d 65 62 6c 6b 0d 00  |..7,14,timeblk..|
00000110  78 12 4d 61 78 4c 69 6e  65 73 25 3d 32 30 2a 33  |x.MaxLines%=20*3|
00000120  0d 00 82 52 de 42 64 61  79 24 28 4d 61 78 4c 69  |...R.Bday$(MaxLi|
00000130  6e 65 73 25 2f 33 29 2c  45 64 61 79 24 28 4d 61  |nes%/3),Eday$(Ma|
00000140  78 4c 69 6e 65 73 25 2f  33 29 2c 52 64 61 79 24  |xLines%/3),Rday$|
00000150  28 4d 61 78 4c 69 6e 65  73 25 2f 33 29 2c 50 6c  |(MaxLines%/3),Pl|
00000160  69 73 74 24 28 4d 61 78  4c 69 6e 65 73 25 2b 31  |ist$(MaxLines%+1|
00000170  30 29 0d 00 8c 4c 74 6f  64 61 79 24 3d a4 74 69  |0)...Ltoday$=.ti|
00000180  6d 65 74 65 78 74 28 22  25 4d 4e 25 44 59 22 29  |metext("%MN%DY")|
00000190  3a 6d 6f 6e 74 68 24 3d  a4 74 69 6d 65 74 65 78  |:month$=.timetex|
000001a0  74 28 22 25 4d 33 22 29  3a 64 61 79 24 3d a4 74  |t("%M3"):day$=.t|
000001b0  69 6d 65 74 65 78 74 28  22 25 44 59 22 29 0d 00  |imetext("%DY")..|
000001c0  96 1e 54 6f 64 61 79 25  3d bb 28 a4 74 69 6d 65  |..Today%=.(.time|
000001d0  74 65 78 74 28 22 25 57  4e 22 29 29 0d 00 a0 1b  |text("%WN"))....|
000001e0  42 64 61 79 25 3d 30 3a  45 64 61 79 25 3d 30 3a  |Bday%=0:Eday%=0:|
000001f0  52 64 61 79 25 3d 30 0d  00 aa 3f 66 69 6c 65 24  |Rday%=0...?file$|
00000200  3d 22 3c 54 6f 64 61 79  24 44 69 72 3e 2e 54 6f  |="<Today$Dir>.To|
00000210  64 61 79 44 61 74 61 2e  22 2b a4 4c 6f 77 65 72  |dayData."+.Lower|
00000220  43 61 73 65 28 a4 74 69  6d 65 74 65 78 74 28 22  |Case(.timetext("|
00000230  25 4d 33 22 29 29 0d 00  b4 28 6f 77 6e 66 69 6c  |%M3"))...(ownfil|
00000240  65 24 3d 22 3c 54 6f 64  61 79 24 44 69 72 3e 2e  |e$="<Today$Dir>.|
00000250  54 6f 64 61 79 44 61 74  61 2e 6f 77 6e 22 0d 00  |TodayData.own"..|
00000260  be 2e f7 3a e3 49 25 3d  31 b8 31 32 3a f3 6d 64  |...:.I%=1.12:.md|
00000270  61 79 73 25 28 49 25 29  2c 6d 33 24 28 49 25 29  |ays%(I%),m3$(I%)|
00000280  2c 6d 33 6c 63 24 28 49  25 29 3a ed 0d 00 c8 89  |,m3lc$(I%):.....|
00000290  dc 20 33 31 2c 4a 61 6e  2c 6a 61 6e 2c 32 39 2c  |. 31,Jan,jan,29,|
000002a0  46 65 62 2c 66 65 62 2c  33 31 2c 4d 61 72 2c 6d  |Feb,feb,31,Mar,m|
000002b0  61 72 2c 33 30 2c 41 70  72 2c 61 70 72 2c 33 31  |ar,30,Apr,apr,31|
000002c0  2c 4d 61 79 2c 6d 61 79  2c 33 30 2c 4a 75 6e 2c  |,May,may,30,Jun,|
000002d0  6a 75 6e 2c 33 31 2c 4a  75 6c 2c 6a 75 6c 2c 33  |jun,31,Jul,jul,3|
000002e0  31 2c 41 75 67 2c 61 75  67 2c 33 30 2c 53 65 70  |1,Aug,aug,30,Sep|
000002f0  2c 73 65 70 2c 33 31 2c  4f 63 74 2c 6f 63 74 2c  |,sep,31,Oct,oct,|
00000300  33 30 2c 4e 6f 76 2c 6e  6f 76 2c 33 31 2c 44 65  |30,Nov,nov,31,De|
00000310  63 2c 64 65 63 0d 00 d2  18 f2 44 61 74 61 5f 4c  |c,dec.....Data_L|
00000320  6f 61 64 28 6f 77 6e 66  69 6c 65 24 29 0d 00 dc  |oad(ownfile$)...|
00000330  15 f2 44 61 74 61 5f 4c  6f 61 64 28 66 69 6c 65  |..Data_Load(file|
00000340  24 29 0d 00 e6 1f f2 50  72 65 70 61 72 65 5f 50  |$).....Prepare_P|
00000350  72 69 6e 74 4c 69 73 74  28 30 2c 22 22 2c 22 22  |rintList(0,"",""|
00000360  29 0d 00 f0 05 e1 0d 00  fa 14 dd f2 43 72 65 61  |)...........Crea|
00000370  74 65 5f 57 69 6e 64 6f  77 73 0d 01 04 15 f2 57  |te_Windows.....W|
00000380  69 6d 70 5f 53 70 72 69  74 65 73 4c 6f 61 64 0d  |imp_SpritesLoad.|
00000390  01 0e 29 4d 61 69 6e 5f  57 69 6e 64 6f 77 25 3d  |..)Main_Window%=|
000003a0  a4 57 69 6d 70 5f 57 69  6e 64 6f 77 4c 6f 61 64  |.Wimp_WindowLoad|
000003b0  28 22 4d 61 69 6e 22 29  0d 01 18 29 49 6e 66 6f  |("Main")...)Info|
000003c0  5f 57 69 6e 64 6f 77 25  3d a4 57 69 6d 70 5f 57  |_Window%=.Wimp_W|
000003d0  69 6e 64 6f 77 4c 6f 61  64 28 22 49 6e 66 6f 22  |indowLoad("Info"|
000003e0  29 0d 01 22 2d 53 65 61  72 63 68 5f 57 69 6e 64  |).."-Search_Wind|
000003f0  6f 77 25 3d a4 57 69 6d  70 5f 57 69 6e 64 6f 77  |ow%=.Wimp_Window|
00000400  4c 6f 61 64 28 22 53 65  61 72 63 68 22 29 0d 01  |Load("Search")..|
00000410  2c 25 42 61 72 5f 49 63  6f 6e 25 3d a4 57 69 6d  |,%Bar_Icon%=.Wim|
00000420  70 5f 49 63 6f 6e 42 61  72 28 22 21 54 6f 64 61  |p_IconBar("!Toda|
00000430  79 22 29 0d 01 36 57 f2  57 69 6d 70 5f 49 63 6f  |y")..6W.Wimp_Ico|
00000440  6e 50 75 74 54 65 78 74  28 53 65 61 72 63 68 5f  |nPutText(Search_|
00000450  57 69 6e 64 6f 77 25 2c  30 2c 64 61 79 24 29 3a  |Window%,0,day$):|
00000460  f2 57 69 6d 70 5f 49 63  6f 6e 50 75 74 54 65 78  |.Wimp_IconPutTex|
00000470  74 28 53 65 61 72 63 68  5f 57 69 6e 64 6f 77 25  |t(Search_Window%|
00000480  2c 31 2c 6d 6f 6e 74 68  24 29 0d 01 40 05 e1 0d  |,1,month$)..@...|
00000490  01 4a 1b dd a4 45 76 65  6e 74 5f 53 61 76 65 28  |.J...Event_Save(|
000004a0  77 69 6e 64 6f 77 25 29  3d a3 0d 01 54 25 dd a4  |window%)=...T%..|
000004b0  45 76 65 6e 74 5f 53 70  72 69 74 65 73 28 77 69  |Event_Sprites(wi|
000004c0  6e 64 6f 77 25 29 3d 73  70 72 69 74 65 73 25 0d  |ndow%)=sprites%.|
000004d0  01 5e 12 dd f2 43 72 65  61 74 65 5f 4d 65 6e 75  |.^...Create_Menu|
000004e0  73 0d 01 68 2e 6d 65 6e  75 24 3d 22 21 54 6f 64  |s..h.menu$="!Tod|
000004f0  61 79 5c 49 6e 66 6f 3e  49 6e 66 6f 5f 57 69 6e  |ay\Info>Info_Win|
00000500  64 6f 77 25 5c 48 65 6c  70 5c 51 75 69 74 22 0d  |dow%\Help\Quit".|
00000510  01 72 25 42 61 72 5f 4d  65 6e 75 25 3d a4 57 69  |.r%Bar_Menu%=.Wi|
00000520  6d 70 5f 4d 65 6e 75 43  72 65 61 74 65 28 6d 65  |mp_MenuCreate(me|
00000530  6e 75 24 29 0d 01 7c 47  6d 65 6e 75 24 3d 22 21  |nu$)..|Gmenu$="!|
00000540  54 6f 64 61 79 5c 49 6e  66 6f 3e 49 6e 66 6f 5f  |Today\Info>Info_|
00000550  57 69 6e 64 6f 77 25 5c  4e 6f 74 20 54 6f 64 61  |Window%\Not Toda|
00000560  79 3e 53 65 61 72 63 68  5f 57 69 6e 64 6f 77 25  |y>Search_Window%|
00000570  5c 45 64 69 74 5c 51 75  69 74 22 0d 01 86 26 4d  |\Edit\Quit"...&M|
00000580  61 69 6e 5f 4d 65 6e 75  25 3d a4 57 69 6d 70 5f  |ain_Menu%=.Wimp_|
00000590  4d 65 6e 75 43 72 65 61  74 65 28 6d 65 6e 75 24  |MenuCreate(menu$|
000005a0  29 0d 01 90 05 e1 0d 01  9a 19 dd a4 45 76 65 6e  |)...........Even|
000005b0  74 5f 4d 65 6e 75 28 77  69 6e 64 6f 77 25 29 0d  |t_Menu(window%).|
000005c0  01 a4 0e c8 8e 77 69 6e  64 6f 77 25 ca 0d 01 ae  |.....window%....|
000005d0  1b c9 42 61 72 5f 57 69  6e 64 6f 77 25 3a 3d 42  |..Bar_Window%:=B|
000005e0  61 72 5f 4d 65 6e 75 25  0d 01 b8 1d c9 4d 61 69  |ar_Menu%.....Mai|
000005f0  6e 5f 57 69 6e 64 6f 77  25 3a 3d 4d 61 69 6e 5f  |n_Window%:=Main_|
00000600  4d 65 6e 75 25 0d 01 c2  08 7f 3a 3d a3 0d 01 cc  |Menu%.....:=....|
00000610  05 cb 0d 01 d6 29 dd f2  45 76 65 6e 74 5f 57 69  |.....)..Event_Wi|
00000620  6e 64 6f 77 43 6c 6f 73  65 28 77 69 6e 64 6f 77  |ndowClose(window|
00000630  25 2c 62 75 74 74 6f 6e  73 25 29 0d 01 e0 0e c8  |%,buttons%).....|
00000640  8e 77 69 6e 64 6f 77 25  ca 0d 01 ea 05 cb 0d 01  |.window%........|
00000650  f4 05 e1 0d 01 fe 2d dd  f2 45 76 65 6e 74 5f 44  |......-..Event_D|
00000660  72 61 77 28 77 69 6e 64  6f 77 25 2c 78 5f 6f 72  |raw(window%,x_or|
00000670  69 67 69 6e 25 2c 79 5f  6f 72 69 67 69 6e 25 29  |igin%,y_origin%)|
00000680  0d 02 08 0e c8 8e 77 69  6e 64 6f 77 25 ca 0d 02  |......window%...|
00000690  12 26 c9 4d 61 69 6e 5f  57 69 6e 64 6f 77 25 3a  |.&.Main_Window%:|
000006a0  f2 55 73 65 72 5f 44 72  61 77 4d 61 69 6e 57 69  |.User_DrawMainWi|
000006b0  6e 64 6f 77 0d 02 1c 26  c9 49 6e 66 6f 5f 57 69  |ndow...&.Info_Wi|
000006c0  6e 64 6f 77 25 3a f2 55  73 65 72 5f 44 72 61 77  |ndow%:.User_Draw|
000006d0  49 6e 66 6f 57 69 6e 64  6f 77 0d 02 26 2a c9 53  |InfoWindow..&*.S|
000006e0  65 61 72 63 68 5f 57 69  6e 64 6f 77 25 3a f2 55  |earch_Window%:.U|
000006f0  73 65 72 5f 44 72 61 77  53 65 61 72 63 68 57 69  |ser_DrawSearchWi|
00000700  6e 64 6f 77 0d 02 30 05  cb 0d 02 3a 05 e1 0d 02  |ndow..0....:....|
00000710  44 19 dd f2 55 73 65 72  5f 44 72 61 77 4d 61 69  |D...User_DrawMai|
00000720  6e 57 69 6e 64 6f 77 0d  02 4e 19 ea 69 25 2c 78  |nWindow..N..i%,x|
00000730  25 2c 79 25 2c 68 25 2c  6c 25 3a 50 72 25 3d b9  |%,y%,h%,l%:Pr%=.|
00000740  0d 02 58 09 68 25 3d 33  32 0d 02 62 13 79 25 3d  |..X.h%=32..b.y%=|
00000750  79 5f 6f 72 69 67 69 6e  25 2d 68 25 0d 02 6c 10  |y_origin%-h%..l.|
00000760  e3 69 25 3d 31 b8 50 6c  69 73 74 25 0d 02 76 13  |.i%=1.Plist%..v.|
00000770  78 25 3d 78 5f 6f 72 69  67 69 6e 25 2b 68 25 0d  |x%=x_origin%+h%.|
00000780  02 80 0a ec 78 25 2c 79  25 0d 02 8a 0f f1 50 6c  |....x%,y%.....Pl|
00000790  69 73 74 24 28 69 25 29  0d 02 94 0a 79 25 2d 3d  |ist$(i%)....y%-=|
000007a0  68 25 0d 02 9e 05 ed 0d  02 a8 09 50 72 25 3d a3  |h%.........Pr%=.|
000007b0  0d 02 b2 05 e1 0d 02 bc  19 dd f2 55 73 65 72 5f  |...........User_|
000007c0  44 72 61 77 49 6e 66 6f  57 69 6e 64 6f 77 0d 02  |DrawInfoWindow..|
000007d0  c6 05 e1 0d 02 d0 1b dd  f2 55 73 65 72 5f 44 72  |.........User_Dr|
000007e0  61 77 53 65 61 72 63 68  57 69 6e 64 6f 77 0d 02  |awSearchWindow..|
000007f0  da 05 e1 0d 02 e4 33 dd  f2 45 76 65 6e 74 5f 4d  |......3..Event_M|
00000800  6f 75 73 65 43 6c 69 63  6b 28 77 69 6e 64 6f 77  |ouseClick(window|
00000810  25 2c 69 63 6f 6e 25 2c  62 75 74 74 6f 6e 25 2c  |%,icon%,button%,|
00000820  78 25 2c 79 25 29 0d 02  ee 0e c8 8e 77 69 6e 64  |x%,y%)......wind|
00000830  6f 77 25 ca 0d 02 f8 35  c9 42 61 72 5f 57 69 6e  |ow%....5.Bar_Win|
00000840  64 6f 77 25 3a f2 57 69  6d 70 5f 57 69 6e 64 6f  |dow%:.Wimp_Windo|
00000850  77 42 72 69 6e 67 54 6f  54 6f 70 28 4d 61 69 6e  |wBringToTop(Main|
00000860  5f 57 69 6e 64 6f 77 25  29 0d 03 02 30 c9 4d 61  |_Window%)...0.Ma|
00000870  69 6e 5f 57 69 6e 64 6f  77 25 3a f2 55 73 65 72  |in_Window%:.User|
00000880  5f 4d 6f 75 73 65 4d 61  69 6e 28 62 75 74 74 6f  |_MouseMain(butto|
00000890  6e 25 2c 69 63 6f 6e 25  29 0d 03 0c 30 c9 49 6e  |n%,icon%)...0.In|
000008a0  66 6f 5f 57 69 6e 64 6f  77 25 3a f2 55 73 65 72  |fo_Window%:.User|
000008b0  5f 4d 6f 75 73 65 49 6e  66 6f 28 62 75 74 74 6f  |_MouseInfo(butto|
000008c0  6e 25 2c 69 63 6f 6e 25  29 0d 03 16 34 c9 53 65  |n%,icon%)...4.Se|
000008d0  61 72 63 68 5f 57 69 6e  64 6f 77 25 3a f2 55 73  |arch_Window%:.Us|
000008e0  65 72 5f 4d 6f 75 73 65  53 65 61 72 63 68 28 62  |er_MouseSearch(b|
000008f0  75 74 74 6f 6e 25 2c 69  63 6f 6e 25 29 0d 03 20  |utton%,icon%).. |
00000900  05 cb 0d 03 2a 05 e1 0d  03 34 23 dd f2 55 73 65  |....*....4#..Use|
00000910  72 5f 4d 6f 75 73 65 4d  61 69 6e 28 62 75 74 74  |r_MouseMain(butt|
00000920  6f 6e 25 2c 69 63 6f 6e  25 29 0d 03 3e 05 e1 0d  |on%,icon%)..>...|
00000930  03 48 23 dd f2 55 73 65  72 5f 4d 6f 75 73 65 49  |.H#..User_MouseI|
00000940  6e 66 6f 28 62 75 74 74  6f 6e 25 2c 69 63 6f 6e  |nfo(button%,icon|
00000950  25 29 0d 03 52 05 e1 0d  03 5c 25 dd f2 55 73 65  |%)..R....\%..Use|
00000960  72 5f 4d 6f 75 73 65 53  65 61 72 63 68 28 62 75  |r_MouseSearch(bu|
00000970  74 74 6f 6e 25 2c 69 63  6f 6e 25 29 0d 03 66 0c  |tton%,icon%)..f.|
00000980  c8 8e 69 63 6f 6e 25 ca  0d 03 70 0f c9 32 3a f2  |..icon%...p..2:.|
00000990  49 6e 63 44 61 74 65 0d  03 7a 10 c9 33 3a f2 49  |IncDate..z..3:.I|
000009a0  6e 63 4d 6f 6e 74 68 0d  03 84 0f c9 34 3a f2 44  |ncMonth.....4:.D|
000009b0  65 63 44 61 74 65 0d 03  8e 10 c9 35 3a f2 44 65  |ecDate.....5:.De|
000009c0  63 4d 6f 6e 74 68 0d 03  98 12 c9 36 3a f2 55 70  |cMonth.....6:.Up|
000009d0  64 61 74 65 4d 61 69 6e  0d 03 a2 05 cb 0d 03 ac  |dateMain........|
000009e0  05 e1 0d 03 b6 28 dd f2  45 76 65 6e 74 5f 4b 65  |.....(..Event_Ke|
000009f0  79 50 72 65 73 73 28 77  69 6e 64 6f 77 25 2c 69  |yPress(window%,i|
00000a00  63 6f 6e 25 2c 6b 65 79  25 29 0d 03 c0 0e c8 8e  |con%,key%)......|
00000a10  77 69 6e 64 6f 77 25 ca  0d 03 ca 29 c9 53 65 61  |window%....).Sea|
00000a20  72 63 68 5f 57 69 6e 64  6f 77 25 3a e7 6b 65 79  |rch_Window%:.key|
00000a30  25 3d 31 33 f2 55 70 64  61 74 65 4d 61 69 6e 3a  |%=13.UpdateMain:|
00000a40  cb 0d 03 d4 05 cb 0d 03  de 05 e1 0d 03 e8 1d dd  |................|
00000a50  f2 45 76 65 6e 74 5f 4d  65 6e 75 43 68 6f 69 63  |.Event_MenuChoic|
00000a60  65 28 6d 65 6e 75 25 29  0d 03 f2 0c c8 8e 6d 65  |e(menu%)......me|
00000a70  6e 75 25 ca 0d 03 fc 22  c9 42 61 72 5f 4d 65 6e  |nu%....".Bar_Men|
00000a80  75 25 3a f2 55 73 65 72  5f 4d 65 6e 75 43 68 6f  |u%:.User_MenuCho|
00000a90  69 63 65 42 61 72 0d 04  06 24 c9 4d 61 69 6e 5f  |iceBar...$.Main_|
00000aa0  4d 65 6e 75 25 3a f2 55  73 65 72 5f 4d 65 6e 75  |Menu%:.User_Menu|
00000ab0  43 68 6f 69 63 65 4d 61  69 6e 0d 04 10 05 cb 0d  |ChoiceMain......|
00000ac0  04 1a 05 e1 0d 04 24 18  dd f2 55 73 65 72 5f 4d  |......$...User_M|
00000ad0  65 6e 75 43 68 6f 69 63  65 42 61 72 0d 04 2e 1a  |enuChoiceBar....|
00000ae0  c8 8e a4 57 69 6d 70 5f  4d 65 6e 75 43 68 6f 69  |...Wimp_MenuChoi|
00000af0  63 65 28 30 29 ca 0d 04  38 06 c9 31 0d 04 42 2c  |ce(0)...8..1..B,|
00000b00  c9 32 3a f2 57 69 6d 70  5f 53 65 6e 64 54 6f 45  |.2:.Wimp_SendToE|
00000b10  64 69 74 28 22 3c 54 6f  64 61 79 24 44 69 72 3e  |dit("<Today$Dir>|
00000b20  2e 21 48 65 6c 70 22 29  0d 04 4c 12 c9 33 3a 66  |.!Help")..L..3:f|
00000b30  69 6e 69 73 68 65 64 25  3d b9 0d 04 56 05 cb 0d  |inished%=...V...|
00000b40  04 60 05 e1 0d 04 6a 19  dd f2 55 73 65 72 5f 4d  |.`....j...User_M|
00000b50  65 6e 75 43 68 6f 69 63  65 4d 61 69 6e 0d 04 74  |enuChoiceMain..t|
00000b60  1a c8 8e a4 57 69 6d 70  5f 4d 65 6e 75 43 68 6f  |....Wimp_MenuCho|
00000b70  69 63 65 28 30 29 ca 0d  04 7e 06 c9 31 0d 04 88  |ice(0)...~..1...|
00000b80  06 c9 32 0d 04 92 34 c9  33 3a f2 57 69 6d 70 5f  |..2...4.3:.Wimp_|
00000b90  53 65 6e 64 54 6f 45 64  69 74 28 22 3c 54 6f 64  |SendToEdit("<Tod|
00000ba0  61 79 24 44 69 72 3e 2e  54 6f 64 61 79 44 61 74  |ay$Dir>.TodayDat|
00000bb0  61 2e 6f 77 6e 22 29 0d  04 9c 12 c9 34 3a 66 69  |a.own").....4:fi|
00000bc0  6e 69 73 68 65 64 25 3d  b9 0d 04 a6 05 cb 0d 04  |nished%=........|
00000bd0  b0 05 e1 0d 04 ba 21 dd  f2 45 76 65 6e 74 5f 4c  |......!..Event_L|
00000be0  6f 61 64 46 69 6c 65 28  66 69 6c 65 24 2c 74 79  |oadFile(file$,ty|
00000bf0  70 65 24 29 0d 04 c4 05  e1 0d 04 ce 23 dd f2 45  |pe$)........#..E|
00000c00  76 65 6e 74 5f 53 61 76  65 46 69 6c 65 28 66 69  |vent_SaveFile(fi|
00000c10  6c 65 24 2c 77 69 6e 64  6f 77 25 29 0d 04 d8 05  |le$,window%)....|
00000c20  e1 0d 04 e2 12 dd a4 74  69 6d 65 74 65 78 74 28  |.......timetext(|
00000c30  66 24 29 0d 04 ec 15 24  74 69 6d 65 66 6f 72 6d  |f$)....$timeform|
00000c40  61 74 3d 66 24 2b bd 30  0d 04 f6 30 c8 99 26 43  |at=f$+.0...0..&C|
00000c50  31 2c 74 69 6d 65 62 6c  6b 2c 74 69 6d 65 73 74  |1,timeblk,timest|
00000c60  72 69 6e 67 2c 36 34 2c  74 69 6d 65 66 6f 72 6d  |ring,64,timeform|
00000c70  61 74 b8 72 30 2c 72 31  0d 05 00 0a 3f 72 31 3d  |at.r0,r1....?r1=|
00000c80  31 33 0d 05 0a 10 3d 24  74 69 6d 65 73 74 72 69  |13....=$timestri|
00000c90  6e 67 0d 05 14 13 dd a4  4c 6f 77 65 72 43 61 73  |ng......LowerCas|
00000ca0  65 28 41 24 29 0d 05 1e  0d ea 49 25 3a 42 24 3d  |e(A$).....I%:B$=|
00000cb0  22 22 0d 05 28 0f e3 49  25 3d 31 b8 a9 28 41 24  |""..(..I%=1..(A$|
00000cc0  29 0d 05 32 1d 42 24 3d  42 24 2b bd 28 97 28 c1  |)..2.B$=B$+.(.(.|
00000cd0  41 24 2c 49 25 2c 31 29  29 84 26 32 30 29 0d 05  |A$,I%,1)).&20)..|
00000ce0  3c 05 ed 0d 05 46 07 3d  42 24 0d 05 50 16 dd f2  |<....F.=B$..P...|
00000cf0  44 61 74 61 5f 4c 6f 61  64 28 66 69 6c 65 24 29  |Data_Load(file$)|
00000d00  0d 05 5a 14 c8 99 22 48  6f 75 72 67 6c 61 73 73  |..Z..."Hourglass|
00000d10  5f 4f 6e 22 0d 05 64 15  ea 46 25 2c 4c 69 6e 65  |_On"..d..F%,Line|
00000d20  24 2c 46 61 69 6c 65 64  25 0d 05 6e 0f 46 25 3d  |$,Failed%..n.F%=|
00000d30  8e 28 66 69 6c 65 24 29  0d 05 78 05 f5 0d 05 82  |.(file$)..x.....|
00000d40  0e 4c 69 6e 65 24 3d be  23 46 25 0d 05 8c 1d e7  |.Line$=.#F%.....|
00000d50  c0 4c 69 6e 65 24 2c 31  29 3d 22 2a 22 8c 4c 69  |.Line$,1)="*".Li|
00000d60  6e 65 24 3d be 23 46 25  0d 05 96 0c f2 57 65 65  |ne$=.#F%.....Wee|
00000d70  6b 64 61 79 0d 05 a0 7c  e7 28 c1 4c 69 6e 65 24  |kday...|.(.Line$|
00000d80  2c 32 2c 34 29 3d 74 6f  64 61 79 24 84 28 28 c1  |,2,4)=today$.((.|
00000d90  4c 69 6e 65 24 2c 32 2c  32 29 3d 22 30 30 22 80  |Line$,2,2)="00".|
00000da0  c1 4c 69 6e 65 24 2c 34  2c 32 29 3d c1 74 6f 64  |.Line$,4,2)=.tod|
00000db0  61 79 24 2c 33 2c 32 29  29 84 28 c1 4c 69 6e 65  |ay$,3,2)).(.Line|
00000dc0  24 2c 34 2c 32 29 3d 22  30 30 22 80 c1 4c 69 6e  |$,4,2)="00"..Lin|
00000dd0  65 24 2c 32 2c 32 29 3d  c1 74 6f 64 61 79 24 2c  |e$,2,2)=.today$,|
00000de0  31 2c 32 29 29 29 29 58  25 3d b9 8b 58 25 3d a3  |1,2))))X%=..X%=.|
00000df0  0d 05 aa 36 e7 28 c0 4c  69 6e 65 24 2c 31 29 3d  |...6.(.Line$,1)=|
00000e00  22 42 22 80 20 58 25 29  8c 42 64 61 79 24 28 42  |"B". X%).Bday$(B|
00000e10  64 61 79 25 2b 31 29 3d  4c 69 6e 65 24 3a 42 64  |day%+1)=Line$:Bd|
00000e20  61 79 25 2b 3d 31 0d 05  b4 36 e7 28 c0 4c 69 6e  |ay%+=1...6.(.Lin|
00000e30  65 24 2c 31 29 3d 22 53  22 80 20 58 25 29 8c 45  |e$,1)="S". X%).E|
00000e40  64 61 79 24 28 45 64 61  79 25 2b 31 29 3d 4c 69  |day$(Eday%+1)=Li|
00000e50  6e 65 24 3a 45 64 61 79  25 2b 3d 31 0d 05 be 36  |ne$:Eday%+=1...6|
00000e60  e7 28 c0 4c 69 6e 65 24  2c 31 29 3d 22 52 22 80  |.(.Line$,1)="R".|
00000e70  20 58 25 29 8c 52 64 61  79 24 28 52 64 61 79 25  | X%).Rday$(Rday%|
00000e80  2b 31 29 3d 4c 69 6e 65  24 3a 52 64 61 79 25 2b  |+1)=Line$:Rday%+|
00000e90  3d 31 0d 05 c8 29 fd 28  c5 23 46 25 84 28 42 64  |=1...).(.#F%.(Bd|
00000ea0  61 79 25 2b 45 64 61 79  25 2b 52 64 61 79 25 29  |ay%+Eday%+Rday%)|
00000eb0  3d 4d 61 78 4c 69 6e 65  73 25 29 0d 05 d2 08 d9  |=MaxLines%).....|
00000ec0  23 46 25 0d 05 dc 15 c8  99 22 48 6f 75 72 67 6c  |#F%......"Hourgl|
00000ed0  61 73 73 5f 4f 66 66 22  0d 05 e6 5b e7 28 42 64  |ass_Off"...[.(Bd|
00000ee0  61 79 25 2b 45 64 61 79  25 29 3d 4d 61 78 4c 69  |ay%+Eday%)=MaxLi|
00000ef0  6e 65 73 25 8c 4d 65 73  73 24 3d 22 44 61 74 61  |nes%.Mess$="Data|
00000f00  20 4f 76 65 72 66 6c 6f  77 2e 2e 2e 22 3a f2 57  | Overflow...":.W|
00000f10  69 6d 70 5f 57 69 6e 64  6f 77 41 6c 65 72 74 28  |imp_WindowAlert(|
00000f20  22 57 48 4f 4f 50 53 21  2e 2e 2e 22 2c 4d 65 73  |"WHOOPS!...",Mes|
00000f30  73 24 29 0d 05 f0 05 e1  0d 05 fa 0d dd f2 57 65  |s$)...........We|
00000f40  65 6b 64 61 79 0d 06 04  07 ea 51 25 0d 06 0e 21  |ekday.....Q%...!|
00000f50  51 25 3d a7 22 31 32 33  34 35 36 37 43 20 22 2c  |Q%=."1234567C ",|
00000f60  c1 4c 69 6e 65 24 2c 31  30 2c 31 29 29 0d 06 18  |.Line$,10,1))...|
00000f70  0a e7 51 25 3e 37 e1 0d  06 22 0a e7 c5 23 46 25  |..Q%>7..."...#F%|
00000f80  8c 0d 06 2c 1c e7 51 25  3c 3e 54 6f 64 61 79 25  |...,..Q%<>Today%|
00000f90  8c 4c 69 6e 65 24 3d 22  22 3a e1 8b e1 0d 06 36  |.Line$="":.....6|
00000fa0  05 cd 0d 06 40 24 e7 51  25 3c 3e 54 6f 64 61 79  |....@$.Q%<>Today|
00000fb0  25 4c 69 6e 65 24 3d be  23 46 25 3a f2 57 65 65  |%Line$=.#F%:.Wee|
00000fc0  6b 64 61 79 8b e1 0d 06  4a 05 e1 0d 06 54 21 dd  |kday....J....T!.|
00000fd0  f2 50 72 65 70 61 72 65  5f 50 72 69 6e 74 4c 69  |.Prepare_PrintLi|
00000fe0  73 74 28 51 25 2c 41 24  2c 42 24 29 0d 06 5e 0c  |st(Q%,A$,B$)..^.|
00000ff0  50 6c 69 73 74 25 3d 31  0d 06 68 4f e7 51 25 3d  |Plist%=1..hO.Q%=|
00001000  30 8c 50 6c 69 73 74 24  28 50 6c 69 73 74 25 29  |0.Plist$(Plist%)|
00001010  3d a4 74 69 6d 65 74 65  78 74 28 22 54 6f 64 61  |=.timetext("Toda|
00001020  79 20 69 73 20 25 57 45  20 25 7a 44 59 25 53 54  |y is %WE %zDY%ST|
00001030  20 25 4d 4f 20 25 43 45  25 59 52 22 29 3a 50 6c  | %MO %CE%YR"):Pl|
00001040  69 73 74 25 2b 3d 31 0d  06 72 38 e7 51 25 3d 31  |ist%+=1..r8.Q%=1|
00001050  8c 50 6c 69 73 74 24 28  50 6c 69 73 74 25 29 3d  |.Plist$(Plist%)=|
00001060  22 44 61 74 61 20 66 6f  72 20 22 2b 41 24 2b 22  |"Data for "+A$+"|
00001070  20 22 2b 42 24 3a 50 6c  69 73 74 25 2b 3d 31 0d  | "+B$:Plist%+=1.|
00001080  06 7c 2a f2 41 64 64 54  6f 4c 69 73 74 28 22 52  |.|*.AddToList("R|
00001090  65 6d 69 6e 64 65 72 73  20 22 2c 52 64 61 79 25  |eminders ",Rday%|
000010a0  2c 52 64 61 79 24 28 29  29 0d 06 86 2a f2 41 64  |,Rday$())...*.Ad|
000010b0  64 54 6f 4c 69 73 74 28  22 42 69 72 74 68 64 61  |dToList("Birthda|
000010c0  79 73 20 22 2c 42 64 61  79 25 2c 42 64 61 79 24  |ys ",Bday%,Bday$|
000010d0  28 29 29 0d 06 90 2e f2  41 64 64 54 6f 4c 69 73  |()).....AddToLis|
000010e0  74 28 22 41 6e 6e 69 76  65 72 73 61 72 69 65 73  |t("Anniversaries|
000010f0  20 22 2c 45 64 61 79 25  2c 45 64 61 79 24 28 29  | ",Eday%,Eday$()|
00001100  29 0d 06 9a 05 e1 0d 06  a4 1b dd f2 41 64 64 54  |)...........AddT|
00001110  6f 4c 69 73 74 28 5a 24  2c 5a 25 2c 59 24 28 29  |oList(Z$,Z%,Y$()|
00001120  29 0d 06 ae 0b e7 5a 25  3d 30 8c e1 0d 06 b8 1f  |).....Z%=0......|
00001130  50 6c 69 73 74 24 28 50  6c 69 73 74 25 29 3d 22  |Plist$(Plist%)="|
00001140  22 3a 50 6c 69 73 74 25  2b 3d 31 0d 06 c2 1f 50  |":Plist%+=1....P|
00001150  6c 69 73 74 24 28 50 6c  69 73 74 25 29 3d 5a 24  |list$(Plist%)=Z$|
00001160  3a 50 6c 69 73 74 25 2b  3d 31 0d 06 cc 1f 50 6c  |:Plist%+=1....Pl|
00001170  69 73 74 24 28 50 6c 69  73 74 25 29 3d 22 22 3a  |ist$(Plist%)="":|
00001180  50 6c 69 73 74 25 2b 3d  31 0d 06 d6 0c e3 49 25  |Plist%+=1.....I%|
00001190  3d 31 b8 5a 25 0d 06 e0  11 41 24 3d c1 59 24 28  |=1.Z%....A$=.Y$(|
000011a0  49 25 29 2c 36 29 0d 06  ea 24 e7 c1 41 24 2c 35  |I%),6)...$..A$,5|
000011b0  2c 31 29 3c 3e 22 20 22  8c 41 24 3d c4 35 2c 22  |,1)<>" ".A$=.5,"|
000011c0  20 22 29 2b c1 41 24 2c  36 29 0d 06 f4 1f 50 6c  | ")+.A$,6)....Pl|
000011d0  69 73 74 24 28 50 6c 69  73 74 25 29 3d 41 24 3a  |ist$(Plist%)=A$:|
000011e0  50 6c 69 73 74 25 2b 3d  31 0d 06 fe 05 ed 0d 07  |Plist%+=1.......|
000011f0  08 05 e1 0d 07 12 0d dd  f2 49 6e 63 44 61 74 65  |.........IncDate|
00001200  0d 07 1c 0d ea 41 24 2c  42 24 2c 49 25 0d 07 26  |.....A$,B$,I%..&|
00001210  27 41 24 3d a4 57 69 6d  70 5f 49 63 6f 6e 54 65  |'A$=.Wimp_IconTe|
00001220  78 74 28 53 65 61 72 63  68 5f 57 69 6e 64 6f 77  |xt(Search_Window|
00001230  25 2c 30 29 0d 07 30 27  42 24 3d a4 57 69 6d 70  |%,0)..0'B$=.Wimp|
00001240  5f 49 63 6f 6e 54 65 78  74 28 53 65 61 72 63 68  |_IconText(Search|
00001250  5f 57 69 6e 64 6f 77 25  2c 31 29 0d 07 3a 15 42  |_Window%,1)..:.B|
00001260  24 3d a4 4c 6f 77 65 72  43 61 73 65 28 42 24 29  |$=.LowerCase(B$)|
00001270  0d 07 44 1e 49 25 3d 30  3a f5 3a 49 25 2b 3d 31  |..D.I%=0:.:I%+=1|
00001280  3a fd 42 24 3d 6d 33 6c  63 24 28 49 25 29 0d 07  |:.B$=m3lc$(I%)..|
00001290  4e 11 41 24 3d c3 28 bb  28 41 24 29 2b 31 29 0d  |N.A$=.(.(A$)+1).|
000012a0  07 58 27 e7 bb 28 41 24  29 3e 3d 6d 64 61 79 73  |.X'..(A$)>=mdays|
000012b0  25 28 49 25 29 8c 41 24  3d c3 28 6d 64 61 79 73  |%(I%).A$=.(mdays|
000012c0  25 28 49 25 29 29 0d 07  62 2a f2 57 69 6d 70 5f  |%(I%))..b*.Wimp_|
000012d0  49 63 6f 6e 50 75 74 54  65 78 74 28 53 65 61 72  |IconPutText(Sear|
000012e0  63 68 5f 57 69 6e 64 6f  77 25 2c 30 2c 41 24 29  |ch_Window%,0,A$)|
000012f0  0d 07 6c 05 e1 0d 07 76  0e dd f2 49 6e 63 4d 6f  |..l....v...IncMo|
00001300  6e 74 68 0d 07 80 0a ea  41 24 2c 49 25 0d 07 8a  |nth.....A$,I%...|
00001310  27 41 24 3d a4 57 69 6d  70 5f 49 63 6f 6e 54 65  |'A$=.Wimp_IconTe|
00001320  78 74 28 53 65 61 72 63  68 5f 57 69 6e 64 6f 77  |xt(Search_Window|
00001330  25 2c 31 29 0d 07 94 15  41 24 3d a4 4c 6f 77 65  |%,1)....A$=.Lowe|
00001340  72 43 61 73 65 28 41 24  29 0d 07 9e 1e 49 25 3d  |rCase(A$)....I%=|
00001350  30 3a f5 3a 49 25 2b 3d  31 3a fd 41 24 3d 6d 33  |0:.:I%+=1:.A$=m3|
00001360  6c 63 24 28 49 25 29 0d  07 a8 0f e7 49 25 3d 31  |lc$(I%).....I%=1|
00001370  32 20 49 25 3d 30 0d 07  b2 31 f2 57 69 6d 70 5f  |2 I%=0...1.Wimp_|
00001380  49 63 6f 6e 50 75 74 54  65 78 74 28 53 65 61 72  |IconPutText(Sear|
00001390  63 68 5f 57 69 6e 64 6f  77 25 2c 31 2c 6d 33 24  |ch_Window%,1,m3$|
000013a0  28 49 25 2b 31 29 29 0d  07 bc 05 e1 0d 07 c6 0d  |(I%+1)).........|
000013b0  dd f2 44 65 63 44 61 74  65 0d 07 d0 0a ea 41 24  |..DecDate.....A$|
000013c0  2c 49 25 0d 07 da 27 41  24 3d a4 57 69 6d 70 5f  |,I%...'A$=.Wimp_|
000013d0  49 63 6f 6e 54 65 78 74  28 53 65 61 72 63 68 5f  |IconText(Search_|
000013e0  57 69 6e 64 6f 77 25 2c  30 29 0d 07 e4 11 41 24  |Window%,0)....A$|
000013f0  3d c3 28 bb 28 41 24 29  2d 31 29 0d 07 ee 11 e7  |=.(.(A$)-1).....|
00001400  41 24 3d 22 30 22 41 24  3d 22 31 22 0d 07 f8 2a  |A$="0"A$="1"...*|
00001410  f2 57 69 6d 70 5f 49 63  6f 6e 50 75 74 54 65 78  |.Wimp_IconPutTex|
00001420  74 28 53 65 61 72 63 68  5f 57 69 6e 64 6f 77 25  |t(Search_Window%|
00001430  2c 30 2c 41 24 29 0d 08  02 05 e1 0d 08 0c 0e dd  |,0,A$)..........|
00001440  f2 44 65 63 4d 6f 6e 74  68 0d 08 16 0a ea 41 24  |.DecMonth.....A$|
00001450  2c 49 25 0d 08 20 27 41  24 3d a4 57 69 6d 70 5f  |,I%.. 'A$=.Wimp_|
00001460  49 63 6f 6e 54 65 78 74  28 53 65 61 72 63 68 5f  |IconText(Search_|
00001470  57 69 6e 64 6f 77 25 2c  31 29 0d 08 2a 15 41 24  |Window%,1)..*.A$|
00001480  3d a4 4c 6f 77 65 72 43  61 73 65 28 41 24 29 0d  |=.LowerCase(A$).|
00001490  08 34 1e 49 25 3d 30 3a  f5 3a 49 25 2b 3d 31 3a  |.4.I%=0:.:I%+=1:|
000014a0  fd 41 24 3d 6d 33 6c 63  24 28 49 25 29 0d 08 3e  |.A$=m3lc$(I%)..>|
000014b0  0f e7 49 25 3d 31 20 49  25 3d 31 33 0d 08 48 31  |..I%=1 I%=13..H1|
000014c0  f2 57 69 6d 70 5f 49 63  6f 6e 50 75 74 54 65 78  |.Wimp_IconPutTex|
000014d0  74 28 53 65 61 72 63 68  5f 57 69 6e 64 6f 77 25  |t(Search_Window%|
000014e0  2c 31 2c 6d 33 24 28 49  25 2d 31 29 29 0d 08 52  |,1,m3$(I%-1))..R|
000014f0  05 e1 0d 08 5c 10 dd f2  55 70 64 61 74 65 4d 61  |....\...UpdateMa|
00001500  69 6e 0d 08 66 1c ea 41  24 2c 42 24 2c 43 24 2c  |in..f..A$,B$,C$,|
00001510  4a 25 2c 49 25 2c 4b 25  2c 4d 65 73 73 24 0d 08  |J%,I%,K%,Mess$..|
00001520  70 27 41 24 3d a4 57 69  6d 70 5f 49 63 6f 6e 54  |p'A$=.Wimp_IconT|
00001530  65 78 74 28 53 65 61 72  63 68 5f 57 69 6e 64 6f  |ext(Search_Windo|
00001540  77 25 2c 30 29 0d 08 7a  27 42 24 3d a4 57 69 6d  |w%,0)..z'B$=.Wim|
00001550  70 5f 49 63 6f 6e 54 65  78 74 28 53 65 61 72 63  |p_IconText(Searc|
00001560  68 5f 57 69 6e 64 6f 77  25 2c 31 29 0d 08 84 23  |h_Window%,1)...#|
00001570  54 6f 64 61 79 25 3d 39  3a 4a 25 3d 30 3a 42 24  |Today%=9:J%=0:B$|
00001580  3d a4 4c 6f 77 65 72 43  61 73 65 28 42 24 29 0d  |=.LowerCase(B$).|
00001590  08 8e 16 e7 a9 28 41 24  29 3d 31 20 41 24 3d 22  |.....(A$)=1 A$="|
000015a0  30 22 2b 41 24 0d 08 98  0c e3 49 25 3d 31 b8 31  |0"+A$.....I%=1.1|
000015b0  32 0d 08 a2 16 e7 6d 33  6c 63 24 28 49 25 29 3d  |2.....m3lc$(I%)=|
000015c0  42 24 8c 4a 25 3d 31 0d  08 ac 05 ed 0d 08 b6 4e  |B$.J%=1........N|
000015d0  e7 4a 25 3d 30 8c 4d 65  73 73 24 3d 22 4d 6f 6e  |.J%=0.Mess$="Mon|
000015e0  74 68 20 73 70 65 6c 74  20 69 6e 63 6f 72 72 65  |th spelt incorre|
000015f0  63 74 6c 79 22 3a f2 57  69 6d 70 5f 57 69 6e 64  |ctly":.Wimp_Wind|
00001600  6f 77 41 6c 65 72 74 28  22 57 68 6f 6f 70 73 21  |owAlert("Whoops!|
00001610  22 2c 4d 65 73 73 24 29  3a e1 0d 08 c0 1e 4b 25  |",Mess$):.....K%|
00001620  3d 30 3a f5 3a 4b 25 2b  3d 31 3a fd 42 24 3d 6d  |=0:.:K%+=1:.B$=m|
00001630  33 6c 63 24 28 4b 25 29  0d 08 ca 1f 43 24 3d c3  |3lc$(K%)....C$=.|
00001640  28 4b 25 29 3a e7 a9 28  43 24 29 3d 31 20 43 24  |(K%):..(C$)=1 C$|
00001650  3d 22 30 22 2b 43 24 0d  08 d4 5e e7 bb 28 41 24  |="0"+C$...^..(A$|
00001660  29 3e 6d 64 61 79 73 25  28 4b 25 29 8c 4d 65 73  |)>mdays%(K%).Mes|
00001670  73 24 3d 22 54 6f 6f 20  6d 61 6e 79 20 64 61 79  |s$="Too many day|
00001680  73 20 69 6e 20 74 68 69  73 20 6d 6f 6e 74 68 22  |s in this month"|
00001690  3a f2 57 69 6d 70 5f 57  69 6e 64 6f 77 41 6c 65  |:.Wimp_WindowAle|
000016a0  72 74 28 22 57 68 6f 6f  70 73 21 22 2c 4d 65 73  |rt("Whoops!",Mes|
000016b0  73 24 29 3a e1 0d 08 de  3e e3 49 25 3d 30 b8 4d  |s$):....>.I%=0.M|
000016c0  61 78 4c 69 6e 65 73 25  2f 33 3a 42 64 61 79 24  |axLines%/3:Bday$|
000016d0  28 49 25 29 3d 22 22 3a  45 64 61 79 24 28 49 25  |(I%)="":Eday$(I%|
000016e0  29 3d 22 22 3a 52 64 61  79 24 28 49 25 29 3d 22  |)="":Rday$(I%)="|
000016f0  22 3a ed 0d 08 e8 22 e3  49 25 3d 30 b8 4d 61 78  |":....".I%=0.Max|
00001700  4c 69 6e 65 73 25 2b 31  30 3a 50 6c 69 73 74 24  |Lines%+10:Plist$|
00001710  3d 22 22 3a ed 0d 08 f2  25 66 69 6c 65 24 3d 22  |="":....%file$="|
00001720  3c 54 6f 64 61 79 24 44  69 72 3e 2e 54 6f 64 61  |<Today$Dir>.Toda|
00001730  79 44 61 74 61 2e 22 2b  42 24 0d 08 fc 28 42 64  |yData."+B$...(Bd|
00001740  61 79 25 3d 30 3a 45 64  61 79 25 3d 30 3a 52 64  |ay%=0:Eday%=0:Rd|
00001750  61 79 25 3d 30 3a 74 6f  64 61 79 24 3d 43 24 2b  |ay%=0:today$=C$+|
00001760  41 24 0d 09 06 20 e3 49  25 3d 31 b8 50 6c 69 73  |A$... .I%=1.Plis|
00001770  74 25 3a 50 6c 69 73 74  24 28 49 25 29 3d 22 22  |t%:Plist$(I%)=""|
00001780  3a ed 0d 09 10 18 f2 44  61 74 61 5f 4c 6f 61 64  |:......Data_Load|
00001790  28 6f 77 6e 66 69 6c 65  24 29 0d 09 1a 15 f2 44  |(ownfile$).....D|
000017a0  61 74 61 5f 4c 6f 61 64  28 66 69 6c 65 24 29 0d  |ata_Load(file$).|
000017b0  09 24 24 f2 50 72 65 70  61 72 65 5f 50 72 69 6e  |.$$.Prepare_Prin|
000017c0  74 4c 69 73 74 28 31 2c  41 24 2c 6d 33 24 28 4b  |tList(1,A$,m3$(K|
000017d0  25 29 29 0d 09 2e 27 f2  57 69 6d 70 5f 57 69 6e  |%))...'.Wimp_Win|
000017e0  64 6f 77 46 6f 72 63 65  44 72 61 77 28 4d 61 69  |dowForceDraw(Mai|
000017f0  6e 5f 57 69 6e 64 6f 77  25 29 0d 09 38 25 f2 57  |n_Window%)..8%.W|
00001800  69 6d 70 5f 57 69 6e 64  6f 77 43 6c 6f 73 65 28  |imp_WindowClose(|
00001810  53 65 61 72 63 68 5f 57  69 6e 64 6f 77 25 29 0d  |Search_Window%).|
00001820  09 42 13 f2 57 69 6d 70  5f 4d 65 6e 75 43 6c 6f  |.B..Wimp_MenuClo|
00001830  73 65 0d 09 4c 05 e1 0d  09 56 27 dd f2 57 69 6d  |se..L....V'..Wim|
00001840  70 5f 57 69 6e 64 6f 77  41 6c 65 72 74 28 74 69  |p_WindowAlert(ti|
00001850  74 6c 65 24 2c 6d 65 73  73 61 67 65 24 29 0d 09  |tle$,message$)..|
00001860  60 2b f2 57 69 6d 70 5f  57 69 6e 64 6f 77 41 6c  |`+.Wimp_WindowAl|
00001870  65 72 74 42 6f 78 28 74  69 74 6c 65 24 2c 6d 65  |ertBox(title$,me|
00001880  73 73 61 67 65 24 2c 30  29 0d 09 6a 05 e1 0d 09  |ssage$,0)..j....|
00001890  74 32 dd f2 57 69 6d 70  5f 57 69 6e 64 6f 77 41  |t2..Wimp_WindowA|
000018a0  6c 65 72 74 42 6f 78 28  74 69 74 6c 65 24 2c 6d  |lertBox(title$,m|
000018b0  65 73 73 61 67 65 24 2c  62 75 74 74 6f 6e 25 29  |essage$,button%)|
000018c0  0d 09 7e 0e ea 72 65 73  70 6f 6e 73 65 25 0d 09  |..~..response%..|
000018d0  88 17 24 28 77 69 6d 70  25 2b 34 29 3d 6d 65 73  |..$(wimp%+4)=mes|
000018e0  73 61 67 65 24 0d 09 92  0e c8 8e 62 75 74 74 6f  |sage$......butto|
000018f0  6e 25 ca 0d 09 9c 12 c9  32 3a 72 65 73 70 6f 6e  |n%......2:respon|
00001900  73 65 25 3d 31 0d 09 a6  13 c9 31 3a 72 65 73 70  |se%=1.....1:resp|
00001910  6f 6e 73 65 25 3d 31 35  0d 09 b0 1a c9 33 3a 72  |onse%=15.....3:r|
00001920  65 73 70 6f 6e 73 65 25  3d 28 31 3c 3c 35 29 2b  |esponse%=(1<<5)+|
00001930  31 36 0d 09 ba 1a c9 34  3a 72 65 73 70 6f 6e 73  |16.....4:respons|
00001940  65 25 3d 28 31 3c 3c 36  29 2b 31 36 0d 09 c4 12  |e%=(1<<6)+16....|
00001950  7f 3a 72 65 73 70 6f 6e  73 65 25 3d 31 36 0d 09  |.:response%=16..|
00001960  ce 05 cb 0d 09 d8 3a c8  99 22 57 69 6d 70 5f 52  |......:.."Wimp_R|
00001970  65 70 6f 72 74 45 72 72  6f 72 22 2c 77 69 6d 70  |eportError",wimp|
00001980  25 2c 72 65 73 70 6f 6e  73 65 25 2c 74 69 74 6c  |%,response%,titl|
00001990  65 24 b8 2c 72 65 73 70  6f 6e 73 65 25 0d 09 e2  |e$.,response%...|
000019a0  05 e1 0d 09 ec 28 dd a4  57 69 6d 70 5f 57 69 6e  |.....(..Wimp_Win|
000019b0  64 6f 77 43 61 6e 63 65  6c 28 74 69 74 6c 65 24  |dowCancel(title$|
000019c0  2c 6d 65 73 73 61 67 65  24 29 0d 09 f6 17 24 28  |,message$)....$(|
000019d0  77 69 6d 70 25 2b 34 29  3d 6d 65 73 73 61 67 65  |wimp%+4)=message|
000019e0  24 0d 0a 00 10 72 65 73  70 6f 6e 73 65 25 3d 32  |$....response%=2|
000019f0  33 0d 0a 0a 3a c8 99 22  57 69 6d 70 5f 52 65 70  |3...:.."Wimp_Rep|
00001a00  6f 72 74 45 72 72 6f 72  22 2c 77 69 6d 70 25 2c  |ortError",wimp%,|
00001a10  72 65 73 70 6f 6e 73 65  25 2c 74 69 74 6c 65 24  |response%,title$|
00001a20  b8 2c 72 65 73 70 6f 6e  73 65 25 0d 0a 14 10 3d  |.,response%....=|
00001a30  72 65 73 70 6f 6e 73 65  25 2d 32 0d 0a 1e 2a dd  |response%-2...*.|
00001a40  f2 57 69 6d 70 5f 57 69  6e 64 6f 77 45 72 72 6f  |.Wimp_WindowErro|
00001a50  72 42 6f 78 28 74 69 74  6c 65 24 2c 6d 65 73 73  |rBox(title$,mess|
00001a60  61 67 65 24 29 0d 0a 28  2b f2 57 69 6d 70 5f 57  |age$)..(+.Wimp_W|
00001a70  69 6e 64 6f 77 41 6c 65  72 74 42 6f 78 28 74 69  |indowAlertBox(ti|
00001a80  74 6c 65 24 2c 6d 65 73  73 61 67 65 24 2c 32 29  |tle$,message$,2)|
00001a90  0d 0a 32 05 e1 0d 0a 3c  1f dd a4 57 69 6d 70 5f  |..2....<...Wimp_|
00001aa0  57 69 6e 64 6f 77 54 69  74 6c 65 28 77 69 6e 64  |WindowTitle(wind|
00001ab0  6f 77 25 29 0d 0a 46 13  77 69 6d 70 25 21 30 3d  |ow%)..F.wimp%!0=|
00001ac0  77 69 6e 64 6f 77 25 0d  0a 50 1f c8 99 22 57 69  |window%..P..."Wi|
00001ad0  6d 70 5f 47 65 74 57 69  6e 64 49 6e 66 6f 22 2c  |mp_GetWindInfo",|
00001ae0  2c 77 69 6d 70 25 0d 0a  5a 33 e7 28 28 77 69 6d  |,wimp%..Z3.((wim|
00001af0  70 25 21 36 30 29 80 26  31 30 30 29 3d 30 85 31  |p%!60).&100)=0.1|
00001b00  2c 22 54 69 74 6c 65 20  69 73 6e 27 74 20 69 6e  |,"Title isn't in|
00001b10  64 69 72 65 63 74 65 64  22 0d 0a 64 10 3d 24 28  |directed"..d.=$(|
00001b20  77 69 6d 70 25 21 37 36  29 0d 0a 6e 1e dd a4 57  |wimp%!76)..n...W|
00001b30  69 6d 70 5f 57 69 6e 64  6f 77 4c 6f 61 64 28 77  |imp_WindowLoad(w|
00001b40  69 6e 64 6f 77 24 29 0d  0a 78 39 3d a4 57 69 6d  |indow$)..x9=.Wim|
00001b50  70 5f 57 69 6e 64 6f 77  4c 6f 61 64 46 72 6f 6d  |p_WindowLoadFrom|
00001b60  28 77 69 6e 64 6f 77 24  2c 22 3c 4f 62 65 79 24  |(window$,"<Obey$|
00001b70  44 69 72 3e 2e 54 65 6d  70 6c 61 74 65 73 22 29  |Dir>.Templates")|
00001b80  0d 0a 82 2c dd a4 57 69  6d 70 5f 57 69 6e 64 6f  |...,..Wimp_Windo|
00001b90  77 4c 6f 61 64 46 72 6f  6d 28 77 69 6e 64 6f 77  |wLoadFrom(window|
00001ba0  24 2c 74 65 6d 70 6c 61  74 65 24 29 0d 0a 8c 19  |$,template$)....|
00001bb0  ea 63 25 2c 69 25 2c 6e  25 2c 6a 25 2c 73 70 24  |.c%,i%,n%,j%,sp$|
00001bc0  2c 73 70 32 24 0d 0a 96  24 c8 99 22 57 69 6d 70  |,sp2$...$.."Wimp|
00001bd0  5f 4f 70 65 6e 54 65 6d  70 6c 61 74 65 22 2c 2c  |_OpenTemplate",,|
00001be0  74 65 6d 70 6c 61 74 65  24 0d 0a a0 4a c8 99 22  |template$...J.."|
00001bf0  57 69 6d 70 5f 4c 6f 61  64 54 65 6d 70 6c 61 74  |Wimp_LoadTemplat|
00001c00  65 22 2c 2c 77 69 6d 70  25 2c 69 63 6f 6e 73 25  |e",,wimp%,icons%|
00001c10  2c 69 63 6f 6e 5f 6d 65  6d 6f 72 79 25 2c 2d 31  |,icon_memory%,-1|
00001c20  2c 77 69 6e 64 6f 77 24  2c 30 b8 2c 2c 69 63 6f  |,window$,0.,,ico|
00001c30  6e 73 25 0d 0a aa 0f c8  8e 73 70 72 69 74 65 73  |ns%......sprites|
00001c40  25 ca 0d 0a b4 18 c9 31  3a 77 69 6d 70 25 21 36  |%......1:wimp%!6|
00001c50  34 3d 73 70 72 69 74 65  73 25 0d 0a be 26 7f 3a  |4=sprites%...&.:|
00001c60  77 69 6d 70 25 21 36 34  3d a4 45 76 65 6e 74 5f  |wimp%!64=.Event_|
00001c70  53 70 72 69 74 65 73 28  77 69 6e 64 6f 77 25 29  |Sprites(window%)|
00001c80  0d 0a c8 05 cb 0d 0a d2  23 c8 99 22 57 69 6d 70  |........#.."Wimp|
00001c90  5f 43 72 65 61 74 65 57  69 6e 64 6f 77 22 2c 2c  |_CreateWindow",,|
00001ca0  77 69 6d 70 25 b8 63 25  0d 0a dc 1a c8 99 22 57  |wimp%.c%......"W|
00001cb0  69 6d 70 5f 43 6c 6f 73  65 54 65 6d 70 6c 61 74  |imp_CloseTemplat|
00001cc0  65 22 0d 0a e6 36 c8 99  22 57 69 6d 70 5f 57 68  |e"...6.."Wimp_Wh|
00001cd0  69 63 68 49 63 6f 6e 22  2c 63 25 2c 77 69 6d 70  |ichIcon",c%,wimp|
00001ce0  25 2b 34 30 2c 31 2b 32  2b 28 31 3c 3c 38 29 2c  |%+40,1+2+(1<<8),|
00001cf0  32 2b 28 31 3c 3c 38 29  0d 0a f0 0f c8 8e 77 69  |2+(1<<8)......wi|
00001d00  6d 70 25 21 34 30 ca 0d  0a fa 07 c9 2d 31 0d 0b  |mp%!40......-1..|
00001d10  04 0b 7f 3a 69 25 3d 34  30 0d 0b 0e 05 f5 0d 0b  |...:i%=40.......|
00001d20  18 1f 77 69 6d 70 25 21  34 3d 77 69 6d 70 25 21  |..wimp%!4=wimp%!|
00001d30  69 25 3a 77 69 6d 70 25  21 30 3d 63 25 0d 0b 22  |i%:wimp%!0=c%.."|
00001d40  20 c8 99 22 57 69 6d 70  5f 47 65 74 49 63 6f 6e  | .."Wimp_GetIcon|
00001d50  53 74 61 74 65 22 2c 2c  77 69 6d 70 25 0d 0b 2c  |State",,wimp%..,|
00001d60  2a 73 70 24 3d a4 57 69  6d 70 5f 47 65 74 53 74  |*sp$=.Wimp_GetSt|
00001d70  72 69 6e 67 41 74 41 64  64 72 65 73 73 28 77 69  |ringAtAddress(wi|
00001d80  6d 70 25 21 32 38 29 0d  0b 36 1e c8 99 22 57 69  |mp%!28)..6..."Wi|
00001d90  6d 70 5f 44 65 6c 65 74  65 49 63 6f 6e 22 2c 2c  |mp_DeleteIcon",,|
00001da0  77 69 6d 70 25 0d 0b 40  0f c8 8e 73 70 72 69 74  |wimp%..@...sprit|
00001db0  65 73 25 ca 0d 0b 4a 11  c9 31 3a 77 69 6d 70 25  |es%...J..1:wimp%|
00001dc0  21 33 32 3d 31 0d 0b 54  05 7f 0d 0b 5e 27 c8 99  |!32=1..T....^'..|
00001dd0  22 4f 53 5f 53 70 72 69  74 65 4f 70 22 2c 26 31  |"OS_SpriteOp",&1|
00001de0  30 38 2c 73 70 72 69 74  65 73 25 b8 2c 2c 2c 6e  |08,sprites%.,,,n|
00001df0  25 0d 0b 68 08 6a 25 3d  30 0d 0b 72 0b f5 3a 6a  |%..h.j%=0..r..:j|
00001e00  25 2b 3d 31 0d 0b 7c 36  c8 99 22 4f 53 5f 53 70  |%+=1..|6.."OS_Sp|
00001e10  72 69 74 65 4f 70 22 2c  26 31 30 44 2c 73 70 72  |riteOp",&10D,spr|
00001e20  69 74 65 73 25 2c 70 6f  69 6e 74 65 72 5f 62 6c  |ites%,pointer_bl|
00001e30  6f 63 6b 25 2c 32 30 2c  6a 25 0d 0b 86 31 73 70  |ock%,20,j%...1sp|
00001e40  32 24 3d a4 57 69 6d 70  5f 47 65 74 53 74 72 69  |2$=.Wimp_GetStri|
00001e50  6e 67 41 74 41 64 64 72  65 73 73 28 70 6f 69 6e  |ngAtAddress(poin|
00001e60  74 65 72 5f 62 6c 6f 63  6b 25 29 0d 0b 90 13 fd  |ter_block%).....|
00001e70  6a 25 3d 6e 25 84 73 70  24 3d 73 70 32 24 0d 0b  |j%=n%.sp$=sp2$..|
00001e80  9a 2a e7 73 70 24 3d 73  70 32 24 8c 77 69 6d 70  |.*.sp$=sp2$.wimp|
00001e90  25 21 33 32 3d 73 70 72  69 74 65 73 25 8b 77 69  |%!32=sprites%.wi|
00001ea0  6d 70 25 21 33 32 3d 31  0d 0b a4 05 cb 0d 0b ae  |mp%!32=1........|
00001eb0  0e 77 69 6d 70 25 21 34  3d 63 25 0d 0b b8 28 c8  |.wimp%!4=c%...(.|
00001ec0  99 22 57 69 6d 70 5f 43  72 65 61 74 65 49 63 6f  |."Wimp_CreateIco|
00001ed0  6e 22 2c 2c 77 69 6d 70  25 2b 34 b8 68 61 6e 64  |n",,wimp%+4.hand|
00001ee0  6c 65 25 0d 0b c2 09 69  25 2b 3d 34 0d 0b cc 12  |le%....i%+=4....|
00001ef0  fd 28 77 69 6d 70 25 21  69 25 29 3d 2d 31 0d 0b  |.(wimp%!i%)=-1..|
00001f00  d6 05 cb 0d 0b e0 07 3d  63 25 0d 0b ea 24 dd f2  |.......=c%...$..|
00001f10  57 69 6d 70 5f 57 69 6e  64 6f 77 42 72 69 6e 67  |Wimp_WindowBring|
00001f20  54 6f 54 6f 70 28 77 69  6e 64 6f 77 25 29 0d 0b  |ToTop(window%)..|
00001f30  f4 12 21 77 69 6d 70 25  3d 77 69 6e 64 6f 77 25  |..!wimp%=window%|
00001f40  0d 0b fe 22 c8 99 22 57  69 6d 70 5f 47 65 74 57  |...".."Wimp_GetW|
00001f50  69 6e 64 6f 77 53 74 61  74 65 22 2c 2c 77 69 6d  |indowState",,wim|
00001f60  70 25 0d 0c 08 0f 77 69  6d 70 25 21 32 38 3d 2d  |p%....wimp%!28=-|
00001f70  31 0d 0c 12 1e c8 99 22  57 69 6d 70 5f 4f 70 65  |1......"Wimp_Ope|
00001f80  6e 57 69 6e 64 6f 77 22  2c 2c 77 69 6d 70 25 0d  |nWindow",,wimp%.|
00001f90  0c 1c 05 e1 0d 0c 26 1f  dd f2 57 69 6d 70 5f 57  |......&...Wimp_W|
00001fa0  69 6e 64 6f 77 43 6c 6f  73 65 28 77 69 6e 64 6f  |indowClose(windo|
00001fb0  77 25 29 0d 0c 30 12 21  77 69 6d 70 25 3d 77 69  |w%)..0.!wimp%=wi|
00001fc0  6e 64 6f 77 25 0d 0c 3a  1f c8 99 22 57 69 6d 70  |ndow%..:..."Wimp|
00001fd0  5f 43 6c 6f 73 65 57 69  6e 64 6f 77 22 2c 2c 77  |_CloseWindow",,w|
00001fe0  69 6d 70 25 0d 0c 44 05  e1 0d 0c 4e 23 dd f2 57  |imp%..D....N#..W|
00001ff0  69 6d 70 5f 57 69 6e 64  6f 77 46 6f 72 63 65 44  |imp_WindowForceD|
00002000  72 61 77 28 77 69 6e 64  6f 77 25 29 0d 0c 58 0e  |raw(window%)..X.|
00002010  c8 8e 77 69 6e 64 6f 77  25 ca 0d 0c 62 31 c9 2d  |..window%...b1.-|
00002020  31 3a c8 99 22 57 69 6d  70 5f 46 6f 72 63 65 52  |1:.."Wimp_ForceR|
00002030  65 64 72 61 77 22 2c 2d  31 2c 30 2c 30 2c 32 2a  |edraw",-1,0,0,2*|
00002040  31 32 38 30 2c 32 2a 31  30 32 34 0d 0c 6c 35 7f  |1280,2*1024..l5.|
00002050  3a c8 99 22 57 69 6d 70  5f 46 6f 72 63 65 52 65  |:.."Wimp_ForceRe|
00002060  64 72 61 77 22 2c 77 69  6e 64 6f 77 25 2c 30 2c  |draw",window%,0,|
00002070  2d 32 2a 31 30 32 34 2c  32 2a 31 32 38 30 2c 30  |-2*1024,2*1280,0|
00002080  0d 0c 76 05 cb 0d 0c 80  05 e1 0d 0c 8a 1e dd f2  |..v.............|
00002090  57 69 6d 70 5f 57 69 6e  64 6f 77 4f 70 65 6e 28  |Wimp_WindowOpen(|
000020a0  77 69 6e 64 6f 77 25 29  0d 0c 94 12 21 77 69 6d  |window%)....!wim|
000020b0  70 25 3d 77 69 6e 64 6f  77 25 0d 0c 9e 22 c8 99  |p%=window%..."..|
000020c0  22 57 69 6d 70 5f 47 65  74 57 69 6e 64 6f 77 53  |"Wimp_GetWindowS|
000020d0  74 61 74 65 22 2c 2c 77  69 6d 70 25 0d 0c a8 1e  |tate",,wimp%....|
000020e0  c8 99 22 57 69 6d 70 5f  4f 70 65 6e 57 69 6e 64  |.."Wimp_OpenWind|
000020f0  6f 77 22 2c 2c 77 69 6d  70 25 0d 0c b2 05 e1 0d  |ow",,wimp%......|
00002100  0c bc 19 f2 57 69 6d 70  5f 57 69 6e 64 6f 77 49  |....Wimp_WindowI|
00002110  6e 74 65 72 66 61 63 65  0d 0c c6 20 c8 99 22 57  |nterface... .."W|
00002120  69 6d 70 5f 42 6f 72 64  65 72 57 69 6e 64 6f 77  |imp_BorderWindow|
00002130  22 2c 2c 77 69 6d 70 25  0d 0c d0 05 e1 0d 0c da  |",,wimp%........|
00002140  1b dd a4 57 69 6d 70 5f  49 63 6f 6e 42 61 72 28  |...Wimp_IconBar(|
00002150  53 70 72 69 74 65 24 29  0d 0c e4 0a ea 69 63 6f  |Sprite$).....ico|
00002160  6e 25 0d 0c ee 0e 77 69  6d 70 25 21 30 3d 2d 31  |n%....wimp%!0=-1|
00002170  0d 0c f8 17 77 69 6d 70  25 21 34 3d 30 3a 77 69  |....wimp%!4=0:wi|
00002180  6d 70 25 21 38 3d 30 0d  0d 02 1b 77 69 6d 70 25  |mp%!8=0....wimp%|
00002190  21 31 32 3d 36 38 3a 77  69 6d 70 25 21 31 36 3d  |!12=68:wimp%!16=|
000021a0  36 38 0d 0d 0c 12 77 69  6d 70 25 21 32 30 3d 26  |68....wimp%!20=&|
000021b0  33 30 30 32 0d 0d 16 17  24 28 77 69 6d 70 25 2b  |3002....$(wimp%+|
000021c0  32 34 29 3d 53 70 72 69  74 65 24 0d 0d 20 24 c8  |24)=Sprite$.. $.|
000021d0  99 22 57 69 6d 70 5f 43  72 65 61 74 65 49 63 6f  |."Wimp_CreateIco|
000021e0  6e 22 2c 2c 77 69 6d 70  25 b8 69 63 6f 6e 25 0d  |n",,wimp%.icon%.|
000021f0  0d 2a 0a 3d 69 63 6f 6e  25 0d 0d 34 2a dd f2 57  |.*.=icon%..4*..W|
00002200  69 6d 70 5f 49 63 6f 6e  43 61 72 65 74 28 77 69  |imp_IconCaret(wi|
00002210  6e 64 6f 77 25 2c 69 63  6f 6e 25 2c 63 68 61 72  |ndow%,icon%,char|
00002220  73 25 29 0d 0d 3e 37 c8  99 22 57 69 6d 70 5f 53  |s%)..>7.."Wimp_S|
00002230  65 74 43 61 72 65 74 50  6f 73 69 74 69 6f 6e 22  |etCaretPosition"|
00002240  2c 77 69 6e 64 6f 77 25  2c 69 63 6f 6e 25 2c 2c  |,window%,icon%,,|
00002250  2c 2d 31 2c 63 68 61 72  73 25 0d 0d 48 05 e1 0d  |,-1,chars%..H...|
00002260  0d 52 22 dd a4 57 69 6d  70 5f 49 63 6f 6e 54 65  |.R"..Wimp_IconTe|
00002270  78 74 28 77 69 6e 64 6f  77 25 2c 69 63 6f 6e 25  |xt(window%,icon%|
00002280  29 0d 0d 5c 21 77 69 6d  70 25 21 30 3d 77 69 6e  |)..\!wimp%!0=win|
00002290  64 6f 77 25 3a 77 69 6d  70 25 21 34 3d 69 63 6f  |dow%:wimp%!4=ico|
000022a0  6e 25 0d 0d 66 20 c8 99  22 57 69 6d 70 5f 47 65  |n%..f .."Wimp_Ge|
000022b0  74 49 63 6f 6e 53 74 61  74 65 22 2c 2c 77 69 6d  |tIconState",,wim|
000022c0  70 25 0d 0d 70 32 e7 28  28 77 69 6d 70 25 21 32  |p%..p2.((wimp%!2|
000022d0  34 29 80 26 31 30 30 29  3d 30 85 31 2c 22 49 63  |4).&100)=0.1,"Ic|
000022e0  6f 6e 20 69 73 6e 27 74  20 69 6e 64 69 72 65 63  |on isn't indirec|
000022f0  74 65 64 22 0d 0d 7a 10  3d 24 28 77 69 6d 70 25  |ted"..z.=$(wimp%|
00002300  21 32 38 29 0d 0d 84 28  dd a4 57 69 6d 70 5f 49  |!28)...(..Wimp_I|
00002310  63 6f 6e 56 61 6c 69 64  61 74 69 6f 6e 28 77 69  |conValidation(wi|
00002320  6e 64 6f 77 25 2c 69 63  6f 6e 25 29 0d 0d 8e 21  |ndow%,icon%)...!|
00002330  77 69 6d 70 25 21 30 3d  77 69 6e 64 6f 77 25 3a  |wimp%!0=window%:|
00002340  77 69 6d 70 25 21 34 3d  69 63 6f 6e 25 0d 0d 98  |wimp%!4=icon%...|
00002350  20 c8 99 22 57 69 6d 70  5f 47 65 74 49 63 6f 6e  | .."Wimp_GetIcon|
00002360  53 74 61 74 65 22 2c 2c  77 69 6d 70 25 0d 0d a2  |State",,wimp%...|
00002370  32 e7 28 28 77 69 6d 70  25 21 32 34 29 80 26 31  |2.((wimp%!24).&1|
00002380  30 30 29 3d 30 85 31 2c  22 49 63 6f 6e 20 69 73  |00)=0.1,"Icon is|
00002390  6e 27 74 20 69 6e 64 69  72 65 63 74 65 64 22 0d  |n't indirected".|
000023a0  0d ac 10 3d 24 28 77 69  6d 70 25 21 33 32 29 0d  |...=$(wimp%!32).|
000023b0  0d b6 25 dd f2 57 69 6d  70 5f 49 63 6f 6e 44 69  |..%..Wimp_IconDi|
000023c0  73 61 62 6c 65 28 77 69  6e 64 6f 77 25 2c 69 63  |sable(window%,ic|
000023d0  6f 6e 25 29 0d 0d c0 21  77 69 6d 70 25 21 30 3d  |on%)...!wimp%!0=|
000023e0  77 69 6e 64 6f 77 25 3a  77 69 6d 70 25 21 34 3d  |window%:wimp%!4=|
000023f0  69 63 6f 6e 25 0d 0d ca  20 77 69 6d 70 25 21 38  |icon%... wimp%!8|
00002400  3d 31 3c 3c 32 32 3a 77  69 6d 70 25 21 31 32 3d  |=1<<22:wimp%!12=|
00002410  31 3c 3c 32 32 0d 0d d4  20 c8 99 22 57 69 6d 70  |1<<22... .."Wimp|
00002420  5f 53 65 74 49 63 6f 6e  53 74 61 74 65 22 2c 2c  |_SetIconState",,|
00002430  77 69 6d 70 25 0d 0d de  05 e1 0d 0d e8 24 dd f2  |wimp%........$..|
00002440  57 69 6d 70 5f 49 63 6f  6e 45 6e 61 62 6c 65 28  |Wimp_IconEnable(|
00002450  77 69 6e 64 6f 77 25 2c  69 63 6f 6e 25 29 0d 0d  |window%,icon%)..|
00002460  f2 21 77 69 6d 70 25 21  30 3d 77 69 6e 64 6f 77  |.!wimp%!0=window|
00002470  25 3a 77 69 6d 70 25 21  34 3d 69 63 6f 6e 25 0d  |%:wimp%!4=icon%.|
00002480  0d fc 1c 77 69 6d 70 25  21 38 3d 30 3a 77 69 6d  |...wimp%!8=0:wim|
00002490  70 25 21 31 32 3d 31 3c  3c 32 32 0d 0e 06 20 c8  |p%!12=1<<22... .|
000024a0  99 22 57 69 6d 70 5f 53  65 74 49 63 6f 6e 53 74  |."Wimp_SetIconSt|
000024b0  61 74 65 22 2c 2c 77 69  6d 70 25 0d 0e 10 05 e1  |ate",,wimp%.....|
000024c0  0d 0e 1a 2f dd a4 57 69  6d 70 5f 49 63 6f 6e 50  |.../..Wimp_IconP|
000024d0  75 74 53 70 72 69 74 65  28 77 69 6e 64 6f 77 25  |utSprite(window%|
000024e0  2c 69 63 6f 6e 25 2c 73  70 72 69 74 65 24 29 0d  |,icon%,sprite$).|
000024f0  0e 24 21 77 69 6d 70 25  21 30 3d 77 69 6e 64 6f  |.$!wimp%!0=windo|
00002500  77 25 3a 77 69 6d 70 25  21 34 3d 69 63 6f 6e 25  |w%:wimp%!4=icon%|
00002510  0d 0e 2e 20 c8 99 22 57  69 6d 70 5f 47 65 74 49  |... .."Wimp_GetI|
00002520  63 6f 6e 53 74 61 74 65  22 2c 2c 77 69 6d 70 25  |conState",,wimp%|
00002530  0d 0e 38 1e c8 99 22 57  69 6d 70 5f 44 65 6c 65  |..8..."Wimp_Dele|
00002540  74 65 49 63 6f 6e 22 2c  2c 77 69 6d 70 25 0d 0e  |teIcon",,wimp%..|
00002550  42 36 77 69 6d 70 25 21  34 3d 77 69 6d 70 25 21  |B6wimp%!4=wimp%!|
00002560  38 3a 77 69 6d 70 25 21  38 3d 77 69 6d 70 25 21  |8:wimp%!8=wimp%!|
00002570  31 32 3a 77 69 6d 70 25  21 31 32 3d 77 69 6d 70  |12:wimp%!12=wimp|
00002580  25 21 31 36 0d 0e 4c 3b  77 69 6d 70 25 21 31 36  |%!16..L;wimp%!16|
00002590  3d 77 69 6d 70 25 21 32  30 3a 77 69 6d 70 25 21  |=wimp%!20:wimp%!|
000025a0  32 30 3d 77 69 6d 70 25  21 32 34 3a 24 28 77 69  |20=wimp%!24:$(wi|
000025b0  6d 70 25 2b 32 34 29 3d  73 70 72 69 74 65 24 0d  |mp%+24)=sprite$.|
000025c0  0e 56 24 c8 99 22 57 69  6d 70 5f 43 72 65 61 74  |.V$.."Wimp_Creat|
000025d0  65 49 63 6f 6e 22 2c 2c  77 69 6d 70 25 b8 69 63  |eIcon",,wimp%.ic|
000025e0  6f 6e 25 0d 0e 60 0a 3d  69 63 6f 6e 25 0d 0e 6a  |on%..`.=icon%..j|
000025f0  2b dd f2 57 69 6d 70 5f  49 63 6f 6e 50 75 74 54  |+..Wimp_IconPutT|
00002600  65 78 74 28 77 69 6e 64  6f 77 25 2c 69 63 6f 6e  |ext(window%,icon|
00002610  25 2c 74 65 78 74 24 29  0d 0e 74 21 77 69 6d 70  |%,text$)..t!wimp|
00002620  25 21 30 3d 77 69 6e 64  6f 77 25 3a 77 69 6d 70  |%!0=window%:wimp|
00002630  25 21 34 3d 69 63 6f 6e  25 0d 0e 7e 20 c8 99 22  |%!4=icon%..~ .."|
00002640  57 69 6d 70 5f 47 65 74  49 63 6f 6e 53 74 61 74  |Wimp_GetIconStat|
00002650  65 22 2c 2c 77 69 6d 70  25 0d 0e 88 32 e7 28 28  |e",,wimp%...2.((|
00002660  77 69 6d 70 25 21 32 34  29 80 26 31 30 30 29 3d  |wimp%!24).&100)=|
00002670  30 85 31 2c 22 49 63 6f  6e 20 69 73 6e 27 74 20  |0.1,"Icon isn't |
00002680  69 6e 64 69 72 65 63 74  65 64 22 0d 0e 92 15 24  |indirected"....$|
00002690  28 77 69 6d 70 25 21 32  38 29 3d 74 65 78 74 24  |(wimp%!28)=text$|
000026a0  0d 0e 9c 21 77 69 6d 70  25 21 30 3d 77 69 6e 64  |...!wimp%!0=wind|
000026b0  6f 77 25 3a 77 69 6d 70  25 21 34 3d 69 63 6f 6e  |ow%:wimp%!4=icon|
000026c0  25 0d 0e a6 18 77 69 6d  70 25 21 38 3d 30 3a 77  |%....wimp%!8=0:w|
000026d0  69 6d 70 25 21 31 32 3d  30 0d 0e b0 20 c8 99 22  |imp%!12=0... .."|
000026e0  57 69 6d 70 5f 53 65 74  49 63 6f 6e 53 74 61 74  |Wimp_SetIconStat|
000026f0  65 22 2c 2c 77 69 6d 70  25 0d 0e ba 05 e1 0d 0e  |e",,wimp%.......|
00002700  c4 1d dd f2 57 69 6d 70  5f 49 63 6f 6e 49 6e 74  |....Wimp_IconInt|
00002710  65 72 66 61 63 65 53 74  61 72 74 0d 0e ce 1e c8  |erfaceStart.....|
00002720  99 22 57 69 6d 70 5f 42  6f 72 64 65 72 49 63 6f  |."Wimp_BorderIco|
00002730  6e 22 2c 2c 77 69 6d 70  25 0d 0e d8 05 e1 0d 0e  |n",,wimp%.......|
00002740  e2 1e dd f2 57 69 6d 70  5f 49 63 6f 6e 49 6e 74  |....Wimp_IconInt|
00002750  65 72 66 61 63 65 46 69  6e 69 73 68 0d 0e ec 0d  |erfaceFinish....|
00002760  77 69 6d 70 25 21 38 3d  30 0d 0e f6 1e c8 99 22  |wimp%!8=0......"|
00002770  57 69 6d 70 5f 42 6f 72  64 65 72 49 63 6f 6e 22  |Wimp_BorderIcon"|
00002780  2c 2c 77 69 6d 70 25 0d  0f 00 05 e1 0d 0f 0a 1e  |,,wimp%.........|
00002790  dd f2 57 69 6d 70 5f 4d  65 6e 75 41 64 6a 75 73  |..Wimp_MenuAdjus|
000027a0  74 4f 6e 28 6d 65 6e 75  25 29 0d 0f 14 2b c8 99  |tOn(menu%)...+..|
000027b0  22 57 69 6d 70 5f 47 65  74 50 6f 69 6e 74 65 72  |"Wimp_GetPointer|
000027c0  49 6e 66 6f 22 2c 2c 70  6f 69 6e 74 65 72 5f 62  |Info",,pointer_b|
000027d0  6c 6f 63 6b 25 0d 0f 1e  5a e7 28 28 70 6f 69 6e  |lock%...Z.((poin|
000027e0  74 65 72 5f 62 6c 6f 63  6b 25 21 38 29 80 31 29  |ter_block%!8).1)|
000027f0  3d 31 8c c8 99 22 57 69  6d 70 5f 43 72 65 61 74  |=1..."Wimp_Creat|
00002800  65 4d 65 6e 75 22 2c 2c  6d 65 6e 75 25 2c 70 6f  |eMenu",,menu%,po|
00002810  69 6e 74 65 72 5f 62 6c  6f 63 6b 25 21 30 2c 70  |inter_block%!0,p|
00002820  6f 69 6e 74 65 72 5f 62  6c 6f 63 6b 25 21 34 0d  |ointer_block%!4.|
00002830  0f 28 05 e1 0d 0f 32 1d  dd a4 57 69 6d 70 5f 4d  |.(....2...Wimp_M|
00002840  65 6e 75 43 68 6f 69 63  65 28 6c 65 76 65 6c 25  |enuChoice(level%|
00002850  29 0d 0f 3c 19 3d 28 77  69 6d 70 25 21 28 34 2a  |)..<.=(wimp%!(4*|
00002860  6c 65 76 65 6c 25 29 29  2b 31 0d 0f 46 1c dd a4  |level%))+1..F...|
00002870  57 69 6d 70 5f 4d 65 6e  75 43 72 65 61 74 65 28  |Wimp_MenuCreate(|
00002880  6d 65 6e 75 24 29 0d 0f  50 27 e7 6d 65 6e 75 24  |menu$)..P'.menu$|
00002890  3d 22 43 6f 6c 6f 75 72  73 22 8c 3d a4 57 69 6d  |="Colours".=.Wim|
000028a0  70 5f 4d 65 6e 75 43 6f  6c 6f 75 72 73 0d 0f 5a  |p_MenuColours..Z|
000028b0  26 ea 6d 65 6e 75 25 2c  69 6e 64 65 78 25 2c 77  |&.menu%,index%,w|
000028c0  69 64 74 68 25 2c 6c 65  6e 67 74 68 25 2c 6b 25  |idth%,length%,k%|
000028d0  2c 73 25 0d 0f 64 2c de  6d 65 6e 75 25 32 38 2b  |,s%..d,.menu%28+|
000028e0  a4 57 69 6d 70 5f 4d 65  6e 75 4e 6f 4f 66 45 6e  |.Wimp_MenuNoOfEn|
000028f0  74 72 69 65 73 28 6d 65  6e 75 24 29 2a 32 34 0d  |tries(menu$)*24.|
00002900  0f 6e 2f 6d 65 6e 75 25  3f 31 32 3d 37 3a 6d 65  |.n/menu%?12=7:me|
00002910  6e 75 25 3f 31 33 3d 32  3a 6d 65 6e 75 25 3f 31  |nu%?13=2:menu%?1|
00002920  34 3d 37 3a 6d 65 6e 75  25 3f 31 35 3d 30 0d 0f  |4=7:menu%?15=0..|
00002930  78 27 6d 65 6e 75 25 21  31 36 3d 31 34 30 3a 6d  |x'menu%!16=140:m|
00002940  65 6e 75 25 21 32 30 3d  34 34 3a 6d 65 6e 75 25  |enu%!20=44:menu%|
00002950  21 32 34 3d 30 0d 0f 82  13 69 6e 64 65 78 25 3d  |!24=0....index%=|
00002960  6d 65 6e 75 25 2b 32 38  0d 0f 8c 20 24 6d 65 6e  |menu%+28... $men|
00002970  75 25 3d c0 6d 65 6e 75  24 2c a7 6d 65 6e 75 24  |u%=.menu$,.menu$|
00002980  2c 22 5c 22 29 2d 31 29  0d 0f 96 23 77 69 64 74  |,"\")-1)...#widt|
00002990  68 25 3d a9 28 c0 6d 65  6e 75 24 2c a7 6d 65 6e  |h%=.(.menu$,.men|
000029a0  75 24 2c 22 5c 22 29 2d  31 29 29 0d 0f a0 22 6d  |u$,"\")-1))..."m|
000029b0  65 6e 75 24 2b 3d 22 5c  22 3a 4d 65 6e 75 5f 4e  |enu$+="\":Menu_N|
000029c0  6f 4f 66 45 6e 74 72 69  65 73 25 3d 30 0d 0f aa  |oOfEntries%=0...|
000029d0  0f c8 95 6d 65 6e 75 24  3c 3e 22 22 0d 0f b4 1f  |...menu$<>""....|
000029e0  6d 65 6e 75 24 3d c1 6d  65 6e 75 24 2c a7 6d 65  |menu$=.menu$,.me|
000029f0  6e 75 24 2c 22 5c 22 29  2b 31 29 0d 0f be 0c c8  |nu$,"\")+1).....|
00002a00  8e 6d 65 6e 75 24 ca 0d  0f c8 07 c9 22 22 0d 0f  |.menu$......""..|
00002a10  d2 05 7f 0d 0f dc 2b 21  69 6e 64 65 78 25 3d 30  |......+!index%=0|
00002a20  3a 69 6e 64 65 78 25 21  34 3d 2d 31 3a 69 6e 64  |:index%!4=-1:ind|
00002a30  65 78 25 21 38 3d 26 37  30 30 30 30 32 31 0d 0f  |ex%!8=&7000021..|
00002a40  e6 19 6c 65 6e 67 74 68  25 3d a7 6d 65 6e 75 24  |..length%=.menu$|
00002a50  2c 22 5c 22 29 2d 31 0d  0f f0 1c 6b 25 3d a7 c0  |,"\")-1....k%=..|
00002a60  6d 65 6e 75 24 2c 6c 65  6e 67 74 68 25 29 2c 22  |menu$,length%),"|
00002a70  3e 22 29 0d 0f fa 09 c8  8e 6b 25 ca 0d 10 04 06  |>")......k%.....|
00002a80  c9 30 0d 10 0e 05 7f 0d  10 18 21 73 25 3d a0 28  |.0........!s%=.(|
00002a90  c1 6d 65 6e 75 24 2c 6b  25 2b 31 2c 6c 65 6e 67  |.menu$,k%+1,leng|
00002aa0  74 68 25 2d 6b 25 29 29  0d 10 22 0f 69 6e 64 65  |th%-k%))..".inde|
00002ab0  78 25 21 34 3d 73 25 0d  10 2c 10 6c 65 6e 67 74  |x%!4=s%..,.lengt|
00002ac0  68 25 3d 6b 25 2d 31 0d  10 36 05 cb 0d 10 40 20  |h%=k%-1..6....@ |
00002ad0  24 28 69 6e 64 65 78 25  2b 31 32 29 3d c0 6d 65  |$(index%+12)=.me|
00002ae0  6e 75 24 2c 6c 65 6e 67  74 68 25 29 0d 10 4a 22  |nu$,length%)..J"|
00002af0  e7 6c 65 6e 67 74 68 25  3e 77 69 64 74 68 25 8c  |.length%>width%.|
00002b00  77 69 64 74 68 25 3d 6c  65 6e 67 74 68 25 0d 10  |width%=length%..|
00002b10  54 0e 69 6e 64 65 78 25  2b 3d 32 34 0d 10 5e 05  |T.index%+=24..^.|
00002b20  cb 0d 10 68 05 ce 0d 10  72 1a 6d 65 6e 75 25 21  |...h....r.menu%!|
00002b30  31 36 3d 31 36 2a 28 77  69 64 74 68 25 2b 31 29  |16=16*(width%+1)|
00002b40  0d 10 7c 24 69 6e 64 65  78 25 21 2d 32 34 3d 69  |..|$index%!-24=i|
00002b50  6e 64 65 78 25 21 2d 32  34 84 26 38 30 3a 3d 6d  |ndex%!-24.&80:=m|
00002b60  65 6e 75 25 0d 10 86 16  dd a4 57 69 6d 70 5f 4d  |enu%......Wimp_M|
00002b70  65 6e 75 43 6f 6c 6f 75  72 73 0d 10 90 21 3d a4  |enuColours...!=.|
00002b80  57 69 6d 70 5f 4d 65 6e  75 43 72 65 61 74 65 43  |Wimp_MenuCreateC|
00002b90  6f 6c 6f 75 72 73 28 22  20 22 29 0d 10 9a 24 dd  |olours(" ")...$.|
00002ba0  a4 57 69 6d 70 5f 4d 65  6e 75 43 72 65 61 74 65  |.Wimp_MenuCreate|
00002bb0  43 6f 6c 6f 75 72 73 28  74 69 74 6c 65 24 29 0d  |Colours(title$).|
00002bc0  10 a4 12 ea 78 24 2c 6d  65 6e 25 2c 6a 25 2c 69  |....x$,men%,j%,i|
00002bd0  25 0d 10 ae 36 78 24 3d  74 69 74 6c 65 24 2b 22  |%...6x$=title$+"|
00002be0  5c 30 5c 31 5c 32 5c 33  5c 34 5c 35 5c 36 5c 37  |\0\1\2\3\4\5\6\7|
00002bf0  5c 38 5c 39 5c 31 30 5c  31 31 5c 31 32 5c 31 33  |\8\9\10\11\12\13|
00002c00  5c 31 34 5c 31 35 22 0d  10 b8 1d 6d 65 6e 25 3d  |\14\15"....men%=|
00002c10  a4 57 69 6d 70 5f 4d 65  6e 75 43 72 65 61 74 65  |.Wimp_MenuCreate|
00002c20  28 78 24 29 0d 10 c2 0c  e3 69 25 3d 30 b8 31 35  |(x$).....i%=0.15|
00002c30  0d 10 cc 08 c8 8e b9 ca  0d 10 d6 25 c9 69 25 3c  |...........%.i%<|
00002c40  34 2c 69 25 3d 39 2c 69  25 3d 31 32 2c 69 25 3d  |4,i%=9,i%=12,i%=|
00002c50  31 34 2c 69 25 3d 31 35  3a 6a 25 3d 37 0d 10 e0  |14,i%=15:j%=7...|
00002c60  0a 7f 3a 6a 25 3d 30 0d  10 ea 05 cb 0d 10 f4 1c  |..:j%=0.........|
00002c70  6d 65 6e 25 3f 28 33 39  2b 69 25 2a 32 34 29 3d  |men%?(39+i%*24)=|
00002c80  69 25 2a 31 36 2b 6a 25  0d 10 fe 1f f2 57 69 6d  |i%*16+j%.....Wim|
00002c90  70 5f 4d 65 6e 75 43 65  6e 74 72 65 28 6d 65 6e  |p_MenuCentre(men|
00002ca0  25 2c 69 25 2b 31 29 0d  11 08 05 ed 0d 11 12 09  |%,i%+1).........|
00002cb0  3d 6d 65 6e 25 0d 11 1c  21 dd a4 57 69 6d 70 5f  |=men%...!..Wimp_|
00002cc0  4d 65 6e 75 4e 6f 4f 66  45 6e 74 72 69 65 73 28  |MenuNoOfEntries(|
00002cd0  6d 65 6e 75 24 29 0d 11  26 14 ea 6e 25 2c 6a 25  |menu$)..&..n%,j%|
00002ce0  3a 6e 25 3d 30 3a 6a 25  3d 30 0d 11 30 05 f5 0d  |:n%=0:j%=0..0...|
00002cf0  11 3a 17 6a 25 3d a7 6d  65 6e 75 24 2c 22 5c 22  |.:.j%=.menu$,"\"|
00002d00  2c 6a 25 2b 31 29 0d 11  44 10 e7 6a 25 3c 3e 30  |,j%+1)..D..j%<>0|
00002d10  8c 6e 25 2b 3d 31 0d 11  4e 09 fd 6a 25 3d 30 0d  |.n%+=1..N..j%=0.|
00002d20  11 58 07 3d 6e 25 0d 11  62 34 dd f2 57 69 6d 70  |.X.=n%..b4..Wimp|
00002d30  5f 4d 65 6e 75 42 61 63  6b 47 72 6f 75 6e 64 43  |_MenuBackGroundC|
00002d40  6f 6c 6f 75 72 28 6d 65  6e 75 25 2c 69 74 65 6d  |olour(menu%,item|
00002d50  25 2c 63 6f 6c 6f 75 72  25 29 0d 11 6c 0d ea 66  |%,colour%)..l..f|
00002d60  6f 72 65 25 2c 69 25 0d  11 76 26 66 6f 72 65 25  |ore%,i%..v&fore%|
00002d70  3d 28 6d 65 6e 75 25 3f  28 33 39 2b 28 69 74 65  |=(menu%?(39+(ite|
00002d80  6d 25 2d 31 29 2a 32 34  29 29 83 31 36 0d 11 80  |m%-1)*24)).16...|
00002d90  28 69 25 3d 28 28 6d 65  6e 75 25 3f 28 33 39 2b  |(i%=((menu%?(39+|
00002da0  28 69 74 65 6d 25 2d 31  29 2a 32 34 29 29 81 31  |(item%-1)*24)).1|
00002db0  36 29 83 31 36 0d 11 8a  2f 6d 65 6e 75 25 3f 28  |6).16.../menu%?(|
00002dc0  33 39 2b 28 69 74 65 6d  25 2d 31 29 2a 32 34 29  |39+(item%-1)*24)|
00002dd0  3d 66 6f 72 65 25 2b 31  36 2a 63 6f 6c 6f 75 72  |=fore%+16*colour|
00002de0  25 2b 69 25 0d 11 94 05  e1 0d 11 9e 22 dd f2 57  |%+i%........"..W|
00002df0  69 6d 70 5f 4d 65 6e 75  43 65 6e 74 72 65 28 6d  |imp_MenuCentre(m|
00002e00  65 6e 75 25 2c 69 74 65  6d 25 29 0d 11 a8 3a 6d  |enu%,item%)...:m|
00002e10  65 6e 75 25 21 28 33 36  2b 28 69 74 65 6d 25 2d  |enu%!(36+(item%-|
00002e20  31 29 2a 32 34 29 3d 6d  65 6e 75 25 21 28 33 36  |1)*24)=menu%!(36|
00002e30  2b 28 69 74 65 6d 25 2d  31 29 2a 32 34 29 84 28  |+(item%-1)*24).(|
00002e40  31 3c 3c 33 29 0d 11 b2  05 e1 0d 11 bc 14 dd f2  |1<<3)...........|
00002e50  57 69 6d 70 5f 4d 65 6e  75 43 6c 6f 73 65 0d 11  |Wimp_MenuClose..|
00002e60  c6 1a c8 99 22 57 69 6d  70 5f 43 72 65 61 74 65  |...."Wimp_Create|
00002e70  4d 65 6e 75 22 2c 2d 31  0d 11 d0 05 e1 0d 11 da  |Menu",-1........|
00002e80  23 dd f2 57 69 6d 70 5f  4d 65 6e 75 44 69 73 61  |#..Wimp_MenuDisa|
00002e90  62 6c 65 28 6d 65 6e 75  25 2c 69 74 65 6d 25 29  |ble(menu%,item%)|
00002ea0  0d 11 e4 3b 6d 65 6e 75  25 21 28 33 36 2b 28 69  |...;menu%!(36+(i|
00002eb0  74 65 6d 25 2d 31 29 2a  32 34 29 3d 6d 65 6e 75  |tem%-1)*24)=menu|
00002ec0  25 21 28 33 36 2b 28 69  74 65 6d 25 2d 31 29 2a  |%!(36+(item%-1)*|
00002ed0  32 34 29 84 28 31 3c 3c  32 32 29 0d 11 ee 05 e1  |24).(1<<22).....|
00002ee0  0d 11 f8 26 dd f2 57 69  6d 70 5f 4d 65 6e 75 44  |...&..Wimp_MenuD|
00002ef0  6f 74 74 65 64 4c 69 6e  65 28 6d 65 6e 75 25 2c  |ottedLine(menu%,|
00002f00  69 74 65 6d 25 29 0d 12  02 37 6d 65 6e 75 25 21  |item%)...7menu%!|
00002f10  28 32 38 2b 28 69 74 65  6d 25 2d 31 29 2a 32 34  |(28+(item%-1)*24|
00002f20  29 3d 28 6d 65 6e 75 25  21 28 32 38 2b 28 69 74  |)=(menu%!(28+(it|
00002f30  65 6d 25 2d 31 29 2a 32  34 29 29 84 32 0d 12 0c  |em%-1)*24)).2...|
00002f40  05 e1 0d 12 16 22 dd f2  57 69 6d 70 5f 4d 65 6e  |....."..Wimp_Men|
00002f50  75 45 6e 61 62 6c 65 28  6d 65 6e 75 25 2c 69 74  |uEnable(menu%,it|
00002f60  65 6d 25 29 0d 12 20 22  f2 57 69 6d 70 5f 4d 65  |em%).. ".Wimp_Me|
00002f70  6e 75 44 69 73 61 62 6c  65 28 6d 65 6e 75 25 2c  |nuDisable(menu%,|
00002f80  69 74 65 6d 25 29 0d 12  2a 3b 6d 65 6e 75 25 21  |item%)..*;menu%!|
00002f90  28 33 36 2b 28 69 74 65  6d 25 2d 31 29 2a 32 34  |(36+(item%-1)*24|
00002fa0  29 3d 6d 65 6e 75 25 21  28 33 36 2b 28 69 74 65  |)=menu%!(36+(ite|
00002fb0  6d 25 2d 31 29 2a 32 34  29 82 28 31 3c 3c 32 32  |m%-1)*24).(1<<22|
00002fc0  29 0d 12 34 05 e1 0d 12  3e 34 dd f2 57 69 6d 70  |)..4....>4..Wimp|
00002fd0  5f 4d 65 6e 75 46 6f 72  65 67 72 6f 75 6e 64 43  |_MenuForegroundC|
00002fe0  6f 6c 6f 75 72 28 6d 65  6e 75 25 2c 69 74 65 6d  |olour(menu%,item|
00002ff0  25 2c 63 6f 6c 6f 75 72  25 29 0d 12 48 45 6d 65  |%,colour%)..HEme|
00003000  6e 75 25 3f 28 33 39 2b  28 69 74 65 6d 25 2d 31  |nu%?(39+(item%-1|
00003010  29 2a 32 34 29 3d 63 6f  6c 6f 75 72 25 2b 31 36  |)*24)=colour%+16|
00003020  2a 28 28 6d 65 6e 75 25  3f 28 33 39 2b 28 69 74  |*((menu%?(39+(it|
00003030  65 6d 25 2d 31 29 2a 32  34 29 29 81 31 36 29 0d  |em%-1)*24)).16).|
00003040  12 52 05 e1 0d 12 5c 28  dd f2 57 69 6d 70 5f 4d  |.R....\(..Wimp_M|
00003050  65 6e 75 47 6c 75 65 28  6d 65 6e 75 31 25 2c 69  |enuGlue(menu1%,i|
00003060  74 65 6d 25 2c 6d 65 6e  75 32 25 29 0d 12 66 1e  |tem%,menu2%)..f.|
00003070  6d 65 6e 75 31 25 21 28  38 2b 69 74 65 6d 25 2a  |menu1%!(8+item%*|
00003080  32 34 29 3d 6d 65 6e 75  32 25 0d 12 70 05 e1 0d  |24)=menu2%..p...|
00003090  12 7a 26 dd f2 57 69 6d  70 5f 4d 65 6e 75 49 74  |.z&..Wimp_MenuIt|
000030a0  65 6d 28 6d 65 6e 75 25  2c 69 74 65 6d 25 2c 69  |em(menu%,item%,i|
000030b0  74 65 6d 24 29 0d 12 84  2c 24 28 6d 65 6e 75 25  |tem$)...,$(menu%|
000030c0  2b 28 34 30 2b 28 69 74  65 6d 25 2d 31 29 2a 32  |+(40+(item%-1)*2|
000030d0  34 29 29 3d c0 69 74 65  6d 24 2c 31 32 29 2b bd  |4))=.item$,12)+.|
000030e0  30 0d 12 8e 05 e1 0d 12  98 23 dd f2 57 69 6d 70  |0........#..Wimp|
000030f0  5f 4d 65 6e 75 4d 65 73  73 61 67 65 28 6d 65 6e  |_MenuMessage(men|
00003100  75 25 2c 69 74 65 6d 25  29 0d 12 a2 3c 6d 65 6e  |u%,item%)...<men|
00003110  75 25 21 28 32 38 2b 28  69 74 65 6d 25 2d 31 29  |u%!(28+(item%-1)|
00003120  2a 32 34 29 3d 28 6d 65  6e 75 25 21 28 32 38 2b  |*24)=(menu%!(28+|
00003130  28 69 74 65 6d 25 2d 31  29 2a 32 34 29 29 82 28  |(item%-1)*24)).(|
00003140  31 3c 3c 33 29 0d 12 ac  05 e1 0d 12 b6 21 dd f2  |1<<3)........!..|
00003150  57 69 6d 70 5f 4d 65 6e  75 50 6f 70 55 70 28 4d  |Wimp_MenuPopUp(M|
00003160  65 6e 75 25 2c 78 25 2c  79 25 29 0d 12 c0 0f 6d  |enu%,x%,y%)....m|
00003170  65 6e 75 25 3d 4d 65 6e  75 25 0d 12 ca 2a c8 99  |enu%=Menu%...*..|
00003180  22 57 69 6d 70 5f 43 72  65 61 74 65 4d 65 6e 75  |"Wimp_CreateMenu|
00003190  22 2c 2c 6d 65 6e 75 25  2c 78 25 2d 36 34 2c 79  |",,menu%,x%-64,y|
000031a0  25 2b 32 30 0d 12 d4 05  e1 0d 12 de 1e dd f2 57  |%+20...........W|
000031b0  69 6d 70 5f 4d 65 6e 75  50 6f 70 55 70 42 61 72  |imp_MenuPopUpBar|
000031c0  28 78 25 2c 79 25 29 0d  12 e8 0c ea 6e 25 3a 6e  |(x%,y%).....n%:n|
000031d0  25 3d 30 0d 12 f2 2a c8  95 28 28 42 61 72 5f 4d  |%=0...*..((Bar_M|
000031e0  65 6e 75 25 21 28 32 38  2b 6e 25 2a 32 34 29 29  |enu%!(28+n%*24))|
000031f0  80 25 31 30 30 30 30 30  30 30 29 3d 30 0d 12 fc  |.%10000000)=0...|
00003200  09 6e 25 2b 3d 31 0d 13  06 05 ce 0d 13 10 31 c8  |.n%+=1........1.|
00003210  99 22 57 69 6d 70 5f 43  72 65 61 74 65 4d 65 6e  |."Wimp_CreateMen|
00003220  75 22 2c 2c 42 61 72 5f  4d 65 6e 75 25 2c 78 25  |u",,Bar_Menu%,x%|
00003230  2d 36 34 2c 39 36 2b 6e  25 2a 34 34 0d 13 1a 13  |-64,96+n%*44....|
00003240  6d 65 6e 75 25 3d 42 61  72 5f 4d 65 6e 75 25 0d  |menu%=Bar_Menu%.|
00003250  13 24 05 e1 0d 13 2e 20  dd f2 57 69 6d 70 5f 4d  |.$..... ..Wimp_M|
00003260  65 6e 75 54 69 63 6b 28  6d 65 6e 75 25 2c 69 74  |enuTick(menu%,it|
00003270  65 6d 25 29 0d 13 38 37  6d 65 6e 75 25 21 28 32  |em%)..87menu%!(2|
00003280  38 2b 28 69 74 65 6d 25  2d 31 29 2a 32 34 29 3d  |8+(item%-1)*24)=|
00003290  28 6d 65 6e 75 25 21 28  32 38 2b 28 69 74 65 6d  |(menu%!(28+(item|
000032a0  25 2d 31 29 2a 32 34 29  29 82 31 0d 13 42 05 e1  |%-1)*24)).1..B..|
000032b0  0d 13 4c 22 dd f2 57 69  6d 70 5f 4d 65 6e 75 54  |..L"..Wimp_MenuT|
000032c0  69 74 6c 65 28 6d 65 6e  75 25 2c 74 69 74 6c 65  |itle(menu%,title|
000032d0  24 29 0d 13 56 19 24 6d  65 6e 75 25 3d c0 74 69  |$)..V.$menu%=.ti|
000032e0  74 6c 65 24 2c 31 32 29  2b bd 30 0d 13 60 05 e1  |tle$,12)+.0..`..|
000032f0  0d 13 6a 3c dd f2 57 69  6d 70 5f 4d 65 6e 75 57  |..j<..Wimp_MenuW|
00003300  72 69 74 65 28 6d 65 6e  75 25 2c 69 74 65 6d 25  |rite(menu%,item%|
00003310  2c 62 75 66 66 65 72 25  2c 76 61 6c 25 2c 42 75  |,buffer%,val%,Bu|
00003320  66 66 65 72 4c 65 6e 67  74 68 25 29 0d 13 74 37  |fferLength%)..t7|
00003330  6d 65 6e 75 25 21 28 32  38 2b 28 69 74 65 6d 25  |menu%!(28+(item%|
00003340  2d 31 29 2a 32 34 29 3d  28 6d 65 6e 75 25 21 28  |-1)*24)=(menu%!(|
00003350  32 38 2b 28 69 74 65 6d  25 2d 31 29 2a 32 34 29  |28+(item%-1)*24)|
00003360  29 84 34 0d 13 7e 38 6d  65 6e 75 25 21 28 33 36  |).4..~8menu%!(36|
00003370  2b 28 69 74 65 6d 25 2d  31 29 2a 32 34 29 3d 6d  |+(item%-1)*24)=m|
00003380  65 6e 75 25 21 28 33 36  2b 28 69 74 65 6d 25 2d  |enu%!(36+(item%-|
00003390  31 29 2a 32 34 29 84 26  31 30 30 0d 13 88 23 6d  |1)*24).&100...#m|
000033a0  65 6e 75 25 21 28 34 30  2b 28 69 74 65 6d 25 2d  |enu%!(40+(item%-|
000033b0  31 29 2a 32 34 29 3d 62  75 66 66 65 72 25 0d 13  |1)*24)=buffer%..|
000033c0  92 20 6d 65 6e 75 25 21  28 34 34 2b 28 69 74 65  |. menu%!(44+(ite|
000033d0  6d 25 2d 31 29 2a 32 34  29 3d 76 61 6c 25 0d 13  |m%-1)*24)=val%..|
000033e0  9c 29 6d 65 6e 75 25 21  28 34 38 2b 28 69 74 65  |.)menu%!(48+(ite|
000033f0  6d 25 2d 31 29 2a 32 34  29 3d 42 75 66 66 65 72  |m%-1)*24)=Buffer|
00003400  4c 65 6e 67 74 68 25 0d  13 a6 05 e1 0d 13 b0 16  |Length%.........|
00003410  dd f2 57 69 6d 70 5f 53  70 72 69 74 65 73 4c 6f  |..Wimp_SpritesLo|
00003420  61 64 0d 13 ba 2f f2 57  69 6d 70 5f 53 70 72 69  |ad.../.Wimp_Spri|
00003430  74 65 73 50 61 74 68 4c  6f 61 64 28 22 3c 4f 62  |tesPathLoad("<Ob|
00003440  65 79 24 44 69 72 3e 2e  53 70 72 69 74 65 73 22  |ey$Dir>.Sprites"|
00003450  29 0d 13 c4 1c 64 69 72  65 63 74 5f 73 70 72 69  |)....direct_spri|
00003460  74 65 73 25 3d 73 70 72  69 74 65 73 25 0d 13 ce  |tes%=sprites%...|
00003470  05 e1 0d 13 d8 25 dd f2  57 69 6d 70 5f 53 70 72  |.....%..Wimp_Spr|
00003480  69 74 65 73 50 61 74 68  4c 6f 61 64 28 70 61 74  |itesPathLoad(pat|
00003490  68 6e 61 6d 65 24 29 0d  13 e2 0a ea 53 25 2c 54  |hname$).....S%,T|
000034a0  25 0d 13 ec 2c 53 25 3d  8e 22 3c 4f 62 65 79 24  |%...,S%=."<Obey$|
000034b0  44 69 72 3e 2e 53 70 72  69 74 65 73 22 3a 54 25  |Dir>.Sprites":T%|
000034c0  3d a2 23 53 25 2b 31 36  3a d9 23 53 25 0d 13 f6  |=.#S%+16:.#S%...|
000034d0  19 de 73 70 72 69 74 65  73 25 54 25 2c 73 70 6e  |..sprites%T%,spn|
000034e0  61 6d 65 25 31 32 0d 14  00 1d 21 73 70 72 69 74  |ame%12....!sprit|
000034f0  65 73 25 3d 54 25 3a 73  70 72 69 74 65 73 25 21  |es%=T%:sprites%!|
00003500  38 3d 30 0d 14 0a 21 c8  99 22 4f 53 5f 53 70 72  |8=0...!.."OS_Spr|
00003510  69 74 65 4f 70 22 2c 26  31 30 39 2c 73 70 72 69  |iteOp",&109,spri|
00003520  74 65 73 25 0d 14 14 2b  c8 99 22 4f 53 5f 53 70  |tes%...+.."OS_Sp|
00003530  72 69 74 65 4f 70 22 2c  26 31 30 41 2c 73 70 72  |riteOp",&10A,spr|
00003540  69 74 65 73 25 2c 70 61  74 68 6e 61 6d 65 24 0d  |ites%,pathname$.|
00003550  14 1e 05 e1 0d 14 28 1a  dd a4 57 69 6d 70 5f 46  |......(...Wimp_F|
00003560  69 6c 65 54 79 70 65 28  74 79 70 65 25 29 0d 14  |ileType(type%)..|
00003570  32 0c c8 8e 74 79 70 65  25 ca 0d 14 3c 11 c9 26  |2...type%...<..&|
00003580  46 46 46 3a 3d 22 54 65  78 74 22 0d 14 46 11 c9  |FFF:="Text"..F..|
00003590  26 46 46 44 3a 3d 22 44  61 74 61 22 0d 14 50 12  |&FFD:="Data"..P.|
000035a0  c9 26 46 46 42 3a 3d 22  42 61 73 69 63 22 0d 14  |.&FFB:="Basic"..|
000035b0  5a 13 c9 26 46 46 39 3a  3d 22 53 70 72 69 74 65  |Z..&FF9:="Sprite|
000035c0  22 0d 14 64 14 c9 26 46  45 44 3a 3d 22 50 61 6c  |"..d..&FED:="Pal|
000035d0  65 74 74 65 22 0d 14 6e  15 c9 26 46 45 43 3a 3d  |ette"..n..&FEC:=|
000035e0  22 54 65 6d 70 6c 61 74  65 22 0d 14 78 11 c9 26  |"Template"..x..&|
000035f0  41 46 46 3a 3d 22 44 72  61 77 22 0d 14 82 14 c9  |AFF:="Draw".....|
00003600  26 31 30 30 30 3a 3d 22  46 6f 6c 64 65 72 22 0d  |&1000:="Folder".|
00003610  14 8c 19 c9 26 32 30 30  30 3a 3d 22 41 70 70 6c  |....&2000:="Appl|
00003620  69 63 61 74 69 6f 6e 22  0d 14 96 0f 7f 3d c3 7e  |ication".....=.~|
00003630  28 74 79 70 65 25 29 0d  14 a0 05 cb 0d 14 aa 1a  |(type%).........|
00003640  dd a4 57 69 6d 70 5f 47  65 74 46 69 6c 65 50 61  |..Wimp_GetFilePa|
00003650  74 68 4e 61 6d 65 0d 14  b4 27 3d a4 57 69 6d 70  |thName...'=.Wimp|
00003660  5f 47 65 74 53 74 72 69  6e 67 41 74 41 64 64 72  |_GetStringAtAddr|
00003670  65 73 73 28 77 69 6d 70  25 2b 34 34 29 0d 14 be  |ess(wimp%+44)...|
00003680  1e dd a4 57 69 6d 70 5f  46 69 6c 65 4c 6f 61 64  |...Wimp_FileLoad|
00003690  28 70 61 74 68 6e 61 6d  65 24 29 0d 14 c8 10 ea  |(pathname$).....|
000036a0  53 25 2c 54 25 2c 66 69  6c 65 25 0d 14 d2 11 53  |S%,T%,file%....S|
000036b0  25 3d 8e 70 61 74 68 6e  61 6d 65 24 0d 14 dc 0e  |%=.pathname$....|
000036c0  54 25 3d a2 23 53 25 2b  31 36 0d 14 e6 08 d9 23  |T%=.#S%+16.....#|
000036d0  53 25 0d 14 f0 0c de 66  69 6c 65 25 54 25 0d 14  |S%.....file%T%..|
000036e0  fa 22 ff 28 22 4c 4f 41  44 22 2b 70 61 74 68 6e  |.".("LOAD"+pathn|
000036f0  61 6d 65 24 2b 22 22 2b  c3 7e 66 69 6c 65 25 29  |ame$+""+.~file%)|
00003700  0d 15 04 0a 3d 66 69 6c  65 25 0d 15 0e 25 dd a4  |....=file%...%..|
00003710  57 69 6d 70 5f 47 65 74  53 74 72 69 6e 67 41 74  |Wimp_GetStringAt|
00003720  41 64 64 72 65 73 73 28  61 72 72 61 79 25 29 0d  |Address(array%).|
00003730  15 18 0d ea 73 24 3a 73  24 3d 22 22 0d 15 22 3b  |....s$:s$=""..";|
00003740  c8 95 28 3f 61 72 72 61  79 25 3c 3e 31 33 29 80  |..(?array%<>13).|
00003750  28 3f 61 72 72 61 79 25  3c 3e 30 29 3a 73 24 2b  |(?array%<>0):s$+|
00003760  3d bd 28 3f 61 72 72 61  79 25 29 3a 61 72 72 61  |=.(?array%):arra|
00003770  79 25 2b 3d 31 3a ce 0d  15 2c 07 3d 73 24 0d 15  |y%+=1:...,.=s$..|
00003780  36 22 dd a4 57 69 6d 70  5f 47 65 74 46 69 6c 65  |6"..Wimp_GetFile|
00003790  46 72 6f 6d 50 61 74 68  6e 61 6d 65 28 66 24 29  |FromPathname(f$)|
000037a0  0d 15 40 0f c8 8e a7 66  24 2c 22 2e 22 29 ca 0d  |..@....f$,".")..|
000037b0  15 4a 0a c9 30 3a 3d 66  24 0d 15 54 35 7f 3a 3d  |.J..0:=f$..T5.:=|
000037c0  a4 57 69 6d 70 5f 47 65  74 46 69 6c 65 46 72 6f  |.Wimp_GetFileFro|
000037d0  6d 50 61 74 68 6e 61 6d  65 28 c2 66 24 2c a9 28  |mPathname(.f$,.(|
000037e0  66 24 29 2d a7 66 24 2c  22 2e 22 29 29 29 0d 15  |f$)-.f$,".")))..|
000037f0  5e 05 cb 0d 15 68 1c dd  f2 57 69 6d 70 5f 53 65  |^....h...Wimp_Se|
00003800  6e 64 54 6f 45 64 69 74  28 66 69 6c 65 24 29 0d  |ndToEdit(file$).|
00003810  15 72 07 ea 6e 25 0d 15  7c 15 77 69 6d 70 25 21  |.r..n%..|.wimp%!|
00003820  34 3d 26 36 43 43 30 31  43 30 43 0d 15 86 0e 77  |4=&6CC01C0C....w|
00003830  69 6d 70 25 21 31 36 3d  35 0d 15 90 0e 77 69 6d  |imp%!16=5....wim|
00003840  70 25 21 33 36 3d 30 0d  15 9a 11 77 69 6d 70 25  |p%!36=0....wimp%|
00003850  21 34 30 3d 26 46 46 46  0d 15 a4 18 24 28 77 69  |!40=&FFF....$(wi|
00003860  6d 70 25 2b 34 34 29 3d  66 69 6c 65 24 2b bd 30  |mp%+44)=file$+.0|
00003870  0d 15 ae 10 6e 25 3d a9  66 69 6c 65 24 2b 34 35  |....n%=.file$+45|
00003880  0d 15 b8 27 e7 6e 25 83  34 8c 21 77 69 6d 70 25  |...'.n%.4.!wimp%|
00003890  3d 34 2b 28 6e 25 3e 3e  32 29 3c 3c 32 8b 21 77  |=4+(n%>>2)<<2.!w|
000038a0  69 6d 70 25 3d 6e 25 0d  15 c2 23 c8 99 22 57 69  |imp%=n%...#.."Wi|
000038b0  6d 70 5f 53 65 6e 64 4d  65 73 73 61 67 65 22 2c  |mp_SendMessage",|
000038c0  31 37 2c 77 69 6d 70 25  2c 30 0d 15 cc 05 e1 0d  |17,wimp%,0......|
000038d0  15 d6 2e dd f2 57 69 6d  70 5f 53 74 61 72 74 28  |.....Wimp_Start(|
000038e0  54 61 73 6b 4e 61 6d 65  24 2c 77 69 6d 70 5f 6d  |TaskName$,wimp_m|
000038f0  65 6d 6f 72 79 25 2c 69  63 6f 6e 25 29 0d 15 e0  |emory%,icon%)...|
00003900  22 de 77 69 6d 70 25 77  69 6d 70 5f 6d 65 6d 6f  |".wimp%wimp_memo|
00003910  72 79 25 2c 69 63 6f 6e  73 25 69 63 6f 6e 25 0d  |ry%,icons%icon%.|
00003920  15 ea 26 e7 77 69 6d 70  5f 6d 65 6d 6f 72 79 25  |..&.wimp_memory%|
00003930  3c 32 35 36 8c 77 69 6d  70 5f 6d 65 6d 6f 72 79  |<256.wimp_memory|
00003940  25 3d 32 35 36 0d 15 f4  1d 69 63 6f 6e 5f 6d 65  |%=256....icon_me|
00003950  6d 6f 72 79 25 3d 69 63  6f 6e 73 25 2b 69 63 6f  |mory%=icons%+ico|
00003960  6e 25 0d 15 fe 13 74 61  73 6b 24 3d 54 61 73 6b  |n%....task$=Task|
00003970  4e 61 6d 65 24 0d 16 08  29 69 6e 64 69 72 65 63  |Name$...)indirec|
00003980  74 5f 73 70 72 69 74 65  73 25 3d 31 3a 64 69 72  |t_sprites%=1:dir|
00003990  65 63 74 5f 73 70 72 69  74 65 73 25 3d 31 0d 16  |ect_sprites%=1..|
000039a0  12 1b f2 57 69 6d 70 5f  53 65 74 45 76 65 6e 74  |...Wimp_SetEvent|
000039b0  56 61 72 69 61 62 6c 65  73 0d 16 1c 13 ee 85 f2  |Variables.......|
000039c0  57 69 6d 70 5f 45 72 72  6f 72 3a e0 0d 16 26 3e  |Wimp_Error:...&>|
000039d0  c8 99 22 57 69 6d 70 5f  49 6e 69 74 69 61 6c 69  |.."Wimp_Initiali|
000039e0  73 65 22 2c 32 30 30 2c  26 34 42 35 33 34 31 35  |se",200,&4B53415|
000039f0  34 2c 54 61 73 6b 4e 61  6d 65 24 b8 76 65 72 73  |4,TaskName$.vers|
00003a00  69 6f 6e 25 2c 74 61 73  6b 25 0d 16 30 05 e1 0d  |ion%,task%..0...|
00003a10  16 3a 1a dd a4 57 69 6d  70 5f 42 41 53 49 43 50  |.:...Wimp_BASICP|
00003a20  61 72 61 6d 65 74 65 72  73 0d 16 44 13 ea 63 6f  |arameters..D..co|
00003a30  6d 24 2c 70 61 72 61 6d  24 2c 49 25 0d 16 4e 16  |m$,param$,I%..N.|
00003a40  c8 99 22 4f 53 5f 47 65  74 45 6e 76 22 b8 63 6f  |.."OS_GetEnv".co|
00003a50  6d 24 0d 16 58 0e 70 61  72 61 6d 73 24 3d 22 22  |m$..X.params$=""|
00003a60  0d 16 62 17 49 25 3d a7  63 6f 6d 24 2c 22 20 2d  |..b.I%=.com$," -|
00003a70  71 75 69 74 20 22 29 0d  16 6c 31 e7 49 25 8c 70  |quit ")..l1.I%.p|
00003a80  61 72 61 6d 73 24 3d c1  63 6f 6d 24 2c a7 63 6f  |arams$=.com$,.co|
00003a90  6d 24 2c 22 20 22 2c 49  25 2b a9 22 20 2d 71 75  |m$," ",I%+." -qu|
00003aa0  69 74 20 22 29 2b 31 29  0d 16 76 0c 3d 70 61 72  |it ")+1)..v.=par|
00003ab0  61 6d 73 24 0d 16 80 1c  dd f2 57 69 6d 70 5f 53  |ams$......Wimp_S|
00003ac0  65 74 45 76 65 6e 74 56  61 72 69 61 62 6c 65 73  |etEventVariables|
00003ad0  0d 16 8a 15 de 70 6f 69  6e 74 65 72 5f 62 6c 6f  |.....pointer_blo|
00003ae0  63 6b 25 32 30 0d 16 94  10 69 6e 74 65 72 66 61  |ck%20....interfa|
00003af0  63 65 25 3d a3 0d 16 9e  29 6e 75 6c 6c 25 3d 31  |ce%=....)null%=1|
00003b00  3a 64 72 61 77 25 3d 32  3a 70 6f 69 6e 74 65 72  |:draw%=2:pointer|
00003b10  5f 6c 65 61 76 69 6e 67  25 3d 31 3c 3c 34 0d 16  |_leaving%=1<<4..|
00003b20  a8 31 70 6f 69 6e 74 65  72 5f 65 6e 74 65 72 69  |.1pointer_enteri|
00003b30  6e 67 25 3d 31 3c 3c 35  3a 6d 6f 75 73 65 25 3d  |ng%=1<<5:mouse%=|
00003b40  31 3c 3c 36 3a 64 72 61  67 25 3d 31 3c 3c 37 0d  |1<<6:drag%=1<<7.|
00003b50  16 b2 26 6b 65 79 25 3d  31 3c 3c 38 3a 6d 65 6e  |..&key%=1<<8:men|
00003b60  75 25 3d 31 3c 3c 39 3a  73 63 72 6f 6c 6c 25 3d  |u%=1<<9:scroll%=|
00003b70  31 3c 3c 31 30 0d 16 bc  40 6c 6f 73 65 5f 63 61  |1<<10...@lose_ca|
00003b80  72 65 74 25 3d 31 3c 3c  31 31 3a 67 61 69 6e 5f  |ret%=1<<11:gain_|
00003b90  63 61 72 65 74 25 3d 31  3c 3c 31 32 3a 6d 65 73  |caret%=1<<12:mes|
00003ba0  73 61 67 65 25 3d 28 31  3c 3c 31 37 29 2b 28 31  |sage%=(1<<17)+(1|
00003bb0  3c 3c 31 38 29 0d 16 c6  30 72 65 63 6f 72 64 65  |<<18)...0recorde|
00003bc0  72 25 3d 31 3c 3c 31 38  3a 61 63 6b 6e 6f 77 6c  |r%=1<<18:acknowl|
00003bd0  65 64 67 65 25 3d 31 3c  3c 31 39 3a 77 69 6e 64  |edge%=1<<19:wind|
00003be0  6f 77 25 3d 30 0d 16 d0  21 73 70 72 69 74 65 73  |ow%=0...!sprites|
00003bf0  25 3d 31 3a 76 65 72 73  69 6f 6e 25 3d 30 3a 74  |%=1:version%=0:t|
00003c00  61 73 6b 25 3d 30 0d 16  da 2a 42 61 72 5f 57 69  |ask%=0...*Bar_Wi|
00003c10  6e 64 6f 77 25 3d 2d 32  3a 42 61 72 5f 49 63 6f  |ndow%=-2:Bar_Ico|
00003c20  6e 25 3d 30 3a 42 61 72  5f 4d 65 6e 75 25 3d 30  |n%=0:Bar_Menu%=0|
00003c30  0d 16 e4 2a 78 5f 6f 72  69 67 69 6e 25 3d 30 3a  |...*x_origin%=0:|
00003c40  79 5f 6f 72 69 67 69 6e  25 3d 30 3a 53 61 76 65  |y_origin%=0:Save|
00003c50  57 69 6e 64 6f 77 25 3d  2d 33 0d 16 ee 33 6d 65  |Window%=-3...3me|
00003c60  73 73 61 67 65 5f 71 75  69 74 25 3d 30 3a 6d 65  |ssage_quit%=0:me|
00003c70  73 73 61 67 65 5f 73 61  76 65 25 3d 32 3a 6d 65  |ssage_save%=2:me|
00003c80  73 73 61 67 65 5f 6c 6f  61 64 25 3d 33 0d 16 f8  |ssage_load%=3...|
00003c90  21 6d 6f 75 73 65 5f 62  75 74 74 6f 6e 25 3d 32  |!mouse_button%=2|
00003ca0  3a 73 61 76 65 5f 65 76  65 6e 74 25 3d 30 0d 17  |:save_event%=0..|
00003cb0  02 1e 74 6f 70 5f 6c 69  6e 65 25 3d 30 3a 62 6f  |..top_line%=0:bo|
00003cc0  74 74 6f 6d 5f 6c 69 6e  65 25 3d 30 0d 17 0c 05  |ttom_line%=0....|
00003cd0  e1 0d 17 16 10 dd f2 57  69 6d 70 5f 45 72 72 6f  |.......Wimp_Erro|
00003ce0  72 0d 17 20 0a ea 58 24  2c 78 25 0d 17 2a 07 ee  |r.. ..X$,x%..*..|
00003cf0  85 87 0d 17 34 08 78 25  3d 9e 0d 17 3e 1b 58 24  |....4.x%=...>.X$|
00003d00  3d f6 24 2b 22 61 74 6c  69 6e 65 22 2b c3 28 78  |=.$+"atline"+.(x|
00003d10  25 81 31 30 29 0d 17 48  10 de 45 72 72 6f 72 4d  |%.10)..H..ErrorM|
00003d20  73 67 25 33 36 0d 17 52  45 45 72 72 6f 72 4d 73  |sg%36..REErrorMs|
00003d30  67 25 21 30 3d 33 36 3a  45 72 72 6f 72 4d 73 67  |g%!0=36:ErrorMsg|
00003d40  25 21 31 32 3d 30 3a 45  72 72 6f 72 4d 73 67 25  |%!12=0:ErrorMsg%|
00003d50  21 31 36 3d 26 38 31 30  38 30 3a 45 72 72 6f 72  |!16=&81080:Error|
00003d60  4d 73 67 25 21 32 30 3d  78 25 0d 17 5c 1f 24 28  |Msg%!20=x%..\.$(|
00003d70  45 72 72 6f 72 4d 73 67  25 2b 32 34 29 3d 22 21  |ErrorMsg%+24)="!|
00003d80  52 75 6e 49 6d 61 67 65  22 0d 17 66 25 c8 99 22  |RunImage"..f%.."|
00003d90  57 69 6d 70 5f 53 65 6e  64 4d 65 73 73 61 67 65  |Wimp_SendMessage|
00003da0  22 2c 31 37 2c 45 72 72  6f 72 4d 73 67 25 0d 17  |",17,ErrorMsg%..|
00003db0  70 1f f2 57 69 6d 70 5f  57 69 6e 64 6f 77 41 6c  |p..Wimp_WindowAl|
00003dc0  65 72 74 28 74 61 73 6b  24 2c 58 24 29 0d 17 7a  |ert(task$,X$)..z|
00003dd0  13 f2 57 69 6d 70 5f 43  6c 6f 73 65 44 6f 77 6e  |..Wimp_CloseDown|
00003de0  0d 17 84 05 e1 0d 17 8e  14 dd f2 57 69 6d 70 5f  |...........Wimp_|
00003df0  43 6c 6f 73 65 44 6f 77  6e 0d 17 98 23 c8 99 22  |CloseDown...#.."|
00003e00  57 69 6d 70 5f 43 6c 6f  73 65 44 6f 77 6e 22 2c  |Wimp_CloseDown",|
00003e10  74 61 73 6b 25 2c 22 54  41 53 4b 22 0d 17 a2 05  |task%,"TASK"....|
00003e20  e1 0d 17 ac 0f dd f2 57  69 6d 70 5f 51 75 69 74  |.......Wimp_Quit|
00003e30  0d 17 b6 0f 66 69 6e 69  73 68 65 64 25 3d b9 0d  |....finished%=..|
00003e40  17 c0 05 e1 0d 17 ca 22  dd a4 57 69 6d 70 5f 52  |......."..Wimp_R|
00003e50  65 61 64 56 61 72 69 61  62 6c 65 28 56 61 72 69  |eadVariable(Vari|
00003e60  61 62 6c 65 24 29 0d 17  d4 1b ea 6c 65 6e 25 2c  |able$).....len%,|
00003e70  72 65 73 75 6c 74 25 2c  76 61 72 69 61 62 6c 65  |result%,variable|
00003e80  25 0d 17 de 14 24 77 69  6d 70 25 3d 56 61 72 69  |%....$wimp%=Vari|
00003e90  61 62 6c 65 24 0d 17 e8  33 c8 99 22 4f 53 5f 52  |able$...3.."OS_R|
00003ea0  65 61 64 56 61 72 56 61  6c 22 2c 77 69 6d 70 25  |eadVarVal",wimp%|
00003eb0  2c 77 69 6d 70 25 2b 32  35 35 2c 32 35 35 2c 2c  |,wimp%+255,255,,|
00003ec0  33 b8 2c 2c 6c 65 6e 25  0d 17 f2 17 77 69 6d 70  |3.,,len%....wimp|
00003ed0  25 3f 28 6c 65 6e 25 2b  32 35 35 29 3d 31 33 0d  |%?(len%+255)=13.|
00003ee0  17 fc 11 3d 24 28 77 69  6d 70 25 2b 32 35 35 29  |...=$(wimp%+255)|
00003ef0  0d 18 06 17 dd f2 57 69  6d 70 5f 57 61 69 74 46  |......Wimp_WaitF|
00003f00  6f 72 45 76 65 6e 74 0d  18 10 11 ea 6d 61 73 6b  |orEvent.....mask|
00003f10  25 2c 65 76 65 6e 74 25  0d 18 1a 0f 66 69 6e 69  |%,event%....fini|
00003f20  73 68 65 64 25 3d a3 0d  18 24 17 6d 61 73 6b 25  |shed%=...$.mask%|
00003f30  3d 25 31 31 31 30 30 30  30 31 31 30 30 31 0d 18  |=%111000011001..|
00003f40  2e 05 f5 0d 18 38 24 c8  99 22 57 69 6d 70 5f 50  |.....8$.."Wimp_P|
00003f50  6f 6c 6c 22 2c 6d 61 73  6b 25 2c 77 69 6d 70 25  |oll",mask%,wimp%|
00003f60  b8 65 76 65 6e 74 25 0d  18 42 0d c8 8e 65 76 65  |.event%..B...eve|
00003f70  6e 74 25 ca 0d 18 4c 06  c9 30 0d 18 56 1b c9 31  |nt%...L..0..V..1|
00003f80  3a f2 57 69 6d 70 5f 50  6f 6c 6c 44 72 61 77 57  |:.Wimp_PollDrawW|
00003f90  69 6e 64 6f 77 0d 18 60  21 c9 32 3a c8 99 22 57  |indow..`!.2:.."W|
00003fa0  69 6d 70 5f 4f 70 65 6e  57 69 6e 64 6f 77 22 2c  |imp_OpenWindow",|
00003fb0  2c 77 69 6d 70 25 0d 18  6a 1c c9 33 3a f2 57 69  |,wimp%..j..3:.Wi|
00003fc0  6d 70 5f 50 6f 6c 6c 43  6c 6f 73 65 57 69 6e 64  |mp_PollCloseWind|
00003fd0  6f 77 0d 18 74 06 c9 34  0d 18 7e 06 c9 35 0d 18  |ow..t..4..~..5..|
00003fe0  88 1b c9 36 3a f2 57 69  6d 70 5f 50 6f 6c 6c 4d  |...6:.Wimp_PollM|
00003ff0  6f 75 73 65 43 6c 69 63  6b 0d 18 92 1c c9 37 3a  |ouseClick.....7:|
00004000  f2 57 69 6d 70 5f 50 6f  6c 6c 53 61 76 65 4d 65  |.Wimp_PollSaveMe|
00004010  73 73 61 67 65 0d 18 9c  19 c9 38 3a f2 57 69 6d  |ssage.....8:.Wim|
00004020  70 5f 50 6f 6c 6c 4b 65  79 50 72 65 73 73 0d 18  |p_PollKeyPress..|
00004030  a6 1f c9 39 3a f2 45 76  65 6e 74 5f 4d 65 6e 75  |...9:.Event_Menu|
00004040  43 68 6f 69 63 65 28 6d  65 6e 75 25 29 0d 18 b0  |Choice(menu%)...|
00004050  07 c9 31 30 0d 18 ba 07  c9 31 31 0d 18 c4 07 c9  |..10.....11.....|
00004060  31 32 0d 18 ce 1d c9 31  37 2c 31 38 3a f2 57 69  |12.....17,18:.Wi|
00004070  6d 70 5f 50 6f 6c 6c 4d  65 73 73 61 67 65 73 0d  |mp_PollMessages.|
00004080  18 d8 07 c9 31 39 0d 18  e2 05 cb 0d 18 ec 0e fd  |....19..........|
00004090  66 69 6e 69 73 68 65 64  25 0d 18 f6 05 e1 0d 19  |finished%.......|
000040a0  00 19 dd f2 57 69 6d 70  5f 50 6f 6c 6c 44 72 61  |....Wimp_PollDra|
000040b0  77 57 69 6e 64 6f 77 0d  19 0a 0a ea 6d 6f 72 65  |wWindow.....more|
000040c0  25 0d 19 14 26 c8 99 22  57 69 6d 70 5f 52 65 64  |%...&.."Wimp_Red|
000040d0  72 61 77 57 69 6e 64 6f  77 22 2c 2c 77 69 6d 70  |rawWindow",,wimp|
000040e0  25 b8 6d 6f 72 65 25 0d  19 1e 13 77 69 6e 64 6f  |%.more%....windo|
000040f0  77 25 3d 77 69 6d 70 25  21 30 0d 19 28 41 78 5f  |w%=wimp%!0..(Ax_|
00004100  6f 72 69 67 69 6e 25 3d  31 36 2b 77 69 6d 70 25  |origin%=16+wimp%|
00004110  21 34 2d 77 69 6d 70 25  21 32 30 3a 79 5f 6f 72  |!4-wimp%!20:y_or|
00004120  69 67 69 6e 25 3d 2d 31  36 2b 77 69 6d 70 25 21  |igin%=-16+wimp%!|
00004130  31 36 2d 77 69 6d 70 25  21 32 34 0d 19 32 0b c8  |16-wimp%!24..2..|
00004140  95 6d 6f 72 65 25 0d 19  3c 2c e7 69 6e 74 65 72  |.more%..<,.inter|
00004150  66 61 63 65 25 8c c8 99  22 57 69 6d 70 5f 42 6f  |face%..."Wimp_Bo|
00004160  72 64 65 72 57 69 6e 64  6f 77 22 2c 2c 77 69 6d  |rderWindow",,wim|
00004170  70 25 0d 19 46 2c f2 45  76 65 6e 74 5f 44 72 61  |p%..F,.Event_Dra|
00004180  77 28 77 69 6e 64 6f 77  25 2c 78 5f 6f 72 69 67  |w(window%,x_orig|
00004190  69 6e 25 2c 79 5f 6f 72  69 67 69 6e 25 29 0d 19  |in%,y_origin%)..|
000041a0  50 26 c8 99 22 57 69 6d  70 5f 47 65 74 52 65 63  |P&.."Wimp_GetRec|
000041b0  74 61 6e 67 6c 65 22 2c  2c 77 69 6d 70 25 b8 6d  |tangle",,wimp%.m|
000041c0  6f 72 65 25 0d 19 5a 05  ce 0d 19 64 05 e1 0d 19  |ore%..Z....d....|
000041d0  6e 1a dd f2 57 69 6d 70  5f 50 6f 6c 6c 43 6c 6f  |n...Wimp_PollClo|
000041e0  73 65 57 69 6e 64 6f 77  0d 19 78 22 c8 99 22 57  |seWindow..x".."W|
000041f0  69 6d 70 5f 47 65 74 50  6f 69 6e 74 65 72 49 6e  |imp_GetPointerIn|
00004200  66 6f 22 2c 2c 77 69 6d  70 25 0d 19 82 25 77 69  |fo",,wimp%...%wi|
00004210  6e 64 6f 77 25 3d 77 69  6d 70 25 21 31 32 3a 62  |ndow%=wimp%!12:b|
00004220  75 74 74 6f 6e 73 25 3d  77 69 6d 70 25 21 38 0d  |uttons%=wimp%!8.|
00004230  19 8c 28 f2 45 76 65 6e  74 5f 57 69 6e 64 6f 77  |..(.Event_Window|
00004240  43 6c 6f 73 65 28 77 69  6e 64 6f 77 25 2c 62 75  |Close(window%,bu|
00004250  74 74 6f 6e 73 25 29 0d  19 96 2e 21 77 69 6d 70  |ttons%)....!wimp|
00004260  25 3d 77 69 6e 64 6f 77  25 3a c8 99 22 57 69 6d  |%=window%:.."Wim|
00004270  70 5f 43 6c 6f 73 65 57  69 6e 64 6f 77 22 2c 2c  |p_CloseWindow",,|
00004280  77 69 6d 70 25 0d 19 a0  05 e1 0d 19 aa 19 dd f2  |wimp%...........|
00004290  57 69 6d 70 5f 50 6f 6c  6c 4d 6f 75 73 65 43 6c  |Wimp_PollMouseCl|
000042a0  69 63 6b 0d 19 b4 49 62  75 74 74 6f 6e 25 3d 77  |ick...Ibutton%=w|
000042b0  69 6d 70 25 21 38 3a 77  69 6e 64 6f 77 25 3d 77  |imp%!8:window%=w|
000042c0  69 6d 70 25 21 31 32 3a  69 63 6f 6e 25 3d 77 69  |imp%!12:icon%=wi|
000042d0  6d 70 25 21 31 36 3a 78  25 3d 77 69 6d 70 25 21  |mp%!16:x%=wimp%!|
000042e0  30 3a 79 25 3d 77 69 6d  70 25 21 34 0d 19 be 0e  |0:y%=wimp%!4....|
000042f0  c8 8e 62 75 74 74 6f 6e  25 ca 0d 19 c8 1a c9 32  |..button%......2|
00004300  3a f2 57 69 6d 70 5f 50  6f 6c 6c 4d 65 6e 75 50  |:.Wimp_PollMenuP|
00004310  6f 70 55 70 0d 19 d2 1d  7f 3a c8 8e a4 45 76 65  |opUp.....:...Eve|
00004320  6e 74 5f 53 61 76 65 28  77 69 6e 64 6f 77 25 29  |nt_Save(window%)|
00004330  ca 0d 19 dc 1a c9 b9 3a  f2 57 69 6d 70 5f 50 6f  |.......:.Wimp_Po|
00004340  6c 6c 4d 6f 75 73 65 53  61 76 65 0d 19 e6 20 c9  |llMouseSave... .|
00004350  a3 3a f2 57 69 6d 70 5f  50 6f 6c 6c 45 76 65 6e  |.:.Wimp_PollEven|
00004360  74 4d 6f 75 73 65 43 6c  69 63 6b 0d 19 f0 05 cb  |tMouseClick.....|
00004370  0d 19 fa 05 cb 0d 1a 04  05 e1 0d 1a 0e 18 dd f2  |................|
00004380  57 69 6d 70 5f 50 6f 6c  6c 4d 65 6e 75 50 6f 70  |Wimp_PollMenuPop|
00004390  55 70 0d 1a 18 1e 6d 65  6e 75 25 3d a4 45 76 65  |Up....menu%=.Eve|
000043a0  6e 74 5f 4d 65 6e 75 28  77 69 6e 64 6f 77 25 29  |nt_Menu(window%)|
000043b0  0d 1a 22 0c c8 8e 6d 65  6e 75 25 ca 0d 1a 2c 06  |.."...menu%...,.|
000043c0  c9 a3 0d 1a 36 05 7f 0d  1a 40 0e c8 8e 77 69 6e  |....6....@...win|
000043d0  64 6f 77 25 ca 0d 1a 4a  0c c9 2d 32 3a 6e 25 3d  |dow%...J..-2:n%=|
000043e0  30 0d 1a 54 2a c8 95 28  28 42 61 72 5f 4d 65 6e  |0..T*..((Bar_Men|
000043f0  75 25 21 28 32 38 2b 6e  25 2a 32 34 29 29 80 25  |u%!(28+n%*24)).%|
00004400  31 30 30 30 30 30 30 30  29 3d 30 0d 1a 5e 09 6e  |10000000)=0..^.n|
00004410  25 2b 3d 31 0d 1a 68 05  ce 0d 1a 72 31 c8 99 22  |%+=1..h....r1.."|
00004420  57 69 6d 70 5f 43 72 65  61 74 65 4d 65 6e 75 22  |Wimp_CreateMenu"|
00004430  2c 2c 42 61 72 5f 4d 65  6e 75 25 2c 78 25 2d 36  |,,Bar_Menu%,x%-6|
00004440  34 2c 39 36 2b 6e 25 2a  34 34 0d 1a 7c 2c 7f 3a  |4,96+n%*44..|,.:|
00004450  c8 99 22 57 69 6d 70 5f  43 72 65 61 74 65 4d 65  |.."Wimp_CreateMe|
00004460  6e 75 22 2c 2c 6d 65 6e  75 25 2c 78 25 2d 36 34  |nu",,menu%,x%-64|
00004470  2c 79 25 2b 32 30 0d 1a  86 05 cb 0d 1a 90 05 cb  |,y%+20..........|
00004480  0d 1a 9a 05 e1 0d 1a a4  18 dd f2 57 69 6d 70 5f  |...........Wimp_|
00004490  50 6f 6c 6c 4d 6f 75 73  65 53 61 76 65 0d 1a ae  |PollMouseSave...|
000044a0  0c c8 8e 69 63 6f 6e 25  ca 0d 1a b8 2e c9 30 3a  |...icon%......0:|
000044b0  e7 62 75 74 74 6f 6e 25  80 26 35 30 8c f2 57 69  |.button%.&50..Wi|
000044c0  6d 70 5f 50 6f 6c 6c 44  72 61 67 42 6f 78 28 77  |mp_PollDragBox(w|
000044d0  69 6e 64 6f 77 25 29 0d  1a c2 2e c9 32 3a e7 62  |indow%).....2:.b|
000044e0  75 74 74 6f 6e 25 80 20  35 8c f2 57 69 6d 70 5f  |utton%. 5..Wimp_|
000044f0  50 6f 6c 6c 53 61 76 65  46 69 6c 65 28 77 69 6e  |PollSaveFile(win|
00004500  64 6f 77 25 29 0d 1a cc  05 cb 0d 1a d6 05 e1 0d  |dow%)...........|
00004510  1a e0 1e dd f2 57 69 6d  70 5f 50 6f 6c 6c 45 76  |.....Wimp_PollEv|
00004520  65 6e 74 4d 6f 75 73 65  43 6c 69 63 6b 0d 1a ea  |entMouseClick...|
00004530  2a e7 69 6e 74 65 72 66  61 63 65 25 8c c8 99 22  |*.interface%..."|
00004540  57 69 6d 70 5f 42 6f 72  64 65 72 49 63 6f 6e 22  |Wimp_BorderIcon"|
00004550  2c 2c 77 69 6d 70 25 0d  1a f4 32 f2 45 76 65 6e  |,,wimp%...2.Even|
00004560  74 5f 4d 6f 75 73 65 43  6c 69 63 6b 28 77 69 6e  |t_MouseClick(win|
00004570  64 6f 77 25 2c 69 63 6f  6e 25 2c 62 75 74 74 6f  |dow%,icon%,butto|
00004580  6e 25 2c 78 25 2c 79 25  29 0d 1a fe 11 c8 8e 69  |n%,x%,y%)......i|
00004590  6e 74 65 72 66 61 63 65  25 ca 0d 1b 08 06 c9 b9  |nterface%.......|
000045a0  0d 1b 12 23 77 69 6d 70  25 21 30 3d 78 25 3a 77  |...#wimp%!0=x%:w|
000045b0  69 6d 70 25 21 34 3d 79  25 3a 77 69 6d 70 25 21  |imp%!4=y%:wimp%!|
000045c0  38 3d 30 0d 1b 1c 23 77  69 6d 70 25 21 31 32 3d  |8=0...#wimp%!12=|
000045d0  77 69 6e 64 6f 77 25 3a  77 69 6d 70 25 21 31 36  |window%:wimp%!16|
000045e0  3d 69 63 6f 6e 25 0d 1b  26 1e c8 99 22 57 69 6d  |=icon%..&..."Wim|
000045f0  70 5f 42 6f 72 64 65 72  49 63 6f 6e 22 2c 2c 77  |p_BorderIcon",,w|
00004600  69 6d 70 25 0d 1b 30 05  cb 0d 1b 3a 05 e1 0d 1b  |imp%..0....:....|
00004610  44 20 dd f2 57 69 6d 70  5f 50 6f 6c 6c 53 61 76  |D ..Wimp_PollSav|
00004620  65 46 69 6c 65 28 77 69  6e 64 6f 77 25 29 0d 1b  |eFile(window%)..|
00004630  4e 0a ea 66 69 6c 65 24  0d 1b 58 3a 77 69 6d 70  |N..file$..X:wimp|
00004640  25 21 30 3d 77 69 6e 64  6f 77 25 3a 77 69 6d 70  |%!0=window%:wimp|
00004650  25 21 34 3d 31 3a c8 99  22 57 69 6d 70 5f 47 65  |%!4=1:.."Wimp_Ge|
00004660  74 49 63 6f 6e 53 74 61  74 65 22 2c 2c 77 69 6d  |tIconState",,wim|
00004670  70 25 0d 1b 62 15 66 69  6c 65 24 3d 24 28 77 69  |p%..b.file$=$(wi|
00004680  6d 70 25 21 32 38 29 0d  1b 6c 12 c8 8e a7 66 69  |mp%!28)..l....fi|
00004690  6c 65 24 2c 22 2e 22 29  ca 0d 1b 76 06 c9 30 0d  |le$,".")...v..0.|
000046a0  1b 80 3d 24 28 77 69 6d  70 25 2b 34 29 3d 22 54  |..=$(wimp%+4)="T|
000046b0  6f 20 73 61 76 65 2c 20  64 72 61 67 20 74 68 65  |o save, drag the|
000046c0  20 69 63 6f 6e 20 74 6f  20 61 20 64 69 72 65 63  | icon to a direc|
000046d0  74 6f 72 79 20 77 69 6e  64 6f 77 22 0d 1b 8a 27  |tory window"...'|
000046e0  c8 99 22 57 69 6d 70 5f  52 65 70 6f 72 74 45 72  |.."Wimp_ReportEr|
000046f0  72 6f 72 22 2c 77 69 6d  70 25 2c 31 36 2c 74 61  |ror",wimp%,16,ta|
00004700  73 6b 24 0d 1b 94 05 7f  0d 1b 9e 22 f2 45 76 65  |sk$........".Eve|
00004710  6e 74 5f 53 61 76 65 46  69 6c 65 28 66 69 6c 65  |nt_SaveFile(file|
00004720  24 2c 77 69 6e 64 6f 77  25 29 0d 1b a8 05 cb 0d  |$,window%)......|
00004730  1b b2 1a c8 99 22 57 69  6d 70 5f 43 72 65 61 74  |....."Wimp_Creat|
00004740  65 4d 65 6e 75 22 2c 2d  31 0d 1b bc 05 e1 0d 1b  |eMenu",-1.......|
00004750  c6 1f dd f2 57 69 6d 70  5f 50 6f 6c 6c 44 72 61  |....Wimp_PollDra|
00004760  67 42 6f 78 28 77 69 6e  64 6f 77 25 29 0d 1b d0  |gBox(window%)...|
00004770  0a ea 78 25 2c 79 25 0d  1b da 11 73 61 76 65 25  |..x%,y%....save%|
00004780  3d 77 69 6e 64 6f 77 25  0d 1b e4 12 21 77 69 6d  |=window%....!wim|
00004790  70 25 3d 77 69 6e 64 6f  77 25 0d 1b ee 22 c8 99  |p%=window%..."..|
000047a0  22 57 69 6d 70 5f 47 65  74 57 69 6e 64 6f 77 53  |"Wimp_GetWindowS|
000047b0  74 61 74 65 22 2c 2c 77  69 6d 70 25 0d 1b f8 2c  |tate",,wimp%...,|
000047c0  78 25 3d 77 69 6d 70 25  21 34 2d 77 69 6d 70 25  |x%=wimp%!4-wimp%|
000047d0  21 32 30 3a 79 25 3d 77  69 6d 70 25 21 31 36 2d  |!20:y%=wimp%!16-|
000047e0  77 69 6d 70 25 21 32 34  0d 1c 02 0d 77 69 6d 70  |wimp%!24....wimp|
000047f0  25 21 34 3d 30 0d 1c 0c  20 c8 99 22 57 69 6d 70  |%!4=0... .."Wimp|
00004800  5f 47 65 74 49 63 6f 6e  53 74 61 74 65 22 2c 2c  |_GetIconState",,|
00004810  77 69 6d 70 25 0d 1c 16  12 21 77 69 6d 70 25 3d  |wimp%....!wimp%=|
00004820  77 69 6e 64 6f 77 25 0d  1c 20 0d 77 69 6d 70 25  |window%.. .wimp%|
00004830  21 34 3d 35 0d 1c 2a 2b  77 69 6d 70 25 21 38 3d  |!4=5..*+wimp%!8=|
00004840  78 25 2b 77 69 6d 70 25  21 38 3a 77 69 6d 70 25  |x%+wimp%!8:wimp%|
00004850  21 31 32 3d 79 25 2b 77  69 6d 70 25 21 31 32 0d  |!12=y%+wimp%!12.|
00004860  1c 34 2d 77 69 6d 70 25  21 31 36 3d 78 25 2b 77  |.4-wimp%!16=x%+w|
00004870  69 6d 70 25 21 31 36 3a  77 69 6d 70 25 21 32 30  |imp%!16:wimp%!20|
00004880  3d 79 25 2b 77 69 6d 70  25 21 32 30 0d 1c 3e 19  |=y%+wimp%!20..>.|
00004890  77 69 6d 70 25 21 32 34  3d 30 3a 77 69 6d 70 25  |wimp%!24=0:wimp%|
000048a0  21 32 38 3d 30 0d 1c 48  29 77 69 6d 70 25 21 33  |!28=0..H)wimp%!3|
000048b0  32 3d 26 37 46 46 46 46  46 46 46 3a 77 69 6d 70  |2=&7FFFFFFF:wimp|
000048c0  25 21 33 36 3d 26 37 46  46 46 46 46 46 46 0d 1c  |%!36=&7FFFFFFF..|
000048d0  52 1b c8 99 22 57 69 6d  70 5f 44 72 61 67 42 6f  |R..."Wimp_DragBo|
000048e0  78 22 2c 2c 77 69 6d 70  25 0d 1c 5c 05 e1 0d 1c  |x",,wimp%..\....|
000048f0  66 17 dd f2 57 69 6d 70  5f 50 6f 6c 6c 4b 65 79  |f...Wimp_PollKey|
00004900  50 72 65 73 73 0d 1c 70  2f 77 69 6e 64 6f 77 25  |Press..p/window%|
00004910  3d 77 69 6d 70 25 21 30  3a 69 63 6f 6e 25 3d 77  |=wimp%!0:icon%=w|
00004920  69 6d 70 25 21 34 3a 6b  65 79 25 3d 77 69 6d 70  |imp%!4:key%=wimp|
00004930  25 21 32 34 0d 1c 7a 1b  c8 8e a4 45 76 65 6e 74  |%!24..z....Event|
00004940  5f 53 61 76 65 28 77 69  6e 64 6f 77 25 29 ca 0d  |_Save(window%)..|
00004950  1c 84 22 c9 b9 3a f2 57  69 6d 70 50 6f 6c 6c 5f  |.."..:.WimpPoll_|
00004960  53 61 76 65 46 69 6c 65  28 77 69 6e 64 6f 77 25  |SaveFile(window%|
00004970  29 0d 1c 8e 2a c9 a3 3a  f2 45 76 65 6e 74 5f 4b  |)...*..:.Event_K|
00004980  65 79 50 72 65 73 73 28  77 69 6e 64 6f 77 25 2c  |eyPress(window%,|
00004990  69 63 6f 6e 25 2c 6b 65  79 25 29 0d 1c 98 05 cb  |icon%,key%).....|
000049a0  0d 1c a2 05 e1 0d 1c ac  1a dd f2 57 69 6d 70 5f  |...........Wimp_|
000049b0  50 6f 6c 6c 53 61 76 65  4d 65 73 73 61 67 65 0d  |PollSaveMessage.|
000049c0  1c b6 1e ea 66 69 6c 65  24 2c 77 69 6e 64 6f 77  |....file$,window|
000049d0  25 2c 69 63 6f 6e 25 2c  78 25 2c 79 25 0d 1c c0  |%,icon%,x%,y%...|
000049e0  22 c8 99 22 57 69 6d 70  5f 47 65 74 50 6f 69 6e  |".."Wimp_GetPoin|
000049f0  74 65 72 49 6e 66 6f 22  2c 2c 77 69 6d 70 25 0d  |terInfo",,wimp%.|
00004a00  1c ca 39 77 69 6e 64 6f  77 25 3d 77 69 6d 70 25  |..9window%=wimp%|
00004a10  21 31 32 3a 69 63 6f 6e  25 3d 77 69 6d 70 25 21  |!12:icon%=wimp%!|
00004a20  31 36 3a 78 25 3d 77 69  6d 70 25 21 30 3a 79 25  |16:x%=wimp%!0:y%|
00004a30  3d 77 69 6d 70 25 21 34  0d 1c d4 38 77 69 6d 70  |=wimp%!4...8wimp|
00004a40  25 21 30 3d 73 61 76 65  25 3a 77 69 6d 70 25 21  |%!0=save%:wimp%!|
00004a50  34 3d 31 3a c8 99 22 57  69 6d 70 5f 47 65 74 49  |4=1:.."Wimp_GetI|
00004a60  63 6f 6e 53 74 61 74 65  22 2c 2c 77 69 6d 70 25  |conState",,wimp%|
00004a70  0d 1c de 15 66 69 6c 65  24 3d 24 28 77 69 6d 70  |....file$=$(wimp|
00004a80  25 21 32 38 29 0d 1c e8  2a 66 69 6c 65 24 3d a4  |%!28)...*file$=.|
00004a90  57 69 6d 70 5f 47 65 74  46 69 6c 65 46 72 6f 6d  |Wimp_GetFileFrom|
00004aa0  50 61 74 68 6e 61 6d 65  28 66 69 6c 65 24 29 0d  |Pathname(file$).|
00004ab0  1c f2 14 77 69 6d 70 25  21 32 30 3d 77 69 6e 64  |...wimp%!20=wind|
00004ac0  6f 77 25 0d 1c fc 12 77  69 6d 70 25 21 32 34 3d  |ow%....wimp%!24=|
00004ad0  69 63 6f 6e 25 0d 1d 06  1b 77 69 6d 70 25 21 32  |icon%....wimp%!2|
00004ae0  38 3d 78 25 3a 77 69 6d  70 25 21 33 32 3d 79 25  |8=x%:wimp%!32=y%|
00004af0  0d 1d 10 14 77 69 6d 70  25 21 33 36 3d 6c 65 6e  |....wimp%!36=len|
00004b00  67 74 68 25 0d 1d 1a 0e  77 69 6d 70 25 21 30 3d  |gth%....wimp%!0=|
00004b10  36 34 0d 1d 24 0e 77 69  6d 70 25 21 31 32 3d 30  |64..$.wimp%!12=0|
00004b20  0d 1d 2e 0e 77 69 6d 70  25 21 31 36 3d 31 0d 1d  |....wimp%!16=1..|
00004b30  38 11 77 69 6d 70 25 21  34 30 3d 26 46 46 46 0d  |8.wimp%!40=&FFF.|
00004b40  1d 42 15 24 28 77 69 6d  70 25 2b 34 34 29 3d 66  |.B.$(wimp%+44)=f|
00004b50  69 6c 65 24 0d 1d 4c 33  c8 99 22 57 69 6d 70 5f  |ile$..L3.."Wimp_|
00004b60  53 65 6e 64 4d 65 73 73  61 67 65 22 2c 31 37 2c  |SendMessage",17,|
00004b70  77 69 6d 70 25 2c 77 69  6d 70 25 21 32 30 2c 77  |wimp%,wimp%!20,w|
00004b80  69 6d 70 25 21 32 34 0d  1d 56 05 e1 0d 1d 60 17  |imp%!24..V....`.|
00004b90  dd f2 57 69 6d 70 5f 50  6f 6c 6c 4d 65 73 73 61  |..Wimp_PollMessa|
00004ba0  67 65 73 0d 1d 6a 0a ea  66 69 6c 65 24 0d 1d 74  |ges..j..file$..t|
00004bb0  2c 66 69 6c 65 24 3d a4  57 69 6d 70 5f 47 65 74  |,file$=.Wimp_Get|
00004bc0  53 74 72 69 6e 67 41 74  41 64 64 72 65 73 73 28  |StringAtAddress(|
00004bd0  77 69 6d 70 25 2b 34 34  29 0d 1d 7e 0f c8 8e 77  |wimp%+44)..~...w|
00004be0  69 6d 70 25 21 31 36 ca  0d 1d 88 12 c9 30 3a 66  |imp%!16......0:f|
00004bf0  69 6e 69 73 68 65 64 25  3d b9 0d 1d 92 06 c9 31  |inished%=......1|
00004c00  0d 1d 9c 06 c9 32 0d 1d  a6 38 77 69 6d 70 25 21  |.....2...8wimp%!|
00004c10  30 3d 73 61 76 65 25 3a  77 69 6d 70 25 21 34 3d  |0=save%:wimp%!4=|
00004c20  31 3a c8 99 22 57 69 6d  70 5f 47 65 74 49 63 6f  |1:.."Wimp_GetIco|
00004c30  6e 53 74 61 74 65 22 2c  2c 77 69 6d 70 25 0d 1d  |nState",,wimp%..|
00004c40  b0 15 24 28 77 69 6d 70  25 21 32 38 29 3d 66 69  |..$(wimp%!28)=fi|
00004c50  6c 65 24 0d 1d ba 30 77  69 6d 70 25 21 30 3d 73  |le$...0wimp%!0=s|
00004c60  61 76 65 25 3a 77 69 6d  70 25 21 34 3d 31 3a 77  |ave%:wimp%!4=1:w|
00004c70  69 6d 70 25 21 38 3d 30  3a 77 69 6d 70 25 21 31  |imp%!8=0:wimp%!1|
00004c80  32 3d 30 0d 1d c4 20 c8  99 22 57 69 6d 70 5f 53  |2=0... .."Wimp_S|
00004c90  65 74 49 63 6f 6e 53 74  61 74 65 22 2c 2c 77 69  |etIconState",,wi|
00004ca0  6d 70 25 0d 1d ce 31 c8  99 22 57 69 6d 70 5f 53  |mp%...1.."Wimp_S|
00004cb0  65 74 43 61 72 65 74 50  6f 73 69 74 69 6f 6e 22  |etCaretPosition"|
00004cc0  2c 73 61 76 65 25 2c 31  2c 2c 2c 2d 31 2c a9 66  |,save%,1,,,-1,.f|
00004cd0  69 6c 65 24 0d 1d d8 20  f2 45 76 65 6e 74 5f 53  |ile$... .Event_S|
00004ce0  61 76 65 46 69 6c 65 28  66 69 6c 65 24 2c 73 61  |aveFile(file$,sa|
00004cf0  76 65 25 29 0d 1d e2 06  c9 33 0d 1d ec 3f 74 79  |ve%).....3...?ty|
00004d00  70 65 24 3d a4 57 69 6d  70 5f 46 69 6c 65 54 79  |pe$=.Wimp_FileTy|
00004d10  70 65 28 77 69 6d 70 25  21 34 30 29 3a f2 45 76  |pe(wimp%!40):.Ev|
00004d20  65 6e 74 5f 4c 6f 61 64  46 69 6c 65 28 66 69 6c  |ent_LoadFile(fil|
00004d30  65 24 2c 74 79 70 65 24  29 0d 1d f6 05 cb 0d 1e  |e$,type$).......|
00004d40  00 05 e1 0d 1e 0a 25 dd  a4 57 69 6d 70 5f 47 65  |......%..Wimp_Ge|
00004d50  74 53 74 72 69 6e 67 41  74 41 64 64 72 65 73 73  |tStringAtAddress|
00004d60  28 61 72 72 61 79 25 29  0d 1e 14 0d ea 73 24 3a  |(array%).....s$:|
00004d70  73 24 3d 22 22 0d 1e 1e  3b c8 95 28 3f 61 72 72  |s$=""...;..(?arr|
00004d80  61 79 25 3c 3e 31 33 29  80 28 3f 61 72 72 61 79  |ay%<>13).(?array|
00004d90  25 3c 3e 30 29 3a 73 24  2b 3d bd 28 3f 61 72 72  |%<>0):s$+=.(?arr|
00004da0  61 79 25 29 3a 61 72 72  61 79 25 2b 3d 31 3a ce  |ay%):array%+=1:.|
00004db0  0d 1e 28 07 3d 73 24 0d  1e 32 22 dd a4 57 69 6d  |..(.=s$..2"..Wim|
00004dc0  70 5f 47 65 74 46 69 6c  65 46 72 6f 6d 50 61 74  |p_GetFileFromPat|
00004dd0  68 6e 61 6d 65 28 66 24  29 0d 1e 3c 0f c8 8e a7  |hname(f$)..<....|
00004de0  66 24 2c 22 2e 22 29 ca  0d 1e 46 0a c9 30 3a 3d  |f$,".")...F..0:=|
00004df0  66 24 0d 1e 50 35 7f 3a  3d a4 57 69 6d 70 5f 47  |f$..P5.:=.Wimp_G|
00004e00  65 74 46 69 6c 65 46 72  6f 6d 50 61 74 68 6e 61  |etFileFromPathna|
00004e10  6d 65 28 c2 66 24 2c a9  28 66 24 29 2d a7 66 24  |me(.f$,.(f$)-.f$|
00004e20  2c 22 2e 22 29 29 29 0d  1e 5a 05 cb 0d 1e 64 1a  |,".")))..Z....d.|
00004e30  dd a4 57 69 6d 70 5f 46  69 6c 65 54 79 70 65 28  |..Wimp_FileType(|
00004e40  74 79 70 65 25 29 0d 1e  6e 0c c8 8e 74 79 70 65  |type%)..n...type|
00004e50  25 ca 0d 1e 78 11 c9 26  46 46 46 3a 3d 22 54 65  |%...x..&FFF:="Te|
00004e60  78 74 22 0d 1e 82 11 c9  26 46 46 44 3a 3d 22 44  |xt".....&FFD:="D|
00004e70  61 74 61 22 0d 1e 8c 12  c9 26 46 46 42 3a 3d 22  |ata".....&FFB:="|
00004e80  42 61 73 69 63 22 0d 1e  96 13 c9 26 46 46 39 3a  |Basic".....&FF9:|
00004e90  3d 22 53 70 72 69 74 65  22 0d 1e a0 14 c9 26 46  |="Sprite".....&F|
00004ea0  45 44 3a 3d 22 50 61 6c  65 74 74 65 22 0d 1e aa  |ED:="Palette"...|
00004eb0  15 c9 26 46 45 43 3a 3d  22 54 65 6d 70 6c 61 74  |..&FEC:="Templat|
00004ec0  65 22 0d 1e b4 11 c9 26  41 46 46 3a 3d 22 44 72  |e".....&AFF:="Dr|
00004ed0  61 77 22 0d 1e be 14 c9  26 31 30 30 30 3a 3d 22  |aw".....&1000:="|
00004ee0  46 6f 6c 64 65 72 22 0d  1e c8 19 c9 26 32 30 30  |Folder".....&200|
00004ef0  30 3a 3d 22 41 70 70 6c  69 63 61 74 69 6f 6e 22  |0:="Application"|
00004f00  0d 1e d2 0f 7f 3d c3 7e  28 74 79 70 65 25 29 0d  |.....=.~(type%).|
00004f10  1e dc 05 cb 0d 1e e6 38  dd f2 73 68 65 6c 6c 5f  |.......8..shell_|
00004f20  57 69 6e 64 6f 77 52 65  73 69 7a 65 28 77 68 61  |WindowResize(wha|
00004f30  6e 64 6c 65 25 2c 62 78  25 2c 62 79 25 2c 74 78  |ndle%,bx%,by%,tx|
00004f40  25 2c 74 79 25 2c 6f 70  65 6e 25 29 0d 1e f0 2b  |%,ty%,open%)...+|
00004f50  21 5f 51 25 3d 62 78 25  3a 5f 51 25 21 34 3d 62  |!_Q%=bx%:_Q%!4=b|
00004f60  79 25 3a 5f 51 25 21 38  3d 74 78 25 3a 5f 51 25  |y%:_Q%!8=tx%:_Q%|
00004f70  21 31 32 3d 74 79 25 0d  1e fa 23 c8 99 22 57 69  |!12=ty%...#.."Wi|
00004f80  6d 70 5f 53 65 74 45 78  74 65 6e 74 22 2c 77 68  |mp_SetExtent",wh|
00004f90  61 6e 64 6c 65 25 2c 5f  51 25 0d 1f 04 0b e7 6f  |andle%,_Q%.....o|
00004fa0  70 65 6e 25 8c 0d 1f 0e  12 5f 51 25 21 30 3d 77  |pen%....._Q%!0=w|
00004fb0  68 61 6e 64 6c 65 25 0d  1f 18 1f c8 99 22 57 69  |handle%......"Wi|
00004fc0  6d 70 5f 47 65 74 57 69  6e 64 6f 77 49 6e 66 6f  |mp_GetWindowInfo|
00004fd0  22 2c 2c 5f 51 25 0d 1f  22 1c c8 99 22 57 69 6d  |",,_Q%.."..."Wim|
00004fe0  70 5f 4f 70 65 6e 57 69  6e 64 6f 77 22 2c 2c 5f  |p_OpenWindow",,_|
00004ff0  51 25 0d 1f 2c 05 cd 0d  1f 36 05 e1 0d ff        |Q%..,....6....|
00004ffe