Home » Archimedes archive » Micro User » MU 1991-02.adf » Listings » Sport_M

Sport_M

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 » Micro User » MU 1991-02.adf » Listings
Filename: Sport_M
Read OK:
File size: 04CA bytes
Load address: 0000
Exec address: 0000
File contents
   10REM >Sport_M
   20MODE 1
   30PRINT"Beeb Body Building Course"
   40PRINT"Serial Port Input Output Monitor"
   50PRINT"By Mike Cook"
   60ON ERROR GOTO 780
   70
   80*FX7,7
   90*FX8,7
  100*FX156,18
  110PROC_SETUP
  120B%=0
  130CB%=1
  140REPEAT
  150PROC_DIS(B%,14)
  160C%=INKEY(0)
  170IF C%<>-1 THEN PROC_COM(C%)
  180A%=FN_SP(B%)
  190PROC_DIS(A%,8)
  200UNTIL FALSE
  210
  220DEF PROC_SETUP
  230PRINT TAB(0,6);" 7  6  5  4  3  2  1  0"
  240PRINT TAB(25,8);"Port Input"
  250PRINT TAB(0,12);" 7  6  5  4  3  2  1  0"
  260PRINT TAB(25,14);"Port Output"
  270PRINT TAB(22,15);"^"
  280PRINT TAB(0,20);"Use < and > to move pointer"
  290PRINT "Space Bar to change the bit"
  300PRINT
  310PRINT"Q to Quit"
  320ENDPROC
  330
  340DEF PROC_DIS(B%,P%)
  350LOCAL M%
  360PRINT TAB(0,P%);
  370M%=&80
  380REPEAT
  390IF M% AND B% THEN PRINT" 1 "; ELSE PRINT" 0 ";
  400M%=M% DIV 2
  410UNTIL M%=0
  420ENDPROC
  430
  440DEF PROC_COM(K%)
  450IF K%=32 THEN B%=B% EOR CB%:ENDPROC
  460IF K%=60 OR K%=44 THEN PROC_MB(1):ENDPROC
  470IF K%=62 OR K%=46 THEN PROC_MB(-1):ENDPROC
  480IF K%=81 OR K%=113 THEN PRINT TAB(0,24):END
  490ENDPROC
  500
  510DEF PROC_MB(N%)
  520LOCAL BS%,CC%
  530IF N%=1 THEN CB%=CB%*2 ELSE CB%=CB% DIV 2
  540IF CB%>255 THEN CB%=1
  550IF CB%=0 THEN CB%=128
  560PRINT TAB(0,15);SPC(23)
  570BS%=25
  580CC%=CB%
  590REPEAT
  600BS%=BS%-3
  610CC%=CC% DIV 2
  620UNTIL CC%=0
  630PRINT TAB(BS%,15);"^"
  640ENDPROC
  650
  660REM Send and Read a byte
  670DEF FN_SP(B%)
  680LOCAL R%
  690B%=B% AND &FF
  700*FX2,1
  710*FX3,3
  720PRINT CHR$(B%);
  730R%=GET
  740*FX2,0
  750*FX3,0
  760=R%
  770
  780ON ERROR OFF
  790*FX3,0
  800*FX2,0
  810PRINT"Error ";ERR;" At line ";ERL

� >Sport_M
� 1
 �"Beeb Body Building Course"
('�"Serial Port Input Output Monitor"
2�"By Mike Cook"
<� � � �TLC
F
P
*FX7,7
Z
*FX8,7
d
*FX156,18
n�_SETUP
xB%=0
�	CB%=1
��
��_DIS(B%,14)
�C%=�(0)
�� C%<>-1 � �_COM(C%)
�A%=�_SP(B%)
��_DIS(A%,8)
�� �
�
�
� �_SETUP
�%� �0,6);" 7  6  5  4  3  2  1  0"
�� �25,8);"Port Input"
�&� �0,12);" 7  6  5  4  3  2  1  0"
� �25,14);"Port Output"
� �22,15);"^"
*� �0,20);"Use < and > to move pointer"
"#� "Space Bar to change the bit"
,�
6�"Q to Quit"
@�
J
T� �_DIS(B%,P%)
^� M%
h
� �0,P%);
r
M%=&80
|�
�!� M% � B% � �" 1 "; � �" 0 ";
�
M%=M% � 2
�
� M%=0
��
�
�� �_COM(K%)
�� K%=32 � B%=B% � CB%:�
�� K%=60 � K%=44 � �_MB(1):�
� � K%=62 � K%=46 � �_MB(-1):�
�!� K%=81 � K%=113 � � �0,24):�
��
�
�� �_MB(N%)

� BS%,CC%
$� N%=1 � CB%=CB%*2 � CB%=CB% � 2
� CB%>255 � CB%=1
&� CB%=0 � CB%=128
0� �0,15);�(23)
:
BS%=25
DCC%=CB%
N�
X
BS%=BS%-3
bCC%=CC% � 2
l� CC%=0
v� �BS%,15);"^"
��
�
�� Send and Read a byte
�� �_SP(B%)
�� R%
�B%=B% � &FF
�
*FX2,1
�
*FX3,3
�� �(B%);
�R%=�
�
*FX2,0
�
*FX3,0
�=R%

	� � �

*FX3,0
 
*FX2,0
*�"Error ";�;" At line ";�
�
00000000  0d 00 0a 0e f4 20 3e 53  70 6f 72 74 5f 4d 0d 00  |..... >Sport_M..|
00000010  14 07 eb 20 31 0d 00 1e  20 f1 22 42 65 65 62 20  |... 1... ."Beeb |
00000020  42 6f 64 79 20 42 75 69  6c 64 69 6e 67 20 43 6f  |Body Building Co|
00000030  75 72 73 65 22 0d 00 28  27 f1 22 53 65 72 69 61  |urse"..('."Seria|
00000040  6c 20 50 6f 72 74 20 49  6e 70 75 74 20 4f 75 74  |l Port Input Out|
00000050  70 75 74 20 4d 6f 6e 69  74 6f 72 22 0d 00 32 13  |put Monitor"..2.|
00000060  f1 22 42 79 20 4d 69 6b  65 20 43 6f 6f 6b 22 0d  |."By Mike Cook".|
00000070  00 3c 0e ee 20 85 20 e5  20 8d 54 4c 43 0d 00 46  |.<.. . . .TLC..F|
00000080  04 0d 00 50 0a 2a 46 58  37 2c 37 0d 00 5a 0a 2a  |...P.*FX7,7..Z.*|
00000090  46 58 38 2c 37 0d 00 64  0d 2a 46 58 31 35 36 2c  |FX8,7..d.*FX156,|
000000a0  31 38 0d 00 6e 0b f2 5f  53 45 54 55 50 0d 00 78  |18..n.._SETUP..x|
000000b0  08 42 25 3d 30 0d 00 82  09 43 42 25 3d 31 0d 00  |.B%=0....CB%=1..|
000000c0  8c 05 f5 0d 00 96 10 f2  5f 44 49 53 28 42 25 2c  |........_DIS(B%,|
000000d0  31 34 29 0d 00 a0 0b 43  25 3d a6 28 30 29 0d 00  |14)....C%=.(0)..|
000000e0  aa 18 e7 20 43 25 3c 3e  2d 31 20 8c 20 f2 5f 43  |... C%<>-1 . ._C|
000000f0  4f 4d 28 43 25 29 0d 00  b4 0f 41 25 3d a4 5f 53  |OM(C%)....A%=._S|
00000100  50 28 42 25 29 0d 00 be  0f f2 5f 44 49 53 28 41  |P(B%)....._DIS(A|
00000110  25 2c 38 29 0d 00 c8 07  fd 20 a3 0d 00 d2 04 0d  |%,8)..... ......|
00000120  00 dc 0d dd 20 f2 5f 53  45 54 55 50 0d 00 e6 25  |.... ._SETUP...%|
00000130  f1 20 8a 30 2c 36 29 3b  22 20 37 20 20 36 20 20  |. .0,6);" 7  6  |
00000140  35 20 20 34 20 20 33 20  20 32 20 20 31 20 20 30  |5  4  3  2  1  0|
00000150  22 0d 00 f0 19 f1 20 8a  32 35 2c 38 29 3b 22 50  |"..... .25,8);"P|
00000160  6f 72 74 20 49 6e 70 75  74 22 0d 00 fa 26 f1 20  |ort Input"...&. |
00000170  8a 30 2c 31 32 29 3b 22  20 37 20 20 36 20 20 35  |.0,12);" 7  6  5|
00000180  20 20 34 20 20 33 20 20  32 20 20 31 20 20 30 22  |  4  3  2  1  0"|
00000190  0d 01 04 1b f1 20 8a 32  35 2c 31 34 29 3b 22 50  |..... .25,14);"P|
000001a0  6f 72 74 20 4f 75 74 70  75 74 22 0d 01 0e 11 f1  |ort Output".....|
000001b0  20 8a 32 32 2c 31 35 29  3b 22 5e 22 0d 01 18 2a  | .22,15);"^"...*|
000001c0  f1 20 8a 30 2c 32 30 29  3b 22 55 73 65 20 3c 20  |. .0,20);"Use < |
000001d0  61 6e 64 20 3e 20 74 6f  20 6d 6f 76 65 20 70 6f  |and > to move po|
000001e0  69 6e 74 65 72 22 0d 01  22 23 f1 20 22 53 70 61  |inter".."#. "Spa|
000001f0  63 65 20 42 61 72 20 74  6f 20 63 68 61 6e 67 65  |ce Bar to change|
00000200  20 74 68 65 20 62 69 74  22 0d 01 2c 05 f1 0d 01  | the bit"..,....|
00000210  36 10 f1 22 51 20 74 6f  20 51 75 69 74 22 0d 01  |6.."Q to Quit"..|
00000220  40 05 e1 0d 01 4a 04 0d  01 54 12 dd 20 f2 5f 44  |@....J...T.. ._D|
00000230  49 53 28 42 25 2c 50 25  29 0d 01 5e 08 ea 20 4d  |IS(B%,P%)..^.. M|
00000240  25 0d 01 68 0d f1 20 8a  30 2c 50 25 29 3b 0d 01  |%..h.. .0,P%);..|
00000250  72 0a 4d 25 3d 26 38 30  0d 01 7c 05 f5 0d 01 86  |r.M%=&80..|.....|
00000260  21 e7 20 4d 25 20 80 20  42 25 20 8c 20 f1 22 20  |!. M% . B% . ." |
00000270  31 20 22 3b 20 8b 20 f1  22 20 30 20 22 3b 0d 01  |1 "; . ." 0 ";..|
00000280  90 0d 4d 25 3d 4d 25 20  81 20 32 0d 01 9a 0a fd  |..M%=M% . 2.....|
00000290  20 4d 25 3d 30 0d 01 a4  05 e1 0d 01 ae 04 0d 01  | M%=0...........|
000002a0  b8 0f dd 20 f2 5f 43 4f  4d 28 4b 25 29 0d 01 c2  |... ._COM(K%)...|
000002b0  1b e7 20 4b 25 3d 33 32  20 8c 20 42 25 3d 42 25  |.. K%=32 . B%=B%|
000002c0  20 82 20 43 42 25 3a e1  0d 01 cc 1f e7 20 4b 25  | . CB%:...... K%|
000002d0  3d 36 30 20 84 20 4b 25  3d 34 34 20 8c 20 f2 5f  |=60 . K%=44 . ._|
000002e0  4d 42 28 31 29 3a e1 0d  01 d6 20 e7 20 4b 25 3d  |MB(1):.... . K%=|
000002f0  36 32 20 84 20 4b 25 3d  34 36 20 8c 20 f2 5f 4d  |62 . K%=46 . ._M|
00000300  42 28 2d 31 29 3a e1 0d  01 e0 21 e7 20 4b 25 3d  |B(-1):....!. K%=|
00000310  38 31 20 84 20 4b 25 3d  31 31 33 20 8c 20 f1 20  |81 . K%=113 . . |
00000320  8a 30 2c 32 34 29 3a e0  0d 01 ea 05 e1 0d 01 f4  |.0,24):.........|
00000330  04 0d 01 fe 0e dd 20 f2  5f 4d 42 28 4e 25 29 0d  |...... ._MB(N%).|
00000340  02 08 0d ea 20 42 53 25  2c 43 43 25 0d 02 12 24  |.... BS%,CC%...$|
00000350  e7 20 4e 25 3d 31 20 8c  20 43 42 25 3d 43 42 25  |. N%=1 . CB%=CB%|
00000360  2a 32 20 8b 20 43 42 25  3d 43 42 25 20 81 20 32  |*2 . CB%=CB% . 2|
00000370  0d 02 1c 15 e7 20 43 42  25 3e 32 35 35 20 8c 20  |..... CB%>255 . |
00000380  43 42 25 3d 31 0d 02 26  15 e7 20 43 42 25 3d 30  |CB%=1..&.. CB%=0|
00000390  20 8c 20 43 42 25 3d 31  32 38 0d 02 30 12 f1 20  | . CB%=128..0.. |
000003a0  8a 30 2c 31 35 29 3b 89  28 32 33 29 0d 02 3a 0a  |.0,15);.(23)..:.|
000003b0  42 53 25 3d 32 35 0d 02  44 0b 43 43 25 3d 43 42  |BS%=25..D.CC%=CB|
000003c0  25 0d 02 4e 05 f5 0d 02  58 0d 42 53 25 3d 42 53  |%..N....X.BS%=BS|
000003d0  25 2d 33 0d 02 62 0f 43  43 25 3d 43 43 25 20 81  |%-3..b.CC%=CC% .|
000003e0  20 32 0d 02 6c 0b fd 20  43 43 25 3d 30 0d 02 76  | 2..l.. CC%=0..v|
000003f0  12 f1 20 8a 42 53 25 2c  31 35 29 3b 22 5e 22 0d  |.. .BS%,15);"^".|
00000400  02 80 05 e1 0d 02 8a 04  0d 02 94 1a f4 20 53 65  |............. Se|
00000410  6e 64 20 61 6e 64 20 52  65 61 64 20 61 20 62 79  |nd and Read a by|
00000420  74 65 0d 02 9e 0e dd 20  a4 5f 53 50 28 42 25 29  |te..... ._SP(B%)|
00000430  0d 02 a8 08 ea 20 52 25  0d 02 b2 0f 42 25 3d 42  |..... R%....B%=B|
00000440  25 20 80 20 26 46 46 0d  02 bc 0a 2a 46 58 32 2c  |% . &FF....*FX2,|
00000450  31 0d 02 c6 0a 2a 46 58  33 2c 33 0d 02 d0 0c f1  |1....*FX3,3.....|
00000460  20 bd 28 42 25 29 3b 0d  02 da 08 52 25 3d a5 0d  | .(B%);....R%=..|
00000470  02 e4 0a 2a 46 58 32 2c  30 0d 02 ee 0a 2a 46 58  |...*FX2,0....*FX|
00000480  33 2c 30 0d 02 f8 07 3d  52 25 0d 03 02 04 0d 03  |3,0....=R%......|
00000490  0c 09 ee 20 85 20 87 0d  03 16 0a 2a 46 58 33 2c  |... . .....*FX3,|
000004a0  30 0d 03 20 0a 2a 46 58  32 2c 30 0d 03 2a 1d f1  |0.. .*FX2,0..*..|
000004b0  22 45 72 72 6f 72 20 22  3b 9f 3b 22 20 41 74 20  |"Error ";.;" At |
000004c0  6c 69 6e 65 20 22 3b 9e  0d ff                    |line ";...|
000004ca