The newer version has support for selecting between signaling Dynamic
Modeling SYS;ATSIGN demons to handle ARPANET services, or for all
others, start a DEVICE;LBSIGN server.
KA ITS need even more space to add NCP. The IMP code for KS10 doesn't
have NCP support.
We chose the host number 176 for KA and KL to be well away from
clashing with any of the original ARPANET hosts.
If MCHOKP was called with A=0, it would mistakenly match this against
an empty MCHTAB entry and do a skip return to indicate a valid ITS
name. To fix this, the check for an empty entry is moved up.
When NAMES would not normally need recompilation, check if SYSBIN;HOSTS3 has been updated since the last NAMES compilation and if so, recompile to get any fresh host addresses.
Now, KA, DB, and KL systems will set their IP address to the value of the IP make variable.
They wiil correctly define a host table entry for their machine.
They will correctly set up .mail.;names >.
They will correctly configure COMSAT for networking.
The resulting systems should allow COMSAT to come up, and with appropriate IMP configuration
in the "run" scripts to perform inbound and output IP network requests.
Adding retry logic for creatin the tar ball to ensure what we upload is valid.
Looping back to creating the tar ball instead of looping on the download.
The old Maclisp used when SHRDLU was created allowed one to take the CAR
and CDR of atoms. The former returned internal bits associated wih the
symbol, and the latter returned the property list of the symbol.
This was disabled in later verisons of MacLISP, but allowed to be enabled
by setting the value of CAR to T (and the value of CDR to T).
However, doing this masked coding errors that resulted from unintentionally
taking the CAR or CDR of a symbol, when a list or NUL was actually expected.
This commit removes the hack of setting CAR and CDR to T, and adds macros
to replace the use of CAR and CDR in this cases in PLNR and associated PLNR
logic. These macros are found in the MACROS module. Making this change,
and removing the duplicated $ reader macro from PLNR (it is already in
MACROS for the benefit of other files), required making changes to the
loader of SHRDLU and PLNR. I removed the obsolete use of UREAD to load
interpreted files, and replaced with a new NEW-LOAD function. UREAD was
unable to handle the (status macro $ 'thread) code that needed to be included.
The LISTNAMES function needed another conditioanl clause to handle the case where it was
passed the NIL object (meaning "no object"). Now, it correctly answers "NOTHING" rather
than "THE IL".h
Now, we build SHRDLU;TS SHRDLU and SHRDLU;TS PLNR from compiled
lisp code. This should allow it to run faster and have fewer issues
with garbage collection and running out of LIST space.
Found lots of bugs going through the compilation effort. Also fixed
several issues that were resulting in weird/incorrect responses to
standard demo prompts.
Below is a list of prompts that I have tested:
pick up a big red block.
grasp the pyramid
find a block that is taller than the one you are holding and put it into the box.
what does the box contain?
what is the pyramid supported by?
how many blocks are not in the box?
is the red cube supported?
can the table pick up blocks?
can a pyramid be supported by a block?
can a pyramid support a pyramid?
stack up two pyramids.
stack up two red blocks.
put the green pyramid on the red cube.
which cube is sitting on the table?
is there a large block behind a pyramid?
put a small one onto the green cube that supports a pyramid.
put the littlest pyramid on top of it.
does the red cube support anything?
what color is the block that supports the green pyramid?
how many things are on top of green cubes?
had you touched any pyramid before you put the green pyramid on the little cube?
when did you pick it up?
why did you pick it up?
why did you clear off that cube?
how did you clean off the red cube?
how many objects did you touch while you were doing it?
put the blue pyramid on the block in the box.
is there anything which is bigger than every pyramid but is not as wide as the thing that supports it?
thank you.
Of course, lots more things are possible.
It is still best to do this without answering "Y" to the Type 340 display prompt at the
start. There is either an issue with the GRAPHF module or the SLAVE module (or perhaps
with the Type 340 simulator) that is causing crashes after several successful commands
with graphic output.