PDP-10 / its

Incompatible Timesharing System
Other
834 stars 80 forks source link

GUNNER dies on KS10 with ILOPR #2250

Open eswenson1 opened 8 months ago

eswenson1 commented 8 months ago

GUNNER was written for a KA10. It uses I/O instructions (e.g. CONSZ) that are not available on a KS10. These references are in the NCPUP logic. A temporary fix is to comment out the invocation of this routine in the dispatch table that tells GUNNER which routines to run. A more permanent fix would be to update this code to use more appropriate I/O instructions when assembled for a KS10.

larsbrinkhoff commented 8 months ago

Moreover, the 424 "FI" device was only used with DM and is not yet supported by the KA10 emulator. The latter can be fixed, and arguably the FI device is more advanced than the AI lab "IMPterface" used by AI, ML, and MC.

larsbrinkhoff commented 8 months ago

I'm reading the GUNNER code to try to better understand the underlying intent. The NCPUP routine checks the state of IMPUP in ITS; this is to see if the network (e.g. connection to Arpanet) is up or down. It remembers the state so it can declare whether the network went down, or back up. If it's down, it calls NETDWN to poke the IMP interface device. This is where the IOT instructions come into play. CONO 424,22 sets the two PI channels and if they read back non-zero, the interface is considered alive. If that didn't work, a new attempt is made after an hour has passed. Presumably, we could try to implement an equivalent logic for the "KA" IMP.

CC original author @taa01776

eswenson1 commented 8 months ago

Do we even have NCP enabled in our builds yet?

larsbrinkhoff commented 8 months ago

No, but this applies to the IMP unirregardless which networking protocol it's using.

eswenson1 commented 8 months ago

Ah, so NCPxxx is a misnomer for these routines?

larsbrinkhoff commented 8 months ago

They were appropriately named when written, and then Arpanet changed. Think of it as a charming reminder of historical context.