Home » Archimedes archive » Acorn User » AU 1995-12 B.adf » Regulars » StarInfo/Patel/TerrART

StarInfo/Patel/TerrART

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » Archimedes archive » Acorn User » AU 1995-12 B.adf » Regulars
Filename: StarInfo/Patel/TerrART
Read OK:
File size: 0CBD bytes
Load address: 0000
Exec address: 0000
File contents
   10 REM >TerrART
   20 MODE 15:MODE 13:OFF
   30 
   40 DIM CODE% 1000
   50 DIM COL%  1000
   60 DIM REG%  100
   70 DIM ROOM% 81920
   80 DIM CO(100)
   90 DIM CO1(100)
  100
  110 DATA 44,208,252,40,192,232,4,24,148,8,132,152,8,128,136
  120 DATA 36,80,116,32,72,224,4,14,26,12,144,156,4,48,84,4,56,212
  130
  140 FOR C=1 TO 33
  150  READ B
  160  CO(C)=B
  170 NEXT C
  180
  190 FOR C=0 TO 10
  200  REPEAT
  210   K=(RND(11)-1)*3+1
  220  UNTIL CO(K)<>0
  230
  240  FOR NR=0 TO 2
  250    CO1(NR+C*3)=CO(K+NR)
  260    CO(K+NR)=0
  270  NEXT NR
  280 NEXT C
  290
  300 A=0
  310   FOR QW=1 TO 11
  320    FOR RE=0 TO 2
  330      B=CO1(A)
  340      A=A+1
  350      FOR C=0 TO 3
  360        ?(COL%+   (RE*4+C+QW*24)   )=B+C
  370        ?(COL%+  (23-RE*4+QW*24-C) )=B+C
  380      NEXT C
  390    NEXT RE
  400   NEXT QW
  410
  420 last=0
  430 cannon=1
  440 col=2
  450 col1=3
  460 tabel=10
  470
  480 FOR PAS = 0 TO 2 STEP 2
  490   P% = CODE%
  500   [ OPT PAS
  510
  520   .start   EQUD      ROOM%
  530   .finish  EQUD      ROOM% + 81919
  540   .COL     EQUD      COL%
  550   .hiddst  EQUD      FNs
  560   .hiddnd  EQUD      FNs + 81919-320*4
  570   .REG     EQUD      REG%
  580
  590   .Prog
  600        LDR     last,finish
  610        LDR     cannon,start
  620        LDR     R6,hiddst
  630        LDR     R7,hiddnd
  640        LDR     tabel,COL
  650        MOV     col,#22
  660
  670    .randloop
  680        STR    col,[cannon],#4
  690        ADD     col,col,col,ROR#1         ;random rutine
  700        CMP     cannon,last
  710    BLT     randloop
  720
  730        LDR     last,finish
  740        SUB     last,last,#320
  750        LDR     cannon,start
  760        ADD     cannon,cannon,#320
  770        ADD     cannon,cannon,#1
  780
  790        LDR     R12,REG
  800        STMIA   R12,{R0-R10}
  810
  820    .LOOP
  830        LDR     R12,REG           ;load all registers
  840        LDMIA   R12,{R0-R10}    ;
  850
  860
  870    .smoothening
  880        SUB     cannon,cannon,#1
  890        LDRB    col,[cannon]
  900        ADD     cannon,cannon,#2
  910        LDRB    col1,[cannon]
  920        ADD     col,col,col1
  930        SUB     cannon,cannon,#1
  940        SUB     cannon,cannon,#320     ;                           *
  950        LDRB    col1,[cannon]          ;Smoothens colourvalues   *   *
  960        ADD     col,col,col1           ;                           *
  970        ADD     cannon,cannon,#640
  980        LDRB    col1,[cannon]
  990        ADD     col,col,col1
 1000
 1010        MOV     col,col,LSR#2
 1020        SUB     cannon,cannon,#320
 1030        STRB    col,[cannon],#1
 1040
 1050        CMP     cannon,last
 1060    BLT         smoothening
 1070
 1080        LDR     cannon,start
 1090        ADD     cannon,cannon,#640
 1100        LDR     R6,hiddst
 1110
 1120
 1130    .drawscreen
 1140        LDRB    col,[cannon],#1
 1150        ADD     col1,col,tabel    ;loads picture from memory,
 1160        LDRB    col,[col1]        ;translates colours according to the
 1170        STRB    col,[R6],#1     ;tabel, and draws it on screen
 1180        CMP     R6,R7
 1190    BLT         drawscreen
 1200
 1210        LDR     cannon,start
 1220        ADD     cannon,cannon,#320
 1230        ADD     cannon,cannon,#1
 1240
 1250        STMIA   R12,{R0-R10}  ; save all registers and jump to basic
 1260        MOV     PC,R14          ;
 1270
 1280   ]
 1290  NEXT PAS
 1300
 1310    CALL Prog
 1320
 1330    REPEAT
 1340     CALL LOOP
 1350    UNTIL FALSE
 1360
 1370DEF FNs
 1380LOCAL q
 1390DIM q 8
 1400!q=148
 1410q!4=-1
 1420SYS "OS_ReadVduVariables",q,q
 1430=!q

 � >TerrART
 � 15:� 13:�
 
( � CODE% 1000
2 � COL%  1000
< � REG%  100
F � ROOM% 81920
P � CO(100)
Z � CO1(100)
d
n9 � 44,208,252,40,192,232,4,24,148,8,132,152,8,128,136
x> � 36,80,116,32,72,224,4,14,26,12,144,156,4,48,84,4,56,212
�
� � C=1 � 33
�	  � B
�
  CO(C)=B
� � C
�
� � C=0 � 10
�  �
�   K=(�(11)-1)*3+1
�  � CO(K)<>0
�
�  � NR=0 � 2
�    CO1(NR+C*3)=CO(K+NR)
    CO(K+NR)=0

  � NR
 � C
"
, A=0
6   � QW=1 � 11
@    � RE=0 � 2
J      B=CO1(A)
T      A=A+1
^      � C=0 � 3
h,        ?(COL%+   (RE*4+C+QW*24)   )=B+C
r,        ?(COL%+  (23-RE*4+QW*24-C) )=B+C
|
      � C
�    � RE
�   � QW
�
� last=0
�
 cannon=1
�
 col=2
� col1=3
�
 tabel=10
�
� � PAS = 0 � 2 � 2
�   P% = CODE%
�   [ OPT PAS
�
   .start   EQUD      ROOM%
'   .finish  EQUD      ROOM% + 81919
   .COL     EQUD      COL%
&   .hiddst  EQUD      �s
0*   .hiddnd  EQUD      �s + 81919-320*4
:   .REG     EQUD      REG%
D
N   .Prog
X        LDR     last,finish
b         LDR     cannon,start
l        LDR     R6,hiddst
v        LDR     R7,hiddnd
�        LDR     tabel,COL
�        MOV     col,#22
�
�    .randloop
�"        STR    col,[cannon],#4
�<        ADD     col,col,col,ROR#1         ;random rutine
�        CMP     cannon,last
�    BLT     randloop
�
�        LDR     last,finish
�"        SUB     last,last,#320
�         LDR     cannon,start
�&        ADD     cannon,cannon,#320
$        ADD     cannon,cannon,#1

        LDR     R12,REG
          STMIA   R12,{R0-R10}
*
4
    .LOOP
>9        LDR     R12,REG           ;load all registers
H%        LDMIA   R12,{R0-R10}    ;
R
\
f    .smoothening
p$        SUB     cannon,cannon,#1
z         LDRB    col,[cannon]
�$        ADD     cannon,cannon,#2
�!        LDRB    col1,[cannon]
�         ADD     col,col,col1
�$        SUB     cannon,cannon,#1
�H        SUB     cannon,cannon,#320     ;                           *
�J        LDRB    col1,[cannon]          ;Smoothens colourvalues   *   *
�H        ADD     col,col,col1           ;                           *
�&        ADD     cannon,cannon,#640
�!        LDRB    col1,[cannon]
�         ADD     col,col,col1
�
�!        MOV     col,col,LSR#2
�&        SUB     cannon,cannon,#320
#        STRB    col,[cannon],#1

        CMP     cannon,last
$    BLT         smoothening
.
8         LDR     cannon,start
B&        ADD     cannon,cannon,#640
L        LDR     R6,hiddst
V
`
j    .drawscreen
t#        LDRB    col,[cannon],#1
~A        ADD     col1,col,tabel    ;loads picture from memory,
�J        LDRB    col,[col1]        ;translates colours according to the
�B        STRB    col,[R6],#1     ;tabel, and draws it on screen
�        CMP     R6,R7
�    BLT         drawscreen
�
�         LDR     cannon,start
�&        ADD     cannon,cannon,#320
�$        ADD     cannon,cannon,#1
�
�H        STMIA   R12,{R0-R10}  ; save all registers and jump to basic
�%        MOV     PC,R14          ;
�
   ]

  � PAS

    � Prog
(
2	    �
<     � LOOP
F    � �
P
Z� �s
d� q
n	� q 8
x
!q=148
�
q!4=-1
� ș "OS_ReadVduVariables",q,q
�=!q
�
00000000  0d 00 0a 0f 20 f4 20 3e  54 65 72 72 41 52 54 0d  |.... . >TerrART.|
00000010  00 14 10 20 eb 20 31 35  3a eb 20 31 33 3a 87 0d  |... . 15:. 13:..|
00000020  00 1e 05 20 0d 00 28 11  20 de 20 43 4f 44 45 25  |... ..(. . CODE%|
00000030  20 31 30 30 30 0d 00 32  11 20 de 20 43 4f 4c 25  | 1000..2. . COL%|
00000040  20 20 31 30 30 30 0d 00  3c 10 20 de 20 52 45 47  |  1000..<. . REG|
00000050  25 20 20 31 30 30 0d 00  46 12 20 de 20 52 4f 4f  |%  100..F. . ROO|
00000060  4d 25 20 38 31 39 32 30  0d 00 50 0e 20 de 20 43  |M% 81920..P. . C|
00000070  4f 28 31 30 30 29 0d 00  5a 0f 20 de 20 43 4f 31  |O(100)..Z. . CO1|
00000080  28 31 30 30 29 0d 00 64  04 0d 00 6e 39 20 dc 20  |(100)..d...n9 . |
00000090  34 34 2c 32 30 38 2c 32  35 32 2c 34 30 2c 31 39  |44,208,252,40,19|
000000a0  32 2c 32 33 32 2c 34 2c  32 34 2c 31 34 38 2c 38  |2,232,4,24,148,8|
000000b0  2c 31 33 32 2c 31 35 32  2c 38 2c 31 32 38 2c 31  |,132,152,8,128,1|
000000c0  33 36 0d 00 78 3e 20 dc  20 33 36 2c 38 30 2c 31  |36..x> . 36,80,1|
000000d0  31 36 2c 33 32 2c 37 32  2c 32 32 34 2c 34 2c 31  |16,32,72,224,4,1|
000000e0  34 2c 32 36 2c 31 32 2c  31 34 34 2c 31 35 36 2c  |4,26,12,144,156,|
000000f0  34 2c 34 38 2c 38 34 2c  34 2c 35 36 2c 32 31 32  |4,48,84,4,56,212|
00000100  0d 00 82 04 0d 00 8c 0f  20 e3 20 43 3d 31 20 b8  |........ . C=1 .|
00000110  20 33 33 0d 00 96 09 20  20 f3 20 42 0d 00 a0 0d  | 33....  . B....|
00000120  20 20 43 4f 28 43 29 3d  42 0d 00 aa 08 20 ed 20  |  CO(C)=B.... . |
00000130  43 0d 00 b4 04 0d 00 be  0f 20 e3 20 43 3d 30 20  |C........ . C=0 |
00000140  b8 20 31 30 0d 00 c8 07  20 20 f5 0d 00 d2 16 20  |. 10....  ..... |
00000150  20 20 4b 3d 28 b3 28 31  31 29 2d 31 29 2a 33 2b  |  K=(.(11)-1)*3+|
00000160  31 0d 00 dc 10 20 20 fd  20 43 4f 28 4b 29 3c 3e  |1....  . CO(K)<>|
00000170  30 0d 00 e6 04 0d 00 f0  10 20 20 e3 20 4e 52 3d  |0........  . NR=|
00000180  30 20 b8 20 32 0d 00 fa  1c 20 20 20 20 43 4f 31  |0 . 2....    CO1|
00000190  28 4e 52 2b 43 2a 33 29  3d 43 4f 28 4b 2b 4e 52  |(NR+C*3)=CO(K+NR|
000001a0  29 0d 01 04 12 20 20 20  20 43 4f 28 4b 2b 4e 52  |)....    CO(K+NR|
000001b0  29 3d 30 0d 01 0e 0a 20  20 ed 20 4e 52 0d 01 18  |)=0....  . NR...|
000001c0  08 20 ed 20 43 0d 01 22  04 0d 01 2c 08 20 41 3d  |. . C.."...,. A=|
000001d0  30 0d 01 36 12 20 20 20  e3 20 51 57 3d 31 20 b8  |0..6.   . QW=1 .|
000001e0  20 31 31 0d 01 40 12 20  20 20 20 e3 20 52 45 3d  | 11..@.    . RE=|
000001f0  30 20 b8 20 32 0d 01 4a  12 20 20 20 20 20 20 42  |0 . 2..J.      B|
00000200  3d 43 4f 31 28 41 29 0d  01 54 0f 20 20 20 20 20  |=CO1(A)..T.     |
00000210  20 41 3d 41 2b 31 0d 01  5e 13 20 20 20 20 20 20  | A=A+1..^.      |
00000220  e3 20 43 3d 30 20 b8 20  33 0d 01 68 2c 20 20 20  |. C=0 . 3..h,   |
00000230  20 20 20 20 20 3f 28 43  4f 4c 25 2b 20 20 20 28  |     ?(COL%+   (|
00000240  52 45 2a 34 2b 43 2b 51  57 2a 32 34 29 20 20 20  |RE*4+C+QW*24)   |
00000250  29 3d 42 2b 43 0d 01 72  2c 20 20 20 20 20 20 20  |)=B+C..r,       |
00000260  20 3f 28 43 4f 4c 25 2b  20 20 28 32 33 2d 52 45  | ?(COL%+  (23-RE|
00000270  2a 34 2b 51 57 2a 32 34  2d 43 29 20 29 3d 42 2b  |*4+QW*24-C) )=B+|
00000280  43 0d 01 7c 0d 20 20 20  20 20 20 ed 20 43 0d 01  |C..|.      . C..|
00000290  86 0c 20 20 20 20 ed 20  52 45 0d 01 90 0b 20 20  |..    . RE....  |
000002a0  20 ed 20 51 57 0d 01 9a  04 0d 01 a4 0b 20 6c 61  | . QW........ la|
000002b0  73 74 3d 30 0d 01 ae 0d  20 63 61 6e 6e 6f 6e 3d  |st=0.... cannon=|
000002c0  31 0d 01 b8 0a 20 63 6f  6c 3d 32 0d 01 c2 0b 20  |1.... col=2.... |
000002d0  63 6f 6c 31 3d 33 0d 01  cc 0d 20 74 61 62 65 6c  |col1=3.... tabel|
000002e0  3d 31 30 0d 01 d6 04 0d  01 e0 16 20 e3 20 50 41  |=10........ . PA|
000002f0  53 20 3d 20 30 20 b8 20  32 20 88 20 32 0d 01 ea  |S = 0 . 2 . 2...|
00000300  11 20 20 20 50 25 20 3d  20 43 4f 44 45 25 0d 01  |.   P% = CODE%..|
00000310  f4 10 20 20 20 5b 20 4f  50 54 20 50 41 53 0d 01  |..   [ OPT PAS..|
00000320  fe 04 0d 02 08 1f 20 20  20 2e 73 74 61 72 74 20  |......   .start |
00000330  20 20 45 51 55 44 20 20  20 20 20 20 52 4f 4f 4d  |  EQUD      ROOM|
00000340  25 0d 02 12 27 20 20 20  2e 66 69 6e 69 73 68 20  |%...'   .finish |
00000350  20 45 51 55 44 20 20 20  20 20 20 52 4f 4f 4d 25  | EQUD      ROOM%|
00000360  20 2b 20 38 31 39 31 39  0d 02 1c 1e 20 20 20 2e  | + 81919....   .|
00000370  43 4f 4c 20 20 20 20 20  45 51 55 44 20 20 20 20  |COL     EQUD    |
00000380  20 20 43 4f 4c 25 0d 02  26 1c 20 20 20 2e 68 69  |  COL%..&.   .hi|
00000390  64 64 73 74 20 20 45 51  55 44 20 20 20 20 20 20  |ddst  EQUD      |
000003a0  a4 73 0d 02 30 2a 20 20  20 2e 68 69 64 64 6e 64  |.s..0*   .hiddnd|
000003b0  20 20 45 51 55 44 20 20  20 20 20 20 a4 73 20 2b  |  EQUD      .s +|
000003c0  20 38 31 39 31 39 2d 33  32 30 2a 34 0d 02 3a 1e  | 81919-320*4..:.|
000003d0  20 20 20 2e 52 45 47 20  20 20 20 20 45 51 55 44  |   .REG     EQUD|
000003e0  20 20 20 20 20 20 52 45  47 25 0d 02 44 04 0d 02  |      REG%..D...|
000003f0  4e 0c 20 20 20 2e 50 72  6f 67 0d 02 58 1f 20 20  |N.   .Prog..X.  |
00000400  20 20 20 20 20 20 4c 44  52 20 20 20 20 20 6c 61  |      LDR     la|
00000410  73 74 2c 66 69 6e 69 73  68 0d 02 62 20 20 20 20  |st,finish..b    |
00000420  20 20 20 20 20 4c 44 52  20 20 20 20 20 63 61 6e  |     LDR     can|
00000430  6e 6f 6e 2c 73 74 61 72  74 0d 02 6c 1d 20 20 20  |non,start..l.   |
00000440  20 20 20 20 20 4c 44 52  20 20 20 20 20 52 36 2c  |     LDR     R6,|
00000450  68 69 64 64 73 74 0d 02  76 1d 20 20 20 20 20 20  |hiddst..v.      |
00000460  20 20 4c 44 52 20 20 20  20 20 52 37 2c 68 69 64  |  LDR     R7,hid|
00000470  64 6e 64 0d 02 80 1d 20  20 20 20 20 20 20 20 4c  |dnd....        L|
00000480  44 52 20 20 20 20 20 74  61 62 65 6c 2c 43 4f 4c  |DR     tabel,COL|
00000490  0d 02 8a 1b 20 20 20 20  20 20 20 20 4d 4f 56 20  |....        MOV |
000004a0  20 20 20 20 63 6f 6c 2c  23 32 32 0d 02 94 04 0d  |    col,#22.....|
000004b0  02 9e 11 20 20 20 20 2e  72 61 6e 64 6c 6f 6f 70  |...    .randloop|
000004c0  0d 02 a8 22 20 20 20 20  20 20 20 20 53 54 52 20  |..."        STR |
000004d0  20 20 20 63 6f 6c 2c 5b  63 61 6e 6e 6f 6e 5d 2c  |   col,[cannon],|
000004e0  23 34 0d 02 b2 3c 20 20  20 20 20 20 20 20 41 44  |#4...<        AD|
000004f0  44 20 20 20 20 20 63 6f  6c 2c 63 6f 6c 2c 63 6f  |D     col,col,co|
00000500  6c 2c 52 4f 52 23 31 20  20 20 20 20 20 20 20 20  |l,ROR#1         |
00000510  3b 72 61 6e 64 6f 6d 20  72 75 74 69 6e 65 0d 02  |;random rutine..|
00000520  bc 1f 20 20 20 20 20 20  20 20 43 4d 50 20 20 20  |..        CMP   |
00000530  20 20 63 61 6e 6e 6f 6e  2c 6c 61 73 74 0d 02 c6  |  cannon,last...|
00000540  18 20 20 20 20 42 4c 54  20 20 20 20 20 72 61 6e  |.    BLT     ran|
00000550  64 6c 6f 6f 70 0d 02 d0  04 0d 02 da 1f 20 20 20  |dloop........   |
00000560  20 20 20 20 20 4c 44 52  20 20 20 20 20 6c 61 73  |     LDR     las|
00000570  74 2c 66 69 6e 69 73 68  0d 02 e4 22 20 20 20 20  |t,finish..."    |
00000580  20 20 20 20 53 55 42 20  20 20 20 20 6c 61 73 74  |    SUB     last|
00000590  2c 6c 61 73 74 2c 23 33  32 30 0d 02 ee 20 20 20  |,last,#320...   |
000005a0  20 20 20 20 20 20 4c 44  52 20 20 20 20 20 63 61  |      LDR     ca|
000005b0  6e 6e 6f 6e 2c 73 74 61  72 74 0d 02 f8 26 20 20  |nnon,start...&  |
000005c0  20 20 20 20 20 20 41 44  44 20 20 20 20 20 63 61  |      ADD     ca|
000005d0  6e 6e 6f 6e 2c 63 61 6e  6e 6f 6e 2c 23 33 32 30  |nnon,cannon,#320|
000005e0  0d 03 02 24 20 20 20 20  20 20 20 20 41 44 44 20  |...$        ADD |
000005f0  20 20 20 20 63 61 6e 6e  6f 6e 2c 63 61 6e 6e 6f  |    cannon,canno|
00000600  6e 2c 23 31 0d 03 0c 04  0d 03 16 1b 20 20 20 20  |n,#1........    |
00000610  20 20 20 20 4c 44 52 20  20 20 20 20 52 31 32 2c  |    LDR     R12,|
00000620  52 45 47 0d 03 20 20 20  20 20 20 20 20 20 20 53  |REG..          S|
00000630  54 4d 49 41 20 20 20 52  31 32 2c 7b 52 30 2d 52  |TMIA   R12,{R0-R|
00000640  31 30 7d 0d 03 2a 04 0d  03 34 0d 20 20 20 20 2e  |10}..*...4.    .|
00000650  4c 4f 4f 50 0d 03 3e 39  20 20 20 20 20 20 20 20  |LOOP..>9        |
00000660  4c 44 52 20 20 20 20 20  52 31 32 2c 52 45 47 20  |LDR     R12,REG |
00000670  20 20 20 20 20 20 20 20  20 20 3b 6c 6f 61 64 20  |          ;load |
00000680  61 6c 6c 20 72 65 67 69  73 74 65 72 73 0d 03 48  |all registers..H|
00000690  25 20 20 20 20 20 20 20  20 4c 44 4d 49 41 20 20  |%        LDMIA  |
000006a0  20 52 31 32 2c 7b 52 30  2d 52 31 30 7d 20 20 20  | R12,{R0-R10}   |
000006b0  20 3b 0d 03 52 04 0d 03  5c 04 0d 03 66 14 20 20  | ;..R...\...f.  |
000006c0  20 20 2e 73 6d 6f 6f 74  68 65 6e 69 6e 67 0d 03  |  .smoothening..|
000006d0  70 24 20 20 20 20 20 20  20 20 53 55 42 20 20 20  |p$        SUB   |
000006e0  20 20 63 61 6e 6e 6f 6e  2c 63 61 6e 6e 6f 6e 2c  |  cannon,cannon,|
000006f0  23 31 0d 03 7a 20 20 20  20 20 20 20 20 20 4c 44  |#1..z         LD|
00000700  52 42 20 20 20 20 63 6f  6c 2c 5b 63 61 6e 6e 6f  |RB    col,[canno|
00000710  6e 5d 0d 03 84 24 20 20  20 20 20 20 20 20 41 44  |n]...$        AD|
00000720  44 20 20 20 20 20 63 61  6e 6e 6f 6e 2c 63 61 6e  |D     cannon,can|
00000730  6e 6f 6e 2c 23 32 0d 03  8e 21 20 20 20 20 20 20  |non,#2...!      |
00000740  20 20 4c 44 52 42 20 20  20 20 63 6f 6c 31 2c 5b  |  LDRB    col1,[|
00000750  63 61 6e 6e 6f 6e 5d 0d  03 98 20 20 20 20 20 20  |cannon]...      |
00000760  20 20 20 41 44 44 20 20  20 20 20 63 6f 6c 2c 63  |   ADD     col,c|
00000770  6f 6c 2c 63 6f 6c 31 0d  03 a2 24 20 20 20 20 20  |ol,col1...$     |
00000780  20 20 20 53 55 42 20 20  20 20 20 63 61 6e 6e 6f  |   SUB     canno|
00000790  6e 2c 63 61 6e 6e 6f 6e  2c 23 31 0d 03 ac 48 20  |n,cannon,#1...H |
000007a0  20 20 20 20 20 20 20 53  55 42 20 20 20 20 20 63  |       SUB     c|
000007b0  61 6e 6e 6f 6e 2c 63 61  6e 6e 6f 6e 2c 23 33 32  |annon,cannon,#32|
000007c0  30 20 20 20 20 20 3b 20  20 20 20 20 20 20 20 20  |0     ;         |
000007d0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000007e0  20 20 2a 0d 03 b6 4a 20  20 20 20 20 20 20 20 4c  |  *...J        L|
000007f0  44 52 42 20 20 20 20 63  6f 6c 31 2c 5b 63 61 6e  |DRB    col1,[can|
00000800  6e 6f 6e 5d 20 20 20 20  20 20 20 20 20 20 3b 53  |non]          ;S|
00000810  6d 6f 6f 74 68 65 6e 73  20 63 6f 6c 6f 75 72 76  |moothens colourv|
00000820  61 6c 75 65 73 20 20 20  2a 20 20 20 2a 0d 03 c0  |alues   *   *...|
00000830  48 20 20 20 20 20 20 20  20 41 44 44 20 20 20 20  |H        ADD    |
00000840  20 63 6f 6c 2c 63 6f 6c  2c 63 6f 6c 31 20 20 20  | col,col,col1   |
00000850  20 20 20 20 20 20 20 20  3b 20 20 20 20 20 20 20  |        ;       |
00000860  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000870  20 20 20 20 2a 0d 03 ca  26 20 20 20 20 20 20 20  |    *...&       |
00000880  20 41 44 44 20 20 20 20  20 63 61 6e 6e 6f 6e 2c  | ADD     cannon,|
00000890  63 61 6e 6e 6f 6e 2c 23  36 34 30 0d 03 d4 21 20  |cannon,#640...! |
000008a0  20 20 20 20 20 20 20 4c  44 52 42 20 20 20 20 63  |       LDRB    c|
000008b0  6f 6c 31 2c 5b 63 61 6e  6e 6f 6e 5d 0d 03 de 20  |ol1,[cannon]... |
000008c0  20 20 20 20 20 20 20 20  41 44 44 20 20 20 20 20  |        ADD     |
000008d0  63 6f 6c 2c 63 6f 6c 2c  63 6f 6c 31 0d 03 e8 04  |col,col,col1....|
000008e0  0d 03 f2 21 20 20 20 20  20 20 20 20 4d 4f 56 20  |...!        MOV |
000008f0  20 20 20 20 63 6f 6c 2c  63 6f 6c 2c 4c 53 52 23  |    col,col,LSR#|
00000900  32 0d 03 fc 26 20 20 20  20 20 20 20 20 53 55 42  |2...&        SUB|
00000910  20 20 20 20 20 63 61 6e  6e 6f 6e 2c 63 61 6e 6e  |     cannon,cann|
00000920  6f 6e 2c 23 33 32 30 0d  04 06 23 20 20 20 20 20  |on,#320...#     |
00000930  20 20 20 53 54 52 42 20  20 20 20 63 6f 6c 2c 5b  |   STRB    col,[|
00000940  63 61 6e 6e 6f 6e 5d 2c  23 31 0d 04 10 04 0d 04  |cannon],#1......|
00000950  1a 1f 20 20 20 20 20 20  20 20 43 4d 50 20 20 20  |..        CMP   |
00000960  20 20 63 61 6e 6e 6f 6e  2c 6c 61 73 74 0d 04 24  |  cannon,last..$|
00000970  1f 20 20 20 20 42 4c 54  20 20 20 20 20 20 20 20  |.    BLT        |
00000980  20 73 6d 6f 6f 74 68 65  6e 69 6e 67 0d 04 2e 04  | smoothening....|
00000990  0d 04 38 20 20 20 20 20  20 20 20 20 4c 44 52 20  |..8         LDR |
000009a0  20 20 20 20 63 61 6e 6e  6f 6e 2c 73 74 61 72 74  |    cannon,start|
000009b0  0d 04 42 26 20 20 20 20  20 20 20 20 41 44 44 20  |..B&        ADD |
000009c0  20 20 20 20 63 61 6e 6e  6f 6e 2c 63 61 6e 6e 6f  |    cannon,canno|
000009d0  6e 2c 23 36 34 30 0d 04  4c 1d 20 20 20 20 20 20  |n,#640..L.      |
000009e0  20 20 4c 44 52 20 20 20  20 20 52 36 2c 68 69 64  |  LDR     R6,hid|
000009f0  64 73 74 0d 04 56 04 0d  04 60 04 0d 04 6a 13 20  |dst..V...`...j. |
00000a00  20 20 20 2e 64 72 61 77  73 63 72 65 65 6e 0d 04  |   .drawscreen..|
00000a10  74 23 20 20 20 20 20 20  20 20 4c 44 52 42 20 20  |t#        LDRB  |
00000a20  20 20 63 6f 6c 2c 5b 63  61 6e 6e 6f 6e 5d 2c 23  |  col,[cannon],#|
00000a30  31 0d 04 7e 41 20 20 20  20 20 20 20 20 41 44 44  |1..~A        ADD|
00000a40  20 20 20 20 20 63 6f 6c  31 2c 63 6f 6c 2c 74 61  |     col1,col,ta|
00000a50  62 65 6c 20 20 20 20 3b  6c 6f 61 64 73 20 70 69  |bel    ;loads pi|
00000a60  63 74 75 72 65 20 66 72  6f 6d 20 6d 65 6d 6f 72  |cture from memor|
00000a70  79 2c 0d 04 88 4a 20 20  20 20 20 20 20 20 4c 44  |y,...J        LD|
00000a80  52 42 20 20 20 20 63 6f  6c 2c 5b 63 6f 6c 31 5d  |RB    col,[col1]|
00000a90  20 20 20 20 20 20 20 20  3b 74 72 61 6e 73 6c 61  |        ;transla|
00000aa0  74 65 73 20 63 6f 6c 6f  75 72 73 20 61 63 63 6f  |tes colours acco|
00000ab0  72 64 69 6e 67 20 74 6f  20 74 68 65 0d 04 92 42  |rding to the...B|
00000ac0  20 20 20 20 20 20 20 20  53 54 52 42 20 20 20 20  |        STRB    |
00000ad0  63 6f 6c 2c 5b 52 36 5d  2c 23 31 20 20 20 20 20  |col,[R6],#1     |
00000ae0  3b 74 61 62 65 6c 2c 20  61 6e 64 20 64 72 61 77  |;tabel, and draw|
00000af0  73 20 69 74 20 6f 6e 20  73 63 72 65 65 6e 0d 04  |s it on screen..|
00000b00  9c 19 20 20 20 20 20 20  20 20 43 4d 50 20 20 20  |..        CMP   |
00000b10  20 20 52 36 2c 52 37 0d  04 a6 1e 20 20 20 20 42  |  R6,R7....    B|
00000b20  4c 54 20 20 20 20 20 20  20 20 20 64 72 61 77 73  |LT         draws|
00000b30  63 72 65 65 6e 0d 04 b0  04 0d 04 ba 20 20 20 20  |creen.......    |
00000b40  20 20 20 20 20 4c 44 52  20 20 20 20 20 63 61 6e  |     LDR     can|
00000b50  6e 6f 6e 2c 73 74 61 72  74 0d 04 c4 26 20 20 20  |non,start...&   |
00000b60  20 20 20 20 20 41 44 44  20 20 20 20 20 63 61 6e  |     ADD     can|
00000b70  6e 6f 6e 2c 63 61 6e 6e  6f 6e 2c 23 33 32 30 0d  |non,cannon,#320.|
00000b80  04 ce 24 20 20 20 20 20  20 20 20 41 44 44 20 20  |..$        ADD  |
00000b90  20 20 20 63 61 6e 6e 6f  6e 2c 63 61 6e 6e 6f 6e  |   cannon,cannon|
00000ba0  2c 23 31 0d 04 d8 04 0d  04 e2 48 20 20 20 20 20  |,#1.......H     |
00000bb0  20 20 20 53 54 4d 49 41  20 20 20 52 31 32 2c 7b  |   STMIA   R12,{|
00000bc0  52 30 2d 52 31 30 7d 20  20 3b 20 73 61 76 65 20  |R0-R10}  ; save |
00000bd0  61 6c 6c 20 72 65 67 69  73 74 65 72 73 20 61 6e  |all registers an|
00000be0  64 20 6a 75 6d 70 20 74  6f 20 62 61 73 69 63 0d  |d jump to basic.|
00000bf0  04 ec 25 20 20 20 20 20  20 20 20 4d 4f 56 20 20  |..%        MOV  |
00000c00  20 20 20 50 43 2c 52 31  34 20 20 20 20 20 20 20  |   PC,R14       |
00000c10  20 20 20 3b 0d 04 f6 04  0d 05 00 08 20 20 20 5d  |   ;........   ]|
00000c20  0d 05 0a 0b 20 20 ed 20  50 41 53 0d 05 14 04 0d  |....  . PAS.....|
00000c30  05 1e 0e 20 20 20 20 d6  20 50 72 6f 67 0d 05 28  |...    . Prog..(|
00000c40  04 0d 05 32 09 20 20 20  20 f5 0d 05 3c 0f 20 20  |...2.    ...<.  |
00000c50  20 20 20 d6 20 4c 4f 4f  50 0d 05 46 0b 20 20 20  |   . LOOP..F.   |
00000c60  20 fd 20 a3 0d 05 50 04  0d 05 5a 08 dd 20 a4 73  | . ...P...Z.. .s|
00000c70  0d 05 64 07 ea 20 71 0d  05 6e 09 de 20 71 20 38  |..d.. q..n.. q 8|
00000c80  0d 05 78 0a 21 71 3d 31  34 38 0d 05 82 0a 71 21  |..x.!q=148....q!|
00000c90  34 3d 2d 31 0d 05 8c 20  c8 99 20 22 4f 53 5f 52  |4=-1... .. "OS_R|
00000ca0  65 61 64 56 64 75 56 61  72 69 61 62 6c 65 73 22  |eadVduVariables"|
00000cb0  2c 71 2c 71 0d 05 96 07  3d 21 71 0d ff           |,q,q....=!q..|
00000cbd