Home » Personal collection » Acorn tapes » Commercial_Releases » boxed_acornsoft_tape13a_acorn_bbc_welcome_cassette.wav » PATTERNS

PATTERNS

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 » Commercial_Releases » boxed_acornsoft_tape13a_acorn_bbc_welcome_cassette.wav
Filename: PATTERNS
Read OK:
File size: 07A2 bytes
Load address: FFFF0E00
Exec address: FFFF8000
File contents
   10 REM Pattern Generator
   13 REM Version 1.0
   40 ON ERROR GOTO50
   50 MODE7:IFM%=0 THEN PRINTTAB(5,16)"Press the STOP button"'TAB(5)"on your tape recorder.":PROCSPACE
   80 ON ERROR GOTO 900
  100 CLS:PROCSTART:PROCKEYSETUP
  200 REPEAT
  210 REPEAT S1%=GET-&80:UNTIL (S1%>0)AND(S1%<11)
  220 REPEAT S2%=GET-&80:UNTIL (S2%>0)AND(S2%<11)
  300 MODE5:C1%=RND(6):C2%=C1%MOD6+1:C3%=C2%MOD6+1:C4%=C3%MOD6+1
  310 VDU19,0,C1%;0;19,1,C2%;0;19,2,C3%;0;19,3,C4%;0;5
  320 Z%=5:C%=1:GCOL128,0:CLG
  330 REPEATAC%=RND(5)-1:UNTILAC%<>2
  400 FORY%=0TO1023STEP4*S1%
  410 C%=C%MOD3+1:GCOLAC%,C%
  420 MOVE0,0:PLOTZ%,1278,Y%
  430 MOVE1278,0:PLOTZ%,0,Y%:NEXT
  500 FORX%=0TO1272STEP8*S2%
  510 MOVE0,0:PLOTZ%,(1278-X%),1020
  520 MOVE1278,0:PLOTZ%,X%,1020:NEXT
  530 UNTILFALSE
  900 MODE7
  910 PRINTTAB(5,9);
  920 PRINT"Do you want to go on to"
  930 PRINT"     the next program (Y/N)? ";
  940 PROCYESORNO:IF Y%<0 THEN 910
  950 IF Y%=0 THEN 100
  970 CLS:IF M%=0 THEN PRINTTAB(5,5);"Press the PLAY button"'"     on your tape recorder"
  990 CHAIN""
 6000 DEFPROCKEYSETUP
 6010 DIMV%100:X%=V%:Y%=V%/256
 6020 FOR K%=0 TO 9
 6030 $V%="*KEY "+STR$(K%)+" ""|!|"+CHR$(K%+65)+"""":CALL&FFF7:NEXT
 6099 ENDPROC
 7000 DEFPROCSTART
 7010 CLS:VDU23;8202;0;0;0;
 7020 FOR I%=0 TO 1:PRINTTAB(15,8+I%);CHR$(&8D);"Pattern";
 7030 PRINTTAB(14,11+I%);CHR$(&8D);"Generator":NEXT:I%=INKEY(300)
 7100 PROCSCREEN
 7110 PRINT'"      This program generates patterns"'"   which  are  displayed  using high-"
 7120 PRINT"   resolution graphics."''
 7130 PRINT"      The  program  produces   random"'"   patterns which need to be triggered"
 7140 PRINT"   by pressing any  two  of the user-"'"   definable keys."''
 7150 PROCSPACE
 7200 PROCSCREEN
 7210 PRINT'"      Each time a pattern finishes,"'"   press two of the user-definable"
 7220 PRINT"   keys in sequence to produce"'"   another pattern, or press ESCAPE"
 7230 PRINT"   to go on to the next program."
 7240 PROCSPACE
 7300 PROCSCREEN
 7310 PRINT"      Start the pattern generation"'"   now, by pressing two user-defined"
 7320 PRINT"   keys in sequence..."
 7399 ENDPROC
 7900 DEFPROCSCREEN
 7910 CLS:FOR I%=1 TO 2
 7920 PRINTTAB(10,I%);CHR$(&8D);"Pattern Generator":NEXT:PRINT'
 7999 ENDPROC
 8000 DEFPROCSPACE
 8010 PRINTTAB(3,22);"Press the SPACE BAR to continue":REPEATUNTILGET$=" "
 8099 ENDPROC
 9200 DEFPROCYESORNO
 9210 Y%=-1
 9220 X%=GET:IF X%=13 AND Y%>=0 THENENDPROC
 9230 X%=X%AND&DF:IFX%<>78ANDX%<>89THEN9220
 9240 Y%=1:IFX%=78THENY%=0
 9250 PRINTCHR$X%;CHR$8;:GOTO9220

 � Pattern Generator

 � Version 1.0
( � � �Tr@
2Q �7:�M%=0 � �5,16)"Press the STOP button"'�5)"on your tape recorder.":�SPACE
P � � � �tDC
d �:�START:�KEYSETUP
� �
�# � S1%=�-&80:� (S1%>0)�(S1%<11)
�# � S2%=�-&80:� (S2%>0)�(S2%<11)
,4 �5:C1%=�(6):C2%=C1%�6+1:C3%=C2%�6+1:C4%=C3%�6+1
63 �19,0,C1%;0;19,1,C2%;0;19,2,C3%;0;19,3,C4%;0;5
@ Z%=5:C%=1:�128,0:�
J �AC%=�(5)-1:�AC%<>2
� �Y%=0�1023�4*S1%
� C%=C%�3+1:�AC%,C%
� �0,0:�Z%,1278,Y%
� �1278,0:�Z%,0,Y%:�
� �X%=0�1272�8*S2%
� �0,0:�Z%,(1278-X%),1020
 �1278,0:�Z%,X%,1020:�
 ��
� �7
� �5,9);
� �"Do you want to go on to"
�& �"     the next program (Y/N)? ";
� �YESORNO:� Y%<0 � �tNC
� � Y%=0 � �Dd@
�K �:� M%=0 � �5,5);"Press the PLAY button"'"     on your tape recorder"
� �""
p ��KEYSETUP
z �V%100:X%=V%:Y%=V%/256
� � K%=0 � 9
�6 $V%="*KEY "+�(K%)+" ""|!|"+�(K%+65)+"""":�&FFF7:�
� �
X ��START
b �:�23;8202;0;0;0;
l, � I%=0 � 1:�15,8+I%);�(&8D);"Pattern";
v/ �14,11+I%);�(&8D);"Generator":�:I%=�(300)
� �SCREEN
�V �'"      This program generates patterns"'"   which  are  displayed  using high-"
�! �"   resolution graphics."''
�V �"      The  program  produces   random"'"   patterns which need to be triggered"
�D �"   by pressing any  two  of the user-"'"   definable keys."''
� �SPACE
  �SCREEN
*Q �'"      Each time a pattern finishes,"'"   press two of the user-definable"
4L �"   keys in sequence to produce"'"   another pattern, or press ESCAPE"
>( �"   to go on to the next program."
H �SPACE
� �SCREEN
�Q �"      Start the pattern generation"'"   now, by pressing two user-defined"
� �"   keys in sequence..."
� �
�
 ��SCREEN
� �:� I%=1 � 2
�- �10,I%);�(&8D);"Pattern Generator":�:�'
? �
@ ��SPACE
J6 �3,22);"Press the SPACE BAR to continue":���=" "
� �
#� ��YESORNO
#�
 Y%=-1
$ X%=�:� X%=13 � Y%>=0 ��
$" X%=X%�&DF:�X%<>78�X%<>89��TDd
$ Y%=1:�X%=78�Y%=0
$" �X%;�8;:�TDd
�
00000000  0d 00 0a 18 20 f4 20 50  61 74 74 65 72 6e 20 47  |.... . Pattern G|
00000010  65 6e 65 72 61 74 6f 72  0d 00 0d 12 20 f4 20 56  |enerator.... . V|
00000020  65 72 73 69 6f 6e 20 31  2e 30 0d 00 28 0e 20 ee  |ersion 1.0..(. .|
00000030  20 85 20 e5 8d 54 72 40  0d 00 32 51 20 eb 37 3a  | . ..Tr@..2Q .7:|
00000040  e7 4d 25 3d 30 20 8c 20  f1 8a 35 2c 31 36 29 22  |.M%=0 . ..5,16)"|
00000050  50 72 65 73 73 20 74 68  65 20 53 54 4f 50 20 62  |Press the STOP b|
00000060  75 74 74 6f 6e 22 27 8a  35 29 22 6f 6e 20 79 6f  |utton"'.5)"on yo|
00000070  75 72 20 74 61 70 65 20  72 65 63 6f 72 64 65 72  |ur tape recorder|
00000080  2e 22 3a f2 53 50 41 43  45 0d 00 50 0f 20 ee 20  |.":.SPACE..P. . |
00000090  85 20 e5 20 8d 74 44 43  0d 00 64 17 20 db 3a f2  |. . .tDC..d. .:.|
000000a0  53 54 41 52 54 3a f2 4b  45 59 53 45 54 55 50 0d  |START:.KEYSETUP.|
000000b0  00 c8 06 20 f5 0d 00 d2  23 20 f5 20 53 31 25 3d  |... ....# . S1%=|
000000c0  a5 2d 26 38 30 3a fd 20  28 53 31 25 3e 30 29 80  |.-&80:. (S1%>0).|
000000d0  28 53 31 25 3c 31 31 29  0d 00 dc 23 20 f5 20 53  |(S1%<11)...# . S|
000000e0  32 25 3d a5 2d 26 38 30  3a fd 20 28 53 32 25 3e  |2%=.-&80:. (S2%>|
000000f0  30 29 80 28 53 32 25 3c  31 31 29 0d 01 2c 34 20  |0).(S2%<11)..,4 |
00000100  eb 35 3a 43 31 25 3d b3  28 36 29 3a 43 32 25 3d  |.5:C1%=.(6):C2%=|
00000110  43 31 25 83 36 2b 31 3a  43 33 25 3d 43 32 25 83  |C1%.6+1:C3%=C2%.|
00000120  36 2b 31 3a 43 34 25 3d  43 33 25 83 36 2b 31 0d  |6+1:C4%=C3%.6+1.|
00000130  01 36 33 20 ef 31 39 2c  30 2c 43 31 25 3b 30 3b  |.63 .19,0,C1%;0;|
00000140  31 39 2c 31 2c 43 32 25  3b 30 3b 31 39 2c 32 2c  |19,1,C2%;0;19,2,|
00000150  43 33 25 3b 30 3b 31 39  2c 33 2c 43 34 25 3b 30  |C3%;0;19,3,C4%;0|
00000160  3b 35 0d 01 40 17 20 5a  25 3d 35 3a 43 25 3d 31  |;5..@. Z%=5:C%=1|
00000170  3a e6 31 32 38 2c 30 3a  da 0d 01 4a 18 20 f5 41  |:.128,0:...J. .A|
00000180  43 25 3d b3 28 35 29 2d  31 3a fd 41 43 25 3c 3e  |C%=.(5)-1:.AC%<>|
00000190  32 0d 01 90 15 20 e3 59  25 3d 30 b8 31 30 32 33  |2.... .Y%=0.1023|
000001a0  88 34 2a 53 31 25 0d 01  9a 16 20 43 25 3d 43 25  |.4*S1%.... C%=C%|
000001b0  83 33 2b 31 3a e6 41 43  25 2c 43 25 0d 01 a4 15  |.3+1:.AC%,C%....|
000001c0  20 ec 30 2c 30 3a f0 5a  25 2c 31 32 37 38 2c 59  | .0,0:.Z%,1278,Y|
000001d0  25 0d 01 ae 17 20 ec 31  32 37 38 2c 30 3a f0 5a  |%.... .1278,0:.Z|
000001e0  25 2c 30 2c 59 25 3a ed  0d 01 f4 15 20 e3 58 25  |%,0,Y%:..... .X%|
000001f0  3d 30 b8 31 32 37 32 88  38 2a 53 32 25 0d 01 fe  |=0.1272.8*S2%...|
00000200  1c 20 ec 30 2c 30 3a f0  5a 25 2c 28 31 32 37 38  |. .0,0:.Z%,(1278|
00000210  2d 58 25 29 2c 31 30 32  30 0d 02 08 1a 20 ec 31  |-X%),1020.... .1|
00000220  32 37 38 2c 30 3a f0 5a  25 2c 58 25 2c 31 30 32  |278,0:.Z%,X%,102|
00000230  30 3a ed 0d 02 12 07 20  fd a3 0d 03 84 07 20 eb  |0:..... ...... .|
00000240  37 0d 03 8e 0c 20 f1 8a  35 2c 39 29 3b 0d 03 98  |7.... ..5,9);...|
00000250  1f 20 f1 22 44 6f 20 79  6f 75 20 77 61 6e 74 20  |. ."Do you want |
00000260  74 6f 20 67 6f 20 6f 6e  20 74 6f 22 0d 03 a2 26  |to go on to"...&|
00000270  20 f1 22 20 20 20 20 20  74 68 65 20 6e 65 78 74  | ."     the next|
00000280  20 70 72 6f 67 72 61 6d  20 28 59 2f 4e 29 3f 20  | program (Y/N)? |
00000290  22 3b 0d 03 ac 1b 20 f2  59 45 53 4f 52 4e 4f 3a  |";.... .YESORNO:|
000002a0  e7 20 59 25 3c 30 20 8c  20 8d 74 4e 43 0d 03 b6  |. Y%<0 . .tNC...|
000002b0  12 20 e7 20 59 25 3d 30  20 8c 20 8d 44 64 40 0d  |. . Y%=0 . .Dd@.|
000002c0  03 ca 4b 20 db 3a e7 20  4d 25 3d 30 20 8c 20 f1  |..K .:. M%=0 . .|
000002d0  8a 35 2c 35 29 3b 22 50  72 65 73 73 20 74 68 65  |.5,5);"Press the|
000002e0  20 50 4c 41 59 20 62 75  74 74 6f 6e 22 27 22 20  | PLAY button"'" |
000002f0  20 20 20 20 6f 6e 20 79  6f 75 72 20 74 61 70 65  |    on your tape|
00000300  20 72 65 63 6f 72 64 65  72 22 0d 03 de 08 20 d7  | recorder".... .|
00000310  22 22 0d 17 70 0f 20 dd  f2 4b 45 59 53 45 54 55  |""..p. ..KEYSETU|
00000320  50 0d 17 7a 1b 20 de 56  25 31 30 30 3a 58 25 3d  |P..z. .V%100:X%=|
00000330  56 25 3a 59 25 3d 56 25  2f 32 35 36 0d 17 84 0f  |V%:Y%=V%/256....|
00000340  20 e3 20 4b 25 3d 30 20  b8 20 39 0d 17 8e 36 20  | . K%=0 . 9...6 |
00000350  24 56 25 3d 22 2a 4b 45  59 20 22 2b c3 28 4b 25  |$V%="*KEY "+.(K%|
00000360  29 2b 22 20 22 22 7c 21  7c 22 2b bd 28 4b 25 2b  |)+" ""|!|"+.(K%+|
00000370  36 35 29 2b 22 22 22 22  3a d6 26 46 46 46 37 3a  |65)+"""":.&FFF7:|
00000380  ed 0d 17 d3 06 20 e1 0d  1b 58 0c 20 dd f2 53 54  |..... ...X. ..ST|
00000390  41 52 54 0d 1b 62 16 20  db 3a ef 32 33 3b 38 32  |ART..b. .:.23;82|
000003a0  30 32 3b 30 3b 30 3b 30  3b 0d 1b 6c 2c 20 e3 20  |02;0;0;0;..l, . |
000003b0  49 25 3d 30 20 b8 20 31  3a f1 8a 31 35 2c 38 2b  |I%=0 . 1:..15,8+|
000003c0  49 25 29 3b bd 28 26 38  44 29 3b 22 50 61 74 74  |I%);.(&8D);"Patt|
000003d0  65 72 6e 22 3b 0d 1b 76  2f 20 f1 8a 31 34 2c 31  |ern";..v/ ..14,1|
000003e0  31 2b 49 25 29 3b bd 28  26 38 44 29 3b 22 47 65  |1+I%);.(&8D);"Ge|
000003f0  6e 65 72 61 74 6f 72 22  3a ed 3a 49 25 3d a6 28  |nerator":.:I%=.(|
00000400  33 30 30 29 0d 1b bc 0c  20 f2 53 43 52 45 45 4e  |300).... .SCREEN|
00000410  0d 1b c6 56 20 f1 27 22  20 20 20 20 20 20 54 68  |...V .'"      Th|
00000420  69 73 20 70 72 6f 67 72  61 6d 20 67 65 6e 65 72  |is program gener|
00000430  61 74 65 73 20 70 61 74  74 65 72 6e 73 22 27 22  |ates patterns"'"|
00000440  20 20 20 77 68 69 63 68  20 20 61 72 65 20 20 64  |   which  are  d|
00000450  69 73 70 6c 61 79 65 64  20 20 75 73 69 6e 67 20  |isplayed  using |
00000460  68 69 67 68 2d 22 0d 1b  d0 21 20 f1 22 20 20 20  |high-"...! ."   |
00000470  72 65 73 6f 6c 75 74 69  6f 6e 20 67 72 61 70 68  |resolution graph|
00000480  69 63 73 2e 22 27 27 0d  1b da 56 20 f1 22 20 20  |ics."''...V ."  |
00000490  20 20 20 20 54 68 65 20  20 70 72 6f 67 72 61 6d  |    The  program|
000004a0  20 20 70 72 6f 64 75 63  65 73 20 20 20 72 61 6e  |  produces   ran|
000004b0  64 6f 6d 22 27 22 20 20  20 70 61 74 74 65 72 6e  |dom"'"   pattern|
000004c0  73 20 77 68 69 63 68 20  6e 65 65 64 20 74 6f 20  |s which need to |
000004d0  62 65 20 74 72 69 67 67  65 72 65 64 22 0d 1b e4  |be triggered"...|
000004e0  44 20 f1 22 20 20 20 62  79 20 70 72 65 73 73 69  |D ."   by pressi|
000004f0  6e 67 20 61 6e 79 20 20  74 77 6f 20 20 6f 66 20  |ng any  two  of |
00000500  74 68 65 20 75 73 65 72  2d 22 27 22 20 20 20 64  |the user-"'"   d|
00000510  65 66 69 6e 61 62 6c 65  20 6b 65 79 73 2e 22 27  |efinable keys."'|
00000520  27 0d 1b ee 0b 20 f2 53  50 41 43 45 0d 1c 20 0c  |'.... .SPACE.. .|
00000530  20 f2 53 43 52 45 45 4e  0d 1c 2a 51 20 f1 27 22  | .SCREEN..*Q .'"|
00000540  20 20 20 20 20 20 45 61  63 68 20 74 69 6d 65 20  |      Each time |
00000550  61 20 70 61 74 74 65 72  6e 20 66 69 6e 69 73 68  |a pattern finish|
00000560  65 73 2c 22 27 22 20 20  20 70 72 65 73 73 20 74  |es,"'"   press t|
00000570  77 6f 20 6f 66 20 74 68  65 20 75 73 65 72 2d 64  |wo of the user-d|
00000580  65 66 69 6e 61 62 6c 65  22 0d 1c 34 4c 20 f1 22  |efinable"..4L ."|
00000590  20 20 20 6b 65 79 73 20  69 6e 20 73 65 71 75 65  |   keys in seque|
000005a0  6e 63 65 20 74 6f 20 70  72 6f 64 75 63 65 22 27  |nce to produce"'|
000005b0  22 20 20 20 61 6e 6f 74  68 65 72 20 70 61 74 74  |"   another patt|
000005c0  65 72 6e 2c 20 6f 72 20  70 72 65 73 73 20 45 53  |ern, or press ES|
000005d0  43 41 50 45 22 0d 1c 3e  28 20 f1 22 20 20 20 74  |CAPE"..>( ."   t|
000005e0  6f 20 67 6f 20 6f 6e 20  74 6f 20 74 68 65 20 6e  |o go on to the n|
000005f0  65 78 74 20 70 72 6f 67  72 61 6d 2e 22 0d 1c 48  |ext program."..H|
00000600  0b 20 f2 53 50 41 43 45  0d 1c 84 0c 20 f2 53 43  |. .SPACE.... .SC|
00000610  52 45 45 4e 0d 1c 8e 51  20 f1 22 20 20 20 20 20  |REEN...Q ."     |
00000620  20 53 74 61 72 74 20 74  68 65 20 70 61 74 74 65  | Start the patte|
00000630  72 6e 20 67 65 6e 65 72  61 74 69 6f 6e 22 27 22  |rn generation"'"|
00000640  20 20 20 6e 6f 77 2c 20  62 79 20 70 72 65 73 73  |   now, by press|
00000650  69 6e 67 20 74 77 6f 20  75 73 65 72 2d 64 65 66  |ing two user-def|
00000660  69 6e 65 64 22 0d 1c 98  1e 20 f1 22 20 20 20 6b  |ined".... ."   k|
00000670  65 79 73 20 69 6e 20 73  65 71 75 65 6e 63 65 2e  |eys in sequence.|
00000680  2e 2e 22 0d 1c e7 06 20  e1 0d 1e dc 0d 20 dd f2  |..".... ..... ..|
00000690  53 43 52 45 45 4e 0d 1e  e6 11 20 db 3a e3 20 49  |SCREEN.... .:. I|
000006a0  25 3d 31 20 b8 20 32 0d  1e f0 2d 20 f1 8a 31 30  |%=1 . 2...- ..10|
000006b0  2c 49 25 29 3b bd 28 26  38 44 29 3b 22 50 61 74  |,I%);.(&8D);"Pat|
000006c0  74 65 72 6e 20 47 65 6e  65 72 61 74 6f 72 22 3a  |tern Generator":|
000006d0  ed 3a f1 27 0d 1f 3f 06  20 e1 0d 1f 40 0c 20 dd  |.:.'..?. ...@. .|
000006e0  f2 53 50 41 43 45 0d 1f  4a 36 20 f1 8a 33 2c 32  |.SPACE..J6 ..3,2|
000006f0  32 29 3b 22 50 72 65 73  73 20 74 68 65 20 53 50  |2);"Press the SP|
00000700  41 43 45 20 42 41 52 20  74 6f 20 63 6f 6e 74 69  |ACE BAR to conti|
00000710  6e 75 65 22 3a f5 fd be  3d 22 20 22 0d 1f a3 06  |nue":...=" "....|
00000720  20 e1 0d 23 f0 0e 20 dd  f2 59 45 53 4f 52 4e 4f  | ..#.. ..YESORNO|
00000730  0d 23 fa 0a 20 59 25 3d  2d 31 0d 24 04 1c 20 58  |.#.. Y%=-1.$.. X|
00000740  25 3d a5 3a e7 20 58 25  3d 31 33 20 80 20 59 25  |%=.:. X%=13 . Y%|
00000750  3e 3d 30 20 8c e1 0d 24  0e 22 20 58 25 3d 58 25  |>=0 ...$." X%=X%|
00000760  80 26 44 46 3a e7 58 25  3c 3e 37 38 80 58 25 3c  |.&DF:.X%<>78.X%<|
00000770  3e 38 39 8c 8d 54 44 64  0d 24 18 15 20 59 25 3d  |>89..TDd.$.. Y%=|
00000780  31 3a e7 58 25 3d 37 38  8c 59 25 3d 30 0d 24 22  |1:.X%=78.Y%=0.$"|
00000790  13 20 f1 bd 58 25 3b bd  38 3b 3a e5 8d 54 44 64  |. ..X%;.8;:..TDd|
000007a0  0d ff                                             |..|
000007a2
PATTERNS.m0
PATTERNS.m1
PATTERNS.m2
PATTERNS.m4
PATTERNS.m5