Home » Archimedes archive » Acorn User » Acorn User - Shareware Collection (1993).adf » FastBrot3 » !FastBrot3/Demo_8

!FastBrot3/Demo_8

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 » Acorn User - Shareware Collection (1993).adf » FastBrot3
Filename: !FastBrot3/Demo_8
Read OK:
File size: 1840 bytes
Load address: 0000
Exec address: 0000
File contents
   10REM > Demo/8
   20
   30REM Apfelmaennchen in 67 bunten Farben aus 256 ausgewaehlt
   40REM Aufloesung 512 horizontal und 512 vertikal
   50REM Benoetigt ScreenSize 320 Kb !!!
   60
   70DIM code% 5000
   80MODE 21
   90*POINTER 0
  100OFF
  110VDU 19,0,24,255,255,255
  120
  130PROCsetpalette
  140PROCselmode
  150
  160resx=640
  170pixelx=512
  180pixely=512
  190
  200minX=-3
  210minY=-3
  220size=6
  230
  240REPEAT
  250
  260PROCassem(size>0.05)
  270
  280CALL mandelbrot
  290
  300MOUSE TO 0,0
  310X=0
  320Y=0
  330DX=1279
  340DY=1023
  350dx=DX
  360dy=DY
  370xalt=0
  380yalt=0
  390
  400REPEAT
  410MOUSE x,y,b
  420IF x=xalt AND y=yalt AND b=0 THEN 410
  430xalt=x:yalt=y
  440CALL frame
  450IF b=4 THEN dx=DX*.99:dy=DY*.99
  460IF b=1 THEN dx=DX*1.01:dy=DY*1.01
  470IF X+dx>1279 THEN dx=DX:dy=DY
  480IF Y+dy>1024 THEN dx=DX:dy=DY
  490DX=dx
  500DY=dy
  510
  520IF x+DX>1279 THEN MOUSE TO X,y:x=X
  530IF y+DY>1024 THEN MOUSE TO x,Y:y=Y
  540X=x
  550Y=y
  560!xwert=X*pixelx/1280
  570!ywert=Y*pixely/1024
  580!xsize=DX*pixelx/1280
  590!ysize=DY*pixely/1024
  600CALL frame
  610UNTIL b=2
  620minX+=X*size/1279
  630minY+=Y*size/1023
  640size=size*DX/1279
  650
  660UNTIL FALSE
  670
  680DEFPROCselmode
  690code%!0=150
  700code%!4=149
  710code%!8=-1
  720SYS "OS_ReadVduVariables",code%,code%+12
  730hiscreen%=code%!16
  740hiscreen%+=64
  750IF code%!12<320*1024 THEN PRINT "Needs screensize 320k": END
  760ENDPROC
  770
  780DEFPROCsetpalette
  790FOR A=0 TO 1
  800FOR B=0 TO 1
  810FOR C=0 TO 1
  820FOR D=0 TO 1
  830COLOUR 8*A+4*B+2*C+D,64*B+32*A,32*C+16*D,0
  840NEXT D,C,B,A
  850ENDPROC
  860
  870DEFPROCassem(fast%)
  880
  890FOR pass%=0 TO 2 STEP 2
  900
  910X=0
  920Y=1
  930N=2
  940XX=3
  950YY=4
  960R=5
  970MASK=6
  980XP=7
  990YP=8
 1000
 1010SP=13
 1020LINK=14
 1030
 1040P%=code%
 1050[OPT pass%
 1060
 1070.keyEvent
 1080CMP     R1,#1
 1090STREQ   R1,keyflag
 1100MOV     PC,R14
 1110
 1120.mandelbrot
 1130MOV     R0,#14
 1140MOV     R1,#11
 1150SWI     "OS_Byte"
 1160MOV     R0,#&10
 1170ADR     R1,keyEvent
 1180MOV     R2,#0
 1190SWI     "OS_Claim"
 1200
 1210STR     SP,sp
 1220STR     LINK,link
 1230
 1240MOV     MASK,#&F0000000
 1250
 1260LDR     YP,yp
 1270.yloop
 1280LDR     XP,xp
 1290.xloop
 1300MOV     X,#0
 1310MOV     Y,#0
 1320MOV     N,#0
 1330.loop
 1340FNmulti(XX,X,X)
 1350FNmulti(YY,Y,Y)
 1360ADDS    R,XX,YY
 1370TST     MASK,R,RRX
 1380BNE     exit
 1390FNmulti(R,X,Y)
 1400ADD     Y,YP,R,LSL #1
 1410SUB     X,XX,YY
 1420ADD     X,X,XP
 1430ADD     N,N,#1
 1440CMP     N,#68
 1450BNE     loop
 1460LDR     R0,xcount
 1470LDR     R1,ycount
 1480MOV     R3,#pixely
 1490SUB     R1,R3,R1
 1500SUB     R1,R1,#1
 1510MOV     R2,#0
 1520LDR     R3,hiscreen
 1530MOV     R4,#resx
 1540MUL     R4,R1,R4
 1550ADD     R4,R4,R3
 1560ADD     R4,R4,R0
 1570STRB    R2,[R4]
 1580B       weiter
 1590.exit
 1600LDR     R0,xcount
 1610LDR     R1,ycount
 1620MOV     R3,#pixely
 1630SUB     R1,R3,R1
 1640SUB     R1,R1,#1
 1650LDR     R3,hiscreen
 1660MOV     R4,#resx
 1670MUL     R4,R1,R4
 1680ADD     R4,R4,R3
 1690ADD     R4,R4,R0
 1700ADR     R3,palette
 1710LDRB    R2,[R3,R2]
 1720STRB    R2,[R4]
 1730.weiter
 1740LDR     R1,ycount
 1750LDR     R2,dx
 1760ADD     XP,XP,R2
 1770ADD     R0,R0,#1
 1780STR     R0,xcount
 1790CMP     R0,#pixelx
 1800BNE     xloop
 1810MOV     R0,#0
 1820STR     R0,xcount
 1830ADD     R1,R1,#1
 1840STR     R1,ycount
 1850LDR     R2,dy
 1860ADD     YP,YP,R2
 1870LDR     R0,keyflag
 1880CMP     R0,#1
 1890CMPNE   R1,#pixely
 1900BNE     yloop
 1910MOV     R0,#13
 1920MOV     R1,#11
 1930SWI     "OS_Byte"
 1940MOV     R0,#&10
 1950ADR     R1,keyEvent
 1960MOV     R2,#0
 1970SWI     "OS_Release"
 1980LDR     SP,sp
 1990LDR     LINK,link
 2000MOVS    PC,R14
 2010
 2020.hiscreen EQUD hiscreen%
 2030.xp      EQUD minX*(1<<27)
 2040.yp      EQUD minY*(1<<27)
 2050.dx      EQUD (size/pixelx)*(1<<27)
 2060.dy      EQUD (size/pixely)*(1<<27)
 2070.xcount  EQUD 0
 2080.ycount  EQUD 0
 2090.sp      EQUD 0
 2100.link    EQUD 0
 2110.keyflag EQUD 0
 2120.xwert   EQUD 0
 2130.ywert   EQUD 0
 2140.xsize   EQUD 0
 2150.ysize   EQUD 0
 2160
 2170.palette
 2180EQUB 0
 2190EQUB 8
 2200EQUB 4
 2210EQUB 12
 2220EQUB 16
 2230EQUB 24
 2240EQUB 20
 2250EQUB 28
 2260EQUB 29
 2270EQUB 30
 2280EQUB 31
 2290EQUB 60
 2300EQUB 61
 2310EQUB 62
 2320EQUB 63
 2330EQUB 92
 2340EQUB 93
 2350EQUB 94
 2360EQUB 95
 2370EQUB 124
 2380EQUB 125
 2390EQUB 126
 2400EQUB 127
 2410EQUB 119
 2420EQUB 123
 2430EQUB 115
 2440EQUB 111
 2450EQUB 103
 2460EQUB 107
 2470EQUB 99
 2480EQUB 227
 2490EQUB 226
 2500EQUB 225
 2510EQUB 224
 2520EQUB 195
 2530EQUB 194
 2540EQUB 193
 2550EQUB 192
 2560EQUB 163
 2570EQUB 162
 2580EQUB 161
 2590EQUB 160
 2600EQUB 131
 2610EQUB 130
 2620EQUB 129
 2630EQUB 128
 2640EQUB 136
 2650EQUB 132
 2660EQUB 140
 2670EQUB 144
 2680EQUB 152
 2690EQUB 148
 2700EQUB 156
 2710EQUB 157
 2720EQUB 158
 2730EQUB 159
 2740EQUB 188
 2750EQUB 189
 2760EQUB 190
 2770EQUB 191
 2780EQUB 220
 2790EQUB 221
 2800EQUB 222
 2810EQUB 223
 2820EQUB 252
 2830EQUB 253
 2840EQUB 254
 2850EQUB 255
 2860
 2870.frame
 2880
 2890LDR     R0,ysize
 2900LDR     R1,ywert
 2910RSB     R1,R1,#pixely
 2920SUB     R1,R1,R0
 2930SUB     R1,R1,#1
 2940MOV     R0,#resx
 2950MUL     R0,R1,R0
 2960LDR     R1,xwert
 2970ADD     R0,R0,R1
 2980LDR     R1,hiscreen
 2990ADD     R1,R0,R1
 3000LDR     R2,xsize
 3010MOV     R3,R2
 3020
 3030.blockloop1
 3040LDRB    R0,[R1,R2]
 3050EOR     R0,R0,#255
 3060STRB    R0,[R1,R2]
 3070SUBS    R2,R2,#1
 3080BPL     blockloop1
 3090
 3100LDR     R2,ysize
 3110.blockloop2
 3120LDRB R0,[R1]
 3130EOR  R0,R0,#255
 3140STRB R0,[R1]
 3150LDRB R0,[R1,R3]
 3160EOR  R0,R0,#255
 3170STRB R0,[R1,R3]
 3180ADD  R1,R1,#resx
 3190SUBS R2,R2,#1
 3200BPL  blockloop2
 3210
 3220SUB  R1,R1,#resx
 3230.blockloop3
 3240LDRB R0,[R1,R3]
 3250EOR  R0,R0,#255
 3260STRB R0,[R1,R3]
 3270SUBS R3,R3,#1
 3280BPL  blockloop3
 3290
 3300MOV  PC,LINK
 3310
 3320
 3330
 3340]
 3350NEXT
 3360ENDPROC
 3370:
 3380DEFFNmulti(result,num1,num2)
 3390IF fast% THEN
 3400PROCmulti16(result,num1,num2)
 3410ELSE
 3420PROCmulti32(result,num1,num2)
 3430ENDIF
 3440=""
 3450:
 3460DEFPROCmulti32(ResHigh,num1,num2)
 3470lhs=10
 3480rhs=11
 3490work=12
 3500ResLow=13
 3510sign=14
 3520:
 3530[OPT pass%
 3540MOV lhs,num1
 3550MOV rhs,num2
 3560EOR sign,lhs,rhs
 3570TST lhs,#&80000000
 3580RSBNE lhs,lhs,#0
 3590TST rhs,#&80000000
 3600RSBNE rhs,rhs,#0
 3610MOV work,lhs,LSR #&10
 3620MOV ResHigh,rhs,LSR #&10
 3630BIC lhs,lhs,work,LSL #&10
 3640BIC rhs,rhs,ResHigh, LSL #&10
 3650MUL ResLow,lhs,rhs
 3660MUL rhs,work,rhs
 3670MUL lhs,ResHigh,lhs
 3680MUL ResHigh, work, ResHigh
 3690ADDS lhs,rhs,lhs
 3700ADDCS ResHigh, ResHigh, #&10000
 3710ADDS ResLow,ResLow, lhs, LSL #&10
 3720ADC ResHigh, ResHigh,lhs, LSR #&10
 3730MOV ResLow, ResLow, LSR #27
 3740TST sign, #&80000000
 3750RSBNE ResLow, ResLow, #0
 3760RSBNE ResHigh, ResHigh, #0
 3770ADDS ResHigh, ResLow, ResHigh, LSL #5
 3780]
 3790ENDPROC
 3800:
 3810DEFPROCmulti16(ResHigh,num1,num2)
 3820lhs=10
 3830rhs=11
 3840[OPT pass%
 3850MOV lhs,num1,ASR #&E
 3860MOV rhs,num2,ASR #&E
 3870MUL ResHigh,lhs,rhs
 3880MOVS ResHigh,ResHigh,LSL #1
 3890]
 3900ENDPROC
 3910

� > Demo/8

<� Apfelmaennchen in 67 bunten Farben aus 256 ausgewaehlt
(0� Aufloesung 512 horizontal und 512 vertikal
2%� Benoetigt ScreenSize 320 Kb !!!
<
F� code% 5000
P� 21
Z*POINTER 0
d�
n� 19,0,24,255,255,255
x
��setpalette
��selmode
�
�resx=640
�pixelx=512
�pixely=512
�
�minX=-3
�minY=-3
�
size=6
�
��
�
�assem(size>0.05)

� mandelbrot
"
,ȗ � 0,0
6X=0
@Y=0
JDX=1279
TDY=1023
^	dx=DX
h	dy=DY
r
xalt=0
|
yalt=0
�
��
�ȗ x,y,b
�"� x=xalt � y=yalt � b=0 � �tZA
�xalt=x:yalt=y
�� frame
�� b=4 � dx=DX*.99:dy=DY*.99
�!� b=1 � dx=DX*1.01:dy=DY*1.01
�� X+dx>1279 � dx=DX:dy=DY
�� Y+dy>1024 � dx=DX:dy=DY
�	DX=dx
�	DY=dy
�
� x+DX>1279 � ȗ � X,y:x=X
� y+DY>1024 � ȗ � x,Y:y=Y
X=x
&Y=y
0!xwert=X*pixelx/1280
:!ywert=Y*pixely/1024
D!xsize=DX*pixelx/1280
N!ysize=DY*pixely/1024
X� frame
b	� b=2
lminX+=X*size/1279
vminY+=Y*size/1023
�size=size*DX/1279
�
�� �
�
�
��selmode
�code%!0=150
�code%!4=149
�code%!8=-1
�+ș "OS_ReadVduVariables",code%,code%+12
�hiscreen%=code%!16
�hiscreen%+=64
�6� code%!12<320*1024 � � "Needs screensize 320k": �
��

��setpalette

� A=0 � 1
 
� B=0 � 1
*
� C=0 � 1
4
� D=0 � 1
>)� 8*A+4*B+2*C+D,64*B+32*A,32*C+16*D,0
H
� D,C,B,A
R�
\
f��assem(fast%)
p
z� pass%=0 � 2 � 2
�
�X=0
�Y=1
�N=2
�XX=3
�YY=4
�R=5
�
MASK=6
�XP=7
�YP=8
�
�	SP=13
�LINK=14

P%=code%
[OPT pass%
$
.
.keyEvent
8CMP     R1,#1
BSTREQ   R1,keyflag
LMOV     PC,R14
V
`.mandelbrot
jMOV     R0,#14
tMOV     R1,#11
~SWI     "OS_Byte"
�MOV     R0,#&10
�ADR     R1,keyEvent
�MOV     R2,#0
�SWI     "OS_Claim"
�
�STR     SP,sp
�STR     LINK,link
�
�MOV     MASK,#&F0000000
�
�LDR     YP,yp
�
.yloop
LDR     XP,xp


.xloop
MOV     X,#0
MOV     Y,#0
(MOV     N,#0
2	.loop
<�multi(XX,X,X)
F�multi(YY,Y,Y)
PADDS    R,XX,YY
ZTST     MASK,R,RRX
dBNE     exit
n�multi(R,X,Y)
xADD     Y,YP,R,LSL #1
�SUB     X,XX,YY
�ADD     X,X,XP
�ADD     N,N,#1
�CMP     N,#68
�BNE     loop
�LDR     R0,xcount
�LDR     R1,ycount
�MOV     R3,#pixely
�SUB     R1,R3,R1
�SUB     R1,R1,#1
�MOV     R2,#0
�LDR     R3,hiscreen
�MOV     R4,#resx
MUL     R4,R1,R4
ADD     R4,R4,R3
ADD     R4,R4,R0
"STRB    R2,[R4]
,B       weiter
6	.exit
@LDR     R0,xcount
JLDR     R1,ycount
TMOV     R3,#pixely
^SUB     R1,R3,R1
hSUB     R1,R1,#1
rLDR     R3,hiscreen
|MOV     R4,#resx
�MUL     R4,R1,R4
�ADD     R4,R4,R3
�ADD     R4,R4,R0
�ADR     R3,palette
�LDRB    R2,[R3,R2]
�STRB    R2,[R4]
�.weiter
�LDR     R1,ycount
�LDR     R2,dx
�ADD     XP,XP,R2
�ADD     R0,R0,#1
�STR     R0,xcount
�CMP     R0,#pixelx
BNE     xloop
MOV     R0,#0
STR     R0,xcount
&ADD     R1,R1,#1
0STR     R1,ycount
:LDR     R2,dy
DADD     YP,YP,R2
NLDR     R0,keyflag
XCMP     R0,#1
bCMPNE   R1,#pixely
lBNE     yloop
vMOV     R0,#13
�MOV     R1,#11
�SWI     "OS_Byte"
�MOV     R0,#&10
�ADR     R1,keyEvent
�MOV     R2,#0
�SWI     "OS_Release"
�LDR     SP,sp
�LDR     LINK,link
�MOVS    PC,R14
�
�.hiscreen EQUD hiscreen%
�.xp      EQUD minX*(1<<27)
�.yp      EQUD minY*(1<<27)
'.dx      EQUD (size/pixelx)*(1<<27)
'.dy      EQUD (size/pixely)*(1<<27)
.xcount  EQUD 0
 .ycount  EQUD 0
*.sp      EQUD 0
4.link    EQUD 0
>.keyflag EQUD 0
H.xwert   EQUD 0
R.ywert   EQUD 0
\.xsize   EQUD 0
f.ysize   EQUD 0
p
z.palette
�
EQUB 0
�
EQUB 8
�
EQUB 4
�EQUB 12
�EQUB 16
�EQUB 24
�EQUB 20
�EQUB 28
�EQUB 29
�EQUB 30
�EQUB 31
�EQUB 60
�EQUB 61
	EQUB 62
	EQUB 63
	EQUB 92
	$EQUB 93
	.EQUB 94
	8EQUB 95
	BEQUB 124
	LEQUB 125
	VEQUB 126
	`EQUB 127
	jEQUB 119
	tEQUB 123
	~EQUB 115
	�EQUB 111
	�EQUB 103
	�EQUB 107
	�EQUB 99
	�EQUB 227
	�EQUB 226
	�EQUB 225
	�EQUB 224
	�EQUB 195
	�EQUB 194
	�EQUB 193
	�EQUB 192
EQUB 163

EQUB 162
EQUB 161
EQUB 160
(EQUB 131
2EQUB 130
<EQUB 129
FEQUB 128
PEQUB 136
ZEQUB 132
dEQUB 140
nEQUB 144
xEQUB 152
�EQUB 148
�EQUB 156
�EQUB 157
�EQUB 158
�EQUB 159
�EQUB 188
�EQUB 189
�EQUB 190
�EQUB 191
�EQUB 220
�EQUB 221
�EQUB 222
�EQUB 223
EQUB 252
EQUB 253
EQUB 254
"EQUB 255
,
6
.frame
@
JLDR     R0,ysize
TLDR     R1,ywert
^RSB     R1,R1,#pixely
hSUB     R1,R1,R0
rSUB     R1,R1,#1
|MOV     R0,#resx
�MUL     R0,R1,R0
�LDR     R1,xwert
�ADD     R0,R0,R1
�LDR     R1,hiscreen
�ADD     R1,R0,R1
�LDR     R2,xsize
�MOV     R3,R2
�
�.blockloop1
�LDRB    R0,[R1,R2]
��     R0,R0,#255
�STRB    R0,[R1,R2]
�SUBS    R2,R2,#1
BPL     blockloop1

LDR     R2,ysize
&.blockloop2
0LDRB R0,[R1]
:�  R0,R0,#255
DSTRB R0,[R1]
NLDRB R0,[R1,R3]
X�  R0,R0,#255
bSTRB R0,[R1,R3]
lADD  R1,R1,#resx
vSUBS R2,R2,#1
�BPL  blockloop2
�
�SUB  R1,R1,#resx
�.blockloop3
�LDRB R0,[R1,R3]
��  R0,R0,#255
�STRB R0,[R1,R3]
�SUBS R3,R3,#1
�BPL  blockloop3
�
�MOV  PC,LINK
�
�



]

�

 �

*:

4ݤmulti(result,num1,num2)

>
� fast% �

H�multi16(result,num1,num2)

R�

\�multi32(result,num1,num2)

f�

p=""

z:

� ��multi32(ResHigh,num1,num2)

�
lhs=10

�
rhs=11

�work=12

�
ResLow=13

�sign=14

�:

�[OPT pass%

�MOV lhs,num1

�MOV rhs,num2

�� sign,lhs,rhs

�TST lhs,#&80000000

�RSBNE lhs,lhs,#0
TST rhs,#&80000000
RSBNE rhs,rhs,#0
MOV work,lhs,LSR #&10
$MOV ResHigh,rhs,LSR #&10
.BIC lhs,lhs,work,LSL #&10
8!BIC rhs,rhs,ResHigh, LSL #&10
BMUL ResLow,lhs,rhs
LMUL rhs,work,rhs
VMUL lhs,ResHigh,lhs
`MUL ResHigh, work, ResHigh
jADDS lhs,rhs,lhs
t#ADDCS ResHigh, ResHigh, #&10000
~%ADDS ResLow,ResLow, lhs, LSL #&10
�&ADC ResHigh, ResHigh,lhs, LSR #&10
�MOV ResLow, ResLow, LSR #27
�TST sign, #&80000000
�RSBNE ResLow, ResLow, #0
�RSBNE ResHigh, ResHigh, #0
�)ADDS ResHigh, ResLow, ResHigh, LSL #5
�]
��
�:
� ��multi16(ResHigh,num1,num2)
�
lhs=10
�
rhs=11
[OPT pass%

MOV lhs,num1,ASR #&E
MOV rhs,num2,ASR #&E
MUL ResHigh,lhs,rhs
(MOVS ResHigh,ResHigh,LSL #1
2]
<�
F
�
00000000  0d 00 0a 0e f4 20 3e 20  44 65 6d 6f 2f 38 0d 00  |..... > Demo/8..|
00000010  14 04 0d 00 1e 3c f4 20  41 70 66 65 6c 6d 61 65  |.....<. Apfelmae|
00000020  6e 6e 63 68 65 6e 20 69  6e 20 36 37 20 62 75 6e  |nnchen in 67 bun|
00000030  74 65 6e 20 46 61 72 62  65 6e 20 61 75 73 20 32  |ten Farben aus 2|
00000040  35 36 20 61 75 73 67 65  77 61 65 68 6c 74 0d 00  |56 ausgewaehlt..|
00000050  28 30 f4 20 41 75 66 6c  6f 65 73 75 6e 67 20 35  |(0. Aufloesung 5|
00000060  31 32 20 68 6f 72 69 7a  6f 6e 74 61 6c 20 75 6e  |12 horizontal un|
00000070  64 20 35 31 32 20 76 65  72 74 69 6b 61 6c 0d 00  |d 512 vertikal..|
00000080  32 25 f4 20 42 65 6e 6f  65 74 69 67 74 20 53 63  |2%. Benoetigt Sc|
00000090  72 65 65 6e 53 69 7a 65  20 33 32 30 20 4b 62 20  |reenSize 320 Kb |
000000a0  21 21 21 0d 00 3c 04 0d  00 46 10 de 20 63 6f 64  |!!!..<...F.. cod|
000000b0  65 25 20 35 30 30 30 0d  00 50 08 eb 20 32 31 0d  |e% 5000..P.. 21.|
000000c0  00 5a 0e 2a 50 4f 49 4e  54 45 52 20 30 0d 00 64  |.Z.*POINTER 0..d|
000000d0  05 87 0d 00 6e 19 ef 20  31 39 2c 30 2c 32 34 2c  |....n.. 19,0,24,|
000000e0  32 35 35 2c 32 35 35 2c  32 35 35 0d 00 78 04 0d  |255,255,255..x..|
000000f0  00 82 0f f2 73 65 74 70  61 6c 65 74 74 65 0d 00  |....setpalette..|
00000100  8c 0c f2 73 65 6c 6d 6f  64 65 0d 00 96 04 0d 00  |...selmode......|
00000110  a0 0c 72 65 73 78 3d 36  34 30 0d 00 aa 0e 70 69  |..resx=640....pi|
00000120  78 65 6c 78 3d 35 31 32  0d 00 b4 0e 70 69 78 65  |xelx=512....pixe|
00000130  6c 79 3d 35 31 32 0d 00  be 04 0d 00 c8 0b 6d 69  |ly=512........mi|
00000140  6e 58 3d 2d 33 0d 00 d2  0b 6d 69 6e 59 3d 2d 33  |nX=-3....minY=-3|
00000150  0d 00 dc 0a 73 69 7a 65  3d 36 0d 00 e6 04 0d 00  |....size=6......|
00000160  f0 05 f5 0d 00 fa 04 0d  01 04 15 f2 61 73 73 65  |............asse|
00000170  6d 28 73 69 7a 65 3e 30  2e 30 35 29 0d 01 0e 04  |m(size>0.05)....|
00000180  0d 01 18 10 d6 20 6d 61  6e 64 65 6c 62 72 6f 74  |..... mandelbrot|
00000190  0d 01 22 04 0d 01 2c 0c  c8 97 20 b8 20 30 2c 30  |.."...,... . 0,0|
000001a0  0d 01 36 07 58 3d 30 0d  01 40 07 59 3d 30 0d 01  |..6.X=0..@.Y=0..|
000001b0  4a 0b 44 58 3d 31 32 37  39 0d 01 54 0b 44 59 3d  |J.DX=1279..T.DY=|
000001c0  31 30 32 33 0d 01 5e 09  64 78 3d 44 58 0d 01 68  |1023..^.dx=DX..h|
000001d0  09 64 79 3d 44 59 0d 01  72 0a 78 61 6c 74 3d 30  |.dy=DY..r.xalt=0|
000001e0  0d 01 7c 0a 79 61 6c 74  3d 30 0d 01 86 04 0d 01  |..|.yalt=0......|
000001f0  90 05 f5 0d 01 9a 0c c8  97 20 78 2c 79 2c 62 0d  |......... x,y,b.|
00000200  01 a4 22 e7 20 78 3d 78  61 6c 74 20 80 20 79 3d  |..". x=xalt . y=|
00000210  79 61 6c 74 20 80 20 62  3d 30 20 8c 20 8d 74 5a  |yalt . b=0 . .tZ|
00000220  41 0d 01 ae 11 78 61 6c  74 3d 78 3a 79 61 6c 74  |A....xalt=x:yalt|
00000230  3d 79 0d 01 b8 0b d6 20  66 72 61 6d 65 0d 01 c2  |=y..... frame...|
00000240  1f e7 20 62 3d 34 20 8c  20 64 78 3d 44 58 2a 2e  |.. b=4 . dx=DX*.|
00000250  39 39 3a 64 79 3d 44 59  2a 2e 39 39 0d 01 cc 21  |99:dy=DY*.99...!|
00000260  e7 20 62 3d 31 20 8c 20  64 78 3d 44 58 2a 31 2e  |. b=1 . dx=DX*1.|
00000270  30 31 3a 64 79 3d 44 59  2a 31 2e 30 31 0d 01 d6  |01:dy=DY*1.01...|
00000280  1d e7 20 58 2b 64 78 3e  31 32 37 39 20 8c 20 64  |.. X+dx>1279 . d|
00000290  78 3d 44 58 3a 64 79 3d  44 59 0d 01 e0 1d e7 20  |x=DX:dy=DY..... |
000002a0  59 2b 64 79 3e 31 30 32  34 20 8c 20 64 78 3d 44  |Y+dy>1024 . dx=D|
000002b0  58 3a 64 79 3d 44 59 0d  01 ea 09 44 58 3d 64 78  |X:dy=DY....DX=dx|
000002c0  0d 01 f4 09 44 59 3d 64  79 0d 01 fe 04 0d 02 08  |....DY=dy.......|
000002d0  1e e7 20 78 2b 44 58 3e  31 32 37 39 20 8c 20 c8  |.. x+DX>1279 . .|
000002e0  97 20 b8 20 58 2c 79 3a  78 3d 58 0d 02 12 1e e7  |. . X,y:x=X.....|
000002f0  20 79 2b 44 59 3e 31 30  32 34 20 8c 20 c8 97 20  | y+DY>1024 . .. |
00000300  b8 20 78 2c 59 3a 79 3d  59 0d 02 1c 07 58 3d 78  |. x,Y:y=Y....X=x|
00000310  0d 02 26 07 59 3d 79 0d  02 30 18 21 78 77 65 72  |..&.Y=y..0.!xwer|
00000320  74 3d 58 2a 70 69 78 65  6c 78 2f 31 32 38 30 0d  |t=X*pixelx/1280.|
00000330  02 3a 18 21 79 77 65 72  74 3d 59 2a 70 69 78 65  |.:.!ywert=Y*pixe|
00000340  6c 79 2f 31 30 32 34 0d  02 44 19 21 78 73 69 7a  |ly/1024..D.!xsiz|
00000350  65 3d 44 58 2a 70 69 78  65 6c 78 2f 31 32 38 30  |e=DX*pixelx/1280|
00000360  0d 02 4e 19 21 79 73 69  7a 65 3d 44 59 2a 70 69  |..N.!ysize=DY*pi|
00000370  78 65 6c 79 2f 31 30 32  34 0d 02 58 0b d6 20 66  |xely/1024..X.. f|
00000380  72 61 6d 65 0d 02 62 09  fd 20 62 3d 32 0d 02 6c  |rame..b.. b=2..l|
00000390  15 6d 69 6e 58 2b 3d 58  2a 73 69 7a 65 2f 31 32  |.minX+=X*size/12|
000003a0  37 39 0d 02 76 15 6d 69  6e 59 2b 3d 59 2a 73 69  |79..v.minY+=Y*si|
000003b0  7a 65 2f 31 30 32 33 0d  02 80 15 73 69 7a 65 3d  |ze/1023....size=|
000003c0  73 69 7a 65 2a 44 58 2f  31 32 37 39 0d 02 8a 04  |size*DX/1279....|
000003d0  0d 02 94 07 fd 20 a3 0d  02 9e 04 0d 02 a8 0d dd  |..... ..........|
000003e0  f2 73 65 6c 6d 6f 64 65  0d 02 b2 0f 63 6f 64 65  |.selmode....code|
000003f0  25 21 30 3d 31 35 30 0d  02 bc 0f 63 6f 64 65 25  |%!0=150....code%|
00000400  21 34 3d 31 34 39 0d 02  c6 0e 63 6f 64 65 25 21  |!4=149....code%!|
00000410  38 3d 2d 31 0d 02 d0 2b  c8 99 20 22 4f 53 5f 52  |8=-1...+.. "OS_R|
00000420  65 61 64 56 64 75 56 61  72 69 61 62 6c 65 73 22  |eadVduVariables"|
00000430  2c 63 6f 64 65 25 2c 63  6f 64 65 25 2b 31 32 0d  |,code%,code%+12.|
00000440  02 da 16 68 69 73 63 72  65 65 6e 25 3d 63 6f 64  |...hiscreen%=cod|
00000450  65 25 21 31 36 0d 02 e4  11 68 69 73 63 72 65 65  |e%!16....hiscree|
00000460  6e 25 2b 3d 36 34 0d 02  ee 36 e7 20 63 6f 64 65  |n%+=64...6. code|
00000470  25 21 31 32 3c 33 32 30  2a 31 30 32 34 20 8c 20  |%!12<320*1024 . |
00000480  f1 20 22 4e 65 65 64 73  20 73 63 72 65 65 6e 73  |. "Needs screens|
00000490  69 7a 65 20 33 32 30 6b  22 3a 20 e0 0d 02 f8 05  |ize 320k": .....|
000004a0  e1 0d 03 02 04 0d 03 0c  10 dd f2 73 65 74 70 61  |...........setpa|
000004b0  6c 65 74 74 65 0d 03 16  0d e3 20 41 3d 30 20 b8  |lette..... A=0 .|
000004c0  20 31 0d 03 20 0d e3 20  42 3d 30 20 b8 20 31 0d  | 1.. .. B=0 . 1.|
000004d0  03 2a 0d e3 20 43 3d 30  20 b8 20 31 0d 03 34 0d  |.*.. C=0 . 1..4.|
000004e0  e3 20 44 3d 30 20 b8 20  31 0d 03 3e 29 fb 20 38  |. D=0 . 1..>). 8|
000004f0  2a 41 2b 34 2a 42 2b 32  2a 43 2b 44 2c 36 34 2a  |*A+4*B+2*C+D,64*|
00000500  42 2b 33 32 2a 41 2c 33  32 2a 43 2b 31 36 2a 44  |B+32*A,32*C+16*D|
00000510  2c 30 0d 03 48 0d ed 20  44 2c 43 2c 42 2c 41 0d  |,0..H.. D,C,B,A.|
00000520  03 52 05 e1 0d 03 5c 04  0d 03 66 12 dd f2 61 73  |.R....\...f...as|
00000530  73 65 6d 28 66 61 73 74  25 29 0d 03 70 04 0d 03  |sem(fast%)..p...|
00000540  7a 15 e3 20 70 61 73 73  25 3d 30 20 b8 20 32 20  |z.. pass%=0 . 2 |
00000550  88 20 32 0d 03 84 04 0d  03 8e 07 58 3d 30 0d 03  |. 2........X=0..|
00000560  98 07 59 3d 31 0d 03 a2  07 4e 3d 32 0d 03 ac 08  |..Y=1....N=2....|
00000570  58 58 3d 33 0d 03 b6 08  59 59 3d 34 0d 03 c0 07  |XX=3....YY=4....|
00000580  52 3d 35 0d 03 ca 0a 4d  41 53 4b 3d 36 0d 03 d4  |R=5....MASK=6...|
00000590  08 58 50 3d 37 0d 03 de  08 59 50 3d 38 0d 03 e8  |.XP=7....YP=8...|
000005a0  04 0d 03 f2 09 53 50 3d  31 33 0d 03 fc 0b 4c 49  |.....SP=13....LI|
000005b0  4e 4b 3d 31 34 0d 04 06  04 0d 04 10 0c 50 25 3d  |NK=14........P%=|
000005c0  63 6f 64 65 25 0d 04 1a  0e 5b 4f 50 54 20 70 61  |code%....[OPT pa|
000005d0  73 73 25 0d 04 24 04 0d  04 2e 0d 2e 6b 65 79 45  |ss%..$......keyE|
000005e0  76 65 6e 74 0d 04 38 11  43 4d 50 20 20 20 20 20  |vent..8.CMP     |
000005f0  52 31 2c 23 31 0d 04 42  16 53 54 52 45 51 20 20  |R1,#1..B.STREQ  |
00000600  20 52 31 2c 6b 65 79 66  6c 61 67 0d 04 4c 12 4d  | R1,keyflag..L.M|
00000610  4f 56 20 20 20 20 20 50  43 2c 52 31 34 0d 04 56  |OV     PC,R14..V|
00000620  04 0d 04 60 0f 2e 6d 61  6e 64 65 6c 62 72 6f 74  |...`..mandelbrot|
00000630  0d 04 6a 12 4d 4f 56 20  20 20 20 20 52 30 2c 23  |..j.MOV     R0,#|
00000640  31 34 0d 04 74 12 4d 4f  56 20 20 20 20 20 52 31  |14..t.MOV     R1|
00000650  2c 23 31 31 0d 04 7e 15  53 57 49 20 20 20 20 20  |,#11..~.SWI     |
00000660  22 4f 53 5f 42 79 74 65  22 0d 04 88 13 4d 4f 56  |"OS_Byte"....MOV|
00000670  20 20 20 20 20 52 30 2c  23 26 31 30 0d 04 92 17  |     R0,#&10....|
00000680  41 44 52 20 20 20 20 20  52 31 2c 6b 65 79 45 76  |ADR     R1,keyEv|
00000690  65 6e 74 0d 04 9c 11 4d  4f 56 20 20 20 20 20 52  |ent....MOV     R|
000006a0  32 2c 23 30 0d 04 a6 16  53 57 49 20 20 20 20 20  |2,#0....SWI     |
000006b0  22 4f 53 5f 43 6c 61 69  6d 22 0d 04 b0 04 0d 04  |"OS_Claim"......|
000006c0  ba 11 53 54 52 20 20 20  20 20 53 50 2c 73 70 0d  |..STR     SP,sp.|
000006d0  04 c4 15 53 54 52 20 20  20 20 20 4c 49 4e 4b 2c  |...STR     LINK,|
000006e0  6c 69 6e 6b 0d 04 ce 04  0d 04 d8 1b 4d 4f 56 20  |link........MOV |
000006f0  20 20 20 20 4d 41 53 4b  2c 23 26 46 30 30 30 30  |    MASK,#&F0000|
00000700  30 30 30 0d 04 e2 04 0d  04 ec 11 4c 44 52 20 20  |000........LDR  |
00000710  20 20 20 59 50 2c 79 70  0d 04 f6 0a 2e 79 6c 6f  |   YP,yp.....ylo|
00000720  6f 70 0d 05 00 11 4c 44  52 20 20 20 20 20 58 50  |op....LDR     XP|
00000730  2c 78 70 0d 05 0a 0a 2e  78 6c 6f 6f 70 0d 05 14  |,xp.....xloop...|
00000740  10 4d 4f 56 20 20 20 20  20 58 2c 23 30 0d 05 1e  |.MOV     X,#0...|
00000750  10 4d 4f 56 20 20 20 20  20 59 2c 23 30 0d 05 28  |.MOV     Y,#0..(|
00000760  10 4d 4f 56 20 20 20 20  20 4e 2c 23 30 0d 05 32  |.MOV     N,#0..2|
00000770  09 2e 6c 6f 6f 70 0d 05  3c 12 a4 6d 75 6c 74 69  |..loop..<..multi|
00000780  28 58 58 2c 58 2c 58 29  0d 05 46 12 a4 6d 75 6c  |(XX,X,X)..F..mul|
00000790  74 69 28 59 59 2c 59 2c  59 29 0d 05 50 13 41 44  |ti(YY,Y,Y)..P.AD|
000007a0  44 53 20 20 20 20 52 2c  58 58 2c 59 59 0d 05 5a  |DS    R,XX,YY..Z|
000007b0  16 54 53 54 20 20 20 20  20 4d 41 53 4b 2c 52 2c  |.TST     MASK,R,|
000007c0  52 52 58 0d 05 64 10 42  4e 45 20 20 20 20 20 65  |RRX..d.BNE     e|
000007d0  78 69 74 0d 05 6e 11 a4  6d 75 6c 74 69 28 52 2c  |xit..n..multi(R,|
000007e0  58 2c 59 29 0d 05 78 19  41 44 44 20 20 20 20 20  |X,Y)..x.ADD     |
000007f0  59 2c 59 50 2c 52 2c 4c  53 4c 20 23 31 0d 05 82  |Y,YP,R,LSL #1...|
00000800  13 53 55 42 20 20 20 20  20 58 2c 58 58 2c 59 59  |.SUB     X,XX,YY|
00000810  0d 05 8c 12 41 44 44 20  20 20 20 20 58 2c 58 2c  |....ADD     X,X,|
00000820  58 50 0d 05 96 12 41 44  44 20 20 20 20 20 4e 2c  |XP....ADD     N,|
00000830  4e 2c 23 31 0d 05 a0 11  43 4d 50 20 20 20 20 20  |N,#1....CMP     |
00000840  4e 2c 23 36 38 0d 05 aa  10 42 4e 45 20 20 20 20  |N,#68....BNE    |
00000850  20 6c 6f 6f 70 0d 05 b4  15 4c 44 52 20 20 20 20  | loop....LDR    |
00000860  20 52 30 2c 78 63 6f 75  6e 74 0d 05 be 15 4c 44  | R0,xcount....LD|
00000870  52 20 20 20 20 20 52 31  2c 79 63 6f 75 6e 74 0d  |R     R1,ycount.|
00000880  05 c8 16 4d 4f 56 20 20  20 20 20 52 33 2c 23 70  |...MOV     R3,#p|
00000890  69 78 65 6c 79 0d 05 d2  14 53 55 42 20 20 20 20  |ixely....SUB    |
000008a0  20 52 31 2c 52 33 2c 52  31 0d 05 dc 14 53 55 42  | R1,R3,R1....SUB|
000008b0  20 20 20 20 20 52 31 2c  52 31 2c 23 31 0d 05 e6  |     R1,R1,#1...|
000008c0  11 4d 4f 56 20 20 20 20  20 52 32 2c 23 30 0d 05  |.MOV     R2,#0..|
000008d0  f0 17 4c 44 52 20 20 20  20 20 52 33 2c 68 69 73  |..LDR     R3,his|
000008e0  63 72 65 65 6e 0d 05 fa  14 4d 4f 56 20 20 20 20  |creen....MOV    |
000008f0  20 52 34 2c 23 72 65 73  78 0d 06 04 14 4d 55 4c  | R4,#resx....MUL|
00000900  20 20 20 20 20 52 34 2c  52 31 2c 52 34 0d 06 0e  |     R4,R1,R4...|
00000910  14 41 44 44 20 20 20 20  20 52 34 2c 52 34 2c 52  |.ADD     R4,R4,R|
00000920  33 0d 06 18 14 41 44 44  20 20 20 20 20 52 34 2c  |3....ADD     R4,|
00000930  52 34 2c 52 30 0d 06 22  13 53 54 52 42 20 20 20  |R4,R0..".STRB   |
00000940  20 52 32 2c 5b 52 34 5d  0d 06 2c 12 42 20 20 20  | R2,[R4]..,.B   |
00000950  20 20 20 20 77 65 69 74  65 72 0d 06 36 09 2e 65  |    weiter..6..e|
00000960  78 69 74 0d 06 40 15 4c  44 52 20 20 20 20 20 52  |xit..@.LDR     R|
00000970  30 2c 78 63 6f 75 6e 74  0d 06 4a 15 4c 44 52 20  |0,xcount..J.LDR |
00000980  20 20 20 20 52 31 2c 79  63 6f 75 6e 74 0d 06 54  |    R1,ycount..T|
00000990  16 4d 4f 56 20 20 20 20  20 52 33 2c 23 70 69 78  |.MOV     R3,#pix|
000009a0  65 6c 79 0d 06 5e 14 53  55 42 20 20 20 20 20 52  |ely..^.SUB     R|
000009b0  31 2c 52 33 2c 52 31 0d  06 68 14 53 55 42 20 20  |1,R3,R1..h.SUB  |
000009c0  20 20 20 52 31 2c 52 31  2c 23 31 0d 06 72 17 4c  |   R1,R1,#1..r.L|
000009d0  44 52 20 20 20 20 20 52  33 2c 68 69 73 63 72 65  |DR     R3,hiscre|
000009e0  65 6e 0d 06 7c 14 4d 4f  56 20 20 20 20 20 52 34  |en..|.MOV     R4|
000009f0  2c 23 72 65 73 78 0d 06  86 14 4d 55 4c 20 20 20  |,#resx....MUL   |
00000a00  20 20 52 34 2c 52 31 2c  52 34 0d 06 90 14 41 44  |  R4,R1,R4....AD|
00000a10  44 20 20 20 20 20 52 34  2c 52 34 2c 52 33 0d 06  |D     R4,R4,R3..|
00000a20  9a 14 41 44 44 20 20 20  20 20 52 34 2c 52 34 2c  |..ADD     R4,R4,|
00000a30  52 30 0d 06 a4 16 41 44  52 20 20 20 20 20 52 33  |R0....ADR     R3|
00000a40  2c 70 61 6c 65 74 74 65  0d 06 ae 16 4c 44 52 42  |,palette....LDRB|
00000a50  20 20 20 20 52 32 2c 5b  52 33 2c 52 32 5d 0d 06  |    R2,[R3,R2]..|
00000a60  b8 13 53 54 52 42 20 20  20 20 52 32 2c 5b 52 34  |..STRB    R2,[R4|
00000a70  5d 0d 06 c2 0b 2e 77 65  69 74 65 72 0d 06 cc 15  |].....weiter....|
00000a80  4c 44 52 20 20 20 20 20  52 31 2c 79 63 6f 75 6e  |LDR     R1,ycoun|
00000a90  74 0d 06 d6 11 4c 44 52  20 20 20 20 20 52 32 2c  |t....LDR     R2,|
00000aa0  64 78 0d 06 e0 14 41 44  44 20 20 20 20 20 58 50  |dx....ADD     XP|
00000ab0  2c 58 50 2c 52 32 0d 06  ea 14 41 44 44 20 20 20  |,XP,R2....ADD   |
00000ac0  20 20 52 30 2c 52 30 2c  23 31 0d 06 f4 15 53 54  |  R0,R0,#1....ST|
00000ad0  52 20 20 20 20 20 52 30  2c 78 63 6f 75 6e 74 0d  |R     R0,xcount.|
00000ae0  06 fe 16 43 4d 50 20 20  20 20 20 52 30 2c 23 70  |...CMP     R0,#p|
00000af0  69 78 65 6c 78 0d 07 08  11 42 4e 45 20 20 20 20  |ixelx....BNE    |
00000b00  20 78 6c 6f 6f 70 0d 07  12 11 4d 4f 56 20 20 20  | xloop....MOV   |
00000b10  20 20 52 30 2c 23 30 0d  07 1c 15 53 54 52 20 20  |  R0,#0....STR  |
00000b20  20 20 20 52 30 2c 78 63  6f 75 6e 74 0d 07 26 14  |   R0,xcount..&.|
00000b30  41 44 44 20 20 20 20 20  52 31 2c 52 31 2c 23 31  |ADD     R1,R1,#1|
00000b40  0d 07 30 15 53 54 52 20  20 20 20 20 52 31 2c 79  |..0.STR     R1,y|
00000b50  63 6f 75 6e 74 0d 07 3a  11 4c 44 52 20 20 20 20  |count..:.LDR    |
00000b60  20 52 32 2c 64 79 0d 07  44 14 41 44 44 20 20 20  | R2,dy..D.ADD   |
00000b70  20 20 59 50 2c 59 50 2c  52 32 0d 07 4e 16 4c 44  |  YP,YP,R2..N.LD|
00000b80  52 20 20 20 20 20 52 30  2c 6b 65 79 66 6c 61 67  |R     R0,keyflag|
00000b90  0d 07 58 11 43 4d 50 20  20 20 20 20 52 30 2c 23  |..X.CMP     R0,#|
00000ba0  31 0d 07 62 16 43 4d 50  4e 45 20 20 20 52 31 2c  |1..b.CMPNE   R1,|
00000bb0  23 70 69 78 65 6c 79 0d  07 6c 11 42 4e 45 20 20  |#pixely..l.BNE  |
00000bc0  20 20 20 79 6c 6f 6f 70  0d 07 76 12 4d 4f 56 20  |   yloop..v.MOV |
00000bd0  20 20 20 20 52 30 2c 23  31 33 0d 07 80 12 4d 4f  |    R0,#13....MO|
00000be0  56 20 20 20 20 20 52 31  2c 23 31 31 0d 07 8a 15  |V     R1,#11....|
00000bf0  53 57 49 20 20 20 20 20  22 4f 53 5f 42 79 74 65  |SWI     "OS_Byte|
00000c00  22 0d 07 94 13 4d 4f 56  20 20 20 20 20 52 30 2c  |"....MOV     R0,|
00000c10  23 26 31 30 0d 07 9e 17  41 44 52 20 20 20 20 20  |#&10....ADR     |
00000c20  52 31 2c 6b 65 79 45 76  65 6e 74 0d 07 a8 11 4d  |R1,keyEvent....M|
00000c30  4f 56 20 20 20 20 20 52  32 2c 23 30 0d 07 b2 18  |OV     R2,#0....|
00000c40  53 57 49 20 20 20 20 20  22 4f 53 5f 52 65 6c 65  |SWI     "OS_Rele|
00000c50  61 73 65 22 0d 07 bc 11  4c 44 52 20 20 20 20 20  |ase"....LDR     |
00000c60  53 50 2c 73 70 0d 07 c6  15 4c 44 52 20 20 20 20  |SP,sp....LDR    |
00000c70  20 4c 49 4e 4b 2c 6c 69  6e 6b 0d 07 d0 12 4d 4f  | LINK,link....MO|
00000c80  56 53 20 20 20 20 50 43  2c 52 31 34 0d 07 da 04  |VS    PC,R14....|
00000c90  0d 07 e4 1c 2e 68 69 73  63 72 65 65 6e 20 45 51  |.....hiscreen EQ|
00000ca0  55 44 20 68 69 73 63 72  65 65 6e 25 0d 07 ee 1e  |UD hiscreen%....|
00000cb0  2e 78 70 20 20 20 20 20  20 45 51 55 44 20 6d 69  |.xp      EQUD mi|
00000cc0  6e 58 2a 28 31 3c 3c 32  37 29 0d 07 f8 1e 2e 79  |nX*(1<<27).....y|
00000cd0  70 20 20 20 20 20 20 45  51 55 44 20 6d 69 6e 59  |p      EQUD minY|
00000ce0  2a 28 31 3c 3c 32 37 29  0d 08 02 27 2e 64 78 20  |*(1<<27)...'.dx |
00000cf0  20 20 20 20 20 45 51 55  44 20 28 73 69 7a 65 2f  |     EQUD (size/|
00000d00  70 69 78 65 6c 78 29 2a  28 31 3c 3c 32 37 29 0d  |pixelx)*(1<<27).|
00000d10  08 0c 27 2e 64 79 20 20  20 20 20 20 45 51 55 44  |..'.dy      EQUD|
00000d20  20 28 73 69 7a 65 2f 70  69 78 65 6c 79 29 2a 28  | (size/pixely)*(|
00000d30  31 3c 3c 32 37 29 0d 08  16 13 2e 78 63 6f 75 6e  |1<<27).....xcoun|
00000d40  74 20 20 45 51 55 44 20  30 0d 08 20 13 2e 79 63  |t  EQUD 0.. ..yc|
00000d50  6f 75 6e 74 20 20 45 51  55 44 20 30 0d 08 2a 13  |ount  EQUD 0..*.|
00000d60  2e 73 70 20 20 20 20 20  20 45 51 55 44 20 30 0d  |.sp      EQUD 0.|
00000d70  08 34 13 2e 6c 69 6e 6b  20 20 20 20 45 51 55 44  |.4..link    EQUD|
00000d80  20 30 0d 08 3e 13 2e 6b  65 79 66 6c 61 67 20 45  | 0..>..keyflag E|
00000d90  51 55 44 20 30 0d 08 48  13 2e 78 77 65 72 74 20  |QUD 0..H..xwert |
00000da0  20 20 45 51 55 44 20 30  0d 08 52 13 2e 79 77 65  |  EQUD 0..R..ywe|
00000db0  72 74 20 20 20 45 51 55  44 20 30 0d 08 5c 13 2e  |rt   EQUD 0..\..|
00000dc0  78 73 69 7a 65 20 20 20  45 51 55 44 20 30 0d 08  |xsize   EQUD 0..|
00000dd0  66 13 2e 79 73 69 7a 65  20 20 20 45 51 55 44 20  |f..ysize   EQUD |
00000de0  30 0d 08 70 04 0d 08 7a  0c 2e 70 61 6c 65 74 74  |0..p...z..palett|
00000df0  65 0d 08 84 0a 45 51 55  42 20 30 0d 08 8e 0a 45  |e....EQUB 0....E|
00000e00  51 55 42 20 38 0d 08 98  0a 45 51 55 42 20 34 0d  |QUB 8....EQUB 4.|
00000e10  08 a2 0b 45 51 55 42 20  31 32 0d 08 ac 0b 45 51  |...EQUB 12....EQ|
00000e20  55 42 20 31 36 0d 08 b6  0b 45 51 55 42 20 32 34  |UB 16....EQUB 24|
00000e30  0d 08 c0 0b 45 51 55 42  20 32 30 0d 08 ca 0b 45  |....EQUB 20....E|
00000e40  51 55 42 20 32 38 0d 08  d4 0b 45 51 55 42 20 32  |QUB 28....EQUB 2|
00000e50  39 0d 08 de 0b 45 51 55  42 20 33 30 0d 08 e8 0b  |9....EQUB 30....|
00000e60  45 51 55 42 20 33 31 0d  08 f2 0b 45 51 55 42 20  |EQUB 31....EQUB |
00000e70  36 30 0d 08 fc 0b 45 51  55 42 20 36 31 0d 09 06  |60....EQUB 61...|
00000e80  0b 45 51 55 42 20 36 32  0d 09 10 0b 45 51 55 42  |.EQUB 62....EQUB|
00000e90  20 36 33 0d 09 1a 0b 45  51 55 42 20 39 32 0d 09  | 63....EQUB 92..|
00000ea0  24 0b 45 51 55 42 20 39  33 0d 09 2e 0b 45 51 55  |$.EQUB 93....EQU|
00000eb0  42 20 39 34 0d 09 38 0b  45 51 55 42 20 39 35 0d  |B 94..8.EQUB 95.|
00000ec0  09 42 0c 45 51 55 42 20  31 32 34 0d 09 4c 0c 45  |.B.EQUB 124..L.E|
00000ed0  51 55 42 20 31 32 35 0d  09 56 0c 45 51 55 42 20  |QUB 125..V.EQUB |
00000ee0  31 32 36 0d 09 60 0c 45  51 55 42 20 31 32 37 0d  |126..`.EQUB 127.|
00000ef0  09 6a 0c 45 51 55 42 20  31 31 39 0d 09 74 0c 45  |.j.EQUB 119..t.E|
00000f00  51 55 42 20 31 32 33 0d  09 7e 0c 45 51 55 42 20  |QUB 123..~.EQUB |
00000f10  31 31 35 0d 09 88 0c 45  51 55 42 20 31 31 31 0d  |115....EQUB 111.|
00000f20  09 92 0c 45 51 55 42 20  31 30 33 0d 09 9c 0c 45  |...EQUB 103....E|
00000f30  51 55 42 20 31 30 37 0d  09 a6 0b 45 51 55 42 20  |QUB 107....EQUB |
00000f40  39 39 0d 09 b0 0c 45 51  55 42 20 32 32 37 0d 09  |99....EQUB 227..|
00000f50  ba 0c 45 51 55 42 20 32  32 36 0d 09 c4 0c 45 51  |..EQUB 226....EQ|
00000f60  55 42 20 32 32 35 0d 09  ce 0c 45 51 55 42 20 32  |UB 225....EQUB 2|
00000f70  32 34 0d 09 d8 0c 45 51  55 42 20 31 39 35 0d 09  |24....EQUB 195..|
00000f80  e2 0c 45 51 55 42 20 31  39 34 0d 09 ec 0c 45 51  |..EQUB 194....EQ|
00000f90  55 42 20 31 39 33 0d 09  f6 0c 45 51 55 42 20 31  |UB 193....EQUB 1|
00000fa0  39 32 0d 0a 00 0c 45 51  55 42 20 31 36 33 0d 0a  |92....EQUB 163..|
00000fb0  0a 0c 45 51 55 42 20 31  36 32 0d 0a 14 0c 45 51  |..EQUB 162....EQ|
00000fc0  55 42 20 31 36 31 0d 0a  1e 0c 45 51 55 42 20 31  |UB 161....EQUB 1|
00000fd0  36 30 0d 0a 28 0c 45 51  55 42 20 31 33 31 0d 0a  |60..(.EQUB 131..|
00000fe0  32 0c 45 51 55 42 20 31  33 30 0d 0a 3c 0c 45 51  |2.EQUB 130..<.EQ|
00000ff0  55 42 20 31 32 39 0d 0a  46 0c 45 51 55 42 20 31  |UB 129..F.EQUB 1|
00001000  32 38 0d 0a 50 0c 45 51  55 42 20 31 33 36 0d 0a  |28..P.EQUB 136..|
00001010  5a 0c 45 51 55 42 20 31  33 32 0d 0a 64 0c 45 51  |Z.EQUB 132..d.EQ|
00001020  55 42 20 31 34 30 0d 0a  6e 0c 45 51 55 42 20 31  |UB 140..n.EQUB 1|
00001030  34 34 0d 0a 78 0c 45 51  55 42 20 31 35 32 0d 0a  |44..x.EQUB 152..|
00001040  82 0c 45 51 55 42 20 31  34 38 0d 0a 8c 0c 45 51  |..EQUB 148....EQ|
00001050  55 42 20 31 35 36 0d 0a  96 0c 45 51 55 42 20 31  |UB 156....EQUB 1|
00001060  35 37 0d 0a a0 0c 45 51  55 42 20 31 35 38 0d 0a  |57....EQUB 158..|
00001070  aa 0c 45 51 55 42 20 31  35 39 0d 0a b4 0c 45 51  |..EQUB 159....EQ|
00001080  55 42 20 31 38 38 0d 0a  be 0c 45 51 55 42 20 31  |UB 188....EQUB 1|
00001090  38 39 0d 0a c8 0c 45 51  55 42 20 31 39 30 0d 0a  |89....EQUB 190..|
000010a0  d2 0c 45 51 55 42 20 31  39 31 0d 0a dc 0c 45 51  |..EQUB 191....EQ|
000010b0  55 42 20 32 32 30 0d 0a  e6 0c 45 51 55 42 20 32  |UB 220....EQUB 2|
000010c0  32 31 0d 0a f0 0c 45 51  55 42 20 32 32 32 0d 0a  |21....EQUB 222..|
000010d0  fa 0c 45 51 55 42 20 32  32 33 0d 0b 04 0c 45 51  |..EQUB 223....EQ|
000010e0  55 42 20 32 35 32 0d 0b  0e 0c 45 51 55 42 20 32  |UB 252....EQUB 2|
000010f0  35 33 0d 0b 18 0c 45 51  55 42 20 32 35 34 0d 0b  |53....EQUB 254..|
00001100  22 0c 45 51 55 42 20 32  35 35 0d 0b 2c 04 0d 0b  |".EQUB 255..,...|
00001110  36 0a 2e 66 72 61 6d 65  0d 0b 40 04 0d 0b 4a 14  |6..frame..@...J.|
00001120  4c 44 52 20 20 20 20 20  52 30 2c 79 73 69 7a 65  |LDR     R0,ysize|
00001130  0d 0b 54 14 4c 44 52 20  20 20 20 20 52 31 2c 79  |..T.LDR     R1,y|
00001140  77 65 72 74 0d 0b 5e 19  52 53 42 20 20 20 20 20  |wert..^.RSB     |
00001150  52 31 2c 52 31 2c 23 70  69 78 65 6c 79 0d 0b 68  |R1,R1,#pixely..h|
00001160  14 53 55 42 20 20 20 20  20 52 31 2c 52 31 2c 52  |.SUB     R1,R1,R|
00001170  30 0d 0b 72 14 53 55 42  20 20 20 20 20 52 31 2c  |0..r.SUB     R1,|
00001180  52 31 2c 23 31 0d 0b 7c  14 4d 4f 56 20 20 20 20  |R1,#1..|.MOV    |
00001190  20 52 30 2c 23 72 65 73  78 0d 0b 86 14 4d 55 4c  | R0,#resx....MUL|
000011a0  20 20 20 20 20 52 30 2c  52 31 2c 52 30 0d 0b 90  |     R0,R1,R0...|
000011b0  14 4c 44 52 20 20 20 20  20 52 31 2c 78 77 65 72  |.LDR     R1,xwer|
000011c0  74 0d 0b 9a 14 41 44 44  20 20 20 20 20 52 30 2c  |t....ADD     R0,|
000011d0  52 30 2c 52 31 0d 0b a4  17 4c 44 52 20 20 20 20  |R0,R1....LDR    |
000011e0  20 52 31 2c 68 69 73 63  72 65 65 6e 0d 0b ae 14  | R1,hiscreen....|
000011f0  41 44 44 20 20 20 20 20  52 31 2c 52 30 2c 52 31  |ADD     R1,R0,R1|
00001200  0d 0b b8 14 4c 44 52 20  20 20 20 20 52 32 2c 78  |....LDR     R2,x|
00001210  73 69 7a 65 0d 0b c2 11  4d 4f 56 20 20 20 20 20  |size....MOV     |
00001220  52 33 2c 52 32 0d 0b cc  04 0d 0b d6 0f 2e 62 6c  |R3,R2.........bl|
00001230  6f 63 6b 6c 6f 6f 70 31  0d 0b e0 16 4c 44 52 42  |ockloop1....LDRB|
00001240  20 20 20 20 52 30 2c 5b  52 31 2c 52 32 5d 0d 0b  |    R0,[R1,R2]..|
00001250  ea 14 82 20 20 20 20 20  52 30 2c 52 30 2c 23 32  |...     R0,R0,#2|
00001260  35 35 0d 0b f4 16 53 54  52 42 20 20 20 20 52 30  |55....STRB    R0|
00001270  2c 5b 52 31 2c 52 32 5d  0d 0b fe 14 53 55 42 53  |,[R1,R2]....SUBS|
00001280  20 20 20 20 52 32 2c 52  32 2c 23 31 0d 0c 08 16  |    R2,R2,#1....|
00001290  42 50 4c 20 20 20 20 20  62 6c 6f 63 6b 6c 6f 6f  |BPL     blockloo|
000012a0  70 31 0d 0c 12 04 0d 0c  1c 14 4c 44 52 20 20 20  |p1........LDR   |
000012b0  20 20 52 32 2c 79 73 69  7a 65 0d 0c 26 0f 2e 62  |  R2,ysize..&..b|
000012c0  6c 6f 63 6b 6c 6f 6f 70  32 0d 0c 30 10 4c 44 52  |lockloop2..0.LDR|
000012d0  42 20 52 30 2c 5b 52 31  5d 0d 0c 3a 11 82 20 20  |B R0,[R1]..:..  |
000012e0  52 30 2c 52 30 2c 23 32  35 35 0d 0c 44 10 53 54  |R0,R0,#255..D.ST|
000012f0  52 42 20 52 30 2c 5b 52  31 5d 0d 0c 4e 13 4c 44  |RB R0,[R1]..N.LD|
00001300  52 42 20 52 30 2c 5b 52  31 2c 52 33 5d 0d 0c 58  |RB R0,[R1,R3]..X|
00001310  11 82 20 20 52 30 2c 52  30 2c 23 32 35 35 0d 0c  |..  R0,R0,#255..|
00001320  62 13 53 54 52 42 20 52  30 2c 5b 52 31 2c 52 33  |b.STRB R0,[R1,R3|
00001330  5d 0d 0c 6c 14 41 44 44  20 20 52 31 2c 52 31 2c  |]..l.ADD  R1,R1,|
00001340  23 72 65 73 78 0d 0c 76  11 53 55 42 53 20 52 32  |#resx..v.SUBS R2|
00001350  2c 52 32 2c 23 31 0d 0c  80 13 42 50 4c 20 20 62  |,R2,#1....BPL  b|
00001360  6c 6f 63 6b 6c 6f 6f 70  32 0d 0c 8a 04 0d 0c 94  |lockloop2.......|
00001370  14 53 55 42 20 20 52 31  2c 52 31 2c 23 72 65 73  |.SUB  R1,R1,#res|
00001380  78 0d 0c 9e 0f 2e 62 6c  6f 63 6b 6c 6f 6f 70 33  |x.....blockloop3|
00001390  0d 0c a8 13 4c 44 52 42  20 52 30 2c 5b 52 31 2c  |....LDRB R0,[R1,|
000013a0  52 33 5d 0d 0c b2 11 82  20 20 52 30 2c 52 30 2c  |R3].....  R0,R0,|
000013b0  23 32 35 35 0d 0c bc 13  53 54 52 42 20 52 30 2c  |#255....STRB R0,|
000013c0  5b 52 31 2c 52 33 5d 0d  0c c6 11 53 55 42 53 20  |[R1,R3]....SUBS |
000013d0  52 33 2c 52 33 2c 23 31  0d 0c d0 13 42 50 4c 20  |R3,R3,#1....BPL |
000013e0  20 62 6c 6f 63 6b 6c 6f  6f 70 33 0d 0c da 04 0d  | blockloop3.....|
000013f0  0c e4 10 4d 4f 56 20 20  50 43 2c 4c 49 4e 4b 0d  |...MOV  PC,LINK.|
00001400  0c ee 04 0d 0c f8 04 0d  0d 02 04 0d 0d 0c 05 5d  |...............]|
00001410  0d 0d 16 05 ed 0d 0d 20  05 e1 0d 0d 2a 05 3a 0d  |....... ....*.:.|
00001420  0d 34 1d dd a4 6d 75 6c  74 69 28 72 65 73 75 6c  |.4...multi(resul|
00001430  74 2c 6e 75 6d 31 2c 6e  75 6d 32 29 0d 0d 3e 0d  |t,num1,num2)..>.|
00001440  e7 20 66 61 73 74 25 20  8c 0d 0d 48 1e f2 6d 75  |. fast% ...H..mu|
00001450  6c 74 69 31 36 28 72 65  73 75 6c 74 2c 6e 75 6d  |lti16(result,num|
00001460  31 2c 6e 75 6d 32 29 0d  0d 52 05 cc 0d 0d 5c 1e  |1,num2)..R....\.|
00001470  f2 6d 75 6c 74 69 33 32  28 72 65 73 75 6c 74 2c  |.multi32(result,|
00001480  6e 75 6d 31 2c 6e 75 6d  32 29 0d 0d 66 05 cd 0d  |num1,num2)..f...|
00001490  0d 70 07 3d 22 22 0d 0d  7a 05 3a 0d 0d 84 20 dd  |.p.=""..z.:... .|
000014a0  f2 6d 75 6c 74 69 33 32  28 52 65 73 48 69 67 68  |.multi32(ResHigh|
000014b0  2c 6e 75 6d 31 2c 6e 75  6d 32 29 0d 0d 8e 0a 6c  |,num1,num2)....l|
000014c0  68 73 3d 31 30 0d 0d 98  0a 72 68 73 3d 31 31 0d  |hs=10....rhs=11.|
000014d0  0d a2 0b 77 6f 72 6b 3d  31 32 0d 0d ac 0d 52 65  |...work=12....Re|
000014e0  73 4c 6f 77 3d 31 33 0d  0d b6 0b 73 69 67 6e 3d  |sLow=13....sign=|
000014f0  31 34 0d 0d c0 05 3a 0d  0d ca 0e 5b 4f 50 54 20  |14....:....[OPT |
00001500  70 61 73 73 25 0d 0d d4  10 4d 4f 56 20 6c 68 73  |pass%....MOV lhs|
00001510  2c 6e 75 6d 31 0d 0d de  10 4d 4f 56 20 72 68 73  |,num1....MOV rhs|
00001520  2c 6e 75 6d 32 0d 0d e8  12 82 20 73 69 67 6e 2c  |,num2..... sign,|
00001530  6c 68 73 2c 72 68 73 0d  0d f2 16 54 53 54 20 6c  |lhs,rhs....TST l|
00001540  68 73 2c 23 26 38 30 30  30 30 30 30 30 0d 0d fc  |hs,#&80000000...|
00001550  14 52 53 42 4e 45 20 6c  68 73 2c 6c 68 73 2c 23  |.RSBNE lhs,lhs,#|
00001560  30 0d 0e 06 16 54 53 54  20 72 68 73 2c 23 26 38  |0....TST rhs,#&8|
00001570  30 30 30 30 30 30 30 0d  0e 10 14 52 53 42 4e 45  |0000000....RSBNE|
00001580  20 72 68 73 2c 72 68 73  2c 23 30 0d 0e 1a 19 4d  | rhs,rhs,#0....M|
00001590  4f 56 20 77 6f 72 6b 2c  6c 68 73 2c 4c 53 52 20  |OV work,lhs,LSR |
000015a0  23 26 31 30 0d 0e 24 1c  4d 4f 56 20 52 65 73 48  |#&10..$.MOV ResH|
000015b0  69 67 68 2c 72 68 73 2c  4c 53 52 20 23 26 31 30  |igh,rhs,LSR #&10|
000015c0  0d 0e 2e 1d 42 49 43 20  6c 68 73 2c 6c 68 73 2c  |....BIC lhs,lhs,|
000015d0  77 6f 72 6b 2c 4c 53 4c  20 23 26 31 30 0d 0e 38  |work,LSL #&10..8|
000015e0  21 42 49 43 20 72 68 73  2c 72 68 73 2c 52 65 73  |!BIC rhs,rhs,Res|
000015f0  48 69 67 68 2c 20 4c 53  4c 20 23 26 31 30 0d 0e  |High, LSL #&10..|
00001600  42 16 4d 55 4c 20 52 65  73 4c 6f 77 2c 6c 68 73  |B.MUL ResLow,lhs|
00001610  2c 72 68 73 0d 0e 4c 14  4d 55 4c 20 72 68 73 2c  |,rhs..L.MUL rhs,|
00001620  77 6f 72 6b 2c 72 68 73  0d 0e 56 17 4d 55 4c 20  |work,rhs..V.MUL |
00001630  6c 68 73 2c 52 65 73 48  69 67 68 2c 6c 68 73 0d  |lhs,ResHigh,lhs.|
00001640  0e 60 1e 4d 55 4c 20 52  65 73 48 69 67 68 2c 20  |.`.MUL ResHigh, |
00001650  77 6f 72 6b 2c 20 52 65  73 48 69 67 68 0d 0e 6a  |work, ResHigh..j|
00001660  14 41 44 44 53 20 6c 68  73 2c 72 68 73 2c 6c 68  |.ADDS lhs,rhs,lh|
00001670  73 0d 0e 74 23 41 44 44  43 53 20 52 65 73 48 69  |s..t#ADDCS ResHi|
00001680  67 68 2c 20 52 65 73 48  69 67 68 2c 20 23 26 31  |gh, ResHigh, #&1|
00001690  30 30 30 30 0d 0e 7e 25  41 44 44 53 20 52 65 73  |0000..~%ADDS Res|
000016a0  4c 6f 77 2c 52 65 73 4c  6f 77 2c 20 6c 68 73 2c  |Low,ResLow, lhs,|
000016b0  20 4c 53 4c 20 23 26 31  30 0d 0e 88 26 41 44 43  | LSL #&10...&ADC|
000016c0  20 52 65 73 48 69 67 68  2c 20 52 65 73 48 69 67  | ResHigh, ResHig|
000016d0  68 2c 6c 68 73 2c 20 4c  53 52 20 23 26 31 30 0d  |h,lhs, LSR #&10.|
000016e0  0e 92 1f 4d 4f 56 20 52  65 73 4c 6f 77 2c 20 52  |...MOV ResLow, R|
000016f0  65 73 4c 6f 77 2c 20 4c  53 52 20 23 32 37 0d 0e  |esLow, LSR #27..|
00001700  9c 18 54 53 54 20 73 69  67 6e 2c 20 23 26 38 30  |..TST sign, #&80|
00001710  30 30 30 30 30 30 0d 0e  a6 1c 52 53 42 4e 45 20  |000000....RSBNE |
00001720  52 65 73 4c 6f 77 2c 20  52 65 73 4c 6f 77 2c 20  |ResLow, ResLow, |
00001730  23 30 0d 0e b0 1e 52 53  42 4e 45 20 52 65 73 48  |#0....RSBNE ResH|
00001740  69 67 68 2c 20 52 65 73  48 69 67 68 2c 20 23 30  |igh, ResHigh, #0|
00001750  0d 0e ba 29 41 44 44 53  20 52 65 73 48 69 67 68  |...)ADDS ResHigh|
00001760  2c 20 52 65 73 4c 6f 77  2c 20 52 65 73 48 69 67  |, ResLow, ResHig|
00001770  68 2c 20 4c 53 4c 20 23  35 0d 0e c4 05 5d 0d 0e  |h, LSL #5....]..|
00001780  ce 05 e1 0d 0e d8 05 3a  0d 0e e2 20 dd f2 6d 75  |.......:... ..mu|
00001790  6c 74 69 31 36 28 52 65  73 48 69 67 68 2c 6e 75  |lti16(ResHigh,nu|
000017a0  6d 31 2c 6e 75 6d 32 29  0d 0e ec 0a 6c 68 73 3d  |m1,num2)....lhs=|
000017b0  31 30 0d 0e f6 0a 72 68  73 3d 31 31 0d 0f 00 0e  |10....rhs=11....|
000017c0  5b 4f 50 54 20 70 61 73  73 25 0d 0f 0a 18 4d 4f  |[OPT pass%....MO|
000017d0  56 20 6c 68 73 2c 6e 75  6d 31 2c 41 53 52 20 23  |V lhs,num1,ASR #|
000017e0  26 45 0d 0f 14 18 4d 4f  56 20 72 68 73 2c 6e 75  |&E....MOV rhs,nu|
000017f0  6d 32 2c 41 53 52 20 23  26 45 0d 0f 1e 17 4d 55  |m2,ASR #&E....MU|
00001800  4c 20 52 65 73 48 69 67  68 2c 6c 68 73 2c 72 68  |L ResHigh,lhs,rh|
00001810  73 0d 0f 28 1f 4d 4f 56  53 20 52 65 73 48 69 67  |s..(.MOVS ResHig|
00001820  68 2c 52 65 73 48 69 67  68 2c 4c 53 4c 20 23 31  |h,ResHigh,LSL #1|
00001830  0d 0f 32 05 5d 0d 0f 3c  05 e1 0d 0f 46 04 0d ff  |..2.]..<....F...|
00001840