Home » Archimedes archive » Acorn User » AU 1994-02.adf » !BasicProg_BasicProg » Listing1

Listing1

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 » Acorn User » AU 1994-02.adf » !BasicProg_BasicProg
Filename: Listing1
Read OK:
File size: 02FC bytes
Load address: 0000
Exec address: 0000
File contents
   10REM >Listing1
   20:
   30ON ERROR REPORT:PRINT " at line ";ERL/10:END
   40MODE 0
   50DIM array$(28)
   60row%=0
   70PRINT TAB(0,29);STRING$(75,"-")
   80PRINT TAB(0,0);"*"
   90REPEAT
  100 CASE GET$ OF
  110  WHEN "Z","z":PROCmove(1)
  120  WHEN "A","a":PROCmove(-1)
  130  WHEN "E","e":PROCedit
  140  WHEN "R","r":PROCright
  150  WHEN "C","c":PROCcentre
  160  WHEN "L","l":PROCprint_line(1)
  170 ENDCASE
  180UNTIL FALSE
  190END
  200:
  210DEF PROCmove(dir%)
  220PRINT TAB(0,row%);" "
  230row%=row%+dir%
  240IF row%<0 THEN row%=28
  250IF row%>28 THEN row%=0
  260PRINT TAB(0,row%);"*"
  270ENDPROC
  280:
  290DEF PROCedit
  300INPUT LINE TAB(0,30);array$(row%)
  310PRINT TAB(0,30);STRING$(75," ")
  320PROCprint_line(1)
  330ENDPROC
  340:
  350DEF PROCright
  360indent%=75-LEN(array$(row%))
  370PROCprint_line(indent%)
  380ENDPROC
  390:
  400DEF PROCcentre
  410indent%=INT((75-LEN(array$(row%)))/2)
  420PROCprint_line(indent%)
  430ENDPROC
  440:
  450DEF PROCprint_line(indent%)
  460PRINT TAB(1,row%);STRING$(75," ")
  470PRINT TAB(indent%,row%);array$(row%)
  480ENDPROC

� >Listing1
:
� � �:� " at line ";�/10:�
(� 0
2� array$(28)
<
row%=0
F� �0,29);�75,"-")
P� �0,0);"*"
Z�
d Ȏ � �
n  � "Z","z":�move(1)
x  � "A","a":�move(-1)
�  � "E","e":�edit
�  � "R","r":�right
�  � "C","c":�centre
�  � "L","l":�print_line(1)
� �
�� �
��
�:
�� �move(dir%)
�� �0,row%);" "
�row%=row%+dir%
�� row%<0 � row%=28
�� row%>28 � row%=0
� �0,row%);"*"
�
:
"� �edit
,� � �0,30);array$(row%)
6� �0,30);�75," ")
@�print_line(1)
J�
T:
^� �right
hindent%=75-�(array$(row%))
r�print_line(indent%)
|�
�:
�
� �centre
�%indent%=�((75-�(array$(row%)))/2)
��print_line(indent%)
��
�:
�� �print_line(indent%)
�� �1,row%);�75," ")
�!� �indent%,row%);array$(row%)
��
�
00000000  0d 00 0a 0f f4 20 3e 4c  69 73 74 69 6e 67 31 0d  |..... >Listing1.|
00000010  00 14 05 3a 0d 00 1e 1e  ee 20 85 20 f6 3a f1 20  |...:..... . .:. |
00000020  22 20 61 74 20 6c 69 6e  65 20 22 3b 9e 2f 31 30  |" at line ";./10|
00000030  3a e0 0d 00 28 07 eb 20  30 0d 00 32 10 de 20 61  |:...(.. 0..2.. a|
00000040  72 72 61 79 24 28 32 38  29 0d 00 3c 0a 72 6f 77  |rray$(28)..<.row|
00000050  25 3d 30 0d 00 46 15 f1  20 8a 30 2c 32 39 29 3b  |%=0..F.. .0,29);|
00000060  c4 37 35 2c 22 2d 22 29  0d 00 50 0f f1 20 8a 30  |.75,"-")..P.. .0|
00000070  2c 30 29 3b 22 2a 22 0d  00 5a 05 f5 0d 00 64 0b  |,0);"*"..Z....d.|
00000080  20 c8 8e 20 be 20 ca 0d  00 6e 18 20 20 c9 20 22  | .. . ...n.  . "|
00000090  5a 22 2c 22 7a 22 3a f2  6d 6f 76 65 28 31 29 0d  |Z","z":.move(1).|
000000a0  00 78 19 20 20 c9 20 22  41 22 2c 22 61 22 3a f2  |.x.  . "A","a":.|
000000b0  6d 6f 76 65 28 2d 31 29  0d 00 82 15 20 20 c9 20  |move(-1)....  . |
000000c0  22 45 22 2c 22 65 22 3a  f2 65 64 69 74 0d 00 8c  |"E","e":.edit...|
000000d0  16 20 20 c9 20 22 52 22  2c 22 72 22 3a f2 72 69  |.  . "R","r":.ri|
000000e0  67 68 74 0d 00 96 17 20  20 c9 20 22 43 22 2c 22  |ght....  . "C","|
000000f0  63 22 3a f2 63 65 6e 74  72 65 0d 00 a0 1e 20 20  |c":.centre....  |
00000100  c9 20 22 4c 22 2c 22 6c  22 3a f2 70 72 69 6e 74  |. "L","l":.print|
00000110  5f 6c 69 6e 65 28 31 29  0d 00 aa 06 20 cb 0d 00  |_line(1).... ...|
00000120  b4 07 fd 20 a3 0d 00 be  05 e0 0d 00 c8 05 3a 0d  |... ..........:.|
00000130  00 d2 11 dd 20 f2 6d 6f  76 65 28 64 69 72 25 29  |.... .move(dir%)|
00000140  0d 00 dc 12 f1 20 8a 30  2c 72 6f 77 25 29 3b 22  |..... .0,row%);"|
00000150  20 22 0d 00 e6 12 72 6f  77 25 3d 72 6f 77 25 2b  | "....row%=row%+|
00000160  64 69 72 25 0d 00 f0 16  e7 20 72 6f 77 25 3c 30  |dir%..... row%<0|
00000170  20 8c 20 72 6f 77 25 3d  32 38 0d 00 fa 16 e7 20  | . row%=28..... |
00000180  72 6f 77 25 3e 32 38 20  8c 20 72 6f 77 25 3d 30  |row%>28 . row%=0|
00000190  0d 01 04 12 f1 20 8a 30  2c 72 6f 77 25 29 3b 22  |..... .0,row%);"|
000001a0  2a 22 0d 01 0e 05 e1 0d  01 18 05 3a 0d 01 22 0b  |*".........:..".|
000001b0  dd 20 f2 65 64 69 74 0d  01 2c 1b e8 20 86 20 8a  |. .edit..,.. . .|
000001c0  30 2c 33 30 29 3b 61 72  72 61 79 24 28 72 6f 77  |0,30);array$(row|
000001d0  25 29 0d 01 36 15 f1 20  8a 30 2c 33 30 29 3b c4  |%)..6.. .0,30);.|
000001e0  37 35 2c 22 20 22 29 0d  01 40 12 f2 70 72 69 6e  |75," ")..@..prin|
000001f0  74 5f 6c 69 6e 65 28 31  29 0d 01 4a 05 e1 0d 01  |t_line(1)..J....|
00000200  54 05 3a 0d 01 5e 0c dd  20 f2 72 69 67 68 74 0d  |T.:..^.. .right.|
00000210  01 68 1e 69 6e 64 65 6e  74 25 3d 37 35 2d a9 28  |.h.indent%=75-.(|
00000220  61 72 72 61 79 24 28 72  6f 77 25 29 29 0d 01 72  |array$(row%))..r|
00000230  18 f2 70 72 69 6e 74 5f  6c 69 6e 65 28 69 6e 64  |..print_line(ind|
00000240  65 6e 74 25 29 0d 01 7c  05 e1 0d 01 86 05 3a 0d  |ent%)..|......:.|
00000250  01 90 0d dd 20 f2 63 65  6e 74 72 65 0d 01 9a 25  |.... .centre...%|
00000260  69 6e 64 65 6e 74 25 3d  a8 28 28 37 35 2d a9 28  |indent%=.((75-.(|
00000270  61 72 72 61 79 24 28 72  6f 77 25 29 29 29 2f 32  |array$(row%)))/2|
00000280  29 0d 01 a4 18 f2 70 72  69 6e 74 5f 6c 69 6e 65  |).....print_line|
00000290  28 69 6e 64 65 6e 74 25  29 0d 01 ae 05 e1 0d 01  |(indent%).......|
000002a0  b8 05 3a 0d 01 c2 1a dd  20 f2 70 72 69 6e 74 5f  |..:..... .print_|
000002b0  6c 69 6e 65 28 69 6e 64  65 6e 74 25 29 0d 01 cc  |line(indent%)...|
000002c0  17 f1 20 8a 31 2c 72 6f  77 25 29 3b c4 37 35 2c  |.. .1,row%);.75,|
000002d0  22 20 22 29 0d 01 d6 21  f1 20 8a 69 6e 64 65 6e  |" ")...!. .inden|
000002e0  74 25 2c 72 6f 77 25 29  3b 61 72 72 61 79 24 28  |t%,row%);array$(|
000002f0  72 6f 77 25 29 0d 01 e0  05 e1 0d ff              |row%).......|
000002fc