Home » Archimedes archive » Acorn User » AU 1995-02.adf » !Dark_DarkHorse » !DarkHorse/WorkHorses/Rectangles

!DarkHorse/WorkHorses/Rectangles

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 1995-02.adf » !Dark_DarkHorse
Filename: !DarkHorse/WorkHorses/Rectangles
Read OK:
File size: 2189 bytes
Load address: 0000
Exec address: 0000
File contents
   10REM > <Dark$Dir>.WorkHorses.Rectangles
   20
   30DIM code% 4096
   40
   50PROCAssemble
   60PROCSetV
   70PROCDo
   80END
   90
  100DEFPROCSetV
  110!(code%+0)=5   : REM saver takes 5 args.
  120!(code%+4)=12  : REM arg1 - No. of lines = 12
  130!(code%+8)=16  : REM arg2 - x1 step = 16
  140!(code%+12)=8  : REM arg3 - y1 step = 8
  150!(code%+16)=24 : REM arg4 - x2 step = 24
  160!(code%+20)=16 : REM arg5 - y2 step = 16
  170
  180$(code%+36)="<no.rects> <x1 step> <y1 step>"
  190$(code%+68)="<x2 step> <y2 step>"
  200
  210ENDPROC
  220
  230DEFPROCDo
  240MODE 12
  250A%=1280:B%=1024:C%=16
  260CALL (code%+100)
  270CALL (code%+108)
  280GOTO 270
  290ENDPROC
  300
  310DEFPROCAssemble
  320ncol=8:gcol=9:tint=10
  330FOR pass=0 TO 3 STEP 3
  340P%=code%
  350[OPT pass
  360
  370.argtype
  380EQUD 0 ;
  390
  400.args
  410EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
  420
  430.help
  440EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
  450EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
  460
  470
  480B init     ; Jumps to the initialisation routine.
  490           ; this is location code+100
  500
  510B shutdown ; Jumps to the shutdown routine.
  520           ; this is location code+104
  530
  540
  550
  560.poll_ret
  570
  580ADR r0,regs
  590STMIA r0!,{r1-r14}
  600
  610ADR r0,dims
  620LDR r11,[r0]
  630LDR r12,[r0,#4]
  640
  650ADR r6,vars
  660
  670MOV r5,r14:BL SetCol:MOV r14,r5
  680
  690MOV r0,#4:LDR r1,[r6]:LDR r2,[r6,#4]:SWI "OS_Plot"
  700MOV r0,#1:LDR r1,[r6,#8]:LDR r3,[r6]:SUB r1,r1,r3:MOV r2,#0:SWI "OS_Plot"
  710
  720MOV r0,#1:LDR r2,[r6,#12]:LDR r3,[r6,#4]:MOV r1,#0:SUB r2,r2,r3:SWI "OS_Plot"
  730MOV r0,#1:LDR r2,[r6,#8]:LDR r3,[r6]:SUB r2,r2,r3:RSB r1,r2,#0:MOV r2,#0:SWI "OS_Plot"
  740MOV r0,#1:LDR r1,[r6,#12]:LDR r3,[r6,#4]:SUB r1,r1,r3:RSB r2,r1,#0:MOV r1,#0:SWI "OS_Plot"
  750
  760LDR r1,[r6]:    LDR r2,[r6,#32]:ADD r1,r1,r2:STR r1,[r6]
  770LDR r1,[r6,#4]: LDR r2,[r6,#36]:ADD r1,r1,r2:STR r1,[r6,#4]
  780LDR r1,[r6,#8]: LDR r2,[r6,#40]:ADD r1,r1,r2:STR r1,[r6,#8]
  790LDR r1,[r6,#12]:LDR r2,[r6,#44]:ADD r1,r1,r2:STR r1,[r6,#12]
  800
  810SWI 256+18:SWI 256:SWI 256
  820SWI 256+23:SWI 256+17:SWI 256+2:SWI 256
  830SWI 256:SWI 256:SWI 256:SWI 256:SWI 256:SWI 256
  840
  850MOV r0,#4:LDR r1,[r6,#16]:LDR r2,[r6,#20]:SWI "OS_Plot"
  860
  870MOV r0,#1:LDR r1,[r6,#24]:LDR r3,[r6,#16]:SUB r1,r1,r3:MOV r2,#0:SWI "OS_Plot"
  880MOV r0,#1:LDR r2,[r6,#28]:LDR r3,[r6,#20]:MOV r1,#0:SUB r2,r2,r3:SWI "OS_Plot"
  890MOV r0,#1:LDR r2,[r6,#24]:LDR r3,[r6,#16]:SUB r2,r2,r3:RSB r1,r2,#0:MOV r2,#0:SWI "OS_Plot"
  900MOV r0,#1:LDR r1,[r6,#28]:LDR r3,[r6,#20]:SUB r1,r1,r3:RSB r2,r1,#0:MOV r1,#0:SWI "OS_Plot"
  910
  920LDR r1,[r6,#16]:LDR r2,[r6,#48]:ADD r1,r1,r2:STR r1,[r6,#16]
  930LDR r1,[r6,#20]:LDR r2,[r6,#52]:ADD r1,r1,r2:STR r1,[r6,#20]
  940LDR r1,[r6,#24]:LDR r2,[r6,#56]:ADD r1,r1,r2:STR r1,[r6,#24]
  950LDR r1,[r6,#28]:LDR r2,[r6,#60]:ADD r1,r1,r2:STR r1,[r6,#28]
  960
  970ADR r4,avars:STMIA r4,{r2-r11,r14}:BL Check :LDMIA r4,{r2-11,r14}
  980
  990ADR r0,regs
 1000LDMIA r0!,{r1-r14}
 1010MOV PC,r14
 1020
 1030.exit
 1040ADR r6,vars
 1050LDR r0,[r6,#0]:STR r0,[r6,#16]
 1060LDR r0,[r6,#4]:STR r0,[r6,#20]
 1070LDR r0,[r6,#8]:STR r0,[r6,#24]
 1080LDR r0,[r6,#12]:STR r0,[r6,#28]
 1090
 1100ADR r0,regs
 1110LDMIA r0!,{r1-r14}
 1120
 1130MOV PC,r14
 1140
 1150.regs
 1160EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
 1170EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
 1180
 1190.dims
 1200EQUD 0:EQUD 0
 1210
 1220.init
 1230
 1240ADR r3,dims
 1250STR r0,[r3]
 1260STR r1,[r3,#4]
 1270
 1280MOV r11,r0
 1290MOV r12,r1
 1300
 1310ADR r0,regs
 1320STMIA r0!,{r1-r14}
 1330
 1340ADR r3,args
 1350LDR r7,[r3] ; r7 = number of lines
 1360ADR r6,vars ; r6 = address of store for line points
 1370MOV r4,#50 :STR r4,[r6,#0]:STR r4,[r6,#16]
 1380MOV r4,#200:STR r4,[r6,#4]:STR r4,[r6,#20]
 1390MOV r4,#360:STR r4,[r6,#8]:STR r4,[r6,#24]
 1400MOV r4,#400:STR r4,[r6,#12]:STR r4,[r6,#28]
 1410LDR r4,[r3,#4] :STR r4,[r6,#32]:STR r4,[r6,#48]
 1420LDR r4,[r3,#8] :STR r4,[r6,#36]:STR r4,[r6,#52]
 1430LDR r4,[r3,#12]:STR r4,[r6,#40]:STR r4,[r6,#56]
 1440LDR r4,[r3,#16]:STR r4,[r6,#44]:STR r4,[r6,#60]
 1450
 1460ADR r3,nocols
 1470STR r2,[r3] ; store number of colours
 1480
 1490.mainagain
 1500
 1510MOV r5,r14:BL SetCol:MOV r14,r5
 1520
 1530ADR r6,vars
 1540
 1550MOV r0,#4:LDR r1,[r6]:LDR r2,[r6,#4]:SWI "OS_Plot"
 1560MOV r0,#1:LDR r1,[r6,#8]:LDR r3,[r6]:SUB r1,r1,r3:MOV r2,#0:SWI "OS_Plot"
 1570
 1580MOV r0,#1:LDR r2,[r6,#12]:LDR r3,[r6,#4]:MOV r1,#0:SUB r2,r2,r3:SWI "OS_Plot"
 1590
 1600MOV r0,#1:LDR r2,[r6,#8]:LDR r3,[r6]:SUB r2,r2,r3:RSB r1,r2,#0:MOV r2,#0:SWI "OS_Plot"
 1610MOV r0,#1:LDR r1,[r6,#12]:LDR r3,[r6,#4]:SUB r1,r1,r3:RSB r2,r1,#0:MOV r1,#0:SWI "OS_Plot"
 1620
 1630LDR r1,[r6]:LDR r2,[r6,#32]:ADD r1,r1,r2:STR r1,[r6]
 1640LDR r1,[r6,#4]:LDR r2,[r6,#36]:ADD r1,r1,r2:STR r1,[r6,#4]
 1650LDR r1,[r6,#8]:LDR r2,[r6,#40]:ADD r1,r1,r2:STR r1,[r6,#8]
 1660LDR r1,[r6,#12]:LDR r2,[r6,#44]:ADD r1,r1,r2:STR r1,[r6,#12]
 1670MOV r5,r14:BL Check:MOV r14,r5
 1680ADR r4,avars:STMIA r4,{r14,r0-r3,r5-11}:BL Scan:CMPS r10,#1
 1690LDMIA r4,{r14,r0-r3,r5-11}:BEQ exit
 1700SUBS r7,r7,#1
 1710
 1720BPL mainagain
 1730
 1740
 1750MOV PC,r14
 1760
 1770.vars ; storage for program variables.
 1780EQUD 50:EQUD 200:EQUD 350:EQUD 400:EQUD 50:EQUD 200:EQUD 350:EQUD 400
 1790EQUD 16:EQUD 8:EQUD 24:EQUD 16:EQUD 16:EQUD 8:EQUD 24:EQUD 16
 1800
 1810.avars ; for reserving the registers.
 1820EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
 1830EQUD 0:EQUD 0:EQUD 0:EQUD 0
 1840
 1850;--------------------------------------------------------------------
 1860
 1870.Scan
 1880; on return r10 will contain 1 = exit prog. 0 = don't exit.
 1890
 1900SWI "OS_Mouse":MOV r8,r0:MOV r9,r1:MOV r11,r2
 1910MOV r10,#0:MOV r0,#121:MOV r1,#0:SWI "OS_Byte":CMPS r1,#255:MOVNE r10,#1
 1920SWI "OS_Mouse":CMPS r0,r8:MOVNE r10,#1:CMPS r1,r9:MOVNE r10,#1
 1930CMPS r2,r11::MOVNE r10,#1
 1940MOV PC,r14
 1950
 1960;--------------------------------------------------------------------
 1970
 1980.Check
 1990LDR r0,[r6]:LDR r1,[r6,#32]:CMPS r0,r11:SUBGT r1,r1,r1,LSL#1
 2000STRGT r1,[r6,#32]:CMPS r0,#0:SUBLT r1,r1,r1,LSL#1:STRLT r1,[r6,#32]
 2010LDR r0,[r6,#4]:LDR r1,[r6,#36]:CMPS r0,r12:SUBGT r1,r1,r1,LSL#1
 2020STRGT r1,[r6,#36]:CMPS r0,#0:SUBLT r1,r1,r1,LSL#1:STRLT r1,[r6,#36]
 2030LDR r0,[r6,#8]:LDR r1,[r6,#40]:CMPS r0,r11:SUBGT r1,r1,r1,LSL#1
 2040STRGT r1,[r6,#40]:CMPS r0,#0:SUBLT r1,r1,r1,LSL#1:STRLT r1,[r6,#40]
 2050LDR r0,[r6,#12]:LDR r1,[r6,#44]:CMPS r0,r12:SUBGT r1,r1,r1,LSL#1
 2060STRGT r1,[r6,#44]:CMPS r0,#0:SUBLT r1,r1,r1,LSL#1:STRLT r1,[r6,#44]
 2070LDR r0,[r6,#16]:LDR r1,[r6,#48]:CMPS r0,r11:SUBGT r1,r1,r1,LSL#1
 2080STRGT r1,[r6,#48]:CMPS r0,#0:SUBLT r1,r1,r1,LSL#1:STRLT r1,[r6,#48]
 2090LDR r0,[r6,#20]:LDR r1,[r6,#52]:CMPS r0,r12:SUBGT r1,r1,r1,LSL#1
 2100STRGT r1,[r6,#52]:CMPS r0,#0:SUBLT r1,r1,r1,LSL#1:STRLT r1,[r6,#52]
 2110LDR r0,[r6,#24]:LDR r1,[r6,#56]:CMPS r0,r11:SUBGT r1,r1,r1,LSL#1
 2120STRGT r1,[r6,#56]:CMPS r0,#0:SUBLT r1,r1,r1,LSL#1:STRLT r1,[r6,#56]
 2130LDR r0,[r6,#28]:LDR r1,[r6,#60]:CMPS r0,r12:SUBGT r1,r1,r1,LSL#1
 2140STRGT r1,[r6,#60]:CMPS r0,#0:SUBLT r1,r1,r1,LSL#1:STRLT r1,[r6,#60]
 2150MOV PC,r14
 2160
 2170;--------------------------------------------------------------------
 2180
 2190;-----------------------------------------------------------------
 2200
 2210.shutdown ; the shutdown code
 2220
 2230;--------------------------------------------------------------------
 2240;           ********************************************
 2250;           ***    YOUR SHUTDOWN CODE STARTS HERE    ***
 2260;           ********************************************
 2270
 2280;            blah! blah! blah! blah! blah! blah! blah!
 2290
 2300;           ********************************************
 2310;           ***     YOUR SHUTDOWN CODE ENDS HERE     ***
 2320;           ********************************************
 2330;--------------------------------------------------------------------
 2340MOV PC,r14 ; exit shutdown code.
 2350
 2360
 2370
 2380.nocols
 2390EQUD 2   ; Actual No. of colours 2/4/16/256
 2400EQUD 1    ; GCOL
 2410EQUD 0    ; TINT
 2420
 2430.SetCol
 2440
 2450LDR ncol,[PC,#(-20)] ; Load No. of colours relative to PC.
 2460LDR gcol,[PC,#(-20)] ; Load Current GCOL relative to PC.
 2470LDR tint,[PC,#(-20)] ; Load Current TINT relative to PC.
 2480
 2490CMPS ncol,#256       ; If not a 256 colour mode ..
 2500BLT lessthan256      ; .. goto .lessthan256
 2510
 2520; Set GCOL 0,gcol TINT tint
 2530
 2540SWI 256+18:SWI 256:MOV r0,gcol:SWI "OS_WriteC"
 2550SWI 256+23:SWI 256+17:SWI 256+2:MOV r0,tint:SWI "OS_WriteC"
 2560SWI 256:SWI 256:SWI 256:SWI 256:SWI 256:SWI 256
 2570
 2580ADD tint,tint,#64
 2590CMPS tint,#256
 2600MOVEQ tint,#0
 2610ADDEQ gcol,gcol,#1
 2620CMPS gcol,#64
 2630MOVGE gcol,#1
 2640STR gcol,[PC,#(-120)]
 2650STR tint,[PC,#(-120)]
 2660MOV PC,r14
 2670
 2680.lessthan256
 2690SWI 256+18:SWI 256:MOV r0,gcol:SWI "OS_WriteC"
 2700
 2710ADD gcol,gcol,#1
 2720CMPS gcol,ncol
 2730MOVGE gcol,#1
 2740STR gcol,[PC,#(-160)]
 2750MOV PC,r14
 2760
 2770]
 2780NEXT pass
 2790PRINT P%-code%
 2800REM A$=GET$
 2810ENDPROC

(� > <Dark$Dir>.WorkHorses.Rectangles

� code% 4096
(
2
�Assemble
<	�SetV
F�Do
P�
Z
d
��SetV
n*!(code%+0)=5   : � saver takes 5 args.
x/!(code%+4)=12  : � arg1 - No. of lines = 12
�*!(code%+8)=16  : � arg2 - x1 step = 16
�)!(code%+12)=8  : � arg3 - y1 step = 8
�*!(code%+16)=24 : � arg4 - x2 step = 24
�*!(code%+20)=16 : � arg5 - y2 step = 16
�
�0$(code%+36)="<no.rects> <x1 step> <y1 step>"
�%$(code%+68)="<x2 step> <y2 step>"
�
��
�
���Do
�� 12
�A%=1280:B%=1024:C%=16
� (code%+100)
� (code%+108)

� �TNA
"�
,
6��Assemble
@ncol=8:gcol=9:tint=10
J� pass=0 � 3 � 3
TP%=code%
^
[OPT pass
h
r.argtype
|EQUD 0 ;
�
�	.args
�;EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
�
�	.help
�;EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
�;EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
�
�
�5B init     ; Jumps to the initialisation routine.
�*           ; this is location code+100
�
�/B shutdown ; Jumps to the shutdown routine.
*           ; this is location code+104


&
0
.poll_ret
:
DADR r0,regs
NSTMIA r0!,{r1-r14}
X
bADR r0,dims
lLDR r11,[r0]
vLDR r12,[r0,#4]
�
�ADR r6,vars
�
�#MOV r5,r14:BL SetCol:MOV r14,r5
�
�6MOV r0,#4:LDR r1,[r6]:LDR r2,[r6,#4]:SWI "OS_Plot"
�MMOV r0,#1:LDR r1,[r6,#8]:LDR r3,[r6]:SUB r1,r1,r3:MOV r2,#0:SWI "OS_Plot"
�
�QMOV r0,#1:LDR r2,[r6,#12]:LDR r3,[r6,#4]:MOV r1,#0:SUB r2,r2,r3:SWI "OS_Plot"
�ZMOV r0,#1:LDR r2,[r6,#8]:LDR r3,[r6]:SUB r2,r2,r3:RSB r1,r2,#0:MOV r2,#0:SWI "OS_Plot"
�^MOV r0,#1:LDR r1,[r6,#12]:LDR r3,[r6,#4]:SUB r1,r1,r3:RSB r2,r1,#0:MOV r1,#0:SWI "OS_Plot"
�
�<LDR r1,[r6]:    LDR r2,[r6,#32]:ADD r1,r1,r2:STR r1,[r6]
?LDR r1,[r6,#4]: LDR r2,[r6,#36]:ADD r1,r1,r2:STR r1,[r6,#4]
?LDR r1,[r6,#8]: LDR r2,[r6,#40]:ADD r1,r1,r2:STR r1,[r6,#8]
@LDR r1,[r6,#12]:LDR r2,[r6,#44]:ADD r1,r1,r2:STR r1,[r6,#12]
 
*SWI 256+18:SWI 256:SWI 256
4+SWI 256+23:SWI 256+17:SWI 256+2:SWI 256
>3SWI 256:SWI 256:SWI 256:SWI 256:SWI 256:SWI 256
H
R;MOV r0,#4:LDR r1,[r6,#16]:LDR r2,[r6,#20]:SWI "OS_Plot"
\
fRMOV r0,#1:LDR r1,[r6,#24]:LDR r3,[r6,#16]:SUB r1,r1,r3:MOV r2,#0:SWI "OS_Plot"
pRMOV r0,#1:LDR r2,[r6,#28]:LDR r3,[r6,#20]:MOV r1,#0:SUB r2,r2,r3:SWI "OS_Plot"
z_MOV r0,#1:LDR r2,[r6,#24]:LDR r3,[r6,#16]:SUB r2,r2,r3:RSB r1,r2,#0:MOV r2,#0:SWI "OS_Plot"
�_MOV r0,#1:LDR r1,[r6,#28]:LDR r3,[r6,#20]:SUB r1,r1,r3:RSB r2,r1,#0:MOV r1,#0:SWI "OS_Plot"
�
�@LDR r1,[r6,#16]:LDR r2,[r6,#48]:ADD r1,r1,r2:STR r1,[r6,#16]
�@LDR r1,[r6,#20]:LDR r2,[r6,#52]:ADD r1,r1,r2:STR r1,[r6,#20]
�@LDR r1,[r6,#24]:LDR r2,[r6,#56]:ADD r1,r1,r2:STR r1,[r6,#24]
�@LDR r1,[r6,#28]:LDR r2,[r6,#60]:ADD r1,r1,r2:STR r1,[r6,#28]
�
�EADR r4,avars:STMIA r4,{r2-r11,r14}:BL Check :LDMIA r4,{r2-11,r14}
�
�ADR r0,regs
�LDMIA r0!,{r1-r14}
�MOV PC,r14
�
	.exit
ADR r6,vars
"LDR r0,[r6,#0]:STR r0,[r6,#16]
$"LDR r0,[r6,#4]:STR r0,[r6,#20]
."LDR r0,[r6,#8]:STR r0,[r6,#24]
8#LDR r0,[r6,#12]:STR r0,[r6,#28]
B
LADR r0,regs
VLDMIA r0!,{r1-r14}
`
jMOV PC,r14
t
~	.regs
�;EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
�;EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
�
�	.dims
�EQUD 0:EQUD 0
�
�	.init
�
�ADR r3,dims
�STR r0,[r3]
�STR r1,[r3,#4]
�
MOV r11,r0

MOV r12,r1

ADR r0,regs
(STMIA r0!,{r1-r14}
2
<ADR r3,args
F&LDR r7,[r3] ; r7 = number of lines
P7ADR r6,vars ; r6 = address of store for line points
Z.MOV r4,#50 :STR r4,[r6,#0]:STR r4,[r6,#16]
d.MOV r4,#200:STR r4,[r6,#4]:STR r4,[r6,#20]
n.MOV r4,#360:STR r4,[r6,#8]:STR r4,[r6,#24]
x/MOV r4,#400:STR r4,[r6,#12]:STR r4,[r6,#28]
�3LDR r4,[r3,#4] :STR r4,[r6,#32]:STR r4,[r6,#48]
�3LDR r4,[r3,#8] :STR r4,[r6,#36]:STR r4,[r6,#52]
�3LDR r4,[r3,#12]:STR r4,[r6,#40]:STR r4,[r6,#56]
�3LDR r4,[r3,#16]:STR r4,[r6,#44]:STR r4,[r6,#60]
�
�ADR r3,nocols
�)STR r2,[r3] ; store number of colours
�
�.mainagain
�
�#MOV r5,r14:BL SetCol:MOV r14,r5
�
�ADR r6,vars

6MOV r0,#4:LDR r1,[r6]:LDR r2,[r6,#4]:SWI "OS_Plot"
MMOV r0,#1:LDR r1,[r6,#8]:LDR r3,[r6]:SUB r1,r1,r3:MOV r2,#0:SWI "OS_Plot"
"
,QMOV r0,#1:LDR r2,[r6,#12]:LDR r3,[r6,#4]:MOV r1,#0:SUB r2,r2,r3:SWI "OS_Plot"
6
@ZMOV r0,#1:LDR r2,[r6,#8]:LDR r3,[r6]:SUB r2,r2,r3:RSB r1,r2,#0:MOV r2,#0:SWI "OS_Plot"
J^MOV r0,#1:LDR r1,[r6,#12]:LDR r3,[r6,#4]:SUB r1,r1,r3:RSB r2,r1,#0:MOV r1,#0:SWI "OS_Plot"
T
^8LDR r1,[r6]:LDR r2,[r6,#32]:ADD r1,r1,r2:STR r1,[r6]
h>LDR r1,[r6,#4]:LDR r2,[r6,#36]:ADD r1,r1,r2:STR r1,[r6,#4]
r>LDR r1,[r6,#8]:LDR r2,[r6,#40]:ADD r1,r1,r2:STR r1,[r6,#8]
|@LDR r1,[r6,#12]:LDR r2,[r6,#44]:ADD r1,r1,r2:STR r1,[r6,#12]
�"MOV r5,r14:BL Check:MOV r14,r5
�?ADR r4,avars:STMIA r4,{r14,r0-r3,r5-11}:BL Scan:CMPS r10,#1
�'LDMIA r4,{r14,r0-r3,r5-11}:BEQ exit
�SUBS r7,r7,#1
�
�BPL mainagain
�
�
�MOV PC,r14
�
�*.vars ; storage for program variables.
�IEQUD 50:EQUD 200:EQUD 350:EQUD 400:EQUD 50:EQUD 200:EQUD 350:EQUD 400
�AEQUD 16:EQUD 8:EQUD 24:EQUD 16:EQUD 16:EQUD 8:EQUD 24:EQUD 16

).avars ; for reserving the registers.
;EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
&EQUD 0:EQUD 0:EQUD 0:EQUD 0
0
:I;--------------------------------------------------------------------
D
N	.Scan
X?; on return r10 will contain 1 = exit prog. 0 = don't exit.
b
l1SWI "OS_Mouse":MOV r8,r0:MOV r9,r1:MOV r11,r2
vLMOV r10,#0:MOV r0,#121:MOV r1,#0:SWI "OS_Byte":CMPS r1,#255:MOVNE r10,#1
�BSWI "OS_Mouse":CMPS r0,r8:MOVNE r10,#1:CMPS r1,r9:MOVNE r10,#1
�CMPS r2,r11::MOVNE r10,#1
�MOV PC,r14
�
�I;--------------------------------------------------------------------
�
�
.Check
�@LDR r0,[r6]:LDR r1,[r6,#32]:CMPS r0,r11:SUBGT r1,r1,r1,LSL#1
�GSTRGT r1,[r6,#32]:CMPS r0,#0:SUBLT r1,r1,r1,LSL#1:STRLT r1,[r6,#32]
�CLDR r0,[r6,#4]:LDR r1,[r6,#36]:CMPS r0,r12:SUBGT r1,r1,r1,LSL#1
�GSTRGT r1,[r6,#36]:CMPS r0,#0:SUBLT r1,r1,r1,LSL#1:STRLT r1,[r6,#36]
�CLDR r0,[r6,#8]:LDR r1,[r6,#40]:CMPS r0,r11:SUBGT r1,r1,r1,LSL#1
�GSTRGT r1,[r6,#40]:CMPS r0,#0:SUBLT r1,r1,r1,LSL#1:STRLT r1,[r6,#40]
DLDR r0,[r6,#12]:LDR r1,[r6,#44]:CMPS r0,r12:SUBGT r1,r1,r1,LSL#1
GSTRGT r1,[r6,#44]:CMPS r0,#0:SUBLT r1,r1,r1,LSL#1:STRLT r1,[r6,#44]
DLDR r0,[r6,#16]:LDR r1,[r6,#48]:CMPS r0,r11:SUBGT r1,r1,r1,LSL#1
 GSTRGT r1,[r6,#48]:CMPS r0,#0:SUBLT r1,r1,r1,LSL#1:STRLT r1,[r6,#48]
*DLDR r0,[r6,#20]:LDR r1,[r6,#52]:CMPS r0,r12:SUBGT r1,r1,r1,LSL#1
4GSTRGT r1,[r6,#52]:CMPS r0,#0:SUBLT r1,r1,r1,LSL#1:STRLT r1,[r6,#52]
>DLDR r0,[r6,#24]:LDR r1,[r6,#56]:CMPS r0,r11:SUBGT r1,r1,r1,LSL#1
HGSTRGT r1,[r6,#56]:CMPS r0,#0:SUBLT r1,r1,r1,LSL#1:STRLT r1,[r6,#56]
RDLDR r0,[r6,#28]:LDR r1,[r6,#60]:CMPS r0,r12:SUBGT r1,r1,r1,LSL#1
\GSTRGT r1,[r6,#60]:CMPS r0,#0:SUBLT r1,r1,r1,LSL#1:STRLT r1,[r6,#60]
fMOV PC,r14
p
zI;--------------------------------------------------------------------
�
�F;-----------------------------------------------------------------
�
�!.shutdown ; the shutdown code
�
�I;--------------------------------------------------------------------
�<;           ********************************************
�<;           ***    YOUR SHUTDOWN CODE STARTS HERE    ***
�<;           ********************************************
�
�:;            blah! blah! blah! blah! blah! blah! blah!
�
�<;           ********************************************
	<;           ***     YOUR SHUTDOWN CODE ENDS HERE     ***
	<;           ********************************************
	I;--------------------------------------------------------------------
	$$MOV PC,r14 ; exit shutdown code.
	.
	8
	B
	L.nocols
	V/EQUD 2   ; Actual No. of colours 2/4/16/256
	`EQUD 1    ; �
	jEQUD 0    ; Ȝ
	t
	~.SetCol
	�
	�>LDR ncol,[PC,#(-20)] ; Load No. of colours relative to PC.
	�9LDR gcol,[PC,#(-20)] ; Load Current � relative to PC.
	�:LDR tint,[PC,#(-20)] ; Load Current Ȝ relative to PC.
	�
	�6CMPS ncol,#256       ; If not a 256 colour mode ..
	�/BLT lessthan256      ; .. goto .lessthan256
	�
	�; Set � 0,gcol Ȝ tint
	�
	�2SWI 256+18:SWI 256:MOV r0,gcol:SWI "OS_WriteC"
	�?SWI 256+23:SWI 256+17:SWI 256+2:MOV r0,tint:SWI "OS_WriteC"
3SWI 256:SWI 256:SWI 256:SWI 256:SWI 256:SWI 256


ADD tint,tint,#64
CMPS tint,#256
(�Q tint,#0
2ADDEQ gcol,gcol,#1
<CMPS gcol,#64
FMOVGE gcol,#1
PSTR gcol,[PC,#(-120)]
ZSTR tint,[PC,#(-120)]
dMOV PC,r14
n
x.lessthan256
�2SWI 256+18:SWI 256:MOV r0,gcol:SWI "OS_WriteC"
�
�ADD gcol,gcol,#1
�CMPS gcol,ncol
�MOVGE gcol,#1
�STR gcol,[PC,#(-160)]
�MOV PC,r14
�
�]
�
� pass
�� P%-code%
�
� A$=GET$
��
�
00000000  0d 00 0a 28 f4 20 3e 20  3c 44 61 72 6b 24 44 69  |...(. > <Dark$Di|
00000010  72 3e 2e 57 6f 72 6b 48  6f 72 73 65 73 2e 52 65  |r>.WorkHorses.Re|
00000020  63 74 61 6e 67 6c 65 73  0d 00 14 04 0d 00 1e 10  |ctangles........|
00000030  de 20 63 6f 64 65 25 20  34 30 39 36 0d 00 28 04  |. code% 4096..(.|
00000040  0d 00 32 0d f2 41 73 73  65 6d 62 6c 65 0d 00 3c  |..2..Assemble..<|
00000050  09 f2 53 65 74 56 0d 00  46 07 f2 44 6f 0d 00 50  |..SetV..F..Do..P|
00000060  05 e0 0d 00 5a 04 0d 00  64 0a dd f2 53 65 74 56  |....Z...d...SetV|
00000070  0d 00 6e 2a 21 28 63 6f  64 65 25 2b 30 29 3d 35  |..n*!(code%+0)=5|
00000080  20 20 20 3a 20 f4 20 73  61 76 65 72 20 74 61 6b  |   : . saver tak|
00000090  65 73 20 35 20 61 72 67  73 2e 0d 00 78 2f 21 28  |es 5 args...x/!(|
000000a0  63 6f 64 65 25 2b 34 29  3d 31 32 20 20 3a 20 f4  |code%+4)=12  : .|
000000b0  20 61 72 67 31 20 2d 20  4e 6f 2e 20 6f 66 20 6c  | arg1 - No. of l|
000000c0  69 6e 65 73 20 3d 20 31  32 0d 00 82 2a 21 28 63  |ines = 12...*!(c|
000000d0  6f 64 65 25 2b 38 29 3d  31 36 20 20 3a 20 f4 20  |ode%+8)=16  : . |
000000e0  61 72 67 32 20 2d 20 78  31 20 73 74 65 70 20 3d  |arg2 - x1 step =|
000000f0  20 31 36 0d 00 8c 29 21  28 63 6f 64 65 25 2b 31  | 16...)!(code%+1|
00000100  32 29 3d 38 20 20 3a 20  f4 20 61 72 67 33 20 2d  |2)=8  : . arg3 -|
00000110  20 79 31 20 73 74 65 70  20 3d 20 38 0d 00 96 2a  | y1 step = 8...*|
00000120  21 28 63 6f 64 65 25 2b  31 36 29 3d 32 34 20 3a  |!(code%+16)=24 :|
00000130  20 f4 20 61 72 67 34 20  2d 20 78 32 20 73 74 65  | . arg4 - x2 ste|
00000140  70 20 3d 20 32 34 0d 00  a0 2a 21 28 63 6f 64 65  |p = 24...*!(code|
00000150  25 2b 32 30 29 3d 31 36  20 3a 20 f4 20 61 72 67  |%+20)=16 : . arg|
00000160  35 20 2d 20 79 32 20 73  74 65 70 20 3d 20 31 36  |5 - y2 step = 16|
00000170  0d 00 aa 04 0d 00 b4 30  24 28 63 6f 64 65 25 2b  |.......0$(code%+|
00000180  33 36 29 3d 22 3c 6e 6f  2e 72 65 63 74 73 3e 20  |36)="<no.rects> |
00000190  3c 78 31 20 73 74 65 70  3e 20 3c 79 31 20 73 74  |<x1 step> <y1 st|
000001a0  65 70 3e 22 0d 00 be 25  24 28 63 6f 64 65 25 2b  |ep>"...%$(code%+|
000001b0  36 38 29 3d 22 3c 78 32  20 73 74 65 70 3e 20 3c  |68)="<x2 step> <|
000001c0  79 32 20 73 74 65 70 3e  22 0d 00 c8 04 0d 00 d2  |y2 step>".......|
000001d0  05 e1 0d 00 dc 04 0d 00  e6 08 dd f2 44 6f 0d 00  |............Do..|
000001e0  f0 08 eb 20 31 32 0d 00  fa 19 41 25 3d 31 32 38  |... 12....A%=128|
000001f0  30 3a 42 25 3d 31 30 32  34 3a 43 25 3d 31 36 0d  |0:B%=1024:C%=16.|
00000200  01 04 11 d6 20 28 63 6f  64 65 25 2b 31 30 30 29  |.... (code%+100)|
00000210  0d 01 0e 11 d6 20 28 63  6f 64 65 25 2b 31 30 38  |..... (code%+108|
00000220  29 0d 01 18 0a e5 20 8d  54 4e 41 0d 01 22 05 e1  |)..... .TNA.."..|
00000230  0d 01 2c 04 0d 01 36 0e  dd f2 41 73 73 65 6d 62  |..,...6...Assemb|
00000240  6c 65 0d 01 40 19 6e 63  6f 6c 3d 38 3a 67 63 6f  |le..@.ncol=8:gco|
00000250  6c 3d 39 3a 74 69 6e 74  3d 31 30 0d 01 4a 14 e3  |l=9:tint=10..J..|
00000260  20 70 61 73 73 3d 30 20  b8 20 33 20 88 20 33 0d  | pass=0 . 3 . 3.|
00000270  01 54 0c 50 25 3d 63 6f  64 65 25 0d 01 5e 0d 5b  |.T.P%=code%..^.[|
00000280  4f 50 54 20 70 61 73 73  0d 01 68 04 0d 01 72 0c  |OPT pass..h...r.|
00000290  2e 61 72 67 74 79 70 65  0d 01 7c 0c 45 51 55 44  |.argtype..|.EQUD|
000002a0  20 30 20 3b 0d 01 86 04  0d 01 90 09 2e 61 72 67  | 0 ;.........arg|
000002b0  73 0d 01 9a 3b 45 51 55  44 20 30 3a 45 51 55 44  |s...;EQUD 0:EQUD|
000002c0  20 30 3a 45 51 55 44 20  30 3a 45 51 55 44 20 30  | 0:EQUD 0:EQUD 0|
000002d0  3a 45 51 55 44 20 30 3a  45 51 55 44 20 30 3a 45  |:EQUD 0:EQUD 0:E|
000002e0  51 55 44 20 30 3a 45 51  55 44 20 30 0d 01 a4 04  |QUD 0:EQUD 0....|
000002f0  0d 01 ae 09 2e 68 65 6c  70 0d 01 b8 3b 45 51 55  |.....help...;EQU|
00000300  44 20 30 3a 45 51 55 44  20 30 3a 45 51 55 44 20  |D 0:EQUD 0:EQUD |
00000310  30 3a 45 51 55 44 20 30  3a 45 51 55 44 20 30 3a  |0:EQUD 0:EQUD 0:|
00000320  45 51 55 44 20 30 3a 45  51 55 44 20 30 3a 45 51  |EQUD 0:EQUD 0:EQ|
00000330  55 44 20 30 0d 01 c2 3b  45 51 55 44 20 30 3a 45  |UD 0...;EQUD 0:E|
00000340  51 55 44 20 30 3a 45 51  55 44 20 30 3a 45 51 55  |QUD 0:EQUD 0:EQU|
00000350  44 20 30 3a 45 51 55 44  20 30 3a 45 51 55 44 20  |D 0:EQUD 0:EQUD |
00000360  30 3a 45 51 55 44 20 30  3a 45 51 55 44 20 30 0d  |0:EQUD 0:EQUD 0.|
00000370  01 cc 04 0d 01 d6 04 0d  01 e0 35 42 20 69 6e 69  |..........5B ini|
00000380  74 20 20 20 20 20 3b 20  4a 75 6d 70 73 20 74 6f  |t     ; Jumps to|
00000390  20 74 68 65 20 69 6e 69  74 69 61 6c 69 73 61 74  | the initialisat|
000003a0  69 6f 6e 20 72 6f 75 74  69 6e 65 2e 0d 01 ea 2a  |ion routine....*|
000003b0  20 20 20 20 20 20 20 20  20 20 20 3b 20 74 68 69  |           ; thi|
000003c0  73 20 69 73 20 6c 6f 63  61 74 69 6f 6e 20 63 6f  |s is location co|
000003d0  64 65 2b 31 30 30 0d 01  f4 04 0d 01 fe 2f 42 20  |de+100......./B |
000003e0  73 68 75 74 64 6f 77 6e  20 3b 20 4a 75 6d 70 73  |shutdown ; Jumps|
000003f0  20 74 6f 20 74 68 65 20  73 68 75 74 64 6f 77 6e  | to the shutdown|
00000400  20 72 6f 75 74 69 6e 65  2e 0d 02 08 2a 20 20 20  | routine....*   |
00000410  20 20 20 20 20 20 20 20  3b 20 74 68 69 73 20 69  |        ; this i|
00000420  73 20 6c 6f 63 61 74 69  6f 6e 20 63 6f 64 65 2b  |s location code+|
00000430  31 30 34 0d 02 12 04 0d  02 1c 04 0d 02 26 04 0d  |104..........&..|
00000440  02 30 0d 2e 70 6f 6c 6c  5f 72 65 74 0d 02 3a 04  |.0..poll_ret..:.|
00000450  0d 02 44 0f 41 44 52 20  72 30 2c 72 65 67 73 0d  |..D.ADR r0,regs.|
00000460  02 4e 16 53 54 4d 49 41  20 72 30 21 2c 7b 72 31  |.N.STMIA r0!,{r1|
00000470  2d 72 31 34 7d 0d 02 58  04 0d 02 62 0f 41 44 52  |-r14}..X...b.ADR|
00000480  20 72 30 2c 64 69 6d 73  0d 02 6c 10 4c 44 52 20  | r0,dims..l.LDR |
00000490  72 31 31 2c 5b 72 30 5d  0d 02 76 13 4c 44 52 20  |r11,[r0]..v.LDR |
000004a0  72 31 32 2c 5b 72 30 2c  23 34 5d 0d 02 80 04 0d  |r12,[r0,#4].....|
000004b0  02 8a 0f 41 44 52 20 72  36 2c 76 61 72 73 0d 02  |...ADR r6,vars..|
000004c0  94 04 0d 02 9e 23 4d 4f  56 20 72 35 2c 72 31 34  |.....#MOV r5,r14|
000004d0  3a 42 4c 20 53 65 74 43  6f 6c 3a 4d 4f 56 20 72  |:BL SetCol:MOV r|
000004e0  31 34 2c 72 35 0d 02 a8  04 0d 02 b2 36 4d 4f 56  |14,r5.......6MOV|
000004f0  20 72 30 2c 23 34 3a 4c  44 52 20 72 31 2c 5b 72  | r0,#4:LDR r1,[r|
00000500  36 5d 3a 4c 44 52 20 72  32 2c 5b 72 36 2c 23 34  |6]:LDR r2,[r6,#4|
00000510  5d 3a 53 57 49 20 22 4f  53 5f 50 6c 6f 74 22 0d  |]:SWI "OS_Plot".|
00000520  02 bc 4d 4d 4f 56 20 72  30 2c 23 31 3a 4c 44 52  |..MMOV r0,#1:LDR|
00000530  20 72 31 2c 5b 72 36 2c  23 38 5d 3a 4c 44 52 20  | r1,[r6,#8]:LDR |
00000540  72 33 2c 5b 72 36 5d 3a  53 55 42 20 72 31 2c 72  |r3,[r6]:SUB r1,r|
00000550  31 2c 72 33 3a 4d 4f 56  20 72 32 2c 23 30 3a 53  |1,r3:MOV r2,#0:S|
00000560  57 49 20 22 4f 53 5f 50  6c 6f 74 22 0d 02 c6 04  |WI "OS_Plot"....|
00000570  0d 02 d0 51 4d 4f 56 20  72 30 2c 23 31 3a 4c 44  |...QMOV r0,#1:LD|
00000580  52 20 72 32 2c 5b 72 36  2c 23 31 32 5d 3a 4c 44  |R r2,[r6,#12]:LD|
00000590  52 20 72 33 2c 5b 72 36  2c 23 34 5d 3a 4d 4f 56  |R r3,[r6,#4]:MOV|
000005a0  20 72 31 2c 23 30 3a 53  55 42 20 72 32 2c 72 32  | r1,#0:SUB r2,r2|
000005b0  2c 72 33 3a 53 57 49 20  22 4f 53 5f 50 6c 6f 74  |,r3:SWI "OS_Plot|
000005c0  22 0d 02 da 5a 4d 4f 56  20 72 30 2c 23 31 3a 4c  |"...ZMOV r0,#1:L|
000005d0  44 52 20 72 32 2c 5b 72  36 2c 23 38 5d 3a 4c 44  |DR r2,[r6,#8]:LD|
000005e0  52 20 72 33 2c 5b 72 36  5d 3a 53 55 42 20 72 32  |R r3,[r6]:SUB r2|
000005f0  2c 72 32 2c 72 33 3a 52  53 42 20 72 31 2c 72 32  |,r2,r3:RSB r1,r2|
00000600  2c 23 30 3a 4d 4f 56 20  72 32 2c 23 30 3a 53 57  |,#0:MOV r2,#0:SW|
00000610  49 20 22 4f 53 5f 50 6c  6f 74 22 0d 02 e4 5e 4d  |I "OS_Plot"...^M|
00000620  4f 56 20 72 30 2c 23 31  3a 4c 44 52 20 72 31 2c  |OV r0,#1:LDR r1,|
00000630  5b 72 36 2c 23 31 32 5d  3a 4c 44 52 20 72 33 2c  |[r6,#12]:LDR r3,|
00000640  5b 72 36 2c 23 34 5d 3a  53 55 42 20 72 31 2c 72  |[r6,#4]:SUB r1,r|
00000650  31 2c 72 33 3a 52 53 42  20 72 32 2c 72 31 2c 23  |1,r3:RSB r2,r1,#|
00000660  30 3a 4d 4f 56 20 72 31  2c 23 30 3a 53 57 49 20  |0:MOV r1,#0:SWI |
00000670  22 4f 53 5f 50 6c 6f 74  22 0d 02 ee 04 0d 02 f8  |"OS_Plot".......|
00000680  3c 4c 44 52 20 72 31 2c  5b 72 36 5d 3a 20 20 20  |<LDR r1,[r6]:   |
00000690  20 4c 44 52 20 72 32 2c  5b 72 36 2c 23 33 32 5d  | LDR r2,[r6,#32]|
000006a0  3a 41 44 44 20 72 31 2c  72 31 2c 72 32 3a 53 54  |:ADD r1,r1,r2:ST|
000006b0  52 20 72 31 2c 5b 72 36  5d 0d 03 02 3f 4c 44 52  |R r1,[r6]...?LDR|
000006c0  20 72 31 2c 5b 72 36 2c  23 34 5d 3a 20 4c 44 52  | r1,[r6,#4]: LDR|
000006d0  20 72 32 2c 5b 72 36 2c  23 33 36 5d 3a 41 44 44  | r2,[r6,#36]:ADD|
000006e0  20 72 31 2c 72 31 2c 72  32 3a 53 54 52 20 72 31  | r1,r1,r2:STR r1|
000006f0  2c 5b 72 36 2c 23 34 5d  0d 03 0c 3f 4c 44 52 20  |,[r6,#4]...?LDR |
00000700  72 31 2c 5b 72 36 2c 23  38 5d 3a 20 4c 44 52 20  |r1,[r6,#8]: LDR |
00000710  72 32 2c 5b 72 36 2c 23  34 30 5d 3a 41 44 44 20  |r2,[r6,#40]:ADD |
00000720  72 31 2c 72 31 2c 72 32  3a 53 54 52 20 72 31 2c  |r1,r1,r2:STR r1,|
00000730  5b 72 36 2c 23 38 5d 0d  03 16 40 4c 44 52 20 72  |[r6,#8]...@LDR r|
00000740  31 2c 5b 72 36 2c 23 31  32 5d 3a 4c 44 52 20 72  |1,[r6,#12]:LDR r|
00000750  32 2c 5b 72 36 2c 23 34  34 5d 3a 41 44 44 20 72  |2,[r6,#44]:ADD r|
00000760  31 2c 72 31 2c 72 32 3a  53 54 52 20 72 31 2c 5b  |1,r1,r2:STR r1,[|
00000770  72 36 2c 23 31 32 5d 0d  03 20 04 0d 03 2a 1e 53  |r6,#12].. ...*.S|
00000780  57 49 20 32 35 36 2b 31  38 3a 53 57 49 20 32 35  |WI 256+18:SWI 25|
00000790  36 3a 53 57 49 20 32 35  36 0d 03 34 2b 53 57 49  |6:SWI 256..4+SWI|
000007a0  20 32 35 36 2b 32 33 3a  53 57 49 20 32 35 36 2b  | 256+23:SWI 256+|
000007b0  31 37 3a 53 57 49 20 32  35 36 2b 32 3a 53 57 49  |17:SWI 256+2:SWI|
000007c0  20 32 35 36 0d 03 3e 33  53 57 49 20 32 35 36 3a  | 256..>3SWI 256:|
000007d0  53 57 49 20 32 35 36 3a  53 57 49 20 32 35 36 3a  |SWI 256:SWI 256:|
*
000007f0  53 57 49 20 32 35 36 0d  03 48 04 0d 03 52 3b 4d  |SWI 256..H...R;M|
00000800  4f 56 20 72 30 2c 23 34  3a 4c 44 52 20 72 31 2c  |OV r0,#4:LDR r1,|
00000810  5b 72 36 2c 23 31 36 5d  3a 4c 44 52 20 72 32 2c  |[r6,#16]:LDR r2,|
00000820  5b 72 36 2c 23 32 30 5d  3a 53 57 49 20 22 4f 53  |[r6,#20]:SWI "OS|
00000830  5f 50 6c 6f 74 22 0d 03  5c 04 0d 03 66 52 4d 4f  |_Plot"..\...fRMO|
00000840  56 20 72 30 2c 23 31 3a  4c 44 52 20 72 31 2c 5b  |V r0,#1:LDR r1,[|
00000850  72 36 2c 23 32 34 5d 3a  4c 44 52 20 72 33 2c 5b  |r6,#24]:LDR r3,[|
00000860  72 36 2c 23 31 36 5d 3a  53 55 42 20 72 31 2c 72  |r6,#16]:SUB r1,r|
00000870  31 2c 72 33 3a 4d 4f 56  20 72 32 2c 23 30 3a 53  |1,r3:MOV r2,#0:S|
00000880  57 49 20 22 4f 53 5f 50  6c 6f 74 22 0d 03 70 52  |WI "OS_Plot"..pR|
00000890  4d 4f 56 20 72 30 2c 23  31 3a 4c 44 52 20 72 32  |MOV r0,#1:LDR r2|
000008a0  2c 5b 72 36 2c 23 32 38  5d 3a 4c 44 52 20 72 33  |,[r6,#28]:LDR r3|
000008b0  2c 5b 72 36 2c 23 32 30  5d 3a 4d 4f 56 20 72 31  |,[r6,#20]:MOV r1|
000008c0  2c 23 30 3a 53 55 42 20  72 32 2c 72 32 2c 72 33  |,#0:SUB r2,r2,r3|
000008d0  3a 53 57 49 20 22 4f 53  5f 50 6c 6f 74 22 0d 03  |:SWI "OS_Plot"..|
000008e0  7a 5f 4d 4f 56 20 72 30  2c 23 31 3a 4c 44 52 20  |z_MOV r0,#1:LDR |
000008f0  72 32 2c 5b 72 36 2c 23  32 34 5d 3a 4c 44 52 20  |r2,[r6,#24]:LDR |
00000900  72 33 2c 5b 72 36 2c 23  31 36 5d 3a 53 55 42 20  |r3,[r6,#16]:SUB |
00000910  72 32 2c 72 32 2c 72 33  3a 52 53 42 20 72 31 2c  |r2,r2,r3:RSB r1,|
00000920  72 32 2c 23 30 3a 4d 4f  56 20 72 32 2c 23 30 3a  |r2,#0:MOV r2,#0:|
00000930  53 57 49 20 22 4f 53 5f  50 6c 6f 74 22 0d 03 84  |SWI "OS_Plot"...|
00000940  5f 4d 4f 56 20 72 30 2c  23 31 3a 4c 44 52 20 72  |_MOV r0,#1:LDR r|
00000950  31 2c 5b 72 36 2c 23 32  38 5d 3a 4c 44 52 20 72  |1,[r6,#28]:LDR r|
00000960  33 2c 5b 72 36 2c 23 32  30 5d 3a 53 55 42 20 72  |3,[r6,#20]:SUB r|
00000970  31 2c 72 31 2c 72 33 3a  52 53 42 20 72 32 2c 72  |1,r1,r3:RSB r2,r|
00000980  31 2c 23 30 3a 4d 4f 56  20 72 31 2c 23 30 3a 53  |1,#0:MOV r1,#0:S|
00000990  57 49 20 22 4f 53 5f 50  6c 6f 74 22 0d 03 8e 04  |WI "OS_Plot"....|
000009a0  0d 03 98 40 4c 44 52 20  72 31 2c 5b 72 36 2c 23  |...@LDR r1,[r6,#|
000009b0  31 36 5d 3a 4c 44 52 20  72 32 2c 5b 72 36 2c 23  |16]:LDR r2,[r6,#|
000009c0  34 38 5d 3a 41 44 44 20  72 31 2c 72 31 2c 72 32  |48]:ADD r1,r1,r2|
000009d0  3a 53 54 52 20 72 31 2c  5b 72 36 2c 23 31 36 5d  |:STR r1,[r6,#16]|
000009e0  0d 03 a2 40 4c 44 52 20  72 31 2c 5b 72 36 2c 23  |...@LDR r1,[r6,#|
000009f0  32 30 5d 3a 4c 44 52 20  72 32 2c 5b 72 36 2c 23  |20]:LDR r2,[r6,#|
00000a00  35 32 5d 3a 41 44 44 20  72 31 2c 72 31 2c 72 32  |52]:ADD r1,r1,r2|
00000a10  3a 53 54 52 20 72 31 2c  5b 72 36 2c 23 32 30 5d  |:STR r1,[r6,#20]|
00000a20  0d 03 ac 40 4c 44 52 20  72 31 2c 5b 72 36 2c 23  |...@LDR r1,[r6,#|
00000a30  32 34 5d 3a 4c 44 52 20  72 32 2c 5b 72 36 2c 23  |24]:LDR r2,[r6,#|
00000a40  35 36 5d 3a 41 44 44 20  72 31 2c 72 31 2c 72 32  |56]:ADD r1,r1,r2|
00000a50  3a 53 54 52 20 72 31 2c  5b 72 36 2c 23 32 34 5d  |:STR r1,[r6,#24]|
00000a60  0d 03 b6 40 4c 44 52 20  72 31 2c 5b 72 36 2c 23  |...@LDR r1,[r6,#|
00000a70  32 38 5d 3a 4c 44 52 20  72 32 2c 5b 72 36 2c 23  |28]:LDR r2,[r6,#|
00000a80  36 30 5d 3a 41 44 44 20  72 31 2c 72 31 2c 72 32  |60]:ADD r1,r1,r2|
00000a90  3a 53 54 52 20 72 31 2c  5b 72 36 2c 23 32 38 5d  |:STR r1,[r6,#28]|
00000aa0  0d 03 c0 04 0d 03 ca 45  41 44 52 20 72 34 2c 61  |.......EADR r4,a|
00000ab0  76 61 72 73 3a 53 54 4d  49 41 20 72 34 2c 7b 72  |vars:STMIA r4,{r|
00000ac0  32 2d 72 31 31 2c 72 31  34 7d 3a 42 4c 20 43 68  |2-r11,r14}:BL Ch|
00000ad0  65 63 6b 20 3a 4c 44 4d  49 41 20 72 34 2c 7b 72  |eck :LDMIA r4,{r|
00000ae0  32 2d 31 31 2c 72 31 34  7d 0d 03 d4 04 0d 03 de  |2-11,r14}.......|
00000af0  0f 41 44 52 20 72 30 2c  72 65 67 73 0d 03 e8 16  |.ADR r0,regs....|
00000b00  4c 44 4d 49 41 20 72 30  21 2c 7b 72 31 2d 72 31  |LDMIA r0!,{r1-r1|
00000b10  34 7d 0d 03 f2 0e 4d 4f  56 20 50 43 2c 72 31 34  |4}....MOV PC,r14|
00000b20  0d 03 fc 04 0d 04 06 09  2e 65 78 69 74 0d 04 10  |.........exit...|
00000b30  0f 41 44 52 20 72 36 2c  76 61 72 73 0d 04 1a 22  |.ADR r6,vars..."|
00000b40  4c 44 52 20 72 30 2c 5b  72 36 2c 23 30 5d 3a 53  |LDR r0,[r6,#0]:S|
00000b50  54 52 20 72 30 2c 5b 72  36 2c 23 31 36 5d 0d 04  |TR r0,[r6,#16]..|
00000b60  24 22 4c 44 52 20 72 30  2c 5b 72 36 2c 23 34 5d  |$"LDR r0,[r6,#4]|
00000b70  3a 53 54 52 20 72 30 2c  5b 72 36 2c 23 32 30 5d  |:STR r0,[r6,#20]|
00000b80  0d 04 2e 22 4c 44 52 20  72 30 2c 5b 72 36 2c 23  |..."LDR r0,[r6,#|
00000b90  38 5d 3a 53 54 52 20 72  30 2c 5b 72 36 2c 23 32  |8]:STR r0,[r6,#2|
00000ba0  34 5d 0d 04 38 23 4c 44  52 20 72 30 2c 5b 72 36  |4]..8#LDR r0,[r6|
00000bb0  2c 23 31 32 5d 3a 53 54  52 20 72 30 2c 5b 72 36  |,#12]:STR r0,[r6|
00000bc0  2c 23 32 38 5d 0d 04 42  04 0d 04 4c 0f 41 44 52  |,#28]..B...L.ADR|
00000bd0  20 72 30 2c 72 65 67 73  0d 04 56 16 4c 44 4d 49  | r0,regs..V.LDMI|
00000be0  41 20 72 30 21 2c 7b 72  31 2d 72 31 34 7d 0d 04  |A r0!,{r1-r14}..|
00000bf0  60 04 0d 04 6a 0e 4d 4f  56 20 50 43 2c 72 31 34  |`...j.MOV PC,r14|
00000c00  0d 04 74 04 0d 04 7e 09  2e 72 65 67 73 0d 04 88  |..t...~..regs...|
00000c10  3b 45 51 55 44 20 30 3a  45 51 55 44 20 30 3a 45  |;EQUD 0:EQUD 0:E|
00000c20  51 55 44 20 30 3a 45 51  55 44 20 30 3a 45 51 55  |QUD 0:EQUD 0:EQU|
00000c30  44 20 30 3a 45 51 55 44  20 30 3a 45 51 55 44 20  |D 0:EQUD 0:EQUD |
00000c40  30 3a 45 51 55 44 20 30  0d 04 92 3b 45 51 55 44  |0:EQUD 0...;EQUD|
00000c50  20 30 3a 45 51 55 44 20  30 3a 45 51 55 44 20 30  | 0:EQUD 0:EQUD 0|
00000c60  3a 45 51 55 44 20 30 3a  45 51 55 44 20 30 3a 45  |:EQUD 0:EQUD 0:E|
00000c70  51 55 44 20 30 3a 45 51  55 44 20 30 3a 45 51 55  |QUD 0:EQUD 0:EQU|
00000c80  44 20 30 0d 04 9c 04 0d  04 a6 09 2e 64 69 6d 73  |D 0.........dims|
00000c90  0d 04 b0 11 45 51 55 44  20 30 3a 45 51 55 44 20  |....EQUD 0:EQUD |
00000ca0  30 0d 04 ba 04 0d 04 c4  09 2e 69 6e 69 74 0d 04  |0.........init..|
00000cb0  ce 04 0d 04 d8 0f 41 44  52 20 72 33 2c 64 69 6d  |......ADR r3,dim|
00000cc0  73 0d 04 e2 0f 53 54 52  20 72 30 2c 5b 72 33 5d  |s....STR r0,[r3]|
00000cd0  0d 04 ec 12 53 54 52 20  72 31 2c 5b 72 33 2c 23  |....STR r1,[r3,#|
00000ce0  34 5d 0d 04 f6 04 0d 05  00 0e 4d 4f 56 20 72 31  |4]........MOV r1|
00000cf0  31 2c 72 30 0d 05 0a 0e  4d 4f 56 20 72 31 32 2c  |1,r0....MOV r12,|
00000d00  72 31 0d 05 14 04 0d 05  1e 0f 41 44 52 20 72 30  |r1........ADR r0|
00000d10  2c 72 65 67 73 0d 05 28  16 53 54 4d 49 41 20 72  |,regs..(.STMIA r|
00000d20  30 21 2c 7b 72 31 2d 72  31 34 7d 0d 05 32 04 0d  |0!,{r1-r14}..2..|
00000d30  05 3c 0f 41 44 52 20 72  33 2c 61 72 67 73 0d 05  |.<.ADR r3,args..|
00000d40  46 26 4c 44 52 20 72 37  2c 5b 72 33 5d 20 3b 20  |F&LDR r7,[r3] ; |
00000d50  72 37 20 3d 20 6e 75 6d  62 65 72 20 6f 66 20 6c  |r7 = number of l|
00000d60  69 6e 65 73 0d 05 50 37  41 44 52 20 72 36 2c 76  |ines..P7ADR r6,v|
00000d70  61 72 73 20 3b 20 72 36  20 3d 20 61 64 64 72 65  |ars ; r6 = addre|
00000d80  73 73 20 6f 66 20 73 74  6f 72 65 20 66 6f 72 20  |ss of store for |
00000d90  6c 69 6e 65 20 70 6f 69  6e 74 73 0d 05 5a 2e 4d  |line points..Z.M|
00000da0  4f 56 20 72 34 2c 23 35  30 20 3a 53 54 52 20 72  |OV r4,#50 :STR r|
00000db0  34 2c 5b 72 36 2c 23 30  5d 3a 53 54 52 20 72 34  |4,[r6,#0]:STR r4|
00000dc0  2c 5b 72 36 2c 23 31 36  5d 0d 05 64 2e 4d 4f 56  |,[r6,#16]..d.MOV|
00000dd0  20 72 34 2c 23 32 30 30  3a 53 54 52 20 72 34 2c  | r4,#200:STR r4,|
00000de0  5b 72 36 2c 23 34 5d 3a  53 54 52 20 72 34 2c 5b  |[r6,#4]:STR r4,[|
00000df0  72 36 2c 23 32 30 5d 0d  05 6e 2e 4d 4f 56 20 72  |r6,#20]..n.MOV r|
00000e00  34 2c 23 33 36 30 3a 53  54 52 20 72 34 2c 5b 72  |4,#360:STR r4,[r|
00000e10  36 2c 23 38 5d 3a 53 54  52 20 72 34 2c 5b 72 36  |6,#8]:STR r4,[r6|
00000e20  2c 23 32 34 5d 0d 05 78  2f 4d 4f 56 20 72 34 2c  |,#24]..x/MOV r4,|
00000e30  23 34 30 30 3a 53 54 52  20 72 34 2c 5b 72 36 2c  |#400:STR r4,[r6,|
00000e40  23 31 32 5d 3a 53 54 52  20 72 34 2c 5b 72 36 2c  |#12]:STR r4,[r6,|
00000e50  23 32 38 5d 0d 05 82 33  4c 44 52 20 72 34 2c 5b  |#28]...3LDR r4,[|
00000e60  72 33 2c 23 34 5d 20 3a  53 54 52 20 72 34 2c 5b  |r3,#4] :STR r4,[|
00000e70  72 36 2c 23 33 32 5d 3a  53 54 52 20 72 34 2c 5b  |r6,#32]:STR r4,[|
00000e80  72 36 2c 23 34 38 5d 0d  05 8c 33 4c 44 52 20 72  |r6,#48]...3LDR r|
00000e90  34 2c 5b 72 33 2c 23 38  5d 20 3a 53 54 52 20 72  |4,[r3,#8] :STR r|
00000ea0  34 2c 5b 72 36 2c 23 33  36 5d 3a 53 54 52 20 72  |4,[r6,#36]:STR r|
00000eb0  34 2c 5b 72 36 2c 23 35  32 5d 0d 05 96 33 4c 44  |4,[r6,#52]...3LD|
00000ec0  52 20 72 34 2c 5b 72 33  2c 23 31 32 5d 3a 53 54  |R r4,[r3,#12]:ST|
00000ed0  52 20 72 34 2c 5b 72 36  2c 23 34 30 5d 3a 53 54  |R r4,[r6,#40]:ST|
00000ee0  52 20 72 34 2c 5b 72 36  2c 23 35 36 5d 0d 05 a0  |R r4,[r6,#56]...|
00000ef0  33 4c 44 52 20 72 34 2c  5b 72 33 2c 23 31 36 5d  |3LDR r4,[r3,#16]|
00000f00  3a 53 54 52 20 72 34 2c  5b 72 36 2c 23 34 34 5d  |:STR r4,[r6,#44]|
00000f10  3a 53 54 52 20 72 34 2c  5b 72 36 2c 23 36 30 5d  |:STR r4,[r6,#60]|
00000f20  0d 05 aa 04 0d 05 b4 11  41 44 52 20 72 33 2c 6e  |........ADR r3,n|
00000f30  6f 63 6f 6c 73 0d 05 be  29 53 54 52 20 72 32 2c  |ocols...)STR r2,|
00000f40  5b 72 33 5d 20 3b 20 73  74 6f 72 65 20 6e 75 6d  |[r3] ; store num|
00000f50  62 65 72 20 6f 66 20 63  6f 6c 6f 75 72 73 0d 05  |ber of colours..|
00000f60  c8 04 0d 05 d2 0e 2e 6d  61 69 6e 61 67 61 69 6e  |.......mainagain|
00000f70  0d 05 dc 04 0d 05 e6 23  4d 4f 56 20 72 35 2c 72  |.......#MOV r5,r|
00000f80  31 34 3a 42 4c 20 53 65  74 43 6f 6c 3a 4d 4f 56  |14:BL SetCol:MOV|
00000f90  20 72 31 34 2c 72 35 0d  05 f0 04 0d 05 fa 0f 41  | r14,r5........A|
00000fa0  44 52 20 72 36 2c 76 61  72 73 0d 06 04 04 0d 06  |DR r6,vars......|
00000fb0  0e 36 4d 4f 56 20 72 30  2c 23 34 3a 4c 44 52 20  |.6MOV r0,#4:LDR |
00000fc0  72 31 2c 5b 72 36 5d 3a  4c 44 52 20 72 32 2c 5b  |r1,[r6]:LDR r2,[|
00000fd0  72 36 2c 23 34 5d 3a 53  57 49 20 22 4f 53 5f 50  |r6,#4]:SWI "OS_P|
00000fe0  6c 6f 74 22 0d 06 18 4d  4d 4f 56 20 72 30 2c 23  |lot"...MMOV r0,#|
00000ff0  31 3a 4c 44 52 20 72 31  2c 5b 72 36 2c 23 38 5d  |1:LDR r1,[r6,#8]|
00001000  3a 4c 44 52 20 72 33 2c  5b 72 36 5d 3a 53 55 42  |:LDR r3,[r6]:SUB|
00001010  20 72 31 2c 72 31 2c 72  33 3a 4d 4f 56 20 72 32  | r1,r1,r3:MOV r2|
00001020  2c 23 30 3a 53 57 49 20  22 4f 53 5f 50 6c 6f 74  |,#0:SWI "OS_Plot|
00001030  22 0d 06 22 04 0d 06 2c  51 4d 4f 56 20 72 30 2c  |".."...,QMOV r0,|
00001040  23 31 3a 4c 44 52 20 72  32 2c 5b 72 36 2c 23 31  |#1:LDR r2,[r6,#1|
00001050  32 5d 3a 4c 44 52 20 72  33 2c 5b 72 36 2c 23 34  |2]:LDR r3,[r6,#4|
00001060  5d 3a 4d 4f 56 20 72 31  2c 23 30 3a 53 55 42 20  |]:MOV r1,#0:SUB |
00001070  72 32 2c 72 32 2c 72 33  3a 53 57 49 20 22 4f 53  |r2,r2,r3:SWI "OS|
00001080  5f 50 6c 6f 74 22 0d 06  36 04 0d 06 40 5a 4d 4f  |_Plot"..6...@ZMO|
00001090  56 20 72 30 2c 23 31 3a  4c 44 52 20 72 32 2c 5b  |V r0,#1:LDR r2,[|
000010a0  72 36 2c 23 38 5d 3a 4c  44 52 20 72 33 2c 5b 72  |r6,#8]:LDR r3,[r|
000010b0  36 5d 3a 53 55 42 20 72  32 2c 72 32 2c 72 33 3a  |6]:SUB r2,r2,r3:|
000010c0  52 53 42 20 72 31 2c 72  32 2c 23 30 3a 4d 4f 56  |RSB r1,r2,#0:MOV|
000010d0  20 72 32 2c 23 30 3a 53  57 49 20 22 4f 53 5f 50  | r2,#0:SWI "OS_P|
000010e0  6c 6f 74 22 0d 06 4a 5e  4d 4f 56 20 72 30 2c 23  |lot"..J^MOV r0,#|
000010f0  31 3a 4c 44 52 20 72 31  2c 5b 72 36 2c 23 31 32  |1:LDR r1,[r6,#12|
00001100  5d 3a 4c 44 52 20 72 33  2c 5b 72 36 2c 23 34 5d  |]:LDR r3,[r6,#4]|
00001110  3a 53 55 42 20 72 31 2c  72 31 2c 72 33 3a 52 53  |:SUB r1,r1,r3:RS|
00001120  42 20 72 32 2c 72 31 2c  23 30 3a 4d 4f 56 20 72  |B r2,r1,#0:MOV r|
00001130  31 2c 23 30 3a 53 57 49  20 22 4f 53 5f 50 6c 6f  |1,#0:SWI "OS_Plo|
00001140  74 22 0d 06 54 04 0d 06  5e 38 4c 44 52 20 72 31  |t"..T...^8LDR r1|
00001150  2c 5b 72 36 5d 3a 4c 44  52 20 72 32 2c 5b 72 36  |,[r6]:LDR r2,[r6|
00001160  2c 23 33 32 5d 3a 41 44  44 20 72 31 2c 72 31 2c  |,#32]:ADD r1,r1,|
00001170  72 32 3a 53 54 52 20 72  31 2c 5b 72 36 5d 0d 06  |r2:STR r1,[r6]..|
00001180  68 3e 4c 44 52 20 72 31  2c 5b 72 36 2c 23 34 5d  |h>LDR r1,[r6,#4]|
00001190  3a 4c 44 52 20 72 32 2c  5b 72 36 2c 23 33 36 5d  |:LDR r2,[r6,#36]|
000011a0  3a 41 44 44 20 72 31 2c  72 31 2c 72 32 3a 53 54  |:ADD r1,r1,r2:ST|
000011b0  52 20 72 31 2c 5b 72 36  2c 23 34 5d 0d 06 72 3e  |R r1,[r6,#4]..r>|
000011c0  4c 44 52 20 72 31 2c 5b  72 36 2c 23 38 5d 3a 4c  |LDR r1,[r6,#8]:L|
000011d0  44 52 20 72 32 2c 5b 72  36 2c 23 34 30 5d 3a 41  |DR r2,[r6,#40]:A|
000011e0  44 44 20 72 31 2c 72 31  2c 72 32 3a 53 54 52 20  |DD r1,r1,r2:STR |
000011f0  72 31 2c 5b 72 36 2c 23  38 5d 0d 06 7c 40 4c 44  |r1,[r6,#8]..|@LD|
00001200  52 20 72 31 2c 5b 72 36  2c 23 31 32 5d 3a 4c 44  |R r1,[r6,#12]:LD|
00001210  52 20 72 32 2c 5b 72 36  2c 23 34 34 5d 3a 41 44  |R r2,[r6,#44]:AD|
00001220  44 20 72 31 2c 72 31 2c  72 32 3a 53 54 52 20 72  |D r1,r1,r2:STR r|
00001230  31 2c 5b 72 36 2c 23 31  32 5d 0d 06 86 22 4d 4f  |1,[r6,#12]..."MO|
00001240  56 20 72 35 2c 72 31 34  3a 42 4c 20 43 68 65 63  |V r5,r14:BL Chec|
00001250  6b 3a 4d 4f 56 20 72 31  34 2c 72 35 0d 06 90 3f  |k:MOV r14,r5...?|
00001260  41 44 52 20 72 34 2c 61  76 61 72 73 3a 53 54 4d  |ADR r4,avars:STM|
00001270  49 41 20 72 34 2c 7b 72  31 34 2c 72 30 2d 72 33  |IA r4,{r14,r0-r3|
00001280  2c 72 35 2d 31 31 7d 3a  42 4c 20 53 63 61 6e 3a  |,r5-11}:BL Scan:|
00001290  43 4d 50 53 20 72 31 30  2c 23 31 0d 06 9a 27 4c  |CMPS r10,#1...'L|
000012a0  44 4d 49 41 20 72 34 2c  7b 72 31 34 2c 72 30 2d  |DMIA r4,{r14,r0-|
000012b0  72 33 2c 72 35 2d 31 31  7d 3a 42 45 51 20 65 78  |r3,r5-11}:BEQ ex|
000012c0  69 74 0d 06 a4 11 53 55  42 53 20 72 37 2c 72 37  |it....SUBS r7,r7|
000012d0  2c 23 31 0d 06 ae 04 0d  06 b8 11 42 50 4c 20 6d  |,#1........BPL m|
000012e0  61 69 6e 61 67 61 69 6e  0d 06 c2 04 0d 06 cc 04  |ainagain........|
000012f0  0d 06 d6 0e 4d 4f 56 20  50 43 2c 72 31 34 0d 06  |....MOV PC,r14..|
00001300  e0 04 0d 06 ea 2a 2e 76  61 72 73 20 3b 20 73 74  |.....*.vars ; st|
00001310  6f 72 61 67 65 20 66 6f  72 20 70 72 6f 67 72 61  |orage for progra|
00001320  6d 20 76 61 72 69 61 62  6c 65 73 2e 0d 06 f4 49  |m variables....I|
00001330  45 51 55 44 20 35 30 3a  45 51 55 44 20 32 30 30  |EQUD 50:EQUD 200|
00001340  3a 45 51 55 44 20 33 35  30 3a 45 51 55 44 20 34  |:EQUD 350:EQUD 4|
00001350  30 30 3a 45 51 55 44 20  35 30 3a 45 51 55 44 20  |00:EQUD 50:EQUD |
00001360  32 30 30 3a 45 51 55 44  20 33 35 30 3a 45 51 55  |200:EQUD 350:EQU|
00001370  44 20 34 30 30 0d 06 fe  41 45 51 55 44 20 31 36  |D 400...AEQUD 16|
00001380  3a 45 51 55 44 20 38 3a  45 51 55 44 20 32 34 3a  |:EQUD 8:EQUD 24:|
00001390  45 51 55 44 20 31 36 3a  45 51 55 44 20 31 36 3a  |EQUD 16:EQUD 16:|
000013a0  45 51 55 44 20 38 3a 45  51 55 44 20 32 34 3a 45  |EQUD 8:EQUD 24:E|
000013b0  51 55 44 20 31 36 0d 07  08 04 0d 07 12 29 2e 61  |QUD 16.......).a|
000013c0  76 61 72 73 20 3b 20 66  6f 72 20 72 65 73 65 72  |vars ; for reser|
000013d0  76 69 6e 67 20 74 68 65  20 72 65 67 69 73 74 65  |ving the registe|
000013e0  72 73 2e 0d 07 1c 3b 45  51 55 44 20 30 3a 45 51  |rs....;EQUD 0:EQ|
000013f0  55 44 20 30 3a 45 51 55  44 20 30 3a 45 51 55 44  |UD 0:EQUD 0:EQUD|
00001400  20 30 3a 45 51 55 44 20  30 3a 45 51 55 44 20 30  | 0:EQUD 0:EQUD 0|
00001410  3a 45 51 55 44 20 30 3a  45 51 55 44 20 30 0d 07  |:EQUD 0:EQUD 0..|
00001420  26 1f 45 51 55 44 20 30  3a 45 51 55 44 20 30 3a  |&.EQUD 0:EQUD 0:|
00001430  45 51 55 44 20 30 3a 45  51 55 44 20 30 0d 07 30  |EQUD 0:EQUD 0..0|
00001440  04 0d 07 3a 49 3b 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |...:I;----------|
00001450  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00001480  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 0d 07 44 04 0d 07  |----------..D...|
00001490  4e 09 2e 53 63 61 6e 0d  07 58 3f 3b 20 6f 6e 20  |N..Scan..X?; on |
000014a0  72 65 74 75 72 6e 20 72  31 30 20 77 69 6c 6c 20  |return r10 will |
000014b0  63 6f 6e 74 61 69 6e 20  31 20 3d 20 65 78 69 74  |contain 1 = exit|
000014c0  20 70 72 6f 67 2e 20 30  20 3d 20 64 6f 6e 27 74  | prog. 0 = don't|
000014d0  20 65 78 69 74 2e 0d 07  62 04 0d 07 6c 31 53 57  | exit...b...l1SW|
000014e0  49 20 22 4f 53 5f 4d 6f  75 73 65 22 3a 4d 4f 56  |I "OS_Mouse":MOV|
000014f0  20 72 38 2c 72 30 3a 4d  4f 56 20 72 39 2c 72 31  | r8,r0:MOV r9,r1|
00001500  3a 4d 4f 56 20 72 31 31  2c 72 32 0d 07 76 4c 4d  |:MOV r11,r2..vLM|
00001510  4f 56 20 72 31 30 2c 23  30 3a 4d 4f 56 20 72 30  |OV r10,#0:MOV r0|
00001520  2c 23 31 32 31 3a 4d 4f  56 20 72 31 2c 23 30 3a  |,#121:MOV r1,#0:|
00001530  53 57 49 20 22 4f 53 5f  42 79 74 65 22 3a 43 4d  |SWI "OS_Byte":CM|
00001540  50 53 20 72 31 2c 23 32  35 35 3a 4d 4f 56 4e 45  |PS r1,#255:MOVNE|
00001550  20 72 31 30 2c 23 31 0d  07 80 42 53 57 49 20 22  | r10,#1...BSWI "|
00001560  4f 53 5f 4d 6f 75 73 65  22 3a 43 4d 50 53 20 72  |OS_Mouse":CMPS r|
00001570  30 2c 72 38 3a 4d 4f 56  4e 45 20 72 31 30 2c 23  |0,r8:MOVNE r10,#|
00001580  31 3a 43 4d 50 53 20 72  31 2c 72 39 3a 4d 4f 56  |1:CMPS r1,r9:MOV|
00001590  4e 45 20 72 31 30 2c 23  31 0d 07 8a 1d 43 4d 50  |NE r10,#1....CMP|
000015a0  53 20 72 32 2c 72 31 31  3a 3a 4d 4f 56 4e 45 20  |S r2,r11::MOVNE |
000015b0  72 31 30 2c 23 31 0d 07  94 0e 4d 4f 56 20 50 43  |r10,#1....MOV PC|
000015c0  2c 72 31 34 0d 07 9e 04  0d 07 a8 49 3b 2d 2d 2d  |,r14.......I;---|
000015d0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00001610  2d 0d 07 b2 04 0d 07 bc  0a 2e 43 68 65 63 6b 0d  |-.........Check.|
00001620  07 c6 40 4c 44 52 20 72  30 2c 5b 72 36 5d 3a 4c  |..@LDR r0,[r6]:L|
00001630  44 52 20 72 31 2c 5b 72  36 2c 23 33 32 5d 3a 43  |DR r1,[r6,#32]:C|
00001640  4d 50 53 20 72 30 2c 72  31 31 3a 53 55 42 47 54  |MPS r0,r11:SUBGT|
00001650  20 72 31 2c 72 31 2c 72  31 2c 4c 53 4c 23 31 0d  | r1,r1,r1,LSL#1.|
00001660  07 d0 47 53 54 52 47 54  20 72 31 2c 5b 72 36 2c  |..GSTRGT r1,[r6,|
00001670  23 33 32 5d 3a 43 4d 50  53 20 72 30 2c 23 30 3a  |#32]:CMPS r0,#0:|
00001680  53 55 42 4c 54 20 72 31  2c 72 31 2c 72 31 2c 4c  |SUBLT r1,r1,r1,L|
00001690  53 4c 23 31 3a 53 54 52  4c 54 20 72 31 2c 5b 72  |SL#1:STRLT r1,[r|
000016a0  36 2c 23 33 32 5d 0d 07  da 43 4c 44 52 20 72 30  |6,#32]...CLDR r0|
000016b0  2c 5b 72 36 2c 23 34 5d  3a 4c 44 52 20 72 31 2c  |,[r6,#4]:LDR r1,|
000016c0  5b 72 36 2c 23 33 36 5d  3a 43 4d 50 53 20 72 30  |[r6,#36]:CMPS r0|
000016d0  2c 72 31 32 3a 53 55 42  47 54 20 72 31 2c 72 31  |,r12:SUBGT r1,r1|
000016e0  2c 72 31 2c 4c 53 4c 23  31 0d 07 e4 47 53 54 52  |,r1,LSL#1...GSTR|
000016f0  47 54 20 72 31 2c 5b 72  36 2c 23 33 36 5d 3a 43  |GT r1,[r6,#36]:C|
00001700  4d 50 53 20 72 30 2c 23  30 3a 53 55 42 4c 54 20  |MPS r0,#0:SUBLT |
00001710  72 31 2c 72 31 2c 72 31  2c 4c 53 4c 23 31 3a 53  |r1,r1,r1,LSL#1:S|
00001720  54 52 4c 54 20 72 31 2c  5b 72 36 2c 23 33 36 5d  |TRLT r1,[r6,#36]|
00001730  0d 07 ee 43 4c 44 52 20  72 30 2c 5b 72 36 2c 23  |...CLDR r0,[r6,#|
00001740  38 5d 3a 4c 44 52 20 72  31 2c 5b 72 36 2c 23 34  |8]:LDR r1,[r6,#4|
00001750  30 5d 3a 43 4d 50 53 20  72 30 2c 72 31 31 3a 53  |0]:CMPS r0,r11:S|
00001760  55 42 47 54 20 72 31 2c  72 31 2c 72 31 2c 4c 53  |UBGT r1,r1,r1,LS|
00001770  4c 23 31 0d 07 f8 47 53  54 52 47 54 20 72 31 2c  |L#1...GSTRGT r1,|
00001780  5b 72 36 2c 23 34 30 5d  3a 43 4d 50 53 20 72 30  |[r6,#40]:CMPS r0|
00001790  2c 23 30 3a 53 55 42 4c  54 20 72 31 2c 72 31 2c  |,#0:SUBLT r1,r1,|
000017a0  72 31 2c 4c 53 4c 23 31  3a 53 54 52 4c 54 20 72  |r1,LSL#1:STRLT r|
000017b0  31 2c 5b 72 36 2c 23 34  30 5d 0d 08 02 44 4c 44  |1,[r6,#40]...DLD|
000017c0  52 20 72 30 2c 5b 72 36  2c 23 31 32 5d 3a 4c 44  |R r0,[r6,#12]:LD|
000017d0  52 20 72 31 2c 5b 72 36  2c 23 34 34 5d 3a 43 4d  |R r1,[r6,#44]:CM|
000017e0  50 53 20 72 30 2c 72 31  32 3a 53 55 42 47 54 20  |PS r0,r12:SUBGT |
000017f0  72 31 2c 72 31 2c 72 31  2c 4c 53 4c 23 31 0d 08  |r1,r1,r1,LSL#1..|
00001800  0c 47 53 54 52 47 54 20  72 31 2c 5b 72 36 2c 23  |.GSTRGT r1,[r6,#|
00001810  34 34 5d 3a 43 4d 50 53  20 72 30 2c 23 30 3a 53  |44]:CMPS r0,#0:S|
00001820  55 42 4c 54 20 72 31 2c  72 31 2c 72 31 2c 4c 53  |UBLT r1,r1,r1,LS|
00001830  4c 23 31 3a 53 54 52 4c  54 20 72 31 2c 5b 72 36  |L#1:STRLT r1,[r6|
00001840  2c 23 34 34 5d 0d 08 16  44 4c 44 52 20 72 30 2c  |,#44]...DLDR r0,|
00001850  5b 72 36 2c 23 31 36 5d  3a 4c 44 52 20 72 31 2c  |[r6,#16]:LDR r1,|
00001860  5b 72 36 2c 23 34 38 5d  3a 43 4d 50 53 20 72 30  |[r6,#48]:CMPS r0|
00001870  2c 72 31 31 3a 53 55 42  47 54 20 72 31 2c 72 31  |,r11:SUBGT r1,r1|
00001880  2c 72 31 2c 4c 53 4c 23  31 0d 08 20 47 53 54 52  |,r1,LSL#1.. GSTR|
00001890  47 54 20 72 31 2c 5b 72  36 2c 23 34 38 5d 3a 43  |GT r1,[r6,#48]:C|
000018a0  4d 50 53 20 72 30 2c 23  30 3a 53 55 42 4c 54 20  |MPS r0,#0:SUBLT |
000018b0  72 31 2c 72 31 2c 72 31  2c 4c 53 4c 23 31 3a 53  |r1,r1,r1,LSL#1:S|
000018c0  54 52 4c 54 20 72 31 2c  5b 72 36 2c 23 34 38 5d  |TRLT r1,[r6,#48]|
000018d0  0d 08 2a 44 4c 44 52 20  72 30 2c 5b 72 36 2c 23  |..*DLDR r0,[r6,#|
000018e0  32 30 5d 3a 4c 44 52 20  72 31 2c 5b 72 36 2c 23  |20]:LDR r1,[r6,#|
000018f0  35 32 5d 3a 43 4d 50 53  20 72 30 2c 72 31 32 3a  |52]:CMPS r0,r12:|
00001900  53 55 42 47 54 20 72 31  2c 72 31 2c 72 31 2c 4c  |SUBGT r1,r1,r1,L|
00001910  53 4c 23 31 0d 08 34 47  53 54 52 47 54 20 72 31  |SL#1..4GSTRGT r1|
00001920  2c 5b 72 36 2c 23 35 32  5d 3a 43 4d 50 53 20 72  |,[r6,#52]:CMPS r|
00001930  30 2c 23 30 3a 53 55 42  4c 54 20 72 31 2c 72 31  |0,#0:SUBLT r1,r1|
00001940  2c 72 31 2c 4c 53 4c 23  31 3a 53 54 52 4c 54 20  |,r1,LSL#1:STRLT |
00001950  72 31 2c 5b 72 36 2c 23  35 32 5d 0d 08 3e 44 4c  |r1,[r6,#52]..>DL|
00001960  44 52 20 72 30 2c 5b 72  36 2c 23 32 34 5d 3a 4c  |DR r0,[r6,#24]:L|
00001970  44 52 20 72 31 2c 5b 72  36 2c 23 35 36 5d 3a 43  |DR r1,[r6,#56]:C|
00001980  4d 50 53 20 72 30 2c 72  31 31 3a 53 55 42 47 54  |MPS r0,r11:SUBGT|
00001990  20 72 31 2c 72 31 2c 72  31 2c 4c 53 4c 23 31 0d  | r1,r1,r1,LSL#1.|
000019a0  08 48 47 53 54 52 47 54  20 72 31 2c 5b 72 36 2c  |.HGSTRGT r1,[r6,|
000019b0  23 35 36 5d 3a 43 4d 50  53 20 72 30 2c 23 30 3a  |#56]:CMPS r0,#0:|
000019c0  53 55 42 4c 54 20 72 31  2c 72 31 2c 72 31 2c 4c  |SUBLT r1,r1,r1,L|
000019d0  53 4c 23 31 3a 53 54 52  4c 54 20 72 31 2c 5b 72  |SL#1:STRLT r1,[r|
000019e0  36 2c 23 35 36 5d 0d 08  52 44 4c 44 52 20 72 30  |6,#56]..RDLDR r0|
000019f0  2c 5b 72 36 2c 23 32 38  5d 3a 4c 44 52 20 72 31  |,[r6,#28]:LDR r1|
00001a00  2c 5b 72 36 2c 23 36 30  5d 3a 43 4d 50 53 20 72  |,[r6,#60]:CMPS r|
00001a10  30 2c 72 31 32 3a 53 55  42 47 54 20 72 31 2c 72  |0,r12:SUBGT r1,r|
00001a20  31 2c 72 31 2c 4c 53 4c  23 31 0d 08 5c 47 53 54  |1,r1,LSL#1..\GST|
00001a30  52 47 54 20 72 31 2c 5b  72 36 2c 23 36 30 5d 3a  |RGT r1,[r6,#60]:|
00001a40  43 4d 50 53 20 72 30 2c  23 30 3a 53 55 42 4c 54  |CMPS r0,#0:SUBLT|
00001a50  20 72 31 2c 72 31 2c 72  31 2c 4c 53 4c 23 31 3a  | r1,r1,r1,LSL#1:|
00001a60  53 54 52 4c 54 20 72 31  2c 5b 72 36 2c 23 36 30  |STRLT r1,[r6,#60|
00001a70  5d 0d 08 66 0e 4d 4f 56  20 50 43 2c 72 31 34 0d  |]..f.MOV PC,r14.|
00001a80  08 70 04 0d 08 7a 49 3b  2d 2d 2d 2d 2d 2d 2d 2d  |.p...zI;--------|
00001a90  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00001ac0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 0d 08 84 04  |------------....|
00001ad0  0d 08 8e 46 3b 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |...F;-----------|
00001ae0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00001b10  2d 2d 2d 2d 2d 2d 0d 08  98 04 0d 08 a2 21 2e 73  |------.......!.s|
00001b20  68 75 74 64 6f 77 6e 20  3b 20 74 68 65 20 73 68  |hutdown ; the sh|
00001b30  75 74 64 6f 77 6e 20 63  6f 64 65 0d 08 ac 04 0d  |utdown code.....|
00001b40  08 b6 49 3b 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |..I;------------|
00001b50  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00001b80  2d 2d 2d 2d 2d 2d 2d 2d  0d 08 c0 3c 3b 20 20 20  |--------...<;   |
00001b90  20 20 20 20 20 20 20 20  2a 2a 2a 2a 2a 2a 2a 2a  |        ********|
00001ba0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00001bc0  2a 2a 2a 2a 0d 08 ca 3c  3b 20 20 20 20 20 20 20  |****...<;       |
00001bd0  20 20 20 20 2a 2a 2a 20  20 20 20 59 4f 55 52 20  |    ***    YOUR |
00001be0  53 48 55 54 44 4f 57 4e  20 43 4f 44 45 20 53 54  |SHUTDOWN CODE ST|
00001bf0  41 52 54 53 20 48 45 52  45 20 20 20 20 2a 2a 2a  |ARTS HERE    ***|
00001c00  0d 08 d4 3c 3b 20 20 20  20 20 20 20 20 20 20 20  |...<;           |
00001c10  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00001c30  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 0d 08 de 04  |************....|
00001c40  0d 08 e8 3a 3b 20 20 20  20 20 20 20 20 20 20 20  |...:;           |
00001c50  20 62 6c 61 68 21 20 62  6c 61 68 21 20 62 6c 61  | blah! blah! bla|
00001c60  68 21 20 62 6c 61 68 21  20 62 6c 61 68 21 20 62  |h! blah! blah! b|
00001c70  6c 61 68 21 20 62 6c 61  68 21 0d 08 f2 04 0d 08  |lah! blah!......|
00001c80  fc 3c 3b 20 20 20 20 20  20 20 20 20 20 20 2a 2a  |.<;           **|
00001c90  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00001cb0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 0d 09 06 3c 3b 20  |**********...<; |
00001cc0  20 20 20 20 20 20 20 20  20 20 2a 2a 2a 20 20 20  |          ***   |
00001cd0  20 20 59 4f 55 52 20 53  48 55 54 44 4f 57 4e 20  |  YOUR SHUTDOWN |
00001ce0  43 4f 44 45 20 45 4e 44  53 20 48 45 52 45 20 20  |CODE ENDS HERE  |
00001cf0  20 20 20 2a 2a 2a 0d 09  10 3c 3b 20 20 20 20 20  |   ***...<;     |
00001d00  20 20 20 20 20 20 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |      **********|
00001d10  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00001d30  2a 2a 0d 09 1a 49 3b 2d  2d 2d 2d 2d 2d 2d 2d 2d  |**...I;---------|
00001d40  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00001d70  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 0d 09 24 24 4d  |-----------..$$M|
00001d80  4f 56 20 50 43 2c 72 31  34 20 3b 20 65 78 69 74  |OV PC,r14 ; exit|
00001d90  20 73 68 75 74 64 6f 77  6e 20 63 6f 64 65 2e 0d  | shutdown code..|
00001da0  09 2e 04 0d 09 38 04 0d  09 42 04 0d 09 4c 0b 2e  |.....8...B...L..|
00001db0  6e 6f 63 6f 6c 73 0d 09  56 2f 45 51 55 44 20 32  |nocols..V/EQUD 2|
00001dc0  20 20 20 3b 20 41 63 74  75 61 6c 20 4e 6f 2e 20  |   ; Actual No. |
00001dd0  6f 66 20 63 6f 6c 6f 75  72 73 20 32 2f 34 2f 31  |of colours 2/4/1|
00001de0  36 2f 32 35 36 0d 09 60  11 45 51 55 44 20 31 20  |6/256..`.EQUD 1 |
00001df0  20 20 20 3b 20 e6 0d 09  6a 12 45 51 55 44 20 30  |   ; ...j.EQUD 0|
00001e00  20 20 20 20 3b 20 c8 9c  0d 09 74 04 0d 09 7e 0b  |    ; ....t...~.|
00001e10  2e 53 65 74 43 6f 6c 0d  09 88 04 0d 09 92 3e 4c  |.SetCol.......>L|
00001e20  44 52 20 6e 63 6f 6c 2c  5b 50 43 2c 23 28 2d 32  |DR ncol,[PC,#(-2|
00001e30  30 29 5d 20 3b 20 4c 6f  61 64 20 4e 6f 2e 20 6f  |0)] ; Load No. o|
00001e40  66 20 63 6f 6c 6f 75 72  73 20 72 65 6c 61 74 69  |f colours relati|
00001e50  76 65 20 74 6f 20 50 43  2e 0d 09 9c 39 4c 44 52  |ve to PC....9LDR|
00001e60  20 67 63 6f 6c 2c 5b 50  43 2c 23 28 2d 32 30 29  | gcol,[PC,#(-20)|
00001e70  5d 20 3b 20 4c 6f 61 64  20 43 75 72 72 65 6e 74  |] ; Load Current|
00001e80  20 e6 20 72 65 6c 61 74  69 76 65 20 74 6f 20 50  | . relative to P|
00001e90  43 2e 0d 09 a6 3a 4c 44  52 20 74 69 6e 74 2c 5b  |C....:LDR tint,[|
00001ea0  50 43 2c 23 28 2d 32 30  29 5d 20 3b 20 4c 6f 61  |PC,#(-20)] ; Loa|
00001eb0  64 20 43 75 72 72 65 6e  74 20 c8 9c 20 72 65 6c  |d Current .. rel|
00001ec0  61 74 69 76 65 20 74 6f  20 50 43 2e 0d 09 b0 04  |ative to PC.....|
00001ed0  0d 09 ba 36 43 4d 50 53  20 6e 63 6f 6c 2c 23 32  |...6CMPS ncol,#2|
00001ee0  35 36 20 20 20 20 20 20  20 3b 20 49 66 20 6e 6f  |56       ; If no|
00001ef0  74 20 61 20 32 35 36 20  63 6f 6c 6f 75 72 20 6d  |t a 256 colour m|
00001f00  6f 64 65 20 2e 2e 0d 09  c4 2f 42 4c 54 20 6c 65  |ode ...../BLT le|
00001f10  73 73 74 68 61 6e 32 35  36 20 20 20 20 20 20 3b  |ssthan256      ;|
00001f20  20 2e 2e 20 67 6f 74 6f  20 2e 6c 65 73 73 74 68  | .. goto .lessth|
00001f30  61 6e 32 35 36 0d 09 ce  04 0d 09 d8 1a 3b 20 53  |an256........; S|
00001f40  65 74 20 e6 20 30 2c 67  63 6f 6c 20 c8 9c 20 74  |et . 0,gcol .. t|
00001f50  69 6e 74 0d 09 e2 04 0d  09 ec 32 53 57 49 20 32  |int.......2SWI 2|
00001f60  35 36 2b 31 38 3a 53 57  49 20 32 35 36 3a 4d 4f  |56+18:SWI 256:MO|
00001f70  56 20 72 30 2c 67 63 6f  6c 3a 53 57 49 20 22 4f  |V r0,gcol:SWI "O|
00001f80  53 5f 57 72 69 74 65 43  22 0d 09 f6 3f 53 57 49  |S_WriteC"...?SWI|
00001f90  20 32 35 36 2b 32 33 3a  53 57 49 20 32 35 36 2b  | 256+23:SWI 256+|
00001fa0  31 37 3a 53 57 49 20 32  35 36 2b 32 3a 4d 4f 56  |17:SWI 256+2:MOV|
00001fb0  20 72 30 2c 74 69 6e 74  3a 53 57 49 20 22 4f 53  | r0,tint:SWI "OS|
00001fc0  5f 57 72 69 74 65 43 22  0d 0a 00 33 53 57 49 20  |_WriteC"...3SWI |
00001fd0  32 35 36 3a 53 57 49 20  32 35 36 3a 53 57 49 20  |256:SWI 256:SWI |
*
00001ff0  32 35 36 3a 53 57 49 20  32 35 36 0d 0a 0a 04 0d  |256:SWI 256.....|
00002000  0a 14 15 41 44 44 20 74  69 6e 74 2c 74 69 6e 74  |...ADD tint,tint|
00002010  2c 23 36 34 0d 0a 1e 12  43 4d 50 53 20 74 69 6e  |,#64....CMPS tin|
00002020  74 2c 23 32 35 36 0d 0a  28 0e ec 51 20 74 69 6e  |t,#256..(..Q tin|
00002030  74 2c 23 30 0d 0a 32 16  41 44 44 45 51 20 67 63  |t,#0..2.ADDEQ gc|
00002040  6f 6c 2c 67 63 6f 6c 2c  23 31 0d 0a 3c 11 43 4d  |ol,gcol,#1..<.CM|
00002050  50 53 20 67 63 6f 6c 2c  23 36 34 0d 0a 46 11 4d  |PS gcol,#64..F.M|
00002060  4f 56 47 45 20 67 63 6f  6c 2c 23 31 0d 0a 50 19  |OVGE gcol,#1..P.|
00002070  53 54 52 20 67 63 6f 6c  2c 5b 50 43 2c 23 28 2d  |STR gcol,[PC,#(-|
00002080  31 32 30 29 5d 0d 0a 5a  19 53 54 52 20 74 69 6e  |120)]..Z.STR tin|
00002090  74 2c 5b 50 43 2c 23 28  2d 31 32 30 29 5d 0d 0a  |t,[PC,#(-120)]..|
000020a0  64 0e 4d 4f 56 20 50 43  2c 72 31 34 0d 0a 6e 04  |d.MOV PC,r14..n.|
000020b0  0d 0a 78 10 2e 6c 65 73  73 74 68 61 6e 32 35 36  |..x..lessthan256|
000020c0  0d 0a 82 32 53 57 49 20  32 35 36 2b 31 38 3a 53  |...2SWI 256+18:S|
000020d0  57 49 20 32 35 36 3a 4d  4f 56 20 72 30 2c 67 63  |WI 256:MOV r0,gc|
000020e0  6f 6c 3a 53 57 49 20 22  4f 53 5f 57 72 69 74 65  |ol:SWI "OS_Write|
000020f0  43 22 0d 0a 8c 04 0d 0a  96 14 41 44 44 20 67 63  |C"........ADD gc|
00002100  6f 6c 2c 67 63 6f 6c 2c  23 31 0d 0a a0 12 43 4d  |ol,gcol,#1....CM|
00002110  50 53 20 67 63 6f 6c 2c  6e 63 6f 6c 0d 0a aa 11  |PS gcol,ncol....|
00002120  4d 4f 56 47 45 20 67 63  6f 6c 2c 23 31 0d 0a b4  |MOVGE gcol,#1...|
00002130  19 53 54 52 20 67 63 6f  6c 2c 5b 50 43 2c 23 28  |.STR gcol,[PC,#(|
00002140  2d 31 36 30 29 5d 0d 0a  be 0e 4d 4f 56 20 50 43  |-160)]....MOV PC|
00002150  2c 72 31 34 0d 0a c8 04  0d 0a d2 05 5d 0d 0a dc  |,r14........]...|
00002160  0a ed 20 70 61 73 73 0d  0a e6 0e f1 20 50 25 2d  |.. pass..... P%-|
00002170  63 6f 64 65 25 0d 0a f0  0d f4 20 41 24 3d 47 45  |code%..... A$=GE|
00002180  54 24 0d 0a fa 05 e1 0d  ff                       |T$.......|
00002189