Home » Archimedes archive » Acorn User » AU 1993-09.adf » !3DGraphic_3DGraphic » Source/SWI00

Source/SWI00

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 1993-09.adf » !3DGraphic_3DGraphic
Filename: Source/SWI00
Read OK:
File size: 2210 bytes
Load address: 0000
Exec address: 0000
Duplicates

There are 2 duplicate copies of this file in the archive:

File contents
   10REM >Source.SWI00
   20REM BAU3D_Plot source
   30REM by DCA
   40REM for 32-bit machines
   50REM (c) BAU July 1993
   60:
   70DEF FNswi00_name
   80="Plot"
   90:
  100DEF FNswi00_vars
  110vdu_out=FNwk(0)
  120ScreenStart=FNwk(4)
  130XEigFactor=FNwk(4)
  140YEigFactor=FNwk(4)
  150LineLength=FNwk(4)
  160GWLCol=FNwk(4)
  170GWBRow=FNwk(4)
  180GWRCol=FNwk(4)
  190GWTRow=FNwk(4)
  200YWindLimit=FNwk(4)
  210Log2BPP=FNwk(4)
  220OrgX=FNwk(4)
  230OrgY=FNwk(4)
  240max_vert=256
  250vertices=FNwk(8*max_vert)
  260max_y=1024
  270ytab=FNwk(8*max_y)
  280=0
  290:
  300DEF FNswi00_code
  310[OPT pass%
  320        STMFD   (sp)!,{r0-r12,link}
  330        MOV     r6,r0
  340        MOV     r5,r1
  350        ADR     r0,vdu_in
  360        ADD     r1,wp,#vdu_out
  370        SWI     "XOS_ReadVduVariables"
  380        TST     r3,#%100
  390        BNE     os_plot
  400        MOV     r1,#0
  410        MVN     r3,#0
  420        MOV     r2,#&1000000
  430        MOV     r0,r5
  440        ADD     r14,wp,#XEigFactor
  450        LDMIA   r14,{r10,r11}
  460        ADD     r7,wp,#vertices
  470.findminandmax
  480        LDMIA   r0!,{r8,r9}
  490        LDR     r14,[wp,#OrgX]
  500        ADD     r8,r8,r14
  510        LDR     r14,[wp,#OrgY]
  520        ADD     r9,r9,r14
  530        MOV     r8,r8,ASR r10
  540        MOV     r9,r9,ASR r11
  550        STMIA   r7!,{r8,r9}
  560        CMP     r9,r2
  570        MOVLT   r2,r9
  580        MOVLT   r4,r1
  590        CMP     r9,r3
  600        MOVGT   r3,r9
  610        ADD     r1,r1,#1
  620        CMP     r1,r6
  630        BNE     findminandmax
  640        LDR     r14,[wp,#GWBRow]
  650        CMP     r3,r14
  660        LDMLTFD (sp)!,{r0-r12,pc}
  670        LDR     r14,[wp,#GWTRow]
  680        CMP     r2,r14
  690        LDMGEFD (sp)!,{r0-r12,pc}
  700        MOV     r1,r6
  710        ADD     r5,wp,#vertices
  720        FNadrl(11,ytab)
  730.faceloop
  740        ADD     r0,r5,r4,ASL #3
  750        LDMIA   r0,{r7,r8}
  760        CMP     r8,r3
  770        FNadreql(11,ytab+4)
  780        ADD     r0,r4,#1
  790        CMP     r0,r6
  800        MOVEQ   r0,#0
  810        ADD     r0,r5,r0,ASL #3
  820        LDMIA   r0,{r9,r10}
  830        BL      line
  840        ADD     r4,r4,#1
  850        CMP     r4,r6
  860        MOVEQ   r4,#0
  870        SUBS    r1,r1,#1
  880        BNE     faceloop
  890        LDR     r14,[wp,#GWBRow]
  900        CMP     r2,r14
  910        MOVLT   r2,r14
  920        LDR     r14,[wp,#GWTRow]
  930        CMP     r3,r14
  940        MOVGT   r3,r14
  950        LDR     r0,[sp,#2*4]
  960        LDR     r1,[sp,#3*4]
  970        AND     r1,r1,#%11
  980        ADD     pc,pc,r1,LSL #3
  990        DCD     0
 1000        B       got_colour
 1010        DCD     0
 1020        SWI     "XColourTrans_GCOLToColourNumber"
 1030        B       got_colour
 1040        SWI     "XColourTrans_ReturnColourNumber"
 1050        B       got_colour
 1060        MOV     r0,#255
 1070.got_colour
 1080        MOV     r7,r0
 1090        LDR     r0,[wp,#Log2BPP]
 1100        MOV     r1,#1
 1110        MOV     r0,r1,LSL r0
 1120        MOV     r1,r1,ASL r0
 1130        SUB     r1,r1,#1
 1140        AND     r7,r7,r1
 1150.make_into_word
 1160        ORR     r7,r7,r7,LSL r0
 1170        MOV     r0,r0,LSL #1
 1180        CMP     r0,#32
 1190        BLT     make_into_word
 1200        MOV     r4,r7
 1210        MOV     r5,r7
 1220        MOV     r6,r7
 1230.fill_loop
 1240        FNadrl(14,ytab)
 1250        ADD     r14,r14,r2,ASL #3
 1260        LDMIA   r14,{r8,r10}
 1270        CMP     r8,r10
 1280        EORGT   r8,r8,r10
 1290        EORGT   r10,r8,r10
 1300        EORGT   r8,r8,r10
 1310        LDR     r14,[wp,#GWLCol]
 1320        CMP     r10,r14
 1330        BLT     filled
 1340        CMP     r8,r14
 1350        MOVLT   r8,r14
 1360        LDR     r14,[wp,#GWRCol]
 1370        CMP     r8,r14
 1380        BGE     filled
 1390        CMP     r10,r14
 1400        MOVGT   r10,r14
 1410        ADD     r10,r10,#1
 1420        LDR     r14,[wp,#Log2BPP]
 1430        MOV     r10,r10,LSL r14
 1440        MOV     r8,r8,LSL r14
 1450        AND     r1,r8,#31
 1460        MVN     r0,#0
 1470        MOV     r0,r0,LSR r1
 1480        MOV     r1,r0,LSL r1
 1490        BIC     r8,r8,#31
 1500        SUBS    r10,r10,r8
 1510        BLE     filled
 1520        MOV     r8,r8,LSR #3
 1530        LDR     r9,[wp,#ScreenStart]
 1540        LDR     r14,[wp,#YWindLimit]
 1550        RSB     r0,r2,r14
 1560        LDR     r14,[wp,#LineLength]
 1570        MLA     r9,r0,r14,r9
 1580        ADD     r9,r9,r8
 1590        CMP     r10,#32
 1600        RSBLE   r14,r10,#32
 1610        MOVLE   r1,r1,LSL r14
 1620        MOVLE   r1,r1,LSR r14
 1630        LDR     r14,[r9]
 1640        BIC     r14,r14,r1
 1650        AND     r1,r4,r1
 1660        ORR     r14,r14,r1
 1670        STR     r14,[r9],#4
 1680        SUBS    r10,r10,#32
 1690        BLE     filled
 1700.fill_loop2
 1710        CMP     r10,#128
 1720        STMGEIA r9!,{r4-r7}
 1730        SUBGE   r10,r10,#128
 1740        BGE     fill_loop2
 1750        CMP     r10,#64
 1760        STMGEIA r9!,{r4-r5}
 1770        SUBGE   r10,r10,#64
 1780        CMP     r10,#32
 1790        STRGE   r4,[r9],#4
 1800        SUBGE   r10,r10,#32
 1810.finish_fill
 1820        CMP     r10,#0
 1830        BLE     filled
 1840        MVN     r0,#0
 1850        LDR     r14,[r9]
 1860        AND     r14,r14,r0,LSL r10
 1870        RSB     r10,r10,#32
 1880        ORR     r14,r14,r4,LSR r10
 1890        STR     r14,[r9]
 1900.filled
 1910        ADD     r2,r2,#1
 1920        CMP     r2,r3
 1930        BLE     fill_loop
 1940        LDMFD   (sp)!,{r0-r12,pc}
 1950
 1960.os_plot
 1970        MOV     r0,r2
 1980        AND     r14,r3,#%11
 1990        CMP     r14,#3
 2000        ADDLT   pc,pc,r14,LSL #3
 2010        B       dont_set_colour
 2020        SWI     "XColourTrans_ColourNumberToGCOL"
 2030        B       set_colour
 2040        B       set_colour
 2050        DCD     0
 2060        SWI     "XColourTrans_ReturnGCOL"
 2070        B       set_colour
 2080.set_colour
 2090        MOV     r7,r0
 2100        LDR     r8,[wp,#Log2BPP]
 2110        CMP     r8,#3
 2120        MOVEQ   r0,r0,LSR #2
 2130        SWI     &100+18
 2140        SWI     &100+0
 2150        SWI     "XOS_WriteC"
 2160        CMP     r8,#3
 2170        BNE     dont_set_colour
 2180        SUB     sp,sp,#12
 2190        ADR     r14,tint_vdu
 2200        LDMIA   r14,{r9-r11}
 2210        AND     r0,r7,#3
 2220        ORR     r9,r9,r0,LSL #30
 2230        STMIA   sp,{r9-r11}
 2240        MOV     r0,sp
 2250        MOV     r1,#10
 2260        SWI     "XOS_WriteN"
 2270        ADD     sp,sp,#12
 2280.dont_set_colour
 2290        MOV     r4,#1
 2300        SUB     r6,r6,#2
 2310.os_plot_loop
 2320        MOV     r0,#4
 2330        LDMIA   r5,{r1,r2}
 2340        SWI     "XOS_Plot"
 2350        ADD     r10,r5,r4,LSL #3
 2360        LDMIA   r10!,{r1,r2}
 2370        SWI     "XOS_Plot"
 2380        MOV     r0,#85
 2390        LDMIA   r10,{r1,r2}
 2400        SWI     "XOS_Plot"
 2410        ADD     r4,r4,#1
 2420        SUBS    r6,r6,#1
 2430        BGT     os_plot_loop
 2440        LDMFD   (sp)!,{r0-r12,pc}
 2450
 2460.tint_vdu
 2470        DCB     23
 2480        DCB     17
 2490        DCB     2
 2500        DCB     0
 2510        DCD     0
 2520        DCD     0
 2530
 2540.line   STMFD   (sp)!,{r1-r6,link}
 2550        CMP     r8,r10
 2560        STMGEFD (sp)!,{r7-r10}
 2570        LDMGEFD (sp)!,{r9-r10}
 2580        LDMGEFD (sp)!,{r7-r8}
 2590        SUBS    r5,r9,r7
 2600        RSBMI   r5,r5,#0
 2610        SUBS    r6,r10,r8
 2620        CMP     r6,r5
 2630        BGT     line2
 2640
 2650        RSB     r2,r5,r6,ASL #1
 2660        SUB     r4,r6,r5
 2670        CMP     r8,r10
 2680        MOVGE   r5,#1
 2690        MVNLT   r5,#0
 2700        CMP     r7,r9
 2710        MOVGT   r3,r7
 2720        MOVGT   r7,r9
 2730        MOVGT   r8,r10
 2740        RSBLE   r5,r5,#0
 2750        MOVLE   r3,r9
 2760.line_loop
 2770        CMP     r8,#max_y
 2780        STRLO   r7,[r11,r8,ASL #3]
 2790        CMP     r7,r3
 2800        LDMGEFD (sp)!,{r1-r6,pc}
 2810        ADD     r7,r7,#1
 2820        CMP     r2,#0
 2830        ADDLT   r2,r2,r6,ASL #1
 2840        ADDGE   r8,r8,r5
 2850        ADDGE   r2,r2,r4,ASL #1
 2860        B       line_loop
 2870
 2880.line2
 2890        RSB     r2,r6,r5,ASL #1
 2900        SUB     r4,r5,r6
 2910        CMP     r7,r9
 2920        MOVGE   r6,#1
 2930        MVNLT   r6,#0
 2940        CMP     r8,r10
 2950        MOVGT   r3,r8
 2960        MOVGT   r8,r10
 2970        MOVGT   r7,r9
 2980        RSBLE   r6,r6,#0
 2990        MOVLE   r3,r10
 3000.line_loop2
 3010        CMP     r8,#max_y
 3020        STRLO   r7,[r11,r8,ASL #3]
 3030        CMP     r8,r3
 3040        LDMGEFD (sp)!,{r1-r6,pc}
 3050        ADD     r8,r8,#1
 3060        CMP     r2,#0
 3070        ADDLT   r2,r2,r5,ASL #1
 3080        ADDGE   r7,r7,r6
 3090        ADDGE   r2,r2,r4,ASL #1
 3100        B       line_loop2
 3110
 3120.vdu_in DCD     148
 3130        DCD     4
 3140        DCD     5
 3150        DCD     6
 3160        DCD     128
 3170        DCD     129
 3180        DCD     130
 3190        DCD     131
 3200        DCD     12
 3210        DCD     9
 3220        DCD     136
 3230        DCD     137
 3240        DCD     -1
 3250]
 3260=0

� >Source.SWI00
� BAU3D_Plot source
� by DCA
(� for 32-bit machines
2� (c) BAU July 1993
<:
F� �swi00_name
P="Plot"
Z:
d� �swi00_vars
nvdu_out=�wk(0)
xScreenStart=�wk(4)
�XEigFactor=�wk(4)
�YEigFactor=�wk(4)
�LineLength=�wk(4)
�GWLCol=�wk(4)
�GWBRow=�wk(4)
�GWRCol=�wk(4)
�GWTRow=�wk(4)
�YWindLimit=�wk(4)
�Log2BPP=�wk(4)
�OrgX=�wk(4)
�OrgY=�wk(4)
�max_vert=256
�vertices=�wk(8*max_vert)
max_y=1024
ytab=�wk(8*max_y)
=0
":
,� �swi00_code
6[OPT pass%
@'        STMFD   (sp)!,{r0-r12,link}
J        MOV     r6,r0
T        MOV     r5,r1
^        ADR     r0,vdu_in
h"        ADD     r1,wp,#vdu_out
r*        SWI     "XOS_ReadVduVariables"
|        TST     r3,#%100
�        BNE     os_plot
�        MOV     r1,#0
�        MVN     r3,#0
�         MOV     r2,#&1000000
�        MOV     r0,r5
�&        ADD     r14,wp,#XEigFactor
�!        LDMIA   r14,{r10,r11}
�#        ADD     r7,wp,#vertices
�.findminandmax
�        LDMIA   r0!,{r8,r9}
�"        LDR     r14,[wp,#OrgX]
�        ADD     r8,r8,r14
�"        LDR     r14,[wp,#OrgY]
        ADD     r9,r9,r14
!        MOV     r8,r8,ASR r10
!        MOV     r9,r9,ASR r11
&        STMIA   r7!,{r8,r9}
0        CMP     r9,r2
:        MOVLT   r2,r9
D        MOVLT   r4,r1
N        CMP     r9,r3
X        MOVGT   r3,r9
b        ADD     r1,r1,#1
l        CMP     r1,r6
v!        BNE     findminandmax
�$        LDR     r14,[wp,#GWBRow]
�        CMP     r3,r14
�%        LDMLTFD (sp)!,{r0-r12,pc}
�$        LDR     r14,[wp,#GWTRow]
�        CMP     r2,r14
�%        LDMGEFD (sp)!,{r0-r12,pc}
�        MOV     r1,r6
�#        ADD     r5,wp,#vertices
�        �adrl(11,ytab)
�
.faceloop
�#        ADD     r0,r5,r4,ASL #3
�        LDMIA   r0,{r7,r8}
�        CMP     r8,r3
        �adreql(11,ytab+4)
        ADD     r0,r4,#1
        CMP     r0,r6
         �Q   r0,#0
*#        ADD     r0,r5,r0,ASL #3
4        LDMIA   r0,{r9,r10}
>        BL      line
H        ADD     r4,r4,#1
R        CMP     r4,r6
\        �Q   r4,#0
f        SUBS    r1,r1,#1
p        BNE     faceloop
z$        LDR     r14,[wp,#GWBRow]
�        CMP     r2,r14
�        MOVLT   r2,r14
�$        LDR     r14,[wp,#GWTRow]
�        CMP     r3,r14
�        MOVGT   r3,r14
�         LDR     r0,[sp,#2*4]
�         LDR     r1,[sp,#3*4]
�        �     r1,r1,#%11
�#        ADD     pc,pc,r1,LSL #3
�        DCD     0
�        B       got_colour
�        DCD     0
�5        SWI     "XColourTrans_GCOLToColourNumber"
        B       got_colour
5        SWI     "XColourTrans_ReturnColourNumber"
        B       got_colour
$        MOV     r0,#255
..got_colour
8        MOV     r7,r0
B$        LDR     r0,[wp,#Log2BPP]
L        MOV     r1,#1
V         MOV     r0,r1,LSL r0
`         MOV     r1,r1,ASL r0
j        SUB     r1,r1,#1
t        �     r7,r7,r1
~.make_into_word
�"        �R     r7,r7,r7,LSL r0
�         MOV     r0,r0,LSL #1
�        CMP     r0,#32
�"        BLT     make_into_word
�        MOV     r4,r7
�        MOV     r5,r7
�        MOV     r6,r7
�.fill_loop
�        �adrl(14,ytab)
�%        ADD     r14,r14,r2,ASL #3
�         LDMIA   r14,{r8,r10}
�        CMP     r8,r10
        �GT   r8,r8,r10

        �GT   r10,r8,r10
        �GT   r8,r8,r10
$        LDR     r14,[wp,#GWLCol]
(        CMP     r10,r14
2        BLT     filled
<        CMP     r8,r14
F        MOVLT   r8,r14
P$        LDR     r14,[wp,#GWRCol]
Z        CMP     r8,r14
d        BGE     filled
n        CMP     r10,r14
x        MOVGT   r10,r14
�        ADD     r10,r10,#1
�%        LDR     r14,[wp,#Log2BPP]
�#        MOV     r10,r10,LSL r14
�!        MOV     r8,r8,LSL r14
�        �     r1,r8,#31
�        MVN     r0,#0
�         MOV     r0,r0,LSR r1
�         MOV     r1,r0,LSL r1
�        BIC     r8,r8,#31
�        SUBS    r10,r10,r8
�        BLE     filled
�         MOV     r8,r8,LSR #3
�(        LDR     r9,[wp,#ScreenStart]
(        LDR     r14,[wp,#YWindLimit]
        RSB     r0,r2,r14
(        LDR     r14,[wp,#LineLength]
"         MLA     r9,r0,r14,r9
,        ADD     r9,r9,r8
6        CMP     r10,#32
@        RSBLE   r14,r10,#32
J!        MOVLE   r1,r1,LSL r14
T!        MOVLE   r1,r1,LSR r14
^        LDR     r14,[r9]
h        BIC     r14,r14,r1
r        �     r1,r4,r1
|        �R     r14,r14,r1
�        STR     r14,[r9],#4
�        SUBS    r10,r10,#32
�        BLE     filled
�.fill_loop2
�        CMP     r10,#128
�        STMGEIA r9!,{r4-r7}
�         SUBGE   r10,r10,#128
�        BGE     fill_loop2
�        CMP     r10,#64
�        STMGEIA r9!,{r4-r5}
�        SUBGE   r10,r10,#64
�        CMP     r10,#32
�        STRGE   r4,[r9],#4
        SUBGE   r10,r10,#32
.finish_fill
        CMP     r10,#0
&        BLE     filled
0        MVN     r0,#0
:        LDR     r14,[r9]
D$        �     r14,r14,r0,LSL r10
N        RSB     r10,r10,#32
X%        �R     r14,r14,r4,LSR r10
b        STR     r14,[r9]
l.filled
v        ADD     r2,r2,#1
�        CMP     r2,r3
�        BLE     fill_loop
�%        LDMFD   (sp)!,{r0-r12,pc}
�
�.os_plot
�        MOV     r0,r2
�        �     r14,r3,#%11
�        CMP     r14,#3
�$        ADDLT   pc,pc,r14,LSL #3
�#        B       dont_set_colour
�5        SWI     "XColourTrans_ColourNumberToGCOL"
�        B       set_colour
�        B       set_colour
        DCD     0
-        SWI     "XColourTrans_ReturnGCOL"
        B       set_colour
 .set_colour
*        MOV     r7,r0
4$        LDR     r8,[wp,#Log2BPP]
>        CMP     r8,#3
H        �Q   r0,r0,LSR #2
R        SWI     &100+18
\        SWI     &100+0
f         SWI     "XOS_WriteC"
p        CMP     r8,#3
z#        BNE     dont_set_colour
�        SUB     sp,sp,#12
�         ADR     r14,tint_vdu
�         LDMIA   r14,{r9-r11}
�        �     r0,r7,#3
�#        �R     r9,r9,r0,LSL #30
�        STMIA   sp,{r9-r11}
�        MOV     r0,sp
�        MOV     r1,#10
�         SWI     "XOS_WriteN"
�        ADD     sp,sp,#12
�.dont_set_colour
�        MOV     r4,#1
�        SUB     r6,r6,#2
	.os_plot_loop
	        MOV     r0,#4
	        LDMIA   r5,{r1,r2}
	$        SWI     "XOS_Plot"
	.$        ADD     r10,r5,r4,LSL #3
	8         LDMIA   r10!,{r1,r2}
	B        SWI     "XOS_Plot"
	L        MOV     r0,#85
	V        LDMIA   r10,{r1,r2}
	`        SWI     "XOS_Plot"
	j        ADD     r4,r4,#1
	t        SUBS    r6,r6,#1
	~         BGT     os_plot_loop
	�%        LDMFD   (sp)!,{r0-r12,pc}
	�
	�
.tint_vdu
	�        DCB     23
	�        DCB     17
	�        DCB     2
	�        DCB     0
	�        DCD     0
	�        DCD     0
	�
	�&.line   STMFD   (sp)!,{r1-r6,link}
	�        CMP     r8,r10
"        STMGEFD (sp)!,{r7-r10}

"        LDMGEFD (sp)!,{r9-r10}
!        LDMGEFD (sp)!,{r7-r8}
        SUBS    r5,r9,r7
(        RSBMI   r5,r5,#0
2        SUBS    r6,r10,r8
<        CMP     r6,r5
F        BGT     line2
P
Z#        RSB     r2,r5,r6,ASL #1
d        SUB     r4,r6,r5
n        CMP     r8,r10
x        MOVGE   r5,#1
�        MVNLT   r5,#0
�        CMP     r7,r9
�        MOVGT   r3,r7
�        MOVGT   r7,r9
�        MOVGT   r8,r10
�        RSBLE   r5,r5,#0
�        MOVLE   r3,r9
�.line_loop
�        CMP     r8,#max_y
�&        STRLO   r7,[r11,r8,ASL #3]
�        CMP     r7,r3
�$        LDMGEFD (sp)!,{r1-r6,pc}
�        ADD     r7,r7,#1
        CMP     r2,#0
#        ADDLT   r2,r2,r6,ASL #1
        ADDGE   r8,r8,r5
"#        ADDGE   r2,r2,r4,ASL #1
,        B       line_loop
6
@
.line2
J#        RSB     r2,r6,r5,ASL #1
T        SUB     r4,r5,r6
^        CMP     r7,r9
h        MOVGE   r6,#1
r        MVNLT   r6,#0
|        CMP     r8,r10
�        MOVGT   r3,r8
�        MOVGT   r8,r10
�        MOVGT   r7,r9
�        RSBLE   r6,r6,#0
�        MOVLE   r3,r10
�.line_loop2
�        CMP     r8,#max_y
�&        STRLO   r7,[r11,r8,ASL #3]
�        CMP     r8,r3
�$        LDMGEFD (sp)!,{r1-r6,pc}
�        ADD     r8,r8,#1
�        CMP     r2,#0
�#        ADDLT   r2,r2,r5,ASL #1
        ADDGE   r7,r7,r6
#        ADDGE   r2,r2,r4,ASL #1
        B       line_loop2
&
0.vdu_in DCD     148
:        DCD     4
D        DCD     5
N        DCD     6
X        DCD     128
b        DCD     129
l        DCD     130
v        DCD     131
�        DCD     12
�        DCD     9
�        DCD     136
�        DCD     137
�        DCD     -1
�]
�=0
�
00000000  0d 00 0a 13 f4 20 3e 53  6f 75 72 63 65 2e 53 57  |..... >Source.SW|
00000010  49 30 30 0d 00 14 17 f4  20 42 41 55 33 44 5f 50  |I00..... BAU3D_P|
00000020  6c 6f 74 20 73 6f 75 72  63 65 0d 00 1e 0c f4 20  |lot source..... |
00000030  62 79 20 44 43 41 0d 00  28 19 f4 20 66 6f 72 20  |by DCA..(.. for |
00000040  33 32 2d 62 69 74 20 6d  61 63 68 69 6e 65 73 0d  |32-bit machines.|
00000050  00 32 17 f4 20 28 63 29  20 42 41 55 20 4a 75 6c  |.2.. (c) BAU Jul|
00000060  79 20 31 39 39 33 0d 00  3c 05 3a 0d 00 46 11 dd  |y 1993..<.:..F..|
00000070  20 a4 73 77 69 30 30 5f  6e 61 6d 65 0d 00 50 0b  | .swi00_name..P.|
00000080  3d 22 50 6c 6f 74 22 0d  00 5a 05 3a 0d 00 64 11  |="Plot"..Z.:..d.|
00000090  dd 20 a4 73 77 69 30 30  5f 76 61 72 73 0d 00 6e  |. .swi00_vars..n|
000000a0  12 76 64 75 5f 6f 75 74  3d a4 77 6b 28 30 29 0d  |.vdu_out=.wk(0).|
000000b0  00 78 16 53 63 72 65 65  6e 53 74 61 72 74 3d a4  |.x.ScreenStart=.|
000000c0  77 6b 28 34 29 0d 00 82  15 58 45 69 67 46 61 63  |wk(4)....XEigFac|
000000d0  74 6f 72 3d a4 77 6b 28  34 29 0d 00 8c 15 59 45  |tor=.wk(4)....YE|
000000e0  69 67 46 61 63 74 6f 72  3d a4 77 6b 28 34 29 0d  |igFactor=.wk(4).|
000000f0  00 96 15 4c 69 6e 65 4c  65 6e 67 74 68 3d a4 77  |...LineLength=.w|
00000100  6b 28 34 29 0d 00 a0 11  47 57 4c 43 6f 6c 3d a4  |k(4)....GWLCol=.|
00000110  77 6b 28 34 29 0d 00 aa  11 47 57 42 52 6f 77 3d  |wk(4)....GWBRow=|
00000120  a4 77 6b 28 34 29 0d 00  b4 11 47 57 52 43 6f 6c  |.wk(4)....GWRCol|
00000130  3d a4 77 6b 28 34 29 0d  00 be 11 47 57 54 52 6f  |=.wk(4)....GWTRo|
00000140  77 3d a4 77 6b 28 34 29  0d 00 c8 15 59 57 69 6e  |w=.wk(4)....YWin|
00000150  64 4c 69 6d 69 74 3d a4  77 6b 28 34 29 0d 00 d2  |dLimit=.wk(4)...|
00000160  12 4c 6f 67 32 42 50 50  3d a4 77 6b 28 34 29 0d  |.Log2BPP=.wk(4).|
00000170  00 dc 0f 4f 72 67 58 3d  a4 77 6b 28 34 29 0d 00  |...OrgX=.wk(4)..|
00000180  e6 0f 4f 72 67 59 3d a4  77 6b 28 34 29 0d 00 f0  |..OrgY=.wk(4)...|
00000190  10 6d 61 78 5f 76 65 72  74 3d 32 35 36 0d 00 fa  |.max_vert=256...|
000001a0  1c 76 65 72 74 69 63 65  73 3d a4 77 6b 28 38 2a  |.vertices=.wk(8*|
000001b0  6d 61 78 5f 76 65 72 74  29 0d 01 04 0e 6d 61 78  |max_vert)....max|
000001c0  5f 79 3d 31 30 32 34 0d  01 0e 15 79 74 61 62 3d  |_y=1024....ytab=|
000001d0  a4 77 6b 28 38 2a 6d 61  78 5f 79 29 0d 01 18 06  |.wk(8*max_y)....|
000001e0  3d 30 0d 01 22 05 3a 0d  01 2c 11 dd 20 a4 73 77  |=0..".:..,.. .sw|
000001f0  69 30 30 5f 63 6f 64 65  0d 01 36 0e 5b 4f 50 54  |i00_code..6.[OPT|
00000200  20 70 61 73 73 25 0d 01  40 27 20 20 20 20 20 20  | pass%..@'      |
00000210  20 20 53 54 4d 46 44 20  20 20 28 73 70 29 21 2c  |  STMFD   (sp)!,|
00000220  7b 72 30 2d 72 31 32 2c  6c 69 6e 6b 7d 0d 01 4a  |{r0-r12,link}..J|
00000230  19 20 20 20 20 20 20 20  20 4d 4f 56 20 20 20 20  |.        MOV    |
00000240  20 72 36 2c 72 30 0d 01  54 19 20 20 20 20 20 20  | r6,r0..T.      |
00000250  20 20 4d 4f 56 20 20 20  20 20 72 35 2c 72 31 0d  |  MOV     r5,r1.|
00000260  01 5e 1d 20 20 20 20 20  20 20 20 41 44 52 20 20  |.^.        ADR  |
00000270  20 20 20 72 30 2c 76 64  75 5f 69 6e 0d 01 68 22  |   r0,vdu_in..h"|
00000280  20 20 20 20 20 20 20 20  41 44 44 20 20 20 20 20  |        ADD     |
00000290  72 31 2c 77 70 2c 23 76  64 75 5f 6f 75 74 0d 01  |r1,wp,#vdu_out..|
000002a0  72 2a 20 20 20 20 20 20  20 20 53 57 49 20 20 20  |r*        SWI   |
000002b0  20 20 22 58 4f 53 5f 52  65 61 64 56 64 75 56 61  |  "XOS_ReadVduVa|
000002c0  72 69 61 62 6c 65 73 22  0d 01 7c 1c 20 20 20 20  |riables"..|.    |
000002d0  20 20 20 20 54 53 54 20  20 20 20 20 72 33 2c 23  |    TST     r3,#|
000002e0  25 31 30 30 0d 01 86 1b  20 20 20 20 20 20 20 20  |%100....        |
000002f0  42 4e 45 20 20 20 20 20  6f 73 5f 70 6c 6f 74 0d  |BNE     os_plot.|
00000300  01 90 19 20 20 20 20 20  20 20 20 4d 4f 56 20 20  |...        MOV  |
00000310  20 20 20 72 31 2c 23 30  0d 01 9a 19 20 20 20 20  |   r1,#0....    |
00000320  20 20 20 20 4d 56 4e 20  20 20 20 20 72 33 2c 23  |    MVN     r3,#|
00000330  30 0d 01 a4 20 20 20 20  20 20 20 20 20 4d 4f 56  |0...         MOV|
00000340  20 20 20 20 20 72 32 2c  23 26 31 30 30 30 30 30  |     r2,#&100000|
00000350  30 0d 01 ae 19 20 20 20  20 20 20 20 20 4d 4f 56  |0....        MOV|
00000360  20 20 20 20 20 72 30 2c  72 35 0d 01 b8 26 20 20  |     r0,r5...&  |
00000370  20 20 20 20 20 20 41 44  44 20 20 20 20 20 72 31  |      ADD     r1|
00000380  34 2c 77 70 2c 23 58 45  69 67 46 61 63 74 6f 72  |4,wp,#XEigFactor|
00000390  0d 01 c2 21 20 20 20 20  20 20 20 20 4c 44 4d 49  |...!        LDMI|
000003a0  41 20 20 20 72 31 34 2c  7b 72 31 30 2c 72 31 31  |A   r14,{r10,r11|
000003b0  7d 0d 01 cc 23 20 20 20  20 20 20 20 20 41 44 44  |}...#        ADD|
000003c0  20 20 20 20 20 72 37 2c  77 70 2c 23 76 65 72 74  |     r7,wp,#vert|
000003d0  69 63 65 73 0d 01 d6 12  2e 66 69 6e 64 6d 69 6e  |ices.....findmin|
000003e0  61 6e 64 6d 61 78 0d 01  e0 1f 20 20 20 20 20 20  |andmax....      |
000003f0  20 20 4c 44 4d 49 41 20  20 20 72 30 21 2c 7b 72  |  LDMIA   r0!,{r|
00000400  38 2c 72 39 7d 0d 01 ea  22 20 20 20 20 20 20 20  |8,r9}..."       |
00000410  20 4c 44 52 20 20 20 20  20 72 31 34 2c 5b 77 70  | LDR     r14,[wp|
00000420  2c 23 4f 72 67 58 5d 0d  01 f4 1d 20 20 20 20 20  |,#OrgX]....     |
00000430  20 20 20 41 44 44 20 20  20 20 20 72 38 2c 72 38  |   ADD     r8,r8|
00000440  2c 72 31 34 0d 01 fe 22  20 20 20 20 20 20 20 20  |,r14..."        |
00000450  4c 44 52 20 20 20 20 20  72 31 34 2c 5b 77 70 2c  |LDR     r14,[wp,|
00000460  23 4f 72 67 59 5d 0d 02  08 1d 20 20 20 20 20 20  |#OrgY]....      |
00000470  20 20 41 44 44 20 20 20  20 20 72 39 2c 72 39 2c  |  ADD     r9,r9,|
00000480  72 31 34 0d 02 12 21 20  20 20 20 20 20 20 20 4d  |r14...!        M|
00000490  4f 56 20 20 20 20 20 72  38 2c 72 38 2c 41 53 52  |OV     r8,r8,ASR|
000004a0  20 72 31 30 0d 02 1c 21  20 20 20 20 20 20 20 20  | r10...!        |
000004b0  4d 4f 56 20 20 20 20 20  72 39 2c 72 39 2c 41 53  |MOV     r9,r9,AS|
000004c0  52 20 72 31 31 0d 02 26  1f 20 20 20 20 20 20 20  |R r11..&.       |
000004d0  20 53 54 4d 49 41 20 20  20 72 37 21 2c 7b 72 38  | STMIA   r7!,{r8|
000004e0  2c 72 39 7d 0d 02 30 19  20 20 20 20 20 20 20 20  |,r9}..0.        |
000004f0  43 4d 50 20 20 20 20 20  72 39 2c 72 32 0d 02 3a  |CMP     r9,r2..:|
00000500  19 20 20 20 20 20 20 20  20 4d 4f 56 4c 54 20 20  |.        MOVLT  |
00000510  20 72 32 2c 72 39 0d 02  44 19 20 20 20 20 20 20  | r2,r9..D.      |
00000520  20 20 4d 4f 56 4c 54 20  20 20 72 34 2c 72 31 0d  |  MOVLT   r4,r1.|
00000530  02 4e 19 20 20 20 20 20  20 20 20 43 4d 50 20 20  |.N.        CMP  |
00000540  20 20 20 72 39 2c 72 33  0d 02 58 19 20 20 20 20  |   r9,r3..X.    |
00000550  20 20 20 20 4d 4f 56 47  54 20 20 20 72 33 2c 72  |    MOVGT   r3,r|
00000560  39 0d 02 62 1c 20 20 20  20 20 20 20 20 41 44 44  |9..b.        ADD|
00000570  20 20 20 20 20 72 31 2c  72 31 2c 23 31 0d 02 6c  |     r1,r1,#1..l|
00000580  19 20 20 20 20 20 20 20  20 43 4d 50 20 20 20 20  |.        CMP    |
00000590  20 72 31 2c 72 36 0d 02  76 21 20 20 20 20 20 20  | r1,r6..v!      |
000005a0  20 20 42 4e 45 20 20 20  20 20 66 69 6e 64 6d 69  |  BNE     findmi|
000005b0  6e 61 6e 64 6d 61 78 0d  02 80 24 20 20 20 20 20  |nandmax...$     |
000005c0  20 20 20 4c 44 52 20 20  20 20 20 72 31 34 2c 5b  |   LDR     r14,[|
000005d0  77 70 2c 23 47 57 42 52  6f 77 5d 0d 02 8a 1a 20  |wp,#GWBRow].... |
000005e0  20 20 20 20 20 20 20 43  4d 50 20 20 20 20 20 72  |       CMP     r|
000005f0  33 2c 72 31 34 0d 02 94  25 20 20 20 20 20 20 20  |3,r14...%       |
00000600  20 4c 44 4d 4c 54 46 44  20 28 73 70 29 21 2c 7b  | LDMLTFD (sp)!,{|
00000610  72 30 2d 72 31 32 2c 70  63 7d 0d 02 9e 24 20 20  |r0-r12,pc}...$  |
00000620  20 20 20 20 20 20 4c 44  52 20 20 20 20 20 72 31  |      LDR     r1|
00000630  34 2c 5b 77 70 2c 23 47  57 54 52 6f 77 5d 0d 02  |4,[wp,#GWTRow]..|
00000640  a8 1a 20 20 20 20 20 20  20 20 43 4d 50 20 20 20  |..        CMP   |
00000650  20 20 72 32 2c 72 31 34  0d 02 b2 25 20 20 20 20  |  r2,r14...%    |
00000660  20 20 20 20 4c 44 4d 47  45 46 44 20 28 73 70 29  |    LDMGEFD (sp)|
00000670  21 2c 7b 72 30 2d 72 31  32 2c 70 63 7d 0d 02 bc  |!,{r0-r12,pc}...|
00000680  19 20 20 20 20 20 20 20  20 4d 4f 56 20 20 20 20  |.        MOV    |
00000690  20 72 31 2c 72 36 0d 02  c6 23 20 20 20 20 20 20  | r1,r6...#      |
000006a0  20 20 41 44 44 20 20 20  20 20 72 35 2c 77 70 2c  |  ADD     r5,wp,|
000006b0  23 76 65 72 74 69 63 65  73 0d 02 d0 1a 20 20 20  |#vertices....   |
000006c0  20 20 20 20 20 a4 61 64  72 6c 28 31 31 2c 79 74  |     .adrl(11,yt|
000006d0  61 62 29 0d 02 da 0d 2e  66 61 63 65 6c 6f 6f 70  |ab).....faceloop|
000006e0  0d 02 e4 23 20 20 20 20  20 20 20 20 41 44 44 20  |...#        ADD |
000006f0  20 20 20 20 72 30 2c 72  35 2c 72 34 2c 41 53 4c  |    r0,r5,r4,ASL|
00000700  20 23 33 0d 02 ee 1e 20  20 20 20 20 20 20 20 4c  | #3....        L|
00000710  44 4d 49 41 20 20 20 72  30 2c 7b 72 37 2c 72 38  |DMIA   r0,{r7,r8|
00000720  7d 0d 02 f8 19 20 20 20  20 20 20 20 20 43 4d 50  |}....        CMP|
00000730  20 20 20 20 20 72 38 2c  72 33 0d 03 02 1e 20 20  |     r8,r3....  |
00000740  20 20 20 20 20 20 a4 61  64 72 65 71 6c 28 31 31  |      .adreql(11|
00000750  2c 79 74 61 62 2b 34 29  0d 03 0c 1c 20 20 20 20  |,ytab+4)....    |
00000760  20 20 20 20 41 44 44 20  20 20 20 20 72 30 2c 72  |    ADD     r0,r|
00000770  34 2c 23 31 0d 03 16 19  20 20 20 20 20 20 20 20  |4,#1....        |
00000780  43 4d 50 20 20 20 20 20  72 30 2c 72 36 0d 03 20  |CMP     r0,r6.. |
00000790  16 20 20 20 20 20 20 20  20 ec 51 20 20 20 72 30  |.        .Q   r0|
000007a0  2c 23 30 0d 03 2a 23 20  20 20 20 20 20 20 20 41  |,#0..*#        A|
000007b0  44 44 20 20 20 20 20 72  30 2c 72 35 2c 72 30 2c  |DD     r0,r5,r0,|
000007c0  41 53 4c 20 23 33 0d 03  34 1f 20 20 20 20 20 20  |ASL #3..4.      |
000007d0  20 20 4c 44 4d 49 41 20  20 20 72 30 2c 7b 72 39  |  LDMIA   r0,{r9|
000007e0  2c 72 31 30 7d 0d 03 3e  18 20 20 20 20 20 20 20  |,r10}..>.       |
000007f0  20 42 4c 20 20 20 20 20  20 6c 69 6e 65 0d 03 48  | BL      line..H|
00000800  1c 20 20 20 20 20 20 20  20 41 44 44 20 20 20 20  |.        ADD    |
00000810  20 72 34 2c 72 34 2c 23  31 0d 03 52 19 20 20 20  | r4,r4,#1..R.   |
00000820  20 20 20 20 20 43 4d 50  20 20 20 20 20 72 34 2c  |     CMP     r4,|
00000830  72 36 0d 03 5c 16 20 20  20 20 20 20 20 20 ec 51  |r6..\.        .Q|
00000840  20 20 20 72 34 2c 23 30  0d 03 66 1c 20 20 20 20  |   r4,#0..f.    |
00000850  20 20 20 20 53 55 42 53  20 20 20 20 72 31 2c 72  |    SUBS    r1,r|
00000860  31 2c 23 31 0d 03 70 1c  20 20 20 20 20 20 20 20  |1,#1..p.        |
00000870  42 4e 45 20 20 20 20 20  66 61 63 65 6c 6f 6f 70  |BNE     faceloop|
00000880  0d 03 7a 24 20 20 20 20  20 20 20 20 4c 44 52 20  |..z$        LDR |
00000890  20 20 20 20 72 31 34 2c  5b 77 70 2c 23 47 57 42  |    r14,[wp,#GWB|
000008a0  52 6f 77 5d 0d 03 84 1a  20 20 20 20 20 20 20 20  |Row]....        |
000008b0  43 4d 50 20 20 20 20 20  72 32 2c 72 31 34 0d 03  |CMP     r2,r14..|
000008c0  8e 1a 20 20 20 20 20 20  20 20 4d 4f 56 4c 54 20  |..        MOVLT |
000008d0  20 20 72 32 2c 72 31 34  0d 03 98 24 20 20 20 20  |  r2,r14...$    |
000008e0  20 20 20 20 4c 44 52 20  20 20 20 20 72 31 34 2c  |    LDR     r14,|
000008f0  5b 77 70 2c 23 47 57 54  52 6f 77 5d 0d 03 a2 1a  |[wp,#GWTRow]....|
00000900  20 20 20 20 20 20 20 20  43 4d 50 20 20 20 20 20  |        CMP     |
00000910  72 33 2c 72 31 34 0d 03  ac 1a 20 20 20 20 20 20  |r3,r14....      |
00000920  20 20 4d 4f 56 47 54 20  20 20 72 33 2c 72 31 34  |  MOVGT   r3,r14|
00000930  0d 03 b6 20 20 20 20 20  20 20 20 20 4c 44 52 20  |...         LDR |
00000940  20 20 20 20 72 30 2c 5b  73 70 2c 23 32 2a 34 5d  |    r0,[sp,#2*4]|
00000950  0d 03 c0 20 20 20 20 20  20 20 20 20 4c 44 52 20  |...         LDR |
00000960  20 20 20 20 72 31 2c 5b  73 70 2c 23 33 2a 34 5d  |    r1,[sp,#3*4]|
00000970  0d 03 ca 1c 20 20 20 20  20 20 20 20 80 20 20 20  |....        .   |
00000980  20 20 72 31 2c 72 31 2c  23 25 31 31 0d 03 d4 23  |  r1,r1,#%11...#|
00000990  20 20 20 20 20 20 20 20  41 44 44 20 20 20 20 20  |        ADD     |
000009a0  70 63 2c 70 63 2c 72 31  2c 4c 53 4c 20 23 33 0d  |pc,pc,r1,LSL #3.|
000009b0  03 de 15 20 20 20 20 20  20 20 20 44 43 44 20 20  |...        DCD  |
000009c0  20 20 20 30 0d 03 e8 1e  20 20 20 20 20 20 20 20  |   0....        |
000009d0  42 20 20 20 20 20 20 20  67 6f 74 5f 63 6f 6c 6f  |B       got_colo|
000009e0  75 72 0d 03 f2 15 20 20  20 20 20 20 20 20 44 43  |ur....        DC|
000009f0  44 20 20 20 20 20 30 0d  03 fc 35 20 20 20 20 20  |D     0...5     |
00000a00  20 20 20 53 57 49 20 20  20 20 20 22 58 43 6f 6c  |   SWI     "XCol|
00000a10  6f 75 72 54 72 61 6e 73  5f 47 43 4f 4c 54 6f 43  |ourTrans_GCOLToC|
00000a20  6f 6c 6f 75 72 4e 75 6d  62 65 72 22 0d 04 06 1e  |olourNumber"....|
00000a30  20 20 20 20 20 20 20 20  42 20 20 20 20 20 20 20  |        B       |
00000a40  67 6f 74 5f 63 6f 6c 6f  75 72 0d 04 10 35 20 20  |got_colour...5  |
00000a50  20 20 20 20 20 20 53 57  49 20 20 20 20 20 22 58  |      SWI     "X|
00000a60  43 6f 6c 6f 75 72 54 72  61 6e 73 5f 52 65 74 75  |ColourTrans_Retu|
00000a70  72 6e 43 6f 6c 6f 75 72  4e 75 6d 62 65 72 22 0d  |rnColourNumber".|
00000a80  04 1a 1e 20 20 20 20 20  20 20 20 42 20 20 20 20  |...        B    |
00000a90  20 20 20 67 6f 74 5f 63  6f 6c 6f 75 72 0d 04 24  |   got_colour..$|
00000aa0  1b 20 20 20 20 20 20 20  20 4d 4f 56 20 20 20 20  |.        MOV    |
00000ab0  20 72 30 2c 23 32 35 35  0d 04 2e 0f 2e 67 6f 74  | r0,#255.....got|
00000ac0  5f 63 6f 6c 6f 75 72 0d  04 38 19 20 20 20 20 20  |_colour..8.     |
00000ad0  20 20 20 4d 4f 56 20 20  20 20 20 72 37 2c 72 30  |   MOV     r7,r0|
00000ae0  0d 04 42 24 20 20 20 20  20 20 20 20 4c 44 52 20  |..B$        LDR |
00000af0  20 20 20 20 72 30 2c 5b  77 70 2c 23 4c 6f 67 32  |    r0,[wp,#Log2|
00000b00  42 50 50 5d 0d 04 4c 19  20 20 20 20 20 20 20 20  |BPP]..L.        |
00000b10  4d 4f 56 20 20 20 20 20  72 31 2c 23 31 0d 04 56  |MOV     r1,#1..V|
00000b20  20 20 20 20 20 20 20 20  20 4d 4f 56 20 20 20 20  |         MOV    |
00000b30  20 72 30 2c 72 31 2c 4c  53 4c 20 72 30 0d 04 60  | r0,r1,LSL r0..`|
00000b40  20 20 20 20 20 20 20 20  20 4d 4f 56 20 20 20 20  |         MOV    |
00000b50  20 72 31 2c 72 31 2c 41  53 4c 20 72 30 0d 04 6a  | r1,r1,ASL r0..j|
00000b60  1c 20 20 20 20 20 20 20  20 53 55 42 20 20 20 20  |.        SUB    |
00000b70  20 72 31 2c 72 31 2c 23  31 0d 04 74 1a 20 20 20  | r1,r1,#1..t.   |
00000b80  20 20 20 20 20 80 20 20  20 20 20 72 37 2c 72 37  |     .     r7,r7|
00000b90  2c 72 31 0d 04 7e 13 2e  6d 61 6b 65 5f 69 6e 74  |,r1..~..make_int|
00000ba0  6f 5f 77 6f 72 64 0d 04  88 22 20 20 20 20 20 20  |o_word..."      |
00000bb0  20 20 84 52 20 20 20 20  20 72 37 2c 72 37 2c 72  |  .R     r7,r7,r|
00000bc0  37 2c 4c 53 4c 20 72 30  0d 04 92 20 20 20 20 20  |7,LSL r0...     |
00000bd0  20 20 20 20 4d 4f 56 20  20 20 20 20 72 30 2c 72  |    MOV     r0,r|
00000be0  30 2c 4c 53 4c 20 23 31  0d 04 9c 1a 20 20 20 20  |0,LSL #1....    |
00000bf0  20 20 20 20 43 4d 50 20  20 20 20 20 72 30 2c 23  |    CMP     r0,#|
00000c00  33 32 0d 04 a6 22 20 20  20 20 20 20 20 20 42 4c  |32..."        BL|
00000c10  54 20 20 20 20 20 6d 61  6b 65 5f 69 6e 74 6f 5f  |T     make_into_|
00000c20  77 6f 72 64 0d 04 b0 19  20 20 20 20 20 20 20 20  |word....        |
00000c30  4d 4f 56 20 20 20 20 20  72 34 2c 72 37 0d 04 ba  |MOV     r4,r7...|
00000c40  19 20 20 20 20 20 20 20  20 4d 4f 56 20 20 20 20  |.        MOV    |
00000c50  20 72 35 2c 72 37 0d 04  c4 19 20 20 20 20 20 20  | r5,r7....      |
00000c60  20 20 4d 4f 56 20 20 20  20 20 72 36 2c 72 37 0d  |  MOV     r6,r7.|
00000c70  04 ce 0e 2e 66 69 6c 6c  5f 6c 6f 6f 70 0d 04 d8  |....fill_loop...|
00000c80  1a 20 20 20 20 20 20 20  20 a4 61 64 72 6c 28 31  |.        .adrl(1|
00000c90  34 2c 79 74 61 62 29 0d  04 e2 25 20 20 20 20 20  |4,ytab)...%     |
00000ca0  20 20 20 41 44 44 20 20  20 20 20 72 31 34 2c 72  |   ADD     r14,r|
00000cb0  31 34 2c 72 32 2c 41 53  4c 20 23 33 0d 04 ec 20  |14,r2,ASL #3... |
00000cc0  20 20 20 20 20 20 20 20  4c 44 4d 49 41 20 20 20  |        LDMIA   |
00000cd0  72 31 34 2c 7b 72 38 2c  72 31 30 7d 0d 04 f6 1a  |r14,{r8,r10}....|
00000ce0  20 20 20 20 20 20 20 20  43 4d 50 20 20 20 20 20  |        CMP     |
00000cf0  72 38 2c 72 31 30 0d 05  00 1b 20 20 20 20 20 20  |r8,r10....      |
00000d00  20 20 82 47 54 20 20 20  72 38 2c 72 38 2c 72 31  |  .GT   r8,r8,r1|
00000d10  30 0d 05 0a 1c 20 20 20  20 20 20 20 20 82 47 54  |0....        .GT|
00000d20  20 20 20 72 31 30 2c 72  38 2c 72 31 30 0d 05 14  |   r10,r8,r10...|
00000d30  1b 20 20 20 20 20 20 20  20 82 47 54 20 20 20 72  |.        .GT   r|
00000d40  38 2c 72 38 2c 72 31 30  0d 05 1e 24 20 20 20 20  |8,r8,r10...$    |
00000d50  20 20 20 20 4c 44 52 20  20 20 20 20 72 31 34 2c  |    LDR     r14,|
00000d60  5b 77 70 2c 23 47 57 4c  43 6f 6c 5d 0d 05 28 1b  |[wp,#GWLCol]..(.|
00000d70  20 20 20 20 20 20 20 20  43 4d 50 20 20 20 20 20  |        CMP     |
00000d80  72 31 30 2c 72 31 34 0d  05 32 1a 20 20 20 20 20  |r10,r14..2.     |
00000d90  20 20 20 42 4c 54 20 20  20 20 20 66 69 6c 6c 65  |   BLT     fille|
00000da0  64 0d 05 3c 1a 20 20 20  20 20 20 20 20 43 4d 50  |d..<.        CMP|
00000db0  20 20 20 20 20 72 38 2c  72 31 34 0d 05 46 1a 20  |     r8,r14..F. |
00000dc0  20 20 20 20 20 20 20 4d  4f 56 4c 54 20 20 20 72  |       MOVLT   r|
00000dd0  38 2c 72 31 34 0d 05 50  24 20 20 20 20 20 20 20  |8,r14..P$       |
00000de0  20 4c 44 52 20 20 20 20  20 72 31 34 2c 5b 77 70  | LDR     r14,[wp|
00000df0  2c 23 47 57 52 43 6f 6c  5d 0d 05 5a 1a 20 20 20  |,#GWRCol]..Z.   |
00000e00  20 20 20 20 20 43 4d 50  20 20 20 20 20 72 38 2c  |     CMP     r8,|
00000e10  72 31 34 0d 05 64 1a 20  20 20 20 20 20 20 20 42  |r14..d.        B|
00000e20  47 45 20 20 20 20 20 66  69 6c 6c 65 64 0d 05 6e  |GE     filled..n|
00000e30  1b 20 20 20 20 20 20 20  20 43 4d 50 20 20 20 20  |.        CMP    |
00000e40  20 72 31 30 2c 72 31 34  0d 05 78 1b 20 20 20 20  | r10,r14..x.    |
00000e50  20 20 20 20 4d 4f 56 47  54 20 20 20 72 31 30 2c  |    MOVGT   r10,|
00000e60  72 31 34 0d 05 82 1e 20  20 20 20 20 20 20 20 41  |r14....        A|
00000e70  44 44 20 20 20 20 20 72  31 30 2c 72 31 30 2c 23  |DD     r10,r10,#|
00000e80  31 0d 05 8c 25 20 20 20  20 20 20 20 20 4c 44 52  |1...%        LDR|
00000e90  20 20 20 20 20 72 31 34  2c 5b 77 70 2c 23 4c 6f  |     r14,[wp,#Lo|
00000ea0  67 32 42 50 50 5d 0d 05  96 23 20 20 20 20 20 20  |g2BPP]...#      |
00000eb0  20 20 4d 4f 56 20 20 20  20 20 72 31 30 2c 72 31  |  MOV     r10,r1|
00000ec0  30 2c 4c 53 4c 20 72 31  34 0d 05 a0 21 20 20 20  |0,LSL r14...!   |
00000ed0  20 20 20 20 20 4d 4f 56  20 20 20 20 20 72 38 2c  |     MOV     r8,|
00000ee0  72 38 2c 4c 53 4c 20 72  31 34 0d 05 aa 1b 20 20  |r8,LSL r14....  |
00000ef0  20 20 20 20 20 20 80 20  20 20 20 20 72 31 2c 72  |      .     r1,r|
00000f00  38 2c 23 33 31 0d 05 b4  19 20 20 20 20 20 20 20  |8,#31....       |
00000f10  20 4d 56 4e 20 20 20 20  20 72 30 2c 23 30 0d 05  | MVN     r0,#0..|
00000f20  be 20 20 20 20 20 20 20  20 20 4d 4f 56 20 20 20  |.         MOV   |
00000f30  20 20 72 30 2c 72 30 2c  4c 53 52 20 72 31 0d 05  |  r0,r0,LSR r1..|
00000f40  c8 20 20 20 20 20 20 20  20 20 4d 4f 56 20 20 20  |.         MOV   |
00000f50  20 20 72 31 2c 72 30 2c  4c 53 4c 20 72 31 0d 05  |  r1,r0,LSL r1..|
00000f60  d2 1d 20 20 20 20 20 20  20 20 42 49 43 20 20 20  |..        BIC   |
00000f70  20 20 72 38 2c 72 38 2c  23 33 31 0d 05 dc 1e 20  |  r8,r8,#31.... |
00000f80  20 20 20 20 20 20 20 53  55 42 53 20 20 20 20 72  |       SUBS    r|
00000f90  31 30 2c 72 31 30 2c 72  38 0d 05 e6 1a 20 20 20  |10,r10,r8....   |
00000fa0  20 20 20 20 20 42 4c 45  20 20 20 20 20 66 69 6c  |     BLE     fil|
00000fb0  6c 65 64 0d 05 f0 20 20  20 20 20 20 20 20 20 4d  |led...         M|
00000fc0  4f 56 20 20 20 20 20 72  38 2c 72 38 2c 4c 53 52  |OV     r8,r8,LSR|
00000fd0  20 23 33 0d 05 fa 28 20  20 20 20 20 20 20 20 4c  | #3...(        L|
00000fe0  44 52 20 20 20 20 20 72  39 2c 5b 77 70 2c 23 53  |DR     r9,[wp,#S|
00000ff0  63 72 65 65 6e 53 74 61  72 74 5d 0d 06 04 28 20  |creenStart]...( |
00001000  20 20 20 20 20 20 20 4c  44 52 20 20 20 20 20 72  |       LDR     r|
00001010  31 34 2c 5b 77 70 2c 23  59 57 69 6e 64 4c 69 6d  |14,[wp,#YWindLim|
00001020  69 74 5d 0d 06 0e 1d 20  20 20 20 20 20 20 20 52  |it]....        R|
00001030  53 42 20 20 20 20 20 72  30 2c 72 32 2c 72 31 34  |SB     r0,r2,r14|
00001040  0d 06 18 28 20 20 20 20  20 20 20 20 4c 44 52 20  |...(        LDR |
00001050  20 20 20 20 72 31 34 2c  5b 77 70 2c 23 4c 69 6e  |    r14,[wp,#Lin|
00001060  65 4c 65 6e 67 74 68 5d  0d 06 22 20 20 20 20 20  |eLength].."     |
00001070  20 20 20 20 4d 4c 41 20  20 20 20 20 72 39 2c 72  |    MLA     r9,r|
00001080  30 2c 72 31 34 2c 72 39  0d 06 2c 1c 20 20 20 20  |0,r14,r9..,.    |
00001090  20 20 20 20 41 44 44 20  20 20 20 20 72 39 2c 72  |    ADD     r9,r|
000010a0  39 2c 72 38 0d 06 36 1b  20 20 20 20 20 20 20 20  |9,r8..6.        |
000010b0  43 4d 50 20 20 20 20 20  72 31 30 2c 23 33 32 0d  |CMP     r10,#32.|
000010c0  06 40 1f 20 20 20 20 20  20 20 20 52 53 42 4c 45  |.@.        RSBLE|
000010d0  20 20 20 72 31 34 2c 72  31 30 2c 23 33 32 0d 06  |   r14,r10,#32..|
000010e0  4a 21 20 20 20 20 20 20  20 20 4d 4f 56 4c 45 20  |J!        MOVLE |
000010f0  20 20 72 31 2c 72 31 2c  4c 53 4c 20 72 31 34 0d  |  r1,r1,LSL r14.|
00001100  06 54 21 20 20 20 20 20  20 20 20 4d 4f 56 4c 45  |.T!        MOVLE|
00001110  20 20 20 72 31 2c 72 31  2c 4c 53 52 20 72 31 34  |   r1,r1,LSR r14|
00001120  0d 06 5e 1c 20 20 20 20  20 20 20 20 4c 44 52 20  |..^.        LDR |
00001130  20 20 20 20 72 31 34 2c  5b 72 39 5d 0d 06 68 1e  |    r14,[r9]..h.|
00001140  20 20 20 20 20 20 20 20  42 49 43 20 20 20 20 20  |        BIC     |
00001150  72 31 34 2c 72 31 34 2c  72 31 0d 06 72 1a 20 20  |r14,r14,r1..r.  |
00001160  20 20 20 20 20 20 80 20  20 20 20 20 72 31 2c 72  |      .     r1,r|
00001170  34 2c 72 31 0d 06 7c 1d  20 20 20 20 20 20 20 20  |4,r1..|.        |
00001180  84 52 20 20 20 20 20 72  31 34 2c 72 31 34 2c 72  |.R     r14,r14,r|
00001190  31 0d 06 86 1f 20 20 20  20 20 20 20 20 53 54 52  |1....        STR|
000011a0  20 20 20 20 20 72 31 34  2c 5b 72 39 5d 2c 23 34  |     r14,[r9],#4|
000011b0  0d 06 90 1f 20 20 20 20  20 20 20 20 53 55 42 53  |....        SUBS|
000011c0  20 20 20 20 72 31 30 2c  72 31 30 2c 23 33 32 0d  |    r10,r10,#32.|
000011d0  06 9a 1a 20 20 20 20 20  20 20 20 42 4c 45 20 20  |...        BLE  |
000011e0  20 20 20 66 69 6c 6c 65  64 0d 06 a4 0f 2e 66 69  |   filled.....fi|
000011f0  6c 6c 5f 6c 6f 6f 70 32  0d 06 ae 1c 20 20 20 20  |ll_loop2....    |
00001200  20 20 20 20 43 4d 50 20  20 20 20 20 72 31 30 2c  |    CMP     r10,|
00001210  23 31 32 38 0d 06 b8 1f  20 20 20 20 20 20 20 20  |#128....        |
00001220  53 54 4d 47 45 49 41 20  72 39 21 2c 7b 72 34 2d  |STMGEIA r9!,{r4-|
00001230  72 37 7d 0d 06 c2 20 20  20 20 20 20 20 20 20 53  |r7}...         S|
00001240  55 42 47 45 20 20 20 72  31 30 2c 72 31 30 2c 23  |UBGE   r10,r10,#|
00001250  31 32 38 0d 06 cc 1e 20  20 20 20 20 20 20 20 42  |128....        B|
00001260  47 45 20 20 20 20 20 66  69 6c 6c 5f 6c 6f 6f 70  |GE     fill_loop|
00001270  32 0d 06 d6 1b 20 20 20  20 20 20 20 20 43 4d 50  |2....        CMP|
00001280  20 20 20 20 20 72 31 30  2c 23 36 34 0d 06 e0 1f  |     r10,#64....|
00001290  20 20 20 20 20 20 20 20  53 54 4d 47 45 49 41 20  |        STMGEIA |
000012a0  72 39 21 2c 7b 72 34 2d  72 35 7d 0d 06 ea 1f 20  |r9!,{r4-r5}.... |
000012b0  20 20 20 20 20 20 20 53  55 42 47 45 20 20 20 72  |       SUBGE   r|
000012c0  31 30 2c 72 31 30 2c 23  36 34 0d 06 f4 1b 20 20  |10,r10,#64....  |
000012d0  20 20 20 20 20 20 43 4d  50 20 20 20 20 20 72 31  |      CMP     r1|
000012e0  30 2c 23 33 32 0d 06 fe  1e 20 20 20 20 20 20 20  |0,#32....       |
000012f0  20 53 54 52 47 45 20 20  20 72 34 2c 5b 72 39 5d  | STRGE   r4,[r9]|
00001300  2c 23 34 0d 07 08 1f 20  20 20 20 20 20 20 20 53  |,#4....        S|
00001310  55 42 47 45 20 20 20 72  31 30 2c 72 31 30 2c 23  |UBGE   r10,r10,#|
00001320  33 32 0d 07 12 10 2e 66  69 6e 69 73 68 5f 66 69  |32.....finish_fi|
00001330  6c 6c 0d 07 1c 1a 20 20  20 20 20 20 20 20 43 4d  |ll....        CM|
00001340  50 20 20 20 20 20 72 31  30 2c 23 30 0d 07 26 1a  |P     r10,#0..&.|
00001350  20 20 20 20 20 20 20 20  42 4c 45 20 20 20 20 20  |        BLE     |
00001360  66 69 6c 6c 65 64 0d 07  30 19 20 20 20 20 20 20  |filled..0.      |
00001370  20 20 4d 56 4e 20 20 20  20 20 72 30 2c 23 30 0d  |  MVN     r0,#0.|
00001380  07 3a 1c 20 20 20 20 20  20 20 20 4c 44 52 20 20  |.:.        LDR  |
00001390  20 20 20 72 31 34 2c 5b  72 39 5d 0d 07 44 24 20  |   r14,[r9]..D$ |
000013a0  20 20 20 20 20 20 20 80  20 20 20 20 20 72 31 34  |       .     r14|
000013b0  2c 72 31 34 2c 72 30 2c  4c 53 4c 20 72 31 30 0d  |,r14,r0,LSL r10.|
000013c0  07 4e 1f 20 20 20 20 20  20 20 20 52 53 42 20 20  |.N.        RSB  |
000013d0  20 20 20 72 31 30 2c 72  31 30 2c 23 33 32 0d 07  |   r10,r10,#32..|
000013e0  58 25 20 20 20 20 20 20  20 20 84 52 20 20 20 20  |X%        .R    |
000013f0  20 72 31 34 2c 72 31 34  2c 72 34 2c 4c 53 52 20  | r14,r14,r4,LSR |
00001400  72 31 30 0d 07 62 1c 20  20 20 20 20 20 20 20 53  |r10..b.        S|
00001410  54 52 20 20 20 20 20 72  31 34 2c 5b 72 39 5d 0d  |TR     r14,[r9].|
00001420  07 6c 0b 2e 66 69 6c 6c  65 64 0d 07 76 1c 20 20  |.l..filled..v.  |
00001430  20 20 20 20 20 20 41 44  44 20 20 20 20 20 72 32  |      ADD     r2|
00001440  2c 72 32 2c 23 31 0d 07  80 19 20 20 20 20 20 20  |,r2,#1....      |
00001450  20 20 43 4d 50 20 20 20  20 20 72 32 2c 72 33 0d  |  CMP     r2,r3.|
00001460  07 8a 1d 20 20 20 20 20  20 20 20 42 4c 45 20 20  |...        BLE  |
00001470  20 20 20 66 69 6c 6c 5f  6c 6f 6f 70 0d 07 94 25  |   fill_loop...%|
00001480  20 20 20 20 20 20 20 20  4c 44 4d 46 44 20 20 20  |        LDMFD   |
00001490  28 73 70 29 21 2c 7b 72  30 2d 72 31 32 2c 70 63  |(sp)!,{r0-r12,pc|
000014a0  7d 0d 07 9e 04 0d 07 a8  0c 2e 6f 73 5f 70 6c 6f  |}.........os_plo|
000014b0  74 0d 07 b2 19 20 20 20  20 20 20 20 20 4d 4f 56  |t....        MOV|
000014c0  20 20 20 20 20 72 30 2c  72 32 0d 07 bc 1d 20 20  |     r0,r2....  |
000014d0  20 20 20 20 20 20 80 20  20 20 20 20 72 31 34 2c  |      .     r14,|
000014e0  72 33 2c 23 25 31 31 0d  07 c6 1a 20 20 20 20 20  |r3,#%11....     |
000014f0  20 20 20 43 4d 50 20 20  20 20 20 72 31 34 2c 23  |   CMP     r14,#|
00001500  33 0d 07 d0 24 20 20 20  20 20 20 20 20 41 44 44  |3...$        ADD|
00001510  4c 54 20 20 20 70 63 2c  70 63 2c 72 31 34 2c 4c  |LT   pc,pc,r14,L|
00001520  53 4c 20 23 33 0d 07 da  23 20 20 20 20 20 20 20  |SL #3...#       |
00001530  20 42 20 20 20 20 20 20  20 64 6f 6e 74 5f 73 65  | B       dont_se|
00001540  74 5f 63 6f 6c 6f 75 72  0d 07 e4 35 20 20 20 20  |t_colour...5    |
00001550  20 20 20 20 53 57 49 20  20 20 20 20 22 58 43 6f  |    SWI     "XCo|
00001560  6c 6f 75 72 54 72 61 6e  73 5f 43 6f 6c 6f 75 72  |lourTrans_Colour|
00001570  4e 75 6d 62 65 72 54 6f  47 43 4f 4c 22 0d 07 ee  |NumberToGCOL"...|
00001580  1e 20 20 20 20 20 20 20  20 42 20 20 20 20 20 20  |.        B      |
00001590  20 73 65 74 5f 63 6f 6c  6f 75 72 0d 07 f8 1e 20  | set_colour.... |
000015a0  20 20 20 20 20 20 20 42  20 20 20 20 20 20 20 73  |       B       s|
000015b0  65 74 5f 63 6f 6c 6f 75  72 0d 08 02 15 20 20 20  |et_colour....   |
000015c0  20 20 20 20 20 44 43 44  20 20 20 20 20 30 0d 08  |     DCD     0..|
000015d0  0c 2d 20 20 20 20 20 20  20 20 53 57 49 20 20 20  |.-        SWI   |
000015e0  20 20 22 58 43 6f 6c 6f  75 72 54 72 61 6e 73 5f  |  "XColourTrans_|
000015f0  52 65 74 75 72 6e 47 43  4f 4c 22 0d 08 16 1e 20  |ReturnGCOL".... |
00001600  20 20 20 20 20 20 20 42  20 20 20 20 20 20 20 73  |       B       s|
00001610  65 74 5f 63 6f 6c 6f 75  72 0d 08 20 0f 2e 73 65  |et_colour.. ..se|
00001620  74 5f 63 6f 6c 6f 75 72  0d 08 2a 19 20 20 20 20  |t_colour..*.    |
00001630  20 20 20 20 4d 4f 56 20  20 20 20 20 72 37 2c 72  |    MOV     r7,r|
00001640  30 0d 08 34 24 20 20 20  20 20 20 20 20 4c 44 52  |0..4$        LDR|
00001650  20 20 20 20 20 72 38 2c  5b 77 70 2c 23 4c 6f 67  |     r8,[wp,#Log|
00001660  32 42 50 50 5d 0d 08 3e  19 20 20 20 20 20 20 20  |2BPP]..>.       |
00001670  20 43 4d 50 20 20 20 20  20 72 38 2c 23 33 0d 08  | CMP     r8,#3..|
00001680  48 1d 20 20 20 20 20 20  20 20 ec 51 20 20 20 72  |H.        .Q   r|
00001690  30 2c 72 30 2c 4c 53 52  20 23 32 0d 08 52 1b 20  |0,r0,LSR #2..R. |
000016a0  20 20 20 20 20 20 20 53  57 49 20 20 20 20 20 26  |       SWI     &|
000016b0  31 30 30 2b 31 38 0d 08  5c 1a 20 20 20 20 20 20  |100+18..\.      |
000016c0  20 20 53 57 49 20 20 20  20 20 26 31 30 30 2b 30  |  SWI     &100+0|
000016d0  0d 08 66 20 20 20 20 20  20 20 20 20 53 57 49 20  |..f         SWI |
000016e0  20 20 20 20 22 58 4f 53  5f 57 72 69 74 65 43 22  |    "XOS_WriteC"|
000016f0  0d 08 70 19 20 20 20 20  20 20 20 20 43 4d 50 20  |..p.        CMP |
00001700  20 20 20 20 72 38 2c 23  33 0d 08 7a 23 20 20 20  |    r8,#3..z#   |
00001710  20 20 20 20 20 42 4e 45  20 20 20 20 20 64 6f 6e  |     BNE     don|
00001720  74 5f 73 65 74 5f 63 6f  6c 6f 75 72 0d 08 84 1d  |t_set_colour....|
00001730  20 20 20 20 20 20 20 20  53 55 42 20 20 20 20 20  |        SUB     |
00001740  73 70 2c 73 70 2c 23 31  32 0d 08 8e 20 20 20 20  |sp,sp,#12...    |
00001750  20 20 20 20 20 41 44 52  20 20 20 20 20 72 31 34  |     ADR     r14|
00001760  2c 74 69 6e 74 5f 76 64  75 0d 08 98 20 20 20 20  |,tint_vdu...    |
00001770  20 20 20 20 20 4c 44 4d  49 41 20 20 20 72 31 34  |     LDMIA   r14|
00001780  2c 7b 72 39 2d 72 31 31  7d 0d 08 a2 1a 20 20 20  |,{r9-r11}....   |
00001790  20 20 20 20 20 80 20 20  20 20 20 72 30 2c 72 37  |     .     r0,r7|
000017a0  2c 23 33 0d 08 ac 23 20  20 20 20 20 20 20 20 84  |,#3...#        .|
000017b0  52 20 20 20 20 20 72 39  2c 72 39 2c 72 30 2c 4c  |R     r9,r9,r0,L|
000017c0  53 4c 20 23 33 30 0d 08  b6 1f 20 20 20 20 20 20  |SL #30....      |
000017d0  20 20 53 54 4d 49 41 20  20 20 73 70 2c 7b 72 39  |  STMIA   sp,{r9|
000017e0  2d 72 31 31 7d 0d 08 c0  19 20 20 20 20 20 20 20  |-r11}....       |
000017f0  20 4d 4f 56 20 20 20 20  20 72 30 2c 73 70 0d 08  | MOV     r0,sp..|
00001800  ca 1a 20 20 20 20 20 20  20 20 4d 4f 56 20 20 20  |..        MOV   |
00001810  20 20 72 31 2c 23 31 30  0d 08 d4 20 20 20 20 20  |  r1,#10...     |
00001820  20 20 20 20 53 57 49 20  20 20 20 20 22 58 4f 53  |    SWI     "XOS|
00001830  5f 57 72 69 74 65 4e 22  0d 08 de 1d 20 20 20 20  |_WriteN"....    |
00001840  20 20 20 20 41 44 44 20  20 20 20 20 73 70 2c 73  |    ADD     sp,s|
00001850  70 2c 23 31 32 0d 08 e8  14 2e 64 6f 6e 74 5f 73  |p,#12.....dont_s|
00001860  65 74 5f 63 6f 6c 6f 75  72 0d 08 f2 19 20 20 20  |et_colour....   |
00001870  20 20 20 20 20 4d 4f 56  20 20 20 20 20 72 34 2c  |     MOV     r4,|
00001880  23 31 0d 08 fc 1c 20 20  20 20 20 20 20 20 53 55  |#1....        SU|
00001890  42 20 20 20 20 20 72 36  2c 72 36 2c 23 32 0d 09  |B     r6,r6,#2..|
000018a0  06 11 2e 6f 73 5f 70 6c  6f 74 5f 6c 6f 6f 70 0d  |...os_plot_loop.|
000018b0  09 10 19 20 20 20 20 20  20 20 20 4d 4f 56 20 20  |...        MOV  |
000018c0  20 20 20 72 30 2c 23 34  0d 09 1a 1e 20 20 20 20  |   r0,#4....    |
000018d0  20 20 20 20 4c 44 4d 49  41 20 20 20 72 35 2c 7b  |    LDMIA   r5,{|
000018e0  72 31 2c 72 32 7d 0d 09  24 1e 20 20 20 20 20 20  |r1,r2}..$.      |
000018f0  20 20 53 57 49 20 20 20  20 20 22 58 4f 53 5f 50  |  SWI     "XOS_P|
00001900  6c 6f 74 22 0d 09 2e 24  20 20 20 20 20 20 20 20  |lot"...$        |
00001910  41 44 44 20 20 20 20 20  72 31 30 2c 72 35 2c 72  |ADD     r10,r5,r|
00001920  34 2c 4c 53 4c 20 23 33  0d 09 38 20 20 20 20 20  |4,LSL #3..8     |
00001930  20 20 20 20 4c 44 4d 49  41 20 20 20 72 31 30 21  |    LDMIA   r10!|
00001940  2c 7b 72 31 2c 72 32 7d  0d 09 42 1e 20 20 20 20  |,{r1,r2}..B.    |
00001950  20 20 20 20 53 57 49 20  20 20 20 20 22 58 4f 53  |    SWI     "XOS|
00001960  5f 50 6c 6f 74 22 0d 09  4c 1a 20 20 20 20 20 20  |_Plot"..L.      |
00001970  20 20 4d 4f 56 20 20 20  20 20 72 30 2c 23 38 35  |  MOV     r0,#85|
00001980  0d 09 56 1f 20 20 20 20  20 20 20 20 4c 44 4d 49  |..V.        LDMI|
00001990  41 20 20 20 72 31 30 2c  7b 72 31 2c 72 32 7d 0d  |A   r10,{r1,r2}.|
000019a0  09 60 1e 20 20 20 20 20  20 20 20 53 57 49 20 20  |.`.        SWI  |
000019b0  20 20 20 22 58 4f 53 5f  50 6c 6f 74 22 0d 09 6a  |   "XOS_Plot"..j|
000019c0  1c 20 20 20 20 20 20 20  20 41 44 44 20 20 20 20  |.        ADD    |
000019d0  20 72 34 2c 72 34 2c 23  31 0d 09 74 1c 20 20 20  | r4,r4,#1..t.   |
000019e0  20 20 20 20 20 53 55 42  53 20 20 20 20 72 36 2c  |     SUBS    r6,|
000019f0  72 36 2c 23 31 0d 09 7e  20 20 20 20 20 20 20 20  |r6,#1..~        |
00001a00  20 42 47 54 20 20 20 20  20 6f 73 5f 70 6c 6f 74  | BGT     os_plot|
00001a10  5f 6c 6f 6f 70 0d 09 88  25 20 20 20 20 20 20 20  |_loop...%       |
00001a20  20 4c 44 4d 46 44 20 20  20 28 73 70 29 21 2c 7b  | LDMFD   (sp)!,{|
00001a30  72 30 2d 72 31 32 2c 70  63 7d 0d 09 92 04 0d 09  |r0-r12,pc}......|
00001a40  9c 0d 2e 74 69 6e 74 5f  76 64 75 0d 09 a6 16 20  |...tint_vdu.... |
00001a50  20 20 20 20 20 20 20 44  43 42 20 20 20 20 20 32  |       DCB     2|
00001a60  33 0d 09 b0 16 20 20 20  20 20 20 20 20 44 43 42  |3....        DCB|
00001a70  20 20 20 20 20 31 37 0d  09 ba 15 20 20 20 20 20  |     17....     |
00001a80  20 20 20 44 43 42 20 20  20 20 20 32 0d 09 c4 15  |   DCB     2....|
00001a90  20 20 20 20 20 20 20 20  44 43 42 20 20 20 20 20  |        DCB     |
00001aa0  30 0d 09 ce 15 20 20 20  20 20 20 20 20 44 43 44  |0....        DCD|
00001ab0  20 20 20 20 20 30 0d 09  d8 15 20 20 20 20 20 20  |     0....      |
00001ac0  20 20 44 43 44 20 20 20  20 20 30 0d 09 e2 04 0d  |  DCD     0.....|
00001ad0  09 ec 26 2e 6c 69 6e 65  20 20 20 53 54 4d 46 44  |..&.line   STMFD|
00001ae0  20 20 20 28 73 70 29 21  2c 7b 72 31 2d 72 36 2c  |   (sp)!,{r1-r6,|
00001af0  6c 69 6e 6b 7d 0d 09 f6  1a 20 20 20 20 20 20 20  |link}....       |
00001b00  20 43 4d 50 20 20 20 20  20 72 38 2c 72 31 30 0d  | CMP     r8,r10.|
00001b10  0a 00 22 20 20 20 20 20  20 20 20 53 54 4d 47 45  |.."        STMGE|
00001b20  46 44 20 28 73 70 29 21  2c 7b 72 37 2d 72 31 30  |FD (sp)!,{r7-r10|
00001b30  7d 0d 0a 0a 22 20 20 20  20 20 20 20 20 4c 44 4d  |}..."        LDM|
00001b40  47 45 46 44 20 28 73 70  29 21 2c 7b 72 39 2d 72  |GEFD (sp)!,{r9-r|
00001b50  31 30 7d 0d 0a 14 21 20  20 20 20 20 20 20 20 4c  |10}...!        L|
00001b60  44 4d 47 45 46 44 20 28  73 70 29 21 2c 7b 72 37  |DMGEFD (sp)!,{r7|
00001b70  2d 72 38 7d 0d 0a 1e 1c  20 20 20 20 20 20 20 20  |-r8}....        |
00001b80  53 55 42 53 20 20 20 20  72 35 2c 72 39 2c 72 37  |SUBS    r5,r9,r7|
00001b90  0d 0a 28 1c 20 20 20 20  20 20 20 20 52 53 42 4d  |..(.        RSBM|
00001ba0  49 20 20 20 72 35 2c 72  35 2c 23 30 0d 0a 32 1d  |I   r5,r5,#0..2.|
00001bb0  20 20 20 20 20 20 20 20  53 55 42 53 20 20 20 20  |        SUBS    |
00001bc0  72 36 2c 72 31 30 2c 72  38 0d 0a 3c 19 20 20 20  |r6,r10,r8..<.   |
00001bd0  20 20 20 20 20 43 4d 50  20 20 20 20 20 72 36 2c  |     CMP     r6,|
00001be0  72 35 0d 0a 46 19 20 20  20 20 20 20 20 20 42 47  |r5..F.        BG|
00001bf0  54 20 20 20 20 20 6c 69  6e 65 32 0d 0a 50 04 0d  |T     line2..P..|
00001c00  0a 5a 23 20 20 20 20 20  20 20 20 52 53 42 20 20  |.Z#        RSB  |
00001c10  20 20 20 72 32 2c 72 35  2c 72 36 2c 41 53 4c 20  |   r2,r5,r6,ASL |
00001c20  23 31 0d 0a 64 1c 20 20  20 20 20 20 20 20 53 55  |#1..d.        SU|
00001c30  42 20 20 20 20 20 72 34  2c 72 36 2c 72 35 0d 0a  |B     r4,r6,r5..|
00001c40  6e 1a 20 20 20 20 20 20  20 20 43 4d 50 20 20 20  |n.        CMP   |
00001c50  20 20 72 38 2c 72 31 30  0d 0a 78 19 20 20 20 20  |  r8,r10..x.    |
00001c60  20 20 20 20 4d 4f 56 47  45 20 20 20 72 35 2c 23  |    MOVGE   r5,#|
00001c70  31 0d 0a 82 19 20 20 20  20 20 20 20 20 4d 56 4e  |1....        MVN|
00001c80  4c 54 20 20 20 72 35 2c  23 30 0d 0a 8c 19 20 20  |LT   r5,#0....  |
00001c90  20 20 20 20 20 20 43 4d  50 20 20 20 20 20 72 37  |      CMP     r7|
00001ca0  2c 72 39 0d 0a 96 19 20  20 20 20 20 20 20 20 4d  |,r9....        M|
00001cb0  4f 56 47 54 20 20 20 72  33 2c 72 37 0d 0a a0 19  |OVGT   r3,r7....|
00001cc0  20 20 20 20 20 20 20 20  4d 4f 56 47 54 20 20 20  |        MOVGT   |
00001cd0  72 37 2c 72 39 0d 0a aa  1a 20 20 20 20 20 20 20  |r7,r9....       |
00001ce0  20 4d 4f 56 47 54 20 20  20 72 38 2c 72 31 30 0d  | MOVGT   r8,r10.|
00001cf0  0a b4 1c 20 20 20 20 20  20 20 20 52 53 42 4c 45  |...        RSBLE|
00001d00  20 20 20 72 35 2c 72 35  2c 23 30 0d 0a be 19 20  |   r5,r5,#0.... |
00001d10  20 20 20 20 20 20 20 4d  4f 56 4c 45 20 20 20 72  |       MOVLE   r|
00001d20  33 2c 72 39 0d 0a c8 0e  2e 6c 69 6e 65 5f 6c 6f  |3,r9.....line_lo|
00001d30  6f 70 0d 0a d2 1d 20 20  20 20 20 20 20 20 43 4d  |op....        CM|
00001d40  50 20 20 20 20 20 72 38  2c 23 6d 61 78 5f 79 0d  |P     r8,#max_y.|
00001d50  0a dc 26 20 20 20 20 20  20 20 20 53 54 52 4c 4f  |..&        STRLO|
00001d60  20 20 20 72 37 2c 5b 72  31 31 2c 72 38 2c 41 53  |   r7,[r11,r8,AS|
00001d70  4c 20 23 33 5d 0d 0a e6  19 20 20 20 20 20 20 20  |L #3]....       |
00001d80  20 43 4d 50 20 20 20 20  20 72 37 2c 72 33 0d 0a  | CMP     r7,r3..|
00001d90  f0 24 20 20 20 20 20 20  20 20 4c 44 4d 47 45 46  |.$        LDMGEF|
00001da0  44 20 28 73 70 29 21 2c  7b 72 31 2d 72 36 2c 70  |D (sp)!,{r1-r6,p|
00001db0  63 7d 0d 0a fa 1c 20 20  20 20 20 20 20 20 41 44  |c}....        AD|
00001dc0  44 20 20 20 20 20 72 37  2c 72 37 2c 23 31 0d 0b  |D     r7,r7,#1..|
00001dd0  04 19 20 20 20 20 20 20  20 20 43 4d 50 20 20 20  |..        CMP   |
00001de0  20 20 72 32 2c 23 30 0d  0b 0e 23 20 20 20 20 20  |  r2,#0...#     |
00001df0  20 20 20 41 44 44 4c 54  20 20 20 72 32 2c 72 32  |   ADDLT   r2,r2|
00001e00  2c 72 36 2c 41 53 4c 20  23 31 0d 0b 18 1c 20 20  |,r6,ASL #1....  |
00001e10  20 20 20 20 20 20 41 44  44 47 45 20 20 20 72 38  |      ADDGE   r8|
00001e20  2c 72 38 2c 72 35 0d 0b  22 23 20 20 20 20 20 20  |,r8,r5.."#      |
00001e30  20 20 41 44 44 47 45 20  20 20 72 32 2c 72 32 2c  |  ADDGE   r2,r2,|
00001e40  72 34 2c 41 53 4c 20 23  31 0d 0b 2c 1d 20 20 20  |r4,ASL #1..,.   |
00001e50  20 20 20 20 20 42 20 20  20 20 20 20 20 6c 69 6e  |     B       lin|
00001e60  65 5f 6c 6f 6f 70 0d 0b  36 04 0d 0b 40 0a 2e 6c  |e_loop..6...@..l|
00001e70  69 6e 65 32 0d 0b 4a 23  20 20 20 20 20 20 20 20  |ine2..J#        |
00001e80  52 53 42 20 20 20 20 20  72 32 2c 72 36 2c 72 35  |RSB     r2,r6,r5|
00001e90  2c 41 53 4c 20 23 31 0d  0b 54 1c 20 20 20 20 20  |,ASL #1..T.     |
00001ea0  20 20 20 53 55 42 20 20  20 20 20 72 34 2c 72 35  |   SUB     r4,r5|
00001eb0  2c 72 36 0d 0b 5e 19 20  20 20 20 20 20 20 20 43  |,r6..^.        C|
00001ec0  4d 50 20 20 20 20 20 72  37 2c 72 39 0d 0b 68 19  |MP     r7,r9..h.|
00001ed0  20 20 20 20 20 20 20 20  4d 4f 56 47 45 20 20 20  |        MOVGE   |
00001ee0  72 36 2c 23 31 0d 0b 72  19 20 20 20 20 20 20 20  |r6,#1..r.       |
00001ef0  20 4d 56 4e 4c 54 20 20  20 72 36 2c 23 30 0d 0b  | MVNLT   r6,#0..|
00001f00  7c 1a 20 20 20 20 20 20  20 20 43 4d 50 20 20 20  ||.        CMP   |
00001f10  20 20 72 38 2c 72 31 30  0d 0b 86 19 20 20 20 20  |  r8,r10....    |
00001f20  20 20 20 20 4d 4f 56 47  54 20 20 20 72 33 2c 72  |    MOVGT   r3,r|
00001f30  38 0d 0b 90 1a 20 20 20  20 20 20 20 20 4d 4f 56  |8....        MOV|
00001f40  47 54 20 20 20 72 38 2c  72 31 30 0d 0b 9a 19 20  |GT   r8,r10.... |
00001f50  20 20 20 20 20 20 20 4d  4f 56 47 54 20 20 20 72  |       MOVGT   r|
00001f60  37 2c 72 39 0d 0b a4 1c  20 20 20 20 20 20 20 20  |7,r9....        |
00001f70  52 53 42 4c 45 20 20 20  72 36 2c 72 36 2c 23 30  |RSBLE   r6,r6,#0|
00001f80  0d 0b ae 1a 20 20 20 20  20 20 20 20 4d 4f 56 4c  |....        MOVL|
00001f90  45 20 20 20 72 33 2c 72  31 30 0d 0b b8 0f 2e 6c  |E   r3,r10.....l|
00001fa0  69 6e 65 5f 6c 6f 6f 70  32 0d 0b c2 1d 20 20 20  |ine_loop2....   |
00001fb0  20 20 20 20 20 43 4d 50  20 20 20 20 20 72 38 2c  |     CMP     r8,|
00001fc0  23 6d 61 78 5f 79 0d 0b  cc 26 20 20 20 20 20 20  |#max_y...&      |
00001fd0  20 20 53 54 52 4c 4f 20  20 20 72 37 2c 5b 72 31  |  STRLO   r7,[r1|
00001fe0  31 2c 72 38 2c 41 53 4c  20 23 33 5d 0d 0b d6 19  |1,r8,ASL #3]....|
00001ff0  20 20 20 20 20 20 20 20  43 4d 50 20 20 20 20 20  |        CMP     |
00002000  72 38 2c 72 33 0d 0b e0  24 20 20 20 20 20 20 20  |r8,r3...$       |
00002010  20 4c 44 4d 47 45 46 44  20 28 73 70 29 21 2c 7b  | LDMGEFD (sp)!,{|
00002020  72 31 2d 72 36 2c 70 63  7d 0d 0b ea 1c 20 20 20  |r1-r6,pc}....   |
00002030  20 20 20 20 20 41 44 44  20 20 20 20 20 72 38 2c  |     ADD     r8,|
00002040  72 38 2c 23 31 0d 0b f4  19 20 20 20 20 20 20 20  |r8,#1....       |
00002050  20 43 4d 50 20 20 20 20  20 72 32 2c 23 30 0d 0b  | CMP     r2,#0..|
00002060  fe 23 20 20 20 20 20 20  20 20 41 44 44 4c 54 20  |.#        ADDLT |
00002070  20 20 72 32 2c 72 32 2c  72 35 2c 41 53 4c 20 23  |  r2,r2,r5,ASL #|
00002080  31 0d 0c 08 1c 20 20 20  20 20 20 20 20 41 44 44  |1....        ADD|
00002090  47 45 20 20 20 72 37 2c  72 37 2c 72 36 0d 0c 12  |GE   r7,r7,r6...|
000020a0  23 20 20 20 20 20 20 20  20 41 44 44 47 45 20 20  |#        ADDGE  |
000020b0  20 72 32 2c 72 32 2c 72  34 2c 41 53 4c 20 23 31  | r2,r2,r4,ASL #1|
000020c0  0d 0c 1c 1e 20 20 20 20  20 20 20 20 42 20 20 20  |....        B   |
000020d0  20 20 20 20 6c 69 6e 65  5f 6c 6f 6f 70 32 0d 0c  |    line_loop2..|
000020e0  26 04 0d 0c 30 17 2e 76  64 75 5f 69 6e 20 44 43  |&...0..vdu_in DC|
000020f0  44 20 20 20 20 20 31 34  38 0d 0c 3a 15 20 20 20  |D     148..:.   |
00002100  20 20 20 20 20 44 43 44  20 20 20 20 20 34 0d 0c  |     DCD     4..|
00002110  44 15 20 20 20 20 20 20  20 20 44 43 44 20 20 20  |D.        DCD   |
00002120  20 20 35 0d 0c 4e 15 20  20 20 20 20 20 20 20 44  |  5..N.        D|
00002130  43 44 20 20 20 20 20 36  0d 0c 58 17 20 20 20 20  |CD     6..X.    |
00002140  20 20 20 20 44 43 44 20  20 20 20 20 31 32 38 0d  |    DCD     128.|
00002150  0c 62 17 20 20 20 20 20  20 20 20 44 43 44 20 20  |.b.        DCD  |
00002160  20 20 20 31 32 39 0d 0c  6c 17 20 20 20 20 20 20  |   129..l.      |
00002170  20 20 44 43 44 20 20 20  20 20 31 33 30 0d 0c 76  |  DCD     130..v|
00002180  17 20 20 20 20 20 20 20  20 44 43 44 20 20 20 20  |.        DCD    |
00002190  20 31 33 31 0d 0c 80 16  20 20 20 20 20 20 20 20  | 131....        |
000021a0  44 43 44 20 20 20 20 20  31 32 0d 0c 8a 15 20 20  |DCD     12....  |
000021b0  20 20 20 20 20 20 44 43  44 20 20 20 20 20 39 0d  |      DCD     9.|
000021c0  0c 94 17 20 20 20 20 20  20 20 20 44 43 44 20 20  |...        DCD  |
000021d0  20 20 20 31 33 36 0d 0c  9e 17 20 20 20 20 20 20  |   136....      |
000021e0  20 20 44 43 44 20 20 20  20 20 31 33 37 0d 0c a8  |  DCD     137...|
000021f0  16 20 20 20 20 20 20 20  20 44 43 44 20 20 20 20  |.        DCD    |
00002200  20 2d 31 0d 0c b2 05 5d  0d 0c bc 06 3d 30 0d ff  | -1....]....=0..|
00002210