Home » Archimedes archive » Micro User » MU 1991-03.adf » PD-Stuff » Utilities/Clocks/!IconClock/ModMaker

Utilities/Clocks/!IconClock/ModMaker

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-03.adf » PD-Stuff
Filename: Utilities/Clocks/!IconClock/ModMaker
Read OK:
File size: 9D82 bytes
Load address: 0000
Exec address: 0000
File contents

� > ModMaker

2codelen%  = 8*1024                      : � 8K
(� code% codelen%
2
<� flags
Fv_flag = 1 << 28
P
Z
� misc
d stack_length            = 24
noptions_variable_length = 3
x work_space_length       = 88
�!iconbar_menu_length     = 124
� time_format_menu_length = 76
�!clockface_menu_length   = 100
�
�� defaults
�time_format_default = 1
�clockface_default   = 0
�
�%� offsets within rma and rma size
�'task_handle                     = 0
�5word                            = task_handle + 4
�.icon_handle                     = word + 4
�5info_window_handle              = icon_handle + 4
<pollidle_time                   = info_window_handle + 4
7time_format                     = pollidle_time + 4
5clockface                       = time_format + 1
"5old_clockface                   = time_format + 2
,5time_block                      = time_format + 3
65rma_icon_validation             = time_format + 8
@=sprite_name                     = rma_icon_validation + 1
J>rma_icon_validation_last_letter = rma_icon_validation + 10
T>rma_icon_text                   = rma_icon_validation + 12
^7poll_space                      = rma_icon_text + 8
h6work_space                      = poll_space + 256
rDrma_iconbar_menu                = work_space + work_space_length
|Lrma_time_format_menu            = rma_iconbar_menu + iconbar_menu_length
�Srma_clockface_menu              = rma_time_format_menu +time_format_menu_length
�Pstack_start                     = rma_clockface_menu + clockface_menu_length
�@stack                           = stack_start + stack_length
�+rma_size                        = stack
�
�� opt%=12 � 14 � 2
�P%=0
�O%=code%
�L%=code%+codelen%
�[
�        opt     opt%
�
�S; -----------------------------------------------------------------------------
; Module header

        equd    start
&        equd    0
0        equd    final
:        equd    service
D        equd    title
N        equd    help
X        equd    command
b?        equd    0                       ; no swis supported
l        equd    0
v        equd    0
�        equd    0
�
�
.title
�"        equs    "IconClock"+�0
�	.help
�         equs    "Icon Clock"
�        equb    9
�*        equs    "1.00 ("+��$,5,11)+")"
�        equb    0
�        align
�
�S; -----------------------------------------------------------------------------
�; Module command table

.command

.startcom
 *        equs    "Desktop_IconClock"+�0
*        align
4-        equd    desktop_iconclock_command
>;        equd    0                       ; no parameters
H,        equd    desktop_iconclock_syntax
R*        equd    desktop_iconclock_help
\        equd    0
f.desktop_iconclock_help
p@        equs    "The Icon Clock utility displays a clock on"
z        equb    27
�5        equb    2                       ; " the "
�        equs    "iconbar."
�        equb    13
�        equb    10
�"        equs    "Do not use *"
�        equb    27
�A        equb    0                       ; "Desktop_IconClock"
�-        equs    ", use *Desktop instead."
�        equb    0
�.desktop_iconclock_syntax
�        equb    27
�I        equb    1                       ; "Syntax *Desktop_IconClock"
�        equb    0
        align

S; -----------------------------------------------------------------------------
$; Module service code
.
8.service
B?        cmp     r1,#&49                 ; service_startwimp
L%        beq     service_startwimp
VA        cmp     r1,#&4a                 ; service_startedwimp
`'        beq     service_startedwimp
j;        cmpne   r1,#&27                 ; service_reset
t<        movnes  pc,r14                  ; exit unclaimed
~
�S; -----------------------------------------------------------------------------
�R; The service reset has arrived so the machine has been. Reset our task handle
�(; to zero so that we can start again
�
�        stmfd   r13!,{14}
�        mov     r14,#0
�*        str     r14,[r12,#task_handle]
�        ldmfd   r13!,{pc}
�
�S; -----------------------------------------------------------------------------
�R; The service startedwimp has arrived so the wimp has started up. If we failed
�?; during startup reset task handle so that we can try again


.service_startedwimp
        stmfd   r13!,{14}
*        ldr     r14,[r12,#task_handle]
(H        cmp     r14,#0                  ; did we fail during startup
2        movlt   r14,#0
<F        strlt   r14,[r12,#task_handle]  ; if so, reset failed flag
F        ldmfd   r13!,{pc}
P
ZS; -----------------------------------------------------------------------------
dP; The wimp wants any application modules to start themselves up.  This means
n:; us.   We tell the wimp to issue a *Desktop_IconClock
x
�.service_startwimp
�$        stmfd   r13!,{r2-r4,r14}
�        ldr     r14,[r12]
�        cmp     r14,#0
�P        ldmnefd r13!,{r2-r4,pc}         ; could not start or already started
�:                                        ; ok so ignore
�=        mov     r0,#6                   ; Claim workspace
�         mov     r3,#rma_size
�         swi     "XOS_Module"
�S        mvnvs   r2,#0                   ; -1 to prevent claim of call next time
�        str     r2,[r12]
�#        ldmvsfd r13!,{r2-r4,pc}
�D        str     r12,[r2,#word]          ; store our private word
G        adr     r0,startcom             ; r0 -> our startup command
P                                        ; the wimp will execute this command
;        mov     r1,#0                   ; claim service
"E        str     r1,[r2,#task_handle]    ; not started as Task yet
,#        ldmfd   r13!,{r2-r4,pc}
6
@S; -----------------------------------------------------------------------------
J; Module finalisation code
T
^
.final
h"        stmfd r13!,{r0-r6,r14}
r        ldr   r12,[r12]
|        cmp   r12,#0
�P        blgt  closedown                 ; shut down if not already shut down
�!        ldmfd r13!,{r0-r6,pc}
�
�S; -----------------------------------------------------------------------------
�I; *Desktop_IconClock has been executed. Cause an error if not by wimp
�
�.desktop_iconclock_command
�        stmfd   r13!,{r14}
�        ldr     r14,[r12]
�        cmp     r14,#0
�        ble     bad_start
�*        ldr     r14,[r14,#task_handle]
�J        teq     r14,#0                  ; if not 0 then not a *DESKTOP
@        moveq   r2,r0                   ; r2 -> command tail
=        adreq   r1,title                ; r1 -> our title
        moveq   r0,#2
&?        swieq   "XOS_Module"            ; enter us at start
0.bad_start
:        ldmfd   r13!,{r14}
D!        adr     r0,starterror
N"        orrs    pc,r14,#v_flag
X.starterror
b        equd    0
l6        equs    "Use *Desktop to start Icon Clock"
v        equb    0
�        align
�
�S; -----------------------------------------------------------------------------
�4; Module start code called by *Desktop_IconClock
�
�
.start
�+        bl      see_if_in_desktop_world
�        ldr     r12,[r12]
�        cmp     r12,#0
�!        adrle   r0,starterror
�&        swile   "OS_GenerateError"
�"        add     r13,r12,#stack
�)        ldr     r0,[r12,#task_handle]
        cmp     r0,#0
        ldrgt   r1,task
M        swigt   "XWimp_CloseDown"       ; have been reentered so shutdown
         ldr     r1,task
*B        mov     r0,#200                 ; last known wimp 2.00
4@        adr     r2,switcher_name        ; r2 -> "Icon Clock"
>&        swi     "XWimp_Initialise"
H        mvnvs   r1,#0
R)        str     r1,[r12,#task_handle]
\!        bvs     startup_error
f)        bl      read_options_variable
p        bl      create_icon
z&        bl      create_info_window
�0        bl      work_out_first_pollidle_time
�)        add     r2,r12,#pollidle_time
�        b       poll_first
�
�.see_if_in_desktop_world
�        mov     r0,#0
�'        swi     "XWimp_ReadSysInfo"
�&        swivs   "OS_GenerateError"
�K        teq     r0,#0                   ; see how many apps are running
�B        adreq   r0,starterror           ; none so report error
�&        swieq   "OS_GenerateError"
�=        mov     r0,#6                   ; Claim workspace
�         mov     r3,#rma_size
	         swi     "XOS_Module"
	&        swivs   "OS_GenerateError"
	        str     r2,[r12]
	$D        str     r12,[r2,#word]          ; store our private word
	.        mov     pc,r14
	8
	BS; -----------------------------------------------------------------------------
	LN; report an error using Wimp_ReportError, set could not start up flag then
	V; closedown
	`; entry
	j;       r0 -> error block
	t
; exit
	~;       doesn't
	�
	�.startup_error
	�&        add     r1,r12,#poll_space
	�        ldr     r2,[r0],#4
	�        str     r2,[r1],#4
	�,        adr     r2,startup_error_message
	�.startup_error_loop1
	�        ldrb    r3,[r2],#1
	�        cmp     r3,#0
	�        strneb  r3,[r1],#1
	�'        bne     startup_error_loop1
	�.startup_error_loop2
        ldrb    r3,[r0],#1

        cmp     r3,#0
        strneb  r3,[r1],#1
'        bne     startup_error_loop2
(.startup_error_loop3
2        ldrb    r3,[r2],#1
<        strb    r3,[r1],#1
F        cmp     r3,#0
P'        bne     startup_error_loop3
Z&        add     r0,r12,#poll_space
d9        mov     r1,#2                   ; cancel only
n         bl      report_error
x        bl      closedown
�        mvn     r0,#0
�I        str     r0,[r12]                ; set could not start up flag
�        swi     "OS_Exit"
�.startup_error_message
�7        equs    "Icon Clock could not startup ("+�0
�4        equs    ") and must exit immediately"+�0
�        align
�
�S; -----------------------------------------------------------------------------
�R; read the options variable. Report and error if invalid and then use defaults
�7; if undefined use defaults but do not report error
�
�.read_options_variable
        stmfd   r13!,{r14}
,        adr     r0,options_variable_name
&        add     r1,r12,#work_space
"F        mvn     r2,#0                   ; check for existence only
,8        mov     r3,#0                   ; first call
6        mov     r4,#3
@$        swi     "XOS_ReadVarVal"
JD        teq     r2,#0                   ; see if variable exists
T*        beq     options_variable_unset
^,        adr     r0,options_variable_name
h/        mov     r2,#options_variable_length
r8        mov     r3,#0                   ; first call
|        mov     r4,#3
�$        swi     "XOS_ReadVarVal"
�,        bvs     options_variable_invalid
�/        teq     r2,#options_variable_length
�,        bne     options_variable_invalid
�"        mov     r2,#�" " << 16
�        ldrb    r0,[r1]
�        add     r2,r2,r0
�        ldrb    r0,[r1,#1]
�#        add     r2,r2,r0,lsl #8
�        ldr     r0,twelve
�        teq     r0,r2
�        moveq   r0,#0
�)        streqb  r0,[r12,#time_format]
#        beq     check_clockface
"        ldr     r0,twenty_four
        teq     r0,r2
&,        bne     options_variable_invalid
0        mov     r0,#1
:)        strb    r0,[r12,#time_format]
D.check_clockface
N        ldrb    r0,[r1,#2]
X=        bic     r0,r0,#1 << 5           ; make upper case
b        teq     r0,#�"R"
l        teqne   r0,#�"L"
v        teqne   r0,#�"B"
�,        bne     options_variable_invalid
�        cmp     r0,#�"L"
�        movlt   r0,#2
�        moveq   r0,#1
�        movgt   r0,#0
�'        strb    r0,[r12,#clockface]
�        ldmfd   r13!,{pc}
�.options_variable_invalid
�5        adr     r0,options_variable_invalid_error
�#        bl      report_error_ok
�.options_variable_unset
�+        mov     r0,#time_format_default
�)        strb    r0,[r12,#time_format]

)        mov     r0,#clockface_default

'        strb    r0,[r12,#clockface]

(        bl      set_options_variable

         ldmfd   r13!,{pc}

*#.options_variable_invalid_error

4        equd    0

>F        equs    "Options variable (IconClock$Options) is invalid."

H:        equs    " Using the default setting of 24R"+�0

R        align

\.options_variable_name

f*        equs    "IconClock$Options"+�0

pppgn

z.twelve

�        equs    "12 "+�0

�.twenty_four

�        equs    "24 "+�0

�

�S; -----------------------------------------------------------------------------

�; set the options variable

�

�.set_options_variable

�        stmfd   r13!,{r14}

�&        add     r1,r12,#work_space

�)        ldrb    r0,[r12,#time_format]

�        teq     r0,#0

�        ldreq   r0,twelve
"        ldrne   r0,twenty_four
        str     r0,[r1]
'        ldrb    r0,[r12,#clockface]
$        cmp     r0,#1
.        movlt   r0,#�"R"
8        moveq   r0,#�"L"
B        movgt   r0,#�"B"
L        strb    r0,[r1,#2]
V,        adr     r0,options_variable_name
`/        mov     r2,#options_variable_length
j8        mov     r3,#0                   ; first call
t<        mov     r4,#0                   ; type is string
~#        swi     "XOS_SetVarVal"
�#        blvs    report_error_ok
�        ldmfd   r13!,{pc}
�
�S; -----------------------------------------------------------------------------
�'; information used by task start up
�
�	.task
�        equs    "TASK"
�.switcher_name
�&        equs    "Iconbar Clock"+�0
���gn
�
S; -----------------------------------------------------------------------------

; Put icon on iconbar

.create_icon
(        stmfd   r13!,{r14}
2        bl      read_time
<&        adr     r0,icon_validation
F*        adr     r1,end_icon_validation
P/        add     r2,r12,#rma_icon_validation
Z        bl      copy
d*        bl      setup_icon_sprite_name
n'        add     r2,r12,#sprite_name
x,        bl      check_sprite_in_wimppool
�!        bvs     startup_error
�#        adr     r0,iconbar_icon
�'        adr     r1,end_iconbar_icon
�&        add     r2,r12,#poll_space
�        bl      copy
�&        add     r1,r12,#poll_space
�/        add     r0,r12,#rma_icon_validation
�?        str     r0,[r1,#put_icon_validation - iconbar_icon]
�)        add     r0,r12,#rma_icon_text
�9        str     r0,[r1,#put_icon_text - iconbar_icon]
�&        swi     "XWimp_CreateIcon"
�        bvs     fatal_error
�)        str     r0,[r12,#icon_handle]
        ldmfd   r13!,{pc}

S; -----------------------------------------------------------------------------
"!; definition for iconbar icon
,
6.iconbar_icon
@H        equd    -1                      ; right hand side of iconbar
J        equd    0
T        equd    0
^        equd    112
h        equd    68
rH        equd    1+2+(1 << 3)+(1 << 4)+(1 << 8)+(3 << 12)+(&17 << 24)
|@                                        ; text + sprite icon
�Q                                        ; centred horizontally and vertically
�.put_icon_text
�        equd    0
�.put_icon_validation
�        equd    0
�        equd    6
�.end_iconbar_icon
�.icon_validation
�$        equs    "S!iconclock"+�0
�.end_icon_validation
���gn
�
�S; -----------------------------------------------------------------------------
M; work out number of seconds until minutes change and use this to get the
8; value of OS_MonotonicTime to give to Wimp_PollIdle

&!.work_out_first_pollidle_time
0&        add     r0,r12,#time_block
:&        add     r1,r12,#work_space
D<        mov     r2,#3                   ; size of buffer
N#        adr     r3,seconds_only
X,        swi     "XOS_ConvertDateAndTime"
b        bvs     fatal_error
lJ                                        ; r0 -> ascii value of seconds
vH                                        ; r1 not needed as no buffer
�Q        mov     r2,#0                   ; no buffer as result will be integer
�,        swi     "XOS_EvaluateExpression"
�        bvs     fatal_error
�D                                        ; r2 = number of seconds
�L        rsb     r2,r2,#60               ; r2 = number of seconds to next
�>                                        ; change of minute
�+        swi     "XOS_ReadMonotonicTime"
�        bvs     fatal_error
�        mov     r1,#100
�P        mla     r0,r2,r1,r0             ; r0 = time to use for first call to
�;                                        ; Wimp_PollIdle
�+        str     r0,[r12,#pollidle_time]
�        mov     pc,r14
.seconds_only
        equs    "%se"+�0
gn
 
*S; -----------------------------------------------------------------------------
40; set the name of the sprite for the iconbar
>
H.setup_icon_sprite_name
R'        ldrb    r0,[r12,#clockface]
\        add     r0,r0,#�"1"
f=        strb    r0,[r12,#rma_icon_validation_last_letter]
p        mov     pc,r14
z
�.sixty_seconds
�        equd    60*100
�
�S; -----------------------------------------------------------------------------
�/; check a sprite is in the wimp sprite pool
�
; exit
�(;       v set on if sprite not found
�*;       r0 -> error block if not found
�
�.check_sprite_in_wimppool
�         stmfd   r13!,{r0-r6}
�>        mov     r0,#40                  ; read sprite info
�$        swi     "XWimp_SpriteOp"
         ldmvcfd r13!,{r0-r6}
H        movvc   pc,r14                  ; return if sprite was found
&        add     r0,r12,#work_space
$        mov     r1,#0
.        str     r1,[r0],#4
8)        adr     r1,csiw_error_message
B.csiw_error_loop1
L        ldrb    r2,[r1],#1
V        teq     r2,#0
`        strneb  r2,[r0],#1
j$        bne     csiw_error_loop1
t'        add     r3,r12,#sprite_name
~.csiw_error_loop2
�        ldrb    r2,[r3],#1
�        teq     r2,#0
�        strneb  r2,[r0],#1
�$        bne     csiw_error_loop2
�.csiw_error_loop3
�        ldrb    r2,[r1],#1
�        strb    r2,[r0],#1
�        teq     r2,#0
�$        bne     csiw_error_loop3
�         ldmfd   r13!,{r0-r6}
�&        add     r0,r12,#work_space
�?        orrs    pc,r14,#v_flag          ; return with v set
.csiw_error_message

$        equs    "The sprite "+�0
M        equs    " must be in the wimp sprite pool. See the !Help file"+�0
gn
(
2S; -----------------------------------------------------------------------------
<; Copy a block of memory
F; entry
P ;       r0 -> start of block
Z ;       r1 -> end of block+1
d";       r2 -> where to copy to
n; exits
x;       r0,r2,r3 corrupted
�
�	.copy
�        ldrb    r3,[r0],#1
�        strb    r3,[r2],#1
�        cmp     r0,r1
�        blt     copy
�        mov     pc,r14
�
�S; -----------------------------------------------------------------------------
�; wimp poll loop
�
�	.poll
�+        swi     "XOS_ReadMonotonicTime"
        bvs     fatal_error
+        ldr     r2,[r12,#pollidle_time]
I        ldr     r3,sixty_seconds        ; 60 seconds in centi-seconds
".set_pollidle_time_loop
,        cmp     r0,r2
6        addge   r2,r2,r3
@*        bge     set_pollidle_time_loop
J+        str     r2,[r12,#pollidle_time]
T.poll_first
^K        mov     r0,#%10110000           ; disallow as many reason codes
h9        add     r0,r0,#%11000 << 8      ; as possible
r&        add     r1,r12,#poll_space
|$        swi     "XWimp_PollIdle"
�        bvs     fatal_error
�        mov     r3,r0
�+        swi     "XOS_ReadMonotonicTime"
�        bvs     fatal_error
�+        ldr     r2,[r12,#pollidle_time]
�        cmp     r0,r2
�        blge    update_time
�        mov     r0,r3
�        cmp     r0,#1
�!        beq     redraw_window
�        teq     r0,#2
�        beq     open_window
�        teq     r0,#3
         beq     close_window
        teq     r0,#6
        beq     mouse_click
&        teq     r0,#9
0        beq     menu_select
:        teq     r0,#17
D        teqne   r0,#18
N        beq     message
X        b       poll
b
lS; -----------------------------------------------------------------------------
v; update the clock
�
�.update_time
�        stmfd   r13!,{r14}
�        bl      read_time
�        ldmfd   r13!,{r14}
�.redisplay_sprite
�&        add     r1,r12,#work_space
�:        mvn     r0,#0                   ; r0 = iconbar
�        str     r0,[r1]
�)        ldr     r0,[r12,#icon_handle]
�        str     r0,[r1,#4]
�G        mov     r0,#0                   ; don't change flags at all
�4        str     r0,[r1,#8]              ; � word
8        str     r0,[r1,#12]             ; clear word
(        swi     "XWimp_SetIconState"
        bvs     fatal_error
         mov     pc,r14
*
4S; -----------------------------------------------------------------------------
>N; redraw window request has been sent. This can only be for display window
H
R.redraw_window
\(        swi     "XWimp_RedrawWindow"
f        bvs     fatal_error
p        b       poll
z
�S; -----------------------------------------------------------------------------
�'; open window request has been sent
�
�.open_window
�&        swi     "XWimp_OpenWindow"
�        bvs     fatal_error
�        b       poll
�
�S; -----------------------------------------------------------------------------
�(; close window request has been sent
�
�.close_window
�'        swi     "XWimp_CloseWindow"
        bvs     fatal_error
        b       poll

$S; -----------------------------------------------------------------------------
.; a mouse click has occured
8
B.mouse_click
L@        ldr     r0,[r1,#12]             ; r0 = window handle
V<        cmn     r0,#2                   ; see if iconbar
`K        bne     poll                    ; poll if not, can this happen?
j>        ldr     r0,[r1,#16]             ; r0 = icon handle
t)        ldr     r2,[r12,#icon_handle]
~9        teq     r0,r2                   ; see if ours
�K        bne     poll                    ; poll if not, can this happen?
�?        ldr     r0,[r1,#8]              ; r0 = button state
�N        tst     r0,#2                   ; see if 'menu' button was pressed
�9        beq     poll                    ; poll if not
�
�S; -----------------------------------------------------------------------------
�9; a click with 'menu' has occured on our iconbar icon
�
�.open_iconbar_menu
�#        adr     r0,iconbar_menu
�)        adr     r1,end_clockface_menu
�,        add     r2,r12,#rma_iconbar_menu
        bl      copy

,        add     r1,r12,#rma_iconbar_menu
0        ldr     r0,[r12,#info_window_handle]
B        str     r0,[r1,#put_info_window_handle - iconbar_menu]
(0        add     r0,r12,#rma_time_format_menu
2@        str     r0,[r1,#put_time_format_menu - iconbar_menu]
<.        add     r0,r12,#rma_clockface_menu
F>        str     r0,[r1,#put_clockface_menu - iconbar_menu]
P)        ldrb    r3,[r12,#time_format]
ZH        teq     r3,#0                   ; see which format we are in
d9        ldreq   r4,[r1,#hour_12_flags - iconbar_menu]
n        orreq   r4,r4,#1
x9        streq   r4,[r1,#hour_12_flags - iconbar_menu]
�9        ldrne   r4,[r1,#hour_24_flags - iconbar_menu]
�        orrne   r4,r4,#1
�9        strne   r4,[r1,#hour_24_flags - iconbar_menu]
�
�'        ldrb    r3,[r12,#clockface]
�H        cmp     r3,#1                   ; see which format we are in
�8        ldrlt   r4,[r1,#raised_flags - iconbar_menu]
�        orrlt   r4,r4,#1
�8        strlt   r4,[r1,#raised_flags - iconbar_menu]
�9        ldreq   r4,[r1,#lowered_flags - iconbar_menu]
�        orreq   r4,r4,#1
�9        streq   r4,[r1,#lowered_flags - iconbar_menu]
�8        ldrgt   r4,[r1,#border_flags - iconbar_menu]
        orrgt   r4,r4,#1
8        strgt   r4,[r1,#border_flags - iconbar_menu]

"'        adr     r2,clockface_raised
,,        bl      check_sprite_in_wimppool
6=        ldrvs   r4,[r1,#raised_icon_flags - iconbar_menu]
@"        orrvs   r4,r4,#1 << 22
J=        strvs   r4,[r1,#raised_icon_flags - iconbar_menu]
T(        adr     r2,clockface_lowered
^,        bl      check_sprite_in_wimppool
h>        ldrvs   r4,[r1,#lowered_icon_flags - iconbar_menu]
r"        orrvs   r4,r4,#1 << 22
|>        strvs   r4,[r1,#lowered_icon_flags - iconbar_menu]
�'        adr     r2,clockface_border
�,        bl      check_sprite_in_wimppool
�=        ldrvs   r4,[r1,#border_icon_flags - iconbar_menu]
�"        orrvs   r4,r4,#1 << 22
�=        strvs   r4,[r1,#border_icon_flags - iconbar_menu]
�
�N        ldr     r2,[r12,#poll_space]    ; r2 = x coordinate of mouse click
�D        sub     r2,r2,#64               ; as in acorn guidelines
�        mov     r3,#96+44*4
�&        swi     "XWimp_CreateMenu"
�        bvs     fatal_error
�D        b       poll                    ; return to polling loop
�
.clockface_raised
#        equs    "!iconcloc1"+�0
.clockface_lowered
&#        equs    "!iconcloc2"+�0
0.clockface_border
:#        equs    "!iconcloc3"+�0
DDDgn
N
XS; -----------------------------------------------------------------------------
b!; definition for iconbar menu
l
v.iconbar_menu
�         �string("IconClock")
�        equb    7
�        equb    2
�        equb    7
�        equb    0
�        equd    9*16+12
�        equd    44
�        equd    0
�;                                        ; start entry 1
�        equd    0
�.put_info_window_handle
�=        equd    -1                      ; filled in later
�(        equd    1+(1 << 5)+(7 << 24)
        �string("Info")
;                                        ; start entry 2
        equd    0
 .put_time_format_menu
*=        equd    -1                      ; filled in later
4(        equd    1+(1 << 5)+(7 << 24)
>        �string("Format")
H;                                        ; start entry 3
R        equd    0
\.put_clockface_menu
f=        equd    -1                      ; filled in later
p(        equd    1+(1 << 5)+(7 << 24)
z         �string("Clockface")
�;                                        ; start entry 3
�8        equd    &80                     ; last entry
�?        equd    -1                      ; no submenu/window
�(        equd    1+(1 << 5)+(7 << 24)
�        �string("Quit")
�.end_iconbar_menu
�
�S; -----------------------------------------------------------------------------
�; time format submenu
�
�.time_format_menu
�        �string("Format")
�        equb    7
        equb    2
        equb    7
        equb    0
$        equd    7*16+12
.        equd    44
8        equd    0
B;                                        ; start entry 1
L.hour_12_flags
V        equd    0
`?        equd    -1                      ; no submenu/window
j(        equd    1+(1 << 5)+(7 << 24)
t        �string("12 Hour")
~;                                        ; start entry 2
�.hour_24_flags
�8        equd    &80                     ; last entry
�?        equd    -1                      ; no submenu/window
�(        equd    1+(1 << 5)+(7 << 24)
�        �string("24 Hour")
�.end_time_format_menu
�
�S; -----------------------------------------------------------------------------
�; clockface submenu
�
�.clockface_menu
�         �string("Clockface")
        equb    7

        equb    2
        equb    7
        equb    0
(        equd    9*16
2        equd    44
<        equd    0
F;                                        ; start entry 1
P.raised_flags
Z        equd    0
d?        equd    -1                      ; no submenu/window
n.raised_icon_flags
x(        equd    1+(1 << 5)+(7 << 24)
�        �string("Raised")
�;                                        ; start entry 2
�.lowered_flags
�        equd    0
�?        equd    -1                      ; no submenu/window
�.lowered_icon_flags
�(        equd    1+(1 << 5)+(7 << 24)
�        �string("Lowered")
�;                                        ; start entry 3
�.border_flags
�8        equd    &80                     ; last entry
�?        equd    -1                      ; no submenu/window
�.border_icon_flags
(        equd    1+(1 << 5)+(7 << 24)
        �string("Border")
.end_clockface_menu
"
,S; -----------------------------------------------------------------------------
6$; a menu entry has been selected
@
J.menu_select
TF        ldr     r0,[r1]                 ; r0 = menu entry selected
^F        teq     r0,#0                   ; see if info was selected
h?        beq     see_if_reopen           ; was so do nothing
rC        cmp     r0,#2                   ; see what was selected
|?        bgt     closedown_and_exit      ; quit so closedown
�N        blt     format_selected         ; format or sub-entry was selected
�Q                                        ; clockface or sub-entry was selected
�J        ldr     r0,[r1,#4]              ; r0 = second depth menu entry
�G        cmp     r0,#0                   ; see if entry was selected
�<        blt     see_if_reopen           ; wasn't so skip
�'        ldrb    r1,[r12,#clockface]
�+        strb    r1,[r12,#old_clockface]
�D        strb    r0,[r12,#clockface]     ; store new clock format
�*        bl      setup_icon_sprite_name
�'        add     r2,r12,#sprite_name
�,        bl      check_sprite_in_wimppool
�         bvc     sprite_found
�#        bl      report_error_ok
 +        ldrb    r1,[r12,#old_clockface]
 '        strb    r1,[r12,#clockface]
 *        bl      setup_icon_sprite_name
 &        b       poll
 0.sprite_found
 :K        bl      set_options_variable    ; then set the options variable
 D$        bl      redisplay_sprite
 N!        b       see_if_reopen
 X.format_selected
 bJ        ldr     r0,[r1,#4]              ; r0 = second depth menu entry
 lG        cmp     r0,#0                   ; see if entry was selected
 v<        blt     see_if_reopen           ; wasn't so skip
 �D        strb    r0,[r12,#time_format]   ; store new clock format
 �K        bl      set_options_variable    ; then set the options variable
 �J        bl      update_time             ; and finally update the clock
 �.see_if_reopen
 �&        add     r1,r12,#work_space
 �*        swi     "XWimp_GetPointerInfo"
 �        bvs     fatal_error
 �>        ldr     r0,[r1,#8]              ; get button state
 �G        tst     r0,#1                   ; see if adjust was clicked
 �9        beq     poll                    ; poll if not
 �9        b       open_iconbar_menu       ; reopen menu
 �
 �S; -----------------------------------------------------------------------------
!1; the nice wimp manager has sent us a message
!
!.message
! A        ldr     r0,[r1,#16]             ; r0 = message action
!*A        teq     r0,#0                   ; see if quit message
!49        bne     poll                    ; if not poll
!>
!HS; -----------------------------------------------------------------------------
!R; closedown and exit
!\
!f.closedown_and_exit
!p        bl      closedown
!z        swi     "OS_Exit"
!�
!�S; -----------------------------------------------------------------------------
!�M; either we could not start up, the user wants us to closedown or we have
!�$; had a module finalisation call
!�
!�.closedown
!�        mov     r6,r14
!�)        ldr     r0,[r12,#task_handle]
!�G        cmp     r0,#0                   ; are we running as a task?
!�        ldrgt   r1,task
!�>        swigt   "XWimp_CloseDown"       ; close down if so
!�        mov     r2,r12
!�A        ldr     r12,[r12,#word]         ; r12 -> private word
"        mov     r0,#0
"?        str     r0,[r12]                ; zero private word
"        mov     r0,#7
"$?        swi     "XOS_Module"            ; release workspace
".        mov     pc,r6
"8
"BS; -----------------------------------------------------------------------------
"L; read the real time
"V
"`.read_time
"j&        add     r1,r12,#time_block
"tM        mov     r0,#3                   ; read real-time in 5 byte format
"~        strb    r0,[r1]
"�M        mov     r0,#14                  ; read real-time in 5 byte format
"�        swi     "XOS_Word"
"�        bvs     fatal_error
"�>        mov     r0,r1                   ; r0 -> time block
"�)        add     r1,r12,#rma_icon_text
"�<        mov     r2,#6                   ; size of buffer
"�)        ldrb    r3,[r12,#time_format]
"�Q        teq     r3,#0                   ; see which clock format we are using
"�%        adreq   r3,time_format_12
"�%        adrne   r3,time_format_24
"�,        swi     "XOS_ConvertDateAndTime"
"�        bvs     fatal_error
#        mov     pc,r14
#

#.time_format_12
#         equs    "%12:%MI"+�0
#(.time_format_24
#2         equs    "%24:%MI"+�0
#<<<gn
#F
#PS; -----------------------------------------------------------------------------
#Z@; report a fatal error using Wimp_ReportError then closedown
#d; entry
#n;       r0 -> error block
#x
; exit
#�;       doesn't
#�
#�.fatal_error
#�&        add     r1,r12,#poll_space
#�        ldr     r2,[r0],#4
#�        str     r2,[r1],#4
#�*        adr     r2,fatal_error_message
#�.fatal_error_loop1
#�        ldrb    r3,[r2],#1
#�        teq     r3,#0
#�        strneb  r3,[r1],#1
#�%        bne     fatal_error_loop1
#�.fatal_error_loop2
$        ldrb    r3,[r0],#1
$        teq     r3,#0
$        strneb  r3,[r1],#1
$"%        bne     fatal_error_loop2
$,.fatal_error_loop3
$6        ldrb    r3,[r2],#1
$@        strb    r3,[r1],#1
$J        teq     r3,#0
$T%        bne     fatal_error_loop3
$^&        add     r0,r12,#poll_space
$h=        mov     r1,#2                   ; cancel box only
$r         bl      report_error
$|&        b       closedown_and_exit
$�.fatal_error_message
$�L        equs    "Iconbar Clock has suffered a fatal internal error ("+�0
$�4        equs    ") and must exit immediately"+�0
$���gn
$�
$�S; -----------------------------------------------------------------------------
$�,; report an error using Wimp_ReportError
$�=; if enter at report_error_ok only an OK box is displayed
$�; entry
$�;       r0 -> error block
$�(;       r1 =  flags for error window
$�=;          bit 0 set ==> provide 'OK' box in error window
$�1;          bit 1 set ==> provide 'Cancel' box
%N;          bit 2 set ==> highlight 'Cancel' box (otherwise highlight 'OK')
%R;          bit 3 set ==> don't wait for confirmation if this is a 'text' error
%D;          bit 4 set ==> omit 'Error from ' message in title bar
%&P;          bit 5 set ==> return with R1=0 immediately if buttons not clicked
%0?;                        the error window is also left open
%:Q;          bit 6 set ==> select OK/Cancel depending on R1, close error window
%D.;          bits 7..31 reserved (must be 0)
%N
; exit
%X;       r1 = return status
%b+;               1 ==> 'OK' was selected
%l/;               2 ==> 'Cancel' was selected
%v;       flags preserved
%�
%�.report_error_ok
%�9        mov     r1,#1                   ; OK box only
%�.report_error
%�!        stmfd   r13!,{r2,r14}
%�)        adr     r2,switcher_name+&400
%�@        sub     r2,r2,#&400             ; r2 -> "Icon Clock"
%�;        swi     "XWimp_ReportError"     ; ignore errors
%�<        ldmfd   r13!,{r2,pc}^           ; preserve flags
%�
%�S; -----------------------------------------------------------------------------
%�; create the info window
%�
&.create_info_window
&        stmfd   r13!,{r14}
&"        adr     r0,info_window
& &        adr     r1,end_info_window
&*&        add     r2,r12,#poll_space
&4        bl      copy
&>&        add     r1,r12,#poll_space
&H#        adr     r0,window_title
&R;        str     r0,[r1,#put_window_title - info_window]
&\        adr     r0,name
&f3        str     r0,[r1,#put_name - info_window]
&p        adr     r0,purpose
&z6        str     r0,[r1,#put_purpose - info_window]
&�        adr     r0,author
&�5        str     r0,[r1,#put_author - info_window]
&�        adr     r0,version
&�6        str     r0,[r1,#put_version - info_window]
&�(        swi     "XWimp_CreateWindow"
&�        bvs     fatal_error
&�0        str     r0,[r12,#info_window_handle]
&�        ldmfd   r13!,{pc}
&�
&�S; -----------------------------------------------------------------------------
&�#; information about info window
&�
&�.window_title
'+        equs    "About this program"+�0
'.end_window_title
'gn
'$	.name
'.#        equs    "Icon Clock"+�0
'8
.end_name
'BBBgn
'L.purpose
'V4        equs    "Display time on the iconbar"+�0
'`.end_purpose
'jjjgn
't.author
'~-        equs    "pmf@uk.ac.warwick.cs"+�0
'�.end_author
'���gn
'�.version
'�        equs    "1.00 ("
'�        equs    ��$,5,2)
'�        equs    "-"
'�        equs    ��$,8,3)
'�        equs    "-"
'�        equs    ��$,14,2)
'�        equs    ")"+�0
'�.end_version
'���gn
(
(
.info_window
(        equd    0
(        equd    0
((        equd    636
(2        equd    216
(<        equd    0
(F        equd    0
(P        equd    -1
(Z9        equd    (1 << 31)+(1 << 26)+(1 << 4)+(1 << 1)
(d        equb    7
(n        equb    2
(x        equb    7
(�        equb    1
(�        equd    0
(�        equd    0
(�        equd    -216
(�        equd    636
(�        equd    0
(�0        equd    (1 << 8)+(1 << 4)+(1 << 3)+1
(�        equd    0
(�        equd    0
(�        equd    0
(�.put_window_title
(�         equd    window_title
(�        equd    -1
)1        equd    end_window_title-window_title
)        equd    8
)        equd    58
)"        equd    -48
),        equd    154
)6        equd    -8
)@3        equd    (&17 << 24)+(1 << 4)+(1 << 3)+1
)J        �string("Name")
)T        equd    14
)^        equd    -100
)h        equd    154
)r        equd    -60
)|3        equd    (&17 << 24)+(1 << 4)+(1 << 3)+1
)�        �string("Purpose")
)�        equd    30
)�        equd    -152
)�        equd    154
)�        equd    -112
)�3        equd    (&17 << 24)+(1 << 4)+(1 << 3)+1
)�        �string("Author")
)�        equd    14
)�        equd    -200
)�        equd    154
)�        equd    -160
)�3        equd    (&17 << 24)+(1 << 4)+(1 << 3)+1
)�        �string("Version")
*        equd    154
*        equd    -52
*        equd    630
*&        equd    -4
*0L        equd    (7 << 24)+(1 << 8)+(1 << 5)+(1 << 4)+(1 << 3)+(1 << 2)+1
*:
.put_name
*D        equd    name
*N        equd    -1
*X!        equd    end_name-name
*b        equd    154
*l        equd    -104
*v        equd    630
*�        equd    -56
*�L        equd    (7 << 24)+(1 << 8)+(1 << 5)+(1 << 4)+(1 << 3)+(1 << 2)+1
*�.put_purpose
*�        equd    purpose
*�        equd    -1
*�'        equd    end_purpose-purpose
*�        equd    154
*�        equd    -156
*�        equd    630
*�        equd    -108
*�L        equd    (7 << 24)+(1 << 8)+(1 << 5)+(1 << 4)+(1 << 3)+(1 << 2)+1
*�.put_author
*�        equd    author
+        equd    -1
+%        equd    end_author-author
+        equd    154
+         equd    -208
+*        equd    630
+4        equd    -160
+>L        equd    (7 << 24)+(1 << 8)+(1 << 5)+(1 << 4)+(1 << 3)+(1 << 2)+1
+H.put_version
+R        equd    version
+\        equd    -1
+f'        equd    end_version-version
+p.end_info_window
+z]
+�
� opt%
+�*� ~O%-code%;" = ";(O%-code%)/1024;" K"
+�(� "Save IconClock "+�~code%+" "+�~O%
+�*SetType IconClock Module
+�*Key 1 Load ModMaker|M
+�*Key 2 TWINO8|M
+�*Key 3 SAVE|MRUN|M
+�(*Key 4 *RMLoad IconClock|M*Desktop|M
+�$*Key 5 *Show IconClock$Options|M
+�!*Key 6 *Set IconClock$Options
+��
+�
+�� �string(text$)
,=� �(text$)>12 � � 0,text$+" is longer than 12 characters"
,[       opt    opt%
,        equs    text$
,$]
,.� �(text$)<12 �
,8[       opt    opt%
,B$        equs    �12-�(text$),�0)
,L]
,V�
,`=0
�
00000000  0d 00 0a 10 f4 20 3e 20  4d 6f 64 4d 61 6b 65 72  |..... > ModMaker|
00000010  0d 00 14 04 0d 00 1e 32  63 6f 64 65 6c 65 6e 25  |.......2codelen%|
00000020  20 20 3d 20 38 2a 31 30  32 34 20 20 20 20 20 20  |  = 8*1024      |
00000030  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000040  3a 20 f4 20 38 4b 0d 00  28 14 de 20 63 6f 64 65  |: . 8K..(.. code|
00000050  25 20 63 6f 64 65 6c 65  6e 25 0d 00 32 04 0d 00  |% codelen%..2...|
00000060  3c 0b f4 20 66 6c 61 67  73 0d 00 46 14 76 5f 66  |<.. flags..F.v_f|
00000070  6c 61 67 20 3d 20 31 20  3c 3c 20 32 38 0d 00 50  |lag = 1 << 28..P|
00000080  04 0d 00 5a 0a f4 20 6d  69 73 63 0d 00 64 20 73  |...Z.. misc..d s|
00000090  74 61 63 6b 5f 6c 65 6e  67 74 68 20 20 20 20 20  |tack_length     |
000000a0  20 20 20 20 20 20 20 3d  20 32 34 0d 00 6e 1f 6f  |       = 24..n.o|
000000b0  70 74 69 6f 6e 73 5f 76  61 72 69 61 62 6c 65 5f  |ptions_variable_|
000000c0  6c 65 6e 67 74 68 20 3d  20 33 0d 00 78 20 77 6f  |length = 3..x wo|
000000d0  72 6b 5f 73 70 61 63 65  5f 6c 65 6e 67 74 68 20  |rk_space_length |
000000e0  20 20 20 20 20 20 3d 20  38 38 0d 00 82 21 69 63  |      = 88...!ic|
000000f0  6f 6e 62 61 72 5f 6d 65  6e 75 5f 6c 65 6e 67 74  |onbar_menu_lengt|
00000100  68 20 20 20 20 20 3d 20  31 32 34 0d 00 8c 20 74  |h     = 124... t|
00000110  69 6d 65 5f 66 6f 72 6d  61 74 5f 6d 65 6e 75 5f  |ime_format_menu_|
00000120  6c 65 6e 67 74 68 20 3d  20 37 36 0d 00 96 21 63  |length = 76...!c|
00000130  6c 6f 63 6b 66 61 63 65  5f 6d 65 6e 75 5f 6c 65  |lockface_menu_le|
00000140  6e 67 74 68 20 20 20 3d  20 31 30 30 0d 00 a0 04  |ngth   = 100....|
00000150  0d 00 aa 0e f4 20 64 65  66 61 75 6c 74 73 0d 00  |..... defaults..|
00000160  b4 1b 74 69 6d 65 5f 66  6f 72 6d 61 74 5f 64 65  |..time_format_de|
00000170  66 61 75 6c 74 20 3d 20  31 0d 00 be 1b 63 6c 6f  |fault = 1....clo|
00000180  63 6b 66 61 63 65 5f 64  65 66 61 75 6c 74 20 20  |ckface_default  |
00000190  20 3d 20 30 0d 00 c8 04  0d 00 d2 25 f4 20 6f 66  | = 0.......%. of|
000001a0  66 73 65 74 73 20 77 69  74 68 69 6e 20 72 6d 61  |fsets within rma|
000001b0  20 61 6e 64 20 72 6d 61  20 73 69 7a 65 0d 00 dc  | and rma size...|
000001c0  27 74 61 73 6b 5f 68 61  6e 64 6c 65 20 20 20 20  |'task_handle    |
000001d0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000001e0  20 3d 20 30 0d 00 e6 35  77 6f 72 64 20 20 20 20  | = 0...5word    |
000001f0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000200  20 20 20 20 20 20 20 20  3d 20 74 61 73 6b 5f 68  |        = task_h|
00000210  61 6e 64 6c 65 20 2b 20  34 0d 00 f0 2e 69 63 6f  |andle + 4....ico|
00000220  6e 5f 68 61 6e 64 6c 65  20 20 20 20 20 20 20 20  |n_handle        |
00000230  20 20 20 20 20 20 20 20  20 20 20 20 20 3d 20 77  |             = w|
00000240  6f 72 64 20 2b 20 34 0d  00 fa 35 69 6e 66 6f 5f  |ord + 4...5info_|
00000250  77 69 6e 64 6f 77 5f 68  61 6e 64 6c 65 20 20 20  |window_handle   |
00000260  20 20 20 20 20 20 20 20  20 20 20 3d 20 69 63 6f  |           = ico|
00000270  6e 5f 68 61 6e 64 6c 65  20 2b 20 34 0d 01 04 3c  |n_handle + 4...<|
00000280  70 6f 6c 6c 69 64 6c 65  5f 74 69 6d 65 20 20 20  |pollidle_time   |
00000290  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000002a0  3d 20 69 6e 66 6f 5f 77  69 6e 64 6f 77 5f 68 61  |= info_window_ha|
000002b0  6e 64 6c 65 20 2b 20 34  0d 01 0e 37 74 69 6d 65  |ndle + 4...7time|
000002c0  5f 66 6f 72 6d 61 74 20  20 20 20 20 20 20 20 20  |_format         |
000002d0  20 20 20 20 20 20 20 20  20 20 20 20 3d 20 70 6f  |            = po|
000002e0  6c 6c 69 64 6c 65 5f 74  69 6d 65 20 2b 20 34 0d  |llidle_time + 4.|
000002f0  01 18 35 63 6c 6f 63 6b  66 61 63 65 20 20 20 20  |..5clockface    |
00000300  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000310  20 20 20 3d 20 74 69 6d  65 5f 66 6f 72 6d 61 74  |   = time_format|
00000320  20 2b 20 31 0d 01 22 35  6f 6c 64 5f 63 6c 6f 63  | + 1.."5old_cloc|
00000330  6b 66 61 63 65 20 20 20  20 20 20 20 20 20 20 20  |kface           |
00000340  20 20 20 20 20 20 20 20  3d 20 74 69 6d 65 5f 66  |        = time_f|
00000350  6f 72 6d 61 74 20 2b 20  32 0d 01 2c 35 74 69 6d  |ormat + 2..,5tim|
00000360  65 5f 62 6c 6f 63 6b 20  20 20 20 20 20 20 20 20  |e_block         |
00000370  20 20 20 20 20 20 20 20  20 20 20 20 20 3d 20 74  |             = t|
00000380  69 6d 65 5f 66 6f 72 6d  61 74 20 2b 20 33 0d 01  |ime_format + 3..|
00000390  36 35 72 6d 61 5f 69 63  6f 6e 5f 76 61 6c 69 64  |65rma_icon_valid|
000003a0  61 74 69 6f 6e 20 20 20  20 20 20 20 20 20 20 20  |ation           |
000003b0  20 20 3d 20 74 69 6d 65  5f 66 6f 72 6d 61 74 20  |  = time_format |
000003c0  2b 20 38 0d 01 40 3d 73  70 72 69 74 65 5f 6e 61  |+ 8..@=sprite_na|
000003d0  6d 65 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |me              |
000003e0  20 20 20 20 20 20 20 3d  20 72 6d 61 5f 69 63 6f  |       = rma_ico|
000003f0  6e 5f 76 61 6c 69 64 61  74 69 6f 6e 20 2b 20 31  |n_validation + 1|
00000400  0d 01 4a 3e 72 6d 61 5f  69 63 6f 6e 5f 76 61 6c  |..J>rma_icon_val|
00000410  69 64 61 74 69 6f 6e 5f  6c 61 73 74 5f 6c 65 74  |idation_last_let|
00000420  74 65 72 20 3d 20 72 6d  61 5f 69 63 6f 6e 5f 76  |ter = rma_icon_v|
00000430  61 6c 69 64 61 74 69 6f  6e 20 2b 20 31 30 0d 01  |alidation + 10..|
00000440  54 3e 72 6d 61 5f 69 63  6f 6e 5f 74 65 78 74 20  |T>rma_icon_text |
00000450  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000460  20 20 3d 20 72 6d 61 5f  69 63 6f 6e 5f 76 61 6c  |  = rma_icon_val|
00000470  69 64 61 74 69 6f 6e 20  2b 20 31 32 0d 01 5e 37  |idation + 12..^7|
00000480  70 6f 6c 6c 5f 73 70 61  63 65 20 20 20 20 20 20  |poll_space      |
00000490  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000004a0  3d 20 72 6d 61 5f 69 63  6f 6e 5f 74 65 78 74 20  |= rma_icon_text |
000004b0  2b 20 38 0d 01 68 36 77  6f 72 6b 5f 73 70 61 63  |+ 8..h6work_spac|
000004c0  65 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |e               |
000004d0  20 20 20 20 20 20 20 3d  20 70 6f 6c 6c 5f 73 70  |       = poll_sp|
000004e0  61 63 65 20 2b 20 32 35  36 0d 01 72 44 72 6d 61  |ace + 256..rDrma|
000004f0  5f 69 63 6f 6e 62 61 72  5f 6d 65 6e 75 20 20 20  |_iconbar_menu   |
00000500  20 20 20 20 20 20 20 20  20 20 20 20 20 3d 20 77  |             = w|
00000510  6f 72 6b 5f 73 70 61 63  65 20 2b 20 77 6f 72 6b  |ork_space + work|
00000520  5f 73 70 61 63 65 5f 6c  65 6e 67 74 68 0d 01 7c  |_space_length..||
00000530  4c 72 6d 61 5f 74 69 6d  65 5f 66 6f 72 6d 61 74  |Lrma_time_format|
00000540  5f 6d 65 6e 75 20 20 20  20 20 20 20 20 20 20 20  |_menu           |
00000550  20 3d 20 72 6d 61 5f 69  63 6f 6e 62 61 72 5f 6d  | = rma_iconbar_m|
00000560  65 6e 75 20 2b 20 69 63  6f 6e 62 61 72 5f 6d 65  |enu + iconbar_me|
00000570  6e 75 5f 6c 65 6e 67 74  68 0d 01 86 53 72 6d 61  |nu_length...Srma|
00000580  5f 63 6c 6f 63 6b 66 61  63 65 5f 6d 65 6e 75 20  |_clockface_menu |
00000590  20 20 20 20 20 20 20 20  20 20 20 20 20 3d 20 72  |             = r|
000005a0  6d 61 5f 74 69 6d 65 5f  66 6f 72 6d 61 74 5f 6d  |ma_time_format_m|
000005b0  65 6e 75 20 2b 74 69 6d  65 5f 66 6f 72 6d 61 74  |enu +time_format|
000005c0  5f 6d 65 6e 75 5f 6c 65  6e 67 74 68 0d 01 90 50  |_menu_length...P|
000005d0  73 74 61 63 6b 5f 73 74  61 72 74 20 20 20 20 20  |stack_start     |
000005e0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000005f0  3d 20 72 6d 61 5f 63 6c  6f 63 6b 66 61 63 65 5f  |= rma_clockface_|
00000600  6d 65 6e 75 20 2b 20 63  6c 6f 63 6b 66 61 63 65  |menu + clockface|
00000610  5f 6d 65 6e 75 5f 6c 65  6e 67 74 68 0d 01 9a 40  |_menu_length...@|
00000620  73 74 61 63 6b 20 20 20  20 20 20 20 20 20 20 20  |stack           |
00000630  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000640  3d 20 73 74 61 63 6b 5f  73 74 61 72 74 20 2b 20  |= stack_start + |
00000650  73 74 61 63 6b 5f 6c 65  6e 67 74 68 0d 01 a4 2b  |stack_length...+|
00000660  72 6d 61 5f 73 69 7a 65  20 20 20 20 20 20 20 20  |rma_size        |
00000670  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000680  3d 20 73 74 61 63 6b 0d  01 ae 04 0d 01 b8 16 e3  |= stack.........|
00000690  20 6f 70 74 25 3d 31 32  20 b8 20 31 34 20 88 20  | opt%=12 . 14 . |
000006a0  32 0d 01 c2 08 50 25 3d  30 0d 01 cc 0c 4f 25 3d  |2....P%=0....O%=|
000006b0  63 6f 64 65 25 0d 01 d6  15 4c 25 3d 63 6f 64 65  |code%....L%=code|
000006c0  25 2b 63 6f 64 65 6c 65  6e 25 0d 01 e0 05 5b 0d  |%+codelen%....[.|
000006d0  01 ea 18 20 20 20 20 20  20 20 20 6f 70 74 20 20  |...        opt  |
000006e0  20 20 20 6f 70 74 25 0d  01 f4 04 0d 01 fe 53 3b  |   opt%.......S;|
000006f0  20 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  | ---------------|
00000700  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00000730  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 0d 02  |--------------..|
00000740  08 13 3b 20 4d 6f 64 75  6c 65 20 68 65 61 64 65  |..; Module heade|
00000750  72 0d 02 12 04 0d 02 1c  19 20 20 20 20 20 20 20  |r........       |
00000760  20 65 71 75 64 20 20 20  20 73 74 61 72 74 0d 02  | equd    start..|
00000770  26 15 20 20 20 20 20 20  20 20 65 71 75 64 20 20  |&.        equd  |
00000780  20 20 30 0d 02 30 19 20  20 20 20 20 20 20 20 65  |  0..0.        e|
00000790  71 75 64 20 20 20 20 66  69 6e 61 6c 0d 02 3a 1b  |qud    final..:.|
000007a0  20 20 20 20 20 20 20 20  65 71 75 64 20 20 20 20  |        equd    |
000007b0  73 65 72 76 69 63 65 0d  02 44 19 20 20 20 20 20  |service..D.     |
000007c0  20 20 20 65 71 75 64 20  20 20 20 74 69 74 6c 65  |   equd    title|
000007d0  0d 02 4e 18 20 20 20 20  20 20 20 20 65 71 75 64  |..N.        equd|
000007e0  20 20 20 20 68 65 6c 70  0d 02 58 1b 20 20 20 20  |    help..X.    |
000007f0  20 20 20 20 65 71 75 64  20 20 20 20 63 6f 6d 6d  |    equd    comm|
00000800  61 6e 64 0d 02 62 3f 20  20 20 20 20 20 20 20 65  |and..b?        e|
00000810  71 75 64 20 20 20 20 30  20 20 20 20 20 20 20 20  |qud    0        |
00000820  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 3b  |               ;|
00000830  20 6e 6f 20 73 77 69 73  20 73 75 70 70 6f 72 74  | no swis support|
00000840  65 64 0d 02 6c 15 20 20  20 20 20 20 20 20 65 71  |ed..l.        eq|
00000850  75 64 20 20 20 20 30 0d  02 76 15 20 20 20 20 20  |ud    0..v.     |
00000860  20 20 20 65 71 75 64 20  20 20 20 30 0d 02 80 15  |   equd    0....|
00000870  20 20 20 20 20 20 20 20  65 71 75 64 20 20 20 20  |        equd    |
00000880  30 0d 02 8a 04 0d 02 94  0a 2e 74 69 74 6c 65 0d  |0.........title.|
00000890  02 9e 22 20 20 20 20 20  20 20 20 65 71 75 73 20  |.."        equs |
000008a0  20 20 20 22 49 63 6f 6e  43 6c 6f 63 6b 22 2b bd  |   "IconClock"+.|
000008b0  30 0d 02 a8 09 2e 68 65  6c 70 0d 02 b2 20 20 20  |0.....help...   |
000008c0  20 20 20 20 20 20 65 71  75 73 20 20 20 20 22 49  |      equs    "I|
000008d0  63 6f 6e 20 43 6c 6f 63  6b 22 0d 02 bc 15 20 20  |con Clock"....  |
000008e0  20 20 20 20 20 20 65 71  75 62 20 20 20 20 39 0d  |      equb    9.|
000008f0  02 c6 2a 20 20 20 20 20  20 20 20 65 71 75 73 20  |..*        equs |
00000900  20 20 20 22 31 2e 30 30  20 28 22 2b c1 91 24 2c  |   "1.00 ("+..$,|
00000910  35 2c 31 31 29 2b 22 29  22 0d 02 d0 15 20 20 20  |5,11)+")"....   |
00000920  20 20 20 20 20 65 71 75  62 20 20 20 20 30 0d 02  |     equb    0..|
00000930  da 11 20 20 20 20 20 20  20 20 61 6c 69 67 6e 0d  |..        align.|
00000940  02 e4 04 0d 02 ee 53 3b  20 2d 2d 2d 2d 2d 2d 2d  |......S; -------|
00000950  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00000990  2d 2d 2d 2d 2d 2d 0d 02  f8 1a 3b 20 4d 6f 64 75  |------....; Modu|
000009a0  6c 65 20 63 6f 6d 6d 61  6e 64 20 74 61 62 6c 65  |le command table|
000009b0  0d 03 02 04 0d 03 0c 0c  2e 63 6f 6d 6d 61 6e 64  |.........command|
000009c0  0d 03 16 0d 2e 73 74 61  72 74 63 6f 6d 0d 03 20  |.....startcom.. |
000009d0  2a 20 20 20 20 20 20 20  20 65 71 75 73 20 20 20  |*        equs   |
000009e0  20 22 44 65 73 6b 74 6f  70 5f 49 63 6f 6e 43 6c  | "Desktop_IconCl|
000009f0  6f 63 6b 22 2b bd 30 0d  03 2a 11 20 20 20 20 20  |ock"+.0..*.     |
00000a00  20 20 20 61 6c 69 67 6e  0d 03 34 2d 20 20 20 20  |   align..4-    |
00000a10  20 20 20 20 65 71 75 64  20 20 20 20 64 65 73 6b  |    equd    desk|
00000a20  74 6f 70 5f 69 63 6f 6e  63 6c 6f 63 6b 5f 63 6f  |top_iconclock_co|
00000a30  6d 6d 61 6e 64 0d 03 3e  3b 20 20 20 20 20 20 20  |mmand..>;       |
00000a40  20 65 71 75 64 20 20 20  20 30 20 20 20 20 20 20  | equd    0      |
00000a50  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000a60  20 3b 20 6e 6f 20 70 61  72 61 6d 65 74 65 72 73  | ; no parameters|
00000a70  0d 03 48 2c 20 20 20 20  20 20 20 20 65 71 75 64  |..H,        equd|
00000a80  20 20 20 20 64 65 73 6b  74 6f 70 5f 69 63 6f 6e  |    desktop_icon|
00000a90  63 6c 6f 63 6b 5f 73 79  6e 74 61 78 0d 03 52 2a  |clock_syntax..R*|
00000aa0  20 20 20 20 20 20 20 20  65 71 75 64 20 20 20 20  |        equd    |
00000ab0  64 65 73 6b 74 6f 70 5f  69 63 6f 6e 63 6c 6f 63  |desktop_iconcloc|
00000ac0  6b 5f 68 65 6c 70 0d 03  5c 15 20 20 20 20 20 20  |k_help..\.      |
00000ad0  20 20 65 71 75 64 20 20  20 20 30 0d 03 66 1b 2e  |  equd    0..f..|
00000ae0  64 65 73 6b 74 6f 70 5f  69 63 6f 6e 63 6c 6f 63  |desktop_iconcloc|
00000af0  6b 5f 68 65 6c 70 0d 03  70 40 20 20 20 20 20 20  |k_help..p@      |
00000b00  20 20 65 71 75 73 20 20  20 20 22 54 68 65 20 49  |  equs    "The I|
00000b10  63 6f 6e 20 43 6c 6f 63  6b 20 75 74 69 6c 69 74  |con Clock utilit|
00000b20  79 20 64 69 73 70 6c 61  79 73 20 61 20 63 6c 6f  |y displays a clo|
00000b30  63 6b 20 6f 6e 22 0d 03  7a 16 20 20 20 20 20 20  |ck on"..z.      |
00000b40  20 20 65 71 75 62 20 20  20 20 32 37 0d 03 84 35  |  equb    27...5|
00000b50  20 20 20 20 20 20 20 20  65 71 75 62 20 20 20 20  |        equb    |
00000b60  32 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |2               |
00000b70  20 20 20 20 20 20 20 20  3b 20 22 20 74 68 65 20  |        ; " the |
00000b80  22 0d 03 8e 1e 20 20 20  20 20 20 20 20 65 71 75  |"....        equ|
00000b90  73 20 20 20 20 22 69 63  6f 6e 62 61 72 2e 22 0d  |s    "iconbar.".|
00000ba0  03 98 16 20 20 20 20 20  20 20 20 65 71 75 62 20  |...        equb |
00000bb0  20 20 20 31 33 0d 03 a2  16 20 20 20 20 20 20 20  |   13....       |
00000bc0  20 65 71 75 62 20 20 20  20 31 30 0d 03 ac 22 20  | equb    10..." |
00000bd0  20 20 20 20 20 20 20 65  71 75 73 20 20 20 20 22  |       equs    "|
00000be0  44 6f 20 6e 6f 74 20 75  73 65 20 2a 22 0d 03 b6  |Do not use *"...|
00000bf0  16 20 20 20 20 20 20 20  20 65 71 75 62 20 20 20  |.        equb   |
00000c00  20 32 37 0d 03 c0 41 20  20 20 20 20 20 20 20 65  | 27...A        e|
00000c10  71 75 62 20 20 20 20 30  20 20 20 20 20 20 20 20  |qub    0        |
00000c20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 3b  |               ;|
00000c30  20 22 44 65 73 6b 74 6f  70 5f 49 63 6f 6e 43 6c  | "Desktop_IconCl|
00000c40  6f 63 6b 22 0d 03 ca 2d  20 20 20 20 20 20 20 20  |ock"...-        |
00000c50  65 71 75 73 20 20 20 20  22 2c 20 75 73 65 20 2a  |equs    ", use *|
00000c60  44 65 73 6b 74 6f 70 20  69 6e 73 74 65 61 64 2e  |Desktop instead.|
00000c70  22 0d 03 d4 15 20 20 20  20 20 20 20 20 65 71 75  |"....        equ|
00000c80  62 20 20 20 20 30 0d 03  de 1d 2e 64 65 73 6b 74  |b    0.....deskt|
00000c90  6f 70 5f 69 63 6f 6e 63  6c 6f 63 6b 5f 73 79 6e  |op_iconclock_syn|
00000ca0  74 61 78 0d 03 e8 16 20  20 20 20 20 20 20 20 65  |tax....        e|
00000cb0  71 75 62 20 20 20 20 32  37 0d 03 f2 49 20 20 20  |qub    27...I   |
00000cc0  20 20 20 20 20 65 71 75  62 20 20 20 20 31 20 20  |     equb    1  |
00000cd0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000ce0  20 20 20 20 20 3b 20 22  53 79 6e 74 61 78 20 2a  |     ; "Syntax *|
00000cf0  44 65 73 6b 74 6f 70 5f  49 63 6f 6e 43 6c 6f 63  |Desktop_IconCloc|
00000d00  6b 22 0d 03 fc 15 20 20  20 20 20 20 20 20 65 71  |k"....        eq|
00000d10  75 62 20 20 20 20 30 0d  04 06 11 20 20 20 20 20  |ub    0....     |
00000d20  20 20 20 61 6c 69 67 6e  0d 04 10 04 0d 04 1a 53  |   align.......S|
00000d30  3b 20 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |; --------------|
00000d40  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  2d 2d 2d 2d 2d 2d 2d 0d  |---------------.|
00000d80  04 24 19 3b 20 4d 6f 64  75 6c 65 20 73 65 72 76  |.$.; Module serv|
00000d90  69 63 65 20 63 6f 64 65  0d 04 2e 04 0d 04 38 0c  |ice code......8.|
00000da0  2e 73 65 72 76 69 63 65  0d 04 42 3f 20 20 20 20  |.service..B?    |
00000db0  20 20 20 20 63 6d 70 20  20 20 20 20 72 31 2c 23  |    cmp     r1,#|
00000dc0  26 34 39 20 20 20 20 20  20 20 20 20 20 20 20 20  |&49             |
00000dd0  20 20 20 20 3b 20 73 65  72 76 69 63 65 5f 73 74  |    ; service_st|
00000de0  61 72 74 77 69 6d 70 0d  04 4c 25 20 20 20 20 20  |artwimp..L%     |
00000df0  20 20 20 62 65 71 20 20  20 20 20 73 65 72 76 69  |   beq     servi|
00000e00  63 65 5f 73 74 61 72 74  77 69 6d 70 0d 04 56 41  |ce_startwimp..VA|
00000e10  20 20 20 20 20 20 20 20  63 6d 70 20 20 20 20 20  |        cmp     |
00000e20  72 31 2c 23 26 34 61 20  20 20 20 20 20 20 20 20  |r1,#&4a         |
00000e30  20 20 20 20 20 20 20 20  3b 20 73 65 72 76 69 63  |        ; servic|
00000e40  65 5f 73 74 61 72 74 65  64 77 69 6d 70 0d 04 60  |e_startedwimp..`|
00000e50  27 20 20 20 20 20 20 20  20 62 65 71 20 20 20 20  |'        beq    |
00000e60  20 73 65 72 76 69 63 65  5f 73 74 61 72 74 65 64  | service_started|
00000e70  77 69 6d 70 0d 04 6a 3b  20 20 20 20 20 20 20 20  |wimp..j;        |
00000e80  63 6d 70 6e 65 20 20 20  72 31 2c 23 26 32 37 20  |cmpne   r1,#&27 |
00000e90  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000ea0  3b 20 73 65 72 76 69 63  65 5f 72 65 73 65 74 0d  |; service_reset.|
00000eb0  04 74 3c 20 20 20 20 20  20 20 20 6d 6f 76 6e 65  |.t<        movne|
00000ec0  73 20 20 70 63 2c 72 31  34 20 20 20 20 20 20 20  |s  pc,r14       |
00000ed0  20 20 20 20 20 20 20 20  20 20 20 3b 20 65 78 69  |           ; exi|
00000ee0  74 20 75 6e 63 6c 61 69  6d 65 64 0d 04 7e 04 0d  |t unclaimed..~..|
00000ef0  04 88 53 3b 20 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |..S; -----------|
00000f00  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00000f40  2d 2d 0d 04 92 52 3b 20  54 68 65 20 73 65 72 76  |--...R; The serv|
00000f50  69 63 65 20 72 65 73 65  74 20 68 61 73 20 61 72  |ice reset has ar|
00000f60  72 69 76 65 64 20 73 6f  20 74 68 65 20 6d 61 63  |rived so the mac|
00000f70  68 69 6e 65 20 68 61 73  20 62 65 65 6e 2e 20 52  |hine has been. R|
00000f80  65 73 65 74 20 6f 75 72  20 74 61 73 6b 20 68 61  |eset our task ha|
00000f90  6e 64 6c 65 0d 04 9c 28  3b 20 74 6f 20 7a 65 72  |ndle...(; to zer|
00000fa0  6f 20 73 6f 20 74 68 61  74 20 77 65 20 63 61 6e  |o so that we can|
00000fb0  20 73 74 61 72 74 20 61  67 61 69 6e 0d 04 a6 04  | start again....|
00000fc0  0d 04 b0 1d 20 20 20 20  20 20 20 20 73 74 6d 66  |....        stmf|
00000fd0  64 20 20 20 72 31 33 21  2c 7b 31 34 7d 0d 04 ba  |d   r13!,{14}...|
00000fe0  1a 20 20 20 20 20 20 20  20 6d 6f 76 20 20 20 20  |.        mov    |
00000ff0  20 72 31 34 2c 23 30 0d  04 c4 2a 20 20 20 20 20  | r14,#0...*     |
00001000  20 20 20 73 74 72 20 20  20 20 20 72 31 34 2c 5b  |   str     r14,[|
00001010  72 31 32 2c 23 74 61 73  6b 5f 68 61 6e 64 6c 65  |r12,#task_handle|
00001020  5d 0d 04 ce 1d 20 20 20  20 20 20 20 20 6c 64 6d  |]....        ldm|
00001030  66 64 20 20 20 72 31 33  21 2c 7b 70 63 7d 0d 04  |fd   r13!,{pc}..|
00001040  d8 04 0d 04 e2 53 3b 20  2d 2d 2d 2d 2d 2d 2d 2d  |.....S; --------|
00001050  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00001090  2d 2d 2d 2d 2d 0d 04 ec  52 3b 20 54 68 65 20 73  |-----...R; The s|
000010a0  65 72 76 69 63 65 20 73  74 61 72 74 65 64 77 69  |ervice startedwi|
000010b0  6d 70 20 68 61 73 20 61  72 72 69 76 65 64 20 73  |mp has arrived s|
000010c0  6f 20 74 68 65 20 77 69  6d 70 20 68 61 73 20 73  |o the wimp has s|
000010d0  74 61 72 74 65 64 20 75  70 2e 20 49 66 20 77 65  |tarted up. If we|
000010e0  20 66 61 69 6c 65 64 0d  04 f6 3f 3b 20 64 75 72  | failed...?; dur|
000010f0  69 6e 67 20 73 74 61 72  74 75 70 20 72 65 73 65  |ing startup rese|
00001100  74 20 74 61 73 6b 20 68  61 6e 64 6c 65 20 73 6f  |t task handle so|
00001110  20 74 68 61 74 20 77 65  20 63 61 6e 20 74 72 79  | that we can try|
00001120  20 61 67 61 69 6e 0d 05  00 04 0d 05 0a 18 2e 73  | again.........s|
00001130  65 72 76 69 63 65 5f 73  74 61 72 74 65 64 77 69  |ervice_startedwi|
00001140  6d 70 0d 05 14 1d 20 20  20 20 20 20 20 20 73 74  |mp....        st|
00001150  6d 66 64 20 20 20 72 31  33 21 2c 7b 31 34 7d 0d  |mfd   r13!,{14}.|
00001160  05 1e 2a 20 20 20 20 20  20 20 20 6c 64 72 20 20  |..*        ldr  |
00001170  20 20 20 72 31 34 2c 5b  72 31 32 2c 23 74 61 73  |   r14,[r12,#tas|
00001180  6b 5f 68 61 6e 64 6c 65  5d 0d 05 28 48 20 20 20  |k_handle]..(H   |
00001190  20 20 20 20 20 63 6d 70  20 20 20 20 20 72 31 34  |     cmp     r14|
000011a0  2c 23 30 20 20 20 20 20  20 20 20 20 20 20 20 20  |,#0             |
000011b0  20 20 20 20 20 3b 20 64  69 64 20 77 65 20 66 61  |     ; did we fa|
000011c0  69 6c 20 64 75 72 69 6e  67 20 73 74 61 72 74 75  |il during startu|
000011d0  70 0d 05 32 1a 20 20 20  20 20 20 20 20 6d 6f 76  |p..2.        mov|
000011e0  6c 74 20 20 20 72 31 34  2c 23 30 0d 05 3c 46 20  |lt   r14,#0..<F |
000011f0  20 20 20 20 20 20 20 73  74 72 6c 74 20 20 20 72  |       strlt   r|
00001200  31 34 2c 5b 72 31 32 2c  23 74 61 73 6b 5f 68 61  |14,[r12,#task_ha|
00001210  6e 64 6c 65 5d 20 20 3b  20 69 66 20 73 6f 2c 20  |ndle]  ; if so, |
00001220  72 65 73 65 74 20 66 61  69 6c 65 64 20 66 6c 61  |reset failed fla|
00001230  67 0d 05 46 1d 20 20 20  20 20 20 20 20 6c 64 6d  |g..F.        ldm|
00001240  66 64 20 20 20 72 31 33  21 2c 7b 70 63 7d 0d 05  |fd   r13!,{pc}..|
00001250  50 04 0d 05 5a 53 3b 20  2d 2d 2d 2d 2d 2d 2d 2d  |P...ZS; --------|
00001260  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
000012a0  2d 2d 2d 2d 2d 0d 05 64  50 3b 20 54 68 65 20 77  |-----..dP; The w|
000012b0  69 6d 70 20 77 61 6e 74  73 20 61 6e 79 20 61 70  |imp wants any ap|
000012c0  70 6c 69 63 61 74 69 6f  6e 20 6d 6f 64 75 6c 65  |plication module|
000012d0  73 20 74 6f 20 73 74 61  72 74 20 74 68 65 6d 73  |s to start thems|
000012e0  65 6c 76 65 73 20 75 70  2e 20 20 54 68 69 73 20  |elves up.  This |
000012f0  6d 65 61 6e 73 0d 05 6e  3a 3b 20 75 73 2e 20 20  |means..n:; us.  |
00001300  20 57 65 20 74 65 6c 6c  20 74 68 65 20 77 69 6d  | We tell the wim|
00001310  70 20 74 6f 20 69 73 73  75 65 20 61 20 2a 44 65  |p to issue a *De|
00001320  73 6b 74 6f 70 5f 49 63  6f 6e 43 6c 6f 63 6b 0d  |sktop_IconClock.|
00001330  05 78 04 0d 05 82 16 2e  73 65 72 76 69 63 65 5f  |.x......service_|
00001340  73 74 61 72 74 77 69 6d  70 0d 05 8c 24 20 20 20  |startwimp...$   |
00001350  20 20 20 20 20 73 74 6d  66 64 20 20 20 72 31 33  |     stmfd   r13|
00001360  21 2c 7b 72 32 2d 72 34  2c 72 31 34 7d 0d 05 96  |!,{r2-r4,r14}...|
00001370  1d 20 20 20 20 20 20 20  20 6c 64 72 20 20 20 20  |.        ldr    |
00001380  20 72 31 34 2c 5b 72 31  32 5d 0d 05 a0 1a 20 20  | r14,[r12]....  |
00001390  20 20 20 20 20 20 63 6d  70 20 20 20 20 20 72 31  |      cmp     r1|
000013a0  34 2c 23 30 0d 05 aa 50  20 20 20 20 20 20 20 20  |4,#0...P        |
000013b0  6c 64 6d 6e 65 66 64 20  72 31 33 21 2c 7b 72 32  |ldmnefd r13!,{r2|
000013c0  2d 72 34 2c 70 63 7d 20  20 20 20 20 20 20 20 20  |-r4,pc}         |
000013d0  3b 20 63 6f 75 6c 64 20  6e 6f 74 20 73 74 61 72  |; could not star|
000013e0  74 20 6f 72 20 61 6c 72  65 61 64 79 20 73 74 61  |t or already sta|
000013f0  72 74 65 64 0d 05 b4 3a  20 20 20 20 20 20 20 20  |rted...:        |
00001400  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00001420  3b 20 6f 6b 20 73 6f 20  69 67 6e 6f 72 65 0d 05  |; ok so ignore..|
00001430  be 3d 20 20 20 20 20 20  20 20 6d 6f 76 20 20 20  |.=        mov   |
00001440  20 20 72 30 2c 23 36 20  20 20 20 20 20 20 20 20  |  r0,#6         |
00001450  20 20 20 20 20 20 20 20  20 20 3b 20 43 6c 61 69  |          ; Clai|
00001460  6d 20 77 6f 72 6b 73 70  61 63 65 0d 05 c8 20 20  |m workspace...  |
00001470  20 20 20 20 20 20 20 6d  6f 76 20 20 20 20 20 72  |       mov     r|
00001480  33 2c 23 72 6d 61 5f 73  69 7a 65 0d 05 d2 20 20  |3,#rma_size...  |
00001490  20 20 20 20 20 20 20 73  77 69 20 20 20 20 20 22  |       swi     "|
000014a0  58 4f 53 5f 4d 6f 64 75  6c 65 22 0d 05 dc 53 20  |XOS_Module"...S |
000014b0  20 20 20 20 20 20 20 6d  76 6e 76 73 20 20 20 72  |       mvnvs   r|
000014c0  32 2c 23 30 20 20 20 20  20 20 20 20 20 20 20 20  |2,#0            |
000014d0  20 20 20 20 20 20 20 3b  20 2d 31 20 74 6f 20 70  |       ; -1 to p|
000014e0  72 65 76 65 6e 74 20 63  6c 61 69 6d 20 6f 66 20  |revent claim of |
000014f0  63 61 6c 6c 20 6e 65 78  74 20 74 69 6d 65 0d 05  |call next time..|
00001500  e6 1c 20 20 20 20 20 20  20 20 73 74 72 20 20 20  |..        str   |
00001510  20 20 72 32 2c 5b 72 31  32 5d 0d 05 f0 23 20 20  |  r2,[r12]...#  |
00001520  20 20 20 20 20 20 6c 64  6d 76 73 66 64 20 72 31  |      ldmvsfd r1|
00001530  33 21 2c 7b 72 32 2d 72  34 2c 70 63 7d 0d 05 fa  |3!,{r2-r4,pc}...|
00001540  44 20 20 20 20 20 20 20  20 73 74 72 20 20 20 20  |D        str    |
00001550  20 72 31 32 2c 5b 72 32  2c 23 77 6f 72 64 5d 20  | r12,[r2,#word] |
00001560  20 20 20 20 20 20 20 20  20 3b 20 73 74 6f 72 65  |         ; store|
00001570  20 6f 75 72 20 70 72 69  76 61 74 65 20 77 6f 72  | our private wor|
00001580  64 0d 06 04 47 20 20 20  20 20 20 20 20 61 64 72  |d...G        adr|
00001590  20 20 20 20 20 72 30 2c  73 74 61 72 74 63 6f 6d  |     r0,startcom|
000015a0  20 20 20 20 20 20 20 20  20 20 20 20 20 3b 20 72  |             ; r|
000015b0  30 20 2d 3e 20 6f 75 72  20 73 74 61 72 74 75 70  |0 -> our startup|
000015c0  20 63 6f 6d 6d 61 6e 64  0d 06 0e 50 20 20 20 20  | command...P    |
000015d0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
000015f0  20 20 20 20 3b 20 74 68  65 20 77 69 6d 70 20 77  |    ; the wimp w|
00001600  69 6c 6c 20 65 78 65 63  75 74 65 20 74 68 69 73  |ill execute this|
00001610  20 63 6f 6d 6d 61 6e 64  0d 06 18 3b 20 20 20 20  | command...;    |
00001620  20 20 20 20 6d 6f 76 20  20 20 20 20 72 31 2c 23  |    mov     r1,#|
00001630  30 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |0               |
00001640  20 20 20 20 3b 20 63 6c  61 69 6d 20 73 65 72 76  |    ; claim serv|
00001650  69 63 65 0d 06 22 45 20  20 20 20 20 20 20 20 73  |ice.."E        s|
00001660  74 72 20 20 20 20 20 72  31 2c 5b 72 32 2c 23 74  |tr     r1,[r2,#t|
00001670  61 73 6b 5f 68 61 6e 64  6c 65 5d 20 20 20 20 3b  |ask_handle]    ;|
00001680  20 6e 6f 74 20 73 74 61  72 74 65 64 20 61 73 20  | not started as |
00001690  54 61 73 6b 20 79 65 74  0d 06 2c 23 20 20 20 20  |Task yet..,#    |
000016a0  20 20 20 20 6c 64 6d 66  64 20 20 20 72 31 33 21  |    ldmfd   r13!|
000016b0  2c 7b 72 32 2d 72 34 2c  70 63 7d 0d 06 36 04 0d  |,{r2-r4,pc}..6..|
000016c0  06 40 53 3b 20 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |.@S; -----------|
000016d0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00001710  2d 2d 0d 06 4a 1e 3b 20  4d 6f 64 75 6c 65 20 66  |--..J.; Module f|
00001720  69 6e 61 6c 69 73 61 74  69 6f 6e 20 63 6f 64 65  |inalisation code|
00001730  0d 06 54 04 0d 06 5e 0a  2e 66 69 6e 61 6c 0d 06  |..T...^..final..|
00001740  68 22 20 20 20 20 20 20  20 20 73 74 6d 66 64 20  |h"        stmfd |
00001750  72 31 33 21 2c 7b 72 30  2d 72 36 2c 72 31 34 7d  |r13!,{r0-r6,r14}|
00001760  0d 06 72 1b 20 20 20 20  20 20 20 20 6c 64 72 20  |..r.        ldr |
00001770  20 20 72 31 32 2c 5b 72  31 32 5d 0d 06 7c 18 20  |  r12,[r12]..|. |
00001780  20 20 20 20 20 20 20 63  6d 70 20 20 20 72 31 32  |       cmp   r12|
00001790  2c 23 30 0d 06 86 50 20  20 20 20 20 20 20 20 62  |,#0...P        b|
000017a0  6c 67 74 20 20 63 6c 6f  73 65 64 6f 77 6e 20 20  |lgt  closedown  |
000017b0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 3b  |               ;|
000017c0  20 73 68 75 74 20 64 6f  77 6e 20 69 66 20 6e 6f  | shut down if no|
000017d0  74 20 61 6c 72 65 61 64  79 20 73 68 75 74 20 64  |t already shut d|
000017e0  6f 77 6e 0d 06 90 21 20  20 20 20 20 20 20 20 6c  |own...!        l|
000017f0  64 6d 66 64 20 72 31 33  21 2c 7b 72 30 2d 72 36  |dmfd r13!,{r0-r6|
00001800  2c 70 63 7d 0d 06 9a 04  0d 06 a4 53 3b 20 2d 2d  |,pc}.......S; --|
00001810  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00001850  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 0d 06 ae 49 3b  |-----------...I;|
00001860  20 2a 44 65 73 6b 74 6f  70 5f 49 63 6f 6e 43 6c  | *Desktop_IconCl|
00001870  6f 63 6b 20 68 61 73 20  62 65 65 6e 20 65 78 65  |ock has been exe|
00001880  63 75 74 65 64 2e 20 43  61 75 73 65 20 61 6e 20  |cuted. Cause an |
00001890  65 72 72 6f 72 20 69 66  20 6e 6f 74 20 62 79 20  |error if not by |
000018a0  77 69 6d 70 0d 06 b8 04  0d 06 c2 1e 2e 64 65 73  |wimp.........des|
000018b0  6b 74 6f 70 5f 69 63 6f  6e 63 6c 6f 63 6b 5f 63  |ktop_iconclock_c|
000018c0  6f 6d 6d 61 6e 64 0d 06  cc 1e 20 20 20 20 20 20  |ommand....      |
000018d0  20 20 73 74 6d 66 64 20  20 20 72 31 33 21 2c 7b  |  stmfd   r13!,{|
000018e0  72 31 34 7d 0d 06 d6 1d  20 20 20 20 20 20 20 20  |r14}....        |
000018f0  6c 64 72 20 20 20 20 20  72 31 34 2c 5b 72 31 32  |ldr     r14,[r12|
00001900  5d 0d 06 e0 1a 20 20 20  20 20 20 20 20 63 6d 70  |]....        cmp|
00001910  20 20 20 20 20 72 31 34  2c 23 30 0d 06 ea 1d 20  |     r14,#0.... |
00001920  20 20 20 20 20 20 20 62  6c 65 20 20 20 20 20 62  |       ble     b|
00001930  61 64 5f 73 74 61 72 74  0d 06 f4 2a 20 20 20 20  |ad_start...*    |
00001940  20 20 20 20 6c 64 72 20  20 20 20 20 72 31 34 2c  |    ldr     r14,|
00001950  5b 72 31 34 2c 23 74 61  73 6b 5f 68 61 6e 64 6c  |[r14,#task_handl|
00001960  65 5d 0d 06 fe 4a 20 20  20 20 20 20 20 20 74 65  |e]...J        te|
00001970  71 20 20 20 20 20 72 31  34 2c 23 30 20 20 20 20  |q     r14,#0    |
00001980  20 20 20 20 20 20 20 20  20 20 20 20 20 20 3b 20  |              ; |
00001990  69 66 20 6e 6f 74 20 30  20 74 68 65 6e 20 6e 6f  |if not 0 then no|
000019a0  74 20 61 20 2a 44 45 53  4b 54 4f 50 0d 07 08 40  |t a *DESKTOP...@|
000019b0  20 20 20 20 20 20 20 20  6d 6f 76 65 71 20 20 20  |        moveq   |
000019c0  72 32 2c 72 30 20 20 20  20 20 20 20 20 20 20 20  |r2,r0           |
000019d0  20 20 20 20 20 20 20 20  3b 20 72 32 20 2d 3e 20  |        ; r2 -> |
000019e0  63 6f 6d 6d 61 6e 64 20  74 61 69 6c 0d 07 12 3d  |command tail...=|
000019f0  20 20 20 20 20 20 20 20  61 64 72 65 71 20 20 20  |        adreq   |
00001a00  72 31 2c 74 69 74 6c 65  20 20 20 20 20 20 20 20  |r1,title        |
00001a10  20 20 20 20 20 20 20 20  3b 20 72 31 20 2d 3e 20  |        ; r1 -> |
00001a20  6f 75 72 20 74 69 74 6c  65 0d 07 1c 19 20 20 20  |our title....   |
00001a30  20 20 20 20 20 6d 6f 76  65 71 20 20 20 72 30 2c  |     moveq   r0,|
00001a40  23 32 0d 07 26 3f 20 20  20 20 20 20 20 20 73 77  |#2..&?        sw|
00001a50  69 65 71 20 20 20 22 58  4f 53 5f 4d 6f 64 75 6c  |ieq   "XOS_Modul|
00001a60  65 22 20 20 20 20 20 20  20 20 20 20 20 20 3b 20  |e"            ; |
00001a70  65 6e 74 65 72 20 75 73  20 61 74 20 73 74 61 72  |enter us at star|
00001a80  74 0d 07 30 0e 2e 62 61  64 5f 73 74 61 72 74 0d  |t..0..bad_start.|
00001a90  07 3a 1e 20 20 20 20 20  20 20 20 6c 64 6d 66 64  |.:.        ldmfd|
00001aa0  20 20 20 72 31 33 21 2c  7b 72 31 34 7d 0d 07 44  |   r13!,{r14}..D|
00001ab0  21 20 20 20 20 20 20 20  20 61 64 72 20 20 20 20  |!        adr    |
00001ac0  20 72 30 2c 73 74 61 72  74 65 72 72 6f 72 0d 07  | r0,starterror..|
00001ad0  4e 22 20 20 20 20 20 20  20 20 6f 72 72 73 20 20  |N"        orrs  |
00001ae0  20 20 70 63 2c 72 31 34  2c 23 76 5f 66 6c 61 67  |  pc,r14,#v_flag|
00001af0  0d 07 58 0f 2e 73 74 61  72 74 65 72 72 6f 72 0d  |..X..starterror.|
00001b00  07 62 15 20 20 20 20 20  20 20 20 65 71 75 64 20  |.b.        equd |
00001b10  20 20 20 30 0d 07 6c 36  20 20 20 20 20 20 20 20  |   0..l6        |
00001b20  65 71 75 73 20 20 20 20  22 55 73 65 20 2a 44 65  |equs    "Use *De|
00001b30  73 6b 74 6f 70 20 74 6f  20 73 74 61 72 74 20 49  |sktop to start I|
00001b40  63 6f 6e 20 43 6c 6f 63  6b 22 0d 07 76 15 20 20  |con Clock"..v.  |
00001b50  20 20 20 20 20 20 65 71  75 62 20 20 20 20 30 0d  |      equb    0.|
00001b60  07 80 11 20 20 20 20 20  20 20 20 61 6c 69 67 6e  |...        align|
00001b70  0d 07 8a 04 0d 07 94 53  3b 20 2d 2d 2d 2d 2d 2d  |.......S; ------|
00001b80  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00001bc0  2d 2d 2d 2d 2d 2d 2d 0d  07 9e 34 3b 20 4d 6f 64  |-------...4; Mod|
00001bd0  75 6c 65 20 73 74 61 72  74 20 63 6f 64 65 20 63  |ule start code c|
00001be0  61 6c 6c 65 64 20 62 79  20 2a 44 65 73 6b 74 6f  |alled by *Deskto|
00001bf0  70 5f 49 63 6f 6e 43 6c  6f 63 6b 0d 07 a8 04 0d  |p_IconClock.....|
00001c00  07 b2 0a 2e 73 74 61 72  74 0d 07 bc 2b 20 20 20  |....start...+   |
00001c10  20 20 20 20 20 62 6c 20  20 20 20 20 20 73 65 65  |     bl      see|
00001c20  5f 69 66 5f 69 6e 5f 64  65 73 6b 74 6f 70 5f 77  |_if_in_desktop_w|
00001c30  6f 72 6c 64 0d 07 c6 1d  20 20 20 20 20 20 20 20  |orld....        |
00001c40  6c 64 72 20 20 20 20 20  72 31 32 2c 5b 72 31 32  |ldr     r12,[r12|
00001c50  5d 0d 07 d0 1a 20 20 20  20 20 20 20 20 63 6d 70  |]....        cmp|
00001c60  20 20 20 20 20 72 31 32  2c 23 30 0d 07 da 21 20  |     r12,#0...! |
00001c70  20 20 20 20 20 20 20 61  64 72 6c 65 20 20 20 72  |       adrle   r|
00001c80  30 2c 73 74 61 72 74 65  72 72 6f 72 0d 07 e4 26  |0,starterror...&|
00001c90  20 20 20 20 20 20 20 20  73 77 69 6c 65 20 20 20  |        swile   |
00001ca0  22 4f 53 5f 47 65 6e 65  72 61 74 65 45 72 72 6f  |"OS_GenerateErro|
00001cb0  72 22 0d 07 ee 22 20 20  20 20 20 20 20 20 61 64  |r"..."        ad|
00001cc0  64 20 20 20 20 20 72 31  33 2c 72 31 32 2c 23 73  |d     r13,r12,#s|
00001cd0  74 61 63 6b 0d 07 f8 29  20 20 20 20 20 20 20 20  |tack...)        |
00001ce0  6c 64 72 20 20 20 20 20  72 30 2c 5b 72 31 32 2c  |ldr     r0,[r12,|
00001cf0  23 74 61 73 6b 5f 68 61  6e 64 6c 65 5d 0d 08 02  |#task_handle]...|
00001d00  19 20 20 20 20 20 20 20  20 63 6d 70 20 20 20 20  |.        cmp    |
00001d10  20 72 30 2c 23 30 0d 08  0c 1b 20 20 20 20 20 20  | r0,#0....      |
00001d20  20 20 6c 64 72 67 74 20  20 20 72 31 2c 74 61 73  |  ldrgt   r1,tas|
00001d30  6b 0d 08 16 4d 20 20 20  20 20 20 20 20 73 77 69  |k...M        swi|
00001d40  67 74 20 20 20 22 58 57  69 6d 70 5f 43 6c 6f 73  |gt   "XWimp_Clos|
00001d50  65 44 6f 77 6e 22 20 20  20 20 20 20 20 3b 20 68  |eDown"       ; h|
00001d60  61 76 65 20 62 65 65 6e  20 72 65 65 6e 74 65 72  |ave been reenter|
00001d70  65 64 20 73 6f 20 73 68  75 74 64 6f 77 6e 0d 08  |ed so shutdown..|
00001d80  20 1b 20 20 20 20 20 20  20 20 6c 64 72 20 20 20  | .        ldr   |
00001d90  20 20 72 31 2c 74 61 73  6b 0d 08 2a 42 20 20 20  |  r1,task..*B   |
00001da0  20 20 20 20 20 6d 6f 76  20 20 20 20 20 72 30 2c  |     mov     r0,|
00001db0  23 32 30 30 20 20 20 20  20 20 20 20 20 20 20 20  |#200            |
00001dc0  20 20 20 20 20 3b 20 6c  61 73 74 20 6b 6e 6f 77  |     ; last know|
00001dd0  6e 20 77 69 6d 70 20 32  2e 30 30 0d 08 34 40 20  |n wimp 2.00..4@ |
00001de0  20 20 20 20 20 20 20 61  64 72 20 20 20 20 20 72  |       adr     r|
00001df0  32 2c 73 77 69 74 63 68  65 72 5f 6e 61 6d 65 20  |2,switcher_name |
00001e00  20 20 20 20 20 20 20 3b  20 72 32 20 2d 3e 20 22  |       ; r2 -> "|
00001e10  49 63 6f 6e 20 43 6c 6f  63 6b 22 0d 08 3e 26 20  |Icon Clock"..>& |
00001e20  20 20 20 20 20 20 20 73  77 69 20 20 20 20 20 22  |       swi     "|
00001e30  58 57 69 6d 70 5f 49 6e  69 74 69 61 6c 69 73 65  |XWimp_Initialise|
00001e40  22 0d 08 48 19 20 20 20  20 20 20 20 20 6d 76 6e  |"..H.        mvn|
00001e50  76 73 20 20 20 72 31 2c  23 30 0d 08 52 29 20 20  |vs   r1,#0..R)  |
00001e60  20 20 20 20 20 20 73 74  72 20 20 20 20 20 72 31  |      str     r1|
00001e70  2c 5b 72 31 32 2c 23 74  61 73 6b 5f 68 61 6e 64  |,[r12,#task_hand|
00001e80  6c 65 5d 0d 08 5c 21 20  20 20 20 20 20 20 20 62  |le]..\!        b|
00001e90  76 73 20 20 20 20 20 73  74 61 72 74 75 70 5f 65  |vs     startup_e|
00001ea0  72 72 6f 72 0d 08 66 29  20 20 20 20 20 20 20 20  |rror..f)        |
00001eb0  62 6c 20 20 20 20 20 20  72 65 61 64 5f 6f 70 74  |bl      read_opt|
00001ec0  69 6f 6e 73 5f 76 61 72  69 61 62 6c 65 0d 08 70  |ions_variable..p|
00001ed0  1f 20 20 20 20 20 20 20  20 62 6c 20 20 20 20 20  |.        bl     |
00001ee0  20 63 72 65 61 74 65 5f  69 63 6f 6e 0d 08 7a 26  | create_icon..z&|
00001ef0  20 20 20 20 20 20 20 20  62 6c 20 20 20 20 20 20  |        bl      |
00001f00  63 72 65 61 74 65 5f 69  6e 66 6f 5f 77 69 6e 64  |create_info_wind|
00001f10  6f 77 0d 08 84 30 20 20  20 20 20 20 20 20 62 6c  |ow...0        bl|
00001f20  20 20 20 20 20 20 77 6f  72 6b 5f 6f 75 74 5f 66  |      work_out_f|
00001f30  69 72 73 74 5f 70 6f 6c  6c 69 64 6c 65 5f 74 69  |irst_pollidle_ti|
00001f40  6d 65 0d 08 8e 29 20 20  20 20 20 20 20 20 61 64  |me...)        ad|
00001f50  64 20 20 20 20 20 72 32  2c 72 31 32 2c 23 70 6f  |d     r2,r12,#po|
00001f60  6c 6c 69 64 6c 65 5f 74  69 6d 65 0d 08 98 1e 20  |llidle_time.... |
00001f70  20 20 20 20 20 20 20 62  20 20 20 20 20 20 20 70  |       b       p|
00001f80  6f 6c 6c 5f 66 69 72 73  74 0d 08 a2 04 0d 08 ac  |oll_first.......|
00001f90  1c 2e 73 65 65 5f 69 66  5f 69 6e 5f 64 65 73 6b  |..see_if_in_desk|
00001fa0  74 6f 70 5f 77 6f 72 6c  64 0d 08 b6 19 20 20 20  |top_world....   |
00001fb0  20 20 20 20 20 6d 6f 76  20 20 20 20 20 72 30 2c  |     mov     r0,|
00001fc0  23 30 0d 08 c0 27 20 20  20 20 20 20 20 20 73 77  |#0...'        sw|
00001fd0  69 20 20 20 20 20 22 58  57 69 6d 70 5f 52 65 61  |i     "XWimp_Rea|
00001fe0  64 53 79 73 49 6e 66 6f  22 0d 08 ca 26 20 20 20  |dSysInfo"...&   |
00001ff0  20 20 20 20 20 73 77 69  76 73 20 20 20 22 4f 53  |     swivs   "OS|
00002000  5f 47 65 6e 65 72 61 74  65 45 72 72 6f 72 22 0d  |_GenerateError".|
00002010  08 d4 4b 20 20 20 20 20  20 20 20 74 65 71 20 20  |..K        teq  |
00002020  20 20 20 72 30 2c 23 30  20 20 20 20 20 20 20 20  |   r0,#0        |
00002030  20 20 20 20 20 20 20 20  20 20 20 3b 20 73 65 65  |           ; see|
00002040  20 68 6f 77 20 6d 61 6e  79 20 61 70 70 73 20 61  | how many apps a|
00002050  72 65 20 72 75 6e 6e 69  6e 67 0d 08 de 42 20 20  |re running...B  |
00002060  20 20 20 20 20 20 61 64  72 65 71 20 20 20 72 30  |      adreq   r0|
00002070  2c 73 74 61 72 74 65 72  72 6f 72 20 20 20 20 20  |,starterror     |
00002080  20 20 20 20 20 20 3b 20  6e 6f 6e 65 20 73 6f 20  |      ; none so |
00002090  72 65 70 6f 72 74 20 65  72 72 6f 72 0d 08 e8 26  |report error...&|
000020a0  20 20 20 20 20 20 20 20  73 77 69 65 71 20 20 20  |        swieq   |
000020b0  22 4f 53 5f 47 65 6e 65  72 61 74 65 45 72 72 6f  |"OS_GenerateErro|
000020c0  72 22 0d 08 f2 3d 20 20  20 20 20 20 20 20 6d 6f  |r"...=        mo|
000020d0  76 20 20 20 20 20 72 30  2c 23 36 20 20 20 20 20  |v     r0,#6     |
000020e0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 3b 20  |              ; |
000020f0  43 6c 61 69 6d 20 77 6f  72 6b 73 70 61 63 65 0d  |Claim workspace.|
00002100  08 fc 20 20 20 20 20 20  20 20 20 6d 6f 76 20 20  |..         mov  |
00002110  20 20 20 72 33 2c 23 72  6d 61 5f 73 69 7a 65 0d  |   r3,#rma_size.|
00002120  09 06 20 20 20 20 20 20  20 20 20 73 77 69 20 20  |..         swi  |
00002130  20 20 20 22 58 4f 53 5f  4d 6f 64 75 6c 65 22 0d  |   "XOS_Module".|
00002140  09 10 26 20 20 20 20 20  20 20 20 73 77 69 76 73  |..&        swivs|
00002150  20 20 20 22 4f 53 5f 47  65 6e 65 72 61 74 65 45  |   "OS_GenerateE|
00002160  72 72 6f 72 22 0d 09 1a  1c 20 20 20 20 20 20 20  |rror"....       |
00002170  20 73 74 72 20 20 20 20  20 72 32 2c 5b 72 31 32  | str     r2,[r12|
00002180  5d 0d 09 24 44 20 20 20  20 20 20 20 20 73 74 72  |]..$D        str|
00002190  20 20 20 20 20 72 31 32  2c 5b 72 32 2c 23 77 6f  |     r12,[r2,#wo|
000021a0  72 64 5d 20 20 20 20 20  20 20 20 20 20 3b 20 73  |rd]          ; s|
000021b0  74 6f 72 65 20 6f 75 72  20 70 72 69 76 61 74 65  |tore our private|
000021c0  20 77 6f 72 64 0d 09 2e  1a 20 20 20 20 20 20 20  | word....       |
000021d0  20 6d 6f 76 20 20 20 20  20 70 63 2c 72 31 34 0d  | mov     pc,r14.|
000021e0  09 38 04 0d 09 42 53 3b  20 2d 2d 2d 2d 2d 2d 2d  |.8...BS; -------|
000021f0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00002230  2d 2d 2d 2d 2d 2d 0d 09  4c 4e 3b 20 72 65 70 6f  |------..LN; repo|
00002240  72 74 20 61 6e 20 65 72  72 6f 72 20 75 73 69 6e  |rt an error usin|
00002250  67 20 57 69 6d 70 5f 52  65 70 6f 72 74 45 72 72  |g Wimp_ReportErr|
00002260  6f 72 2c 20 73 65 74 20  63 6f 75 6c 64 20 6e 6f  |or, set could no|
00002270  74 20 73 74 61 72 74 20  75 70 20 66 6c 61 67 20  |t start up flag |
00002280  74 68 65 6e 0d 09 56 0f  3b 20 63 6c 6f 73 65 64  |then..V.; closed|
00002290  6f 77 6e 0d 09 60 0b 3b  20 65 6e 74 72 79 0d 09  |own..`.; entry..|
000022a0  6a 1d 3b 20 20 20 20 20  20 20 72 30 20 2d 3e 20  |j.;       r0 -> |
000022b0  65 72 72 6f 72 20 62 6c  6f 63 6b 0d 09 74 0a 3b  |error block..t.;|
000022c0  20 65 78 69 74 0d 09 7e  13 3b 20 20 20 20 20 20  | exit..~.;      |
000022d0  20 64 6f 65 73 6e 27 74  0d 09 88 04 0d 09 92 12  | doesn't........|
000022e0  2e 73 74 61 72 74 75 70  5f 65 72 72 6f 72 0d 09  |.startup_error..|
000022f0  9c 26 20 20 20 20 20 20  20 20 61 64 64 20 20 20  |.&        add   |
00002300  20 20 72 31 2c 72 31 32  2c 23 70 6f 6c 6c 5f 73  |  r1,r12,#poll_s|
00002310  70 61 63 65 0d 09 a6 1e  20 20 20 20 20 20 20 20  |pace....        |
00002320  6c 64 72 20 20 20 20 20  72 32 2c 5b 72 30 5d 2c  |ldr     r2,[r0],|
00002330  23 34 0d 09 b0 1e 20 20  20 20 20 20 20 20 73 74  |#4....        st|
00002340  72 20 20 20 20 20 72 32  2c 5b 72 31 5d 2c 23 34  |r     r2,[r1],#4|
00002350  0d 09 ba 2c 20 20 20 20  20 20 20 20 61 64 72 20  |...,        adr |
00002360  20 20 20 20 72 32 2c 73  74 61 72 74 75 70 5f 65  |    r2,startup_e|
00002370  72 72 6f 72 5f 6d 65 73  73 61 67 65 0d 09 c4 18  |rror_message....|
00002380  2e 73 74 61 72 74 75 70  5f 65 72 72 6f 72 5f 6c  |.startup_error_l|
00002390  6f 6f 70 31 0d 09 ce 1e  20 20 20 20 20 20 20 20  |oop1....        |
000023a0  6c 64 72 62 20 20 20 20  72 33 2c 5b 72 32 5d 2c  |ldrb    r3,[r2],|
000023b0  23 31 0d 09 d8 19 20 20  20 20 20 20 20 20 63 6d  |#1....        cm|
000023c0  70 20 20 20 20 20 72 33  2c 23 30 0d 09 e2 1e 20  |p     r3,#0.... |
000023d0  20 20 20 20 20 20 20 73  74 72 6e 65 62 20 20 72  |       strneb  r|
000023e0  33 2c 5b 72 31 5d 2c 23  31 0d 09 ec 27 20 20 20  |3,[r1],#1...'   |
000023f0  20 20 20 20 20 62 6e 65  20 20 20 20 20 73 74 61  |     bne     sta|
00002400  72 74 75 70 5f 65 72 72  6f 72 5f 6c 6f 6f 70 31  |rtup_error_loop1|
00002410  0d 09 f6 18 2e 73 74 61  72 74 75 70 5f 65 72 72  |.....startup_err|
00002420  6f 72 5f 6c 6f 6f 70 32  0d 0a 00 1e 20 20 20 20  |or_loop2....    |
00002430  20 20 20 20 6c 64 72 62  20 20 20 20 72 33 2c 5b  |    ldrb    r3,[|
00002440  72 30 5d 2c 23 31 0d 0a  0a 19 20 20 20 20 20 20  |r0],#1....      |
00002450  20 20 63 6d 70 20 20 20  20 20 72 33 2c 23 30 0d  |  cmp     r3,#0.|
00002460  0a 14 1e 20 20 20 20 20  20 20 20 73 74 72 6e 65  |...        strne|
00002470  62 20 20 72 33 2c 5b 72  31 5d 2c 23 31 0d 0a 1e  |b  r3,[r1],#1...|
00002480  27 20 20 20 20 20 20 20  20 62 6e 65 20 20 20 20  |'        bne    |
00002490  20 73 74 61 72 74 75 70  5f 65 72 72 6f 72 5f 6c  | startup_error_l|
000024a0  6f 6f 70 32 0d 0a 28 18  2e 73 74 61 72 74 75 70  |oop2..(..startup|
000024b0  5f 65 72 72 6f 72 5f 6c  6f 6f 70 33 0d 0a 32 1e  |_error_loop3..2.|
000024c0  20 20 20 20 20 20 20 20  6c 64 72 62 20 20 20 20  |        ldrb    |
000024d0  72 33 2c 5b 72 32 5d 2c  23 31 0d 0a 3c 1e 20 20  |r3,[r2],#1..<.  |
000024e0  20 20 20 20 20 20 73 74  72 62 20 20 20 20 72 33  |      strb    r3|
000024f0  2c 5b 72 31 5d 2c 23 31  0d 0a 46 19 20 20 20 20  |,[r1],#1..F.    |
00002500  20 20 20 20 63 6d 70 20  20 20 20 20 72 33 2c 23  |    cmp     r3,#|
00002510  30 0d 0a 50 27 20 20 20  20 20 20 20 20 62 6e 65  |0..P'        bne|
00002520  20 20 20 20 20 73 74 61  72 74 75 70 5f 65 72 72  |     startup_err|
00002530  6f 72 5f 6c 6f 6f 70 33  0d 0a 5a 26 20 20 20 20  |or_loop3..Z&    |
00002540  20 20 20 20 61 64 64 20  20 20 20 20 72 30 2c 72  |    add     r0,r|
00002550  31 32 2c 23 70 6f 6c 6c  5f 73 70 61 63 65 0d 0a  |12,#poll_space..|
00002560  64 39 20 20 20 20 20 20  20 20 6d 6f 76 20 20 20  |d9        mov   |
00002570  20 20 72 31 2c 23 32 20  20 20 20 20 20 20 20 20  |  r1,#2         |
00002580  20 20 20 20 20 20 20 20  20 20 3b 20 63 61 6e 63  |          ; canc|
00002590  65 6c 20 6f 6e 6c 79 0d  0a 6e 20 20 20 20 20 20  |el only..n      |
000025a0  20 20 20 62 6c 20 20 20  20 20 20 72 65 70 6f 72  |   bl      repor|
000025b0  74 5f 65 72 72 6f 72 0d  0a 78 1d 20 20 20 20 20  |t_error..x.     |
000025c0  20 20 20 62 6c 20 20 20  20 20 20 63 6c 6f 73 65  |   bl      close|
000025d0  64 6f 77 6e 0d 0a 82 19  20 20 20 20 20 20 20 20  |down....        |
000025e0  6d 76 6e 20 20 20 20 20  72 30 2c 23 30 0d 0a 8c  |mvn     r0,#0...|
000025f0  49 20 20 20 20 20 20 20  20 73 74 72 20 20 20 20  |I        str    |
00002600  20 72 30 2c 5b 72 31 32  5d 20 20 20 20 20 20 20  | r0,[r12]       |
00002610  20 20 20 20 20 20 20 20  20 3b 20 73 65 74 20 63  |         ; set c|
00002620  6f 75 6c 64 20 6e 6f 74  20 73 74 61 72 74 20 75  |ould not start u|
00002630  70 20 66 6c 61 67 0d 0a  96 1d 20 20 20 20 20 20  |p flag....      |
00002640  20 20 73 77 69 20 20 20  20 20 22 4f 53 5f 45 78  |  swi     "OS_Ex|
00002650  69 74 22 0d 0a a0 1a 2e  73 74 61 72 74 75 70 5f  |it".....startup_|
00002660  65 72 72 6f 72 5f 6d 65  73 73 61 67 65 0d 0a aa  |error_message...|
00002670  37 20 20 20 20 20 20 20  20 65 71 75 73 20 20 20  |7        equs   |
00002680  20 22 49 63 6f 6e 20 43  6c 6f 63 6b 20 63 6f 75  | "Icon Clock cou|
00002690  6c 64 20 6e 6f 74 20 73  74 61 72 74 75 70 20 28  |ld not startup (|
000026a0  22 2b bd 30 0d 0a b4 34  20 20 20 20 20 20 20 20  |"+.0...4        |
000026b0  65 71 75 73 20 20 20 20  22 29 20 61 6e 64 20 6d  |equs    ") and m|
000026c0  75 73 74 20 65 78 69 74  20 69 6d 6d 65 64 69 61  |ust exit immedia|
000026d0  74 65 6c 79 22 2b bd 30  0d 0a be 11 20 20 20 20  |tely"+.0....    |
000026e0  20 20 20 20 61 6c 69 67  6e 0d 0a c8 04 0d 0a d2  |    align.......|
000026f0  53 3b 20 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |S; -------------|
00002700  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00002740  0d 0a dc 52 3b 20 72 65  61 64 20 74 68 65 20 6f  |...R; read the o|
00002750  70 74 69 6f 6e 73 20 76  61 72 69 61 62 6c 65 2e  |ptions variable.|
00002760  20 52 65 70 6f 72 74 20  61 6e 64 20 65 72 72 6f  | Report and erro|
00002770  72 20 69 66 20 69 6e 76  61 6c 69 64 20 61 6e 64  |r if invalid and|
00002780  20 74 68 65 6e 20 75 73  65 20 64 65 66 61 75 6c  | then use defaul|
00002790  74 73 0d 0a e6 37 3b 20  69 66 20 75 6e 64 65 66  |ts...7; if undef|
000027a0  69 6e 65 64 20 75 73 65  20 64 65 66 61 75 6c 74  |ined use default|
000027b0  73 20 62 75 74 20 64 6f  20 6e 6f 74 20 72 65 70  |s but do not rep|
000027c0  6f 72 74 20 65 72 72 6f  72 0d 0a f0 04 0d 0a fa  |ort error.......|
000027d0  1a 2e 72 65 61 64 5f 6f  70 74 69 6f 6e 73 5f 76  |..read_options_v|
000027e0  61 72 69 61 62 6c 65 0d  0b 04 1e 20 20 20 20 20  |ariable....     |
000027f0  20 20 20 73 74 6d 66 64  20 20 20 72 31 33 21 2c  |   stmfd   r13!,|
00002800  7b 72 31 34 7d 0d 0b 0e  2c 20 20 20 20 20 20 20  |{r14}...,       |
00002810  20 61 64 72 20 20 20 20  20 72 30 2c 6f 70 74 69  | adr     r0,opti|
00002820  6f 6e 73 5f 76 61 72 69  61 62 6c 65 5f 6e 61 6d  |ons_variable_nam|
00002830  65 0d 0b 18 26 20 20 20  20 20 20 20 20 61 64 64  |e...&        add|
00002840  20 20 20 20 20 72 31 2c  72 31 32 2c 23 77 6f 72  |     r1,r12,#wor|
00002850  6b 5f 73 70 61 63 65 0d  0b 22 46 20 20 20 20 20  |k_space.."F     |
00002860  20 20 20 6d 76 6e 20 20  20 20 20 72 32 2c 23 30  |   mvn     r2,#0|
00002870  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002880  20 20 20 3b 20 63 68 65  63 6b 20 66 6f 72 20 65  |   ; check for e|
00002890  78 69 73 74 65 6e 63 65  20 6f 6e 6c 79 0d 0b 2c  |xistence only..,|
000028a0  38 20 20 20 20 20 20 20  20 6d 6f 76 20 20 20 20  |8        mov    |
000028b0  20 72 33 2c 23 30 20 20  20 20 20 20 20 20 20 20  | r3,#0          |
000028c0  20 20 20 20 20 20 20 20  20 3b 20 66 69 72 73 74  |         ; first|
000028d0  20 63 61 6c 6c 0d 0b 36  19 20 20 20 20 20 20 20  | call..6.       |
000028e0  20 6d 6f 76 20 20 20 20  20 72 34 2c 23 33 0d 0b  | mov     r4,#3..|
000028f0  40 24 20 20 20 20 20 20  20 20 73 77 69 20 20 20  |@$        swi   |
00002900  20 20 22 58 4f 53 5f 52  65 61 64 56 61 72 56 61  |  "XOS_ReadVarVa|
00002910  6c 22 0d 0b 4a 44 20 20  20 20 20 20 20 20 74 65  |l"..JD        te|
00002920  71 20 20 20 20 20 72 32  2c 23 30 20 20 20 20 20  |q     r2,#0     |
00002930  20 20 20 20 20 20 20 20  20 20 20 20 20 20 3b 20  |              ; |
00002940  73 65 65 20 69 66 20 76  61 72 69 61 62 6c 65 20  |see if variable |
00002950  65 78 69 73 74 73 0d 0b  54 2a 20 20 20 20 20 20  |exists..T*      |
00002960  20 20 62 65 71 20 20 20  20 20 6f 70 74 69 6f 6e  |  beq     option|
00002970  73 5f 76 61 72 69 61 62  6c 65 5f 75 6e 73 65 74  |s_variable_unset|
00002980  0d 0b 5e 2c 20 20 20 20  20 20 20 20 61 64 72 20  |..^,        adr |
00002990  20 20 20 20 72 30 2c 6f  70 74 69 6f 6e 73 5f 76  |    r0,options_v|
000029a0  61 72 69 61 62 6c 65 5f  6e 61 6d 65 0d 0b 68 2f  |ariable_name..h/|
000029b0  20 20 20 20 20 20 20 20  6d 6f 76 20 20 20 20 20  |        mov     |
000029c0  72 32 2c 23 6f 70 74 69  6f 6e 73 5f 76 61 72 69  |r2,#options_vari|
000029d0  61 62 6c 65 5f 6c 65 6e  67 74 68 0d 0b 72 38 20  |able_length..r8 |
000029e0  20 20 20 20 20 20 20 6d  6f 76 20 20 20 20 20 72  |       mov     r|
000029f0  33 2c 23 30 20 20 20 20  20 20 20 20 20 20 20 20  |3,#0            |
00002a00  20 20 20 20 20 20 20 3b  20 66 69 72 73 74 20 63  |       ; first c|
00002a10  61 6c 6c 0d 0b 7c 19 20  20 20 20 20 20 20 20 6d  |all..|.        m|
00002a20  6f 76 20 20 20 20 20 72  34 2c 23 33 0d 0b 86 24  |ov     r4,#3...$|
00002a30  20 20 20 20 20 20 20 20  73 77 69 20 20 20 20 20  |        swi     |
00002a40  22 58 4f 53 5f 52 65 61  64 56 61 72 56 61 6c 22  |"XOS_ReadVarVal"|
00002a50  0d 0b 90 2c 20 20 20 20  20 20 20 20 62 76 73 20  |...,        bvs |
00002a60  20 20 20 20 6f 70 74 69  6f 6e 73 5f 76 61 72 69  |    options_vari|
00002a70  61 62 6c 65 5f 69 6e 76  61 6c 69 64 0d 0b 9a 2f  |able_invalid.../|
00002a80  20 20 20 20 20 20 20 20  74 65 71 20 20 20 20 20  |        teq     |
00002a90  72 32 2c 23 6f 70 74 69  6f 6e 73 5f 76 61 72 69  |r2,#options_vari|
00002aa0  61 62 6c 65 5f 6c 65 6e  67 74 68 0d 0b a4 2c 20  |able_length..., |
00002ab0  20 20 20 20 20 20 20 62  6e 65 20 20 20 20 20 6f  |       bne     o|
00002ac0  70 74 69 6f 6e 73 5f 76  61 72 69 61 62 6c 65 5f  |ptions_variable_|
00002ad0  69 6e 76 61 6c 69 64 0d  0b ae 22 20 20 20 20 20  |invalid..."     |
00002ae0  20 20 20 6d 6f 76 20 20  20 20 20 72 32 2c 23 97  |   mov     r2,#.|
00002af0  22 20 22 20 3c 3c 20 31  36 0d 0b b8 1b 20 20 20  |" " << 16....   |
00002b00  20 20 20 20 20 6c 64 72  62 20 20 20 20 72 30 2c  |     ldrb    r0,|
00002b10  5b 72 31 5d 0d 0b c2 1c  20 20 20 20 20 20 20 20  |[r1]....        |
00002b20  61 64 64 20 20 20 20 20  72 32 2c 72 32 2c 72 30  |add     r2,r2,r0|
00002b30  0d 0b cc 1e 20 20 20 20  20 20 20 20 6c 64 72 62  |....        ldrb|
00002b40  20 20 20 20 72 30 2c 5b  72 31 2c 23 31 5d 0d 0b  |    r0,[r1,#1]..|
00002b50  d6 23 20 20 20 20 20 20  20 20 61 64 64 20 20 20  |.#        add   |
00002b60  20 20 72 32 2c 72 32 2c  72 30 2c 6c 73 6c 20 23  |  r2,r2,r0,lsl #|
00002b70  38 0d 0b e0 1d 20 20 20  20 20 20 20 20 6c 64 72  |8....        ldr|
00002b80  20 20 20 20 20 72 30 2c  74 77 65 6c 76 65 0d 0b  |     r0,twelve..|
00002b90  ea 19 20 20 20 20 20 20  20 20 74 65 71 20 20 20  |..        teq   |
00002ba0  20 20 72 30 2c 72 32 0d  0b f4 19 20 20 20 20 20  |  r0,r2....     |
00002bb0  20 20 20 6d 6f 76 65 71  20 20 20 72 30 2c 23 30  |   moveq   r0,#0|
00002bc0  0d 0b fe 29 20 20 20 20  20 20 20 20 73 74 72 65  |...)        stre|
00002bd0  71 62 20 20 72 30 2c 5b  72 31 32 2c 23 74 69 6d  |qb  r0,[r12,#tim|
00002be0  65 5f 66 6f 72 6d 61 74  5d 0d 0c 08 23 20 20 20  |e_format]...#   |
00002bf0  20 20 20 20 20 62 65 71  20 20 20 20 20 63 68 65  |     beq     che|
00002c00  63 6b 5f 63 6c 6f 63 6b  66 61 63 65 0d 0c 12 22  |ck_clockface..."|
00002c10  20 20 20 20 20 20 20 20  6c 64 72 20 20 20 20 20  |        ldr     |
00002c20  72 30 2c 74 77 65 6e 74  79 5f 66 6f 75 72 0d 0c  |r0,twenty_four..|
00002c30  1c 19 20 20 20 20 20 20  20 20 74 65 71 20 20 20  |..        teq   |
00002c40  20 20 72 30 2c 72 32 0d  0c 26 2c 20 20 20 20 20  |  r0,r2..&,     |
00002c50  20 20 20 62 6e 65 20 20  20 20 20 6f 70 74 69 6f  |   bne     optio|
00002c60  6e 73 5f 76 61 72 69 61  62 6c 65 5f 69 6e 76 61  |ns_variable_inva|
00002c70  6c 69 64 0d 0c 30 19 20  20 20 20 20 20 20 20 6d  |lid..0.        m|
00002c80  6f 76 20 20 20 20 20 72  30 2c 23 31 0d 0c 3a 29  |ov     r0,#1..:)|
00002c90  20 20 20 20 20 20 20 20  73 74 72 62 20 20 20 20  |        strb    |
00002ca0  72 30 2c 5b 72 31 32 2c  23 74 69 6d 65 5f 66 6f  |r0,[r12,#time_fo|
00002cb0  72 6d 61 74 5d 0d 0c 44  14 2e 63 68 65 63 6b 5f  |rmat]..D..check_|
00002cc0  63 6c 6f 63 6b 66 61 63  65 0d 0c 4e 1e 20 20 20  |clockface..N.   |
00002cd0  20 20 20 20 20 6c 64 72  62 20 20 20 20 72 30 2c  |     ldrb    r0,|
00002ce0  5b 72 31 2c 23 32 5d 0d  0c 58 3d 20 20 20 20 20  |[r1,#2]..X=     |
00002cf0  20 20 20 62 69 63 20 20  20 20 20 72 30 2c 72 30  |   bic     r0,r0|
00002d00  2c 23 31 20 3c 3c 20 35  20 20 20 20 20 20 20 20  |,#1 << 5        |
00002d10  20 20 20 3b 20 6d 61 6b  65 20 75 70 70 65 72 20  |   ; make upper |
00002d20  63 61 73 65 0d 0c 62 1c  20 20 20 20 20 20 20 20  |case..b.        |
00002d30  74 65 71 20 20 20 20 20  72 30 2c 23 97 22 52 22  |teq     r0,#."R"|
00002d40  0d 0c 6c 1c 20 20 20 20  20 20 20 20 74 65 71 6e  |..l.        teqn|
00002d50  65 20 20 20 72 30 2c 23  97 22 4c 22 0d 0c 76 1c  |e   r0,#."L"..v.|
00002d60  20 20 20 20 20 20 20 20  74 65 71 6e 65 20 20 20  |        teqne   |
00002d70  72 30 2c 23 97 22 42 22  0d 0c 80 2c 20 20 20 20  |r0,#."B"...,    |
00002d80  20 20 20 20 62 6e 65 20  20 20 20 20 6f 70 74 69  |    bne     opti|
00002d90  6f 6e 73 5f 76 61 72 69  61 62 6c 65 5f 69 6e 76  |ons_variable_inv|
00002da0  61 6c 69 64 0d 0c 8a 1c  20 20 20 20 20 20 20 20  |alid....        |
00002db0  63 6d 70 20 20 20 20 20  72 30 2c 23 97 22 4c 22  |cmp     r0,#."L"|
00002dc0  0d 0c 94 19 20 20 20 20  20 20 20 20 6d 6f 76 6c  |....        movl|
00002dd0  74 20 20 20 72 30 2c 23  32 0d 0c 9e 19 20 20 20  |t   r0,#2....   |
00002de0  20 20 20 20 20 6d 6f 76  65 71 20 20 20 72 30 2c  |     moveq   r0,|
00002df0  23 31 0d 0c a8 19 20 20  20 20 20 20 20 20 6d 6f  |#1....        mo|
00002e00  76 67 74 20 20 20 72 30  2c 23 30 0d 0c b2 27 20  |vgt   r0,#0...' |
00002e10  20 20 20 20 20 20 20 73  74 72 62 20 20 20 20 72  |       strb    r|
00002e20  30 2c 5b 72 31 32 2c 23  63 6c 6f 63 6b 66 61 63  |0,[r12,#clockfac|
00002e30  65 5d 0d 0c bc 1d 20 20  20 20 20 20 20 20 6c 64  |e]....        ld|
00002e40  6d 66 64 20 20 20 72 31  33 21 2c 7b 70 63 7d 0d  |mfd   r13!,{pc}.|
00002e50  0c c6 1d 2e 6f 70 74 69  6f 6e 73 5f 76 61 72 69  |....options_vari|
00002e60  61 62 6c 65 5f 69 6e 76  61 6c 69 64 0d 0c d0 35  |able_invalid...5|
00002e70  20 20 20 20 20 20 20 20  61 64 72 20 20 20 20 20  |        adr     |
00002e80  72 30 2c 6f 70 74 69 6f  6e 73 5f 76 61 72 69 61  |r0,options_varia|
00002e90  62 6c 65 5f 69 6e 76 61  6c 69 64 5f 65 72 72 6f  |ble_invalid_erro|
00002ea0  72 0d 0c da 23 20 20 20  20 20 20 20 20 62 6c 20  |r...#        bl |
00002eb0  20 20 20 20 20 72 65 70  6f 72 74 5f 65 72 72 6f  |     report_erro|
00002ec0  72 5f 6f 6b 0d 0c e4 1b  2e 6f 70 74 69 6f 6e 73  |r_ok.....options|
00002ed0  5f 76 61 72 69 61 62 6c  65 5f 75 6e 73 65 74 0d  |_variable_unset.|
00002ee0  0c ee 2b 20 20 20 20 20  20 20 20 6d 6f 76 20 20  |..+        mov  |
00002ef0  20 20 20 72 30 2c 23 74  69 6d 65 5f 66 6f 72 6d  |   r0,#time_form|
00002f00  61 74 5f 64 65 66 61 75  6c 74 0d 0c f8 29 20 20  |at_default...)  |
00002f10  20 20 20 20 20 20 73 74  72 62 20 20 20 20 72 30  |      strb    r0|
00002f20  2c 5b 72 31 32 2c 23 74  69 6d 65 5f 66 6f 72 6d  |,[r12,#time_form|
00002f30  61 74 5d 0d 0d 02 29 20  20 20 20 20 20 20 20 6d  |at]...)        m|
00002f40  6f 76 20 20 20 20 20 72  30 2c 23 63 6c 6f 63 6b  |ov     r0,#clock|
00002f50  66 61 63 65 5f 64 65 66  61 75 6c 74 0d 0d 0c 27  |face_default...'|
00002f60  20 20 20 20 20 20 20 20  73 74 72 62 20 20 20 20  |        strb    |
00002f70  72 30 2c 5b 72 31 32 2c  23 63 6c 6f 63 6b 66 61  |r0,[r12,#clockfa|
00002f80  63 65 5d 0d 0d 16 28 20  20 20 20 20 20 20 20 62  |ce]...(        b|
00002f90  6c 20 20 20 20 20 20 73  65 74 5f 6f 70 74 69 6f  |l      set_optio|
00002fa0  6e 73 5f 76 61 72 69 61  62 6c 65 0d 0d 20 1d 20  |ns_variable.. . |
00002fb0  20 20 20 20 20 20 20 6c  64 6d 66 64 20 20 20 72  |       ldmfd   r|
00002fc0  31 33 21 2c 7b 70 63 7d  0d 0d 2a 23 2e 6f 70 74  |13!,{pc}..*#.opt|
00002fd0  69 6f 6e 73 5f 76 61 72  69 61 62 6c 65 5f 69 6e  |ions_variable_in|
00002fe0  76 61 6c 69 64 5f 65 72  72 6f 72 0d 0d 34 15 20  |valid_error..4. |
00002ff0  20 20 20 20 20 20 20 65  71 75 64 20 20 20 20 30  |       equd    0|
00003000  0d 0d 3e 46 20 20 20 20  20 20 20 20 65 71 75 73  |..>F        equs|
00003010  20 20 20 20 22 4f 70 74  69 6f 6e 73 20 76 61 72  |    "Options var|
00003020  69 61 62 6c 65 20 28 49  63 6f 6e 43 6c 6f 63 6b  |iable (IconClock|
00003030  24 4f 70 74 69 6f 6e 73  29 20 69 73 20 69 6e 76  |$Options) is inv|
00003040  61 6c 69 64 2e 22 0d 0d  48 3a 20 20 20 20 20 20  |alid."..H:      |
00003050  20 20 65 71 75 73 20 20  20 20 22 20 55 73 69 6e  |  equs    " Usin|
00003060  67 20 74 68 65 20 64 65  66 61 75 6c 74 20 73 65  |g the default se|
00003070  74 74 69 6e 67 20 6f 66  20 32 34 52 22 2b bd 30  |tting of 24R"+.0|
00003080  0d 0d 52 11 20 20 20 20  20 20 20 20 61 6c 69 67  |..R.        alig|
00003090  6e 0d 0d 5c 1a 2e 6f 70  74 69 6f 6e 73 5f 76 61  |n..\..options_va|
000030a0  72 69 61 62 6c 65 5f 6e  61 6d 65 0d 0d 66 2a 20  |riable_name..f* |
000030b0  20 20 20 20 20 20 20 65  71 75 73 20 20 20 20 22  |       equs    "|
000030c0  49 63 6f 6e 43 6c 6f 63  6b 24 4f 70 74 69 6f 6e  |IconClock$Option|
000030d0  73 22 2b bd 30 0d 0d 70  70 70 67 6e 0d 0d 7a 0b  |s"+.0..pppgn..z.|
000030e0  2e 74 77 65 6c 76 65 0d  0d 84 1c 20 20 20 20 20  |.twelve....     |
000030f0  20 20 20 65 71 75 73 20  20 20 20 22 31 32 20 22  |   equs    "12 "|
00003100  2b bd 30 0d 0d 8e 10 2e  74 77 65 6e 74 79 5f 66  |+.0.....twenty_f|
00003110  6f 75 72 0d 0d 98 1c 20  20 20 20 20 20 20 20 65  |our....        e|
00003120  71 75 73 20 20 20 20 22  32 34 20 22 2b bd 30 0d  |qus    "24 "+.0.|
00003130  0d a2 04 0d 0d ac 53 3b  20 2d 2d 2d 2d 2d 2d 2d  |......S; -------|
00003140  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00003180  2d 2d 2d 2d 2d 2d 0d 0d  b6 1e 3b 20 73 65 74 20  |------....; set |
00003190  74 68 65 20 6f 70 74 69  6f 6e 73 20 76 61 72 69  |the options vari|
000031a0  61 62 6c 65 0d 0d c0 04  0d 0d ca 19 2e 73 65 74  |able.........set|
000031b0  5f 6f 70 74 69 6f 6e 73  5f 76 61 72 69 61 62 6c  |_options_variabl|
000031c0  65 0d 0d d4 1e 20 20 20  20 20 20 20 20 73 74 6d  |e....        stm|
000031d0  66 64 20 20 20 72 31 33  21 2c 7b 72 31 34 7d 0d  |fd   r13!,{r14}.|
000031e0  0d de 26 20 20 20 20 20  20 20 20 61 64 64 20 20  |..&        add  |
000031f0  20 20 20 72 31 2c 72 31  32 2c 23 77 6f 72 6b 5f  |   r1,r12,#work_|
00003200  73 70 61 63 65 0d 0d e8  29 20 20 20 20 20 20 20  |space...)       |
00003210  20 6c 64 72 62 20 20 20  20 72 30 2c 5b 72 31 32  | ldrb    r0,[r12|
00003220  2c 23 74 69 6d 65 5f 66  6f 72 6d 61 74 5d 0d 0d  |,#time_format]..|
00003230  f2 19 20 20 20 20 20 20  20 20 74 65 71 20 20 20  |..        teq   |
00003240  20 20 72 30 2c 23 30 0d  0d fc 1d 20 20 20 20 20  |  r0,#0....     |
00003250  20 20 20 6c 64 72 65 71  20 20 20 72 30 2c 74 77  |   ldreq   r0,tw|
00003260  65 6c 76 65 0d 0e 06 22  20 20 20 20 20 20 20 20  |elve..."        |
00003270  6c 64 72 6e 65 20 20 20  72 30 2c 74 77 65 6e 74  |ldrne   r0,twent|
00003280  79 5f 66 6f 75 72 0d 0e  10 1b 20 20 20 20 20 20  |y_four....      |
00003290  20 20 73 74 72 20 20 20  20 20 72 30 2c 5b 72 31  |  str     r0,[r1|
000032a0  5d 0d 0e 1a 27 20 20 20  20 20 20 20 20 6c 64 72  |]...'        ldr|
000032b0  62 20 20 20 20 72 30 2c  5b 72 31 32 2c 23 63 6c  |b    r0,[r12,#cl|
000032c0  6f 63 6b 66 61 63 65 5d  0d 0e 24 19 20 20 20 20  |ockface]..$.    |
000032d0  20 20 20 20 63 6d 70 20  20 20 20 20 72 30 2c 23  |    cmp     r0,#|
000032e0  31 0d 0e 2e 1c 20 20 20  20 20 20 20 20 6d 6f 76  |1....        mov|
000032f0  6c 74 20 20 20 72 30 2c  23 97 22 52 22 0d 0e 38  |lt   r0,#."R"..8|
00003300  1c 20 20 20 20 20 20 20  20 6d 6f 76 65 71 20 20  |.        moveq  |
00003310  20 72 30 2c 23 97 22 4c  22 0d 0e 42 1c 20 20 20  | r0,#."L"..B.   |
00003320  20 20 20 20 20 6d 6f 76  67 74 20 20 20 72 30 2c  |     movgt   r0,|
00003330  23 97 22 42 22 0d 0e 4c  1e 20 20 20 20 20 20 20  |#."B"..L.       |
00003340  20 73 74 72 62 20 20 20  20 72 30 2c 5b 72 31 2c  | strb    r0,[r1,|
00003350  23 32 5d 0d 0e 56 2c 20  20 20 20 20 20 20 20 61  |#2]..V,        a|
00003360  64 72 20 20 20 20 20 72  30 2c 6f 70 74 69 6f 6e  |dr     r0,option|
00003370  73 5f 76 61 72 69 61 62  6c 65 5f 6e 61 6d 65 0d  |s_variable_name.|
00003380  0e 60 2f 20 20 20 20 20  20 20 20 6d 6f 76 20 20  |.`/        mov  |
00003390  20 20 20 72 32 2c 23 6f  70 74 69 6f 6e 73 5f 76  |   r2,#options_v|
000033a0  61 72 69 61 62 6c 65 5f  6c 65 6e 67 74 68 0d 0e  |ariable_length..|
000033b0  6a 38 20 20 20 20 20 20  20 20 6d 6f 76 20 20 20  |j8        mov   |
000033c0  20 20 72 33 2c 23 30 20  20 20 20 20 20 20 20 20  |  r3,#0         |
000033d0  20 20 20 20 20 20 20 20  20 20 3b 20 66 69 72 73  |          ; firs|
000033e0  74 20 63 61 6c 6c 0d 0e  74 3c 20 20 20 20 20 20  |t call..t<      |
000033f0  20 20 6d 6f 76 20 20 20  20 20 72 34 2c 23 30 20  |  mov     r4,#0 |
00003400  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00003410  20 20 3b 20 74 79 70 65  20 69 73 20 73 74 72 69  |  ; type is stri|
00003420  6e 67 0d 0e 7e 23 20 20  20 20 20 20 20 20 73 77  |ng..~#        sw|
00003430  69 20 20 20 20 20 22 58  4f 53 5f 53 65 74 56 61  |i     "XOS_SetVa|
00003440  72 56 61 6c 22 0d 0e 88  23 20 20 20 20 20 20 20  |rVal"...#       |
00003450  20 62 6c 76 73 20 20 20  20 72 65 70 6f 72 74 5f  | blvs    report_|
00003460  65 72 72 6f 72 5f 6f 6b  0d 0e 92 1d 20 20 20 20  |error_ok....    |
00003470  20 20 20 20 6c 64 6d 66  64 20 20 20 72 31 33 21  |    ldmfd   r13!|
00003480  2c 7b 70 63 7d 0d 0e 9c  04 0d 0e a6 53 3b 20 2d  |,{pc}.......S; -|
00003490  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
000034d0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 0d 0e b0 27  |------------...'|
000034e0  3b 20 69 6e 66 6f 72 6d  61 74 69 6f 6e 20 75 73  |; information us|
000034f0  65 64 20 62 79 20 74 61  73 6b 20 73 74 61 72 74  |ed by task start|
00003500  20 75 70 0d 0e ba 04 0d  0e c4 09 2e 74 61 73 6b  | up.........task|
00003510  0d 0e ce 1a 20 20 20 20  20 20 20 20 65 71 75 73  |....        equs|
00003520  20 20 20 20 22 54 41 53  4b 22 0d 0e d8 12 2e 73  |    "TASK".....s|
00003530  77 69 74 63 68 65 72 5f  6e 61 6d 65 0d 0e e2 26  |witcher_name...&|
00003540  20 20 20 20 20 20 20 20  65 71 75 73 20 20 20 20  |        equs    |
00003550  22 49 63 6f 6e 62 61 72  20 43 6c 6f 63 6b 22 2b  |"Iconbar Clock"+|
00003560  bd 30 0d 0e ec ec ec 67  6e 0d 0e f6 04 0d 0f 00  |.0.....gn.......|
00003570  53 3b 20 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |S; -------------|
00003580  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
000035c0  0d 0f 0a 19 3b 20 50 75  74 20 69 63 6f 6e 20 6f  |....; Put icon o|
000035d0  6e 20 69 63 6f 6e 62 61  72 0d 0f 14 04 0d 0f 1e  |n iconbar.......|
000035e0  10 2e 63 72 65 61 74 65  5f 69 63 6f 6e 0d 0f 28  |..create_icon..(|
000035f0  1e 20 20 20 20 20 20 20  20 73 74 6d 66 64 20 20  |.        stmfd  |
00003600  20 72 31 33 21 2c 7b 72  31 34 7d 0d 0f 32 1d 20  | r13!,{r14}..2. |
00003610  20 20 20 20 20 20 20 62  6c 20 20 20 20 20 20 72  |       bl      r|
00003620  65 61 64 5f 74 69 6d 65  0d 0f 3c 26 20 20 20 20  |ead_time..<&    |
00003630  20 20 20 20 61 64 72 20  20 20 20 20 72 30 2c 69  |    adr     r0,i|
00003640  63 6f 6e 5f 76 61 6c 69  64 61 74 69 6f 6e 0d 0f  |con_validation..|
00003650  46 2a 20 20 20 20 20 20  20 20 61 64 72 20 20 20  |F*        adr   |
00003660  20 20 72 31 2c 65 6e 64  5f 69 63 6f 6e 5f 76 61  |  r1,end_icon_va|
00003670  6c 69 64 61 74 69 6f 6e  0d 0f 50 2f 20 20 20 20  |lidation..P/    |
00003680  20 20 20 20 61 64 64 20  20 20 20 20 72 32 2c 72  |    add     r2,r|
00003690  31 32 2c 23 72 6d 61 5f  69 63 6f 6e 5f 76 61 6c  |12,#rma_icon_val|
000036a0  69 64 61 74 69 6f 6e 0d  0f 5a 18 20 20 20 20 20  |idation..Z.     |
000036b0  20 20 20 62 6c 20 20 20  20 20 20 63 6f 70 79 0d  |   bl      copy.|
000036c0  0f 64 2a 20 20 20 20 20  20 20 20 62 6c 20 20 20  |.d*        bl   |
000036d0  20 20 20 73 65 74 75 70  5f 69 63 6f 6e 5f 73 70  |   setup_icon_sp|
000036e0  72 69 74 65 5f 6e 61 6d  65 0d 0f 6e 27 20 20 20  |rite_name..n'   |
000036f0  20 20 20 20 20 61 64 64  20 20 20 20 20 72 32 2c  |     add     r2,|
00003700  72 31 32 2c 23 73 70 72  69 74 65 5f 6e 61 6d 65  |r12,#sprite_name|
00003710  0d 0f 78 2c 20 20 20 20  20 20 20 20 62 6c 20 20  |..x,        bl  |
00003720  20 20 20 20 63 68 65 63  6b 5f 73 70 72 69 74 65  |    check_sprite|
00003730  5f 69 6e 5f 77 69 6d 70  70 6f 6f 6c 0d 0f 82 21  |_in_wimppool...!|
00003740  20 20 20 20 20 20 20 20  62 76 73 20 20 20 20 20  |        bvs     |
00003750  73 74 61 72 74 75 70 5f  65 72 72 6f 72 0d 0f 8c  |startup_error...|
00003760  23 20 20 20 20 20 20 20  20 61 64 72 20 20 20 20  |#        adr    |
00003770  20 72 30 2c 69 63 6f 6e  62 61 72 5f 69 63 6f 6e  | r0,iconbar_icon|
00003780  0d 0f 96 27 20 20 20 20  20 20 20 20 61 64 72 20  |...'        adr |
00003790  20 20 20 20 72 31 2c 65  6e 64 5f 69 63 6f 6e 62  |    r1,end_iconb|
000037a0  61 72 5f 69 63 6f 6e 0d  0f a0 26 20 20 20 20 20  |ar_icon...&     |
000037b0  20 20 20 61 64 64 20 20  20 20 20 72 32 2c 72 31  |   add     r2,r1|
000037c0  32 2c 23 70 6f 6c 6c 5f  73 70 61 63 65 0d 0f aa  |2,#poll_space...|
000037d0  18 20 20 20 20 20 20 20  20 62 6c 20 20 20 20 20  |.        bl     |
000037e0  20 63 6f 70 79 0d 0f b4  26 20 20 20 20 20 20 20  | copy...&       |
000037f0  20 61 64 64 20 20 20 20  20 72 31 2c 72 31 32 2c  | add     r1,r12,|
00003800  23 70 6f 6c 6c 5f 73 70  61 63 65 0d 0f be 2f 20  |#poll_space.../ |
00003810  20 20 20 20 20 20 20 61  64 64 20 20 20 20 20 72  |       add     r|
00003820  30 2c 72 31 32 2c 23 72  6d 61 5f 69 63 6f 6e 5f  |0,r12,#rma_icon_|
00003830  76 61 6c 69 64 61 74 69  6f 6e 0d 0f c8 3f 20 20  |validation...?  |
00003840  20 20 20 20 20 20 73 74  72 20 20 20 20 20 72 30  |      str     r0|
00003850  2c 5b 72 31 2c 23 70 75  74 5f 69 63 6f 6e 5f 76  |,[r1,#put_icon_v|
00003860  61 6c 69 64 61 74 69 6f  6e 20 2d 20 69 63 6f 6e  |alidation - icon|
00003870  62 61 72 5f 69 63 6f 6e  5d 0d 0f d2 29 20 20 20  |bar_icon]...)   |
00003880  20 20 20 20 20 61 64 64  20 20 20 20 20 72 30 2c  |     add     r0,|
00003890  72 31 32 2c 23 72 6d 61  5f 69 63 6f 6e 5f 74 65  |r12,#rma_icon_te|
000038a0  78 74 0d 0f dc 39 20 20  20 20 20 20 20 20 73 74  |xt...9        st|
000038b0  72 20 20 20 20 20 72 30  2c 5b 72 31 2c 23 70 75  |r     r0,[r1,#pu|
000038c0  74 5f 69 63 6f 6e 5f 74  65 78 74 20 2d 20 69 63  |t_icon_text - ic|
000038d0  6f 6e 62 61 72 5f 69 63  6f 6e 5d 0d 0f e6 26 20  |onbar_icon]...& |
000038e0  20 20 20 20 20 20 20 73  77 69 20 20 20 20 20 22  |       swi     "|
000038f0  58 57 69 6d 70 5f 43 72  65 61 74 65 49 63 6f 6e  |XWimp_CreateIcon|
00003900  22 0d 0f f0 1f 20 20 20  20 20 20 20 20 62 76 73  |"....        bvs|
00003910  20 20 20 20 20 66 61 74  61 6c 5f 65 72 72 6f 72  |     fatal_error|
00003920  0d 0f fa 29 20 20 20 20  20 20 20 20 73 74 72 20  |...)        str |
00003930  20 20 20 20 72 30 2c 5b  72 31 32 2c 23 69 63 6f  |    r0,[r12,#ico|
00003940  6e 5f 68 61 6e 64 6c 65  5d 0d 10 04 1d 20 20 20  |n_handle]....   |
00003950  20 20 20 20 20 6c 64 6d  66 64 20 20 20 72 31 33  |     ldmfd   r13|
00003960  21 2c 7b 70 63 7d 0d 10  0e 04 0d 10 18 53 3b 20  |!,{pc}.......S; |
00003970  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
000039b0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 0d 10 22  |-------------.."|
000039c0  21 3b 20 64 65 66 69 6e  69 74 69 6f 6e 20 66 6f  |!; definition fo|
000039d0  72 20 69 63 6f 6e 62 61  72 20 69 63 6f 6e 0d 10  |r iconbar icon..|
000039e0  2c 04 0d 10 36 11 2e 69  63 6f 6e 62 61 72 5f 69  |,...6..iconbar_i|
000039f0  63 6f 6e 0d 10 40 48 20  20 20 20 20 20 20 20 65  |con..@H        e|
00003a00  71 75 64 20 20 20 20 2d  31 20 20 20 20 20 20 20  |qud    -1       |
00003a10  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 3b  |               ;|
00003a20  20 72 69 67 68 74 20 68  61 6e 64 20 73 69 64 65  | right hand side|
00003a30  20 6f 66 20 69 63 6f 6e  62 61 72 0d 10 4a 15 20  | of iconbar..J. |
00003a40  20 20 20 20 20 20 20 65  71 75 64 20 20 20 20 30  |       equd    0|
00003a50  0d 10 54 15 20 20 20 20  20 20 20 20 65 71 75 64  |..T.        equd|
00003a60  20 20 20 20 30 0d 10 5e  17 20 20 20 20 20 20 20  |    0..^.       |
00003a70  20 65 71 75 64 20 20 20  20 31 31 32 0d 10 68 16  | equd    112..h.|
00003a80  20 20 20 20 20 20 20 20  65 71 75 64 20 20 20 20  |        equd    |
00003a90  36 38 0d 10 72 48 20 20  20 20 20 20 20 20 65 71  |68..rH        eq|
00003aa0  75 64 20 20 20 20 31 2b  32 2b 28 31 20 3c 3c 20  |ud    1+2+(1 << |
00003ab0  33 29 2b 28 31 20 3c 3c  20 34 29 2b 28 31 20 3c  |3)+(1 << 4)+(1 <|
00003ac0  3c 20 38 29 2b 28 33 20  3c 3c 20 31 32 29 2b 28  |< 8)+(3 << 12)+(|
00003ad0  26 31 37 20 3c 3c 20 32  34 29 0d 10 7c 40 20 20  |&17 << 24)..|@  |
00003ae0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00003b00  20 20 20 20 20 20 3b 20  74 65 78 74 20 2b 20 73  |      ; text + s|
00003b10  70 72 69 74 65 20 69 63  6f 6e 0d 10 86 51 20 20  |prite icon...Q  |
00003b20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00003b40  20 20 20 20 20 20 3b 20  63 65 6e 74 72 65 64 20  |      ; centred |
00003b50  68 6f 72 69 7a 6f 6e 74  61 6c 6c 79 20 61 6e 64  |horizontally and|
00003b60  20 76 65 72 74 69 63 61  6c 6c 79 0d 10 90 12 2e  | vertically.....|
00003b70  70 75 74 5f 69 63 6f 6e  5f 74 65 78 74 0d 10 9a  |put_icon_text...|
00003b80  15 20 20 20 20 20 20 20  20 65 71 75 64 20 20 20  |.        equd   |
00003b90  20 30 0d 10 a4 18 2e 70  75 74 5f 69 63 6f 6e 5f  | 0.....put_icon_|
00003ba0  76 61 6c 69 64 61 74 69  6f 6e 0d 10 ae 15 20 20  |validation....  |
00003bb0  20 20 20 20 20 20 65 71  75 64 20 20 20 20 30 0d  |      equd    0.|
00003bc0  10 b8 15 20 20 20 20 20  20 20 20 65 71 75 64 20  |...        equd |
00003bd0  20 20 20 36 0d 10 c2 15  2e 65 6e 64 5f 69 63 6f  |   6.....end_ico|
00003be0  6e 62 61 72 5f 69 63 6f  6e 0d 10 cc 14 2e 69 63  |nbar_icon.....ic|
00003bf0  6f 6e 5f 76 61 6c 69 64  61 74 69 6f 6e 0d 10 d6  |on_validation...|
00003c00  24 20 20 20 20 20 20 20  20 65 71 75 73 20 20 20  |$        equs   |
00003c10  20 22 53 21 69 63 6f 6e  63 6c 6f 63 6b 22 2b bd  | "S!iconclock"+.|
00003c20  30 0d 10 e0 18 2e 65 6e  64 5f 69 63 6f 6e 5f 76  |0.....end_icon_v|
00003c30  61 6c 69 64 61 74 69 6f  6e 0d 10 ea ea ea 67 6e  |alidation.....gn|
00003c40  0d 10 f4 04 0d 10 fe 53  3b 20 2d 2d 2d 2d 2d 2d  |.......S; ------|
00003c50  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00003c90  2d 2d 2d 2d 2d 2d 2d 0d  11 08 4d 3b 20 77 6f 72  |-------...M; wor|
00003ca0  6b 20 6f 75 74 20 6e 75  6d 62 65 72 20 6f 66 20  |k out number of |
00003cb0  73 65 63 6f 6e 64 73 20  75 6e 74 69 6c 20 6d 69  |seconds until mi|
00003cc0  6e 75 74 65 73 20 63 68  61 6e 67 65 20 61 6e 64  |nutes change and|
00003cd0  20 75 73 65 20 74 68 69  73 20 74 6f 20 67 65 74  | use this to get|
00003ce0  20 74 68 65 0d 11 12 38  3b 20 76 61 6c 75 65 20  | the...8; value |
00003cf0  6f 66 20 4f 53 5f 4d 6f  6e 6f 74 6f 6e 69 63 54  |of OS_MonotonicT|
00003d00  69 6d 65 20 74 6f 20 67  69 76 65 20 74 6f 20 57  |ime to give to W|
00003d10  69 6d 70 5f 50 6f 6c 6c  49 64 6c 65 0d 11 1c 04  |imp_PollIdle....|
00003d20  0d 11 26 21 2e 77 6f 72  6b 5f 6f 75 74 5f 66 69  |..&!.work_out_fi|
00003d30  72 73 74 5f 70 6f 6c 6c  69 64 6c 65 5f 74 69 6d  |rst_pollidle_tim|
00003d40  65 0d 11 30 26 20 20 20  20 20 20 20 20 61 64 64  |e..0&        add|
00003d50  20 20 20 20 20 72 30 2c  72 31 32 2c 23 74 69 6d  |     r0,r12,#tim|
00003d60  65 5f 62 6c 6f 63 6b 0d  11 3a 26 20 20 20 20 20  |e_block..:&     |
00003d70  20 20 20 61 64 64 20 20  20 20 20 72 31 2c 72 31  |   add     r1,r1|
00003d80  32 2c 23 77 6f 72 6b 5f  73 70 61 63 65 0d 11 44  |2,#work_space..D|
00003d90  3c 20 20 20 20 20 20 20  20 6d 6f 76 20 20 20 20  |<        mov    |
00003da0  20 72 32 2c 23 33 20 20  20 20 20 20 20 20 20 20  | r2,#3          |
00003db0  20 20 20 20 20 20 20 20  20 3b 20 73 69 7a 65 20  |         ; size |
00003dc0  6f 66 20 62 75 66 66 65  72 0d 11 4e 23 20 20 20  |of buffer..N#   |
00003dd0  20 20 20 20 20 61 64 72  20 20 20 20 20 72 33 2c  |     adr     r3,|
00003de0  73 65 63 6f 6e 64 73 5f  6f 6e 6c 79 0d 11 58 2c  |seconds_only..X,|
00003df0  20 20 20 20 20 20 20 20  73 77 69 20 20 20 20 20  |        swi     |
00003e00  22 58 4f 53 5f 43 6f 6e  76 65 72 74 44 61 74 65  |"XOS_ConvertDate|
00003e10  41 6e 64 54 69 6d 65 22  0d 11 62 1f 20 20 20 20  |AndTime"..b.    |
00003e20  20 20 20 20 62 76 73 20  20 20 20 20 66 61 74 61  |    bvs     fata|
00003e30  6c 5f 65 72 72 6f 72 0d  11 6c 4a 20 20 20 20 20  |l_error..lJ     |
00003e40  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00003e60  20 20 20 3b 20 72 30 20  2d 3e 20 61 73 63 69 69  |   ; r0 -> ascii|
00003e70  20 76 61 6c 75 65 20 6f  66 20 73 65 63 6f 6e 64  | value of second|
00003e80  73 0d 11 76 48 20 20 20  20 20 20 20 20 20 20 20  |s..vH           |
00003e90  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00003ea0  20 20 20 20 20 20 20 20  20 20 20 20 20 3b 20 72  |             ; r|
00003eb0  31 20 6e 6f 74 20 6e 65  65 64 65 64 20 61 73 20  |1 not needed as |
00003ec0  6e 6f 20 62 75 66 66 65  72 0d 11 80 51 20 20 20  |no buffer...Q   |
00003ed0  20 20 20 20 20 6d 6f 76  20 20 20 20 20 72 32 2c  |     mov     r2,|
00003ee0  23 30 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |#0              |
00003ef0  20 20 20 20 20 3b 20 6e  6f 20 62 75 66 66 65 72  |     ; no buffer|
00003f00  20 61 73 20 72 65 73 75  6c 74 20 77 69 6c 6c 20  | as result will |
00003f10  62 65 20 69 6e 74 65 67  65 72 0d 11 8a 2c 20 20  |be integer...,  |
00003f20  20 20 20 20 20 20 73 77  69 20 20 20 20 20 22 58  |      swi     "X|
00003f30  4f 53 5f 45 76 61 6c 75  61 74 65 45 78 70 72 65  |OS_EvaluateExpre|
00003f40  73 73 69 6f 6e 22 0d 11  94 1f 20 20 20 20 20 20  |ssion"....      |
00003f50  20 20 62 76 73 20 20 20  20 20 66 61 74 61 6c 5f  |  bvs     fatal_|
00003f60  65 72 72 6f 72 0d 11 9e  44 20 20 20 20 20 20 20  |error...D       |
00003f70  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00003f90  20 3b 20 72 32 20 3d 20  6e 75 6d 62 65 72 20 6f  | ; r2 = number o|
00003fa0  66 20 73 65 63 6f 6e 64  73 0d 11 a8 4c 20 20 20  |f seconds...L   |
00003fb0  20 20 20 20 20 72 73 62  20 20 20 20 20 72 32 2c  |     rsb     r2,|
00003fc0  72 32 2c 23 36 30 20 20  20 20 20 20 20 20 20 20  |r2,#60          |
00003fd0  20 20 20 20 20 3b 20 72  32 20 3d 20 6e 75 6d 62  |     ; r2 = numb|
00003fe0  65 72 20 6f 66 20 73 65  63 6f 6e 64 73 20 74 6f  |er of seconds to|
00003ff0  20 6e 65 78 74 0d 11 b2  3e 20 20 20 20 20 20 20  | next...>       |
00004000  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00004020  20 3b 20 63 68 61 6e 67  65 20 6f 66 20 6d 69 6e  | ; change of min|
00004030  75 74 65 0d 11 bc 2b 20  20 20 20 20 20 20 20 73  |ute...+        s|
00004040  77 69 20 20 20 20 20 22  58 4f 53 5f 52 65 61 64  |wi     "XOS_Read|
00004050  4d 6f 6e 6f 74 6f 6e 69  63 54 69 6d 65 22 0d 11  |MonotonicTime"..|
00004060  c6 1f 20 20 20 20 20 20  20 20 62 76 73 20 20 20  |..        bvs   |
00004070  20 20 66 61 74 61 6c 5f  65 72 72 6f 72 0d 11 d0  |  fatal_error...|
00004080  1b 20 20 20 20 20 20 20  20 6d 6f 76 20 20 20 20  |.        mov    |
00004090  20 72 31 2c 23 31 30 30  0d 11 da 50 20 20 20 20  | r1,#100...P    |
000040a0  20 20 20 20 6d 6c 61 20  20 20 20 20 72 30 2c 72  |    mla     r0,r|
000040b0  32 2c 72 31 2c 72 30 20  20 20 20 20 20 20 20 20  |2,r1,r0         |
000040c0  20 20 20 20 3b 20 72 30  20 3d 20 74 69 6d 65 20  |    ; r0 = time |
000040d0  74 6f 20 75 73 65 20 66  6f 72 20 66 69 72 73 74  |to use for first|
000040e0  20 63 61 6c 6c 20 74 6f  0d 11 e4 3b 20 20 20 20  | call to...;    |
000040f0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00004110  20 20 20 20 3b 20 57 69  6d 70 5f 50 6f 6c 6c 49  |    ; Wimp_PollI|
00004120  64 6c 65 0d 11 ee 2b 20  20 20 20 20 20 20 20 73  |dle...+        s|
00004130  74 72 20 20 20 20 20 72  30 2c 5b 72 31 32 2c 23  |tr     r0,[r12,#|
00004140  70 6f 6c 6c 69 64 6c 65  5f 74 69 6d 65 5d 0d 11  |pollidle_time]..|
00004150  f8 1a 20 20 20 20 20 20  20 20 6d 6f 76 20 20 20  |..        mov   |
00004160  20 20 70 63 2c 72 31 34  0d 12 02 11 2e 73 65 63  |  pc,r14.....sec|
00004170  6f 6e 64 73 5f 6f 6e 6c  79 0d 12 0c 1c 20 20 20  |onds_only....   |
00004180  20 20 20 20 20 65 71 75  73 20 20 20 20 22 25 73  |     equs    "%s|
00004190  65 22 2b bd 30 0d 12 16  16 16 67 6e 0d 12 20 04  |e"+.0.....gn.. .|
000041a0  0d 12 2a 53 3b 20 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |..*S; ----------|
000041b0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
000041f0  2d 2d 2d 0d 12 34 30 3b  20 73 65 74 20 74 68 65  |---..40; set the|
00004200  20 6e 61 6d 65 20 6f 66  20 74 68 65 20 73 70 72  | name of the spr|
00004210  69 74 65 20 66 6f 72 20  74 68 65 20 69 63 6f 6e  |ite for the icon|
00004220  62 61 72 0d 12 3e 04 0d  12 48 1b 2e 73 65 74 75  |bar..>...H..setu|
00004230  70 5f 69 63 6f 6e 5f 73  70 72 69 74 65 5f 6e 61  |p_icon_sprite_na|
00004240  6d 65 0d 12 52 27 20 20  20 20 20 20 20 20 6c 64  |me..R'        ld|
00004250  72 62 20 20 20 20 72 30  2c 5b 72 31 32 2c 23 63  |rb    r0,[r12,#c|
00004260  6c 6f 63 6b 66 61 63 65  5d 0d 12 5c 1f 20 20 20  |lockface]..\.   |
00004270  20 20 20 20 20 61 64 64  20 20 20 20 20 72 30 2c  |     add     r0,|
00004280  72 30 2c 23 97 22 31 22  0d 12 66 3d 20 20 20 20  |r0,#."1"..f=    |
00004290  20 20 20 20 73 74 72 62  20 20 20 20 72 30 2c 5b  |    strb    r0,[|
000042a0  72 31 32 2c 23 72 6d 61  5f 69 63 6f 6e 5f 76 61  |r12,#rma_icon_va|
000042b0  6c 69 64 61 74 69 6f 6e  5f 6c 61 73 74 5f 6c 65  |lidation_last_le|
000042c0  74 74 65 72 5d 0d 12 70  1a 20 20 20 20 20 20 20  |tter]..p.       |
000042d0  20 6d 6f 76 20 20 20 20  20 70 63 2c 72 31 34 0d  | mov     pc,r14.|
000042e0  12 7a 04 0d 12 84 12 2e  73 69 78 74 79 5f 73 65  |.z......sixty_se|
000042f0  63 6f 6e 64 73 0d 12 8e  1a 20 20 20 20 20 20 20  |conds....       |
00004300  20 65 71 75 64 20 20 20  20 36 30 2a 31 30 30 0d  | equd    60*100.|
00004310  12 98 04 0d 12 a2 53 3b  20 2d 2d 2d 2d 2d 2d 2d  |......S; -------|
00004320  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00004360  2d 2d 2d 2d 2d 2d 0d 12  ac 2f 3b 20 63 68 65 63  |------.../; chec|
00004370  6b 20 61 20 73 70 72 69  74 65 20 69 73 20 69 6e  |k a sprite is in|
00004380  20 74 68 65 20 77 69 6d  70 20 73 70 72 69 74 65  | the wimp sprite|
00004390  20 70 6f 6f 6c 0d 12 b6  0a 3b 20 65 78 69 74 0d  | pool....; exit.|
000043a0  12 c0 28 3b 20 20 20 20  20 20 20 76 20 73 65 74  |..(;       v set|
000043b0  20 6f 6e 20 69 66 20 73  70 72 69 74 65 20 6e 6f  | on if sprite no|
000043c0  74 20 66 6f 75 6e 64 0d  12 ca 2a 3b 20 20 20 20  |t found...*;    |
000043d0  20 20 20 72 30 20 2d 3e  20 65 72 72 6f 72 20 62  |   r0 -> error b|
000043e0  6c 6f 63 6b 20 69 66 20  6e 6f 74 20 66 6f 75 6e  |lock if not foun|
000043f0  64 0d 12 d4 04 0d 12 de  1d 2e 63 68 65 63 6b 5f  |d.........check_|
00004400  73 70 72 69 74 65 5f 69  6e 5f 77 69 6d 70 70 6f  |sprite_in_wimppo|
00004410  6f 6c 0d 12 e8 20 20 20  20 20 20 20 20 20 73 74  |ol...         st|
00004420  6d 66 64 20 20 20 72 31  33 21 2c 7b 72 30 2d 72  |mfd   r13!,{r0-r|
00004430  36 7d 0d 12 f2 3e 20 20  20 20 20 20 20 20 6d 6f  |6}...>        mo|
00004440  76 20 20 20 20 20 72 30  2c 23 34 30 20 20 20 20  |v     r0,#40    |
00004450  20 20 20 20 20 20 20 20  20 20 20 20 20 20 3b 20  |              ; |
00004460  72 65 61 64 20 73 70 72  69 74 65 20 69 6e 66 6f  |read sprite info|
00004470  0d 12 fc 24 20 20 20 20  20 20 20 20 73 77 69 20  |...$        swi |
00004480  20 20 20 20 22 58 57 69  6d 70 5f 53 70 72 69 74  |    "XWimp_Sprit|
00004490  65 4f 70 22 0d 13 06 20  20 20 20 20 20 20 20 20  |eOp"...         |
000044a0  6c 64 6d 76 63 66 64 20  72 31 33 21 2c 7b 72 30  |ldmvcfd r13!,{r0|
000044b0  2d 72 36 7d 0d 13 10 48  20 20 20 20 20 20 20 20  |-r6}...H        |
000044c0  6d 6f 76 76 63 20 20 20  70 63 2c 72 31 34 20 20  |movvc   pc,r14  |
000044d0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000044e0  3b 20 72 65 74 75 72 6e  20 69 66 20 73 70 72 69  |; return if spri|
000044f0  74 65 20 77 61 73 20 66  6f 75 6e 64 0d 13 1a 26  |te was found...&|
00004500  20 20 20 20 20 20 20 20  61 64 64 20 20 20 20 20  |        add     |
00004510  72 30 2c 72 31 32 2c 23  77 6f 72 6b 5f 73 70 61  |r0,r12,#work_spa|
00004520  63 65 0d 13 24 19 20 20  20 20 20 20 20 20 6d 6f  |ce..$.        mo|
00004530  76 20 20 20 20 20 72 31  2c 23 30 0d 13 2e 1e 20  |v     r1,#0.... |
00004540  20 20 20 20 20 20 20 73  74 72 20 20 20 20 20 72  |       str     r|
00004550  31 2c 5b 72 30 5d 2c 23  34 0d 13 38 29 20 20 20  |1,[r0],#4..8)   |
00004560  20 20 20 20 20 61 64 72  20 20 20 20 20 72 31 2c  |     adr     r1,|
00004570  63 73 69 77 5f 65 72 72  6f 72 5f 6d 65 73 73 61  |csiw_error_messa|
00004580  67 65 0d 13 42 15 2e 63  73 69 77 5f 65 72 72 6f  |ge..B..csiw_erro|
00004590  72 5f 6c 6f 6f 70 31 0d  13 4c 1e 20 20 20 20 20  |r_loop1..L.     |
000045a0  20 20 20 6c 64 72 62 20  20 20 20 72 32 2c 5b 72  |   ldrb    r2,[r|
000045b0  31 5d 2c 23 31 0d 13 56  19 20 20 20 20 20 20 20  |1],#1..V.       |
000045c0  20 74 65 71 20 20 20 20  20 72 32 2c 23 30 0d 13  | teq     r2,#0..|
000045d0  60 1e 20 20 20 20 20 20  20 20 73 74 72 6e 65 62  |`.        strneb|
000045e0  20 20 72 32 2c 5b 72 30  5d 2c 23 31 0d 13 6a 24  |  r2,[r0],#1..j$|
000045f0  20 20 20 20 20 20 20 20  62 6e 65 20 20 20 20 20  |        bne     |
00004600  63 73 69 77 5f 65 72 72  6f 72 5f 6c 6f 6f 70 31  |csiw_error_loop1|
00004610  0d 13 74 27 20 20 20 20  20 20 20 20 61 64 64 20  |..t'        add |
00004620  20 20 20 20 72 33 2c 72  31 32 2c 23 73 70 72 69  |    r3,r12,#spri|
00004630  74 65 5f 6e 61 6d 65 0d  13 7e 15 2e 63 73 69 77  |te_name..~..csiw|
00004640  5f 65 72 72 6f 72 5f 6c  6f 6f 70 32 0d 13 88 1e  |_error_loop2....|
00004650  20 20 20 20 20 20 20 20  6c 64 72 62 20 20 20 20  |        ldrb    |
00004660  72 32 2c 5b 72 33 5d 2c  23 31 0d 13 92 19 20 20  |r2,[r3],#1....  |
00004670  20 20 20 20 20 20 74 65  71 20 20 20 20 20 72 32  |      teq     r2|
00004680  2c 23 30 0d 13 9c 1e 20  20 20 20 20 20 20 20 73  |,#0....        s|
00004690  74 72 6e 65 62 20 20 72  32 2c 5b 72 30 5d 2c 23  |trneb  r2,[r0],#|
000046a0  31 0d 13 a6 24 20 20 20  20 20 20 20 20 62 6e 65  |1...$        bne|
000046b0  20 20 20 20 20 63 73 69  77 5f 65 72 72 6f 72 5f  |     csiw_error_|
000046c0  6c 6f 6f 70 32 0d 13 b0  15 2e 63 73 69 77 5f 65  |loop2.....csiw_e|
000046d0  72 72 6f 72 5f 6c 6f 6f  70 33 0d 13 ba 1e 20 20  |rror_loop3....  |
000046e0  20 20 20 20 20 20 6c 64  72 62 20 20 20 20 72 32  |      ldrb    r2|
000046f0  2c 5b 72 31 5d 2c 23 31  0d 13 c4 1e 20 20 20 20  |,[r1],#1....    |
00004700  20 20 20 20 73 74 72 62  20 20 20 20 72 32 2c 5b  |    strb    r2,[|
00004710  72 30 5d 2c 23 31 0d 13  ce 19 20 20 20 20 20 20  |r0],#1....      |
00004720  20 20 74 65 71 20 20 20  20 20 72 32 2c 23 30 0d  |  teq     r2,#0.|
00004730  13 d8 24 20 20 20 20 20  20 20 20 62 6e 65 20 20  |..$        bne  |
00004740  20 20 20 63 73 69 77 5f  65 72 72 6f 72 5f 6c 6f  |   csiw_error_lo|
00004750  6f 70 33 0d 13 e2 20 20  20 20 20 20 20 20 20 6c  |op3...         l|
00004760  64 6d 66 64 20 20 20 72  31 33 21 2c 7b 72 30 2d  |dmfd   r13!,{r0-|
00004770  72 36 7d 0d 13 ec 26 20  20 20 20 20 20 20 20 61  |r6}...&        a|
00004780  64 64 20 20 20 20 20 72  30 2c 72 31 32 2c 23 77  |dd     r0,r12,#w|
00004790  6f 72 6b 5f 73 70 61 63  65 0d 13 f6 3f 20 20 20  |ork_space...?   |
000047a0  20 20 20 20 20 6f 72 72  73 20 20 20 20 70 63 2c  |     orrs    pc,|
000047b0  72 31 34 2c 23 76 5f 66  6c 61 67 20 20 20 20 20  |r14,#v_flag     |
000047c0  20 20 20 20 20 3b 20 72  65 74 75 72 6e 20 77 69  |     ; return wi|
000047d0  74 68 20 76 20 73 65 74  0d 14 00 17 2e 63 73 69  |th v set.....csi|
000047e0  77 5f 65 72 72 6f 72 5f  6d 65 73 73 61 67 65 0d  |w_error_message.|
000047f0  14 0a 24 20 20 20 20 20  20 20 20 65 71 75 73 20  |..$        equs |
00004800  20 20 20 22 54 68 65 20  73 70 72 69 74 65 20 22  |   "The sprite "|
00004810  2b bd 30 0d 14 14 4d 20  20 20 20 20 20 20 20 65  |+.0...M        e|
00004820  71 75 73 20 20 20 20 22  20 6d 75 73 74 20 62 65  |qus    " must be|
00004830  20 69 6e 20 74 68 65 20  77 69 6d 70 20 73 70 72  | in the wimp spr|
00004840  69 74 65 20 70 6f 6f 6c  2e 20 53 65 65 20 74 68  |ite pool. See th|
00004850  65 20 21 48 65 6c 70 20  66 69 6c 65 22 2b bd 30  |e !Help file"+.0|
00004860  0d 14 1e 14 1e 14 67 6e  0d 14 28 04 0d 14 32 53  |......gn..(...2S|
00004870  3b 20 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |; --------------|
00004880  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
000048b0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 0d  |---------------.|
000048c0  14 3c 1c 3b 20 43 6f 70  79 20 61 20 62 6c 6f 63  |.<.; Copy a bloc|
000048d0  6b 20 6f 66 20 6d 65 6d  6f 72 79 0d 14 46 0b 3b  |k of memory..F.;|
000048e0  20 65 6e 74 72 79 0d 14  50 20 3b 20 20 20 20 20  | entry..P ;     |
000048f0  20 20 72 30 20 2d 3e 20  73 74 61 72 74 20 6f 66  |  r0 -> start of|
00004900  20 62 6c 6f 63 6b 0d 14  5a 20 3b 20 20 20 20 20  | block..Z ;     |
00004910  20 20 72 31 20 2d 3e 20  65 6e 64 20 6f 66 20 62  |  r1 -> end of b|
00004920  6c 6f 63 6b 2b 31 0d 14  64 22 3b 20 20 20 20 20  |lock+1..d";     |
00004930  20 20 72 32 20 2d 3e 20  77 68 65 72 65 20 74 6f  |  r2 -> where to|
00004940  20 63 6f 70 79 20 74 6f  0d 14 6e 0b 3b 20 65 78  | copy to..n.; ex|
00004950  69 74 73 0d 14 78 1e 3b  20 20 20 20 20 20 20 72  |its..x.;       r|
00004960  30 2c 72 32 2c 72 33 20  63 6f 72 72 75 70 74 65  |0,r2,r3 corrupte|
00004970  64 0d 14 82 04 0d 14 8c  09 2e 63 6f 70 79 0d 14  |d.........copy..|
00004980  96 1e 20 20 20 20 20 20  20 20 6c 64 72 62 20 20  |..        ldrb  |
00004990  20 20 72 33 2c 5b 72 30  5d 2c 23 31 0d 14 a0 1e  |  r3,[r0],#1....|
000049a0  20 20 20 20 20 20 20 20  73 74 72 62 20 20 20 20  |        strb    |
000049b0  72 33 2c 5b 72 32 5d 2c  23 31 0d 14 aa 19 20 20  |r3,[r2],#1....  |
000049c0  20 20 20 20 20 20 63 6d  70 20 20 20 20 20 72 30  |      cmp     r0|
000049d0  2c 72 31 0d 14 b4 18 20  20 20 20 20 20 20 20 62  |,r1....        b|
000049e0  6c 74 20 20 20 20 20 63  6f 70 79 0d 14 be 1a 20  |lt     copy.... |
000049f0  20 20 20 20 20 20 20 6d  6f 76 20 20 20 20 20 70  |       mov     p|
00004a00  63 2c 72 31 34 0d 14 c8  04 0d 14 d2 53 3b 20 2d  |c,r14.......S; -|
00004a10  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00004a50  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 0d 14 dc 14  |------------....|
00004a60  3b 20 77 69 6d 70 20 70  6f 6c 6c 20 6c 6f 6f 70  |; wimp poll loop|
00004a70  0d 14 e6 04 0d 14 f0 09  2e 70 6f 6c 6c 0d 14 fa  |.........poll...|
00004a80  2b 20 20 20 20 20 20 20  20 73 77 69 20 20 20 20  |+        swi    |
00004a90  20 22 58 4f 53 5f 52 65  61 64 4d 6f 6e 6f 74 6f  | "XOS_ReadMonoto|
00004aa0  6e 69 63 54 69 6d 65 22  0d 15 04 1f 20 20 20 20  |nicTime"....    |
00004ab0  20 20 20 20 62 76 73 20  20 20 20 20 66 61 74 61  |    bvs     fata|
00004ac0  6c 5f 65 72 72 6f 72 0d  15 0e 2b 20 20 20 20 20  |l_error...+     |
00004ad0  20 20 20 6c 64 72 20 20  20 20 20 72 32 2c 5b 72  |   ldr     r2,[r|
00004ae0  31 32 2c 23 70 6f 6c 6c  69 64 6c 65 5f 74 69 6d  |12,#pollidle_tim|
00004af0  65 5d 0d 15 18 49 20 20  20 20 20 20 20 20 6c 64  |e]...I        ld|
00004b00  72 20 20 20 20 20 72 33  2c 73 69 78 74 79 5f 73  |r     r3,sixty_s|
00004b10  65 63 6f 6e 64 73 20 20  20 20 20 20 20 20 3b 20  |econds        ; |
00004b20  36 30 20 73 65 63 6f 6e  64 73 20 69 6e 20 63 65  |60 seconds in ce|
00004b30  6e 74 69 2d 73 65 63 6f  6e 64 73 0d 15 22 1b 2e  |nti-seconds.."..|
00004b40  73 65 74 5f 70 6f 6c 6c  69 64 6c 65 5f 74 69 6d  |set_pollidle_tim|
00004b50  65 5f 6c 6f 6f 70 0d 15  2c 19 20 20 20 20 20 20  |e_loop..,.      |
00004b60  20 20 63 6d 70 20 20 20  20 20 72 30 2c 72 32 0d  |  cmp     r0,r2.|
00004b70  15 36 1c 20 20 20 20 20  20 20 20 61 64 64 67 65  |.6.        addge|
00004b80  20 20 20 72 32 2c 72 32  2c 72 33 0d 15 40 2a 20  |   r2,r2,r3..@* |
00004b90  20 20 20 20 20 20 20 62  67 65 20 20 20 20 20 73  |       bge     s|
00004ba0  65 74 5f 70 6f 6c 6c 69  64 6c 65 5f 74 69 6d 65  |et_pollidle_time|
00004bb0  5f 6c 6f 6f 70 0d 15 4a  2b 20 20 20 20 20 20 20  |_loop..J+       |
00004bc0  20 73 74 72 20 20 20 20  20 72 32 2c 5b 72 31 32  | str     r2,[r12|
00004bd0  2c 23 70 6f 6c 6c 69 64  6c 65 5f 74 69 6d 65 5d  |,#pollidle_time]|
00004be0  0d 15 54 0f 2e 70 6f 6c  6c 5f 66 69 72 73 74 0d  |..T..poll_first.|
00004bf0  15 5e 4b 20 20 20 20 20  20 20 20 6d 6f 76 20 20  |.^K        mov  |
00004c00  20 20 20 72 30 2c 23 25  31 30 31 31 30 30 30 30  |   r0,#%10110000|
00004c10  20 20 20 20 20 20 20 20  20 20 20 3b 20 64 69 73  |           ; dis|
00004c20  61 6c 6c 6f 77 20 61 73  20 6d 61 6e 79 20 72 65  |allow as many re|
00004c30  61 73 6f 6e 20 63 6f 64  65 73 0d 15 68 39 20 20  |ason codes..h9  |
00004c40  20 20 20 20 20 20 61 64  64 20 20 20 20 20 72 30  |      add     r0|
00004c50  2c 72 30 2c 23 25 31 31  30 30 30 20 3c 3c 20 38  |,r0,#%11000 << 8|
00004c60  20 20 20 20 20 20 3b 20  61 73 20 70 6f 73 73 69  |      ; as possi|
00004c70  62 6c 65 0d 15 72 26 20  20 20 20 20 20 20 20 61  |ble..r&        a|
00004c80  64 64 20 20 20 20 20 72  31 2c 72 31 32 2c 23 70  |dd     r1,r12,#p|
00004c90  6f 6c 6c 5f 73 70 61 63  65 0d 15 7c 24 20 20 20  |oll_space..|$   |
00004ca0  20 20 20 20 20 73 77 69  20 20 20 20 20 22 58 57  |     swi     "XW|
00004cb0  69 6d 70 5f 50 6f 6c 6c  49 64 6c 65 22 0d 15 86  |imp_PollIdle"...|
00004cc0  1f 20 20 20 20 20 20 20  20 62 76 73 20 20 20 20  |.        bvs    |
00004cd0  20 66 61 74 61 6c 5f 65  72 72 6f 72 0d 15 90 19  | fatal_error....|
00004ce0  20 20 20 20 20 20 20 20  6d 6f 76 20 20 20 20 20  |        mov     |
00004cf0  72 33 2c 72 30 0d 15 9a  2b 20 20 20 20 20 20 20  |r3,r0...+       |
00004d00  20 73 77 69 20 20 20 20  20 22 58 4f 53 5f 52 65  | swi     "XOS_Re|
00004d10  61 64 4d 6f 6e 6f 74 6f  6e 69 63 54 69 6d 65 22  |adMonotonicTime"|
00004d20  0d 15 a4 1f 20 20 20 20  20 20 20 20 62 76 73 20  |....        bvs |
00004d30  20 20 20 20 66 61 74 61  6c 5f 65 72 72 6f 72 0d  |    fatal_error.|
00004d40  15 ae 2b 20 20 20 20 20  20 20 20 6c 64 72 20 20  |..+        ldr  |
00004d50  20 20 20 72 32 2c 5b 72  31 32 2c 23 70 6f 6c 6c  |   r2,[r12,#poll|
00004d60  69 64 6c 65 5f 74 69 6d  65 5d 0d 15 b8 19 20 20  |idle_time]....  |
00004d70  20 20 20 20 20 20 63 6d  70 20 20 20 20 20 72 30  |      cmp     r0|
00004d80  2c 72 32 0d 15 c2 1f 20  20 20 20 20 20 20 20 62  |,r2....        b|
00004d90  6c 67 65 20 20 20 20 75  70 64 61 74 65 5f 74 69  |lge    update_ti|
00004da0  6d 65 0d 15 cc 19 20 20  20 20 20 20 20 20 6d 6f  |me....        mo|
00004db0  76 20 20 20 20 20 72 30  2c 72 33 0d 15 d6 19 20  |v     r0,r3.... |
00004dc0  20 20 20 20 20 20 20 63  6d 70 20 20 20 20 20 72  |       cmp     r|
00004dd0  30 2c 23 31 0d 15 e0 21  20 20 20 20 20 20 20 20  |0,#1...!        |
00004de0  62 65 71 20 20 20 20 20  72 65 64 72 61 77 5f 77  |beq     redraw_w|
00004df0  69 6e 64 6f 77 0d 15 ea  19 20 20 20 20 20 20 20  |indow....       |
00004e00  20 74 65 71 20 20 20 20  20 72 30 2c 23 32 0d 15  | teq     r0,#2..|
00004e10  f4 1f 20 20 20 20 20 20  20 20 62 65 71 20 20 20  |..        beq   |
00004e20  20 20 6f 70 65 6e 5f 77  69 6e 64 6f 77 0d 15 fe  |  open_window...|
00004e30  19 20 20 20 20 20 20 20  20 74 65 71 20 20 20 20  |.        teq    |
00004e40  20 72 30 2c 23 33 0d 16  08 20 20 20 20 20 20 20  | r0,#3...       |
00004e50  20 20 62 65 71 20 20 20  20 20 63 6c 6f 73 65 5f  |  beq     close_|
00004e60  77 69 6e 64 6f 77 0d 16  12 19 20 20 20 20 20 20  |window....      |
00004e70  20 20 74 65 71 20 20 20  20 20 72 30 2c 23 36 0d  |  teq     r0,#6.|
00004e80  16 1c 1f 20 20 20 20 20  20 20 20 62 65 71 20 20  |...        beq  |
00004e90  20 20 20 6d 6f 75 73 65  5f 63 6c 69 63 6b 0d 16  |   mouse_click..|
00004ea0  26 19 20 20 20 20 20 20  20 20 74 65 71 20 20 20  |&.        teq   |
00004eb0  20 20 72 30 2c 23 39 0d  16 30 1f 20 20 20 20 20  |  r0,#9..0.     |
00004ec0  20 20 20 62 65 71 20 20  20 20 20 6d 65 6e 75 5f  |   beq     menu_|
00004ed0  73 65 6c 65 63 74 0d 16  3a 1a 20 20 20 20 20 20  |select..:.      |
00004ee0  20 20 74 65 71 20 20 20  20 20 72 30 2c 23 31 37  |  teq     r0,#17|
00004ef0  0d 16 44 1a 20 20 20 20  20 20 20 20 74 65 71 6e  |..D.        teqn|
00004f00  65 20 20 20 72 30 2c 23  31 38 0d 16 4e 1b 20 20  |e   r0,#18..N.  |
00004f10  20 20 20 20 20 20 62 65  71 20 20 20 20 20 6d 65  |      beq     me|
00004f20  73 73 61 67 65 0d 16 58  18 20 20 20 20 20 20 20  |ssage..X.       |
00004f30  20 62 20 20 20 20 20 20  20 70 6f 6c 6c 0d 16 62  | b       poll..b|
00004f40  04 0d 16 6c 53 3b 20 2d  2d 2d 2d 2d 2d 2d 2d 2d  |...lS; ---------|
00004f50  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00004f90  2d 2d 2d 2d 0d 16 76 16  3b 20 75 70 64 61 74 65  |----..v.; update|
00004fa0  20 74 68 65 20 63 6c 6f  63 6b 0d 16 80 04 0d 16  | the clock......|
00004fb0  8a 10 2e 75 70 64 61 74  65 5f 74 69 6d 65 0d 16  |...update_time..|
00004fc0  94 1e 20 20 20 20 20 20  20 20 73 74 6d 66 64 20  |..        stmfd |
00004fd0  20 20 72 31 33 21 2c 7b  72 31 34 7d 0d 16 9e 1d  |  r13!,{r14}....|
00004fe0  20 20 20 20 20 20 20 20  62 6c 20 20 20 20 20 20  |        bl      |
00004ff0  72 65 61 64 5f 74 69 6d  65 0d 16 a8 1e 20 20 20  |read_time....   |
00005000  20 20 20 20 20 6c 64 6d  66 64 20 20 20 72 31 33  |     ldmfd   r13|
00005010  21 2c 7b 72 31 34 7d 0d  16 b2 15 2e 72 65 64 69  |!,{r14}.....redi|
00005020  73 70 6c 61 79 5f 73 70  72 69 74 65 0d 16 bc 26  |splay_sprite...&|
00005030  20 20 20 20 20 20 20 20  61 64 64 20 20 20 20 20  |        add     |
00005040  72 31 2c 72 31 32 2c 23  77 6f 72 6b 5f 73 70 61  |r1,r12,#work_spa|
00005050  63 65 0d 16 c6 3a 20 20  20 20 20 20 20 20 6d 76  |ce...:        mv|
00005060  6e 20 20 20 20 20 72 30  2c 23 30 20 20 20 20 20  |n     r0,#0     |
00005070  20 20 20 20 20 20 20 20  20 20 20 20 20 20 3b 20  |              ; |
00005080  72 30 20 3d 20 69 63 6f  6e 62 61 72 0d 16 d0 1b  |r0 = iconbar....|
00005090  20 20 20 20 20 20 20 20  73 74 72 20 20 20 20 20  |        str     |
000050a0  72 30 2c 5b 72 31 5d 0d  16 da 29 20 20 20 20 20  |r0,[r1]...)     |
000050b0  20 20 20 6c 64 72 20 20  20 20 20 72 30 2c 5b 72  |   ldr     r0,[r|
000050c0  31 32 2c 23 69 63 6f 6e  5f 68 61 6e 64 6c 65 5d  |12,#icon_handle]|
000050d0  0d 16 e4 1e 20 20 20 20  20 20 20 20 73 74 72 20  |....        str |
000050e0  20 20 20 20 72 30 2c 5b  72 31 2c 23 34 5d 0d 16  |    r0,[r1,#4]..|
000050f0  ee 47 20 20 20 20 20 20  20 20 6d 6f 76 20 20 20  |.G        mov   |
00005100  20 20 72 30 2c 23 30 20  20 20 20 20 20 20 20 20  |  r0,#0         |
00005110  20 20 20 20 20 20 20 20  20 20 3b 20 64 6f 6e 27  |          ; don'|
00005120  74 20 63 68 61 6e 67 65  20 66 6c 61 67 73 20 61  |t change flags a|
00005130  74 20 61 6c 6c 0d 16 f8  34 20 20 20 20 20 20 20  |t all...4       |
00005140  20 73 74 72 20 20 20 20  20 72 30 2c 5b 72 31 2c  | str     r0,[r1,|
00005150  23 38 5d 20 20 20 20 20  20 20 20 20 20 20 20 20  |#8]             |
00005160  20 3b 20 82 20 77 6f 72  64 0d 17 02 38 20 20 20  | ; . word...8   |
00005170  20 20 20 20 20 73 74 72  20 20 20 20 20 72 30 2c  |     str     r0,|
00005180  5b 72 31 2c 23 31 32 5d  20 20 20 20 20 20 20 20  |[r1,#12]        |
00005190  20 20 20 20 20 3b 20 63  6c 65 61 72 20 77 6f 72  |     ; clear wor|
000051a0  64 0d 17 0c 28 20 20 20  20 20 20 20 20 73 77 69  |d...(        swi|
000051b0  20 20 20 20 20 22 58 57  69 6d 70 5f 53 65 74 49  |     "XWimp_SetI|
000051c0  63 6f 6e 53 74 61 74 65  22 0d 17 16 1f 20 20 20  |conState"....   |
000051d0  20 20 20 20 20 62 76 73  20 20 20 20 20 66 61 74  |     bvs     fat|
000051e0  61 6c 5f 65 72 72 6f 72  0d 17 20 1a 20 20 20 20  |al_error.. .    |
000051f0  20 20 20 20 6d 6f 76 20  20 20 20 20 70 63 2c 72  |    mov     pc,r|
00005200  31 34 0d 17 2a 04 0d 17  34 53 3b 20 2d 2d 2d 2d  |14..*...4S; ----|
00005210  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00005250  2d 2d 2d 2d 2d 2d 2d 2d  2d 0d 17 3e 4e 3b 20 72  |---------..>N; r|
00005260  65 64 72 61 77 20 77 69  6e 64 6f 77 20 72 65 71  |edraw window req|
00005270  75 65 73 74 20 68 61 73  20 62 65 65 6e 20 73 65  |uest has been se|
00005280  6e 74 2e 20 54 68 69 73  20 63 61 6e 20 6f 6e 6c  |nt. This can onl|
00005290  79 20 62 65 20 66 6f 72  20 64 69 73 70 6c 61 79  |y be for display|
000052a0  20 77 69 6e 64 6f 77 0d  17 48 04 0d 17 52 12 2e  | window..H...R..|
000052b0  72 65 64 72 61 77 5f 77  69 6e 64 6f 77 0d 17 5c  |redraw_window..\|
000052c0  28 20 20 20 20 20 20 20  20 73 77 69 20 20 20 20  |(        swi    |
000052d0  20 22 58 57 69 6d 70 5f  52 65 64 72 61 77 57 69  | "XWimp_RedrawWi|
000052e0  6e 64 6f 77 22 0d 17 66  1f 20 20 20 20 20 20 20  |ndow"..f.       |
000052f0  20 62 76 73 20 20 20 20  20 66 61 74 61 6c 5f 65  | bvs     fatal_e|
00005300  72 72 6f 72 0d 17 70 18  20 20 20 20 20 20 20 20  |rror..p.        |
00005310  62 20 20 20 20 20 20 20  70 6f 6c 6c 0d 17 7a 04  |b       poll..z.|
00005320  0d 17 84 53 3b 20 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |...S; ----------|
00005330  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00005370  2d 2d 2d 0d 17 8e 27 3b  20 6f 70 65 6e 20 77 69  |---...'; open wi|
00005380  6e 64 6f 77 20 72 65 71  75 65 73 74 20 68 61 73  |ndow request has|
00005390  20 62 65 65 6e 20 73 65  6e 74 0d 17 98 04 0d 17  | been sent......|
000053a0  a2 10 2e 6f 70 65 6e 5f  77 69 6e 64 6f 77 0d 17  |...open_window..|
000053b0  ac 26 20 20 20 20 20 20  20 20 73 77 69 20 20 20  |.&        swi   |
000053c0  20 20 22 58 57 69 6d 70  5f 4f 70 65 6e 57 69 6e  |  "XWimp_OpenWin|
000053d0  64 6f 77 22 0d 17 b6 1f  20 20 20 20 20 20 20 20  |dow"....        |
000053e0  62 76 73 20 20 20 20 20  66 61 74 61 6c 5f 65 72  |bvs     fatal_er|
000053f0  72 6f 72 0d 17 c0 18 20  20 20 20 20 20 20 20 62  |ror....        b|
00005400  20 20 20 20 20 20 20 70  6f 6c 6c 0d 17 ca 04 0d  |       poll.....|
00005410  17 d4 53 3b 20 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |..S; -----------|
00005420  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00005460  2d 2d 0d 17 de 28 3b 20  63 6c 6f 73 65 20 77 69  |--...(; close wi|
00005470  6e 64 6f 77 20 72 65 71  75 65 73 74 20 68 61 73  |ndow request has|
00005480  20 62 65 65 6e 20 73 65  6e 74 0d 17 e8 04 0d 17  | been sent......|
00005490  f2 11 2e 63 6c 6f 73 65  5f 77 69 6e 64 6f 77 0d  |...close_window.|
000054a0  17 fc 27 20 20 20 20 20  20 20 20 73 77 69 20 20  |..'        swi  |
000054b0  20 20 20 22 58 57 69 6d  70 5f 43 6c 6f 73 65 57  |   "XWimp_CloseW|
000054c0  69 6e 64 6f 77 22 0d 18  06 1f 20 20 20 20 20 20  |indow"....      |
000054d0  20 20 62 76 73 20 20 20  20 20 66 61 74 61 6c 5f  |  bvs     fatal_|
000054e0  65 72 72 6f 72 0d 18 10  18 20 20 20 20 20 20 20  |error....       |
000054f0  20 62 20 20 20 20 20 20  20 70 6f 6c 6c 0d 18 1a  | b       poll...|
00005500  04 0d 18 24 53 3b 20 2d  2d 2d 2d 2d 2d 2d 2d 2d  |...$S; ---------|
00005510  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00005550  2d 2d 2d 2d 0d 18 2e 1f  3b 20 61 20 6d 6f 75 73  |----....; a mous|
00005560  65 20 63 6c 69 63 6b 20  68 61 73 20 6f 63 63 75  |e click has occu|
00005570  72 65 64 0d 18 38 04 0d  18 42 10 2e 6d 6f 75 73  |red..8...B..mous|
00005580  65 5f 63 6c 69 63 6b 0d  18 4c 40 20 20 20 20 20  |e_click..L@     |
00005590  20 20 20 6c 64 72 20 20  20 20 20 72 30 2c 5b 72  |   ldr     r0,[r|
000055a0  31 2c 23 31 32 5d 20 20  20 20 20 20 20 20 20 20  |1,#12]          |
000055b0  20 20 20 3b 20 72 30 20  3d 20 77 69 6e 64 6f 77  |   ; r0 = window|
000055c0  20 68 61 6e 64 6c 65 0d  18 56 3c 20 20 20 20 20  | handle..V<     |
000055d0  20 20 20 63 6d 6e 20 20  20 20 20 72 30 2c 23 32  |   cmn     r0,#2|
000055e0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000055f0  20 20 20 3b 20 73 65 65  20 69 66 20 69 63 6f 6e  |   ; see if icon|
00005600  62 61 72 0d 18 60 4b 20  20 20 20 20 20 20 20 62  |bar..`K        b|
00005610  6e 65 20 20 20 20 20 70  6f 6c 6c 20 20 20 20 20  |ne     poll     |
00005620  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 3b  |               ;|
00005630  20 70 6f 6c 6c 20 69 66  20 6e 6f 74 2c 20 63 61  | poll if not, ca|
00005640  6e 20 74 68 69 73 20 68  61 70 70 65 6e 3f 0d 18  |n this happen?..|
00005650  6a 3e 20 20 20 20 20 20  20 20 6c 64 72 20 20 20  |j>        ldr   |
00005660  20 20 72 30 2c 5b 72 31  2c 23 31 36 5d 20 20 20  |  r0,[r1,#16]   |
00005670  20 20 20 20 20 20 20 20  20 20 3b 20 72 30 20 3d  |          ; r0 =|
00005680  20 69 63 6f 6e 20 68 61  6e 64 6c 65 0d 18 74 29  | icon handle..t)|
00005690  20 20 20 20 20 20 20 20  6c 64 72 20 20 20 20 20  |        ldr     |
000056a0  72 32 2c 5b 72 31 32 2c  23 69 63 6f 6e 5f 68 61  |r2,[r12,#icon_ha|
000056b0  6e 64 6c 65 5d 0d 18 7e  39 20 20 20 20 20 20 20  |ndle]..~9       |
000056c0  20 74 65 71 20 20 20 20  20 72 30 2c 72 32 20 20  | teq     r0,r2  |
000056d0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000056e0  20 3b 20 73 65 65 20 69  66 20 6f 75 72 73 0d 18  | ; see if ours..|
000056f0  88 4b 20 20 20 20 20 20  20 20 62 6e 65 20 20 20  |.K        bne   |
00005700  20 20 70 6f 6c 6c 20 20  20 20 20 20 20 20 20 20  |  poll          |
00005710  20 20 20 20 20 20 20 20  20 20 3b 20 70 6f 6c 6c  |          ; poll|
00005720  20 69 66 20 6e 6f 74 2c  20 63 61 6e 20 74 68 69  | if not, can thi|
00005730  73 20 68 61 70 70 65 6e  3f 0d 18 92 3f 20 20 20  |s happen?...?   |
00005740  20 20 20 20 20 6c 64 72  20 20 20 20 20 72 30 2c  |     ldr     r0,|
00005750  5b 72 31 2c 23 38 5d 20  20 20 20 20 20 20 20 20  |[r1,#8]         |
00005760  20 20 20 20 20 3b 20 72  30 20 3d 20 62 75 74 74  |     ; r0 = butt|
00005770  6f 6e 20 73 74 61 74 65  0d 18 9c 4e 20 20 20 20  |on state...N    |
00005780  20 20 20 20 74 73 74 20  20 20 20 20 72 30 2c 23  |    tst     r0,#|
00005790  32 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |2               |
000057a0  20 20 20 20 3b 20 73 65  65 20 69 66 20 27 6d 65  |    ; see if 'me|
000057b0  6e 75 27 20 62 75 74 74  6f 6e 20 77 61 73 20 70  |nu' button was p|
000057c0  72 65 73 73 65 64 0d 18  a6 39 20 20 20 20 20 20  |ressed...9      |
000057d0  20 20 62 65 71 20 20 20  20 20 70 6f 6c 6c 20 20  |  beq     poll  |
000057e0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000057f0  20 20 3b 20 70 6f 6c 6c  20 69 66 20 6e 6f 74 0d  |  ; poll if not.|
00005800  18 b0 04 0d 18 ba 53 3b  20 2d 2d 2d 2d 2d 2d 2d  |......S; -------|
00005810  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00005850  2d 2d 2d 2d 2d 2d 0d 18  c4 39 3b 20 61 20 63 6c  |------...9; a cl|
00005860  69 63 6b 20 77 69 74 68  20 27 6d 65 6e 75 27 20  |ick with 'menu' |
00005870  68 61 73 20 6f 63 63 75  72 65 64 20 6f 6e 20 6f  |has occured on o|
00005880  75 72 20 69 63 6f 6e 62  61 72 20 69 63 6f 6e 0d  |ur iconbar icon.|
00005890  18 ce 04 0d 18 d8 16 2e  6f 70 65 6e 5f 69 63 6f  |........open_ico|
000058a0  6e 62 61 72 5f 6d 65 6e  75 0d 18 e2 23 20 20 20  |nbar_menu...#   |
000058b0  20 20 20 20 20 61 64 72  20 20 20 20 20 72 30 2c  |     adr     r0,|
000058c0  69 63 6f 6e 62 61 72 5f  6d 65 6e 75 0d 18 ec 29  |iconbar_menu...)|
000058d0  20 20 20 20 20 20 20 20  61 64 72 20 20 20 20 20  |        adr     |
000058e0  72 31 2c 65 6e 64 5f 63  6c 6f 63 6b 66 61 63 65  |r1,end_clockface|
000058f0  5f 6d 65 6e 75 0d 18 f6  2c 20 20 20 20 20 20 20  |_menu...,       |
00005900  20 61 64 64 20 20 20 20  20 72 32 2c 72 31 32 2c  | add     r2,r12,|
00005910  23 72 6d 61 5f 69 63 6f  6e 62 61 72 5f 6d 65 6e  |#rma_iconbar_men|
00005920  75 0d 19 00 18 20 20 20  20 20 20 20 20 62 6c 20  |u....        bl |
00005930  20 20 20 20 20 63 6f 70  79 0d 19 0a 2c 20 20 20  |     copy...,   |
00005940  20 20 20 20 20 61 64 64  20 20 20 20 20 72 31 2c  |     add     r1,|
00005950  72 31 32 2c 23 72 6d 61  5f 69 63 6f 6e 62 61 72  |r12,#rma_iconbar|
00005960  5f 6d 65 6e 75 0d 19 14  30 20 20 20 20 20 20 20  |_menu...0       |
00005970  20 6c 64 72 20 20 20 20  20 72 30 2c 5b 72 31 32  | ldr     r0,[r12|
00005980  2c 23 69 6e 66 6f 5f 77  69 6e 64 6f 77 5f 68 61  |,#info_window_ha|
00005990  6e 64 6c 65 5d 0d 19 1e  42 20 20 20 20 20 20 20  |ndle]...B       |
000059a0  20 73 74 72 20 20 20 20  20 72 30 2c 5b 72 31 2c  | str     r0,[r1,|
000059b0  23 70 75 74 5f 69 6e 66  6f 5f 77 69 6e 64 6f 77  |#put_info_window|
000059c0  5f 68 61 6e 64 6c 65 20  2d 20 69 63 6f 6e 62 61  |_handle - iconba|
000059d0  72 5f 6d 65 6e 75 5d 0d  19 28 30 20 20 20 20 20  |r_menu]..(0     |
000059e0  20 20 20 61 64 64 20 20  20 20 20 72 30 2c 72 31  |   add     r0,r1|
000059f0  32 2c 23 72 6d 61 5f 74  69 6d 65 5f 66 6f 72 6d  |2,#rma_time_form|
00005a00  61 74 5f 6d 65 6e 75 0d  19 32 40 20 20 20 20 20  |at_menu..2@     |
00005a10  20 20 20 73 74 72 20 20  20 20 20 72 30 2c 5b 72  |   str     r0,[r|
00005a20  31 2c 23 70 75 74 5f 74  69 6d 65 5f 66 6f 72 6d  |1,#put_time_form|
00005a30  61 74 5f 6d 65 6e 75 20  2d 20 69 63 6f 6e 62 61  |at_menu - iconba|
00005a40  72 5f 6d 65 6e 75 5d 0d  19 3c 2e 20 20 20 20 20  |r_menu]..<.     |
00005a50  20 20 20 61 64 64 20 20  20 20 20 72 30 2c 72 31  |   add     r0,r1|
00005a60  32 2c 23 72 6d 61 5f 63  6c 6f 63 6b 66 61 63 65  |2,#rma_clockface|
00005a70  5f 6d 65 6e 75 0d 19 46  3e 20 20 20 20 20 20 20  |_menu..F>       |
00005a80  20 73 74 72 20 20 20 20  20 72 30 2c 5b 72 31 2c  | str     r0,[r1,|
00005a90  23 70 75 74 5f 63 6c 6f  63 6b 66 61 63 65 5f 6d  |#put_clockface_m|
00005aa0  65 6e 75 20 2d 20 69 63  6f 6e 62 61 72 5f 6d 65  |enu - iconbar_me|
00005ab0  6e 75 5d 0d 19 50 29 20  20 20 20 20 20 20 20 6c  |nu]..P)        l|
00005ac0  64 72 62 20 20 20 20 72  33 2c 5b 72 31 32 2c 23  |drb    r3,[r12,#|
00005ad0  74 69 6d 65 5f 66 6f 72  6d 61 74 5d 0d 19 5a 48  |time_format]..ZH|
00005ae0  20 20 20 20 20 20 20 20  74 65 71 20 20 20 20 20  |        teq     |
00005af0  72 33 2c 23 30 20 20 20  20 20 20 20 20 20 20 20  |r3,#0           |
00005b00  20 20 20 20 20 20 20 20  3b 20 73 65 65 20 77 68  |        ; see wh|
00005b10  69 63 68 20 66 6f 72 6d  61 74 20 77 65 20 61 72  |ich format we ar|
00005b20  65 20 69 6e 0d 19 64 39  20 20 20 20 20 20 20 20  |e in..d9        |
00005b30  6c 64 72 65 71 20 20 20  72 34 2c 5b 72 31 2c 23  |ldreq   r4,[r1,#|
00005b40  68 6f 75 72 5f 31 32 5f  66 6c 61 67 73 20 2d 20  |hour_12_flags - |
00005b50  69 63 6f 6e 62 61 72 5f  6d 65 6e 75 5d 0d 19 6e  |iconbar_menu]..n|
00005b60  1c 20 20 20 20 20 20 20  20 6f 72 72 65 71 20 20  |.        orreq  |
00005b70  20 72 34 2c 72 34 2c 23  31 0d 19 78 39 20 20 20  | r4,r4,#1..x9   |
00005b80  20 20 20 20 20 73 74 72  65 71 20 20 20 72 34 2c  |     streq   r4,|
00005b90  5b 72 31 2c 23 68 6f 75  72 5f 31 32 5f 66 6c 61  |[r1,#hour_12_fla|
00005ba0  67 73 20 2d 20 69 63 6f  6e 62 61 72 5f 6d 65 6e  |gs - iconbar_men|
00005bb0  75 5d 0d 19 82 39 20 20  20 20 20 20 20 20 6c 64  |u]...9        ld|
00005bc0  72 6e 65 20 20 20 72 34  2c 5b 72 31 2c 23 68 6f  |rne   r4,[r1,#ho|
00005bd0  75 72 5f 32 34 5f 66 6c  61 67 73 20 2d 20 69 63  |ur_24_flags - ic|
00005be0  6f 6e 62 61 72 5f 6d 65  6e 75 5d 0d 19 8c 1c 20  |onbar_menu].... |
00005bf0  20 20 20 20 20 20 20 6f  72 72 6e 65 20 20 20 72  |       orrne   r|
00005c00  34 2c 72 34 2c 23 31 0d  19 96 39 20 20 20 20 20  |4,r4,#1...9     |
00005c10  20 20 20 73 74 72 6e 65  20 20 20 72 34 2c 5b 72  |   strne   r4,[r|
00005c20  31 2c 23 68 6f 75 72 5f  32 34 5f 66 6c 61 67 73  |1,#hour_24_flags|
00005c30  20 2d 20 69 63 6f 6e 62  61 72 5f 6d 65 6e 75 5d  | - iconbar_menu]|
00005c40  0d 19 a0 04 0d 19 aa 27  20 20 20 20 20 20 20 20  |.......'        |
00005c50  6c 64 72 62 20 20 20 20  72 33 2c 5b 72 31 32 2c  |ldrb    r3,[r12,|
00005c60  23 63 6c 6f 63 6b 66 61  63 65 5d 0d 19 b4 48 20  |#clockface]...H |
00005c70  20 20 20 20 20 20 20 63  6d 70 20 20 20 20 20 72  |       cmp     r|
00005c80  33 2c 23 31 20 20 20 20  20 20 20 20 20 20 20 20  |3,#1            |
00005c90  20 20 20 20 20 20 20 3b  20 73 65 65 20 77 68 69  |       ; see whi|
00005ca0  63 68 20 66 6f 72 6d 61  74 20 77 65 20 61 72 65  |ch format we are|
00005cb0  20 69 6e 0d 19 be 38 20  20 20 20 20 20 20 20 6c  | in...8        l|
00005cc0  64 72 6c 74 20 20 20 72  34 2c 5b 72 31 2c 23 72  |drlt   r4,[r1,#r|
00005cd0  61 69 73 65 64 5f 66 6c  61 67 73 20 2d 20 69 63  |aised_flags - ic|
00005ce0  6f 6e 62 61 72 5f 6d 65  6e 75 5d 0d 19 c8 1c 20  |onbar_menu].... |
00005cf0  20 20 20 20 20 20 20 6f  72 72 6c 74 20 20 20 72  |       orrlt   r|
00005d00  34 2c 72 34 2c 23 31 0d  19 d2 38 20 20 20 20 20  |4,r4,#1...8     |
00005d10  20 20 20 73 74 72 6c 74  20 20 20 72 34 2c 5b 72  |   strlt   r4,[r|
00005d20  31 2c 23 72 61 69 73 65  64 5f 66 6c 61 67 73 20  |1,#raised_flags |
00005d30  2d 20 69 63 6f 6e 62 61  72 5f 6d 65 6e 75 5d 0d  |- iconbar_menu].|
00005d40  19 dc 39 20 20 20 20 20  20 20 20 6c 64 72 65 71  |..9        ldreq|
00005d50  20 20 20 72 34 2c 5b 72  31 2c 23 6c 6f 77 65 72  |   r4,[r1,#lower|
00005d60  65 64 5f 66 6c 61 67 73  20 2d 20 69 63 6f 6e 62  |ed_flags - iconb|
00005d70  61 72 5f 6d 65 6e 75 5d  0d 19 e6 1c 20 20 20 20  |ar_menu]....    |
00005d80  20 20 20 20 6f 72 72 65  71 20 20 20 72 34 2c 72  |    orreq   r4,r|
00005d90  34 2c 23 31 0d 19 f0 39  20 20 20 20 20 20 20 20  |4,#1...9        |
00005da0  73 74 72 65 71 20 20 20  72 34 2c 5b 72 31 2c 23  |streq   r4,[r1,#|
00005db0  6c 6f 77 65 72 65 64 5f  66 6c 61 67 73 20 2d 20  |lowered_flags - |
00005dc0  69 63 6f 6e 62 61 72 5f  6d 65 6e 75 5d 0d 19 fa  |iconbar_menu]...|
00005dd0  38 20 20 20 20 20 20 20  20 6c 64 72 67 74 20 20  |8        ldrgt  |
00005de0  20 72 34 2c 5b 72 31 2c  23 62 6f 72 64 65 72 5f  | r4,[r1,#border_|
00005df0  66 6c 61 67 73 20 2d 20  69 63 6f 6e 62 61 72 5f  |flags - iconbar_|
00005e00  6d 65 6e 75 5d 0d 1a 04  1c 20 20 20 20 20 20 20  |menu]....       |
00005e10  20 6f 72 72 67 74 20 20  20 72 34 2c 72 34 2c 23  | orrgt   r4,r4,#|
00005e20  31 0d 1a 0e 38 20 20 20  20 20 20 20 20 73 74 72  |1...8        str|
00005e30  67 74 20 20 20 72 34 2c  5b 72 31 2c 23 62 6f 72  |gt   r4,[r1,#bor|
00005e40  64 65 72 5f 66 6c 61 67  73 20 2d 20 69 63 6f 6e  |der_flags - icon|
00005e50  62 61 72 5f 6d 65 6e 75  5d 0d 1a 18 04 0d 1a 22  |bar_menu]......"|
00005e60  27 20 20 20 20 20 20 20  20 61 64 72 20 20 20 20  |'        adr    |
00005e70  20 72 32 2c 63 6c 6f 63  6b 66 61 63 65 5f 72 61  | r2,clockface_ra|
00005e80  69 73 65 64 0d 1a 2c 2c  20 20 20 20 20 20 20 20  |ised..,,        |
00005e90  62 6c 20 20 20 20 20 20  63 68 65 63 6b 5f 73 70  |bl      check_sp|
00005ea0  72 69 74 65 5f 69 6e 5f  77 69 6d 70 70 6f 6f 6c  |rite_in_wimppool|
00005eb0  0d 1a 36 3d 20 20 20 20  20 20 20 20 6c 64 72 76  |..6=        ldrv|
00005ec0  73 20 20 20 72 34 2c 5b  72 31 2c 23 72 61 69 73  |s   r4,[r1,#rais|
00005ed0  65 64 5f 69 63 6f 6e 5f  66 6c 61 67 73 20 2d 20  |ed_icon_flags - |
00005ee0  69 63 6f 6e 62 61 72 5f  6d 65 6e 75 5d 0d 1a 40  |iconbar_menu]..@|
00005ef0  22 20 20 20 20 20 20 20  20 6f 72 72 76 73 20 20  |"        orrvs  |
00005f00  20 72 34 2c 72 34 2c 23  31 20 3c 3c 20 32 32 0d  | r4,r4,#1 << 22.|
00005f10  1a 4a 3d 20 20 20 20 20  20 20 20 73 74 72 76 73  |.J=        strvs|
00005f20  20 20 20 72 34 2c 5b 72  31 2c 23 72 61 69 73 65  |   r4,[r1,#raise|
00005f30  64 5f 69 63 6f 6e 5f 66  6c 61 67 73 20 2d 20 69  |d_icon_flags - i|
00005f40  63 6f 6e 62 61 72 5f 6d  65 6e 75 5d 0d 1a 54 28  |conbar_menu]..T(|
00005f50  20 20 20 20 20 20 20 20  61 64 72 20 20 20 20 20  |        adr     |
00005f60  72 32 2c 63 6c 6f 63 6b  66 61 63 65 5f 6c 6f 77  |r2,clockface_low|
00005f70  65 72 65 64 0d 1a 5e 2c  20 20 20 20 20 20 20 20  |ered..^,        |
00005f80  62 6c 20 20 20 20 20 20  63 68 65 63 6b 5f 73 70  |bl      check_sp|
00005f90  72 69 74 65 5f 69 6e 5f  77 69 6d 70 70 6f 6f 6c  |rite_in_wimppool|
00005fa0  0d 1a 68 3e 20 20 20 20  20 20 20 20 6c 64 72 76  |..h>        ldrv|
00005fb0  73 20 20 20 72 34 2c 5b  72 31 2c 23 6c 6f 77 65  |s   r4,[r1,#lowe|
00005fc0  72 65 64 5f 69 63 6f 6e  5f 66 6c 61 67 73 20 2d  |red_icon_flags -|
00005fd0  20 69 63 6f 6e 62 61 72  5f 6d 65 6e 75 5d 0d 1a  | iconbar_menu]..|
00005fe0  72 22 20 20 20 20 20 20  20 20 6f 72 72 76 73 20  |r"        orrvs |
00005ff0  20 20 72 34 2c 72 34 2c  23 31 20 3c 3c 20 32 32  |  r4,r4,#1 << 22|
00006000  0d 1a 7c 3e 20 20 20 20  20 20 20 20 73 74 72 76  |..|>        strv|
00006010  73 20 20 20 72 34 2c 5b  72 31 2c 23 6c 6f 77 65  |s   r4,[r1,#lowe|
00006020  72 65 64 5f 69 63 6f 6e  5f 66 6c 61 67 73 20 2d  |red_icon_flags -|
00006030  20 69 63 6f 6e 62 61 72  5f 6d 65 6e 75 5d 0d 1a  | iconbar_menu]..|
00006040  86 27 20 20 20 20 20 20  20 20 61 64 72 20 20 20  |.'        adr   |
00006050  20 20 72 32 2c 63 6c 6f  63 6b 66 61 63 65 5f 62  |  r2,clockface_b|
00006060  6f 72 64 65 72 0d 1a 90  2c 20 20 20 20 20 20 20  |order...,       |
00006070  20 62 6c 20 20 20 20 20  20 63 68 65 63 6b 5f 73  | bl      check_s|
00006080  70 72 69 74 65 5f 69 6e  5f 77 69 6d 70 70 6f 6f  |prite_in_wimppoo|
00006090  6c 0d 1a 9a 3d 20 20 20  20 20 20 20 20 6c 64 72  |l...=        ldr|
000060a0  76 73 20 20 20 72 34 2c  5b 72 31 2c 23 62 6f 72  |vs   r4,[r1,#bor|
000060b0  64 65 72 5f 69 63 6f 6e  5f 66 6c 61 67 73 20 2d  |der_icon_flags -|
000060c0  20 69 63 6f 6e 62 61 72  5f 6d 65 6e 75 5d 0d 1a  | iconbar_menu]..|
000060d0  a4 22 20 20 20 20 20 20  20 20 6f 72 72 76 73 20  |."        orrvs |
000060e0  20 20 72 34 2c 72 34 2c  23 31 20 3c 3c 20 32 32  |  r4,r4,#1 << 22|
000060f0  0d 1a ae 3d 20 20 20 20  20 20 20 20 73 74 72 76  |...=        strv|
00006100  73 20 20 20 72 34 2c 5b  72 31 2c 23 62 6f 72 64  |s   r4,[r1,#bord|
00006110  65 72 5f 69 63 6f 6e 5f  66 6c 61 67 73 20 2d 20  |er_icon_flags - |
00006120  69 63 6f 6e 62 61 72 5f  6d 65 6e 75 5d 0d 1a b8  |iconbar_menu]...|
00006130  04 0d 1a c2 4e 20 20 20  20 20 20 20 20 6c 64 72  |....N        ldr|
00006140  20 20 20 20 20 72 32 2c  5b 72 31 32 2c 23 70 6f  |     r2,[r12,#po|
00006150  6c 6c 5f 73 70 61 63 65  5d 20 20 20 20 3b 20 72  |ll_space]    ; r|
00006160  32 20 3d 20 78 20 63 6f  6f 72 64 69 6e 61 74 65  |2 = x coordinate|
00006170  20 6f 66 20 6d 6f 75 73  65 20 63 6c 69 63 6b 0d  | of mouse click.|
00006180  1a cc 44 20 20 20 20 20  20 20 20 73 75 62 20 20  |..D        sub  |
00006190  20 20 20 72 32 2c 72 32  2c 23 36 34 20 20 20 20  |   r2,r2,#64    |
000061a0  20 20 20 20 20 20 20 20  20 20 20 3b 20 61 73 20  |           ; as |
000061b0  69 6e 20 61 63 6f 72 6e  20 67 75 69 64 65 6c 69  |in acorn guideli|
000061c0  6e 65 73 0d 1a d6 1f 20  20 20 20 20 20 20 20 6d  |nes....        m|
000061d0  6f 76 20 20 20 20 20 72  33 2c 23 39 36 2b 34 34  |ov     r3,#96+44|
000061e0  2a 34 0d 1a e0 26 20 20  20 20 20 20 20 20 73 77  |*4...&        sw|
000061f0  69 20 20 20 20 20 22 58  57 69 6d 70 5f 43 72 65  |i     "XWimp_Cre|
00006200  61 74 65 4d 65 6e 75 22  0d 1a ea 1f 20 20 20 20  |ateMenu"....    |
00006210  20 20 20 20 62 76 73 20  20 20 20 20 66 61 74 61  |    bvs     fata|
00006220  6c 5f 65 72 72 6f 72 0d  1a f4 44 20 20 20 20 20  |l_error...D     |
00006230  20 20 20 62 20 20 20 20  20 20 20 70 6f 6c 6c 20  |   b       poll |
00006240  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00006250  20 20 20 3b 20 72 65 74  75 72 6e 20 74 6f 20 70  |   ; return to p|
00006260  6f 6c 6c 69 6e 67 20 6c  6f 6f 70 0d 1a fe 04 0d  |olling loop.....|
00006270  1b 08 15 2e 63 6c 6f 63  6b 66 61 63 65 5f 72 61  |....clockface_ra|
00006280  69 73 65 64 0d 1b 12 23  20 20 20 20 20 20 20 20  |ised...#        |
00006290  65 71 75 73 20 20 20 20  22 21 69 63 6f 6e 63 6c  |equs    "!iconcl|
000062a0  6f 63 31 22 2b bd 30 0d  1b 1c 16 2e 63 6c 6f 63  |oc1"+.0.....cloc|
000062b0  6b 66 61 63 65 5f 6c 6f  77 65 72 65 64 0d 1b 26  |kface_lowered..&|
000062c0  23 20 20 20 20 20 20 20  20 65 71 75 73 20 20 20  |#        equs   |
000062d0  20 22 21 69 63 6f 6e 63  6c 6f 63 32 22 2b bd 30  | "!iconcloc2"+.0|
000062e0  0d 1b 30 15 2e 63 6c 6f  63 6b 66 61 63 65 5f 62  |..0..clockface_b|
000062f0  6f 72 64 65 72 0d 1b 3a  23 20 20 20 20 20 20 20  |order..:#       |
00006300  20 65 71 75 73 20 20 20  20 22 21 69 63 6f 6e 63  | equs    "!iconc|
00006310  6c 6f 63 33 22 2b bd 30  0d 1b 44 44 44 67 6e 0d  |loc3"+.0..DDDgn.|
00006320  1b 4e 04 0d 1b 58 53 3b  20 2d 2d 2d 2d 2d 2d 2d  |.N...XS; -------|
00006330  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00006370  2d 2d 2d 2d 2d 2d 0d 1b  62 21 3b 20 64 65 66 69  |------..b!; defi|
00006380  6e 69 74 69 6f 6e 20 66  6f 72 20 69 63 6f 6e 62  |nition for iconb|
00006390  61 72 20 6d 65 6e 75 0d  1b 6c 04 0d 1b 76 11 2e  |ar menu..l...v..|
000063a0  69 63 6f 6e 62 61 72 5f  6d 65 6e 75 0d 1b 80 20  |iconbar_menu... |
000063b0  20 20 20 20 20 20 20 20  a4 73 74 72 69 6e 67 28  |        .string(|
000063c0  22 49 63 6f 6e 43 6c 6f  63 6b 22 29 0d 1b 8a 15  |"IconClock")....|
000063d0  20 20 20 20 20 20 20 20  65 71 75 62 20 20 20 20  |        equb    |
000063e0  37 0d 1b 94 15 20 20 20  20 20 20 20 20 65 71 75  |7....        equ|
000063f0  62 20 20 20 20 32 0d 1b  9e 15 20 20 20 20 20 20  |b    2....      |
00006400  20 20 65 71 75 62 20 20  20 20 37 0d 1b a8 15 20  |  equb    7.... |
00006410  20 20 20 20 20 20 20 65  71 75 62 20 20 20 20 30  |       equb    0|
00006420  0d 1b b2 1b 20 20 20 20  20 20 20 20 65 71 75 64  |....        equd|
00006430  20 20 20 20 39 2a 31 36  2b 31 32 0d 1b bc 16 20  |    9*16+12.... |
00006440  20 20 20 20 20 20 20 65  71 75 64 20 20 20 20 34  |       equd    4|
00006450  34 0d 1b c6 15 20 20 20  20 20 20 20 20 65 71 75  |4....        equ|
00006460  64 20 20 20 20 30 0d 1b  d0 3b 20 20 20 20 20 20  |d    0...;      |
00006470  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00006490  20 20 3b 20 73 74 61 72  74 20 65 6e 74 72 79 20  |  ; start entry |
000064a0  31 0d 1b da 15 20 20 20  20 20 20 20 20 65 71 75  |1....        equ|
000064b0  64 20 20 20 20 30 0d 1b  e4 1b 2e 70 75 74 5f 69  |d    0.....put_i|
000064c0  6e 66 6f 5f 77 69 6e 64  6f 77 5f 68 61 6e 64 6c  |nfo_window_handl|
000064d0  65 0d 1b ee 3d 20 20 20  20 20 20 20 20 65 71 75  |e...=        equ|
000064e0  64 20 20 20 20 2d 31 20  20 20 20 20 20 20 20 20  |d    -1         |
000064f0  20 20 20 20 20 20 20 20  20 20 20 20 20 3b 20 66  |             ; f|
00006500  69 6c 6c 65 64 20 69 6e  20 6c 61 74 65 72 0d 1b  |illed in later..|
00006510  f8 28 20 20 20 20 20 20  20 20 65 71 75 64 20 20  |.(        equd  |
00006520  20 20 31 2b 28 31 20 3c  3c 20 35 29 2b 28 37 20  |  1+(1 << 5)+(7 |
00006530  3c 3c 20 32 34 29 0d 1c  02 1b 20 20 20 20 20 20  |<< 24)....      |
00006540  20 20 a4 73 74 72 69 6e  67 28 22 49 6e 66 6f 22  |  .string("Info"|
00006550  29 0d 1c 0c 3b 20 20 20  20 20 20 20 20 20 20 20  |)...;           |
00006560  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00006570  20 20 20 20 20 20 20 20  20 20 20 20 20 3b 20 73  |             ; s|
00006580  74 61 72 74 20 65 6e 74  72 79 20 32 0d 1c 16 15  |tart entry 2....|
00006590  20 20 20 20 20 20 20 20  65 71 75 64 20 20 20 20  |        equd    |
000065a0  30 0d 1c 20 19 2e 70 75  74 5f 74 69 6d 65 5f 66  |0.. ..put_time_f|
000065b0  6f 72 6d 61 74 5f 6d 65  6e 75 0d 1c 2a 3d 20 20  |ormat_menu..*=  |
000065c0  20 20 20 20 20 20 65 71  75 64 20 20 20 20 2d 31  |      equd    -1|
000065d0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000065e0  20 20 20 20 20 20 3b 20  66 69 6c 6c 65 64 20 69  |      ; filled i|
000065f0  6e 20 6c 61 74 65 72 0d  1c 34 28 20 20 20 20 20  |n later..4(     |
00006600  20 20 20 65 71 75 64 20  20 20 20 31 2b 28 31 20  |   equd    1+(1 |
00006610  3c 3c 20 35 29 2b 28 37  20 3c 3c 20 32 34 29 0d  |<< 5)+(7 << 24).|
00006620  1c 3e 1d 20 20 20 20 20  20 20 20 a4 73 74 72 69  |.>.        .stri|
00006630  6e 67 28 22 46 6f 72 6d  61 74 22 29 0d 1c 48 3b  |ng("Format")..H;|
00006640  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00006660  20 20 20 20 20 20 20 20  3b 20 73 74 61 72 74 20  |        ; start |
00006670  65 6e 74 72 79 20 33 0d  1c 52 15 20 20 20 20 20  |entry 3..R.     |
00006680  20 20 20 65 71 75 64 20  20 20 20 30 0d 1c 5c 17  |   equd    0..\.|
00006690  2e 70 75 74 5f 63 6c 6f  63 6b 66 61 63 65 5f 6d  |.put_clockface_m|
000066a0  65 6e 75 0d 1c 66 3d 20  20 20 20 20 20 20 20 65  |enu..f=        e|
000066b0  71 75 64 20 20 20 20 2d  31 20 20 20 20 20 20 20  |qud    -1       |
000066c0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 3b  |               ;|
000066d0  20 66 69 6c 6c 65 64 20  69 6e 20 6c 61 74 65 72  | filled in later|
000066e0  0d 1c 70 28 20 20 20 20  20 20 20 20 65 71 75 64  |..p(        equd|
000066f0  20 20 20 20 31 2b 28 31  20 3c 3c 20 35 29 2b 28  |    1+(1 << 5)+(|
00006700  37 20 3c 3c 20 32 34 29  0d 1c 7a 20 20 20 20 20  |7 << 24)..z     |
00006710  20 20 20 20 a4 73 74 72  69 6e 67 28 22 43 6c 6f  |    .string("Clo|
00006720  63 6b 66 61 63 65 22 29  0d 1c 84 3b 20 20 20 20  |ckface")...;    |
00006730  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00006750  20 20 20 20 3b 20 73 74  61 72 74 20 65 6e 74 72  |    ; start entr|
00006760  79 20 33 0d 1c 8e 38 20  20 20 20 20 20 20 20 65  |y 3...8        e|
00006770  71 75 64 20 20 20 20 26  38 30 20 20 20 20 20 20  |qud    &80      |
00006780  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 3b  |               ;|
00006790  20 6c 61 73 74 20 65 6e  74 72 79 0d 1c 98 3f 20  | last entry...? |
000067a0  20 20 20 20 20 20 20 65  71 75 64 20 20 20 20 2d  |       equd    -|
000067b0  31 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |1               |
000067c0  20 20 20 20 20 20 20 3b  20 6e 6f 20 73 75 62 6d  |       ; no subm|
000067d0  65 6e 75 2f 77 69 6e 64  6f 77 0d 1c a2 28 20 20  |enu/window...(  |
000067e0  20 20 20 20 20 20 65 71  75 64 20 20 20 20 31 2b  |      equd    1+|
000067f0  28 31 20 3c 3c 20 35 29  2b 28 37 20 3c 3c 20 32  |(1 << 5)+(7 << 2|
00006800  34 29 0d 1c ac 1b 20 20  20 20 20 20 20 20 a4 73  |4)....        .s|
00006810  74 72 69 6e 67 28 22 51  75 69 74 22 29 0d 1c b6  |tring("Quit")...|
00006820  15 2e 65 6e 64 5f 69 63  6f 6e 62 61 72 5f 6d 65  |..end_iconbar_me|
00006830  6e 75 0d 1c c0 04 0d 1c  ca 53 3b 20 2d 2d 2d 2d  |nu.......S; ----|
00006840  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00006880  2d 2d 2d 2d 2d 2d 2d 2d  2d 0d 1c d4 19 3b 20 74  |---------....; t|
00006890  69 6d 65 20 66 6f 72 6d  61 74 20 73 75 62 6d 65  |ime format subme|
000068a0  6e 75 0d 1c de 04 0d 1c  e8 15 2e 74 69 6d 65 5f  |nu.........time_|
000068b0  66 6f 72 6d 61 74 5f 6d  65 6e 75 0d 1c f2 1d 20  |format_menu.... |
000068c0  20 20 20 20 20 20 20 a4  73 74 72 69 6e 67 28 22  |       .string("|
000068d0  46 6f 72 6d 61 74 22 29  0d 1c fc 15 20 20 20 20  |Format")....    |
000068e0  20 20 20 20 65 71 75 62  20 20 20 20 37 0d 1d 06  |    equb    7...|
000068f0  15 20 20 20 20 20 20 20  20 65 71 75 62 20 20 20  |.        equb   |
00006900  20 32 0d 1d 10 15 20 20  20 20 20 20 20 20 65 71  | 2....        eq|
00006910  75 62 20 20 20 20 37 0d  1d 1a 15 20 20 20 20 20  |ub    7....     |
00006920  20 20 20 65 71 75 62 20  20 20 20 30 0d 1d 24 1b  |   equb    0..$.|
00006930  20 20 20 20 20 20 20 20  65 71 75 64 20 20 20 20  |        equd    |
00006940  37 2a 31 36 2b 31 32 0d  1d 2e 16 20 20 20 20 20  |7*16+12....     |
00006950  20 20 20 65 71 75 64 20  20 20 20 34 34 0d 1d 38  |   equd    44..8|
00006960  15 20 20 20 20 20 20 20  20 65 71 75 64 20 20 20  |.        equd   |
00006970  20 30 0d 1d 42 3b 20 20  20 20 20 20 20 20 20 20  | 0..B;          |
00006980  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00006990  20 20 20 20 20 20 20 20  20 20 20 20 20 20 3b 20  |              ; |
000069a0  73 74 61 72 74 20 65 6e  74 72 79 20 31 0d 1d 4c  |start entry 1..L|
000069b0  12 2e 68 6f 75 72 5f 31  32 5f 66 6c 61 67 73 0d  |..hour_12_flags.|
000069c0  1d 56 15 20 20 20 20 20  20 20 20 65 71 75 64 20  |.V.        equd |
000069d0  20 20 20 30 0d 1d 60 3f  20 20 20 20 20 20 20 20  |   0..`?        |
000069e0  65 71 75 64 20 20 20 20  2d 31 20 20 20 20 20 20  |equd    -1      |
000069f0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00006a00  3b 20 6e 6f 20 73 75 62  6d 65 6e 75 2f 77 69 6e  |; no submenu/win|
00006a10  64 6f 77 0d 1d 6a 28 20  20 20 20 20 20 20 20 65  |dow..j(        e|
00006a20  71 75 64 20 20 20 20 31  2b 28 31 20 3c 3c 20 35  |qud    1+(1 << 5|
00006a30  29 2b 28 37 20 3c 3c 20  32 34 29 0d 1d 74 1e 20  |)+(7 << 24)..t. |
00006a40  20 20 20 20 20 20 20 a4  73 74 72 69 6e 67 28 22  |       .string("|
00006a50  31 32 20 48 6f 75 72 22  29 0d 1d 7e 3b 20 20 20  |12 Hour")..~;   |
00006a60  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00006a80  20 20 20 20 20 3b 20 73  74 61 72 74 20 65 6e 74  |     ; start ent|
00006a90  72 79 20 32 0d 1d 88 12  2e 68 6f 75 72 5f 32 34  |ry 2.....hour_24|
00006aa0  5f 66 6c 61 67 73 0d 1d  92 38 20 20 20 20 20 20  |_flags...8      |
00006ab0  20 20 65 71 75 64 20 20  20 20 26 38 30 20 20 20  |  equd    &80   |
00006ac0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00006ad0  20 20 3b 20 6c 61 73 74  20 65 6e 74 72 79 0d 1d  |  ; last entry..|
00006ae0  9c 3f 20 20 20 20 20 20  20 20 65 71 75 64 20 20  |.?        equd  |
00006af0  20 20 2d 31 20 20 20 20  20 20 20 20 20 20 20 20  |  -1            |
00006b00  20 20 20 20 20 20 20 20  20 20 3b 20 6e 6f 20 73  |          ; no s|
00006b10  75 62 6d 65 6e 75 2f 77  69 6e 64 6f 77 0d 1d a6  |ubmenu/window...|
00006b20  28 20 20 20 20 20 20 20  20 65 71 75 64 20 20 20  |(        equd   |
00006b30  20 31 2b 28 31 20 3c 3c  20 35 29 2b 28 37 20 3c  | 1+(1 << 5)+(7 <|
00006b40  3c 20 32 34 29 0d 1d b0  1e 20 20 20 20 20 20 20  |< 24)....       |
00006b50  20 a4 73 74 72 69 6e 67  28 22 32 34 20 48 6f 75  | .string("24 Hou|
00006b60  72 22 29 0d 1d ba 19 2e  65 6e 64 5f 74 69 6d 65  |r").....end_time|
00006b70  5f 66 6f 72 6d 61 74 5f  6d 65 6e 75 0d 1d c4 04  |_format_menu....|
00006b80  0d 1d ce 53 3b 20 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |...S; ----------|
00006b90  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00006bd0  2d 2d 2d 0d 1d d8 17 3b  20 63 6c 6f 63 6b 66 61  |---....; clockfa|
00006be0  63 65 20 73 75 62 6d 65  6e 75 0d 1d e2 04 0d 1d  |ce submenu......|
00006bf0  ec 13 2e 63 6c 6f 63 6b  66 61 63 65 5f 6d 65 6e  |...clockface_men|
00006c00  75 0d 1d f6 20 20 20 20  20 20 20 20 20 a4 73 74  |u...         .st|
00006c10  72 69 6e 67 28 22 43 6c  6f 63 6b 66 61 63 65 22  |ring("Clockface"|
00006c20  29 0d 1e 00 15 20 20 20  20 20 20 20 20 65 71 75  |)....        equ|
00006c30  62 20 20 20 20 37 0d 1e  0a 15 20 20 20 20 20 20  |b    7....      |
00006c40  20 20 65 71 75 62 20 20  20 20 32 0d 1e 14 15 20  |  equb    2.... |
00006c50  20 20 20 20 20 20 20 65  71 75 62 20 20 20 20 37  |       equb    7|
00006c60  0d 1e 1e 15 20 20 20 20  20 20 20 20 65 71 75 62  |....        equb|
00006c70  20 20 20 20 30 0d 1e 28  18 20 20 20 20 20 20 20  |    0..(.       |
00006c80  20 65 71 75 64 20 20 20  20 39 2a 31 36 0d 1e 32  | equd    9*16..2|
00006c90  16 20 20 20 20 20 20 20  20 65 71 75 64 20 20 20  |.        equd   |
00006ca0  20 34 34 0d 1e 3c 15 20  20 20 20 20 20 20 20 65  | 44..<.        e|
00006cb0  71 75 64 20 20 20 20 30  0d 1e 46 3b 20 20 20 20  |qud    0..F;    |
00006cc0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00006ce0  20 20 20 20 3b 20 73 74  61 72 74 20 65 6e 74 72  |    ; start entr|
00006cf0  79 20 31 0d 1e 50 11 2e  72 61 69 73 65 64 5f 66  |y 1..P..raised_f|
00006d00  6c 61 67 73 0d 1e 5a 15  20 20 20 20 20 20 20 20  |lags..Z.        |
00006d10  65 71 75 64 20 20 20 20  30 0d 1e 64 3f 20 20 20  |equd    0..d?   |
00006d20  20 20 20 20 20 65 71 75  64 20 20 20 20 2d 31 20  |     equd    -1 |
00006d30  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00006d40  20 20 20 20 20 3b 20 6e  6f 20 73 75 62 6d 65 6e  |     ; no submen|
00006d50  75 2f 77 69 6e 64 6f 77  0d 1e 6e 16 2e 72 61 69  |u/window..n..rai|
00006d60  73 65 64 5f 69 63 6f 6e  5f 66 6c 61 67 73 0d 1e  |sed_icon_flags..|
00006d70  78 28 20 20 20 20 20 20  20 20 65 71 75 64 20 20  |x(        equd  |
00006d80  20 20 31 2b 28 31 20 3c  3c 20 35 29 2b 28 37 20  |  1+(1 << 5)+(7 |
00006d90  3c 3c 20 32 34 29 0d 1e  82 1d 20 20 20 20 20 20  |<< 24)....      |
00006da0  20 20 a4 73 74 72 69 6e  67 28 22 52 61 69 73 65  |  .string("Raise|
00006db0  64 22 29 0d 1e 8c 3b 20  20 20 20 20 20 20 20 20  |d")...;         |
00006dc0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00006dd0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 3b  |               ;|
00006de0  20 73 74 61 72 74 20 65  6e 74 72 79 20 32 0d 1e  | start entry 2..|
00006df0  96 12 2e 6c 6f 77 65 72  65 64 5f 66 6c 61 67 73  |...lowered_flags|
00006e00  0d 1e a0 15 20 20 20 20  20 20 20 20 65 71 75 64  |....        equd|
00006e10  20 20 20 20 30 0d 1e aa  3f 20 20 20 20 20 20 20  |    0...?       |
00006e20  20 65 71 75 64 20 20 20  20 2d 31 20 20 20 20 20  | equd    -1     |
00006e30  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00006e40  20 3b 20 6e 6f 20 73 75  62 6d 65 6e 75 2f 77 69  | ; no submenu/wi|
00006e50  6e 64 6f 77 0d 1e b4 17  2e 6c 6f 77 65 72 65 64  |ndow.....lowered|
00006e60  5f 69 63 6f 6e 5f 66 6c  61 67 73 0d 1e be 28 20  |_icon_flags...( |
00006e70  20 20 20 20 20 20 20 65  71 75 64 20 20 20 20 31  |       equd    1|
00006e80  2b 28 31 20 3c 3c 20 35  29 2b 28 37 20 3c 3c 20  |+(1 << 5)+(7 << |
00006e90  32 34 29 0d 1e c8 1e 20  20 20 20 20 20 20 20 a4  |24)....        .|
00006ea0  73 74 72 69 6e 67 28 22  4c 6f 77 65 72 65 64 22  |string("Lowered"|
00006eb0  29 0d 1e d2 3b 20 20 20  20 20 20 20 20 20 20 20  |)...;           |
00006ec0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00006ed0  20 20 20 20 20 20 20 20  20 20 20 20 20 3b 20 73  |             ; s|
00006ee0  74 61 72 74 20 65 6e 74  72 79 20 33 0d 1e dc 11  |tart entry 3....|
00006ef0  2e 62 6f 72 64 65 72 5f  66 6c 61 67 73 0d 1e e6  |.border_flags...|
00006f00  38 20 20 20 20 20 20 20  20 65 71 75 64 20 20 20  |8        equd   |
00006f10  20 26 38 30 20 20 20 20  20 20 20 20 20 20 20 20  | &80            |
00006f20  20 20 20 20 20 20 20 20  20 3b 20 6c 61 73 74 20  |         ; last |
00006f30  65 6e 74 72 79 0d 1e f0  3f 20 20 20 20 20 20 20  |entry...?       |
00006f40  20 65 71 75 64 20 20 20  20 2d 31 20 20 20 20 20  | equd    -1     |
00006f50  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00006f60  20 3b 20 6e 6f 20 73 75  62 6d 65 6e 75 2f 77 69  | ; no submenu/wi|
00006f70  6e 64 6f 77 0d 1e fa 16  2e 62 6f 72 64 65 72 5f  |ndow.....border_|
00006f80  69 63 6f 6e 5f 66 6c 61  67 73 0d 1f 04 28 20 20  |icon_flags...(  |
00006f90  20 20 20 20 20 20 65 71  75 64 20 20 20 20 31 2b  |      equd    1+|
00006fa0  28 31 20 3c 3c 20 35 29  2b 28 37 20 3c 3c 20 32  |(1 << 5)+(7 << 2|
00006fb0  34 29 0d 1f 0e 1d 20 20  20 20 20 20 20 20 a4 73  |4)....        .s|
00006fc0  74 72 69 6e 67 28 22 42  6f 72 64 65 72 22 29 0d  |tring("Border").|
00006fd0  1f 18 17 2e 65 6e 64 5f  63 6c 6f 63 6b 66 61 63  |....end_clockfac|
00006fe0  65 5f 6d 65 6e 75 0d 1f  22 04 0d 1f 2c 53 3b 20  |e_menu.."...,S; |
00006ff0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00007030  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 0d 1f 36  |-------------..6|
00007040  24 3b 20 61 20 6d 65 6e  75 20 65 6e 74 72 79 20  |$; a menu entry |
00007050  68 61 73 20 62 65 65 6e  20 73 65 6c 65 63 74 65  |has been selecte|
00007060  64 0d 1f 40 04 0d 1f 4a  10 2e 6d 65 6e 75 5f 73  |d..@...J..menu_s|
00007070  65 6c 65 63 74 0d 1f 54  46 20 20 20 20 20 20 20  |elect..TF       |
00007080  20 6c 64 72 20 20 20 20  20 72 30 2c 5b 72 31 5d  | ldr     r0,[r1]|
00007090  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000070a0  20 3b 20 72 30 20 3d 20  6d 65 6e 75 20 65 6e 74  | ; r0 = menu ent|
000070b0  72 79 20 73 65 6c 65 63  74 65 64 0d 1f 5e 46 20  |ry selected..^F |
000070c0  20 20 20 20 20 20 20 74  65 71 20 20 20 20 20 72  |       teq     r|
000070d0  30 2c 23 30 20 20 20 20  20 20 20 20 20 20 20 20  |0,#0            |
000070e0  20 20 20 20 20 20 20 3b  20 73 65 65 20 69 66 20  |       ; see if |
000070f0  69 6e 66 6f 20 77 61 73  20 73 65 6c 65 63 74 65  |info was selecte|
00007100  64 0d 1f 68 3f 20 20 20  20 20 20 20 20 62 65 71  |d..h?        beq|
00007110  20 20 20 20 20 73 65 65  5f 69 66 5f 72 65 6f 70  |     see_if_reop|
00007120  65 6e 20 20 20 20 20 20  20 20 20 20 20 3b 20 77  |en           ; w|
00007130  61 73 20 73 6f 20 64 6f  20 6e 6f 74 68 69 6e 67  |as so do nothing|
00007140  0d 1f 72 43 20 20 20 20  20 20 20 20 63 6d 70 20  |..rC        cmp |
00007150  20 20 20 20 72 30 2c 23  32 20 20 20 20 20 20 20  |    r0,#2       |
00007160  20 20 20 20 20 20 20 20  20 20 20 20 3b 20 73 65  |            ; se|
00007170  65 20 77 68 61 74 20 77  61 73 20 73 65 6c 65 63  |e what was selec|
00007180  74 65 64 0d 1f 7c 3f 20  20 20 20 20 20 20 20 62  |ted..|?        b|
00007190  67 74 20 20 20 20 20 63  6c 6f 73 65 64 6f 77 6e  |gt     closedown|
000071a0  5f 61 6e 64 5f 65 78 69  74 20 20 20 20 20 20 3b  |_and_exit      ;|
000071b0  20 71 75 69 74 20 73 6f  20 63 6c 6f 73 65 64 6f  | quit so closedo|
000071c0  77 6e 0d 1f 86 4e 20 20  20 20 20 20 20 20 62 6c  |wn...N        bl|
000071d0  74 20 20 20 20 20 66 6f  72 6d 61 74 5f 73 65 6c  |t     format_sel|
000071e0  65 63 74 65 64 20 20 20  20 20 20 20 20 20 3b 20  |ected         ; |
000071f0  66 6f 72 6d 61 74 20 6f  72 20 73 75 62 2d 65 6e  |format or sub-en|
00007200  74 72 79 20 77 61 73 20  73 65 6c 65 63 74 65 64  |try was selected|
00007210  0d 1f 90 51 20 20 20 20  20 20 20 20 20 20 20 20  |...Q            |
00007220  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00007230  20 20 20 20 20 20 20 20  20 20 20 20 3b 20 63 6c  |            ; cl|
00007240  6f 63 6b 66 61 63 65 20  6f 72 20 73 75 62 2d 65  |ockface or sub-e|
00007250  6e 74 72 79 20 77 61 73  20 73 65 6c 65 63 74 65  |ntry was selecte|
00007260  64 0d 1f 9a 4a 20 20 20  20 20 20 20 20 6c 64 72  |d...J        ldr|
00007270  20 20 20 20 20 72 30 2c  5b 72 31 2c 23 34 5d 20  |     r0,[r1,#4] |
00007280  20 20 20 20 20 20 20 20  20 20 20 20 20 3b 20 72  |             ; r|
00007290  30 20 3d 20 73 65 63 6f  6e 64 20 64 65 70 74 68  |0 = second depth|
000072a0  20 6d 65 6e 75 20 65 6e  74 72 79 0d 1f a4 47 20  | menu entry...G |
000072b0  20 20 20 20 20 20 20 63  6d 70 20 20 20 20 20 72  |       cmp     r|
000072c0  30 2c 23 30 20 20 20 20  20 20 20 20 20 20 20 20  |0,#0            |
000072d0  20 20 20 20 20 20 20 3b  20 73 65 65 20 69 66 20  |       ; see if |
000072e0  65 6e 74 72 79 20 77 61  73 20 73 65 6c 65 63 74  |entry was select|
000072f0  65 64 0d 1f ae 3c 20 20  20 20 20 20 20 20 62 6c  |ed...<        bl|
00007300  74 20 20 20 20 20 73 65  65 5f 69 66 5f 72 65 6f  |t     see_if_reo|
00007310  70 65 6e 20 20 20 20 20  20 20 20 20 20 20 3b 20  |pen           ; |
00007320  77 61 73 6e 27 74 20 73  6f 20 73 6b 69 70 0d 1f  |wasn't so skip..|
00007330  b8 27 20 20 20 20 20 20  20 20 6c 64 72 62 20 20  |.'        ldrb  |
00007340  20 20 72 31 2c 5b 72 31  32 2c 23 63 6c 6f 63 6b  |  r1,[r12,#clock|
00007350  66 61 63 65 5d 0d 1f c2  2b 20 20 20 20 20 20 20  |face]...+       |
00007360  20 73 74 72 62 20 20 20  20 72 31 2c 5b 72 31 32  | strb    r1,[r12|
00007370  2c 23 6f 6c 64 5f 63 6c  6f 63 6b 66 61 63 65 5d  |,#old_clockface]|
00007380  0d 1f cc 44 20 20 20 20  20 20 20 20 73 74 72 62  |...D        strb|
00007390  20 20 20 20 72 30 2c 5b  72 31 32 2c 23 63 6c 6f  |    r0,[r12,#clo|
000073a0  63 6b 66 61 63 65 5d 20  20 20 20 20 3b 20 73 74  |ckface]     ; st|
000073b0  6f 72 65 20 6e 65 77 20  63 6c 6f 63 6b 20 66 6f  |ore new clock fo|
000073c0  72 6d 61 74 0d 1f d6 2a  20 20 20 20 20 20 20 20  |rmat...*        |
000073d0  62 6c 20 20 20 20 20 20  73 65 74 75 70 5f 69 63  |bl      setup_ic|
000073e0  6f 6e 5f 73 70 72 69 74  65 5f 6e 61 6d 65 0d 1f  |on_sprite_name..|
000073f0  e0 27 20 20 20 20 20 20  20 20 61 64 64 20 20 20  |.'        add   |
00007400  20 20 72 32 2c 72 31 32  2c 23 73 70 72 69 74 65  |  r2,r12,#sprite|
00007410  5f 6e 61 6d 65 0d 1f ea  2c 20 20 20 20 20 20 20  |_name...,       |
00007420  20 62 6c 20 20 20 20 20  20 63 68 65 63 6b 5f 73  | bl      check_s|
00007430  70 72 69 74 65 5f 69 6e  5f 77 69 6d 70 70 6f 6f  |prite_in_wimppoo|
00007440  6c 0d 1f f4 20 20 20 20  20 20 20 20 20 62 76 63  |l...         bvc|
00007450  20 20 20 20 20 73 70 72  69 74 65 5f 66 6f 75 6e  |     sprite_foun|
00007460  64 0d 1f fe 23 20 20 20  20 20 20 20 20 62 6c 20  |d...#        bl |
00007470  20 20 20 20 20 72 65 70  6f 72 74 5f 65 72 72 6f  |     report_erro|
00007480  72 5f 6f 6b 0d 20 08 2b  20 20 20 20 20 20 20 20  |r_ok. .+        |
00007490  6c 64 72 62 20 20 20 20  72 31 2c 5b 72 31 32 2c  |ldrb    r1,[r12,|
000074a0  23 6f 6c 64 5f 63 6c 6f  63 6b 66 61 63 65 5d 0d  |#old_clockface].|
000074b0  20 12 27 20 20 20 20 20  20 20 20 73 74 72 62 20  | .'        strb |
000074c0  20 20 20 72 31 2c 5b 72  31 32 2c 23 63 6c 6f 63  |   r1,[r12,#cloc|
000074d0  6b 66 61 63 65 5d 0d 20  1c 2a 20 20 20 20 20 20  |kface]. .*      |
000074e0  20 20 62 6c 20 20 20 20  20 20 73 65 74 75 70 5f  |  bl      setup_|
000074f0  69 63 6f 6e 5f 73 70 72  69 74 65 5f 6e 61 6d 65  |icon_sprite_name|
00007500  0d 20 26 18 20 20 20 20  20 20 20 20 62 20 20 20  |. &.        b   |
00007510  20 20 20 20 70 6f 6c 6c  0d 20 30 11 2e 73 70 72  |    poll. 0..spr|
00007520  69 74 65 5f 66 6f 75 6e  64 0d 20 3a 4b 20 20 20  |ite_found. :K   |
00007530  20 20 20 20 20 62 6c 20  20 20 20 20 20 73 65 74  |     bl      set|
00007540  5f 6f 70 74 69 6f 6e 73  5f 76 61 72 69 61 62 6c  |_options_variabl|
00007550  65 20 20 20 20 3b 20 74  68 65 6e 20 73 65 74 20  |e    ; then set |
00007560  74 68 65 20 6f 70 74 69  6f 6e 73 20 76 61 72 69  |the options vari|
00007570  61 62 6c 65 0d 20 44 24  20 20 20 20 20 20 20 20  |able. D$        |
00007580  62 6c 20 20 20 20 20 20  72 65 64 69 73 70 6c 61  |bl      redispla|
00007590  79 5f 73 70 72 69 74 65  0d 20 4e 21 20 20 20 20  |y_sprite. N!    |
000075a0  20 20 20 20 62 20 20 20  20 20 20 20 73 65 65 5f  |    b       see_|
000075b0  69 66 5f 72 65 6f 70 65  6e 0d 20 58 14 2e 66 6f  |if_reopen. X..fo|
000075c0  72 6d 61 74 5f 73 65 6c  65 63 74 65 64 0d 20 62  |rmat_selected. b|
000075d0  4a 20 20 20 20 20 20 20  20 6c 64 72 20 20 20 20  |J        ldr    |
000075e0  20 72 30 2c 5b 72 31 2c  23 34 5d 20 20 20 20 20  | r0,[r1,#4]     |
000075f0  20 20 20 20 20 20 20 20  20 3b 20 72 30 20 3d 20  |         ; r0 = |
00007600  73 65 63 6f 6e 64 20 64  65 70 74 68 20 6d 65 6e  |second depth men|
00007610  75 20 65 6e 74 72 79 0d  20 6c 47 20 20 20 20 20  |u entry. lG     |
00007620  20 20 20 63 6d 70 20 20  20 20 20 72 30 2c 23 30  |   cmp     r0,#0|
00007630  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00007640  20 20 20 3b 20 73 65 65  20 69 66 20 65 6e 74 72  |   ; see if entr|
00007650  79 20 77 61 73 20 73 65  6c 65 63 74 65 64 0d 20  |y was selected. |
00007660  76 3c 20 20 20 20 20 20  20 20 62 6c 74 20 20 20  |v<        blt   |
00007670  20 20 73 65 65 5f 69 66  5f 72 65 6f 70 65 6e 20  |  see_if_reopen |
00007680  20 20 20 20 20 20 20 20  20 20 3b 20 77 61 73 6e  |          ; wasn|
00007690  27 74 20 73 6f 20 73 6b  69 70 0d 20 80 44 20 20  |'t so skip. .D  |
000076a0  20 20 20 20 20 20 73 74  72 62 20 20 20 20 72 30  |      strb    r0|
000076b0  2c 5b 72 31 32 2c 23 74  69 6d 65 5f 66 6f 72 6d  |,[r12,#time_form|
000076c0  61 74 5d 20 20 20 3b 20  73 74 6f 72 65 20 6e 65  |at]   ; store ne|
000076d0  77 20 63 6c 6f 63 6b 20  66 6f 72 6d 61 74 0d 20  |w clock format. |
000076e0  8a 4b 20 20 20 20 20 20  20 20 62 6c 20 20 20 20  |.K        bl    |
000076f0  20 20 73 65 74 5f 6f 70  74 69 6f 6e 73 5f 76 61  |  set_options_va|
00007700  72 69 61 62 6c 65 20 20  20 20 3b 20 74 68 65 6e  |riable    ; then|
00007710  20 73 65 74 20 74 68 65  20 6f 70 74 69 6f 6e 73  | set the options|
00007720  20 76 61 72 69 61 62 6c  65 0d 20 94 4a 20 20 20  | variable. .J   |
00007730  20 20 20 20 20 62 6c 20  20 20 20 20 20 75 70 64  |     bl      upd|
00007740  61 74 65 5f 74 69 6d 65  20 20 20 20 20 20 20 20  |ate_time        |
00007750  20 20 20 20 20 3b 20 61  6e 64 20 66 69 6e 61 6c  |     ; and final|
00007760  6c 79 20 75 70 64 61 74  65 20 74 68 65 20 63 6c  |ly update the cl|
00007770  6f 63 6b 0d 20 9e 12 2e  73 65 65 5f 69 66 5f 72  |ock. ...see_if_r|
00007780  65 6f 70 65 6e 0d 20 a8  26 20 20 20 20 20 20 20  |eopen. .&       |
00007790  20 61 64 64 20 20 20 20  20 72 31 2c 72 31 32 2c  | add     r1,r12,|
000077a0  23 77 6f 72 6b 5f 73 70  61 63 65 0d 20 b2 2a 20  |#work_space. .* |
000077b0  20 20 20 20 20 20 20 73  77 69 20 20 20 20 20 22  |       swi     "|
000077c0  58 57 69 6d 70 5f 47 65  74 50 6f 69 6e 74 65 72  |XWimp_GetPointer|
000077d0  49 6e 66 6f 22 0d 20 bc  1f 20 20 20 20 20 20 20  |Info". ..       |
000077e0  20 62 76 73 20 20 20 20  20 66 61 74 61 6c 5f 65  | bvs     fatal_e|
000077f0  72 72 6f 72 0d 20 c6 3e  20 20 20 20 20 20 20 20  |rror. .>        |
00007800  6c 64 72 20 20 20 20 20  72 30 2c 5b 72 31 2c 23  |ldr     r0,[r1,#|
00007810  38 5d 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |8]              |
00007820  3b 20 67 65 74 20 62 75  74 74 6f 6e 20 73 74 61  |; get button sta|
00007830  74 65 0d 20 d0 47 20 20  20 20 20 20 20 20 74 73  |te. .G        ts|
00007840  74 20 20 20 20 20 72 30  2c 23 31 20 20 20 20 20  |t     r0,#1     |
00007850  20 20 20 20 20 20 20 20  20 20 20 20 20 20 3b 20  |              ; |
00007860  73 65 65 20 69 66 20 61  64 6a 75 73 74 20 77 61  |see if adjust wa|
00007870  73 20 63 6c 69 63 6b 65  64 0d 20 da 39 20 20 20  |s clicked. .9   |
00007880  20 20 20 20 20 62 65 71  20 20 20 20 20 70 6f 6c  |     beq     pol|
00007890  6c 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |l               |
000078a0  20 20 20 20 20 3b 20 70  6f 6c 6c 20 69 66 20 6e  |     ; poll if n|
000078b0  6f 74 0d 20 e4 39 20 20  20 20 20 20 20 20 62 20  |ot. .9        b |
000078c0  20 20 20 20 20 20 6f 70  65 6e 5f 69 63 6f 6e 62  |      open_iconb|
000078d0  61 72 5f 6d 65 6e 75 20  20 20 20 20 20 20 3b 20  |ar_menu       ; |
000078e0  72 65 6f 70 65 6e 20 6d  65 6e 75 0d 20 ee 04 0d  |reopen menu. ...|
000078f0  20 f8 53 3b 20 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  | .S; -----------|
00007900  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00007940  2d 2d 0d 21 02 31 3b 20  74 68 65 20 6e 69 63 65  |--.!.1; the nice|
00007950  20 77 69 6d 70 20 6d 61  6e 61 67 65 72 20 68 61  | wimp manager ha|
00007960  73 20 73 65 6e 74 20 75  73 20 61 20 6d 65 73 73  |s sent us a mess|
00007970  61 67 65 0d 21 0c 04 0d  21 16 0c 2e 6d 65 73 73  |age.!...!...mess|
00007980  61 67 65 0d 21 20 41 20  20 20 20 20 20 20 20 6c  |age.! A        l|
00007990  64 72 20 20 20 20 20 72  30 2c 5b 72 31 2c 23 31  |dr     r0,[r1,#1|
000079a0  36 5d 20 20 20 20 20 20  20 20 20 20 20 20 20 3b  |6]             ;|
000079b0  20 72 30 20 3d 20 6d 65  73 73 61 67 65 20 61 63  | r0 = message ac|
000079c0  74 69 6f 6e 0d 21 2a 41  20 20 20 20 20 20 20 20  |tion.!*A        |
000079d0  74 65 71 20 20 20 20 20  72 30 2c 23 30 20 20 20  |teq     r0,#0   |
000079e0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000079f0  3b 20 73 65 65 20 69 66  20 71 75 69 74 20 6d 65  |; see if quit me|
00007a00  73 73 61 67 65 0d 21 34  39 20 20 20 20 20 20 20  |ssage.!49       |
00007a10  20 62 6e 65 20 20 20 20  20 70 6f 6c 6c 20 20 20  | bne     poll   |
00007a20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00007a30  20 3b 20 69 66 20 6e 6f  74 20 70 6f 6c 6c 0d 21  | ; if not poll.!|
00007a40  3e 04 0d 21 48 53 3b 20  2d 2d 2d 2d 2d 2d 2d 2d  |>..!HS; --------|
00007a50  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00007a90  2d 2d 2d 2d 2d 0d 21 52  18 3b 20 63 6c 6f 73 65  |-----.!R.; close|
00007aa0  64 6f 77 6e 20 61 6e 64  20 65 78 69 74 0d 21 5c  |down and exit.!\|
00007ab0  04 0d 21 66 17 2e 63 6c  6f 73 65 64 6f 77 6e 5f  |..!f..closedown_|
00007ac0  61 6e 64 5f 65 78 69 74  0d 21 70 1d 20 20 20 20  |and_exit.!p.    |
00007ad0  20 20 20 20 62 6c 20 20  20 20 20 20 63 6c 6f 73  |    bl      clos|
00007ae0  65 64 6f 77 6e 0d 21 7a  1d 20 20 20 20 20 20 20  |edown.!z.       |
00007af0  20 73 77 69 20 20 20 20  20 22 4f 53 5f 45 78 69  | swi     "OS_Exi|
00007b00  74 22 0d 21 84 04 0d 21  8e 53 3b 20 2d 2d 2d 2d  |t".!...!.S; ----|
00007b10  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00007b50  2d 2d 2d 2d 2d 2d 2d 2d  2d 0d 21 98 4d 3b 20 65  |---------.!.M; e|
00007b60  69 74 68 65 72 20 77 65  20 63 6f 75 6c 64 20 6e  |ither we could n|
00007b70  6f 74 20 73 74 61 72 74  20 75 70 2c 20 74 68 65  |ot start up, the|
00007b80  20 75 73 65 72 20 77 61  6e 74 73 20 75 73 20 74  | user wants us t|
00007b90  6f 20 63 6c 6f 73 65 64  6f 77 6e 20 6f 72 20 77  |o closedown or w|
00007ba0  65 20 68 61 76 65 0d 21  a2 24 3b 20 68 61 64 20  |e have.!.$; had |
00007bb0  61 20 6d 6f 64 75 6c 65  20 66 69 6e 61 6c 69 73  |a module finalis|
00007bc0  61 74 69 6f 6e 20 63 61  6c 6c 0d 21 ac 04 0d 21  |ation call.!...!|
00007bd0  b6 0e 2e 63 6c 6f 73 65  64 6f 77 6e 0d 21 c0 1a  |...closedown.!..|
00007be0  20 20 20 20 20 20 20 20  6d 6f 76 20 20 20 20 20  |        mov     |
00007bf0  72 36 2c 72 31 34 0d 21  ca 29 20 20 20 20 20 20  |r6,r14.!.)      |
00007c00  20 20 6c 64 72 20 20 20  20 20 72 30 2c 5b 72 31  |  ldr     r0,[r1|
00007c10  32 2c 23 74 61 73 6b 5f  68 61 6e 64 6c 65 5d 0d  |2,#task_handle].|
00007c20  21 d4 47 20 20 20 20 20  20 20 20 63 6d 70 20 20  |!.G        cmp  |
00007c30  20 20 20 72 30 2c 23 30  20 20 20 20 20 20 20 20  |   r0,#0        |
00007c40  20 20 20 20 20 20 20 20  20 20 20 3b 20 61 72 65  |           ; are|
00007c50  20 77 65 20 72 75 6e 6e  69 6e 67 20 61 73 20 61  | we running as a|
00007c60  20 74 61 73 6b 3f 0d 21  de 1b 20 20 20 20 20 20  | task?.!..      |
00007c70  20 20 6c 64 72 67 74 20  20 20 72 31 2c 74 61 73  |  ldrgt   r1,tas|
00007c80  6b 0d 21 e8 3e 20 20 20  20 20 20 20 20 73 77 69  |k.!.>        swi|
00007c90  67 74 20 20 20 22 58 57  69 6d 70 5f 43 6c 6f 73  |gt   "XWimp_Clos|
00007ca0  65 44 6f 77 6e 22 20 20  20 20 20 20 20 3b 20 63  |eDown"       ; c|
00007cb0  6c 6f 73 65 20 64 6f 77  6e 20 69 66 20 73 6f 0d  |lose down if so.|
00007cc0  21 f2 1a 20 20 20 20 20  20 20 20 6d 6f 76 20 20  |!..        mov  |
00007cd0  20 20 20 72 32 2c 72 31  32 0d 21 fc 41 20 20 20  |   r2,r12.!.A   |
00007ce0  20 20 20 20 20 6c 64 72  20 20 20 20 20 72 31 32  |     ldr     r12|
00007cf0  2c 5b 72 31 32 2c 23 77  6f 72 64 5d 20 20 20 20  |,[r12,#word]    |
00007d00  20 20 20 20 20 3b 20 72  31 32 20 2d 3e 20 70 72  |     ; r12 -> pr|
00007d10  69 76 61 74 65 20 77 6f  72 64 0d 22 06 19 20 20  |ivate word."..  |
00007d20  20 20 20 20 20 20 6d 6f  76 20 20 20 20 20 72 30  |      mov     r0|
00007d30  2c 23 30 0d 22 10 3f 20  20 20 20 20 20 20 20 73  |,#0.".?        s|
00007d40  74 72 20 20 20 20 20 72  30 2c 5b 72 31 32 5d 20  |tr     r0,[r12] |
00007d50  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 3b  |               ;|
00007d60  20 7a 65 72 6f 20 70 72  69 76 61 74 65 20 77 6f  | zero private wo|
00007d70  72 64 0d 22 1a 19 20 20  20 20 20 20 20 20 6d 6f  |rd."..        mo|
00007d80  76 20 20 20 20 20 72 30  2c 23 37 0d 22 24 3f 20  |v     r0,#7."$? |
00007d90  20 20 20 20 20 20 20 73  77 69 20 20 20 20 20 22  |       swi     "|
00007da0  58 4f 53 5f 4d 6f 64 75  6c 65 22 20 20 20 20 20  |XOS_Module"     |
00007db0  20 20 20 20 20 20 20 3b  20 72 65 6c 65 61 73 65  |       ; release|
00007dc0  20 77 6f 72 6b 73 70 61  63 65 0d 22 2e 19 20 20  | workspace."..  |
00007dd0  20 20 20 20 20 20 6d 6f  76 20 20 20 20 20 70 63  |      mov     pc|
00007de0  2c 72 36 0d 22 38 04 0d  22 42 53 3b 20 2d 2d 2d  |,r6."8.."BS; ---|
00007df0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00007e30  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 0d 22 4c 18 3b 20  |----------."L.; |
00007e40  72 65 61 64 20 74 68 65  20 72 65 61 6c 20 74 69  |read the real ti|
00007e50  6d 65 0d 22 56 04 0d 22  60 0e 2e 72 65 61 64 5f  |me."V.."`..read_|
00007e60  74 69 6d 65 0d 22 6a 26  20 20 20 20 20 20 20 20  |time."j&        |
00007e70  61 64 64 20 20 20 20 20  72 31 2c 72 31 32 2c 23  |add     r1,r12,#|
00007e80  74 69 6d 65 5f 62 6c 6f  63 6b 0d 22 74 4d 20 20  |time_block."tM  |
00007e90  20 20 20 20 20 20 6d 6f  76 20 20 20 20 20 72 30  |      mov     r0|
00007ea0  2c 23 33 20 20 20 20 20  20 20 20 20 20 20 20 20  |,#3             |
00007eb0  20 20 20 20 20 20 3b 20  72 65 61 64 20 72 65 61  |      ; read rea|
00007ec0  6c 2d 74 69 6d 65 20 69  6e 20 35 20 62 79 74 65  |l-time in 5 byte|
00007ed0  20 66 6f 72 6d 61 74 0d  22 7e 1b 20 20 20 20 20  | format."~.     |
00007ee0  20 20 20 73 74 72 62 20  20 20 20 72 30 2c 5b 72  |   strb    r0,[r|
00007ef0  31 5d 0d 22 88 4d 20 20  20 20 20 20 20 20 6d 6f  |1].".M        mo|
00007f00  76 20 20 20 20 20 72 30  2c 23 31 34 20 20 20 20  |v     r0,#14    |
00007f10  20 20 20 20 20 20 20 20  20 20 20 20 20 20 3b 20  |              ; |
00007f20  72 65 61 64 20 72 65 61  6c 2d 74 69 6d 65 20 69  |read real-time i|
00007f30  6e 20 35 20 62 79 74 65  20 66 6f 72 6d 61 74 0d  |n 5 byte format.|
00007f40  22 92 1e 20 20 20 20 20  20 20 20 73 77 69 20 20  |"..        swi  |
00007f50  20 20 20 22 58 4f 53 5f  57 6f 72 64 22 0d 22 9c  |   "XOS_Word".".|
00007f60  1f 20 20 20 20 20 20 20  20 62 76 73 20 20 20 20  |.        bvs    |
00007f70  20 66 61 74 61 6c 5f 65  72 72 6f 72 0d 22 a6 3e  | fatal_error.".>|
00007f80  20 20 20 20 20 20 20 20  6d 6f 76 20 20 20 20 20  |        mov     |
00007f90  72 30 2c 72 31 20 20 20  20 20 20 20 20 20 20 20  |r0,r1           |
00007fa0  20 20 20 20 20 20 20 20  3b 20 72 30 20 2d 3e 20  |        ; r0 -> |
00007fb0  74 69 6d 65 20 62 6c 6f  63 6b 0d 22 b0 29 20 20  |time block.".)  |
00007fc0  20 20 20 20 20 20 61 64  64 20 20 20 20 20 72 31  |      add     r1|
00007fd0  2c 72 31 32 2c 23 72 6d  61 5f 69 63 6f 6e 5f 74  |,r12,#rma_icon_t|
00007fe0  65 78 74 0d 22 ba 3c 20  20 20 20 20 20 20 20 6d  |ext.".<        m|
00007ff0  6f 76 20 20 20 20 20 72  32 2c 23 36 20 20 20 20  |ov     r2,#6    |
00008000  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 3b  |               ;|
00008010  20 73 69 7a 65 20 6f 66  20 62 75 66 66 65 72 0d  | size of buffer.|
00008020  22 c4 29 20 20 20 20 20  20 20 20 6c 64 72 62 20  |".)        ldrb |
00008030  20 20 20 72 33 2c 5b 72  31 32 2c 23 74 69 6d 65  |   r3,[r12,#time|
00008040  5f 66 6f 72 6d 61 74 5d  0d 22 ce 51 20 20 20 20  |_format].".Q    |
00008050  20 20 20 20 74 65 71 20  20 20 20 20 72 33 2c 23  |    teq     r3,#|
00008060  30 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |0               |
00008070  20 20 20 20 3b 20 73 65  65 20 77 68 69 63 68 20  |    ; see which |
00008080  63 6c 6f 63 6b 20 66 6f  72 6d 61 74 20 77 65 20  |clock format we |
00008090  61 72 65 20 75 73 69 6e  67 0d 22 d8 25 20 20 20  |are using.".%   |
000080a0  20 20 20 20 20 61 64 72  65 71 20 20 20 72 33 2c  |     adreq   r3,|
000080b0  74 69 6d 65 5f 66 6f 72  6d 61 74 5f 31 32 0d 22  |time_format_12."|
000080c0  e2 25 20 20 20 20 20 20  20 20 61 64 72 6e 65 20  |.%        adrne |
000080d0  20 20 72 33 2c 74 69 6d  65 5f 66 6f 72 6d 61 74  |  r3,time_format|
000080e0  5f 32 34 0d 22 ec 2c 20  20 20 20 20 20 20 20 73  |_24.".,        s|
000080f0  77 69 20 20 20 20 20 22  58 4f 53 5f 43 6f 6e 76  |wi     "XOS_Conv|
00008100  65 72 74 44 61 74 65 41  6e 64 54 69 6d 65 22 0d  |ertDateAndTime".|
00008110  22 f6 1f 20 20 20 20 20  20 20 20 62 76 73 20 20  |"..        bvs  |
00008120  20 20 20 66 61 74 61 6c  5f 65 72 72 6f 72 0d 23  |   fatal_error.#|
00008130  00 1a 20 20 20 20 20 20  20 20 6d 6f 76 20 20 20  |..        mov   |
00008140  20 20 70 63 2c 72 31 34  0d 23 0a 04 0d 23 14 13  |  pc,r14.#...#..|
00008150  2e 74 69 6d 65 5f 66 6f  72 6d 61 74 5f 31 32 0d  |.time_format_12.|
00008160  23 1e 20 20 20 20 20 20  20 20 20 65 71 75 73 20  |#.         equs |
00008170  20 20 20 22 25 31 32 3a  25 4d 49 22 2b bd 30 0d  |   "%12:%MI"+.0.|
00008180  23 28 13 2e 74 69 6d 65  5f 66 6f 72 6d 61 74 5f  |#(..time_format_|
00008190  32 34 0d 23 32 20 20 20  20 20 20 20 20 20 65 71  |24.#2         eq|
000081a0  75 73 20 20 20 20 22 25  32 34 3a 25 4d 49 22 2b  |us    "%24:%MI"+|
000081b0  bd 30 0d 23 3c 3c 3c 67  6e 0d 23 46 04 0d 23 50  |.0.#<<<gn.#F..#P|
000081c0  53 3b 20 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |S; -------------|
000081d0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00008210  0d 23 5a 40 3b 20 72 65  70 6f 72 74 20 61 20 66  |.#Z@; report a f|
00008220  61 74 61 6c 20 65 72 72  6f 72 20 75 73 69 6e 67  |atal error using|
00008230  20 57 69 6d 70 5f 52 65  70 6f 72 74 45 72 72 6f  | Wimp_ReportErro|
00008240  72 20 74 68 65 6e 20 63  6c 6f 73 65 64 6f 77 6e  |r then closedown|
00008250  0d 23 64 0b 3b 20 65 6e  74 72 79 0d 23 6e 1d 3b  |.#d.; entry.#n.;|
00008260  20 20 20 20 20 20 20 72  30 20 2d 3e 20 65 72 72  |       r0 -> err|
00008270  6f 72 20 62 6c 6f 63 6b  0d 23 78 0a 3b 20 65 78  |or block.#x.; ex|
00008280  69 74 0d 23 82 13 3b 20  20 20 20 20 20 20 64 6f  |it.#..;       do|
00008290  65 73 6e 27 74 0d 23 8c  04 0d 23 96 10 2e 66 61  |esn't.#...#...fa|
000082a0  74 61 6c 5f 65 72 72 6f  72 0d 23 a0 26 20 20 20  |tal_error.#.&   |
000082b0  20 20 20 20 20 61 64 64  20 20 20 20 20 72 31 2c  |     add     r1,|
000082c0  72 31 32 2c 23 70 6f 6c  6c 5f 73 70 61 63 65 0d  |r12,#poll_space.|
000082d0  23 aa 1e 20 20 20 20 20  20 20 20 6c 64 72 20 20  |#..        ldr  |
000082e0  20 20 20 72 32 2c 5b 72  30 5d 2c 23 34 0d 23 b4  |   r2,[r0],#4.#.|
000082f0  1e 20 20 20 20 20 20 20  20 73 74 72 20 20 20 20  |.        str    |
00008300  20 72 32 2c 5b 72 31 5d  2c 23 34 0d 23 be 2a 20  | r2,[r1],#4.#.* |
00008310  20 20 20 20 20 20 20 61  64 72 20 20 20 20 20 72  |       adr     r|
00008320  32 2c 66 61 74 61 6c 5f  65 72 72 6f 72 5f 6d 65  |2,fatal_error_me|
00008330  73 73 61 67 65 0d 23 c8  16 2e 66 61 74 61 6c 5f  |ssage.#...fatal_|
00008340  65 72 72 6f 72 5f 6c 6f  6f 70 31 0d 23 d2 1e 20  |error_loop1.#.. |
00008350  20 20 20 20 20 20 20 6c  64 72 62 20 20 20 20 72  |       ldrb    r|
00008360  33 2c 5b 72 32 5d 2c 23  31 0d 23 dc 19 20 20 20  |3,[r2],#1.#..   |
00008370  20 20 20 20 20 74 65 71  20 20 20 20 20 72 33 2c  |     teq     r3,|
00008380  23 30 0d 23 e6 1e 20 20  20 20 20 20 20 20 73 74  |#0.#..        st|
00008390  72 6e 65 62 20 20 72 33  2c 5b 72 31 5d 2c 23 31  |rneb  r3,[r1],#1|
000083a0  0d 23 f0 25 20 20 20 20  20 20 20 20 62 6e 65 20  |.#.%        bne |
000083b0  20 20 20 20 66 61 74 61  6c 5f 65 72 72 6f 72 5f  |    fatal_error_|
000083c0  6c 6f 6f 70 31 0d 23 fa  16 2e 66 61 74 61 6c 5f  |loop1.#...fatal_|
000083d0  65 72 72 6f 72 5f 6c 6f  6f 70 32 0d 24 04 1e 20  |error_loop2.$.. |
000083e0  20 20 20 20 20 20 20 6c  64 72 62 20 20 20 20 72  |       ldrb    r|
000083f0  33 2c 5b 72 30 5d 2c 23  31 0d 24 0e 19 20 20 20  |3,[r0],#1.$..   |
00008400  20 20 20 20 20 74 65 71  20 20 20 20 20 72 33 2c  |     teq     r3,|
00008410  23 30 0d 24 18 1e 20 20  20 20 20 20 20 20 73 74  |#0.$..        st|
00008420  72 6e 65 62 20 20 72 33  2c 5b 72 31 5d 2c 23 31  |rneb  r3,[r1],#1|
00008430  0d 24 22 25 20 20 20 20  20 20 20 20 62 6e 65 20  |.$"%        bne |
00008440  20 20 20 20 66 61 74 61  6c 5f 65 72 72 6f 72 5f  |    fatal_error_|
00008450  6c 6f 6f 70 32 0d 24 2c  16 2e 66 61 74 61 6c 5f  |loop2.$,..fatal_|
00008460  65 72 72 6f 72 5f 6c 6f  6f 70 33 0d 24 36 1e 20  |error_loop3.$6. |
00008470  20 20 20 20 20 20 20 6c  64 72 62 20 20 20 20 72  |       ldrb    r|
00008480  33 2c 5b 72 32 5d 2c 23  31 0d 24 40 1e 20 20 20  |3,[r2],#1.$@.   |
00008490  20 20 20 20 20 73 74 72  62 20 20 20 20 72 33 2c  |     strb    r3,|
000084a0  5b 72 31 5d 2c 23 31 0d  24 4a 19 20 20 20 20 20  |[r1],#1.$J.     |
000084b0  20 20 20 74 65 71 20 20  20 20 20 72 33 2c 23 30  |   teq     r3,#0|
000084c0  0d 24 54 25 20 20 20 20  20 20 20 20 62 6e 65 20  |.$T%        bne |
000084d0  20 20 20 20 66 61 74 61  6c 5f 65 72 72 6f 72 5f  |    fatal_error_|
000084e0  6c 6f 6f 70 33 0d 24 5e  26 20 20 20 20 20 20 20  |loop3.$^&       |
000084f0  20 61 64 64 20 20 20 20  20 72 30 2c 72 31 32 2c  | add     r0,r12,|
00008500  23 70 6f 6c 6c 5f 73 70  61 63 65 0d 24 68 3d 20  |#poll_space.$h= |
00008510  20 20 20 20 20 20 20 6d  6f 76 20 20 20 20 20 72  |       mov     r|
00008520  31 2c 23 32 20 20 20 20  20 20 20 20 20 20 20 20  |1,#2            |
00008530  20 20 20 20 20 20 20 3b  20 63 61 6e 63 65 6c 20  |       ; cancel |
00008540  62 6f 78 20 6f 6e 6c 79  0d 24 72 20 20 20 20 20  |box only.$r     |
00008550  20 20 20 20 62 6c 20 20  20 20 20 20 72 65 70 6f  |    bl      repo|
00008560  72 74 5f 65 72 72 6f 72  0d 24 7c 26 20 20 20 20  |rt_error.$|&    |
00008570  20 20 20 20 62 20 20 20  20 20 20 20 63 6c 6f 73  |    b       clos|
00008580  65 64 6f 77 6e 5f 61 6e  64 5f 65 78 69 74 0d 24  |edown_and_exit.$|
00008590  86 18 2e 66 61 74 61 6c  5f 65 72 72 6f 72 5f 6d  |...fatal_error_m|
000085a0  65 73 73 61 67 65 0d 24  90 4c 20 20 20 20 20 20  |essage.$.L      |
000085b0  20 20 65 71 75 73 20 20  20 20 22 49 63 6f 6e 62  |  equs    "Iconb|
000085c0  61 72 20 43 6c 6f 63 6b  20 68 61 73 20 73 75 66  |ar Clock has suf|
000085d0  66 65 72 65 64 20 61 20  66 61 74 61 6c 20 69 6e  |fered a fatal in|
000085e0  74 65 72 6e 61 6c 20 65  72 72 6f 72 20 28 22 2b  |ternal error ("+|
000085f0  bd 30 0d 24 9a 34 20 20  20 20 20 20 20 20 65 71  |.0.$.4        eq|
00008600  75 73 20 20 20 20 22 29  20 61 6e 64 20 6d 75 73  |us    ") and mus|
00008610  74 20 65 78 69 74 20 69  6d 6d 65 64 69 61 74 65  |t exit immediate|
00008620  6c 79 22 2b bd 30 0d 24  a4 a4 a4 67 6e 0d 24 ae  |ly"+.0.$...gn.$.|
00008630  04 0d 24 b8 53 3b 20 2d  2d 2d 2d 2d 2d 2d 2d 2d  |..$.S; ---------|
00008640  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00008680  2d 2d 2d 2d 0d 24 c2 2c  3b 20 72 65 70 6f 72 74  |----.$.,; report|
00008690  20 61 6e 20 65 72 72 6f  72 20 75 73 69 6e 67 20  | an error using |
000086a0  57 69 6d 70 5f 52 65 70  6f 72 74 45 72 72 6f 72  |Wimp_ReportError|
000086b0  0d 24 cc 3d 3b 20 69 66  20 65 6e 74 65 72 20 61  |.$.=; if enter a|
000086c0  74 20 72 65 70 6f 72 74  5f 65 72 72 6f 72 5f 6f  |t report_error_o|
000086d0  6b 20 6f 6e 6c 79 20 61  6e 20 4f 4b 20 62 6f 78  |k only an OK box|
000086e0  20 69 73 20 64 69 73 70  6c 61 79 65 64 0d 24 d6  | is displayed.$.|
000086f0  0b 3b 20 65 6e 74 72 79  0d 24 e0 1d 3b 20 20 20  |.; entry.$..;   |
00008700  20 20 20 20 72 30 20 2d  3e 20 65 72 72 6f 72 20  |    r0 -> error |
00008710  62 6c 6f 63 6b 0d 24 ea  28 3b 20 20 20 20 20 20  |block.$.(;      |
00008720  20 72 31 20 3d 20 20 66  6c 61 67 73 20 66 6f 72  | r1 =  flags for|
00008730  20 65 72 72 6f 72 20 77  69 6e 64 6f 77 0d 24 f4  | error window.$.|
00008740  3d 3b 20 20 20 20 20 20  20 20 20 20 62 69 74 20  |=;          bit |
00008750  30 20 73 65 74 20 3d 3d  3e 20 70 72 6f 76 69 64  |0 set ==> provid|
00008760  65 20 27 4f 4b 27 20 62  6f 78 20 69 6e 20 65 72  |e 'OK' box in er|
00008770  72 6f 72 20 77 69 6e 64  6f 77 0d 24 fe 31 3b 20  |ror window.$.1; |
00008780  20 20 20 20 20 20 20 20  20 62 69 74 20 31 20 73  |         bit 1 s|
00008790  65 74 20 3d 3d 3e 20 70  72 6f 76 69 64 65 20 27  |et ==> provide '|
000087a0  43 61 6e 63 65 6c 27 20  62 6f 78 0d 25 08 4e 3b  |Cancel' box.%.N;|
000087b0  20 20 20 20 20 20 20 20  20 20 62 69 74 20 32 20  |          bit 2 |
000087c0  73 65 74 20 3d 3d 3e 20  68 69 67 68 6c 69 67 68  |set ==> highligh|
000087d0  74 20 27 43 61 6e 63 65  6c 27 20 62 6f 78 20 28  |t 'Cancel' box (|
000087e0  6f 74 68 65 72 77 69 73  65 20 68 69 67 68 6c 69  |otherwise highli|
000087f0  67 68 74 20 27 4f 4b 27  29 0d 25 12 52 3b 20 20  |ght 'OK').%.R;  |
00008800  20 20 20 20 20 20 20 20  62 69 74 20 33 20 73 65  |        bit 3 se|
00008810  74 20 3d 3d 3e 20 64 6f  6e 27 74 20 77 61 69 74  |t ==> don't wait|
00008820  20 66 6f 72 20 63 6f 6e  66 69 72 6d 61 74 69 6f  | for confirmatio|
00008830  6e 20 69 66 20 74 68 69  73 20 69 73 20 61 20 27  |n if this is a '|
00008840  74 65 78 74 27 20 65 72  72 6f 72 0d 25 1c 44 3b  |text' error.%.D;|
00008850  20 20 20 20 20 20 20 20  20 20 62 69 74 20 34 20  |          bit 4 |
00008860  73 65 74 20 3d 3d 3e 20  6f 6d 69 74 20 27 45 72  |set ==> omit 'Er|
00008870  72 6f 72 20 66 72 6f 6d  20 27 20 6d 65 73 73 61  |ror from ' messa|
00008880  67 65 20 69 6e 20 74 69  74 6c 65 20 62 61 72 0d  |ge in title bar.|
00008890  25 26 50 3b 20 20 20 20  20 20 20 20 20 20 62 69  |%&P;          bi|
000088a0  74 20 35 20 73 65 74 20  3d 3d 3e 20 72 65 74 75  |t 5 set ==> retu|
000088b0  72 6e 20 77 69 74 68 20  52 31 3d 30 20 69 6d 6d  |rn with R1=0 imm|
000088c0  65 64 69 61 74 65 6c 79  20 69 66 20 62 75 74 74  |ediately if butt|
000088d0  6f 6e 73 20 6e 6f 74 20  63 6c 69 63 6b 65 64 0d  |ons not clicked.|
000088e0  25 30 3f 3b 20 20 20 20  20 20 20 20 20 20 20 20  |%0?;            |
000088f0  20 20 20 20 20 20 20 20  20 20 20 20 74 68 65 20  |            the |
00008900  65 72 72 6f 72 20 77 69  6e 64 6f 77 20 69 73 20  |error window is |
00008910  61 6c 73 6f 20 6c 65 66  74 20 6f 70 65 6e 0d 25  |also left open.%|
00008920  3a 51 3b 20 20 20 20 20  20 20 20 20 20 62 69 74  |:Q;          bit|
00008930  20 36 20 73 65 74 20 3d  3d 3e 20 73 65 6c 65 63  | 6 set ==> selec|
00008940  74 20 4f 4b 2f 43 61 6e  63 65 6c 20 64 65 70 65  |t OK/Cancel depe|
00008950  6e 64 69 6e 67 20 6f 6e  20 52 31 2c 20 63 6c 6f  |nding on R1, clo|
00008960  73 65 20 65 72 72 6f 72  20 77 69 6e 64 6f 77 0d  |se error window.|
00008970  25 44 2e 3b 20 20 20 20  20 20 20 20 20 20 62 69  |%D.;          bi|
00008980  74 73 20 37 2e 2e 33 31  20 72 65 73 65 72 76 65  |ts 7..31 reserve|
00008990  64 20 28 6d 75 73 74 20  62 65 20 30 29 0d 25 4e  |d (must be 0).%N|
000089a0  0a 3b 20 65 78 69 74 0d  25 58 1e 3b 20 20 20 20  |.; exit.%X.;    |
000089b0  20 20 20 72 31 20 3d 20  72 65 74 75 72 6e 20 73  |   r1 = return s|
000089c0  74 61 74 75 73 0d 25 62  2b 3b 20 20 20 20 20 20  |tatus.%b+;      |
000089d0  20 20 20 20 20 20 20 20  20 31 20 3d 3d 3e 20 27  |         1 ==> '|
000089e0  4f 4b 27 20 77 61 73 20  73 65 6c 65 63 74 65 64  |OK' was selected|
000089f0  0d 25 6c 2f 3b 20 20 20  20 20 20 20 20 20 20 20  |.%l/;           |
00008a00  20 20 20 20 32 20 3d 3d  3e 20 27 43 61 6e 63 65  |    2 ==> 'Cance|
00008a10  6c 27 20 77 61 73 20 73  65 6c 65 63 74 65 64 0d  |l' was selected.|
00008a20  25 76 1b 3b 20 20 20 20  20 20 20 66 6c 61 67 73  |%v.;       flags|
00008a30  20 70 72 65 73 65 72 76  65 64 0d 25 80 04 0d 25  | preserved.%...%|
00008a40  8a 14 2e 72 65 70 6f 72  74 5f 65 72 72 6f 72 5f  |...report_error_|
00008a50  6f 6b 0d 25 94 39 20 20  20 20 20 20 20 20 6d 6f  |ok.%.9        mo|
00008a60  76 20 20 20 20 20 72 31  2c 23 31 20 20 20 20 20  |v     r1,#1     |
00008a70  20 20 20 20 20 20 20 20  20 20 20 20 20 20 3b 20  |              ; |
00008a80  4f 4b 20 62 6f 78 20 6f  6e 6c 79 0d 25 9e 11 2e  |OK box only.%...|
00008a90  72 65 70 6f 72 74 5f 65  72 72 6f 72 0d 25 a8 21  |report_error.%.!|
00008aa0  20 20 20 20 20 20 20 20  73 74 6d 66 64 20 20 20  |        stmfd   |
00008ab0  72 31 33 21 2c 7b 72 32  2c 72 31 34 7d 0d 25 b2  |r13!,{r2,r14}.%.|
00008ac0  29 20 20 20 20 20 20 20  20 61 64 72 20 20 20 20  |)        adr    |
00008ad0  20 72 32 2c 73 77 69 74  63 68 65 72 5f 6e 61 6d  | r2,switcher_nam|
00008ae0  65 2b 26 34 30 30 0d 25  bc 40 20 20 20 20 20 20  |e+&400.%.@      |
00008af0  20 20 73 75 62 20 20 20  20 20 72 32 2c 72 32 2c  |  sub     r2,r2,|
00008b00  23 26 34 30 30 20 20 20  20 20 20 20 20 20 20 20  |#&400           |
00008b10  20 20 3b 20 72 32 20 2d  3e 20 22 49 63 6f 6e 20  |  ; r2 -> "Icon |
00008b20  43 6c 6f 63 6b 22 0d 25  c6 3b 20 20 20 20 20 20  |Clock".%.;      |
00008b30  20 20 73 77 69 20 20 20  20 20 22 58 57 69 6d 70  |  swi     "XWimp|
00008b40  5f 52 65 70 6f 72 74 45  72 72 6f 72 22 20 20 20  |_ReportError"   |
00008b50  20 20 3b 20 69 67 6e 6f  72 65 20 65 72 72 6f 72  |  ; ignore error|
00008b60  73 0d 25 d0 3c 20 20 20  20 20 20 20 20 6c 64 6d  |s.%.<        ldm|
00008b70  66 64 20 20 20 72 31 33  21 2c 7b 72 32 2c 70 63  |fd   r13!,{r2,pc|
00008b80  7d 5e 20 20 20 20 20 20  20 20 20 20 20 3b 20 70  |}^           ; p|
00008b90  72 65 73 65 72 76 65 20  66 6c 61 67 73 0d 25 da  |reserve flags.%.|
00008ba0  04 0d 25 e4 53 3b 20 2d  2d 2d 2d 2d 2d 2d 2d 2d  |..%.S; ---------|
00008bb0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00008bf0  2d 2d 2d 2d 0d 25 ee 1c  3b 20 63 72 65 61 74 65  |----.%..; create|
00008c00  20 74 68 65 20 69 6e 66  6f 20 77 69 6e 64 6f 77  | the info window|
00008c10  0d 25 f8 04 0d 26 02 17  2e 63 72 65 61 74 65 5f  |.%...&...create_|
00008c20  69 6e 66 6f 5f 77 69 6e  64 6f 77 0d 26 0c 1e 20  |info_window.&.. |
00008c30  20 20 20 20 20 20 20 73  74 6d 66 64 20 20 20 72  |       stmfd   r|
00008c40  31 33 21 2c 7b 72 31 34  7d 0d 26 16 22 20 20 20  |13!,{r14}.&."   |
00008c50  20 20 20 20 20 61 64 72  20 20 20 20 20 72 30 2c  |     adr     r0,|
00008c60  69 6e 66 6f 5f 77 69 6e  64 6f 77 0d 26 20 26 20  |info_window.& & |
00008c70  20 20 20 20 20 20 20 61  64 72 20 20 20 20 20 72  |       adr     r|
00008c80  31 2c 65 6e 64 5f 69 6e  66 6f 5f 77 69 6e 64 6f  |1,end_info_windo|
00008c90  77 0d 26 2a 26 20 20 20  20 20 20 20 20 61 64 64  |w.&*&        add|
00008ca0  20 20 20 20 20 72 32 2c  72 31 32 2c 23 70 6f 6c  |     r2,r12,#pol|
00008cb0  6c 5f 73 70 61 63 65 0d  26 34 18 20 20 20 20 20  |l_space.&4.     |
00008cc0  20 20 20 62 6c 20 20 20  20 20 20 63 6f 70 79 0d  |   bl      copy.|
00008cd0  26 3e 26 20 20 20 20 20  20 20 20 61 64 64 20 20  |&>&        add  |
00008ce0  20 20 20 72 31 2c 72 31  32 2c 23 70 6f 6c 6c 5f  |   r1,r12,#poll_|
00008cf0  73 70 61 63 65 0d 26 48  23 20 20 20 20 20 20 20  |space.&H#       |
00008d00  20 61 64 72 20 20 20 20  20 72 30 2c 77 69 6e 64  | adr     r0,wind|
00008d10  6f 77 5f 74 69 74 6c 65  0d 26 52 3b 20 20 20 20  |ow_title.&R;    |
00008d20  20 20 20 20 73 74 72 20  20 20 20 20 72 30 2c 5b  |    str     r0,[|
00008d30  72 31 2c 23 70 75 74 5f  77 69 6e 64 6f 77 5f 74  |r1,#put_window_t|
00008d40  69 74 6c 65 20 2d 20 69  6e 66 6f 5f 77 69 6e 64  |itle - info_wind|
00008d50  6f 77 5d 0d 26 5c 1b 20  20 20 20 20 20 20 20 61  |ow].&\.        a|
00008d60  64 72 20 20 20 20 20 72  30 2c 6e 61 6d 65 0d 26  |dr     r0,name.&|
00008d70  66 33 20 20 20 20 20 20  20 20 73 74 72 20 20 20  |f3        str   |
00008d80  20 20 72 30 2c 5b 72 31  2c 23 70 75 74 5f 6e 61  |  r0,[r1,#put_na|
00008d90  6d 65 20 2d 20 69 6e 66  6f 5f 77 69 6e 64 6f 77  |me - info_window|
00008da0  5d 0d 26 70 1e 20 20 20  20 20 20 20 20 61 64 72  |].&p.        adr|
00008db0  20 20 20 20 20 72 30 2c  70 75 72 70 6f 73 65 0d  |     r0,purpose.|
00008dc0  26 7a 36 20 20 20 20 20  20 20 20 73 74 72 20 20  |&z6        str  |
00008dd0  20 20 20 72 30 2c 5b 72  31 2c 23 70 75 74 5f 70  |   r0,[r1,#put_p|
00008de0  75 72 70 6f 73 65 20 2d  20 69 6e 66 6f 5f 77 69  |urpose - info_wi|
00008df0  6e 64 6f 77 5d 0d 26 84  1d 20 20 20 20 20 20 20  |ndow].&..       |
00008e00  20 61 64 72 20 20 20 20  20 72 30 2c 61 75 74 68  | adr     r0,auth|
00008e10  6f 72 0d 26 8e 35 20 20  20 20 20 20 20 20 73 74  |or.&.5        st|
00008e20  72 20 20 20 20 20 72 30  2c 5b 72 31 2c 23 70 75  |r     r0,[r1,#pu|
00008e30  74 5f 61 75 74 68 6f 72  20 2d 20 69 6e 66 6f 5f  |t_author - info_|
00008e40  77 69 6e 64 6f 77 5d 0d  26 98 1e 20 20 20 20 20  |window].&..     |
00008e50  20 20 20 61 64 72 20 20  20 20 20 72 30 2c 76 65  |   adr     r0,ve|
00008e60  72 73 69 6f 6e 0d 26 a2  36 20 20 20 20 20 20 20  |rsion.&.6       |
00008e70  20 73 74 72 20 20 20 20  20 72 30 2c 5b 72 31 2c  | str     r0,[r1,|
00008e80  23 70 75 74 5f 76 65 72  73 69 6f 6e 20 2d 20 69  |#put_version - i|
00008e90  6e 66 6f 5f 77 69 6e 64  6f 77 5d 0d 26 ac 28 20  |nfo_window].&.( |
00008ea0  20 20 20 20 20 20 20 73  77 69 20 20 20 20 20 22  |       swi     "|
00008eb0  58 57 69 6d 70 5f 43 72  65 61 74 65 57 69 6e 64  |XWimp_CreateWind|
00008ec0  6f 77 22 0d 26 b6 1f 20  20 20 20 20 20 20 20 62  |ow".&..        b|
00008ed0  76 73 20 20 20 20 20 66  61 74 61 6c 5f 65 72 72  |vs     fatal_err|
00008ee0  6f 72 0d 26 c0 30 20 20  20 20 20 20 20 20 73 74  |or.&.0        st|
00008ef0  72 20 20 20 20 20 72 30  2c 5b 72 31 32 2c 23 69  |r     r0,[r12,#i|
00008f00  6e 66 6f 5f 77 69 6e 64  6f 77 5f 68 61 6e 64 6c  |nfo_window_handl|
00008f10  65 5d 0d 26 ca 1d 20 20  20 20 20 20 20 20 6c 64  |e].&..        ld|
00008f20  6d 66 64 20 20 20 72 31  33 21 2c 7b 70 63 7d 0d  |mfd   r13!,{pc}.|
00008f30  26 d4 04 0d 26 de 53 3b  20 2d 2d 2d 2d 2d 2d 2d  |&...&.S; -------|
00008f40  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00008f80  2d 2d 2d 2d 2d 2d 0d 26  e8 23 3b 20 69 6e 66 6f  |------.&.#; info|
00008f90  72 6d 61 74 69 6f 6e 20  61 62 6f 75 74 20 69 6e  |rmation about in|
00008fa0  66 6f 20 77 69 6e 64 6f  77 0d 26 f2 04 0d 26 fc  |fo window.&...&.|
00008fb0  11 2e 77 69 6e 64 6f 77  5f 74 69 74 6c 65 0d 27  |..window_title.'|
00008fc0  06 2b 20 20 20 20 20 20  20 20 65 71 75 73 20 20  |.+        equs  |
00008fd0  20 20 22 41 62 6f 75 74  20 74 68 69 73 20 70 72  |  "About this pr|
00008fe0  6f 67 72 61 6d 22 2b bd  30 0d 27 10 15 2e 65 6e  |ogram"+.0.'...en|
00008ff0  64 5f 77 69 6e 64 6f 77  5f 74 69 74 6c 65 0d 27  |d_window_title.'|
00009000  1a 1a 1a 67 6e 0d 27 24  09 2e 6e 61 6d 65 0d 27  |...gn.'$..name.'|
00009010  2e 23 20 20 20 20 20 20  20 20 65 71 75 73 20 20  |.#        equs  |
00009020  20 20 22 49 63 6f 6e 20  43 6c 6f 63 6b 22 2b bd  |  "Icon Clock"+.|
00009030  30 0d 27 38 0d 2e 65 6e  64 5f 6e 61 6d 65 0d 27  |0.'8..end_name.'|
00009040  42 42 42 67 6e 0d 27 4c  0c 2e 70 75 72 70 6f 73  |BBBgn.'L..purpos|
00009050  65 0d 27 56 34 20 20 20  20 20 20 20 20 65 71 75  |e.'V4        equ|
00009060  73 20 20 20 20 22 44 69  73 70 6c 61 79 20 74 69  |s    "Display ti|
00009070  6d 65 20 6f 6e 20 74 68  65 20 69 63 6f 6e 62 61  |me on the iconba|
00009080  72 22 2b bd 30 0d 27 60  10 2e 65 6e 64 5f 70 75  |r"+.0.'`..end_pu|
00009090  72 70 6f 73 65 0d 27 6a  6a 6a 67 6e 0d 27 74 0b  |rpose.'jjjgn.'t.|
000090a0  2e 61 75 74 68 6f 72 0d  27 7e 2d 20 20 20 20 20  |.author.'~-     |
000090b0  20 20 20 65 71 75 73 20  20 20 20 22 70 6d 66 40  |   equs    "pmf@|
000090c0  75 6b 2e 61 63 2e 77 61  72 77 69 63 6b 2e 63 73  |uk.ac.warwick.cs|
000090d0  22 2b bd 30 0d 27 88 0f  2e 65 6e 64 5f 61 75 74  |"+.0.'...end_aut|
000090e0  68 6f 72 0d 27 92 92 92  67 6e 0d 27 9c 0c 2e 76  |hor.'...gn.'...v|
000090f0  65 72 73 69 6f 6e 0d 27  a6 1c 20 20 20 20 20 20  |ersion.'..      |
00009100  20 20 65 71 75 73 20 20  20 20 22 31 2e 30 30 20  |  equs    "1.00 |
00009110  28 22 0d 27 b0 1c 20 20  20 20 20 20 20 20 65 71  |(".'..        eq|
00009120  75 73 20 20 20 20 c1 91  24 2c 35 2c 32 29 0d 27  |us    ..$,5,2).'|
00009130  ba 17 20 20 20 20 20 20  20 20 65 71 75 73 20 20  |..        equs  |
00009140  20 20 22 2d 22 0d 27 c4  1c 20 20 20 20 20 20 20  |  "-".'..       |
00009150  20 65 71 75 73 20 20 20  20 c1 91 24 2c 38 2c 33  | equs    ..$,8,3|
00009160  29 0d 27 ce 17 20 20 20  20 20 20 20 20 65 71 75  |).'..        equ|
00009170  73 20 20 20 20 22 2d 22  0d 27 d8 1d 20 20 20 20  |s    "-".'..    |
00009180  20 20 20 20 65 71 75 73  20 20 20 20 c1 91 24 2c  |    equs    ..$,|
00009190  31 34 2c 32 29 0d 27 e2  1a 20 20 20 20 20 20 20  |14,2).'..       |
000091a0  20 65 71 75 73 20 20 20  20 22 29 22 2b bd 30 0d  | equs    ")"+.0.|
000091b0  27 ec 10 2e 65 6e 64 5f  76 65 72 73 69 6f 6e 0d  |'...end_version.|
000091c0  27 f6 f6 f6 67 6e 0d 28  00 04 0d 28 0a 10 2e 69  |'...gn.(...(...i|
000091d0  6e 66 6f 5f 77 69 6e 64  6f 77 0d 28 14 15 20 20  |nfo_window.(..  |
000091e0  20 20 20 20 20 20 65 71  75 64 20 20 20 20 30 0d  |      equd    0.|
000091f0  28 1e 15 20 20 20 20 20  20 20 20 65 71 75 64 20  |(..        equd |
00009200  20 20 20 30 0d 28 28 17  20 20 20 20 20 20 20 20  |   0.((.        |
00009210  65 71 75 64 20 20 20 20  36 33 36 0d 28 32 17 20  |equd    636.(2. |
00009220  20 20 20 20 20 20 20 65  71 75 64 20 20 20 20 32  |       equd    2|
00009230  31 36 0d 28 3c 15 20 20  20 20 20 20 20 20 65 71  |16.(<.        eq|
00009240  75 64 20 20 20 20 30 0d  28 46 15 20 20 20 20 20  |ud    0.(F.     |
00009250  20 20 20 65 71 75 64 20  20 20 20 30 0d 28 50 16  |   equd    0.(P.|
00009260  20 20 20 20 20 20 20 20  65 71 75 64 20 20 20 20  |        equd    |
00009270  2d 31 0d 28 5a 39 20 20  20 20 20 20 20 20 65 71  |-1.(Z9        eq|
00009280  75 64 20 20 20 20 28 31  20 3c 3c 20 33 31 29 2b  |ud    (1 << 31)+|
00009290  28 31 20 3c 3c 20 32 36  29 2b 28 31 20 3c 3c 20  |(1 << 26)+(1 << |
000092a0  34 29 2b 28 31 20 3c 3c  20 31 29 0d 28 64 15 20  |4)+(1 << 1).(d. |
000092b0  20 20 20 20 20 20 20 65  71 75 62 20 20 20 20 37  |       equb    7|
000092c0  0d 28 6e 15 20 20 20 20  20 20 20 20 65 71 75 62  |.(n.        equb|
000092d0  20 20 20 20 32 0d 28 78  15 20 20 20 20 20 20 20  |    2.(x.       |
000092e0  20 65 71 75 62 20 20 20  20 37 0d 28 82 15 20 20  | equb    7.(..  |
000092f0  20 20 20 20 20 20 65 71  75 62 20 20 20 20 31 0d  |      equb    1.|
00009300  28 8c 15 20 20 20 20 20  20 20 20 65 71 75 64 20  |(..        equd |
00009310  20 20 20 30 0d 28 96 15  20 20 20 20 20 20 20 20  |   0.(..        |
00009320  65 71 75 64 20 20 20 20  30 0d 28 a0 18 20 20 20  |equd    0.(..   |
00009330  20 20 20 20 20 65 71 75  64 20 20 20 20 2d 32 31  |     equd    -21|
00009340  36 0d 28 aa 17 20 20 20  20 20 20 20 20 65 71 75  |6.(..        equ|
00009350  64 20 20 20 20 36 33 36  0d 28 b4 15 20 20 20 20  |d    636.(..    |
00009360  20 20 20 20 65 71 75 64  20 20 20 20 30 0d 28 be  |    equd    0.(.|
00009370  30 20 20 20 20 20 20 20  20 65 71 75 64 20 20 20  |0        equd   |
00009380  20 28 31 20 3c 3c 20 38  29 2b 28 31 20 3c 3c 20  | (1 << 8)+(1 << |
00009390  34 29 2b 28 31 20 3c 3c  20 33 29 2b 31 0d 28 c8  |4)+(1 << 3)+1.(.|
000093a0  15 20 20 20 20 20 20 20  20 65 71 75 64 20 20 20  |.        equd   |
000093b0  20 30 0d 28 d2 15 20 20  20 20 20 20 20 20 65 71  | 0.(..        eq|
000093c0  75 64 20 20 20 20 30 0d  28 dc 15 20 20 20 20 20  |ud    0.(..     |
000093d0  20 20 20 65 71 75 64 20  20 20 20 30 0d 28 e6 15  |   equd    0.(..|
000093e0  2e 70 75 74 5f 77 69 6e  64 6f 77 5f 74 69 74 6c  |.put_window_titl|
000093f0  65 0d 28 f0 20 20 20 20  20 20 20 20 20 65 71 75  |e.(.         equ|
00009400  64 20 20 20 20 77 69 6e  64 6f 77 5f 74 69 74 6c  |d    window_titl|
00009410  65 0d 28 fa 16 20 20 20  20 20 20 20 20 65 71 75  |e.(..        equ|
00009420  64 20 20 20 20 2d 31 0d  29 04 31 20 20 20 20 20  |d    -1.).1     |
00009430  20 20 20 65 71 75 64 20  20 20 20 65 6e 64 5f 77  |   equd    end_w|
00009440  69 6e 64 6f 77 5f 74 69  74 6c 65 2d 77 69 6e 64  |indow_title-wind|
00009450  6f 77 5f 74 69 74 6c 65  0d 29 0e 15 20 20 20 20  |ow_title.)..    |
00009460  20 20 20 20 65 71 75 64  20 20 20 20 38 0d 29 18  |    equd    8.).|
00009470  16 20 20 20 20 20 20 20  20 65 71 75 64 20 20 20  |.        equd   |
00009480  20 35 38 0d 29 22 17 20  20 20 20 20 20 20 20 65  | 58.)".        e|
00009490  71 75 64 20 20 20 20 2d  34 38 0d 29 2c 17 20 20  |qud    -48.),.  |
000094a0  20 20 20 20 20 20 65 71  75 64 20 20 20 20 31 35  |      equd    15|
000094b0  34 0d 29 36 16 20 20 20  20 20 20 20 20 65 71 75  |4.)6.        equ|
000094c0  64 20 20 20 20 2d 38 0d  29 40 33 20 20 20 20 20  |d    -8.)@3     |
000094d0  20 20 20 65 71 75 64 20  20 20 20 28 26 31 37 20  |   equd    (&17 |
000094e0  3c 3c 20 32 34 29 2b 28  31 20 3c 3c 20 34 29 2b  |<< 24)+(1 << 4)+|
000094f0  28 31 20 3c 3c 20 33 29  2b 31 0d 29 4a 1b 20 20  |(1 << 3)+1.)J.  |
00009500  20 20 20 20 20 20 a4 73  74 72 69 6e 67 28 22 4e  |      .string("N|
00009510  61 6d 65 22 29 0d 29 54  16 20 20 20 20 20 20 20  |ame").)T.       |
00009520  20 65 71 75 64 20 20 20  20 31 34 0d 29 5e 18 20  | equd    14.)^. |
00009530  20 20 20 20 20 20 20 65  71 75 64 20 20 20 20 2d  |       equd    -|
00009540  31 30 30 0d 29 68 17 20  20 20 20 20 20 20 20 65  |100.)h.        e|
00009550  71 75 64 20 20 20 20 31  35 34 0d 29 72 17 20 20  |qud    154.)r.  |
00009560  20 20 20 20 20 20 65 71  75 64 20 20 20 20 2d 36  |      equd    -6|
00009570  30 0d 29 7c 33 20 20 20  20 20 20 20 20 65 71 75  |0.)|3        equ|
00009580  64 20 20 20 20 28 26 31  37 20 3c 3c 20 32 34 29  |d    (&17 << 24)|
00009590  2b 28 31 20 3c 3c 20 34  29 2b 28 31 20 3c 3c 20  |+(1 << 4)+(1 << |
000095a0  33 29 2b 31 0d 29 86 1e  20 20 20 20 20 20 20 20  |3)+1.)..        |
000095b0  a4 73 74 72 69 6e 67 28  22 50 75 72 70 6f 73 65  |.string("Purpose|
000095c0  22 29 0d 29 90 16 20 20  20 20 20 20 20 20 65 71  |").)..        eq|
000095d0  75 64 20 20 20 20 33 30  0d 29 9a 18 20 20 20 20  |ud    30.)..    |
000095e0  20 20 20 20 65 71 75 64  20 20 20 20 2d 31 35 32  |    equd    -152|
000095f0  0d 29 a4 17 20 20 20 20  20 20 20 20 65 71 75 64  |.)..        equd|
00009600  20 20 20 20 31 35 34 0d  29 ae 18 20 20 20 20 20  |    154.)..     |
00009610  20 20 20 65 71 75 64 20  20 20 20 2d 31 31 32 0d  |   equd    -112.|
00009620  29 b8 33 20 20 20 20 20  20 20 20 65 71 75 64 20  |).3        equd |
00009630  20 20 20 28 26 31 37 20  3c 3c 20 32 34 29 2b 28  |   (&17 << 24)+(|
00009640  31 20 3c 3c 20 34 29 2b  28 31 20 3c 3c 20 33 29  |1 << 4)+(1 << 3)|
00009650  2b 31 0d 29 c2 1d 20 20  20 20 20 20 20 20 a4 73  |+1.)..        .s|
00009660  74 72 69 6e 67 28 22 41  75 74 68 6f 72 22 29 0d  |tring("Author").|
00009670  29 cc 16 20 20 20 20 20  20 20 20 65 71 75 64 20  |)..        equd |
00009680  20 20 20 31 34 0d 29 d6  18 20 20 20 20 20 20 20  |   14.)..       |
00009690  20 65 71 75 64 20 20 20  20 2d 32 30 30 0d 29 e0  | equd    -200.).|
000096a0  17 20 20 20 20 20 20 20  20 65 71 75 64 20 20 20  |.        equd   |
000096b0  20 31 35 34 0d 29 ea 18  20 20 20 20 20 20 20 20  | 154.)..        |
000096c0  65 71 75 64 20 20 20 20  2d 31 36 30 0d 29 f4 33  |equd    -160.).3|
000096d0  20 20 20 20 20 20 20 20  65 71 75 64 20 20 20 20  |        equd    |
000096e0  28 26 31 37 20 3c 3c 20  32 34 29 2b 28 31 20 3c  |(&17 << 24)+(1 <|
000096f0  3c 20 34 29 2b 28 31 20  3c 3c 20 33 29 2b 31 0d  |< 4)+(1 << 3)+1.|
00009700  29 fe 1e 20 20 20 20 20  20 20 20 a4 73 74 72 69  |)..        .stri|
00009710  6e 67 28 22 56 65 72 73  69 6f 6e 22 29 0d 2a 08  |ng("Version").*.|
00009720  17 20 20 20 20 20 20 20  20 65 71 75 64 20 20 20  |.        equd   |
00009730  20 31 35 34 0d 2a 12 17  20 20 20 20 20 20 20 20  | 154.*..        |
00009740  65 71 75 64 20 20 20 20  2d 35 32 0d 2a 1c 17 20  |equd    -52.*.. |
00009750  20 20 20 20 20 20 20 65  71 75 64 20 20 20 20 36  |       equd    6|
00009760  33 30 0d 2a 26 16 20 20  20 20 20 20 20 20 65 71  |30.*&.        eq|
00009770  75 64 20 20 20 20 2d 34  0d 2a 30 4c 20 20 20 20  |ud    -4.*0L    |
00009780  20 20 20 20 65 71 75 64  20 20 20 20 28 37 20 3c  |    equd    (7 <|
00009790  3c 20 32 34 29 2b 28 31  20 3c 3c 20 38 29 2b 28  |< 24)+(1 << 8)+(|
000097a0  31 20 3c 3c 20 35 29 2b  28 31 20 3c 3c 20 34 29  |1 << 5)+(1 << 4)|
000097b0  2b 28 31 20 3c 3c 20 33  29 2b 28 31 20 3c 3c 20  |+(1 << 3)+(1 << |
000097c0  32 29 2b 31 0d 2a 3a 0d  2e 70 75 74 5f 6e 61 6d  |2)+1.*:..put_nam|
000097d0  65 0d 2a 44 18 20 20 20  20 20 20 20 20 65 71 75  |e.*D.        equ|
000097e0  64 20 20 20 20 6e 61 6d  65 0d 2a 4e 16 20 20 20  |d    name.*N.   |
000097f0  20 20 20 20 20 65 71 75  64 20 20 20 20 2d 31 0d  |     equd    -1.|
00009800  2a 58 21 20 20 20 20 20  20 20 20 65 71 75 64 20  |*X!        equd |
00009810  20 20 20 65 6e 64 5f 6e  61 6d 65 2d 6e 61 6d 65  |   end_name-name|
00009820  0d 2a 62 17 20 20 20 20  20 20 20 20 65 71 75 64  |.*b.        equd|
00009830  20 20 20 20 31 35 34 0d  2a 6c 18 20 20 20 20 20  |    154.*l.     |
00009840  20 20 20 65 71 75 64 20  20 20 20 2d 31 30 34 0d  |   equd    -104.|
00009850  2a 76 17 20 20 20 20 20  20 20 20 65 71 75 64 20  |*v.        equd |
00009860  20 20 20 36 33 30 0d 2a  80 17 20 20 20 20 20 20  |   630.*..      |
00009870  20 20 65 71 75 64 20 20  20 20 2d 35 36 0d 2a 8a  |  equd    -56.*.|
00009880  4c 20 20 20 20 20 20 20  20 65 71 75 64 20 20 20  |L        equd   |
00009890  20 28 37 20 3c 3c 20 32  34 29 2b 28 31 20 3c 3c  | (7 << 24)+(1 <<|
000098a0  20 38 29 2b 28 31 20 3c  3c 20 35 29 2b 28 31 20  | 8)+(1 << 5)+(1 |
000098b0  3c 3c 20 34 29 2b 28 31  20 3c 3c 20 33 29 2b 28  |<< 4)+(1 << 3)+(|
000098c0  31 20 3c 3c 20 32 29 2b  31 0d 2a 94 10 2e 70 75  |1 << 2)+1.*...pu|
000098d0  74 5f 70 75 72 70 6f 73  65 0d 2a 9e 1b 20 20 20  |t_purpose.*..   |
000098e0  20 20 20 20 20 65 71 75  64 20 20 20 20 70 75 72  |     equd    pur|
000098f0  70 6f 73 65 0d 2a a8 16  20 20 20 20 20 20 20 20  |pose.*..        |
00009900  65 71 75 64 20 20 20 20  2d 31 0d 2a b2 27 20 20  |equd    -1.*.'  |
00009910  20 20 20 20 20 20 65 71  75 64 20 20 20 20 65 6e  |      equd    en|
00009920  64 5f 70 75 72 70 6f 73  65 2d 70 75 72 70 6f 73  |d_purpose-purpos|
00009930  65 0d 2a bc 17 20 20 20  20 20 20 20 20 65 71 75  |e.*..        equ|
00009940  64 20 20 20 20 31 35 34  0d 2a c6 18 20 20 20 20  |d    154.*..    |
00009950  20 20 20 20 65 71 75 64  20 20 20 20 2d 31 35 36  |    equd    -156|
00009960  0d 2a d0 17 20 20 20 20  20 20 20 20 65 71 75 64  |.*..        equd|
00009970  20 20 20 20 36 33 30 0d  2a da 18 20 20 20 20 20  |    630.*..     |
00009980  20 20 20 65 71 75 64 20  20 20 20 2d 31 30 38 0d  |   equd    -108.|
00009990  2a e4 4c 20 20 20 20 20  20 20 20 65 71 75 64 20  |*.L        equd |
000099a0  20 20 20 28 37 20 3c 3c  20 32 34 29 2b 28 31 20  |   (7 << 24)+(1 |
000099b0  3c 3c 20 38 29 2b 28 31  20 3c 3c 20 35 29 2b 28  |<< 8)+(1 << 5)+(|
000099c0  31 20 3c 3c 20 34 29 2b  28 31 20 3c 3c 20 33 29  |1 << 4)+(1 << 3)|
000099d0  2b 28 31 20 3c 3c 20 32  29 2b 31 0d 2a ee 0f 2e  |+(1 << 2)+1.*...|
000099e0  70 75 74 5f 61 75 74 68  6f 72 0d 2a f8 1a 20 20  |put_author.*..  |
000099f0  20 20 20 20 20 20 65 71  75 64 20 20 20 20 61 75  |      equd    au|
00009a00  74 68 6f 72 0d 2b 02 16  20 20 20 20 20 20 20 20  |thor.+..        |
00009a10  65 71 75 64 20 20 20 20  2d 31 0d 2b 0c 25 20 20  |equd    -1.+.%  |
00009a20  20 20 20 20 20 20 65 71  75 64 20 20 20 20 65 6e  |      equd    en|
00009a30  64 5f 61 75 74 68 6f 72  2d 61 75 74 68 6f 72 0d  |d_author-author.|
00009a40  2b 16 17 20 20 20 20 20  20 20 20 65 71 75 64 20  |+..        equd |
00009a50  20 20 20 31 35 34 0d 2b  20 18 20 20 20 20 20 20  |   154.+ .      |
00009a60  20 20 65 71 75 64 20 20  20 20 2d 32 30 38 0d 2b  |  equd    -208.+|
00009a70  2a 17 20 20 20 20 20 20  20 20 65 71 75 64 20 20  |*.        equd  |
00009a80  20 20 36 33 30 0d 2b 34  18 20 20 20 20 20 20 20  |  630.+4.       |
00009a90  20 65 71 75 64 20 20 20  20 2d 31 36 30 0d 2b 3e  | equd    -160.+>|
00009aa0  4c 20 20 20 20 20 20 20  20 65 71 75 64 20 20 20  |L        equd   |
00009ab0  20 28 37 20 3c 3c 20 32  34 29 2b 28 31 20 3c 3c  | (7 << 24)+(1 <<|
00009ac0  20 38 29 2b 28 31 20 3c  3c 20 35 29 2b 28 31 20  | 8)+(1 << 5)+(1 |
00009ad0  3c 3c 20 34 29 2b 28 31  20 3c 3c 20 33 29 2b 28  |<< 4)+(1 << 3)+(|
00009ae0  31 20 3c 3c 20 32 29 2b  31 0d 2b 48 10 2e 70 75  |1 << 2)+1.+H..pu|
00009af0  74 5f 76 65 72 73 69 6f  6e 0d 2b 52 1b 20 20 20  |t_version.+R.   |
00009b00  20 20 20 20 20 65 71 75  64 20 20 20 20 76 65 72  |     equd    ver|
00009b10  73 69 6f 6e 0d 2b 5c 16  20 20 20 20 20 20 20 20  |sion.+\.        |
00009b20  65 71 75 64 20 20 20 20  2d 31 0d 2b 66 27 20 20  |equd    -1.+f'  |
00009b30  20 20 20 20 20 20 65 71  75 64 20 20 20 20 65 6e  |      equd    en|
00009b40  64 5f 76 65 72 73 69 6f  6e 2d 76 65 72 73 69 6f  |d_version-versio|
00009b50  6e 0d 2b 70 14 2e 65 6e  64 5f 69 6e 66 6f 5f 77  |n.+p..end_info_w|
00009b60  69 6e 64 6f 77 0d 2b 7a  05 5d 0d 2b 84 0a ed 20  |indow.+z.].+... |
00009b70  6f 70 74 25 0d 2b 8e 2a  f1 20 7e 4f 25 2d 63 6f  |opt%.+.*. ~O%-co|
00009b80  64 65 25 3b 22 20 3d 20  22 3b 28 4f 25 2d 63 6f  |de%;" = ";(O%-co|
00009b90  64 65 25 29 2f 31 30 32  34 3b 22 20 4b 22 0d 2b  |de%)/1024;" K".+|
00009ba0  98 28 ff 20 22 53 61 76  65 20 49 63 6f 6e 43 6c  |.(. "Save IconCl|
00009bb0  6f 63 6b 20 22 2b c3 7e  63 6f 64 65 25 2b 22 20  |ock "+.~code%+" |
00009bc0  22 2b c3 7e 4f 25 0d 2b  a2 1d 2a 53 65 74 54 79  |"+.~O%.+..*SetTy|
00009bd0  70 65 20 49 63 6f 6e 43  6c 6f 63 6b 20 4d 6f 64  |pe IconClock Mod|
00009be0  75 6c 65 0d 2b ac 1a 2a  4b 65 79 20 31 20 4c 6f  |ule.+..*Key 1 Lo|
00009bf0  61 64 20 4d 6f 64 4d 61  6b 65 72 7c 4d 0d 2b b6  |ad ModMaker|M.+.|
00009c00  13 2a 4b 65 79 20 32 20  54 57 49 4e 4f 38 7c 4d  |.*Key 2 TWINO8|M|
00009c10  0d 2b c0 16 2a 4b 65 79  20 33 20 53 41 56 45 7c  |.+..*Key 3 SAVE||
00009c20  4d 52 55 4e 7c 4d 0d 2b  ca 28 2a 4b 65 79 20 34  |MRUN|M.+.(*Key 4|
00009c30  20 2a 52 4d 4c 6f 61 64  20 49 63 6f 6e 43 6c 6f  | *RMLoad IconClo|
00009c40  63 6b 7c 4d 2a 44 65 73  6b 74 6f 70 7c 4d 0d 2b  |ck|M*Desktop|M.+|
00009c50  d4 24 2a 4b 65 79 20 35  20 2a 53 68 6f 77 20 49  |.$*Key 5 *Show I|
00009c60  63 6f 6e 43 6c 6f 63 6b  24 4f 70 74 69 6f 6e 73  |conClock$Options|
00009c70  7c 4d 0d 2b de 21 2a 4b  65 79 20 36 20 2a 53 65  ||M.+.!*Key 6 *Se|
00009c80  74 20 49 63 6f 6e 43 6c  6f 63 6b 24 4f 70 74 69  |t IconClock$Opti|
00009c90  6f 6e 73 0d 2b e8 05 e0  0d 2b f2 04 0d 2b fc 14  |ons.+....+...+..|
00009ca0  dd 20 a4 73 74 72 69 6e  67 28 74 65 78 74 24 29  |. .string(text$)|
00009cb0  0d 2c 06 3d e7 20 a9 28  74 65 78 74 24 29 3e 31  |.,.=. .(text$)>1|
00009cc0  32 20 8c 20 85 20 30 2c  74 65 78 74 24 2b 22 20  |2 . . 0,text$+" |
00009cd0  69 73 20 6c 6f 6e 67 65  72 20 74 68 61 6e 20 31  |is longer than 1|
00009ce0  32 20 63 68 61 72 61 63  74 65 72 73 22 0d 2c 10  |2 characters".,.|
00009cf0  17 5b 20 20 20 20 20 20  20 6f 70 74 20 20 20 20  |.[       opt    |
00009d00  6f 70 74 25 0d 2c 1a 19  20 20 20 20 20 20 20 20  |opt%.,..        |
00009d10  65 71 75 73 20 20 20 20  74 65 78 74 24 0d 2c 24  |equs    text$.,$|
00009d20  05 5d 0d 2c 2e 13 e7 20  a9 28 74 65 78 74 24 29  |.].,... .(text$)|
00009d30  3c 31 32 20 8c 0d 2c 38  17 5b 20 20 20 20 20 20  |<12 ..,8.[      |
00009d40  20 6f 70 74 20 20 20 20  6f 70 74 25 0d 2c 42 24  | opt    opt%.,B$|
00009d50  20 20 20 20 20 20 20 20  65 71 75 73 20 20 20 20  |        equs    |
00009d60  c4 31 32 2d a9 28 74 65  78 74 24 29 2c bd 30 29  |.12-.(text$),.0)|
00009d70  0d 2c 4c 05 5d 0d 2c 56  05 cd 0d 2c 60 06 3d 30  |.,L.].,V...,`.=0|
00009d80  0d ff                                             |..|
00009d82