Home » Archimedes archive » Acorn User » AU 1994-02.adf » !StarInfo_StarInfo » Gerrits/WimpPatch

Gerrits/WimpPatch

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 1994-02.adf » !StarInfo_StarInfo
Filename: Gerrits/WimpPatch
Read OK:
File size: 0DDA bytes
Load address: 0000
Exec address: 0000
File contents
   10 REM >WimpPatch
   20 REM By Erwin Gerrits
   30 REM For RISC-OS 3.1
   40 REM (c) BAU August 1993
   50 REM version 1.10
   60
   70 ON ERROR REPORT: PRINT " at line ";ERL:END
   80
   90 DIM block 120*1024
  100 SYS "OS_File",&FF,"OldWimp",block TO ,,,,len
  110
  120 FOR pass=8 TO 10 STEP 2
  130 P%=block+len:L%=block+120*1024
  140 [OPT pass
  150.stringwidth
  160 STMDB R13!,{R1-R3,R5-R7,R10,R11,R14}
  170  BL getfonthandle
  180  SWI "XFont_SetFont"
  190
  200  MOV R1,R2
  210  MOV R7,#0:MOV R5,#0
  220  .countlloop
  230   LDRB R3,[R1,R5]
  240   CMP R3,#32               ; set index to length
  250    ADDGE R5,R5,#1
  260  BGE countlloop
  270
  280  MVN R2,#&F0000000         ; (no hassle with FormEd's)
  290  MVN R3,#&F0000000         ; (  strange terminators! )
  300  MOV R4,#0                 ; (or no terminators with 12-char menu titles!)
  310  SWI "XFont_StringWidth"
  320
  330  MOV R0,R5
  340  MOV R1,R2
  350  SWI "XFont_ConverttoOS"
  360  MOV R4,R1
  370 LDMIA R13!,{R1-R3,R5-R7,R10,R11,PC}
  380
  390.stringwidthcaret
  400 STMFD R13!,{R0,R1,R3-R11,R14}
  410  BL stringwidth
  420  MOV R2,R4
  430 LDMFD R13!,{R0,R1,R3-R11,PC}^
  440
  450.paintfont
  460  STMDB R13!,{R6-R11}
  470  MOV R9,R1
  480  BL getfonthandle
  490  STMFD R13!,{R0-R6}
  500   MOV R2,R1,LSR#24
  510   AND R2,R2,#15
  520   MOV R1,R1,LSR#28
  530   MOV R3,#7
  540   TST R9,#1<<21
  550    MOVNE R6,R1             ;
  560    MOVNE R1,R2             ; swap colours if selected
  570    MOVNE R2,R6             ;
  580   CMP R1,#0
  590   BNE skiptitlecols
  600   CMP R2,#0
  610    MOVEQ R1,#2
  620    MOVEQ R2,#7
  630  .skiptitlecols
  640   SWI "XWimp_SetFontColours"
  650   MOVVS R1,#2
  660   MOVVS R2,#7
  670   MOVVS R3,#7
  680   SWIVS "XWimp_SetFontColours"
  690  LDMFD R13!,{R0-R6}
  700
  710  MOV R1,R9
  720  MOV R8,#12
  730  TST R1,#&100              ;
  740   MVNNE R8,#&F0000000      ; set max length of string!
  750
  760  MOV R7,#0
  770  MOV R1,R2
  780
  790 .countloop
  800   LDRB R3,[R2],#1
  810   CMP R3,#32
  820   ADDGE R7,R7,#1
  830  BGE countloop
  840  CMP R7,R8
  850  MOVGT R7,R8
  860
  870  .endcount
  880  MOV R3,R4
  890  SUB R4,R5,#20
  900  MOV R2,#16+256+128
  910  TST R9,#&20
  920  ORRNE R2,R2,#2            ; filled background!
  930  MOV R5,#0:MOV R6,#0
  940  SWI "XFont_Paint"
  950  LDMIA R13!,{R6-R11}
  960 B endpatch
  970
  980.original
  990 TST R1,#&100
 1000 MOVEQ R3,#&0C
 1010 MVNNE R3,#&F0000000
 1020.originalloop
 1030 SUBS R3,R3,#1
 1040 LDRCSB R0,[R2],#1
 1050 CMPCS R0,#&20
 1060 BCC endoriginal
 1070 CMP R4,#&20
 1080 MOVCS R0,R4
 1090 SWI "XOS_WriteC"
 1100 BVC originalloop
 1110.endoriginal
 1120 SWI "XOS_WriteI"+CHR$13
 1130 B endpatch
 1140
 1150.getfonthandle
 1160 STMFD R13!,{R1-R11,R14}
 1170  ADR R0,name
 1180  ADR R1,buffer
 1190  MOV R2,#40
 1200  MOV R3,#0
 1210  MOV R4,#3
 1220  SWI "XOS_ReadVarVal"
 1230  MOV R0,#10
 1240  ADR R1,buffer
 1250  SWI "XOS_ReadUnsigned"
 1260  MOV R0,R2
 1270 LDMFD R13!,{R1-R11,PC}
 1280
 1290.name
 1300 EQUS "Desktop$FontHandle":EQUB 0
 1310.buffer
 1320 EQUS STRING$(40,CHR$0)
 1330 ALIGN
 1340 ]
 1350 end=P%
 1360 P%=block+&7618
 1370 [OPT pass
 1380  STMDB R13!,{R2,R4,R5}
 1390 ]
 1400 P%=block+&7640
 1410 [OPT pass
 1420  DCD 0
 1430  TST R1,#&40
 1440   LDMEQIA R13!,{R4,R5}
 1450   BEQ paintfont
 1460   LDMNEIA R13!,{R0,R3}
 1470   BNE original
 1480  DCD 0
 1490  DCD 0
 1500  DCD 0
 1510  DCD 0
 1520  DCD 0
 1530  DCD 0
 1540 .endpatch
 1550 ]
 1560 P%=block+&7934
 1570 [OPT pass
 1580  BL stringwidth            ;
 1590  LDR R14,[R12,#80]         ;
 1600  DCD 0                     ;
 1610  DCD 0                     ; text position string size
 1620  DCD 0                     ;
 1630  DCD 0                     ;
 1640 ]
 1650 P%=block+&9758
 1660 [OPT pass
 1670  BL stringwidthcaret       ; caret position string size
 1680 ]
 1690
 1700NEXT
 1710SYS "OS_File",10,"NewWimp",&FFA,,block,end
 1720END

 � >WimpPatch
 � By Erwin Gerrits
 � For RISC-OS 3.1
( � (c) BAU August 1993
2 � version 1.10
<
F � � �: � " at line ";�:�
P
Z � block 120*1024
d/ ș "OS_File",&FF,"OldWimp",block � ,,,,len
n
x � pass=8 � 10 � 2
�# P%=block+len:L%=block+120*1024
� [OPT pass
�.stringwidth
�) STMDB R13!,{R1-R3,R5-R7,R10,R11,R14}
�  BL getfonthandle
�  SWI "XFont_SetFont"
�
�  MOV R1,R2
�  MOV R7,#0:MOV R5,#0
�  .countlloop
�   LDRB R3,[R1,R5]
�5   CMP R3,#32               ; set index to length
�    ADDGE R5,R5,#1
  BGE countlloop

;  MVN R2,#&F0000000         ; (no hassle with FormEd's)
";  MVN R3,#&F0000000         ; (  strange terminators! )
,O  MOV R4,#0                 ; (or no terminators with 12-char menu titles!)
6  SWI "XFont_StringWidth"
@
J  MOV R0,R5
T  MOV R1,R2
^  SWI "XFont_ConverttoOS"
h  MOV R4,R1
r( LDMIA R13!,{R1-R3,R5-R7,R10,R11,PC}
|
�.stringwidthcaret
�" STMFD R13!,{R0,R1,R3-R11,R14}
�  BL stringwidth
�  MOV R2,R4
�" LDMFD R13!,{R0,R1,R3-R11,PC}^
�
�.paintfont
�  STMDB R13!,{R6-R11}
�  MOV R9,R1
�  BL getfonthandle
�  STMFD R13!,{R0-R6}
�   MOV R2,R1,LSR#24
�   � R2,R2,#15
   MOV R1,R1,LSR#28
   MOV R3,#7
   TST R9,#1<<21
&!    MOVNE R6,R1             ;
0:    MOVNE R1,R2             ; swap colours if selected
:!    MOVNE R2,R6             ;
D   CMP R1,#0
N   BNE skiptitlecols
X   CMP R2,#0
b    �Q R1,#2
l    �Q R2,#7
v  .skiptitlecols
�!   SWI "XWimp_SetFontColours"
�   MOVVS R1,#2
�   MOVVS R2,#7
�   MOVVS R3,#7
�#   SWIVS "XWimp_SetFontColours"
�  LDMFD R13!,{R0-R6}
�
�  MOV R1,R9
�  MOV R8,#12
�!  TST R1,#&100              ;
�;   MVNNE R8,#&F0000000      ; set max length of string!
�
�  MOV R7,#0
  MOV R1,R2

 .countloop
    LDRB R3,[R2],#1
*   CMP R3,#32
4   ADDGE R7,R7,#1
>  BGE countloop
H  CMP R7,R8
R  MOVGT R7,R8
\
f  .endcount
p  MOV R3,R4
z  SUB R4,R5,#20
�  MOV R2,#16+256+128
�  TST R9,#&20
�3  �RNE R2,R2,#2            ; filled background!
�  MOV R5,#0:MOV R6,#0
�  SWI "XFont_Paint"
�  LDMIA R13!,{R6-R11}
� B endpatch
�
�
.original
� TST R1,#&100
� �Q R3,#&0C
� MVNNE R3,#&F0000000
�.originalloop
 SUBS R3,R3,#1
 LDRCSB R0,[R2],#1
 CMPCS R0,#&20
$ BCC endoriginal
. CMP R4,#&20
8 MOVCS R0,R4
B SWI "XOS_WriteC"
L BVC originalloop
V.endoriginal
` SWI "XOS_WriteI"+�13
j B endpatch
t
~.getfonthandle
� STMFD R13!,{R1-R11,R14}
�  ADR R0,name
�  ADR R1,buffer
�  MOV R2,#40
�  MOV R3,#0
�  MOV R4,#3
�  SWI "XOS_ReadVarVal"
�  MOV R0,#10
�  ADR R1,buffer
�  SWI "XOS_ReadUnsigned"
�  MOV R0,R2
� LDMFD R13!,{R1-R11,PC}


	.name
% EQUS "Desktop$FontHandle":EQUB 0
.buffer
( EQUS �40,�0)
2
 ALIGN
< ]
F end=P%
P P%=block+&7618
Z [OPT pass
d  STMDB R13!,{R2,R4,R5}
n ]
x P%=block+&7640
� [OPT pass
�  DCD 0
�  TST R1,#&40
�   LDMEQIA R13!,{R4,R5}
�   BEQ paintfont
�   LDMNEIA R13!,{R0,R3}
�   BNE original
�  DCD 0
�  DCD 0
�  DCD 0
�  DCD 0
�  DCD 0
�  DCD 0
 .endpatch
 ]
 P%=block+&7934
" [OPT pass
,!  BL stringwidth            ;
6!  LDR R14,[R12,#80]         ;
@!  DCD 0                     ;
J;  DCD 0                     ; text position string size
T!  DCD 0                     ;
^!  DCD 0                     ;
h ]
r P%=block+&9758
| [OPT pass
�<  BL stringwidthcaret       ; caret position string size
� ]
�
��
�-ș "OS_File",10,"NewWimp",&FFA,,block,end
��
�
00000000  0d 00 0a 11 20 f4 20 3e  57 69 6d 70 50 61 74 63  |.... . >WimpPatc|
00000010  68 0d 00 14 17 20 f4 20  42 79 20 45 72 77 69 6e  |h.... . By Erwin|
00000020  20 47 65 72 72 69 74 73  0d 00 1e 16 20 f4 20 46  | Gerrits.... . F|
00000030  6f 72 20 52 49 53 43 2d  4f 53 20 33 2e 31 0d 00  |or RISC-OS 3.1..|
00000040  28 1a 20 f4 20 28 63 29  20 42 41 55 20 41 75 67  |(. . (c) BAU Aug|
00000050  75 73 74 20 31 39 39 33  0d 00 32 13 20 f4 20 76  |ust 1993..2. . v|
00000060  65 72 73 69 6f 6e 20 31  2e 31 30 0d 00 3c 04 0d  |ersion 1.10..<..|
00000070  00 46 1d 20 ee 20 85 20  f6 3a 20 f1 20 22 20 61  |.F. . . .: . " a|
00000080  74 20 6c 69 6e 65 20 22  3b 9e 3a e0 0d 00 50 04  |t line ";.:...P.|
00000090  0d 00 5a 15 20 de 20 62  6c 6f 63 6b 20 31 32 30  |..Z. . block 120|
000000a0  2a 31 30 32 34 0d 00 64  2f 20 c8 99 20 22 4f 53  |*1024..d/ .. "OS|
000000b0  5f 46 69 6c 65 22 2c 26  46 46 2c 22 4f 6c 64 57  |_File",&FF,"OldW|
000000c0  69 6d 70 22 2c 62 6c 6f  63 6b 20 b8 20 2c 2c 2c  |imp",block . ,,,|
000000d0  2c 6c 65 6e 0d 00 6e 04  0d 00 78 16 20 e3 20 70  |,len..n...x. . p|
000000e0  61 73 73 3d 38 20 b8 20  31 30 20 88 20 32 0d 00  |ass=8 . 10 . 2..|
000000f0  82 23 20 50 25 3d 62 6c  6f 63 6b 2b 6c 65 6e 3a  |.# P%=block+len:|
00000100  4c 25 3d 62 6c 6f 63 6b  2b 31 32 30 2a 31 30 32  |L%=block+120*102|
00000110  34 0d 00 8c 0e 20 5b 4f  50 54 20 70 61 73 73 0d  |4.... [OPT pass.|
00000120  00 96 10 2e 73 74 72 69  6e 67 77 69 64 74 68 0d  |....stringwidth.|
00000130  00 a0 29 20 53 54 4d 44  42 20 52 31 33 21 2c 7b  |..) STMDB R13!,{|
00000140  52 31 2d 52 33 2c 52 35  2d 52 37 2c 52 31 30 2c  |R1-R3,R5-R7,R10,|
00000150  52 31 31 2c 52 31 34 7d  0d 00 aa 16 20 20 42 4c  |R11,R14}....  BL|
00000160  20 67 65 74 66 6f 6e 74  68 61 6e 64 6c 65 0d 00  | getfonthandle..|
00000170  b4 19 20 20 53 57 49 20  22 58 46 6f 6e 74 5f 53  |..  SWI "XFont_S|
00000180  65 74 46 6f 6e 74 22 0d  00 be 04 0d 00 c8 0f 20  |etFont"........ |
00000190  20 4d 4f 56 20 52 31 2c  52 32 0d 00 d2 19 20 20  | MOV R1,R2....  |
000001a0  4d 4f 56 20 52 37 2c 23  30 3a 4d 4f 56 20 52 35  |MOV R7,#0:MOV R5|
000001b0  2c 23 30 0d 00 dc 11 20  20 2e 63 6f 75 6e 74 6c  |,#0....  .countl|
000001c0  6c 6f 6f 70 0d 00 e6 16  20 20 20 4c 44 52 42 20  |loop....   LDRB |
000001d0  52 33 2c 5b 52 31 2c 52  35 5d 0d 00 f0 35 20 20  |R3,[R1,R5]...5  |
000001e0  20 43 4d 50 20 52 33 2c  23 33 32 20 20 20 20 20  | CMP R3,#32     |
000001f0  20 20 20 20 20 20 20 20  20 20 3b 20 73 65 74 20  |          ; set |
00000200  69 6e 64 65 78 20 74 6f  20 6c 65 6e 67 74 68 0d  |index to length.|
00000210  00 fa 16 20 20 20 20 41  44 44 47 45 20 52 35 2c  |...    ADDGE R5,|
00000220  52 35 2c 23 31 0d 01 04  14 20 20 42 47 45 20 63  |R5,#1....  BGE c|
00000230  6f 75 6e 74 6c 6c 6f 6f  70 0d 01 0e 04 0d 01 18  |ountlloop.......|
00000240  3b 20 20 4d 56 4e 20 52  32 2c 23 26 46 30 30 30  |;  MVN R2,#&F000|
00000250  30 30 30 30 20 20 20 20  20 20 20 20 20 3b 20 28  |0000         ; (|
00000260  6e 6f 20 68 61 73 73 6c  65 20 77 69 74 68 20 46  |no hassle with F|
00000270  6f 72 6d 45 64 27 73 29  0d 01 22 3b 20 20 4d 56  |ormEd's)..";  MV|
00000280  4e 20 52 33 2c 23 26 46  30 30 30 30 30 30 30 20  |N R3,#&F0000000 |
00000290  20 20 20 20 20 20 20 20  3b 20 28 20 20 73 74 72  |        ; (  str|
000002a0  61 6e 67 65 20 74 65 72  6d 69 6e 61 74 6f 72 73  |ange terminators|
000002b0  21 20 29 0d 01 2c 4f 20  20 4d 4f 56 20 52 34 2c  |! )..,O  MOV R4,|
000002c0  23 30 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |#0              |
000002d0  20 20 20 3b 20 28 6f 72  20 6e 6f 20 74 65 72 6d  |   ; (or no term|
000002e0  69 6e 61 74 6f 72 73 20  77 69 74 68 20 31 32 2d  |inators with 12-|
000002f0  63 68 61 72 20 6d 65 6e  75 20 74 69 74 6c 65 73  |char menu titles|
00000300  21 29 0d 01 36 1d 20 20  53 57 49 20 22 58 46 6f  |!)..6.  SWI "XFo|
00000310  6e 74 5f 53 74 72 69 6e  67 57 69 64 74 68 22 0d  |nt_StringWidth".|
00000320  01 40 04 0d 01 4a 0f 20  20 4d 4f 56 20 52 30 2c  |.@...J.  MOV R0,|
00000330  52 35 0d 01 54 0f 20 20  4d 4f 56 20 52 31 2c 52  |R5..T.  MOV R1,R|
00000340  32 0d 01 5e 1d 20 20 53  57 49 20 22 58 46 6f 6e  |2..^.  SWI "XFon|
00000350  74 5f 43 6f 6e 76 65 72  74 74 6f 4f 53 22 0d 01  |t_ConverttoOS"..|
00000360  68 0f 20 20 4d 4f 56 20  52 34 2c 52 31 0d 01 72  |h.  MOV R4,R1..r|
00000370  28 20 4c 44 4d 49 41 20  52 31 33 21 2c 7b 52 31  |( LDMIA R13!,{R1|
00000380  2d 52 33 2c 52 35 2d 52  37 2c 52 31 30 2c 52 31  |-R3,R5-R7,R10,R1|
00000390  31 2c 50 43 7d 0d 01 7c  04 0d 01 86 15 2e 73 74  |1,PC}..|......st|
000003a0  72 69 6e 67 77 69 64 74  68 63 61 72 65 74 0d 01  |ringwidthcaret..|
000003b0  90 22 20 53 54 4d 46 44  20 52 31 33 21 2c 7b 52  |." STMFD R13!,{R|
000003c0  30 2c 52 31 2c 52 33 2d  52 31 31 2c 52 31 34 7d  |0,R1,R3-R11,R14}|
000003d0  0d 01 9a 14 20 20 42 4c  20 73 74 72 69 6e 67 77  |....  BL stringw|
000003e0  69 64 74 68 0d 01 a4 0f  20 20 4d 4f 56 20 52 32  |idth....  MOV R2|
000003f0  2c 52 34 0d 01 ae 22 20  4c 44 4d 46 44 20 52 31  |,R4..." LDMFD R1|
00000400  33 21 2c 7b 52 30 2c 52  31 2c 52 33 2d 52 31 31  |3!,{R0,R1,R3-R11|
00000410  2c 50 43 7d 5e 0d 01 b8  04 0d 01 c2 0e 2e 70 61  |,PC}^.........pa|
00000420  69 6e 74 66 6f 6e 74 0d  01 cc 19 20 20 53 54 4d  |intfont....  STM|
00000430  44 42 20 52 31 33 21 2c  7b 52 36 2d 52 31 31 7d  |DB R13!,{R6-R11}|
00000440  0d 01 d6 0f 20 20 4d 4f  56 20 52 39 2c 52 31 0d  |....  MOV R9,R1.|
00000450  01 e0 16 20 20 42 4c 20  67 65 74 66 6f 6e 74 68  |...  BL getfonth|
00000460  61 6e 64 6c 65 0d 01 ea  18 20 20 53 54 4d 46 44  |andle....  STMFD|
00000470  20 52 31 33 21 2c 7b 52  30 2d 52 36 7d 0d 01 f4  | R13!,{R0-R6}...|
00000480  17 20 20 20 4d 4f 56 20  52 32 2c 52 31 2c 4c 53  |.   MOV R2,R1,LS|
00000490  52 23 32 34 0d 01 fe 12  20 20 20 80 20 52 32 2c  |R#24....   . R2,|
000004a0  52 32 2c 23 31 35 0d 02  08 17 20 20 20 4d 4f 56  |R2,#15....   MOV|
000004b0  20 52 31 2c 52 31 2c 4c  53 52 23 32 38 0d 02 12  | R1,R1,LSR#28...|
000004c0  10 20 20 20 4d 4f 56 20  52 33 2c 23 37 0d 02 1c  |.   MOV R3,#7...|
000004d0  14 20 20 20 54 53 54 20  52 39 2c 23 31 3c 3c 32  |.   TST R9,#1<<2|
000004e0  31 0d 02 26 21 20 20 20  20 4d 4f 56 4e 45 20 52  |1..&!    MOVNE R|
000004f0  36 2c 52 31 20 20 20 20  20 20 20 20 20 20 20 20  |6,R1            |
00000500  20 3b 0d 02 30 3a 20 20  20 20 4d 4f 56 4e 45 20  | ;..0:    MOVNE |
00000510  52 31 2c 52 32 20 20 20  20 20 20 20 20 20 20 20  |R1,R2           |
00000520  20 20 3b 20 73 77 61 70  20 63 6f 6c 6f 75 72 73  |  ; swap colours|
00000530  20 69 66 20 73 65 6c 65  63 74 65 64 0d 02 3a 21  | if selected..:!|
00000540  20 20 20 20 4d 4f 56 4e  45 20 52 32 2c 52 36 20  |    MOVNE R2,R6 |
00000550  20 20 20 20 20 20 20 20  20 20 20 20 3b 0d 02 44  |            ;..D|
00000560  10 20 20 20 43 4d 50 20  52 31 2c 23 30 0d 02 4e  |.   CMP R1,#0..N|
00000570  18 20 20 20 42 4e 45 20  73 6b 69 70 74 69 74 6c  |.   BNE skiptitl|
00000580  65 63 6f 6c 73 0d 02 58  10 20 20 20 43 4d 50 20  |ecols..X.   CMP |
00000590  52 32 2c 23 30 0d 02 62  10 20 20 20 20 ec 51 20  |R2,#0..b.    .Q |
000005a0  52 31 2c 23 32 0d 02 6c  10 20 20 20 20 ec 51 20  |R1,#2..l.    .Q |
000005b0  52 32 2c 23 37 0d 02 76  14 20 20 2e 73 6b 69 70  |R2,#7..v.  .skip|
000005c0  74 69 74 6c 65 63 6f 6c  73 0d 02 80 21 20 20 20  |titlecols...!   |
000005d0  53 57 49 20 22 58 57 69  6d 70 5f 53 65 74 46 6f  |SWI "XWimp_SetFo|
000005e0  6e 74 43 6f 6c 6f 75 72  73 22 0d 02 8a 12 20 20  |ntColours"....  |
000005f0  20 4d 4f 56 56 53 20 52  31 2c 23 32 0d 02 94 12  | MOVVS R1,#2....|
00000600  20 20 20 4d 4f 56 56 53  20 52 32 2c 23 37 0d 02  |   MOVVS R2,#7..|
00000610  9e 12 20 20 20 4d 4f 56  56 53 20 52 33 2c 23 37  |..   MOVVS R3,#7|
00000620  0d 02 a8 23 20 20 20 53  57 49 56 53 20 22 58 57  |...#   SWIVS "XW|
00000630  69 6d 70 5f 53 65 74 46  6f 6e 74 43 6f 6c 6f 75  |imp_SetFontColou|
00000640  72 73 22 0d 02 b2 18 20  20 4c 44 4d 46 44 20 52  |rs"....  LDMFD R|
00000650  31 33 21 2c 7b 52 30 2d  52 36 7d 0d 02 bc 04 0d  |13!,{R0-R6}.....|
00000660  02 c6 0f 20 20 4d 4f 56  20 52 31 2c 52 39 0d 02  |...  MOV R1,R9..|
00000670  d0 10 20 20 4d 4f 56 20  52 38 2c 23 31 32 0d 02  |..  MOV R8,#12..|
00000680  da 21 20 20 54 53 54 20  52 31 2c 23 26 31 30 30  |.!  TST R1,#&100|
00000690  20 20 20 20 20 20 20 20  20 20 20 20 20 20 3b 0d  |              ;.|
000006a0  02 e4 3b 20 20 20 4d 56  4e 4e 45 20 52 38 2c 23  |..;   MVNNE R8,#|
000006b0  26 46 30 30 30 30 30 30  30 20 20 20 20 20 20 3b  |&F0000000      ;|
000006c0  20 73 65 74 20 6d 61 78  20 6c 65 6e 67 74 68 20  | set max length |
000006d0  6f 66 20 73 74 72 69 6e  67 21 0d 02 ee 04 0d 02  |of string!......|
000006e0  f8 0f 20 20 4d 4f 56 20  52 37 2c 23 30 0d 03 02  |..  MOV R7,#0...|
000006f0  0f 20 20 4d 4f 56 20 52  31 2c 52 32 0d 03 0c 04  |.  MOV R1,R2....|
00000700  0d 03 16 0f 20 2e 63 6f  75 6e 74 6c 6f 6f 70 0d  |.... .countloop.|
00000710  03 20 16 20 20 20 4c 44  52 42 20 52 33 2c 5b 52  |. .   LDRB R3,[R|
00000720  32 5d 2c 23 31 0d 03 2a  11 20 20 20 43 4d 50 20  |2],#1..*.   CMP |
00000730  52 33 2c 23 33 32 0d 03  34 15 20 20 20 41 44 44  |R3,#32..4.   ADD|
00000740  47 45 20 52 37 2c 52 37  2c 23 31 0d 03 3e 13 20  |GE R7,R7,#1..>. |
00000750  20 42 47 45 20 63 6f 75  6e 74 6c 6f 6f 70 0d 03  | BGE countloop..|
00000760  48 0f 20 20 43 4d 50 20  52 37 2c 52 38 0d 03 52  |H.  CMP R7,R8..R|
00000770  11 20 20 4d 4f 56 47 54  20 52 37 2c 52 38 0d 03  |.  MOVGT R7,R8..|
00000780  5c 04 0d 03 66 0f 20 20  2e 65 6e 64 63 6f 75 6e  |\...f.  .endcoun|
00000790  74 0d 03 70 0f 20 20 4d  4f 56 20 52 33 2c 52 34  |t..p.  MOV R3,R4|
000007a0  0d 03 7a 13 20 20 53 55  42 20 52 34 2c 52 35 2c  |..z.  SUB R4,R5,|
000007b0  23 32 30 0d 03 84 18 20  20 4d 4f 56 20 52 32 2c  |#20....  MOV R2,|
000007c0  23 31 36 2b 32 35 36 2b  31 32 38 0d 03 8e 11 20  |#16+256+128.... |
000007d0  20 54 53 54 20 52 39 2c  23 26 32 30 0d 03 98 33  | TST R9,#&20...3|
000007e0  20 20 84 52 4e 45 20 52  32 2c 52 32 2c 23 32 20  |  .RNE R2,R2,#2 |
000007f0  20 20 20 20 20 20 20 20  20 20 20 3b 20 66 69 6c  |           ; fil|
00000800  6c 65 64 20 62 61 63 6b  67 72 6f 75 6e 64 21 0d  |led background!.|
00000810  03 a2 19 20 20 4d 4f 56  20 52 35 2c 23 30 3a 4d  |...  MOV R5,#0:M|
00000820  4f 56 20 52 36 2c 23 30  0d 03 ac 17 20 20 53 57  |OV R6,#0....  SW|
00000830  49 20 22 58 46 6f 6e 74  5f 50 61 69 6e 74 22 0d  |I "XFont_Paint".|
00000840  03 b6 19 20 20 4c 44 4d  49 41 20 52 31 33 21 2c  |...  LDMIA R13!,|
00000850  7b 52 36 2d 52 31 31 7d  0d 03 c0 0f 20 42 20 65  |{R6-R11}.... B e|
00000860  6e 64 70 61 74 63 68 0d  03 ca 04 0d 03 d4 0d 2e  |ndpatch.........|
00000870  6f 72 69 67 69 6e 61 6c  0d 03 de 11 20 54 53 54  |original.... TST|
00000880  20 52 31 2c 23 26 31 30  30 0d 03 e8 0f 20 ec 51  | R1,#&100.... .Q|
00000890  20 52 33 2c 23 26 30 43  0d 03 f2 18 20 4d 56 4e  | R3,#&0C.... MVN|
000008a0  4e 45 20 52 33 2c 23 26  46 30 30 30 30 30 30 30  |NE R3,#&F0000000|
000008b0  0d 03 fc 11 2e 6f 72 69  67 69 6e 61 6c 6c 6f 6f  |.....originalloo|
000008c0  70 0d 04 06 12 20 53 55  42 53 20 52 33 2c 52 33  |p.... SUBS R3,R3|
000008d0  2c 23 31 0d 04 10 16 20  4c 44 52 43 53 42 20 52  |,#1.... LDRCSB R|
000008e0  30 2c 5b 52 32 5d 2c 23  31 0d 04 1a 12 20 43 4d  |0,[R2],#1.... CM|
000008f0  50 43 53 20 52 30 2c 23  26 32 30 0d 04 24 14 20  |PCS R0,#&20..$. |
00000900  42 43 43 20 65 6e 64 6f  72 69 67 69 6e 61 6c 0d  |BCC endoriginal.|
00000910  04 2e 10 20 43 4d 50 20  52 34 2c 23 26 32 30 0d  |... CMP R4,#&20.|
00000920  04 38 10 20 4d 4f 56 43  53 20 52 30 2c 52 34 0d  |.8. MOVCS R0,R4.|
00000930  04 42 15 20 53 57 49 20  22 58 4f 53 5f 57 72 69  |.B. SWI "XOS_Wri|
00000940  74 65 43 22 0d 04 4c 15  20 42 56 43 20 6f 72 69  |teC"..L. BVC ori|
00000950  67 69 6e 61 6c 6c 6f 6f  70 0d 04 56 10 2e 65 6e  |ginalloop..V..en|
00000960  64 6f 72 69 67 69 6e 61  6c 0d 04 60 19 20 53 57  |doriginal..`. SW|
00000970  49 20 22 58 4f 53 5f 57  72 69 74 65 49 22 2b bd  |I "XOS_WriteI"+.|
00000980  31 33 0d 04 6a 0f 20 42  20 65 6e 64 70 61 74 63  |13..j. B endpatc|
00000990  68 0d 04 74 04 0d 04 7e  12 2e 67 65 74 66 6f 6e  |h..t...~..getfon|
000009a0  74 68 61 6e 64 6c 65 0d  04 88 1c 20 53 54 4d 46  |thandle.... STMF|
000009b0  44 20 52 31 33 21 2c 7b  52 31 2d 52 31 31 2c 52  |D R13!,{R1-R11,R|
000009c0  31 34 7d 0d 04 92 11 20  20 41 44 52 20 52 30 2c  |14}....  ADR R0,|
000009d0  6e 61 6d 65 0d 04 9c 13  20 20 41 44 52 20 52 31  |name....  ADR R1|
000009e0  2c 62 75 66 66 65 72 0d  04 a6 10 20 20 4d 4f 56  |,buffer....  MOV|
000009f0  20 52 32 2c 23 34 30 0d  04 b0 0f 20 20 4d 4f 56  | R2,#40....  MOV|
00000a00  20 52 33 2c 23 30 0d 04  ba 0f 20 20 4d 4f 56 20  | R3,#0....  MOV |
00000a10  52 34 2c 23 33 0d 04 c4  1a 20 20 53 57 49 20 22  |R4,#3....  SWI "|
00000a20  58 4f 53 5f 52 65 61 64  56 61 72 56 61 6c 22 0d  |XOS_ReadVarVal".|
00000a30  04 ce 10 20 20 4d 4f 56  20 52 30 2c 23 31 30 0d  |...  MOV R0,#10.|
00000a40  04 d8 13 20 20 41 44 52  20 52 31 2c 62 75 66 66  |...  ADR R1,buff|
00000a50  65 72 0d 04 e2 1c 20 20  53 57 49 20 22 58 4f 53  |er....  SWI "XOS|
00000a60  5f 52 65 61 64 55 6e 73  69 67 6e 65 64 22 0d 04  |_ReadUnsigned"..|
00000a70  ec 0f 20 20 4d 4f 56 20  52 30 2c 52 32 0d 04 f6  |..  MOV R0,R2...|
00000a80  1b 20 4c 44 4d 46 44 20  52 31 33 21 2c 7b 52 31  |. LDMFD R13!,{R1|
00000a90  2d 52 31 31 2c 50 43 7d  0d 05 00 04 0d 05 0a 09  |-R11,PC}........|
00000aa0  2e 6e 61 6d 65 0d 05 14  25 20 45 51 55 53 20 22  |.name...% EQUS "|
00000ab0  44 65 73 6b 74 6f 70 24  46 6f 6e 74 48 61 6e 64  |Desktop$FontHand|
00000ac0  6c 65 22 3a 45 51 55 42  20 30 0d 05 1e 0b 2e 62  |le":EQUB 0.....b|
00000ad0  75 66 66 65 72 0d 05 28  11 20 45 51 55 53 20 c4  |uffer..(. EQUS .|
00000ae0  34 30 2c bd 30 29 0d 05  32 0a 20 41 4c 49 47 4e  |40,.0)..2. ALIGN|
00000af0  0d 05 3c 06 20 5d 0d 05  46 0b 20 65 6e 64 3d 50  |..<. ]..F. end=P|
00000b00  25 0d 05 50 13 20 50 25  3d 62 6c 6f 63 6b 2b 26  |%..P. P%=block+&|
00000b10  37 36 31 38 0d 05 5a 0e  20 5b 4f 50 54 20 70 61  |7618..Z. [OPT pa|
00000b20  73 73 0d 05 64 1b 20 20  53 54 4d 44 42 20 52 31  |ss..d.  STMDB R1|
00000b30  33 21 2c 7b 52 32 2c 52  34 2c 52 35 7d 0d 05 6e  |3!,{R2,R4,R5}..n|
00000b40  06 20 5d 0d 05 78 13 20  50 25 3d 62 6c 6f 63 6b  |. ]..x. P%=block|
00000b50  2b 26 37 36 34 30 0d 05  82 0e 20 5b 4f 50 54 20  |+&7640.... [OPT |
00000b60  70 61 73 73 0d 05 8c 0b  20 20 44 43 44 20 30 0d  |pass....  DCD 0.|
00000b70  05 96 11 20 20 54 53 54  20 52 31 2c 23 26 34 30  |...  TST R1,#&40|
00000b80  0d 05 a0 1b 20 20 20 4c  44 4d 45 51 49 41 20 52  |....   LDMEQIA R|
00000b90  31 33 21 2c 7b 52 34 2c  52 35 7d 0d 05 aa 14 20  |13!,{R4,R5}.... |
00000ba0  20 20 42 45 51 20 70 61  69 6e 74 66 6f 6e 74 0d  |  BEQ paintfont.|
00000bb0  05 b4 1b 20 20 20 4c 44  4d 4e 45 49 41 20 52 31  |...   LDMNEIA R1|
00000bc0  33 21 2c 7b 52 30 2c 52  33 7d 0d 05 be 13 20 20  |3!,{R0,R3}....  |
00000bd0  20 42 4e 45 20 6f 72 69  67 69 6e 61 6c 0d 05 c8  | BNE original...|
00000be0  0b 20 20 44 43 44 20 30  0d 05 d2 0b 20 20 44 43  |.  DCD 0....  DC|
00000bf0  44 20 30 0d 05 dc 0b 20  20 44 43 44 20 30 0d 05  |D 0....  DCD 0..|
00000c00  e6 0b 20 20 44 43 44 20  30 0d 05 f0 0b 20 20 44  |..  DCD 0....  D|
00000c10  43 44 20 30 0d 05 fa 0b  20 20 44 43 44 20 30 0d  |CD 0....  DCD 0.|
00000c20  06 04 0e 20 2e 65 6e 64  70 61 74 63 68 0d 06 0e  |... .endpatch...|
00000c30  06 20 5d 0d 06 18 13 20  50 25 3d 62 6c 6f 63 6b  |. ].... P%=block|
00000c40  2b 26 37 39 33 34 0d 06  22 0e 20 5b 4f 50 54 20  |+&7934..". [OPT |
00000c50  70 61 73 73 0d 06 2c 21  20 20 42 4c 20 73 74 72  |pass..,!  BL str|
00000c60  69 6e 67 77 69 64 74 68  20 20 20 20 20 20 20 20  |ingwidth        |
00000c70  20 20 20 20 3b 0d 06 36  21 20 20 4c 44 52 20 52  |    ;..6!  LDR R|
00000c80  31 34 2c 5b 52 31 32 2c  23 38 30 5d 20 20 20 20  |14,[R12,#80]    |
00000c90  20 20 20 20 20 3b 0d 06  40 21 20 20 44 43 44 20  |     ;..@!  DCD |
00000ca0  30 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |0               |
00000cb0  20 20 20 20 20 20 3b 0d  06 4a 3b 20 20 44 43 44  |      ;..J;  DCD|
00000cc0  20 30 20 20 20 20 20 20  20 20 20 20 20 20 20 20  | 0              |
00000cd0  20 20 20 20 20 20 20 3b  20 74 65 78 74 20 70 6f  |       ; text po|
00000ce0  73 69 74 69 6f 6e 20 73  74 72 69 6e 67 20 73 69  |sition string si|
00000cf0  7a 65 0d 06 54 21 20 20  44 43 44 20 30 20 20 20  |ze..T!  DCD 0   |
00000d00  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000d10  20 20 3b 0d 06 5e 21 20  20 44 43 44 20 30 20 20  |  ;..^!  DCD 0  |
00000d20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000d30  20 20 20 3b 0d 06 68 06  20 5d 0d 06 72 13 20 50  |   ;..h. ]..r. P|
00000d40  25 3d 62 6c 6f 63 6b 2b  26 39 37 35 38 0d 06 7c  |%=block+&9758..||
00000d50  0e 20 5b 4f 50 54 20 70  61 73 73 0d 06 86 3c 20  |. [OPT pass...< |
00000d60  20 42 4c 20 73 74 72 69  6e 67 77 69 64 74 68 63  | BL stringwidthc|
00000d70  61 72 65 74 20 20 20 20  20 20 20 3b 20 63 61 72  |aret       ; car|
00000d80  65 74 20 70 6f 73 69 74  69 6f 6e 20 73 74 72 69  |et position stri|
00000d90  6e 67 20 73 69 7a 65 0d  06 90 06 20 5d 0d 06 9a  |ng size.... ]...|
00000da0  04 0d 06 a4 05 ed 0d 06  ae 2d c8 99 20 22 4f 53  |.........-.. "OS|
00000db0  5f 46 69 6c 65 22 2c 31  30 2c 22 4e 65 77 57 69  |_File",10,"NewWi|
00000dc0  6d 70 22 2c 26 46 46 41  2c 2c 62 6c 6f 63 6b 2c  |mp",&FFA,,block,|
00000dd0  65 6e 64 0d 06 b8 05 e0  0d ff                    |end.......|
00000dda