Home » Archimedes archive » Micro User » MU 1991-11.adf » PD-stuff » !ScrSave/!RUNIMAGE

!ScrSave/!RUNIMAGE

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

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

Tape/disk: Home » Archimedes archive » Micro User » MU 1991-11.adf » PD-stuff
Filename: !ScrSave/!RUNIMAGE
Read OK:
File size: 2852 bytes
Load address: 0000
Exec address: 0000
Duplicates

There is 1 duplicate copy of this file in the archive:

File contents
   10REM------------------------------------------------------------------------
   20REM                              !ScrSave
   30REM                                v1.00
   40REM
   50REM                      By Glyn Davies August 1991
   60REM                          Desktop screensaver
   70REM                          (With a difference)
   80REM------------------------------------------------------------------------
   90REM
  100REM
  110ON ERROR REPORT:PRINT "at line ";ERL;" error number ";ERR:END
  120:
  130REM set flags
  140:
  150quit%=FALSE
  160blank%=FALSE
  170:
  180REM reserve space
  190:
  200DIM q% 1024*2
  210DIM iconspace 2048:lefticonspace=iconspace
  220DIM buf% 32
  230:
  240REM Okay now that everything is prepared, let's see some action
  250:
  260$q%="TASK"
  270SYS "Wimp_Initialise",200,!q%,"!ScrSave" TO version%,task_handle%
  280IF version%<200 THEN ERROR 255,NOT RISC OS v2 OR ABOVE
  290:
  300REM Now load window templates, and sort them out
  310:
  320PROCwindows
  330:
  340REM Time to prepare the menus
  350:
  360PROCmenus
  370REM set variables
  380:
  390PROCload_status
  400:
  410:
  420REM Wimp here we come!!!
  430:
  440ibhandle=FNiconbar("!ScrSave")
  450:
  460ON ERROR IF FNwimperror THEN END
  470:
  480REM------------------------------------------------------------------------
  490:
  500REPEAT
  510:
  520REM The main loop -  \/  -
  530:
  540REPEAT
  550PROCpoll_the_wimp
  560UNTIL quit%=TRUE
  570:
  580REM exit selected
  590REM are you sure?
  600**ERROR 255 Are you sure you want to quit !ScrSave
  610UNTIL FALSE
  620:
  630REM------------------------------------------------------------------------
  640REM PROC's and FN's follow
  650:
  660REM Wimp error handler
  670DEF FNwimperror
  680IF blank% THEN SYS"Wimp_SetMode",oldmode
  690*CLOSE
  700IF NOT status% THEN
  710hours%=0:minutes%=10:seconds%=0:active%=TRUE:idle%=FALSE
  720PROCset_them
  730ENDIF
  740!q%=ERR
  750IF ERR=67786 THEN
  760$(q%+4)="Trouble in saving status file (Cancel quits!)"+CHR$(0)
  770ELSE
  780$(q%+4)=REPORT$+" (Cancel quits!)"+CHR$(0)
  790ENDIF
  800SYS "Wimp_ReportError",q%,&17,"!ScrSave" TO ,response%
  810IF response%=2 THEN PROCendwimp:=TRUE:ELSE quit%=FALSE:: =FALSE
  820:
  830REM Goodbye Wimp!
  840DEF PROCendwimp
  850$q%="TASK"
  860SYS "Wimp_CloseDown",task_handle%,q%
  870*UNSET ScrSave$Dir
  880ENDPROC
  890:
  900REM------------------------------------------------------------------------
  910:
  920REM Template Handlers
  930:
  940REM Load template
  950DEF FNtemplate(id$)
  960LOCAL temphand,pos
  970SYS "Wimp_LoadTemplate",,q%,lefticonspace,iconspace+4096,-1,id$,0 TO ,,lefticonspace,,,,pos
  980IF pos=0 THEN ERROR 255,id$+" template not found"
  990SYS "Wimp_CreateWindow",,q% TO temphandle
 1000=temphandle
 1010:
 1020REM The template selector
 1030DEFPROCwindows
 1040SYS "Wimp_OpenTemplate",,"<ScrSave$Dir>.Templates"
 1050info=FNtemplate("Info")
 1060notify=FNtemplate("Adjust")
 1070SYS "Wimp_CloseTemplate"
 1080ENDPROC
 1090:
 1100REM------------------------------------------------------------------------
 1110:
 1120REM Menus:
 1130:
 1140DEF PROCmenus
 1150DIM iconm 1024
 1160PROCinit_menu("!ScrSave",iconm)
 1170PROCmenu_item("Info",0,info)
 1180PROCmenu_item("Active",3,-2)
 1190PROCmenu_item("Save",0,-2)
 1200PROCmenu_item("Poll Idle",0,-2)
 1210PROCmenu_item("Quit",&80,-2)
 1220ENDPROC
 1230:
 1240DEFPROCinit_menu(Title$,M%)
 1250L%=LEN(Title$)+1
 1260$M%=Title$
 1270M%?12=7
 1280M%?13=2
 1290M%?14=6
 1300M%?15=0
 1310M%!16=(L%+1)*16
 1320M%!20=40
 1330M%!24=0
 1340P%=M%+28
 1350ENDPROC
 1360:
 1370DEFPROCmenu_item(Text$,flags%,link%)
 1380P%!0=flags%AND255
 1390P%!4=link%
 1400P%!8=&07003021
 1410$(P%+12)=Text$
 1420P%+=24
 1430IF LEN(Text$)>L% THEN L%=LEN(Text$)+1:M%!16=(L%+1)*16
 1440ENDPROC
 1450:
 1460DEFPROCshowmenu(address)
 1470q%!0=q%!0-48
 1480IF q%!0<0 THEN q%!0=0
 1490IF q%!4<124+92 THEN q%!4=124+92
 1500SYS "Wimp_CreateMenu",,address,q%!0-48,q%!4
 1510currentmenu=address
 1520ENDPROC
 1530:
 1540REM------------------------------------------------------------------------
 1550:
 1560REM Icon bar
 1570:
 1580DEF FNiconbar(n$)
 1590q%!0=-1
 1600q%!4=0
 1610q%!8=0
 1620q%!12=68
 1630q%!16=68
 1640q%!20=%0011000000011010
 1650$(q%+24)=n$
 1660SYS "Wimp_CreateIcon",,q% TO ibhandle
 1670=ibhandle
 1680:
 1690REM------------------------------------------------------------------------
 1700:
 1710REM Poll
 1720DEF PROCpoll_the_wimp
 1730IF idle%=TRUE THEN
 1740SYS "Wimp_PollIdle",0,q% TO action%
 1750ELSE
 1760SYS "Wimp_Poll",0,q% TO action%
 1770ENDIF
 1780CASE action% OF
 1790WHEN 0: REM Null
 1800WHEN 1: REM Re draw window
 1810WHEN 2: SYS "Wimp_OpenWindow",,q%
 1820WHEN 3: SYS "Wimp_CloseWindow",,q%
 1830WHEN 4: alarm_time%=FNatime: REM Mouse just entered window
 1840WHEN 5: alarm_time%=FNatime: REM Mouse just left window
 1850WHEN 6: PROCmouse:alarm_time%=FNatime: REM Mouse buttons have changed state
 1860WHEN 7: REM User has just finished box drag operation
 1870WHEN 8: alarm_time%=FNatime: REM A key has been pressed on the keyboard
 1880WHEN 9: alarm_time%=FNatime: PROCdecmenu :REM Menu option has been selected
 1890WHEN10: alarm_time%=FNatime: REM request to scroll user graphics in work
 1900REM                              area
 1910REM 11 --> 16 I don't know about, I can't afford the reference manuals!
 1920REM hell, I don't even own an Arc!!!
 1930WHEN17,18: PROCmessage :alarm_time%=FNatime: REM incoming message!!
 1940ENDCASE
 1950IF alarm_time%<=FNctime AND active%=TRUE THEN PROCalarm
 1960ENDPROC
 1970:
 1980REM------------------------------------------------------------------------
 1990:
 2000REM Execute poll requests
 2010:
 2020REM Mouse buttons
 2030DEF PROCmouse
 2040CASE q%!12 OF
 2050WHEN -2: REM click on iconbar
 2060IF q%!16=ibhandle THEN
 2070                      :IF (q%!8 AND 1)=1 THEN :PROCOpenWindow(notify):REM Adjust
 2080                      :IF (q%!8 AND 2)=2 THEN :PROCshowmenu(iconm):REM Menu
 2090                      :IF (q%!8 AND 4)=4 THEN :PROCOpenWindow(notify):REM Select
 2100ENDIF
 2110WHEN notify: REM click on our adjust window
 2120:
 2130 CASE q%!16 OF
 2140 REM icon number
 2150:
 2160WHEN 1:PROChour(1)
 2170WHEN 2:PROChour(-1)
 2180WHEN 8:PROCmin(1)
 2190WHEN 4:PROCmin(-1)
 2200WHEN 9:PROCsec(1)
 2210WHEN 5:PROCsec(-1)
 2220ENDCASE
 2230:
 2240ENDCASE
 2250ENDPROC
 2260:
 2270REM------------------------------------------------------------------------
 2280:
 2290REM Decode the menus
 2300DEF PROCdecmenu
 2310LOCAL item$,adjust
 2320SYS "Wimp_DecodeMenu",,currentmenu,q%,buf%
 2330SYS "Wimp_GetPointerInfo",,q%
 2340item$=$buf%
 2350CASE item$ OF
 2360WHEN "Quit":quit%=TRUE
 2370WHEN "Save":PROCsave_status
 2380WHEN "Active"
 2390active%=NOTactive%
 2400PROCtoggleactive
 2410WHEN "Poll Idle"
 2420idle%=NOTidle%
 2430PROCtoggleidle
 2440ENDCASE
 2450REM Check Adjust \/
 2460IF (q%!8 AND 1)=1 THEN PROCshowmenu(currentmenu)
 2470ENDPROC
 2480:
 2490REM------------------------------------------------------------------------
 2500:
 2510REM Toggles
 2520REM ie Active Y/N and Poll Idle Y/N
 2530DEF PROCtoggleactive
 2540LOCAL flag
 2550flag=iconm!(28+1*24)
 2560IF active% THEN flag=flag OR &00000001 ELSE flag=flag AND &FFFFFFFE
 2570iconm!(28+1*24)=flag
 2580ENDPROC
 2590:
 2600DEF PROCtoggleidle
 2610LOCAL flag
 2620flag=iconm!(28+3*24)
 2630IF idle%  THEN flag=flag OR &00000001 ELSE flag=flag AND &FFFFFFFE
 2640iconm!(28+3*24)=flag
 2650ENDPROC
 2660:
 2670REM------------------------------------------------------------------------
 2680:
 2690REM Brrr brrr, brrr , Yes messages
 2700:
 2710DEF PROCmessage
 2720CASE q%!16 OF
 2730WHEN 0:quit%=TRUE
 2740WHEN 3:REM drag taken place
 2750WHEN 5:REM double click taken place
 2760ENDCASE
 2770ENDPROC
 2780:
 2790REM------------------------------------------------------------------------
 2800:
 2810REM Window and icon routines
 2820:
 2830DEF PROCOpenWindow(handle%)
 2840q%!0=handle%
 2850SYS "Wimp_GetWindowState",,q%:q%!28=-1
 2860SYS "Wimp_OpenWindow",,q%
 2870ENDPROC
 2880:
 2890REM PROC's AND FN's which handle what goes into the Adjust window
 2900:
 2910DEF PROCputicontext(window%,icon%,text$)
 2920q%!0=window%:q%!4=icon%
 2930SYS "Wimp_GetIconState",,q%
 2940$(q%!28)=text$
 2950q%!0=window%:q%!4=icon%:q%!8=0:q%!12=0
 2960SYS "Wimp_SetIconState",,q%
 2970ENDPROC
 2980:
 2990DEF FNgeticontext(window%,icon%)
 3000q%!0=window%:q%!4=icon%
 3010SYS "Wimp_GetIconState",,q%
 3020x0%=q%!8:y0%=q%!12:x1%=q%!16:y1%=q%!20
 3030flags%=q%!24
 3040IF (flags% AND &100)>0 THEN
 3050data$=$q%!28
 3060ELSE
 3070data$=$(q%+28)
 3080ENDIF
 3090=data$
 3100:
 3110REM------------------------------------------------------------------------
 3120:
 3130REM The routines which alter the icons when clicked accordingly
 3140:
 3150REM Hours
 3160DEFPROChour(data%)
 3170b%=VAL( FNgeticontext(notify,3))
 3180b%=b%+data%
 3190IF b%<0 THEN b%=2
 3200IF b%>2 THEN b%=0
 3210hours%=b%
 3220PROCputicontext(notify,3,STR$(b%))
 3230SYS "Wimp_ForceRedraw",notify,x0%,y0%,x1%,y1%
 3240ENDPROC
 3250;
 3260REM Minutes
 3270DEFPROCmin(data%)
 3280b%=VAL( FNgeticontext(notify,6))
 3290b%=b%+data%
 3300IF b%<0 THEN b%=59
 3310IF b%>59 THEN b%=0
 3320minutes%=b%
 3330PROCputicontext(notify,6,STR$(b%))
 3340SYS "Wimp_ForceRedraw",notify,x0%,y0%,x1%,y1%
 3350ENDPROC
 3360;
 3370REM Secs
 3380DEFPROCsec(data%)
 3390b%=VAL( FNgeticontext(notify,7))
 3400b%=b%+data%
 3410IF b%<0 THEN b%=59
 3420IF b%>59 THEN b%=0
 3430seconds%=b%
 3440PROCputicontext(notify,7,STR$(b%))
 3450SYS "Wimp_ForceRedraw",notify,x0%,y0%,x1%,y1%
 3460ENDPROC
 3470:
 3480REM------------------------------------------------------------------------
 3490:
 3500REM Function which returns current time in seconds
 3510:
 3520DEFFNctime
 3530get$=RIGHT$(TIME$,8)
 3540ch%=VAL(LEFT$(get$,2))
 3550cm%=VAL(MID$(get$,4,2))
 3560cs%=VAL(RIGHT$(get$,2))
 3570cm%+=(ch%*60)
 3580cs%+=(cm%*60)
 3590=cs%
 3600:
 3610REM Function which returns shutdown time in seconds
 3620REM (called whenever something happens)
 3630REM or mouse is moved, key pressed, etc
 3640DEFFNatime
 3650as%=seconds%
 3660as%+=((hours%*60)*60)
 3670as%+=(minutes%*60)
 3680=(as%+FNctime)
 3690:
 3700REM------------------------------------------------------------------------
 3710:
 3720DEF PROCalarm
 3730REM time to save the screen
 3740oldmode=MODE
 3750MOUSE x,y,z
 3760WAIT
 3770MOUSE xx,yy,zz
 3780IF x<>xx OR y<>yy OR z<>zz OR INKEY$(10)<>""THEN
 3790alarm_time=FNatime
 3800ENDPROC
 3810ENDIF
 3820REM final checks over
 3830maxX=1280:maxY=1024
 3840maxX=maxX-71:maxY=maxY-71
 3850SYS "Wimp_BaseOfSprites" TO ,iconsprite%
 3860MODE 12
 3870blank%=TRUE
 3880OFF
 3890x=RND(maxX):y=RND(maxY)
 3900MOUSE mx%,my%,mz%
 3910left=FALSE:down=FALSE
 3920exit=FALSE
 3930PROCpalette
 3940REPEAT
 3950PROCtestsyst
 3960IF exit=FALSE THEN
 3970IF left=TRUE THEN
 3980PROCleft
 3990ELSE
 4000PROCright
 4010ENDIF
 4020IF down=TRUE THEN
 4030PROCdown
 4040ELSE
 4050PROCup
 4060ENDIF
 4070WAIT
 4080PROCplot(x,y)
 4090ENDIF
 4100UNTIL exit=TRUE
 4110ON
 4120SYS "Wimp_SetMode",oldmode
 4130blank%=FALSE
 4140alarm_time%=FNatime
 4150ENDPROC
 4160:
 4170DEFPROCplot(x,y)
 4180SYS &002E,290,iconsprite%,"ball",x,y
 4190oldx=x:oldy=y
 4200ENDPROC
 4210:
 4220DEFPROCleft
 4230x=x-8
 4240IF x<0 THEN left=FALSE
 4250ENDPROC
 4260:
 4270DEFPROCright
 4280x=x+8
 4290IF x>=maxX-71 THEN left=TRUE
 4300ENDPROC
 4310:
 4320DEFPROCup
 4330y=y+8
 4340IF y>=maxY-71 THEN down=TRUE
 4350ENDPROC
 4360:
 4370DEFPROCdown
 4380y=y-8
 4390IF y<=0 THEN down=FALSE
 4400ENDPROC
 4410:
 4420REM Used to test keys and mouse
 4430DEFPROCtestsyst
 4440SYS &0001C TOnx,ny,nz
 4450IF nx<>mx% OR ny<>my% OR nz<>mz% THEN exit=TRUE
 4460IF INKEY$(3)<>"" THEN exit=TRUE
 4470ENDPROC
 4480:
 4490REM Palette setting
 4500DEF PROCpalette
 4510VDU 19,6,1,0,0,0
 4520ENDPROC
 4530:
 4540DEFPROCsave_status
 4550file%=OPENOUT("<ScrSave$Dir>.Status")
 4560PRINT#file%,hours%,minutes%,seconds%,active%,idle%
 4570CLOSE#file%
 4580ENDPROC
 4590:
 4600DEFPROCload_status
 4610status%=FALSE
 4620file%=OPENIN("<ScrSave$Dir>.Status")
 4630IF file%=0 THEN
 4640hours%=0
 4650minutes%=10
 4660seconds%=0
 4670active%=TRUE
 4680idle%=TRUE
 4690ELSE
 4700INPUT#file%,hours%,minutes%,seconds%,active%,idle%
 4710IFactive%=FALSE THEN PROCtoggleactive
 4720IFidle%=TRUE THEN PROCtoggleidle
 4730ENDIF
 4740CLOSE#file%
 4750alarm_time%=FNatime
 4760PROCset_them
 4770status%=TRUE
 4780:
 4790DEFPROCset_them
 4800REM Now set the icons likewise
 4810REM Hours
 4820PROCputicontext(notify,3,STR$(hours%))
 4830REM Minutes
 4840PROCputicontext(notify,6,STR$(minutes%))
 4850REM Seconds
 4860PROCputicontext(notify,7,STR$(seconds%))
 4870ENDPROC

M�------------------------------------------------------------------------
+�                              !ScrSave
*�                                v1.00
(�
25�                      By Glyn Davies August 1991
<2�                          Desktop screensaver
F2�                          (With a difference)
PM�------------------------------------------------------------------------
Z�
d�
n-� � �:� "at line ";�;" error number ";�:�
x:
�� set flags
�:
�quit%=�
�blank%=�
�:
�� reserve space
�:
�� q% 1024*2
�,� iconspace 2048:lefticonspace=iconspace
�
� buf% 32
�:
�A� Okay now that everything is prepared, let's see some action
�:
$q%="TASK"
Cș "Wimp_Initialise",200,!q%,"!ScrSave" � version%,task_handle%
/� version%<200 � � 255,� RISC OS v2 � ABOVE
":
,2� Now load window templates, and sort them out
6:
@�windows
J:
T� Time to prepare the menus
^:
h
�menus
r� set variables
|:
��load_status
�:
�:
�� Wimp here we come!!!
�:
�!ibhandle=�iconbar("!ScrSave")
�:
�� � � �wimperror � �
�:
�M�------------------------------------------------------------------------
�:
��
�:
� The main loop -  \/  -
:
�
&�poll_the_wimp
0
� quit%=�
::
D� exit selected
N� are you sure?
X6**ERROR 255 Are you sure you want to quit !ScrSave
b� �
l:
vM�------------------------------------------------------------------------
�� PROC's and FN's follow
�:
�� Wimp error handler
�� �wimperror
�'� blank% � ș"Wimp_SetMode",oldmode
�
*CLOSE
�� � status% �
�5hours%=0:minutes%=10:seconds%=0:active%=�:idle%=�
�
�set_them
��
�	!q%=�
�� �=67786 �
�@$(q%+4)="Trouble in saving status file (Cancel quits!)"+�(0)
�
&$(q%+4)=�$+" (Cancel quits!)"+�(0)
�
 8ș "Wimp_ReportError",q%,&17,"!ScrSave" � ,response%
*.� response%=2 � �endwimp:=�:� quit%=�:: =�
4:
>� Goodbye Wimp!
H� �endwimp
R$q%="TASK"
\'ș "Wimp_CloseDown",task_handle%,q%
f*UNSET ScrSave$Dir
p�
z:
�M�------------------------------------------------------------------------
�:
�� Template Handlers
�:
�� Load template
�� �template(id$)
�� temphand,pos
�]ș "Wimp_LoadTemplate",,q%,lefticonspace,iconspace+4096,-1,id$,0 � ,,lefticonspace,,,,pos
�-� pos=0 � � 255,id$+" template not found"
�+ș "Wimp_CreateWindow",,q% � temphandle
�=temphandle
�:
�� The template selector

��windows
5ș "Wimp_OpenTemplate",,"<ScrSave$Dir>.Templates"
info=�template("Info")
$notify=�template("Adjust")
.ș "Wimp_CloseTemplate"
8�
B:
LM�------------------------------------------------------------------------
V:
`� Menus:
j:
t� �menus
~� iconm 1024
� �init_menu("!ScrSave",iconm)
��menu_item("Info",0,info)
��menu_item("Active",3,-2)
��menu_item("Save",0,-2)
� �menu_item("Poll Idle",0,-2)
��menu_item("Quit",&80,-2)
��
�:
���init_menu(Title$,M%)
�L%=�(Title$)+1
�$M%=Title$
�M%?12=7
M%?13=2

M%?14=6
M%?15=0
M%!16=(L%+1)*16
(M%!20=40
2M%!24=0
<P%=M%+28
F�
P:
Z#��menu_item(Text$,flags%,link%)
dP%!0=flags%�255
nP%!4=link%
xP%!8=&07003021
�$(P%+12)=Text$
�
P%+=24
�1� �(Text$)>L% � L%=�(Text$)+1:M%!16=(L%+1)*16
��
�:
���showmenu(address)
�q%!0=q%!0-48
�� q%!0<0 � q%!0=0
�� q%!4<124+92 � q%!4=124+92
�.ș "Wimp_CreateMenu",,address,q%!0-48,q%!4
�currentmenu=address
��
�:
M�------------------------------------------------------------------------
:
� Icon bar
":
,� �iconbar(n$)
6q%!0=-1
@
q%!4=0
J
q%!8=0
Tq%!12=68
^q%!16=68
hq%!20=%0011000000011010
r$(q%+24)=n$
|'ș "Wimp_CreateIcon",,q% � ibhandle
�
=ibhandle
�:
�M�------------------------------------------------------------------------
�:
�
� Poll
�� �poll_the_wimp
�� idle%=� �
�%ș "Wimp_PollIdle",0,q% � action%
��
�!ș "Wimp_Poll",0,q% � action%
��
�Ȏ action% �
�� 0: � Null
� 1: � Re draw window
!� 2: ș "Wimp_OpenWindow",,q%
"� 3: ș "Wimp_CloseWindow",,q%
&8� 4: alarm_time%=�atime: � Mouse just entered window
05� 5: alarm_time%=�atime: � Mouse just left window
:F� 6: �mouse:alarm_time%=�atime: � Mouse buttons have changed state
D4� 7: � User has just finished box drag operation
NE� 8: alarm_time%=�atime: � A key has been pressed on the keyboard
XF� 9: alarm_time%=�atime: �decmenu :� Menu option has been selected
bF�10: alarm_time%=�atime: � request to scroll user graphics in work
l'�                              area
vI� 11 --> 16 I don't know about, I can't afford the reference manuals!
�&� hell, I don't even own an Arc!!!
�>�17,18: �message :alarm_time%=�atime: � incoming message!!
��
�.� alarm_time%<=�ctime � active%=� � �alarm
��
�:
�M�------------------------------------------------------------------------
�:
�� Execute poll requests
�:
�� Mouse buttons
�� �mouse
�Ȏ q%!12 �
� -2: � click on iconbar
� q%!16=ibhandle �
I                      :� (q%!8 � 1)=1 � :�OpenWindow(notify):� Adjust
 D                      :� (q%!8 � 2)=2 � :�showmenu(iconm):� Menu
*I                      :� (q%!8 � 4)=4 � :�OpenWindow(notify):� Select
4�
>*� notify: � click on our adjust window
H:
R Ȏ q%!16 �
\ � icon number
f:
p� 1:�hour(1)
z� 2:�hour(-1)
�� 8:�min(1)
�� 4:�min(-1)
�� 9:�sec(1)
�� 5:�sec(-1)
��
�:
��
��
�:
�M�------------------------------------------------------------------------
�:
�� Decode the menus
�� �decmenu
	� item$,adjust
	-ș "Wimp_DecodeMenu",,currentmenu,q%,buf%
	 ș "Wimp_GetPointerInfo",,q%
	$item$=$buf%
	.Ȏ item$ �
	8� "Quit":quit%=�
	B� "Save":�save_status
	L� "Active"
	Vactive%=�active%
	`�toggleactive
	j� "Poll Idle"
	tidle%=�idle%
	~�toggleidle
	��
	�� Check Adjust \/
	�+� (q%!8 � 1)=1 � �showmenu(currentmenu)
	��
	�:
	�M�------------------------------------------------------------------------
	�:
	�
� Toggles
	�%� ie Active Y/N and Poll Idle Y/N
	�� �toggleactive
	�
� flag
	�flag=iconm!(28+1*24)
=� active% � flag=flag � &00000001 � flag=flag � &FFFFFFFE

iconm!(28+1*24)=flag
�
:
(� �toggleidle
2
� flag
<flag=iconm!(28+3*24)
F<� idle%  � flag=flag � &00000001 � flag=flag � &FFFFFFFE
Piconm!(28+3*24)=flag
Z�
d:
nM�------------------------------------------------------------------------
x:
�$� Brrr brrr, brrr , Yes messages
�:
�� �message
�Ȏ q%!16 �
�� 0:quit%=�
�� 3:� drag taken place
�"� 5:� double click taken place
��
��
�:
�M�------------------------------------------------------------------------
�:
�� Window and icon routines
:
� �OpenWindow(handle%)
q%!0=handle%
")ș "Wimp_GetWindowState",,q%:q%!28=-1
,ș "Wimp_OpenWindow",,q%
6�
@:
JC� PROC's AND FN's which handle what goes into the Adjust window
T:
^'� �puticontext(window%,icon%,text$)
hq%!0=window%:q%!4=icon%
rș "Wimp_GetIconState",,q%
|$(q%!28)=text$
�*q%!0=window%:q%!4=icon%:q%!8=0:q%!12=0
�ș "Wimp_SetIconState",,q%
��
�:
�!� �geticontext(window%,icon%)
�q%!0=window%:q%!4=icon%
�ș "Wimp_GetIconState",,q%
�*x0%=q%!8:y0%=q%!12:x1%=q%!16:y1%=q%!20
�flags%=q%!24
�� (flags% � &100)>0 �
�data$=$q%!28
��
�data$=$(q%+28)
�

=data$
:
&M�------------------------------------------------------------------------
0:
:A� The routines which alter the icons when clicked accordingly
D:
N� Hours
X��hour(data%)
b!b%=�( �geticontext(notify,3))
lb%=b%+data%
v� b%<0 � b%=2
�� b%>2 � b%=0
�
hours%=b%
� �puticontext(notify,3,�(b%))
�0ș "Wimp_ForceRedraw",notify,x0%,y0%,x1%,y1%
��
�;
�
� Minutes
���min(data%)
�!b%=�( �geticontext(notify,6))
�b%=b%+data%
�� b%<0 � b%=59
�� b%>59 � b%=0
�minutes%=b%

 �puticontext(notify,6,�(b%))

0ș "Wimp_ForceRedraw",notify,x0%,y0%,x1%,y1%

�

 ;

*
� Secs

4��sec(data%)

>!b%=�( �geticontext(notify,7))

Hb%=b%+data%

R� b%<0 � b%=59

\� b%>59 � b%=0

fseconds%=b%

p �puticontext(notify,7,�(b%))

z0ș "Wimp_ForceRedraw",notify,x0%,y0%,x1%,y1%

��

�:

�M�------------------------------------------------------------------------

�:

�4� Function which returns current time in seconds

�:

�ݤctime

�get$=‘$,8)

�ch%=�(�get$,2))

�cm%=�(�get$,4,2))

�cs%=�(�get$,2))

�cm%+=(ch%*60)

�cs%+=(cm%*60)
=cs%
:
5� Function which returns shutdown time in seconds
$)� (called whenever something happens)
.)� or mouse is moved, key pressed, etc
8ݤatime
Bas%=seconds%
Las%+=((hours%*60)*60)
Vas%+=(minutes%*60)
`=(as%+�ctime)
j:
tM�------------------------------------------------------------------------
~:
�� �alarm
�� time to save the screen
�
oldmode=�
�ȗ x,y,z
�Ȗ
�ȗ xx,yy,zz
�(� x<>xx � y<>yy � z<>zz � �(10)<>""�
�alarm_time=�atime
��
��
�� final checks over
�maxX=1280:maxY=1024
maxX=maxX-71:maxY=maxY-71

*ș "Wimp_BaseOfSprites" � ,iconsprite%
� 12
blank%=�
(�
2x=�(maxX):y=�(maxY)
<ȗ mx%,my%,mz%
Fleft=�:down=�
P
exit=�
Z�palette
d�
n
�testsyst
x� exit=� �
�� left=� �
�	�left
��
�
�right
��
�� down=� �
�	�down
��
��up
��
�Ȗ
��plot(x,y)
��
� exit=�
�
ș "Wimp_SetMode",oldmode
"blank%=�
,alarm_time%=�atime
6�
@:
J��plot(x,y)
T'ș &002E,290,iconsprite%,"ball",x,y
^oldx=x:oldy=y
h�
r:
|
��left
�	x=x-8
�� x<0 � left=�
��
�:
���right
�	x=x+8
�� x>=maxX-71 � left=�
��
�:
���up
�	y=y+8
�� y>=maxY-71 � down=�
��
:

��down
	y=y-8
&� y<=0 � down=�
0�
::
D!� Used to test keys and mouse
N��testsyst
Xș &0001C �nx,ny,nz
b*� nx<>mx% � ny<>my% � nz<>mz% � exit=�
l� �(3)<>"" � exit=�
v�
�:
�� Palette setting
�� �palette
�� 19,6,1,0,0,0
��
�:
���save_status
�#file%=�("<ScrSave$Dir>.Status")
�2�#file%,hours%,minutes%,seconds%,active%,idle%
��#file%
��
�:
���load_status

status%=�
#file%=�("<ScrSave$Dir>.Status")
� file%=0 �
 hours%=0
*minutes%=10
4seconds%=0
>
active%=�
Hidle%=�
R�
\2�#file%,hours%,minutes%,seconds%,active%,idle%
f�active%=� � �toggleactive
p�idle%=� � �toggleidle
z�
��#file%
�alarm_time%=�atime
�
�set_them
�
status%=�
�:
���set_them
� � Now set the icons likewise
�� Hours
�$�puticontext(notify,3,�(hours%))
�
� Minutes
�&�puticontext(notify,6,�(minutes%))
�
� Seconds
�&�puticontext(notify,7,�(seconds%))
�
�
00000000  0d 00 0a 4d f4 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |...M.-----------|
00000010  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00000040  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 0d 00 14  |-------------...|
00000050  2b f4 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |+.              |
00000060  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000070  21 53 63 72 53 61 76 65  0d 00 1e 2a f4 20 20 20  |!ScrSave...*.   |
00000080  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000090  20 20 20 20 20 20 20 20  20 20 20 20 20 76 31 2e  |             v1.|
000000a0  30 30 0d 00 28 05 f4 0d  00 32 35 f4 20 20 20 20  |00..(....25.    |
000000b0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000000c0  20 20 42 79 20 47 6c 79  6e 20 44 61 76 69 65 73  |  By Glyn Davies|
000000d0  20 41 75 67 75 73 74 20  31 39 39 31 0d 00 3c 32  | August 1991..<2|
000000e0  f4 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.               |
000000f0  20 20 20 20 20 20 20 20  20 20 20 44 65 73 6b 74  |           Deskt|
00000100  6f 70 20 73 63 72 65 65  6e 73 61 76 65 72 0d 00  |op screensaver..|
00000110  46 32 f4 20 20 20 20 20  20 20 20 20 20 20 20 20  |F2.             |
00000120  20 20 20 20 20 20 20 20  20 20 20 20 20 28 57 69  |             (Wi|
00000130  74 68 20 61 20 64 69 66  66 65 72 65 6e 63 65 29  |th a difference)|
00000140  0d 00 50 4d f4 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |..PM.-----------|
00000150  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00000180  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 0d 00 5a  |-------------..Z|
00000190  05 f4 0d 00 64 05 f4 0d  00 6e 2d ee 20 85 20 f6  |....d....n-. . .|
000001a0  3a f1 20 22 61 74 20 6c  69 6e 65 20 22 3b 9e 3b  |:. "at line ";.;|
000001b0  22 20 65 72 72 6f 72 20  6e 75 6d 62 65 72 20 22  |" error number "|
000001c0  3b 9f 3a e0 0d 00 78 05  3a 0d 00 82 0f f4 20 73  |;.:...x.:..... s|
000001d0  65 74 20 66 6c 61 67 73  0d 00 8c 05 3a 0d 00 96  |et flags....:...|
000001e0  0b 71 75 69 74 25 3d a3  0d 00 a0 0c 62 6c 61 6e  |.quit%=.....blan|
000001f0  6b 25 3d a3 0d 00 aa 05  3a 0d 00 b4 13 f4 20 72  |k%=.....:..... r|
00000200  65 73 65 72 76 65 20 73  70 61 63 65 0d 00 be 05  |eserve space....|
00000210  3a 0d 00 c8 0f de 20 71  25 20 31 30 32 34 2a 32  |:..... q% 1024*2|
00000220  0d 00 d2 2c de 20 69 63  6f 6e 73 70 61 63 65 20  |...,. iconspace |
00000230  32 30 34 38 3a 6c 65 66  74 69 63 6f 6e 73 70 61  |2048:lefticonspa|
00000240  63 65 3d 69 63 6f 6e 73  70 61 63 65 0d 00 dc 0d  |ce=iconspace....|
00000250  de 20 62 75 66 25 20 33  32 0d 00 e6 05 3a 0d 00  |. buf% 32....:..|
00000260  f0 41 f4 20 4f 6b 61 79  20 6e 6f 77 20 74 68 61  |.A. Okay now tha|
00000270  74 20 65 76 65 72 79 74  68 69 6e 67 20 69 73 20  |t everything is |
00000280  70 72 65 70 61 72 65 64  2c 20 6c 65 74 27 73 20  |prepared, let's |
00000290  73 65 65 20 73 6f 6d 65  20 61 63 74 69 6f 6e 0d  |see some action.|
000002a0  00 fa 05 3a 0d 01 04 0e  24 71 25 3d 22 54 41 53  |...:....$q%="TAS|
000002b0  4b 22 0d 01 0e 43 c8 99  20 22 57 69 6d 70 5f 49  |K"...C.. "Wimp_I|
000002c0  6e 69 74 69 61 6c 69 73  65 22 2c 32 30 30 2c 21  |nitialise",200,!|
000002d0  71 25 2c 22 21 53 63 72  53 61 76 65 22 20 b8 20  |q%,"!ScrSave" . |
000002e0  76 65 72 73 69 6f 6e 25  2c 74 61 73 6b 5f 68 61  |version%,task_ha|
000002f0  6e 64 6c 65 25 0d 01 18  2f e7 20 76 65 72 73 69  |ndle%.../. versi|
00000300  6f 6e 25 3c 32 30 30 20  8c 20 85 20 32 35 35 2c  |on%<200 . . 255,|
00000310  ac 20 52 49 53 43 20 4f  53 20 76 32 20 84 20 41  |. RISC OS v2 . A|
00000320  42 4f 56 45 0d 01 22 05  3a 0d 01 2c 32 f4 20 4e  |BOVE..".:..,2. N|
00000330  6f 77 20 6c 6f 61 64 20  77 69 6e 64 6f 77 20 74  |ow load window t|
00000340  65 6d 70 6c 61 74 65 73  2c 20 61 6e 64 20 73 6f  |emplates, and so|
00000350  72 74 20 74 68 65 6d 20  6f 75 74 0d 01 36 05 3a  |rt them out..6.:|
00000360  0d 01 40 0c f2 77 69 6e  64 6f 77 73 0d 01 4a 05  |..@..windows..J.|
00000370  3a 0d 01 54 1f f4 20 54  69 6d 65 20 74 6f 20 70  |:..T.. Time to p|
00000380  72 65 70 61 72 65 20 74  68 65 20 6d 65 6e 75 73  |repare the menus|
00000390  0d 01 5e 05 3a 0d 01 68  0a f2 6d 65 6e 75 73 0d  |..^.:..h..menus.|
000003a0  01 72 13 f4 20 73 65 74  20 76 61 72 69 61 62 6c  |.r.. set variabl|
000003b0  65 73 0d 01 7c 05 3a 0d  01 86 10 f2 6c 6f 61 64  |es..|.:.....load|
000003c0  5f 73 74 61 74 75 73 0d  01 90 05 3a 0d 01 9a 05  |_status....:....|
000003d0  3a 0d 01 a4 1a f4 20 57  69 6d 70 20 68 65 72 65  |:..... Wimp here|
000003e0  20 77 65 20 63 6f 6d 65  21 21 21 0d 01 ae 05 3a  | we come!!!....:|
000003f0  0d 01 b8 21 69 62 68 61  6e 64 6c 65 3d a4 69 63  |...!ibhandle=.ic|
00000400  6f 6e 62 61 72 28 22 21  53 63 72 53 61 76 65 22  |onbar("!ScrSave"|
00000410  29 0d 01 c2 05 3a 0d 01  cc 18 ee 20 85 20 e7 20  |)....:..... . . |
00000420  a4 77 69 6d 70 65 72 72  6f 72 20 8c 20 e0 0d 01  |.wimperror . ...|
00000430  d6 05 3a 0d 01 e0 4d f4  2d 2d 2d 2d 2d 2d 2d 2d  |..:...M.--------|
00000440  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00000480  0d 01 ea 05 3a 0d 01 f4  05 f5 0d 01 fe 05 3a 0d  |....:.........:.|
00000490  02 08 1c f4 20 54 68 65  20 6d 61 69 6e 20 6c 6f  |.... The main lo|
000004a0  6f 70 20 2d 20 20 5c 2f  20 20 2d 0d 02 12 05 3a  |op -  \/  -....:|
000004b0  0d 02 1c 05 f5 0d 02 26  12 f2 70 6f 6c 6c 5f 74  |.......&..poll_t|
000004c0  68 65 5f 77 69 6d 70 0d  02 30 0d fd 20 71 75 69  |he_wimp..0.. qui|
000004d0  74 25 3d b9 0d 02 3a 05  3a 0d 02 44 13 f4 20 65  |t%=...:.:..D.. e|
000004e0  78 69 74 20 73 65 6c 65  63 74 65 64 0d 02 4e 13  |xit selected..N.|
000004f0  f4 20 61 72 65 20 79 6f  75 20 73 75 72 65 3f 0d  |. are you sure?.|
00000500  02 58 36 2a 2a 45 52 52  4f 52 20 32 35 35 20 41  |.X6**ERROR 255 A|
00000510  72 65 20 79 6f 75 20 73  75 72 65 20 79 6f 75 20  |re you sure you |
00000520  77 61 6e 74 20 74 6f 20  71 75 69 74 20 21 53 63  |want to quit !Sc|
00000530  72 53 61 76 65 0d 02 62  07 fd 20 a3 0d 02 6c 05  |rSave..b.. ...l.|
00000540  3a 0d 02 76 4d f4 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |:..vM.----------|
00000550  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00000580  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 0d 02  |--------------..|
00000590  80 1c f4 20 50 52 4f 43  27 73 20 61 6e 64 20 46  |... PROC's and F|
000005a0  4e 27 73 20 66 6f 6c 6c  6f 77 0d 02 8a 05 3a 0d  |N's follow....:.|
000005b0  02 94 18 f4 20 57 69 6d  70 20 65 72 72 6f 72 20  |.... Wimp error |
000005c0  68 61 6e 64 6c 65 72 0d  02 9e 10 dd 20 a4 77 69  |handler..... .wi|
000005d0  6d 70 65 72 72 6f 72 0d  02 a8 27 e7 20 62 6c 61  |mperror...'. bla|
000005e0  6e 6b 25 20 8c 20 c8 99  22 57 69 6d 70 5f 53 65  |nk% . .."Wimp_Se|
000005f0  74 4d 6f 64 65 22 2c 6f  6c 64 6d 6f 64 65 0d 02  |tMode",oldmode..|
00000600  b2 0a 2a 43 4c 4f 53 45  0d 02 bc 11 e7 20 ac 20  |..*CLOSE..... . |
00000610  73 74 61 74 75 73 25 20  8c 0d 02 c6 35 68 6f 75  |status% ....5hou|
00000620  72 73 25 3d 30 3a 6d 69  6e 75 74 65 73 25 3d 31  |rs%=0:minutes%=1|
00000630  30 3a 73 65 63 6f 6e 64  73 25 3d 30 3a 61 63 74  |0:seconds%=0:act|
00000640  69 76 65 25 3d b9 3a 69  64 6c 65 25 3d a3 0d 02  |ive%=.:idle%=...|
00000650  d0 0d f2 73 65 74 5f 74  68 65 6d 0d 02 da 05 cd  |...set_them.....|
00000660  0d 02 e4 09 21 71 25 3d  9f 0d 02 ee 0f e7 20 9f  |....!q%=...... .|
00000670  3d 36 37 37 38 36 20 8c  0d 02 f8 40 24 28 71 25  |=67786 ....@$(q%|
00000680  2b 34 29 3d 22 54 72 6f  75 62 6c 65 20 69 6e 20  |+4)="Trouble in |
00000690  73 61 76 69 6e 67 20 73  74 61 74 75 73 20 66 69  |saving status fi|
000006a0  6c 65 20 28 43 61 6e 63  65 6c 20 71 75 69 74 73  |le (Cancel quits|
000006b0  21 29 22 2b bd 28 30 29  0d 03 02 05 cc 0d 03 0c  |!)"+.(0)........|
000006c0  26 24 28 71 25 2b 34 29  3d f6 24 2b 22 20 28 43  |&$(q%+4)=.$+" (C|
000006d0  61 6e 63 65 6c 20 71 75  69 74 73 21 29 22 2b bd  |ancel quits!)"+.|
000006e0  28 30 29 0d 03 16 05 cd  0d 03 20 38 c8 99 20 22  |(0)....... 8.. "|
000006f0  57 69 6d 70 5f 52 65 70  6f 72 74 45 72 72 6f 72  |Wimp_ReportError|
00000700  22 2c 71 25 2c 26 31 37  2c 22 21 53 63 72 53 61  |",q%,&17,"!ScrSa|
00000710  76 65 22 20 b8 20 2c 72  65 73 70 6f 6e 73 65 25  |ve" . ,response%|
00000720  0d 03 2a 2e e7 20 72 65  73 70 6f 6e 73 65 25 3d  |..*.. response%=|
00000730  32 20 8c 20 f2 65 6e 64  77 69 6d 70 3a 3d b9 3a  |2 . .endwimp:=.:|
00000740  8b 20 71 75 69 74 25 3d  a3 3a 3a 20 3d a3 0d 03  |. quit%=.:: =...|
00000750  34 05 3a 0d 03 3e 13 f4  20 47 6f 6f 64 62 79 65  |4.:..>.. Goodbye|
00000760  20 57 69 6d 70 21 0d 03  48 0e dd 20 f2 65 6e 64  | Wimp!..H.. .end|
00000770  77 69 6d 70 0d 03 52 0e  24 71 25 3d 22 54 41 53  |wimp..R.$q%="TAS|
00000780  4b 22 0d 03 5c 27 c8 99  20 22 57 69 6d 70 5f 43  |K"..\'.. "Wimp_C|
00000790  6c 6f 73 65 44 6f 77 6e  22 2c 74 61 73 6b 5f 68  |loseDown",task_h|
000007a0  61 6e 64 6c 65 25 2c 71  25 0d 03 66 16 2a 55 4e  |andle%,q%..f.*UN|
000007b0  53 45 54 20 53 63 72 53  61 76 65 24 44 69 72 0d  |SET ScrSave$Dir.|
000007c0  03 70 05 e1 0d 03 7a 05  3a 0d 03 84 4d f4 2d 2d  |.p....z.:...M.--|
000007d0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00000810  2d 2d 2d 2d 2d 2d 0d 03  8e 05 3a 0d 03 98 17 f4  |------....:.....|
00000820  20 54 65 6d 70 6c 61 74  65 20 48 61 6e 64 6c 65  | Template Handle|
00000830  72 73 0d 03 a2 05 3a 0d  03 ac 13 f4 20 4c 6f 61  |rs....:..... Loa|
00000840  64 20 74 65 6d 70 6c 61  74 65 0d 03 b6 14 dd 20  |d template..... |
00000850  a4 74 65 6d 70 6c 61 74  65 28 69 64 24 29 0d 03  |.template(id$)..|
00000860  c0 12 ea 20 74 65 6d 70  68 61 6e 64 2c 70 6f 73  |... temphand,pos|
00000870  0d 03 ca 5d c8 99 20 22  57 69 6d 70 5f 4c 6f 61  |...].. "Wimp_Loa|
00000880  64 54 65 6d 70 6c 61 74  65 22 2c 2c 71 25 2c 6c  |dTemplate",,q%,l|
00000890  65 66 74 69 63 6f 6e 73  70 61 63 65 2c 69 63 6f  |efticonspace,ico|
000008a0  6e 73 70 61 63 65 2b 34  30 39 36 2c 2d 31 2c 69  |nspace+4096,-1,i|
000008b0  64 24 2c 30 20 b8 20 2c  2c 6c 65 66 74 69 63 6f  |d$,0 . ,,leftico|
000008c0  6e 73 70 61 63 65 2c 2c  2c 2c 70 6f 73 0d 03 d4  |nspace,,,,pos...|
000008d0  2d e7 20 70 6f 73 3d 30  20 8c 20 85 20 32 35 35  |-. pos=0 . . 255|
000008e0  2c 69 64 24 2b 22 20 74  65 6d 70 6c 61 74 65 20  |,id$+" template |
000008f0  6e 6f 74 20 66 6f 75 6e  64 22 0d 03 de 2b c8 99  |not found"...+..|
00000900  20 22 57 69 6d 70 5f 43  72 65 61 74 65 57 69 6e  | "Wimp_CreateWin|
00000910  64 6f 77 22 2c 2c 71 25  20 b8 20 74 65 6d 70 68  |dow",,q% . temph|
00000920  61 6e 64 6c 65 0d 03 e8  0f 3d 74 65 6d 70 68 61  |andle....=tempha|
00000930  6e 64 6c 65 0d 03 f2 05  3a 0d 03 fc 1b f4 20 54  |ndle....:..... T|
00000940  68 65 20 74 65 6d 70 6c  61 74 65 20 73 65 6c 65  |he template sele|
00000950  63 74 6f 72 0d 04 06 0d  dd f2 77 69 6e 64 6f 77  |ctor......window|
00000960  73 0d 04 10 35 c8 99 20  22 57 69 6d 70 5f 4f 70  |s...5.. "Wimp_Op|
00000970  65 6e 54 65 6d 70 6c 61  74 65 22 2c 2c 22 3c 53  |enTemplate",,"<S|
00000980  63 72 53 61 76 65 24 44  69 72 3e 2e 54 65 6d 70  |crSave$Dir>.Temp|
00000990  6c 61 74 65 73 22 0d 04  1a 1a 69 6e 66 6f 3d a4  |lates"....info=.|
000009a0  74 65 6d 70 6c 61 74 65  28 22 49 6e 66 6f 22 29  |template("Info")|
000009b0  0d 04 24 1e 6e 6f 74 69  66 79 3d a4 74 65 6d 70  |..$.notify=.temp|
000009c0  6c 61 74 65 28 22 41 64  6a 75 73 74 22 29 0d 04  |late("Adjust")..|
000009d0  2e 1b c8 99 20 22 57 69  6d 70 5f 43 6c 6f 73 65  |.... "Wimp_Close|
000009e0  54 65 6d 70 6c 61 74 65  22 0d 04 38 05 e1 0d 04  |Template"..8....|
000009f0  42 05 3a 0d 04 4c 4d f4  2d 2d 2d 2d 2d 2d 2d 2d  |B.:..LM.--------|
00000a00  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00000a40  0d 04 56 05 3a 0d 04 60  0c f4 20 4d 65 6e 75 73  |..V.:..`.. Menus|
00000a50  3a 0d 04 6a 05 3a 0d 04  74 0c dd 20 f2 6d 65 6e  |:..j.:..t.. .men|
00000a60  75 73 0d 04 7e 10 de 20  69 63 6f 6e 6d 20 31 30  |us..~.. iconm 10|
00000a70  32 34 0d 04 88 20 f2 69  6e 69 74 5f 6d 65 6e 75  |24... .init_menu|
00000a80  28 22 21 53 63 72 53 61  76 65 22 2c 69 63 6f 6e  |("!ScrSave",icon|
00000a90  6d 29 0d 04 92 1d f2 6d  65 6e 75 5f 69 74 65 6d  |m).....menu_item|
00000aa0  28 22 49 6e 66 6f 22 2c  30 2c 69 6e 66 6f 29 0d  |("Info",0,info).|
00000ab0  04 9c 1d f2 6d 65 6e 75  5f 69 74 65 6d 28 22 41  |....menu_item("A|
00000ac0  63 74 69 76 65 22 2c 33  2c 2d 32 29 0d 04 a6 1b  |ctive",3,-2)....|
00000ad0  f2 6d 65 6e 75 5f 69 74  65 6d 28 22 53 61 76 65  |.menu_item("Save|
00000ae0  22 2c 30 2c 2d 32 29 0d  04 b0 20 f2 6d 65 6e 75  |",0,-2)... .menu|
00000af0  5f 69 74 65 6d 28 22 50  6f 6c 6c 20 49 64 6c 65  |_item("Poll Idle|
00000b00  22 2c 30 2c 2d 32 29 0d  04 ba 1d f2 6d 65 6e 75  |",0,-2).....menu|
00000b10  5f 69 74 65 6d 28 22 51  75 69 74 22 2c 26 38 30  |_item("Quit",&80|
00000b20  2c 2d 32 29 0d 04 c4 05  e1 0d 04 ce 05 3a 0d 04  |,-2).........:..|
00000b30  d8 1a dd f2 69 6e 69 74  5f 6d 65 6e 75 28 54 69  |....init_menu(Ti|
00000b40  74 6c 65 24 2c 4d 25 29  0d 04 e2 12 4c 25 3d a9  |tle$,M%)....L%=.|
00000b50  28 54 69 74 6c 65 24 29  2b 31 0d 04 ec 0e 24 4d  |(Title$)+1....$M|
00000b60  25 3d 54 69 74 6c 65 24  0d 04 f6 0b 4d 25 3f 31  |%=Title$....M%?1|
00000b70  32 3d 37 0d 05 00 0b 4d  25 3f 31 33 3d 32 0d 05  |2=7....M%?13=2..|
00000b80  0a 0b 4d 25 3f 31 34 3d  36 0d 05 14 0b 4d 25 3f  |..M%?14=6....M%?|
00000b90  31 35 3d 30 0d 05 1e 13  4d 25 21 31 36 3d 28 4c  |15=0....M%!16=(L|
00000ba0  25 2b 31 29 2a 31 36 0d  05 28 0c 4d 25 21 32 30  |%+1)*16..(.M%!20|
00000bb0  3d 34 30 0d 05 32 0b 4d  25 21 32 34 3d 30 0d 05  |=40..2.M%!24=0..|
00000bc0  3c 0c 50 25 3d 4d 25 2b  32 38 0d 05 46 05 e1 0d  |<.P%=M%+28..F...|
00000bd0  05 50 05 3a 0d 05 5a 23  dd f2 6d 65 6e 75 5f 69  |.P.:..Z#..menu_i|
00000be0  74 65 6d 28 54 65 78 74  24 2c 66 6c 61 67 73 25  |tem(Text$,flags%|
00000bf0  2c 6c 69 6e 6b 25 29 0d  05 64 13 50 25 21 30 3d  |,link%)..d.P%!0=|
00000c00  66 6c 61 67 73 25 80 32  35 35 0d 05 6e 0e 50 25  |flags%.255..n.P%|
00000c10  21 34 3d 6c 69 6e 6b 25  0d 05 78 12 50 25 21 38  |!4=link%..x.P%!8|
00000c20  3d 26 30 37 30 30 33 30  32 31 0d 05 82 12 24 28  |=&07003021....$(|
00000c30  50 25 2b 31 32 29 3d 54  65 78 74 24 0d 05 8c 0a  |P%+12)=Text$....|
00000c40  50 25 2b 3d 32 34 0d 05  96 31 e7 20 a9 28 54 65  |P%+=24...1. .(Te|
00000c50  78 74 24 29 3e 4c 25 20  8c 20 4c 25 3d a9 28 54  |xt$)>L% . L%=.(T|
00000c60  65 78 74 24 29 2b 31 3a  4d 25 21 31 36 3d 28 4c  |ext$)+1:M%!16=(L|
00000c70  25 2b 31 29 2a 31 36 0d  05 a0 05 e1 0d 05 aa 05  |%+1)*16.........|
00000c80  3a 0d 05 b4 17 dd f2 73  68 6f 77 6d 65 6e 75 28  |:......showmenu(|
00000c90  61 64 64 72 65 73 73 29  0d 05 be 10 71 25 21 30  |address)....q%!0|
00000ca0  3d 71 25 21 30 2d 34 38  0d 05 c8 15 e7 20 71 25  |=q%!0-48..... q%|
00000cb0  21 30 3c 30 20 8c 20 71  25 21 30 3d 30 0d 05 d2  |!0<0 . q%!0=0...|
00000cc0  1f e7 20 71 25 21 34 3c  31 32 34 2b 39 32 20 8c  |.. q%!4<124+92 .|
00000cd0  20 71 25 21 34 3d 31 32  34 2b 39 32 0d 05 dc 2e  | q%!4=124+92....|
00000ce0  c8 99 20 22 57 69 6d 70  5f 43 72 65 61 74 65 4d  |.. "Wimp_CreateM|
00000cf0  65 6e 75 22 2c 2c 61 64  64 72 65 73 73 2c 71 25  |enu",,address,q%|
00000d00  21 30 2d 34 38 2c 71 25  21 34 0d 05 e6 17 63 75  |!0-48,q%!4....cu|
00000d10  72 72 65 6e 74 6d 65 6e  75 3d 61 64 64 72 65 73  |rrentmenu=addres|
00000d20  73 0d 05 f0 05 e1 0d 05  fa 05 3a 0d 06 04 4d f4  |s.........:...M.|
00000d30  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00000d70  2d 2d 2d 2d 2d 2d 2d 2d  0d 06 0e 05 3a 0d 06 18  |--------....:...|
00000d80  0e f4 20 49 63 6f 6e 20  62 61 72 0d 06 22 05 3a  |.. Icon bar..".:|
00000d90  0d 06 2c 12 dd 20 a4 69  63 6f 6e 62 61 72 28 6e  |..,.. .iconbar(n|
00000da0  24 29 0d 06 36 0b 71 25  21 30 3d 2d 31 0d 06 40  |$)..6.q%!0=-1..@|
00000db0  0a 71 25 21 34 3d 30 0d  06 4a 0a 71 25 21 38 3d  |.q%!4=0..J.q%!8=|
00000dc0  30 0d 06 54 0c 71 25 21  31 32 3d 36 38 0d 06 5e  |0..T.q%!12=68..^|
00000dd0  0c 71 25 21 31 36 3d 36  38 0d 06 68 1b 71 25 21  |.q%!16=68..h.q%!|
00000de0  32 30 3d 25 30 30 31 31  30 30 30 30 30 30 30 31  |20=%001100000001|
00000df0  31 30 31 30 0d 06 72 0f  24 28 71 25 2b 32 34 29  |1010..r.$(q%+24)|
00000e00  3d 6e 24 0d 06 7c 27 c8  99 20 22 57 69 6d 70 5f  |=n$..|'.. "Wimp_|
00000e10  43 72 65 61 74 65 49 63  6f 6e 22 2c 2c 71 25 20  |CreateIcon",,q% |
00000e20  b8 20 69 62 68 61 6e 64  6c 65 0d 06 86 0d 3d 69  |. ibhandle....=i|
00000e30  62 68 61 6e 64 6c 65 0d  06 90 05 3a 0d 06 9a 4d  |bhandle....:...M|
00000e40  f4 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |.---------------|
00000e50  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00000e80  2d 2d 2d 2d 2d 2d 2d 2d  2d 0d 06 a4 05 3a 0d 06  |---------....:..|
00000e90  ae 0a f4 20 50 6f 6c 6c  0d 06 b8 14 dd 20 f2 70  |... Poll..... .p|
00000ea0  6f 6c 6c 5f 74 68 65 5f  77 69 6d 70 0d 06 c2 0f  |oll_the_wimp....|
00000eb0  e7 20 69 64 6c 65 25 3d  b9 20 8c 0d 06 cc 25 c8  |. idle%=. ....%.|
00000ec0  99 20 22 57 69 6d 70 5f  50 6f 6c 6c 49 64 6c 65  |. "Wimp_PollIdle|
00000ed0  22 2c 30 2c 71 25 20 b8  20 61 63 74 69 6f 6e 25  |",0,q% . action%|
00000ee0  0d 06 d6 05 cc 0d 06 e0  21 c8 99 20 22 57 69 6d  |........!.. "Wim|
00000ef0  70 5f 50 6f 6c 6c 22 2c  30 2c 71 25 20 b8 20 61  |p_Poll",0,q% . a|
00000f00  63 74 69 6f 6e 25 0d 06  ea 05 cd 0d 06 f4 10 c8  |ction%..........|
00000f10  8e 20 61 63 74 69 6f 6e  25 20 ca 0d 06 fe 0f c9  |. action% ......|
00000f20  20 30 3a 20 f4 20 4e 75  6c 6c 0d 07 08 19 c9 20  | 0: . Null..... |
00000f30  31 3a 20 f4 20 52 65 20  64 72 61 77 20 77 69 6e  |1: . Re draw win|
00000f40  64 6f 77 0d 07 12 21 c9  20 32 3a 20 c8 99 20 22  |dow...!. 2: .. "|
00000f50  57 69 6d 70 5f 4f 70 65  6e 57 69 6e 64 6f 77 22  |Wimp_OpenWindow"|
00000f60  2c 2c 71 25 0d 07 1c 22  c9 20 33 3a 20 c8 99 20  |,,q%...". 3: .. |
00000f70  22 57 69 6d 70 5f 43 6c  6f 73 65 57 69 6e 64 6f  |"Wimp_CloseWindo|
00000f80  77 22 2c 2c 71 25 0d 07  26 38 c9 20 34 3a 20 61  |w",,q%..&8. 4: a|
00000f90  6c 61 72 6d 5f 74 69 6d  65 25 3d a4 61 74 69 6d  |larm_time%=.atim|
00000fa0  65 3a 20 f4 20 4d 6f 75  73 65 20 6a 75 73 74 20  |e: . Mouse just |
00000fb0  65 6e 74 65 72 65 64 20  77 69 6e 64 6f 77 0d 07  |entered window..|
00000fc0  30 35 c9 20 35 3a 20 61  6c 61 72 6d 5f 74 69 6d  |05. 5: alarm_tim|
00000fd0  65 25 3d a4 61 74 69 6d  65 3a 20 f4 20 4d 6f 75  |e%=.atime: . Mou|
00000fe0  73 65 20 6a 75 73 74 20  6c 65 66 74 20 77 69 6e  |se just left win|
00000ff0  64 6f 77 0d 07 3a 46 c9  20 36 3a 20 f2 6d 6f 75  |dow..:F. 6: .mou|
00001000  73 65 3a 61 6c 61 72 6d  5f 74 69 6d 65 25 3d a4  |se:alarm_time%=.|
00001010  61 74 69 6d 65 3a 20 f4  20 4d 6f 75 73 65 20 62  |atime: . Mouse b|
00001020  75 74 74 6f 6e 73 20 68  61 76 65 20 63 68 61 6e  |uttons have chan|
00001030  67 65 64 20 73 74 61 74  65 0d 07 44 34 c9 20 37  |ged state..D4. 7|
00001040  3a 20 f4 20 55 73 65 72  20 68 61 73 20 6a 75 73  |: . User has jus|
00001050  74 20 66 69 6e 69 73 68  65 64 20 62 6f 78 20 64  |t finished box d|
00001060  72 61 67 20 6f 70 65 72  61 74 69 6f 6e 0d 07 4e  |rag operation..N|
00001070  45 c9 20 38 3a 20 61 6c  61 72 6d 5f 74 69 6d 65  |E. 8: alarm_time|
00001080  25 3d a4 61 74 69 6d 65  3a 20 f4 20 41 20 6b 65  |%=.atime: . A ke|
00001090  79 20 68 61 73 20 62 65  65 6e 20 70 72 65 73 73  |y has been press|
000010a0  65 64 20 6f 6e 20 74 68  65 20 6b 65 79 62 6f 61  |ed on the keyboa|
000010b0  72 64 0d 07 58 46 c9 20  39 3a 20 61 6c 61 72 6d  |rd..XF. 9: alarm|
000010c0  5f 74 69 6d 65 25 3d a4  61 74 69 6d 65 3a 20 f2  |_time%=.atime: .|
000010d0  64 65 63 6d 65 6e 75 20  3a f4 20 4d 65 6e 75 20  |decmenu :. Menu |
000010e0  6f 70 74 69 6f 6e 20 68  61 73 20 62 65 65 6e 20  |option has been |
000010f0  73 65 6c 65 63 74 65 64  0d 07 62 46 c9 31 30 3a  |selected..bF.10:|
00001100  20 61 6c 61 72 6d 5f 74  69 6d 65 25 3d a4 61 74  | alarm_time%=.at|
00001110  69 6d 65 3a 20 f4 20 72  65 71 75 65 73 74 20 74  |ime: . request t|
00001120  6f 20 73 63 72 6f 6c 6c  20 75 73 65 72 20 67 72  |o scroll user gr|
00001130  61 70 68 69 63 73 20 69  6e 20 77 6f 72 6b 0d 07  |aphics in work..|
00001140  6c 27 f4 20 20 20 20 20  20 20 20 20 20 20 20 20  |l'.             |
00001150  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001160  20 61 72 65 61 0d 07 76  49 f4 20 31 31 20 2d 2d  | area..vI. 11 --|
00001170  3e 20 31 36 20 49 20 64  6f 6e 27 74 20 6b 6e 6f  |> 16 I don't kno|
00001180  77 20 61 62 6f 75 74 2c  20 49 20 63 61 6e 27 74  |w about, I can't|
00001190  20 61 66 66 6f 72 64 20  74 68 65 20 72 65 66 65  | afford the refe|
000011a0  72 65 6e 63 65 20 6d 61  6e 75 61 6c 73 21 0d 07  |rence manuals!..|
000011b0  80 26 f4 20 68 65 6c 6c  2c 20 49 20 64 6f 6e 27  |.&. hell, I don'|
000011c0  74 20 65 76 65 6e 20 6f  77 6e 20 61 6e 20 41 72  |t even own an Ar|
000011d0  63 21 21 21 0d 07 8a 3e  c9 31 37 2c 31 38 3a 20  |c!!!...>.17,18: |
000011e0  f2 6d 65 73 73 61 67 65  20 3a 61 6c 61 72 6d 5f  |.message :alarm_|
000011f0  74 69 6d 65 25 3d a4 61  74 69 6d 65 3a 20 f4 20  |time%=.atime: . |
00001200  69 6e 63 6f 6d 69 6e 67  20 6d 65 73 73 61 67 65  |incoming message|
00001210  21 21 0d 07 94 05 cb 0d  07 9e 2e e7 20 61 6c 61  |!!.......... ala|
00001220  72 6d 5f 74 69 6d 65 25  3c 3d a4 63 74 69 6d 65  |rm_time%<=.ctime|
00001230  20 80 20 61 63 74 69 76  65 25 3d b9 20 8c 20 f2  | . active%=. . .|
00001240  61 6c 61 72 6d 0d 07 a8  05 e1 0d 07 b2 05 3a 0d  |alarm.........:.|
00001250  07 bc 4d f4 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |..M.------------|
00001260  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00001290  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 0d 07 c6 05  |------------....|
000012a0  3a 0d 07 d0 1b f4 20 45  78 65 63 75 74 65 20 70  |:..... Execute p|
000012b0  6f 6c 6c 20 72 65 71 75  65 73 74 73 0d 07 da 05  |oll requests....|
000012c0  3a 0d 07 e4 13 f4 20 4d  6f 75 73 65 20 62 75 74  |:..... Mouse but|
000012d0  74 6f 6e 73 0d 07 ee 0c  dd 20 f2 6d 6f 75 73 65  |tons..... .mouse|
000012e0  0d 07 f8 0e c8 8e 20 71  25 21 31 32 20 ca 0d 08  |...... q%!12 ...|
000012f0  02 1c c9 20 2d 32 3a 20  f4 20 63 6c 69 63 6b 20  |... -2: . click |
00001300  6f 6e 20 69 63 6f 6e 62  61 72 0d 08 0c 16 e7 20  |on iconbar..... |
00001310  71 25 21 31 36 3d 69 62  68 61 6e 64 6c 65 20 8c  |q%!16=ibhandle .|
00001320  0d 08 16 49 20 20 20 20  20 20 20 20 20 20 20 20  |...I            |
00001330  20 20 20 20 20 20 20 20  20 20 3a e7 20 28 71 25  |          :. (q%|
00001340  21 38 20 80 20 31 29 3d  31 20 8c 20 3a f2 4f 70  |!8 . 1)=1 . :.Op|
00001350  65 6e 57 69 6e 64 6f 77  28 6e 6f 74 69 66 79 29  |enWindow(notify)|
00001360  3a f4 20 41 64 6a 75 73  74 0d 08 20 44 20 20 20  |:. Adjust.. D   |
00001370  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001380  20 20 20 3a e7 20 28 71  25 21 38 20 80 20 32 29  |   :. (q%!8 . 2)|
00001390  3d 32 20 8c 20 3a f2 73  68 6f 77 6d 65 6e 75 28  |=2 . :.showmenu(|
000013a0  69 63 6f 6e 6d 29 3a f4  20 4d 65 6e 75 0d 08 2a  |iconm):. Menu..*|
000013b0  49 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |I               |
000013c0  20 20 20 20 20 20 20 3a  e7 20 28 71 25 21 38 20  |       :. (q%!8 |
000013d0  80 20 34 29 3d 34 20 8c  20 3a f2 4f 70 65 6e 57  |. 4)=4 . :.OpenW|
000013e0  69 6e 64 6f 77 28 6e 6f  74 69 66 79 29 3a f4 20  |indow(notify):. |
000013f0  53 65 6c 65 63 74 0d 08  34 05 cd 0d 08 3e 2a c9  |Select..4....>*.|
00001400  20 6e 6f 74 69 66 79 3a  20 f4 20 63 6c 69 63 6b  | notify: . click|
00001410  20 6f 6e 20 6f 75 72 20  61 64 6a 75 73 74 20 77  | on our adjust w|
00001420  69 6e 64 6f 77 0d 08 48  05 3a 0d 08 52 0f 20 c8  |indow..H.:..R. .|
00001430  8e 20 71 25 21 31 36 20  ca 0d 08 5c 12 20 f4 20  |. q%!16 ...\. . |
00001440  69 63 6f 6e 20 6e 75 6d  62 65 72 0d 08 66 05 3a  |icon number..f.:|
00001450  0d 08 70 10 c9 20 31 3a  f2 68 6f 75 72 28 31 29  |..p.. 1:.hour(1)|
00001460  0d 08 7a 11 c9 20 32 3a  f2 68 6f 75 72 28 2d 31  |..z.. 2:.hour(-1|
00001470  29 0d 08 84 0f c9 20 38  3a f2 6d 69 6e 28 31 29  |)..... 8:.min(1)|
00001480  0d 08 8e 10 c9 20 34 3a  f2 6d 69 6e 28 2d 31 29  |..... 4:.min(-1)|
00001490  0d 08 98 0f c9 20 39 3a  f2 73 65 63 28 31 29 0d  |..... 9:.sec(1).|
000014a0  08 a2 10 c9 20 35 3a f2  73 65 63 28 2d 31 29 0d  |.... 5:.sec(-1).|
000014b0  08 ac 05 cb 0d 08 b6 05  3a 0d 08 c0 05 cb 0d 08  |........:.......|
000014c0  ca 05 e1 0d 08 d4 05 3a  0d 08 de 4d f4 2d 2d 2d  |.......:...M.---|
000014d0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00001510  2d 2d 2d 2d 2d 0d 08 e8  05 3a 0d 08 f2 16 f4 20  |-----....:..... |
00001520  44 65 63 6f 64 65 20 74  68 65 20 6d 65 6e 75 73  |Decode the menus|
00001530  0d 08 fc 0e dd 20 f2 64  65 63 6d 65 6e 75 0d 09  |..... .decmenu..|
00001540  06 12 ea 20 69 74 65 6d  24 2c 61 64 6a 75 73 74  |... item$,adjust|
00001550  0d 09 10 2d c8 99 20 22  57 69 6d 70 5f 44 65 63  |...-.. "Wimp_Dec|
00001560  6f 64 65 4d 65 6e 75 22  2c 2c 63 75 72 72 65 6e  |odeMenu",,curren|
00001570  74 6d 65 6e 75 2c 71 25  2c 62 75 66 25 0d 09 1a  |tmenu,q%,buf%...|
00001580  20 c8 99 20 22 57 69 6d  70 5f 47 65 74 50 6f 69  | .. "Wimp_GetPoi|
00001590  6e 74 65 72 49 6e 66 6f  22 2c 2c 71 25 0d 09 24  |nterInfo",,q%..$|
000015a0  0f 69 74 65 6d 24 3d 24  62 75 66 25 0d 09 2e 0e  |.item$=$buf%....|
000015b0  c8 8e 20 69 74 65 6d 24  20 ca 0d 09 38 14 c9 20  |.. item$ ...8.. |
000015c0  22 51 75 69 74 22 3a 71  75 69 74 25 3d b9 0d 09  |"Quit":quit%=...|
000015d0  42 19 c9 20 22 53 61 76  65 22 3a f2 73 61 76 65  |B.. "Save":.save|
000015e0  5f 73 74 61 74 75 73 0d  09 4c 0e c9 20 22 41 63  |_status..L.. "Ac|
000015f0  74 69 76 65 22 0d 09 56  14 61 63 74 69 76 65 25  |tive"..V.active%|
00001600  3d ac 61 63 74 69 76 65  25 0d 09 60 11 f2 74 6f  |=.active%..`..to|
00001610  67 67 6c 65 61 63 74 69  76 65 0d 09 6a 11 c9 20  |ggleactive..j.. |
00001620  22 50 6f 6c 6c 20 49 64  6c 65 22 0d 09 74 10 69  |"Poll Idle"..t.i|
00001630  64 6c 65 25 3d ac 69 64  6c 65 25 0d 09 7e 0f f2  |dle%=.idle%..~..|
00001640  74 6f 67 67 6c 65 69 64  6c 65 0d 09 88 05 cb 0d  |toggleidle......|
00001650  09 92 15 f4 20 43 68 65  63 6b 20 41 64 6a 75 73  |.... Check Adjus|
00001660  74 20 5c 2f 0d 09 9c 2b  e7 20 28 71 25 21 38 20  |t \/...+. (q%!8 |
00001670  80 20 31 29 3d 31 20 8c  20 f2 73 68 6f 77 6d 65  |. 1)=1 . .showme|
00001680  6e 75 28 63 75 72 72 65  6e 74 6d 65 6e 75 29 0d  |nu(currentmenu).|
00001690  09 a6 05 e1 0d 09 b0 05  3a 0d 09 ba 4d f4 2d 2d  |........:...M.--|
000016a0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
000016e0  2d 2d 2d 2d 2d 2d 0d 09  c4 05 3a 0d 09 ce 0d f4  |------....:.....|
000016f0  20 54 6f 67 67 6c 65 73  0d 09 d8 25 f4 20 69 65  | Toggles...%. ie|
00001700  20 41 63 74 69 76 65 20  59 2f 4e 20 61 6e 64 20  | Active Y/N and |
00001710  50 6f 6c 6c 20 49 64 6c  65 20 59 2f 4e 0d 09 e2  |Poll Idle Y/N...|
00001720  13 dd 20 f2 74 6f 67 67  6c 65 61 63 74 69 76 65  |.. .toggleactive|
00001730  0d 09 ec 0a ea 20 66 6c  61 67 0d 09 f6 18 66 6c  |..... flag....fl|
00001740  61 67 3d 69 63 6f 6e 6d  21 28 32 38 2b 31 2a 32  |ag=iconm!(28+1*2|
00001750  34 29 0d 0a 00 3d e7 20  61 63 74 69 76 65 25 20  |4)...=. active% |
00001760  8c 20 66 6c 61 67 3d 66  6c 61 67 20 84 20 26 30  |. flag=flag . &0|
00001770  30 30 30 30 30 30 31 20  8b 20 66 6c 61 67 3d 66  |0000001 . flag=f|
00001780  6c 61 67 20 80 20 26 46  46 46 46 46 46 46 45 0d  |lag . &FFFFFFFE.|
00001790  0a 0a 18 69 63 6f 6e 6d  21 28 32 38 2b 31 2a 32  |...iconm!(28+1*2|
000017a0  34 29 3d 66 6c 61 67 0d  0a 14 05 e1 0d 0a 1e 05  |4)=flag.........|
000017b0  3a 0d 0a 28 11 dd 20 f2  74 6f 67 67 6c 65 69 64  |:..(.. .toggleid|
000017c0  6c 65 0d 0a 32 0a ea 20  66 6c 61 67 0d 0a 3c 18  |le..2.. flag..<.|
000017d0  66 6c 61 67 3d 69 63 6f  6e 6d 21 28 32 38 2b 33  |flag=iconm!(28+3|
000017e0  2a 32 34 29 0d 0a 46 3c  e7 20 69 64 6c 65 25 20  |*24)..F<. idle% |
000017f0  20 8c 20 66 6c 61 67 3d  66 6c 61 67 20 84 20 26  | . flag=flag . &|
00001800  30 30 30 30 30 30 30 31  20 8b 20 66 6c 61 67 3d  |00000001 . flag=|
00001810  66 6c 61 67 20 80 20 26  46 46 46 46 46 46 46 45  |flag . &FFFFFFFE|
00001820  0d 0a 50 18 69 63 6f 6e  6d 21 28 32 38 2b 33 2a  |..P.iconm!(28+3*|
00001830  32 34 29 3d 66 6c 61 67  0d 0a 5a 05 e1 0d 0a 64  |24)=flag..Z....d|
00001840  05 3a 0d 0a 6e 4d f4 2d  2d 2d 2d 2d 2d 2d 2d 2d  |.:..nM.---------|
00001850  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00001880  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 0d  |---------------.|
00001890  0a 78 05 3a 0d 0a 82 24  f4 20 42 72 72 72 20 62  |.x.:...$. Brrr b|
000018a0  72 72 72 2c 20 62 72 72  72 20 2c 20 59 65 73 20  |rrr, brrr , Yes |
000018b0  6d 65 73 73 61 67 65 73  0d 0a 8c 05 3a 0d 0a 96  |messages....:...|
000018c0  0e dd 20 f2 6d 65 73 73  61 67 65 0d 0a a0 0e c8  |.. .message.....|
000018d0  8e 20 71 25 21 31 36 20  ca 0d 0a aa 0f c9 20 30  |. q%!16 ...... 0|
000018e0  3a 71 75 69 74 25 3d b9  0d 0a b4 1a c9 20 33 3a  |:quit%=...... 3:|
000018f0  f4 20 64 72 61 67 20 74  61 6b 65 6e 20 70 6c 61  |. drag taken pla|
00001900  63 65 0d 0a be 22 c9 20  35 3a f4 20 64 6f 75 62  |ce...". 5:. doub|
00001910  6c 65 20 63 6c 69 63 6b  20 74 61 6b 65 6e 20 70  |le click taken p|
00001920  6c 61 63 65 0d 0a c8 05  cb 0d 0a d2 05 e1 0d 0a  |lace............|
00001930  dc 05 3a 0d 0a e6 4d f4  2d 2d 2d 2d 2d 2d 2d 2d  |..:...M.--------|
00001940  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00001980  0d 0a f0 05 3a 0d 0a fa  1e f4 20 57 69 6e 64 6f  |....:..... Windo|
00001990  77 20 61 6e 64 20 69 63  6f 6e 20 72 6f 75 74 69  |w and icon routi|
000019a0  6e 65 73 0d 0b 04 05 3a  0d 0b 0e 1a dd 20 f2 4f  |nes....:..... .O|
000019b0  70 65 6e 57 69 6e 64 6f  77 28 68 61 6e 64 6c 65  |penWindow(handle|
000019c0  25 29 0d 0b 18 10 71 25  21 30 3d 68 61 6e 64 6c  |%)....q%!0=handl|
000019d0  65 25 0d 0b 22 29 c8 99  20 22 57 69 6d 70 5f 47  |e%..").. "Wimp_G|
000019e0  65 74 57 69 6e 64 6f 77  53 74 61 74 65 22 2c 2c  |etWindowState",,|
000019f0  71 25 3a 71 25 21 32 38  3d 2d 31 0d 0b 2c 1c c8  |q%:q%!28=-1..,..|
00001a00  99 20 22 57 69 6d 70 5f  4f 70 65 6e 57 69 6e 64  |. "Wimp_OpenWind|
00001a10  6f 77 22 2c 2c 71 25 0d  0b 36 05 e1 0d 0b 40 05  |ow",,q%..6....@.|
00001a20  3a 0d 0b 4a 43 f4 20 50  52 4f 43 27 73 20 41 4e  |:..JC. PROC's AN|
00001a30  44 20 46 4e 27 73 20 77  68 69 63 68 20 68 61 6e  |D FN's which han|
00001a40  64 6c 65 20 77 68 61 74  20 67 6f 65 73 20 69 6e  |dle what goes in|
00001a50  74 6f 20 74 68 65 20 41  64 6a 75 73 74 20 77 69  |to the Adjust wi|
00001a60  6e 64 6f 77 0d 0b 54 05  3a 0d 0b 5e 27 dd 20 f2  |ndow..T.:..^'. .|
00001a70  70 75 74 69 63 6f 6e 74  65 78 74 28 77 69 6e 64  |puticontext(wind|
00001a80  6f 77 25 2c 69 63 6f 6e  25 2c 74 65 78 74 24 29  |ow%,icon%,text$)|
00001a90  0d 0b 68 1b 71 25 21 30  3d 77 69 6e 64 6f 77 25  |..h.q%!0=window%|
00001aa0  3a 71 25 21 34 3d 69 63  6f 6e 25 0d 0b 72 1e c8  |:q%!4=icon%..r..|
00001ab0  99 20 22 57 69 6d 70 5f  47 65 74 49 63 6f 6e 53  |. "Wimp_GetIconS|
00001ac0  74 61 74 65 22 2c 2c 71  25 0d 0b 7c 12 24 28 71  |tate",,q%..|.$(q|
00001ad0  25 21 32 38 29 3d 74 65  78 74 24 0d 0b 86 2a 71  |%!28)=text$...*q|
00001ae0  25 21 30 3d 77 69 6e 64  6f 77 25 3a 71 25 21 34  |%!0=window%:q%!4|
00001af0  3d 69 63 6f 6e 25 3a 71  25 21 38 3d 30 3a 71 25  |=icon%:q%!8=0:q%|
00001b00  21 31 32 3d 30 0d 0b 90  1e c8 99 20 22 57 69 6d  |!12=0...... "Wim|
00001b10  70 5f 53 65 74 49 63 6f  6e 53 74 61 74 65 22 2c  |p_SetIconState",|
00001b20  2c 71 25 0d 0b 9a 05 e1  0d 0b a4 05 3a 0d 0b ae  |,q%.........:...|
00001b30  21 dd 20 a4 67 65 74 69  63 6f 6e 74 65 78 74 28  |!. .geticontext(|
00001b40  77 69 6e 64 6f 77 25 2c  69 63 6f 6e 25 29 0d 0b  |window%,icon%)..|
00001b50  b8 1b 71 25 21 30 3d 77  69 6e 64 6f 77 25 3a 71  |..q%!0=window%:q|
00001b60  25 21 34 3d 69 63 6f 6e  25 0d 0b c2 1e c8 99 20  |%!4=icon%...... |
00001b70  22 57 69 6d 70 5f 47 65  74 49 63 6f 6e 53 74 61  |"Wimp_GetIconSta|
00001b80  74 65 22 2c 2c 71 25 0d  0b cc 2a 78 30 25 3d 71  |te",,q%...*x0%=q|
00001b90  25 21 38 3a 79 30 25 3d  71 25 21 31 32 3a 78 31  |%!8:y0%=q%!12:x1|
00001ba0  25 3d 71 25 21 31 36 3a  79 31 25 3d 71 25 21 32  |%=q%!16:y1%=q%!2|
00001bb0  30 0d 0b d6 10 66 6c 61  67 73 25 3d 71 25 21 32  |0....flags%=q%!2|
00001bc0  34 0d 0b e0 19 e7 20 28  66 6c 61 67 73 25 20 80  |4..... (flags% .|
00001bd0  20 26 31 30 30 29 3e 30  20 8c 0d 0b ea 10 64 61  | &100)>0 .....da|
00001be0  74 61 24 3d 24 71 25 21  32 38 0d 0b f4 05 cc 0d  |ta$=$q%!28......|
00001bf0  0b fe 12 64 61 74 61 24  3d 24 28 71 25 2b 32 38  |...data$=$(q%+28|
00001c00  29 0d 0c 08 05 cd 0d 0c  12 0a 3d 64 61 74 61 24  |).........=data$|
00001c10  0d 0c 1c 05 3a 0d 0c 26  4d f4 2d 2d 2d 2d 2d 2d  |....:..&M.------|
00001c20  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00001c60  2d 2d 0d 0c 30 05 3a 0d  0c 3a 41 f4 20 54 68 65  |--..0.:..:A. The|
00001c70  20 72 6f 75 74 69 6e 65  73 20 77 68 69 63 68 20  | routines which |
00001c80  61 6c 74 65 72 20 74 68  65 20 69 63 6f 6e 73 20  |alter the icons |
00001c90  77 68 65 6e 20 63 6c 69  63 6b 65 64 20 61 63 63  |when clicked acc|
00001ca0  6f 72 64 69 6e 67 6c 79  0d 0c 44 05 3a 0d 0c 4e  |ordingly..D.:..N|
00001cb0  0b f4 20 48 6f 75 72 73  0d 0c 58 11 dd f2 68 6f  |.. Hours..X...ho|
00001cc0  75 72 28 64 61 74 61 25  29 0d 0c 62 21 62 25 3d  |ur(data%)..b!b%=|
00001cd0  bb 28 20 a4 67 65 74 69  63 6f 6e 74 65 78 74 28  |.( .geticontext(|
00001ce0  6e 6f 74 69 66 79 2c 33  29 29 0d 0c 6c 0f 62 25  |notify,3))..l.b%|
00001cf0  3d 62 25 2b 64 61 74 61  25 0d 0c 76 11 e7 20 62  |=b%+data%..v.. b|
00001d00  25 3c 30 20 8c 20 62 25  3d 32 0d 0c 80 11 e7 20  |%<0 . b%=2..... |
00001d10  62 25 3e 32 20 8c 20 62  25 3d 30 0d 0c 8a 0d 68  |b%>2 . b%=0....h|
00001d20  6f 75 72 73 25 3d 62 25  0d 0c 94 20 f2 70 75 74  |ours%=b%... .put|
00001d30  69 63 6f 6e 74 65 78 74  28 6e 6f 74 69 66 79 2c  |icontext(notify,|
00001d40  33 2c c3 28 62 25 29 29  0d 0c 9e 30 c8 99 20 22  |3,.(b%))...0.. "|
00001d50  57 69 6d 70 5f 46 6f 72  63 65 52 65 64 72 61 77  |Wimp_ForceRedraw|
00001d60  22 2c 6e 6f 74 69 66 79  2c 78 30 25 2c 79 30 25  |",notify,x0%,y0%|
00001d70  2c 78 31 25 2c 79 31 25  0d 0c a8 05 e1 0d 0c b2  |,x1%,y1%........|
00001d80  05 3b 0d 0c bc 0d f4 20  4d 69 6e 75 74 65 73 0d  |.;..... Minutes.|
00001d90  0c c6 10 dd f2 6d 69 6e  28 64 61 74 61 25 29 0d  |.....min(data%).|
00001da0  0c d0 21 62 25 3d bb 28  20 a4 67 65 74 69 63 6f  |..!b%=.( .getico|
00001db0  6e 74 65 78 74 28 6e 6f  74 69 66 79 2c 36 29 29  |ntext(notify,6))|
00001dc0  0d 0c da 0f 62 25 3d 62  25 2b 64 61 74 61 25 0d  |....b%=b%+data%.|
00001dd0  0c e4 12 e7 20 62 25 3c  30 20 8c 20 62 25 3d 35  |.... b%<0 . b%=5|
00001de0  39 0d 0c ee 12 e7 20 62  25 3e 35 39 20 8c 20 62  |9..... b%>59 . b|
00001df0  25 3d 30 0d 0c f8 0f 6d  69 6e 75 74 65 73 25 3d  |%=0....minutes%=|
00001e00  62 25 0d 0d 02 20 f2 70  75 74 69 63 6f 6e 74 65  |b%... .puticonte|
00001e10  78 74 28 6e 6f 74 69 66  79 2c 36 2c c3 28 62 25  |xt(notify,6,.(b%|
00001e20  29 29 0d 0d 0c 30 c8 99  20 22 57 69 6d 70 5f 46  |))...0.. "Wimp_F|
00001e30  6f 72 63 65 52 65 64 72  61 77 22 2c 6e 6f 74 69  |orceRedraw",noti|
00001e40  66 79 2c 78 30 25 2c 79  30 25 2c 78 31 25 2c 79  |fy,x0%,y0%,x1%,y|
00001e50  31 25 0d 0d 16 05 e1 0d  0d 20 05 3b 0d 0d 2a 0a  |1%....... .;..*.|
00001e60  f4 20 53 65 63 73 0d 0d  34 10 dd f2 73 65 63 28  |. Secs..4...sec(|
00001e70  64 61 74 61 25 29 0d 0d  3e 21 62 25 3d bb 28 20  |data%)..>!b%=.( |
00001e80  a4 67 65 74 69 63 6f 6e  74 65 78 74 28 6e 6f 74  |.geticontext(not|
00001e90  69 66 79 2c 37 29 29 0d  0d 48 0f 62 25 3d 62 25  |ify,7))..H.b%=b%|
00001ea0  2b 64 61 74 61 25 0d 0d  52 12 e7 20 62 25 3c 30  |+data%..R.. b%<0|
00001eb0  20 8c 20 62 25 3d 35 39  0d 0d 5c 12 e7 20 62 25  | . b%=59..\.. b%|
00001ec0  3e 35 39 20 8c 20 62 25  3d 30 0d 0d 66 0f 73 65  |>59 . b%=0..f.se|
00001ed0  63 6f 6e 64 73 25 3d 62  25 0d 0d 70 20 f2 70 75  |conds%=b%..p .pu|
00001ee0  74 69 63 6f 6e 74 65 78  74 28 6e 6f 74 69 66 79  |ticontext(notify|
00001ef0  2c 37 2c c3 28 62 25 29  29 0d 0d 7a 30 c8 99 20  |,7,.(b%))..z0.. |
00001f00  22 57 69 6d 70 5f 46 6f  72 63 65 52 65 64 72 61  |"Wimp_ForceRedra|
00001f10  77 22 2c 6e 6f 74 69 66  79 2c 78 30 25 2c 79 30  |w",notify,x0%,y0|
00001f20  25 2c 78 31 25 2c 79 31  25 0d 0d 84 05 e1 0d 0d  |%,x1%,y1%.......|
00001f30  8e 05 3a 0d 0d 98 4d f4  2d 2d 2d 2d 2d 2d 2d 2d  |..:...M.--------|
00001f40  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00001f80  0d 0d a2 05 3a 0d 0d ac  34 f4 20 46 75 6e 63 74  |....:...4. Funct|
00001f90  69 6f 6e 20 77 68 69 63  68 20 72 65 74 75 72 6e  |ion which return|
00001fa0  73 20 63 75 72 72 65 6e  74 20 74 69 6d 65 20 69  |s current time i|
00001fb0  6e 20 73 65 63 6f 6e 64  73 0d 0d b6 05 3a 0d 0d  |n seconds....:..|
00001fc0  c0 0b dd a4 63 74 69 6d  65 0d 0d ca 0f 67 65 74  |....ctime....get|
00001fd0  24 3d c2 91 24 2c 38 29  0d 0d d4 13 63 68 25 3d  |$=..$,8)....ch%=|
00001fe0  bb 28 c0 67 65 74 24 2c  32 29 29 0d 0d de 15 63  |.(.get$,2))....c|
00001ff0  6d 25 3d bb 28 c1 67 65  74 24 2c 34 2c 32 29 29  |m%=.(.get$,4,2))|
00002000  0d 0d e8 13 63 73 25 3d  bb 28 c2 67 65 74 24 2c  |....cs%=.(.get$,|
00002010  32 29 29 0d 0d f2 11 63  6d 25 2b 3d 28 63 68 25  |2))....cm%+=(ch%|
00002020  2a 36 30 29 0d 0d fc 11  63 73 25 2b 3d 28 63 6d  |*60)....cs%+=(cm|
00002030  25 2a 36 30 29 0d 0e 06  08 3d 63 73 25 0d 0e 10  |%*60)....=cs%...|
00002040  05 3a 0d 0e 1a 35 f4 20  46 75 6e 63 74 69 6f 6e  |.:...5. Function|
00002050  20 77 68 69 63 68 20 72  65 74 75 72 6e 73 20 73  | which returns s|
00002060  68 75 74 64 6f 77 6e 20  74 69 6d 65 20 69 6e 20  |hutdown time in |
00002070  73 65 63 6f 6e 64 73 0d  0e 24 29 f4 20 28 63 61  |seconds..$). (ca|
00002080  6c 6c 65 64 20 77 68 65  6e 65 76 65 72 20 73 6f  |lled whenever so|
00002090  6d 65 74 68 69 6e 67 20  68 61 70 70 65 6e 73 29  |mething happens)|
000020a0  0d 0e 2e 29 f4 20 6f 72  20 6d 6f 75 73 65 20 69  |...). or mouse i|
000020b0  73 20 6d 6f 76 65 64 2c  20 6b 65 79 20 70 72 65  |s moved, key pre|
000020c0  73 73 65 64 2c 20 65 74  63 0d 0e 38 0b dd a4 61  |ssed, etc..8...a|
000020d0  74 69 6d 65 0d 0e 42 10  61 73 25 3d 73 65 63 6f  |time..B.as%=seco|
000020e0  6e 64 73 25 0d 0e 4c 19  61 73 25 2b 3d 28 28 68  |nds%..L.as%+=((h|
000020f0  6f 75 72 73 25 2a 36 30  29 2a 36 30 29 0d 0e 56  |ours%*60)*60)..V|
00002100  16 61 73 25 2b 3d 28 6d  69 6e 75 74 65 73 25 2a  |.as%+=(minutes%*|
00002110  36 30 29 0d 0e 60 11 3d  28 61 73 25 2b a4 63 74  |60)..`.=(as%+.ct|
00002120  69 6d 65 29 0d 0e 6a 05  3a 0d 0e 74 4d f4 2d 2d  |ime)..j.:..tM.--|
00002130  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00002170  2d 2d 2d 2d 2d 2d 0d 0e  7e 05 3a 0d 0e 88 0c dd  |------..~.:.....|
00002180  20 f2 61 6c 61 72 6d 0d  0e 92 1d f4 20 74 69 6d  | .alarm..... tim|
00002190  65 20 74 6f 20 73 61 76  65 20 74 68 65 20 73 63  |e to save the sc|
000021a0  72 65 65 6e 0d 0e 9c 0d  6f 6c 64 6d 6f 64 65 3d  |reen....oldmode=|
000021b0  eb 0d 0e a6 0c c8 97 20  78 2c 79 2c 7a 0d 0e b0  |....... x,y,z...|
000021c0  06 c8 96 0d 0e ba 0f c8  97 20 78 78 2c 79 79 2c  |......... xx,yy,|
000021d0  7a 7a 0d 0e c4 28 e7 20  78 3c 3e 78 78 20 84 20  |zz...(. x<>xx . |
000021e0  79 3c 3e 79 79 20 84 20  7a 3c 3e 7a 7a 20 84 20  |y<>yy . z<>zz . |
000021f0  bf 28 31 30 29 3c 3e 22  22 8c 0d 0e ce 15 61 6c  |.(10)<>"".....al|
00002200  61 72 6d 5f 74 69 6d 65  3d a4 61 74 69 6d 65 0d  |arm_time=.atime.|
00002210  0e d8 05 e1 0d 0e e2 05  cd 0d 0e ec 17 f4 20 66  |.............. f|
00002220  69 6e 61 6c 20 63 68 65  63 6b 73 20 6f 76 65 72  |inal checks over|
00002230  0d 0e f6 17 6d 61 78 58  3d 31 32 38 30 3a 6d 61  |....maxX=1280:ma|
00002240  78 59 3d 31 30 32 34 0d  0f 00 1d 6d 61 78 58 3d  |xY=1024....maxX=|
00002250  6d 61 78 58 2d 37 31 3a  6d 61 78 59 3d 6d 61 78  |maxX-71:maxY=max|
00002260  59 2d 37 31 0d 0f 0a 2a  c8 99 20 22 57 69 6d 70  |Y-71...*.. "Wimp|
00002270  5f 42 61 73 65 4f 66 53  70 72 69 74 65 73 22 20  |_BaseOfSprites" |
00002280  b8 20 2c 69 63 6f 6e 73  70 72 69 74 65 25 0d 0f  |. ,iconsprite%..|
00002290  14 08 eb 20 31 32 0d 0f  1e 0c 62 6c 61 6e 6b 25  |... 12....blank%|
000022a0  3d b9 0d 0f 28 05 87 0d  0f 32 17 78 3d b3 28 6d  |=...(....2.x=.(m|
000022b0  61 78 58 29 3a 79 3d b3  28 6d 61 78 59 29 0d 0f  |axX):y=.(maxY)..|
000022c0  3c 12 c8 97 20 6d 78 25  2c 6d 79 25 2c 6d 7a 25  |<... mx%,my%,mz%|
000022d0  0d 0f 46 11 6c 65 66 74  3d a3 3a 64 6f 77 6e 3d  |..F.left=.:down=|
000022e0  a3 0d 0f 50 0a 65 78 69  74 3d a3 0d 0f 5a 0c f2  |...P.exit=...Z..|
000022f0  70 61 6c 65 74 74 65 0d  0f 64 05 f5 0d 0f 6e 0d  |palette..d....n.|
00002300  f2 74 65 73 74 73 79 73  74 0d 0f 78 0e e7 20 65  |.testsyst..x.. e|
00002310  78 69 74 3d a3 20 8c 0d  0f 82 0e e7 20 6c 65 66  |xit=. ...... lef|
00002320  74 3d b9 20 8c 0d 0f 8c  09 f2 6c 65 66 74 0d 0f  |t=. ......left..|
00002330  96 05 cc 0d 0f a0 0a f2  72 69 67 68 74 0d 0f aa  |........right...|
00002340  05 cd 0d 0f b4 0e e7 20  64 6f 77 6e 3d b9 20 8c  |....... down=. .|
00002350  0d 0f be 09 f2 64 6f 77  6e 0d 0f c8 05 cc 0d 0f  |.....down.......|
00002360  d2 07 f2 75 70 0d 0f dc  05 cd 0d 0f e6 06 c8 96  |...up...........|
00002370  0d 0f f0 0e f2 70 6c 6f  74 28 78 2c 79 29 0d 0f  |.....plot(x,y)..|
00002380  fa 05 cd 0d 10 04 0c fd  20 65 78 69 74 3d b9 0d  |........ exit=..|
00002390  10 0e 05 ee 0d 10 18 1d  c8 99 20 22 57 69 6d 70  |.......... "Wimp|
000023a0  5f 53 65 74 4d 6f 64 65  22 2c 6f 6c 64 6d 6f 64  |_SetMode",oldmod|
000023b0  65 0d 10 22 0c 62 6c 61  6e 6b 25 3d a3 0d 10 2c  |e..".blank%=...,|
000023c0  16 61 6c 61 72 6d 5f 74  69 6d 65 25 3d a4 61 74  |.alarm_time%=.at|
000023d0  69 6d 65 0d 10 36 05 e1  0d 10 40 05 3a 0d 10 4a  |ime..6....@.:..J|
000023e0  0f dd f2 70 6c 6f 74 28  78 2c 79 29 0d 10 54 27  |...plot(x,y)..T'|
000023f0  c8 99 20 26 30 30 32 45  2c 32 39 30 2c 69 63 6f  |.. &002E,290,ico|
00002400  6e 73 70 72 69 74 65 25  2c 22 62 61 6c 6c 22 2c  |nsprite%,"ball",|
00002410  78 2c 79 0d 10 5e 11 6f  6c 64 78 3d 78 3a 6f 6c  |x,y..^.oldx=x:ol|
00002420  64 79 3d 79 0d 10 68 05  e1 0d 10 72 05 3a 0d 10  |dy=y..h....r.:..|
00002430  7c 0a dd f2 6c 65 66 74  0d 10 86 09 78 3d 78 2d  ||...left....x=x-|
00002440  38 0d 10 90 12 e7 20 78  3c 30 20 8c 20 6c 65 66  |8..... x<0 . lef|
00002450  74 3d a3 0d 10 9a 05 e1  0d 10 a4 05 3a 0d 10 ae  |t=..........:...|
00002460  0b dd f2 72 69 67 68 74  0d 10 b8 09 78 3d 78 2b  |...right....x=x+|
00002470  38 0d 10 c2 19 e7 20 78  3e 3d 6d 61 78 58 2d 37  |8..... x>=maxX-7|
00002480  31 20 8c 20 6c 65 66 74  3d b9 0d 10 cc 05 e1 0d  |1 . left=.......|
00002490  10 d6 05 3a 0d 10 e0 08  dd f2 75 70 0d 10 ea 09  |...:......up....|
000024a0  79 3d 79 2b 38 0d 10 f4  19 e7 20 79 3e 3d 6d 61  |y=y+8..... y>=ma|
000024b0  78 59 2d 37 31 20 8c 20  64 6f 77 6e 3d b9 0d 10  |xY-71 . down=...|
000024c0  fe 05 e1 0d 11 08 05 3a  0d 11 12 0a dd f2 64 6f  |.......:......do|
000024d0  77 6e 0d 11 1c 09 79 3d  79 2d 38 0d 11 26 13 e7  |wn....y=y-8..&..|
000024e0  20 79 3c 3d 30 20 8c 20  64 6f 77 6e 3d a3 0d 11  | y<=0 . down=...|
000024f0  30 05 e1 0d 11 3a 05 3a  0d 11 44 21 f4 20 55 73  |0....:.:..D!. Us|
00002500  65 64 20 74 6f 20 74 65  73 74 20 6b 65 79 73 20  |ed to test keys |
00002510  61 6e 64 20 6d 6f 75 73  65 0d 11 4e 0e dd f2 74  |and mouse..N...t|
00002520  65 73 74 73 79 73 74 0d  11 58 17 c8 99 20 26 30  |estsyst..X... &0|
00002530  30 30 31 43 20 b8 6e 78  2c 6e 79 2c 6e 7a 0d 11  |001C .nx,ny,nz..|
00002540  62 2a e7 20 6e 78 3c 3e  6d 78 25 20 84 20 6e 79  |b*. nx<>mx% . ny|
00002550  3c 3e 6d 79 25 20 84 20  6e 7a 3c 3e 6d 7a 25 20  |<>my% . nz<>mz% |
00002560  8c 20 65 78 69 74 3d b9  0d 11 6c 17 e7 20 bf 28  |. exit=...l.. .(|
00002570  33 29 3c 3e 22 22 20 8c  20 65 78 69 74 3d b9 0d  |3)<>"" . exit=..|
00002580  11 76 05 e1 0d 11 80 05  3a 0d 11 8a 15 f4 20 50  |.v......:..... P|
00002590  61 6c 65 74 74 65 20 73  65 74 74 69 6e 67 0d 11  |alette setting..|
000025a0  94 0e dd 20 f2 70 61 6c  65 74 74 65 0d 11 9e 12  |... .palette....|
000025b0  ef 20 31 39 2c 36 2c 31  2c 30 2c 30 2c 30 0d 11  |. 19,6,1,0,0,0..|
000025c0  a8 05 e1 0d 11 b2 05 3a  0d 11 bc 11 dd f2 73 61  |.......:......sa|
000025d0  76 65 5f 73 74 61 74 75  73 0d 11 c6 23 66 69 6c  |ve_status...#fil|
000025e0  65 25 3d ae 28 22 3c 53  63 72 53 61 76 65 24 44  |e%=.("<ScrSave$D|
000025f0  69 72 3e 2e 53 74 61 74  75 73 22 29 0d 11 d0 32  |ir>.Status")...2|
00002600  f1 23 66 69 6c 65 25 2c  68 6f 75 72 73 25 2c 6d  |.#file%,hours%,m|
00002610  69 6e 75 74 65 73 25 2c  73 65 63 6f 6e 64 73 25  |inutes%,seconds%|
00002620  2c 61 63 74 69 76 65 25  2c 69 64 6c 65 25 0d 11  |,active%,idle%..|
00002630  da 0b d9 23 66 69 6c 65  25 0d 11 e4 05 e1 0d 11  |...#file%.......|
00002640  ee 05 3a 0d 11 f8 11 dd  f2 6c 6f 61 64 5f 73 74  |..:......load_st|
00002650  61 74 75 73 0d 12 02 0d  73 74 61 74 75 73 25 3d  |atus....status%=|
00002660  a3 0d 12 0c 23 66 69 6c  65 25 3d 8e 28 22 3c 53  |....#file%=.("<S|
00002670  63 72 53 61 76 65 24 44  69 72 3e 2e 53 74 61 74  |crSave$Dir>.Stat|
00002680  75 73 22 29 0d 12 16 0f  e7 20 66 69 6c 65 25 3d  |us")..... file%=|
00002690  30 20 8c 0d 12 20 0c 68  6f 75 72 73 25 3d 30 0d  |0 ... .hours%=0.|
000026a0  12 2a 0f 6d 69 6e 75 74  65 73 25 3d 31 30 0d 12  |.*.minutes%=10..|
000026b0  34 0e 73 65 63 6f 6e 64  73 25 3d 30 0d 12 3e 0d  |4.seconds%=0..>.|
000026c0  61 63 74 69 76 65 25 3d  b9 0d 12 48 0b 69 64 6c  |active%=...H.idl|
000026d0  65 25 3d b9 0d 12 52 05  cc 0d 12 5c 32 e8 23 66  |e%=...R....\2.#f|
000026e0  69 6c 65 25 2c 68 6f 75  72 73 25 2c 6d 69 6e 75  |ile%,hours%,minu|
000026f0  74 65 73 25 2c 73 65 63  6f 6e 64 73 25 2c 61 63  |tes%,seconds%,ac|
00002700  74 69 76 65 25 2c 69 64  6c 65 25 0d 12 66 1e e7  |tive%,idle%..f..|
00002710  61 63 74 69 76 65 25 3d  a3 20 8c 20 f2 74 6f 67  |active%=. . .tog|
00002720  67 6c 65 61 63 74 69 76  65 0d 12 70 1a e7 69 64  |gleactive..p..id|
00002730  6c 65 25 3d b9 20 8c 20  f2 74 6f 67 67 6c 65 69  |le%=. . .togglei|
00002740  64 6c 65 0d 12 7a 05 cd  0d 12 84 0b d9 23 66 69  |dle..z.......#fi|
00002750  6c 65 25 0d 12 8e 16 61  6c 61 72 6d 5f 74 69 6d  |le%....alarm_tim|
00002760  65 25 3d a4 61 74 69 6d  65 0d 12 98 0d f2 73 65  |e%=.atime.....se|
00002770  74 5f 74 68 65 6d 0d 12  a2 0d 73 74 61 74 75 73  |t_them....status|
00002780  25 3d b9 0d 12 ac 05 3a  0d 12 b6 0e dd f2 73 65  |%=.....:......se|
00002790  74 5f 74 68 65 6d 0d 12  c0 20 f4 20 4e 6f 77 20  |t_them... . Now |
000027a0  73 65 74 20 74 68 65 20  69 63 6f 6e 73 20 6c 69  |set the icons li|
000027b0  6b 65 77 69 73 65 0d 12  ca 0b f4 20 48 6f 75 72  |kewise..... Hour|
000027c0  73 0d 12 d4 24 f2 70 75  74 69 63 6f 6e 74 65 78  |s...$.puticontex|
000027d0  74 28 6e 6f 74 69 66 79  2c 33 2c c3 28 68 6f 75  |t(notify,3,.(hou|
000027e0  72 73 25 29 29 0d 12 de  0d f4 20 4d 69 6e 75 74  |rs%))..... Minut|
000027f0  65 73 0d 12 e8 26 f2 70  75 74 69 63 6f 6e 74 65  |es...&.puticonte|
00002800  78 74 28 6e 6f 74 69 66  79 2c 36 2c c3 28 6d 69  |xt(notify,6,.(mi|
00002810  6e 75 74 65 73 25 29 29  0d 12 f2 0d f4 20 53 65  |nutes%))..... Se|
00002820  63 6f 6e 64 73 0d 12 fc  26 f2 70 75 74 69 63 6f  |conds...&.putico|
00002830  6e 74 65 78 74 28 6e 6f  74 69 66 79 2c 37 2c c3  |ntext(notify,7,.|
00002840  28 73 65 63 6f 6e 64 73  25 29 29 0d 13 06 05 e1  |(seconds%)).....|
00002850  0d ff                                             |..|
00002852