Home » Recent acquisitions » Acorn ADFS disks » adfs_AcornUser_199611.adf » Regulars » StarInfo/Turnbull/!BasicLib/MiscMacros

StarInfo/Turnbull/!BasicLib/MiscMacros

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

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

Tape/disk: Home » Recent acquisitions » Acorn ADFS disks » adfs_AcornUser_199611.adf » Regulars
Filename: StarInfo/Turnbull/!BasicLib/MiscMacros
Read OK:
File size: 079B bytes
Load address: 0000
Exec address: 0000
File contents
   10REM Miscellaneous macros used in most ARM code programs
   20:
   30DEFPROCmode(X%,Y%,C%)
   40DIMJ%64:P%=J%:[OPT 2
   50EQUD 1:EQUD X%:EQUD Y%:EQUD C%:EQUD -1
   60]:IFC%=3THEN[OPT 2:EQUD 3:EQUD 255:]
   70[OPT 2:EQUD -1:]:MODEJ%
   80ENDPROC
   90:
  100DEFFNadr(R%,A%,I%)
  110IF(P%AND3)<>0THENPRINT"Code isn't word aligned!":END
  120IF(T%AND2)=0THENP%+=I%<<2:=T%
  130LOCALN%,O%,H%,U%:H%=A%-(P%+8):N%=0:O%=15
  140FORU%=1TOI%:IFH%=0THEN
  150[OPT T%:MOV R%,O%:]
  160ELSEWHILE(H%AND3)=0:H%=H%>>2:N%+=2:ENDWHILE
  170IF(H%AND256)=0THEN
  180[OPT T%:ADD R%,O%,#(H%AND255)<<N%:]:H%-=H%AND255
  190ELSE[OPT T%:SUB R%,O%,#(256-H%AND255)<<N%:]:H%+=256-H%AND255
  200ENDIF
  210ENDIF:O%=R%:NEXT
  220IFH%<>0THENPRINT"Could not ADR to &";~A%;" in ";I%;" instructions (R%=";R%;")":END
  230=T%
  240:
  250DEFFNmakej(J%,N%,dummy%)
  260FORU%=0TON%-1:[OPT T%
  270EQUD dummy%-J%
  280]:NEXT:=T%
  290:
  300DEFFNregisterj(J%,N%)
  310IFP%<J%THENERROR255,"j routines must come after j table (J%=&"+STR$~J%+")"
  320J%!(N%<<2)=P%-J%
  330=T%
  340:
  350REM Does R=S*C+O
  360REM Copes with R=O
  370REM Takes registers R, S and O and constant C
  380:
  390DEFFNmla(R%,S%,C%,O%)
  400IFC%=0THEN[OPT T%:MOV R%,O%:]
  410LOCALN%
  420N%=0:WHILEC%<>0
  430WHILE(C%AND1)=0:N%+=1:C%=C%>>1:ENDWHILE
  440IF(C%AND2)=0THEN
  450[OPT T%:ADD R%,O%,S%,ASL#N%:]:C%-=1
  460ELSE[OPT T%:SUB R%,O%,S%,ASL#N%:]:C%+=1
  470ENDIF:O%=R%:ENDWHILE
  480=T%
  490:
  500REM Does R+=[(N<<F) div D]*C
  510REM Also N=(N<<F) mod D
  520REM M is maximum expected value of (N<<F) div D
  530REM Copes with (N<<F) bigger than 2^32
  540REM N and D are unsigned
  550REM Takes registers R, N, D and constants C, F and M
  560:
  570DEFFNdiva(R%,N%,F%,D%,C%,M%)
  580LOCALU%
  590M%=1+INT(LN(M%)/LN(2))
  600IFM%>F%+1THEN
  610FORU%=M%-1TOF%+1STEP-1:[OPT T%
  620CMP D%,N%,ASR#U%-F%
  630SUBLE N%,N%,D%,ASL#U%-F%
  640]:IFC%>=0THEN
  650[OPT T%:ADDLE R%,R%,#C%<<U%:]
  660ELSE[OPT T%:SUBLE R%,R%,#-C%<<U%:]
  670ENDIF:NEXT
  680ENDIF:IFM%>F%THEN
  690[OPT T%
  700CMP N%,D%
  710SUBGE N%,N%,D%
  720]:IFC%>=0THEN
  730[OPT T%:ADDGE R%,R%,#C%<<F%:]
  740ELSE[OPT T%:SUBGE R%,R%,#-C%<<F%:]
  750ENDIF
  760ENDIF:IFF%>0THEN
  770FORU%=F%-1TO0STEP-1:[OPT T%
  780RSBS N%,D%,N%,ASL#1
  790ADDLT N%,N%,D%
  800]:IFC%>=0THEN
  810[OPT T%:ADDGE R%,R%,#C%<<U%:]
  820ELSE[OPT T%:SUBGE R%,R%,#-C%<<U%:]
  830ENDIF:NEXT
  840ENDIF:=T%

9� Miscellaneous macros used in most ARM code programs
:
��mode(X%,Y%,C%)
(�J%64:P%=J%:[OPT 2
2*EQUD 1:EQUD X%:EQUD Y%:EQUD C%:EQUD -1
<$]:�C%=3�[OPT 2:EQUD 3:EQUD 255:]
F[OPT 2:EQUD -1:]:�J%
P�
Z:
dݤadr(R%,A%,I%)
n,�(P%�3)<>0��"Code isn't word aligned!":�
x�(T%�2)=0�P%+=I%<<2:=T%
�(�N%,O%,H%,U%:H%=A%-(P%+8):N%=0:O%=15
��U%=1�I%:�H%=0�
�[OPT T%:MOV R%,O%:]
� �ȕ(H%�3)=0:H%=H%>>2:N%+=2:�
��(H%�256)=0�
�0[OPT T%:ADD R%,O%,#(H%�255)<<N%:]:H%-=H%�255
�9�[OPT T%:SUB R%,O%,#(256-H%�255)<<N%:]:H%+=256-H%�255
��
�
�:O%=R%:�
�L�H%<>0��"Could not ADR to &";~A%;" in ";I%;" instructions (R%=";R%;")":�
�=T%
�:
�ݤmakej(J%,N%,dummy%)
�U%=0�N%-1:[OPT T%
EQUD dummy%-J%
]:�:=T%
":
,ݤregisterj(J%,N%)
6C�P%<J%��255,"j routines must come after j table (J%=&"+�~J%+")"
@J%!(N%<<2)=P%-J%
J=T%
T:
^� Does R=S*C+O
h� Copes with R=O
r/� Takes registers R, S and O and constant C
|:
�ݤmla(R%,S%,C%,O%)
��C%=0�[OPT T%:MOV R%,O%:]
��N%
�N%=0:ȕC%<>0
�ȕ(C%�1)=0:N%+=1:C%=C%>>1:�
��(C%�2)=0�
�'[OPT T%:ADD R%,O%,S%,ASL#N%:]:C%-=1
�(�[OPT T%:SUB R%,O%,S%,ASL#N%:]:C%+=1
�
�:O%=R%:�
�=T%
�:
�� Does R+=[(N<<F) div D]*C
�� Also N=(N<<F) mod D
1� M is maximum expected value of (N<<F) div D
(� Copes with (N<<F) bigger than 2^32
� N and D are unsigned
&6� Takes registers R, N, D and constants C, F and M
0:
:ݤdiva(R%,N%,F%,D%,C%,M%)
D�U%
NM%=1+�(�(M%)/�(2))
X
�M%>F%+1�
b�U%=M%-1�F%+1�-1:[OPT T%
lCMP D%,N%,ASR#U%-F%
vSUBLE N%,N%,D%,ASL#U%-F%
�
]:�C%>=0�
�![OPT T%:ADDLE R%,R%,#C%<<U%:]
�#�[OPT T%:SUBLE R%,R%,#-C%<<U%:]
��:�
�
�:�M%>F%�
�[OPT T%
�
CMP N%,D%
�SUBGE N%,N%,D%
�
]:�C%>=0�
�![OPT T%:ADDGE R%,R%,#C%<<F%:]
�#�[OPT T%:SUBGE R%,R%,#-C%<<F%:]
��
��:�F%>0�
�U%=F%-1�0�-1:[OPT T%
RSBS N%,D%,N%,ASL#1
ADDLT N%,N%,D%
 
]:�C%>=0�
*![OPT T%:ADDGE R%,R%,#C%<<U%:]
4#�[OPT T%:SUBGE R%,R%,#-C%<<U%:]
>�:�
H	�:=T%
�
00000000  0d 00 0a 39 f4 20 4d 69  73 63 65 6c 6c 61 6e 65  |...9. Miscellane|
00000010  6f 75 73 20 6d 61 63 72  6f 73 20 75 73 65 64 20  |ous macros used |
00000020  69 6e 20 6d 6f 73 74 20  41 52 4d 20 63 6f 64 65  |in most ARM code|
00000030  20 70 72 6f 67 72 61 6d  73 0d 00 14 05 3a 0d 00  | programs....:..|
00000040  1e 14 dd f2 6d 6f 64 65  28 58 25 2c 59 25 2c 43  |....mode(X%,Y%,C|
00000050  25 29 0d 00 28 16 de 4a  25 36 34 3a 50 25 3d 4a  |%)..(..J%64:P%=J|
00000060  25 3a 5b 4f 50 54 20 32  0d 00 32 2a 45 51 55 44  |%:[OPT 2..2*EQUD|
00000070  20 31 3a 45 51 55 44 20  58 25 3a 45 51 55 44 20  | 1:EQUD X%:EQUD |
00000080  59 25 3a 45 51 55 44 20  43 25 3a 45 51 55 44 20  |Y%:EQUD C%:EQUD |
00000090  2d 31 0d 00 3c 24 5d 3a  e7 43 25 3d 33 8c 5b 4f  |-1..<$]:.C%=3.[O|
000000a0  50 54 20 32 3a 45 51 55  44 20 33 3a 45 51 55 44  |PT 2:EQUD 3:EQUD|
000000b0  20 32 35 35 3a 5d 0d 00  46 18 5b 4f 50 54 20 32  | 255:]..F.[OPT 2|
000000c0  3a 45 51 55 44 20 2d 31  3a 5d 3a eb 4a 25 0d 00  |:EQUD -1:]:.J%..|
000000d0  50 05 e1 0d 00 5a 05 3a  0d 00 64 13 dd a4 61 64  |P....Z.:..d...ad|
000000e0  72 28 52 25 2c 41 25 2c  49 25 29 0d 00 6e 2c e7  |r(R%,A%,I%)..n,.|
000000f0  28 50 25 80 33 29 3c 3e  30 8c f1 22 43 6f 64 65  |(P%.3)<>0.."Code|
00000100  20 69 73 6e 27 74 20 77  6f 72 64 20 61 6c 69 67  | isn't word alig|
00000110  6e 65 64 21 22 3a e0 0d  00 78 1b e7 28 54 25 80  |ned!":...x..(T%.|
00000120  32 29 3d 30 8c 50 25 2b  3d 49 25 3c 3c 32 3a 3d  |2)=0.P%+=I%<<2:=|
00000130  54 25 0d 00 82 28 ea 4e  25 2c 4f 25 2c 48 25 2c  |T%...(.N%,O%,H%,|
00000140  55 25 3a 48 25 3d 41 25  2d 28 50 25 2b 38 29 3a  |U%:H%=A%-(P%+8):|
00000150  4e 25 3d 30 3a 4f 25 3d  31 35 0d 00 8c 13 e3 55  |N%=0:O%=15.....U|
00000160  25 3d 31 b8 49 25 3a e7  48 25 3d 30 8c 0d 00 96  |%=1.I%:.H%=0....|
00000170  17 5b 4f 50 54 20 54 25  3a 4d 4f 56 20 52 25 2c  |.[OPT T%:MOV R%,|
00000180  4f 25 3a 5d 0d 00 a0 20  cc c8 95 28 48 25 80 33  |O%:]... ...(H%.3|
00000190  29 3d 30 3a 48 25 3d 48  25 3e 3e 32 3a 4e 25 2b  |)=0:H%=H%>>2:N%+|
000001a0  3d 32 3a ce 0d 00 aa 10  e7 28 48 25 80 32 35 36  |=2:......(H%.256|
000001b0  29 3d 30 8c 0d 00 b4 30  5b 4f 50 54 20 54 25 3a  |)=0....0[OPT T%:|
000001c0  41 44 44 20 52 25 2c 4f  25 2c 23 28 48 25 80 32  |ADD R%,O%,#(H%.2|
000001d0  35 35 29 3c 3c 4e 25 3a  5d 3a 48 25 2d 3d 48 25  |55)<<N%:]:H%-=H%|
000001e0  80 32 35 35 0d 00 be 39  cc 5b 4f 50 54 20 54 25  |.255...9.[OPT T%|
000001f0  3a 53 55 42 20 52 25 2c  4f 25 2c 23 28 32 35 36  |:SUB R%,O%,#(256|
00000200  2d 48 25 80 32 35 35 29  3c 3c 4e 25 3a 5d 3a 48  |-H%.255)<<N%:]:H|
00000210  25 2b 3d 32 35 36 2d 48  25 80 32 35 35 0d 00 c8  |%+=256-H%.255...|
00000220  05 cd 0d 00 d2 0d cd 3a  4f 25 3d 52 25 3a ed 0d  |.......:O%=R%:..|
00000230  00 dc 4c e7 48 25 3c 3e  30 8c f1 22 43 6f 75 6c  |..L.H%<>0.."Coul|
00000240  64 20 6e 6f 74 20 41 44  52 20 74 6f 20 26 22 3b  |d not ADR to &";|
00000250  7e 41 25 3b 22 20 69 6e  20 22 3b 49 25 3b 22 20  |~A%;" in ";I%;" |
00000260  69 6e 73 74 72 75 63 74  69 6f 6e 73 20 28 52 25  |instructions (R%|
00000270  3d 22 3b 52 25 3b 22 29  22 3a e0 0d 00 e6 07 3d  |=";R%;")":.....=|
00000280  54 25 0d 00 f0 05 3a 0d  00 fa 19 dd a4 6d 61 6b  |T%....:......mak|
00000290  65 6a 28 4a 25 2c 4e 25  2c 64 75 6d 6d 79 25 29  |ej(J%,N%,dummy%)|
000002a0  0d 01 04 16 e3 55 25 3d  30 b8 4e 25 2d 31 3a 5b  |.....U%=0.N%-1:[|
000002b0  4f 50 54 20 54 25 0d 01  0e 12 45 51 55 44 20 64  |OPT T%....EQUD d|
000002c0  75 6d 6d 79 25 2d 4a 25  0d 01 18 0b 5d 3a ed 3a  |ummy%-J%....]:.:|
000002d0  3d 54 25 0d 01 22 05 3a  0d 01 2c 16 dd a4 72 65  |=T%..".:..,...re|
000002e0  67 69 73 74 65 72 6a 28  4a 25 2c 4e 25 29 0d 01  |gisterj(J%,N%)..|
000002f0  36 43 e7 50 25 3c 4a 25  8c 85 32 35 35 2c 22 6a  |6C.P%<J%..255,"j|
00000300  20 72 6f 75 74 69 6e 65  73 20 6d 75 73 74 20 63  | routines must c|
00000310  6f 6d 65 20 61 66 74 65  72 20 6a 20 74 61 62 6c  |ome after j tabl|
00000320  65 20 28 4a 25 3d 26 22  2b c3 7e 4a 25 2b 22 29  |e (J%=&"+.~J%+")|
00000330  22 0d 01 40 14 4a 25 21  28 4e 25 3c 3c 32 29 3d  |"..@.J%!(N%<<2)=|
00000340  50 25 2d 4a 25 0d 01 4a  07 3d 54 25 0d 01 54 05  |P%-J%..J.=T%..T.|
00000350  3a 0d 01 5e 12 f4 20 44  6f 65 73 20 52 3d 53 2a  |:..^.. Does R=S*|
00000360  43 2b 4f 0d 01 68 14 f4  20 43 6f 70 65 73 20 77  |C+O..h.. Copes w|
00000370  69 74 68 20 52 3d 4f 0d  01 72 2f f4 20 54 61 6b  |ith R=O..r/. Tak|
00000380  65 73 20 72 65 67 69 73  74 65 72 73 20 52 2c 20  |es registers R, |
00000390  53 20 61 6e 64 20 4f 20  61 6e 64 20 63 6f 6e 73  |S and O and cons|
000003a0  74 61 6e 74 20 43 0d 01  7c 05 3a 0d 01 86 16 dd  |tant C..|.:.....|
000003b0  a4 6d 6c 61 28 52 25 2c  53 25 2c 43 25 2c 4f 25  |.mla(R%,S%,C%,O%|
000003c0  29 0d 01 90 1d e7 43 25  3d 30 8c 5b 4f 50 54 20  |).....C%=0.[OPT |
000003d0  54 25 3a 4d 4f 56 20 52  25 2c 4f 25 3a 5d 0d 01  |T%:MOV R%,O%:]..|
000003e0  9a 07 ea 4e 25 0d 01 a4  10 4e 25 3d 30 3a c8 95  |...N%....N%=0:..|
000003f0  43 25 3c 3e 30 0d 01 ae  1f c8 95 28 43 25 80 31  |C%<>0......(C%.1|
00000400  29 3d 30 3a 4e 25 2b 3d  31 3a 43 25 3d 43 25 3e  |)=0:N%+=1:C%=C%>|
00000410  3e 31 3a ce 0d 01 b8 0e  e7 28 43 25 80 32 29 3d  |>1:......(C%.2)=|
00000420  30 8c 0d 01 c2 27 5b 4f  50 54 20 54 25 3a 41 44  |0....'[OPT T%:AD|
00000430  44 20 52 25 2c 4f 25 2c  53 25 2c 41 53 4c 23 4e  |D R%,O%,S%,ASL#N|
00000440  25 3a 5d 3a 43 25 2d 3d  31 0d 01 cc 28 cc 5b 4f  |%:]:C%-=1...(.[O|
00000450  50 54 20 54 25 3a 53 55  42 20 52 25 2c 4f 25 2c  |PT T%:SUB R%,O%,|
00000460  53 25 2c 41 53 4c 23 4e  25 3a 5d 3a 43 25 2b 3d  |S%,ASL#N%:]:C%+=|
00000470  31 0d 01 d6 0d cd 3a 4f  25 3d 52 25 3a ce 0d 01  |1.....:O%=R%:...|
00000480  e0 07 3d 54 25 0d 01 ea  05 3a 0d 01 f4 1e f4 20  |..=T%....:..... |
00000490  44 6f 65 73 20 52 2b 3d  5b 28 4e 3c 3c 46 29 20  |Does R+=[(N<<F) |
000004a0  64 69 76 20 44 5d 2a 43  0d 01 fe 19 f4 20 41 6c  |div D]*C..... Al|
000004b0  73 6f 20 4e 3d 28 4e 3c  3c 46 29 20 6d 6f 64 20  |so N=(N<<F) mod |
000004c0  44 0d 02 08 31 f4 20 4d  20 69 73 20 6d 61 78 69  |D...1. M is maxi|
000004d0  6d 75 6d 20 65 78 70 65  63 74 65 64 20 76 61 6c  |mum expected val|
000004e0  75 65 20 6f 66 20 28 4e  3c 3c 46 29 20 64 69 76  |ue of (N<<F) div|
000004f0  20 44 0d 02 12 28 f4 20  43 6f 70 65 73 20 77 69  | D...(. Copes wi|
00000500  74 68 20 28 4e 3c 3c 46  29 20 62 69 67 67 65 72  |th (N<<F) bigger|
00000510  20 74 68 61 6e 20 32 5e  33 32 0d 02 1c 1a f4 20  | than 2^32..... |
00000520  4e 20 61 6e 64 20 44 20  61 72 65 20 75 6e 73 69  |N and D are unsi|
00000530  67 6e 65 64 0d 02 26 36  f4 20 54 61 6b 65 73 20  |gned..&6. Takes |
00000540  72 65 67 69 73 74 65 72  73 20 52 2c 20 4e 2c 20  |registers R, N, |
00000550  44 20 61 6e 64 20 63 6f  6e 73 74 61 6e 74 73 20  |D and constants |
00000560  43 2c 20 46 20 61 6e 64  20 4d 0d 02 30 05 3a 0d  |C, F and M..0.:.|
00000570  02 3a 1d dd a4 64 69 76  61 28 52 25 2c 4e 25 2c  |.:...diva(R%,N%,|
00000580  46 25 2c 44 25 2c 43 25  2c 4d 25 29 0d 02 44 07  |F%,D%,C%,M%)..D.|
00000590  ea 55 25 0d 02 4e 16 4d  25 3d 31 2b a8 28 aa 28  |.U%..N.M%=1+.(.(|
000005a0  4d 25 29 2f aa 28 32 29  29 0d 02 58 0d e7 4d 25  |M%)/.(2))..X..M%|
000005b0  3e 46 25 2b 31 8c 0d 02  62 1c e3 55 25 3d 4d 25  |>F%+1...b..U%=M%|
000005c0  2d 31 b8 46 25 2b 31 88  2d 31 3a 5b 4f 50 54 20  |-1.F%+1.-1:[OPT |
000005d0  54 25 0d 02 6c 17 43 4d  50 20 44 25 2c 4e 25 2c  |T%..l.CMP D%,N%,|
000005e0  41 53 52 23 55 25 2d 46  25 0d 02 76 1c 53 55 42  |ASR#U%-F%..v.SUB|
000005f0  4c 45 20 4e 25 2c 4e 25  2c 44 25 2c 41 53 4c 23  |LE N%,N%,D%,ASL#|
00000600  55 25 2d 46 25 0d 02 80  0d 5d 3a e7 43 25 3e 3d  |U%-F%....]:.C%>=|
00000610  30 8c 0d 02 8a 21 5b 4f  50 54 20 54 25 3a 41 44  |0....![OPT T%:AD|
00000620  44 4c 45 20 52 25 2c 52  25 2c 23 43 25 3c 3c 55  |DLE R%,R%,#C%<<U|
00000630  25 3a 5d 0d 02 94 23 cc  5b 4f 50 54 20 54 25 3a  |%:]...#.[OPT T%:|
00000640  53 55 42 4c 45 20 52 25  2c 52 25 2c 23 2d 43 25  |SUBLE R%,R%,#-C%|
00000650  3c 3c 55 25 3a 5d 0d 02  9e 07 cd 3a ed 0d 02 a8  |<<U%:].....:....|
00000660  0d cd 3a e7 4d 25 3e 46  25 8c 0d 02 b2 0b 5b 4f  |..:.M%>F%.....[O|
00000670  50 54 20 54 25 0d 02 bc  0d 43 4d 50 20 4e 25 2c  |PT T%....CMP N%,|
00000680  44 25 0d 02 c6 12 53 55  42 47 45 20 4e 25 2c 4e  |D%....SUBGE N%,N|
00000690  25 2c 44 25 0d 02 d0 0d  5d 3a e7 43 25 3e 3d 30  |%,D%....]:.C%>=0|
000006a0  8c 0d 02 da 21 5b 4f 50  54 20 54 25 3a 41 44 44  |....![OPT T%:ADD|
000006b0  47 45 20 52 25 2c 52 25  2c 23 43 25 3c 3c 46 25  |GE R%,R%,#C%<<F%|
000006c0  3a 5d 0d 02 e4 23 cc 5b  4f 50 54 20 54 25 3a 53  |:]...#.[OPT T%:S|
000006d0  55 42 47 45 20 52 25 2c  52 25 2c 23 2d 43 25 3c  |UBGE R%,R%,#-C%<|
000006e0  3c 46 25 3a 5d 0d 02 ee  05 cd 0d 02 f8 0c cd 3a  |<F%:]..........:|
000006f0  e7 46 25 3e 30 8c 0d 03  02 19 e3 55 25 3d 46 25  |.F%>0......U%=F%|
00000700  2d 31 b8 30 88 2d 31 3a  5b 4f 50 54 20 54 25 0d  |-1.0.-1:[OPT T%.|
00000710  03 0c 17 52 53 42 53 20  4e 25 2c 44 25 2c 4e 25  |...RSBS N%,D%,N%|
00000720  2c 41 53 4c 23 31 0d 03  16 12 41 44 44 4c 54 20  |,ASL#1....ADDLT |
00000730  4e 25 2c 4e 25 2c 44 25  0d 03 20 0d 5d 3a e7 43  |N%,N%,D%.. .]:.C|
00000740  25 3e 3d 30 8c 0d 03 2a  21 5b 4f 50 54 20 54 25  |%>=0...*![OPT T%|
00000750  3a 41 44 44 47 45 20 52  25 2c 52 25 2c 23 43 25  |:ADDGE R%,R%,#C%|
00000760  3c 3c 55 25 3a 5d 0d 03  34 23 cc 5b 4f 50 54 20  |<<U%:]..4#.[OPT |
00000770  54 25 3a 53 55 42 47 45  20 52 25 2c 52 25 2c 23  |T%:SUBGE R%,R%,#|
00000780  2d 43 25 3c 3c 55 25 3a  5d 0d 03 3e 07 cd 3a ed  |-C%<<U%:]..>..:.|
00000790  0d 03 48 09 cd 3a 3d 54  25 0d ff                 |..H..:=T%..|
0000079b