Home » Recent acquisitions » Acorn ADFS disks » adfs_AcornUser_199312.adf » !StarInfo_StarInfo » Wike/RoomBas

Wike/RoomBas

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

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

Tape/disk: Home » Recent acquisitions » Acorn ADFS disks » adfs_AcornUser_199312.adf » !StarInfo_StarInfo
Filename: Wike/RoomBas
Read OK:
File size: 38B4 bytes
Load address: 0000
Exec address: 0000
File contents
   10REM >RoomBas
   20REM By  John Wike
   30REM     For 32-bit machines
   40REM     (c) BAU December 1993
   50:
   60vers$="1.00"
   70today$=MID$(TIME$,5,2)+"-"+MID$(TIME$,8,3)+"-"+MID$(TIME$,12,4)
   80both$=vers$+" ("+today$+")"
   90Help$="Room"+CHR$9+CHR$9+both$
  100Save$="RoomMod"
  110pollmask=&30
  120DIM     mc%     &1000
  130PROCmc
  140PROCsave
  150END
  160:
  170DEF PROCmc
  180FOR pass=4 TO 6 STEP 2
  190P%=0:O%=mc%
  200[OPT pass
  210.orig
  220        DCD     start
  230        DCD     init
  240        DCD     final
  250        DCD     service
  260        DCD     title
  270        DCD     help
  280        DCD     command
  290        DCD     0
  300        DCD     0
  310        DCD     0
  320        DCD     0
  330
  340.help   FNs(Help$)
  350
  360.service_startwimp
  370        STMDB   R13!,{R12,R14}
  380        LDR     R12,[R12]
  390        LDR     R14,[R12]
  400        TEQ     R14,#0
  410        MVNEQ   R14,#0
  420        STREQ   R14,[R12]
  430        MOVEQ   R1,#0
  440        ADREQ   R0,command
  450        LDMIA   R13!,{R12,PC}
  460
  470.title_to_R2
  480        ADR     R2,title
  490        MOV     PC,R14
  500
  510.command
  520        EQUS    "Desktop_"
  530
  540.title
  550        FNs("Room")
  560        DCD     commandcode
  570        DCD     0
  580        DCD     0
  590        DCD     commandhelp
  600        DCB     0
  610
  620.commandhelp
  630        FNs("The Room module gives an icon bar display of Free memory."+CHR$13+"Use *Desktop to start it up.")
  640
  650.commandcode
  660        STMDB   R13!,{R14}
  670        LDR     R14,[R12]
  680        LDR     R14,[R14]
  690        TEQ     R14,#0
  700        LDMEQIA R13!,{R14}
  710        ADREQ   R0,desktop_error
  720        BEQ     set_V
  730        MOV     R0,#2
  740        ADR     R1,title
  750        SWI     "XOS_Module"
  760        LDMIA   R13!,{PC}
  770
  780.desktop_error
  790        DCD     &1001
  800        FNs("Use *Desktop to start Room module")
  810
  820.set_V
  830        ORRS    PC,R14,#&10000000
  840
  850.init_error
  860        DCD     &1000
  870        FNs("Room unable to claim memory")
  880
  890.init
  900        STMDB   R13!,{R0-R12,R14}
  910        MOV     R0,#6
  920        MOV     R3,#&300
  930        ADD     R3,R3,#&1C
  940        SWI     "XOS_Module"
  950        LDMVSIA R13!,{R0-R12,R14}
  960        ADRVS   R0,init_error
  970        BVS     set_V
  980        STR     R2,[R12]
  990        MOV     R0,#0
 1000        STR     R0,[R2]
 1010        LDMIA   R13!,{R0-R12,PC}^
 1020
 1030.final
 1040        STMDB   R13!,{R1-R12,R14}
 1050        LDR     R12,[R12]
 1060        LDR     R0,[R12]
 1070        CMP     R0,#0
 1080        LDRGT   R1,task
 1090        SWIGT   "XWimp_CloseDown"
 1100        MOV     R0,#7
 1110        MOV     R2,R12
 1120        SWI     "XOS_Module"
 1130        LDMIA   R13!,{R1-R12,PC}^
 1140
 1150.service
 1160        TEQ     R1,#&27
 1170        BEQ     service_reset
 1180        TEQ     R1,#&49
 1190        BEQ     service_startwimp
 1200        TEQ     R1,#&4A
 1210        MOVNE   PC,R14
 1220
 1230        STMDB   R13!,{R12,R14}
 1240        LDR     R12,[R12]
 1250        LDR     R14,[R12]
 1260        CMP     R14,#0
 1270        MOVLT   R14,#0
 1280        STRLT   R14,[R12]
 1290        LDMIA   R13!,{R12,PC}
 1300
 1310.service_reset
 1320        STMDB   R13!,{R12,R14}
 1330        LDR     R12,[R12]
 1340        MOV     R14,#0
 1350        STR     R14,[R12]
 1360        LDMIA   R13!,{R12,PC}
 1370
 1380.try_closedown
 1390        MOV     R6,R14
 1400        LDR     R0,[R12]
 1410        CMP     R0,#0
 1420        LDRGT   R1,task
 1430        SWIGT   "XWimp_CloseDown"
 1440        MOV     R14,#0
 1450        STR     R14,[R12]
 1460        MOV     PC,R6
 1470
 1480.task   EQUS    "TASK"
 1490
 1500.exit_2
 1510        MOV     R1,#2
 1520        BL      wimp_errors
 1530
 1540.exit_1
 1550        BL      try_closedown
 1560        SWI     "OS_Exit"
 1570
 1580.pointers
 1590        DCD     pointer0-template
 1600        DCD     pointer1-template
 1610        DCD     pointer2-template
 1620        DCD     pointer3-template
 1630        DCD     0
 1640
 1650.ptr_vals
 1660        DCD     templateabout-template
 1670        DCD     templatepurpose-template
 1680        DCD     templateauthor-template
 1690        DCD     templateversion-template
 1700
 1710.start
 1720        LDR     R12,[R12]
 1730        LDR     R0,[R12]
 1740        CMP     R0,#0
 1750        LDRGT   R1,task
 1760        SWIGT   "XWimp_CloseDown"
 1770        MOVGT   R0,#0
 1780        STRGT   R0,[R12]
 1790        ADD     R3,R12,#&1C
 1800        ADD     R13,R3,#&300
 1810        LDR     R0,ireq
 1820        STR     R0,[R3]
 1830        MOV     R0,#0
 1840        STR     R0,[R3,#4]
 1850        MOV     R0,#300
 1860        LDR     R1,task
 1870        BL      title_to_R2
 1880        SWI     "XWimp_Initialise"
 1890        BVS     exit_1
 1900        STR     R0,[R12,#&18]
 1910        STR     R1,[R12]
 1920        SWI     "OS_ReadMemMapInfo"
 1930        MUL     R2,R0,R1
 1940        MOV     R0,R2
 1950        STR     R0,[R12,#8]
 1960        BLhex_dec
 1970        BL      try_sprites
 1980        BVS     exit_2
 1990
 2000        ADR     R4,ptr_vals
 2010        ADR     R3,pointers
 2020        BL      template_to_R1
 2030
 2040.pointer_loop
 2050        LDR     R0,[R3],#4
 2060        LDR     R2,[R4],#4
 2070        TEQ     R0,#0
 2080        ADDNE   R2,R2,R1
 2090        STRNE   R2,[R1,R0]
 2100        BNE     pointer_loop
 2110        SWI     "XWimp_CreateWindow"
 2120        STR     R0,submenuhandle
 2130
 2140.wimp_loop
 2150        MOVVS   R1,#1
 2160        BLVS    wimp_errors
 2170        BVS     exit_2
 2180        SWI     "XOS_ReadMonotonicTime"
 2190        ADDVC   R2,R0,#10
 2200        ADDVC   R1,R12,#&1C
 2210        MOVVC   R0,#pollmask
 2220        SWIVC   "XWimp_PollIdle"
 2230        BVS     wimp_loop
 2240
 2250        ADR     R14,wimp_loop
 2260        CMP     R0,#0
 2270        BEQ     null
 2280        CMP     R0,#2
 2290        BEQ     open_window
 2300        CMP     R0,#6
 2310        BEQ     mouse_click
 2320        CMP     R0,#9
 2330        BEQ     menu_selection
 2340        CMP     R0,#&11
 2350        CMPNE   R0,#&12
 2360        BEQ     message
 2370        BNE     wimp_loop
 2380
 2390.null
 2400        MVN     R0,#0
 2410        MVN     R1,#0
 2420        SWI     "XWimp_SlotSize"
 2430        BVS     wimp_loop
 2440        LDR     R0,[R12,#8]
 2450        CMP     R0,R2
 2460        BEQ     wimp_loop
 2470        STR     R2,[R12,#8]
 2480        MOV     R0,R2
 2490        BL      hex_dec
 2500        ADD     R1,R12,#&1C
 2510        MVN     R0,#1
 2520        STR     R0,[R1]
 2530        LDR     R0,[R12,#4]
 2540        STR     R0,[R1,#4]
 2550        SWI     "XWimp_GetIconState"
 2560        BVS     wimp_loop
 2570        LDR     R0,[R1]
 2580        ADD     R5,R1,#8
 2590        LDMIA   R5,{R1-R4}
 2600        SWI     "XWimp_ForceRedraw"
 2610        B       wimp_loop
 2620
 2630.open_window
 2640        MVN     R0,#0
 2650        STR     R0,[R1,#28]
 2660        SWI     "XWimp_OpenWindow"
 2670        B       wimp_loop
 2680
 2690.mouse_click
 2700        LDMIA   R1!,{R2-R4}
 2710        STR     R2,[R12,#&14]
 2720        TST     R4,#2
 2730        BEQ     wimp_loop
 2740
 2750.redo_menu
 2760        ADR     R1,createmenu_block
 2770        SUB     R2,R2,#&40
 2780        MOV     R3,#184
 2790        SWI     "XWimp_CreateMenu"
 2800        B       wimp_loop
 2810
 2820.createmenu_block
 2830        FNs("ROOM")
 2840        DCD     0
 2850        DCD     &70207
 2860        DCD     &5C
 2870        DCD     &2C
 2880        DCD     0
 2890
 2900        DCD     0
 2910
 2920.submenuhandle
 2930        DCD     -1
 2940        DCD     &7000021
 2950
 2960.info_text
 2970        EQUS    "Info"
 2980        DCD     0
 2990        DCD     0
 3000
 3010        DCD     &80
 3020        DCD     -1
 3030        DCD     &7000021
 3040
 3050.quit_text
 3060        EQUS    "Quit"
 3070        DCD     0
 3080        DCD     0
 3090
 3100        DCD     0
 3110
 3120.menu_selection
 3130        LDR     R0,[R1]
 3140        CMP     R0,#1
 3150        BEQ     exit_1
 3160        CMP     R0,#0
 3170        BNE     wimp_loop
 3180        SWI     "XWimp_GetPointerInfo"
 3190        BVS     wimp_loop
 3200        LDR     R0,[R1,#8]
 3210        TST     R0,#1
 3220        BEQ     wimp_loop
 3230        LDR     R2,[R12,#&14]
 3240        B       redo_menu
 3250
 3260.try_sprites
 3270        STMDB   R13!,{R1-R4,R6-R9,R14}
 3280        MVN     R0,#0
 3290        MOV     R6,#0
 3300        MOV     R7,#0
 3310        MOV     R8,#&6C
 3320        MOV     R9,#&40
 3330        ADD     R14,R12,#&1C
 3340        STMIA   R14!,{R0,R6-R9}
 3350        LDR     R0,icon_flags
 3360        ADD     R1,R12,#&C
 3370        MOV     R2,#0
 3380        MOV     R3,#5
 3390        STMIA   R14,{R0-R3}
 3400        ADD     R1,R12,#&1C
 3410        SWI     "XWimp_CreateIcon"
 3420        STRVC   R0,[R12,#4]
 3430        LDMVCIA R13!,{R1-R4,R6-R9,PC}^
 3440        LDMVSIA R13!,{R1-R4,R6-R9,PC}
 3450
 3460.icon_flags
 3470        DCD     &C700312D
 3480
 3490.ireq   DCD     &502
 3500
 3510.isend  DCD     &503
 3520
 3530.imess1
 3540        DCD     16+imess2-imess1
 3550        FNs("This is the Room icon.|MIt continuously shows the amount of free memory.")
 3560
 3570.imess2
 3580        DCD     16+imess3-imess2
 3590        FNs("This window displays information about Room.")
 3600
 3610.imess3
 3620        DCD     16+imess4-imess3
 3630        FNs("Move the pointer right to see information about Room.")
 3640
 3650.imess4
 3660        DCD     16+imessend-imess4
 3670        FNs("Click SELECT to quit Room.")
 3680.imessend
 3690
 3700.message
 3710        LDR     R0,[R1,#16]
 3720        CMP     R0,#0
 3730        BEQ     exit_1
 3740        LDR     R2,ireq
 3750        CMP     R0,R2
 3760        BNE     wimp_loop
 3770        LDR     R2,[R1,#32]
 3780        CMN     R2,#2
 3790        ADREQ   R3,imess1
 3800        ADRNE   R3,imess2
 3810        LDRNE   R0,submenuhandle
 3820        CMPNE   R0,R2
 3830        BEQ     send_info
 3840        LDR     R0,[R12,#&18]
 3850        CMP     R0,#218
 3860        BLE     wimp_loop
 3870        LDR     R3,[R1,#36]
 3880        CMN     R3,#1
 3890        BEQ     wimp_loop
 3900        ADD     R1,R1,#40
 3910        MOV     R0,#1
 3920        SWI     &600F4
 3930        BVS     wimp_loop
 3940        LDR     R0,[R1]
 3950        TEQ     R0,#1
 3960        ADREQ   R3,imess4
 3970        BEQ     pre_send_info
 3980        TEQ     R0,#0
 3990        BNE     wimp_loop
 4000        LDR     R0,[R1,#4]
 4010        CMN     R0,#1
 4020        BNE     wimp_loop
 4030        ADR     R3,imess3
 4040
 4050.pre_send_info
 4060        SUB     R1,R1,#40
 4070
 4080.send_info
 4090        LDR     R0,[R3],#4
 4100        STR     R0,[R1]
 4110        LDR     R0,[R1,#8]
 4120        STR     R0,[R1,#12]
 4130        ADD     R2,R1,#16
 4140        LDR     R0,isend
 4150        STR     R0,[R2],#4
 4160
 4170.mess_loop
 4180        LDRB    R0,[R3],#1
 4190        STRB    R0,[R2],#1
 4200        TEQ     R0,#0
 4210        BNE     mess_loop
 4220        MOV     R0,#17
 4230        LDR     R2,[R1,#4]
 4240        SWI     "XWimp_SendMessage"
 4250        B       wimp_loop
 4260
 4270.wimp_errors
 4280        STMDB   R13!,{R1,R2,R14}
 4290        BL      title_to_R2
 4300        SWI     "XWimp_ReportError"
 4310        BVS     wimp_os_error
 4320        TEQ     R1,#2
 4330        BEQ     exit_1
 4340        LDMIA   R13!,{R1,R2,PC}
 4350
 4360.wimp_os_error
 4370        SWI     "OS_GenerateError"
 4380        SWI     "OS_Exit"
 4390
 4400.dec_values
 4410        DCD     1000
 4420        DCD     100
 4430        DCD     10
 4440
 4450.hex_dec
 4460        STMDB   R13!,{R0-R7,R14}
 4470        ADD     R1,R12,#&C
 4480        MOV     R0,R0,LSR #10
 4490        ADR     R7,dec_values
 4500        MOV     R6,#ASC" "
 4510
 4520.hd_loop_1
 4530        LDR     R5,[R7],#4
 4540        MOV     R4,R6
 4550
 4560.hd_loop_2
 4570        SUBS    R3,R0,R5
 4580        ORRPL   R4,R4,#&10
 4590        ORRPL   R6,R6,#&10
 4600        ADDPL   R4,R4,#1
 4610        MOVPL   R0,R3
 4620        BPL     hd_loop_2
 4630        STRB    R4,[R1],#1
 4640        CMP     R5,#10
 4650        BNE     hd_loop_1
 4660        ADD     R0,R0,#ASC"0"
 4670        STRB    R0,[R1],#1
 4680        MOV     R0,#ASC"K"
 4690        STR     R0,[R1]
 4700        LDMIA   R13!,{R0-R7,PC}
 4710
 4720.template_to_R1
 4730        ADR     R1,template
 4740        MOV     PC,R14
 4750
 4760.template
 4770        DCD     &8
 4780        DCD     &88
 4790        DCD     &284
 4800        DCD     &160
 4810        DCD     0
 4820        DCD     0
 4830        DCD     -1
 4840        DCD     &84050012
 4850        DCD     &1070207
 4860        DCD     &C0E0C
 4870        DCD     0
 4880        DCD     -&400
 4890        DCD     &500
 4900        DCD     0
 4910        DCD     &13D
 4920        DCD     0
 4930        DCD     1
 4940        DCD     0
 4950
 4960.pointer0
 4970        DCD     templateabout-template
 4980        DCD     -1
 4990        DCD     templateend-templateabout
 5000        DCD     8
 5010
 5020        DCD     &9A
 5030        DCD     -&34
 5040        DCD     &276
 5050        DCD     -&4
 5060        DCD     &C700003D
 5070        FNs("Room")
 5080        DCD     0
 5090
 5100        DCD     &9A
 5110        DCD     -&68
 5120        DCD     &276
 5130        DCD     -&38
 5140        DCD     &700013D
 5150
 5160.pointer1
 5170        DCD     templatepurpose-template
 5180        DCD     -1
 5190        DCD     templateauthor-templatepurpose
 5200
 5210        DCD     &9A
 5220        DCD     -&9C
 5230        DCD     &276
 5240        DCD     -&6C
 5250        DCD     &700013D
 5260
 5270.pointer2
 5280        DCD     templateauthor-template
 5290        DCD     -1
 5300        DCD     templateversion-templateauthor
 5310
 5320        DCD     &9A
 5330        DCD     -&D0
 5340        DCD     &276
 5350        DCD     -&A0
 5360        DCD     &700013D
 5370
 5380.pointer3
 5390        DCD     templateversion-template
 5400        DCD     -1
 5410        DCD     templateabout-templateversion
 5420
 5430        DCD     &3E
 5440        DCD     -&30
 5450        DCD     &9A
 5460        DCD     -8
 5470        DCD     &17000019
 5480        FNs("Name:")
 5490        DCD     0
 5500
 5510        DCD     &E
 5520        DCD     -&64
 5530        DCD     &9A
 5540        DCD     -&3C
 5550        DCD     &17000019
 5560        FNs("Purpose:")
 5570
 5580        DCD     &1E
 5590        DCD     -&98
 5600        DCD     &9A
 5610        DCD     -&70
 5620        DCD     &17000019
 5630        FNs("Author:")
 5640        DCD     0
 5650
 5660        DCD     &E
 5670        DCD     -&C8
 5680        DCD     &9A
 5690        DCD     -&A0
 5700        DCD     &17000019
 5710        FNs("Version:")
 5720        DCD     0
 5730
 5740.templatepurpose
 5750        EQUS    "Show Free memory on icon bar"
 5760        DCB     13
 5770
 5780.templateauthor
 5790        DCB     &A9
 5800        EQUS    " John Wike for BAU"
 5810        DCB     13
 5820
 5830.templateversion
 5840        EQUS    both$
 5850        DCB     13
 5860
 5870.templateabout
 5880        EQUS    "About this program"
 5890        DCB     13
 5900
 5910.templateend
 5920        ALIGN
 5930]
 5940NEXT
 5950PRINT"Bytes: &";~O%-mc%
 5960ENDPROC
 5970:
 5980:
 5990DEF PROCsave
 6000SYS "OS_File",10,Save$,&FFA,,mc%,O%
 6010PRINT'"Module saved as ";Save$
 6020ENDPROC
 6030:
 6040DEF FNs(Text$)
 6050[OPT    pass
 6060        EQUS    Text$
 6070        DCB     0
 6080ALIGN
 6090]
 6100=0
 6110

� >RoomBas
� By  John Wike
�     For 32-bit machines
(�     (c) BAU December 1993
2:
<vers$="1.00"
F.today$=��$,5,2)+"-"+��$,8,3)+"-"+��$,12,4)
Pboth$=vers$+" ("+today$+")"
ZHelp$="Room"+�9+�9+both$
dSave$="RoomMod"
npollmask=&30
x�     mc%     &1000
��mc
�	�save
��
�:
�	� �mc
�� pass=4 � 6 � 2
�P%=0:O%=mc%
�
[OPT pass
�	.orig
�        DCD     start
�        DCD     init
�        DCD     final
�        DCD     service
        DCD     title
        DCD     help
        DCD     command
"        DCD     0
,        DCD     0
6        DCD     0
@        DCD     0
J
T.help   �s(Help$)
^
h.service_startwimp
r"        STMDB   R13!,{R12,R14}
|        LDR     R12,[R12]
�        LDR     R14,[R12]
�        TEQ     R14,#0
�        MVNEQ   R14,#0
�        STREQ   R14,[R12]
�        �Q   R1,#0
�        ADREQ   R0,command
�!        LDMIA   R13!,{R12,PC}
�
�.title_to_R2
�        ADR     R2,title
�        MOV     PC,R14
�
�.command
        EQUS    "Desktop_"


.title
&        �s("Room")
0        DCD     commandcode
:        DCD     0
D        DCD     0
N        DCD     commandhelp
X        DCB     0
b
l.commandhelp
vn        �s("The Room module gives an icon bar display of Free memory."+�13+"Use *Desktop to start it up.")
�
�.commandcode
�        STMDB   R13!,{R14}
�        LDR     R14,[R12]
�        LDR     R14,[R14]
�        TEQ     R14,#0
�        LDMEQIA R13!,{R14}
�$        ADREQ   R0,desktop_error
�        BEQ     set_V
�        MOV     R0,#2
�        ADR     R1,title
�         SWI     "XOS_Module"
�        LDMIA   R13!,{PC}

.desktop_error
        DCD     &1001
 3        �s("Use *Desktop to start Room module")
*
4
.set_V
>$        �RS    PC,R14,#&10000000
H
R.init_error
\        DCD     &1000
f-        �s("Room unable to claim memory")
p
z	.init
�%        STMDB   R13!,{R0-R12,R14}
�        MOV     R0,#6
�        MOV     R3,#&300
�        ADD     R3,R3,#&1C
�         SWI     "XOS_Module"
�%        LDMVSIA R13!,{R0-R12,R14}
�!        ADRVS   R0,init_error
�        BVS     set_V
�        STR     R2,[R12]
�        MOV     R0,#0
�        STR     R0,[R2]
�%        LDMIA   R13!,{R0-R12,PC}^
�

.final
%        STMDB   R13!,{R1-R12,R14}
        LDR     R12,[R12]
$        LDR     R0,[R12]
.        CMP     R0,#0
8        LDRGT   R1,task
B%        SWIGT   "XWimp_CloseDown"
L        MOV     R0,#7
V        MOV     R2,R12
`         SWI     "XOS_Module"
j%        LDMIA   R13!,{R1-R12,PC}^
t
~.service
�        TEQ     R1,#&27
�!        BEQ     service_reset
�        TEQ     R1,#&49
�%        BEQ     service_startwimp
�        TEQ     R1,#&4A
�        MOVNE   PC,R14
�
�"        STMDB   R13!,{R12,R14}
�        LDR     R12,[R12]
�        LDR     R14,[R12]
�        CMP     R14,#0
�        MOVLT   R14,#0
        STRLT   R14,[R12]

!        LDMIA   R13!,{R12,PC}

.service_reset
("        STMDB   R13!,{R12,R14}
2        LDR     R12,[R12]
<        MOV     R14,#0
F        STR     R14,[R12]
P!        LDMIA   R13!,{R12,PC}
Z
d.try_closedown
n        MOV     R6,R14
x        LDR     R0,[R12]
�        CMP     R0,#0
�        LDRGT   R1,task
�%        SWIGT   "XWimp_CloseDown"
�        MOV     R14,#0
�        STR     R14,[R12]
�        MOV     PC,R6
�
�.task   EQUS    "TASK"
�
�.exit_2
�        MOV     R1,#2
�        BL      wimp_errors
�
.exit_1
!        BL      try_closedown
        SWI     "OS_Exit"
"
,
.pointers
6%        DCD     pointer0-template
@%        DCD     pointer1-template
J%        DCD     pointer2-template
T%        DCD     pointer3-template
^        DCD     0
h
r
.ptr_vals
|*        DCD     templateabout-template
�,        DCD     templatepurpose-template
�+        DCD     templateauthor-template
�,        DCD     templateversion-template
�
�
.start
�        LDR     R12,[R12]
�        LDR     R0,[R12]
�        CMP     R0,#0
�        LDRGT   R1,task
�%        SWIGT   "XWimp_CloseDown"
�        MOVGT   R0,#0
�        STRGT   R0,[R12]
�        ADD     R3,R12,#&1C
         ADD     R13,R3,#&300
        LDR     R0,ireq
        STR     R0,[R3]
&        MOV     R0,#0
0        STR     R0,[R3,#4]
:        MOV     R0,#300
D        LDR     R1,task
N        BL      title_to_R2
X&        SWI     "XWimp_Initialise"
b        BVS     exit_1
l!        STR     R0,[R12,#&18]
v        STR     R1,[R12]
�'        SWI     "OS_ReadMemMapInfo"
�        MUL     R2,R0,R1
�        MOV     R0,R2
�        STR     R0,[R12,#8]
�        BLhex_dec
�        BL      try_sprites
�        BVS     exit_2
�
�        ADR     R4,ptr_vals
�        ADR     R3,pointers
�"        BL      template_to_R1
�
�.pointer_loop
        LDR     R0,[R3],#4
        LDR     R2,[R4],#4
        TEQ     R0,#0
         ADDNE   R2,R2,R1
*        STRNE   R2,[R1,R0]
4         BNE     pointer_loop
>(        SWI     "XWimp_CreateWindow"
H$        STR     R0,submenuhandle
R
\.wimp_loop
f        MOVVS   R1,#1
p        BLVS    wimp_errors
z        BVS     exit_2
�+        SWI     "XOS_ReadMonotonicTime"
�        ADDVC   R2,R0,#10
�        ADDVC   R1,R12,#&1C
�         MOVVC   R0,#pollmask
�$        SWIVC   "XWimp_PollIdle"
�        BVS     wimp_loop
�
�!        ADR     R14,wimp_loop
�        CMP     R0,#0
�        BEQ     null
�        CMP     R0,#2
�        BEQ     open_window
�        CMP     R0,#6
	        BEQ     mouse_click
	        CMP     R0,#9
	"        BEQ     menu_selection
	$        CMP     R0,#&11
	.        CMPNE   R0,#&12
	8        BEQ     message
	B        BNE     wimp_loop
	L
	V	.null
	`        MVN     R0,#0
	j        MVN     R1,#0
	t$        SWI     "XWimp_SlotSize"
	~        BVS     wimp_loop
	�        LDR     R0,[R12,#8]
	�        CMP     R0,R2
	�        BEQ     wimp_loop
	�        STR     R2,[R12,#8]
	�        MOV     R0,R2
	�        BL      hex_dec
	�        ADD     R1,R12,#&1C
	�        MVN     R0,#1
	�        STR     R0,[R1]
	�        LDR     R0,[R12,#4]
	�        STR     R0,[R1,#4]
	�(        SWI     "XWimp_GetIconState"
        BVS     wimp_loop

        LDR     R0,[R1]
        ADD     R5,R1,#8
        LDMIA   R5,{R1-R4}
('        SWI     "XWimp_ForceRedraw"
2        B       wimp_loop
<
F.open_window
P        MVN     R0,#0
Z        STR     R0,[R1,#28]
d&        SWI     "XWimp_OpenWindow"
n        B       wimp_loop
x
�.mouse_click
�        LDMIA   R1!,{R2-R4}
�!        STR     R2,[R12,#&14]
�        TST     R4,#2
�        BEQ     wimp_loop
�
�.redo_menu
�'        ADR     R1,createmenu_block
�        SUB     R2,R2,#&40
�        MOV     R3,#184
�&        SWI     "XWimp_CreateMenu"
�        B       wimp_loop
�
.createmenu_block
        �s("ROOM")
        DCD     0
"        DCD     &70207
,        DCD     &5C
6        DCD     &2C
@        DCD     0
J
T        DCD     0
^
h.submenuhandle
r        DCD     -1
|        DCD     &7000021
�
�.info_text
�        EQUS    "Info"
�        DCD     0
�        DCD     0
�
�        DCD     &80
�        DCD     -1
�        DCD     &7000021
�
�.quit_text
�        EQUS    "Quit"
�        DCD     0
        DCD     0

        DCD     0
&
0.menu_selection
:        LDR     R0,[R1]
D        CMP     R0,#1
N        BEQ     exit_1
X        CMP     R0,#0
b        BNE     wimp_loop
l*        SWI     "XWimp_GetPointerInfo"
v        BVS     wimp_loop
�        LDR     R0,[R1,#8]
�        TST     R0,#1
�        BEQ     wimp_loop
�!        LDR     R2,[R12,#&14]
�        B       redo_menu
�
�.try_sprites
�*        STMDB   R13!,{R1-R4,R6-R9,R14}
�        MVN     R0,#0
�        MOV     R6,#0
�        MOV     R7,#0
�        MOV     R8,#&6C
�        MOV     R9,#&40

         ADD     R14,R12,#&1C

#        STMIA   R14!,{R0,R6-R9}

!        LDR     R0,icon_flags

         ADD     R1,R12,#&C

*        MOV     R2,#0

4        MOV     R3,#5

>        STMIA   R14,{R0-R3}

H        ADD     R1,R12,#&1C

R&        SWI     "XWimp_CreateIcon"

\        STRVC   R0,[R12,#4]

f*        LDMVCIA R13!,{R1-R4,R6-R9,PC}^

p)        LDMVSIA R13!,{R1-R4,R6-R9,PC}

z

�.icon_flags

�        DCD     &C700312D

�

�.ireq   DCD     &502

�

�.isend  DCD     &503

�

�.imess1

�$        DCD     16+imess2-imess1

�Z        �s("This is the Room icon.|MIt continuously shows the amount of free memory.")

�

�.imess2

�$        DCD     16+imess3-imess2
>        �s("This window displays information about Room.")

.imess3
$$        DCD     16+imess4-imess3
.G        �s("Move the pointer right to see information about Room.")
8
B.imess4
L&        DCD     16+imessend-imess4
V,        �s("Click SELECT to quit Room.")
`
.imessend
j
t.message
~        LDR     R0,[R1,#16]
�        CMP     R0,#0
�        BEQ     exit_1
�        LDR     R2,ireq
�        CMP     R0,R2
�        BNE     wimp_loop
�        LDR     R2,[R1,#32]
�        CMN     R2,#2
�        ADREQ   R3,imess1
�        ADRNE   R3,imess2
�$        LDRNE   R0,submenuhandle
�        CMPNE   R0,R2
�        BEQ     send_info
!        LDR     R0,[R12,#&18]

        CMP     R0,#218
        BLE     wimp_loop
        LDR     R3,[R1,#36]
(        CMN     R3,#1
2        BEQ     wimp_loop
<        ADD     R1,R1,#40
F        MOV     R0,#1
P        SWI     &600F4
Z        BVS     wimp_loop
d        LDR     R0,[R1]
n        TEQ     R0,#1
x        ADREQ   R3,imess4
�!        BEQ     pre_send_info
�        TEQ     R0,#0
�        BNE     wimp_loop
�        LDR     R0,[R1,#4]
�        CMN     R0,#1
�        BNE     wimp_loop
�        ADR     R3,imess3
�
�.pre_send_info
�        SUB     R1,R1,#40
�
�.send_info
�        LDR     R0,[R3],#4
        STR     R0,[R1]
        LDR     R0,[R1,#8]
        STR     R0,[R1,#12]
"        ADD     R2,R1,#16
,        LDR     R0,isend
6        STR     R0,[R2],#4
@
J.mess_loop
T        LDRB    R0,[R3],#1
^        STRB    R0,[R2],#1
h        TEQ     R0,#0
r        BNE     mess_loop
|        MOV     R0,#17
�        LDR     R2,[R1,#4]
�'        SWI     "XWimp_SendMessage"
�        B       wimp_loop
�
�.wimp_errors
�$        STMDB   R13!,{R1,R2,R14}
�        BL      title_to_R2
�'        SWI     "XWimp_ReportError"
�!        BVS     wimp_os_error
�        TEQ     R1,#2
�        BEQ     exit_1
�#        LDMIA   R13!,{R1,R2,PC}
�
.wimp_os_error
&        SWI     "OS_GenerateError"
        SWI     "OS_Exit"
&
0.dec_values
:        DCD     1000
D        DCD     100
N        DCD     10
X
b.hex_dec
l$        STMDB   R13!,{R0-R7,R14}
v        ADD     R1,R12,#&C
�!        MOV     R0,R0,LSR #10
�!        ADR     R7,dec_values
�        MOV     R6,#�" "
�
�.hd_loop_1
�        LDR     R5,[R7],#4
�        MOV     R4,R6
�
�.hd_loop_2
�        SUBS    R3,R0,R5
�        �RPL   R4,R4,#&10
�        �RPL   R6,R6,#&10
�        ADDPL   R4,R4,#1
        MOVPL   R0,R3
        BPL     hd_loop_2
        STRB    R4,[R1],#1
         CMP     R5,#10
*        BNE     hd_loop_1
4        ADD     R0,R0,#�"0"
>        STRB    R0,[R1],#1
H        MOV     R0,#�"K"
R        STR     R0,[R1]
\#        LDMIA   R13!,{R0-R7,PC}
f
p.template_to_R1
z        ADR     R1,template
�        MOV     PC,R14
�
�
.template
�        DCD     &8
�        DCD     &88
�        DCD     &284
�        DCD     &160
�        DCD     0
�        DCD     0
�        DCD     -1
�        DCD     &84050012
�        DCD     &1070207
�        DCD     &C0E0C
        DCD     0
        DCD     -&400
        DCD     &500
$        DCD     0
.        DCD     &13D
8        DCD     0
B        DCD     1
L        DCD     0
V
`
.pointer0
j*        DCD     templateabout-template
t        DCD     -1
~-        DCD     templateend-templateabout
�        DCD     8
�
�        DCD     &9A
�        DCD     -&34
�        DCD     &276
�        DCD     -&4
�        DCD     &C700003D
�        �s("Room")
�        DCD     0
�
�        DCD     &9A
�        DCD     -&68
        DCD     &276

        DCD     -&38
        DCD     &700013D

(
.pointer1
2,        DCD     templatepurpose-template
<        DCD     -1
F2        DCD     templateauthor-templatepurpose
P
Z        DCD     &9A
d        DCD     -&9C
n        DCD     &276
x        DCD     -&6C
�        DCD     &700013D
�
�
.pointer2
�+        DCD     templateauthor-template
�        DCD     -1
�2        DCD     templateversion-templateauthor
�
�        DCD     &9A
�        DCD     -&D0
�        DCD     &276
�        DCD     -&A0
�        DCD     &700013D
�

.pointer3
,        DCD     templateversion-template
        DCD     -1
"1        DCD     templateabout-templateversion
,
6        DCD     &3E
@        DCD     -&30
J        DCD     &9A
T        DCD     -8
^        DCD     &17000019
h        �s("Name:")
r        DCD     0
|
�        DCD     &E
�        DCD     -&64
�        DCD     &9A
�        DCD     -&3C
�        DCD     &17000019
�        �s("Purpose:")
�
�        DCD     &1E
�        DCD     -&98
�        DCD     &9A
�        DCD     -&70
�        DCD     &17000019
�        �s("Author:")
        DCD     0

        DCD     &E
&        DCD     -&C8
0        DCD     &9A
:        DCD     -&A0
D        DCD     &17000019
N        �s("Version:")
X        DCD     0
b
l.templatepurpose
v2        EQUS    "Show Free memory on icon bar"
�        DCB     13
�
�.templateauthor
�        DCB     &A9
�(        EQUS    " John Wike for BAU"
�        DCB     13
�
�.templateversion
�        EQUS    both$
�        DCB     13
�
�.templateabout
�(        EQUS    "About this program"
        DCB     13

.templateend
         ALIGN
*]
4�
>�"Bytes: &";~O%-mc%
H�
R:
\:
f� �save
p&ș "OS_File",10,Save$,&FFA,,mc%,O%
z�'"Module saved as ";Save$
��
�:
�� �s(Text$)
�[OPT    pass
�        EQUS    Text$
�        DCB     0
�	ALIGN
�]
�=0
�
�
00000000  0d 00 0a 0e f4 20 3e 52  6f 6f 6d 42 61 73 0d 00  |..... >RoomBas..|
00000010  14 13 f4 20 42 79 20 20  4a 6f 68 6e 20 57 69 6b  |... By  John Wik|
00000020  65 0d 00 1e 1d f4 20 20  20 20 20 46 6f 72 20 33  |e.....     For 3|
00000030  32 2d 62 69 74 20 6d 61  63 68 69 6e 65 73 0d 00  |2-bit machines..|
00000040  28 1f f4 20 20 20 20 20  28 63 29 20 42 41 55 20  |(..     (c) BAU |
00000050  44 65 63 65 6d 62 65 72  20 31 39 39 33 0d 00 32  |December 1993..2|
00000060  05 3a 0d 00 3c 10 76 65  72 73 24 3d 22 31 2e 30  |.:..<.vers$="1.0|
00000070  30 22 0d 00 46 2e 74 6f  64 61 79 24 3d c1 91 24  |0"..F.today$=..$|
00000080  2c 35 2c 32 29 2b 22 2d  22 2b c1 91 24 2c 38 2c  |,5,2)+"-"+..$,8,|
00000090  33 29 2b 22 2d 22 2b c1  91 24 2c 31 32 2c 34 29  |3)+"-"+..$,12,4)|
000000a0  0d 00 50 1f 62 6f 74 68  24 3d 76 65 72 73 24 2b  |..P.both$=vers$+|
000000b0  22 20 28 22 2b 74 6f 64  61 79 24 2b 22 29 22 0d  |" ("+today$+")".|
000000c0  00 5a 1c 48 65 6c 70 24  3d 22 52 6f 6f 6d 22 2b  |.Z.Help$="Room"+|
000000d0  bd 39 2b bd 39 2b 62 6f  74 68 24 0d 00 64 13 53  |.9+.9+both$..d.S|
000000e0  61 76 65 24 3d 22 52 6f  6f 6d 4d 6f 64 22 0d 00  |ave$="RoomMod"..|
000000f0  6e 10 70 6f 6c 6c 6d 61  73 6b 3d 26 33 30 0d 00  |n.pollmask=&30..|
00000100  78 17 de 20 20 20 20 20  6d 63 25 20 20 20 20 20  |x..     mc%     |
00000110  26 31 30 30 30 0d 00 82  07 f2 6d 63 0d 00 8c 09  |&1000.....mc....|
00000120  f2 73 61 76 65 0d 00 96  05 e0 0d 00 a0 05 3a 0d  |.save.........:.|
00000130  00 aa 09 dd 20 f2 6d 63  0d 00 b4 14 e3 20 70 61  |.... .mc..... pa|
00000140  73 73 3d 34 20 b8 20 36  20 88 20 32 0d 00 be 0f  |ss=4 . 6 . 2....|
00000150  50 25 3d 30 3a 4f 25 3d  6d 63 25 0d 00 c8 0d 5b  |P%=0:O%=mc%....[|
00000160  4f 50 54 20 70 61 73 73  0d 00 d2 09 2e 6f 72 69  |OPT pass.....ori|
00000170  67 0d 00 dc 19 20 20 20  20 20 20 20 20 44 43 44  |g....        DCD|
00000180  20 20 20 20 20 73 74 61  72 74 0d 00 e6 18 20 20  |     start....  |
00000190  20 20 20 20 20 20 44 43  44 20 20 20 20 20 69 6e  |      DCD     in|
000001a0  69 74 0d 00 f0 19 20 20  20 20 20 20 20 20 44 43  |it....        DC|
000001b0  44 20 20 20 20 20 66 69  6e 61 6c 0d 00 fa 1b 20  |D     final.... |
000001c0  20 20 20 20 20 20 20 44  43 44 20 20 20 20 20 73  |       DCD     s|
000001d0  65 72 76 69 63 65 0d 01  04 19 20 20 20 20 20 20  |ervice....      |
000001e0  20 20 44 43 44 20 20 20  20 20 74 69 74 6c 65 0d  |  DCD     title.|
000001f0  01 0e 18 20 20 20 20 20  20 20 20 44 43 44 20 20  |...        DCD  |
00000200  20 20 20 68 65 6c 70 0d  01 18 1b 20 20 20 20 20  |   help....     |
00000210  20 20 20 44 43 44 20 20  20 20 20 63 6f 6d 6d 61  |   DCD     comma|
00000220  6e 64 0d 01 22 15 20 20  20 20 20 20 20 20 44 43  |nd..".        DC|
00000230  44 20 20 20 20 20 30 0d  01 2c 15 20 20 20 20 20  |D     0..,.     |
00000240  20 20 20 44 43 44 20 20  20 20 20 30 0d 01 36 15  |   DCD     0..6.|
00000250  20 20 20 20 20 20 20 20  44 43 44 20 20 20 20 20  |        DCD     |
00000260  30 0d 01 40 15 20 20 20  20 20 20 20 20 44 43 44  |0..@.        DCD|
00000270  20 20 20 20 20 30 0d 01  4a 04 0d 01 54 15 2e 68  |     0..J...T..h|
00000280  65 6c 70 20 20 20 a4 73  28 48 65 6c 70 24 29 0d  |elp   .s(Help$).|
00000290  01 5e 04 0d 01 68 16 2e  73 65 72 76 69 63 65 5f  |.^...h..service_|
000002a0  73 74 61 72 74 77 69 6d  70 0d 01 72 22 20 20 20  |startwimp..r"   |
000002b0  20 20 20 20 20 53 54 4d  44 42 20 20 20 52 31 33  |     STMDB   R13|
000002c0  21 2c 7b 52 31 32 2c 52  31 34 7d 0d 01 7c 1d 20  |!,{R12,R14}..|. |
000002d0  20 20 20 20 20 20 20 4c  44 52 20 20 20 20 20 52  |       LDR     R|
000002e0  31 32 2c 5b 52 31 32 5d  0d 01 86 1d 20 20 20 20  |12,[R12]....    |
000002f0  20 20 20 20 4c 44 52 20  20 20 20 20 52 31 34 2c  |    LDR     R14,|
00000300  5b 52 31 32 5d 0d 01 90  1a 20 20 20 20 20 20 20  |[R12]....       |
00000310  20 54 45 51 20 20 20 20  20 52 31 34 2c 23 30 0d  | TEQ     R14,#0.|
00000320  01 9a 1a 20 20 20 20 20  20 20 20 4d 56 4e 45 51  |...        MVNEQ|
00000330  20 20 20 52 31 34 2c 23  30 0d 01 a4 1d 20 20 20  |   R14,#0....   |
00000340  20 20 20 20 20 53 54 52  45 51 20 20 20 52 31 34  |     STREQ   R14|
00000350  2c 5b 52 31 32 5d 0d 01  ae 16 20 20 20 20 20 20  |,[R12]....      |
00000360  20 20 ec 51 20 20 20 52  31 2c 23 30 0d 01 b8 1e  |  .Q   R1,#0....|
00000370  20 20 20 20 20 20 20 20  41 44 52 45 51 20 20 20  |        ADREQ   |
00000380  52 30 2c 63 6f 6d 6d 61  6e 64 0d 01 c2 21 20 20  |R0,command...!  |
00000390  20 20 20 20 20 20 4c 44  4d 49 41 20 20 20 52 31  |      LDMIA   R1|
000003a0  33 21 2c 7b 52 31 32 2c  50 43 7d 0d 01 cc 04 0d  |3!,{R12,PC}.....|
000003b0  01 d6 10 2e 74 69 74 6c  65 5f 74 6f 5f 52 32 0d  |....title_to_R2.|
000003c0  01 e0 1c 20 20 20 20 20  20 20 20 41 44 52 20 20  |...        ADR  |
000003d0  20 20 20 52 32 2c 74 69  74 6c 65 0d 01 ea 1a 20  |   R2,title.... |
000003e0  20 20 20 20 20 20 20 4d  4f 56 20 20 20 20 20 50  |       MOV     P|
000003f0  43 2c 52 31 34 0d 01 f4  04 0d 01 fe 0c 2e 63 6f  |C,R14.........co|
00000400  6d 6d 61 6e 64 0d 02 08  1e 20 20 20 20 20 20 20  |mmand....       |
00000410  20 45 51 55 53 20 20 20  20 22 44 65 73 6b 74 6f  | EQUS    "Deskto|
00000420  70 5f 22 0d 02 12 04 0d  02 1c 0a 2e 74 69 74 6c  |p_".........titl|
00000430  65 0d 02 26 16 20 20 20  20 20 20 20 20 a4 73 28  |e..&.        .s(|
00000440  22 52 6f 6f 6d 22 29 0d  02 30 1f 20 20 20 20 20  |"Room")..0.     |
00000450  20 20 20 44 43 44 20 20  20 20 20 63 6f 6d 6d 61  |   DCD     comma|
00000460  6e 64 63 6f 64 65 0d 02  3a 15 20 20 20 20 20 20  |ndcode..:.      |
00000470  20 20 44 43 44 20 20 20  20 20 30 0d 02 44 15 20  |  DCD     0..D. |
00000480  20 20 20 20 20 20 20 44  43 44 20 20 20 20 20 30  |       DCD     0|
00000490  0d 02 4e 1f 20 20 20 20  20 20 20 20 44 43 44 20  |..N.        DCD |
000004a0  20 20 20 20 63 6f 6d 6d  61 6e 64 68 65 6c 70 0d  |    commandhelp.|
000004b0  02 58 15 20 20 20 20 20  20 20 20 44 43 42 20 20  |.X.        DCB  |
000004c0  20 20 20 30 0d 02 62 04  0d 02 6c 10 2e 63 6f 6d  |   0..b...l..com|
000004d0  6d 61 6e 64 68 65 6c 70  0d 02 76 6e 20 20 20 20  |mandhelp..vn    |
000004e0  20 20 20 20 a4 73 28 22  54 68 65 20 52 6f 6f 6d  |    .s("The Room|
000004f0  20 6d 6f 64 75 6c 65 20  67 69 76 65 73 20 61 6e  | module gives an|
00000500  20 69 63 6f 6e 20 62 61  72 20 64 69 73 70 6c 61  | icon bar displa|
00000510  79 20 6f 66 20 46 72 65  65 20 6d 65 6d 6f 72 79  |y of Free memory|
00000520  2e 22 2b bd 31 33 2b 22  55 73 65 20 2a 44 65 73  |."+.13+"Use *Des|
00000530  6b 74 6f 70 20 74 6f 20  73 74 61 72 74 20 69 74  |ktop to start it|
00000540  20 75 70 2e 22 29 0d 02  80 04 0d 02 8a 10 2e 63  | up.").........c|
00000550  6f 6d 6d 61 6e 64 63 6f  64 65 0d 02 94 1e 20 20  |ommandcode....  |
00000560  20 20 20 20 20 20 53 54  4d 44 42 20 20 20 52 31  |      STMDB   R1|
00000570  33 21 2c 7b 52 31 34 7d  0d 02 9e 1d 20 20 20 20  |3!,{R14}....    |
00000580  20 20 20 20 4c 44 52 20  20 20 20 20 52 31 34 2c  |    LDR     R14,|
00000590  5b 52 31 32 5d 0d 02 a8  1d 20 20 20 20 20 20 20  |[R12]....       |
000005a0  20 4c 44 52 20 20 20 20  20 52 31 34 2c 5b 52 31  | LDR     R14,[R1|
000005b0  34 5d 0d 02 b2 1a 20 20  20 20 20 20 20 20 54 45  |4]....        TE|
000005c0  51 20 20 20 20 20 52 31  34 2c 23 30 0d 02 bc 1e  |Q     R14,#0....|
000005d0  20 20 20 20 20 20 20 20  4c 44 4d 45 51 49 41 20  |        LDMEQIA |
000005e0  52 31 33 21 2c 7b 52 31  34 7d 0d 02 c6 24 20 20  |R13!,{R14}...$  |
000005f0  20 20 20 20 20 20 41 44  52 45 51 20 20 20 52 30  |      ADREQ   R0|
00000600  2c 64 65 73 6b 74 6f 70  5f 65 72 72 6f 72 0d 02  |,desktop_error..|
00000610  d0 19 20 20 20 20 20 20  20 20 42 45 51 20 20 20  |..        BEQ   |
00000620  20 20 73 65 74 5f 56 0d  02 da 19 20 20 20 20 20  |  set_V....     |
00000630  20 20 20 4d 4f 56 20 20  20 20 20 52 30 2c 23 32  |   MOV     R0,#2|
00000640  0d 02 e4 1c 20 20 20 20  20 20 20 20 41 44 52 20  |....        ADR |
00000650  20 20 20 20 52 31 2c 74  69 74 6c 65 0d 02 ee 20  |    R1,title... |
00000660  20 20 20 20 20 20 20 20  53 57 49 20 20 20 20 20  |        SWI     |
00000670  22 58 4f 53 5f 4d 6f 64  75 6c 65 22 0d 02 f8 1d  |"XOS_Module"....|
00000680  20 20 20 20 20 20 20 20  4c 44 4d 49 41 20 20 20  |        LDMIA   |
00000690  52 31 33 21 2c 7b 50 43  7d 0d 03 02 04 0d 03 0c  |R13!,{PC}.......|
000006a0  12 2e 64 65 73 6b 74 6f  70 5f 65 72 72 6f 72 0d  |..desktop_error.|
000006b0  03 16 19 20 20 20 20 20  20 20 20 44 43 44 20 20  |...        DCD  |
000006c0  20 20 20 26 31 30 30 31  0d 03 20 33 20 20 20 20  |   &1001.. 3    |
000006d0  20 20 20 20 a4 73 28 22  55 73 65 20 2a 44 65 73  |    .s("Use *Des|
000006e0  6b 74 6f 70 20 74 6f 20  73 74 61 72 74 20 52 6f  |ktop to start Ro|
000006f0  6f 6d 20 6d 6f 64 75 6c  65 22 29 0d 03 2a 04 0d  |om module")..*..|
00000700  03 34 0a 2e 73 65 74 5f  56 0d 03 3e 24 20 20 20  |.4..set_V..>$   |
00000710  20 20 20 20 20 84 52 53  20 20 20 20 50 43 2c 52  |     .RS    PC,R|
00000720  31 34 2c 23 26 31 30 30  30 30 30 30 30 0d 03 48  |14,#&10000000..H|
00000730  04 0d 03 52 0f 2e 69 6e  69 74 5f 65 72 72 6f 72  |...R..init_error|
00000740  0d 03 5c 19 20 20 20 20  20 20 20 20 44 43 44 20  |..\.        DCD |
00000750  20 20 20 20 26 31 30 30  30 0d 03 66 2d 20 20 20  |    &1000..f-   |
00000760  20 20 20 20 20 a4 73 28  22 52 6f 6f 6d 20 75 6e  |     .s("Room un|
00000770  61 62 6c 65 20 74 6f 20  63 6c 61 69 6d 20 6d 65  |able to claim me|
00000780  6d 6f 72 79 22 29 0d 03  70 04 0d 03 7a 09 2e 69  |mory")..p...z..i|
00000790  6e 69 74 0d 03 84 25 20  20 20 20 20 20 20 20 53  |nit...%        S|
000007a0  54 4d 44 42 20 20 20 52  31 33 21 2c 7b 52 30 2d  |TMDB   R13!,{R0-|
000007b0  52 31 32 2c 52 31 34 7d  0d 03 8e 19 20 20 20 20  |R12,R14}....    |
000007c0  20 20 20 20 4d 4f 56 20  20 20 20 20 52 30 2c 23  |    MOV     R0,#|
000007d0  36 0d 03 98 1c 20 20 20  20 20 20 20 20 4d 4f 56  |6....        MOV|
000007e0  20 20 20 20 20 52 33 2c  23 26 33 30 30 0d 03 a2  |     R3,#&300...|
000007f0  1e 20 20 20 20 20 20 20  20 41 44 44 20 20 20 20  |.        ADD    |
00000800  20 52 33 2c 52 33 2c 23  26 31 43 0d 03 ac 20 20  | R3,R3,#&1C...  |
00000810  20 20 20 20 20 20 20 53  57 49 20 20 20 20 20 22  |       SWI     "|
00000820  58 4f 53 5f 4d 6f 64 75  6c 65 22 0d 03 b6 25 20  |XOS_Module"...% |
00000830  20 20 20 20 20 20 20 4c  44 4d 56 53 49 41 20 52  |       LDMVSIA R|
00000840  31 33 21 2c 7b 52 30 2d  52 31 32 2c 52 31 34 7d  |13!,{R0-R12,R14}|
00000850  0d 03 c0 21 20 20 20 20  20 20 20 20 41 44 52 56  |...!        ADRV|
00000860  53 20 20 20 52 30 2c 69  6e 69 74 5f 65 72 72 6f  |S   R0,init_erro|
00000870  72 0d 03 ca 19 20 20 20  20 20 20 20 20 42 56 53  |r....        BVS|
00000880  20 20 20 20 20 73 65 74  5f 56 0d 03 d4 1c 20 20  |     set_V....  |
00000890  20 20 20 20 20 20 53 54  52 20 20 20 20 20 52 32  |      STR     R2|
000008a0  2c 5b 52 31 32 5d 0d 03  de 19 20 20 20 20 20 20  |,[R12]....      |
000008b0  20 20 4d 4f 56 20 20 20  20 20 52 30 2c 23 30 0d  |  MOV     R0,#0.|
000008c0  03 e8 1b 20 20 20 20 20  20 20 20 53 54 52 20 20  |...        STR  |
000008d0  20 20 20 52 30 2c 5b 52  32 5d 0d 03 f2 25 20 20  |   R0,[R2]...%  |
000008e0  20 20 20 20 20 20 4c 44  4d 49 41 20 20 20 52 31  |      LDMIA   R1|
000008f0  33 21 2c 7b 52 30 2d 52  31 32 2c 50 43 7d 5e 0d  |3!,{R0-R12,PC}^.|
00000900  03 fc 04 0d 04 06 0a 2e  66 69 6e 61 6c 0d 04 10  |........final...|
00000910  25 20 20 20 20 20 20 20  20 53 54 4d 44 42 20 20  |%        STMDB  |
00000920  20 52 31 33 21 2c 7b 52  31 2d 52 31 32 2c 52 31  | R13!,{R1-R12,R1|
00000930  34 7d 0d 04 1a 1d 20 20  20 20 20 20 20 20 4c 44  |4}....        LD|
00000940  52 20 20 20 20 20 52 31  32 2c 5b 52 31 32 5d 0d  |R     R12,[R12].|
00000950  04 24 1c 20 20 20 20 20  20 20 20 4c 44 52 20 20  |.$.        LDR  |
00000960  20 20 20 52 30 2c 5b 52  31 32 5d 0d 04 2e 19 20  |   R0,[R12].... |
00000970  20 20 20 20 20 20 20 43  4d 50 20 20 20 20 20 52  |       CMP     R|
00000980  30 2c 23 30 0d 04 38 1b  20 20 20 20 20 20 20 20  |0,#0..8.        |
00000990  4c 44 52 47 54 20 20 20  52 31 2c 74 61 73 6b 0d  |LDRGT   R1,task.|
000009a0  04 42 25 20 20 20 20 20  20 20 20 53 57 49 47 54  |.B%        SWIGT|
000009b0  20 20 20 22 58 57 69 6d  70 5f 43 6c 6f 73 65 44  |   "XWimp_CloseD|
000009c0  6f 77 6e 22 0d 04 4c 19  20 20 20 20 20 20 20 20  |own"..L.        |
000009d0  4d 4f 56 20 20 20 20 20  52 30 2c 23 37 0d 04 56  |MOV     R0,#7..V|
000009e0  1a 20 20 20 20 20 20 20  20 4d 4f 56 20 20 20 20  |.        MOV    |
000009f0  20 52 32 2c 52 31 32 0d  04 60 20 20 20 20 20 20  | R2,R12..`      |
00000a00  20 20 20 53 57 49 20 20  20 20 20 22 58 4f 53 5f  |   SWI     "XOS_|
00000a10  4d 6f 64 75 6c 65 22 0d  04 6a 25 20 20 20 20 20  |Module"..j%     |
00000a20  20 20 20 4c 44 4d 49 41  20 20 20 52 31 33 21 2c  |   LDMIA   R13!,|
00000a30  7b 52 31 2d 52 31 32 2c  50 43 7d 5e 0d 04 74 04  |{R1-R12,PC}^..t.|
00000a40  0d 04 7e 0c 2e 73 65 72  76 69 63 65 0d 04 88 1b  |..~..service....|
00000a50  20 20 20 20 20 20 20 20  54 45 51 20 20 20 20 20  |        TEQ     |
00000a60  52 31 2c 23 26 32 37 0d  04 92 21 20 20 20 20 20  |R1,#&27...!     |
00000a70  20 20 20 42 45 51 20 20  20 20 20 73 65 72 76 69  |   BEQ     servi|
00000a80  63 65 5f 72 65 73 65 74  0d 04 9c 1b 20 20 20 20  |ce_reset....    |
00000a90  20 20 20 20 54 45 51 20  20 20 20 20 52 31 2c 23  |    TEQ     R1,#|
00000aa0  26 34 39 0d 04 a6 25 20  20 20 20 20 20 20 20 42  |&49...%        B|
00000ab0  45 51 20 20 20 20 20 73  65 72 76 69 63 65 5f 73  |EQ     service_s|
00000ac0  74 61 72 74 77 69 6d 70  0d 04 b0 1b 20 20 20 20  |tartwimp....    |
00000ad0  20 20 20 20 54 45 51 20  20 20 20 20 52 31 2c 23  |    TEQ     R1,#|
00000ae0  26 34 41 0d 04 ba 1a 20  20 20 20 20 20 20 20 4d  |&4A....        M|
00000af0  4f 56 4e 45 20 20 20 50  43 2c 52 31 34 0d 04 c4  |OVNE   PC,R14...|
00000b00  04 0d 04 ce 22 20 20 20  20 20 20 20 20 53 54 4d  |...."        STM|
00000b10  44 42 20 20 20 52 31 33  21 2c 7b 52 31 32 2c 52  |DB   R13!,{R12,R|
00000b20  31 34 7d 0d 04 d8 1d 20  20 20 20 20 20 20 20 4c  |14}....        L|
00000b30  44 52 20 20 20 20 20 52  31 32 2c 5b 52 31 32 5d  |DR     R12,[R12]|
00000b40  0d 04 e2 1d 20 20 20 20  20 20 20 20 4c 44 52 20  |....        LDR |
00000b50  20 20 20 20 52 31 34 2c  5b 52 31 32 5d 0d 04 ec  |    R14,[R12]...|
00000b60  1a 20 20 20 20 20 20 20  20 43 4d 50 20 20 20 20  |.        CMP    |
00000b70  20 52 31 34 2c 23 30 0d  04 f6 1a 20 20 20 20 20  | R14,#0....     |
00000b80  20 20 20 4d 4f 56 4c 54  20 20 20 52 31 34 2c 23  |   MOVLT   R14,#|
00000b90  30 0d 05 00 1d 20 20 20  20 20 20 20 20 53 54 52  |0....        STR|
00000ba0  4c 54 20 20 20 52 31 34  2c 5b 52 31 32 5d 0d 05  |LT   R14,[R12]..|
00000bb0  0a 21 20 20 20 20 20 20  20 20 4c 44 4d 49 41 20  |.!        LDMIA |
00000bc0  20 20 52 31 33 21 2c 7b  52 31 32 2c 50 43 7d 0d  |  R13!,{R12,PC}.|
00000bd0  05 14 04 0d 05 1e 12 2e  73 65 72 76 69 63 65 5f  |........service_|
00000be0  72 65 73 65 74 0d 05 28  22 20 20 20 20 20 20 20  |reset..("       |
00000bf0  20 53 54 4d 44 42 20 20  20 52 31 33 21 2c 7b 52  | STMDB   R13!,{R|
00000c00  31 32 2c 52 31 34 7d 0d  05 32 1d 20 20 20 20 20  |12,R14}..2.     |
00000c10  20 20 20 4c 44 52 20 20  20 20 20 52 31 32 2c 5b  |   LDR     R12,[|
00000c20  52 31 32 5d 0d 05 3c 1a  20 20 20 20 20 20 20 20  |R12]..<.        |
00000c30  4d 4f 56 20 20 20 20 20  52 31 34 2c 23 30 0d 05  |MOV     R14,#0..|
00000c40  46 1d 20 20 20 20 20 20  20 20 53 54 52 20 20 20  |F.        STR   |
00000c50  20 20 52 31 34 2c 5b 52  31 32 5d 0d 05 50 21 20  |  R14,[R12]..P! |
00000c60  20 20 20 20 20 20 20 4c  44 4d 49 41 20 20 20 52  |       LDMIA   R|
00000c70  31 33 21 2c 7b 52 31 32  2c 50 43 7d 0d 05 5a 04  |13!,{R12,PC}..Z.|
00000c80  0d 05 64 12 2e 74 72 79  5f 63 6c 6f 73 65 64 6f  |..d..try_closedo|
00000c90  77 6e 0d 05 6e 1a 20 20  20 20 20 20 20 20 4d 4f  |wn..n.        MO|
00000ca0  56 20 20 20 20 20 52 36  2c 52 31 34 0d 05 78 1c  |V     R6,R14..x.|
00000cb0  20 20 20 20 20 20 20 20  4c 44 52 20 20 20 20 20  |        LDR     |
00000cc0  52 30 2c 5b 52 31 32 5d  0d 05 82 19 20 20 20 20  |R0,[R12]....    |
00000cd0  20 20 20 20 43 4d 50 20  20 20 20 20 52 30 2c 23  |    CMP     R0,#|
00000ce0  30 0d 05 8c 1b 20 20 20  20 20 20 20 20 4c 44 52  |0....        LDR|
00000cf0  47 54 20 20 20 52 31 2c  74 61 73 6b 0d 05 96 25  |GT   R1,task...%|
00000d00  20 20 20 20 20 20 20 20  53 57 49 47 54 20 20 20  |        SWIGT   |
00000d10  22 58 57 69 6d 70 5f 43  6c 6f 73 65 44 6f 77 6e  |"XWimp_CloseDown|
00000d20  22 0d 05 a0 1a 20 20 20  20 20 20 20 20 4d 4f 56  |"....        MOV|
00000d30  20 20 20 20 20 52 31 34  2c 23 30 0d 05 aa 1d 20  |     R14,#0.... |
00000d40  20 20 20 20 20 20 20 53  54 52 20 20 20 20 20 52  |       STR     R|
00000d50  31 34 2c 5b 52 31 32 5d  0d 05 b4 19 20 20 20 20  |14,[R12]....    |
00000d60  20 20 20 20 4d 4f 56 20  20 20 20 20 50 43 2c 52  |    MOV     PC,R|
00000d70  36 0d 05 be 04 0d 05 c8  1a 2e 74 61 73 6b 20 20  |6.........task  |
00000d80  20 45 51 55 53 20 20 20  20 22 54 41 53 4b 22 0d  | EQUS    "TASK".|
00000d90  05 d2 04 0d 05 dc 0b 2e  65 78 69 74 5f 32 0d 05  |........exit_2..|
00000da0  e6 19 20 20 20 20 20 20  20 20 4d 4f 56 20 20 20  |..        MOV   |
00000db0  20 20 52 31 2c 23 32 0d  05 f0 1f 20 20 20 20 20  |  R1,#2....     |
00000dc0  20 20 20 42 4c 20 20 20  20 20 20 77 69 6d 70 5f  |   BL      wimp_|
00000dd0  65 72 72 6f 72 73 0d 05  fa 04 0d 06 04 0b 2e 65  |errors.........e|
00000de0  78 69 74 5f 31 0d 06 0e  21 20 20 20 20 20 20 20  |xit_1...!       |
00000df0  20 42 4c 20 20 20 20 20  20 74 72 79 5f 63 6c 6f  | BL      try_clo|
00000e00  73 65 64 6f 77 6e 0d 06  18 1d 20 20 20 20 20 20  |sedown....      |
00000e10  20 20 53 57 49 20 20 20  20 20 22 4f 53 5f 45 78  |  SWI     "OS_Ex|
00000e20  69 74 22 0d 06 22 04 0d  06 2c 0d 2e 70 6f 69 6e  |it".."...,..poin|
00000e30  74 65 72 73 0d 06 36 25  20 20 20 20 20 20 20 20  |ters..6%        |
00000e40  44 43 44 20 20 20 20 20  70 6f 69 6e 74 65 72 30  |DCD     pointer0|
00000e50  2d 74 65 6d 70 6c 61 74  65 0d 06 40 25 20 20 20  |-template..@%   |
00000e60  20 20 20 20 20 44 43 44  20 20 20 20 20 70 6f 69  |     DCD     poi|
00000e70  6e 74 65 72 31 2d 74 65  6d 70 6c 61 74 65 0d 06  |nter1-template..|
00000e80  4a 25 20 20 20 20 20 20  20 20 44 43 44 20 20 20  |J%        DCD   |
00000e90  20 20 70 6f 69 6e 74 65  72 32 2d 74 65 6d 70 6c  |  pointer2-templ|
00000ea0  61 74 65 0d 06 54 25 20  20 20 20 20 20 20 20 44  |ate..T%        D|
00000eb0  43 44 20 20 20 20 20 70  6f 69 6e 74 65 72 33 2d  |CD     pointer3-|
00000ec0  74 65 6d 70 6c 61 74 65  0d 06 5e 15 20 20 20 20  |template..^.    |
00000ed0  20 20 20 20 44 43 44 20  20 20 20 20 30 0d 06 68  |    DCD     0..h|
00000ee0  04 0d 06 72 0d 2e 70 74  72 5f 76 61 6c 73 0d 06  |...r..ptr_vals..|
00000ef0  7c 2a 20 20 20 20 20 20  20 20 44 43 44 20 20 20  ||*        DCD   |
00000f00  20 20 74 65 6d 70 6c 61  74 65 61 62 6f 75 74 2d  |  templateabout-|
00000f10  74 65 6d 70 6c 61 74 65  0d 06 86 2c 20 20 20 20  |template...,    |
00000f20  20 20 20 20 44 43 44 20  20 20 20 20 74 65 6d 70  |    DCD     temp|
00000f30  6c 61 74 65 70 75 72 70  6f 73 65 2d 74 65 6d 70  |latepurpose-temp|
00000f40  6c 61 74 65 0d 06 90 2b  20 20 20 20 20 20 20 20  |late...+        |
00000f50  44 43 44 20 20 20 20 20  74 65 6d 70 6c 61 74 65  |DCD     template|
00000f60  61 75 74 68 6f 72 2d 74  65 6d 70 6c 61 74 65 0d  |author-template.|
00000f70  06 9a 2c 20 20 20 20 20  20 20 20 44 43 44 20 20  |..,        DCD  |
00000f80  20 20 20 74 65 6d 70 6c  61 74 65 76 65 72 73 69  |   templateversi|
00000f90  6f 6e 2d 74 65 6d 70 6c  61 74 65 0d 06 a4 04 0d  |on-template.....|
00000fa0  06 ae 0a 2e 73 74 61 72  74 0d 06 b8 1d 20 20 20  |....start....   |
00000fb0  20 20 20 20 20 4c 44 52  20 20 20 20 20 52 31 32  |     LDR     R12|
00000fc0  2c 5b 52 31 32 5d 0d 06  c2 1c 20 20 20 20 20 20  |,[R12]....      |
00000fd0  20 20 4c 44 52 20 20 20  20 20 52 30 2c 5b 52 31  |  LDR     R0,[R1|
00000fe0  32 5d 0d 06 cc 19 20 20  20 20 20 20 20 20 43 4d  |2]....        CM|
00000ff0  50 20 20 20 20 20 52 30  2c 23 30 0d 06 d6 1b 20  |P     R0,#0.... |
00001000  20 20 20 20 20 20 20 4c  44 52 47 54 20 20 20 52  |       LDRGT   R|
00001010  31 2c 74 61 73 6b 0d 06  e0 25 20 20 20 20 20 20  |1,task...%      |
00001020  20 20 53 57 49 47 54 20  20 20 22 58 57 69 6d 70  |  SWIGT   "XWimp|
00001030  5f 43 6c 6f 73 65 44 6f  77 6e 22 0d 06 ea 19 20  |_CloseDown".... |
00001040  20 20 20 20 20 20 20 4d  4f 56 47 54 20 20 20 52  |       MOVGT   R|
00001050  30 2c 23 30 0d 06 f4 1c  20 20 20 20 20 20 20 20  |0,#0....        |
00001060  53 54 52 47 54 20 20 20  52 30 2c 5b 52 31 32 5d  |STRGT   R0,[R12]|
00001070  0d 06 fe 1f 20 20 20 20  20 20 20 20 41 44 44 20  |....        ADD |
00001080  20 20 20 20 52 33 2c 52  31 32 2c 23 26 31 43 0d  |    R3,R12,#&1C.|
00001090  07 08 20 20 20 20 20 20  20 20 20 41 44 44 20 20  |..         ADD  |
000010a0  20 20 20 52 31 33 2c 52  33 2c 23 26 33 30 30 0d  |   R13,R3,#&300.|
000010b0  07 12 1b 20 20 20 20 20  20 20 20 4c 44 52 20 20  |...        LDR  |
000010c0  20 20 20 52 30 2c 69 72  65 71 0d 07 1c 1b 20 20  |   R0,ireq....  |
000010d0  20 20 20 20 20 20 53 54  52 20 20 20 20 20 52 30  |      STR     R0|
000010e0  2c 5b 52 33 5d 0d 07 26  19 20 20 20 20 20 20 20  |,[R3]..&.       |
000010f0  20 4d 4f 56 20 20 20 20  20 52 30 2c 23 30 0d 07  | MOV     R0,#0..|
00001100  30 1e 20 20 20 20 20 20  20 20 53 54 52 20 20 20  |0.        STR   |
00001110  20 20 52 30 2c 5b 52 33  2c 23 34 5d 0d 07 3a 1b  |  R0,[R3,#4]..:.|
00001120  20 20 20 20 20 20 20 20  4d 4f 56 20 20 20 20 20  |        MOV     |
00001130  52 30 2c 23 33 30 30 0d  07 44 1b 20 20 20 20 20  |R0,#300..D.     |
00001140  20 20 20 4c 44 52 20 20  20 20 20 52 31 2c 74 61  |   LDR     R1,ta|
00001150  73 6b 0d 07 4e 1f 20 20  20 20 20 20 20 20 42 4c  |sk..N.        BL|
00001160  20 20 20 20 20 20 74 69  74 6c 65 5f 74 6f 5f 52  |      title_to_R|
00001170  32 0d 07 58 26 20 20 20  20 20 20 20 20 53 57 49  |2..X&        SWI|
00001180  20 20 20 20 20 22 58 57  69 6d 70 5f 49 6e 69 74  |     "XWimp_Init|
00001190  69 61 6c 69 73 65 22 0d  07 62 1a 20 20 20 20 20  |ialise"..b.     |
000011a0  20 20 20 42 56 53 20 20  20 20 20 65 78 69 74 5f  |   BVS     exit_|
000011b0  31 0d 07 6c 21 20 20 20  20 20 20 20 20 53 54 52  |1..l!        STR|
000011c0  20 20 20 20 20 52 30 2c  5b 52 31 32 2c 23 26 31  |     R0,[R12,#&1|
000011d0  38 5d 0d 07 76 1c 20 20  20 20 20 20 20 20 53 54  |8]..v.        ST|
000011e0  52 20 20 20 20 20 52 31  2c 5b 52 31 32 5d 0d 07  |R     R1,[R12]..|
000011f0  80 27 20 20 20 20 20 20  20 20 53 57 49 20 20 20  |.'        SWI   |
00001200  20 20 22 4f 53 5f 52 65  61 64 4d 65 6d 4d 61 70  |  "OS_ReadMemMap|
00001210  49 6e 66 6f 22 0d 07 8a  1c 20 20 20 20 20 20 20  |Info"....       |
00001220  20 4d 55 4c 20 20 20 20  20 52 32 2c 52 30 2c 52  | MUL     R2,R0,R|
00001230  31 0d 07 94 19 20 20 20  20 20 20 20 20 4d 4f 56  |1....        MOV|
00001240  20 20 20 20 20 52 30 2c  52 32 0d 07 9e 1f 20 20  |     R0,R2....  |
00001250  20 20 20 20 20 20 53 54  52 20 20 20 20 20 52 30  |      STR     R0|
00001260  2c 5b 52 31 32 2c 23 38  5d 0d 07 a8 15 20 20 20  |,[R12,#8]....   |
00001270  20 20 20 20 20 42 4c 68  65 78 5f 64 65 63 0d 07  |     BLhex_dec..|
00001280  b2 1f 20 20 20 20 20 20  20 20 42 4c 20 20 20 20  |..        BL    |
00001290  20 20 74 72 79 5f 73 70  72 69 74 65 73 0d 07 bc  |  try_sprites...|
000012a0  1a 20 20 20 20 20 20 20  20 42 56 53 20 20 20 20  |.        BVS    |
000012b0  20 65 78 69 74 5f 32 0d  07 c6 04 0d 07 d0 1f 20  | exit_2........ |
000012c0  20 20 20 20 20 20 20 41  44 52 20 20 20 20 20 52  |       ADR     R|
000012d0  34 2c 70 74 72 5f 76 61  6c 73 0d 07 da 1f 20 20  |4,ptr_vals....  |
000012e0  20 20 20 20 20 20 41 44  52 20 20 20 20 20 52 33  |      ADR     R3|
000012f0  2c 70 6f 69 6e 74 65 72  73 0d 07 e4 22 20 20 20  |,pointers..."   |
00001300  20 20 20 20 20 42 4c 20  20 20 20 20 20 74 65 6d  |     BL      tem|
00001310  70 6c 61 74 65 5f 74 6f  5f 52 31 0d 07 ee 04 0d  |plate_to_R1.....|
00001320  07 f8 11 2e 70 6f 69 6e  74 65 72 5f 6c 6f 6f 70  |....pointer_loop|
00001330  0d 08 02 1e 20 20 20 20  20 20 20 20 4c 44 52 20  |....        LDR |
00001340  20 20 20 20 52 30 2c 5b  52 33 5d 2c 23 34 0d 08  |    R0,[R3],#4..|
00001350  0c 1e 20 20 20 20 20 20  20 20 4c 44 52 20 20 20  |..        LDR   |
00001360  20 20 52 32 2c 5b 52 34  5d 2c 23 34 0d 08 16 19  |  R2,[R4],#4....|
00001370  20 20 20 20 20 20 20 20  54 45 51 20 20 20 20 20  |        TEQ     |
00001380  52 30 2c 23 30 0d 08 20  1c 20 20 20 20 20 20 20  |R0,#0.. .       |
00001390  20 41 44 44 4e 45 20 20  20 52 32 2c 52 32 2c 52  | ADDNE   R2,R2,R|
000013a0  31 0d 08 2a 1e 20 20 20  20 20 20 20 20 53 54 52  |1..*.        STR|
000013b0  4e 45 20 20 20 52 32 2c  5b 52 31 2c 52 30 5d 0d  |NE   R2,[R1,R0].|
000013c0  08 34 20 20 20 20 20 20  20 20 20 42 4e 45 20 20  |.4         BNE  |
000013d0  20 20 20 70 6f 69 6e 74  65 72 5f 6c 6f 6f 70 0d  |   pointer_loop.|
000013e0  08 3e 28 20 20 20 20 20  20 20 20 53 57 49 20 20  |.>(        SWI  |
000013f0  20 20 20 22 58 57 69 6d  70 5f 43 72 65 61 74 65  |   "XWimp_Create|
00001400  57 69 6e 64 6f 77 22 0d  08 48 24 20 20 20 20 20  |Window"..H$     |
00001410  20 20 20 53 54 52 20 20  20 20 20 52 30 2c 73 75  |   STR     R0,su|
00001420  62 6d 65 6e 75 68 61 6e  64 6c 65 0d 08 52 04 0d  |bmenuhandle..R..|
00001430  08 5c 0e 2e 77 69 6d 70  5f 6c 6f 6f 70 0d 08 66  |.\..wimp_loop..f|
00001440  19 20 20 20 20 20 20 20  20 4d 4f 56 56 53 20 20  |.        MOVVS  |
00001450  20 52 31 2c 23 31 0d 08  70 1f 20 20 20 20 20 20  | R1,#1..p.      |
00001460  20 20 42 4c 56 53 20 20  20 20 77 69 6d 70 5f 65  |  BLVS    wimp_e|
00001470  72 72 6f 72 73 0d 08 7a  1a 20 20 20 20 20 20 20  |rrors..z.       |
00001480  20 42 56 53 20 20 20 20  20 65 78 69 74 5f 32 0d  | BVS     exit_2.|
00001490  08 84 2b 20 20 20 20 20  20 20 20 53 57 49 20 20  |..+        SWI  |
000014a0  20 20 20 22 58 4f 53 5f  52 65 61 64 4d 6f 6e 6f  |   "XOS_ReadMono|
000014b0  74 6f 6e 69 63 54 69 6d  65 22 0d 08 8e 1d 20 20  |tonicTime"....  |
000014c0  20 20 20 20 20 20 41 44  44 56 43 20 20 20 52 32  |      ADDVC   R2|
000014d0  2c 52 30 2c 23 31 30 0d  08 98 1f 20 20 20 20 20  |,R0,#10....     |
000014e0  20 20 20 41 44 44 56 43  20 20 20 52 31 2c 52 31  |   ADDVC   R1,R1|
000014f0  32 2c 23 26 31 43 0d 08  a2 20 20 20 20 20 20 20  |2,#&1C...       |
00001500  20 20 4d 4f 56 56 43 20  20 20 52 30 2c 23 70 6f  |  MOVVC   R0,#po|
00001510  6c 6c 6d 61 73 6b 0d 08  ac 24 20 20 20 20 20 20  |llmask...$      |
00001520  20 20 53 57 49 56 43 20  20 20 22 58 57 69 6d 70  |  SWIVC   "XWimp|
00001530  5f 50 6f 6c 6c 49 64 6c  65 22 0d 08 b6 1d 20 20  |_PollIdle"....  |
00001540  20 20 20 20 20 20 42 56  53 20 20 20 20 20 77 69  |      BVS     wi|
00001550  6d 70 5f 6c 6f 6f 70 0d  08 c0 04 0d 08 ca 21 20  |mp_loop.......! |
00001560  20 20 20 20 20 20 20 41  44 52 20 20 20 20 20 52  |       ADR     R|
00001570  31 34 2c 77 69 6d 70 5f  6c 6f 6f 70 0d 08 d4 19  |14,wimp_loop....|
00001580  20 20 20 20 20 20 20 20  43 4d 50 20 20 20 20 20  |        CMP     |
00001590  52 30 2c 23 30 0d 08 de  18 20 20 20 20 20 20 20  |R0,#0....       |
000015a0  20 42 45 51 20 20 20 20  20 6e 75 6c 6c 0d 08 e8  | BEQ     null...|
000015b0  19 20 20 20 20 20 20 20  20 43 4d 50 20 20 20 20  |.        CMP    |
000015c0  20 52 30 2c 23 32 0d 08  f2 1f 20 20 20 20 20 20  | R0,#2....      |
000015d0  20 20 42 45 51 20 20 20  20 20 6f 70 65 6e 5f 77  |  BEQ     open_w|
000015e0  69 6e 64 6f 77 0d 08 fc  19 20 20 20 20 20 20 20  |indow....       |
000015f0  20 43 4d 50 20 20 20 20  20 52 30 2c 23 36 0d 09  | CMP     R0,#6..|
00001600  06 1f 20 20 20 20 20 20  20 20 42 45 51 20 20 20  |..        BEQ   |
00001610  20 20 6d 6f 75 73 65 5f  63 6c 69 63 6b 0d 09 10  |  mouse_click...|
00001620  19 20 20 20 20 20 20 20  20 43 4d 50 20 20 20 20  |.        CMP    |
00001630  20 52 30 2c 23 39 0d 09  1a 22 20 20 20 20 20 20  | R0,#9..."      |
00001640  20 20 42 45 51 20 20 20  20 20 6d 65 6e 75 5f 73  |  BEQ     menu_s|
00001650  65 6c 65 63 74 69 6f 6e  0d 09 24 1b 20 20 20 20  |election..$.    |
00001660  20 20 20 20 43 4d 50 20  20 20 20 20 52 30 2c 23  |    CMP     R0,#|
00001670  26 31 31 0d 09 2e 1b 20  20 20 20 20 20 20 20 43  |&11....        C|
00001680  4d 50 4e 45 20 20 20 52  30 2c 23 26 31 32 0d 09  |MPNE   R0,#&12..|
00001690  38 1b 20 20 20 20 20 20  20 20 42 45 51 20 20 20  |8.        BEQ   |
000016a0  20 20 6d 65 73 73 61 67  65 0d 09 42 1d 20 20 20  |  message..B.   |
000016b0  20 20 20 20 20 42 4e 45  20 20 20 20 20 77 69 6d  |     BNE     wim|
000016c0  70 5f 6c 6f 6f 70 0d 09  4c 04 0d 09 56 09 2e 6e  |p_loop..L...V..n|
000016d0  75 6c 6c 0d 09 60 19 20  20 20 20 20 20 20 20 4d  |ull..`.        M|
000016e0  56 4e 20 20 20 20 20 52  30 2c 23 30 0d 09 6a 19  |VN     R0,#0..j.|
000016f0  20 20 20 20 20 20 20 20  4d 56 4e 20 20 20 20 20  |        MVN     |
00001700  52 31 2c 23 30 0d 09 74  24 20 20 20 20 20 20 20  |R1,#0..t$       |
00001710  20 53 57 49 20 20 20 20  20 22 58 57 69 6d 70 5f  | SWI     "XWimp_|
00001720  53 6c 6f 74 53 69 7a 65  22 0d 09 7e 1d 20 20 20  |SlotSize"..~.   |
00001730  20 20 20 20 20 42 56 53  20 20 20 20 20 77 69 6d  |     BVS     wim|
00001740  70 5f 6c 6f 6f 70 0d 09  88 1f 20 20 20 20 20 20  |p_loop....      |
00001750  20 20 4c 44 52 20 20 20  20 20 52 30 2c 5b 52 31  |  LDR     R0,[R1|
00001760  32 2c 23 38 5d 0d 09 92  19 20 20 20 20 20 20 20  |2,#8]....       |
00001770  20 43 4d 50 20 20 20 20  20 52 30 2c 52 32 0d 09  | CMP     R0,R2..|
00001780  9c 1d 20 20 20 20 20 20  20 20 42 45 51 20 20 20  |..        BEQ   |
00001790  20 20 77 69 6d 70 5f 6c  6f 6f 70 0d 09 a6 1f 20  |  wimp_loop.... |
000017a0  20 20 20 20 20 20 20 53  54 52 20 20 20 20 20 52  |       STR     R|
000017b0  32 2c 5b 52 31 32 2c 23  38 5d 0d 09 b0 19 20 20  |2,[R12,#8]....  |
000017c0  20 20 20 20 20 20 4d 4f  56 20 20 20 20 20 52 30  |      MOV     R0|
000017d0  2c 52 32 0d 09 ba 1b 20  20 20 20 20 20 20 20 42  |,R2....        B|
000017e0  4c 20 20 20 20 20 20 68  65 78 5f 64 65 63 0d 09  |L      hex_dec..|
000017f0  c4 1f 20 20 20 20 20 20  20 20 41 44 44 20 20 20  |..        ADD   |
00001800  20 20 52 31 2c 52 31 32  2c 23 26 31 43 0d 09 ce  |  R1,R12,#&1C...|
00001810  19 20 20 20 20 20 20 20  20 4d 56 4e 20 20 20 20  |.        MVN    |
00001820  20 52 30 2c 23 31 0d 09  d8 1b 20 20 20 20 20 20  | R0,#1....      |
00001830  20 20 53 54 52 20 20 20  20 20 52 30 2c 5b 52 31  |  STR     R0,[R1|
00001840  5d 0d 09 e2 1f 20 20 20  20 20 20 20 20 4c 44 52  |]....        LDR|
00001850  20 20 20 20 20 52 30 2c  5b 52 31 32 2c 23 34 5d  |     R0,[R12,#4]|
00001860  0d 09 ec 1e 20 20 20 20  20 20 20 20 53 54 52 20  |....        STR |
00001870  20 20 20 20 52 30 2c 5b  52 31 2c 23 34 5d 0d 09  |    R0,[R1,#4]..|
00001880  f6 28 20 20 20 20 20 20  20 20 53 57 49 20 20 20  |.(        SWI   |
00001890  20 20 22 58 57 69 6d 70  5f 47 65 74 49 63 6f 6e  |  "XWimp_GetIcon|
000018a0  53 74 61 74 65 22 0d 0a  00 1d 20 20 20 20 20 20  |State"....      |
000018b0  20 20 42 56 53 20 20 20  20 20 77 69 6d 70 5f 6c  |  BVS     wimp_l|
000018c0  6f 6f 70 0d 0a 0a 1b 20  20 20 20 20 20 20 20 4c  |oop....        L|
000018d0  44 52 20 20 20 20 20 52  30 2c 5b 52 31 5d 0d 0a  |DR     R0,[R1]..|
000018e0  14 1c 20 20 20 20 20 20  20 20 41 44 44 20 20 20  |..        ADD   |
000018f0  20 20 52 35 2c 52 31 2c  23 38 0d 0a 1e 1e 20 20  |  R5,R1,#8....  |
00001900  20 20 20 20 20 20 4c 44  4d 49 41 20 20 20 52 35  |      LDMIA   R5|
00001910  2c 7b 52 31 2d 52 34 7d  0d 0a 28 27 20 20 20 20  |,{R1-R4}..('    |
00001920  20 20 20 20 53 57 49 20  20 20 20 20 22 58 57 69  |    SWI     "XWi|
00001930  6d 70 5f 46 6f 72 63 65  52 65 64 72 61 77 22 0d  |mp_ForceRedraw".|
00001940  0a 32 1d 20 20 20 20 20  20 20 20 42 20 20 20 20  |.2.        B    |
00001950  20 20 20 77 69 6d 70 5f  6c 6f 6f 70 0d 0a 3c 04  |   wimp_loop..<.|
00001960  0d 0a 46 10 2e 6f 70 65  6e 5f 77 69 6e 64 6f 77  |..F..open_window|
00001970  0d 0a 50 19 20 20 20 20  20 20 20 20 4d 56 4e 20  |..P.        MVN |
00001980  20 20 20 20 52 30 2c 23  30 0d 0a 5a 1f 20 20 20  |    R0,#0..Z.   |
00001990  20 20 20 20 20 53 54 52  20 20 20 20 20 52 30 2c  |     STR     R0,|
000019a0  5b 52 31 2c 23 32 38 5d  0d 0a 64 26 20 20 20 20  |[R1,#28]..d&    |
000019b0  20 20 20 20 53 57 49 20  20 20 20 20 22 58 57 69  |    SWI     "XWi|
000019c0  6d 70 5f 4f 70 65 6e 57  69 6e 64 6f 77 22 0d 0a  |mp_OpenWindow"..|
000019d0  6e 1d 20 20 20 20 20 20  20 20 42 20 20 20 20 20  |n.        B     |
000019e0  20 20 77 69 6d 70 5f 6c  6f 6f 70 0d 0a 78 04 0d  |  wimp_loop..x..|
000019f0  0a 82 10 2e 6d 6f 75 73  65 5f 63 6c 69 63 6b 0d  |....mouse_click.|
00001a00  0a 8c 1f 20 20 20 20 20  20 20 20 4c 44 4d 49 41  |...        LDMIA|
00001a10  20 20 20 52 31 21 2c 7b  52 32 2d 52 34 7d 0d 0a  |   R1!,{R2-R4}..|
00001a20  96 21 20 20 20 20 20 20  20 20 53 54 52 20 20 20  |.!        STR   |
00001a30  20 20 52 32 2c 5b 52 31  32 2c 23 26 31 34 5d 0d  |  R2,[R12,#&14].|
00001a40  0a a0 19 20 20 20 20 20  20 20 20 54 53 54 20 20  |...        TST  |
00001a50  20 20 20 52 34 2c 23 32  0d 0a aa 1d 20 20 20 20  |   R4,#2....    |
00001a60  20 20 20 20 42 45 51 20  20 20 20 20 77 69 6d 70  |    BEQ     wimp|
00001a70  5f 6c 6f 6f 70 0d 0a b4  04 0d 0a be 0e 2e 72 65  |_loop.........re|
00001a80  64 6f 5f 6d 65 6e 75 0d  0a c8 27 20 20 20 20 20  |do_menu...'     |
00001a90  20 20 20 41 44 52 20 20  20 20 20 52 31 2c 63 72  |   ADR     R1,cr|
00001aa0  65 61 74 65 6d 65 6e 75  5f 62 6c 6f 63 6b 0d 0a  |eatemenu_block..|
00001ab0  d2 1e 20 20 20 20 20 20  20 20 53 55 42 20 20 20  |..        SUB   |
00001ac0  20 20 52 32 2c 52 32 2c  23 26 34 30 0d 0a dc 1b  |  R2,R2,#&40....|
00001ad0  20 20 20 20 20 20 20 20  4d 4f 56 20 20 20 20 20  |        MOV     |
00001ae0  52 33 2c 23 31 38 34 0d  0a e6 26 20 20 20 20 20  |R3,#184...&     |
00001af0  20 20 20 53 57 49 20 20  20 20 20 22 58 57 69 6d  |   SWI     "XWim|
00001b00  70 5f 43 72 65 61 74 65  4d 65 6e 75 22 0d 0a f0  |p_CreateMenu"...|
00001b10  1d 20 20 20 20 20 20 20  20 42 20 20 20 20 20 20  |.        B      |
00001b20  20 77 69 6d 70 5f 6c 6f  6f 70 0d 0a fa 04 0d 0b  | wimp_loop......|
00001b30  04 15 2e 63 72 65 61 74  65 6d 65 6e 75 5f 62 6c  |...createmenu_bl|
00001b40  6f 63 6b 0d 0b 0e 16 20  20 20 20 20 20 20 20 a4  |ock....        .|
00001b50  73 28 22 52 4f 4f 4d 22  29 0d 0b 18 15 20 20 20  |s("ROOM")....   |
00001b60  20 20 20 20 20 44 43 44  20 20 20 20 20 30 0d 0b  |     DCD     0..|
00001b70  22 1a 20 20 20 20 20 20  20 20 44 43 44 20 20 20  |".        DCD   |
00001b80  20 20 26 37 30 32 30 37  0d 0b 2c 17 20 20 20 20  |  &70207..,.    |
00001b90  20 20 20 20 44 43 44 20  20 20 20 20 26 35 43 0d  |    DCD     &5C.|
00001ba0  0b 36 17 20 20 20 20 20  20 20 20 44 43 44 20 20  |.6.        DCD  |
00001bb0  20 20 20 26 32 43 0d 0b  40 15 20 20 20 20 20 20  |   &2C..@.      |
00001bc0  20 20 44 43 44 20 20 20  20 20 30 0d 0b 4a 04 0d  |  DCD     0..J..|
00001bd0  0b 54 15 20 20 20 20 20  20 20 20 44 43 44 20 20  |.T.        DCD  |
00001be0  20 20 20 30 0d 0b 5e 04  0d 0b 68 12 2e 73 75 62  |   0..^...h..sub|
00001bf0  6d 65 6e 75 68 61 6e 64  6c 65 0d 0b 72 16 20 20  |menuhandle..r.  |
00001c00  20 20 20 20 20 20 44 43  44 20 20 20 20 20 2d 31  |      DCD     -1|
00001c10  0d 0b 7c 1c 20 20 20 20  20 20 20 20 44 43 44 20  |..|.        DCD |
00001c20  20 20 20 20 26 37 30 30  30 30 32 31 0d 0b 86 04  |    &7000021....|
00001c30  0d 0b 90 0e 2e 69 6e 66  6f 5f 74 65 78 74 0d 0b  |.....info_text..|
00001c40  9a 1a 20 20 20 20 20 20  20 20 45 51 55 53 20 20  |..        EQUS  |
00001c50  20 20 22 49 6e 66 6f 22  0d 0b a4 15 20 20 20 20  |  "Info"....    |
00001c60  20 20 20 20 44 43 44 20  20 20 20 20 30 0d 0b ae  |    DCD     0...|
00001c70  15 20 20 20 20 20 20 20  20 44 43 44 20 20 20 20  |.        DCD    |
00001c80  20 30 0d 0b b8 04 0d 0b  c2 17 20 20 20 20 20 20  | 0........      |
00001c90  20 20 44 43 44 20 20 20  20 20 26 38 30 0d 0b cc  |  DCD     &80...|
00001ca0  16 20 20 20 20 20 20 20  20 44 43 44 20 20 20 20  |.        DCD    |
00001cb0  20 2d 31 0d 0b d6 1c 20  20 20 20 20 20 20 20 44  | -1....        D|
00001cc0  43 44 20 20 20 20 20 26  37 30 30 30 30 32 31 0d  |CD     &7000021.|
00001cd0  0b e0 04 0d 0b ea 0e 2e  71 75 69 74 5f 74 65 78  |........quit_tex|
00001ce0  74 0d 0b f4 1a 20 20 20  20 20 20 20 20 45 51 55  |t....        EQU|
00001cf0  53 20 20 20 20 22 51 75  69 74 22 0d 0b fe 15 20  |S    "Quit".... |
00001d00  20 20 20 20 20 20 20 44  43 44 20 20 20 20 20 30  |       DCD     0|
00001d10  0d 0c 08 15 20 20 20 20  20 20 20 20 44 43 44 20  |....        DCD |
00001d20  20 20 20 20 30 0d 0c 12  04 0d 0c 1c 15 20 20 20  |    0........   |
00001d30  20 20 20 20 20 44 43 44  20 20 20 20 20 30 0d 0c  |     DCD     0..|
00001d40  26 04 0d 0c 30 13 2e 6d  65 6e 75 5f 73 65 6c 65  |&...0..menu_sele|
00001d50  63 74 69 6f 6e 0d 0c 3a  1b 20 20 20 20 20 20 20  |ction..:.       |
00001d60  20 4c 44 52 20 20 20 20  20 52 30 2c 5b 52 31 5d  | LDR     R0,[R1]|
00001d70  0d 0c 44 19 20 20 20 20  20 20 20 20 43 4d 50 20  |..D.        CMP |
00001d80  20 20 20 20 52 30 2c 23  31 0d 0c 4e 1a 20 20 20  |    R0,#1..N.   |
00001d90  20 20 20 20 20 42 45 51  20 20 20 20 20 65 78 69  |     BEQ     exi|
00001da0  74 5f 31 0d 0c 58 19 20  20 20 20 20 20 20 20 43  |t_1..X.        C|
00001db0  4d 50 20 20 20 20 20 52  30 2c 23 30 0d 0c 62 1d  |MP     R0,#0..b.|
00001dc0  20 20 20 20 20 20 20 20  42 4e 45 20 20 20 20 20  |        BNE     |
00001dd0  77 69 6d 70 5f 6c 6f 6f  70 0d 0c 6c 2a 20 20 20  |wimp_loop..l*   |
00001de0  20 20 20 20 20 53 57 49  20 20 20 20 20 22 58 57  |     SWI     "XW|
00001df0  69 6d 70 5f 47 65 74 50  6f 69 6e 74 65 72 49 6e  |imp_GetPointerIn|
00001e00  66 6f 22 0d 0c 76 1d 20  20 20 20 20 20 20 20 42  |fo"..v.        B|
00001e10  56 53 20 20 20 20 20 77  69 6d 70 5f 6c 6f 6f 70  |VS     wimp_loop|
00001e20  0d 0c 80 1e 20 20 20 20  20 20 20 20 4c 44 52 20  |....        LDR |
00001e30  20 20 20 20 52 30 2c 5b  52 31 2c 23 38 5d 0d 0c  |    R0,[R1,#8]..|
00001e40  8a 19 20 20 20 20 20 20  20 20 54 53 54 20 20 20  |..        TST   |
00001e50  20 20 52 30 2c 23 31 0d  0c 94 1d 20 20 20 20 20  |  R0,#1....     |
00001e60  20 20 20 42 45 51 20 20  20 20 20 77 69 6d 70 5f  |   BEQ     wimp_|
00001e70  6c 6f 6f 70 0d 0c 9e 21  20 20 20 20 20 20 20 20  |loop...!        |
00001e80  4c 44 52 20 20 20 20 20  52 32 2c 5b 52 31 32 2c  |LDR     R2,[R12,|
00001e90  23 26 31 34 5d 0d 0c a8  1d 20 20 20 20 20 20 20  |#&14]....       |
00001ea0  20 42 20 20 20 20 20 20  20 72 65 64 6f 5f 6d 65  | B       redo_me|
00001eb0  6e 75 0d 0c b2 04 0d 0c  bc 10 2e 74 72 79 5f 73  |nu.........try_s|
00001ec0  70 72 69 74 65 73 0d 0c  c6 2a 20 20 20 20 20 20  |prites...*      |
00001ed0  20 20 53 54 4d 44 42 20  20 20 52 31 33 21 2c 7b  |  STMDB   R13!,{|
00001ee0  52 31 2d 52 34 2c 52 36  2d 52 39 2c 52 31 34 7d  |R1-R4,R6-R9,R14}|
00001ef0  0d 0c d0 19 20 20 20 20  20 20 20 20 4d 56 4e 20  |....        MVN |
00001f00  20 20 20 20 52 30 2c 23  30 0d 0c da 19 20 20 20  |    R0,#0....   |
00001f10  20 20 20 20 20 4d 4f 56  20 20 20 20 20 52 36 2c  |     MOV     R6,|
00001f20  23 30 0d 0c e4 19 20 20  20 20 20 20 20 20 4d 4f  |#0....        MO|
00001f30  56 20 20 20 20 20 52 37  2c 23 30 0d 0c ee 1b 20  |V     R7,#0.... |
00001f40  20 20 20 20 20 20 20 4d  4f 56 20 20 20 20 20 52  |       MOV     R|
00001f50  38 2c 23 26 36 43 0d 0c  f8 1b 20 20 20 20 20 20  |8,#&6C....      |
00001f60  20 20 4d 4f 56 20 20 20  20 20 52 39 2c 23 26 34  |  MOV     R9,#&4|
00001f70  30 0d 0d 02 20 20 20 20  20 20 20 20 20 41 44 44  |0...         ADD|
00001f80  20 20 20 20 20 52 31 34  2c 52 31 32 2c 23 26 31  |     R14,R12,#&1|
00001f90  43 0d 0d 0c 23 20 20 20  20 20 20 20 20 53 54 4d  |C...#        STM|
00001fa0  49 41 20 20 20 52 31 34  21 2c 7b 52 30 2c 52 36  |IA   R14!,{R0,R6|
00001fb0  2d 52 39 7d 0d 0d 16 21  20 20 20 20 20 20 20 20  |-R9}...!        |
00001fc0  4c 44 52 20 20 20 20 20  52 30 2c 69 63 6f 6e 5f  |LDR     R0,icon_|
00001fd0  66 6c 61 67 73 0d 0d 20  1e 20 20 20 20 20 20 20  |flags.. .       |
00001fe0  20 41 44 44 20 20 20 20  20 52 31 2c 52 31 32 2c  | ADD     R1,R12,|
00001ff0  23 26 43 0d 0d 2a 19 20  20 20 20 20 20 20 20 4d  |#&C..*.        M|
00002000  4f 56 20 20 20 20 20 52  32 2c 23 30 0d 0d 34 19  |OV     R2,#0..4.|
00002010  20 20 20 20 20 20 20 20  4d 4f 56 20 20 20 20 20  |        MOV     |
00002020  52 33 2c 23 35 0d 0d 3e  1f 20 20 20 20 20 20 20  |R3,#5..>.       |
00002030  20 53 54 4d 49 41 20 20  20 52 31 34 2c 7b 52 30  | STMIA   R14,{R0|
00002040  2d 52 33 7d 0d 0d 48 1f  20 20 20 20 20 20 20 20  |-R3}..H.        |
00002050  41 44 44 20 20 20 20 20  52 31 2c 52 31 32 2c 23  |ADD     R1,R12,#|
00002060  26 31 43 0d 0d 52 26 20  20 20 20 20 20 20 20 53  |&1C..R&        S|
00002070  57 49 20 20 20 20 20 22  58 57 69 6d 70 5f 43 72  |WI     "XWimp_Cr|
00002080  65 61 74 65 49 63 6f 6e  22 0d 0d 5c 1f 20 20 20  |eateIcon"..\.   |
00002090  20 20 20 20 20 53 54 52  56 43 20 20 20 52 30 2c  |     STRVC   R0,|
000020a0  5b 52 31 32 2c 23 34 5d  0d 0d 66 2a 20 20 20 20  |[R12,#4]..f*    |
000020b0  20 20 20 20 4c 44 4d 56  43 49 41 20 52 31 33 21  |    LDMVCIA R13!|
000020c0  2c 7b 52 31 2d 52 34 2c  52 36 2d 52 39 2c 50 43  |,{R1-R4,R6-R9,PC|
000020d0  7d 5e 0d 0d 70 29 20 20  20 20 20 20 20 20 4c 44  |}^..p)        LD|
000020e0  4d 56 53 49 41 20 52 31  33 21 2c 7b 52 31 2d 52  |MVSIA R13!,{R1-R|
000020f0  34 2c 52 36 2d 52 39 2c  50 43 7d 0d 0d 7a 04 0d  |4,R6-R9,PC}..z..|
00002100  0d 84 0f 2e 69 63 6f 6e  5f 66 6c 61 67 73 0d 0d  |....icon_flags..|
00002110  8e 1d 20 20 20 20 20 20  20 20 44 43 44 20 20 20  |..        DCD   |
00002120  20 20 26 43 37 30 30 33  31 32 44 0d 0d 98 04 0d  |  &C700312D.....|
00002130  0d a2 18 2e 69 72 65 71  20 20 20 44 43 44 20 20  |....ireq   DCD  |
00002140  20 20 20 26 35 30 32 0d  0d ac 04 0d 0d b6 18 2e  |   &502.........|
00002150  69 73 65 6e 64 20 20 44  43 44 20 20 20 20 20 26  |isend  DCD     &|
00002160  35 30 33 0d 0d c0 04 0d  0d ca 0b 2e 69 6d 65 73  |503.........imes|
00002170  73 31 0d 0d d4 24 20 20  20 20 20 20 20 20 44 43  |s1...$        DC|
00002180  44 20 20 20 20 20 31 36  2b 69 6d 65 73 73 32 2d  |D     16+imess2-|
00002190  69 6d 65 73 73 31 0d 0d  de 5a 20 20 20 20 20 20  |imess1...Z      |
000021a0  20 20 a4 73 28 22 54 68  69 73 20 69 73 20 74 68  |  .s("This is th|
000021b0  65 20 52 6f 6f 6d 20 69  63 6f 6e 2e 7c 4d 49 74  |e Room icon.|MIt|
000021c0  20 63 6f 6e 74 69 6e 75  6f 75 73 6c 79 20 73 68  | continuously sh|
000021d0  6f 77 73 20 74 68 65 20  61 6d 6f 75 6e 74 20 6f  |ows the amount o|
000021e0  66 20 66 72 65 65 20 6d  65 6d 6f 72 79 2e 22 29  |f free memory.")|
000021f0  0d 0d e8 04 0d 0d f2 0b  2e 69 6d 65 73 73 32 0d  |.........imess2.|
00002200  0d fc 24 20 20 20 20 20  20 20 20 44 43 44 20 20  |..$        DCD  |
00002210  20 20 20 31 36 2b 69 6d  65 73 73 33 2d 69 6d 65  |   16+imess3-ime|
00002220  73 73 32 0d 0e 06 3e 20  20 20 20 20 20 20 20 a4  |ss2...>        .|
00002230  73 28 22 54 68 69 73 20  77 69 6e 64 6f 77 20 64  |s("This window d|
00002240  69 73 70 6c 61 79 73 20  69 6e 66 6f 72 6d 61 74  |isplays informat|
00002250  69 6f 6e 20 61 62 6f 75  74 20 52 6f 6f 6d 2e 22  |ion about Room."|
00002260  29 0d 0e 10 04 0d 0e 1a  0b 2e 69 6d 65 73 73 33  |).........imess3|
00002270  0d 0e 24 24 20 20 20 20  20 20 20 20 44 43 44 20  |..$$        DCD |
00002280  20 20 20 20 31 36 2b 69  6d 65 73 73 34 2d 69 6d  |    16+imess4-im|
00002290  65 73 73 33 0d 0e 2e 47  20 20 20 20 20 20 20 20  |ess3...G        |
000022a0  a4 73 28 22 4d 6f 76 65  20 74 68 65 20 70 6f 69  |.s("Move the poi|
000022b0  6e 74 65 72 20 72 69 67  68 74 20 74 6f 20 73 65  |nter right to se|
000022c0  65 20 69 6e 66 6f 72 6d  61 74 69 6f 6e 20 61 62  |e information ab|
000022d0  6f 75 74 20 52 6f 6f 6d  2e 22 29 0d 0e 38 04 0d  |out Room.")..8..|
000022e0  0e 42 0b 2e 69 6d 65 73  73 34 0d 0e 4c 26 20 20  |.B..imess4..L&  |
000022f0  20 20 20 20 20 20 44 43  44 20 20 20 20 20 31 36  |      DCD     16|
00002300  2b 69 6d 65 73 73 65 6e  64 2d 69 6d 65 73 73 34  |+imessend-imess4|
00002310  0d 0e 56 2c 20 20 20 20  20 20 20 20 a4 73 28 22  |..V,        .s("|
00002320  43 6c 69 63 6b 20 53 45  4c 45 43 54 20 74 6f 20  |Click SELECT to |
00002330  71 75 69 74 20 52 6f 6f  6d 2e 22 29 0d 0e 60 0d  |quit Room.")..`.|
00002340  2e 69 6d 65 73 73 65 6e  64 0d 0e 6a 04 0d 0e 74  |.imessend..j...t|
00002350  0c 2e 6d 65 73 73 61 67  65 0d 0e 7e 1f 20 20 20  |..message..~.   |
00002360  20 20 20 20 20 4c 44 52  20 20 20 20 20 52 30 2c  |     LDR     R0,|
00002370  5b 52 31 2c 23 31 36 5d  0d 0e 88 19 20 20 20 20  |[R1,#16]....    |
00002380  20 20 20 20 43 4d 50 20  20 20 20 20 52 30 2c 23  |    CMP     R0,#|
00002390  30 0d 0e 92 1a 20 20 20  20 20 20 20 20 42 45 51  |0....        BEQ|
000023a0  20 20 20 20 20 65 78 69  74 5f 31 0d 0e 9c 1b 20  |     exit_1.... |
000023b0  20 20 20 20 20 20 20 4c  44 52 20 20 20 20 20 52  |       LDR     R|
000023c0  32 2c 69 72 65 71 0d 0e  a6 19 20 20 20 20 20 20  |2,ireq....      |
000023d0  20 20 43 4d 50 20 20 20  20 20 52 30 2c 52 32 0d  |  CMP     R0,R2.|
000023e0  0e b0 1d 20 20 20 20 20  20 20 20 42 4e 45 20 20  |...        BNE  |
000023f0  20 20 20 77 69 6d 70 5f  6c 6f 6f 70 0d 0e ba 1f  |   wimp_loop....|
00002400  20 20 20 20 20 20 20 20  4c 44 52 20 20 20 20 20  |        LDR     |
00002410  52 32 2c 5b 52 31 2c 23  33 32 5d 0d 0e c4 19 20  |R2,[R1,#32].... |
00002420  20 20 20 20 20 20 20 43  4d 4e 20 20 20 20 20 52  |       CMN     R|
00002430  32 2c 23 32 0d 0e ce 1d  20 20 20 20 20 20 20 20  |2,#2....        |
00002440  41 44 52 45 51 20 20 20  52 33 2c 69 6d 65 73 73  |ADREQ   R3,imess|
00002450  31 0d 0e d8 1d 20 20 20  20 20 20 20 20 41 44 52  |1....        ADR|
00002460  4e 45 20 20 20 52 33 2c  69 6d 65 73 73 32 0d 0e  |NE   R3,imess2..|
00002470  e2 24 20 20 20 20 20 20  20 20 4c 44 52 4e 45 20  |.$        LDRNE |
00002480  20 20 52 30 2c 73 75 62  6d 65 6e 75 68 61 6e 64  |  R0,submenuhand|
00002490  6c 65 0d 0e ec 19 20 20  20 20 20 20 20 20 43 4d  |le....        CM|
000024a0  50 4e 45 20 20 20 52 30  2c 52 32 0d 0e f6 1d 20  |PNE   R0,R2.... |
000024b0  20 20 20 20 20 20 20 42  45 51 20 20 20 20 20 73  |       BEQ     s|
000024c0  65 6e 64 5f 69 6e 66 6f  0d 0f 00 21 20 20 20 20  |end_info...!    |
000024d0  20 20 20 20 4c 44 52 20  20 20 20 20 52 30 2c 5b  |    LDR     R0,[|
000024e0  52 31 32 2c 23 26 31 38  5d 0d 0f 0a 1b 20 20 20  |R12,#&18]....   |
000024f0  20 20 20 20 20 43 4d 50  20 20 20 20 20 52 30 2c  |     CMP     R0,|
00002500  23 32 31 38 0d 0f 14 1d  20 20 20 20 20 20 20 20  |#218....        |
00002510  42 4c 45 20 20 20 20 20  77 69 6d 70 5f 6c 6f 6f  |BLE     wimp_loo|
00002520  70 0d 0f 1e 1f 20 20 20  20 20 20 20 20 4c 44 52  |p....        LDR|
00002530  20 20 20 20 20 52 33 2c  5b 52 31 2c 23 33 36 5d  |     R3,[R1,#36]|
00002540  0d 0f 28 19 20 20 20 20  20 20 20 20 43 4d 4e 20  |..(.        CMN |
00002550  20 20 20 20 52 33 2c 23  31 0d 0f 32 1d 20 20 20  |    R3,#1..2.   |
00002560  20 20 20 20 20 42 45 51  20 20 20 20 20 77 69 6d  |     BEQ     wim|
00002570  70 5f 6c 6f 6f 70 0d 0f  3c 1d 20 20 20 20 20 20  |p_loop..<.      |
00002580  20 20 41 44 44 20 20 20  20 20 52 31 2c 52 31 2c  |  ADD     R1,R1,|
00002590  23 34 30 0d 0f 46 19 20  20 20 20 20 20 20 20 4d  |#40..F.        M|
000025a0  4f 56 20 20 20 20 20 52  30 2c 23 31 0d 0f 50 1a  |OV     R0,#1..P.|
000025b0  20 20 20 20 20 20 20 20  53 57 49 20 20 20 20 20  |        SWI     |
000025c0  26 36 30 30 46 34 0d 0f  5a 1d 20 20 20 20 20 20  |&600F4..Z.      |
000025d0  20 20 42 56 53 20 20 20  20 20 77 69 6d 70 5f 6c  |  BVS     wimp_l|
000025e0  6f 6f 70 0d 0f 64 1b 20  20 20 20 20 20 20 20 4c  |oop..d.        L|
000025f0  44 52 20 20 20 20 20 52  30 2c 5b 52 31 5d 0d 0f  |DR     R0,[R1]..|
00002600  6e 19 20 20 20 20 20 20  20 20 54 45 51 20 20 20  |n.        TEQ   |
00002610  20 20 52 30 2c 23 31 0d  0f 78 1d 20 20 20 20 20  |  R0,#1..x.     |
00002620  20 20 20 41 44 52 45 51  20 20 20 52 33 2c 69 6d  |   ADREQ   R3,im|
00002630  65 73 73 34 0d 0f 82 21  20 20 20 20 20 20 20 20  |ess4...!        |
00002640  42 45 51 20 20 20 20 20  70 72 65 5f 73 65 6e 64  |BEQ     pre_send|
00002650  5f 69 6e 66 6f 0d 0f 8c  19 20 20 20 20 20 20 20  |_info....       |
00002660  20 54 45 51 20 20 20 20  20 52 30 2c 23 30 0d 0f  | TEQ     R0,#0..|
00002670  96 1d 20 20 20 20 20 20  20 20 42 4e 45 20 20 20  |..        BNE   |
00002680  20 20 77 69 6d 70 5f 6c  6f 6f 70 0d 0f a0 1e 20  |  wimp_loop.... |
00002690  20 20 20 20 20 20 20 4c  44 52 20 20 20 20 20 52  |       LDR     R|
000026a0  30 2c 5b 52 31 2c 23 34  5d 0d 0f aa 19 20 20 20  |0,[R1,#4]....   |
000026b0  20 20 20 20 20 43 4d 4e  20 20 20 20 20 52 30 2c  |     CMN     R0,|
000026c0  23 31 0d 0f b4 1d 20 20  20 20 20 20 20 20 42 4e  |#1....        BN|
000026d0  45 20 20 20 20 20 77 69  6d 70 5f 6c 6f 6f 70 0d  |E     wimp_loop.|
000026e0  0f be 1d 20 20 20 20 20  20 20 20 41 44 52 20 20  |...        ADR  |
000026f0  20 20 20 52 33 2c 69 6d  65 73 73 33 0d 0f c8 04  |   R3,imess3....|
00002700  0d 0f d2 12 2e 70 72 65  5f 73 65 6e 64 5f 69 6e  |.....pre_send_in|
00002710  66 6f 0d 0f dc 1d 20 20  20 20 20 20 20 20 53 55  |fo....        SU|
00002720  42 20 20 20 20 20 52 31  2c 52 31 2c 23 34 30 0d  |B     R1,R1,#40.|
00002730  0f e6 04 0d 0f f0 0e 2e  73 65 6e 64 5f 69 6e 66  |........send_inf|
00002740  6f 0d 0f fa 1e 20 20 20  20 20 20 20 20 4c 44 52  |o....        LDR|
00002750  20 20 20 20 20 52 30 2c  5b 52 33 5d 2c 23 34 0d  |     R0,[R3],#4.|
00002760  10 04 1b 20 20 20 20 20  20 20 20 53 54 52 20 20  |...        STR  |
00002770  20 20 20 52 30 2c 5b 52  31 5d 0d 10 0e 1e 20 20  |   R0,[R1]....  |
00002780  20 20 20 20 20 20 4c 44  52 20 20 20 20 20 52 30  |      LDR     R0|
00002790  2c 5b 52 31 2c 23 38 5d  0d 10 18 1f 20 20 20 20  |,[R1,#8]....    |
000027a0  20 20 20 20 53 54 52 20  20 20 20 20 52 30 2c 5b  |    STR     R0,[|
000027b0  52 31 2c 23 31 32 5d 0d  10 22 1d 20 20 20 20 20  |R1,#12]..".     |
000027c0  20 20 20 41 44 44 20 20  20 20 20 52 32 2c 52 31  |   ADD     R2,R1|
000027d0  2c 23 31 36 0d 10 2c 1c  20 20 20 20 20 20 20 20  |,#16..,.        |
000027e0  4c 44 52 20 20 20 20 20  52 30 2c 69 73 65 6e 64  |LDR     R0,isend|
000027f0  0d 10 36 1e 20 20 20 20  20 20 20 20 53 54 52 20  |..6.        STR |
00002800  20 20 20 20 52 30 2c 5b  52 32 5d 2c 23 34 0d 10  |    R0,[R2],#4..|
00002810  40 04 0d 10 4a 0e 2e 6d  65 73 73 5f 6c 6f 6f 70  |@...J..mess_loop|
00002820  0d 10 54 1e 20 20 20 20  20 20 20 20 4c 44 52 42  |..T.        LDRB|
00002830  20 20 20 20 52 30 2c 5b  52 33 5d 2c 23 31 0d 10  |    R0,[R3],#1..|
00002840  5e 1e 20 20 20 20 20 20  20 20 53 54 52 42 20 20  |^.        STRB  |
00002850  20 20 52 30 2c 5b 52 32  5d 2c 23 31 0d 10 68 19  |  R0,[R2],#1..h.|
00002860  20 20 20 20 20 20 20 20  54 45 51 20 20 20 20 20  |        TEQ     |
00002870  52 30 2c 23 30 0d 10 72  1d 20 20 20 20 20 20 20  |R0,#0..r.       |
00002880  20 42 4e 45 20 20 20 20  20 6d 65 73 73 5f 6c 6f  | BNE     mess_lo|
00002890  6f 70 0d 10 7c 1a 20 20  20 20 20 20 20 20 4d 4f  |op..|.        MO|
000028a0  56 20 20 20 20 20 52 30  2c 23 31 37 0d 10 86 1e  |V     R0,#17....|
000028b0  20 20 20 20 20 20 20 20  4c 44 52 20 20 20 20 20  |        LDR     |
000028c0  52 32 2c 5b 52 31 2c 23  34 5d 0d 10 90 27 20 20  |R2,[R1,#4]...'  |
000028d0  20 20 20 20 20 20 53 57  49 20 20 20 20 20 22 58  |      SWI     "X|
000028e0  57 69 6d 70 5f 53 65 6e  64 4d 65 73 73 61 67 65  |Wimp_SendMessage|
000028f0  22 0d 10 9a 1d 20 20 20  20 20 20 20 20 42 20 20  |"....        B  |
00002900  20 20 20 20 20 77 69 6d  70 5f 6c 6f 6f 70 0d 10  |     wimp_loop..|
00002910  a4 04 0d 10 ae 10 2e 77  69 6d 70 5f 65 72 72 6f  |.......wimp_erro|
00002920  72 73 0d 10 b8 24 20 20  20 20 20 20 20 20 53 54  |rs...$        ST|
00002930  4d 44 42 20 20 20 52 31  33 21 2c 7b 52 31 2c 52  |MDB   R13!,{R1,R|
00002940  32 2c 52 31 34 7d 0d 10  c2 1f 20 20 20 20 20 20  |2,R14}....      |
00002950  20 20 42 4c 20 20 20 20  20 20 74 69 74 6c 65 5f  |  BL      title_|
00002960  74 6f 5f 52 32 0d 10 cc  27 20 20 20 20 20 20 20  |to_R2...'       |
00002970  20 53 57 49 20 20 20 20  20 22 58 57 69 6d 70 5f  | SWI     "XWimp_|
00002980  52 65 70 6f 72 74 45 72  72 6f 72 22 0d 10 d6 21  |ReportError"...!|
00002990  20 20 20 20 20 20 20 20  42 56 53 20 20 20 20 20  |        BVS     |
000029a0  77 69 6d 70 5f 6f 73 5f  65 72 72 6f 72 0d 10 e0  |wimp_os_error...|
000029b0  19 20 20 20 20 20 20 20  20 54 45 51 20 20 20 20  |.        TEQ    |
000029c0  20 52 31 2c 23 32 0d 10  ea 1a 20 20 20 20 20 20  | R1,#2....      |
000029d0  20 20 42 45 51 20 20 20  20 20 65 78 69 74 5f 31  |  BEQ     exit_1|
000029e0  0d 10 f4 23 20 20 20 20  20 20 20 20 4c 44 4d 49  |...#        LDMI|
000029f0  41 20 20 20 52 31 33 21  2c 7b 52 31 2c 52 32 2c  |A   R13!,{R1,R2,|
00002a00  50 43 7d 0d 10 fe 04 0d  11 08 12 2e 77 69 6d 70  |PC}.........wimp|
00002a10  5f 6f 73 5f 65 72 72 6f  72 0d 11 12 26 20 20 20  |_os_error...&   |
00002a20  20 20 20 20 20 53 57 49  20 20 20 20 20 22 4f 53  |     SWI     "OS|
00002a30  5f 47 65 6e 65 72 61 74  65 45 72 72 6f 72 22 0d  |_GenerateError".|
00002a40  11 1c 1d 20 20 20 20 20  20 20 20 53 57 49 20 20  |...        SWI  |
00002a50  20 20 20 22 4f 53 5f 45  78 69 74 22 0d 11 26 04  |   "OS_Exit"..&.|
00002a60  0d 11 30 0f 2e 64 65 63  5f 76 61 6c 75 65 73 0d  |..0..dec_values.|
00002a70  11 3a 18 20 20 20 20 20  20 20 20 44 43 44 20 20  |.:.        DCD  |
00002a80  20 20 20 31 30 30 30 0d  11 44 17 20 20 20 20 20  |   1000..D.     |
00002a90  20 20 20 44 43 44 20 20  20 20 20 31 30 30 0d 11  |   DCD     100..|
00002aa0  4e 16 20 20 20 20 20 20  20 20 44 43 44 20 20 20  |N.        DCD   |
00002ab0  20 20 31 30 0d 11 58 04  0d 11 62 0c 2e 68 65 78  |  10..X...b..hex|
00002ac0  5f 64 65 63 0d 11 6c 24  20 20 20 20 20 20 20 20  |_dec..l$        |
00002ad0  53 54 4d 44 42 20 20 20  52 31 33 21 2c 7b 52 30  |STMDB   R13!,{R0|
00002ae0  2d 52 37 2c 52 31 34 7d  0d 11 76 1e 20 20 20 20  |-R7,R14}..v.    |
00002af0  20 20 20 20 41 44 44 20  20 20 20 20 52 31 2c 52  |    ADD     R1,R|
00002b00  31 32 2c 23 26 43 0d 11  80 21 20 20 20 20 20 20  |12,#&C...!      |
00002b10  20 20 4d 4f 56 20 20 20  20 20 52 30 2c 52 30 2c  |  MOV     R0,R0,|
00002b20  4c 53 52 20 23 31 30 0d  11 8a 21 20 20 20 20 20  |LSR #10...!     |
00002b30  20 20 20 41 44 52 20 20  20 20 20 52 37 2c 64 65  |   ADR     R7,de|
00002b40  63 5f 76 61 6c 75 65 73  0d 11 94 1c 20 20 20 20  |c_values....    |
00002b50  20 20 20 20 4d 4f 56 20  20 20 20 20 52 36 2c 23  |    MOV     R6,#|
00002b60  97 22 20 22 0d 11 9e 04  0d 11 a8 0e 2e 68 64 5f  |." ".........hd_|
00002b70  6c 6f 6f 70 5f 31 0d 11  b2 1e 20 20 20 20 20 20  |loop_1....      |
00002b80  20 20 4c 44 52 20 20 20  20 20 52 35 2c 5b 52 37  |  LDR     R5,[R7|
00002b90  5d 2c 23 34 0d 11 bc 19  20 20 20 20 20 20 20 20  |],#4....        |
00002ba0  4d 4f 56 20 20 20 20 20  52 34 2c 52 36 0d 11 c6  |MOV     R4,R6...|
00002bb0  04 0d 11 d0 0e 2e 68 64  5f 6c 6f 6f 70 5f 32 0d  |......hd_loop_2.|
00002bc0  11 da 1c 20 20 20 20 20  20 20 20 53 55 42 53 20  |...        SUBS |
00002bd0  20 20 20 52 33 2c 52 30  2c 52 35 0d 11 e4 1d 20  |   R3,R0,R5.... |
00002be0  20 20 20 20 20 20 20 84  52 50 4c 20 20 20 52 34  |       .RPL   R4|
00002bf0  2c 52 34 2c 23 26 31 30  0d 11 ee 1d 20 20 20 20  |,R4,#&10....    |
00002c00  20 20 20 20 84 52 50 4c  20 20 20 52 36 2c 52 36  |    .RPL   R6,R6|
00002c10  2c 23 26 31 30 0d 11 f8  1c 20 20 20 20 20 20 20  |,#&10....       |
00002c20  20 41 44 44 50 4c 20 20  20 52 34 2c 52 34 2c 23  | ADDPL   R4,R4,#|
00002c30  31 0d 12 02 19 20 20 20  20 20 20 20 20 4d 4f 56  |1....        MOV|
00002c40  50 4c 20 20 20 52 30 2c  52 33 0d 12 0c 1d 20 20  |PL   R0,R3....  |
00002c50  20 20 20 20 20 20 42 50  4c 20 20 20 20 20 68 64  |      BPL     hd|
00002c60  5f 6c 6f 6f 70 5f 32 0d  12 16 1e 20 20 20 20 20  |_loop_2....     |
00002c70  20 20 20 53 54 52 42 20  20 20 20 52 34 2c 5b 52  |   STRB    R4,[R|
00002c80  31 5d 2c 23 31 0d 12 20  1a 20 20 20 20 20 20 20  |1],#1.. .       |
00002c90  20 43 4d 50 20 20 20 20  20 52 35 2c 23 31 30 0d  | CMP     R5,#10.|
00002ca0  12 2a 1d 20 20 20 20 20  20 20 20 42 4e 45 20 20  |.*.        BNE  |
00002cb0  20 20 20 68 64 5f 6c 6f  6f 70 5f 31 0d 12 34 1f  |   hd_loop_1..4.|
00002cc0  20 20 20 20 20 20 20 20  41 44 44 20 20 20 20 20  |        ADD     |
00002cd0  52 30 2c 52 30 2c 23 97  22 30 22 0d 12 3e 1e 20  |R0,R0,#."0"..>. |
00002ce0  20 20 20 20 20 20 20 53  54 52 42 20 20 20 20 52  |       STRB    R|
00002cf0  30 2c 5b 52 31 5d 2c 23  31 0d 12 48 1c 20 20 20  |0,[R1],#1..H.   |
00002d00  20 20 20 20 20 4d 4f 56  20 20 20 20 20 52 30 2c  |     MOV     R0,|
00002d10  23 97 22 4b 22 0d 12 52  1b 20 20 20 20 20 20 20  |#."K"..R.       |
00002d20  20 53 54 52 20 20 20 20  20 52 30 2c 5b 52 31 5d  | STR     R0,[R1]|
00002d30  0d 12 5c 23 20 20 20 20  20 20 20 20 4c 44 4d 49  |..\#        LDMI|
00002d40  41 20 20 20 52 31 33 21  2c 7b 52 30 2d 52 37 2c  |A   R13!,{R0-R7,|
00002d50  50 43 7d 0d 12 66 04 0d  12 70 13 2e 74 65 6d 70  |PC}..f...p..temp|
00002d60  6c 61 74 65 5f 74 6f 5f  52 31 0d 12 7a 1f 20 20  |late_to_R1..z.  |
00002d70  20 20 20 20 20 20 41 44  52 20 20 20 20 20 52 31  |      ADR     R1|
00002d80  2c 74 65 6d 70 6c 61 74  65 0d 12 84 1a 20 20 20  |,template....   |
00002d90  20 20 20 20 20 4d 4f 56  20 20 20 20 20 50 43 2c  |     MOV     PC,|
00002da0  52 31 34 0d 12 8e 04 0d  12 98 0d 2e 74 65 6d 70  |R14.........temp|
00002db0  6c 61 74 65 0d 12 a2 16  20 20 20 20 20 20 20 20  |late....        |
00002dc0  44 43 44 20 20 20 20 20  26 38 0d 12 ac 17 20 20  |DCD     &8....  |
00002dd0  20 20 20 20 20 20 44 43  44 20 20 20 20 20 26 38  |      DCD     &8|
00002de0  38 0d 12 b6 18 20 20 20  20 20 20 20 20 44 43 44  |8....        DCD|
00002df0  20 20 20 20 20 26 32 38  34 0d 12 c0 18 20 20 20  |     &284....   |
00002e00  20 20 20 20 20 44 43 44  20 20 20 20 20 26 31 36  |     DCD     &16|
00002e10  30 0d 12 ca 15 20 20 20  20 20 20 20 20 44 43 44  |0....        DCD|
00002e20  20 20 20 20 20 30 0d 12  d4 15 20 20 20 20 20 20  |     0....      |
00002e30  20 20 44 43 44 20 20 20  20 20 30 0d 12 de 16 20  |  DCD     0.... |
00002e40  20 20 20 20 20 20 20 44  43 44 20 20 20 20 20 2d  |       DCD     -|
00002e50  31 0d 12 e8 1d 20 20 20  20 20 20 20 20 44 43 44  |1....        DCD|
00002e60  20 20 20 20 20 26 38 34  30 35 30 30 31 32 0d 12  |     &84050012..|
00002e70  f2 1c 20 20 20 20 20 20  20 20 44 43 44 20 20 20  |..        DCD   |
00002e80  20 20 26 31 30 37 30 32  30 37 0d 12 fc 1a 20 20  |  &1070207....  |
00002e90  20 20 20 20 20 20 44 43  44 20 20 20 20 20 26 43  |      DCD     &C|
00002ea0  30 45 30 43 0d 13 06 15  20 20 20 20 20 20 20 20  |0E0C....        |
00002eb0  44 43 44 20 20 20 20 20  30 0d 13 10 19 20 20 20  |DCD     0....   |
00002ec0  20 20 20 20 20 44 43 44  20 20 20 20 20 2d 26 34  |     DCD     -&4|
00002ed0  30 30 0d 13 1a 18 20 20  20 20 20 20 20 20 44 43  |00....        DC|
00002ee0  44 20 20 20 20 20 26 35  30 30 0d 13 24 15 20 20  |D     &500..$.  |
00002ef0  20 20 20 20 20 20 44 43  44 20 20 20 20 20 30 0d  |      DCD     0.|
00002f00  13 2e 18 20 20 20 20 20  20 20 20 44 43 44 20 20  |...        DCD  |
00002f10  20 20 20 26 31 33 44 0d  13 38 15 20 20 20 20 20  |   &13D..8.     |
00002f20  20 20 20 44 43 44 20 20  20 20 20 30 0d 13 42 15  |   DCD     0..B.|
00002f30  20 20 20 20 20 20 20 20  44 43 44 20 20 20 20 20  |        DCD     |
00002f40  31 0d 13 4c 15 20 20 20  20 20 20 20 20 44 43 44  |1..L.        DCD|
00002f50  20 20 20 20 20 30 0d 13  56 04 0d 13 60 0d 2e 70  |     0..V...`..p|
00002f60  6f 69 6e 74 65 72 30 0d  13 6a 2a 20 20 20 20 20  |ointer0..j*     |
00002f70  20 20 20 44 43 44 20 20  20 20 20 74 65 6d 70 6c  |   DCD     templ|
00002f80  61 74 65 61 62 6f 75 74  2d 74 65 6d 70 6c 61 74  |ateabout-templat|
00002f90  65 0d 13 74 16 20 20 20  20 20 20 20 20 44 43 44  |e..t.        DCD|
00002fa0  20 20 20 20 20 2d 31 0d  13 7e 2d 20 20 20 20 20  |     -1..~-     |
00002fb0  20 20 20 44 43 44 20 20  20 20 20 74 65 6d 70 6c  |   DCD     templ|
00002fc0  61 74 65 65 6e 64 2d 74  65 6d 70 6c 61 74 65 61  |ateend-templatea|
00002fd0  62 6f 75 74 0d 13 88 15  20 20 20 20 20 20 20 20  |bout....        |
00002fe0  44 43 44 20 20 20 20 20  38 0d 13 92 04 0d 13 9c  |DCD     8.......|
00002ff0  17 20 20 20 20 20 20 20  20 44 43 44 20 20 20 20  |.        DCD    |
00003000  20 26 39 41 0d 13 a6 18  20 20 20 20 20 20 20 20  | &9A....        |
00003010  44 43 44 20 20 20 20 20  2d 26 33 34 0d 13 b0 18  |DCD     -&34....|
00003020  20 20 20 20 20 20 20 20  44 43 44 20 20 20 20 20  |        DCD     |
00003030  26 32 37 36 0d 13 ba 17  20 20 20 20 20 20 20 20  |&276....        |
00003040  44 43 44 20 20 20 20 20  2d 26 34 0d 13 c4 1d 20  |DCD     -&4.... |
00003050  20 20 20 20 20 20 20 44  43 44 20 20 20 20 20 26  |       DCD     &|
00003060  43 37 30 30 30 30 33 44  0d 13 ce 16 20 20 20 20  |C700003D....    |
00003070  20 20 20 20 a4 73 28 22  52 6f 6f 6d 22 29 0d 13  |    .s("Room")..|
00003080  d8 15 20 20 20 20 20 20  20 20 44 43 44 20 20 20  |..        DCD   |
00003090  20 20 30 0d 13 e2 04 0d  13 ec 17 20 20 20 20 20  |  0........     |
000030a0  20 20 20 44 43 44 20 20  20 20 20 26 39 41 0d 13  |   DCD     &9A..|
000030b0  f6 18 20 20 20 20 20 20  20 20 44 43 44 20 20 20  |..        DCD   |
000030c0  20 20 2d 26 36 38 0d 14  00 18 20 20 20 20 20 20  |  -&68....      |
000030d0  20 20 44 43 44 20 20 20  20 20 26 32 37 36 0d 14  |  DCD     &276..|
000030e0  0a 18 20 20 20 20 20 20  20 20 44 43 44 20 20 20  |..        DCD   |
000030f0  20 20 2d 26 33 38 0d 14  14 1c 20 20 20 20 20 20  |  -&38....      |
00003100  20 20 44 43 44 20 20 20  20 20 26 37 30 30 30 31  |  DCD     &70001|
00003110  33 44 0d 14 1e 04 0d 14  28 0d 2e 70 6f 69 6e 74  |3D......(..point|
00003120  65 72 31 0d 14 32 2c 20  20 20 20 20 20 20 20 44  |er1..2,        D|
00003130  43 44 20 20 20 20 20 74  65 6d 70 6c 61 74 65 70  |CD     templatep|
00003140  75 72 70 6f 73 65 2d 74  65 6d 70 6c 61 74 65 0d  |urpose-template.|
00003150  14 3c 16 20 20 20 20 20  20 20 20 44 43 44 20 20  |.<.        DCD  |
00003160  20 20 20 2d 31 0d 14 46  32 20 20 20 20 20 20 20  |   -1..F2       |
00003170  20 44 43 44 20 20 20 20  20 74 65 6d 70 6c 61 74  | DCD     templat|
00003180  65 61 75 74 68 6f 72 2d  74 65 6d 70 6c 61 74 65  |eauthor-template|
00003190  70 75 72 70 6f 73 65 0d  14 50 04 0d 14 5a 17 20  |purpose..P...Z. |
000031a0  20 20 20 20 20 20 20 44  43 44 20 20 20 20 20 26  |       DCD     &|
000031b0  39 41 0d 14 64 18 20 20  20 20 20 20 20 20 44 43  |9A..d.        DC|
000031c0  44 20 20 20 20 20 2d 26  39 43 0d 14 6e 18 20 20  |D     -&9C..n.  |
000031d0  20 20 20 20 20 20 44 43  44 20 20 20 20 20 26 32  |      DCD     &2|
000031e0  37 36 0d 14 78 18 20 20  20 20 20 20 20 20 44 43  |76..x.        DC|
000031f0  44 20 20 20 20 20 2d 26  36 43 0d 14 82 1c 20 20  |D     -&6C....  |
00003200  20 20 20 20 20 20 44 43  44 20 20 20 20 20 26 37  |      DCD     &7|
00003210  30 30 30 31 33 44 0d 14  8c 04 0d 14 96 0d 2e 70  |00013D.........p|
00003220  6f 69 6e 74 65 72 32 0d  14 a0 2b 20 20 20 20 20  |ointer2...+     |
00003230  20 20 20 44 43 44 20 20  20 20 20 74 65 6d 70 6c  |   DCD     templ|
00003240  61 74 65 61 75 74 68 6f  72 2d 74 65 6d 70 6c 61  |ateauthor-templa|
00003250  74 65 0d 14 aa 16 20 20  20 20 20 20 20 20 44 43  |te....        DC|
00003260  44 20 20 20 20 20 2d 31  0d 14 b4 32 20 20 20 20  |D     -1...2    |
00003270  20 20 20 20 44 43 44 20  20 20 20 20 74 65 6d 70  |    DCD     temp|
00003280  6c 61 74 65 76 65 72 73  69 6f 6e 2d 74 65 6d 70  |lateversion-temp|
00003290  6c 61 74 65 61 75 74 68  6f 72 0d 14 be 04 0d 14  |lateauthor......|
000032a0  c8 17 20 20 20 20 20 20  20 20 44 43 44 20 20 20  |..        DCD   |
000032b0  20 20 26 39 41 0d 14 d2  18 20 20 20 20 20 20 20  |  &9A....       |
000032c0  20 44 43 44 20 20 20 20  20 2d 26 44 30 0d 14 dc  | DCD     -&D0...|
000032d0  18 20 20 20 20 20 20 20  20 44 43 44 20 20 20 20  |.        DCD    |
000032e0  20 26 32 37 36 0d 14 e6  18 20 20 20 20 20 20 20  | &276....       |
000032f0  20 44 43 44 20 20 20 20  20 2d 26 41 30 0d 14 f0  | DCD     -&A0...|
00003300  1c 20 20 20 20 20 20 20  20 44 43 44 20 20 20 20  |.        DCD    |
00003310  20 26 37 30 30 30 31 33  44 0d 14 fa 04 0d 15 04  | &700013D.......|
00003320  0d 2e 70 6f 69 6e 74 65  72 33 0d 15 0e 2c 20 20  |..pointer3...,  |
00003330  20 20 20 20 20 20 44 43  44 20 20 20 20 20 74 65  |      DCD     te|
00003340  6d 70 6c 61 74 65 76 65  72 73 69 6f 6e 2d 74 65  |mplateversion-te|
00003350  6d 70 6c 61 74 65 0d 15  18 16 20 20 20 20 20 20  |mplate....      |
00003360  20 20 44 43 44 20 20 20  20 20 2d 31 0d 15 22 31  |  DCD     -1.."1|
00003370  20 20 20 20 20 20 20 20  44 43 44 20 20 20 20 20  |        DCD     |
00003380  74 65 6d 70 6c 61 74 65  61 62 6f 75 74 2d 74 65  |templateabout-te|
00003390  6d 70 6c 61 74 65 76 65  72 73 69 6f 6e 0d 15 2c  |mplateversion..,|
000033a0  04 0d 15 36 17 20 20 20  20 20 20 20 20 44 43 44  |...6.        DCD|
000033b0  20 20 20 20 20 26 33 45  0d 15 40 18 20 20 20 20  |     &3E..@.    |
000033c0  20 20 20 20 44 43 44 20  20 20 20 20 2d 26 33 30  |    DCD     -&30|
000033d0  0d 15 4a 17 20 20 20 20  20 20 20 20 44 43 44 20  |..J.        DCD |
000033e0  20 20 20 20 26 39 41 0d  15 54 16 20 20 20 20 20  |    &9A..T.     |
000033f0  20 20 20 44 43 44 20 20  20 20 20 2d 38 0d 15 5e  |   DCD     -8..^|
00003400  1d 20 20 20 20 20 20 20  20 44 43 44 20 20 20 20  |.        DCD    |
00003410  20 26 31 37 30 30 30 30  31 39 0d 15 68 17 20 20  | &17000019..h.  |
00003420  20 20 20 20 20 20 a4 73  28 22 4e 61 6d 65 3a 22  |      .s("Name:"|
00003430  29 0d 15 72 15 20 20 20  20 20 20 20 20 44 43 44  |)..r.        DCD|
00003440  20 20 20 20 20 30 0d 15  7c 04 0d 15 86 16 20 20  |     0..|.....  |
00003450  20 20 20 20 20 20 44 43  44 20 20 20 20 20 26 45  |      DCD     &E|
00003460  0d 15 90 18 20 20 20 20  20 20 20 20 44 43 44 20  |....        DCD |
00003470  20 20 20 20 2d 26 36 34  0d 15 9a 17 20 20 20 20  |    -&64....    |
00003480  20 20 20 20 44 43 44 20  20 20 20 20 26 39 41 0d  |    DCD     &9A.|
00003490  15 a4 18 20 20 20 20 20  20 20 20 44 43 44 20 20  |...        DCD  |
000034a0  20 20 20 2d 26 33 43 0d  15 ae 1d 20 20 20 20 20  |   -&3C....     |
000034b0  20 20 20 44 43 44 20 20  20 20 20 26 31 37 30 30  |   DCD     &1700|
000034c0  30 30 31 39 0d 15 b8 1a  20 20 20 20 20 20 20 20  |0019....        |
000034d0  a4 73 28 22 50 75 72 70  6f 73 65 3a 22 29 0d 15  |.s("Purpose:")..|
000034e0  c2 04 0d 15 cc 17 20 20  20 20 20 20 20 20 44 43  |......        DC|
000034f0  44 20 20 20 20 20 26 31  45 0d 15 d6 18 20 20 20  |D     &1E....   |
00003500  20 20 20 20 20 44 43 44  20 20 20 20 20 2d 26 39  |     DCD     -&9|
00003510  38 0d 15 e0 17 20 20 20  20 20 20 20 20 44 43 44  |8....        DCD|
00003520  20 20 20 20 20 26 39 41  0d 15 ea 18 20 20 20 20  |     &9A....    |
00003530  20 20 20 20 44 43 44 20  20 20 20 20 2d 26 37 30  |    DCD     -&70|
00003540  0d 15 f4 1d 20 20 20 20  20 20 20 20 44 43 44 20  |....        DCD |
00003550  20 20 20 20 26 31 37 30  30 30 30 31 39 0d 15 fe  |    &17000019...|
00003560  19 20 20 20 20 20 20 20  20 a4 73 28 22 41 75 74  |.        .s("Aut|
00003570  68 6f 72 3a 22 29 0d 16  08 15 20 20 20 20 20 20  |hor:")....      |
00003580  20 20 44 43 44 20 20 20  20 20 30 0d 16 12 04 0d  |  DCD     0.....|
00003590  16 1c 16 20 20 20 20 20  20 20 20 44 43 44 20 20  |...        DCD  |
000035a0  20 20 20 26 45 0d 16 26  18 20 20 20 20 20 20 20  |   &E..&.       |
000035b0  20 44 43 44 20 20 20 20  20 2d 26 43 38 0d 16 30  | DCD     -&C8..0|
000035c0  17 20 20 20 20 20 20 20  20 44 43 44 20 20 20 20  |.        DCD    |
000035d0  20 26 39 41 0d 16 3a 18  20 20 20 20 20 20 20 20  | &9A..:.        |
000035e0  44 43 44 20 20 20 20 20  2d 26 41 30 0d 16 44 1d  |DCD     -&A0..D.|
000035f0  20 20 20 20 20 20 20 20  44 43 44 20 20 20 20 20  |        DCD     |
00003600  26 31 37 30 30 30 30 31  39 0d 16 4e 1a 20 20 20  |&17000019..N.   |
00003610  20 20 20 20 20 a4 73 28  22 56 65 72 73 69 6f 6e  |     .s("Version|
00003620  3a 22 29 0d 16 58 15 20  20 20 20 20 20 20 20 44  |:")..X.        D|
00003630  43 44 20 20 20 20 20 30  0d 16 62 04 0d 16 6c 14  |CD     0..b...l.|
00003640  2e 74 65 6d 70 6c 61 74  65 70 75 72 70 6f 73 65  |.templatepurpose|
00003650  0d 16 76 32 20 20 20 20  20 20 20 20 45 51 55 53  |..v2        EQUS|
00003660  20 20 20 20 22 53 68 6f  77 20 46 72 65 65 20 6d  |    "Show Free m|
00003670  65 6d 6f 72 79 20 6f 6e  20 69 63 6f 6e 20 62 61  |emory on icon ba|
00003680  72 22 0d 16 80 16 20 20  20 20 20 20 20 20 44 43  |r"....        DC|
00003690  42 20 20 20 20 20 31 33  0d 16 8a 04 0d 16 94 13  |B     13........|
000036a0  2e 74 65 6d 70 6c 61 74  65 61 75 74 68 6f 72 0d  |.templateauthor.|
000036b0  16 9e 17 20 20 20 20 20  20 20 20 44 43 42 20 20  |...        DCB  |
000036c0  20 20 20 26 41 39 0d 16  a8 28 20 20 20 20 20 20  |   &A9...(      |
000036d0  20 20 45 51 55 53 20 20  20 20 22 20 4a 6f 68 6e  |  EQUS    " John|
000036e0  20 57 69 6b 65 20 66 6f  72 20 42 41 55 22 0d 16  | Wike for BAU"..|
000036f0  b2 16 20 20 20 20 20 20  20 20 44 43 42 20 20 20  |..        DCB   |
00003700  20 20 31 33 0d 16 bc 04  0d 16 c6 14 2e 74 65 6d  |  13.........tem|
00003710  70 6c 61 74 65 76 65 72  73 69 6f 6e 0d 16 d0 19  |plateversion....|
00003720  20 20 20 20 20 20 20 20  45 51 55 53 20 20 20 20  |        EQUS    |
00003730  62 6f 74 68 24 0d 16 da  16 20 20 20 20 20 20 20  |both$....       |
00003740  20 44 43 42 20 20 20 20  20 31 33 0d 16 e4 04 0d  | DCB     13.....|
00003750  16 ee 12 2e 74 65 6d 70  6c 61 74 65 61 62 6f 75  |....templateabou|
00003760  74 0d 16 f8 28 20 20 20  20 20 20 20 20 45 51 55  |t...(        EQU|
00003770  53 20 20 20 20 22 41 62  6f 75 74 20 74 68 69 73  |S    "About this|
00003780  20 70 72 6f 67 72 61 6d  22 0d 17 02 16 20 20 20  | program"....   |
00003790  20 20 20 20 20 44 43 42  20 20 20 20 20 31 33 0d  |     DCB     13.|
000037a0  17 0c 04 0d 17 16 10 2e  74 65 6d 70 6c 61 74 65  |........template|
000037b0  65 6e 64 0d 17 20 11 20  20 20 20 20 20 20 20 41  |end.. .        A|
000037c0  4c 49 47 4e 0d 17 2a 05  5d 0d 17 34 05 ed 0d 17  |LIGN..*.]..4....|
000037d0  3e 17 f1 22 42 79 74 65  73 3a 20 26 22 3b 7e 4f  |>.."Bytes: &";~O|
000037e0  25 2d 6d 63 25 0d 17 48  05 e1 0d 17 52 05 3a 0d  |%-mc%..H....R.:.|
000037f0  17 5c 05 3a 0d 17 66 0b  dd 20 f2 73 61 76 65 0d  |.\.:..f.. .save.|
00003800  17 70 26 c8 99 20 22 4f  53 5f 46 69 6c 65 22 2c  |.p&.. "OS_File",|
00003810  31 30 2c 53 61 76 65 24  2c 26 46 46 41 2c 2c 6d  |10,Save$,&FFA,,m|
00003820  63 25 2c 4f 25 0d 17 7a  1e f1 27 22 4d 6f 64 75  |c%,O%..z..'"Modu|
00003830  6c 65 20 73 61 76 65 64  20 61 73 20 22 3b 53 61  |le saved as ";Sa|
00003840  76 65 24 0d 17 84 05 e1  0d 17 8e 05 3a 0d 17 98  |ve$.........:...|
00003850  0f dd 20 a4 73 28 54 65  78 74 24 29 0d 17 a2 10  |.. .s(Text$)....|
00003860  5b 4f 50 54 20 20 20 20  70 61 73 73 0d 17 ac 19  |[OPT    pass....|
00003870  20 20 20 20 20 20 20 20  45 51 55 53 20 20 20 20  |        EQUS    |
00003880  54 65 78 74 24 0d 17 b6  15 20 20 20 20 20 20 20  |Text$....       |
00003890  20 44 43 42 20 20 20 20  20 30 0d 17 c0 09 41 4c  | DCB     0....AL|
000038a0  49 47 4e 0d 17 ca 05 5d  0d 17 d4 06 3d 30 0d 17  |IGN....]....=0..|
000038b0  de 04 0d ff                                       |....|
000038b4