Home » Archimedes archive » Acorn User » AU 1995-02.adf » !StarInfo_StarInfo » Parkinson/!WobblText/!RunImage

Parkinson/!WobblText/!RunImage

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 » !StarInfo_StarInfo
Filename: Parkinson/!WobblText/!RunImage
Read OK:
File size: 1183 bytes
Load address: 0000
Exec address: 0000
File contents
   10REM WobbleText
   20REM by Jack Parkinson
   30MODE 15
   40OFF
   50ON ERROR PROCerror:END
   60:
   70amp1%=3
   80amp2%=3
   90wave1inc%=21+RND(5)
  100wave2inc%=15+RND(5)
  110minheight%=8
  120:
  130PRINT "Please wait..."
  140PROCload
  150PROCtables
  160PROCassemble
  170MODE 13
  180OFF
  190CALL animate
  200MODE 0
  210END
  220:
  230DEF PROCerror
  240MODE 0
  250PRINT REPORT$;" at line ";ERL
  260ENDPROC
  270:
  280DEF FNfilelen(fn$)
  290f%=OPENIN(fn$)
  300len%=EXT#f%
  310CLOSE #f%
  320=len%
  330:
  340DEF PROCload
  350sprites%=(FNfilelen("<WobbleText$Dir>.charimage")-256) DIV (32*40)
  360DIM charimage% (256+32*40*sprites%)
  370OSCLI "LOAD <WobbleText$Dir>.charimage "+STR$~charimage%
  380textlen%=FNfilelen("<WobbleText$Dir>.text")
  390DIM text% textlen%+10
  400OSCLI "LOAD <WobbleText$Dir>.text "+STR$~text%
  410FOR i%=0 TO 9
  420text%?(textlen%+i%)=32
  430NEXT i%
  440ENDPROC
  450:
  460DEF PROCtables
  470wavelength%=640
  480DIM sinetable% wavelength%,scaletable% 128*128
  490FOR p%=1 TO wavelength%
  500angle=2*PI*(p%/wavelength%)
  510sinetable%?(p%-1)=128+127*SIN(angle)
  520NEXT p%
  530FOR height%=1 TO 128
  540addr%=scaletable%+128*(height%-1)
  550FOR ypos%=1 TO height%
  560addr%?(ypos%-1)=40*(ypos%/height%)-1
  570NEXT ypos%
  580NEXT height%
  590ENDPROC
  600:
  610:
  620DEF PROCassemble
  630wave1ypos%=128-(128/2^amp1%)-minheight%/2
  640wave2ypos%=128+(128/2^amp2%)+minheight%/2
  650DIM code% &1000,temp% 88*4
  660FOR pass%=0 TO 2 STEP 2
  670P%=code%
  680[OPT pass%
  690.vbuffer     EQUD 148
  700             EQUD -1
  710.scr1        EQUD 0
  720.scr2        EQUD 0
  730.cscr        EQUD 0
  740.textaddr    EQUD text%
  750.textlen     EQUD textlen%
  760.textpos     EQUD 0
  770.textoff     EQUD 0
  780.spriteaddr  EQUD charimage%+256
  790.asciitable  EQUD charimage%
  800.sinetable   EQUD sinetable%
  810.wave1pos    EQUD 0
  820.wave2pos    EQUD 0
  830.scaletable  EQUD scaletable%
  840.plottable   EQUD temp%
  850:
  860.animate
  870STMFD R13!,{R14}
  880.aniloop
  890BL cls
  900BL plotscrolltext
  910BL doscroll
  920BL swap
  930MOV R0,#129
  940MVN R1,#112
  950MOV R2,#&FF
  960SWI "OS_Byte"
  970CMP R1,#&FF
  980BNE aniloop
  990LDMFD R13!,{PC}
 1000:
 1010.swap
 1020MOV R0,#19
 1030SWI "OS_Byte"
 1040LDR R0,cscr
 1050LDR R1,scr1
 1060LDR R2,scr2
 1070CMP R0,R2
 1080BEQ swap2
 1090.swap1
 1100STR R2,cscr
 1110MOV R0,#113
 1120MOV R1,#1
 1130SWI "OS_Byte"
 1140MOV PC,R14
 1150.swap2
 1160STR R1,cscr
 1170MOV R0,#113
 1180MOV R1,#2
 1190SWI "OS_Byte"
 1200MOV PC,R14
 1210:
 1220.cls
 1230LDR R0,cscr
 1240ADD R0,R0,#32*320
 1250]:FOR r%=2 TO 11
 1260[OPT pass%
 1270MOV r%,#0
 1280]:NEXT r%
 1290[OPT pass%
 1300MOV R1,#48
 1310.clsloop
 1320]:FOR i%=1 TO 32
 1330[OPT pass%
 1340STMIA R0!,{R2-R11}
 1350]:NEXT i%
 1360[OPT pass%
 1370SUBS R1,R1,#1
 1380BGT clsloop
 1390MOV PC,R14
 1400:
 1410.doscroll
 1420MOV R0,#129
 1430MVN R1,#35
 1440MOV R2,#&FF
 1450SWI "OS_Byte"
 1460CMP R1,#&FF
 1470BEQ notextscroll
 1480LDR R0,textoff
 1490LDR R1,textpos
 1500ADD R0,R0,#4
 1510CMP R0,#32
 1520MOVGE R0,#0
 1530ADDGE R1,R1,#1
 1540LDR R2,textlen
 1550CMP R1,R2
 1560MOVGE R1,#0
 1570STR R0,textoff
 1580STR R1,textpos
 1590.notextscroll
 1600MOV R0,#129
 1610MVN R1,#33
 1620MOV R2,#&FF
 1630SWI "OS_Byte"
 1640CMP R1,#&FF
 1650BEQ nowavemotion
 1660LDR R0,wave1pos
 1670ADD R0,R0,#wave1inc%
 1680CMP R0,#wavelength%
 1690SUBGE R0,R0,#wavelength%
 1700STR R0,wave1pos
 1710LDR R0,wave2pos
 1720ADD R0,R0,#wave2inc%
 1730CMP R0,#wavelength%
 1740SUBGE R0,R0,#wavelength%
 1750STR R0,wave2pos
 1760.nowavemotion
 1770MOV PC,R14
 1780:
 1790.plotscrolltext
 1800LDR R0,textaddr
 1810LDR R1,textpos
 1820ADD R0,R0,R1
 1830LDR R1,plottable
 1840LDR R2,asciitable
 1850LDR R3,spriteaddr
 1860MOV R4,#11
 1870.charloop
 1880LDRB R5,[R0],#1
 1890LDRB R5,[R2,R5]
 1900CMP R5,#0
 1910LDREQB R5,[R2,#32]
 1920SUB R5,R5,#1
 1930MOV R6,#(32*40)
 1940MUL R5,R6,R5
 1950ADD R5,R5,R3
 1960]:FOR i%=1 TO 8
 1970[OPT pass%
 1980STR R5,[R1],#4
 1990ADD R5,R5,#4*40
 2000]:NEXT i%
 2010[OPT pass%
 2020SUBS R4,R4,#1
 2030BGT charloop
 2040:
 2050MOV R0,#0
 2060LDR R1,plottable
 2070LDR R2,textoff
 2080ADD R1,R1,R2
 2090LDR R2,sinetable
 2100LDR R3,wave1pos
 2110LDR R4,wave2pos
 2120LDR R5,scaletable
 2130LDR R12,cscr
 2140.plottextloop
 2150LDRB R6,[R2,R3]
 2160SUB R6,R6,#128
 2170MOV R6,R6,ASR#amp1%
 2180ADD R6,R6,#wave1ypos%
 2190LDRB R7,[R2,R4]
 2200SUB R7,R7,#128
 2210MOV R7,R7,ASR#amp2%
 2220ADD R7,R7,#wave2ypos%
 2230SUB R7,R7,R6
 2240SUB R8,R7,#1
 2250CMP R8,#127
 2260MOVGT R8,#127
 2270MOVGT R7,#127
 2280ADD R8,R5,R8,LSL#7
 2290ADD R9,R12,R6,LSL#6
 2300ADD R9,R9,R6,LSL#8
 2310ADD R9,R9,R0
 2320LDR R10,[R1],#4
 2330.columnloop
 2340LDRB R11,[R8],#1
 2350LDR R11,[R10,R11,LSL#2]
 2360STR R11,[R9],#320
 2370SUBS R7,R7,#1
 2380BGT columnloop
 2390:
 2400ADD R3,R3,#4
 2410CMP R3,#wavelength%
 2420SUBGE R3,R3,#wavelength%
 2430ADD R4,R4,#4
 2440CMP R4,#wavelength%
 2450SUBGE R4,R4,#wavelength%
 2460ADD R0,R0,#4
 2470CMP R0,#320
 2480BLT plottextloop
 2490MOV PC,R14
 2500]
 2510NEXT pass%
 2520SYS "OS_ReadVduVariables",vbuffer,scr1
 2530!scr2=320*256+!scr1
 2540!cscr=!scr1
 2550ENDPROC

� WobbleText
� by Jack Parkinson
� 15
(�
2� � �error:�
<:
Famp1%=3
Pamp2%=3
Zwave1inc%=21+�(5)
dwave2inc%=15+�(5)
nminheight%=8
x:
�� "Please wait..."
�	�load
��tables
�
�assemble
�� 13
��
�
� animate
�� 0
��
�:
�� �error
�� 0
�� �$;" at line ";�
�
:
� �filelen(fn$)
"
f%=�(fn$)
,
len%=�#f%
6	� #f%
@	=len%
J:
T� �load
^Csprites%=(�filelen("<WobbleText$Dir>.charimage")-256) � (32*40)
h%� charimage% (256+32*40*sprites%)
r5� "LOAD <WobbleText$Dir>.charimage "+�~charimage%
|.textlen%=�filelen("<WobbleText$Dir>.text")
�� text% textlen%+10
�+� "LOAD <WobbleText$Dir>.text "+�~text%
�� i%=0 � 9
�text%?(textlen%+i%)=32
�� i%
��
�:
�
� �tables
�wavelength%=640
�0� sinetable% wavelength%,scaletable% 128*128
�� p%=1 � wavelength%
�angle=2*�*(p%/wavelength%)
�&sinetable%?(p%-1)=128+127*�(angle)
� p%
� height%=1 � 128
%addr%=scaletable%+128*(height%-1)
&� ypos%=1 � height%
0(addr%?(ypos%-1)=40*(ypos%/height%)-1
:� ypos%
D
� height%
N�
X:
b:
l� �assemble
v-wave1ypos%=128-(128/2^amp1%)-minheight%/2
�-wave2ypos%=128+(128/2^amp2%)+minheight%/2
�� code% &1000,temp% 88*4
�� pass%=0 � 2 � 2
�P%=code%
�[OPT pass%
�.vbuffer     EQUD 148
�             EQUD -1
�.scr1        EQUD 0
�.scr2        EQUD 0
�.cscr        EQUD 0
�.textaddr    EQUD text%
�.textlen     EQUD textlen%
�.textpos     EQUD 0
.textoff     EQUD 0
$.spriteaddr  EQUD charimage%+256
 .asciitable  EQUD charimage%
  .sinetable   EQUD sinetable%
*.wave1pos    EQUD 0
4.wave2pos    EQUD 0
>!.scaletable  EQUD scaletable%
H.plottable   EQUD temp%
R:
\.animate
fSTMFD R13!,{R14}
p.aniloop
z
BL cls
�BL plotscrolltext
�BL doscroll
�BL swap
�MOV R0,#129
�MVN R1,#112
�MOV R2,#&FF
�SWI "OS_Byte"
�CMP R1,#&FF
�BNE aniloop
�LDMFD R13!,{PC}
�:
�	.swap
�MOV R0,#19
SWI "OS_Byte"
LDR R0,cscr
LDR R1,scr1
$LDR R2,scr2
.
CMP R0,R2
8
BEQ swap2
B
.swap1
LSTR R2,cscr
VMOV R0,#113
`
MOV R1,#1
jSWI "OS_Byte"
tMOV PC,R14
~
.swap2
�STR R1,cscr
�MOV R0,#113
�
MOV R1,#2
�SWI "OS_Byte"
�MOV PC,R14
�:
�.cls
�LDR R0,cscr
�ADD R0,R0,#32*320
�]:� r%=2 � 11
�[OPT pass%
�
MOV r%,#0

]:� r%

[OPT pass%
MOV R1,#48
.clsloop
(]:� i%=1 � 32
2[OPT pass%
<STMIA R0!,{R2-R11}
F
]:� i%
P[OPT pass%
ZSUBS R1,R1,#1
dBGT clsloop
nMOV PC,R14
x:
�
.doscroll
�MOV R0,#129
�MVN R1,#35
�MOV R2,#&FF
�SWI "OS_Byte"
�CMP R1,#&FF
�BEQ notextscroll
�LDR R0,textoff
�LDR R1,textpos
�ADD R0,R0,#4
�CMP R0,#32
�MOVGE R0,#0
�ADDGE R1,R1,#1
LDR R2,textlen

CMP R1,R2
MOVGE R1,#0
"STR R0,textoff
,STR R1,textpos
6.notextscroll
@MOV R0,#129
JMVN R1,#33
TMOV R2,#&FF
^SWI "OS_Byte"
hCMP R1,#&FF
rBEQ nowavemotion
|LDR R0,wave1pos
�ADD R0,R0,#wave1inc%
�CMP R0,#wavelength%
�SUBGE R0,R0,#wavelength%
�STR R0,wave1pos
�LDR R0,wave2pos
�ADD R0,R0,#wave2inc%
�CMP R0,#wavelength%
�SUBGE R0,R0,#wavelength%
�STR R0,wave2pos
�.nowavemotion
�MOV PC,R14
�:
�.plotscrolltext
LDR R0,textaddr
LDR R1,textpos
ADD R0,R0,R1
&LDR R1,plottable
0LDR R2,asciitable
:LDR R3,spriteaddr
DMOV R4,#11
N
.charloop
XLDRB R5,[R0],#1
bLDRB R5,[R2,R5]
l
CMP R5,#0
vLDREQB R5,[R2,#32]
�SUB R5,R5,#1
�MOV R6,#(32*40)
�MUL R5,R6,R5
�ADD R5,R5,R3
�]:� i%=1 � 8
�[OPT pass%
�STR R5,[R1],#4
�ADD R5,R5,#4*40
�
]:� i%
�[OPT pass%
�SUBS R4,R4,#1
�BGT charloop
�:

MOV R0,#0
LDR R1,plottable
LDR R2,textoff
 ADD R1,R1,R2
*LDR R2,sinetable
4LDR R3,wave1pos
>LDR R4,wave2pos
HLDR R5,scaletable
RLDR R12,cscr
\.plottextloop
fLDRB R6,[R2,R3]
pSUB R6,R6,#128
zMOV R6,R6,ASR#amp1%
�ADD R6,R6,#wave1ypos%
�LDRB R7,[R2,R4]
�SUB R7,R7,#128
�MOV R7,R7,ASR#amp2%
�ADD R7,R7,#wave2ypos%
�SUB R7,R7,R6
�SUB R8,R7,#1
�CMP R8,#127
�MOVGT R8,#127
�MOVGT R7,#127
�ADD R8,R5,R8,LSL#7
�ADD R9,R12,R6,LSL#6
�ADD R9,R9,R6,LSL#8
	ADD R9,R9,R0
	LDR R10,[R1],#4
	.columnloop
	$LDRB R11,[R8],#1
	.LDR R11,[R10,R11,LSL#2]
	8STR R11,[R9],#320
	BSUBS R7,R7,#1
	LBGT columnloop
	V:
	`ADD R3,R3,#4
	jCMP R3,#wavelength%
	tSUBGE R3,R3,#wavelength%
	~ADD R4,R4,#4
	�CMP R4,#wavelength%
	�SUBGE R4,R4,#wavelength%
	�ADD R0,R0,#4
	�CMP R0,#320
	�BLT plottextloop
	�MOV PC,R14
	�]
	�� pass%
	�)ș "OS_ReadVduVariables",vbuffer,scr1
	�!scr2=320*256+!scr1
	�!cscr=!scr1
	��
�
00000000  0d 00 0a 10 f4 20 57 6f  62 62 6c 65 54 65 78 74  |..... WobbleText|
00000010  0d 00 14 17 f4 20 62 79  20 4a 61 63 6b 20 50 61  |..... by Jack Pa|
00000020  72 6b 69 6e 73 6f 6e 0d  00 1e 08 eb 20 31 35 0d  |rkinson..... 15.|
00000030  00 28 05 87 0d 00 32 10  ee 20 85 20 f2 65 72 72  |.(....2.. . .err|
00000040  6f 72 3a e0 0d 00 3c 05  3a 0d 00 46 0b 61 6d 70  |or:...<.:..F.amp|
00000050  31 25 3d 33 0d 00 50 0b  61 6d 70 32 25 3d 33 0d  |1%=3..P.amp2%=3.|
00000060  00 5a 15 77 61 76 65 31  69 6e 63 25 3d 32 31 2b  |.Z.wave1inc%=21+|
00000070  b3 28 35 29 0d 00 64 15  77 61 76 65 32 69 6e 63  |.(5)..d.wave2inc|
00000080  25 3d 31 35 2b b3 28 35  29 0d 00 6e 10 6d 69 6e  |%=15+.(5)..n.min|
00000090  68 65 69 67 68 74 25 3d  38 0d 00 78 05 3a 0d 00  |height%=8..x.:..|
000000a0  82 16 f1 20 22 50 6c 65  61 73 65 20 77 61 69 74  |... "Please wait|
000000b0  2e 2e 2e 22 0d 00 8c 09  f2 6c 6f 61 64 0d 00 96  |...".....load...|
000000c0  0b f2 74 61 62 6c 65 73  0d 00 a0 0d f2 61 73 73  |..tables.....ass|
000000d0  65 6d 62 6c 65 0d 00 aa  08 eb 20 31 33 0d 00 b4  |emble..... 13...|
000000e0  05 87 0d 00 be 0d d6 20  61 6e 69 6d 61 74 65 0d  |....... animate.|
000000f0  00 c8 07 eb 20 30 0d 00  d2 05 e0 0d 00 dc 05 3a  |.... 0.........:|
00000100  0d 00 e6 0c dd 20 f2 65  72 72 6f 72 0d 00 f0 07  |..... .error....|
00000110  eb 20 30 0d 00 fa 16 f1  20 f6 24 3b 22 20 61 74  |. 0..... .$;" at|
00000120  20 6c 69 6e 65 20 22 3b  9e 0d 01 04 05 e1 0d 01  | line ";........|
00000130  0e 05 3a 0d 01 18 13 dd  20 a4 66 69 6c 65 6c 65  |..:..... .filele|
00000140  6e 28 66 6e 24 29 0d 01  22 0d 66 25 3d 8e 28 66  |n(fn$)..".f%=.(f|
00000150  6e 24 29 0d 01 2c 0d 6c  65 6e 25 3d a2 23 66 25  |n$)..,.len%=.#f%|
00000160  0d 01 36 09 d9 20 23 66  25 0d 01 40 09 3d 6c 65  |..6.. #f%..@.=le|
00000170  6e 25 0d 01 4a 05 3a 0d  01 54 0b dd 20 f2 6c 6f  |n%..J.:..T.. .lo|
00000180  61 64 0d 01 5e 43 73 70  72 69 74 65 73 25 3d 28  |ad..^Csprites%=(|
00000190  a4 66 69 6c 65 6c 65 6e  28 22 3c 57 6f 62 62 6c  |.filelen("<Wobbl|
000001a0  65 54 65 78 74 24 44 69  72 3e 2e 63 68 61 72 69  |eText$Dir>.chari|
000001b0  6d 61 67 65 22 29 2d 32  35 36 29 20 81 20 28 33  |mage")-256) . (3|
000001c0  32 2a 34 30 29 0d 01 68  25 de 20 63 68 61 72 69  |2*40)..h%. chari|
000001d0  6d 61 67 65 25 20 28 32  35 36 2b 33 32 2a 34 30  |mage% (256+32*40|
000001e0  2a 73 70 72 69 74 65 73  25 29 0d 01 72 35 ff 20  |*sprites%)..r5. |
000001f0  22 4c 4f 41 44 20 3c 57  6f 62 62 6c 65 54 65 78  |"LOAD <WobbleTex|
00000200  74 24 44 69 72 3e 2e 63  68 61 72 69 6d 61 67 65  |t$Dir>.charimage|
00000210  20 22 2b c3 7e 63 68 61  72 69 6d 61 67 65 25 0d  | "+.~charimage%.|
00000220  01 7c 2e 74 65 78 74 6c  65 6e 25 3d a4 66 69 6c  |.|.textlen%=.fil|
00000230  65 6c 65 6e 28 22 3c 57  6f 62 62 6c 65 54 65 78  |elen("<WobbleTex|
00000240  74 24 44 69 72 3e 2e 74  65 78 74 22 29 0d 01 86  |t$Dir>.text")...|
00000250  17 de 20 74 65 78 74 25  20 74 65 78 74 6c 65 6e  |.. text% textlen|
00000260  25 2b 31 30 0d 01 90 2b  ff 20 22 4c 4f 41 44 20  |%+10...+. "LOAD |
00000270  3c 57 6f 62 62 6c 65 54  65 78 74 24 44 69 72 3e  |<WobbleText$Dir>|
00000280  2e 74 65 78 74 20 22 2b  c3 7e 74 65 78 74 25 0d  |.text "+.~text%.|
00000290  01 9a 0e e3 20 69 25 3d  30 20 b8 20 39 0d 01 a4  |.... i%=0 . 9...|
000002a0  1a 74 65 78 74 25 3f 28  74 65 78 74 6c 65 6e 25  |.text%?(textlen%|
000002b0  2b 69 25 29 3d 33 32 0d  01 ae 08 ed 20 69 25 0d  |+i%)=32..... i%.|
000002c0  01 b8 05 e1 0d 01 c2 05  3a 0d 01 cc 0d dd 20 f2  |........:..... .|
000002d0  74 61 62 6c 65 73 0d 01  d6 13 77 61 76 65 6c 65  |tables....wavele|
000002e0  6e 67 74 68 25 3d 36 34  30 0d 01 e0 30 de 20 73  |ngth%=640...0. s|
000002f0  69 6e 65 74 61 62 6c 65  25 20 77 61 76 65 6c 65  |inetable% wavele|
00000300  6e 67 74 68 25 2c 73 63  61 6c 65 74 61 62 6c 65  |ngth%,scaletable|
00000310  25 20 31 32 38 2a 31 32  38 0d 01 ea 18 e3 20 70  |% 128*128..... p|
00000320  25 3d 31 20 b8 20 77 61  76 65 6c 65 6e 67 74 68  |%=1 . wavelength|
00000330  25 0d 01 f4 1e 61 6e 67  6c 65 3d 32 2a af 2a 28  |%....angle=2*.*(|
00000340  70 25 2f 77 61 76 65 6c  65 6e 67 74 68 25 29 0d  |p%/wavelength%).|
00000350  01 fe 26 73 69 6e 65 74  61 62 6c 65 25 3f 28 70  |..&sinetable%?(p|
00000360  25 2d 31 29 3d 31 32 38  2b 31 32 37 2a b5 28 61  |%-1)=128+127*.(a|
00000370  6e 67 6c 65 29 0d 02 08  08 ed 20 70 25 0d 02 12  |ngle)..... p%...|
00000380  15 e3 20 68 65 69 67 68  74 25 3d 31 20 b8 20 31  |.. height%=1 . 1|
00000390  32 38 0d 02 1c 25 61 64  64 72 25 3d 73 63 61 6c  |28...%addr%=scal|
000003a0  65 74 61 62 6c 65 25 2b  31 32 38 2a 28 68 65 69  |etable%+128*(hei|
000003b0  67 68 74 25 2d 31 29 0d  02 26 17 e3 20 79 70 6f  |ght%-1)..&.. ypo|
000003c0  73 25 3d 31 20 b8 20 68  65 69 67 68 74 25 0d 02  |s%=1 . height%..|
000003d0  30 28 61 64 64 72 25 3f  28 79 70 6f 73 25 2d 31  |0(addr%?(ypos%-1|
000003e0  29 3d 34 30 2a 28 79 70  6f 73 25 2f 68 65 69 67  |)=40*(ypos%/heig|
000003f0  68 74 25 29 2d 31 0d 02  3a 0b ed 20 79 70 6f 73  |ht%)-1..:.. ypos|
00000400  25 0d 02 44 0d ed 20 68  65 69 67 68 74 25 0d 02  |%..D.. height%..|
00000410  4e 05 e1 0d 02 58 05 3a  0d 02 62 05 3a 0d 02 6c  |N....X.:..b.:..l|
00000420  0f dd 20 f2 61 73 73 65  6d 62 6c 65 0d 02 76 2d  |.. .assemble..v-|
00000430  77 61 76 65 31 79 70 6f  73 25 3d 31 32 38 2d 28  |wave1ypos%=128-(|
00000440  31 32 38 2f 32 5e 61 6d  70 31 25 29 2d 6d 69 6e  |128/2^amp1%)-min|
00000450  68 65 69 67 68 74 25 2f  32 0d 02 80 2d 77 61 76  |height%/2...-wav|
00000460  65 32 79 70 6f 73 25 3d  31 32 38 2b 28 31 32 38  |e2ypos%=128+(128|
00000470  2f 32 5e 61 6d 70 32 25  29 2b 6d 69 6e 68 65 69  |/2^amp2%)+minhei|
00000480  67 68 74 25 2f 32 0d 02  8a 1c de 20 63 6f 64 65  |ght%/2..... code|
00000490  25 20 26 31 30 30 30 2c  74 65 6d 70 25 20 38 38  |% &1000,temp% 88|
000004a0  2a 34 0d 02 94 15 e3 20  70 61 73 73 25 3d 30 20  |*4..... pass%=0 |
000004b0  b8 20 32 20 88 20 32 0d  02 9e 0c 50 25 3d 63 6f  |. 2 . 2....P%=co|
000004c0  64 65 25 0d 02 a8 0e 5b  4f 50 54 20 70 61 73 73  |de%....[OPT pass|
000004d0  25 0d 02 b2 19 2e 76 62  75 66 66 65 72 20 20 20  |%.....vbuffer   |
000004e0  20 20 45 51 55 44 20 31  34 38 0d 02 bc 18 20 20  |  EQUD 148....  |
000004f0  20 20 20 20 20 20 20 20  20 20 20 45 51 55 44 20  |           EQUD |
00000500  2d 31 0d 02 c6 17 2e 73  63 72 31 20 20 20 20 20  |-1.....scr1     |
00000510  20 20 20 45 51 55 44 20  30 0d 02 d0 17 2e 73 63  |   EQUD 0.....sc|
00000520  72 32 20 20 20 20 20 20  20 20 45 51 55 44 20 30  |r2        EQUD 0|
00000530  0d 02 da 17 2e 63 73 63  72 20 20 20 20 20 20 20  |.....cscr       |
00000540  20 45 51 55 44 20 30 0d  02 e4 1b 2e 74 65 78 74  | EQUD 0.....text|
00000550  61 64 64 72 20 20 20 20  45 51 55 44 20 74 65 78  |addr    EQUD tex|
00000560  74 25 0d 02 ee 1e 2e 74  65 78 74 6c 65 6e 20 20  |t%.....textlen  |
00000570  20 20 20 45 51 55 44 20  74 65 78 74 6c 65 6e 25  |   EQUD textlen%|
00000580  0d 02 f8 17 2e 74 65 78  74 70 6f 73 20 20 20 20  |.....textpos    |
00000590  20 45 51 55 44 20 30 0d  03 02 17 2e 74 65 78 74  | EQUD 0.....text|
000005a0  6f 66 66 20 20 20 20 20  45 51 55 44 20 30 0d 03  |off     EQUD 0..|
000005b0  0c 24 2e 73 70 72 69 74  65 61 64 64 72 20 20 45  |.$.spriteaddr  E|
000005c0  51 55 44 20 63 68 61 72  69 6d 61 67 65 25 2b 32  |QUD charimage%+2|
000005d0  35 36 0d 03 16 20 2e 61  73 63 69 69 74 61 62 6c  |56... .asciitabl|
000005e0  65 20 20 45 51 55 44 20  63 68 61 72 69 6d 61 67  |e  EQUD charimag|
000005f0  65 25 0d 03 20 20 2e 73  69 6e 65 74 61 62 6c 65  |e%..  .sinetable|
00000600  20 20 20 45 51 55 44 20  73 69 6e 65 74 61 62 6c  |   EQUD sinetabl|
00000610  65 25 0d 03 2a 17 2e 77  61 76 65 31 70 6f 73 20  |e%..*..wave1pos |
00000620  20 20 20 45 51 55 44 20  30 0d 03 34 17 2e 77 61  |   EQUD 0..4..wa|
00000630  76 65 32 70 6f 73 20 20  20 20 45 51 55 44 20 30  |ve2pos    EQUD 0|
00000640  0d 03 3e 21 2e 73 63 61  6c 65 74 61 62 6c 65 20  |..>!.scaletable |
00000650  20 45 51 55 44 20 73 63  61 6c 65 74 61 62 6c 65  | EQUD scaletable|
00000660  25 0d 03 48 1b 2e 70 6c  6f 74 74 61 62 6c 65 20  |%..H..plottable |
00000670  20 20 45 51 55 44 20 74  65 6d 70 25 0d 03 52 05  |  EQUD temp%..R.|
00000680  3a 0d 03 5c 0c 2e 61 6e  69 6d 61 74 65 0d 03 66  |:..\..animate..f|
00000690  14 53 54 4d 46 44 20 52  31 33 21 2c 7b 52 31 34  |.STMFD R13!,{R14|
000006a0  7d 0d 03 70 0c 2e 61 6e  69 6c 6f 6f 70 0d 03 7a  |}..p..aniloop..z|
000006b0  0a 42 4c 20 63 6c 73 0d  03 84 15 42 4c 20 70 6c  |.BL cls....BL pl|
000006c0  6f 74 73 63 72 6f 6c 6c  74 65 78 74 0d 03 8e 0f  |otscrolltext....|
000006d0  42 4c 20 64 6f 73 63 72  6f 6c 6c 0d 03 98 0b 42  |BL doscroll....B|
000006e0  4c 20 73 77 61 70 0d 03  a2 0f 4d 4f 56 20 52 30  |L swap....MOV R0|
000006f0  2c 23 31 32 39 0d 03 ac  0f 4d 56 4e 20 52 31 2c  |,#129....MVN R1,|
00000700  23 31 31 32 0d 03 b6 0f  4d 4f 56 20 52 32 2c 23  |#112....MOV R2,#|
00000710  26 46 46 0d 03 c0 11 53  57 49 20 22 4f 53 5f 42  |&FF....SWI "OS_B|
00000720  79 74 65 22 0d 03 ca 0f  43 4d 50 20 52 31 2c 23  |yte"....CMP R1,#|
00000730  26 46 46 0d 03 d4 0f 42  4e 45 20 61 6e 69 6c 6f  |&FF....BNE anilo|
00000740  6f 70 0d 03 de 13 4c 44  4d 46 44 20 52 31 33 21  |op....LDMFD R13!|
00000750  2c 7b 50 43 7d 0d 03 e8  05 3a 0d 03 f2 09 2e 73  |,{PC}....:.....s|
00000760  77 61 70 0d 03 fc 0e 4d  4f 56 20 52 30 2c 23 31  |wap....MOV R0,#1|
00000770  39 0d 04 06 11 53 57 49  20 22 4f 53 5f 42 79 74  |9....SWI "OS_Byt|
00000780  65 22 0d 04 10 0f 4c 44  52 20 52 30 2c 63 73 63  |e"....LDR R0,csc|
00000790  72 0d 04 1a 0f 4c 44 52  20 52 31 2c 73 63 72 31  |r....LDR R1,scr1|
000007a0  0d 04 24 0f 4c 44 52 20  52 32 2c 73 63 72 32 0d  |..$.LDR R2,scr2.|
000007b0  04 2e 0d 43 4d 50 20 52  30 2c 52 32 0d 04 38 0d  |...CMP R0,R2..8.|
000007c0  42 45 51 20 73 77 61 70  32 0d 04 42 0a 2e 73 77  |BEQ swap2..B..sw|
000007d0  61 70 31 0d 04 4c 0f 53  54 52 20 52 32 2c 63 73  |ap1..L.STR R2,cs|
000007e0  63 72 0d 04 56 0f 4d 4f  56 20 52 30 2c 23 31 31  |cr..V.MOV R0,#11|
000007f0  33 0d 04 60 0d 4d 4f 56  20 52 31 2c 23 31 0d 04  |3..`.MOV R1,#1..|
00000800  6a 11 53 57 49 20 22 4f  53 5f 42 79 74 65 22 0d  |j.SWI "OS_Byte".|
00000810  04 74 0e 4d 4f 56 20 50  43 2c 52 31 34 0d 04 7e  |.t.MOV PC,R14..~|
00000820  0a 2e 73 77 61 70 32 0d  04 88 0f 53 54 52 20 52  |..swap2....STR R|
00000830  31 2c 63 73 63 72 0d 04  92 0f 4d 4f 56 20 52 30  |1,cscr....MOV R0|
00000840  2c 23 31 31 33 0d 04 9c  0d 4d 4f 56 20 52 31 2c  |,#113....MOV R1,|
00000850  23 32 0d 04 a6 11 53 57  49 20 22 4f 53 5f 42 79  |#2....SWI "OS_By|
00000860  74 65 22 0d 04 b0 0e 4d  4f 56 20 50 43 2c 52 31  |te"....MOV PC,R1|
00000870  34 0d 04 ba 05 3a 0d 04  c4 08 2e 63 6c 73 0d 04  |4....:.....cls..|
00000880  ce 0f 4c 44 52 20 52 30  2c 63 73 63 72 0d 04 d8  |..LDR R0,cscr...|
00000890  15 41 44 44 20 52 30 2c  52 30 2c 23 33 32 2a 33  |.ADD R0,R0,#32*3|
000008a0  32 30 0d 04 e2 11 5d 3a  e3 20 72 25 3d 32 20 b8  |20....]:. r%=2 .|
000008b0  20 31 31 0d 04 ec 0e 5b  4f 50 54 20 70 61 73 73  | 11....[OPT pass|
000008c0  25 0d 04 f6 0d 4d 4f 56  20 72 25 2c 23 30 0d 05  |%....MOV r%,#0..|
000008d0  00 0a 5d 3a ed 20 72 25  0d 05 0a 0e 5b 4f 50 54  |..]:. r%....[OPT|
000008e0  20 70 61 73 73 25 0d 05  14 0e 4d 4f 56 20 52 31  | pass%....MOV R1|
000008f0  2c 23 34 38 0d 05 1e 0c  2e 63 6c 73 6c 6f 6f 70  |,#48.....clsloop|
00000900  0d 05 28 11 5d 3a e3 20  69 25 3d 31 20 b8 20 33  |..(.]:. i%=1 . 3|
00000910  32 0d 05 32 0e 5b 4f 50  54 20 70 61 73 73 25 0d  |2..2.[OPT pass%.|
00000920  05 3c 16 53 54 4d 49 41  20 52 30 21 2c 7b 52 32  |.<.STMIA R0!,{R2|
00000930  2d 52 31 31 7d 0d 05 46  0a 5d 3a ed 20 69 25 0d  |-R11}..F.]:. i%.|
00000940  05 50 0e 5b 4f 50 54 20  70 61 73 73 25 0d 05 5a  |.P.[OPT pass%..Z|
00000950  11 53 55 42 53 20 52 31  2c 52 31 2c 23 31 0d 05  |.SUBS R1,R1,#1..|
00000960  64 0f 42 47 54 20 63 6c  73 6c 6f 6f 70 0d 05 6e  |d.BGT clsloop..n|
00000970  0e 4d 4f 56 20 50 43 2c  52 31 34 0d 05 78 05 3a  |.MOV PC,R14..x.:|
00000980  0d 05 82 0d 2e 64 6f 73  63 72 6f 6c 6c 0d 05 8c  |.....doscroll...|
00000990  0f 4d 4f 56 20 52 30 2c  23 31 32 39 0d 05 96 0e  |.MOV R0,#129....|
000009a0  4d 56 4e 20 52 31 2c 23  33 35 0d 05 a0 0f 4d 4f  |MVN R1,#35....MO|
000009b0  56 20 52 32 2c 23 26 46  46 0d 05 aa 11 53 57 49  |V R2,#&FF....SWI|
000009c0  20 22 4f 53 5f 42 79 74  65 22 0d 05 b4 0f 43 4d  | "OS_Byte"....CM|
000009d0  50 20 52 31 2c 23 26 46  46 0d 05 be 14 42 45 51  |P R1,#&FF....BEQ|
000009e0  20 6e 6f 74 65 78 74 73  63 72 6f 6c 6c 0d 05 c8  | notextscroll...|
000009f0  12 4c 44 52 20 52 30 2c  74 65 78 74 6f 66 66 0d  |.LDR R0,textoff.|
00000a00  05 d2 12 4c 44 52 20 52  31 2c 74 65 78 74 70 6f  |...LDR R1,textpo|
00000a10  73 0d 05 dc 10 41 44 44  20 52 30 2c 52 30 2c 23  |s....ADD R0,R0,#|
00000a20  34 0d 05 e6 0e 43 4d 50  20 52 30 2c 23 33 32 0d  |4....CMP R0,#32.|
00000a30  05 f0 0f 4d 4f 56 47 45  20 52 30 2c 23 30 0d 05  |...MOVGE R0,#0..|
00000a40  fa 12 41 44 44 47 45 20  52 31 2c 52 31 2c 23 31  |..ADDGE R1,R1,#1|
00000a50  0d 06 04 12 4c 44 52 20  52 32 2c 74 65 78 74 6c  |....LDR R2,textl|
00000a60  65 6e 0d 06 0e 0d 43 4d  50 20 52 31 2c 52 32 0d  |en....CMP R1,R2.|
00000a70  06 18 0f 4d 4f 56 47 45  20 52 31 2c 23 30 0d 06  |...MOVGE R1,#0..|
00000a80  22 12 53 54 52 20 52 30  2c 74 65 78 74 6f 66 66  |".STR R0,textoff|
00000a90  0d 06 2c 12 53 54 52 20  52 31 2c 74 65 78 74 70  |..,.STR R1,textp|
00000aa0  6f 73 0d 06 36 11 2e 6e  6f 74 65 78 74 73 63 72  |os..6..notextscr|
00000ab0  6f 6c 6c 0d 06 40 0f 4d  4f 56 20 52 30 2c 23 31  |oll..@.MOV R0,#1|
00000ac0  32 39 0d 06 4a 0e 4d 56  4e 20 52 31 2c 23 33 33  |29..J.MVN R1,#33|
00000ad0  0d 06 54 0f 4d 4f 56 20  52 32 2c 23 26 46 46 0d  |..T.MOV R2,#&FF.|
00000ae0  06 5e 11 53 57 49 20 22  4f 53 5f 42 79 74 65 22  |.^.SWI "OS_Byte"|
00000af0  0d 06 68 0f 43 4d 50 20  52 31 2c 23 26 46 46 0d  |..h.CMP R1,#&FF.|
00000b00  06 72 14 42 45 51 20 6e  6f 77 61 76 65 6d 6f 74  |.r.BEQ nowavemot|
00000b10  69 6f 6e 0d 06 7c 13 4c  44 52 20 52 30 2c 77 61  |ion..|.LDR R0,wa|
00000b20  76 65 31 70 6f 73 0d 06  86 18 41 44 44 20 52 30  |ve1pos....ADD R0|
00000b30  2c 52 30 2c 23 77 61 76  65 31 69 6e 63 25 0d 06  |,R0,#wave1inc%..|
00000b40  90 17 43 4d 50 20 52 30  2c 23 77 61 76 65 6c 65  |..CMP R0,#wavele|
00000b50  6e 67 74 68 25 0d 06 9a  1c 53 55 42 47 45 20 52  |ngth%....SUBGE R|
00000b60  30 2c 52 30 2c 23 77 61  76 65 6c 65 6e 67 74 68  |0,R0,#wavelength|
00000b70  25 0d 06 a4 13 53 54 52  20 52 30 2c 77 61 76 65  |%....STR R0,wave|
00000b80  31 70 6f 73 0d 06 ae 13  4c 44 52 20 52 30 2c 77  |1pos....LDR R0,w|
00000b90  61 76 65 32 70 6f 73 0d  06 b8 18 41 44 44 20 52  |ave2pos....ADD R|
00000ba0  30 2c 52 30 2c 23 77 61  76 65 32 69 6e 63 25 0d  |0,R0,#wave2inc%.|
00000bb0  06 c2 17 43 4d 50 20 52  30 2c 23 77 61 76 65 6c  |...CMP R0,#wavel|
00000bc0  65 6e 67 74 68 25 0d 06  cc 1c 53 55 42 47 45 20  |ength%....SUBGE |
00000bd0  52 30 2c 52 30 2c 23 77  61 76 65 6c 65 6e 67 74  |R0,R0,#wavelengt|
00000be0  68 25 0d 06 d6 13 53 54  52 20 52 30 2c 77 61 76  |h%....STR R0,wav|
00000bf0  65 32 70 6f 73 0d 06 e0  11 2e 6e 6f 77 61 76 65  |e2pos.....nowave|
00000c00  6d 6f 74 69 6f 6e 0d 06  ea 0e 4d 4f 56 20 50 43  |motion....MOV PC|
00000c10  2c 52 31 34 0d 06 f4 05  3a 0d 06 fe 13 2e 70 6c  |,R14....:.....pl|
00000c20  6f 74 73 63 72 6f 6c 6c  74 65 78 74 0d 07 08 13  |otscrolltext....|
00000c30  4c 44 52 20 52 30 2c 74  65 78 74 61 64 64 72 0d  |LDR R0,textaddr.|
00000c40  07 12 12 4c 44 52 20 52  31 2c 74 65 78 74 70 6f  |...LDR R1,textpo|
00000c50  73 0d 07 1c 10 41 44 44  20 52 30 2c 52 30 2c 52  |s....ADD R0,R0,R|
00000c60  31 0d 07 26 14 4c 44 52  20 52 31 2c 70 6c 6f 74  |1..&.LDR R1,plot|
00000c70  74 61 62 6c 65 0d 07 30  15 4c 44 52 20 52 32 2c  |table..0.LDR R2,|
00000c80  61 73 63 69 69 74 61 62  6c 65 0d 07 3a 15 4c 44  |asciitable..:.LD|
00000c90  52 20 52 33 2c 73 70 72  69 74 65 61 64 64 72 0d  |R R3,spriteaddr.|
00000ca0  07 44 0e 4d 4f 56 20 52  34 2c 23 31 31 0d 07 4e  |.D.MOV R4,#11..N|
00000cb0  0d 2e 63 68 61 72 6c 6f  6f 70 0d 07 58 13 4c 44  |..charloop..X.LD|
00000cc0  52 42 20 52 35 2c 5b 52  30 5d 2c 23 31 0d 07 62  |RB R5,[R0],#1..b|
00000cd0  13 4c 44 52 42 20 52 35  2c 5b 52 32 2c 52 35 5d  |.LDRB R5,[R2,R5]|
00000ce0  0d 07 6c 0d 43 4d 50 20  52 35 2c 23 30 0d 07 76  |..l.CMP R5,#0..v|
00000cf0  16 4c 44 52 45 51 42 20  52 35 2c 5b 52 32 2c 23  |.LDREQB R5,[R2,#|
00000d00  33 32 5d 0d 07 80 10 53  55 42 20 52 35 2c 52 35  |32]....SUB R5,R5|
00000d10  2c 23 31 0d 07 8a 13 4d  4f 56 20 52 36 2c 23 28  |,#1....MOV R6,#(|
00000d20  33 32 2a 34 30 29 0d 07  94 10 4d 55 4c 20 52 35  |32*40)....MUL R5|
00000d30  2c 52 36 2c 52 35 0d 07  9e 10 41 44 44 20 52 35  |,R6,R5....ADD R5|
00000d40  2c 52 35 2c 52 33 0d 07  a8 10 5d 3a e3 20 69 25  |,R5,R3....]:. i%|
00000d50  3d 31 20 b8 20 38 0d 07  b2 0e 5b 4f 50 54 20 70  |=1 . 8....[OPT p|
00000d60  61 73 73 25 0d 07 bc 12  53 54 52 20 52 35 2c 5b  |ass%....STR R5,[|
00000d70  52 31 5d 2c 23 34 0d 07  c6 13 41 44 44 20 52 35  |R1],#4....ADD R5|
00000d80  2c 52 35 2c 23 34 2a 34  30 0d 07 d0 0a 5d 3a ed  |,R5,#4*40....]:.|
00000d90  20 69 25 0d 07 da 0e 5b  4f 50 54 20 70 61 73 73  | i%....[OPT pass|
00000da0  25 0d 07 e4 11 53 55 42  53 20 52 34 2c 52 34 2c  |%....SUBS R4,R4,|
00000db0  23 31 0d 07 ee 10 42 47  54 20 63 68 61 72 6c 6f  |#1....BGT charlo|
00000dc0  6f 70 0d 07 f8 05 3a 0d  08 02 0d 4d 4f 56 20 52  |op....:....MOV R|
00000dd0  30 2c 23 30 0d 08 0c 14  4c 44 52 20 52 31 2c 70  |0,#0....LDR R1,p|
00000de0  6c 6f 74 74 61 62 6c 65  0d 08 16 12 4c 44 52 20  |lottable....LDR |
00000df0  52 32 2c 74 65 78 74 6f  66 66 0d 08 20 10 41 44  |R2,textoff.. .AD|
00000e00  44 20 52 31 2c 52 31 2c  52 32 0d 08 2a 14 4c 44  |D R1,R1,R2..*.LD|
00000e10  52 20 52 32 2c 73 69 6e  65 74 61 62 6c 65 0d 08  |R R2,sinetable..|
00000e20  34 13 4c 44 52 20 52 33  2c 77 61 76 65 31 70 6f  |4.LDR R3,wave1po|
00000e30  73 0d 08 3e 13 4c 44 52  20 52 34 2c 77 61 76 65  |s..>.LDR R4,wave|
00000e40  32 70 6f 73 0d 08 48 15  4c 44 52 20 52 35 2c 73  |2pos..H.LDR R5,s|
00000e50  63 61 6c 65 74 61 62 6c  65 0d 08 52 10 4c 44 52  |caletable..R.LDR|
00000e60  20 52 31 32 2c 63 73 63  72 0d 08 5c 11 2e 70 6c  | R12,cscr..\..pl|
00000e70  6f 74 74 65 78 74 6c 6f  6f 70 0d 08 66 13 4c 44  |ottextloop..f.LD|
00000e80  52 42 20 52 36 2c 5b 52  32 2c 52 33 5d 0d 08 70  |RB R6,[R2,R3]..p|
00000e90  12 53 55 42 20 52 36 2c  52 36 2c 23 31 32 38 0d  |.SUB R6,R6,#128.|
00000ea0  08 7a 17 4d 4f 56 20 52  36 2c 52 36 2c 41 53 52  |.z.MOV R6,R6,ASR|
00000eb0  23 61 6d 70 31 25 0d 08  84 19 41 44 44 20 52 36  |#amp1%....ADD R6|
00000ec0  2c 52 36 2c 23 77 61 76  65 31 79 70 6f 73 25 0d  |,R6,#wave1ypos%.|
00000ed0  08 8e 13 4c 44 52 42 20  52 37 2c 5b 52 32 2c 52  |...LDRB R7,[R2,R|
00000ee0  34 5d 0d 08 98 12 53 55  42 20 52 37 2c 52 37 2c  |4]....SUB R7,R7,|
00000ef0  23 31 32 38 0d 08 a2 17  4d 4f 56 20 52 37 2c 52  |#128....MOV R7,R|
00000f00  37 2c 41 53 52 23 61 6d  70 32 25 0d 08 ac 19 41  |7,ASR#amp2%....A|
00000f10  44 44 20 52 37 2c 52 37  2c 23 77 61 76 65 32 79  |DD R7,R7,#wave2y|
00000f20  70 6f 73 25 0d 08 b6 10  53 55 42 20 52 37 2c 52  |pos%....SUB R7,R|
00000f30  37 2c 52 36 0d 08 c0 10  53 55 42 20 52 38 2c 52  |7,R6....SUB R8,R|
00000f40  37 2c 23 31 0d 08 ca 0f  43 4d 50 20 52 38 2c 23  |7,#1....CMP R8,#|
00000f50  31 32 37 0d 08 d4 11 4d  4f 56 47 54 20 52 38 2c  |127....MOVGT R8,|
00000f60  23 31 32 37 0d 08 de 11  4d 4f 56 47 54 20 52 37  |#127....MOVGT R7|
00000f70  2c 23 31 32 37 0d 08 e8  16 41 44 44 20 52 38 2c  |,#127....ADD R8,|
00000f80  52 35 2c 52 38 2c 4c 53  4c 23 37 0d 08 f2 17 41  |R5,R8,LSL#7....A|
00000f90  44 44 20 52 39 2c 52 31  32 2c 52 36 2c 4c 53 4c  |DD R9,R12,R6,LSL|
00000fa0  23 36 0d 08 fc 16 41 44  44 20 52 39 2c 52 39 2c  |#6....ADD R9,R9,|
00000fb0  52 36 2c 4c 53 4c 23 38  0d 09 06 10 41 44 44 20  |R6,LSL#8....ADD |
00000fc0  52 39 2c 52 39 2c 52 30  0d 09 10 13 4c 44 52 20  |R9,R9,R0....LDR |
00000fd0  52 31 30 2c 5b 52 31 5d  2c 23 34 0d 09 1a 0f 2e  |R10,[R1],#4.....|
00000fe0  63 6f 6c 75 6d 6e 6c 6f  6f 70 0d 09 24 14 4c 44  |columnloop..$.LD|
00000ff0  52 42 20 52 31 31 2c 5b  52 38 5d 2c 23 31 0d 09  |RB R11,[R8],#1..|
00001000  2e 1b 4c 44 52 20 52 31  31 2c 5b 52 31 30 2c 52  |..LDR R11,[R10,R|
00001010  31 31 2c 4c 53 4c 23 32  5d 0d 09 38 15 53 54 52  |11,LSL#2]..8.STR|
00001020  20 52 31 31 2c 5b 52 39  5d 2c 23 33 32 30 0d 09  | R11,[R9],#320..|
00001030  42 11 53 55 42 53 20 52  37 2c 52 37 2c 23 31 0d  |B.SUBS R7,R7,#1.|
00001040  09 4c 12 42 47 54 20 63  6f 6c 75 6d 6e 6c 6f 6f  |.L.BGT columnloo|
00001050  70 0d 09 56 05 3a 0d 09  60 10 41 44 44 20 52 33  |p..V.:..`.ADD R3|
00001060  2c 52 33 2c 23 34 0d 09  6a 17 43 4d 50 20 52 33  |,R3,#4..j.CMP R3|
00001070  2c 23 77 61 76 65 6c 65  6e 67 74 68 25 0d 09 74  |,#wavelength%..t|
00001080  1c 53 55 42 47 45 20 52  33 2c 52 33 2c 23 77 61  |.SUBGE R3,R3,#wa|
00001090  76 65 6c 65 6e 67 74 68  25 0d 09 7e 10 41 44 44  |velength%..~.ADD|
000010a0  20 52 34 2c 52 34 2c 23  34 0d 09 88 17 43 4d 50  | R4,R4,#4....CMP|
000010b0  20 52 34 2c 23 77 61 76  65 6c 65 6e 67 74 68 25  | R4,#wavelength%|
000010c0  0d 09 92 1c 53 55 42 47  45 20 52 34 2c 52 34 2c  |....SUBGE R4,R4,|
000010d0  23 77 61 76 65 6c 65 6e  67 74 68 25 0d 09 9c 10  |#wavelength%....|
000010e0  41 44 44 20 52 30 2c 52  30 2c 23 34 0d 09 a6 0f  |ADD R0,R0,#4....|
000010f0  43 4d 50 20 52 30 2c 23  33 32 30 0d 09 b0 14 42  |CMP R0,#320....B|
00001100  4c 54 20 70 6c 6f 74 74  65 78 74 6c 6f 6f 70 0d  |LT plottextloop.|
00001110  09 ba 0e 4d 4f 56 20 50  43 2c 52 31 34 0d 09 c4  |...MOV PC,R14...|
00001120  05 5d 0d 09 ce 0b ed 20  70 61 73 73 25 0d 09 d8  |.]..... pass%...|
00001130  29 c8 99 20 22 4f 53 5f  52 65 61 64 56 64 75 56  |).. "OS_ReadVduV|
00001140  61 72 69 61 62 6c 65 73  22 2c 76 62 75 66 66 65  |ariables",vbuffe|
00001150  72 2c 73 63 72 31 0d 09  e2 17 21 73 63 72 32 3d  |r,scr1....!scr2=|
00001160  33 32 30 2a 32 35 36 2b  21 73 63 72 31 0d 09 ec  |320*256+!scr1...|
00001170  0f 21 63 73 63 72 3d 21  73 63 72 31 0d 09 f6 05  |.!cscr=!scr1....|
00001180  e1 0d ff                                          |...|
00001183