Home » Personal collection » Acorn ADFS disks » Electron_User_Group » EUG_24.ADF » F/M\cTut2

F/M\cTut2

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 ADFS disks » Electron_User_Group » EUG_24.ADF
Filename: F/M\cTut2
Read OK:
File size: 1780 bytes
Load address: 46204556
Exec address: 432F4D2E
File contents
Message 3 is now printed and routine 'prtdirs' called.  This uses the data
'movdat' in lines 5840 - 6030.  Each line refers to the corresponding
location and allows for 8 directions though only 4 are used in this
program.

These lines define the 'map' of the game.  The line 350 multiplies the
value in 'loc' by 8 and subtracts 8 to select the line of data and then
compares each value in turn with &FF.  If this is equal the direction is
not printed as this move is not allowed.

Now message 4 is printed asking you to enter your command.  I have used
page &900 to take your entry and this is cleared of ant previous entry at
lines 2160 and then a CR character entered.

OSWORD is then called with A register 0 and X and Y the address of the
buffer.  The five buffer bytes are - the address to be written to (&900),
the length of the input allowed (255 chars) and the characters allowed (32
- 127).  This enters the string input at &900.

The input required is the usual verb noun.  The wordsmay be the first
four letters or the complete word.  The directions can also be single
letters.

Line 2190 allows you to return to BASIC if you press escape.

The next two routines find the two words of the command and if found put
the two action numbers in 'actn' (line 6240)

'fndwd1' is in two parts.  The first (lines 600 - 640) check for a single
letter command.  Register X is used as a index to point to the address in
the list of words.  Initially X is set to 1 to point to the first letter
in 'words1'.  This is loaded into A register and compared with the first
byte of the input and if not equal X is increased by two (line 640) to
point to the next letter.  If none are equal, the byte &FF is reached and
program will branch to the second part at line 650.  If an equal is found
the program goes to 'fd' (line 630).  This will clear the second byte of
'actn' and since X is decreased the action number be read and the stored
in the first byte.  The routine ends and since no second word is added the
program runs through fndwd2.

If a single letter command has not been found, the second part of the
routine uses a loop to compare the four bytes of the words and X is
increased five times when a word is not found.  The value in X is stored
in 'tempx' so this value always points to the first letter of the word and
can then be reloaded and decreased to point to the action number which is
then loaded into 'actn'.

'fndwd2' finds the second word in the same way as part two of the first
routine so that the second action number is entered in the second byte of
'actn'.

The first action number is then compared at line 2220.  If this is zero,
no action is taken and message 9 is printed at line  2240 and the program
returns to 'mm' at line 2140.

If the action is then less than 9, the action is a direction and so jumps
to line 2230 and then to 'mov' line 830.  This checks the relevant line of
data as in 'prtloc'.  If the value is &FF a jump is made to 'nomov' and
message 8 is printed and then a return to 'mm'.  If the number is for a
valid move, the value read from the data is stored in 'loc' as this is the
room number to which you have moved.  A return to 'mvd' is made (line
2230) and a line of '~' printed before returning to 'm' in line 2040 to
print the new location information.

If INVE has been entered, the action number is 99 and a jump to 'inven'
calls routine 'inv' followed by line of '~' as above.  The routine clears
the screen and prints message 5.  The data line 'obsheld' line 6230 is
searched and if an object number is found, the object is printed.  If none
are found then message 15 is printed.

Action 'verb' numbers may between 10 and 49 though in this only 11, 12,
20, and 21 are used.  These numbers call the routine 'act' in line 890. 
This compares the number or the routine required and, if not found, jumps
to 'noact' to print message 9.

The four routines used so far work follows -

TAKE (line 930) first compares the second action number.  For useful
objects which can be carried, the numbers may be 50 to 69.  Numbers 50 -
55 are used here and, if these are not found, the number is compared with
zero.  If it is equal (no second word entered) the input word together
with message 16 are printed.  Otherwise message 17 is printed.

If a valid number is found a jump is made to 'tak'.  First, 49 is deducted
to obtain the object number and this is stored in 'obflag'.  The number is
transferred into X register and decreased by one and used as an index to
compare with the data in 'obsheld'.  If this is equal, message 13 is
printed (line 940).  If not equal, the data is compared with the location
number and, if this is not equal, message 14 is printed at line 950.
Otherwise the data address is set to zero and the object number, held in
the obflag, is stored in 'obsheld' and message 10 is printed.

DROP (line 970)  works in a similar way but clears the memory address in
'obsheld' and stores the object number in 'obsdat' at the address indexed
by the current location.

PUSH (line 1010) first checks whether you are in location 1 and if not
prints message 17 (line 1060).  Then if actn+1 is zero prints the input
and message 16 (line 1050).  If you enter BUTTON (action no. 75) the input
and message 18 is printed (line 1040).  You must enter PUSH RED (or
GREEN).  If RED is chosen, obsdat+9 is set to zero and obsdat+8 loaded
with 8 (the location no. of the red light) see line 1020.  For GREEN, the
addresses are set the other way at line 1030.  The message 19 is then
printed.

MEND (line 1070) checks for location 16 and then for the second word as
above.  It then checks if the second word is CABLE (actn no.73) and if so
checks that you have object 4 (the SPANNER) and, if you have it, obsdat+12
is cleared and obsdat+13 loaded with 16.  This changes the 'loose cable'
to 'fixed cable'.

00000000  0d 4d 65 73 73 61 67 65  20 33 20 69 73 20 6e 6f  |.Message 3 is no|
00000010  77 20 70 72 69 6e 74 65  64 20 61 6e 64 20 72 6f  |w printed and ro|
00000020  75 74 69 6e 65 20 27 70  72 74 64 69 72 73 27 20  |utine 'prtdirs' |
00000030  63 61 6c 6c 65 64 2e 20  20 54 68 69 73 20 75 73  |called.  This us|
00000040  65 73 20 74 68 65 20 64  61 74 61 0d 27 6d 6f 76  |es the data.'mov|
00000050  64 61 74 27 20 69 6e 20  6c 69 6e 65 73 20 35 38  |dat' in lines 58|
00000060  34 30 20 2d 1a 20 36 30  33 30 2e 1a 20 20 45 61  |40 -. 6030..  Ea|
00000070  63 68 1a 20 6c 69 6e 65  1a 20 72 65 66 65 72 73  |ch. line. refers|
00000080  1a 20 74 6f 20 74 68 65  20 63 6f 72 72 65 73 70  |. to the corresp|
00000090  6f 6e 64 69 6e 67 0d 6c  6f 63 61 74 69 6f 6e 20  |onding.location |
000000a0  61 6e 64 20 61 6c 6c 6f  77 73 20 66 6f 72 20 38  |and allows for 8|
000000b0  1a 20 64 69 72 65 63 74  69 6f 6e 73 1a 20 74 68  |. directions. th|
000000c0  6f 75 67 68 1a 20 6f 6e  6c 79 1a 20 34 1a 20 61  |ough. only. 4. a|
000000d0  72 65 1a 20 75 73 65 64  1a 20 69 6e 20 74 68 69  |re. used. in thi|
000000e0  73 0d 70 72 6f 67 72 61  6d 2e 0d 0d 54 68 65 73  |s.program...Thes|
000000f0  65 1a 20 6c 69 6e 65 73  1a 20 64 65 66 69 6e 65  |e. lines. define|
00000100  1a 20 74 68 65 1a 20 27  6d 61 70 27 20 6f 66 20  |. the. 'map' of |
00000110  74 68 65 20 67 61 6d 65  2e 20 20 54 68 65 20 6c  |the game.  The l|
00000120  69 6e 65 20 33 35 30 20  6d 75 6c 74 69 70 6c 69  |ine 350 multipli|
00000130  65 73 20 74 68 65 0d 76  61 6c 75 65 20 69 6e 20  |es the.value in |
00000140  27 6c 6f 63 27 20 62 79  20 38 1a 20 61 6e 64 1a  |'loc' by 8. and.|
00000150  20 73 75 62 74 72 61 63  74 73 1a 20 38 20 74 6f  | subtracts. 8 to|
00000160  20 73 65 6c 65 63 74 20  74 68 65 20 6c 69 6e 65  | select the line|
00000170  20 6f 66 20 64 61 74 61  20 61 6e 64 20 74 68 65  | of data and the|
00000180  6e 0d 63 6f 6d 70 61 72  65 73 20 65 61 63 68 20  |n.compares each |
00000190  76 61 6c 75 65 20 69 6e  20 74 75 72 6e 20 77 69  |value in turn wi|
000001a0  74 68 20 26 46 46 2e 20  20 49 66 20 74 68 69 73  |th &FF.  If this|
000001b0  1a 20 69 73 1a 20 65 71  75 61 6c 20 74 68 65 20  |. is. equal the |
000001c0  64 69 72 65 63 74 69 6f  6e 20 69 73 0d 6e 6f 74  |direction is.not|
000001d0  20 70 72 69 6e 74 65 64  20 61 73 20 74 68 69 73  | printed as this|
000001e0  20 6d 6f 76 65 20 69 73  20 6e 6f 74 20 61 6c 6c  | move is not all|
000001f0  6f 77 65 64 2e 0d 0d 4e  6f 77 1a 20 6d 65 73 73  |owed...Now. mess|
00000200  61 67 65 1a 20 34 1a 20  69 73 20 70 72 69 6e 74  |age. 4. is print|
00000210  65 64 20 61 73 6b 69 6e  67 20 79 6f 75 20 74 6f  |ed asking you to|
00000220  20 65 6e 74 65 72 20 79  6f 75 72 20 63 6f 6d 6d  | enter your comm|
00000230  61 6e 64 2e 20 20 49 20  68 61 76 65 20 75 73 65  |and.  I have use|
00000240  64 0d 70 61 67 65 20 26  39 30 30 20 74 6f 20 74  |d.page &900 to t|
00000250  61 6b 65 1a 20 79 6f 75  72 20 65 6e 74 72 79 20  |ake. your entry |
00000260  61 6e 64 20 74 68 69 73  20 69 73 20 63 6c 65 61  |and this is clea|
00000270  72 65 64 20 6f 66 20 61  6e 74 20 70 72 65 76 69  |red of ant previ|
00000280  6f 75 73 20 65 6e 74 72  79 20 61 74 0d 6c 69 6e  |ous entry at.lin|
00000290  65 73 20 32 31 36 30 20  61 6e 64 20 74 68 65 6e  |es 2160 and then|
000002a0  20 61 20 43 52 20 63 68  61 72 61 63 74 65 72 20  | a CR character |
000002b0  65 6e 74 65 72 65 64 2e  0d 0d 4f 53 57 4f 52 44  |entered...OSWORD|
000002c0  20 69 73 20 74 68 65 6e  20 63 61 6c 6c 65 64 20  | is then called |
000002d0  77 69 74 68 1a 20 41 1a  20 72 65 67 69 73 74 65  |with. A. registe|
000002e0  72 1a 20 30 1a 20 61 6e  64 20 58 20 61 6e 64 20  |r. 0. and X and |
000002f0  59 20 74 68 65 20 61 64  64 72 65 73 73 20 6f 66  |Y the address of|
00000300  20 74 68 65 0d 62 75 66  66 65 72 2e 20 20 54 68  | the.buffer.  Th|
00000310  65 20 66 69 76 65 20 62  75 66 66 65 72 20 62 79  |e five buffer by|
00000320  74 65 73 20 61 72 65 20  2d 20 74 68 65 20 61 64  |tes are - the ad|
00000330  64 72 65 73 73 20 74 6f  1a 20 62 65 20 77 72 69  |dress to. be wri|
00000340  74 74 65 6e 20 74 6f 20  28 26 39 30 30 29 2c 0d  |tten to (&900),.|
00000350  74 68 65 20 6c 65 6e 67  74 68 20 6f 66 20 74 68  |the length of th|
00000360  65 20 69 6e 70 75 74 20  61 6c 6c 6f 77 65 64 20  |e input allowed |
00000370  28 32 35 35 20 63 68 61  72 73 29 20 61 6e 64 20  |(255 chars) and |
00000380  74 68 65 20 63 68 61 72  61 63 74 65 72 73 20 61  |the characters a|
00000390  6c 6c 6f 77 65 64 20 28  33 32 0d 2d 20 31 32 37  |llowed (32.- 127|
000003a0  29 2e 20 20 54 68 69 73  20 65 6e 74 65 72 73 20  |).  This enters |
000003b0  74 68 65 20 73 74 72 69  6e 67 20 69 6e 70 75 74  |the string input|
000003c0  20 61 74 20 26 39 30 30  2e 0d 0d 54 68 65 1a 20  | at &900...The. |
000003d0  69 6e 70 75 74 1a 20 72  65 71 75 69 72 65 64 1a  |input. required.|
000003e0  20 69 73 1a 20 74 68 65  20 75 73 75 61 6c 20 76  | is. the usual v|
000003f0  65 72 62 20 6e 6f 75 6e  2e 20 20 54 68 65 20 77  |erb noun.  The w|
00000400  6f 72 64 73 1a 6d 61 79  20 62 65 20 74 68 65 20  |ords.may be the |
00000410  66 69 72 73 74 0d 66 6f  75 72 20 6c 65 74 74 65  |first.four lette|
00000420  72 73 20 6f 72 20 74 68  65 20 63 6f 6d 70 6c 65  |rs or the comple|
00000430  74 65 1a 20 77 6f 72 64  2e 1a 20 20 54 68 65 1a  |te. word..  The.|
00000440  20 64 69 72 65 63 74 69  6f 6e 73 1a 20 63 61 6e  | directions. can|
00000450  1a 20 61 6c 73 6f 20 62  65 20 73 69 6e 67 6c 65  |. also be single|
00000460  0d 6c 65 74 74 65 72 73  2e 0d 0d 4c 69 6e 65 20  |.letters...Line |
00000470  32 31 39 30 20 61 6c 6c  6f 77 73 20 79 6f 75 20  |2190 allows you |
00000480  74 6f 20 72 65 74 75 72  6e 20 74 6f 20 42 41 53  |to return to BAS|
00000490  49 43 20 69 66 20 79 6f  75 20 70 72 65 73 73 20  |IC if you press |
000004a0  65 73 63 61 70 65 2e 0d  0d 54 68 65 20 6e 65 78  |escape...The nex|
000004b0  74 20 74 77 6f 20 72 6f  75 74 69 6e 65 73 20 66  |t two routines f|
000004c0  69 6e 64 1a 20 74 68 65  1a 20 74 77 6f 20 77 6f  |ind. the. two wo|
000004d0  72 64 73 20 6f 66 20 74  68 65 20 63 6f 6d 6d 61  |rds of the comma|
000004e0  6e 64 20 61 6e 64 20 69  66 20 66 6f 75 6e 64 20  |nd and if found |
000004f0  70 75 74 0d 74 68 65 20  74 77 6f 20 61 63 74 69  |put.the two acti|
00000500  6f 6e 20 6e 75 6d 62 65  72 73 20 69 6e 20 27 61  |on numbers in 'a|
00000510  63 74 6e 27 20 28 6c 69  6e 65 20 36 32 34 30 29  |ctn' (line 6240)|
00000520  0d 0d 27 66 6e 64 77 64  31 27 20 69 73 1a 20 69  |..'fndwd1' is. i|
00000530  6e 20 74 77 6f 20 70 61  72 74 73 2e 20 20 54 68  |n two parts.  Th|
00000540  65 20 66 69 72 73 74 20  28 6c 69 6e 65 73 20 36  |e first (lines 6|
00000550  30 30 20 2d 20 36 34 30  29 20 63 68 65 63 6b 20  |00 - 640) check |
00000560  66 6f 72 20 61 20 73 69  6e 67 6c 65 0d 6c 65 74  |for a single.let|
00000570  74 65 72 20 63 6f 6d 6d  61 6e 64 2e 20 20 52 65  |ter command.  Re|
00000580  67 69 73 74 65 72 20 58  20 69 73 1a 20 75 73 65  |gister X is. use|
00000590  64 20 61 73 20 61 20 69  6e 64 65 78 20 74 6f 20  |d as a index to |
000005a0  70 6f 69 6e 74 20 74 6f  20 74 68 65 20 61 64 64  |point to the add|
000005b0  72 65 73 73 20 69 6e 0d  74 68 65 20 6c 69 73 74  |ress in.the list|
000005c0  20 6f 66 20 77 6f 72 64  73 2e 20 20 49 6e 69 74  | of words.  Init|
000005d0  69 61 6c 6c 79 20 58 1a  20 69 73 1a 20 73 65 74  |ially X. is. set|
000005e0  20 74 6f 20 31 20 74 6f  20 70 6f 69 6e 74 20 74  | to 1 to point t|
000005f0  6f 20 74 68 65 20 66 69  72 73 74 20 6c 65 74 74  |o the first lett|
00000600  65 72 0d 69 6e 20 27 77  6f 72 64 73 31 27 2e 20  |er.in 'words1'. |
00000610  20 54 68 69 73 20 69 73  20 6c 6f 61 64 65 64 20  | This is loaded |
00000620  69 6e 74 6f 20 41 20 72  65 67 69 73 74 65 72 1a  |into A register.|
00000630  20 61 6e 64 1a 20 63 6f  6d 70 61 72 65 64 20 77  | and. compared w|
00000640  69 74 68 20 74 68 65 20  66 69 72 73 74 0d 62 79  |ith the first.by|
00000650  74 65 20 6f 66 20 74 68  65 20 69 6e 70 75 74 20  |te of the input |
00000660  61 6e 64 20 69 66 20 6e  6f 74 20 65 71 75 61 6c  |and if not equal|
00000670  20 58 20 69 73 1a 20 69  6e 63 72 65 61 73 65 64  | X is. increased|
00000680  1a 20 62 79 1a 20 74 77  6f 1a 20 28 6c 69 6e 65  |. by. two. (line|
00000690  20 36 34 30 29 20 74 6f  0d 70 6f 69 6e 74 1a 20  | 640) to.point. |
000006a0  74 6f 20 74 68 65 20 6e  65 78 74 20 6c 65 74 74  |to the next lett|
000006b0  65 72 2e 20 20 49 66 20  6e 6f 6e 65 20 61 72 65  |er.  If none are|
000006c0  20 65 71 75 61 6c 2c 20  74 68 65 20 62 79 74 65  | equal, the byte|
000006d0  20 26 46 46 20 69 73 20  72 65 61 63 68 65 64 20  | &FF is reached |
000006e0  61 6e 64 0d 70 72 6f 67  72 61 6d 20 77 69 6c 6c  |and.program will|
000006f0  1a 20 62 72 61 6e 63 68  20 74 6f 20 74 68 65 20  |. branch to the |
00000700  73 65 63 6f 6e 64 20 70  61 72 74 20 61 74 20 6c  |second part at l|
00000710  69 6e 65 20 36 35 30 2e  20 20 49 66 20 61 6e 20  |ine 650.  If an |
00000720  65 71 75 61 6c 20 69 73  20 66 6f 75 6e 64 0d 74  |equal is found.t|
00000730  68 65 20 70 72 6f 67 72  61 6d 20 67 6f 65 73 1a  |he program goes.|
00000740  20 74 6f 1a 20 27 66 64  27 20 28 6c 69 6e 65 20  | to. 'fd' (line |
00000750  36 33 30 29 2e 20 20 54  68 69 73 20 77 69 6c 6c  |630).  This will|
00000760  20 63 6c 65 61 72 20 74  68 65 20 73 65 63 6f 6e  | clear the secon|
00000770  64 20 62 79 74 65 20 6f  66 0d 27 61 63 74 6e 27  |d byte of.'actn'|
00000780  20 61 6e 64 20 73 69 6e  63 65 20 58 20 69 73 1a  | and since X is.|
00000790  20 64 65 63 72 65 61 73  65 64 1a 20 74 68 65 20  | decreased. the |
000007a0  61 63 74 69 6f 6e 20 6e  75 6d 62 65 72 20 62 65  |action number be|
000007b0  20 72 65 61 64 20 61 6e  64 20 74 68 65 20 73 74  | read and the st|
000007c0  6f 72 65 64 0d 69 6e 20  74 68 65 20 66 69 72 73  |ored.in the firs|
000007d0  74 20 62 79 74 65 2e 20  20 54 68 65 20 72 6f 75  |t byte.  The rou|
000007e0  74 69 6e 65 20 65 6e 64  73 20 61 6e 64 20 73 69  |tine ends and si|
000007f0  6e 63 65 20 6e 6f 20 73  65 63 6f 6e 64 20 77 6f  |nce no second wo|
00000800  72 64 20 69 73 20 61 64  64 65 64 20 74 68 65 0d  |rd is added the.|
00000810  70 72 6f 67 72 61 6d 20  72 75 6e 73 20 74 68 72  |program runs thr|
00000820  6f 75 67 68 20 66 6e 64  77 64 32 2e 0d 0d 49 66  |ough fndwd2...If|
00000830  20 61 20 73 69 6e 67 6c  65 20 6c 65 74 74 65 72  | a single letter|
00000840  20 63 6f 6d 6d 61 6e 64  20 68 61 73 1a 20 6e 6f  | command has. no|
00000850  74 1a 20 62 65 65 6e 1a  20 66 6f 75 6e 64 2c 1a  |t. been. found,.|
00000860  20 74 68 65 1a 20 73 65  63 6f 6e 64 20 70 61 72  | the. second par|
00000870  74 20 6f 66 20 74 68 65  0d 72 6f 75 74 69 6e 65  |t of the.routine|
00000880  1a 20 75 73 65 73 1a 20  61 1a 20 6c 6f 6f 70 20  |. uses. a. loop |
00000890  74 6f 20 63 6f 6d 70 61  72 65 20 74 68 65 20 66  |to compare the f|
000008a0  6f 75 72 20 62 79 74 65  73 20 6f 66 20 74 68 65  |our bytes of the|
000008b0  1a 20 77 6f 72 64 73 1a  20 61 6e 64 1a 20 58 1a  |. words. and. X.|
000008c0  20 69 73 0d 69 6e 63 72  65 61 73 65 64 20 66 69  | is.increased fi|
000008d0  76 65 20 74 69 6d 65 73  20 77 68 65 6e 1a 20 61  |ve times when. a|
000008e0  1a 20 77 6f 72 64 20 69  73 20 6e 6f 74 20 66 6f  |. word is not fo|
000008f0  75 6e 64 2e 20 20 54 68  65 20 76 61 6c 75 65 20  |und.  The value |
00000900  69 6e 20 58 20 69 73 20  73 74 6f 72 65 64 0d 69  |in X is stored.i|
00000910  6e 20 27 74 65 6d 70 78  27 20 73 6f 20 74 68 69  |n 'tempx' so thi|
00000920  73 20 76 61 6c 75 65 20  61 6c 77 61 79 73 20 70  |s value always p|
00000930  6f 69 6e 74 73 20 74 6f  20 74 68 65 20 66 69 72  |oints to the fir|
00000940  73 74 20 6c 65 74 74 65  72 20 6f 66 20 74 68 65  |st letter of the|
00000950  20 77 6f 72 64 20 61 6e  64 0d 63 61 6e 20 74 68  | word and.can th|
00000960  65 6e 20 62 65 20 72 65  6c 6f 61 64 65 64 20 61  |en be reloaded a|
00000970  6e 64 20 64 65 63 72 65  61 73 65 64 20 74 6f 20  |nd decreased to |
00000980  70 6f 69 6e 74 20 74 6f  1a 20 74 68 65 20 61 63  |point to. the ac|
00000990  74 69 6f 6e 20 6e 75 6d  62 65 72 20 77 68 69 63  |tion number whic|
000009a0  68 20 69 73 0d 74 68 65  6e 20 6c 6f 61 64 65 64  |h is.then loaded|
000009b0  20 69 6e 74 6f 20 27 61  63 74 6e 27 2e 0d 0d 27  | into 'actn'...'|
000009c0  66 6e 64 77 64 32 27 20  66 69 6e 64 73 20 74 68  |fndwd2' finds th|
000009d0  65 20 73 65 63 6f 6e 64  20 77 6f 72 64 20 69 6e  |e second word in|
000009e0  20 74 68 65 20 73 61 6d  65 20 77 61 79 20 61 73  | the same way as|
000009f0  1a 20 70 61 72 74 1a 20  74 77 6f 1a 20 6f 66 20  |. part. two. of |
00000a00  74 68 65 20 66 69 72 73  74 0d 72 6f 75 74 69 6e  |the first.routin|
00000a10  65 1a 20 73 6f 20 74 68  61 74 20 74 68 65 20 73  |e. so that the s|
00000a20  65 63 6f 6e 64 20 61 63  74 69 6f 6e 20 6e 75 6d  |econd action num|
00000a30  62 65 72 20 69 73 20 65  6e 74 65 72 65 64 20 69  |ber is entered i|
00000a40  6e 20 74 68 65 20 73 65  63 6f 6e 64 20 62 79 74  |n the second byt|
00000a50  65 20 6f 66 0d 27 61 63  74 6e 27 2e 0d 0d 54 68  |e of.'actn'...Th|
00000a60  65 20 66 69 72 73 74 1a  20 61 63 74 69 6f 6e 1a  |e first. action.|
00000a70  20 6e 75 6d 62 65 72 20  69 73 20 74 68 65 6e 20  | number is then |
00000a80  63 6f 6d 70 61 72 65 64  20 61 74 20 6c 69 6e 65  |compared at line|
00000a90  20 32 32 32 30 2e 20 20  49 66 20 74 68 69 73 20  | 2220.  If this |
00000aa0  69 73 20 7a 65 72 6f 2c  0d 6e 6f 20 61 63 74 69  |is zero,.no acti|
00000ab0  6f 6e 20 69 73 20 74 61  6b 65 6e 1a 20 61 6e 64  |on is taken. and|
00000ac0  20 6d 65 73 73 61 67 65  20 39 20 69 73 20 70 72  | message 9 is pr|
00000ad0  69 6e 74 65 64 20 61 74  20 6c 69 6e 65 20 20 32  |inted at line  2|
00000ae0  32 34 30 20 61 6e 64 20  74 68 65 20 70 72 6f 67  |240 and the prog|
00000af0  72 61 6d 0d 72 65 74 75  72 6e 73 20 74 6f 20 27  |ram.returns to '|
00000b00  6d 6d 27 20 61 74 20 6c  69 6e 65 20 32 31 34 30  |mm' at line 2140|
00000b10  2e 0d 0d 49 66 20 74 68  65 20 61 63 74 69 6f 6e  |...If the action|
00000b20  20 69 73 20 74 68 65 6e  1a 20 6c 65 73 73 20 74  | is then. less t|
00000b30  68 61 6e 20 39 2c 20 74  68 65 20 61 63 74 69 6f  |han 9, the actio|
00000b40  6e 20 69 73 20 61 20 64  69 72 65 63 74 69 6f 6e  |n is a direction|
00000b50  20 61 6e 64 20 73 6f 20  6a 75 6d 70 73 0d 74 6f  | and so jumps.to|
00000b60  20 6c 69 6e 65 20 32 32  33 30 20 61 6e 64 20 74  | line 2230 and t|
00000b70  68 65 6e 20 74 6f 20 27  6d 6f 76 27 20 6c 69 6e  |hen to 'mov' lin|
00000b80  65 20 38 33 30 2e 20 20  54 68 69 73 20 63 68 65  |e 830.  This che|
00000b90  63 6b 73 20 74 68 65 20  72 65 6c 65 76 61 6e 74  |cks the relevant|
00000ba0  20 6c 69 6e 65 20 6f 66  0d 64 61 74 61 20 61 73  | line of.data as|
00000bb0  20 69 6e 20 27 70 72 74  6c 6f 63 27 2e 20 20 49  | in 'prtloc'.  I|
00000bc0  66 20 74 68 65 1a 20 76  61 6c 75 65 1a 20 69 73  |f the. value. is|
00000bd0  1a 20 26 46 46 20 61 20  6a 75 6d 70 20 69 73 20  |. &FF a jump is |
00000be0  6d 61 64 65 20 74 6f 20  27 6e 6f 6d 6f 76 27 20  |made to 'nomov' |
00000bf0  61 6e 64 0d 6d 65 73 73  61 67 65 20 38 20 69 73  |and.message 8 is|
00000c00  20 70 72 69 6e 74 65 64  20 61 6e 64 20 74 68 65  | printed and the|
00000c10  6e 20 61 20 72 65 74 75  72 6e 20 74 6f 1a 20 27  |n a return to. '|
00000c20  6d 6d 27 2e 1a 20 20 49  66 1a 20 74 68 65 20 6e  |mm'..  If. the n|
00000c30  75 6d 62 65 72 20 69 73  20 66 6f 72 20 61 0d 76  |umber is for a.v|
00000c40  61 6c 69 64 20 6d 6f 76  65 2c 20 74 68 65 20 76  |alid move, the v|
00000c50  61 6c 75 65 20 72 65 61  64 20 66 72 6f 6d 20 74  |alue read from t|
00000c60  68 65 20 64 61 74 61 20  69 73 20 73 74 6f 72 65  |he data is store|
00000c70  64 20 69 6e 20 27 6c 6f  63 27 20 61 73 20 74 68  |d in 'loc' as th|
00000c80  69 73 20 69 73 20 74 68  65 0d 72 6f 6f 6d 1a 20  |is is the.room. |
00000c90  6e 75 6d 62 65 72 1a 20  74 6f 1a 20 77 68 69 63  |number. to. whic|
00000ca0  68 20 79 6f 75 20 68 61  76 65 20 6d 6f 76 65 64  |h you have moved|
00000cb0  2e 20 20 41 20 72 65 74  75 72 6e 20 74 6f 20 27  |.  A return to '|
00000cc0  6d 76 64 27 20 69 73 1a  20 6d 61 64 65 1a 20 28  |mvd' is. made. (|
00000cd0  6c 69 6e 65 0d 32 32 33  30 29 20 61 6e 64 20 61  |line.2230) and a|
00000ce0  20 6c 69 6e 65 1a 20 6f  66 1a 20 27 7e 27 1a 20  | line. of. '~'. |
00000cf0  70 72 69 6e 74 65 64 20  62 65 66 6f 72 65 20 72  |printed before r|
00000d00  65 74 75 72 6e 69 6e 67  20 74 6f 20 27 6d 27 20  |eturning to 'm' |
00000d10  69 6e 20 6c 69 6e 65 20  32 30 34 30 20 74 6f 0d  |in line 2040 to.|
00000d20  70 72 69 6e 74 20 74 68  65 20 6e 65 77 20 6c 6f  |print the new lo|
00000d30  63 61 74 69 6f 6e 20 69  6e 66 6f 72 6d 61 74 69  |cation informati|
00000d40  6f 6e 2e 0d 0d 49 66 20  49 4e 56 45 20 68 61 73  |on...If INVE has|
00000d50  20 62 65 65 6e 20 65 6e  74 65 72 65 64 2c 1a 20  | been entered,. |
00000d60  74 68 65 1a 20 61 63 74  69 6f 6e 1a 20 6e 75 6d  |the. action. num|
00000d70  62 65 72 20 69 73 20 39  39 20 61 6e 64 20 61 20  |ber is 99 and a |
00000d80  6a 75 6d 70 20 74 6f 20  27 69 6e 76 65 6e 27 0d  |jump to 'inven'.|
00000d90  63 61 6c 6c 73 20 72 6f  75 74 69 6e 65 20 27 69  |calls routine 'i|
00000da0  6e 76 27 20 66 6f 6c 6c  6f 77 65 64 20 62 79 20  |nv' followed by |
00000db0  6c 69 6e 65 20 6f 66 20  27 7e 27 1a 20 61 73 20  |line of '~'. as |
00000dc0  61 62 6f 76 65 2e 20 20  54 68 65 20 72 6f 75 74  |above.  The rout|
00000dd0  69 6e 65 20 63 6c 65 61  72 73 0d 74 68 65 20 73  |ine clears.the s|
00000de0  63 72 65 65 6e 20 61 6e  64 20 70 72 69 6e 74 73  |creen and prints|
00000df0  20 6d 65 73 73 61 67 65  20 35 2e 20 20 54 68 65  | message 5.  The|
00000e00  20 64 61 74 61 20 6c 69  6e 65 1a 20 27 6f 62 73  | data line. 'obs|
00000e10  68 65 6c 64 27 1a 20 6c  69 6e 65 1a 20 36 32 33  |held'. line. 623|
00000e20  30 1a 20 69 73 0d 73 65  61 72 63 68 65 64 20 61  |0. is.searched a|
00000e30  6e 64 20 69 66 20 61 6e  20 6f 62 6a 65 63 74 20  |nd if an object |
00000e40  6e 75 6d 62 65 72 20 69  73 20 66 6f 75 6e 64 2c  |number is found,|
00000e50  20 74 68 65 20 6f 62 6a  65 63 74 20 69 73 20 70  | the object is p|
00000e60  72 69 6e 74 65 64 2e 20  20 49 66 20 6e 6f 6e 65  |rinted.  If none|
00000e70  0d 61 72 65 20 66 6f 75  6e 64 20 74 68 65 6e 20  |.are found then |
00000e80  6d 65 73 73 61 67 65 20  31 35 20 69 73 20 70 72  |message 15 is pr|
00000e90  69 6e 74 65 64 2e 0d 0d  41 63 74 69 6f 6e 1a 20  |inted...Action. |
00000ea0  27 76 65 72 62 27 1a 20  6e 75 6d 62 65 72 73 1a  |'verb'. numbers.|
00000eb0  20 6d 61 79 20 62 65 74  77 65 65 6e 20 31 30 20  | may between 10 |
00000ec0  61 6e 64 20 34 39 20 74  68 6f 75 67 68 20 69 6e  |and 49 though in|
00000ed0  20 74 68 69 73 20 6f 6e  6c 79 20 31 31 2c 20 31  | this only 11, 1|
00000ee0  32 2c 0d 32 30 2c 20 61  6e 64 20 32 31 20 61 72  |2,.20, and 21 ar|
00000ef0  65 1a 20 75 73 65 64 2e  1a 20 20 54 68 65 73 65  |e. used..  These|
00000f00  1a 20 6e 75 6d 62 65 72  73 20 63 61 6c 6c 20 74  |. numbers call t|
00000f10  68 65 20 72 6f 75 74 69  6e 65 20 27 61 63 74 27  |he routine 'act'|
00000f20  20 69 6e 20 6c 69 6e 65  20 38 39 30 2e 20 0d 54  | in line 890. .T|
00000f30  68 69 73 20 63 6f 6d 70  61 72 65 73 20 74 68 65  |his compares the|
00000f40  20 6e 75 6d 62 65 72 20  6f 72 20 74 68 65 20 72  | number or the r|
00000f50  6f 75 74 69 6e 65 1a 20  72 65 71 75 69 72 65 64  |outine. required|
00000f60  20 61 6e 64 2c 20 69 66  20 6e 6f 74 20 66 6f 75  | and, if not fou|
00000f70  6e 64 2c 20 6a 75 6d 70  73 0d 74 6f 20 27 6e 6f  |nd, jumps.to 'no|
00000f80  61 63 74 27 20 74 6f 20  70 72 69 6e 74 20 6d 65  |act' to print me|
00000f90  73 73 61 67 65 20 39 2e  0d 0d 54 68 65 20 66 6f  |ssage 9...The fo|
00000fa0  75 72 20 72 6f 75 74 69  6e 65 73 20 75 73 65 64  |ur routines used|
00000fb0  20 73 6f 20 66 61 72 20  77 6f 72 6b 20 66 6f 6c  | so far work fol|
00000fc0  6c 6f 77 73 20 2d 0d 0d  54 41 4b 45 1a 20 28 6c  |lows -..TAKE. (l|
00000fd0  69 6e 65 1a 20 39 33 30  29 1a 20 66 69 72 73 74  |ine. 930). first|
00000fe0  20 63 6f 6d 70 61 72 65  73 20 74 68 65 20 73 65  | compares the se|
00000ff0  63 6f 6e 64 20 61 63 74  69 6f 6e 1a 20 6e 75 6d  |cond action. num|
00001000  62 65 72 2e 1a 20 20 46  6f 72 1a 20 75 73 65 66  |ber..  For. usef|
00001010  75 6c 0d 6f 62 6a 65 63  74 73 20 77 68 69 63 68  |ul.objects which|
00001020  20 63 61 6e 20 62 65 1a  20 63 61 72 72 69 65 64  | can be. carried|
00001030  2c 1a 20 74 68 65 20 6e  75 6d 62 65 72 73 20 6d  |,. the numbers m|
00001040  61 79 20 62 65 20 35 30  20 74 6f 20 36 39 2e 20  |ay be 50 to 69. |
00001050  20 4e 75 6d 62 65 72 73  20 35 30 20 2d 0d 35 35  | Numbers 50 -.55|
00001060  20 61 72 65 20 75 73 65  64 20 68 65 72 65 20 61  | are used here a|
00001070  6e 64 2c 20 69 66 1a 20  74 68 65 73 65 20 61 72  |nd, if. these ar|
00001080  65 20 6e 6f 74 20 66 6f  75 6e 64 2c 20 74 68 65  |e not found, the|
00001090  20 6e 75 6d 62 65 72 20  69 73 20 63 6f 6d 70 61  | number is compa|
000010a0  72 65 64 20 77 69 74 68  0d 7a 65 72 6f 2e 20 20  |red with.zero.  |
000010b0  49 66 20 69 74 20 69 73  20 65 71 75 61 6c 20 28  |If it is equal (|
000010c0  6e 6f 20 73 65 63 6f 6e  64 1a 20 77 6f 72 64 1a  |no second. word.|
000010d0  20 65 6e 74 65 72 65 64  29 1a 20 74 68 65 1a 20  | entered). the. |
000010e0  69 6e 70 75 74 20 77 6f  72 64 20 74 6f 67 65 74  |input word toget|
000010f0  68 65 72 0d 77 69 74 68  20 6d 65 73 73 61 67 65  |her.with message|
00001100  20 31 36 20 61 72 65 20  70 72 69 6e 74 65 64 2e  | 16 are printed.|
00001110  20 20 4f 74 68 65 72 77  69 73 65 20 6d 65 73 73  |  Otherwise mess|
00001120  61 67 65 20 31 37 20 69  73 20 70 72 69 6e 74 65  |age 17 is printe|
00001130  64 2e 0d 0d 49 66 20 61  20 76 61 6c 69 64 20 6e  |d...If a valid n|
00001140  75 6d 62 65 72 20 69 73  20 66 6f 75 6e 64 20 61  |umber is found a|
00001150  20 6a 75 6d 70 20 69 73  20 6d 61 64 65 20 74 6f  | jump is made to|
00001160  20 27 74 61 6b 27 2e 20  20 46 69 72 73 74 2c 20  | 'tak'.  First, |
00001170  34 39 20 69 73 20 64 65  64 75 63 74 65 64 0d 74  |49 is deducted.t|
00001180  6f 20 6f 62 74 61 69 6e  20 74 68 65 20 6f 62 6a  |o obtain the obj|
00001190  65 63 74 20 6e 75 6d 62  65 72 20 61 6e 64 20 74  |ect number and t|
000011a0  68 69 73 20 69 73 20 73  74 6f 72 65 64 20 69 6e  |his is stored in|
000011b0  20 27 6f 62 66 6c 61 67  27 2e 20 20 54 68 65 20  | 'obflag'.  The |
000011c0  6e 75 6d 62 65 72 20 69  73 0d 74 72 61 6e 73 66  |number is.transf|
000011d0  65 72 72 65 64 20 69 6e  74 6f 20 58 20 72 65 67  |erred into X reg|
000011e0  69 73 74 65 72 20 61 6e  64 20 64 65 63 72 65 61  |ister and decrea|
000011f0  73 65 64 20 62 79 20 6f  6e 65 20 61 6e 64 20 75  |sed by one and u|
00001200  73 65 64 20 61 73 1a 20  61 6e 1a 20 69 6e 64 65  |sed as. an. inde|
00001210  78 20 74 6f 0d 63 6f 6d  70 61 72 65 1a 20 77 69  |x to.compare. wi|
00001220  74 68 1a 20 74 68 65 1a  20 64 61 74 61 1a 20 69  |th. the. data. i|
00001230  6e 1a 20 27 6f 62 73 68  65 6c 64 27 2e 1a 20 20  |n. 'obsheld'..  |
00001240  49 66 20 74 68 69 73 20  69 73 20 65 71 75 61 6c  |If this is equal|
00001250  2c 20 6d 65 73 73 61 67  65 20 31 33 20 69 73 0d  |, message 13 is.|
00001260  70 72 69 6e 74 65 64 1a  20 28 6c 69 6e 65 20 39  |printed. (line 9|
00001270  34 30 29 2e 20 20 49 66  20 6e 6f 74 20 65 71 75  |40).  If not equ|
00001280  61 6c 2c 20 74 68 65 20  64 61 74 61 20 69 73 20  |al, the data is |
00001290  63 6f 6d 70 61 72 65 64  20 77 69 74 68 20 74 68  |compared with th|
000012a0  65 20 6c 6f 63 61 74 69  6f 6e 0d 6e 75 6d 62 65  |e location.numbe|
000012b0  72 20 61 6e 64 2c 20 69  66 20 74 68 69 73 20 69  |r and, if this i|
000012c0  73 20 6e 6f 74 20 65 71  75 61 6c 2c 20 6d 65 73  |s not equal, mes|
000012d0  73 61 67 65 20 31 34 20  69 73 20 70 72 69 6e 74  |sage 14 is print|
000012e0  65 64 20 61 74 20 6c 69  6e 65 20 39 35 30 2e 0d  |ed at line 950..|
000012f0  4f 74 68 65 72 77 69 73  65 20 74 68 65 1a 20 64  |Otherwise the. d|
00001300  61 74 61 1a 20 61 64 64  72 65 73 73 20 69 73 20  |ata. address is |
00001310  73 65 74 20 74 6f 20 7a  65 72 6f 20 61 6e 64 20  |set to zero and |
00001320  74 68 65 20 6f 62 6a 65  63 74 20 6e 75 6d 62 65  |the object numbe|
00001330  72 2c 20 68 65 6c 64 20  69 6e 0d 74 68 65 20 6f  |r, held in.the o|
00001340  62 66 6c 61 67 2c 20 69  73 20 73 74 6f 72 65 64  |bflag, is stored|
00001350  20 69 6e 20 27 6f 62 73  68 65 6c 64 27 20 61 6e  | in 'obsheld' an|
00001360  64 20 6d 65 73 73 61 67  65 20 31 30 20 69 73 20  |d message 10 is |
00001370  70 72 69 6e 74 65 64 2e  0d 0d 44 52 4f 50 20 28  |printed...DROP (|
00001380  6c 69 6e 65 20 39 37 30  29 20 20 77 6f 72 6b 73  |line 970)  works|
00001390  1a 20 69 6e 1a 20 61 20  73 69 6d 69 6c 61 72 20  |. in. a similar |
000013a0  77 61 79 20 62 75 74 20  63 6c 65 61 72 73 20 74  |way but clears t|
000013b0  68 65 20 6d 65 6d 6f 72  79 20 61 64 64 72 65 73  |he memory addres|
000013c0  73 20 69 6e 0d 27 6f 62  73 68 65 6c 64 27 20 61  |s in.'obsheld' a|
000013d0  6e 64 20 73 74 6f 72 65  73 20 74 68 65 20 6f 62  |nd stores the ob|
000013e0  6a 65 63 74 20 6e 75 6d  62 65 72 1a 20 69 6e 20  |ject number. in |
000013f0  27 6f 62 73 64 61 74 27  20 61 74 20 74 68 65 20  |'obsdat' at the |
00001400  61 64 64 72 65 73 73 20  69 6e 64 65 78 65 64 0d  |address indexed.|
00001410  62 79 20 74 68 65 20 63  75 72 72 65 6e 74 20 6c  |by the current l|
00001420  6f 63 61 74 69 6f 6e 2e  0d 0d 50 55 53 48 20 28  |ocation...PUSH (|
00001430  6c 69 6e 65 20 31 30 31  30 29 20 66 69 72 73 74  |line 1010) first|
00001440  20 63 68 65 63 6b 73 20  77 68 65 74 68 65 72 20  | checks whether |
00001450  79 6f 75 1a 20 61 72 65  1a 20 69 6e 1a 20 6c 6f  |you. are. in. lo|
00001460  63 61 74 69 6f 6e 1a 20  31 20 61 6e 64 20 69 66  |cation. 1 and if|
00001470  20 6e 6f 74 0d 70 72 69  6e 74 73 1a 20 6d 65 73  | not.prints. mes|
00001480  73 61 67 65 20 31 37 20  28 6c 69 6e 65 20 31 30  |sage 17 (line 10|
00001490  36 30 29 2e 20 20 54 68  65 6e 20 69 66 20 61 63  |60).  Then if ac|
000014a0  74 6e 2b 31 20 69 73 20  7a 65 72 6f 20 70 72 69  |tn+1 is zero pri|
000014b0  6e 74 73 1a 20 74 68 65  1a 20 69 6e 70 75 74 0d  |nts. the. input.|
000014c0  61 6e 64 20 6d 65 73 73  61 67 65 20 31 36 20 28  |and message 16 (|
000014d0  6c 69 6e 65 20 31 30 35  30 29 2e 20 20 49 66 20  |line 1050).  If |
000014e0  79 6f 75 20 65 6e 74 65  72 20 42 55 54 54 4f 4e  |you enter BUTTON|
000014f0  20 28 61 63 74 69 6f 6e  20 6e 6f 2e 20 37 35 29  | (action no. 75)|
00001500  20 74 68 65 20 69 6e 70  75 74 0d 61 6e 64 20 6d  | the input.and m|
00001510  65 73 73 61 67 65 1a 20  31 38 1a 20 69 73 1a 20  |essage. 18. is. |
00001520  70 72 69 6e 74 65 64 1a  20 28 6c 69 6e 65 1a 20  |printed. (line. |
00001530  31 30 34 30 29 2e 1a 20  20 59 6f 75 1a 20 6d 75  |1040)..  You. mu|
00001540  73 74 20 65 6e 74 65 72  20 50 55 53 48 20 52 45  |st enter PUSH RE|
00001550  44 20 28 6f 72 0d 47 52  45 45 4e 29 2e 20 20 49  |D (or.GREEN).  I|
00001560  66 20 52 45 44 20 69 73  20 63 68 6f 73 65 6e 2c  |f RED is chosen,|
00001570  20 6f 62 73 64 61 74 2b  39 20 69 73 20 73 65 74  | obsdat+9 is set|
00001580  20 74 6f 1a 20 7a 65 72  6f 1a 20 61 6e 64 1a 20  | to. zero. and. |
00001590  6f 62 73 64 61 74 2b 38  1a 20 6c 6f 61 64 65 64  |obsdat+8. loaded|
000015a0  0d 77 69 74 68 1a 20 38  20 28 74 68 65 20 6c 6f  |.with. 8 (the lo|
000015b0  63 61 74 69 6f 6e 20 6e  6f 2e 20 6f 66 20 74 68  |cation no. of th|
000015c0  65 20 72 65 64 20 6c 69  67 68 74 29 20 73 65 65  |e red light) see|
000015d0  20 6c 69 6e 65 20 31 30  32 30 2e 20 20 46 6f 72  | line 1020.  For|
000015e0  20 47 52 45 45 4e 2c 20  74 68 65 0d 61 64 64 72  | GREEN, the.addr|
000015f0  65 73 73 65 73 20 61 72  65 20 73 65 74 20 74 68  |esses are set th|
00001600  65 20 6f 74 68 65 72 1a  20 77 61 79 1a 20 61 74  |e other. way. at|
00001610  1a 20 6c 69 6e 65 1a 20  31 30 33 30 2e 1a 20 20  |. line. 1030..  |
00001620  54 68 65 20 6d 65 73 73  61 67 65 20 31 39 20 69  |The message 19 i|
00001630  73 20 74 68 65 6e 0d 70  72 69 6e 74 65 64 2e 0d  |s then.printed..|
00001640  0d 4d 45 4e 44 1a 20 28  6c 69 6e 65 1a 20 31 30  |.MEND. (line. 10|
00001650  37 30 29 1a 20 63 68 65  63 6b 73 20 66 6f 72 20  |70). checks for |
00001660  6c 6f 63 61 74 69 6f 6e  20 31 36 20 61 6e 64 20  |location 16 and |
00001670  74 68 65 6e 20 66 6f 72  20 74 68 65 20 73 65 63  |then for the sec|
00001680  6f 6e 64 20 77 6f 72 64  20 61 73 0d 61 62 6f 76  |ond word as.abov|
00001690  65 2e 20 20 49 74 20 74  68 65 6e 20 63 68 65 63  |e.  It then chec|
000016a0  6b 73 1a 20 69 66 20 74  68 65 20 73 65 63 6f 6e  |ks. if the secon|
000016b0  64 20 77 6f 72 64 20 69  73 20 43 41 42 4c 45 20  |d word is CABLE |
000016c0  28 61 63 74 6e 20 6e 6f  2e 37 33 29 20 61 6e 64  |(actn no.73) and|
000016d0  20 69 66 20 73 6f 0d 63  68 65 63 6b 73 20 74 68  | if so.checks th|
000016e0  61 74 20 79 6f 75 20 68  61 76 65 20 6f 62 6a 65  |at you have obje|
000016f0  63 74 20 34 20 28 74 68  65 20 53 50 41 4e 4e 45  |ct 4 (the SPANNE|
00001700  52 29 20 61 6e 64 2c 20  69 66 20 79 6f 75 20 68  |R) and, if you h|
00001710  61 76 65 20 69 74 2c 20  6f 62 73 64 61 74 2b 31  |ave it, obsdat+1|
00001720  32 0d 69 73 20 63 6c 65  61 72 65 64 20 61 6e 64  |2.is cleared and|
00001730  20 6f 62 73 64 61 74 2b  31 33 20 6c 6f 61 64 65  | obsdat+13 loade|
00001740  64 1a 20 77 69 74 68 1a  20 31 36 2e 20 20 54 68  |d. with. 16.  Th|
00001750  69 73 20 63 68 61 6e 67  65 73 20 74 68 65 20 27  |is changes the '|
00001760  6c 6f 6f 73 65 20 63 61  62 6c 65 27 0d 74 6f 20  |loose cable'.to |
00001770  27 66 69 78 65 64 20 63  61 62 6c 65 27 2e 0d 0d  |'fixed cable'...|
00001780
F/M\cTut2.m0
F/M\cTut2.m1
F/M\cTut2.m2
F/M\cTut2.m4
F/M\cTut2.m5