Home » Archimedes archive » Archimedes World » AW-1991-05.adf » May91 » !AWMay91/Goodies/ProgARM/Design

!AWMay91/Goodies/ProgARM/Design

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-1991-05.adf » May91
Filename: !AWMay91/Goodies/ProgARM/Design
Read OK:
File size: 0C6F bytes
Load address: 0000
Exec address: 0000
File contents
   10REM>$.Pointer.Design
   20
   30MODE 9
   40
   50*POINTER 1
   60OFF
   70MOUSE ON
  100
  110length%=(32*8)+8
  120DIM data% length%*2
  130DIM block% 10
  140
  150FOR I%=0 TO length% STEP4
  160  data%!I%=0
  170NEXT
  180
  190colour%=1
  200
  210load_lx% = 24
  220load_by% = 1024-16-96
  230load_rx% = load_lx%+32*6
  240load_ty% = load_by% +56
  250RECTANGLE load_lx%,load_by%,load_rx%-load_lx%,load_ty%-load_by%
  260PRINTTAB(1,2)"Load";
  270
  280save_lx% = 24+32*7
  290save_by% = 1024-16-96
  300save_rx% = save_lx%+32*6
  310save_ty% = save_by% +56
  320RECTANGLE save_lx%,save_by%,save_rx%-save_lx%,save_ty%-save_by%
  330PRINTTAB(8,2)"Save";
  340
  350colour_lx% = 24+32*29
  360colour_by% = 1024-16-32*3
  370colour_rx% = colour_lx% + 32*8
  380colour_ty% = colour_by% + 56
  390RECTANGLEcolour_lx%,colour_by%,colour_rx%-colour_lx%,colour_ty%-colour_by%
  400PRINTTAB(30,2)"Colours";
  410
  420c0_lx% = 24+32*29
  430c0_by% = 1024-16-32*5
  440c0_rx% = c0_lx% + 32*8
  450c0_ty% = c0_by% + 56
  460RECTANGLEc0_lx%,c0_by%,c0_rx%-c0_lx%,c0_ty%-c0_by%
  470PRINTTAB(30,4)"0(T)";
  480
  490c1_lx% = 24+32*29
  500c1_by% = 1024-16-32*7
  510c1_rx% = c1_lx% + 32*8
  520c1_ty% = c1_by% + 56
  530RECTANGLEc1_lx%,c1_by%,c1_rx%-c1_lx%,c1_ty%-c1_by%
  540PRINTTAB(30,6)"1";
  550
  560c2_lx% = 24+32*29
  570c2_by% = 1024-16-32*9
  580c2_rx% = c2_lx% + 32*8
  590c2_ty% = c2_by% + 56
  600RECTANGLEc2_lx%,c2_by%,c2_rx%-c2_lx%,c2_ty%-c2_by%
  610PRINTTAB(30,8)"2";
  620
  630c3_lx% = 24+32*29
  640c3_by% = 1024-16-32*11
  650c3_rx% = c3_lx% + 32*8
  660c3_ty% = c3_by% + 56
  670RECTANGLEc3_lx%,c3_by%,c3_rx%-c3_lx%,c3_ty%-c3_by%
  680PRINTTAB(30,10)"3";
  690
  700plot_lx% = 100-8
  710plot_by% = 100-8
  720plot_rx% = plot_lx% + 32*16+8
  730plot_ty% = plot_by% + 32*16+8
  740RECTANGLEplot_lx%,plot_by%,plot_rx%-plot_lx%,plot_ty%-plot_by%
  750
  760REM Now set up the pointer colours
  770VDU 19,1,25,&00,&F0,&F0
  780VDU 19,2,25,0,0,&F0
  790VDU 19,3,25,&F0,0,0
  800
  820REPEAT
  830  MOUSE X%,Y%,Z%
  840  IF Z%=4 THEN
  850   CASE TRUE OF
  860   WHEN X%>=load_lx% AND X%<load_rx% AND Y%>=load_by% AND Y%<load_ty%
  870     PROCload
  880   WHEN X%>=save_lx% AND X%<save_rx% AND Y%>=save_by% AND Y%<save_ty%
  890     PROCsave
  900   WHEN X%>=plot_lx% AND X%<plot_rx% AND Y%>=plot_by% AND Y%<plot_ty%
  910     PROCplot(X%,Y%)
  920   WHEN X%>=c0_lx% AND X%<c0_rx% AND Y%>=c0_by% AND Y%<c0_ty%
  930     colour%=0
  940   WHEN X%>=c1_lx% AND X%<c1_rx% AND Y%>=c1_by% AND Y%<c1_ty%
  950     colour%=1
  970   WHEN X%>=c2_lx% AND X%<c2_rx% AND Y%>=c2_by% AND Y%<c2_ty%
  980     colour%=2
 1000   WHEN X%>=c3_lx% AND X%<c3_rx% AND Y%>=c3_by% AND Y%<c3_ty%
 1001     colour%=3
 1020  ENDCASE
 1030 ENDIF
 1040UNTIL FALSE
 1050END
 1200
 1210DEFPROCload
 1220VDU28,1,10,20,7
 1230INPUT"Load ";name$
 1240IF name$<>"" THEN
 1250  OSCLI "LOAD "+name$+" "+STR$~data%
 1260  PROCrefresh
 1270ENDIF
 1280VDU12,26
 1290ENDPROC
 1300
 1310DEFPROCsave
 1320VDU28,1,10,20,7
 1330INPUT"Save ";name$
 1340IF name$<>"" THEN
 1350  OSCLI "SAVE "+name$+" "+STR$~data%+"+"+STR$~(length%*2)
 1360ENDIF
 1370VDU12,26
 1380ENDPROC
 1390
 1410DEFPROCrefresh
 1420LOCALM%,N%,Q%,X%,Y%,V%
 1430X%=0
 1440Y%=31*16
 1450FOR M%=0 TO 31
 1460  FOR N%=0 TO 7
 1470    V%=?(N%+M%*8+data%+8)
 1480    FOR Q%=0 TO 3
 1490      GCOL V% AND 3
 1500      V%=V% DIV 4
 1510      RECTANGLE FILL X%+100,Y%+100,12,12
 1520      X%+=16
 1530    NEXT
 1540  NEXT
 1550  Y%-=16
 1560  X%=0
 1570NEXT
 1580ENDPROC
 1590
 1600DEFPROCplot(X%,Y%)
 1610LOCALS%,A%,V%,byte%
 1620X%-=100:X%=X%-(X% MOD 16)
 1630Y%-=100:Y%=Y%-(Y% MOD 16)
 1640CASE TRUE OF
 1650WHEN X%>31*16,Y%>31*16 :ENDPROC
 1660ENDCASE
 1670GCOL colour%
 1680RECTANGLE FILL X%+100,Y%+100,12,12
 1690X%=X% DIV 16
 1700Y%=31-(Y% DIV 16)
 1710S%=2*(X% MOD 4)
 1720A%=3<<S%
 1730byte%=8+X%/4+Y%*8
 1740V%=data%?byte% AND (&FF-A%) OR (colour%<<S%)
 1750data%?byte%=V%
 1760ENDPROC

�>$.Pointer.Design

� 9
(
2*POINTER 1
<�
Fȗ �
d
nlength%=(32*8)+8
x� data% length%*2
�� block% 10
�
�� I%=0 � length% �4
�  data%!I%=0
��
�
�
colour%=1
�
�load_lx% = 24
�load_by% = 1024-16-96
�load_rx% = load_lx%+32*6
�load_ty% = load_by% +56
�<ȓ load_lx%,load_by%,load_rx%-load_lx%,load_ty%-load_by%
�1,2)"Load";

save_lx% = 24+32*7
"save_by% = 1024-16-96
,save_rx% = save_lx%+32*6
6save_ty% = save_by% +56
@<ȓ save_lx%,save_by%,save_rx%-save_lx%,save_ty%-save_by%
J�8,2)"Save";
T
^colour_lx% = 24+32*29
hcolour_by% = 1024-16-32*3
r"colour_rx% = colour_lx% + 32*8
| colour_ty% = colour_by% + 56
�Gȓcolour_lx%,colour_by%,colour_rx%-colour_lx%,colour_ty%-colour_by%
��30,2)"Colours";
�
�c0_lx% = 24+32*29
�c0_by% = 1024-16-32*5
�c0_rx% = c0_lx% + 32*8
�c0_ty% = c0_by% + 56
�/ȓc0_lx%,c0_by%,c0_rx%-c0_lx%,c0_ty%-c0_by%
��30,4)"0(T)";
�
�c1_lx% = 24+32*29
�c1_by% = 1024-16-32*7
�c1_rx% = c1_lx% + 32*8
c1_ty% = c1_by% + 56
/ȓc1_lx%,c1_by%,c1_rx%-c1_lx%,c1_ty%-c1_by%
�30,6)"1";
&
0c2_lx% = 24+32*29
:c2_by% = 1024-16-32*9
Dc2_rx% = c2_lx% + 32*8
Nc2_ty% = c2_by% + 56
X/ȓc2_lx%,c2_by%,c2_rx%-c2_lx%,c2_ty%-c2_by%
b�30,8)"2";
l
vc3_lx% = 24+32*29
�c3_by% = 1024-16-32*11
�c3_rx% = c3_lx% + 32*8
�c3_ty% = c3_by% + 56
�/ȓc3_lx%,c3_by%,c3_rx%-c3_lx%,c3_ty%-c3_by%
��30,10)"3";
�
�plot_lx% = 100-8
�plot_by% = 100-8
�!plot_rx% = plot_lx% + 32*16+8
�!plot_ty% = plot_by% + 32*16+8
�;ȓplot_lx%,plot_by%,plot_rx%-plot_lx%,plot_ty%-plot_by%
�
�$� Now set up the pointer colours
� 19,1,25,&00,&F0,&F0
� 19,2,25,0,0,&F0
� 19,3,25,&F0,0,0
 
4�
>  ȗ X%,Y%,Z%
H  � Z%=4 �
R
   Ȏ � �
\@   � X%>=load_lx% � X%<load_rx% � Y%>=load_by% � Y%<load_ty%
f     �load
p@   � X%>=save_lx% � X%<save_rx% � Y%>=save_by% � Y%<save_ty%
z     �save
�@   � X%>=plot_lx% � X%<plot_rx% � Y%>=plot_by% � Y%<plot_ty%
�     �plot(X%,Y%)
�8   � X%>=c0_lx% � X%<c0_rx% � Y%>=c0_by% � Y%<c0_ty%
�     colour%=0
�8   � X%>=c1_lx% � X%<c1_rx% � Y%>=c1_by% � Y%<c1_ty%
�     colour%=1
�8   � X%>=c2_lx% � X%<c2_rx% � Y%>=c2_by% � Y%<c2_ty%
�     colour%=2
�8   � X%>=c3_lx% � X%<c3_rx% � Y%>=c3_by% � Y%<c3_ty%
�     colour%=3
�  �
 �
� �
�
�
�
��load
��28,1,10,20,7
��"Load ";name$
�� name$<>"" �
�!  � "LOAD "+name$+" "+�~data%
�  �refresh
��

�12,26

�


��save
(�28,1,10,20,7
2�"Save ";name$
<� name$<>"" �
F3  � "SAVE "+name$+" "+�~data%+"+"+�~(length%*2)
P�
Z
�12,26
d�
n
�
��refresh
��M%,N%,Q%,X%,Y%,V%
�X%=0
�Y%=31*16
�� M%=0 � 31
�  � N%=0 � 7
�    V%=?(N%+M%*8+data%+8)
�    � Q%=0 � 3
�      � V% � 3
�      V%=V% � 4
�#      ȓ Ȑ X%+100,Y%+100,12,12
�      X%+=16
�	    �
  �
  Y%-=16

  X%=0
"�
,�
6
@��plot(X%,Y%)
J�S%,A%,V%,byte%
TX%-=100:X%=X%-(X% � 16)
^Y%-=100:Y%=Y%-(Y% � 16)
h
Ȏ � �
r� X%>31*16,Y%>31*16 :�
|�
�
� colour%
�ȓ Ȑ X%+100,Y%+100,12,12
�X%=X% � 16
�Y%=31-(Y% � 16)
�S%=2*(X% � 4)
�A%=3<<S%
�byte%=8+X%/4+Y%*8
�-V%=data%?byte% � (&FF-A%) � (colour%<<S%)
�data%?byte%=V%
��
�
00000000  0d 00 0a 16 f4 3e 24 2e  50 6f 69 6e 74 65 72 2e  |.....>$.Pointer.|
00000010  44 65 73 69 67 6e 0d 00  14 04 0d 00 1e 07 eb 20  |Design......... |
00000020  39 0d 00 28 04 0d 00 32  0e 2a 50 4f 49 4e 54 45  |9..(...2.*POINTE|
00000030  52 20 31 0d 00 3c 05 87  0d 00 46 08 c8 97 20 ee  |R 1..<....F... .|
00000040  0d 00 64 04 0d 00 6e 14  6c 65 6e 67 74 68 25 3d  |..d...n.length%=|
00000050  28 33 32 2a 38 29 2b 38  0d 00 78 15 de 20 64 61  |(32*8)+8..x.. da|
00000060  74 61 25 20 6c 65 6e 67  74 68 25 2a 32 0d 00 82  |ta% length%*2...|
00000070  0f de 20 62 6c 6f 63 6b  25 20 31 30 0d 00 8c 04  |.. block% 10....|
00000080  0d 00 96 17 e3 20 49 25  3d 30 20 b8 20 6c 65 6e  |..... I%=0 . len|
00000090  67 74 68 25 20 88 34 0d  00 a0 10 20 20 64 61 74  |gth% .4....  dat|
000000a0  61 25 21 49 25 3d 30 0d  00 aa 05 ed 0d 00 b4 04  |a%!I%=0.........|
000000b0  0d 00 be 0d 63 6f 6c 6f  75 72 25 3d 31 0d 00 c8  |....colour%=1...|
000000c0  04 0d 00 d2 11 6c 6f 61  64 5f 6c 78 25 20 3d 20  |.....load_lx% = |
000000d0  32 34 0d 00 dc 19 6c 6f  61 64 5f 62 79 25 20 3d  |24....load_by% =|
000000e0  20 31 30 32 34 2d 31 36  2d 39 36 0d 00 e6 1c 6c  | 1024-16-96....l|
000000f0  6f 61 64 5f 72 78 25 20  3d 20 6c 6f 61 64 5f 6c  |oad_rx% = load_l|
00000100  78 25 2b 33 32 2a 36 0d  00 f0 1b 6c 6f 61 64 5f  |x%+32*6....load_|
00000110  74 79 25 20 3d 20 6c 6f  61 64 5f 62 79 25 20 2b  |ty% = load_by% +|
00000120  35 36 0d 00 fa 3c c8 93  20 6c 6f 61 64 5f 6c 78  |56...<.. load_lx|
00000130  25 2c 6c 6f 61 64 5f 62  79 25 2c 6c 6f 61 64 5f  |%,load_by%,load_|
00000140  72 78 25 2d 6c 6f 61 64  5f 6c 78 25 2c 6c 6f 61  |rx%-load_lx%,loa|
00000150  64 5f 74 79 25 2d 6c 6f  61 64 5f 62 79 25 0d 01  |d_ty%-load_by%..|
00000160  04 11 f1 8a 31 2c 32 29  22 4c 6f 61 64 22 3b 0d  |....1,2)"Load";.|
00000170  01 0e 04 0d 01 18 16 73  61 76 65 5f 6c 78 25 20  |.......save_lx% |
00000180  3d 20 32 34 2b 33 32 2a  37 0d 01 22 19 73 61 76  |= 24+32*7..".sav|
00000190  65 5f 62 79 25 20 3d 20  31 30 32 34 2d 31 36 2d  |e_by% = 1024-16-|
000001a0  39 36 0d 01 2c 1c 73 61  76 65 5f 72 78 25 20 3d  |96..,.save_rx% =|
000001b0  20 73 61 76 65 5f 6c 78  25 2b 33 32 2a 36 0d 01  | save_lx%+32*6..|
000001c0  36 1b 73 61 76 65 5f 74  79 25 20 3d 20 73 61 76  |6.save_ty% = sav|
000001d0  65 5f 62 79 25 20 2b 35  36 0d 01 40 3c c8 93 20  |e_by% +56..@<.. |
000001e0  73 61 76 65 5f 6c 78 25  2c 73 61 76 65 5f 62 79  |save_lx%,save_by|
000001f0  25 2c 73 61 76 65 5f 72  78 25 2d 73 61 76 65 5f  |%,save_rx%-save_|
00000200  6c 78 25 2c 73 61 76 65  5f 74 79 25 2d 73 61 76  |lx%,save_ty%-sav|
00000210  65 5f 62 79 25 0d 01 4a  11 f1 8a 38 2c 32 29 22  |e_by%..J...8,2)"|
00000220  53 61 76 65 22 3b 0d 01  54 04 0d 01 5e 19 63 6f  |Save";..T...^.co|
00000230  6c 6f 75 72 5f 6c 78 25  20 3d 20 32 34 2b 33 32  |lour_lx% = 24+32|
00000240  2a 32 39 0d 01 68 1d 63  6f 6c 6f 75 72 5f 62 79  |*29..h.colour_by|
00000250  25 20 3d 20 31 30 32 34  2d 31 36 2d 33 32 2a 33  |% = 1024-16-32*3|
00000260  0d 01 72 22 63 6f 6c 6f  75 72 5f 72 78 25 20 3d  |..r"colour_rx% =|
00000270  20 63 6f 6c 6f 75 72 5f  6c 78 25 20 2b 20 33 32  | colour_lx% + 32|
00000280  2a 38 0d 01 7c 20 63 6f  6c 6f 75 72 5f 74 79 25  |*8..| colour_ty%|
00000290  20 3d 20 63 6f 6c 6f 75  72 5f 62 79 25 20 2b 20  | = colour_by% + |
000002a0  35 36 0d 01 86 47 c8 93  63 6f 6c 6f 75 72 5f 6c  |56...G..colour_l|
000002b0  78 25 2c 63 6f 6c 6f 75  72 5f 62 79 25 2c 63 6f  |x%,colour_by%,co|
000002c0  6c 6f 75 72 5f 72 78 25  2d 63 6f 6c 6f 75 72 5f  |lour_rx%-colour_|
000002d0  6c 78 25 2c 63 6f 6c 6f  75 72 5f 74 79 25 2d 63  |lx%,colour_ty%-c|
000002e0  6f 6c 6f 75 72 5f 62 79  25 0d 01 90 15 f1 8a 33  |olour_by%......3|
000002f0  30 2c 32 29 22 43 6f 6c  6f 75 72 73 22 3b 0d 01  |0,2)"Colours";..|
00000300  9a 04 0d 01 a4 15 63 30  5f 6c 78 25 20 3d 20 32  |......c0_lx% = 2|
00000310  34 2b 33 32 2a 32 39 0d  01 ae 19 63 30 5f 62 79  |4+32*29....c0_by|
00000320  25 20 3d 20 31 30 32 34  2d 31 36 2d 33 32 2a 35  |% = 1024-16-32*5|
00000330  0d 01 b8 1a 63 30 5f 72  78 25 20 3d 20 63 30 5f  |....c0_rx% = c0_|
00000340  6c 78 25 20 2b 20 33 32  2a 38 0d 01 c2 18 63 30  |lx% + 32*8....c0|
00000350  5f 74 79 25 20 3d 20 63  30 5f 62 79 25 20 2b 20  |_ty% = c0_by% + |
00000360  35 36 0d 01 cc 2f c8 93  63 30 5f 6c 78 25 2c 63  |56.../..c0_lx%,c|
00000370  30 5f 62 79 25 2c 63 30  5f 72 78 25 2d 63 30 5f  |0_by%,c0_rx%-c0_|
00000380  6c 78 25 2c 63 30 5f 74  79 25 2d 63 30 5f 62 79  |lx%,c0_ty%-c0_by|
00000390  25 0d 01 d6 12 f1 8a 33  30 2c 34 29 22 30 28 54  |%......30,4)"0(T|
000003a0  29 22 3b 0d 01 e0 04 0d  01 ea 15 63 31 5f 6c 78  |)";........c1_lx|
000003b0  25 20 3d 20 32 34 2b 33  32 2a 32 39 0d 01 f4 19  |% = 24+32*29....|
000003c0  63 31 5f 62 79 25 20 3d  20 31 30 32 34 2d 31 36  |c1_by% = 1024-16|
000003d0  2d 33 32 2a 37 0d 01 fe  1a 63 31 5f 72 78 25 20  |-32*7....c1_rx% |
000003e0  3d 20 63 31 5f 6c 78 25  20 2b 20 33 32 2a 38 0d  |= c1_lx% + 32*8.|
000003f0  02 08 18 63 31 5f 74 79  25 20 3d 20 63 31 5f 62  |...c1_ty% = c1_b|
00000400  79 25 20 2b 20 35 36 0d  02 12 2f c8 93 63 31 5f  |y% + 56.../..c1_|
00000410  6c 78 25 2c 63 31 5f 62  79 25 2c 63 31 5f 72 78  |lx%,c1_by%,c1_rx|
00000420  25 2d 63 31 5f 6c 78 25  2c 63 31 5f 74 79 25 2d  |%-c1_lx%,c1_ty%-|
00000430  63 31 5f 62 79 25 0d 02  1c 0f f1 8a 33 30 2c 36  |c1_by%......30,6|
00000440  29 22 31 22 3b 0d 02 26  04 0d 02 30 15 63 32 5f  |)"1";..&...0.c2_|
00000450  6c 78 25 20 3d 20 32 34  2b 33 32 2a 32 39 0d 02  |lx% = 24+32*29..|
00000460  3a 19 63 32 5f 62 79 25  20 3d 20 31 30 32 34 2d  |:.c2_by% = 1024-|
00000470  31 36 2d 33 32 2a 39 0d  02 44 1a 63 32 5f 72 78  |16-32*9..D.c2_rx|
00000480  25 20 3d 20 63 32 5f 6c  78 25 20 2b 20 33 32 2a  |% = c2_lx% + 32*|
00000490  38 0d 02 4e 18 63 32 5f  74 79 25 20 3d 20 63 32  |8..N.c2_ty% = c2|
000004a0  5f 62 79 25 20 2b 20 35  36 0d 02 58 2f c8 93 63  |_by% + 56..X/..c|
000004b0  32 5f 6c 78 25 2c 63 32  5f 62 79 25 2c 63 32 5f  |2_lx%,c2_by%,c2_|
000004c0  72 78 25 2d 63 32 5f 6c  78 25 2c 63 32 5f 74 79  |rx%-c2_lx%,c2_ty|
000004d0  25 2d 63 32 5f 62 79 25  0d 02 62 0f f1 8a 33 30  |%-c2_by%..b...30|
000004e0  2c 38 29 22 32 22 3b 0d  02 6c 04 0d 02 76 15 63  |,8)"2";..l...v.c|
000004f0  33 5f 6c 78 25 20 3d 20  32 34 2b 33 32 2a 32 39  |3_lx% = 24+32*29|
00000500  0d 02 80 1a 63 33 5f 62  79 25 20 3d 20 31 30 32  |....c3_by% = 102|
00000510  34 2d 31 36 2d 33 32 2a  31 31 0d 02 8a 1a 63 33  |4-16-32*11....c3|
00000520  5f 72 78 25 20 3d 20 63  33 5f 6c 78 25 20 2b 20  |_rx% = c3_lx% + |
00000530  33 32 2a 38 0d 02 94 18  63 33 5f 74 79 25 20 3d  |32*8....c3_ty% =|
00000540  20 63 33 5f 62 79 25 20  2b 20 35 36 0d 02 9e 2f  | c3_by% + 56.../|
00000550  c8 93 63 33 5f 6c 78 25  2c 63 33 5f 62 79 25 2c  |..c3_lx%,c3_by%,|
00000560  63 33 5f 72 78 25 2d 63  33 5f 6c 78 25 2c 63 33  |c3_rx%-c3_lx%,c3|
00000570  5f 74 79 25 2d 63 33 5f  62 79 25 0d 02 a8 10 f1  |_ty%-c3_by%.....|
00000580  8a 33 30 2c 31 30 29 22  33 22 3b 0d 02 b2 04 0d  |.30,10)"3";.....|
00000590  02 bc 14 70 6c 6f 74 5f  6c 78 25 20 3d 20 31 30  |...plot_lx% = 10|
000005a0  30 2d 38 0d 02 c6 14 70  6c 6f 74 5f 62 79 25 20  |0-8....plot_by% |
000005b0  3d 20 31 30 30 2d 38 0d  02 d0 21 70 6c 6f 74 5f  |= 100-8...!plot_|
000005c0  72 78 25 20 3d 20 70 6c  6f 74 5f 6c 78 25 20 2b  |rx% = plot_lx% +|
000005d0  20 33 32 2a 31 36 2b 38  0d 02 da 21 70 6c 6f 74  | 32*16+8...!plot|
000005e0  5f 74 79 25 20 3d 20 70  6c 6f 74 5f 62 79 25 20  |_ty% = plot_by% |
000005f0  2b 20 33 32 2a 31 36 2b  38 0d 02 e4 3b c8 93 70  |+ 32*16+8...;..p|
00000600  6c 6f 74 5f 6c 78 25 2c  70 6c 6f 74 5f 62 79 25  |lot_lx%,plot_by%|
00000610  2c 70 6c 6f 74 5f 72 78  25 2d 70 6c 6f 74 5f 6c  |,plot_rx%-plot_l|
00000620  78 25 2c 70 6c 6f 74 5f  74 79 25 2d 70 6c 6f 74  |x%,plot_ty%-plot|
00000630  5f 62 79 25 0d 02 ee 04  0d 02 f8 24 f4 20 4e 6f  |_by%.......$. No|
00000640  77 20 73 65 74 20 75 70  20 74 68 65 20 70 6f 69  |w set up the poi|
00000650  6e 74 65 72 20 63 6f 6c  6f 75 72 73 0d 03 02 19  |nter colours....|
00000660  ef 20 31 39 2c 31 2c 32  35 2c 26 30 30 2c 26 46  |. 19,1,25,&00,&F|
00000670  30 2c 26 46 30 0d 03 0c  15 ef 20 31 39 2c 32 2c  |0,&F0..... 19,2,|
00000680  32 35 2c 30 2c 30 2c 26  46 30 0d 03 16 15 ef 20  |25,0,0,&F0..... |
00000690  31 39 2c 33 2c 32 35 2c  26 46 30 2c 30 2c 30 0d  |19,3,25,&F0,0,0.|
000006a0  03 20 04 0d 03 34 05 f5  0d 03 3e 11 20 20 c8 97  |. ...4....>.  ..|
000006b0  20 58 25 2c 59 25 2c 5a  25 0d 03 48 0e 20 20 e7  | X%,Y%,Z%..H.  .|
000006c0  20 5a 25 3d 34 20 8c 0d  03 52 0d 20 20 20 c8 8e  | Z%=4 ...R.   ..|
000006d0  20 b9 20 ca 0d 03 5c 40  20 20 20 c9 20 58 25 3e  | . ...\@   . X%>|
000006e0  3d 6c 6f 61 64 5f 6c 78  25 20 80 20 58 25 3c 6c  |=load_lx% . X%<l|
000006f0  6f 61 64 5f 72 78 25 20  80 20 59 25 3e 3d 6c 6f  |oad_rx% . Y%>=lo|
00000700  61 64 5f 62 79 25 20 80  20 59 25 3c 6c 6f 61 64  |ad_by% . Y%<load|
00000710  5f 74 79 25 0d 03 66 0e  20 20 20 20 20 f2 6c 6f  |_ty%..f.     .lo|
00000720  61 64 0d 03 70 40 20 20  20 c9 20 58 25 3e 3d 73  |ad..p@   . X%>=s|
00000730  61 76 65 5f 6c 78 25 20  80 20 58 25 3c 73 61 76  |ave_lx% . X%<sav|
00000740  65 5f 72 78 25 20 80 20  59 25 3e 3d 73 61 76 65  |e_rx% . Y%>=save|
00000750  5f 62 79 25 20 80 20 59  25 3c 73 61 76 65 5f 74  |_by% . Y%<save_t|
00000760  79 25 0d 03 7a 0e 20 20  20 20 20 f2 73 61 76 65  |y%..z.     .save|
00000770  0d 03 84 40 20 20 20 c9  20 58 25 3e 3d 70 6c 6f  |...@   . X%>=plo|
00000780  74 5f 6c 78 25 20 80 20  58 25 3c 70 6c 6f 74 5f  |t_lx% . X%<plot_|
00000790  72 78 25 20 80 20 59 25  3e 3d 70 6c 6f 74 5f 62  |rx% . Y%>=plot_b|
000007a0  79 25 20 80 20 59 25 3c  70 6c 6f 74 5f 74 79 25  |y% . Y%<plot_ty%|
000007b0  0d 03 8e 15 20 20 20 20  20 f2 70 6c 6f 74 28 58  |....     .plot(X|
000007c0  25 2c 59 25 29 0d 03 98  38 20 20 20 c9 20 58 25  |%,Y%)...8   . X%|
000007d0  3e 3d 63 30 5f 6c 78 25  20 80 20 58 25 3c 63 30  |>=c0_lx% . X%<c0|
000007e0  5f 72 78 25 20 80 20 59  25 3e 3d 63 30 5f 62 79  |_rx% . Y%>=c0_by|
000007f0  25 20 80 20 59 25 3c 63  30 5f 74 79 25 0d 03 a2  |% . Y%<c0_ty%...|
00000800  12 20 20 20 20 20 63 6f  6c 6f 75 72 25 3d 30 0d  |.     colour%=0.|
00000810  03 ac 38 20 20 20 c9 20  58 25 3e 3d 63 31 5f 6c  |..8   . X%>=c1_l|
00000820  78 25 20 80 20 58 25 3c  63 31 5f 72 78 25 20 80  |x% . X%<c1_rx% .|
00000830  20 59 25 3e 3d 63 31 5f  62 79 25 20 80 20 59 25  | Y%>=c1_by% . Y%|
00000840  3c 63 31 5f 74 79 25 0d  03 b6 12 20 20 20 20 20  |<c1_ty%....     |
00000850  63 6f 6c 6f 75 72 25 3d  31 0d 03 ca 38 20 20 20  |colour%=1...8   |
00000860  c9 20 58 25 3e 3d 63 32  5f 6c 78 25 20 80 20 58  |. X%>=c2_lx% . X|
00000870  25 3c 63 32 5f 72 78 25  20 80 20 59 25 3e 3d 63  |%<c2_rx% . Y%>=c|
00000880  32 5f 62 79 25 20 80 20  59 25 3c 63 32 5f 74 79  |2_by% . Y%<c2_ty|
00000890  25 0d 03 d4 12 20 20 20  20 20 63 6f 6c 6f 75 72  |%....     colour|
000008a0  25 3d 32 0d 03 e8 38 20  20 20 c9 20 58 25 3e 3d  |%=2...8   . X%>=|
000008b0  63 33 5f 6c 78 25 20 80  20 58 25 3c 63 33 5f 72  |c3_lx% . X%<c3_r|
000008c0  78 25 20 80 20 59 25 3e  3d 63 33 5f 62 79 25 20  |x% . Y%>=c3_by% |
000008d0  80 20 59 25 3c 63 33 5f  74 79 25 0d 03 e9 12 20  |. Y%<c3_ty%.... |
000008e0  20 20 20 20 63 6f 6c 6f  75 72 25 3d 33 0d 03 fc  |    colour%=3...|
000008f0  07 20 20 cb 0d 04 06 06  20 cd 0d 04 10 07 fd 20  |.  ..... ...... |
00000900  a3 0d 04 1a 05 e0 0d 04  b0 04 0d 04 ba 0a dd f2  |................|
00000910  6c 6f 61 64 0d 04 c4 11  ef 32 38 2c 31 2c 31 30  |load.....28,1,10|
00000920  2c 32 30 2c 37 0d 04 ce  12 e8 22 4c 6f 61 64 20  |,20,7....."Load |
00000930  22 3b 6e 61 6d 65 24 0d  04 d8 11 e7 20 6e 61 6d  |";name$..... nam|
00000940  65 24 3c 3e 22 22 20 8c  0d 04 e2 21 20 20 ff 20  |e$<>"" ....!  . |
00000950  22 4c 4f 41 44 20 22 2b  6e 61 6d 65 24 2b 22 20  |"LOAD "+name$+" |
00000960  22 2b c3 7e 64 61 74 61  25 0d 04 ec 0e 20 20 f2  |"+.~data%....  .|
00000970  72 65 66 72 65 73 68 0d  04 f6 05 cd 0d 05 00 0a  |refresh.........|
00000980  ef 31 32 2c 32 36 0d 05  0a 05 e1 0d 05 14 04 0d  |.12,26..........|
00000990  05 1e 0a dd f2 73 61 76  65 0d 05 28 11 ef 32 38  |.....save..(..28|
000009a0  2c 31 2c 31 30 2c 32 30  2c 37 0d 05 32 12 e8 22  |,1,10,20,7..2.."|
000009b0  53 61 76 65 20 22 3b 6e  61 6d 65 24 0d 05 3c 11  |Save ";name$..<.|
000009c0  e7 20 6e 61 6d 65 24 3c  3e 22 22 20 8c 0d 05 46  |. name$<>"" ...F|
000009d0  33 20 20 ff 20 22 53 41  56 45 20 22 2b 6e 61 6d  |3  . "SAVE "+nam|
000009e0  65 24 2b 22 20 22 2b c3  7e 64 61 74 61 25 2b 22  |e$+" "+.~data%+"|
000009f0  2b 22 2b c3 7e 28 6c 65  6e 67 74 68 25 2a 32 29  |+"+.~(length%*2)|
00000a00  0d 05 50 05 cd 0d 05 5a  0a ef 31 32 2c 32 36 0d  |..P....Z..12,26.|
00000a10  05 64 05 e1 0d 05 6e 04  0d 05 82 0d dd f2 72 65  |.d....n.......re|
00000a20  66 72 65 73 68 0d 05 8c  16 ea 4d 25 2c 4e 25 2c  |fresh.....M%,N%,|
00000a30  51 25 2c 58 25 2c 59 25  2c 56 25 0d 05 96 08 58  |Q%,X%,Y%,V%....X|
00000a40  25 3d 30 0d 05 a0 0c 59  25 3d 33 31 2a 31 36 0d  |%=0....Y%=31*16.|
00000a50  05 aa 0f e3 20 4d 25 3d  30 20 b8 20 33 31 0d 05  |.... M%=0 . 31..|
00000a60  b4 10 20 20 e3 20 4e 25  3d 30 20 b8 20 37 0d 05  |..  . N%=0 . 7..|
00000a70  be 1d 20 20 20 20 56 25  3d 3f 28 4e 25 2b 4d 25  |..    V%=?(N%+M%|
00000a80  2a 38 2b 64 61 74 61 25  2b 38 29 0d 05 c8 12 20  |*8+data%+8).... |
00000a90  20 20 20 e3 20 51 25 3d  30 20 b8 20 33 0d 05 d2  |   . Q%=0 . 3...|
00000aa0  12 20 20 20 20 20 20 e6  20 56 25 20 80 20 33 0d  |.      . V% . 3.|
00000ab0  05 dc 13 20 20 20 20 20  20 56 25 3d 56 25 20 81  |...      V%=V% .|
00000ac0  20 34 0d 05 e6 23 20 20  20 20 20 20 c8 93 20 c8  | 4...#      .. .|
00000ad0  90 20 58 25 2b 31 30 30  2c 59 25 2b 31 30 30 2c  |. X%+100,Y%+100,|
00000ae0  31 32 2c 31 32 0d 05 f0  10 20 20 20 20 20 20 58  |12,12....      X|
00000af0  25 2b 3d 31 36 0d 05 fa  09 20 20 20 20 ed 0d 06  |%+=16....    ...|
00000b00  04 07 20 20 ed 0d 06 0e  0c 20 20 59 25 2d 3d 31  |..  .....  Y%-=1|
00000b10  36 0d 06 18 0a 20 20 58  25 3d 30 0d 06 22 05 ed  |6....  X%=0.."..|
00000b20  0d 06 2c 05 e1 0d 06 36  04 0d 06 40 11 dd f2 70  |..,....6...@...p|
00000b30  6c 6f 74 28 58 25 2c 59  25 29 0d 06 4a 13 ea 53  |lot(X%,Y%)..J..S|
00000b40  25 2c 41 25 2c 56 25 2c  62 79 74 65 25 0d 06 54  |%,A%,V%,byte%..T|
00000b50  1b 58 25 2d 3d 31 30 30  3a 58 25 3d 58 25 2d 28  |.X%-=100:X%=X%-(|
00000b60  58 25 20 83 20 31 36 29  0d 06 5e 1b 59 25 2d 3d  |X% . 16)..^.Y%-=|
00000b70  31 30 30 3a 59 25 3d 59  25 2d 28 59 25 20 83 20  |100:Y%=Y%-(Y% . |
00000b80  31 36 29 0d 06 68 0a c8  8e 20 b9 20 ca 0d 06 72  |16)..h... . ...r|
00000b90  1a c9 20 58 25 3e 33 31  2a 31 36 2c 59 25 3e 33  |.. X%>31*16,Y%>3|
00000ba0  31 2a 31 36 20 3a e1 0d  06 7c 05 cb 0d 06 86 0d  |1*16 :...|......|
00000bb0  e6 20 63 6f 6c 6f 75 72  25 0d 06 90 1d c8 93 20  |. colour%...... |
00000bc0  c8 90 20 58 25 2b 31 30  30 2c 59 25 2b 31 30 30  |.. X%+100,Y%+100|
00000bd0  2c 31 32 2c 31 32 0d 06  9a 0e 58 25 3d 58 25 20  |,12,12....X%=X% |
00000be0  81 20 31 36 0d 06 a4 13  59 25 3d 33 31 2d 28 59  |. 16....Y%=31-(Y|
00000bf0  25 20 81 20 31 36 29 0d  06 ae 11 53 25 3d 32 2a  |% . 16)....S%=2*|
00000c00  28 58 25 20 83 20 34 29  0d 06 b8 0c 41 25 3d 33  |(X% . 4)....A%=3|
00000c10  3c 3c 53 25 0d 06 c2 15  62 79 74 65 25 3d 38 2b  |<<S%....byte%=8+|
00000c20  58 25 2f 34 2b 59 25 2a  38 0d 06 cc 2d 56 25 3d  |X%/4+Y%*8...-V%=|
00000c30  64 61 74 61 25 3f 62 79  74 65 25 20 80 20 28 26  |data%?byte% . (&|
00000c40  46 46 2d 41 25 29 20 84  20 28 63 6f 6c 6f 75 72  |FF-A%) . (colour|
00000c50  25 3c 3c 53 25 29 0d 06  d6 12 64 61 74 61 25 3f  |%<<S%)....data%?|
00000c60  62 79 74 65 25 3d 56 25  0d 06 e0 05 e1 0d ff     |byte%=V%.......|
00000c6f