Home » Archimedes archive » Acorn User » AU 1995-10.adf » !Regulars » Regulars/StarInfo/BlankCheck/Source
Regulars/StarInfo/BlankCheck/Source
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
Tape/disk: | Home » Archimedes archive » Acorn User » AU 1995-10.adf » !Regulars |
Filename: | Regulars/StarInfo/BlankCheck/Source |
Read OK: | ✔ |
File size: | 14CE bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
1REM >Source 2REM by DA 3REM (c) AU October 1995 4 5ON ERROR ERROR EXT ERR,REPORT$+" at line "+STR$ERL:END 6: 7DIM code 5000 8 9vbit=1<<28 10 11needed=0 12x0=FNalloc(4) 13x1=FNalloc(4) 14y1=FNalloc(4) 15status=FNalloc(4) 16was_delay=FNalloc(4) 17 18service_mode_change=&46 19 20wp=12 21sp=13 22lr=14 23pc=15 24 25leeway=8 26stat_norm=0 27stat_on =1 28stat_off =2 29 30FOR pass = 4 TO 6 STEP 2 31O%=code:P%=0 32[OPT pass 33.Start 34 EQUD 0 35 EQUD Init 36 EQUD Final 37 EQUD ServiceCall 38 EQUD Title 39 EQUD Help 40 EQUD 0 41 EQUD 0 42 EQUD 0 43 EQUD 0 44 EQUD 0 45 EQUD 0 46 EQUD 0 47 48.Title 49 EQUS "BlankCheck" 50 EQUB 0 51 ALIGN 52 53.Help 54 EQUS "BlankCheck" 55 EQUB 9 56 EQUS "0.10 (31 Jul 1995)" 57 EQUB 0 58 ALIGN 59 60.Init 61 STMFD sp !,{lr} 62 MOV r0,#6 63 MOV r2,#0 64 MOV r3,#needed 65 SWI "XOS_Module" 66 MOVVS r2,#0 67 CMP r2,#0 68 ADREQ r0,no_room 69 LDMEQFD sp !,{lr} 70 ORREQS pc,lr,#vbit 71 STR r2,[wp] 72 MOV wp,r2 73 BL calc_ext 74 MOV r0,#stat_norm 75 STR r0,[wp,#status] 76 MOV r0,#&13 77 ADR r1,call_every 78 MOV r2,wp 79 SWI "XOS_CallEvery" 80 LDMFD sp !,{pc}^ 81 82.no_room 83 DCD 0 84 EQUS "No room to start" 85 DCB 0 86 ALIGN 87 88.Final 89 STMFD sp !,{lr} 90 LDR wp,[wp] 91 ADR r0,call_every 92 MOV r1,wp 93 SWI "XOS_RemoveTickerEvent" 94 MOV r0,#7 95 MOV r2,wp 96 SWI "XOS_Module" 97 LDMFD sp !,{pc}^ 98 99.ServiceCall 100 CMP r1,#service_mode_change 101 MOVNES pc,lr 102 LDR wp,[wp] 103 STMFD sp !,{r8,r9,lr} 104 MOV r9,pc 105 ORR r8,r9,#3 106 TEQP r8,#0 107 MOV r0,r0 108 STMFD sp !,{lr} 109 BL calc_ext 110 LDMFD sp !,{lr} 111 TEQP r9,#0 112 MOV r0,r0 113 LDMFD sp !,{r8,r9,pc}^ 114 115.calc_ext 116 STMFD sp !,{r0-r5,lr} 117 SUB sp,sp,#16 118 ADR r0,vdu_list 119 MOV r1,sp 120 SWI "XOS_ReadVduVariables" 121 LDMIA sp !,{r0-r3} 122 SUB r4,r0,#leeway 123 MOV r4,r4,LSL r2 124 SUB r5,r1,#leeway 125 MOV r5,r5,LSL r3 126 MOV r0,#leeway 127 MOV r0,r0,LSL r2 128 STMIA wp,{r0,r4,r5} 129 LDMFD sp !,{r0-r5,pc} 130 131.vdu_list 132 DCD 11 133 DCD 12 134 DCD 4 135 DCD 5 136 DCD -1 137 138.call_every 139 STMFD sp !,{r0-r4,r8,r9,lr} 140 MOV r9,pc 141 ORR r8,r9,#3 142 TEQP r8,#0 143 MOV r0,r0 144 STMFD sp !,{lr} 145 BL get_status 146 LDR r1,[wp,#status] 147 CMP r0,r1 148 BEQ ce_done 149 STR r0,[wp,#status] 150 CMP r1,#stat_norm 151 ADREQ r0,cb1 152 ADRNE r0,cb2 153 MOV r1,wp 154 SWI "XOS_AddCallBack" 155.ce_done 156 LDMFD sp !,{lr} 157 TEQP r9,#0 158 MOV r0,r0 159 LDMFD sp !,{r0-r4,r8,r9,pc}^ 160 161.cb1 162 STMFD sp !,{r0-r3,lr} 163 MOV r0,#4 164 SWI "XScreenBlanker_Control" 165 MOV r0,#100 166 MUL r0,r1,r0 167 STR r0,[wp,#was_delay] 168 LDR r3,[wp,#status] 169 CMP r3,#stat_on 170 MOVEQ r1,#0 ; infinite 171 MOVNE r1,#1 ; short 172 MOV r0,#3 173 SWI "XScreenBlanker_Control" 174 CMP r3,#stat_off 175 MOVEQ r0,#20 176 ADREQ r1,switch_off 177 MOVEQ r2,wp 178 SWIEQ "XOS_CallAfter" 179 LDMFD sp !,{r0-r3,pc} 180 181.switch_off 182 STMFD sp !,{r0-r1,lr} 183 MOV r0,#0 184 SWI "XScreenBlanker_Control" 185 LDMFD sp !,{r0-r1,pc}^ 186 187.cb2 188 STMFD sp !,{r0-r1,lr} 189 LDR r1,[wp,#was_delay] 190 MOV r0,#3 191 SWI "XScreenBlanker_Control" 192 LDMFD sp !,{r0-r1,pc} 193 194.get_status 195 STMFD sp !,{r1-r4,lr} 196 SUB sp,sp,#8 197 MOV r0,#21 198 ADD r1,sp,#3 199 MOV r14,#4 200 STRB r14,[r1] 201 SWI "XOS_Word" 202 LDR r0,[sp,#4] 203 ADD sp,sp,#8 204 LDMIA wp,{r2-r4} 205 CMP r4,r0,LSR #16 206 BGT status_norm 207 MOV r1,r0,LSL #16 208 MOV r1,r1,LSR #16 209 CMP r1,r2 210 MOVLE r0,#stat_off 211 LDMLEFD sp !,{r1-r4,pc} 212 CMP r1,r3 213 MOVGE r0,#stat_on 214 LDMGEFD sp !,{r1-r4,pc} 215.status_norm 216 MOV r0,#stat_norm 217 LDMFD sp !,{r1-r4,pc} 218] 219NEXT pass 220SYS "OS_File",10,"BlankCheck",&FFA,,code,O% 221END 222: 223DEF FNalloc(bytes) 224needed+=bytes 225=needed-bytes 226
� >Source � by DA � (c) AU October 1995 !� � � � �,�$+" at line "+Þ:� : � code 5000 vbit=1<<28 needed=0 x0=�alloc(4) x1=�alloc(4) y1=�alloc(4) status=�alloc(4) was_delay=�alloc(4) service_mode_change=&46 wp=12 sp=13 lr=14 pc=15 leeway=8 stat_norm=0 stat_on =1 stat_off =2 � pass = 4 � 6 � 2 O%=code:P%=0 [OPT pass ! .Start " EQUD 0 # EQUD Init $ EQUD Final % EQUD ServiceCall & EQUD Title ' EQUD Help ( EQUD 0 ) EQUD 0 * EQUD 0 + EQUD 0 , EQUD 0 - EQUD 0 . EQUD 0 / 0 .Title 1 EQUS "BlankCheck" 2 EQUB 0 3 ALIGN 4 5 .Help 6 EQUS "BlankCheck" 7 EQUB 9 8% EQUS "0.10 (31 Jul 1995)" 9 EQUB 0 : ALIGN ; < .Init = STMFD sp !,{lr} > MOV r0,#6 ? MOV r2,#0 @ MOV r3,#needed A SWI "XOS_Module" B MOVVS r2,#0 C CMP r2,#0 D ADREQ r0,no_room E LDMEQFD sp !,{lr} F �REQS pc,lr,#vbit G STR r2,[wp] H MOV wp,r2 I BL calc_ext J! MOV r0,#stat_norm K# STR r0,[wp,#status] L MOV r0,#&13 M! ADR r1,call_every N MOV r2,wp O# SWI "XOS_CallEvery" P LDMFD sp !,{pc}^ Q R.no_room S DCD 0 T& EQUS "No room to start" U DCB 0 V ALIGN W X .Final Y STMFD sp !,{lr} Z LDR wp,[wp] [! ADR r0,call_every \ MOV r1,wp ]+ SWI "XOS_RemoveTickerEvent" ^ MOV r0,#7 _ MOV r2,wp ` SWI "XOS_Module" a LDMFD sp !,{pc}^ b c.ServiceCall d+ CMP r1,#service_mode_change e MOVNES pc,lr f LDR wp,[wp] g# STMFD sp !,{r8,r9,lr} h MOV r9,pc i �R r8,r9,#3 j TEQP r8,#0 k MOV r0,r0 l STMFD sp !,{lr} m BL calc_ext n LDMFD sp !,{lr} o TEQP r9,#0 p MOV r0,r0 q$ LDMFD sp !,{r8,r9,pc}^ r s .calc_ext t# STMFD sp !,{r0-r5,lr} u SUB sp,sp,#16 v ADR r0,vdu_list w MOV r1,sp x* SWI "XOS_ReadVduVariables" y LDMIA sp !,{r0-r3} z! SUB r4,r0,#leeway { MOV r4,r4,LSL r2 |! SUB r5,r1,#leeway } MOV r5,r5,LSL r3 ~ MOV r0,#leeway MOV r0,r0,LSL r2 �! STMIA wp,{r0,r4,r5} �# LDMFD sp !,{r0-r5,pc} � � .vdu_list � DCD 11 � DCD 12 � DCD 4 � DCD 5 � DCD -1 � �.call_every �) STMFD sp !,{r0-r4,r8,r9,lr} � MOV r9,pc � �R r8,r9,#3 � TEQP r8,#0 � MOV r0,r0 � STMFD sp !,{lr} � BL get_status �# LDR r1,[wp,#status] � CMP r0,r1 � BEQ ce_done �# STR r0,[wp,#status] �! CMP r1,#stat_norm � ADREQ r0,cb1 � ADRNE r0,cb2 � MOV r1,wp �% SWI "XOS_AddCallBack" �.ce_done � LDMFD sp !,{lr} � TEQP r9,#0 � MOV r0,r0 �/ LDMFD sp !,{r0-r4,r8,r9,pc}^ � �.cb1 �# STMFD sp !,{r0-r3,lr} � MOV r0,#4 �, SWI "XScreenBlanker_Control" � MOV r0,#100 � MUL r0,r1,r0 �& STR r0,[wp,#was_delay] �# LDR r3,[wp,#status] � CMP r3,#stat_on �" �Q r1,#0 ; infinite �" MOVNE r1,#1 ; short � MOV r0,#3 �, SWI "XScreenBlanker_Control" � CMP r3,#stat_off � �Q r0,#20 �! ADREQ r1,switch_off � �Q r2,wp �# SWIEQ "XOS_CallAfter" �# LDMFD sp !,{r0-r3,pc} � �.switch_off �# STMFD sp !,{r0-r1,lr} � MOV r0,#0 �, SWI "XScreenBlanker_Control" �$ LDMFD sp !,{r0-r1,pc}^ � �.cb2 �# STMFD sp !,{r0-r1,lr} �& LDR r1,[wp,#was_delay] � MOV r0,#3 �, SWI "XScreenBlanker_Control" �# LDMFD sp !,{r0-r1,pc} � �.get_status �# STMFD sp !,{r1-r4,lr} � SUB sp,sp,#8 � MOV r0,#21 � ADD r1,sp,#3 � MOV r14,#4 � STRB r14,[r1] � SWI "XOS_Word" � LDR r0,[sp,#4] � ADD sp,sp,#8 � LDMIA wp,{r2-r4} �$ CMP r4,r0,LSR #16 � BGT status_norm �! MOV r1,r0,LSL #16 �! MOV r1,r1,LSR #16 � CMP r1,r2 � MOVLE r0,#stat_off �# LDMLEFD sp !,{r1-r4,pc} � CMP r1,r3 � MOVGE r0,#stat_on �# LDMGEFD sp !,{r1-r4,pc} �.status_norm �! MOV r0,#stat_norm �# LDMFD sp !,{r1-r4,pc} �] � � pass �.ș "OS_File",10,"BlankCheck",&FFA,,code,O% �� �: �� �alloc(bytes) �needed+=bytes �=needed-bytes � �
00000000 0d 00 01 0d f4 20 3e 53 6f 75 72 63 65 0d 00 02 |..... >Source...| 00000010 0b f4 20 62 79 20 44 41 0d 00 03 19 f4 20 28 63 |.. by DA..... (c| 00000020 29 20 41 55 20 4f 63 74 6f 62 65 72 20 31 39 39 |) AU October 199| 00000030 35 0d 00 04 04 0d 00 05 21 ee 20 85 20 85 20 a2 |5.......!. . . .| 00000040 20 9f 2c f6 24 2b 22 20 61 74 20 6c 69 6e 65 20 | .,.$+" at line | 00000050 22 2b c3 9e 3a e0 0d 00 06 05 3a 0d 00 07 0f de |"+..:.....:.....| 00000060 20 63 6f 64 65 20 35 30 30 30 0d 00 08 04 0d 00 | code 5000......| 00000070 09 0e 76 62 69 74 3d 31 3c 3c 32 38 0d 00 0a 04 |..vbit=1<<28....| 00000080 0d 00 0b 0c 6e 65 65 64 65 64 3d 30 0d 00 0c 10 |....needed=0....| 00000090 78 30 3d a4 61 6c 6c 6f 63 28 34 29 0d 00 0d 10 |x0=.alloc(4)....| 000000a0 78 31 3d a4 61 6c 6c 6f 63 28 34 29 0d 00 0e 10 |x1=.alloc(4)....| 000000b0 79 31 3d a4 61 6c 6c 6f 63 28 34 29 0d 00 0f 14 |y1=.alloc(4)....| 000000c0 73 74 61 74 75 73 3d a4 61 6c 6c 6f 63 28 34 29 |status=.alloc(4)| 000000d0 0d 00 10 17 77 61 73 5f 64 65 6c 61 79 3d a4 61 |....was_delay=.a| 000000e0 6c 6c 6f 63 28 34 29 0d 00 11 04 0d 00 12 1b 73 |lloc(4)........s| 000000f0 65 72 76 69 63 65 5f 6d 6f 64 65 5f 63 68 61 6e |ervice_mode_chan| 00000100 67 65 3d 26 34 36 0d 00 13 04 0d 00 14 09 77 70 |ge=&46........wp| 00000110 3d 31 32 0d 00 15 09 73 70 3d 31 33 0d 00 16 09 |=12....sp=13....| 00000120 6c 72 3d 31 34 0d 00 17 09 70 63 3d 31 35 0d 00 |lr=14....pc=15..| 00000130 18 04 0d 00 19 0c 6c 65 65 77 61 79 3d 38 0d 00 |......leeway=8..| 00000140 1a 0f 73 74 61 74 5f 6e 6f 72 6d 3d 30 0d 00 1b |..stat_norm=0...| 00000150 0f 73 74 61 74 5f 6f 6e 20 20 3d 31 0d 00 1c 0f |.stat_on =1....| 00000160 73 74 61 74 5f 6f 66 66 20 3d 32 0d 00 1d 04 0d |stat_off =2.....| 00000170 00 1e 16 e3 20 70 61 73 73 20 3d 20 34 20 b8 20 |.... pass = 4 . | 00000180 36 20 88 20 32 0d 00 1f 10 4f 25 3d 63 6f 64 65 |6 . 2....O%=code| 00000190 3a 50 25 3d 30 0d 00 20 0d 5b 4f 50 54 20 70 61 |:P%=0.. .[OPT pa| 000001a0 73 73 0d 00 21 0a 2e 53 74 61 72 74 0d 00 22 12 |ss..!..Start..".| 000001b0 20 20 20 20 20 20 20 20 45 51 55 44 20 30 0d 00 | EQUD 0..| 000001c0 23 15 20 20 20 20 20 20 20 20 45 51 55 44 20 49 |#. EQUD I| 000001d0 6e 69 74 0d 00 24 16 20 20 20 20 20 20 20 20 45 |nit..$. E| 000001e0 51 55 44 20 46 69 6e 61 6c 0d 00 25 1c 20 20 20 |QUD Final..%. | 000001f0 20 20 20 20 20 45 51 55 44 20 53 65 72 76 69 63 | EQUD Servic| 00000200 65 43 61 6c 6c 0d 00 26 16 20 20 20 20 20 20 20 |eCall..&. | 00000210 20 45 51 55 44 20 54 69 74 6c 65 0d 00 27 15 20 | EQUD Title..'. | 00000220 20 20 20 20 20 20 20 45 51 55 44 20 48 65 6c 70 | EQUD Help| 00000230 0d 00 28 12 20 20 20 20 20 20 20 20 45 51 55 44 |..(. EQUD| 00000240 20 30 0d 00 29 12 20 20 20 20 20 20 20 20 45 51 | 0..). EQ| 00000250 55 44 20 30 0d 00 2a 12 20 20 20 20 20 20 20 20 |UD 0..*. | 00000260 45 51 55 44 20 30 0d 00 2b 12 20 20 20 20 20 20 |EQUD 0..+. | 00000270 20 20 45 51 55 44 20 30 0d 00 2c 12 20 20 20 20 | EQUD 0..,. | 00000280 20 20 20 20 45 51 55 44 20 30 0d 00 2d 12 20 20 | EQUD 0..-. | 00000290 20 20 20 20 20 20 45 51 55 44 20 30 0d 00 2e 12 | EQUD 0....| 000002a0 20 20 20 20 20 20 20 20 45 51 55 44 20 30 0d 00 | EQUD 0..| 000002b0 2f 04 0d 00 30 0a 2e 54 69 74 6c 65 0d 00 31 1d |/...0..Title..1.| 000002c0 20 20 20 20 20 20 20 20 45 51 55 53 20 22 42 6c | EQUS "Bl| 000002d0 61 6e 6b 43 68 65 63 6b 22 0d 00 32 12 20 20 20 |ankCheck"..2. | 000002e0 20 20 20 20 20 45 51 55 42 20 30 0d 00 33 11 20 | EQUB 0..3. | 000002f0 20 20 20 20 20 20 20 41 4c 49 47 4e 0d 00 34 04 | ALIGN..4.| 00000300 0d 00 35 09 2e 48 65 6c 70 0d 00 36 1d 20 20 20 |..5..Help..6. | 00000310 20 20 20 20 20 45 51 55 53 20 22 42 6c 61 6e 6b | EQUS "Blank| 00000320 43 68 65 63 6b 22 0d 00 37 12 20 20 20 20 20 20 |Check"..7. | 00000330 20 20 45 51 55 42 20 39 0d 00 38 25 20 20 20 20 | EQUB 9..8% | 00000340 20 20 20 20 45 51 55 53 20 22 30 2e 31 30 20 28 | EQUS "0.10 (| 00000350 33 31 20 4a 75 6c 20 31 39 39 35 29 22 0d 00 39 |31 Jul 1995)"..9| 00000360 12 20 20 20 20 20 20 20 20 45 51 55 42 20 30 0d |. EQUB 0.| 00000370 00 3a 11 20 20 20 20 20 20 20 20 41 4c 49 47 4e |.:. ALIGN| 00000380 0d 00 3b 04 0d 00 3c 09 2e 49 6e 69 74 0d 00 3d |..;...<..Init..=| 00000390 1d 20 20 20 20 20 20 20 20 53 54 4d 46 44 20 20 |. STMFD | 000003a0 20 73 70 20 21 2c 7b 6c 72 7d 0d 00 3e 19 20 20 | sp !,{lr}..>. | 000003b0 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 72 30 | MOV r0| 000003c0 2c 23 36 0d 00 3f 19 20 20 20 20 20 20 20 20 4d |,#6..?. M| 000003d0 4f 56 20 20 20 20 20 72 32 2c 23 30 0d 00 40 1e |OV r2,#0..@.| 000003e0 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 | MOV | 000003f0 72 33 2c 23 6e 65 65 64 65 64 0d 00 41 20 20 20 |r3,#needed..A | 00000400 20 20 20 20 20 20 53 57 49 20 20 20 20 20 22 58 | SWI "X| 00000410 4f 53 5f 4d 6f 64 75 6c 65 22 0d 00 42 19 20 20 |OS_Module"..B. | 00000420 20 20 20 20 20 20 4d 4f 56 56 53 20 20 20 72 32 | MOVVS r2| 00000430 2c 23 30 0d 00 43 19 20 20 20 20 20 20 20 20 43 |,#0..C. C| 00000440 4d 50 20 20 20 20 20 72 32 2c 23 30 0d 00 44 1e |MP r2,#0..D.| 00000450 20 20 20 20 20 20 20 20 41 44 52 45 51 20 20 20 | ADREQ | 00000460 72 30 2c 6e 6f 5f 72 6f 6f 6d 0d 00 45 1d 20 20 |r0,no_room..E. | 00000470 20 20 20 20 20 20 4c 44 4d 45 51 46 44 20 73 70 | LDMEQFD sp| 00000480 20 21 2c 7b 6c 72 7d 0d 00 46 1e 20 20 20 20 20 | !,{lr}..F. | 00000490 20 20 20 84 52 45 51 53 20 20 70 63 2c 6c 72 2c | .REQS pc,lr,| 000004a0 23 76 62 69 74 0d 00 47 1d 20 20 20 20 20 20 20 |#vbit..G. | 000004b0 20 53 54 52 20 20 20 20 20 72 32 2c 5b 77 70 5d | STR r2,[wp]| 000004c0 20 20 0d 00 48 1a 20 20 20 20 20 20 20 20 4d 4f | ..H. MO| 000004d0 56 20 20 20 20 20 77 70 2c 72 32 20 0d 00 49 1e |V wp,r2 ..I.| 000004e0 20 20 20 20 20 20 20 20 42 4c 20 20 20 20 20 20 | BL | 000004f0 63 61 6c 63 5f 65 78 74 20 20 0d 00 4a 21 20 20 |calc_ext ..J! | 00000500 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 72 30 | MOV r0| 00000510 2c 23 73 74 61 74 5f 6e 6f 72 6d 0d 00 4b 23 20 |,#stat_norm..K# | 00000520 20 20 20 20 20 20 20 53 54 52 20 20 20 20 20 72 | STR r| 00000530 30 2c 5b 77 70 2c 23 73 74 61 74 75 73 5d 0d 00 |0,[wp,#status]..| 00000540 4c 1b 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 |L. MOV | 00000550 20 20 72 30 2c 23 26 31 33 0d 00 4d 21 20 20 20 | r0,#&13..M! | 00000560 20 20 20 20 20 41 44 52 20 20 20 20 20 72 31 2c | ADR r1,| 00000570 63 61 6c 6c 5f 65 76 65 72 79 0d 00 4e 19 20 20 |call_every..N. | 00000580 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 72 32 | MOV r2| 00000590 2c 77 70 0d 00 4f 23 20 20 20 20 20 20 20 20 53 |,wp..O# S| 000005a0 57 49 20 20 20 20 20 22 58 4f 53 5f 43 61 6c 6c |WI "XOS_Call| 000005b0 45 76 65 72 79 22 0d 00 50 1e 20 20 20 20 20 20 |Every"..P. | 000005c0 20 20 4c 44 4d 46 44 20 20 20 73 70 20 21 2c 7b | LDMFD sp !,{| 000005d0 70 63 7d 5e 0d 00 51 04 0d 00 52 0c 2e 6e 6f 5f |pc}^..Q...R..no_| 000005e0 72 6f 6f 6d 0d 00 53 15 20 20 20 20 20 20 20 20 |room..S. | 000005f0 44 43 44 20 20 20 20 20 30 0d 00 54 26 20 20 20 |DCD 0..T& | 00000600 20 20 20 20 20 45 51 55 53 20 20 20 20 22 4e 6f | EQUS "No| 00000610 20 72 6f 6f 6d 20 74 6f 20 73 74 61 72 74 22 0d | room to start".| 00000620 00 55 15 20 20 20 20 20 20 20 20 44 43 42 20 20 |.U. DCB | 00000630 20 20 20 30 0d 00 56 11 20 20 20 20 20 20 20 20 | 0..V. | 00000640 41 4c 49 47 4e 0d 00 57 04 0d 00 58 0a 2e 46 69 |ALIGN..W...X..Fi| 00000650 6e 61 6c 0d 00 59 1d 20 20 20 20 20 20 20 20 53 |nal..Y. S| 00000660 54 4d 46 44 20 20 20 73 70 20 21 2c 7b 6c 72 7d |TMFD sp !,{lr}| 00000670 0d 00 5a 1b 20 20 20 20 20 20 20 20 4c 44 52 20 |..Z. LDR | 00000680 20 20 20 20 77 70 2c 5b 77 70 5d 0d 00 5b 21 20 | wp,[wp]..[! | 00000690 20 20 20 20 20 20 20 41 44 52 20 20 20 20 20 72 | ADR r| 000006a0 30 2c 63 61 6c 6c 5f 65 76 65 72 79 0d 00 5c 19 |0,call_every..\.| 000006b0 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 | MOV | 000006c0 72 31 2c 77 70 0d 00 5d 2b 20 20 20 20 20 20 20 |r1,wp..]+ | 000006d0 20 53 57 49 20 20 20 20 20 22 58 4f 53 5f 52 65 | SWI "XOS_Re| 000006e0 6d 6f 76 65 54 69 63 6b 65 72 45 76 65 6e 74 22 |moveTickerEvent"| 000006f0 0d 00 5e 19 20 20 20 20 20 20 20 20 4d 4f 56 20 |..^. MOV | 00000700 20 20 20 20 72 30 2c 23 37 0d 00 5f 19 20 20 20 | r0,#7.._. | 00000710 20 20 20 20 20 4d 4f 56 20 20 20 20 20 72 32 2c | MOV r2,| 00000720 77 70 0d 00 60 20 20 20 20 20 20 20 20 20 53 57 |wp..` SW| 00000730 49 20 20 20 20 20 22 58 4f 53 5f 4d 6f 64 75 6c |I "XOS_Modul| 00000740 65 22 0d 00 61 1e 20 20 20 20 20 20 20 20 4c 44 |e"..a. LD| 00000750 4d 46 44 20 20 20 73 70 20 21 2c 7b 70 63 7d 5e |MFD sp !,{pc}^| 00000760 0d 00 62 0f 20 20 20 20 20 20 20 20 20 20 20 0d |..b. .| 00000770 00 63 10 2e 53 65 72 76 69 63 65 43 61 6c 6c 0d |.c..ServiceCall.| 00000780 00 64 2b 20 20 20 20 20 20 20 20 43 4d 50 20 20 |.d+ CMP | 00000790 20 20 20 72 31 2c 23 73 65 72 76 69 63 65 5f 6d | r1,#service_m| 000007a0 6f 64 65 5f 63 68 61 6e 67 65 0d 00 65 19 20 20 |ode_change..e. | 000007b0 20 20 20 20 20 20 4d 4f 56 4e 45 53 20 20 70 63 | MOVNES pc| 000007c0 2c 6c 72 0d 00 66 1b 20 20 20 20 20 20 20 20 4c |,lr..f. L| 000007d0 44 52 20 20 20 20 20 77 70 2c 5b 77 70 5d 0d 00 |DR wp,[wp]..| 000007e0 67 23 20 20 20 20 20 20 20 20 53 54 4d 46 44 20 |g# STMFD | 000007f0 20 20 73 70 20 21 2c 7b 72 38 2c 72 39 2c 6c 72 | sp !,{r8,r9,lr| 00000800 7d 0d 00 68 19 20 20 20 20 20 20 20 20 4d 4f 56 |}..h. MOV| 00000810 20 20 20 20 20 72 39 2c 70 63 0d 00 69 1b 20 20 | r9,pc..i. | 00000820 20 20 20 20 20 20 84 52 20 20 20 20 20 72 38 2c | .R r8,| 00000830 72 39 2c 23 33 0d 00 6a 19 20 20 20 20 20 20 20 |r9,#3..j. | 00000840 20 54 45 51 50 20 20 20 20 72 38 2c 23 30 0d 00 | TEQP r8,#0..| 00000850 6b 19 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 |k. MOV | 00000860 20 20 72 30 2c 72 30 0d 00 6c 1d 20 20 20 20 20 | r0,r0..l. | 00000870 20 20 20 53 54 4d 46 44 20 20 20 73 70 20 21 2c | STMFD sp !,| 00000880 7b 6c 72 7d 0d 00 6d 1c 20 20 20 20 20 20 20 20 |{lr}..m. | 00000890 42 4c 20 20 20 20 20 20 63 61 6c 63 5f 65 78 74 |BL calc_ext| 000008a0 0d 00 6e 1d 20 20 20 20 20 20 20 20 4c 44 4d 46 |..n. LDMF| 000008b0 44 20 20 20 73 70 20 21 2c 7b 6c 72 7d 0d 00 6f |D sp !,{lr}..o| 000008c0 19 20 20 20 20 20 20 20 20 54 45 51 50 20 20 20 |. TEQP | 000008d0 20 72 39 2c 23 30 0d 00 70 19 20 20 20 20 20 20 | r9,#0..p. | 000008e0 20 20 4d 4f 56 20 20 20 20 20 72 30 2c 72 30 0d | MOV r0,r0.| 000008f0 00 71 24 20 20 20 20 20 20 20 20 4c 44 4d 46 44 |.q$ LDMFD| 00000900 20 20 20 73 70 20 21 2c 7b 72 38 2c 72 39 2c 70 | sp !,{r8,r9,p| 00000910 63 7d 5e 0d 00 72 04 0d 00 73 0d 2e 63 61 6c 63 |c}^..r...s..calc| 00000920 5f 65 78 74 0d 00 74 23 20 20 20 20 20 20 20 20 |_ext..t# | 00000930 53 54 4d 46 44 20 20 20 73 70 20 21 2c 7b 72 30 |STMFD sp !,{r0| 00000940 2d 72 35 2c 6c 72 7d 0d 00 75 1d 20 20 20 20 20 |-r5,lr}..u. | 00000950 20 20 20 53 55 42 20 20 20 20 20 73 70 2c 73 70 | SUB sp,sp| 00000960 2c 23 31 36 0d 00 76 1f 20 20 20 20 20 20 20 20 |,#16..v. | 00000970 41 44 52 20 20 20 20 20 72 30 2c 76 64 75 5f 6c |ADR r0,vdu_l| 00000980 69 73 74 0d 00 77 19 20 20 20 20 20 20 20 20 4d |ist..w. M| 00000990 4f 56 20 20 20 20 20 72 31 2c 73 70 0d 00 78 2a |OV r1,sp..x*| 000009a0 20 20 20 20 20 20 20 20 53 57 49 20 20 20 20 20 | SWI | 000009b0 22 58 4f 53 5f 52 65 61 64 56 64 75 56 61 72 69 |"XOS_ReadVduVari| 000009c0 61 62 6c 65 73 22 0d 00 79 20 20 20 20 20 20 20 |ables"..y | 000009d0 20 20 4c 44 4d 49 41 20 20 20 73 70 20 21 2c 7b | LDMIA sp !,{| 000009e0 72 30 2d 72 33 7d 0d 00 7a 21 20 20 20 20 20 20 |r0-r3}..z! | 000009f0 20 20 53 55 42 20 20 20 20 20 72 34 2c 72 30 2c | SUB r4,r0,| 00000a00 23 6c 65 65 77 61 79 0d 00 7b 20 20 20 20 20 20 |#leeway..{ | 00000a10 20 20 20 4d 4f 56 20 20 20 20 20 72 34 2c 72 34 | MOV r4,r4| 00000a20 2c 4c 53 4c 20 72 32 0d 00 7c 21 20 20 20 20 20 |,LSL r2..|! | 00000a30 20 20 20 53 55 42 20 20 20 20 20 72 35 2c 72 31 | SUB r5,r1| 00000a40 2c 23 6c 65 65 77 61 79 0d 00 7d 20 20 20 20 20 |,#leeway..} | 00000a50 20 20 20 20 4d 4f 56 20 20 20 20 20 72 35 2c 72 | MOV r5,r| 00000a60 35 2c 4c 53 4c 20 72 33 0d 00 7e 1e 20 20 20 20 |5,LSL r3..~. | 00000a70 20 20 20 20 4d 4f 56 20 20 20 20 20 72 30 2c 23 | MOV r0,#| 00000a80 6c 65 65 77 61 79 0d 00 7f 20 20 20 20 20 20 20 |leeway... | 00000a90 20 20 4d 4f 56 20 20 20 20 20 72 30 2c 72 30 2c | MOV r0,r0,| 00000aa0 4c 53 4c 20 72 32 0d 00 80 21 20 20 20 20 20 20 |LSL r2...! | 00000ab0 20 20 53 54 4d 49 41 20 20 20 77 70 2c 7b 72 30 | STMIA wp,{r0| 00000ac0 2c 72 34 2c 72 35 7d 0d 00 81 23 20 20 20 20 20 |,r4,r5}...# | 00000ad0 20 20 20 4c 44 4d 46 44 20 20 20 73 70 20 21 2c | LDMFD sp !,| 00000ae0 7b 72 30 2d 72 35 2c 70 63 7d 0d 00 82 04 0d 00 |{r0-r5,pc}......| 00000af0 83 0d 2e 76 64 75 5f 6c 69 73 74 0d 00 84 16 20 |...vdu_list.... | 00000b00 20 20 20 20 20 20 20 44 43 44 20 20 20 20 20 31 | DCD 1| 00000b10 31 0d 00 85 16 20 20 20 20 20 20 20 20 44 43 44 |1.... DCD| 00000b20 20 20 20 20 20 31 32 0d 00 86 15 20 20 20 20 20 | 12.... | 00000b30 20 20 20 44 43 44 20 20 20 20 20 34 0d 00 87 15 | DCD 4....| 00000b40 20 20 20 20 20 20 20 20 44 43 44 20 20 20 20 20 | DCD | 00000b50 35 0d 00 88 16 20 20 20 20 20 20 20 20 44 43 44 |5.... DCD| 00000b60 20 20 20 20 20 2d 31 0d 00 89 04 0d 00 8a 0f 2e | -1.........| 00000b70 63 61 6c 6c 5f 65 76 65 72 79 0d 00 8b 29 20 20 |call_every...) | 00000b80 20 20 20 20 20 20 53 54 4d 46 44 20 20 20 73 70 | STMFD sp| 00000b90 20 21 2c 7b 72 30 2d 72 34 2c 72 38 2c 72 39 2c | !,{r0-r4,r8,r9,| 00000ba0 6c 72 7d 0d 00 8c 19 20 20 20 20 20 20 20 20 4d |lr}.... M| 00000bb0 4f 56 20 20 20 20 20 72 39 2c 70 63 0d 00 8d 1b |OV r9,pc....| 00000bc0 20 20 20 20 20 20 20 20 84 52 20 20 20 20 20 72 | .R r| 00000bd0 38 2c 72 39 2c 23 33 0d 00 8e 19 20 20 20 20 20 |8,r9,#3.... | 00000be0 20 20 20 54 45 51 50 20 20 20 20 72 38 2c 23 30 | TEQP r8,#0| 00000bf0 0d 00 8f 19 20 20 20 20 20 20 20 20 4d 4f 56 20 |.... MOV | 00000c00 20 20 20 20 72 30 2c 72 30 0d 00 90 1d 20 20 20 | r0,r0.... | 00000c10 20 20 20 20 20 53 54 4d 46 44 20 20 20 73 70 20 | STMFD sp | 00000c20 21 2c 7b 6c 72 7d 0d 00 91 1e 20 20 20 20 20 20 |!,{lr}.... | 00000c30 20 20 42 4c 20 20 20 20 20 20 67 65 74 5f 73 74 | BL get_st| 00000c40 61 74 75 73 0d 00 92 23 20 20 20 20 20 20 20 20 |atus...# | 00000c50 4c 44 52 20 20 20 20 20 72 31 2c 5b 77 70 2c 23 |LDR r1,[wp,#| 00000c60 73 74 61 74 75 73 5d 0d 00 93 19 20 20 20 20 20 |status].... | 00000c70 20 20 20 43 4d 50 20 20 20 20 20 72 30 2c 72 31 | CMP r0,r1| 00000c80 0d 00 94 1b 20 20 20 20 20 20 20 20 42 45 51 20 |.... BEQ | 00000c90 20 20 20 20 63 65 5f 64 6f 6e 65 0d 00 95 23 20 | ce_done...# | 00000ca0 20 20 20 20 20 20 20 53 54 52 20 20 20 20 20 72 | STR r| 00000cb0 30 2c 5b 77 70 2c 23 73 74 61 74 75 73 5d 0d 00 |0,[wp,#status]..| 00000cc0 96 21 20 20 20 20 20 20 20 20 43 4d 50 20 20 20 |.! CMP | 00000cd0 20 20 72 31 2c 23 73 74 61 74 5f 6e 6f 72 6d 0d | r1,#stat_norm.| 00000ce0 00 97 1a 20 20 20 20 20 20 20 20 41 44 52 45 51 |... ADREQ| 00000cf0 20 20 20 72 30 2c 63 62 31 0d 00 98 1a 20 20 20 | r0,cb1.... | 00000d00 20 20 20 20 20 41 44 52 4e 45 20 20 20 72 30 2c | ADRNE r0,| 00000d10 63 62 32 0d 00 99 19 20 20 20 20 20 20 20 20 4d |cb2.... M| 00000d20 4f 56 20 20 20 20 20 72 31 2c 77 70 0d 00 9a 25 |OV r1,wp...%| 00000d30 20 20 20 20 20 20 20 20 53 57 49 20 20 20 20 20 | SWI | 00000d40 22 58 4f 53 5f 41 64 64 43 61 6c 6c 42 61 63 6b |"XOS_AddCallBack| 00000d50 22 0d 00 9b 0c 2e 63 65 5f 64 6f 6e 65 0d 00 9c |".....ce_done...| 00000d60 1d 20 20 20 20 20 20 20 20 4c 44 4d 46 44 20 20 |. LDMFD | 00000d70 20 73 70 20 21 2c 7b 6c 72 7d 0d 00 9d 19 20 20 | sp !,{lr}.... | 00000d80 20 20 20 20 20 20 54 45 51 50 20 20 20 20 72 39 | TEQP r9| 00000d90 2c 23 30 0d 00 9e 19 20 20 20 20 20 20 20 20 4d |,#0.... M| 00000da0 4f 56 20 20 20 20 20 72 30 2c 72 30 0d 00 9f 2f |OV r0,r0.../| 00000db0 20 20 20 20 20 20 20 20 4c 44 4d 46 44 20 20 20 | LDMFD | 00000dc0 73 70 20 21 2c 7b 72 30 2d 72 34 2c 72 38 2c 72 |sp !,{r0-r4,r8,r| 00000dd0 39 2c 70 63 7d 5e 20 20 20 20 20 0d 00 a0 04 0d |9,pc}^ .....| 00000de0 00 a1 08 2e 63 62 31 0d 00 a2 23 20 20 20 20 20 |....cb1...# | 00000df0 20 20 20 53 54 4d 46 44 20 20 20 73 70 20 21 2c | STMFD sp !,| 00000e00 7b 72 30 2d 72 33 2c 6c 72 7d 0d 00 a3 19 20 20 |{r0-r3,lr}.... | 00000e10 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 72 30 | MOV r0| 00000e20 2c 23 34 0d 00 a4 2c 20 20 20 20 20 20 20 20 53 |,#4..., S| 00000e30 57 49 20 20 20 20 20 22 58 53 63 72 65 65 6e 42 |WI "XScreenB| 00000e40 6c 61 6e 6b 65 72 5f 43 6f 6e 74 72 6f 6c 22 0d |lanker_Control".| 00000e50 00 a5 1b 20 20 20 20 20 20 20 20 4d 4f 56 20 20 |... MOV | 00000e60 20 20 20 72 30 2c 23 31 30 30 0d 00 a6 1c 20 20 | r0,#100.... | 00000e70 20 20 20 20 20 20 4d 55 4c 20 20 20 20 20 72 30 | MUL r0| 00000e80 2c 72 31 2c 72 30 0d 00 a7 26 20 20 20 20 20 20 |,r1,r0...& | 00000e90 20 20 53 54 52 20 20 20 20 20 72 30 2c 5b 77 70 | STR r0,[wp| 00000ea0 2c 23 77 61 73 5f 64 65 6c 61 79 5d 0d 00 a8 23 |,#was_delay]...#| 00000eb0 20 20 20 20 20 20 20 20 4c 44 52 20 20 20 20 20 | LDR | 00000ec0 72 33 2c 5b 77 70 2c 23 73 74 61 74 75 73 5d 0d |r3,[wp,#status].| 00000ed0 00 a9 1f 20 20 20 20 20 20 20 20 43 4d 50 20 20 |... CMP | 00000ee0 20 20 20 72 33 2c 23 73 74 61 74 5f 6f 6e 0d 00 | r3,#stat_on..| 00000ef0 aa 22 20 20 20 20 20 20 20 20 ec 51 20 20 20 72 |." .Q r| 00000f00 31 2c 23 30 20 20 3b 20 69 6e 66 69 6e 69 74 65 |1,#0 ; infinite| 00000f10 0d 00 ab 22 20 20 20 20 20 20 20 20 4d 4f 56 4e |..." MOVN| 00000f20 45 20 20 20 72 31 2c 23 31 20 20 3b 20 73 68 6f |E r1,#1 ; sho| 00000f30 72 74 0d 00 ac 19 20 20 20 20 20 20 20 20 4d 4f |rt.... MO| 00000f40 56 20 20 20 20 20 72 30 2c 23 33 0d 00 ad 2c 20 |V r0,#3..., | 00000f50 20 20 20 20 20 20 20 53 57 49 20 20 20 20 20 22 | SWI "| 00000f60 58 53 63 72 65 65 6e 42 6c 61 6e 6b 65 72 5f 43 |XScreenBlanker_C| 00000f70 6f 6e 74 72 6f 6c 22 0d 00 ae 20 20 20 20 20 20 |ontrol"... | 00000f80 20 20 20 43 4d 50 20 20 20 20 20 72 33 2c 23 73 | CMP r3,#s| 00000f90 74 61 74 5f 6f 66 66 0d 00 af 17 20 20 20 20 20 |tat_off.... | 00000fa0 20 20 20 ec 51 20 20 20 72 30 2c 23 32 30 0d 00 | .Q r0,#20..| 00000fb0 b0 21 20 20 20 20 20 20 20 20 41 44 52 45 51 20 |.! ADREQ | 00000fc0 20 20 72 31 2c 73 77 69 74 63 68 5f 6f 66 66 0d | r1,switch_off.| 00000fd0 00 b1 16 20 20 20 20 20 20 20 20 ec 51 20 20 20 |... .Q | 00000fe0 72 32 2c 77 70 0d 00 b2 23 20 20 20 20 20 20 20 |r2,wp...# | 00000ff0 20 53 57 49 45 51 20 20 20 22 58 4f 53 5f 43 61 | SWIEQ "XOS_Ca| 00001000 6c 6c 41 66 74 65 72 22 0d 00 b3 23 20 20 20 20 |llAfter"...# | 00001010 20 20 20 20 4c 44 4d 46 44 20 20 20 73 70 20 21 | LDMFD sp !| 00001020 2c 7b 72 30 2d 72 33 2c 70 63 7d 0d 00 b4 04 0d |,{r0-r3,pc}.....| 00001030 00 b5 0f 2e 73 77 69 74 63 68 5f 6f 66 66 0d 00 |....switch_off..| 00001040 b6 23 20 20 20 20 20 20 20 20 53 54 4d 46 44 20 |.# STMFD | 00001050 20 20 73 70 20 21 2c 7b 72 30 2d 72 31 2c 6c 72 | sp !,{r0-r1,lr| 00001060 7d 0d 00 b7 19 20 20 20 20 20 20 20 20 4d 4f 56 |}.... MOV| 00001070 20 20 20 20 20 72 30 2c 23 30 0d 00 b8 2c 20 20 | r0,#0..., | 00001080 20 20 20 20 20 20 53 57 49 20 20 20 20 20 22 58 | SWI "X| 00001090 53 63 72 65 65 6e 42 6c 61 6e 6b 65 72 5f 43 6f |ScreenBlanker_Co| 000010a0 6e 74 72 6f 6c 22 0d 00 b9 24 20 20 20 20 20 20 |ntrol"...$ | 000010b0 20 20 4c 44 4d 46 44 20 20 20 73 70 20 21 2c 7b | LDMFD sp !,{| 000010c0 72 30 2d 72 31 2c 70 63 7d 5e 0d 00 ba 04 0d 00 |r0-r1,pc}^......| 000010d0 bb 08 2e 63 62 32 0d 00 bc 23 20 20 20 20 20 20 |...cb2...# | 000010e0 20 20 53 54 4d 46 44 20 20 20 73 70 20 21 2c 7b | STMFD sp !,{| 000010f0 72 30 2d 72 31 2c 6c 72 7d 0d 00 bd 26 20 20 20 |r0-r1,lr}...& | 00001100 20 20 20 20 20 4c 44 52 20 20 20 20 20 72 31 2c | LDR r1,| 00001110 5b 77 70 2c 23 77 61 73 5f 64 65 6c 61 79 5d 0d |[wp,#was_delay].| 00001120 00 be 19 20 20 20 20 20 20 20 20 4d 4f 56 20 20 |... MOV | 00001130 20 20 20 72 30 2c 23 33 0d 00 bf 2c 20 20 20 20 | r0,#3..., | 00001140 20 20 20 20 53 57 49 20 20 20 20 20 22 58 53 63 | SWI "XSc| 00001150 72 65 65 6e 42 6c 61 6e 6b 65 72 5f 43 6f 6e 74 |reenBlanker_Cont| 00001160 72 6f 6c 22 0d 00 c0 23 20 20 20 20 20 20 20 20 |rol"...# | 00001170 4c 44 4d 46 44 20 20 20 73 70 20 21 2c 7b 72 30 |LDMFD sp !,{r0| 00001180 2d 72 31 2c 70 63 7d 0d 00 c1 04 0d 00 c2 0f 2e |-r1,pc}.........| 00001190 67 65 74 5f 73 74 61 74 75 73 0d 00 c3 23 20 20 |get_status...# | 000011a0 20 20 20 20 20 20 53 54 4d 46 44 20 20 20 73 70 | STMFD sp| 000011b0 20 21 2c 7b 72 31 2d 72 34 2c 6c 72 7d 0d 00 c4 | !,{r1-r4,lr}...| 000011c0 1c 20 20 20 20 20 20 20 20 53 55 42 20 20 20 20 |. SUB | 000011d0 20 73 70 2c 73 70 2c 23 38 0d 00 c5 1a 20 20 20 | sp,sp,#8.... | 000011e0 20 20 20 20 20 4d 4f 56 20 20 20 20 20 72 30 2c | MOV r0,| 000011f0 23 32 31 0d 00 c6 1c 20 20 20 20 20 20 20 20 41 |#21.... A| 00001200 44 44 20 20 20 20 20 72 31 2c 73 70 2c 23 33 0d |DD r1,sp,#3.| 00001210 00 c7 1a 20 20 20 20 20 20 20 20 4d 4f 56 20 20 |... MOV | 00001220 20 20 20 72 31 34 2c 23 34 0d 00 c8 1c 20 20 20 | r14,#4.... | 00001230 20 20 20 20 20 53 54 52 42 20 20 20 20 72 31 34 | STRB r14| 00001240 2c 5b 72 31 5d 0d 00 c9 1e 20 20 20 20 20 20 20 |,[r1].... | 00001250 20 53 57 49 20 20 20 20 20 22 58 4f 53 5f 57 6f | SWI "XOS_Wo| 00001260 72 64 22 0d 00 ca 1e 20 20 20 20 20 20 20 20 4c |rd".... L| 00001270 44 52 20 20 20 20 20 72 30 2c 5b 73 70 2c 23 34 |DR r0,[sp,#4| 00001280 5d 0d 00 cb 1c 20 20 20 20 20 20 20 20 41 44 44 |].... ADD| 00001290 20 20 20 20 20 73 70 2c 73 70 2c 23 38 0d 00 cc | sp,sp,#8...| 000012a0 1e 20 20 20 20 20 20 20 20 4c 44 4d 49 41 20 20 |. LDMIA | 000012b0 20 77 70 2c 7b 72 32 2d 72 34 7d 0d 00 cd 24 20 | wp,{r2-r4}...$ | 000012c0 20 20 20 20 20 20 20 43 4d 50 20 20 20 20 20 72 | CMP r| 000012d0 34 2c 72 30 2c 4c 53 52 20 23 31 36 20 20 20 0d |4,r0,LSR #16 .| 000012e0 00 ce 1f 20 20 20 20 20 20 20 20 42 47 54 20 20 |... BGT | 000012f0 20 20 20 73 74 61 74 75 73 5f 6e 6f 72 6d 0d 00 | status_norm..| 00001300 cf 21 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 |.! MOV | 00001310 20 20 72 31 2c 72 30 2c 4c 53 4c 20 23 31 36 0d | r1,r0,LSL #16.| 00001320 00 d0 21 20 20 20 20 20 20 20 20 4d 4f 56 20 20 |..! MOV | 00001330 20 20 20 72 31 2c 72 31 2c 4c 53 52 20 23 31 36 | r1,r1,LSR #16| 00001340 0d 00 d1 19 20 20 20 20 20 20 20 20 43 4d 50 20 |.... CMP | 00001350 20 20 20 20 72 31 2c 72 32 0d 00 d2 20 20 20 20 | r1,r2... | 00001360 20 20 20 20 20 4d 4f 56 4c 45 20 20 20 72 30 2c | MOVLE r0,| 00001370 23 73 74 61 74 5f 6f 66 66 0d 00 d3 23 20 20 20 |#stat_off...# | 00001380 20 20 20 20 20 4c 44 4d 4c 45 46 44 20 73 70 20 | LDMLEFD sp | 00001390 21 2c 7b 72 31 2d 72 34 2c 70 63 7d 0d 00 d4 1a |!,{r1-r4,pc}....| 000013a0 20 20 20 20 20 20 20 20 43 4d 50 20 20 20 20 20 | CMP | 000013b0 72 31 2c 72 33 20 0d 00 d5 1f 20 20 20 20 20 20 |r1,r3 .... | 000013c0 20 20 4d 4f 56 47 45 20 20 20 72 30 2c 23 73 74 | MOVGE r0,#st| 000013d0 61 74 5f 6f 6e 0d 00 d6 23 20 20 20 20 20 20 20 |at_on...# | 000013e0 20 4c 44 4d 47 45 46 44 20 73 70 20 21 2c 7b 72 | LDMGEFD sp !,{r| 000013f0 31 2d 72 34 2c 70 63 7d 0d 00 d7 10 2e 73 74 61 |1-r4,pc}.....sta| 00001400 74 75 73 5f 6e 6f 72 6d 0d 00 d8 21 20 20 20 20 |tus_norm...! | 00001410 20 20 20 20 4d 4f 56 20 20 20 20 20 72 30 2c 23 | MOV r0,#| 00001420 73 74 61 74 5f 6e 6f 72 6d 0d 00 d9 23 20 20 20 |stat_norm...# | 00001430 20 20 20 20 20 4c 44 4d 46 44 20 20 20 73 70 20 | LDMFD sp | 00001440 21 2c 7b 72 31 2d 72 34 2c 70 63 7d 0d 00 da 05 |!,{r1-r4,pc}....| 00001450 5d 0d 00 db 0a ed 20 70 61 73 73 0d 00 dc 2e c8 |]..... pass.....| 00001460 99 20 22 4f 53 5f 46 69 6c 65 22 2c 31 30 2c 22 |. "OS_File",10,"| 00001470 42 6c 61 6e 6b 43 68 65 63 6b 22 2c 26 46 46 41 |BlankCheck",&FFA| 00001480 2c 2c 63 6f 64 65 2c 4f 25 0d 00 dd 05 e0 0d 00 |,,code,O%.......| 00001490 de 05 3a 0d 00 df 13 dd 20 a4 61 6c 6c 6f 63 28 |..:..... .alloc(| 000014a0 62 79 74 65 73 29 0d 00 e0 11 6e 65 65 64 65 64 |bytes)....needed| 000014b0 2b 3d 62 79 74 65 73 0d 00 e1 11 3d 6e 65 65 64 |+=bytes....=need| 000014c0 65 64 2d 62 79 74 65 73 0d 00 e2 04 0d ff |ed-bytes......| 000014ce