Home » Archimedes archive » Acorn User » AU 1994-03.adf » !StarInfo_StarInfo » Turnbull/!Pyramid/Library/ADR

Turnbull/!Pyramid/Library/ADR

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-03.adf » !StarInfo_StarInfo
Filename: Turnbull/!Pyramid/Library/ADR
Read OK:
File size: 017F bytes
Load address: 0000
Exec address: 0000
File contents
   10DEFFNadr(R%,A%,I%)
   20LOCALerr$:err$="ADR"
   30LOCALN%,O%,H%,U%
   40H%=A%-P%-8:O%=15:N%=0
   50FORU%=1TOI%
   60IFH%=0THEN
   70[OPT T%:MOV R%,O%:]
   80ELSEWHILE(H%AND3)=0:H%=H%>>2:N%+=2:ENDWHILE
   90IF(H%AND256)=0THEN
  100[OPT T%:ADD R%,O%,#(H%AND255)<<N%:]:H%-=H%AND255
  110ELSE[OPT T%:SUB R%,O%,#(256-H%AND255)<<N%:]:H%+=256-H%AND255
  120ENDIF
  130ENDIF
  140O%=R%:NEXT
  150IFH%<>0THENPRINT"Not enough instructions for ADR "'"R%=";R%'"A%=";A%'"I%=";I%:END
  160=T%

ݤadr(R%,A%,I%)
�err$:err$="ADR"
�N%,O%,H%,U%
(H%=A%-P%-8:O%=15:N%=0
2�U%=1�I%
<
�H%=0�
F[OPT T%:MOV R%,O%:]
P �ȕ(H%�3)=0:H%=H%>>2:N%+=2:�
Z�(H%�256)=0�
d0[OPT T%:ADD R%,O%,#(H%�255)<<N%:]:H%-=H%�255
n9�[OPT T%:SUB R%,O%,#(256-H%�255)<<N%:]:H%+=256-H%�255
x�
��
�O%=R%:�
�K�H%<>0��"Not enough instructions for ADR "'"R%=";R%'"A%=";A%'"I%=";I%:�
�=T%
�
00000000  0d 00 0a 13 dd a4 61 64  72 28 52 25 2c 41 25 2c  |......adr(R%,A%,|
00000010  49 25 29 0d 00 14 14 ea  65 72 72 24 3a 65 72 72  |I%).....err$:err|
00000020  24 3d 22 41 44 52 22 0d  00 1e 10 ea 4e 25 2c 4f  |$="ADR".....N%,O|
00000030  25 2c 48 25 2c 55 25 0d  00 28 19 48 25 3d 41 25  |%,H%,U%..(.H%=A%|
00000040  2d 50 25 2d 38 3a 4f 25  3d 31 35 3a 4e 25 3d 30  |-P%-8:O%=15:N%=0|
00000050  0d 00 32 0c e3 55 25 3d  31 b8 49 25 0d 00 3c 0a  |..2..U%=1.I%..<.|
00000060  e7 48 25 3d 30 8c 0d 00  46 17 5b 4f 50 54 20 54  |.H%=0...F.[OPT T|
00000070  25 3a 4d 4f 56 20 52 25  2c 4f 25 3a 5d 0d 00 50  |%:MOV R%,O%:]..P|
00000080  20 cc c8 95 28 48 25 80  33 29 3d 30 3a 48 25 3d  | ...(H%.3)=0:H%=|
00000090  48 25 3e 3e 32 3a 4e 25  2b 3d 32 3a ce 0d 00 5a  |H%>>2:N%+=2:...Z|
000000a0  10 e7 28 48 25 80 32 35  36 29 3d 30 8c 0d 00 64  |..(H%.256)=0...d|
000000b0  30 5b 4f 50 54 20 54 25  3a 41 44 44 20 52 25 2c  |0[OPT T%:ADD R%,|
000000c0  4f 25 2c 23 28 48 25 80  32 35 35 29 3c 3c 4e 25  |O%,#(H%.255)<<N%|
000000d0  3a 5d 3a 48 25 2d 3d 48  25 80 32 35 35 0d 00 6e  |:]:H%-=H%.255..n|
000000e0  39 cc 5b 4f 50 54 20 54  25 3a 53 55 42 20 52 25  |9.[OPT T%:SUB R%|
000000f0  2c 4f 25 2c 23 28 32 35  36 2d 48 25 80 32 35 35  |,O%,#(256-H%.255|
00000100  29 3c 3c 4e 25 3a 5d 3a  48 25 2b 3d 32 35 36 2d  |)<<N%:]:H%+=256-|
00000110  48 25 80 32 35 35 0d 00  78 05 cd 0d 00 82 05 cd  |H%.255..x.......|
00000120  0d 00 8c 0b 4f 25 3d 52  25 3a ed 0d 00 96 4b e7  |....O%=R%:....K.|
00000130  48 25 3c 3e 30 8c f1 22  4e 6f 74 20 65 6e 6f 75  |H%<>0.."Not enou|
00000140  67 68 20 69 6e 73 74 72  75 63 74 69 6f 6e 73 20  |gh instructions |
00000150  66 6f 72 20 41 44 52 20  22 27 22 52 25 3d 22 3b  |for ADR "'"R%=";|
00000160  52 25 27 22 41 25 3d 22  3b 41 25 27 22 49 25 3d  |R%'"A%=";A%'"I%=|
00000170  22 3b 49 25 3a e0 0d 00  a0 07 3d 54 25 0d ff     |";I%:.....=T%..|
0000017f