Home » Personal collection » Acorn tapes » Own_Work » drawer_tl_tape08a_c15_acorn_pixel.wav » SUPER-PIC

SUPER-PIC

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 » Personal collection » Acorn tapes » Own_Work » drawer_tl_tape08a_c15_acorn_pixel.wav
Filename: SUPER-PIC
Read OK:
File size: 042F bytes
Load address: FFFF0E00
Exec address: FFFF8023
File contents
   10 C=7
   20 MODE 2:Y=0:Y2=0:ON ERROR PROCerror
   30 VDU 28,0,4,12,0:NE=0:DIM L(302,4)
   40 A$=GET$
   50 IF A$="Z" THEN GCOL 0,0:MOVE Y,Y2:DRAW Y,Y2:GCOL0,C:Y=Y-1
   60 IF A$="X" THEN GCOL 0,0:MOVE Y,Y2:DRAW Y,Y2:GCOL 0,C:Y=Y+1
   70 IF A$=":" THEN GCOL 0,0:MOVE Y,Y2:DRAW Y,Y2:GCOL 0,C:Y2=Y2+1
   80 IF A$="/" THEN GCOL 0,0:MOVE Y,Y2:DRAW Y,Y2:GCOL 0,C:Y2=Y2-1
   90 IF A$="M" THEN L(NE,0)=Y:L(NE,1)=Y2
  100 IF A$="D" THEN L(NE,2)=Y:L(NE,3)=Y2:NE=NE+1:MOVE L(NE-1,0),L(NE-1,1):DRAW L(NE-1,2),L(NE-1,3):L(NE-1,4)=C
  110 IF A$="R" THEN PROCredraw
  120 IF A$="S" THEN PROCsave
  130 IF A$="L" THEN PROCload
  140 IF A$="C" THEN INPUT C:FOR C2=0 TO 15:IF C=C2 THEN GCOL 0,C:NEXTC2
  150 IF Y<0 OR Y>1000 THEN Y=1000
  160 IF Y2<0 OR Y2>800 THEN Y2=800
  170 MOVE Y,Y2:DRAW Y,Y2:GOTO 40
  180 DEFPROCredraw
  190 IF NE=0 THEN ENDPROC
  200 FOR R=1 TO NE:COLOUR L(R,4)
  210 MOVE L(R,0),L(R,1):DRAW L(R,2),L(R,3)
  220 NEXT:ENDPROC
  230 DEFPROCload:CLEAR:Y=0:Y2=0:DIM L(200,4)
  240 INPUT"FILENAME";F$:*EXEC F$:ENDPROC
  250 DEFPROCsave
  260 INPUT"FILENAME";F$:*SPOOL F$
  270 PRINT"MODE 2:VDU 28,0,4,12,0:NE=";NE
  290 FOR S=0 TO NE-1:PRINT"COLOUR";L(S,4)
  300 PRINT"MOVE";L(S,0);",";L(S,1);":DRAW";L(S,2);",";L(S,3):NEXT:*SPOOL
  310 ENDPROC
  320 DEFPROCerror
  330 IF ERR=15 THEN PRINT"OUT OF MEMORY!":PRINT"SAVING":PROCsave
  340 IF ERR=17 THEN PRINT"ESCAPE!":VDU7
  350 IF ERR<>17 AND ERR<>15 THEN PRINTERR:END
  360 ENDPROC

 C=7
 � 2:Y=0:Y2=0:� � �error
" � 28,0,4,12,0:NE=0:� L(302,4)
(	 A$=�
2. � A$="Z" � � 0,0:� Y,Y2:� Y,Y2:�0,C:Y=Y-1
</ � A$="X" � � 0,0:� Y,Y2:� Y,Y2:� 0,C:Y=Y+1
F1 � A$=":" � � 0,0:� Y,Y2:� Y,Y2:� 0,C:Y2=Y2+1
P1 � A$="/" � � 0,0:� Y,Y2:� Y,Y2:� 0,C:Y2=Y2-1
Z$ � A$="M" � L(NE,0)=Y:L(NE,1)=Y2
dd � A$="D" � L(NE,2)=Y:L(NE,3)=Y2:NE=NE+1:� L(NE-1,0),L(NE-1,1):� L(NE-1,2),L(NE-1,3):L(NE-1,4)=C
n � A$="R" � �redraw
x � A$="S" � �save
� � A$="L" � �load
�2 � A$="C" � � C:� C2=0 � 15:� C=C2 � � 0,C:�C2
� � Y<0 � Y>1000 � Y=1000
� � Y2<0 � Y2>800 � Y2=800
� � Y,Y2:� Y,Y2:� �Th@
�
 ��redraw
� � NE=0 � �
� � R=1 � NE:� L(R,4)
�$ � L(R,0),L(R,1):� L(R,2),L(R,3)
� �:�
�! ��load:�:Y=0:Y2=0:� L(200,4)
�$ �"FILENAME";F$:*EXEC F$:ENDPROC
� ��save
 �"FILENAME";F$:*SPOOL F$
% �"MODE 2:VDU 28,0,4,12,0:NE=";NE
"" � S=0 � NE-1:�"COLOUR";L(S,4)
,A �"MOVE";L(S,0);",";L(S,1);":DRAW";L(S,2);",";L(S,3):�:*SPOOL
6 �
@ ��error
J/ � �=15 � �"OUT OF MEMORY!":�"SAVING":�save
T � �=17 � �"ESCAPE!":�7
^ � �<>17 � �<>15 � �:�
h �
�
00000000  0d 00 0a 08 20 43 3d 37  0d 00 14 1c 20 eb 20 32  |.... C=7.... . 2|
00000010  3a 59 3d 30 3a 59 32 3d  30 3a ee 20 85 20 f2 65  |:Y=0:Y2=0:. . .e|
00000020  72 72 6f 72 0d 00 1e 22  20 ef 20 32 38 2c 30 2c  |rror..." . 28,0,|
00000030  34 2c 31 32 2c 30 3a 4e  45 3d 30 3a de 20 4c 28  |4,12,0:NE=0:. L(|
00000040  33 30 32 2c 34 29 0d 00  28 09 20 41 24 3d be 0d  |302,4)..(. A$=..|
00000050  00 32 2e 20 e7 20 41 24  3d 22 5a 22 20 8c 20 e6  |.2. . A$="Z" . .|
00000060  20 30 2c 30 3a ec 20 59  2c 59 32 3a df 20 59 2c  | 0,0:. Y,Y2:. Y,|
00000070  59 32 3a e6 30 2c 43 3a  59 3d 59 2d 31 0d 00 3c  |Y2:.0,C:Y=Y-1..<|
00000080  2f 20 e7 20 41 24 3d 22  58 22 20 8c 20 e6 20 30  |/ . A$="X" . . 0|
00000090  2c 30 3a ec 20 59 2c 59  32 3a df 20 59 2c 59 32  |,0:. Y,Y2:. Y,Y2|
000000a0  3a e6 20 30 2c 43 3a 59  3d 59 2b 31 0d 00 46 31  |:. 0,C:Y=Y+1..F1|
000000b0  20 e7 20 41 24 3d 22 3a  22 20 8c 20 e6 20 30 2c  | . A$=":" . . 0,|
000000c0  30 3a ec 20 59 2c 59 32  3a df 20 59 2c 59 32 3a  |0:. Y,Y2:. Y,Y2:|
000000d0  e6 20 30 2c 43 3a 59 32  3d 59 32 2b 31 0d 00 50  |. 0,C:Y2=Y2+1..P|
000000e0  31 20 e7 20 41 24 3d 22  2f 22 20 8c 20 e6 20 30  |1 . A$="/" . . 0|
000000f0  2c 30 3a ec 20 59 2c 59  32 3a df 20 59 2c 59 32  |,0:. Y,Y2:. Y,Y2|
00000100  3a e6 20 30 2c 43 3a 59  32 3d 59 32 2d 31 0d 00  |:. 0,C:Y2=Y2-1..|
00000110  5a 24 20 e7 20 41 24 3d  22 4d 22 20 8c 20 4c 28  |Z$ . A$="M" . L(|
00000120  4e 45 2c 30 29 3d 59 3a  4c 28 4e 45 2c 31 29 3d  |NE,0)=Y:L(NE,1)=|
00000130  59 32 0d 00 64 64 20 e7  20 41 24 3d 22 44 22 20  |Y2..dd . A$="D" |
00000140  8c 20 4c 28 4e 45 2c 32  29 3d 59 3a 4c 28 4e 45  |. L(NE,2)=Y:L(NE|
00000150  2c 33 29 3d 59 32 3a 4e  45 3d 4e 45 2b 31 3a ec  |,3)=Y2:NE=NE+1:.|
00000160  20 4c 28 4e 45 2d 31 2c  30 29 2c 4c 28 4e 45 2d  | L(NE-1,0),L(NE-|
00000170  31 2c 31 29 3a df 20 4c  28 4e 45 2d 31 2c 32 29  |1,1):. L(NE-1,2)|
00000180  2c 4c 28 4e 45 2d 31 2c  33 29 3a 4c 28 4e 45 2d  |,L(NE-1,3):L(NE-|
00000190  31 2c 34 29 3d 43 0d 00  6e 17 20 e7 20 41 24 3d  |1,4)=C..n. . A$=|
000001a0  22 52 22 20 8c 20 f2 72  65 64 72 61 77 0d 00 78  |"R" . .redraw..x|
000001b0  15 20 e7 20 41 24 3d 22  53 22 20 8c 20 f2 73 61  |. . A$="S" . .sa|
000001c0  76 65 0d 00 82 15 20 e7  20 41 24 3d 22 4c 22 20  |ve.... . A$="L" |
000001d0  8c 20 f2 6c 6f 61 64 0d  00 8c 32 20 e7 20 41 24  |. .load...2 . A$|
000001e0  3d 22 43 22 20 8c 20 e8  20 43 3a e3 20 43 32 3d  |="C" . . C:. C2=|
000001f0  30 20 b8 20 31 35 3a e7  20 43 3d 43 32 20 8c 20  |0 . 15:. C=C2 . |
00000200  e6 20 30 2c 43 3a ed 43  32 0d 00 96 1c 20 e7 20  |. 0,C:.C2.... . |
00000210  59 3c 30 20 84 20 59 3e  31 30 30 30 20 8c 20 59  |Y<0 . Y>1000 . Y|
00000220  3d 31 30 30 30 0d 00 a0  1d 20 e7 20 59 32 3c 30  |=1000.... . Y2<0|
00000230  20 84 20 59 32 3e 38 30  30 20 8c 20 59 32 3d 38  | . Y2>800 . Y2=8|
00000240  30 30 0d 00 aa 19 20 ec  20 59 2c 59 32 3a df 20  |00.... . Y,Y2:. |
00000250  59 2c 59 32 3a e5 20 8d  54 68 40 0d 00 b4 0d 20  |Y,Y2:. .Th@.... |
00000260  dd f2 72 65 64 72 61 77  0d 00 be 0f 20 e7 20 4e  |..redraw.... . N|
00000270  45 3d 30 20 8c 20 e1 0d  00 c8 18 20 e3 20 52 3d  |E=0 . ..... . R=|
00000280  31 20 b8 20 4e 45 3a fb  20 4c 28 52 2c 34 29 0d  |1 . NE:. L(R,4).|
00000290  00 d2 24 20 ec 20 4c 28  52 2c 30 29 2c 4c 28 52  |..$ . L(R,0),L(R|
000002a0  2c 31 29 3a df 20 4c 28  52 2c 32 29 2c 4c 28 52  |,1):. L(R,2),L(R|
000002b0  2c 33 29 0d 00 dc 08 20  ed 3a e1 0d 00 e6 21 20  |,3).... .:....! |
000002c0  dd f2 6c 6f 61 64 3a d8  3a 59 3d 30 3a 59 32 3d  |..load:.:Y=0:Y2=|
000002d0  30 3a de 20 4c 28 32 30  30 2c 34 29 0d 00 f0 24  |0:. L(200,4)...$|
000002e0  20 e8 22 46 49 4c 45 4e  41 4d 45 22 3b 46 24 3a  | ."FILENAME";F$:|
000002f0  2a 45 58 45 43 20 46 24  3a 45 4e 44 50 52 4f 43  |*EXEC F$:ENDPROC|
00000300  0d 00 fa 0b 20 dd f2 73  61 76 65 0d 01 04 1d 20  |.... ..save.... |
00000310  e8 22 46 49 4c 45 4e 41  4d 45 22 3b 46 24 3a 2a  |."FILENAME";F$:*|
00000320  53 50 4f 4f 4c 20 46 24  0d 01 0e 25 20 f1 22 4d  |SPOOL F$...% ."M|
00000330  4f 44 45 20 32 3a 56 44  55 20 32 38 2c 30 2c 34  |ODE 2:VDU 28,0,4|
00000340  2c 31 32 2c 30 3a 4e 45  3d 22 3b 4e 45 0d 01 22  |,12,0:NE=";NE.."|
00000350  22 20 e3 20 53 3d 30 20  b8 20 4e 45 2d 31 3a f1  |" . S=0 . NE-1:.|
00000360  22 43 4f 4c 4f 55 52 22  3b 4c 28 53 2c 34 29 0d  |"COLOUR";L(S,4).|
00000370  01 2c 41 20 f1 22 4d 4f  56 45 22 3b 4c 28 53 2c  |.,A ."MOVE";L(S,|
00000380  30 29 3b 22 2c 22 3b 4c  28 53 2c 31 29 3b 22 3a  |0);",";L(S,1);":|
00000390  44 52 41 57 22 3b 4c 28  53 2c 32 29 3b 22 2c 22  |DRAW";L(S,2);","|
000003a0  3b 4c 28 53 2c 33 29 3a  ed 3a 2a 53 50 4f 4f 4c  |;L(S,3):.:*SPOOL|
000003b0  0d 01 36 06 20 e1 0d 01  40 0c 20 dd f2 65 72 72  |..6. ...@. ..err|
000003c0  6f 72 0d 01 4a 2f 20 e7  20 9f 3d 31 35 20 8c 20  |or..J/ . .=15 . |
000003d0  f1 22 4f 55 54 20 4f 46  20 4d 45 4d 4f 52 59 21  |."OUT OF MEMORY!|
000003e0  22 3a f1 22 53 41 56 49  4e 47 22 3a f2 73 61 76  |":."SAVING":.sav|
000003f0  65 0d 01 54 1b 20 e7 20  9f 3d 31 37 20 8c 20 f1  |e..T. . .=17 . .|
00000400  22 45 53 43 41 50 45 21  22 3a ef 37 0d 01 5e 1b  |"ESCAPE!":.7..^.|
00000410  20 e7 20 9f 3c 3e 31 37  20 80 20 9f 3c 3e 31 35  | . .<>17 . .<>15|
00000420  20 8c 20 f1 9f 3a e0 0d  01 68 06 20 e1 0d ff     | . ..:...h. ...|
0000042f
SUPER-PIC.m0
SUPER-PIC.m1
SUPER-PIC.m2
SUPER-PIC.m4
SUPER-PIC.m5