Home » Personal collection » Acorn hard disk » demos » Demo » Sillies/!WobblText/!RunImage

Sillies/!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 » Personal collection » Acorn hard disk » demos » Demo
Filename: Sillies/!WobblText/!RunImage
Read OK:
File size: 11B5 bytes
Load address: 0000
Exec address: 0000
File contents
   10REM WobbleText
   20REM by Jack Parkinson
   30MODE 15
   40OFF
   50ON ERROR PROCerror:END
   60:
   70amp1%=2
   80amp2%=2
   90wave1inc%=30+RND(5)
  100wave2inc%=15+RND(5)
  110minheight%=3
  120:
  130PRINT "Please wait... FOR PETER TO SPILL THE BEANS ON HIS LATEST ROMP!!"
  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%=2
Pamp2%=2
Zwave1inc%=30+�(5)
dwave2inc%=15+�(5)
nminheight%=3
x:
�H� "Please wait... FOR PETER TO SPILL THE BEANS ON HIS LATEST ROMP!!"
�	�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 32 0d 00 50 0b  61 6d 70 32 25 3d 32 0d  |1%=2..P.amp2%=2.|
00000060  00 5a 15 77 61 76 65 31  69 6e 63 25 3d 33 30 2b  |.Z.wave1inc%=30+|
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  33 0d 00 78 05 3a 0d 00  |height%=3..x.:..|
000000a0  82 48 f1 20 22 50 6c 65  61 73 65 20 77 61 69 74  |.H. "Please wait|
000000b0  2e 2e 2e 20 46 4f 52 20  50 45 54 45 52 20 54 4f  |... FOR PETER TO|
000000c0  20 53 50 49 4c 4c 20 54  48 45 20 42 45 41 4e 53  | SPILL THE BEANS|
000000d0  20 4f 4e 20 48 49 53 20  4c 41 54 45 53 54 20 52  | ON HIS LATEST R|
000000e0  4f 4d 50 21 21 22 0d 00  8c 09 f2 6c 6f 61 64 0d  |OMP!!".....load.|
000000f0  00 96 0b f2 74 61 62 6c  65 73 0d 00 a0 0d f2 61  |....tables.....a|
00000100  73 73 65 6d 62 6c 65 0d  00 aa 08 eb 20 31 33 0d  |ssemble..... 13.|
00000110  00 b4 05 87 0d 00 be 0d  d6 20 61 6e 69 6d 61 74  |......... animat|
00000120  65 0d 00 c8 07 eb 20 30  0d 00 d2 05 e0 0d 00 dc  |e..... 0........|
00000130  05 3a 0d 00 e6 0c dd 20  f2 65 72 72 6f 72 0d 00  |.:..... .error..|
00000140  f0 07 eb 20 30 0d 00 fa  16 f1 20 f6 24 3b 22 20  |... 0..... .$;" |
00000150  61 74 20 6c 69 6e 65 20  22 3b 9e 0d 01 04 05 e1  |at line ";......|
00000160  0d 01 0e 05 3a 0d 01 18  13 dd 20 a4 66 69 6c 65  |....:..... .file|
00000170  6c 65 6e 28 66 6e 24 29  0d 01 22 0d 66 25 3d 8e  |len(fn$)..".f%=.|
00000180  28 66 6e 24 29 0d 01 2c  0d 6c 65 6e 25 3d a2 23  |(fn$)..,.len%=.#|
00000190  66 25 0d 01 36 09 d9 20  23 66 25 0d 01 40 09 3d  |f%..6.. #f%..@.=|
000001a0  6c 65 6e 25 0d 01 4a 05  3a 0d 01 54 0b dd 20 f2  |len%..J.:..T.. .|
000001b0  6c 6f 61 64 0d 01 5e 43  73 70 72 69 74 65 73 25  |load..^Csprites%|
000001c0  3d 28 a4 66 69 6c 65 6c  65 6e 28 22 3c 57 6f 62  |=(.filelen("<Wob|
000001d0  62 6c 65 54 65 78 74 24  44 69 72 3e 2e 63 68 61  |bleText$Dir>.cha|
000001e0  72 69 6d 61 67 65 22 29  2d 32 35 36 29 20 81 20  |rimage")-256) . |
000001f0  28 33 32 2a 34 30 29 0d  01 68 25 de 20 63 68 61  |(32*40)..h%. cha|
00000200  72 69 6d 61 67 65 25 20  28 32 35 36 2b 33 32 2a  |rimage% (256+32*|
00000210  34 30 2a 73 70 72 69 74  65 73 25 29 0d 01 72 35  |40*sprites%)..r5|
00000220  ff 20 22 4c 4f 41 44 20  3c 57 6f 62 62 6c 65 54  |. "LOAD <WobbleT|
00000230  65 78 74 24 44 69 72 3e  2e 63 68 61 72 69 6d 61  |ext$Dir>.charima|
00000240  67 65 20 22 2b c3 7e 63  68 61 72 69 6d 61 67 65  |ge "+.~charimage|
00000250  25 0d 01 7c 2e 74 65 78  74 6c 65 6e 25 3d a4 66  |%..|.textlen%=.f|
00000260  69 6c 65 6c 65 6e 28 22  3c 57 6f 62 62 6c 65 54  |ilelen("<WobbleT|
00000270  65 78 74 24 44 69 72 3e  2e 74 65 78 74 22 29 0d  |ext$Dir>.text").|
00000280  01 86 17 de 20 74 65 78  74 25 20 74 65 78 74 6c  |.... text% textl|
00000290  65 6e 25 2b 31 30 0d 01  90 2b ff 20 22 4c 4f 41  |en%+10...+. "LOA|
000002a0  44 20 3c 57 6f 62 62 6c  65 54 65 78 74 24 44 69  |D <WobbleText$Di|
000002b0  72 3e 2e 74 65 78 74 20  22 2b c3 7e 74 65 78 74  |r>.text "+.~text|
000002c0  25 0d 01 9a 0e e3 20 69  25 3d 30 20 b8 20 39 0d  |%..... i%=0 . 9.|
000002d0  01 a4 1a 74 65 78 74 25  3f 28 74 65 78 74 6c 65  |...text%?(textle|
000002e0  6e 25 2b 69 25 29 3d 33  32 0d 01 ae 08 ed 20 69  |n%+i%)=32..... i|
000002f0  25 0d 01 b8 05 e1 0d 01  c2 05 3a 0d 01 cc 0d dd  |%.........:.....|
00000300  20 f2 74 61 62 6c 65 73  0d 01 d6 13 77 61 76 65  | .tables....wave|
00000310  6c 65 6e 67 74 68 25 3d  36 34 30 0d 01 e0 30 de  |length%=640...0.|
00000320  20 73 69 6e 65 74 61 62  6c 65 25 20 77 61 76 65  | sinetable% wave|
00000330  6c 65 6e 67 74 68 25 2c  73 63 61 6c 65 74 61 62  |length%,scaletab|
00000340  6c 65 25 20 31 32 38 2a  31 32 38 0d 01 ea 18 e3  |le% 128*128.....|
00000350  20 70 25 3d 31 20 b8 20  77 61 76 65 6c 65 6e 67  | p%=1 . waveleng|
00000360  74 68 25 0d 01 f4 1e 61  6e 67 6c 65 3d 32 2a af  |th%....angle=2*.|
00000370  2a 28 70 25 2f 77 61 76  65 6c 65 6e 67 74 68 25  |*(p%/wavelength%|
00000380  29 0d 01 fe 26 73 69 6e  65 74 61 62 6c 65 25 3f  |)...&sinetable%?|
00000390  28 70 25 2d 31 29 3d 31  32 38 2b 31 32 37 2a b5  |(p%-1)=128+127*.|
000003a0  28 61 6e 67 6c 65 29 0d  02 08 08 ed 20 70 25 0d  |(angle)..... p%.|
000003b0  02 12 15 e3 20 68 65 69  67 68 74 25 3d 31 20 b8  |.... height%=1 .|
000003c0  20 31 32 38 0d 02 1c 25  61 64 64 72 25 3d 73 63  | 128...%addr%=sc|
000003d0  61 6c 65 74 61 62 6c 65  25 2b 31 32 38 2a 28 68  |aletable%+128*(h|
000003e0  65 69 67 68 74 25 2d 31  29 0d 02 26 17 e3 20 79  |eight%-1)..&.. y|
000003f0  70 6f 73 25 3d 31 20 b8  20 68 65 69 67 68 74 25  |pos%=1 . height%|
00000400  0d 02 30 28 61 64 64 72  25 3f 28 79 70 6f 73 25  |..0(addr%?(ypos%|
00000410  2d 31 29 3d 34 30 2a 28  79 70 6f 73 25 2f 68 65  |-1)=40*(ypos%/he|
00000420  69 67 68 74 25 29 2d 31  0d 02 3a 0b ed 20 79 70  |ight%)-1..:.. yp|
00000430  6f 73 25 0d 02 44 0d ed  20 68 65 69 67 68 74 25  |os%..D.. height%|
00000440  0d 02 4e 05 e1 0d 02 58  05 3a 0d 02 62 05 3a 0d  |..N....X.:..b.:.|
00000450  02 6c 0f dd 20 f2 61 73  73 65 6d 62 6c 65 0d 02  |.l.. .assemble..|
00000460  76 2d 77 61 76 65 31 79  70 6f 73 25 3d 31 32 38  |v-wave1ypos%=128|
00000470  2d 28 31 32 38 2f 32 5e  61 6d 70 31 25 29 2d 6d  |-(128/2^amp1%)-m|
00000480  69 6e 68 65 69 67 68 74  25 2f 32 0d 02 80 2d 77  |inheight%/2...-w|
00000490  61 76 65 32 79 70 6f 73  25 3d 31 32 38 2b 28 31  |ave2ypos%=128+(1|
000004a0  32 38 2f 32 5e 61 6d 70  32 25 29 2b 6d 69 6e 68  |28/2^amp2%)+minh|
000004b0  65 69 67 68 74 25 2f 32  0d 02 8a 1c de 20 63 6f  |eight%/2..... co|
000004c0  64 65 25 20 26 31 30 30  30 2c 74 65 6d 70 25 20  |de% &1000,temp% |
000004d0  38 38 2a 34 0d 02 94 15  e3 20 70 61 73 73 25 3d  |88*4..... pass%=|
000004e0  30 20 b8 20 32 20 88 20  32 0d 02 9e 0c 50 25 3d  |0 . 2 . 2....P%=|
000004f0  63 6f 64 65 25 0d 02 a8  0e 5b 4f 50 54 20 70 61  |code%....[OPT pa|
00000500  73 73 25 0d 02 b2 19 2e  76 62 75 66 66 65 72 20  |ss%.....vbuffer |
00000510  20 20 20 20 45 51 55 44  20 31 34 38 0d 02 bc 18  |    EQUD 148....|
00000520  20 20 20 20 20 20 20 20  20 20 20 20 20 45 51 55  |             EQU|
00000530  44 20 2d 31 0d 02 c6 17  2e 73 63 72 31 20 20 20  |D -1.....scr1   |
00000540  20 20 20 20 20 45 51 55  44 20 30 0d 02 d0 17 2e  |     EQUD 0.....|
00000550  73 63 72 32 20 20 20 20  20 20 20 20 45 51 55 44  |scr2        EQUD|
00000560  20 30 0d 02 da 17 2e 63  73 63 72 20 20 20 20 20  | 0.....cscr     |
00000570  20 20 20 45 51 55 44 20  30 0d 02 e4 1b 2e 74 65  |   EQUD 0.....te|
00000580  78 74 61 64 64 72 20 20  20 20 45 51 55 44 20 74  |xtaddr    EQUD t|
00000590  65 78 74 25 0d 02 ee 1e  2e 74 65 78 74 6c 65 6e  |ext%.....textlen|
000005a0  20 20 20 20 20 45 51 55  44 20 74 65 78 74 6c 65  |     EQUD textle|
000005b0  6e 25 0d 02 f8 17 2e 74  65 78 74 70 6f 73 20 20  |n%.....textpos  |
000005c0  20 20 20 45 51 55 44 20  30 0d 03 02 17 2e 74 65  |   EQUD 0.....te|
000005d0  78 74 6f 66 66 20 20 20  20 20 45 51 55 44 20 30  |xtoff     EQUD 0|
000005e0  0d 03 0c 24 2e 73 70 72  69 74 65 61 64 64 72 20  |...$.spriteaddr |
000005f0  20 45 51 55 44 20 63 68  61 72 69 6d 61 67 65 25  | EQUD charimage%|
00000600  2b 32 35 36 0d 03 16 20  2e 61 73 63 69 69 74 61  |+256... .asciita|
00000610  62 6c 65 20 20 45 51 55  44 20 63 68 61 72 69 6d  |ble  EQUD charim|
00000620  61 67 65 25 0d 03 20 20  2e 73 69 6e 65 74 61 62  |age%..  .sinetab|
00000630  6c 65 20 20 20 45 51 55  44 20 73 69 6e 65 74 61  |le   EQUD sineta|
00000640  62 6c 65 25 0d 03 2a 17  2e 77 61 76 65 31 70 6f  |ble%..*..wave1po|
00000650  73 20 20 20 20 45 51 55  44 20 30 0d 03 34 17 2e  |s    EQUD 0..4..|
00000660  77 61 76 65 32 70 6f 73  20 20 20 20 45 51 55 44  |wave2pos    EQUD|
00000670  20 30 0d 03 3e 21 2e 73  63 61 6c 65 74 61 62 6c  | 0..>!.scaletabl|
00000680  65 20 20 45 51 55 44 20  73 63 61 6c 65 74 61 62  |e  EQUD scaletab|
00000690  6c 65 25 0d 03 48 1b 2e  70 6c 6f 74 74 61 62 6c  |le%..H..plottabl|
000006a0  65 20 20 20 45 51 55 44  20 74 65 6d 70 25 0d 03  |e   EQUD temp%..|
000006b0  52 05 3a 0d 03 5c 0c 2e  61 6e 69 6d 61 74 65 0d  |R.:..\..animate.|
000006c0  03 66 14 53 54 4d 46 44  20 52 31 33 21 2c 7b 52  |.f.STMFD R13!,{R|
000006d0  31 34 7d 0d 03 70 0c 2e  61 6e 69 6c 6f 6f 70 0d  |14}..p..aniloop.|
000006e0  03 7a 0a 42 4c 20 63 6c  73 0d 03 84 15 42 4c 20  |.z.BL cls....BL |
000006f0  70 6c 6f 74 73 63 72 6f  6c 6c 74 65 78 74 0d 03  |plotscrolltext..|
00000700  8e 0f 42 4c 20 64 6f 73  63 72 6f 6c 6c 0d 03 98  |..BL doscroll...|
00000710  0b 42 4c 20 73 77 61 70  0d 03 a2 0f 4d 4f 56 20  |.BL swap....MOV |
00000720  52 30 2c 23 31 32 39 0d  03 ac 0f 4d 56 4e 20 52  |R0,#129....MVN R|
00000730  31 2c 23 31 31 32 0d 03  b6 0f 4d 4f 56 20 52 32  |1,#112....MOV R2|
00000740  2c 23 26 46 46 0d 03 c0  11 53 57 49 20 22 4f 53  |,#&FF....SWI "OS|
00000750  5f 42 79 74 65 22 0d 03  ca 0f 43 4d 50 20 52 31  |_Byte"....CMP R1|
00000760  2c 23 26 46 46 0d 03 d4  0f 42 4e 45 20 61 6e 69  |,#&FF....BNE ani|
00000770  6c 6f 6f 70 0d 03 de 13  4c 44 4d 46 44 20 52 31  |loop....LDMFD R1|
00000780  33 21 2c 7b 50 43 7d 0d  03 e8 05 3a 0d 03 f2 09  |3!,{PC}....:....|
00000790  2e 73 77 61 70 0d 03 fc  0e 4d 4f 56 20 52 30 2c  |.swap....MOV R0,|
000007a0  23 31 39 0d 04 06 11 53  57 49 20 22 4f 53 5f 42  |#19....SWI "OS_B|
000007b0  79 74 65 22 0d 04 10 0f  4c 44 52 20 52 30 2c 63  |yte"....LDR R0,c|
000007c0  73 63 72 0d 04 1a 0f 4c  44 52 20 52 31 2c 73 63  |scr....LDR R1,sc|
000007d0  72 31 0d 04 24 0f 4c 44  52 20 52 32 2c 73 63 72  |r1..$.LDR R2,scr|
000007e0  32 0d 04 2e 0d 43 4d 50  20 52 30 2c 52 32 0d 04  |2....CMP R0,R2..|
000007f0  38 0d 42 45 51 20 73 77  61 70 32 0d 04 42 0a 2e  |8.BEQ swap2..B..|
00000800  73 77 61 70 31 0d 04 4c  0f 53 54 52 20 52 32 2c  |swap1..L.STR R2,|
00000810  63 73 63 72 0d 04 56 0f  4d 4f 56 20 52 30 2c 23  |cscr..V.MOV R0,#|
00000820  31 31 33 0d 04 60 0d 4d  4f 56 20 52 31 2c 23 31  |113..`.MOV R1,#1|
00000830  0d 04 6a 11 53 57 49 20  22 4f 53 5f 42 79 74 65  |..j.SWI "OS_Byte|
00000840  22 0d 04 74 0e 4d 4f 56  20 50 43 2c 52 31 34 0d  |"..t.MOV PC,R14.|
00000850  04 7e 0a 2e 73 77 61 70  32 0d 04 88 0f 53 54 52  |.~..swap2....STR|
00000860  20 52 31 2c 63 73 63 72  0d 04 92 0f 4d 4f 56 20  | R1,cscr....MOV |
00000870  52 30 2c 23 31 31 33 0d  04 9c 0d 4d 4f 56 20 52  |R0,#113....MOV R|
00000880  31 2c 23 32 0d 04 a6 11  53 57 49 20 22 4f 53 5f  |1,#2....SWI "OS_|
00000890  42 79 74 65 22 0d 04 b0  0e 4d 4f 56 20 50 43 2c  |Byte"....MOV PC,|
000008a0  52 31 34 0d 04 ba 05 3a  0d 04 c4 08 2e 63 6c 73  |R14....:.....cls|
000008b0  0d 04 ce 0f 4c 44 52 20  52 30 2c 63 73 63 72 0d  |....LDR R0,cscr.|
000008c0  04 d8 15 41 44 44 20 52  30 2c 52 30 2c 23 33 32  |...ADD R0,R0,#32|
000008d0  2a 33 32 30 0d 04 e2 11  5d 3a e3 20 72 25 3d 32  |*320....]:. r%=2|
000008e0  20 b8 20 31 31 0d 04 ec  0e 5b 4f 50 54 20 70 61  | . 11....[OPT pa|
000008f0  73 73 25 0d 04 f6 0d 4d  4f 56 20 72 25 2c 23 30  |ss%....MOV r%,#0|
00000900  0d 05 00 0a 5d 3a ed 20  72 25 0d 05 0a 0e 5b 4f  |....]:. r%....[O|
00000910  50 54 20 70 61 73 73 25  0d 05 14 0e 4d 4f 56 20  |PT pass%....MOV |
00000920  52 31 2c 23 34 38 0d 05  1e 0c 2e 63 6c 73 6c 6f  |R1,#48.....clslo|
00000930  6f 70 0d 05 28 11 5d 3a  e3 20 69 25 3d 31 20 b8  |op..(.]:. i%=1 .|
00000940  20 33 32 0d 05 32 0e 5b  4f 50 54 20 70 61 73 73  | 32..2.[OPT pass|
00000950  25 0d 05 3c 16 53 54 4d  49 41 20 52 30 21 2c 7b  |%..<.STMIA R0!,{|
00000960  52 32 2d 52 31 31 7d 0d  05 46 0a 5d 3a ed 20 69  |R2-R11}..F.]:. i|
00000970  25 0d 05 50 0e 5b 4f 50  54 20 70 61 73 73 25 0d  |%..P.[OPT pass%.|
00000980  05 5a 11 53 55 42 53 20  52 31 2c 52 31 2c 23 31  |.Z.SUBS R1,R1,#1|
00000990  0d 05 64 0f 42 47 54 20  63 6c 73 6c 6f 6f 70 0d  |..d.BGT clsloop.|
000009a0  05 6e 0e 4d 4f 56 20 50  43 2c 52 31 34 0d 05 78  |.n.MOV PC,R14..x|
000009b0  05 3a 0d 05 82 0d 2e 64  6f 73 63 72 6f 6c 6c 0d  |.:.....doscroll.|
000009c0  05 8c 0f 4d 4f 56 20 52  30 2c 23 31 32 39 0d 05  |...MOV R0,#129..|
000009d0  96 0e 4d 56 4e 20 52 31  2c 23 33 35 0d 05 a0 0f  |..MVN R1,#35....|
000009e0  4d 4f 56 20 52 32 2c 23  26 46 46 0d 05 aa 11 53  |MOV R2,#&FF....S|
000009f0  57 49 20 22 4f 53 5f 42  79 74 65 22 0d 05 b4 0f  |WI "OS_Byte"....|
00000a00  43 4d 50 20 52 31 2c 23  26 46 46 0d 05 be 14 42  |CMP R1,#&FF....B|
00000a10  45 51 20 6e 6f 74 65 78  74 73 63 72 6f 6c 6c 0d  |EQ notextscroll.|
00000a20  05 c8 12 4c 44 52 20 52  30 2c 74 65 78 74 6f 66  |...LDR R0,textof|
00000a30  66 0d 05 d2 12 4c 44 52  20 52 31 2c 74 65 78 74  |f....LDR R1,text|
00000a40  70 6f 73 0d 05 dc 10 41  44 44 20 52 30 2c 52 30  |pos....ADD R0,R0|
00000a50  2c 23 34 0d 05 e6 0e 43  4d 50 20 52 30 2c 23 33  |,#4....CMP R0,#3|
00000a60  32 0d 05 f0 0f 4d 4f 56  47 45 20 52 30 2c 23 30  |2....MOVGE R0,#0|
00000a70  0d 05 fa 12 41 44 44 47  45 20 52 31 2c 52 31 2c  |....ADDGE R1,R1,|
00000a80  23 31 0d 06 04 12 4c 44  52 20 52 32 2c 74 65 78  |#1....LDR R2,tex|
00000a90  74 6c 65 6e 0d 06 0e 0d  43 4d 50 20 52 31 2c 52  |tlen....CMP R1,R|
00000aa0  32 0d 06 18 0f 4d 4f 56  47 45 20 52 31 2c 23 30  |2....MOVGE R1,#0|
00000ab0  0d 06 22 12 53 54 52 20  52 30 2c 74 65 78 74 6f  |..".STR R0,texto|
00000ac0  66 66 0d 06 2c 12 53 54  52 20 52 31 2c 74 65 78  |ff..,.STR R1,tex|
00000ad0  74 70 6f 73 0d 06 36 11  2e 6e 6f 74 65 78 74 73  |tpos..6..notexts|
00000ae0  63 72 6f 6c 6c 0d 06 40  0f 4d 4f 56 20 52 30 2c  |croll..@.MOV R0,|
00000af0  23 31 32 39 0d 06 4a 0e  4d 56 4e 20 52 31 2c 23  |#129..J.MVN R1,#|
00000b00  33 33 0d 06 54 0f 4d 4f  56 20 52 32 2c 23 26 46  |33..T.MOV R2,#&F|
00000b10  46 0d 06 5e 11 53 57 49  20 22 4f 53 5f 42 79 74  |F..^.SWI "OS_Byt|
00000b20  65 22 0d 06 68 0f 43 4d  50 20 52 31 2c 23 26 46  |e"..h.CMP R1,#&F|
00000b30  46 0d 06 72 14 42 45 51  20 6e 6f 77 61 76 65 6d  |F..r.BEQ nowavem|
00000b40  6f 74 69 6f 6e 0d 06 7c  13 4c 44 52 20 52 30 2c  |otion..|.LDR R0,|
00000b50  77 61 76 65 31 70 6f 73  0d 06 86 18 41 44 44 20  |wave1pos....ADD |
00000b60  52 30 2c 52 30 2c 23 77  61 76 65 31 69 6e 63 25  |R0,R0,#wave1inc%|
00000b70  0d 06 90 17 43 4d 50 20  52 30 2c 23 77 61 76 65  |....CMP R0,#wave|
00000b80  6c 65 6e 67 74 68 25 0d  06 9a 1c 53 55 42 47 45  |length%....SUBGE|
00000b90  20 52 30 2c 52 30 2c 23  77 61 76 65 6c 65 6e 67  | R0,R0,#waveleng|
00000ba0  74 68 25 0d 06 a4 13 53  54 52 20 52 30 2c 77 61  |th%....STR R0,wa|
00000bb0  76 65 31 70 6f 73 0d 06  ae 13 4c 44 52 20 52 30  |ve1pos....LDR R0|
00000bc0  2c 77 61 76 65 32 70 6f  73 0d 06 b8 18 41 44 44  |,wave2pos....ADD|
00000bd0  20 52 30 2c 52 30 2c 23  77 61 76 65 32 69 6e 63  | R0,R0,#wave2inc|
00000be0  25 0d 06 c2 17 43 4d 50  20 52 30 2c 23 77 61 76  |%....CMP R0,#wav|
00000bf0  65 6c 65 6e 67 74 68 25  0d 06 cc 1c 53 55 42 47  |elength%....SUBG|
00000c00  45 20 52 30 2c 52 30 2c  23 77 61 76 65 6c 65 6e  |E R0,R0,#wavelen|
00000c10  67 74 68 25 0d 06 d6 13  53 54 52 20 52 30 2c 77  |gth%....STR R0,w|
00000c20  61 76 65 32 70 6f 73 0d  06 e0 11 2e 6e 6f 77 61  |ave2pos.....nowa|
00000c30  76 65 6d 6f 74 69 6f 6e  0d 06 ea 0e 4d 4f 56 20  |vemotion....MOV |
00000c40  50 43 2c 52 31 34 0d 06  f4 05 3a 0d 06 fe 13 2e  |PC,R14....:.....|
00000c50  70 6c 6f 74 73 63 72 6f  6c 6c 74 65 78 74 0d 07  |plotscrolltext..|
00000c60  08 13 4c 44 52 20 52 30  2c 74 65 78 74 61 64 64  |..LDR R0,textadd|
00000c70  72 0d 07 12 12 4c 44 52  20 52 31 2c 74 65 78 74  |r....LDR R1,text|
00000c80  70 6f 73 0d 07 1c 10 41  44 44 20 52 30 2c 52 30  |pos....ADD R0,R0|
00000c90  2c 52 31 0d 07 26 14 4c  44 52 20 52 31 2c 70 6c  |,R1..&.LDR R1,pl|
00000ca0  6f 74 74 61 62 6c 65 0d  07 30 15 4c 44 52 20 52  |ottable..0.LDR R|
00000cb0  32 2c 61 73 63 69 69 74  61 62 6c 65 0d 07 3a 15  |2,asciitable..:.|
00000cc0  4c 44 52 20 52 33 2c 73  70 72 69 74 65 61 64 64  |LDR R3,spriteadd|
00000cd0  72 0d 07 44 0e 4d 4f 56  20 52 34 2c 23 31 31 0d  |r..D.MOV R4,#11.|
00000ce0  07 4e 0d 2e 63 68 61 72  6c 6f 6f 70 0d 07 58 13  |.N..charloop..X.|
00000cf0  4c 44 52 42 20 52 35 2c  5b 52 30 5d 2c 23 31 0d  |LDRB R5,[R0],#1.|
00000d00  07 62 13 4c 44 52 42 20  52 35 2c 5b 52 32 2c 52  |.b.LDRB R5,[R2,R|
00000d10  35 5d 0d 07 6c 0d 43 4d  50 20 52 35 2c 23 30 0d  |5]..l.CMP R5,#0.|
00000d20  07 76 16 4c 44 52 45 51  42 20 52 35 2c 5b 52 32  |.v.LDREQB R5,[R2|
00000d30  2c 23 33 32 5d 0d 07 80  10 53 55 42 20 52 35 2c  |,#32]....SUB R5,|
00000d40  52 35 2c 23 31 0d 07 8a  13 4d 4f 56 20 52 36 2c  |R5,#1....MOV R6,|
00000d50  23 28 33 32 2a 34 30 29  0d 07 94 10 4d 55 4c 20  |#(32*40)....MUL |
00000d60  52 35 2c 52 36 2c 52 35  0d 07 9e 10 41 44 44 20  |R5,R6,R5....ADD |
00000d70  52 35 2c 52 35 2c 52 33  0d 07 a8 10 5d 3a e3 20  |R5,R5,R3....]:. |
00000d80  69 25 3d 31 20 b8 20 38  0d 07 b2 0e 5b 4f 50 54  |i%=1 . 8....[OPT|
00000d90  20 70 61 73 73 25 0d 07  bc 12 53 54 52 20 52 35  | pass%....STR R5|
00000da0  2c 5b 52 31 5d 2c 23 34  0d 07 c6 13 41 44 44 20  |,[R1],#4....ADD |
00000db0  52 35 2c 52 35 2c 23 34  2a 34 30 0d 07 d0 0a 5d  |R5,R5,#4*40....]|
00000dc0  3a ed 20 69 25 0d 07 da  0e 5b 4f 50 54 20 70 61  |:. i%....[OPT pa|
00000dd0  73 73 25 0d 07 e4 11 53  55 42 53 20 52 34 2c 52  |ss%....SUBS R4,R|
00000de0  34 2c 23 31 0d 07 ee 10  42 47 54 20 63 68 61 72  |4,#1....BGT char|
00000df0  6c 6f 6f 70 0d 07 f8 05  3a 0d 08 02 0d 4d 4f 56  |loop....:....MOV|
00000e00  20 52 30 2c 23 30 0d 08  0c 14 4c 44 52 20 52 31  | R0,#0....LDR R1|
00000e10  2c 70 6c 6f 74 74 61 62  6c 65 0d 08 16 12 4c 44  |,plottable....LD|
00000e20  52 20 52 32 2c 74 65 78  74 6f 66 66 0d 08 20 10  |R R2,textoff.. .|
00000e30  41 44 44 20 52 31 2c 52  31 2c 52 32 0d 08 2a 14  |ADD R1,R1,R2..*.|
00000e40  4c 44 52 20 52 32 2c 73  69 6e 65 74 61 62 6c 65  |LDR R2,sinetable|
00000e50  0d 08 34 13 4c 44 52 20  52 33 2c 77 61 76 65 31  |..4.LDR R3,wave1|
00000e60  70 6f 73 0d 08 3e 13 4c  44 52 20 52 34 2c 77 61  |pos..>.LDR R4,wa|
00000e70  76 65 32 70 6f 73 0d 08  48 15 4c 44 52 20 52 35  |ve2pos..H.LDR R5|
00000e80  2c 73 63 61 6c 65 74 61  62 6c 65 0d 08 52 10 4c  |,scaletable..R.L|
00000e90  44 52 20 52 31 32 2c 63  73 63 72 0d 08 5c 11 2e  |DR R12,cscr..\..|
00000ea0  70 6c 6f 74 74 65 78 74  6c 6f 6f 70 0d 08 66 13  |plottextloop..f.|
00000eb0  4c 44 52 42 20 52 36 2c  5b 52 32 2c 52 33 5d 0d  |LDRB R6,[R2,R3].|
00000ec0  08 70 12 53 55 42 20 52  36 2c 52 36 2c 23 31 32  |.p.SUB R6,R6,#12|
00000ed0  38 0d 08 7a 17 4d 4f 56  20 52 36 2c 52 36 2c 41  |8..z.MOV R6,R6,A|
00000ee0  53 52 23 61 6d 70 31 25  0d 08 84 19 41 44 44 20  |SR#amp1%....ADD |
00000ef0  52 36 2c 52 36 2c 23 77  61 76 65 31 79 70 6f 73  |R6,R6,#wave1ypos|
00000f00  25 0d 08 8e 13 4c 44 52  42 20 52 37 2c 5b 52 32  |%....LDRB R7,[R2|
00000f10  2c 52 34 5d 0d 08 98 12  53 55 42 20 52 37 2c 52  |,R4]....SUB R7,R|
00000f20  37 2c 23 31 32 38 0d 08  a2 17 4d 4f 56 20 52 37  |7,#128....MOV R7|
00000f30  2c 52 37 2c 41 53 52 23  61 6d 70 32 25 0d 08 ac  |,R7,ASR#amp2%...|
00000f40  19 41 44 44 20 52 37 2c  52 37 2c 23 77 61 76 65  |.ADD R7,R7,#wave|
00000f50  32 79 70 6f 73 25 0d 08  b6 10 53 55 42 20 52 37  |2ypos%....SUB R7|
00000f60  2c 52 37 2c 52 36 0d 08  c0 10 53 55 42 20 52 38  |,R7,R6....SUB R8|
00000f70  2c 52 37 2c 23 31 0d 08  ca 0f 43 4d 50 20 52 38  |,R7,#1....CMP R8|
00000f80  2c 23 31 32 37 0d 08 d4  11 4d 4f 56 47 54 20 52  |,#127....MOVGT R|
00000f90  38 2c 23 31 32 37 0d 08  de 11 4d 4f 56 47 54 20  |8,#127....MOVGT |
00000fa0  52 37 2c 23 31 32 37 0d  08 e8 16 41 44 44 20 52  |R7,#127....ADD R|
00000fb0  38 2c 52 35 2c 52 38 2c  4c 53 4c 23 37 0d 08 f2  |8,R5,R8,LSL#7...|
00000fc0  17 41 44 44 20 52 39 2c  52 31 32 2c 52 36 2c 4c  |.ADD R9,R12,R6,L|
00000fd0  53 4c 23 36 0d 08 fc 16  41 44 44 20 52 39 2c 52  |SL#6....ADD R9,R|
00000fe0  39 2c 52 36 2c 4c 53 4c  23 38 0d 09 06 10 41 44  |9,R6,LSL#8....AD|
00000ff0  44 20 52 39 2c 52 39 2c  52 30 0d 09 10 13 4c 44  |D R9,R9,R0....LD|
00001000  52 20 52 31 30 2c 5b 52  31 5d 2c 23 34 0d 09 1a  |R R10,[R1],#4...|
00001010  0f 2e 63 6f 6c 75 6d 6e  6c 6f 6f 70 0d 09 24 14  |..columnloop..$.|
00001020  4c 44 52 42 20 52 31 31  2c 5b 52 38 5d 2c 23 31  |LDRB R11,[R8],#1|
00001030  0d 09 2e 1b 4c 44 52 20  52 31 31 2c 5b 52 31 30  |....LDR R11,[R10|
00001040  2c 52 31 31 2c 4c 53 4c  23 32 5d 0d 09 38 15 53  |,R11,LSL#2]..8.S|
00001050  54 52 20 52 31 31 2c 5b  52 39 5d 2c 23 33 32 30  |TR R11,[R9],#320|
00001060  0d 09 42 11 53 55 42 53  20 52 37 2c 52 37 2c 23  |..B.SUBS R7,R7,#|
00001070  31 0d 09 4c 12 42 47 54  20 63 6f 6c 75 6d 6e 6c  |1..L.BGT columnl|
00001080  6f 6f 70 0d 09 56 05 3a  0d 09 60 10 41 44 44 20  |oop..V.:..`.ADD |
00001090  52 33 2c 52 33 2c 23 34  0d 09 6a 17 43 4d 50 20  |R3,R3,#4..j.CMP |
000010a0  52 33 2c 23 77 61 76 65  6c 65 6e 67 74 68 25 0d  |R3,#wavelength%.|
000010b0  09 74 1c 53 55 42 47 45  20 52 33 2c 52 33 2c 23  |.t.SUBGE R3,R3,#|
000010c0  77 61 76 65 6c 65 6e 67  74 68 25 0d 09 7e 10 41  |wavelength%..~.A|
000010d0  44 44 20 52 34 2c 52 34  2c 23 34 0d 09 88 17 43  |DD R4,R4,#4....C|
000010e0  4d 50 20 52 34 2c 23 77  61 76 65 6c 65 6e 67 74  |MP R4,#wavelengt|
000010f0  68 25 0d 09 92 1c 53 55  42 47 45 20 52 34 2c 52  |h%....SUBGE R4,R|
00001100  34 2c 23 77 61 76 65 6c  65 6e 67 74 68 25 0d 09  |4,#wavelength%..|
00001110  9c 10 41 44 44 20 52 30  2c 52 30 2c 23 34 0d 09  |..ADD R0,R0,#4..|
00001120  a6 0f 43 4d 50 20 52 30  2c 23 33 32 30 0d 09 b0  |..CMP R0,#320...|
00001130  14 42 4c 54 20 70 6c 6f  74 74 65 78 74 6c 6f 6f  |.BLT plottextloo|
00001140  70 0d 09 ba 0e 4d 4f 56  20 50 43 2c 52 31 34 0d  |p....MOV PC,R14.|
00001150  09 c4 05 5d 0d 09 ce 0b  ed 20 70 61 73 73 25 0d  |...]..... pass%.|
00001160  09 d8 29 c8 99 20 22 4f  53 5f 52 65 61 64 56 64  |..).. "OS_ReadVd|
00001170  75 56 61 72 69 61 62 6c  65 73 22 2c 76 62 75 66  |uVariables",vbuf|
00001180  66 65 72 2c 73 63 72 31  0d 09 e2 17 21 73 63 72  |fer,scr1....!scr|
00001190  32 3d 33 32 30 2a 32 35  36 2b 21 73 63 72 31 0d  |2=320*256+!scr1.|
000011a0  09 ec 0f 21 63 73 63 72  3d 21 73 63 72 31 0d 09  |...!cscr=!scr1..|
000011b0  f6 05 e1 0d ff                                    |.....|
000011b5