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