Home » Archimedes archive » Acorn User » AU 1996-01.adf » Regulars » StarInfo/Vlietinck/!Roto/!RunimageI

StarInfo/Vlietinck/!Roto/!RunimageI

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 1996-01.adf » Regulars
Filename: StarInfo/Vlietinck/!Roto/!RunimageI
Read OK:
File size: 0BB7 bytes
Load address: 0000
Exec address: 0000
File contents
   10REM> Roto
   20REM> (C) Jan Vlietinck
   21REM vlietin@intec.rug.ac.be
   40MODE13+128:MODE 13:OFF
   41ON ERROR:END
   50SC=7:DM=2^SC
   60DIM IMAGE DM*DM
   70PROCASS
   80PROCBUILDIMAGE
   90PROCMAIN
  100END
  110
  120DEF PROCMAIN
  130M%=2
  140REPEAT
  150R%=2^(36-SC)
  160ST=0.5
  170H=0
  180REPEAT
  190H+=ST
  200SYS "OS_Byte",&70,1
  210!DXD=COS(RAD(H))*R%
  220!DYD=SIN(RAD(H))*R%
  230R%=R%/1.02
  240CALL set
  250CALL scale_rotate
  260SYS "OS_Byte",&71,1:M%=M% EOR3
  270UNTIL H>120
  280REPEAT
  290H-=4*ST
  300SYS "OS_Byte",&70,1
  310!DXD=COS(RAD(H))*R%
  320!DYD=SIN(RAD(H))*R%
  330R%=R%*(1.02)^4
  340CALL set
  350CALL scale_rotate
  360SYS "OS_Byte",&71,1:M%=M% EOR3
  370UNTIL H<0
  380UNTIL 0
  390ENDPROC
  400
  410DEF PROCBUILDIMAGE
  420*SLOAD <Roto$Dir>.screen
  430*SCHOOSE screen
  440PLOT &ED,0,-8
  450CALL set
  460CALL get
  470CLS
  480ENDPROC
  490
  500DEF PROCASS
  510DIM Q% 4000
  520X=0:Y=1:DX=2:DY=3:C=4:D=5:S=6:T=7:SCR=8:BMP=9:XM=10:YM=11:U=12
  530FOR PASS=0 TO 2 STEP 2
  540P%=Q%
  550[OPT PASS
  560.SCREEND EQUD 148:EQUD -1
  570.SCREEN EQUD 0
  580.DXD EQUD 0
  590.DYD EQUD 0
  600.XD EQUD  DM << (32-SC-1)
  610.YD EQUD  DM << (32-SC-1)
  620.BMPD EQUD IMAGE
  630
  640.set
  650ADR R0,SCREEND
  660ADR R1,SCREEN
  670SWI "OS_ReadVduVariables"
  680MOV PC,R14
  690
  700.get
  710LDR SCR,SCREEN
  720ADD SCR,SCR,#320*256
  730SUB SCR,SCR,#320
  740LDR BMP,BMPD
  750MOV D,#DM
  760.GLOOPY
  770MOV C,#DM
  780.GLOOPX
  790LDR T,[SCR],#4
  800STR T,[BMP],#4
  810SUBS C,C,#4
  820BNE GLOOPX
  830SUB SCR,SCR,#DM
  840SUB SCR,SCR,#320
  850SUBS D,D,#1
  860BNE GLOOPY
  870MOV PC,R14
  880
  890.interlaceD EQUD 0
  900.scale_rotate
  910LDR XM,XD
  920LDR YM,YD
  930LDR SCR,SCREEN
  940LDR DX,DXD
  950LDR DY,DYD
  960LDR BMP,BMPD
  970MOV S,#128
  980MOV T,#160
  990MOV X,DX,ASR #8
 1000MOV Y,DY,ASR #8
 1010MUL C,Y,S
 1020SUB XM,XM,C,LSL #8
 1030MUL C,X,T
 1040SUB XM,XM,C,LSL #8
 1050MUL C,X,S
 1060ADD YM,YM,C,LSL #8
 1070MUL C,Y,T
 1080SUB YM,YM,C,LSL #8
 1090LDR T,interlaceD:EOR T,T,#1:STR T,interlaceD
 1100CMP T,#0
 1110ADDEQ SCR,SCR,#320
 1120ADDEQ XM,XM,DY
 1130SUBEQ YM,YM,DX
 1140MOV D,#256
 1150.LOOPY
 1160MOV X,XM
 1170MOV Y,YM
 1180ADD XM,XM,DY,LSL #1
 1190SUB YM,YM,DX,LSL #1
 1200MOV C,#320
 1210.LOOPX
 1220AND T,Y,#(DM-1)<<(32-SC)
 1230ADD T,T,X,LSR #SC
 1240LDRB S,[BMP,T,LSR #32-2*SC]
 1250ADD X,X,DX
 1260ADD Y,Y,DY
 1270AND T,Y,#(DM-1)<<(32-SC)
 1280ADD T,T,X,LSR #SC
 1290LDRB T,[BMP,T,LSR #32-2*SC]
 1300ADD S,S,T,LSL #8
 1310ADD X,X,DX
 1320ADD Y,Y,DY
 1330AND T,Y,#(DM-1)<<(32-SC)
 1340ADD T,T,X,LSR #SC
 1350LDRB T,[BMP,T,LSR #32-2*SC]
 1360ADD S,S,T,LSL #16
 1370ADD X,X,DX
 1380ADD Y,Y,DY
 1390AND T,Y,#(DM-1)<<(32-SC)
 1400ADD T,T,X,LSR #SC
 1410LDRB T,[BMP,T,LSR #32-2*SC]
 1420ADD S,S,T,LSL #24
 1430ADD X,X,DX
 1440ADD Y,Y,DY
 1450AND T,Y,#(DM-1)<<(32-SC)
 1460ADD T,T,X,LSR #SC
 1470LDRB U,[BMP,T,LSR #32-2*SC]
 1480ADD X,X,DX
 1490ADD Y,Y,DY
 1500AND T,Y,#(DM-1)<<(32-SC)
 1510ADD T,T,X,LSR #SC
 1520LDRB T,[BMP,T,LSR #32-2*SC]
 1530ADD U,U,T,LSL #8
 1540ADD X,X,DX
 1550ADD Y,Y,DY
 1560AND T,Y,#(DM-1)<<(32-SC)
 1570ADD T,T,X,LSR #SC
 1580LDRB T,[BMP,T,LSR #32-2*SC]
 1590ADD U,U,T,LSL #16
 1600ADD X,X,DX
 1610ADD Y,Y,DY
 1620AND T,Y,#(DM-1)<<(32-SC)
 1630ADD T,T,X,LSR #SC
 1640LDRB T,[BMP,T,LSR #32-2*SC]
 1650ADD U,U,T,LSL #24
 1660ADD X,X,DX
 1670ADD Y,Y,DY
 1680STMIA (SCR)!,{S,U}
 1690SUBS C,C,#8
 1700BNE LOOPX
 1710ADD SCR,SCR,#320
 1720SUBS D,D,#2
 1730BNE LOOPY
 1740MOV PC,R14
 1750]
 1760NEXT
 1770ENDPROC

�> Roto
�> (C) Jan Vlietinck
� vlietin@intec.rug.ac.be
(�13+128:� 13:�
)	� �:�
2SC=7:DM=2^SC
<� IMAGE DM*DM
F�ASS
P�BUILDIMAGE
Z	�MAIN
d�
n
x� �MAIN
�M%=2
��
�R%=2^(36-SC)
�
ST=0.5
�H=0
��
�	H+=ST
�ș "OS_Byte",&70,1
�!DXD=�(�(H))*R%
�!DYD=�(�(H))*R%
�R%=R%/1.02
�	� set
�� scale_rotate
ș "OS_Byte",&71,1:M%=M% �3
� H>120
�
"H-=4*ST
,ș "OS_Byte",&70,1
6!DXD=�(�(H))*R%
@!DYD=�(�(H))*R%
JR%=R%*(1.02)^4
T	� set
^� scale_rotate
hș "OS_Byte",&71,1:M%=M% �3
r	� H<0
|� 0
��
�
�� �BUILDIMAGE
�*SLOAD <Roto$Dir>.screen
�*SCHOOSE screen
�� &ED,0,-8
�	� set
�	� get
��
��
�
�
� �ASS
�
� Q% 4000
BX=0:Y=1:DX=2:DY=3:C=4:D=5:S=6:T=7:SCR=8:BMP=9:XM=10:YM=11:U=12
� PASS=0 � 2 � 2
	P%=Q%
&
[OPT PASS
0.SCREEND EQUD 148:EQUD -1
:.SCREEN EQUD 0
D.DXD EQUD 0
N.DYD EQUD 0
X.XD EQUD  DM << (32-SC-1)
b.YD EQUD  DM << (32-SC-1)
l.BMPD EQUD IMAGE
v
�.set
�ADR R0,SCREEND
�ADR R1,SCREEN
�SWI "OS_ReadVduVariables"
�MOV PC,R14
�
�.get
�LDR SCR,SCREEN
�ADD SCR,SCR,#320*256
�SUB SCR,SCR,#320
�LDR BMP,BMPD
�
MOV D,#DM
�.GLOOPY

MOV C,#DM
.GLOOPX
LDR T,[SCR],#4
 STR T,[BMP],#4
*SUBS C,C,#4
4BNE GLOOPX
>SUB SCR,SCR,#DM
HSUB SCR,SCR,#320
RSUBS D,D,#1
\BNE GLOOPY
fMOV PC,R14
p
z.interlaceD EQUD 0
�.scale_rotate
�
LDR XM,XD
�
LDR YM,YD
�LDR SCR,SCREEN
�LDR DX,DXD
�LDR DY,DYD
�LDR BMP,BMPD
�MOV S,#128
�MOV T,#160
�MOV X,DX,ASR #8
�MOV Y,DY,ASR #8
�
MUL C,Y,S
�SUB XM,XM,C,LSL #8

MUL C,X,T
SUB XM,XM,C,LSL #8

MUL C,X,S
$ADD YM,YM,C,LSL #8
.
MUL C,Y,T
8SUB YM,YM,C,LSL #8
B.LDR T,interlaceD:� T,T,#1:STR T,interlaceD
LCMP T,#0
VADDEQ SCR,SCR,#320
`ADDEQ XM,XM,DY
jSUBEQ YM,YM,DX
tMOV D,#256
~
.LOOPY
�MOV X,XM
�MOV Y,YM
�ADD XM,XM,DY,LSL #1
�SUB YM,YM,DX,LSL #1
�MOV C,#320
�
.LOOPX
�� T,Y,#(DM-1)<<(32-SC)
�ADD T,T,X,LSR #SC
�LDRB S,[BMP,T,LSR #32-2*SC]
�ADD X,X,DX
�ADD Y,Y,DY
�� T,Y,#(DM-1)<<(32-SC)
ADD T,T,X,LSR #SC

LDRB T,[BMP,T,LSR #32-2*SC]
ADD S,S,T,LSL #8
ADD X,X,DX
(ADD Y,Y,DY
2� T,Y,#(DM-1)<<(32-SC)
<ADD T,T,X,LSR #SC
FLDRB T,[BMP,T,LSR #32-2*SC]
PADD S,S,T,LSL #16
ZADD X,X,DX
dADD Y,Y,DY
n� T,Y,#(DM-1)<<(32-SC)
xADD T,T,X,LSR #SC
�LDRB T,[BMP,T,LSR #32-2*SC]
�ADD S,S,T,LSL #24
�ADD X,X,DX
�ADD Y,Y,DY
�� T,Y,#(DM-1)<<(32-SC)
�ADD T,T,X,LSR #SC
�LDRB U,[BMP,T,LSR #32-2*SC]
�ADD X,X,DX
�ADD Y,Y,DY
�� T,Y,#(DM-1)<<(32-SC)
�ADD T,T,X,LSR #SC
�LDRB T,[BMP,T,LSR #32-2*SC]
�ADD U,U,T,LSL #8
ADD X,X,DX
ADD Y,Y,DY
� T,Y,#(DM-1)<<(32-SC)
"ADD T,T,X,LSR #SC
,LDRB T,[BMP,T,LSR #32-2*SC]
6ADD U,U,T,LSL #16
@ADD X,X,DX
JADD Y,Y,DY
T� T,Y,#(DM-1)<<(32-SC)
^ADD T,T,X,LSR #SC
hLDRB T,[BMP,T,LSR #32-2*SC]
rADD U,U,T,LSL #24
|ADD X,X,DX
�ADD Y,Y,DY
�STMIA (SCR)!,{S,U}
�SUBS C,C,#8
�
BNE LOOPX
�ADD SCR,SCR,#320
�SUBS D,D,#2
�
BNE LOOPY
�MOV PC,R14
�]
��
��
�
00000000  0d 00 0a 0b f4 3e 20 52  6f 74 6f 0d 00 14 18 f4  |.....> Roto.....|
00000010  3e 20 28 43 29 20 4a 61  6e 20 56 6c 69 65 74 69  |> (C) Jan Vlieti|
00000020  6e 63 6b 0d 00 15 1d f4  20 76 6c 69 65 74 69 6e  |nck..... vlietin|
00000030  40 69 6e 74 65 63 2e 72  75 67 2e 61 63 2e 62 65  |@intec.rug.ac.be|
00000040  0d 00 28 12 eb 31 33 2b  31 32 38 3a eb 20 31 33  |..(..13+128:. 13|
00000050  3a 87 0d 00 29 09 ee 20  85 3a e0 0d 00 32 10 53  |:...).. .:...2.S|
00000060  43 3d 37 3a 44 4d 3d 32  5e 53 43 0d 00 3c 11 de  |C=7:DM=2^SC..<..|
00000070  20 49 4d 41 47 45 20 44  4d 2a 44 4d 0d 00 46 08  | IMAGE DM*DM..F.|
00000080  f2 41 53 53 0d 00 50 0f  f2 42 55 49 4c 44 49 4d  |.ASS..P..BUILDIM|
00000090  41 47 45 0d 00 5a 09 f2  4d 41 49 4e 0d 00 64 05  |AGE..Z..MAIN..d.|
000000a0  e0 0d 00 6e 04 0d 00 78  0b dd 20 f2 4d 41 49 4e  |...n...x.. .MAIN|
000000b0  0d 00 82 08 4d 25 3d 32  0d 00 8c 05 f5 0d 00 96  |....M%=2........|
000000c0  10 52 25 3d 32 5e 28 33  36 2d 53 43 29 0d 00 a0  |.R%=2^(36-SC)...|
000000d0  0a 53 54 3d 30 2e 35 0d  00 aa 07 48 3d 30 0d 00  |.ST=0.5....H=0..|
000000e0  b4 05 f5 0d 00 be 09 48  2b 3d 53 54 0d 00 c8 16  |.......H+=ST....|
000000f0  c8 99 20 22 4f 53 5f 42  79 74 65 22 2c 26 37 30  |.. "OS_Byte",&70|
00000100  2c 31 0d 00 d2 13 21 44  58 44 3d 9b 28 b2 28 48  |,1....!DXD=.(.(H|
00000110  29 29 2a 52 25 0d 00 dc  13 21 44 59 44 3d b5 28  |))*R%....!DYD=.(|
00000120  b2 28 48 29 29 2a 52 25  0d 00 e6 0e 52 25 3d 52  |.(H))*R%....R%=R|
00000130  25 2f 31 2e 30 32 0d 00  f0 09 d6 20 73 65 74 0d  |%/1.02..... set.|
00000140  00 fa 12 d6 20 73 63 61  6c 65 5f 72 6f 74 61 74  |.... scale_rotat|
00000150  65 0d 01 04 1f c8 99 20  22 4f 53 5f 42 79 74 65  |e...... "OS_Byte|
00000160  22 2c 26 37 31 2c 31 3a  4d 25 3d 4d 25 20 82 33  |",&71,1:M%=M% .3|
00000170  0d 01 0e 0b fd 20 48 3e  31 32 30 0d 01 18 05 f5  |..... H>120.....|
00000180  0d 01 22 0b 48 2d 3d 34  2a 53 54 0d 01 2c 16 c8  |..".H-=4*ST..,..|
00000190  99 20 22 4f 53 5f 42 79  74 65 22 2c 26 37 30 2c  |. "OS_Byte",&70,|
000001a0  31 0d 01 36 13 21 44 58  44 3d 9b 28 b2 28 48 29  |1..6.!DXD=.(.(H)|
000001b0  29 2a 52 25 0d 01 40 13  21 44 59 44 3d b5 28 b2  |)*R%..@.!DYD=.(.|
000001c0  28 48 29 29 2a 52 25 0d  01 4a 12 52 25 3d 52 25  |(H))*R%..J.R%=R%|
000001d0  2a 28 31 2e 30 32 29 5e  34 0d 01 54 09 d6 20 73  |*(1.02)^4..T.. s|
000001e0  65 74 0d 01 5e 12 d6 20  73 63 61 6c 65 5f 72 6f  |et..^.. scale_ro|
000001f0  74 61 74 65 0d 01 68 1f  c8 99 20 22 4f 53 5f 42  |tate..h... "OS_B|
00000200  79 74 65 22 2c 26 37 31  2c 31 3a 4d 25 3d 4d 25  |yte",&71,1:M%=M%|
00000210  20 82 33 0d 01 72 09 fd  20 48 3c 30 0d 01 7c 07  | .3..r.. H<0..|.|
00000220  fd 20 30 0d 01 86 05 e1  0d 01 90 04 0d 01 9a 11  |. 0.............|
00000230  dd 20 f2 42 55 49 4c 44  49 4d 41 47 45 0d 01 a4  |. .BUILDIMAGE...|
00000240  1c 2a 53 4c 4f 41 44 20  3c 52 6f 74 6f 24 44 69  |.*SLOAD <Roto$Di|
00000250  72 3e 2e 73 63 72 65 65  6e 0d 01 ae 13 2a 53 43  |r>.screen....*SC|
00000260  48 4f 4f 53 45 20 73 63  72 65 65 6e 0d 01 b8 0e  |HOOSE screen....|
00000270  f0 20 26 45 44 2c 30 2c  2d 38 0d 01 c2 09 d6 20  |. &ED,0,-8..... |
00000280  73 65 74 0d 01 cc 09 d6  20 67 65 74 0d 01 d6 05  |set..... get....|
00000290  db 0d 01 e0 05 e1 0d 01  ea 04 0d 01 f4 0a dd 20  |............... |
000002a0  f2 41 53 53 0d 01 fe 0d  de 20 51 25 20 34 30 30  |.ASS..... Q% 400|
000002b0  30 0d 02 08 42 58 3d 30  3a 59 3d 31 3a 44 58 3d  |0...BX=0:Y=1:DX=|
000002c0  32 3a 44 59 3d 33 3a 43  3d 34 3a 44 3d 35 3a 53  |2:DY=3:C=4:D=5:S|
000002d0  3d 36 3a 54 3d 37 3a 53  43 52 3d 38 3a 42 4d 50  |=6:T=7:SCR=8:BMP|
000002e0  3d 39 3a 58 4d 3d 31 30  3a 59 4d 3d 31 31 3a 55  |=9:XM=10:YM=11:U|
000002f0  3d 31 32 0d 02 12 14 e3  20 50 41 53 53 3d 30 20  |=12..... PASS=0 |
00000300  b8 20 32 20 88 20 32 0d  02 1c 09 50 25 3d 51 25  |. 2 . 2....P%=Q%|
00000310  0d 02 26 0d 5b 4f 50 54  20 50 41 53 53 0d 02 30  |..&.[OPT PASS..0|
00000320  1d 2e 53 43 52 45 45 4e  44 20 45 51 55 44 20 31  |..SCREEND EQUD 1|
00000330  34 38 3a 45 51 55 44 20  2d 31 0d 02 3a 12 2e 53  |48:EQUD -1..:..S|
00000340  43 52 45 45 4e 20 45 51  55 44 20 30 0d 02 44 0f  |CREEN EQUD 0..D.|
00000350  2e 44 58 44 20 45 51 55  44 20 30 0d 02 4e 0f 2e  |.DXD EQUD 0..N..|
00000360  44 59 44 20 45 51 55 44  20 30 0d 02 58 1d 2e 58  |DYD EQUD 0..X..X|
00000370  44 20 45 51 55 44 20 20  44 4d 20 3c 3c 20 28 33  |D EQUD  DM << (3|
00000380  32 2d 53 43 2d 31 29 0d  02 62 1d 2e 59 44 20 45  |2-SC-1)..b..YD E|
00000390  51 55 44 20 20 44 4d 20  3c 3c 20 28 33 32 2d 53  |QUD  DM << (32-S|
000003a0  43 2d 31 29 0d 02 6c 14  2e 42 4d 50 44 20 45 51  |C-1)..l..BMPD EQ|
000003b0  55 44 20 49 4d 41 47 45  0d 02 76 04 0d 02 80 08  |UD IMAGE..v.....|
000003c0  2e 73 65 74 0d 02 8a 12  41 44 52 20 52 30 2c 53  |.set....ADR R0,S|
000003d0  43 52 45 45 4e 44 0d 02  94 11 41 44 52 20 52 31  |CREEND....ADR R1|
000003e0  2c 53 43 52 45 45 4e 0d  02 9e 1d 53 57 49 20 22  |,SCREEN....SWI "|
000003f0  4f 53 5f 52 65 61 64 56  64 75 56 61 72 69 61 62  |OS_ReadVduVariab|
00000400  6c 65 73 22 0d 02 a8 0e  4d 4f 56 20 50 43 2c 52  |les"....MOV PC,R|
00000410  31 34 0d 02 b2 04 0d 02  bc 08 2e 67 65 74 0d 02  |14.........get..|
00000420  c6 12 4c 44 52 20 53 43  52 2c 53 43 52 45 45 4e  |..LDR SCR,SCREEN|
00000430  0d 02 d0 18 41 44 44 20  53 43 52 2c 53 43 52 2c  |....ADD SCR,SCR,|
00000440  23 33 32 30 2a 32 35 36  0d 02 da 14 53 55 42 20  |#320*256....SUB |
00000450  53 43 52 2c 53 43 52 2c  23 33 32 30 0d 02 e4 10  |SCR,SCR,#320....|
00000460  4c 44 52 20 42 4d 50 2c  42 4d 50 44 0d 02 ee 0d  |LDR BMP,BMPD....|
00000470  4d 4f 56 20 44 2c 23 44  4d 0d 02 f8 0b 2e 47 4c  |MOV D,#DM.....GL|
00000480  4f 4f 50 59 0d 03 02 0d  4d 4f 56 20 43 2c 23 44  |OOPY....MOV C,#D|
00000490  4d 0d 03 0c 0b 2e 47 4c  4f 4f 50 58 0d 03 16 12  |M.....GLOOPX....|
000004a0  4c 44 52 20 54 2c 5b 53  43 52 5d 2c 23 34 0d 03  |LDR T,[SCR],#4..|
000004b0  20 12 53 54 52 20 54 2c  5b 42 4d 50 5d 2c 23 34  | .STR T,[BMP],#4|
000004c0  0d 03 2a 0f 53 55 42 53  20 43 2c 43 2c 23 34 0d  |..*.SUBS C,C,#4.|
000004d0  03 34 0e 42 4e 45 20 47  4c 4f 4f 50 58 0d 03 3e  |.4.BNE GLOOPX..>|
000004e0  13 53 55 42 20 53 43 52  2c 53 43 52 2c 23 44 4d  |.SUB SCR,SCR,#DM|
000004f0  0d 03 48 14 53 55 42 20  53 43 52 2c 53 43 52 2c  |..H.SUB SCR,SCR,|
00000500  23 33 32 30 0d 03 52 0f  53 55 42 53 20 44 2c 44  |#320..R.SUBS D,D|
00000510  2c 23 31 0d 03 5c 0e 42  4e 45 20 47 4c 4f 4f 50  |,#1..\.BNE GLOOP|
00000520  59 0d 03 66 0e 4d 4f 56  20 50 43 2c 52 31 34 0d  |Y..f.MOV PC,R14.|
00000530  03 70 04 0d 03 7a 16 2e  69 6e 74 65 72 6c 61 63  |.p...z..interlac|
00000540  65 44 20 45 51 55 44 20  30 0d 03 84 11 2e 73 63  |eD EQUD 0.....sc|
00000550  61 6c 65 5f 72 6f 74 61  74 65 0d 03 8e 0d 4c 44  |ale_rotate....LD|
00000560  52 20 58 4d 2c 58 44 0d  03 98 0d 4c 44 52 20 59  |R XM,XD....LDR Y|
00000570  4d 2c 59 44 0d 03 a2 12  4c 44 52 20 53 43 52 2c  |M,YD....LDR SCR,|
00000580  53 43 52 45 45 4e 0d 03  ac 0e 4c 44 52 20 44 58  |SCREEN....LDR DX|
00000590  2c 44 58 44 0d 03 b6 0e  4c 44 52 20 44 59 2c 44  |,DXD....LDR DY,D|
000005a0  59 44 0d 03 c0 10 4c 44  52 20 42 4d 50 2c 42 4d  |YD....LDR BMP,BM|
000005b0  50 44 0d 03 ca 0e 4d 4f  56 20 53 2c 23 31 32 38  |PD....MOV S,#128|
000005c0  0d 03 d4 0e 4d 4f 56 20  54 2c 23 31 36 30 0d 03  |....MOV T,#160..|
000005d0  de 13 4d 4f 56 20 58 2c  44 58 2c 41 53 52 20 23  |..MOV X,DX,ASR #|
000005e0  38 0d 03 e8 13 4d 4f 56  20 59 2c 44 59 2c 41 53  |8....MOV Y,DY,AS|
000005f0  52 20 23 38 0d 03 f2 0d  4d 55 4c 20 43 2c 59 2c  |R #8....MUL C,Y,|
00000600  53 0d 03 fc 16 53 55 42  20 58 4d 2c 58 4d 2c 43  |S....SUB XM,XM,C|
00000610  2c 4c 53 4c 20 23 38 0d  04 06 0d 4d 55 4c 20 43  |,LSL #8....MUL C|
00000620  2c 58 2c 54 0d 04 10 16  53 55 42 20 58 4d 2c 58  |,X,T....SUB XM,X|
00000630  4d 2c 43 2c 4c 53 4c 20  23 38 0d 04 1a 0d 4d 55  |M,C,LSL #8....MU|
00000640  4c 20 43 2c 58 2c 53 0d  04 24 16 41 44 44 20 59  |L C,X,S..$.ADD Y|
00000650  4d 2c 59 4d 2c 43 2c 4c  53 4c 20 23 38 0d 04 2e  |M,YM,C,LSL #8...|
00000660  0d 4d 55 4c 20 43 2c 59  2c 54 0d 04 38 16 53 55  |.MUL C,Y,T..8.SU|
00000670  42 20 59 4d 2c 59 4d 2c  43 2c 4c 53 4c 20 23 38  |B YM,YM,C,LSL #8|
00000680  0d 04 42 2e 4c 44 52 20  54 2c 69 6e 74 65 72 6c  |..B.LDR T,interl|
00000690  61 63 65 44 3a 82 20 54  2c 54 2c 23 31 3a 53 54  |aceD:. T,T,#1:ST|
000006a0  52 20 54 2c 69 6e 74 65  72 6c 61 63 65 44 0d 04  |R T,interlaceD..|
000006b0  4c 0c 43 4d 50 20 54 2c  23 30 0d 04 56 16 41 44  |L.CMP T,#0..V.AD|
000006c0  44 45 51 20 53 43 52 2c  53 43 52 2c 23 33 32 30  |DEQ SCR,SCR,#320|
000006d0  0d 04 60 12 41 44 44 45  51 20 58 4d 2c 58 4d 2c  |..`.ADDEQ XM,XM,|
000006e0  44 59 0d 04 6a 12 53 55  42 45 51 20 59 4d 2c 59  |DY..j.SUBEQ YM,Y|
000006f0  4d 2c 44 58 0d 04 74 0e  4d 4f 56 20 44 2c 23 32  |M,DX..t.MOV D,#2|
00000700  35 36 0d 04 7e 0a 2e 4c  4f 4f 50 59 0d 04 88 0c  |56..~..LOOPY....|
00000710  4d 4f 56 20 58 2c 58 4d  0d 04 92 0c 4d 4f 56 20  |MOV X,XM....MOV |
00000720  59 2c 59 4d 0d 04 9c 17  41 44 44 20 58 4d 2c 58  |Y,YM....ADD XM,X|
00000730  4d 2c 44 59 2c 4c 53 4c  20 23 31 0d 04 a6 17 53  |M,DY,LSL #1....S|
00000740  55 42 20 59 4d 2c 59 4d  2c 44 58 2c 4c 53 4c 20  |UB YM,YM,DX,LSL |
00000750  23 31 0d 04 b0 0e 4d 4f  56 20 43 2c 23 33 32 30  |#1....MOV C,#320|
00000760  0d 04 ba 0a 2e 4c 4f 4f  50 58 0d 04 c4 1a 80 20  |.....LOOPX..... |
00000770  54 2c 59 2c 23 28 44 4d  2d 31 29 3c 3c 28 33 32  |T,Y,#(DM-1)<<(32|
00000780  2d 53 43 29 0d 04 ce 15  41 44 44 20 54 2c 54 2c  |-SC)....ADD T,T,|
00000790  58 2c 4c 53 52 20 23 53  43 0d 04 d8 1f 4c 44 52  |X,LSR #SC....LDR|
000007a0  42 20 53 2c 5b 42 4d 50  2c 54 2c 4c 53 52 20 23  |B S,[BMP,T,LSR #|
000007b0  33 32 2d 32 2a 53 43 5d  0d 04 e2 0e 41 44 44 20  |32-2*SC]....ADD |
000007c0  58 2c 58 2c 44 58 0d 04  ec 0e 41 44 44 20 59 2c  |X,X,DX....ADD Y,|
000007d0  59 2c 44 59 0d 04 f6 1a  80 20 54 2c 59 2c 23 28  |Y,DY..... T,Y,#(|
000007e0  44 4d 2d 31 29 3c 3c 28  33 32 2d 53 43 29 0d 05  |DM-1)<<(32-SC)..|
000007f0  00 15 41 44 44 20 54 2c  54 2c 58 2c 4c 53 52 20  |..ADD T,T,X,LSR |
00000800  23 53 43 0d 05 0a 1f 4c  44 52 42 20 54 2c 5b 42  |#SC....LDRB T,[B|
00000810  4d 50 2c 54 2c 4c 53 52  20 23 33 32 2d 32 2a 53  |MP,T,LSR #32-2*S|
00000820  43 5d 0d 05 14 14 41 44  44 20 53 2c 53 2c 54 2c  |C]....ADD S,S,T,|
00000830  4c 53 4c 20 23 38 0d 05  1e 0e 41 44 44 20 58 2c  |LSL #8....ADD X,|
00000840  58 2c 44 58 0d 05 28 0e  41 44 44 20 59 2c 59 2c  |X,DX..(.ADD Y,Y,|
00000850  44 59 0d 05 32 1a 80 20  54 2c 59 2c 23 28 44 4d  |DY..2.. T,Y,#(DM|
00000860  2d 31 29 3c 3c 28 33 32  2d 53 43 29 0d 05 3c 15  |-1)<<(32-SC)..<.|
00000870  41 44 44 20 54 2c 54 2c  58 2c 4c 53 52 20 23 53  |ADD T,T,X,LSR #S|
00000880  43 0d 05 46 1f 4c 44 52  42 20 54 2c 5b 42 4d 50  |C..F.LDRB T,[BMP|
00000890  2c 54 2c 4c 53 52 20 23  33 32 2d 32 2a 53 43 5d  |,T,LSR #32-2*SC]|
000008a0  0d 05 50 15 41 44 44 20  53 2c 53 2c 54 2c 4c 53  |..P.ADD S,S,T,LS|
000008b0  4c 20 23 31 36 0d 05 5a  0e 41 44 44 20 58 2c 58  |L #16..Z.ADD X,X|
000008c0  2c 44 58 0d 05 64 0e 41  44 44 20 59 2c 59 2c 44  |,DX..d.ADD Y,Y,D|
000008d0  59 0d 05 6e 1a 80 20 54  2c 59 2c 23 28 44 4d 2d  |Y..n.. T,Y,#(DM-|
000008e0  31 29 3c 3c 28 33 32 2d  53 43 29 0d 05 78 15 41  |1)<<(32-SC)..x.A|
000008f0  44 44 20 54 2c 54 2c 58  2c 4c 53 52 20 23 53 43  |DD T,T,X,LSR #SC|
00000900  0d 05 82 1f 4c 44 52 42  20 54 2c 5b 42 4d 50 2c  |....LDRB T,[BMP,|
00000910  54 2c 4c 53 52 20 23 33  32 2d 32 2a 53 43 5d 0d  |T,LSR #32-2*SC].|
00000920  05 8c 15 41 44 44 20 53  2c 53 2c 54 2c 4c 53 4c  |...ADD S,S,T,LSL|
00000930  20 23 32 34 0d 05 96 0e  41 44 44 20 58 2c 58 2c  | #24....ADD X,X,|
00000940  44 58 0d 05 a0 0e 41 44  44 20 59 2c 59 2c 44 59  |DX....ADD Y,Y,DY|
00000950  0d 05 aa 1a 80 20 54 2c  59 2c 23 28 44 4d 2d 31  |..... T,Y,#(DM-1|
00000960  29 3c 3c 28 33 32 2d 53  43 29 0d 05 b4 15 41 44  |)<<(32-SC)....AD|
00000970  44 20 54 2c 54 2c 58 2c  4c 53 52 20 23 53 43 0d  |D T,T,X,LSR #SC.|
00000980  05 be 1f 4c 44 52 42 20  55 2c 5b 42 4d 50 2c 54  |...LDRB U,[BMP,T|
00000990  2c 4c 53 52 20 23 33 32  2d 32 2a 53 43 5d 0d 05  |,LSR #32-2*SC]..|
000009a0  c8 0e 41 44 44 20 58 2c  58 2c 44 58 0d 05 d2 0e  |..ADD X,X,DX....|
000009b0  41 44 44 20 59 2c 59 2c  44 59 0d 05 dc 1a 80 20  |ADD Y,Y,DY..... |
000009c0  54 2c 59 2c 23 28 44 4d  2d 31 29 3c 3c 28 33 32  |T,Y,#(DM-1)<<(32|
000009d0  2d 53 43 29 0d 05 e6 15  41 44 44 20 54 2c 54 2c  |-SC)....ADD T,T,|
000009e0  58 2c 4c 53 52 20 23 53  43 0d 05 f0 1f 4c 44 52  |X,LSR #SC....LDR|
000009f0  42 20 54 2c 5b 42 4d 50  2c 54 2c 4c 53 52 20 23  |B T,[BMP,T,LSR #|
00000a00  33 32 2d 32 2a 53 43 5d  0d 05 fa 14 41 44 44 20  |32-2*SC]....ADD |
00000a10  55 2c 55 2c 54 2c 4c 53  4c 20 23 38 0d 06 04 0e  |U,U,T,LSL #8....|
00000a20  41 44 44 20 58 2c 58 2c  44 58 0d 06 0e 0e 41 44  |ADD X,X,DX....AD|
00000a30  44 20 59 2c 59 2c 44 59  0d 06 18 1a 80 20 54 2c  |D Y,Y,DY..... T,|
00000a40  59 2c 23 28 44 4d 2d 31  29 3c 3c 28 33 32 2d 53  |Y,#(DM-1)<<(32-S|
00000a50  43 29 0d 06 22 15 41 44  44 20 54 2c 54 2c 58 2c  |C)..".ADD T,T,X,|
00000a60  4c 53 52 20 23 53 43 0d  06 2c 1f 4c 44 52 42 20  |LSR #SC..,.LDRB |
00000a70  54 2c 5b 42 4d 50 2c 54  2c 4c 53 52 20 23 33 32  |T,[BMP,T,LSR #32|
00000a80  2d 32 2a 53 43 5d 0d 06  36 15 41 44 44 20 55 2c  |-2*SC]..6.ADD U,|
00000a90  55 2c 54 2c 4c 53 4c 20  23 31 36 0d 06 40 0e 41  |U,T,LSL #16..@.A|
00000aa0  44 44 20 58 2c 58 2c 44  58 0d 06 4a 0e 41 44 44  |DD X,X,DX..J.ADD|
00000ab0  20 59 2c 59 2c 44 59 0d  06 54 1a 80 20 54 2c 59  | Y,Y,DY..T.. T,Y|
00000ac0  2c 23 28 44 4d 2d 31 29  3c 3c 28 33 32 2d 53 43  |,#(DM-1)<<(32-SC|
00000ad0  29 0d 06 5e 15 41 44 44  20 54 2c 54 2c 58 2c 4c  |)..^.ADD T,T,X,L|
00000ae0  53 52 20 23 53 43 0d 06  68 1f 4c 44 52 42 20 54  |SR #SC..h.LDRB T|
00000af0  2c 5b 42 4d 50 2c 54 2c  4c 53 52 20 23 33 32 2d  |,[BMP,T,LSR #32-|
00000b00  32 2a 53 43 5d 0d 06 72  15 41 44 44 20 55 2c 55  |2*SC]..r.ADD U,U|
00000b10  2c 54 2c 4c 53 4c 20 23  32 34 0d 06 7c 0e 41 44  |,T,LSL #24..|.AD|
00000b20  44 20 58 2c 58 2c 44 58  0d 06 86 0e 41 44 44 20  |D X,X,DX....ADD |
00000b30  59 2c 59 2c 44 59 0d 06  90 16 53 54 4d 49 41 20  |Y,Y,DY....STMIA |
00000b40  28 53 43 52 29 21 2c 7b  53 2c 55 7d 0d 06 9a 0f  |(SCR)!,{S,U}....|
00000b50  53 55 42 53 20 43 2c 43  2c 23 38 0d 06 a4 0d 42  |SUBS C,C,#8....B|
00000b60  4e 45 20 4c 4f 4f 50 58  0d 06 ae 14 41 44 44 20  |NE LOOPX....ADD |
00000b70  53 43 52 2c 53 43 52 2c  23 33 32 30 0d 06 b8 0f  |SCR,SCR,#320....|
00000b80  53 55 42 53 20 44 2c 44  2c 23 32 0d 06 c2 0d 42  |SUBS D,D,#2....B|
00000b90  4e 45 20 4c 4f 4f 50 59  0d 06 cc 0e 4d 4f 56 20  |NE LOOPY....MOV |
00000ba0  50 43 2c 52 31 34 0d 06  d6 05 5d 0d 06 e0 05 ed  |PC,R14....].....|
00000bb0  0d 06 ea 05 e1 0d ff                              |.......|
00000bb7