Home » CEEFAX disks » telesoftware16.adl » 23-07-89/Draw2

23-07-89/Draw2

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 » CEEFAX disks » telesoftware16.adl
Filename: 23-07-89/Draw2
Read OK:
File size: 05B2 bytes
Load address: FFFF1900
Exec address: FFFF8023
File contents
   10REM EASYDRAW 4.01
   20REM FILL ROUTINE BY L. CLARK
   30VDU4:ON ERROR IF R%=10 CHAIN"DRAW3" ELSE CHAIN"DRAW"
   40PROCA(X%,Y%):CHA
   50DEFPROCA(V%,W%):A%=V%:B%=V%:DIMA%(40,2):D%=1:F%=0:H%=POINT(X%,Y%):IFM%=2ORM%=5 G%=8ELSEG%=4
   60A%(0,0)=V%DIVG%*G%:A%(0,1)=W%DIV4*4:IFR%=1ANDH%=0ANDQ%=0ORR%=1ANDH%=0ANDS%=0PRINT'"CAN'T FILL. ";:ENDPROC
   70D%=D%-1:F%=A%(D%,2):V%=A%(D%,0):W%=A%(D%,1):A%=V%:B%=V%:IFF%=0F%=1ELSEF%=0
   80IFPOINT(A%,W%)<>H%A%=A%+G%:IFA%<1280GOTO80
   90IFPOINT(B%,W%)<>H%B%=B%-G%:IFB%>0GOTO90
  100IFPOINT(A%,W%)=H%A%=A%-G%:IFA%>0GOTO100
  110IFPOINT(B%,W%)=H%B%=B%+G%:IFB%<1280GOTO110
  120OV=V%:OW=W%
  130IFR%=0 OR R%=10 GCOL0,P%:MOVEA%+G%,W%:DRAWB%-G%,W%:GOTO150
  140IFF%=0GCOL0,S%:MOVEA%,W%:DRAWB%,W%:GCOL0,Q%:MOVEA%,W%:PLOT21,B%,W%ELSEGCOL0,Q%:MOVEA%,W%:DRAWB%,W%:GCOL0,S%:MOVEA%,W%:PLOT21,B%,W%
  150C%=A%:E%=B%:PROCL(W%-4):A%=C%:B%=E%:PROCL(W%+4)
  160IFD%<0ENDPROCELSEGOTO70
  170DEFPROCL(O%):IFPOINT(A%,O%)=H%ANDPOINT(A%+G%,O%)<>H%ANDPOINT(A%,W%)<>H%A%=A%+G%
  180IFPOINT(B%,O%)=H%ANDPOINT(B%-G%,O%)<>H%ANDPOINT(B%,W%)<>H%B%=B%-G%
  190IFPOINT(A%,O%)<>H%A%=A%+G%:IFA%<1280GOTO190
  200IFPOINT(B%,O%)<>H%B%=B%-G%:IFB%>0GOTO200
  210IFA%>B%ENDPROC
  220IFPOINT(A%,O%)=H%A%=A%-G%:IFA%>0GOTO220
  230IFPOINT(B%,O%)=H%B%=B%+G%:IFB%<1280GOTO230
  240IFOW=O% AND OV>A% AND OV<B% ENDPROC
  250Z%=1:FORL%=A%+G%TOB%-G%-4STEPG%:IFPOINT(L%,O%)=H%ANDZ%=1 A%(D%,0)=L%:A%(D%,1)=O%:A%(D%,2)=F%:D%=D%+1:Z%=0ELSEIFPOINT(L%,O%)<>H%Z%=1
  260NEXT:ENDPROC
  270DEFPROCB:GCOL0,P%:PROCD(X%,Y%,F%,E%,G%):ERR
  280DEFPROCF:GCOL0,P%:PROCD(X%,Y%,E%,E%,0):ERR
  290DEFPROCD(X%,Y%,v,w,S):GCOL0,P%:FORs=0TO2*PI+(PI/50)STEPPI/50:IFS=0FORs=0TO2*PI+(PI/25)STEPPI/25
  300V=v*SINs:`=w*COSs:IFS<>0 B%=V*COS(PI/(360/S/2))-`*SIN(PI/(360/S/2)):D%=V*SIN(PI/(360/S/2))+`*COS(PI/(360/S/2)):V=B%+X%:`=D%+Y%
  310IFS=0 V=V+X%:`=`+Y%
  320IFs=0MOVEV,`
  330IF`<0MOVEV,`:NEXT
  340IFI%=0DRAWV,`
  350IFI%=1MOVEX%,Y%:PLOT85,V,`
  360NEXT:ENDPROC

� EASYDRAW 4.01
� FILL ROUTINE BY L. CLARK
%�4:� � � R%=10 �"DRAW3" � �"DRAW"
(�A(X%,Y%):CHA
2N��A(V%,W%):A%=V%:B%=V%:�A%(40,2):D%=1:F%=0:H%=�X%,Y%):�M%=2�M%=5 G%=8�G%=4
<UA%(0,0)=V%�G%*G%:A%(0,1)=W%�4*4:�R%=1�H%=0�Q%=0�R%=1�H%=0�S%=0�'"CAN'T FILL. ";:�
FJD%=D%-1:F%=A%(D%,2):V%=A%(D%,0):W%=A%(D%,1):A%=V%:B%=V%:�F%=0F%=1�F%=0
P&�A%,W%)<>H%A%=A%+G%:�A%<1280�DP@
Z#�B%,W%)<>H%B%=B%-G%:�B%>0�DZ@
d"�A%,W%)=H%A%=A%-G%:�A%>0�Dd@
n%�B%,W%)=H%B%=B%+G%:�B%<1280�Dn@
xOV=V%:OW=W%
�1�R%=0 � R%=10 �0,P%:�A%+G%,W%:�B%-G%,W%:�tV@
�^�F%=0�0,S%:�A%,W%:�B%,W%:�0,Q%:�A%,W%:�21,B%,W%��0,Q%:�A%,W%:�B%,W%:�0,S%:�A%,W%:�21,B%,W%
�-C%=A%:E%=B%:�L(W%-4):A%=C%:B%=E%:�L(W%+4)
��D%<0��DF@
�:��L(O%):�A%,O%)=H%��A%+G%,O%)<>H%��A%,W%)<>H%A%=A%+G%
�2�B%,O%)=H%��B%-G%,O%)<>H%��B%,W%)<>H%B%=B%-G%
�&�A%,O%)<>H%A%=A%+G%:�A%<1280�t~@
�#�B%,O%)<>H%B%=B%-G%:�B%>0�dH@
��A%>B%�
�"�A%,O%)=H%A%=A%-G%:�A%>0�d\@
�%�B%,O%)=H%B%=B%+G%:�B%<1280�df@
��OW=O% � OV>A% � OV<B% �
�pZ%=1:�L%=A%+G%�B%-G%-4�G%:�L%,O%)=H%�Z%=1 A%(D%,0)=L%:A%(D%,1)=O%:A%(D%,2)=F%:D%=D%+1:Z%=0��L%,O%)<>H%Z%=1
�:�
"��B:�0,P%:�D(X%,Y%,F%,E%,G%):�
!��F:�0,P%:�D(X%,Y%,E%,E%,0):�
"H��D(X%,Y%,v,w,S):�0,P%:�s=0�2*�+(�/50)��/50:�S=0�s=0�2*�+(�/25)��/25
,qV=v*�s:`=w*�s:�S<>0 B%=V*�(�/(360/S/2))-`*�(�/(360/S/2)):D%=V*�(�/(360/S/2))+`*�(�/(360/S/2)):V=B%+X%:`=D%+Y%
6�S=0 V=V+X%:`=`+Y%
@�s=0�V,`
J�`<0�V,`:�
T
�I%=0�V,`
^�I%=1�X%,Y%:�85,V,`
h�:�
�
00000000  0d 00 0a 13 f4 20 45 41  53 59 44 52 41 57 20 34  |..... EASYDRAW 4|
00000010  2e 30 31 0d 00 14 1e f4  20 46 49 4c 4c 20 52 4f  |.01..... FILL RO|
00000020  55 54 49 4e 45 20 42 59  20 4c 2e 20 43 4c 41 52  |UTINE BY L. CLAR|
00000030  4b 0d 00 1e 25 ef 34 3a  ee 20 85 20 e7 20 52 25  |K...%.4:. . . R%|
00000040  3d 31 30 20 d7 22 44 52  41 57 33 22 20 8b 20 d7  |=10 ."DRAW3" . .|
00000050  22 44 52 41 57 22 0d 00  28 11 f2 41 28 58 25 2c  |"DRAW"..(..A(X%,|
00000060  59 25 29 3a 43 48 41 0d  00 32 4e dd f2 41 28 56  |Y%):CHA..2N..A(V|
00000070  25 2c 57 25 29 3a 41 25  3d 56 25 3a 42 25 3d 56  |%,W%):A%=V%:B%=V|
00000080  25 3a de 41 25 28 34 30  2c 32 29 3a 44 25 3d 31  |%:.A%(40,2):D%=1|
00000090  3a 46 25 3d 30 3a 48 25  3d b0 58 25 2c 59 25 29  |:F%=0:H%=.X%,Y%)|
000000a0  3a e7 4d 25 3d 32 84 4d  25 3d 35 20 47 25 3d 38  |:.M%=2.M%=5 G%=8|
000000b0  8b 47 25 3d 34 0d 00 3c  55 41 25 28 30 2c 30 29  |.G%=4..<UA%(0,0)|
000000c0  3d 56 25 81 47 25 2a 47  25 3a 41 25 28 30 2c 31  |=V%.G%*G%:A%(0,1|
000000d0  29 3d 57 25 81 34 2a 34  3a e7 52 25 3d 31 80 48  |)=W%.4*4:.R%=1.H|
000000e0  25 3d 30 80 51 25 3d 30  84 52 25 3d 31 80 48 25  |%=0.Q%=0.R%=1.H%|
000000f0  3d 30 80 53 25 3d 30 f1  27 22 43 41 4e 27 54 20  |=0.S%=0.'"CAN'T |
00000100  46 49 4c 4c 2e 20 22 3b  3a e1 0d 00 46 4a 44 25  |FILL. ";:...FJD%|
00000110  3d 44 25 2d 31 3a 46 25  3d 41 25 28 44 25 2c 32  |=D%-1:F%=A%(D%,2|
00000120  29 3a 56 25 3d 41 25 28  44 25 2c 30 29 3a 57 25  |):V%=A%(D%,0):W%|
00000130  3d 41 25 28 44 25 2c 31  29 3a 41 25 3d 56 25 3a  |=A%(D%,1):A%=V%:|
00000140  42 25 3d 56 25 3a e7 46  25 3d 30 46 25 3d 31 8b  |B%=V%:.F%=0F%=1.|
00000150  46 25 3d 30 0d 00 50 26  e7 b0 41 25 2c 57 25 29  |F%=0..P&..A%,W%)|
00000160  3c 3e 48 25 41 25 3d 41  25 2b 47 25 3a e7 41 25  |<>H%A%=A%+G%:.A%|
00000170  3c 31 32 38 30 e5 8d 44  50 40 0d 00 5a 23 e7 b0  |<1280..DP@..Z#..|
00000180  42 25 2c 57 25 29 3c 3e  48 25 42 25 3d 42 25 2d  |B%,W%)<>H%B%=B%-|
00000190  47 25 3a e7 42 25 3e 30  e5 8d 44 5a 40 0d 00 64  |G%:.B%>0..DZ@..d|
000001a0  22 e7 b0 41 25 2c 57 25  29 3d 48 25 41 25 3d 41  |"..A%,W%)=H%A%=A|
000001b0  25 2d 47 25 3a e7 41 25  3e 30 e5 8d 44 64 40 0d  |%-G%:.A%>0..Dd@.|
000001c0  00 6e 25 e7 b0 42 25 2c  57 25 29 3d 48 25 42 25  |.n%..B%,W%)=H%B%|
000001d0  3d 42 25 2b 47 25 3a e7  42 25 3c 31 32 38 30 e5  |=B%+G%:.B%<1280.|
000001e0  8d 44 6e 40 0d 00 78 0f  4f 56 3d 56 25 3a 4f 57  |.Dn@..x.OV=V%:OW|
000001f0  3d 57 25 0d 00 82 31 e7  52 25 3d 30 20 84 20 52  |=W%...1.R%=0 . R|
00000200  25 3d 31 30 20 e6 30 2c  50 25 3a ec 41 25 2b 47  |%=10 .0,P%:.A%+G|
00000210  25 2c 57 25 3a df 42 25  2d 47 25 2c 57 25 3a e5  |%,W%:.B%-G%,W%:.|
00000220  8d 74 56 40 0d 00 8c 5e  e7 46 25 3d 30 e6 30 2c  |.tV@...^.F%=0.0,|
00000230  53 25 3a ec 41 25 2c 57  25 3a df 42 25 2c 57 25  |S%:.A%,W%:.B%,W%|
00000240  3a e6 30 2c 51 25 3a ec  41 25 2c 57 25 3a f0 32  |:.0,Q%:.A%,W%:.2|
00000250  31 2c 42 25 2c 57 25 8b  e6 30 2c 51 25 3a ec 41  |1,B%,W%..0,Q%:.A|
00000260  25 2c 57 25 3a df 42 25  2c 57 25 3a e6 30 2c 53  |%,W%:.B%,W%:.0,S|
00000270  25 3a ec 41 25 2c 57 25  3a f0 32 31 2c 42 25 2c  |%:.A%,W%:.21,B%,|
00000280  57 25 0d 00 96 2d 43 25  3d 41 25 3a 45 25 3d 42  |W%...-C%=A%:E%=B|
00000290  25 3a f2 4c 28 57 25 2d  34 29 3a 41 25 3d 43 25  |%:.L(W%-4):A%=C%|
000002a0  3a 42 25 3d 45 25 3a f2  4c 28 57 25 2b 34 29 0d  |:B%=E%:.L(W%+4).|
000002b0  00 a0 10 e7 44 25 3c 30  e1 8b e5 8d 44 46 40 0d  |....D%<0....DF@.|
000002c0  00 aa 3a dd f2 4c 28 4f  25 29 3a e7 b0 41 25 2c  |..:..L(O%):..A%,|
000002d0  4f 25 29 3d 48 25 80 b0  41 25 2b 47 25 2c 4f 25  |O%)=H%..A%+G%,O%|
000002e0  29 3c 3e 48 25 80 b0 41  25 2c 57 25 29 3c 3e 48  |)<>H%..A%,W%)<>H|
000002f0  25 41 25 3d 41 25 2b 47  25 0d 00 b4 32 e7 b0 42  |%A%=A%+G%...2..B|
00000300  25 2c 4f 25 29 3d 48 25  80 b0 42 25 2d 47 25 2c  |%,O%)=H%..B%-G%,|
00000310  4f 25 29 3c 3e 48 25 80  b0 42 25 2c 57 25 29 3c  |O%)<>H%..B%,W%)<|
00000320  3e 48 25 42 25 3d 42 25  2d 47 25 0d 00 be 26 e7  |>H%B%=B%-G%...&.|
00000330  b0 41 25 2c 4f 25 29 3c  3e 48 25 41 25 3d 41 25  |.A%,O%)<>H%A%=A%|
00000340  2b 47 25 3a e7 41 25 3c  31 32 38 30 e5 8d 74 7e  |+G%:.A%<1280..t~|
00000350  40 0d 00 c8 23 e7 b0 42  25 2c 4f 25 29 3c 3e 48  |@...#..B%,O%)<>H|
00000360  25 42 25 3d 42 25 2d 47  25 3a e7 42 25 3e 30 e5  |%B%=B%-G%:.B%>0.|
00000370  8d 64 48 40 0d 00 d2 0b  e7 41 25 3e 42 25 e1 0d  |.dH@.....A%>B%..|
00000380  00 dc 22 e7 b0 41 25 2c  4f 25 29 3d 48 25 41 25  |.."..A%,O%)=H%A%|
00000390  3d 41 25 2d 47 25 3a e7  41 25 3e 30 e5 8d 64 5c  |=A%-G%:.A%>0..d\|
000003a0  40 0d 00 e6 25 e7 b0 42  25 2c 4f 25 29 3d 48 25  |@...%..B%,O%)=H%|
000003b0  42 25 3d 42 25 2b 47 25  3a e7 42 25 3c 31 32 38  |B%=B%+G%:.B%<128|
000003c0  30 e5 8d 64 66 40 0d 00  f0 1c e7 4f 57 3d 4f 25  |0..df@.....OW=O%|
000003d0  20 80 20 4f 56 3e 41 25  20 80 20 4f 56 3c 42 25  | . OV>A% . OV<B%|
000003e0  20 e1 0d 00 fa 70 5a 25  3d 31 3a e3 4c 25 3d 41  | ....pZ%=1:.L%=A|
000003f0  25 2b 47 25 b8 42 25 2d  47 25 2d 34 88 47 25 3a  |%+G%.B%-G%-4.G%:|
00000400  e7 b0 4c 25 2c 4f 25 29  3d 48 25 80 5a 25 3d 31  |..L%,O%)=H%.Z%=1|
00000410  20 41 25 28 44 25 2c 30  29 3d 4c 25 3a 41 25 28  | A%(D%,0)=L%:A%(|
00000420  44 25 2c 31 29 3d 4f 25  3a 41 25 28 44 25 2c 32  |D%,1)=O%:A%(D%,2|
00000430  29 3d 46 25 3a 44 25 3d  44 25 2b 31 3a 5a 25 3d  |)=F%:D%=D%+1:Z%=|
00000440  30 8b e7 b0 4c 25 2c 4f  25 29 3c 3e 48 25 5a 25  |0...L%,O%)<>H%Z%|
00000450  3d 31 0d 01 04 07 ed 3a  e1 0d 01 0e 22 dd f2 42  |=1.....:...."..B|
00000460  3a e6 30 2c 50 25 3a f2  44 28 58 25 2c 59 25 2c  |:.0,P%:.D(X%,Y%,|
00000470  46 25 2c 45 25 2c 47 25  29 3a 9f 0d 01 18 21 dd  |F%,E%,G%):....!.|
00000480  f2 46 3a e6 30 2c 50 25  3a f2 44 28 58 25 2c 59  |.F:.0,P%:.D(X%,Y|
00000490  25 2c 45 25 2c 45 25 2c  30 29 3a 9f 0d 01 22 48  |%,E%,E%,0):..."H|
000004a0  dd f2 44 28 58 25 2c 59  25 2c 76 2c 77 2c 53 29  |..D(X%,Y%,v,w,S)|
000004b0  3a e6 30 2c 50 25 3a e3  73 3d 30 b8 32 2a af 2b  |:.0,P%:.s=0.2*.+|
000004c0  28 af 2f 35 30 29 88 af  2f 35 30 3a e7 53 3d 30  |(./50)../50:.S=0|
000004d0  e3 73 3d 30 b8 32 2a af  2b 28 af 2f 32 35 29 88  |.s=0.2*.+(./25).|
000004e0  af 2f 32 35 0d 01 2c 71  56 3d 76 2a b5 73 3a 60  |./25..,qV=v*.s:`|
000004f0  3d 77 2a 9b 73 3a e7 53  3c 3e 30 20 42 25 3d 56  |=w*.s:.S<>0 B%=V|
00000500  2a 9b 28 af 2f 28 33 36  30 2f 53 2f 32 29 29 2d  |*.(./(360/S/2))-|
00000510  60 2a b5 28 af 2f 28 33  36 30 2f 53 2f 32 29 29  |`*.(./(360/S/2))|
00000520  3a 44 25 3d 56 2a b5 28  af 2f 28 33 36 30 2f 53  |:D%=V*.(./(360/S|
00000530  2f 32 29 29 2b 60 2a 9b  28 af 2f 28 33 36 30 2f  |/2))+`*.(./(360/|
00000540  53 2f 32 29 29 3a 56 3d  42 25 2b 58 25 3a 60 3d  |S/2)):V=B%+X%:`=|
00000550  44 25 2b 59 25 0d 01 36  16 e7 53 3d 30 20 56 3d  |D%+Y%..6..S=0 V=|
00000560  56 2b 58 25 3a 60 3d 60  2b 59 25 0d 01 40 0c e7  |V+X%:`=`+Y%..@..|
00000570  73 3d 30 ec 56 2c 60 0d  01 4a 0e e7 60 3c 30 ec  |s=0.V,`..J..`<0.|
00000580  56 2c 60 3a ed 0d 01 54  0d e7 49 25 3d 30 df 56  |V,`:...T..I%=0.V|
00000590  2c 60 0d 01 5e 17 e7 49  25 3d 31 ec 58 25 2c 59  |,`..^..I%=1.X%,Y|
000005a0  25 3a f0 38 35 2c 56 2c  60 0d 01 68 07 ed 3a e1  |%:.85,V,`..h..:.|
000005b0  0d ff                                             |..|
000005b2
23-07-89/Draw2.m0
23-07-89/Draw2.m1
23-07-89/Draw2.m2
23-07-89/Draw2.m4
23-07-89/Draw2.m5