Home » Archimedes archive » Acorn User » AU 1995-09.adf » !Regulars » Regulars/StarInfo/MachineID/MIDsrc

Regulars/StarInfo/MachineID/MIDsrc

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-09.adf » !Regulars
Filename: Regulars/StarInfo/MachineID/MIDsrc
Read OK:
File size: 0CB6 bytes
Load address: 0000
Exec address: 0000
File contents
    1REM >MNrc
    2REM creates Machine$Name system variable
    3REM by Dave Lawrence (c) October 1993
    4:
    5DIM code 4000
    6FOR pass=4 TO 6 STEP 2
    7P%=0
    8O%=code
    9[OPT pass
   10        ADR     r0,mname_name
   11        ADR     r1,mname_set
   12        MOV     r2,#mname_end-mname_set
   13        MOV     r3,#0
   14        MOV     r4,#16
   15        SWI     "XOS_SetVarVal"
   16        
   17        ADR     r0,mid_name
   18        ADR     r1,mid_set
   19        MOV     r2,#mid_end-mid_set
   20        MOV     r3,#0
   21        MOV     r4,#16
   22        SWI     "XOS_SetVarVal"
   23       
   24        MOV     PC,R14
   25.mname_name
   26        EQUS    "Machine$Name"
   27        EQUB    0
   28        ALIGN
   29.mid_name
   30        EQUS    "Machine$ID"
   31        EQUB   0
   32        ALIGN
   33        
   34.mname_set
   35        B       mname_write
   36        STMFD   R13!,{R0-R12,R14}
   37
   38        MOV     r0,#161
   39        MOV     r1,#30
   40        ADR     r3,nbuf
   41.read_name
   42        SWI     "XOS_Byte"
   43        CMP     r2,#32
   44        BLT     name_end
   45        STRB    r2,[r3],#1
   46        ADD     r1,r1,#1
   47        CMP     r1,#45
   48        BLE     read_name
   49.name_end                        
   50        MOV     r0,#0
   51        STRB    r0,[r3]
   52        
   53        ADR     r0,nbuf
   54        SUB     r2,r1,#30
   55        STR     r0,[r13,#0]
   56        STR     r2,[r13,#8]
   57.exit        
   58        LDMFD   R13!,{R0-R12,PC}^
   59.mname_write
   60        STMFD   R13!,{R0-R12,R14}
   61        
   62        MOV     r4,r2
   63        MOV     r3,r1
   64        MOV     r0,#162
   65        MOV     r1,#30
   66.write_name
   67        CMP     r4,#0
   68        ADREQ   r3,null
   69        LDRB    r2,[r3],#1
   70        SWI     "XOS_Byte"
   71        SUB     r4,r4,#1
   72        ADD     r1,r1,#1
   73        CMP     r1,#45
   74        BLE     write_name
   75        
   76        B       exit
   77        
   78.nbuf   EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
   79.null   EQUD 0:EQUD 0:EQUD 0:EQUD 0
   80.mname_end
   81
   82.mid_set
   83        B       mid_write
   84        STMFD   R13!,{R0-R12,R14}
   85
   86        MOV     r0,#2
   87        SWI     "XOS_ReadSysInfo"
   88        ADR     r1,mid_buf
   89
   90        MOVS    r0,r4
   91        MOV     r2,#20
   92        SWI     "XOS_ConvertHex8"
   93        
   94        MOV     r0,r3
   95        SWI     "XOS_ConvertHex8"
   96        ADR     r0,mid_buf
   97        RSB     r2,r2,#20
   98.skip0s        
   99        LDRB    r1,[r0]
  100        CMP     r1,#ASC"0"
  101        ADDEQ   r0,r0,#1
  102        SUBEQ   r2,r2,#1
  103        BEQ     skip0s
  104        
  105        CMP     r2,#0
  106        ADDEQ   r2,r2,#1
  107        SUBEQ   r0,r0,#1
  108        
  109        TST     r2,#1
  110        ADDNE   r2,r2,#1
  111        SUBNE   r0,r0,#1
  112                
  113        SUB     r0,r0,#2
  114        MOV     r1,#ASC"0"
  115        STRB    r1,[r0]
  116        MOV     r1,#ASC"x"
  117        STRB    r1,[r0,#1]
  118        ADD     r2,r2,#2
  119        
  120        STR     r0,[R13,#0]
  121        STR     r2,[R13,#8]
  122
  123        LDMFD   R13!,{R0-R12,PC}
  124.mid_write
  125        MOV     pc,R14
  126
  127        EQUD  0
  128.mid_buf
  129        EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0        
  130        
  131.mid_end        
  132
  133]NEXT
  134SYS "OS_File",10,"Lib:Utils.MachineID",&FFC,,code,O%
� >MNrc
*� creates Machine$Name system variable
'� by Dave Lawrence (c) October 1993
:
� code 4000
� pass=4 � 6 � 2
P%=0
O%=code
	
[OPT pass

!        ADR     r0,mname_name
         ADR     r1,mname_set
+        MOV     r2,#mname_end-mname_set

        MOV     r3,#0
        MOV     r4,#16
#        SWI     "XOS_SetVarVal"
        
        ADR     r0,mid_name
        ADR     r1,mid_set
'        MOV     r2,#mid_end-mid_set
        MOV     r3,#0
        MOV     r4,#16
#        SWI     "XOS_SetVarVal"
       
        MOV     PC,R14
.mname_name
"        EQUS    "Machine$Name"
        EQUB    0
        ALIGN

.mid_name
         EQUS    "Machine$ID"
        EQUB   0
         ALIGN
!        
".mname_set
#        B       mname_write
$%        STMFD   R13!,{R0-R12,R14}
%
&        MOV     r0,#161
'        MOV     r1,#30
(        ADR     r3,nbuf
).read_name
*        SWI     "XOS_Byte"
+        CMP     r2,#32
,        BLT     name_end
-        STRB    r2,[r3],#1
.        ADD     r1,r1,#1
/        CMP     r1,#45
0        BLE     read_name
1%.name_end                        
2        MOV     r0,#0
3        STRB    r0,[r3]
4        
5        ADR     r0,nbuf
6        SUB     r2,r1,#30
7        STR     r0,[r13,#0]
8        STR     r2,[r13,#8]
9.exit        
:%        LDMFD   R13!,{R0-R12,PC}^
;.mname_write
<%        STMFD   R13!,{R0-R12,R14}
=        
>        MOV     r4,r2
?        MOV     r3,r1
@        MOV     r0,#162
A        MOV     r1,#30
B.write_name
C        CMP     r4,#0
D        ADREQ   r3,null
E        LDRB    r2,[r3],#1
F        SWI     "XOS_Byte"
G        SUB     r4,r4,#1
H        ADD     r1,r1,#1
I        CMP     r1,#45
J        BLE     write_name
K        
L        B       exit
M        
N..nbuf   EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
O'.null   EQUD 0:EQUD 0:EQUD 0:EQUD 0
P.mname_end
Q
R.mid_set
S        B       mid_write
T%        STMFD   R13!,{R0-R12,R14}
U
V        MOV     r0,#2
W%        SWI     "XOS_ReadSysInfo"
X        ADR     r1,mid_buf
Y
Z        MOVS    r0,r4
[        MOV     r2,#20
\%        SWI     "XOS_ConvertHex8"
]        
^        MOV     r0,r3
_%        SWI     "XOS_ConvertHex8"
`        ADR     r0,mid_buf
a        RSB     r2,r2,#20
b.skip0s        
c        LDRB    r1,[r0]
d        CMP     r1,#�"0"
e        ADDEQ   r0,r0,#1
f        SUBEQ   r2,r2,#1
g        BEQ     skip0s
h        
i        CMP     r2,#0
j        ADDEQ   r2,r2,#1
k        SUBEQ   r0,r0,#1
l        
m        TST     r2,#1
n        ADDNE   r2,r2,#1
o        SUBNE   r0,r0,#1
p                
q        SUB     r0,r0,#2
r        MOV     r1,#�"0"
s        STRB    r1,[r0]
t        MOV     r1,#�"x"
u        STRB    r1,[r0,#1]
v        ADD     r2,r2,#2
w        
x        STR     r0,[R13,#0]
y        STR     r2,[R13,#8]
z
{$        LDMFD   R13!,{R0-R12,PC}
|.mid_write
}        MOV     pc,R14
~
        EQUD  0
�.mid_buf
�6        EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0        
�        
�.mid_end        
�
�]�
�7ș "OS_File",10,"Lib:Utils.MachineID",&FFC,,code,O%
�
00000000  0d 00 01 0b f4 20 3e 4d  4e 72 63 0d 00 02 2a f4  |..... >MNrc...*.|
00000010  20 63 72 65 61 74 65 73  20 4d 61 63 68 69 6e 65  | creates Machine|
00000020  24 4e 61 6d 65 20 73 79  73 74 65 6d 20 76 61 72  |$Name system var|
00000030  69 61 62 6c 65 0d 00 03  27 f4 20 62 79 20 44 61  |iable...'. by Da|
00000040  76 65 20 4c 61 77 72 65  6e 63 65 20 28 63 29 20  |ve Lawrence (c) |
00000050  4f 63 74 6f 62 65 72 20  31 39 39 33 0d 00 04 05  |October 1993....|
00000060  3a 0d 00 05 0f de 20 63  6f 64 65 20 34 30 30 30  |:..... code 4000|
00000070  0d 00 06 14 e3 20 70 61  73 73 3d 34 20 b8 20 36  |..... pass=4 . 6|
00000080  20 88 20 32 0d 00 07 08  50 25 3d 30 0d 00 08 0b  | . 2....P%=0....|
00000090  4f 25 3d 63 6f 64 65 0d  00 09 0d 5b 4f 50 54 20  |O%=code....[OPT |
000000a0  70 61 73 73 0d 00 0a 21  20 20 20 20 20 20 20 20  |pass...!        |
000000b0  41 44 52 20 20 20 20 20  72 30 2c 6d 6e 61 6d 65  |ADR     r0,mname|
000000c0  5f 6e 61 6d 65 0d 00 0b  20 20 20 20 20 20 20 20  |_name...        |
000000d0  20 41 44 52 20 20 20 20  20 72 31 2c 6d 6e 61 6d  | ADR     r1,mnam|
000000e0  65 5f 73 65 74 0d 00 0c  2b 20 20 20 20 20 20 20  |e_set...+       |
000000f0  20 4d 4f 56 20 20 20 20  20 72 32 2c 23 6d 6e 61  | MOV     r2,#mna|
00000100  6d 65 5f 65 6e 64 2d 6d  6e 61 6d 65 5f 73 65 74  |me_end-mname_set|
00000110  0d 00 0d 19 20 20 20 20  20 20 20 20 4d 4f 56 20  |....        MOV |
00000120  20 20 20 20 72 33 2c 23  30 0d 00 0e 1a 20 20 20  |    r3,#0....   |
00000130  20 20 20 20 20 4d 4f 56  20 20 20 20 20 72 34 2c  |     MOV     r4,|
00000140  23 31 36 0d 00 0f 23 20  20 20 20 20 20 20 20 53  |#16...#        S|
00000150  57 49 20 20 20 20 20 22  58 4f 53 5f 53 65 74 56  |WI     "XOS_SetV|
00000160  61 72 56 61 6c 22 0d 00  10 0c 20 20 20 20 20 20  |arVal"....      |
00000170  20 20 0d 00 11 1f 20 20  20 20 20 20 20 20 41 44  |  ....        AD|
00000180  52 20 20 20 20 20 72 30  2c 6d 69 64 5f 6e 61 6d  |R     r0,mid_nam|
00000190  65 0d 00 12 1e 20 20 20  20 20 20 20 20 41 44 52  |e....        ADR|
000001a0  20 20 20 20 20 72 31 2c  6d 69 64 5f 73 65 74 0d  |     r1,mid_set.|
000001b0  00 13 27 20 20 20 20 20  20 20 20 4d 4f 56 20 20  |..'        MOV  |
000001c0  20 20 20 72 32 2c 23 6d  69 64 5f 65 6e 64 2d 6d  |   r2,#mid_end-m|
000001d0  69 64 5f 73 65 74 0d 00  14 19 20 20 20 20 20 20  |id_set....      |
000001e0  20 20 4d 4f 56 20 20 20  20 20 72 33 2c 23 30 0d  |  MOV     r3,#0.|
000001f0  00 15 1a 20 20 20 20 20  20 20 20 4d 4f 56 20 20  |...        MOV  |
00000200  20 20 20 72 34 2c 23 31  36 0d 00 16 23 20 20 20  |   r4,#16...#   |
00000210  20 20 20 20 20 53 57 49  20 20 20 20 20 22 58 4f  |     SWI     "XO|
00000220  53 5f 53 65 74 56 61 72  56 61 6c 22 0d 00 17 0b  |S_SetVarVal"....|
00000230  20 20 20 20 20 20 20 0d  00 18 1a 20 20 20 20 20  |       ....     |
00000240  20 20 20 4d 4f 56 20 20  20 20 20 50 43 2c 52 31  |   MOV     PC,R1|
00000250  34 0d 00 19 0f 2e 6d 6e  61 6d 65 5f 6e 61 6d 65  |4.....mname_name|
00000260  0d 00 1a 22 20 20 20 20  20 20 20 20 45 51 55 53  |..."        EQUS|
00000270  20 20 20 20 22 4d 61 63  68 69 6e 65 24 4e 61 6d  |    "Machine$Nam|
00000280  65 22 0d 00 1b 15 20 20  20 20 20 20 20 20 45 51  |e"....        EQ|
00000290  55 42 20 20 20 20 30 0d  00 1c 11 20 20 20 20 20  |UB    0....     |
000002a0  20 20 20 41 4c 49 47 4e  0d 00 1d 0d 2e 6d 69 64  |   ALIGN.....mid|
000002b0  5f 6e 61 6d 65 0d 00 1e  20 20 20 20 20 20 20 20  |_name...        |
000002c0  20 45 51 55 53 20 20 20  20 22 4d 61 63 68 69 6e  | EQUS    "Machin|
000002d0  65 24 49 44 22 0d 00 1f  14 20 20 20 20 20 20 20  |e$ID"....       |
000002e0  20 45 51 55 42 20 20 20  30 0d 00 20 11 20 20 20  | EQUB   0.. .   |
000002f0  20 20 20 20 20 41 4c 49  47 4e 0d 00 21 0c 20 20  |     ALIGN..!.  |
00000300  20 20 20 20 20 20 0d 00  22 0e 2e 6d 6e 61 6d 65  |      .."..mname|
00000310  5f 73 65 74 0d 00 23 1f  20 20 20 20 20 20 20 20  |_set..#.        |
00000320  42 20 20 20 20 20 20 20  6d 6e 61 6d 65 5f 77 72  |B       mname_wr|
00000330  69 74 65 0d 00 24 25 20  20 20 20 20 20 20 20 53  |ite..$%        S|
00000340  54 4d 46 44 20 20 20 52  31 33 21 2c 7b 52 30 2d  |TMFD   R13!,{R0-|
00000350  52 31 32 2c 52 31 34 7d  0d 00 25 04 0d 00 26 1b  |R12,R14}..%...&.|
00000360  20 20 20 20 20 20 20 20  4d 4f 56 20 20 20 20 20  |        MOV     |
00000370  72 30 2c 23 31 36 31 0d  00 27 1a 20 20 20 20 20  |r0,#161..'.     |
00000380  20 20 20 4d 4f 56 20 20  20 20 20 72 31 2c 23 33  |   MOV     r1,#3|
00000390  30 0d 00 28 1b 20 20 20  20 20 20 20 20 41 44 52  |0..(.        ADR|
000003a0  20 20 20 20 20 72 33 2c  6e 62 75 66 0d 00 29 0e  |     r3,nbuf..).|
000003b0  2e 72 65 61 64 5f 6e 61  6d 65 0d 00 2a 1e 20 20  |.read_name..*.  |
000003c0  20 20 20 20 20 20 53 57  49 20 20 20 20 20 22 58  |      SWI     "X|
000003d0  4f 53 5f 42 79 74 65 22  0d 00 2b 1a 20 20 20 20  |OS_Byte"..+.    |
000003e0  20 20 20 20 43 4d 50 20  20 20 20 20 72 32 2c 23  |    CMP     r2,#|
000003f0  33 32 0d 00 2c 1c 20 20  20 20 20 20 20 20 42 4c  |32..,.        BL|
00000400  54 20 20 20 20 20 6e 61  6d 65 5f 65 6e 64 0d 00  |T     name_end..|
00000410  2d 1e 20 20 20 20 20 20  20 20 53 54 52 42 20 20  |-.        STRB  |
00000420  20 20 72 32 2c 5b 72 33  5d 2c 23 31 0d 00 2e 1c  |  r2,[r3],#1....|
00000430  20 20 20 20 20 20 20 20  41 44 44 20 20 20 20 20  |        ADD     |
00000440  72 31 2c 72 31 2c 23 31  0d 00 2f 1a 20 20 20 20  |r1,r1,#1../.    |
00000450  20 20 20 20 43 4d 50 20  20 20 20 20 72 31 2c 23  |    CMP     r1,#|
00000460  34 35 0d 00 30 1d 20 20  20 20 20 20 20 20 42 4c  |45..0.        BL|
00000470  45 20 20 20 20 20 72 65  61 64 5f 6e 61 6d 65 0d  |E     read_name.|
00000480  00 31 25 2e 6e 61 6d 65  5f 65 6e 64 20 20 20 20  |.1%.name_end    |
00000490  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000004a0  20 20 20 20 0d 00 32 19  20 20 20 20 20 20 20 20  |    ..2.        |
000004b0  4d 4f 56 20 20 20 20 20  72 30 2c 23 30 0d 00 33  |MOV     r0,#0..3|
000004c0  1b 20 20 20 20 20 20 20  20 53 54 52 42 20 20 20  |.        STRB   |
000004d0  20 72 30 2c 5b 72 33 5d  0d 00 34 0c 20 20 20 20  | r0,[r3]..4.    |
000004e0  20 20 20 20 0d 00 35 1b  20 20 20 20 20 20 20 20  |    ..5.        |
000004f0  41 44 52 20 20 20 20 20  72 30 2c 6e 62 75 66 0d  |ADR     r0,nbuf.|
00000500  00 36 1d 20 20 20 20 20  20 20 20 53 55 42 20 20  |.6.        SUB  |
00000510  20 20 20 72 32 2c 72 31  2c 23 33 30 0d 00 37 1f  |   r2,r1,#30..7.|
00000520  20 20 20 20 20 20 20 20  53 54 52 20 20 20 20 20  |        STR     |
00000530  72 30 2c 5b 72 31 33 2c  23 30 5d 0d 00 38 1f 20  |r0,[r13,#0]..8. |
00000540  20 20 20 20 20 20 20 53  54 52 20 20 20 20 20 72  |       STR     r|
00000550  32 2c 5b 72 31 33 2c 23  38 5d 0d 00 39 11 2e 65  |2,[r13,#8]..9..e|
00000560  78 69 74 20 20 20 20 20  20 20 20 0d 00 3a 25 20  |xit        ..:% |
00000570  20 20 20 20 20 20 20 4c  44 4d 46 44 20 20 20 52  |       LDMFD   R|
00000580  31 33 21 2c 7b 52 30 2d  52 31 32 2c 50 43 7d 5e  |13!,{R0-R12,PC}^|
00000590  0d 00 3b 10 2e 6d 6e 61  6d 65 5f 77 72 69 74 65  |..;..mname_write|
000005a0  0d 00 3c 25 20 20 20 20  20 20 20 20 53 54 4d 46  |..<%        STMF|
000005b0  44 20 20 20 52 31 33 21  2c 7b 52 30 2d 52 31 32  |D   R13!,{R0-R12|
000005c0  2c 52 31 34 7d 0d 00 3d  0c 20 20 20 20 20 20 20  |,R14}..=.       |
000005d0  20 0d 00 3e 19 20 20 20  20 20 20 20 20 4d 4f 56  | ..>.        MOV|
000005e0  20 20 20 20 20 72 34 2c  72 32 0d 00 3f 19 20 20  |     r4,r2..?.  |
000005f0  20 20 20 20 20 20 4d 4f  56 20 20 20 20 20 72 33  |      MOV     r3|
00000600  2c 72 31 0d 00 40 1b 20  20 20 20 20 20 20 20 4d  |,r1..@.        M|
00000610  4f 56 20 20 20 20 20 72  30 2c 23 31 36 32 0d 00  |OV     r0,#162..|
00000620  41 1a 20 20 20 20 20 20  20 20 4d 4f 56 20 20 20  |A.        MOV   |
00000630  20 20 72 31 2c 23 33 30  0d 00 42 0f 2e 77 72 69  |  r1,#30..B..wri|
00000640  74 65 5f 6e 61 6d 65 0d  00 43 19 20 20 20 20 20  |te_name..C.     |
00000650  20 20 20 43 4d 50 20 20  20 20 20 72 34 2c 23 30  |   CMP     r4,#0|
00000660  0d 00 44 1b 20 20 20 20  20 20 20 20 41 44 52 45  |..D.        ADRE|
00000670  51 20 20 20 72 33 2c 6e  75 6c 6c 0d 00 45 1e 20  |Q   r3,null..E. |
00000680  20 20 20 20 20 20 20 4c  44 52 42 20 20 20 20 72  |       LDRB    r|
00000690  32 2c 5b 72 33 5d 2c 23  31 0d 00 46 1e 20 20 20  |2,[r3],#1..F.   |
000006a0  20 20 20 20 20 53 57 49  20 20 20 20 20 22 58 4f  |     SWI     "XO|
000006b0  53 5f 42 79 74 65 22 0d  00 47 1c 20 20 20 20 20  |S_Byte"..G.     |
000006c0  20 20 20 53 55 42 20 20  20 20 20 72 34 2c 72 34  |   SUB     r4,r4|
000006d0  2c 23 31 0d 00 48 1c 20  20 20 20 20 20 20 20 41  |,#1..H.        A|
000006e0  44 44 20 20 20 20 20 72  31 2c 72 31 2c 23 31 0d  |DD     r1,r1,#1.|
000006f0  00 49 1a 20 20 20 20 20  20 20 20 43 4d 50 20 20  |.I.        CMP  |
00000700  20 20 20 72 31 2c 23 34  35 0d 00 4a 1e 20 20 20  |   r1,#45..J.   |
00000710  20 20 20 20 20 42 4c 45  20 20 20 20 20 77 72 69  |     BLE     wri|
00000720  74 65 5f 6e 61 6d 65 0d  00 4b 0c 20 20 20 20 20  |te_name..K.     |
00000730  20 20 20 0d 00 4c 18 20  20 20 20 20 20 20 20 42  |   ..L.        B|
00000740  20 20 20 20 20 20 20 65  78 69 74 0d 00 4d 0c 20  |       exit..M. |
00000750  20 20 20 20 20 20 20 0d  00 4e 2e 2e 6e 62 75 66  |       ..N..nbuf|
00000760  20 20 20 45 51 55 44 20  30 3a 45 51 55 44 20 30  |   EQUD 0:EQUD 0|
00000770  3a 45 51 55 44 20 30 3a  45 51 55 44 20 30 3a 45  |:EQUD 0:EQUD 0:E|
00000780  51 55 44 20 30 0d 00 4f  27 2e 6e 75 6c 6c 20 20  |QUD 0..O'.null  |
00000790  20 45 51 55 44 20 30 3a  45 51 55 44 20 30 3a 45  | EQUD 0:EQUD 0:E|
000007a0  51 55 44 20 30 3a 45 51  55 44 20 30 0d 00 50 0e  |QUD 0:EQUD 0..P.|
000007b0  2e 6d 6e 61 6d 65 5f 65  6e 64 0d 00 51 04 0d 00  |.mname_end..Q...|
000007c0  52 0c 2e 6d 69 64 5f 73  65 74 0d 00 53 1d 20 20  |R..mid_set..S.  |
000007d0  20 20 20 20 20 20 42 20  20 20 20 20 20 20 6d 69  |      B       mi|
000007e0  64 5f 77 72 69 74 65 0d  00 54 25 20 20 20 20 20  |d_write..T%     |
000007f0  20 20 20 53 54 4d 46 44  20 20 20 52 31 33 21 2c  |   STMFD   R13!,|
00000800  7b 52 30 2d 52 31 32 2c  52 31 34 7d 0d 00 55 04  |{R0-R12,R14}..U.|
00000810  0d 00 56 19 20 20 20 20  20 20 20 20 4d 4f 56 20  |..V.        MOV |
00000820  20 20 20 20 72 30 2c 23  32 0d 00 57 25 20 20 20  |    r0,#2..W%   |
00000830  20 20 20 20 20 53 57 49  20 20 20 20 20 22 58 4f  |     SWI     "XO|
00000840  53 5f 52 65 61 64 53 79  73 49 6e 66 6f 22 0d 00  |S_ReadSysInfo"..|
00000850  58 1e 20 20 20 20 20 20  20 20 41 44 52 20 20 20  |X.        ADR   |
00000860  20 20 72 31 2c 6d 69 64  5f 62 75 66 0d 00 59 04  |  r1,mid_buf..Y.|
00000870  0d 00 5a 19 20 20 20 20  20 20 20 20 4d 4f 56 53  |..Z.        MOVS|
00000880  20 20 20 20 72 30 2c 72  34 0d 00 5b 1a 20 20 20  |    r0,r4..[.   |
00000890  20 20 20 20 20 4d 4f 56  20 20 20 20 20 72 32 2c  |     MOV     r2,|
000008a0  23 32 30 0d 00 5c 25 20  20 20 20 20 20 20 20 53  |#20..\%        S|
000008b0  57 49 20 20 20 20 20 22  58 4f 53 5f 43 6f 6e 76  |WI     "XOS_Conv|
000008c0  65 72 74 48 65 78 38 22  0d 00 5d 0c 20 20 20 20  |ertHex8"..].    |
000008d0  20 20 20 20 0d 00 5e 19  20 20 20 20 20 20 20 20  |    ..^.        |
000008e0  4d 4f 56 20 20 20 20 20  72 30 2c 72 33 0d 00 5f  |MOV     r0,r3.._|
000008f0  25 20 20 20 20 20 20 20  20 53 57 49 20 20 20 20  |%        SWI    |
00000900  20 22 58 4f 53 5f 43 6f  6e 76 65 72 74 48 65 78  | "XOS_ConvertHex|
00000910  38 22 0d 00 60 1e 20 20  20 20 20 20 20 20 41 44  |8"..`.        AD|
00000920  52 20 20 20 20 20 72 30  2c 6d 69 64 5f 62 75 66  |R     r0,mid_buf|
00000930  0d 00 61 1d 20 20 20 20  20 20 20 20 52 53 42 20  |..a.        RSB |
00000940  20 20 20 20 72 32 2c 72  32 2c 23 32 30 0d 00 62  |    r2,r2,#20..b|
00000950  13 2e 73 6b 69 70 30 73  20 20 20 20 20 20 20 20  |..skip0s        |
00000960  0d 00 63 1b 20 20 20 20  20 20 20 20 4c 44 52 42  |..c.        LDRB|
00000970  20 20 20 20 72 31 2c 5b  72 30 5d 0d 00 64 1c 20  |    r1,[r0]..d. |
00000980  20 20 20 20 20 20 20 43  4d 50 20 20 20 20 20 72  |       CMP     r|
00000990  31 2c 23 97 22 30 22 0d  00 65 1c 20 20 20 20 20  |1,#."0"..e.     |
000009a0  20 20 20 41 44 44 45 51  20 20 20 72 30 2c 72 30  |   ADDEQ   r0,r0|
000009b0  2c 23 31 0d 00 66 1c 20  20 20 20 20 20 20 20 53  |,#1..f.        S|
000009c0  55 42 45 51 20 20 20 72  32 2c 72 32 2c 23 31 0d  |UBEQ   r2,r2,#1.|
000009d0  00 67 1a 20 20 20 20 20  20 20 20 42 45 51 20 20  |.g.        BEQ  |
000009e0  20 20 20 73 6b 69 70 30  73 0d 00 68 0c 20 20 20  |   skip0s..h.   |
000009f0  20 20 20 20 20 0d 00 69  19 20 20 20 20 20 20 20  |     ..i.       |
00000a00  20 43 4d 50 20 20 20 20  20 72 32 2c 23 30 0d 00  | CMP     r2,#0..|
00000a10  6a 1c 20 20 20 20 20 20  20 20 41 44 44 45 51 20  |j.        ADDEQ |
00000a20  20 20 72 32 2c 72 32 2c  23 31 0d 00 6b 1c 20 20  |  r2,r2,#1..k.  |
00000a30  20 20 20 20 20 20 53 55  42 45 51 20 20 20 72 30  |      SUBEQ   r0|
00000a40  2c 72 30 2c 23 31 0d 00  6c 0c 20 20 20 20 20 20  |,r0,#1..l.      |
00000a50  20 20 0d 00 6d 19 20 20  20 20 20 20 20 20 54 53  |  ..m.        TS|
00000a60  54 20 20 20 20 20 72 32  2c 23 31 0d 00 6e 1c 20  |T     r2,#1..n. |
00000a70  20 20 20 20 20 20 20 41  44 44 4e 45 20 20 20 72  |       ADDNE   r|
00000a80  32 2c 72 32 2c 23 31 0d  00 6f 1c 20 20 20 20 20  |2,r2,#1..o.     |
00000a90  20 20 20 53 55 42 4e 45  20 20 20 72 30 2c 72 30  |   SUBNE   r0,r0|
00000aa0  2c 23 31 0d 00 70 14 20  20 20 20 20 20 20 20 20  |,#1..p.         |
00000ab0  20 20 20 20 20 20 20 0d  00 71 1c 20 20 20 20 20  |       ..q.     |
00000ac0  20 20 20 53 55 42 20 20  20 20 20 72 30 2c 72 30  |   SUB     r0,r0|
00000ad0  2c 23 32 0d 00 72 1c 20  20 20 20 20 20 20 20 4d  |,#2..r.        M|
00000ae0  4f 56 20 20 20 20 20 72  31 2c 23 97 22 30 22 0d  |OV     r1,#."0".|
00000af0  00 73 1b 20 20 20 20 20  20 20 20 53 54 52 42 20  |.s.        STRB |
00000b00  20 20 20 72 31 2c 5b 72  30 5d 0d 00 74 1c 20 20  |   r1,[r0]..t.  |
00000b10  20 20 20 20 20 20 4d 4f  56 20 20 20 20 20 72 31  |      MOV     r1|
00000b20  2c 23 97 22 78 22 0d 00  75 1e 20 20 20 20 20 20  |,#."x"..u.      |
00000b30  20 20 53 54 52 42 20 20  20 20 72 31 2c 5b 72 30  |  STRB    r1,[r0|
00000b40  2c 23 31 5d 0d 00 76 1c  20 20 20 20 20 20 20 20  |,#1]..v.        |
00000b50  41 44 44 20 20 20 20 20  72 32 2c 72 32 2c 23 32  |ADD     r2,r2,#2|
00000b60  0d 00 77 0c 20 20 20 20  20 20 20 20 0d 00 78 1f  |..w.        ..x.|
00000b70  20 20 20 20 20 20 20 20  53 54 52 20 20 20 20 20  |        STR     |
00000b80  72 30 2c 5b 52 31 33 2c  23 30 5d 0d 00 79 1f 20  |r0,[R13,#0]..y. |
00000b90  20 20 20 20 20 20 20 53  54 52 20 20 20 20 20 72  |       STR     r|
00000ba0  32 2c 5b 52 31 33 2c 23  38 5d 0d 00 7a 04 0d 00  |2,[R13,#8]..z...|
00000bb0  7b 24 20 20 20 20 20 20  20 20 4c 44 4d 46 44 20  |{$        LDMFD |
00000bc0  20 20 52 31 33 21 2c 7b  52 30 2d 52 31 32 2c 50  |  R13!,{R0-R12,P|
00000bd0  43 7d 0d 00 7c 0e 2e 6d  69 64 5f 77 72 69 74 65  |C}..|..mid_write|
00000be0  0d 00 7d 1a 20 20 20 20  20 20 20 20 4d 4f 56 20  |..}.        MOV |
00000bf0  20 20 20 20 70 63 2c 52  31 34 0d 00 7e 04 0d 00  |    pc,R14..~...|
00000c00  7f 13 20 20 20 20 20 20  20 20 45 51 55 44 20 20  |..        EQUD  |
00000c10  30 0d 00 80 0c 2e 6d 69  64 5f 62 75 66 0d 00 81  |0.....mid_buf...|
00000c20  36 20 20 20 20 20 20 20  20 45 51 55 44 20 30 3a  |6        EQUD 0:|
00000c30  45 51 55 44 20 30 3a 45  51 55 44 20 30 3a 45 51  |EQUD 0:EQUD 0:EQ|
00000c40  55 44 20 30 3a 45 51 55  44 20 30 20 20 20 20 20  |UD 0:EQUD 0     |
00000c50  20 20 20 0d 00 82 0c 20  20 20 20 20 20 20 20 0d  |   ....        .|
00000c60  00 83 14 2e 6d 69 64 5f  65 6e 64 20 20 20 20 20  |....mid_end     |
00000c70  20 20 20 0d 00 84 04 0d  00 85 06 5d ed 0d 00 86  |   ........]....|
00000c80  37 c8 99 20 22 4f 53 5f  46 69 6c 65 22 2c 31 30  |7.. "OS_File",10|
00000c90  2c 22 4c 69 62 3a 55 74  69 6c 73 2e 4d 61 63 68  |,"Lib:Utils.Mach|
00000ca0  69 6e 65 49 44 22 2c 26  46 46 43 2c 2c 63 6f 64  |ineID",&FFC,,cod|
00000cb0  65 2c 4f 25 0d ff                                 |e,O%..|
00000cb6