Home » Personal collection » Acorn tapes » Electron_User » Electron_User_tape32a_acorn_eu_1992_march.wav » Blines

Blines

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 » Electron_User » Electron_User_tape32a_acorn_eu_1992_march.wav
Filename: Blines
Read OK:
File size: 0700 bytes
Load address: FFFFFB00
Exec address: FFFF802B
File contents
   10REM Pointless line program (BBC)
   20REM (C) Martin Dawe 1991
   30MODE1
   40VDU 23,1,0;0;0;0;
   50ONERRORPROCERR
   60PRINT"POINTLESS LINE PROGRAM"'
   70REPEAT
   80INPUT"(L)INES OR (S)OLID";o$
   90UNTIL INSTR("LlSs",o$)
  100IF INSTR("Ll",o$) lines=TRUE ELSE lines=FALSE
  110CLS
  120INPUT"LENGTH (100:MAX)";L%
  130INPUT"SCALE";SC
  140PROCsetup
  150DIM c1x(101),c1y(101),c2x(101),c2y(101),col(101)
  160rn=0
  170stc=0
  180on=0
  190dx1=50:dy1=50:dx2=20:dy2=20
  200x1=0:y1=0:x2=100:y2=0
  210col=0
  220:
  230REPEAT
  240c1x(rn)=x1
  250c1y(rn)=y1
  260c2x(rn)=x2
  270c2y(rn)=y2
  280IF x1>1279 dx1=-100
  290IF x1<8 dx1=100
  300IF x2>1279 dx2=-100
  310IF x2<8 dx2=100
  320IF y1>850 dy1=-100
  330IF y1<100 dy1=100
  340IF y2>850 dy2=-100
  350IF y2<100 dy2=100
  360IF x2>x1+300 dx1=dx1+96:dx2=dx2-96
  370IF x1>x2+300 dx1=dx1-96:dx2=dx2+96
  380IF y2>y1+300 dy1=dy1+96:dy2=dy2-96
  390IF y1>y2+300 dy1=dy1-96:dy2=dy2+96
  400:
  410col=col+1
  420IF col>3 col=1
  430col(rn)=col
  440:
  450fnrn=FNreen(rn)
  460PROCblock(x1,y1,x2,y2,c1x(fnrn),c1y(fnrn),c2x(fnrn),c2y(fnrn),col,0)
  470IF stc<L% stc=stc+1 ELSE on=on+1:fnrn=FNreen(on):PROCblock(c1x(on),c1y(on),c2x(on),c2y(on),c1x(fnrn),c1y(fnrn),c2x(fnrn),c2y(fnrn),col(on),0)
  480IF rn>L% rn=0
  490IF on>L% on=0
  500rn=rn+1
  510x1=x1+(dx1*SC)
  520x2=x2+(dx2*SC)
  530y1=y1+(dy1*SC):y2=y2+(dy2*SC)
  540IF RND(2)=1 dx1=dx1+20 ELSE dx1=dx1-20
  550IF RND(2)=1 dx2=dx2+20 ELSE dx2=dx2-20
  560IF RND(2)=1 dy1=dy1+20 ELSE dy1=dy1-20
  570IF RND(2)=1 dy2=dy2+20 ELSE dy2=dy2-20
  580IF INKEY(-1) THEN G=0 ELSE G=150
  590IF G<150 THEN G=G+1:GOTO 590
  600UNTIL 0
  610DEFFNreen(ren)
  620IF ren=1 =L%+1
  630IF ren=0 =L%+1
  640=ren-1
  650DEFPROCERR
  660PRINTTAB(0,2)"Do you wish to continue?"
  670IF GET=89 RUN
  680END
  690DEFPROCsetup
  700GCOL 0,1
  710MOVE 0,128
  720MOVE256,895
  730PLOT85,0,895
  740MOVE0,128
  750MOVE256,128
  760PLOT85,256,895
  770MOVE1279,128
  780MOVE1023,895
  790PLOT85,1279,895
  800MOVE1279,128
  810MOVE1023,128
  820PLOT85,1023,895
  830COLOUR6
  840PRINTTAB(1,30)"POINTLESS LINE PROGRAM"
  850COLOUR7
  860PRINTTAB(1,31)"WRITTEN BY MARTIN DAWE";
  870ENDPROC
  880DEFPROCblock(xa,ya,xb,yb,xa2,ya2,x

"� Pointless line program (BBC)
� (C) Martin Dawe 1991
�1
(� 23,1,0;0;0;0;
2
��ERR
<�"POINTLESS LINE PROGRAM"'
F�
P�"(L)INES OR (S)OLID";o$
Z� �"LlSs",o$)
d!� �"Ll",o$) lines=� � lines=�
n�
x�"LENGTH (100:MAX)";L%
��"SCALE";SC
�
�setup
�2� c1x(101),c1y(101),c2x(101),c2y(101),col(101)
�rn=0
�	stc=0
�on=0
�dx1=50:dy1=50:dx2=20:dy2=20
�x1=0:y1=0:x2=100:y2=0
�	col=0
�:
��
�c1x(rn)=x1
�c1y(rn)=y1
c2x(rn)=x2
c2y(rn)=y2
� x1>1279 dx1=-100
"� x1<8 dx1=100
,� x2>1279 dx2=-100
6� x2<8 dx2=100
@� y1>850 dy1=-100
J� y1<100 dy1=100
T� y2>850 dy2=-100
^� y2<100 dy2=100
h%� x2>x1+300 dx1=dx1+96:dx2=dx2-96
r%� x1>x2+300 dx1=dx1-96:dx2=dx2+96
|%� y2>y1+300 dy1=dy1+96:dy2=dy2-96
�%� y1>y2+300 dy1=dy1-96:dy2=dy2+96
�:
�
col=col+1
�� col>3 col=1
�col(rn)=col
�:
�fnrn=�reen(rn)
�E�block(x1,y1,x2,y2,c1x(fnrn),c1y(fnrn),c2x(fnrn),c2y(fnrn),col,0)
։� stc<L% stc=stc+1 � on=on+1:fnrn=�reen(on):�block(c1x(on),c1y(on),c2x(on),c2y(on),c1x(fnrn),c1y(fnrn),c2x(fnrn),c2y(fnrn),col(on),0)
�� rn>L% rn=0
�� on>L% on=0
�rn=rn+1
�x1=x1+(dx1*SC)
x2=x2+(dx2*SC)
!y1=y1+(dy1*SC):y2=y2+(dy2*SC)
$� �(2)=1 dx1=dx1+20 � dx1=dx1-20
&$� �(2)=1 dx2=dx2+20 � dx2=dx2-20
0$� �(2)=1 dy1=dy1+20 � dy1=dy1-20
:$� �(2)=1 dy2=dy2+20 � dy2=dy2-20
D� �(-1) � G=0 � G=150
N� G<150 � G=G+1:� �DNB
X� 0
bݤreen(ren)
l� ren=1 =L%+1
v� ren=0 =L%+1
�
=ren-1
�	��ERR
�$�0,2)"Do you wish to continue?"
�� �=89 �
��
���setup
�	� 0,1
�� 0,128
��256,895
�
�85,0,895
�
�0,128
��256,128
��85,256,895

�1279,128

�1023,895
�85,1279,895
 
�1279,128
*
�1023,128
4�85,1023,895
>�6
H#�1,30)"POINTLESS LINE PROGRAM"
R�7
\$�1,31)"WRITTEN BY MARTIN DAWE";
f�
p.��block(xa,ya,xb,yb,xa2,ya2,x
00000000  0d 00 0a 22 f4 20 50 6f  69 6e 74 6c 65 73 73 20  |...". Pointless |
00000010  6c 69 6e 65 20 70 72 6f  67 72 61 6d 20 28 42 42  |line program (BB|
00000020  43 29 0d 00 14 1a f4 20  28 43 29 20 4d 61 72 74  |C)..... (C) Mart|
00000030  69 6e 20 44 61 77 65 20  31 39 39 31 0d 00 1e 06  |in Dawe 1991....|
00000040  eb 31 0d 00 28 13 ef 20  32 33 2c 31 2c 30 3b 30  |.1..(.. 23,1,0;0|
00000050  3b 30 3b 30 3b 0d 00 32  0a ee 85 f2 45 52 52 0d  |;0;0;..2....ERR.|
00000060  00 3c 1e f1 22 50 4f 49  4e 54 4c 45 53 53 20 4c  |.<.."POINTLESS L|
00000070  49 4e 45 20 50 52 4f 47  52 41 4d 22 27 0d 00 46  |INE PROGRAM"'..F|
00000080  05 f5 0d 00 50 1c e8 22  28 4c 29 49 4e 45 53 20  |....P.."(L)INES |
00000090  4f 52 20 28 53 29 4f 4c  49 44 22 3b 6f 24 0d 00  |OR (S)OLID";o$..|
000000a0  5a 11 fd 20 a7 22 4c 6c  53 73 22 2c 6f 24 29 0d  |Z.. ."LlSs",o$).|
000000b0  00 64 21 e7 20 a7 22 4c  6c 22 2c 6f 24 29 20 6c  |.d!. ."Ll",o$) l|
000000c0  69 6e 65 73 3d b9 20 8b  20 6c 69 6e 65 73 3d a3  |ines=. . lines=.|
000000d0  0d 00 6e 05 db 0d 00 78  1a e8 22 4c 45 4e 47 54  |..n....x.."LENGT|
000000e0  48 20 28 31 30 30 3a 4d  41 58 29 22 3b 4c 25 0d  |H (100:MAX)";L%.|
000000f0  00 82 0f e8 22 53 43 41  4c 45 22 3b 53 43 0d 00  |...."SCALE";SC..|
00000100  8c 0a f2 73 65 74 75 70  0d 00 96 32 de 20 63 31  |...setup...2. c1|
00000110  78 28 31 30 31 29 2c 63  31 79 28 31 30 31 29 2c  |x(101),c1y(101),|
00000120  63 32 78 28 31 30 31 29  2c 63 32 79 28 31 30 31  |c2x(101),c2y(101|
00000130  29 2c 63 6f 6c 28 31 30  31 29 0d 00 a0 08 72 6e  |),col(101)....rn|
00000140  3d 30 0d 00 aa 09 73 74  63 3d 30 0d 00 b4 08 6f  |=0....stc=0....o|
00000150  6e 3d 30 0d 00 be 1f 64  78 31 3d 35 30 3a 64 79  |n=0....dx1=50:dy|
00000160  31 3d 35 30 3a 64 78 32  3d 32 30 3a 64 79 32 3d  |1=50:dx2=20:dy2=|
00000170  32 30 0d 00 c8 19 78 31  3d 30 3a 79 31 3d 30 3a  |20....x1=0:y1=0:|
00000180  78 32 3d 31 30 30 3a 79  32 3d 30 0d 00 d2 09 63  |x2=100:y2=0....c|
00000190  6f 6c 3d 30 0d 00 dc 05  3a 0d 00 e6 05 f5 0d 00  |ol=0....:.......|
000001a0  f0 0e 63 31 78 28 72 6e  29 3d 78 31 0d 00 fa 0e  |..c1x(rn)=x1....|
000001b0  63 31 79 28 72 6e 29 3d  79 31 0d 01 04 0e 63 32  |c1y(rn)=y1....c2|
000001c0  78 28 72 6e 29 3d 78 32  0d 01 0e 0e 63 32 79 28  |x(rn)=x2....c2y(|
000001d0  72 6e 29 3d 79 32 0d 01  18 16 e7 20 78 31 3e 31  |rn)=y2..... x1>1|
000001e0  32 37 39 20 64 78 31 3d  2d 31 30 30 0d 01 22 12  |279 dx1=-100..".|
000001f0  e7 20 78 31 3c 38 20 64  78 31 3d 31 30 30 0d 01  |. x1<8 dx1=100..|
00000200  2c 16 e7 20 78 32 3e 31  32 37 39 20 64 78 32 3d  |,.. x2>1279 dx2=|
00000210  2d 31 30 30 0d 01 36 12  e7 20 78 32 3c 38 20 64  |-100..6.. x2<8 d|
00000220  78 32 3d 31 30 30 0d 01  40 15 e7 20 79 31 3e 38  |x2=100..@.. y1>8|
00000230  35 30 20 64 79 31 3d 2d  31 30 30 0d 01 4a 14 e7  |50 dy1=-100..J..|
00000240  20 79 31 3c 31 30 30 20  64 79 31 3d 31 30 30 0d  | y1<100 dy1=100.|
00000250  01 54 15 e7 20 79 32 3e  38 35 30 20 64 79 32 3d  |.T.. y2>850 dy2=|
00000260  2d 31 30 30 0d 01 5e 14  e7 20 79 32 3c 31 30 30  |-100..^.. y2<100|
00000270  20 64 79 32 3d 31 30 30  0d 01 68 25 e7 20 78 32  | dy2=100..h%. x2|
00000280  3e 78 31 2b 33 30 30 20  64 78 31 3d 64 78 31 2b  |>x1+300 dx1=dx1+|
00000290  39 36 3a 64 78 32 3d 64  78 32 2d 39 36 0d 01 72  |96:dx2=dx2-96..r|
000002a0  25 e7 20 78 31 3e 78 32  2b 33 30 30 20 64 78 31  |%. x1>x2+300 dx1|
000002b0  3d 64 78 31 2d 39 36 3a  64 78 32 3d 64 78 32 2b  |=dx1-96:dx2=dx2+|
000002c0  39 36 0d 01 7c 25 e7 20  79 32 3e 79 31 2b 33 30  |96..|%. y2>y1+30|
000002d0  30 20 64 79 31 3d 64 79  31 2b 39 36 3a 64 79 32  |0 dy1=dy1+96:dy2|
000002e0  3d 64 79 32 2d 39 36 0d  01 86 25 e7 20 79 31 3e  |=dy2-96...%. y1>|
000002f0  79 32 2b 33 30 30 20 64  79 31 3d 64 79 31 2d 39  |y2+300 dy1=dy1-9|
00000300  36 3a 64 79 32 3d 64 79  32 2b 39 36 0d 01 90 05  |6:dy2=dy2+96....|
00000310  3a 0d 01 9a 0d 63 6f 6c  3d 63 6f 6c 2b 31 0d 01  |:....col=col+1..|
00000320  a4 11 e7 20 63 6f 6c 3e  33 20 63 6f 6c 3d 31 0d  |... col>3 col=1.|
00000330  01 ae 0f 63 6f 6c 28 72  6e 29 3d 63 6f 6c 0d 01  |...col(rn)=col..|
00000340  b8 05 3a 0d 01 c2 12 66  6e 72 6e 3d a4 72 65 65  |..:....fnrn=.ree|
00000350  6e 28 72 6e 29 0d 01 cc  45 f2 62 6c 6f 63 6b 28  |n(rn)...E.block(|
00000360  78 31 2c 79 31 2c 78 32  2c 79 32 2c 63 31 78 28  |x1,y1,x2,y2,c1x(|
00000370  66 6e 72 6e 29 2c 63 31  79 28 66 6e 72 6e 29 2c  |fnrn),c1y(fnrn),|
00000380  63 32 78 28 66 6e 72 6e  29 2c 63 32 79 28 66 6e  |c2x(fnrn),c2y(fn|
00000390  72 6e 29 2c 63 6f 6c 2c  30 29 0d 01 d6 89 e7 20  |rn),col,0)..... |
000003a0  73 74 63 3c 4c 25 20 73  74 63 3d 73 74 63 2b 31  |stc<L% stc=stc+1|
000003b0  20 8b 20 6f 6e 3d 6f 6e  2b 31 3a 66 6e 72 6e 3d  | . on=on+1:fnrn=|
000003c0  a4 72 65 65 6e 28 6f 6e  29 3a f2 62 6c 6f 63 6b  |.reen(on):.block|
000003d0  28 63 31 78 28 6f 6e 29  2c 63 31 79 28 6f 6e 29  |(c1x(on),c1y(on)|
000003e0  2c 63 32 78 28 6f 6e 29  2c 63 32 79 28 6f 6e 29  |,c2x(on),c2y(on)|
000003f0  2c 63 31 78 28 66 6e 72  6e 29 2c 63 31 79 28 66  |,c1x(fnrn),c1y(f|
00000400  6e 72 6e 29 2c 63 32 78  28 66 6e 72 6e 29 2c 63  |nrn),c2x(fnrn),c|
00000410  32 79 28 66 6e 72 6e 29  2c 63 6f 6c 28 6f 6e 29  |2y(fnrn),col(on)|
00000420  2c 30 29 0d 01 e0 10 e7  20 72 6e 3e 4c 25 20 72  |,0)..... rn>L% r|
00000430  6e 3d 30 0d 01 ea 10 e7  20 6f 6e 3e 4c 25 20 6f  |n=0..... on>L% o|
00000440  6e 3d 30 0d 01 f4 0b 72  6e 3d 72 6e 2b 31 0d 01  |n=0....rn=rn+1..|
00000450  fe 12 78 31 3d 78 31 2b  28 64 78 31 2a 53 43 29  |..x1=x1+(dx1*SC)|
00000460  0d 02 08 12 78 32 3d 78  32 2b 28 64 78 32 2a 53  |....x2=x2+(dx2*S|
00000470  43 29 0d 02 12 21 79 31  3d 79 31 2b 28 64 79 31  |C)...!y1=y1+(dy1|
00000480  2a 53 43 29 3a 79 32 3d  79 32 2b 28 64 79 32 2a  |*SC):y2=y2+(dy2*|
00000490  53 43 29 0d 02 1c 24 e7  20 b3 28 32 29 3d 31 20  |SC)...$. .(2)=1 |
000004a0  64 78 31 3d 64 78 31 2b  32 30 20 8b 20 64 78 31  |dx1=dx1+20 . dx1|
000004b0  3d 64 78 31 2d 32 30 0d  02 26 24 e7 20 b3 28 32  |=dx1-20..&$. .(2|
000004c0  29 3d 31 20 64 78 32 3d  64 78 32 2b 32 30 20 8b  |)=1 dx2=dx2+20 .|
000004d0  20 64 78 32 3d 64 78 32  2d 32 30 0d 02 30 24 e7  | dx2=dx2-20..0$.|
000004e0  20 b3 28 32 29 3d 31 20  64 79 31 3d 64 79 31 2b  | .(2)=1 dy1=dy1+|
000004f0  32 30 20 8b 20 64 79 31  3d 64 79 31 2d 32 30 0d  |20 . dy1=dy1-20.|
00000500  02 3a 24 e7 20 b3 28 32  29 3d 31 20 64 79 32 3d  |.:$. .(2)=1 dy2=|
00000510  64 79 32 2b 32 30 20 8b  20 64 79 32 3d 64 79 32  |dy2+20 . dy2=dy2|
00000520  2d 32 30 0d 02 44 19 e7  20 a6 28 2d 31 29 20 8c  |-20..D.. .(-1) .|
00000530  20 47 3d 30 20 8b 20 47  3d 31 35 30 0d 02 4e 1a  | G=0 . G=150..N.|
00000540  e7 20 47 3c 31 35 30 20  8c 20 47 3d 47 2b 31 3a  |. G<150 . G=G+1:|
00000550  e5 20 8d 44 4e 42 0d 02  58 07 fd 20 30 0d 02 62  |. .DNB..X.. 0..b|
00000560  0f dd a4 72 65 65 6e 28  72 65 6e 29 0d 02 6c 11  |...reen(ren)..l.|
00000570  e7 20 72 65 6e 3d 31 20  3d 4c 25 2b 31 0d 02 76  |. ren=1 =L%+1..v|
00000580  11 e7 20 72 65 6e 3d 30  20 3d 4c 25 2b 31 0d 02  |.. ren=0 =L%+1..|
00000590  80 0a 3d 72 65 6e 2d 31  0d 02 8a 09 dd f2 45 52  |..=ren-1......ER|
000005a0  52 0d 02 94 24 f1 8a 30  2c 32 29 22 44 6f 20 79  |R...$..0,2)"Do y|
000005b0  6f 75 20 77 69 73 68 20  74 6f 20 63 6f 6e 74 69  |ou wish to conti|
000005c0  6e 75 65 3f 22 0d 02 9e  0c e7 20 a5 3d 38 39 20  |nue?"..... .=89 |
000005d0  f9 0d 02 a8 05 e0 0d 02  b2 0b dd f2 73 65 74 75  |............setu|
000005e0  70 0d 02 bc 09 e6 20 30  2c 31 0d 02 c6 0b ec 20  |p..... 0,1..... |
000005f0  30 2c 31 32 38 0d 02 d0  0c ec 32 35 36 2c 38 39  |0,128.....256,89|
00000600  35 0d 02 da 0d f0 38 35  2c 30 2c 38 39 35 0d 02  |5.....85,0,895..|
00000610  e4 0a ec 30 2c 31 32 38  0d 02 ee 0c ec 32 35 36  |...0,128.....256|
00000620  2c 31 32 38 0d 02 f8 0f  f0 38 35 2c 32 35 36 2c  |,128.....85,256,|
00000630  38 39 35 0d 03 02 0d ec  31 32 37 39 2c 31 32 38  |895.....1279,128|
00000640  0d 03 0c 0d ec 31 30 32  33 2c 38 39 35 0d 03 16  |.....1023,895...|
00000650  10 f0 38 35 2c 31 32 37  39 2c 38 39 35 0d 03 20  |..85,1279,895.. |
00000660  0d ec 31 32 37 39 2c 31  32 38 0d 03 2a 0d ec 31  |..1279,128..*..1|
00000670  30 32 33 2c 31 32 38 0d  03 34 10 f0 38 35 2c 31  |023,128..4..85,1|
00000680  30 32 33 2c 38 39 35 0d  03 3e 06 fb 36 0d 03 48  |023,895..>..6..H|
00000690  23 f1 8a 31 2c 33 30 29  22 50 4f 49 4e 54 4c 45  |#..1,30)"POINTLE|
000006a0  53 53 20 4c 49 4e 45 20  50 52 4f 47 52 41 4d 22  |SS LINE PROGRAM"|
000006b0  0d 03 52 06 fb 37 0d 03  5c 24 f1 8a 31 2c 33 31  |..R..7..\$..1,31|
000006c0  29 22 57 52 49 54 54 45  4e 20 42 59 20 4d 41 52  |)"WRITTEN BY MAR|
000006d0  54 49 4e 20 44 41 57 45  22 3b 0d 03 66 05 e1 0d  |TIN DAWE";..f...|
000006e0  03 70 2e dd f2 62 6c 6f  63 6b 28 78 61 2c 79 61  |.p...block(xa,ya|
000006f0  2c 78 62 2c 79 62 2c 78  61 32 2c 79 61 32 2c 78  |,xb,yb,xa2,ya2,x|
00000700
Blines.m0
Blines.m1
Blines.m2
Blines.m4
Blines.m5