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