Home » Archimedes archive » Archimedes World » AW-1994-08-Disc1.adf » Disk1Aug94 » !AWAug94/Goodies/3D_Demo/Plotter

!AWAug94/Goodies/3D_Demo/Plotter

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 » Archimedes World » AW-1994-08-Disc1.adf » Disk1Aug94
Filename: !AWAug94/Goodies/3D_Demo/Plotter
Read OK:
File size: 082A bytes
Load address: 0000
Exec address: 0000
File contents
   10REM >Plotter
   20REM Program : Plotter
   30REM           Plots a simple 16x16 sprite onto the screen
   40REM Author  : Kevin J Swinton
   50REM Version : Acorn A5000.1.00
   60REM Date    : Thursday 26th May 1994
   70ON ERROR MODE MODE : REPORT : PRINT " at Line ";ERL : END
   80
   90
  100
  110
  120
  130MODE 13 : OFF
  140
  150 PROCedure_PlotSprite
  160
  170END
  180
  190
  200
  210
  220
  230DEF PROCedure_PlotSprite
  240
  250 RESTORE
  260
  270 base   = FNction_FindBaseAddress
  280 offset = FNction_FindOffset( 100,100 )
  290 base  += offset
  300
  310 FOR row = 1 TO 16
  320
  330  FOR column = 1 TO 16
  340
  350   READ colour_value
  360   ?base      = colour_value
  370
  380   base += 320
  390
  400  NEXT column
  410
  420  base -= 320*16
  430  base += 1
  440
  450 NEXT row
  460
  470ENDPROC
  480
  490
  500
  510
  520
  530DEF FNction_FindBaseAddress
  540
  550 DIM input_list  8
  560 DIM output_list 4
  570
  580 input_list!0 = 149
  590 input_list!4 =  -1
  600
  610 SYS "OS_ReadVduVariables",input_list,output_list
  620
  630=output_list!0
  640
  650
  660
  670
  680
  690DEF FNction_FindOffset( x,y )
  700= (x-1) + ( (y-1) * 320 )
  710
  720
  730
  740
  750
  760DATA &00,&00,&00,&00,&77,&77,&77,&77,&77,&77,&77,&00,&00,&00,&00,&00
  770DATA &00,&00,&00,&77,&77,&77,&77,&77,&77,&77,&77,&77,&00,&00,&00,&00
  780DATA &00,&00,&77,&77,&77,&77,&77,&77,&77,&77,&77,&77,&77,&00,&00,&00
  790DATA &00,&77,&77,&77,&77,&77,&77,&77,&77,&77,&77,&77,&77,&77,&00,&00
  800DATA &77,&77,&77,&77,&83,&83,&77,&77,&77,&83,&77,&77,&77,&77,&77,&00
  810DATA &77,&77,&77,&77,&FF,&83,&77,&77,&77,&77,&83,&77,&77,&77,&77,&00
  820DATA &77,&77,&77,&77,&77,&77,&77,&77,&77,&77,&77,&83,&77,&77,&77,&00
  830DATA &77,&77,&77,&77,&77,&77,&77,&77,&77,&77,&77,&83,&77,&77,&77,&00
  840DATA &77,&77,&77,&77,&77,&77,&77,&77,&77,&77,&77,&83,&77,&77,&77,&00
  850DATA &77,&77,&77,&77,&83,&83,&77,&77,&77,&77,&83,&77,&77,&77,&77,&00
  860DATA &77,&77,&77,&77,&FF,&83,&77,&77,&77,&83,&77,&77,&77,&77,&77,&00
  870DATA &00,&77,&77,&77,&77,&77,&77,&77,&77,&77,&77,&77,&77,&77,&00,&00
  880DATA &00,&00,&77,&77,&77,&77,&77,&77,&77,&77,&77,&77,&77,&00,&00,&00
  890DATA &00,&00,&00,&77,&77,&77,&77,&77,&77,&77,&77,&77,&00,&00,&00,&00
  900DATA &00,&00,&00,&00,&77,&77,&77,&77,&77,&77,&77,&00,&00,&00,&00,&00
  910DATA &00,&00,&00,&00,&00,&00,&00,&00,&00,&00,&00,&00,&00,&00,&00,&00

� >Plotter
� Program : Plotter
;�           Plots a simple 16x16 sprite onto the screen
(� Author  : Kevin J Swinton
2 � Version : Acorn A5000.1.00
<&� Date    : Thursday 26th May 1994
F%� � � � : � : � " at Line ";� : �
P
Z
d
n
x
�� 13 : �
�
� �edure_PlotSprite
�
��
�
�
�
�
�
�� �edure_PlotSprite
�
� �

$ base   = �ction_FindBaseAddress
* offset = �ction_FindOffset( 100,100 )
" base  += offset
,
6 � row = 1 � 16
@
J  � column = 1 � 16
T
^   � colour_value
h    ?base      = colour_value
r
|   base += 320
�
�  � column
�
�  base -= 320*16
�  base += 1
�
�
 � row
�
��
�
�
�
�

� �ction_FindBaseAddress

& � input_list  8
0 � output_list 4
:
D input_list!0 = 149
N input_list!4 =  -1
X
b4 ș "OS_ReadVduVariables",input_list,output_list
l
v=output_list!0
�
�
�
�
�
�� �ction_FindOffset( x,y )
�= (x-1) + ( (y-1) * 320 )
�
�
�
�
�
�E� &00,&00,&00,&00,&77,&77,&77,&77,&77,&77,&77,&00,&00,&00,&00,&00
E� &00,&00,&00,&77,&77,&77,&77,&77,&77,&77,&77,&77,&00,&00,&00,&00
E� &00,&00,&77,&77,&77,&77,&77,&77,&77,&77,&77,&77,&77,&00,&00,&00
E� &00,&77,&77,&77,&77,&77,&77,&77,&77,&77,&77,&77,&77,&77,&00,&00
 E� &77,&77,&77,&77,&83,&83,&77,&77,&77,&83,&77,&77,&77,&77,&77,&00
*E� &77,&77,&77,&77,&FF,&83,&77,&77,&77,&77,&83,&77,&77,&77,&77,&00
4E� &77,&77,&77,&77,&77,&77,&77,&77,&77,&77,&77,&83,&77,&77,&77,&00
>E� &77,&77,&77,&77,&77,&77,&77,&77,&77,&77,&77,&83,&77,&77,&77,&00
HE� &77,&77,&77,&77,&77,&77,&77,&77,&77,&77,&77,&83,&77,&77,&77,&00
RE� &77,&77,&77,&77,&83,&83,&77,&77,&77,&77,&83,&77,&77,&77,&77,&00
\E� &77,&77,&77,&77,&FF,&83,&77,&77,&77,&83,&77,&77,&77,&77,&77,&00
fE� &00,&77,&77,&77,&77,&77,&77,&77,&77,&77,&77,&77,&77,&77,&00,&00
pE� &00,&00,&77,&77,&77,&77,&77,&77,&77,&77,&77,&77,&77,&00,&00,&00
zE� &00,&00,&00,&77,&77,&77,&77,&77,&77,&77,&77,&77,&00,&00,&00,&00
�E� &00,&00,&00,&00,&77,&77,&77,&77,&77,&77,&77,&00,&00,&00,&00,&00
�E� &00,&00,&00,&00,&00,&00,&00,&00,&00,&00,&00,&00,&00,&00,&00,&00
�
00000000  0d 00 0a 0e f4 20 3e 50  6c 6f 74 74 65 72 0d 00  |..... >Plotter..|
00000010  14 17 f4 20 50 72 6f 67  72 61 6d 20 3a 20 50 6c  |... Program : Pl|
00000020  6f 74 74 65 72 0d 00 1e  3b f4 20 20 20 20 20 20  |otter...;.      |
00000030  20 20 20 20 20 50 6c 6f  74 73 20 61 20 73 69 6d  |     Plots a sim|
00000040  70 6c 65 20 31 36 78 31  36 20 73 70 72 69 74 65  |ple 16x16 sprite|
00000050  20 6f 6e 74 6f 20 74 68  65 20 73 63 72 65 65 6e  | onto the screen|
00000060  0d 00 28 1f f4 20 41 75  74 68 6f 72 20 20 3a 20  |..(.. Author  : |
00000070  4b 65 76 69 6e 20 4a 20  53 77 69 6e 74 6f 6e 0d  |Kevin J Swinton.|
00000080  00 32 20 f4 20 56 65 72  73 69 6f 6e 20 3a 20 41  |.2 . Version : A|
00000090  63 6f 72 6e 20 41 35 30  30 30 2e 31 2e 30 30 0d  |corn A5000.1.00.|
000000a0  00 3c 26 f4 20 44 61 74  65 20 20 20 20 3a 20 54  |.<&. Date    : T|
000000b0  68 75 72 73 64 61 79 20  32 36 74 68 20 4d 61 79  |hursday 26th May|
000000c0  20 31 39 39 34 0d 00 46  25 ee 20 85 20 eb 20 eb  | 1994..F%. . . .|
000000d0  20 3a 20 f6 20 3a 20 f1  20 22 20 61 74 20 4c 69  | : . : . " at Li|
000000e0  6e 65 20 22 3b 9e 20 3a  20 e0 0d 00 50 04 0d 00  |ne ";. : ...P...|
000000f0  5a 04 0d 00 64 04 0d 00  6e 04 0d 00 78 04 0d 00  |Z...d...n...x...|
00000100  82 0c eb 20 31 33 20 3a  20 87 0d 00 8c 04 0d 00  |... 13 : .......|
00000110  96 16 20 f2 65 64 75 72  65 5f 50 6c 6f 74 53 70  |.. .edure_PlotSp|
00000120  72 69 74 65 0d 00 a0 04  0d 00 aa 05 e0 0d 00 b4  |rite............|
00000130  04 0d 00 be 04 0d 00 c8  04 0d 00 d2 04 0d 00 dc  |................|
00000140  04 0d 00 e6 17 dd 20 f2  65 64 75 72 65 5f 50 6c  |...... .edure_Pl|
00000150  6f 74 53 70 72 69 74 65  0d 00 f0 04 0d 00 fa 06  |otSprite........|
00000160  20 f7 0d 01 04 04 0d 01  0e 24 20 62 61 73 65 20  | ........$ base |
00000170  20 20 3d 20 a4 63 74 69  6f 6e 5f 46 69 6e 64 42  |  = .ction_FindB|
00000180  61 73 65 41 64 64 72 65  73 73 0d 01 18 2a 20 6f  |aseAddress...* o|
00000190  66 66 73 65 74 20 3d 20  a4 63 74 69 6f 6e 5f 46  |ffset = .ction_F|
000001a0  69 6e 64 4f 66 66 73 65  74 28 20 31 30 30 2c 31  |indOffset( 100,1|
000001b0  30 30 20 29 0d 01 22 14  20 62 61 73 65 20 20 2b  |00 )..". base  +|
000001c0  3d 20 6f 66 66 73 65 74  0d 01 2c 04 0d 01 36 13  |= offset..,...6.|
000001d0  20 e3 20 72 6f 77 20 3d  20 31 20 b8 20 31 36 0d  | . row = 1 . 16.|
000001e0  01 40 04 0d 01 4a 17 20  20 e3 20 63 6f 6c 75 6d  |.@...J.  . colum|
000001f0  6e 20 3d 20 31 20 b8 20  31 36 0d 01 54 04 0d 01  |n = 1 . 16..T...|
00000200  5e 15 20 20 20 f3 20 63  6f 6c 6f 75 72 5f 76 61  |^.   . colour_va|
00000210  6c 75 65 0d 01 68 20 20  20 20 3f 62 61 73 65 20  |lue..h    ?base |
00000220  20 20 20 20 20 3d 20 63  6f 6c 6f 75 72 5f 76 61  |     = colour_va|
00000230  6c 75 65 0d 01 72 04 0d  01 7c 12 20 20 20 62 61  |lue..r...|.   ba|
00000240  73 65 20 2b 3d 20 33 32  30 0d 01 86 04 0d 01 90  |se += 320.......|
00000250  0e 20 20 ed 20 63 6f 6c  75 6d 6e 0d 01 9a 04 0d  |.  . column.....|
00000260  01 a4 14 20 20 62 61 73  65 20 2d 3d 20 33 32 30  |...  base -= 320|
00000270  2a 31 36 0d 01 ae 0f 20  20 62 61 73 65 20 2b 3d  |*16....  base +=|
00000280  20 31 0d 01 b8 04 0d 01  c2 0a 20 ed 20 72 6f 77  | 1........ . row|
00000290  0d 01 cc 04 0d 01 d6 05  e1 0d 01 e0 04 0d 01 ea  |................|
000002a0  04 0d 01 f4 04 0d 01 fe  04 0d 02 08 04 0d 02 12  |................|
000002b0  1c dd 20 a4 63 74 69 6f  6e 5f 46 69 6e 64 42 61  |.. .ction_FindBa|
000002c0  73 65 41 64 64 72 65 73  73 0d 02 1c 04 0d 02 26  |seAddress......&|
000002d0  14 20 de 20 69 6e 70 75  74 5f 6c 69 73 74 20 20  |. . input_list  |
000002e0  38 0d 02 30 14 20 de 20  6f 75 74 70 75 74 5f 6c  |8..0. . output_l|
000002f0  69 73 74 20 34 0d 02 3a  04 0d 02 44 17 20 69 6e  |ist 4..:...D. in|
00000300  70 75 74 5f 6c 69 73 74  21 30 20 3d 20 31 34 39  |put_list!0 = 149|
00000310  0d 02 4e 17 20 69 6e 70  75 74 5f 6c 69 73 74 21  |..N. input_list!|
00000320  34 20 3d 20 20 2d 31 0d  02 58 04 0d 02 62 34 20  |4 =  -1..X...b4 |
00000330  c8 99 20 22 4f 53 5f 52  65 61 64 56 64 75 56 61  |.. "OS_ReadVduVa|
00000340  72 69 61 62 6c 65 73 22  2c 69 6e 70 75 74 5f 6c  |riables",input_l|
00000350  69 73 74 2c 6f 75 74 70  75 74 5f 6c 69 73 74 0d  |ist,output_list.|
00000360  02 6c 04 0d 02 76 12 3d  6f 75 74 70 75 74 5f 6c  |.l...v.=output_l|
00000370  69 73 74 21 30 0d 02 80  04 0d 02 8a 04 0d 02 94  |ist!0...........|
00000380  04 0d 02 9e 04 0d 02 a8  04 0d 02 b2 1e dd 20 a4  |.............. .|
00000390  63 74 69 6f 6e 5f 46 69  6e 64 4f 66 66 73 65 74  |ction_FindOffset|
000003a0  28 20 78 2c 79 20 29 0d  02 bc 1d 3d 20 28 78 2d  |( x,y )....= (x-|
000003b0  31 29 20 2b 20 28 20 28  79 2d 31 29 20 2a 20 33  |1) + ( (y-1) * 3|
000003c0  32 30 20 29 0d 02 c6 04  0d 02 d0 04 0d 02 da 04  |20 )............|
000003d0  0d 02 e4 04 0d 02 ee 04  0d 02 f8 45 dc 20 26 30  |...........E. &0|
000003e0  30 2c 26 30 30 2c 26 30  30 2c 26 30 30 2c 26 37  |0,&00,&00,&00,&7|
000003f0  37 2c 26 37 37 2c 26 37  37 2c 26 37 37 2c 26 37  |7,&77,&77,&77,&7|
00000400  37 2c 26 37 37 2c 26 37  37 2c 26 30 30 2c 26 30  |7,&77,&77,&00,&0|
00000410  30 2c 26 30 30 2c 26 30  30 2c 26 30 30 0d 03 02  |0,&00,&00,&00...|
00000420  45 dc 20 26 30 30 2c 26  30 30 2c 26 30 30 2c 26  |E. &00,&00,&00,&|
00000430  37 37 2c 26 37 37 2c 26  37 37 2c 26 37 37 2c 26  |77,&77,&77,&77,&|
*
00000450  37 37 2c 26 30 30 2c 26  30 30 2c 26 30 30 2c 26  |77,&00,&00,&00,&|
00000460  30 30 0d 03 0c 45 dc 20  26 30 30 2c 26 30 30 2c  |00...E. &00,&00,|
00000470  26 37 37 2c 26 37 37 2c  26 37 37 2c 26 37 37 2c  |&77,&77,&77,&77,|
*
00000490  26 37 37 2c 26 37 37 2c  26 37 37 2c 26 30 30 2c  |&77,&77,&77,&00,|
000004a0  26 30 30 2c 26 30 30 0d  03 16 45 dc 20 26 30 30  |&00,&00...E. &00|
000004b0  2c 26 37 37 2c 26 37 37  2c 26 37 37 2c 26 37 37  |,&77,&77,&77,&77|
*
000004e0  2c 26 37 37 2c 26 30 30  2c 26 30 30 0d 03 20 45  |,&77,&00,&00.. E|
000004f0  dc 20 26 37 37 2c 26 37  37 2c 26 37 37 2c 26 37  |. &77,&77,&77,&7|
00000500  37 2c 26 38 33 2c 26 38  33 2c 26 37 37 2c 26 37  |7,&83,&83,&77,&7|
00000510  37 2c 26 37 37 2c 26 38  33 2c 26 37 37 2c 26 37  |7,&77,&83,&77,&7|
00000520  37 2c 26 37 37 2c 26 37  37 2c 26 37 37 2c 26 30  |7,&77,&77,&77,&0|
00000530  30 0d 03 2a 45 dc 20 26  37 37 2c 26 37 37 2c 26  |0..*E. &77,&77,&|
00000540  37 37 2c 26 37 37 2c 26  46 46 2c 26 38 33 2c 26  |77,&77,&FF,&83,&|
00000550  37 37 2c 26 37 37 2c 26  37 37 2c 26 37 37 2c 26  |77,&77,&77,&77,&|
00000560  38 33 2c 26 37 37 2c 26  37 37 2c 26 37 37 2c 26  |83,&77,&77,&77,&|
00000570  37 37 2c 26 30 30 0d 03  34 45 dc 20 26 37 37 2c  |77,&00..4E. &77,|
00000580  26 37 37 2c 26 37 37 2c  26 37 37 2c 26 37 37 2c  |&77,&77,&77,&77,|
*
000005a0  26 37 37 2c 26 37 37 2c  26 38 33 2c 26 37 37 2c  |&77,&77,&83,&77,|
000005b0  26 37 37 2c 26 37 37 2c  26 30 30 0d 03 3e 45 dc  |&77,&77,&00..>E.|
000005c0  20 26 37 37 2c 26 37 37  2c 26 37 37 2c 26 37 37  | &77,&77,&77,&77|
000005d0  2c 26 37 37 2c 26 37 37  2c 26 37 37 2c 26 37 37  |,&77,&77,&77,&77|
000005e0  2c 26 37 37 2c 26 37 37  2c 26 37 37 2c 26 38 33  |,&77,&77,&77,&83|
000005f0  2c 26 37 37 2c 26 37 37  2c 26 37 37 2c 26 30 30  |,&77,&77,&77,&00|
00000600  0d 03 48 45 dc 20 26 37  37 2c 26 37 37 2c 26 37  |..HE. &77,&77,&7|
00000610  37 2c 26 37 37 2c 26 37  37 2c 26 37 37 2c 26 37  |7,&77,&77,&77,&7|
*
00000630  37 2c 26 38 33 2c 26 37  37 2c 26 37 37 2c 26 37  |7,&83,&77,&77,&7|
00000640  37 2c 26 30 30 0d 03 52  45 dc 20 26 37 37 2c 26  |7,&00..RE. &77,&|
00000650  37 37 2c 26 37 37 2c 26  37 37 2c 26 38 33 2c 26  |77,&77,&77,&83,&|
00000660  38 33 2c 26 37 37 2c 26  37 37 2c 26 37 37 2c 26  |83,&77,&77,&77,&|
00000670  37 37 2c 26 38 33 2c 26  37 37 2c 26 37 37 2c 26  |77,&83,&77,&77,&|
00000680  37 37 2c 26 37 37 2c 26  30 30 0d 03 5c 45 dc 20  |77,&77,&00..\E. |
00000690  26 37 37 2c 26 37 37 2c  26 37 37 2c 26 37 37 2c  |&77,&77,&77,&77,|
000006a0  26 46 46 2c 26 38 33 2c  26 37 37 2c 26 37 37 2c  |&FF,&83,&77,&77,|
000006b0  26 37 37 2c 26 38 33 2c  26 37 37 2c 26 37 37 2c  |&77,&83,&77,&77,|
000006c0  26 37 37 2c 26 37 37 2c  26 37 37 2c 26 30 30 0d  |&77,&77,&77,&00.|
000006d0  03 66 45 dc 20 26 30 30  2c 26 37 37 2c 26 37 37  |.fE. &00,&77,&77|
000006e0  2c 26 37 37 2c 26 37 37  2c 26 37 37 2c 26 37 37  |,&77,&77,&77,&77|
*
00000700  2c 26 37 37 2c 26 37 37  2c 26 37 37 2c 26 30 30  |,&77,&77,&77,&00|
00000710  2c 26 30 30 0d 03 70 45  dc 20 26 30 30 2c 26 30  |,&00..pE. &00,&0|
00000720  30 2c 26 37 37 2c 26 37  37 2c 26 37 37 2c 26 37  |0,&77,&77,&77,&7|
00000730  37 2c 26 37 37 2c 26 37  37 2c 26 37 37 2c 26 37  |7,&77,&77,&77,&7|
00000740  37 2c 26 37 37 2c 26 37  37 2c 26 37 37 2c 26 30  |7,&77,&77,&77,&0|
00000750  30 2c 26 30 30 2c 26 30  30 0d 03 7a 45 dc 20 26  |0,&00,&00..zE. &|
00000760  30 30 2c 26 30 30 2c 26  30 30 2c 26 37 37 2c 26  |00,&00,&00,&77,&|
00000770  37 37 2c 26 37 37 2c 26  37 37 2c 26 37 37 2c 26  |77,&77,&77,&77,&|
*
00000790  30 30 2c 26 30 30 2c 26  30 30 2c 26 30 30 0d 03  |00,&00,&00,&00..|
000007a0  84 45 dc 20 26 30 30 2c  26 30 30 2c 26 30 30 2c  |.E. &00,&00,&00,|
000007b0  26 30 30 2c 26 37 37 2c  26 37 37 2c 26 37 37 2c  |&00,&77,&77,&77,|
000007c0  26 37 37 2c 26 37 37 2c  26 37 37 2c 26 37 37 2c  |&77,&77,&77,&77,|
000007d0  26 30 30 2c 26 30 30 2c  26 30 30 2c 26 30 30 2c  |&00,&00,&00,&00,|
000007e0  26 30 30 0d 03 8e 45 dc  20 26 30 30 2c 26 30 30  |&00...E. &00,&00|
000007f0  2c 26 30 30 2c 26 30 30  2c 26 30 30 2c 26 30 30  |,&00,&00,&00,&00|
*
00000820  2c 26 30 30 2c 26 30 30  0d ff                    |,&00,&00..|
0000082a