1
0
mirror of https://github.com/PDP-10/its.git synced 2026-02-13 03:23:58 +00:00
Commit Graph

2 Commits

Author SHA1 Message Date
Eric Swenson
37f57931e9 Fixed lots of bugs and made it so SHRDLU and PLNR can be compiled.
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.
2024-08-15 07:36:29 -07:00
Eric Swenson
8794a3e050 Update SHRDLU and MicroPlanner to run on newer Maclisp.
Note: SHRDLU only works with the visual block rendering on pdp10-ka with the
Type 340 display enabled.  Even then, there is some issue that causes the
SLAVE interface to the Type 340 display to fail, with an error indicating that
the 340 is not available.  This is still to be tracked down.

Without the Type 340 display, SHRDLU should work reasonably well.  It fails at
some things that the DEMO apparently succeeded in doing.  It is not clear why,
but likely the demo was created at one point, and the SHRDLU sources were updated
after that point, breaking some things.

SHRDLU can be invoked with :SHRDLU;SHRDLU.

Once you invoke SHRDLU, you'll see output similar to this:

SHRDLU VERSION 1000   LOADED 2024-07-21 IN BLISP 2156

REFER
COMMENTS AND QUESTIONS TO DDM

VERSION
RECONSTRUCTED BY EJS

-IF YOU ARE NEAR A DEC-340
     DO YOU WANT THE DISPLAY (TYPE " Y  " OR " N  " )

If you are running the pdp10-ka emulator, have enabled the DPY device, and want
to see the display, answer "Y". Otherwise, answer "N".

Then, after some more output you will see:

YOU ARE NOW IN A READ-EVAL-PRINT LOOP

TYPE " GO  " TO ENTER READY STATE

>>>

You are now in command mode and can type various commands, such as "SHOW".
You can also type "GO" to enter ready mode.  It is in ready mode that you can
issue commands like "pick up a big red block.", to which SHRDLU should
respond "OK.".  Note that commands should be ended with a period (".").
Questions should be ended with an exclamation mark ("?"). An example question
might be:  "what is in the box?".

MicroPlanner can be invoked with :SHRDLU;PLNR.  As a simple test of MicroPlanner,
you can enter these expressions (marked with "==>" -- don't type that).  If the
(THVAL ...) form results in printing "(FALLIBLE TURING)" then you know that basic
goal reaching works.

>>>  TOPLEVEL
LISTENING  THVAL
==> (THASSERT (HUMAN TURING))
((HUMAN TURING))
==> (DEFPROP THEO1 (THCONSE (X) (FALLIBLE $?X) (THGOAL (HUMAN $?X))) THEOREM)
THEO1
==> (THASSERT THEO1)
THEO1
==> (THVAL (THGOAL (FALLIBLE TURING) (THTBF THTRUE)) NIL)
(FALLIBLE TURING)
2024-07-25 13:26:38 -07:00