Home » Archimedes archive » Acorn User » AU 1994-06.adf » !StarInfo_StarInfo » Vlientinck/Stringz

Vlientinck/Stringz

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 1994-06.adf » !StarInfo_StarInfo
Filename: Vlientinck/Stringz
Read OK:
File size: 0A8C bytes
Load address: 0000
Exec address: 0000
File contents
    1REM >Stringz
    2REM (c) VLIETINCK JAN
    3high=FALSE
    4DIM Q% 40000
    5IF high THEN
    6MODE21
    7s=2:m=1
    8prop=31
    9damp=21
   10ELSE
   11MODE13
   12s=1:m=0
   13prop=30
   14damp=21
   15ENDIF
   16OFF
   17MOUSE STEP 3
   18DIM CTABLE 256
   19PROCcoltable(CTABLE)
   20A=0
   21B=2
   22T=3
   23V=4
   24C=5
   25W=6
   26J=7
   27COL=8
   28SCR=9
   29X=10
   30Y=11
   31I=12
   32FOR PASS=0 TO 2 STEP 2
   33P%=Q%
   34[OPT PASS
   35.SCR1 EQUD 148
   36EQUD -1
   37.SCR2 EQUD 0
   38.SET
   39ADR R0,SCR1
   40ADR R1,SCR2
   41SWI "OS_ReadVduVariables"
   42MOV PC,R14
   43.KL EQUD 0
   44.CT EQUD CTABLE
   45.WAVE
   46STMFD 13!,{R14}
   47.WAVE_L
   48SWI "OS_Mouse"
   49CMP B,#1
   50LDMEQFD 13!,{PC}
   51CMP B,#4
   52BLEQ VUL
   53MOV A,R1,LSL #18+m
   54RSB A,A,#s*256<<20
   55ADR W,XTAB
   56STR A,[W]
   57LDR T,KL
   58ADD T,T,#1
   59STR T,KL
   60MOV COL,T,LSR #4
   61LDR T,CT
   62AND COL,COL,#255
   63LDRB COL,[T,COL]
   64LDR SCR,SCR2
   65MOV I,#0
   66ADR W,XTAB
   67LDR A,[W]
   68LDR B,[W,#8]
   69ADD W,W,#8
   70.LOOP
   71ADD T,W,#4
   72LDMIA T,{V,C}
   73ADD T,A,C
   74SUB T,T,B,LSL #1
   75ADD V,V,T,ASR #1
   76SUB T,B,#s*128<<20
   77]
   78IF (31-damp)<=0 THEN
   79[OPT PASS:SUB T,B,T:]
   80ELSE
   81[OPT PASS:SUB T,B,T,ASR #(31-damp):]
   82ENDIF
   83IF (31-prop)<=0 THEN
   84[OPT PASS:ADD T,T,V:]
   85ELSE
   86[OPT PASS:ADD T,T,V,ASR #(31-prop):]
   87ENDIF
   88[OPT PASS
   89STMIA (W)!,{T,V}
   90MOV A,B
   91MOV B,C
   92MOV Y,T,ASR #20
   93.TE
   94CMP Y,#256*s
   95ADDLO J,Y,Y,LSL #2
   96ADDLO J,I,J,LSL #6+m
   97STRLOB COL,[SCR,J]
   98CMP Y,A,ASR #20
   99BGE NEG
  100ADD Y,Y,#1
  101CMP Y,A,ASR #20
  102BLT TE
  103BAL UIT
  104.NEG
  105SUB Y,Y,#1
  106CMP Y,A,ASR #20
  107BGT TE
  108.UIT
  109ADD I,I,#1
  110CMP I,#320*s
  111BNE LOOP
  112LDR T,[W,#-8]
  113STR T,[W]
  114BAL WAVE_L
  115
  116.CBLOCK
  117EQUB 3
  118EQUB 0:EQUB 0
  119EQUB 0:EQUB 2
  120ALIGN
  121.VUL
  122ADR W,XTAB
  123MOV I,#340*s
  124MOV A,#s*128<<20
  125MOV B,#0
  126.VUL_LOOP
  127STMIA (W)!,{A,B}
  128SUBS I,I,#1
  129BNE VUL_LOOP
  130.WLOOP
  131SWI "OS_Mouse"
  132CMP B,#4
  133BEQ WLOOP
  134MOV R0,#21
  135ADR R1,CBLOCK
  136SWI "OS_Word"
  137SWI "OS_Mouse"
  138MOV R0,#16
  139SWI "OS_WriteC"
  140MOV PC,R14
  141.XTAB
  142]
  143NEXT
  144CALL SET
  145CALL VUL
  146CLS
  147*POINTER
  148MOUSE RECTANGLE 0,0,0,1024
  149MOUSE TO 0,512
  150CALL WAVE
  151END
  152
  153DEF PROCcoltable(CTABLE)
  154SWP=2
  155C=0:M=15
  156FOR K=0 TO M
  157PROCput(C+(K AND %1100)*5.25,K AND %11)
  158NEXT
  159FOR T=1 TO 3
  160C=T:M=4*(4-T)-1
  161PROCside(  4)
  162PROCside(- 1)
  163PROCside( 16)
  164PROCside(- 4)
  165PROCside(  1)
  166PROCside(-16)
  167NEXT
  168ENDPROC
  169
  170DEF PROCside(RGB)
  171FOR I=1 TO T
  172C+=RGB
  173IF SWP=1 THEN
  174FOR K=0 TO M
  175PROCput(C+(K AND %1100)*5.25,K AND %11)
  176NEXT
  177ELSE
  178FOR K=M TO 0 STEP -1
  179PROCput(C+(K AND %1100)*5.25,K AND %11)
  180NEXT
  181ENDIF
  182SWP=SWP EOR 3
  183NEXT
  184ENDPROC
  185
  186DEF PROCput(C,T)
  187B1=(C>>5) AND 1
  188B2=(C>>4) AND 1
  189G1=(C>>3) AND 1
  190G2=(C>>2) AND 1
  191R1=(C>>1) AND 1
  192R2=(C>>0) AND 1
  193COL=T+4*(R2+2*(B2+2*(R1+2*(G2+2*(G1+2*B1)))))
  194?CTABLE=COL
  195CTABLE+=1
  196ENDPROC
  197
� >Stringz
� (c) VLIETINCK JAN

high=�
� Q% 40000
� high �
�21
s=2:m=1
prop=31
	damp=21

�
�13
s=1:m=0

prop=30
damp=21
�
�

ȗ � 3
� CTABLE 256
�coltable(CTABLE)
A=0
B=2
T=3
V=4
C=5
W=6
J=7
	COL=8
	SCR=9
X=10
Y=11
I=12
 � PASS=0 � 2 � 2
!	P%=Q%
"
[OPT PASS
#.SCR1 EQUD 148
$EQUD -1
%.SCR2 EQUD 0
&.SET
'ADR R0,SCR1
(ADR R1,SCR2
)SWI "OS_ReadVduVariables"
*MOV PC,R14
+.KL EQUD 0
,.CT EQUD CTABLE
-	.WAVE
.STMFD 13!,{R14}
/.WAVE_L
0SWI "OS_Mouse"
1CMP B,#1
2LDMEQFD 13!,{PC}
3CMP B,#4
4BLEQ VUL
5MOV A,R1,LSL #18+m
6RSB A,A,#s*256<<20
7ADR W,XTAB
8
STR A,[W]
9LDR T,KL
:ADD T,T,#1
;STR T,KL
<MOV COL,T,LSR #4
=LDR T,CT
>� COL,COL,#255
?LDRB COL,[T,COL]
@LDR SCR,SCR2
AMOV I,#0
BADR W,XTAB
C
LDR A,[W]
DLDR B,[W,#8]
EADD W,W,#8
F	.LOOP
GADD T,W,#4
HLDMIA T,{V,C}
I
ADD T,A,C
JSUB T,T,B,LSL #1
KADD V,V,T,ASR #1
LSUB T,B,#s*128<<20
M]
N� (31-damp)<=0 �
O[OPT PASS:SUB T,B,T:]
P�
Q([OPT PASS:SUB T,B,T,ASR #(31-damp):]
R�
S� (31-prop)<=0 �
T[OPT PASS:ADD T,T,V:]
U�
V([OPT PASS:ADD T,T,V,ASR #(31-prop):]
W�
X
[OPT PASS
YSTMIA (W)!,{T,V}
ZMOV A,B
[MOV B,C
\MOV Y,T,ASR #20
].TE
^CMP Y,#256*s
_ADDLO J,Y,Y,LSL #2
`ADDLO J,I,J,LSL #6+m
aSTRLOB COL,[SCR,J]
bCMP Y,A,ASR #20
cBGE NEG
dADD Y,Y,#1
eCMP Y,A,ASR #20
f
BLT TE
gBAL UIT
h.NEG
iSUB Y,Y,#1
jCMP Y,A,ASR #20
k
BGT TE
l.UIT
mADD I,I,#1
nCMP I,#320*s
oBNE LOOP
pLDR T,[W,#-8]
q
STR T,[W]
rBAL WAVE_L
s
t.CBLOCK
u
EQUB 3
vEQUB 0:EQUB 0
wEQUB 0:EQUB 2
x	ALIGN
y.VUL
zADR W,XTAB
{MOV I,#340*s
|MOV A,#s*128<<20
}MOV B,#0
~
.VUL_LOOP
STMIA (W)!,{A,B}
�SUBS I,I,#1
�BNE VUL_LOOP
�
.WLOOP
�SWI "OS_Mouse"
�CMP B,#4
�
BEQ WLOOP
�MOV R0,#21
�ADR R1,CBLOCK
�SWI "OS_Word"
�SWI "OS_Mouse"
�MOV R0,#16
�SWI "OS_WriteC"
�MOV PC,R14
�	.XTAB
�]
��
�	� SET
�	� VUL
��
�*POINTER
�ȗ ȓ 0,0,0,1024
�ȗ � 0,512
�
� WAVE
��
�
�� �coltable(CTABLE)
�	SWP=2
�C=0:M=15
�
� K=0 � M
�$�put(C+(K � %1100)*5.25,K � %11)
��
�
� T=1 � 3
�C=T:M=4*(4-T)-1
��side(  4)
��side(- 1)
��side( 16)
��side(- 4)
��side(  1)
��side(-16)
��
��
�
�� �side(RGB)
�
� I=1 � T
�
C+=RGB
�
� SWP=1 �
�
� K=0 � M
�$�put(C+(K � %1100)*5.25,K � %11)
��
��
�� K=M � 0 � -1
�$�put(C+(K � %1100)*5.25,K � %11)
��
��
�SWP=SWP � 3
��
��
�
�� �put(C,T)
�B1=(C>>5) � 1
�B2=(C>>4) � 1
�G1=(C>>3) � 1
�G2=(C>>2) � 1
�R1=(C>>1) � 1
�R2=(C>>0) � 1
�1COL=T+4*(R2+2*(B2+2*(R1+2*(G2+2*(G1+2*B1)))))
�?CTABLE=COL
�
CTABLE+=1
��
�
�
00000000  0d 00 01 0e f4 20 3e 53  74 72 69 6e 67 7a 0d 00  |..... >Stringz..|
00000010  02 17 f4 20 28 63 29 20  56 4c 49 45 54 49 4e 43  |... (c) VLIETINC|
00000020  4b 20 4a 41 4e 0d 00 03  0a 68 69 67 68 3d a3 0d  |K JAN....high=..|
00000030  00 04 0e de 20 51 25 20  34 30 30 30 30 0d 00 05  |.... Q% 40000...|
00000040  0c e7 20 68 69 67 68 20  8c 0d 00 06 07 eb 32 31  |.. high ......21|
00000050  0d 00 07 0b 73 3d 32 3a  6d 3d 31 0d 00 08 0b 70  |....s=2:m=1....p|
00000060  72 6f 70 3d 33 31 0d 00  09 0b 64 61 6d 70 3d 32  |rop=31....damp=2|
00000070  31 0d 00 0a 05 cc 0d 00  0b 07 eb 31 33 0d 00 0c  |1..........13...|
00000080  0b 73 3d 31 3a 6d 3d 30  0d 00 0d 0b 70 72 6f 70  |.s=1:m=0....prop|
00000090  3d 33 30 0d 00 0e 0b 64  61 6d 70 3d 32 31 0d 00  |=30....damp=21..|
000000a0  0f 05 cd 0d 00 10 05 87  0d 00 11 0a c8 97 20 88  |.............. .|
000000b0  20 33 0d 00 12 10 de 20  43 54 41 42 4c 45 20 32  | 3..... CTABLE 2|
000000c0  35 36 0d 00 13 15 f2 63  6f 6c 74 61 62 6c 65 28  |56.....coltable(|
000000d0  43 54 41 42 4c 45 29 0d  00 14 07 41 3d 30 0d 00  |CTABLE)....A=0..|
000000e0  15 07 42 3d 32 0d 00 16  07 54 3d 33 0d 00 17 07  |..B=2....T=3....|
000000f0  56 3d 34 0d 00 18 07 43  3d 35 0d 00 19 07 57 3d  |V=4....C=5....W=|
00000100  36 0d 00 1a 07 4a 3d 37  0d 00 1b 09 43 4f 4c 3d  |6....J=7....COL=|
00000110  38 0d 00 1c 09 53 43 52  3d 39 0d 00 1d 08 58 3d  |8....SCR=9....X=|
00000120  31 30 0d 00 1e 08 59 3d  31 31 0d 00 1f 08 49 3d  |10....Y=11....I=|
00000130  31 32 0d 00 20 14 e3 20  50 41 53 53 3d 30 20 b8  |12.. .. PASS=0 .|
00000140  20 32 20 88 20 32 0d 00  21 09 50 25 3d 51 25 0d  | 2 . 2..!.P%=Q%.|
00000150  00 22 0d 5b 4f 50 54 20  50 41 53 53 0d 00 23 12  |.".[OPT PASS..#.|
00000160  2e 53 43 52 31 20 45 51  55 44 20 31 34 38 0d 00  |.SCR1 EQUD 148..|
00000170  24 0b 45 51 55 44 20 2d  31 0d 00 25 10 2e 53 43  |$.EQUD -1..%..SC|
00000180  52 32 20 45 51 55 44 20  30 0d 00 26 08 2e 53 45  |R2 EQUD 0..&..SE|
00000190  54 0d 00 27 0f 41 44 52  20 52 30 2c 53 43 52 31  |T..'.ADR R0,SCR1|
000001a0  0d 00 28 0f 41 44 52 20  52 31 2c 53 43 52 32 0d  |..(.ADR R1,SCR2.|
000001b0  00 29 1d 53 57 49 20 22  4f 53 5f 52 65 61 64 56  |.).SWI "OS_ReadV|
000001c0  64 75 56 61 72 69 61 62  6c 65 73 22 0d 00 2a 0e  |duVariables"..*.|
000001d0  4d 4f 56 20 50 43 2c 52  31 34 0d 00 2b 0e 2e 4b  |MOV PC,R14..+..K|
000001e0  4c 20 45 51 55 44 20 30  0d 00 2c 13 2e 43 54 20  |L EQUD 0..,..CT |
000001f0  45 51 55 44 20 43 54 41  42 4c 45 0d 00 2d 09 2e  |EQUD CTABLE..-..|
00000200  57 41 56 45 0d 00 2e 13  53 54 4d 46 44 20 31 33  |WAVE....STMFD 13|
00000210  21 2c 7b 52 31 34 7d 0d  00 2f 0b 2e 57 41 56 45  |!,{R14}../..WAVE|
00000220  5f 4c 0d 00 30 12 53 57  49 20 22 4f 53 5f 4d 6f  |_L..0.SWI "OS_Mo|
00000230  75 73 65 22 0d 00 31 0c  43 4d 50 20 42 2c 23 31  |use"..1.CMP B,#1|
00000240  0d 00 32 14 4c 44 4d 45  51 46 44 20 31 33 21 2c  |..2.LDMEQFD 13!,|
00000250  7b 50 43 7d 0d 00 33 0c  43 4d 50 20 42 2c 23 34  |{PC}..3.CMP B,#4|
00000260  0d 00 34 0c 42 4c 45 51  20 56 55 4c 0d 00 35 16  |..4.BLEQ VUL..5.|
00000270  4d 4f 56 20 41 2c 52 31  2c 4c 53 4c 20 23 31 38  |MOV A,R1,LSL #18|
00000280  2b 6d 0d 00 36 16 52 53  42 20 41 2c 41 2c 23 73  |+m..6.RSB A,A,#s|
00000290  2a 32 35 36 3c 3c 32 30  0d 00 37 0e 41 44 52 20  |*256<<20..7.ADR |
000002a0  57 2c 58 54 41 42 0d 00  38 0d 53 54 52 20 41 2c  |W,XTAB..8.STR A,|
000002b0  5b 57 5d 0d 00 39 0c 4c  44 52 20 54 2c 4b 4c 0d  |[W]..9.LDR T,KL.|
000002c0  00 3a 0e 41 44 44 20 54  2c 54 2c 23 31 0d 00 3b  |.:.ADD T,T,#1..;|
000002d0  0c 53 54 52 20 54 2c 4b  4c 0d 00 3c 14 4d 4f 56  |.STR T,KL..<.MOV|
000002e0  20 43 4f 4c 2c 54 2c 4c  53 52 20 23 34 0d 00 3d  | COL,T,LSR #4..=|
000002f0  0c 4c 44 52 20 54 2c 43  54 0d 00 3e 12 80 20 43  |.LDR T,CT..>.. C|
00000300  4f 4c 2c 43 4f 4c 2c 23  32 35 35 0d 00 3f 14 4c  |OL,COL,#255..?.L|
00000310  44 52 42 20 43 4f 4c 2c  5b 54 2c 43 4f 4c 5d 0d  |DRB COL,[T,COL].|
00000320  00 40 10 4c 44 52 20 53  43 52 2c 53 43 52 32 0d  |.@.LDR SCR,SCR2.|
00000330  00 41 0c 4d 4f 56 20 49  2c 23 30 0d 00 42 0e 41  |.A.MOV I,#0..B.A|
00000340  44 52 20 57 2c 58 54 41  42 0d 00 43 0d 4c 44 52  |DR W,XTAB..C.LDR|
00000350  20 41 2c 5b 57 5d 0d 00  44 10 4c 44 52 20 42 2c  | A,[W]..D.LDR B,|
00000360  5b 57 2c 23 38 5d 0d 00  45 0e 41 44 44 20 57 2c  |[W,#8]..E.ADD W,|
00000370  57 2c 23 38 0d 00 46 09  2e 4c 4f 4f 50 0d 00 47  |W,#8..F..LOOP..G|
00000380  0e 41 44 44 20 54 2c 57  2c 23 34 0d 00 48 11 4c  |.ADD T,W,#4..H.L|
00000390  44 4d 49 41 20 54 2c 7b  56 2c 43 7d 0d 00 49 0d  |DMIA T,{V,C}..I.|
000003a0  41 44 44 20 54 2c 41 2c  43 0d 00 4a 14 53 55 42  |ADD T,A,C..J.SUB|
000003b0  20 54 2c 54 2c 42 2c 4c  53 4c 20 23 31 0d 00 4b  | T,T,B,LSL #1..K|
000003c0  14 41 44 44 20 56 2c 56  2c 54 2c 41 53 52 20 23  |.ADD V,V,T,ASR #|
000003d0  31 0d 00 4c 16 53 55 42  20 54 2c 42 2c 23 73 2a  |1..L.SUB T,B,#s*|
000003e0  31 32 38 3c 3c 32 30 0d  00 4d 05 5d 0d 00 4e 14  |128<<20..M.]..N.|
000003f0  e7 20 28 33 31 2d 64 61  6d 70 29 3c 3d 30 20 8c  |. (31-damp)<=0 .|
00000400  0d 00 4f 19 5b 4f 50 54  20 50 41 53 53 3a 53 55  |..O.[OPT PASS:SU|
00000410  42 20 54 2c 42 2c 54 3a  5d 0d 00 50 05 cc 0d 00  |B T,B,T:]..P....|
00000420  51 28 5b 4f 50 54 20 50  41 53 53 3a 53 55 42 20  |Q([OPT PASS:SUB |
00000430  54 2c 42 2c 54 2c 41 53  52 20 23 28 33 31 2d 64  |T,B,T,ASR #(31-d|
00000440  61 6d 70 29 3a 5d 0d 00  52 05 cd 0d 00 53 14 e7  |amp):]..R....S..|
00000450  20 28 33 31 2d 70 72 6f  70 29 3c 3d 30 20 8c 0d  | (31-prop)<=0 ..|
00000460  00 54 19 5b 4f 50 54 20  50 41 53 53 3a 41 44 44  |.T.[OPT PASS:ADD|
00000470  20 54 2c 54 2c 56 3a 5d  0d 00 55 05 cc 0d 00 56  | T,T,V:]..U....V|
00000480  28 5b 4f 50 54 20 50 41  53 53 3a 41 44 44 20 54  |([OPT PASS:ADD T|
00000490  2c 54 2c 56 2c 41 53 52  20 23 28 33 31 2d 70 72  |,T,V,ASR #(31-pr|
000004a0  6f 70 29 3a 5d 0d 00 57  05 cd 0d 00 58 0d 5b 4f  |op):]..W....X.[O|
000004b0  50 54 20 50 41 53 53 0d  00 59 14 53 54 4d 49 41  |PT PASS..Y.STMIA|
000004c0  20 28 57 29 21 2c 7b 54  2c 56 7d 0d 00 5a 0b 4d  | (W)!,{T,V}..Z.M|
000004d0  4f 56 20 41 2c 42 0d 00  5b 0b 4d 4f 56 20 42 2c  |OV A,B..[.MOV B,|
000004e0  43 0d 00 5c 13 4d 4f 56  20 59 2c 54 2c 41 53 52  |C..\.MOV Y,T,ASR|
000004f0  20 23 32 30 0d 00 5d 07  2e 54 45 0d 00 5e 10 43  | #20..]..TE..^.C|
00000500  4d 50 20 59 2c 23 32 35  36 2a 73 0d 00 5f 16 41  |MP Y,#256*s.._.A|
00000510  44 44 4c 4f 20 4a 2c 59  2c 59 2c 4c 53 4c 20 23  |DDLO J,Y,Y,LSL #|
00000520  32 0d 00 60 18 41 44 44  4c 4f 20 4a 2c 49 2c 4a  |2..`.ADDLO J,I,J|
00000530  2c 4c 53 4c 20 23 36 2b  6d 0d 00 61 16 53 54 52  |,LSL #6+m..a.STR|
00000540  4c 4f 42 20 43 4f 4c 2c  5b 53 43 52 2c 4a 5d 0d  |LOB COL,[SCR,J].|
00000550  00 62 13 43 4d 50 20 59  2c 41 2c 41 53 52 20 23  |.b.CMP Y,A,ASR #|
00000560  32 30 0d 00 63 0b 42 47  45 20 4e 45 47 0d 00 64  |20..c.BGE NEG..d|
00000570  0e 41 44 44 20 59 2c 59  2c 23 31 0d 00 65 13 43  |.ADD Y,Y,#1..e.C|
00000580  4d 50 20 59 2c 41 2c 41  53 52 20 23 32 30 0d 00  |MP Y,A,ASR #20..|
00000590  66 0a 42 4c 54 20 54 45  0d 00 67 0b 42 41 4c 20  |f.BLT TE..g.BAL |
000005a0  55 49 54 0d 00 68 08 2e  4e 45 47 0d 00 69 0e 53  |UIT..h..NEG..i.S|
000005b0  55 42 20 59 2c 59 2c 23  31 0d 00 6a 13 43 4d 50  |UB Y,Y,#1..j.CMP|
000005c0  20 59 2c 41 2c 41 53 52  20 23 32 30 0d 00 6b 0a  | Y,A,ASR #20..k.|
000005d0  42 47 54 20 54 45 0d 00  6c 08 2e 55 49 54 0d 00  |BGT TE..l..UIT..|
000005e0  6d 0e 41 44 44 20 49 2c  49 2c 23 31 0d 00 6e 10  |m.ADD I,I,#1..n.|
000005f0  43 4d 50 20 49 2c 23 33  32 30 2a 73 0d 00 6f 0c  |CMP I,#320*s..o.|
00000600  42 4e 45 20 4c 4f 4f 50  0d 00 70 11 4c 44 52 20  |BNE LOOP..p.LDR |
00000610  54 2c 5b 57 2c 23 2d 38  5d 0d 00 71 0d 53 54 52  |T,[W,#-8]..q.STR|
00000620  20 54 2c 5b 57 5d 0d 00  72 0e 42 41 4c 20 57 41  | T,[W]..r.BAL WA|
00000630  56 45 5f 4c 0d 00 73 04  0d 00 74 0b 2e 43 42 4c  |VE_L..s...t..CBL|
00000640  4f 43 4b 0d 00 75 0a 45  51 55 42 20 33 0d 00 76  |OCK..u.EQUB 3..v|
00000650  11 45 51 55 42 20 30 3a  45 51 55 42 20 30 0d 00  |.EQUB 0:EQUB 0..|
00000660  77 11 45 51 55 42 20 30  3a 45 51 55 42 20 32 0d  |w.EQUB 0:EQUB 2.|
00000670  00 78 09 41 4c 49 47 4e  0d 00 79 08 2e 56 55 4c  |.x.ALIGN..y..VUL|
00000680  0d 00 7a 0e 41 44 52 20  57 2c 58 54 41 42 0d 00  |..z.ADR W,XTAB..|
00000690  7b 10 4d 4f 56 20 49 2c  23 33 34 30 2a 73 0d 00  |{.MOV I,#340*s..|
000006a0  7c 14 4d 4f 56 20 41 2c  23 73 2a 31 32 38 3c 3c  ||.MOV A,#s*128<<|
000006b0  32 30 0d 00 7d 0c 4d 4f  56 20 42 2c 23 30 0d 00  |20..}.MOV B,#0..|
000006c0  7e 0d 2e 56 55 4c 5f 4c  4f 4f 50 0d 00 7f 14 53  |~..VUL_LOOP....S|
000006d0  54 4d 49 41 20 28 57 29  21 2c 7b 41 2c 42 7d 0d  |TMIA (W)!,{A,B}.|
000006e0  00 80 0f 53 55 42 53 20  49 2c 49 2c 23 31 0d 00  |...SUBS I,I,#1..|
000006f0  81 10 42 4e 45 20 56 55  4c 5f 4c 4f 4f 50 0d 00  |..BNE VUL_LOOP..|
00000700  82 0a 2e 57 4c 4f 4f 50  0d 00 83 12 53 57 49 20  |...WLOOP....SWI |
00000710  22 4f 53 5f 4d 6f 75 73  65 22 0d 00 84 0c 43 4d  |"OS_Mouse"....CM|
00000720  50 20 42 2c 23 34 0d 00  85 0d 42 45 51 20 57 4c  |P B,#4....BEQ WL|
00000730  4f 4f 50 0d 00 86 0e 4d  4f 56 20 52 30 2c 23 32  |OOP....MOV R0,#2|
00000740  31 0d 00 87 11 41 44 52  20 52 31 2c 43 42 4c 4f  |1....ADR R1,CBLO|
00000750  43 4b 0d 00 88 11 53 57  49 20 22 4f 53 5f 57 6f  |CK....SWI "OS_Wo|
00000760  72 64 22 0d 00 89 12 53  57 49 20 22 4f 53 5f 4d  |rd"....SWI "OS_M|
00000770  6f 75 73 65 22 0d 00 8a  0e 4d 4f 56 20 52 30 2c  |ouse"....MOV R0,|
00000780  23 31 36 0d 00 8b 13 53  57 49 20 22 4f 53 5f 57  |#16....SWI "OS_W|
00000790  72 69 74 65 43 22 0d 00  8c 0e 4d 4f 56 20 50 43  |riteC"....MOV PC|
000007a0  2c 52 31 34 0d 00 8d 09  2e 58 54 41 42 0d 00 8e  |,R14.....XTAB...|
000007b0  05 5d 0d 00 8f 05 ed 0d  00 90 09 d6 20 53 45 54  |.].......... SET|
000007c0  0d 00 91 09 d6 20 56 55  4c 0d 00 92 05 db 0d 00  |..... VUL.......|
000007d0  93 0c 2a 50 4f 49 4e 54  45 52 0d 00 94 14 c8 97  |..*POINTER......|
000007e0  20 c8 93 20 30 2c 30 2c  30 2c 31 30 32 34 0d 00  | .. 0,0,0,1024..|
000007f0  95 0e c8 97 20 b8 20 30  2c 35 31 32 0d 00 96 0a  |.... . 0,512....|
00000800  d6 20 57 41 56 45 0d 00  97 05 e0 0d 00 98 04 0d  |. WAVE..........|
00000810  00 99 17 dd 20 f2 63 6f  6c 74 61 62 6c 65 28 43  |.... .coltable(C|
00000820  54 41 42 4c 45 29 0d 00  9a 09 53 57 50 3d 32 0d  |TABLE)....SWP=2.|
00000830  00 9b 0c 43 3d 30 3a 4d  3d 31 35 0d 00 9c 0d e3  |...C=0:M=15.....|
00000840  20 4b 3d 30 20 b8 20 4d  0d 00 9d 24 f2 70 75 74  | K=0 . M...$.put|
00000850  28 43 2b 28 4b 20 80 20  25 31 31 30 30 29 2a 35  |(C+(K . %1100)*5|
00000860  2e 32 35 2c 4b 20 80 20  25 31 31 29 0d 00 9e 05  |.25,K . %11)....|
00000870  ed 0d 00 9f 0d e3 20 54  3d 31 20 b8 20 33 0d 00  |...... T=1 . 3..|
00000880  a0 13 43 3d 54 3a 4d 3d  34 2a 28 34 2d 54 29 2d  |..C=T:M=4*(4-T)-|
00000890  31 0d 00 a1 0e f2 73 69  64 65 28 20 20 34 29 0d  |1.....side(  4).|
000008a0  00 a2 0e f2 73 69 64 65  28 2d 20 31 29 0d 00 a3  |....side(- 1)...|
000008b0  0e f2 73 69 64 65 28 20  31 36 29 0d 00 a4 0e f2  |..side( 16).....|
000008c0  73 69 64 65 28 2d 20 34  29 0d 00 a5 0e f2 73 69  |side(- 4).....si|
000008d0  64 65 28 20 20 31 29 0d  00 a6 0e f2 73 69 64 65  |de(  1).....side|
000008e0  28 2d 31 36 29 0d 00 a7  05 ed 0d 00 a8 05 e1 0d  |(-16)...........|
000008f0  00 a9 04 0d 00 aa 10 dd  20 f2 73 69 64 65 28 52  |........ .side(R|
00000900  47 42 29 0d 00 ab 0d e3  20 49 3d 31 20 b8 20 54  |GB)..... I=1 . T|
00000910  0d 00 ac 0a 43 2b 3d 52  47 42 0d 00 ad 0d e7 20  |....C+=RGB..... |
00000920  53 57 50 3d 31 20 8c 0d  00 ae 0d e3 20 4b 3d 30  |SWP=1 ...... K=0|
00000930  20 b8 20 4d 0d 00 af 24  f2 70 75 74 28 43 2b 28  | . M...$.put(C+(|
00000940  4b 20 80 20 25 31 31 30  30 29 2a 35 2e 32 35 2c  |K . %1100)*5.25,|
00000950  4b 20 80 20 25 31 31 29  0d 00 b0 05 ed 0d 00 b1  |K . %11)........|
00000960  05 cc 0d 00 b2 12 e3 20  4b 3d 4d 20 b8 20 30 20  |....... K=M . 0 |
00000970  88 20 2d 31 0d 00 b3 24  f2 70 75 74 28 43 2b 28  |. -1...$.put(C+(|
00000980  4b 20 80 20 25 31 31 30  30 29 2a 35 2e 32 35 2c  |K . %1100)*5.25,|
00000990  4b 20 80 20 25 31 31 29  0d 00 b4 05 ed 0d 00 b5  |K . %11)........|
000009a0  05 cd 0d 00 b6 0f 53 57  50 3d 53 57 50 20 82 20  |......SWP=SWP . |
000009b0  33 0d 00 b7 05 ed 0d 00  b8 05 e1 0d 00 b9 04 0d  |3...............|
000009c0  00 ba 0f dd 20 f2 70 75  74 28 43 2c 54 29 0d 00  |.... .put(C,T)..|
000009d0  bb 11 42 31 3d 28 43 3e  3e 35 29 20 80 20 31 0d  |..B1=(C>>5) . 1.|
000009e0  00 bc 11 42 32 3d 28 43  3e 3e 34 29 20 80 20 31  |...B2=(C>>4) . 1|
000009f0  0d 00 bd 11 47 31 3d 28  43 3e 3e 33 29 20 80 20  |....G1=(C>>3) . |
00000a00  31 0d 00 be 11 47 32 3d  28 43 3e 3e 32 29 20 80  |1....G2=(C>>2) .|
00000a10  20 31 0d 00 bf 11 52 31  3d 28 43 3e 3e 31 29 20  | 1....R1=(C>>1) |
00000a20  80 20 31 0d 00 c0 11 52  32 3d 28 43 3e 3e 30 29  |. 1....R2=(C>>0)|
00000a30  20 80 20 31 0d 00 c1 31  43 4f 4c 3d 54 2b 34 2a  | . 1...1COL=T+4*|
00000a40  28 52 32 2b 32 2a 28 42  32 2b 32 2a 28 52 31 2b  |(R2+2*(B2+2*(R1+|
00000a50  32 2a 28 47 32 2b 32 2a  28 47 31 2b 32 2a 42 31  |2*(G2+2*(G1+2*B1|
00000a60  29 29 29 29 29 0d 00 c2  0f 3f 43 54 41 42 4c 45  |)))))....?CTABLE|
00000a70  3d 43 4f 4c 0d 00 c3 0d  43 54 41 42 4c 45 2b 3d  |=COL....CTABLE+=|
00000a80  31 0d 00 c4 05 e1 0d 00  c5 04 0d ff              |1...........|
00000a8c