Home » Archimedes archive » Acorn User » AU 1996-12 B.adf » Regulars_2 » StarInfo/Geleit/gravity

StarInfo/Geleit/gravity

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 1996-12 B.adf » Regulars_2
Filename: StarInfo/Geleit/gravity
Read OK:
File size: 1CD9 bytes
Load address: 0000
Exec address: 0000
File contents
    1REM Mutually attractive particles through gravity
    2REM (c) R Geleit Apr 1993
    3
    4ONERRORIFNOTINKEY-1 PROCerror ELSE RUN
    5
    6MODE0
    7OFF
    8
    9stars=24
   10G=(1<<30)
   11Maxvel=(1<<25)
   12
   13PROCassemble
   14PROCinit_tables
   15VDU5
   16CALLrun
   17END
   18
   19DEFPROCassemble
   20
   21quant=(stars AND-8)
   22quan2=FNexp2(stars)+2
   23blocks=(stars DIV8)-1
   24tables=(quant<<1)
   25
   26DIM code 1000
   27DIM data ((quant<<2)*7),table ((1<<quan2)*(quant<<1))
   28
   29x1=0
   30y1=1
   31m1=2
   32x2=3
   33y2=4
   34m2=5
   35d2=6
   36ctr1=7
   37ctr2=8
   38
   39fx=x2
   40fy=y2
   41ptr=14
   42
   43x=9
   44a=10
   45c=11
   46sum=12
   47
   48answ=ptr
   49divd=x
   50visr=a
   51mask=c
   52sign=sum
   53
   54ax=x
   55ay=sum
   56
   57accm=8
   58tsad=9
   59blox=10
   60dnad=11
   61sptr=12
   62tctr=14
   63
   64FORT%=0TO2 STEP2
   65P%=code
   66[OPTT%
   67.mtas   EQUD    data
   68.axts   EQUD    data+(quant<<2)
   69.ayts   EQUD    data+(quant<<2)*2
   70.vxts   EQUD    data+(quant<<2)*3
   71.vyts   EQUD    data+(quant<<2)*4
   72.xtas   EQUD    data+(quant<<2)*5
   73.ytas   EQUD    data+(quant<<2)*6
   74
   75.fxas   EQUD    table
   76.fyas   EQUD    table+(1<<quan2)*quant
   77
   78.run    STMFD   R13!,{R14}
   79
   80.tlp    BL      makeft
   81        BL      sumft
   82        BL      deltav
   83        BL      plot
   84
   85        SWI     "OS_ReadEscapeState"
   86        BCC     tlp
   87
   88        LDMFD   R13!,{PC}^
   89
   90.makeft STMFD   R13!,{R14}
   91
   92        MOV     ctr1,#quant-1
   93
   94.lp1    LDR     x1,xtas
   95        LDR     y1,ytas
   96        LDR     m1,mtas
   97
   98        LDR     x1,[x1,ctr1,LSL#2]
   99        LDR     y1,[y1,ctr1,LSL#2]
  100        LDR     m1,[m1,ctr1,LSL#2]
  101
  102        SUB     ctr2,ctr1,#1
  103
  104.lp2    LDR     x2,xtas
  105        LDR     y2,ytas
  106        LDR     m2,mtas
  107
  108        LDR     x2,[x2,ctr2,LSL#2]
  109        LDR     y2,[y2,ctr2,LSL#2]
  110        LDR     m2,[m2,ctr2,LSL#2]
  111
  112        SUB     x2,x1,x2
  113        SUB     y2,y1,y2
  114
  115        MOV     x,x2,asr#17
  116        MOV     a,y2,asr#17
  117
  118        MUL     d2,x,x
  119        MLA     d2,a,a,d2
  120        MOV     d2,d2,asr#16
  121
  122.div    MOV     divd,#G
  123        MOVS    visr,d2
  124        MOVEQ   answ,#0
  125        BEQ     byzer
  126
  127        EOR     sign,divd,visr
  128        CMP     divd,#0
  129        RSBLT   divd,divd,#0
  130        CMP     visr,#0
  131        RSBLT   visr,visr,#0
  132
  133        MOV     answ,#0
  134        MOV     mask,#1
  135
  136.dlp1   MOV     visr,visr,LSL#1
  137        MOV     mask,mask,LSL#1
  138        CMP     visr,divd
  139        BLS     dlp1
  140
  141        MOV     visr,visr,LSR#1
  142        MOV     mask,mask,LSR#1
  143
  144.dlp2   CMP     visr,divd
  145        ORRLs   answ,answ,mask
  146        SUBLs   divd,divd,visr
  147        MOV     visr,visr,LSR#1
  148        MOVS    mask,mask,LSR#1
  149        BNE     dlp2
  150
  151        CMP     sign,#0
  152        RSBLT   answ,answ,#0
  153
  154.byzer  MOV     x2,x2,asr#16
  155        MOV     y2,y2,asr#16
  156        MOV     answ,answ,asr#16
  157        MUL     fx,answ,x2
  158        MUL     fy,answ,y2
  159
  160        LDR     a,fxas
  161        LDR     c,fyas
  162
  163        MOV     fx,fx,asr#16
  164        MOV     fy,fy,asr#16
  165
  166        MOV     ptr,ctr2,LSL#quan2
  167        ADD     ptr,ptr,ctr1,LSL#2
  168        MUL     ax,fx,m1
  169        MUL     ay,fy,m1
  170        STR     ax,[a,ptr]
  171        STR     ay,[c,ptr]
  172
  173        MOV     ptr,ctr1,LSL#quan2
  174        ADD     ptr,ptr,ctr2,LSL#2
  175        RSB     fx,fx,#0
  176        RSB     fy,fy,#0
  177        MUL     ax,fx,m2
  178        MUL     ay,fy,m2
  179        STR     ax,[a,ptr]
  180        STR     ay,[c,ptr]
  181
  182        SUBS    ctr2,ctr2,#1
  183        BPL     lp2
  184
  185        SUBS    ctr1,ctr1,#1
  186        BNE     lp1
  187
  188        LDMFD   R13!,{PC}^
  189
  190.sumft  STMFD   R13!,{R14}
  191
  192        ldr     tsad,fxas
  193        ldr     dnad,axts
  194        mov     tctr,#0
  195
  196.smlp2  mov     accm,#0
  197        mov     blox,#blocks
  198        add     sptr,tsad,tctr,LSL#quan2
  199
  200.smlp1  LDMIA   (sptr)!,{R0-R7}
  201
  202        add     accm,accm,R0,ASR#2
  203        add     accm,accm,R1,ASR#2
  204        add     accm,accm,R2,ASR#2
  205        add     accm,accm,R3,ASR#2
  206        add     accm,accm,R4,ASR#2
  207        add     accm,accm,R5,ASR#2
  208        add     accm,accm,R6,ASR#2
  209        add     accm,accm,R7,ASR#2
  210
  211        subs    blox,blox,#1
  212        bpl     smlp1
  213
  214        STMIA   (dnad)!,{accm}
  215
  216        add     tctr,tctr,#1
  217        cmp     tctr,#tables
  218        blt     smlp2
  219
  220        LDMFD   R13!,{PC}^
  221
  222.deltav STMFD   R13!,{R14}
  223
  224        LDR     R8,axts
  225        LDR     R9,vxts
  226
  227        MOV     R10,#((blocks+1)<<2)-1
  228
  229.dvlp1  LDMIA   R8!,{R0-R3}
  230        LDMIA   R9,{R4-R7}
  231
  232        ADD     R0,R0,R4
  233        ADD     R1,R1,R5
  234        ADD     R2,R2,R6
  235        ADD     R3,R3,R7
  236
  237        STMIA   R9!,{R0-R3}
  238
  239        SUBS    R10,R10,#1
  240        BPL     dvlp1
  241
  242.deltax LDR     R8,vxts
  243        LDR     R9,xtas
  244
  245        MOV     R10,#((blocks+1)<<2)-1
  246
  247.dxlp1  LDMIA   R8,{R4-R7}
  248        LDMIA   R9,{R0-R3}
  249
  250        ADD     R0,R0,R4
  251        ADD     R1,R1,R5
  252        ADD     R2,R2,R6
  253        ADD     R3,R3,R7
  254            
  255        cmn     r4,#Maxvel
  256        mvnle   r4,#0
  257        cmn     r5,#Maxvel
  258        mvnle   r5,#0
  259        cmn     r6,#Maxvel
  260        mvnle   r6,#0
  261        cmn     r7,#Maxvel
  262        mvnle   r7,#0
  263        
  264        cmp     r4,#Maxvel
  265        movge   r4,#0
  266        cmp     r5,#Maxvel
  267        movge   r5,#0
  268        cmp     r6,#Maxvel
  269        movge   r6,#0
  270        cmp     r7,#Maxvel
  271        movge   r7,#0
  272
  273        stmIA   R9!,{R0-R3}
  274        STMIA   R8!,{R4-R7}
  275
  276        SUBS    R10,R10,#1
  277        BPL     dxlp1
  278
  279        LDMFD   R13!,{PC}^
  280
  281.plot   STMFD   R13!,{R14}
  282
  283        MOV     R0,#19
  284        SWI     "OS_Byte"
  285
  286        LDR     R12,scnst
  287        MOV     R0,#0
  288        MOV     R1,#0
  289        MOV     R2,#0
  290        MOV     R3,#0
  291        MOV     R4,#0
  292        MOV     R5,#0
  293        MOV     R6,#0
  294        MOV     R7,#0
  295        MOV     R8,#0
  296        MOV     R9,#0
  297        MOV     R10,#0
  298        MOV     R11,#0
  299
  300        MOV     R14,#127
  301
  302.clslp  STMIA   R12!,{R0-R11}
  303        STMIA   R12!,{R0-R11}
  304        STMIA   R12!,{R0-R11}
  305        STMIA   R12!,{R0-R3}
  306
  307        SUBS    R14,R14,#1
  308        BPL     clslp
  309
  310        MOV     R0,#4
  311        MOV     R5,#quant
  312        LDR     R3,xtas
  313        LDR     R4,ytas
  314
  315.pllp   LDMIA   R3!,{R1}
  316        LDMIA   R4!,{R2}
  317
  318        MOV     R1,R1,LSR#22
  319        MOV     R2,R2,LSR#22
  320
  321        SWI     "OS_Plot"
  322        SWI     &18F
  323
  324        SUBS    R5,R5,#1
  325        BNE     pllp
  326
  327        LDMFD   R13!,{PC}^
  328
  329.scnst  EQUD    !&10C0
  330
  331]
  332NEXT
  333ENDPROC
  334
  335DEFPROCinit_tables
  336FORT%=(quant<<2)*5 TO (quant<<2)*7-1 STEP4
  337data!T%=RND
  338NEXT
  339FORT%=(quant<<2)*3 TO (quant<<2)*5-1 STEP4
  340data!T%=RND(1<<22)-RND(1<<22)
  341NEXT
  342FORT%=0 TO (quant<<2)*3-1 STEP4
  343data!T%=RND(1<<14)+(1<<13)
  344NEXT
  345FORT%=0 TO ((1<<quan2)*(quant<<1))-1 STEP4
  346table!T%=0
  347NEXT
  348ENDPROC
  349
  350DEFFNexp2(A%)
  351LOCAL C%
  352C%=0
  353REPEAT C%+=1
  354UNTIL (1<<C%)>=A%
  355=C%
  356
  357DEFPROCerror
  358VDU4
  359PRINTREPORT$;" at line ";STR$(ERL/10)
  360REMOSCLI("SAVE RAM:$.PLOPPY "+STR$~table+"+"+STR$~((1<<quan2)*(quant<<1)))
  361END
3� Mutually attractive particles through gravity
� (c) R Geleit Apr 1993

�符-1 �error � �

�0
�

	stars=24


G=(1<<30)
Maxvel=(1<<25)



�assemble
�init_tables
�5
�run
�

��assemble

quant=(stars �-8)
quan2=�exp2(stars)+2
blocks=(stars �8)-1
tables=(quant<<1)

� code 1000
7� data ((quant<<2)*7),table ((1<<quan2)*(quant<<1))

x1=0
y1=1
m1=2
 x2=3
!y2=4
"m2=5
#d2=6
$
ctr1=7
%
ctr2=8
&
'	fx=x2
(	fy=y2
)
ptr=14
*
+x=9
,a=10
-c=11
.
sum=12
/
0answ=ptr
1
divd=x
2
visr=a
3
mask=c
4sign=sum
5
6ax=x
7
ay=sum
8
9
accm=8
:
tsad=9
;blox=10
<dnad=11
=sptr=12
>tctr=14
?
@�T%=0�2 �2
AP%=code
B
[OPTT%
C.mtas   EQUD    data
D#.axts   EQUD    data+(quant<<2)
E%.ayts   EQUD    data+(quant<<2)*2
F%.vxts   EQUD    data+(quant<<2)*3
G%.vyts   EQUD    data+(quant<<2)*4
H%.xtas   EQUD    data+(quant<<2)*5
I%.ytas   EQUD    data+(quant<<2)*6
J
K.fxas   EQUD    table
L*.fyas   EQUD    table+(1<<quan2)*quant
M
N.run    STMFD   R13!,{R14}
O
P.tlp    BL      makeft
Q        BL      sumft
R        BL      deltav
S        BL      plot
T
U(        SWI     "OS_ReadEscapeState"
V        BCC     tlp
W
X        LDMFD   R13!,{PC}^
Y
Z.makeft STMFD   R13!,{R14}
[
\!        MOV     ctr1,#quant-1
]
^.lp1    LDR     x1,xtas
_        LDR     y1,ytas
`        LDR     m1,mtas
a
b&        LDR     x1,[x1,ctr1,LSL#2]
c&        LDR     y1,[y1,ctr1,LSL#2]
d&        LDR     m1,[m1,ctr1,LSL#2]
e
f         SUB     ctr2,ctr1,#1
g
h.lp2    LDR     x2,xtas
i        LDR     y2,ytas
j        LDR     m2,mtas
k
l&        LDR     x2,[x2,ctr2,LSL#2]
m&        LDR     y2,[y2,ctr2,LSL#2]
n&        LDR     m2,[m2,ctr2,LSL#2]
o
p        SUB     x2,x1,x2
q        SUB     y2,y1,y2
r
s        MOV     x,x2,asr#17
t        MOV     a,y2,asr#17
u
v        MUL     d2,x,x
w        MLA     d2,a,a,d2
x         MOV     d2,d2,asr#16
y
z.div    MOV     divd,#G
{        MOVS    visr,d2
|        �Q   answ,#0
}        BEQ     byzer
~
         �     sign,divd,visr
�        CMP     divd,#0
�         RSBLT   divd,divd,#0
�        CMP     visr,#0
�         RSBLT   visr,visr,#0
�
�        MOV     answ,#0
�        MOV     mask,#1
�
�#.dlp1   MOV     visr,visr,LSL#1
�#        MOV     mask,mask,LSL#1
�        CMP     visr,divd
�        BLS     dlp1
�
�#        MOV     visr,visr,LSR#1
�#        MOV     mask,mask,LSR#1
�
�.dlp2   CMP     visr,divd
�!        �RLs   answ,answ,mask
�"        SUBLs   divd,divd,visr
�#        MOV     visr,visr,LSR#1
�#        MOVS    mask,mask,LSR#1
�        BNE     dlp2
�
�        CMP     sign,#0
�         RSBLT   answ,answ,#0
�
� .byzer  MOV     x2,x2,asr#16
�         MOV     y2,y2,asr#16
�$        MOV     answ,answ,asr#16
�        MUL     fx,answ,x2
�        MUL     fy,answ,y2
�
�        LDR     a,fxas
�        LDR     c,fyas
�
�         MOV     fx,fx,asr#16
�         MOV     fy,fy,asr#16
�
�&        MOV     ptr,ctr2,LSL#quan2
�&        ADD     ptr,ptr,ctr1,LSL#2
�        MUL     ax,fx,m1
�        MUL     ay,fy,m1
�        STR     ax,[a,ptr]
�        STR     ay,[c,ptr]
�
�&        MOV     ptr,ctr1,LSL#quan2
�&        ADD     ptr,ptr,ctr2,LSL#2
�        RSB     fx,fx,#0
�        RSB     fy,fy,#0
�        MUL     ax,fx,m2
�        MUL     ay,fy,m2
�        STR     ax,[a,ptr]
�        STR     ay,[c,ptr]
�
�         SUBS    ctr2,ctr2,#1
�        BPL     lp2
�
�         SUBS    ctr1,ctr1,#1
�        BNE     lp1
�
�        LDMFD   R13!,{PC}^
�
�.sumft  STMFD   R13!,{R14}
�
�        ldr     tsad,fxas
�        ldr     dnad,axts
�        mov     tctr,#0
�
�.smlp2  mov     accm,#0
�         mov     blox,#blocks
�,        add     sptr,tsad,tctr,LSL#quan2
�
�#.smlp1  LDMIA   (sptr)!,{R0-R7}
�
�&        add     accm,accm,R0,ASR#2
�&        add     accm,accm,R1,ASR#2
�&        add     accm,accm,R2,ASR#2
�&        add     accm,accm,R3,ASR#2
�&        add     accm,accm,R4,ASR#2
�&        add     accm,accm,R5,ASR#2
�&        add     accm,accm,R6,ASR#2
�&        add     accm,accm,R7,ASR#2
�
�         subs    blox,blox,#1
�        bpl     smlp1
�
�"        STMIA   (dnad)!,{accm}
�
�         add     tctr,tctr,#1
�         cmp     tctr,#tables
�        blt     smlp2
�
�        LDMFD   R13!,{PC}^
�
�.deltav STMFD   R13!,{R14}
�
�        LDR     R8,axts
�        LDR     R9,vxts
�
�*        MOV     R10,#((blocks+1)<<2)-1
�
�.dvlp1  LDMIA   R8!,{R0-R3}
�        LDMIA   R9,{R4-R7}
�
�        ADD     R0,R0,R4
�        ADD     R1,R1,R5
�        ADD     R2,R2,R6
�        ADD     R3,R3,R7
�
�        STMIA   R9!,{R0-R3}
�
�        SUBS    R10,R10,#1
�        BPL     dvlp1
�
�.deltax LDR     R8,vxts
�        LDR     R9,xtas
�
�*        MOV     R10,#((blocks+1)<<2)-1
�
�.dxlp1  LDMIA   R8,{R4-R7}
�        LDMIA   R9,{R0-R3}
�
�        ADD     R0,R0,R4
�        ADD     R1,R1,R5
�        ADD     R2,R2,R6
�        ADD     R3,R3,R7
�            
�        cmn     r4,#Maxvel
        mvnle   r4,#0
        cmn     r5,#Maxvel
        mvnle   r5,#0
        cmn     r6,#Maxvel
        mvnle   r6,#0
        cmn     r7,#Maxvel
        mvnle   r7,#0
        
        cmp     r4,#Maxvel
	        movge   r4,#0

        cmp     r5,#Maxvel
        movge   r5,#0
        cmp     r6,#Maxvel

        movge   r6,#0
        cmp     r7,#Maxvel
        movge   r7,#0

        stmIA   R9!,{R0-R3}
        STMIA   R8!,{R4-R7}

        SUBS    R10,R10,#1
        BPL     dxlp1

        LDMFD   R13!,{PC}^

.plot   STMFD   R13!,{R14}

        MOV     R0,#19
        SWI     "OS_Byte"

        LDR     R12,scnst
        MOV     R0,#0
         MOV     R1,#0
!        MOV     R2,#0
"        MOV     R3,#0
#        MOV     R4,#0
$        MOV     R5,#0
%        MOV     R6,#0
&        MOV     R7,#0
'        MOV     R8,#0
(        MOV     R9,#0
)        MOV     R10,#0
*        MOV     R11,#0
+
,        MOV     R14,#127
-
.!.clslp  STMIA   R12!,{R0-R11}
/!        STMIA   R12!,{R0-R11}
0!        STMIA   R12!,{R0-R11}
1         STMIA   R12!,{R0-R3}
2
3        SUBS    R14,R14,#1
4        BPL     clslp
5
6        MOV     R0,#4
7        MOV     R5,#quant
8        LDR     R3,xtas
9        LDR     R4,ytas
:
;.pllp   LDMIA   R3!,{R1}
<        LDMIA   R4!,{R2}
=
>         MOV     R1,R1,LSR#22
?         MOV     R2,R2,LSR#22
@
A        SWI     "OS_Plot"
B        SWI     &18F
C
D        SUBS    R5,R5,#1
E        BNE     pllp
F
G        LDMFD   R13!,{PC}^
H
I.scnst  EQUD    !&10C0
J
K]
L�
M�
N
O��init_tables
P(�T%=(quant<<2)*5 � (quant<<2)*7-1 �4
Q
data!T%=�
R�
S(�T%=(quant<<2)*3 � (quant<<2)*5-1 �4
Tdata!T%=�(1<<22)-�(1<<22)
U�
V�T%=0 � (quant<<2)*3-1 �4
Wdata!T%=�(1<<14)+(1<<13)
X�
Y(�T%=0 � ((1<<quan2)*(quant<<1))-1 �4
Ztable!T%=0
[�
\�
]
^ݤexp2(A%)
_� C%
`C%=0
a� C%+=1
b� (1<<C%)>=A%
c=C%
d
e��error
f�4
g�$;" at line ";�(�/10)
hL�OSCLI("SAVE RAM:$.PLOPPY "+STR$~table+"+"+STR$~((1<<quan2)*(quant<<1)))
i�
�
00000000  0d 00 01 33 f4 20 4d 75  74 75 61 6c 6c 79 20 61  |...3. Mutually a|
00000010  74 74 72 61 63 74 69 76  65 20 70 61 72 74 69 63  |ttractive partic|
00000020  6c 65 73 20 74 68 72 6f  75 67 68 20 67 72 61 76  |les through grav|
00000030  69 74 79 0d 00 02 1b f4  20 28 63 29 20 52 20 47  |ity..... (c) R G|
00000040  65 6c 65 69 74 20 41 70  72 20 31 39 39 33 0d 00  |eleit Apr 1993..|
00000050  03 04 0d 00 04 16 ee 85  e7 ac a6 2d 31 20 f2 65  |...........-1 .e|
00000060  72 72 6f 72 20 8b 20 f9  0d 00 05 04 0d 00 06 06  |rror . .........|
00000070  eb 30 0d 00 07 05 87 0d  00 08 04 0d 00 09 0c 73  |.0.............s|
00000080  74 61 72 73 3d 32 34 0d  00 0a 0d 47 3d 28 31 3c  |tars=24....G=(1<|
00000090  3c 33 30 29 0d 00 0b 12  4d 61 78 76 65 6c 3d 28  |<30)....Maxvel=(|
000000a0  31 3c 3c 32 35 29 0d 00  0c 04 0d 00 0d 0d f2 61  |1<<25).........a|
000000b0  73 73 65 6d 62 6c 65 0d  00 0e 10 f2 69 6e 69 74  |ssemble.....init|
000000c0  5f 74 61 62 6c 65 73 0d  00 0f 06 ef 35 0d 00 10  |_tables.....5...|
000000d0  08 d6 72 75 6e 0d 00 11  05 e0 0d 00 12 04 0d 00  |..run...........|
000000e0  13 0e dd f2 61 73 73 65  6d 62 6c 65 0d 00 14 04  |....assemble....|
000000f0  0d 00 15 15 71 75 61 6e  74 3d 28 73 74 61 72 73  |....quant=(stars|
00000100  20 80 2d 38 29 0d 00 16  18 71 75 61 6e 32 3d a4  | .-8)....quan2=.|
00000110  65 78 70 32 28 73 74 61  72 73 29 2b 32 0d 00 17  |exp2(stars)+2...|
00000120  17 62 6c 6f 63 6b 73 3d  28 73 74 61 72 73 20 81  |.blocks=(stars .|
00000130  38 29 2d 31 0d 00 18 15  74 61 62 6c 65 73 3d 28  |8)-1....tables=(|
00000140  71 75 61 6e 74 3c 3c 31  29 0d 00 19 04 0d 00 1a  |quant<<1).......|
00000150  0f de 20 63 6f 64 65 20  31 30 30 30 0d 00 1b 37  |.. code 1000...7|
00000160  de 20 64 61 74 61 20 28  28 71 75 61 6e 74 3c 3c  |. data ((quant<<|
00000170  32 29 2a 37 29 2c 74 61  62 6c 65 20 28 28 31 3c  |2)*7),table ((1<|
00000180  3c 71 75 61 6e 32 29 2a  28 71 75 61 6e 74 3c 3c  |<quan2)*(quant<<|
00000190  31 29 29 0d 00 1c 04 0d  00 1d 08 78 31 3d 30 0d  |1))........x1=0.|
000001a0  00 1e 08 79 31 3d 31 0d  00 1f 08 6d 31 3d 32 0d  |...y1=1....m1=2.|
000001b0  00 20 08 78 32 3d 33 0d  00 21 08 79 32 3d 34 0d  |. .x2=3..!.y2=4.|
000001c0  00 22 08 6d 32 3d 35 0d  00 23 08 64 32 3d 36 0d  |.".m2=5..#.d2=6.|
000001d0  00 24 0a 63 74 72 31 3d  37 0d 00 25 0a 63 74 72  |.$.ctr1=7..%.ctr|
000001e0  32 3d 38 0d 00 26 04 0d  00 27 09 66 78 3d 78 32  |2=8..&...'.fx=x2|
000001f0  0d 00 28 09 66 79 3d 79  32 0d 00 29 0a 70 74 72  |..(.fy=y2..).ptr|
00000200  3d 31 34 0d 00 2a 04 0d  00 2b 07 78 3d 39 0d 00  |=14..*...+.x=9..|
00000210  2c 08 61 3d 31 30 0d 00  2d 08 63 3d 31 31 0d 00  |,.a=10..-.c=11..|
00000220  2e 0a 73 75 6d 3d 31 32  0d 00 2f 04 0d 00 30 0c  |..sum=12../...0.|
00000230  61 6e 73 77 3d 70 74 72  0d 00 31 0a 64 69 76 64  |answ=ptr..1.divd|
00000240  3d 78 0d 00 32 0a 76 69  73 72 3d 61 0d 00 33 0a  |=x..2.visr=a..3.|
00000250  6d 61 73 6b 3d 63 0d 00  34 0c 73 69 67 6e 3d 73  |mask=c..4.sign=s|
00000260  75 6d 0d 00 35 04 0d 00  36 08 61 78 3d 78 0d 00  |um..5...6.ax=x..|
00000270  37 0a 61 79 3d 73 75 6d  0d 00 38 04 0d 00 39 0a  |7.ay=sum..8...9.|
00000280  61 63 63 6d 3d 38 0d 00  3a 0a 74 73 61 64 3d 39  |accm=8..:.tsad=9|
00000290  0d 00 3b 0b 62 6c 6f 78  3d 31 30 0d 00 3c 0b 64  |..;.blox=10..<.d|
000002a0  6e 61 64 3d 31 31 0d 00  3d 0b 73 70 74 72 3d 31  |nad=11..=.sptr=1|
000002b0  32 0d 00 3e 0b 74 63 74  72 3d 31 34 0d 00 3f 04  |2..>.tctr=14..?.|
000002c0  0d 00 40 0e e3 54 25 3d  30 b8 32 20 88 32 0d 00  |..@..T%=0.2 .2..|
000002d0  41 0b 50 25 3d 63 6f 64  65 0d 00 42 0a 5b 4f 50  |A.P%=code..B.[OP|
000002e0  54 54 25 0d 00 43 18 2e  6d 74 61 73 20 20 20 45  |TT%..C..mtas   E|
000002f0  51 55 44 20 20 20 20 64  61 74 61 0d 00 44 23 2e  |QUD    data..D#.|
00000300  61 78 74 73 20 20 20 45  51 55 44 20 20 20 20 64  |axts   EQUD    d|
00000310  61 74 61 2b 28 71 75 61  6e 74 3c 3c 32 29 0d 00  |ata+(quant<<2)..|
00000320  45 25 2e 61 79 74 73 20  20 20 45 51 55 44 20 20  |E%.ayts   EQUD  |
00000330  20 20 64 61 74 61 2b 28  71 75 61 6e 74 3c 3c 32  |  data+(quant<<2|
00000340  29 2a 32 0d 00 46 25 2e  76 78 74 73 20 20 20 45  |)*2..F%.vxts   E|
00000350  51 55 44 20 20 20 20 64  61 74 61 2b 28 71 75 61  |QUD    data+(qua|
00000360  6e 74 3c 3c 32 29 2a 33  0d 00 47 25 2e 76 79 74  |nt<<2)*3..G%.vyt|
00000370  73 20 20 20 45 51 55 44  20 20 20 20 64 61 74 61  |s   EQUD    data|
00000380  2b 28 71 75 61 6e 74 3c  3c 32 29 2a 34 0d 00 48  |+(quant<<2)*4..H|
00000390  25 2e 78 74 61 73 20 20  20 45 51 55 44 20 20 20  |%.xtas   EQUD   |
000003a0  20 64 61 74 61 2b 28 71  75 61 6e 74 3c 3c 32 29  | data+(quant<<2)|
000003b0  2a 35 0d 00 49 25 2e 79  74 61 73 20 20 20 45 51  |*5..I%.ytas   EQ|
000003c0  55 44 20 20 20 20 64 61  74 61 2b 28 71 75 61 6e  |UD    data+(quan|
000003d0  74 3c 3c 32 29 2a 36 0d  00 4a 04 0d 00 4b 19 2e  |t<<2)*6..J...K..|
000003e0  66 78 61 73 20 20 20 45  51 55 44 20 20 20 20 74  |fxas   EQUD    t|
000003f0  61 62 6c 65 0d 00 4c 2a  2e 66 79 61 73 20 20 20  |able..L*.fyas   |
00000400  45 51 55 44 20 20 20 20  74 61 62 6c 65 2b 28 31  |EQUD    table+(1|
00000410  3c 3c 71 75 61 6e 32 29  2a 71 75 61 6e 74 0d 00  |<<quan2)*quant..|
00000420  4d 04 0d 00 4e 1e 2e 72  75 6e 20 20 20 20 53 54  |M...N..run    ST|
00000430  4d 46 44 20 20 20 52 31  33 21 2c 7b 52 31 34 7d  |MFD   R13!,{R14}|
00000440  0d 00 4f 04 0d 00 50 1a  2e 74 6c 70 20 20 20 20  |..O...P..tlp    |
00000450  42 4c 20 20 20 20 20 20  6d 61 6b 65 66 74 0d 00  |BL      makeft..|
00000460  51 19 20 20 20 20 20 20  20 20 42 4c 20 20 20 20  |Q.        BL    |
00000470  20 20 73 75 6d 66 74 0d  00 52 1a 20 20 20 20 20  |  sumft..R.     |
00000480  20 20 20 42 4c 20 20 20  20 20 20 64 65 6c 74 61  |   BL      delta|
00000490  76 0d 00 53 18 20 20 20  20 20 20 20 20 42 4c 20  |v..S.        BL |
000004a0  20 20 20 20 20 70 6c 6f  74 0d 00 54 04 0d 00 55  |     plot..T...U|
000004b0  28 20 20 20 20 20 20 20  20 53 57 49 20 20 20 20  |(        SWI    |
000004c0  20 22 4f 53 5f 52 65 61  64 45 73 63 61 70 65 53  | "OS_ReadEscapeS|
000004d0  74 61 74 65 22 0d 00 56  17 20 20 20 20 20 20 20  |tate"..V.       |
000004e0  20 42 43 43 20 20 20 20  20 74 6c 70 0d 00 57 04  | BCC     tlp..W.|
000004f0  0d 00 58 1e 20 20 20 20  20 20 20 20 4c 44 4d 46  |..X.        LDMF|
00000500  44 20 20 20 52 31 33 21  2c 7b 50 43 7d 5e 0d 00  |D   R13!,{PC}^..|
00000510  59 04 0d 00 5a 1e 2e 6d  61 6b 65 66 74 20 53 54  |Y...Z..makeft ST|
00000520  4d 46 44 20 20 20 52 31  33 21 2c 7b 52 31 34 7d  |MFD   R13!,{R14}|
00000530  0d 00 5b 04 0d 00 5c 21  20 20 20 20 20 20 20 20  |..[...\!        |
00000540  4d 4f 56 20 20 20 20 20  63 74 72 31 2c 23 71 75  |MOV     ctr1,#qu|
00000550  61 6e 74 2d 31 0d 00 5d  04 0d 00 5e 1b 2e 6c 70  |ant-1..]...^..lp|
00000560  31 20 20 20 20 4c 44 52  20 20 20 20 20 78 31 2c  |1    LDR     x1,|
00000570  78 74 61 73 0d 00 5f 1b  20 20 20 20 20 20 20 20  |xtas.._.        |
00000580  4c 44 52 20 20 20 20 20  79 31 2c 79 74 61 73 0d  |LDR     y1,ytas.|
00000590  00 60 1b 20 20 20 20 20  20 20 20 4c 44 52 20 20  |.`.        LDR  |
000005a0  20 20 20 6d 31 2c 6d 74  61 73 0d 00 61 04 0d 00  |   m1,mtas..a...|
000005b0  62 26 20 20 20 20 20 20  20 20 4c 44 52 20 20 20  |b&        LDR   |
000005c0  20 20 78 31 2c 5b 78 31  2c 63 74 72 31 2c 4c 53  |  x1,[x1,ctr1,LS|
000005d0  4c 23 32 5d 0d 00 63 26  20 20 20 20 20 20 20 20  |L#2]..c&        |
000005e0  4c 44 52 20 20 20 20 20  79 31 2c 5b 79 31 2c 63  |LDR     y1,[y1,c|
000005f0  74 72 31 2c 4c 53 4c 23  32 5d 0d 00 64 26 20 20  |tr1,LSL#2]..d&  |
00000600  20 20 20 20 20 20 4c 44  52 20 20 20 20 20 6d 31  |      LDR     m1|
00000610  2c 5b 6d 31 2c 63 74 72  31 2c 4c 53 4c 23 32 5d  |,[m1,ctr1,LSL#2]|
00000620  0d 00 65 04 0d 00 66 20  20 20 20 20 20 20 20 20  |..e...f         |
00000630  53 55 42 20 20 20 20 20  63 74 72 32 2c 63 74 72  |SUB     ctr2,ctr|
00000640  31 2c 23 31 0d 00 67 04  0d 00 68 1b 2e 6c 70 32  |1,#1..g...h..lp2|
00000650  20 20 20 20 4c 44 52 20  20 20 20 20 78 32 2c 78  |    LDR     x2,x|
00000660  74 61 73 0d 00 69 1b 20  20 20 20 20 20 20 20 4c  |tas..i.        L|
00000670  44 52 20 20 20 20 20 79  32 2c 79 74 61 73 0d 00  |DR     y2,ytas..|
00000680  6a 1b 20 20 20 20 20 20  20 20 4c 44 52 20 20 20  |j.        LDR   |
00000690  20 20 6d 32 2c 6d 74 61  73 0d 00 6b 04 0d 00 6c  |  m2,mtas..k...l|
000006a0  26 20 20 20 20 20 20 20  20 4c 44 52 20 20 20 20  |&        LDR    |
000006b0  20 78 32 2c 5b 78 32 2c  63 74 72 32 2c 4c 53 4c  | x2,[x2,ctr2,LSL|
000006c0  23 32 5d 0d 00 6d 26 20  20 20 20 20 20 20 20 4c  |#2]..m&        L|
000006d0  44 52 20 20 20 20 20 79  32 2c 5b 79 32 2c 63 74  |DR     y2,[y2,ct|
000006e0  72 32 2c 4c 53 4c 23 32  5d 0d 00 6e 26 20 20 20  |r2,LSL#2]..n&   |
000006f0  20 20 20 20 20 4c 44 52  20 20 20 20 20 6d 32 2c  |     LDR     m2,|
00000700  5b 6d 32 2c 63 74 72 32  2c 4c 53 4c 23 32 5d 0d  |[m2,ctr2,LSL#2].|
00000710  00 6f 04 0d 00 70 1c 20  20 20 20 20 20 20 20 53  |.o...p.        S|
00000720  55 42 20 20 20 20 20 78  32 2c 78 31 2c 78 32 0d  |UB     x2,x1,x2.|
00000730  00 71 1c 20 20 20 20 20  20 20 20 53 55 42 20 20  |.q.        SUB  |
00000740  20 20 20 79 32 2c 79 31  2c 79 32 0d 00 72 04 0d  |   y2,y1,y2..r..|
00000750  00 73 1f 20 20 20 20 20  20 20 20 4d 4f 56 20 20  |.s.        MOV  |
00000760  20 20 20 78 2c 78 32 2c  61 73 72 23 31 37 0d 00  |   x,x2,asr#17..|
00000770  74 1f 20 20 20 20 20 20  20 20 4d 4f 56 20 20 20  |t.        MOV   |
00000780  20 20 61 2c 79 32 2c 61  73 72 23 31 37 0d 00 75  |  a,y2,asr#17..u|
00000790  04 0d 00 76 1a 20 20 20  20 20 20 20 20 4d 55 4c  |...v.        MUL|
000007a0  20 20 20 20 20 64 32 2c  78 2c 78 0d 00 77 1d 20  |     d2,x,x..w. |
000007b0  20 20 20 20 20 20 20 4d  4c 41 20 20 20 20 20 64  |       MLA     d|
000007c0  32 2c 61 2c 61 2c 64 32  0d 00 78 20 20 20 20 20  |2,a,a,d2..x     |
000007d0  20 20 20 20 4d 4f 56 20  20 20 20 20 64 32 2c 64  |    MOV     d2,d|
000007e0  32 2c 61 73 72 23 31 36  0d 00 79 04 0d 00 7a 1b  |2,asr#16..y...z.|
000007f0  2e 64 69 76 20 20 20 20  4d 4f 56 20 20 20 20 20  |.div    MOV     |
00000800  64 69 76 64 2c 23 47 0d  00 7b 1b 20 20 20 20 20  |divd,#G..{.     |
00000810  20 20 20 4d 4f 56 53 20  20 20 20 76 69 73 72 2c  |   MOVS    visr,|
00000820  64 32 0d 00 7c 18 20 20  20 20 20 20 20 20 ec 51  |d2..|.        .Q|
00000830  20 20 20 61 6e 73 77 2c  23 30 0d 00 7d 19 20 20  |   answ,#0..}.  |
00000840  20 20 20 20 20 20 42 45  51 20 20 20 20 20 62 79  |      BEQ     by|
00000850  7a 65 72 0d 00 7e 04 0d  00 7f 20 20 20 20 20 20  |zer..~....      |
00000860  20 20 20 82 20 20 20 20  20 73 69 67 6e 2c 64 69  |   .     sign,di|
00000870  76 64 2c 76 69 73 72 0d  00 80 1b 20 20 20 20 20  |vd,visr....     |
00000880  20 20 20 43 4d 50 20 20  20 20 20 64 69 76 64 2c  |   CMP     divd,|
00000890  23 30 0d 00 81 20 20 20  20 20 20 20 20 20 52 53  |#0...         RS|
000008a0  42 4c 54 20 20 20 64 69  76 64 2c 64 69 76 64 2c  |BLT   divd,divd,|
000008b0  23 30 0d 00 82 1b 20 20  20 20 20 20 20 20 43 4d  |#0....        CM|
000008c0  50 20 20 20 20 20 76 69  73 72 2c 23 30 0d 00 83  |P     visr,#0...|
000008d0  20 20 20 20 20 20 20 20  20 52 53 42 4c 54 20 20  |         RSBLT  |
000008e0  20 76 69 73 72 2c 76 69  73 72 2c 23 30 0d 00 84  | visr,visr,#0...|
000008f0  04 0d 00 85 1b 20 20 20  20 20 20 20 20 4d 4f 56  |.....        MOV|
00000900  20 20 20 20 20 61 6e 73  77 2c 23 30 0d 00 86 1b  |     answ,#0....|
00000910  20 20 20 20 20 20 20 20  4d 4f 56 20 20 20 20 20  |        MOV     |
00000920  6d 61 73 6b 2c 23 31 0d  00 87 04 0d 00 88 23 2e  |mask,#1.......#.|
00000930  64 6c 70 31 20 20 20 4d  4f 56 20 20 20 20 20 76  |dlp1   MOV     v|
00000940  69 73 72 2c 76 69 73 72  2c 4c 53 4c 23 31 0d 00  |isr,visr,LSL#1..|
00000950  89 23 20 20 20 20 20 20  20 20 4d 4f 56 20 20 20  |.#        MOV   |
00000960  20 20 6d 61 73 6b 2c 6d  61 73 6b 2c 4c 53 4c 23  |  mask,mask,LSL#|
00000970  31 0d 00 8a 1d 20 20 20  20 20 20 20 20 43 4d 50  |1....        CMP|
00000980  20 20 20 20 20 76 69 73  72 2c 64 69 76 64 0d 00  |     visr,divd..|
00000990  8b 18 20 20 20 20 20 20  20 20 42 4c 53 20 20 20  |..        BLS   |
000009a0  20 20 64 6c 70 31 0d 00  8c 04 0d 00 8d 23 20 20  |  dlp1.......#  |
000009b0  20 20 20 20 20 20 4d 4f  56 20 20 20 20 20 76 69  |      MOV     vi|
000009c0  73 72 2c 76 69 73 72 2c  4c 53 52 23 31 0d 00 8e  |sr,visr,LSR#1...|
000009d0  23 20 20 20 20 20 20 20  20 4d 4f 56 20 20 20 20  |#        MOV    |
000009e0  20 6d 61 73 6b 2c 6d 61  73 6b 2c 4c 53 52 23 31  | mask,mask,LSR#1|
000009f0  0d 00 8f 04 0d 00 90 1d  2e 64 6c 70 32 20 20 20  |.........dlp2   |
00000a00  43 4d 50 20 20 20 20 20  76 69 73 72 2c 64 69 76  |CMP     visr,div|
00000a10  64 0d 00 91 21 20 20 20  20 20 20 20 20 84 52 4c  |d...!        .RL|
00000a20  73 20 20 20 61 6e 73 77  2c 61 6e 73 77 2c 6d 61  |s   answ,answ,ma|
00000a30  73 6b 0d 00 92 22 20 20  20 20 20 20 20 20 53 55  |sk..."        SU|
00000a40  42 4c 73 20 20 20 64 69  76 64 2c 64 69 76 64 2c  |BLs   divd,divd,|
00000a50  76 69 73 72 0d 00 93 23  20 20 20 20 20 20 20 20  |visr...#        |
00000a60  4d 4f 56 20 20 20 20 20  76 69 73 72 2c 76 69 73  |MOV     visr,vis|
00000a70  72 2c 4c 53 52 23 31 0d  00 94 23 20 20 20 20 20  |r,LSR#1...#     |
00000a80  20 20 20 4d 4f 56 53 20  20 20 20 6d 61 73 6b 2c  |   MOVS    mask,|
00000a90  6d 61 73 6b 2c 4c 53 52  23 31 0d 00 95 18 20 20  |mask,LSR#1....  |
00000aa0  20 20 20 20 20 20 42 4e  45 20 20 20 20 20 64 6c  |      BNE     dl|
00000ab0  70 32 0d 00 96 04 0d 00  97 1b 20 20 20 20 20 20  |p2........      |
00000ac0  20 20 43 4d 50 20 20 20  20 20 73 69 67 6e 2c 23  |  CMP     sign,#|
00000ad0  30 0d 00 98 20 20 20 20  20 20 20 20 20 52 53 42  |0...         RSB|
00000ae0  4c 54 20 20 20 61 6e 73  77 2c 61 6e 73 77 2c 23  |LT   answ,answ,#|
00000af0  30 0d 00 99 04 0d 00 9a  20 2e 62 79 7a 65 72 20  |0....... .byzer |
00000b00  20 4d 4f 56 20 20 20 20  20 78 32 2c 78 32 2c 61  | MOV     x2,x2,a|
00000b10  73 72 23 31 36 0d 00 9b  20 20 20 20 20 20 20 20  |sr#16...        |
00000b20  20 4d 4f 56 20 20 20 20  20 79 32 2c 79 32 2c 61  | MOV     y2,y2,a|
00000b30  73 72 23 31 36 0d 00 9c  24 20 20 20 20 20 20 20  |sr#16...$       |
00000b40  20 4d 4f 56 20 20 20 20  20 61 6e 73 77 2c 61 6e  | MOV     answ,an|
00000b50  73 77 2c 61 73 72 23 31  36 0d 00 9d 1e 20 20 20  |sw,asr#16....   |
00000b60  20 20 20 20 20 4d 55 4c  20 20 20 20 20 66 78 2c  |     MUL     fx,|
00000b70  61 6e 73 77 2c 78 32 0d  00 9e 1e 20 20 20 20 20  |answ,x2....     |
00000b80  20 20 20 4d 55 4c 20 20  20 20 20 66 79 2c 61 6e  |   MUL     fy,an|
00000b90  73 77 2c 79 32 0d 00 9f  04 0d 00 a0 1a 20 20 20  |sw,y2........   |
00000ba0  20 20 20 20 20 4c 44 52  20 20 20 20 20 61 2c 66  |     LDR     a,f|
00000bb0  78 61 73 0d 00 a1 1a 20  20 20 20 20 20 20 20 4c  |xas....        L|
00000bc0  44 52 20 20 20 20 20 63  2c 66 79 61 73 0d 00 a2  |DR     c,fyas...|
00000bd0  04 0d 00 a3 20 20 20 20  20 20 20 20 20 4d 4f 56  |....         MOV|
00000be0  20 20 20 20 20 66 78 2c  66 78 2c 61 73 72 23 31  |     fx,fx,asr#1|
00000bf0  36 0d 00 a4 20 20 20 20  20 20 20 20 20 4d 4f 56  |6...         MOV|
00000c00  20 20 20 20 20 66 79 2c  66 79 2c 61 73 72 23 31  |     fy,fy,asr#1|
00000c10  36 0d 00 a5 04 0d 00 a6  26 20 20 20 20 20 20 20  |6.......&       |
00000c20  20 4d 4f 56 20 20 20 20  20 70 74 72 2c 63 74 72  | MOV     ptr,ctr|
00000c30  32 2c 4c 53 4c 23 71 75  61 6e 32 0d 00 a7 26 20  |2,LSL#quan2...& |
00000c40  20 20 20 20 20 20 20 41  44 44 20 20 20 20 20 70  |       ADD     p|
00000c50  74 72 2c 70 74 72 2c 63  74 72 31 2c 4c 53 4c 23  |tr,ptr,ctr1,LSL#|
00000c60  32 0d 00 a8 1c 20 20 20  20 20 20 20 20 4d 55 4c  |2....        MUL|
00000c70  20 20 20 20 20 61 78 2c  66 78 2c 6d 31 0d 00 a9  |     ax,fx,m1...|
00000c80  1c 20 20 20 20 20 20 20  20 4d 55 4c 20 20 20 20  |.        MUL    |
00000c90  20 61 79 2c 66 79 2c 6d  31 0d 00 aa 1e 20 20 20  | ay,fy,m1....   |
00000ca0  20 20 20 20 20 53 54 52  20 20 20 20 20 61 78 2c  |     STR     ax,|
00000cb0  5b 61 2c 70 74 72 5d 0d  00 ab 1e 20 20 20 20 20  |[a,ptr]....     |
00000cc0  20 20 20 53 54 52 20 20  20 20 20 61 79 2c 5b 63  |   STR     ay,[c|
00000cd0  2c 70 74 72 5d 0d 00 ac  04 0d 00 ad 26 20 20 20  |,ptr].......&   |
00000ce0  20 20 20 20 20 4d 4f 56  20 20 20 20 20 70 74 72  |     MOV     ptr|
00000cf0  2c 63 74 72 31 2c 4c 53  4c 23 71 75 61 6e 32 0d  |,ctr1,LSL#quan2.|
00000d00  00 ae 26 20 20 20 20 20  20 20 20 41 44 44 20 20  |..&        ADD  |
00000d10  20 20 20 70 74 72 2c 70  74 72 2c 63 74 72 32 2c  |   ptr,ptr,ctr2,|
00000d20  4c 53 4c 23 32 0d 00 af  1c 20 20 20 20 20 20 20  |LSL#2....       |
00000d30  20 52 53 42 20 20 20 20  20 66 78 2c 66 78 2c 23  | RSB     fx,fx,#|
00000d40  30 0d 00 b0 1c 20 20 20  20 20 20 20 20 52 53 42  |0....        RSB|
00000d50  20 20 20 20 20 66 79 2c  66 79 2c 23 30 0d 00 b1  |     fy,fy,#0...|
00000d60  1c 20 20 20 20 20 20 20  20 4d 55 4c 20 20 20 20  |.        MUL    |
00000d70  20 61 78 2c 66 78 2c 6d  32 0d 00 b2 1c 20 20 20  | ax,fx,m2....   |
00000d80  20 20 20 20 20 4d 55 4c  20 20 20 20 20 61 79 2c  |     MUL     ay,|
00000d90  66 79 2c 6d 32 0d 00 b3  1e 20 20 20 20 20 20 20  |fy,m2....       |
00000da0  20 53 54 52 20 20 20 20  20 61 78 2c 5b 61 2c 70  | STR     ax,[a,p|
00000db0  74 72 5d 0d 00 b4 1e 20  20 20 20 20 20 20 20 53  |tr]....        S|
00000dc0  54 52 20 20 20 20 20 61  79 2c 5b 63 2c 70 74 72  |TR     ay,[c,ptr|
00000dd0  5d 0d 00 b5 04 0d 00 b6  20 20 20 20 20 20 20 20  |].......        |
00000de0  20 53 55 42 53 20 20 20  20 63 74 72 32 2c 63 74  | SUBS    ctr2,ct|
00000df0  72 32 2c 23 31 0d 00 b7  17 20 20 20 20 20 20 20  |r2,#1....       |
00000e00  20 42 50 4c 20 20 20 20  20 6c 70 32 0d 00 b8 04  | BPL     lp2....|
00000e10  0d 00 b9 20 20 20 20 20  20 20 20 20 53 55 42 53  |...         SUBS|
00000e20  20 20 20 20 63 74 72 31  2c 63 74 72 31 2c 23 31  |    ctr1,ctr1,#1|
00000e30  0d 00 ba 17 20 20 20 20  20 20 20 20 42 4e 45 20  |....        BNE |
00000e40  20 20 20 20 6c 70 31 0d  00 bb 04 0d 00 bc 1e 20  |    lp1........ |
00000e50  20 20 20 20 20 20 20 4c  44 4d 46 44 20 20 20 52  |       LDMFD   R|
00000e60  31 33 21 2c 7b 50 43 7d  5e 0d 00 bd 04 0d 00 be  |13!,{PC}^.......|
00000e70  1e 2e 73 75 6d 66 74 20  20 53 54 4d 46 44 20 20  |..sumft  STMFD  |
00000e80  20 52 31 33 21 2c 7b 52  31 34 7d 0d 00 bf 04 0d  | R13!,{R14}.....|
00000e90  00 c0 1d 20 20 20 20 20  20 20 20 6c 64 72 20 20  |...        ldr  |
00000ea0  20 20 20 74 73 61 64 2c  66 78 61 73 0d 00 c1 1d  |   tsad,fxas....|
00000eb0  20 20 20 20 20 20 20 20  6c 64 72 20 20 20 20 20  |        ldr     |
00000ec0  64 6e 61 64 2c 61 78 74  73 0d 00 c2 1b 20 20 20  |dnad,axts....   |
00000ed0  20 20 20 20 20 6d 6f 76  20 20 20 20 20 74 63 74  |     mov     tct|
00000ee0  72 2c 23 30 0d 00 c3 04  0d 00 c4 1b 2e 73 6d 6c  |r,#0.........sml|
00000ef0  70 32 20 20 6d 6f 76 20  20 20 20 20 61 63 63 6d  |p2  mov     accm|
00000f00  2c 23 30 0d 00 c5 20 20  20 20 20 20 20 20 20 6d  |,#0...         m|
00000f10  6f 76 20 20 20 20 20 62  6c 6f 78 2c 23 62 6c 6f  |ov     blox,#blo|
00000f20  63 6b 73 0d 00 c6 2c 20  20 20 20 20 20 20 20 61  |cks...,        a|
00000f30  64 64 20 20 20 20 20 73  70 74 72 2c 74 73 61 64  |dd     sptr,tsad|
00000f40  2c 74 63 74 72 2c 4c 53  4c 23 71 75 61 6e 32 0d  |,tctr,LSL#quan2.|
00000f50  00 c7 04 0d 00 c8 23 2e  73 6d 6c 70 31 20 20 4c  |......#.smlp1  L|
00000f60  44 4d 49 41 20 20 20 28  73 70 74 72 29 21 2c 7b  |DMIA   (sptr)!,{|
00000f70  52 30 2d 52 37 7d 0d 00  c9 04 0d 00 ca 26 20 20  |R0-R7}.......&  |
00000f80  20 20 20 20 20 20 61 64  64 20 20 20 20 20 61 63  |      add     ac|
00000f90  63 6d 2c 61 63 63 6d 2c  52 30 2c 41 53 52 23 32  |cm,accm,R0,ASR#2|
00000fa0  0d 00 cb 26 20 20 20 20  20 20 20 20 61 64 64 20  |...&        add |
00000fb0  20 20 20 20 61 63 63 6d  2c 61 63 63 6d 2c 52 31  |    accm,accm,R1|
00000fc0  2c 41 53 52 23 32 0d 00  cc 26 20 20 20 20 20 20  |,ASR#2...&      |
00000fd0  20 20 61 64 64 20 20 20  20 20 61 63 63 6d 2c 61  |  add     accm,a|
00000fe0  63 63 6d 2c 52 32 2c 41  53 52 23 32 0d 00 cd 26  |ccm,R2,ASR#2...&|
00000ff0  20 20 20 20 20 20 20 20  61 64 64 20 20 20 20 20  |        add     |
00001000  61 63 63 6d 2c 61 63 63  6d 2c 52 33 2c 41 53 52  |accm,accm,R3,ASR|
00001010  23 32 0d 00 ce 26 20 20  20 20 20 20 20 20 61 64  |#2...&        ad|
00001020  64 20 20 20 20 20 61 63  63 6d 2c 61 63 63 6d 2c  |d     accm,accm,|
00001030  52 34 2c 41 53 52 23 32  0d 00 cf 26 20 20 20 20  |R4,ASR#2...&    |
00001040  20 20 20 20 61 64 64 20  20 20 20 20 61 63 63 6d  |    add     accm|
00001050  2c 61 63 63 6d 2c 52 35  2c 41 53 52 23 32 0d 00  |,accm,R5,ASR#2..|
00001060  d0 26 20 20 20 20 20 20  20 20 61 64 64 20 20 20  |.&        add   |
00001070  20 20 61 63 63 6d 2c 61  63 63 6d 2c 52 36 2c 41  |  accm,accm,R6,A|
00001080  53 52 23 32 0d 00 d1 26  20 20 20 20 20 20 20 20  |SR#2...&        |
00001090  61 64 64 20 20 20 20 20  61 63 63 6d 2c 61 63 63  |add     accm,acc|
000010a0  6d 2c 52 37 2c 41 53 52  23 32 0d 00 d2 04 0d 00  |m,R7,ASR#2......|
000010b0  d3 20 20 20 20 20 20 20  20 20 73 75 62 73 20 20  |.         subs  |
000010c0  20 20 62 6c 6f 78 2c 62  6c 6f 78 2c 23 31 0d 00  |  blox,blox,#1..|
000010d0  d4 19 20 20 20 20 20 20  20 20 62 70 6c 20 20 20  |..        bpl   |
000010e0  20 20 73 6d 6c 70 31 0d  00 d5 04 0d 00 d6 22 20  |  smlp1......." |
000010f0  20 20 20 20 20 20 20 53  54 4d 49 41 20 20 20 28  |       STMIA   (|
00001100  64 6e 61 64 29 21 2c 7b  61 63 63 6d 7d 0d 00 d7  |dnad)!,{accm}...|
00001110  04 0d 00 d8 20 20 20 20  20 20 20 20 20 61 64 64  |....         add|
00001120  20 20 20 20 20 74 63 74  72 2c 74 63 74 72 2c 23  |     tctr,tctr,#|
00001130  31 0d 00 d9 20 20 20 20  20 20 20 20 20 63 6d 70  |1...         cmp|
00001140  20 20 20 20 20 74 63 74  72 2c 23 74 61 62 6c 65  |     tctr,#table|
00001150  73 0d 00 da 19 20 20 20  20 20 20 20 20 62 6c 74  |s....        blt|
00001160  20 20 20 20 20 73 6d 6c  70 32 0d 00 db 04 0d 00  |     smlp2......|
00001170  dc 1e 20 20 20 20 20 20  20 20 4c 44 4d 46 44 20  |..        LDMFD |
00001180  20 20 52 31 33 21 2c 7b  50 43 7d 5e 0d 00 dd 04  |  R13!,{PC}^....|
00001190  0d 00 de 1e 2e 64 65 6c  74 61 76 20 53 54 4d 46  |.....deltav STMF|
000011a0  44 20 20 20 52 31 33 21  2c 7b 52 31 34 7d 0d 00  |D   R13!,{R14}..|
000011b0  df 04 0d 00 e0 1b 20 20  20 20 20 20 20 20 4c 44  |......        LD|
000011c0  52 20 20 20 20 20 52 38  2c 61 78 74 73 0d 00 e1  |R     R8,axts...|
000011d0  1b 20 20 20 20 20 20 20  20 4c 44 52 20 20 20 20  |.        LDR    |
000011e0  20 52 39 2c 76 78 74 73  0d 00 e2 04 0d 00 e3 2a  | R9,vxts.......*|
000011f0  20 20 20 20 20 20 20 20  4d 4f 56 20 20 20 20 20  |        MOV     |
00001200  52 31 30 2c 23 28 28 62  6c 6f 63 6b 73 2b 31 29  |R10,#((blocks+1)|
00001210  3c 3c 32 29 2d 31 0d 00  e4 04 0d 00 e5 1f 2e 64  |<<2)-1.........d|
00001220  76 6c 70 31 20 20 4c 44  4d 49 41 20 20 20 52 38  |vlp1  LDMIA   R8|
00001230  21 2c 7b 52 30 2d 52 33  7d 0d 00 e6 1e 20 20 20  |!,{R0-R3}....   |
00001240  20 20 20 20 20 4c 44 4d  49 41 20 20 20 52 39 2c  |     LDMIA   R9,|
00001250  7b 52 34 2d 52 37 7d 0d  00 e7 04 0d 00 e8 1c 20  |{R4-R7}........ |
00001260  20 20 20 20 20 20 20 41  44 44 20 20 20 20 20 52  |       ADD     R|
00001270  30 2c 52 30 2c 52 34 0d  00 e9 1c 20 20 20 20 20  |0,R0,R4....     |
00001280  20 20 20 41 44 44 20 20  20 20 20 52 31 2c 52 31  |   ADD     R1,R1|
00001290  2c 52 35 0d 00 ea 1c 20  20 20 20 20 20 20 20 41  |,R5....        A|
000012a0  44 44 20 20 20 20 20 52  32 2c 52 32 2c 52 36 0d  |DD     R2,R2,R6.|
000012b0  00 eb 1c 20 20 20 20 20  20 20 20 41 44 44 20 20  |...        ADD  |
000012c0  20 20 20 52 33 2c 52 33  2c 52 37 0d 00 ec 04 0d  |   R3,R3,R7.....|
000012d0  00 ed 1f 20 20 20 20 20  20 20 20 53 54 4d 49 41  |...        STMIA|
000012e0  20 20 20 52 39 21 2c 7b  52 30 2d 52 33 7d 0d 00  |   R9!,{R0-R3}..|
000012f0  ee 04 0d 00 ef 1e 20 20  20 20 20 20 20 20 53 55  |......        SU|
00001300  42 53 20 20 20 20 52 31  30 2c 52 31 30 2c 23 31  |BS    R10,R10,#1|
00001310  0d 00 f0 19 20 20 20 20  20 20 20 20 42 50 4c 20  |....        BPL |
00001320  20 20 20 20 64 76 6c 70  31 0d 00 f1 04 0d 00 f2  |    dvlp1.......|
00001330  1b 2e 64 65 6c 74 61 78  20 4c 44 52 20 20 20 20  |..deltax LDR    |
00001340  20 52 38 2c 76 78 74 73  0d 00 f3 1b 20 20 20 20  | R8,vxts....    |
00001350  20 20 20 20 4c 44 52 20  20 20 20 20 52 39 2c 78  |    LDR     R9,x|
00001360  74 61 73 0d 00 f4 04 0d  00 f5 2a 20 20 20 20 20  |tas.......*     |
00001370  20 20 20 4d 4f 56 20 20  20 20 20 52 31 30 2c 23  |   MOV     R10,#|
00001380  28 28 62 6c 6f 63 6b 73  2b 31 29 3c 3c 32 29 2d  |((blocks+1)<<2)-|
00001390  31 0d 00 f6 04 0d 00 f7  1e 2e 64 78 6c 70 31 20  |1.........dxlp1 |
000013a0  20 4c 44 4d 49 41 20 20  20 52 38 2c 7b 52 34 2d  | LDMIA   R8,{R4-|
000013b0  52 37 7d 0d 00 f8 1e 20  20 20 20 20 20 20 20 4c  |R7}....        L|
000013c0  44 4d 49 41 20 20 20 52  39 2c 7b 52 30 2d 52 33  |DMIA   R9,{R0-R3|
000013d0  7d 0d 00 f9 04 0d 00 fa  1c 20 20 20 20 20 20 20  |}........       |
000013e0  20 41 44 44 20 20 20 20  20 52 30 2c 52 30 2c 52  | ADD     R0,R0,R|
000013f0  34 0d 00 fb 1c 20 20 20  20 20 20 20 20 41 44 44  |4....        ADD|
00001400  20 20 20 20 20 52 31 2c  52 31 2c 52 35 0d 00 fc  |     R1,R1,R5...|
00001410  1c 20 20 20 20 20 20 20  20 41 44 44 20 20 20 20  |.        ADD    |
00001420  20 52 32 2c 52 32 2c 52  36 0d 00 fd 1c 20 20 20  | R2,R2,R6....   |
00001430  20 20 20 20 20 41 44 44  20 20 20 20 20 52 33 2c  |     ADD     R3,|
00001440  52 33 2c 52 37 0d 00 fe  10 20 20 20 20 20 20 20  |R3,R7....       |
00001450  20 20 20 20 20 0d 00 ff  1e 20 20 20 20 20 20 20  |     ....       |
00001460  20 63 6d 6e 20 20 20 20  20 72 34 2c 23 4d 61 78  | cmn     r4,#Max|
00001470  76 65 6c 0d 01 00 19 20  20 20 20 20 20 20 20 6d  |vel....        m|
00001480  76 6e 6c 65 20 20 20 72  34 2c 23 30 0d 01 01 1e  |vnle   r4,#0....|
00001490  20 20 20 20 20 20 20 20  63 6d 6e 20 20 20 20 20  |        cmn     |
000014a0  72 35 2c 23 4d 61 78 76  65 6c 0d 01 02 19 20 20  |r5,#Maxvel....  |
000014b0  20 20 20 20 20 20 6d 76  6e 6c 65 20 20 20 72 35  |      mvnle   r5|
000014c0  2c 23 30 0d 01 03 1e 20  20 20 20 20 20 20 20 63  |,#0....        c|
000014d0  6d 6e 20 20 20 20 20 72  36 2c 23 4d 61 78 76 65  |mn     r6,#Maxve|
000014e0  6c 0d 01 04 19 20 20 20  20 20 20 20 20 6d 76 6e  |l....        mvn|
000014f0  6c 65 20 20 20 72 36 2c  23 30 0d 01 05 1e 20 20  |le   r6,#0....  |
00001500  20 20 20 20 20 20 63 6d  6e 20 20 20 20 20 72 37  |      cmn     r7|
00001510  2c 23 4d 61 78 76 65 6c  0d 01 06 19 20 20 20 20  |,#Maxvel....    |
00001520  20 20 20 20 6d 76 6e 6c  65 20 20 20 72 37 2c 23  |    mvnle   r7,#|
00001530  30 0d 01 07 0c 20 20 20  20 20 20 20 20 0d 01 08  |0....        ...|
00001540  1e 20 20 20 20 20 20 20  20 63 6d 70 20 20 20 20  |.        cmp    |
00001550  20 72 34 2c 23 4d 61 78  76 65 6c 0d 01 09 19 20  | r4,#Maxvel.... |
00001560  20 20 20 20 20 20 20 6d  6f 76 67 65 20 20 20 72  |       movge   r|
00001570  34 2c 23 30 0d 01 0a 1e  20 20 20 20 20 20 20 20  |4,#0....        |
00001580  63 6d 70 20 20 20 20 20  72 35 2c 23 4d 61 78 76  |cmp     r5,#Maxv|
00001590  65 6c 0d 01 0b 19 20 20  20 20 20 20 20 20 6d 6f  |el....        mo|
000015a0  76 67 65 20 20 20 72 35  2c 23 30 0d 01 0c 1e 20  |vge   r5,#0.... |
000015b0  20 20 20 20 20 20 20 63  6d 70 20 20 20 20 20 72  |       cmp     r|
000015c0  36 2c 23 4d 61 78 76 65  6c 0d 01 0d 19 20 20 20  |6,#Maxvel....   |
000015d0  20 20 20 20 20 6d 6f 76  67 65 20 20 20 72 36 2c  |     movge   r6,|
000015e0  23 30 0d 01 0e 1e 20 20  20 20 20 20 20 20 63 6d  |#0....        cm|
000015f0  70 20 20 20 20 20 72 37  2c 23 4d 61 78 76 65 6c  |p     r7,#Maxvel|
00001600  0d 01 0f 19 20 20 20 20  20 20 20 20 6d 6f 76 67  |....        movg|
00001610  65 20 20 20 72 37 2c 23  30 0d 01 10 04 0d 01 11  |e   r7,#0.......|
00001620  1f 20 20 20 20 20 20 20  20 73 74 6d 49 41 20 20  |.        stmIA  |
00001630  20 52 39 21 2c 7b 52 30  2d 52 33 7d 0d 01 12 1f  | R9!,{R0-R3}....|
00001640  20 20 20 20 20 20 20 20  53 54 4d 49 41 20 20 20  |        STMIA   |
00001650  52 38 21 2c 7b 52 34 2d  52 37 7d 0d 01 13 04 0d  |R8!,{R4-R7}.....|
00001660  01 14 1e 20 20 20 20 20  20 20 20 53 55 42 53 20  |...        SUBS |
00001670  20 20 20 52 31 30 2c 52  31 30 2c 23 31 0d 01 15  |   R10,R10,#1...|
00001680  19 20 20 20 20 20 20 20  20 42 50 4c 20 20 20 20  |.        BPL    |
00001690  20 64 78 6c 70 31 0d 01  16 04 0d 01 17 1e 20 20  | dxlp1........  |
000016a0  20 20 20 20 20 20 4c 44  4d 46 44 20 20 20 52 31  |      LDMFD   R1|
000016b0  33 21 2c 7b 50 43 7d 5e  0d 01 18 04 0d 01 19 1e  |3!,{PC}^........|
000016c0  2e 70 6c 6f 74 20 20 20  53 54 4d 46 44 20 20 20  |.plot   STMFD   |
000016d0  52 31 33 21 2c 7b 52 31  34 7d 0d 01 1a 04 0d 01  |R13!,{R14}......|
000016e0  1b 1a 20 20 20 20 20 20  20 20 4d 4f 56 20 20 20  |..        MOV   |
000016f0  20 20 52 30 2c 23 31 39  0d 01 1c 1d 20 20 20 20  |  R0,#19....    |
00001700  20 20 20 20 53 57 49 20  20 20 20 20 22 4f 53 5f  |    SWI     "OS_|
00001710  42 79 74 65 22 0d 01 1d  04 0d 01 1e 1d 20 20 20  |Byte"........   |
00001720  20 20 20 20 20 4c 44 52  20 20 20 20 20 52 31 32  |     LDR     R12|
00001730  2c 73 63 6e 73 74 0d 01  1f 19 20 20 20 20 20 20  |,scnst....      |
00001740  20 20 4d 4f 56 20 20 20  20 20 52 30 2c 23 30 0d  |  MOV     R0,#0.|
00001750  01 20 19 20 20 20 20 20  20 20 20 4d 4f 56 20 20  |. .        MOV  |
00001760  20 20 20 52 31 2c 23 30  0d 01 21 19 20 20 20 20  |   R1,#0..!.    |
00001770  20 20 20 20 4d 4f 56 20  20 20 20 20 52 32 2c 23  |    MOV     R2,#|
00001780  30 0d 01 22 19 20 20 20  20 20 20 20 20 4d 4f 56  |0..".        MOV|
00001790  20 20 20 20 20 52 33 2c  23 30 0d 01 23 19 20 20  |     R3,#0..#.  |
000017a0  20 20 20 20 20 20 4d 4f  56 20 20 20 20 20 52 34  |      MOV     R4|
000017b0  2c 23 30 0d 01 24 19 20  20 20 20 20 20 20 20 4d  |,#0..$.        M|
000017c0  4f 56 20 20 20 20 20 52  35 2c 23 30 0d 01 25 19  |OV     R5,#0..%.|
000017d0  20 20 20 20 20 20 20 20  4d 4f 56 20 20 20 20 20  |        MOV     |
000017e0  52 36 2c 23 30 0d 01 26  19 20 20 20 20 20 20 20  |R6,#0..&.       |
000017f0  20 4d 4f 56 20 20 20 20  20 52 37 2c 23 30 0d 01  | MOV     R7,#0..|
00001800  27 19 20 20 20 20 20 20  20 20 4d 4f 56 20 20 20  |'.        MOV   |
00001810  20 20 52 38 2c 23 30 0d  01 28 19 20 20 20 20 20  |  R8,#0..(.     |
00001820  20 20 20 4d 4f 56 20 20  20 20 20 52 39 2c 23 30  |   MOV     R9,#0|
00001830  0d 01 29 1a 20 20 20 20  20 20 20 20 4d 4f 56 20  |..).        MOV |
00001840  20 20 20 20 52 31 30 2c  23 30 0d 01 2a 1a 20 20  |    R10,#0..*.  |
00001850  20 20 20 20 20 20 4d 4f  56 20 20 20 20 20 52 31  |      MOV     R1|
00001860  31 2c 23 30 0d 01 2b 04  0d 01 2c 1c 20 20 20 20  |1,#0..+...,.    |
00001870  20 20 20 20 4d 4f 56 20  20 20 20 20 52 31 34 2c  |    MOV     R14,|
00001880  23 31 32 37 0d 01 2d 04  0d 01 2e 21 2e 63 6c 73  |#127..-....!.cls|
00001890  6c 70 20 20 53 54 4d 49  41 20 20 20 52 31 32 21  |lp  STMIA   R12!|
000018a0  2c 7b 52 30 2d 52 31 31  7d 0d 01 2f 21 20 20 20  |,{R0-R11}../!   |
000018b0  20 20 20 20 20 53 54 4d  49 41 20 20 20 52 31 32  |     STMIA   R12|
000018c0  21 2c 7b 52 30 2d 52 31  31 7d 0d 01 30 21 20 20  |!,{R0-R11}..0!  |
000018d0  20 20 20 20 20 20 53 54  4d 49 41 20 20 20 52 31  |      STMIA   R1|
000018e0  32 21 2c 7b 52 30 2d 52  31 31 7d 0d 01 31 20 20  |2!,{R0-R11}..1  |
000018f0  20 20 20 20 20 20 20 53  54 4d 49 41 20 20 20 52  |       STMIA   R|
00001900  31 32 21 2c 7b 52 30 2d  52 33 7d 0d 01 32 04 0d  |12!,{R0-R3}..2..|
00001910  01 33 1e 20 20 20 20 20  20 20 20 53 55 42 53 20  |.3.        SUBS |
00001920  20 20 20 52 31 34 2c 52  31 34 2c 23 31 0d 01 34  |   R14,R14,#1..4|
00001930  19 20 20 20 20 20 20 20  20 42 50 4c 20 20 20 20  |.        BPL    |
00001940  20 63 6c 73 6c 70 0d 01  35 04 0d 01 36 19 20 20  | clslp..5...6.  |
00001950  20 20 20 20 20 20 4d 4f  56 20 20 20 20 20 52 30  |      MOV     R0|
00001960  2c 23 34 0d 01 37 1d 20  20 20 20 20 20 20 20 4d  |,#4..7.        M|
00001970  4f 56 20 20 20 20 20 52  35 2c 23 71 75 61 6e 74  |OV     R5,#quant|
00001980  0d 01 38 1b 20 20 20 20  20 20 20 20 4c 44 52 20  |..8.        LDR |
00001990  20 20 20 20 52 33 2c 78  74 61 73 0d 01 39 1b 20  |    R3,xtas..9. |
000019a0  20 20 20 20 20 20 20 4c  44 52 20 20 20 20 20 52  |       LDR     R|
000019b0  34 2c 79 74 61 73 0d 01  3a 04 0d 01 3b 1c 2e 70  |4,ytas..:...;..p|
000019c0  6c 6c 70 20 20 20 4c 44  4d 49 41 20 20 20 52 33  |llp   LDMIA   R3|
000019d0  21 2c 7b 52 31 7d 0d 01  3c 1c 20 20 20 20 20 20  |!,{R1}..<.      |
000019e0  20 20 4c 44 4d 49 41 20  20 20 52 34 21 2c 7b 52  |  LDMIA   R4!,{R|
000019f0  32 7d 0d 01 3d 04 0d 01  3e 20 20 20 20 20 20 20  |2}..=...>       |
00001a00  20 20 4d 4f 56 20 20 20  20 20 52 31 2c 52 31 2c  |  MOV     R1,R1,|
00001a10  4c 53 52 23 32 32 0d 01  3f 20 20 20 20 20 20 20  |LSR#22..?       |
00001a20  20 20 4d 4f 56 20 20 20  20 20 52 32 2c 52 32 2c  |  MOV     R2,R2,|
00001a30  4c 53 52 23 32 32 0d 01  40 04 0d 01 41 1d 20 20  |LSR#22..@...A.  |
00001a40  20 20 20 20 20 20 53 57  49 20 20 20 20 20 22 4f  |      SWI     "O|
00001a50  53 5f 50 6c 6f 74 22 0d  01 42 18 20 20 20 20 20  |S_Plot"..B.     |
00001a60  20 20 20 53 57 49 20 20  20 20 20 26 31 38 46 0d  |   SWI     &18F.|
00001a70  01 43 04 0d 01 44 1c 20  20 20 20 20 20 20 20 53  |.C...D.        S|
00001a80  55 42 53 20 20 20 20 52  35 2c 52 35 2c 23 31 0d  |UBS    R5,R5,#1.|
00001a90  01 45 18 20 20 20 20 20  20 20 20 42 4e 45 20 20  |.E.        BNE  |
00001aa0  20 20 20 70 6c 6c 70 0d  01 46 04 0d 01 47 1e 20  |   pllp..F...G. |
00001ab0  20 20 20 20 20 20 20 4c  44 4d 46 44 20 20 20 52  |       LDMFD   R|
00001ac0  31 33 21 2c 7b 50 43 7d  5e 0d 01 48 04 0d 01 49  |13!,{PC}^..H...I|
00001ad0  1a 2e 73 63 6e 73 74 20  20 45 51 55 44 20 20 20  |..scnst  EQUD   |
00001ae0  20 21 26 31 30 43 30 0d  01 4a 04 0d 01 4b 05 5d  | !&10C0..J...K.]|
00001af0  0d 01 4c 05 ed 0d 01 4d  05 e1 0d 01 4e 04 0d 01  |..L....M....N...|
00001b00  4f 11 dd f2 69 6e 69 74  5f 74 61 62 6c 65 73 0d  |O...init_tables.|
00001b10  01 50 28 e3 54 25 3d 28  71 75 61 6e 74 3c 3c 32  |.P(.T%=(quant<<2|
00001b20  29 2a 35 20 b8 20 28 71  75 61 6e 74 3c 3c 32 29  |)*5 . (quant<<2)|
00001b30  2a 37 2d 31 20 88 34 0d  01 51 0d 64 61 74 61 21  |*7-1 .4..Q.data!|
00001b40  54 25 3d b3 0d 01 52 05  ed 0d 01 53 28 e3 54 25  |T%=...R....S(.T%|
00001b50  3d 28 71 75 61 6e 74 3c  3c 32 29 2a 33 20 b8 20  |=(quant<<2)*3 . |
00001b60  28 71 75 61 6e 74 3c 3c  32 29 2a 35 2d 31 20 88  |(quant<<2)*5-1 .|
00001b70  34 0d 01 54 1d 64 61 74  61 21 54 25 3d b3 28 31  |4..T.data!T%=.(1|
00001b80  3c 3c 32 32 29 2d b3 28  31 3c 3c 32 32 29 0d 01  |<<22)-.(1<<22)..|
00001b90  55 05 ed 0d 01 56 1d e3  54 25 3d 30 20 b8 20 28  |U....V..T%=0 . (|
00001ba0  71 75 61 6e 74 3c 3c 32  29 2a 33 2d 31 20 88 34  |quant<<2)*3-1 .4|
00001bb0  0d 01 57 1c 64 61 74 61  21 54 25 3d b3 28 31 3c  |..W.data!T%=.(1<|
00001bc0  3c 31 34 29 2b 28 31 3c  3c 31 33 29 0d 01 58 05  |<14)+(1<<13)..X.|
00001bd0  ed 0d 01 59 28 e3 54 25  3d 30 20 b8 20 28 28 31  |...Y(.T%=0 . ((1|
00001be0  3c 3c 71 75 61 6e 32 29  2a 28 71 75 61 6e 74 3c  |<<quan2)*(quant<|
00001bf0  3c 31 29 29 2d 31 20 88  34 0d 01 5a 0e 74 61 62  |<1))-1 .4..Z.tab|
00001c00  6c 65 21 54 25 3d 30 0d  01 5b 05 ed 0d 01 5c 05  |le!T%=0..[....\.|
00001c10  e1 0d 01 5d 04 0d 01 5e  0e dd a4 65 78 70 32 28  |...]...^...exp2(|
00001c20  41 25 29 0d 01 5f 08 ea  20 43 25 0d 01 60 08 43  |A%).._.. C%..`.C|
00001c30  25 3d 30 0d 01 61 0b f5  20 43 25 2b 3d 31 0d 01  |%=0..a.. C%+=1..|
00001c40  62 11 fd 20 28 31 3c 3c  43 25 29 3e 3d 41 25 0d  |b.. (1<<C%)>=A%.|
00001c50  01 63 07 3d 43 25 0d 01  64 04 0d 01 65 0b dd f2  |.c.=C%..d...e...|
00001c60  65 72 72 6f 72 0d 01 66  06 ef 34 0d 01 67 1b f1  |error..f..4..g..|
00001c70  f6 24 3b 22 20 61 74 20  6c 69 6e 65 20 22 3b c3  |.$;" at line ";.|
00001c80  28 9e 2f 31 30 29 0d 01  68 4c f4 4f 53 43 4c 49  |(./10)..hL.OSCLI|
00001c90  28 22 53 41 56 45 20 52  41 4d 3a 24 2e 50 4c 4f  |("SAVE RAM:$.PLO|
00001ca0  50 50 59 20 22 2b 53 54  52 24 7e 74 61 62 6c 65  |PPY "+STR$~table|
00001cb0  2b 22 2b 22 2b 53 54 52  24 7e 28 28 31 3c 3c 71  |+"+"+STR$~((1<<q|
00001cc0  75 61 6e 32 29 2a 28 71  75 61 6e 74 3c 3c 31 29  |uan2)*(quant<<1)|
00001cd0  29 29 0d 01 69 05 e0 0d  ff                       |))..i....|
00001cd9