1
0
mirror of https://github.com/PDP-10/its.git synced 2026-01-19 17:39:17 +00:00

885 Commits

Author SHA1 Message Date
Lars Brinkhoff
dac0474f80 CODGEN - Character set compiler from SSV to MIGS.
From RRS; AR1 THINGS.  Courtesy of Rick Shiffman.
2021-02-09 20:44:08 +01:00
Lars Brinkhoff
6307208718 Extract archive. 2021-02-09 20:44:08 +01:00
Lars Brinkhoff
f530e7f5fe MIGS - Muddle interactive graphics system.
Files courtesy of Rich Shiffman.
2021-02-09 20:44:08 +01:00
Lars Brinkhoff
b748c052d3 Fix "ITS Revived!" messages messing up CROCK. 2021-02-06 16:51:23 +01:00
heasm66
029003fb45 Fix of issue #2012
Exchanged "implode" for "maknam" to avoid choking the GC for larger files.

Filter out ASCII 127 (DEL) from output in ASCII-column.
2021-02-03 13:51:33 +01:00
Lars Brinkhoff
d3e2e7116f HOSTAT - retrieve and print host status.
Connects to MIT-DMS (host 106) to retrieve Arpanet survey data.
2021-01-24 16:28:43 +01:00
Lars Brinkhoff
eca5df75cf SURGIV - Demon to send SURVEY data.
Applications like HOSTAT can connect to DM to retrieve host status data.
This is the demon that serves the data.
2021-01-24 07:04:53 +01:00
Lars Brinkhoff
8122f0334b Re-enable SURVEY in the demon starter. 2021-01-24 07:04:53 +01:00
Lars Brinkhoff
dadf1b9634 SURVEY - Survey Arpanet host availability.
ATSIGN DEMSTR starts the SURVEY demon.  It's activated every 15 minutes.
2021-01-24 07:04:53 +01:00
Lars Brinkhoff
84714b7c96 HOSTS table stubs for assembling SURVEY.
SURVEY inserts SYSENG; HOSTS > when it's assembled.  It needs a
specific set of hosts.  This provides a minimum of information needed.
2021-01-24 07:04:53 +01:00
Lars Brinkhoff
47daada35c Lisp library for sending TT2500 turtle commands. 2021-01-18 19:06:35 +01:00
Lars Brinkhoff
96fccc355a Block loader for TT2500.
The 2500 bootstrap ROM expects to receive a block loader first, which
will run and recieve the actual payload which is the microcode and
font data divided into blocks.
2021-01-15 19:43:20 +01:00
Lars Brinkhoff
3255fc5188 Microcode for the TT2500.
The assembler will recieve a GC-OVERFLOW interrupt.  Other TT2500
files set the GC-OVERFLOW variable to a dummy function, which seems to
appease the interrupt.

Since the TVDIS code was written before backquote was introduced to
Maclisp, it uses comma characters without quoting.  To accomodate this
a call to SETSYNTAX overrides the new syntax for comma.
2021-01-15 19:43:20 +01:00
Lars Brinkhoff
4af63f786b Assembler for TT2500.
The assembler is written in Maclisp.  The main entry point is ZAP
which expects a symbol with a value cell pointing to the source code.
2021-01-15 19:43:20 +01:00
Lars Brinkhoff
47fb5ba074 Don't start display right away.
Doing so will mistakenly use GTTY before it has been set.
DSTART will be called later, honoring the updated GTTY value.
2021-01-14 09:46:27 +01:00
Lars Brinkhoff
69b63680eb Preserve DISINI argument across subroutine calls. 2021-01-14 09:46:27 +01:00
Lars Brinkhoff
3b22323dd0 File must be allocated when calling DISINI with two arguments. 2021-01-14 09:46:27 +01:00
Lars Brinkhoff
f3239702f6 Expunge initial DADD and DSUB symbols from Lisp display slave.
They are used as labels.
2021-01-14 09:46:27 +01:00
Lars Brinkhoff
97b93e2b63 Add GT40 support to PDP-10 Lisp display slave.
When SYS; ATSIGN 10SLAV is assembled with GT40F=1, the type of display
is selected at run time from an argument to DISINI.
2021-01-14 09:46:27 +01:00
Lars Brinkhoff
f31a4f1f57 Make DUMP's "LCF hack" only work on DM.
DUMP will scramble ACT and DUNG files written to the LCF directory.
This is no longer useful in protecting Zork files, so the code is
limited to the DM machine.
2021-01-09 17:06:59 +01:00
Adam Sampson
1a6115e949 Fix Muddle's CLOSE not flushing the output buffer.
There were two problems here:

- The FOPEN code in 56 uses new C.DISK/C.TTY flags to keep track of the
  channel type, so it knew what to do when closing the channel. The
  TOPS-20 open code had been modified to set these, but the ITS code
  hadn't, so CLOSE was assuming all channels were network channels.

  Fix: set those flags in ODSK and OTTY, as TOPS-20 does.

- The BFCDSK flush routine had been modified to use byte pointer writes
  to write the last incomplete word for both TOPS-20 (SOUT) and ITS
  (SIOT). But on ITS, SIOT only works in unit mode, and Muddle opens
  files in block mode.

  Fix: restore the working code from Muddle 54 for writing the last
  word. The only difference is that BFCDSK can now be invoked with the
  leftover byte count (C) being zero, so it needs to check at the
  start to avoid duplicating the last word in that case.
2020-12-13 13:36:04 +01:00
Lars Brinkhoff
88f5a7262c Muddle library files courtesy of Rick Shiffman.
Files are from RRS; AR5 MUDDLE on ToTS tape 9006256.  Some timestamps
are from DM _TAPE files.
2020-12-10 07:41:09 +01:00
Lars Brinkhoff
56404ba0e4 Update Lisp Logo for new GC-DAEMON list format.
The format of the list passed to GC-DAEMON has changed.  LLOGO expects
a list of "(space old-free . new-free)".  The new format is "(space
old-free new-free old-size new-size)".
2020-10-11 17:16:48 +02:00
Lars Brinkhoff
1f66578276 Remove references to BIBOP from Lisp Logo.
The Lisp Logo loader conditionalizes some things on the BIBOP feature.
Maclisp still uses BIBOP memory management but the feature symbol went
away in 1980.  Since Lisp Logo has unconditionally been ported over to
NEWIO, the BIBOP checks are removed.
2020-10-11 17:16:48 +02:00
Lars Brinkhoff
e7bc91dd14 Fix Y2K bug in DMARCD.
DMARCD is the source for DEVICE; OARCDV BIN which handles old format
archives.  The file listing used to display the year field as is, so
would go past 99 to 100.  Adding 1900 makes it display a four-digit
year instead.
2020-09-30 19:29:18 +02:00
Lars Brinkhoff
ea2df4b7d2 Hello world sample file for CLU. 2020-09-27 19:53:51 +02:00
Lars Brinkhoff
53c0645cf8 Hello world sample file for MIDAS. 2020-09-27 19:53:51 +02:00
Lars Brinkhoff
7c00f480a9 Hello world sample file for Muddle. 2020-09-27 19:53:51 +02:00
Lars Brinkhoff
2a3a69656e Hello world sample files for Maclisp. 2020-09-27 19:53:51 +02:00
Lars Brinkhoff
cb2ac644e9 UNSPOO - line printer unspooler demon. 2020-09-21 05:53:54 +02:00
Lars Brinkhoff
5f4d858daf GUNNER - gun down dead demons.
Also garbage collect disowned Zork jobs, poke FI hardware when IMP is
down, etc.
2020-09-20 19:37:27 +02:00
Lars Brinkhoff
bf7345f12c DEMST - demon status. 2020-09-20 08:52:03 +02:00
Lars Brinkhoff
0938ee3131 DEMSTR - DM demon starter.
SYS: ATSIGN DEMSTR is started by ITS if it's assembled with DEMON
enabled.  DEMSTR in turn is responsible for starting other demons.
2020-09-20 08:52:03 +02:00
Adam Sampson
be98dc2457 Disable Zork's user check, and get Muddle from MUDSAV.
Don't require players to have a home directory or not be playing in
business hours, etc.

The original code expects TS MUD54 to be in SYS1, but our SYS1 is
bursting at the seams already, so make it look at MUDSAV instead.
2020-09-14 11:28:51 +01:00
Adam Sampson
1cfbed3743 Add binary Zork and its launcher.
Both of these are from MIT's zork-1978-01 release. MADMAN; MADADV SAVE
is from 1978-01-28 (it's madadv.save_3 there), and TAA; ZORK 3 is from
an archive dated 1978-01-27. Unfortunately this isn't the final version
of Zork -- in particular, it doesn't have the endgame.

The launcher will also work with the other 1977/78 Zork images MIT have
released, provided you copy them to MADMAN; MADADV SAVE.

Note that we already have the non-DM fake Zork in SYS3; TS ZORK, but
the real Zork was in SYS2; on DM, so the recommended ZORK^K will find it
first.
2020-09-14 11:28:51 +01:00
Adam Sampson
3758abedbd Add MKSVFL, to generate SAV FILE and FIXUP FILE.
These two databases contain pure code routines that Muddle images can
refer to. We don't currently have whatever tool was used to maintain
them, so this is a MIDAS program that creates and populates them.

SAV FILE includes some stubs for functions in the LSRTNS and MUDDLE
libraries -- these are the functions that the existing Muddle 54 Zork
images need.

For the FIELD function in LSRTNS, returning FALSE is equivalent to the
user not being found. I have no idea what C-FCN in MUDDLE is for, but
very early Zork calls it after a command is entered, and seems happy
enough with it doing nothing.
2020-09-14 11:28:51 +01:00
Adam Sampson
2b66dfce6e Avoid POP TP,TP.
In the DEC Processor Reference Manual, this is documented as "result is
indeterminate", and there's a note in the ITS KL microcode implying that
the default KL behaviour was different from the KA.

Muddle 54 uses this to drop a temporary stack frame from TP in a few
places. If it doesn't work properly, one obvious result is that READing
bracketed expressions leaves garbage on the TP stack -- e.g. typing
<QUIT> at the interpreter will print a FIX instead.

Muddle 56 replaces this with MOVE TP,(TP), so do that as a new patch.
2020-09-14 11:28:51 +01:00
Adam Sampson
a209c97ec1 Add reconstructed Muddle 54, for running old Muddle images.
This source was reconstructed to match MUDSAV; TS MUD54 from 1977-07-02,
using a combination of all the surviving Muddle source files. The memory
layout and pure code is the same.

No AGC MUD54 has survived, so the AGC code was adjusted to match the
TOPS-20 agc.mud104 from Chicago that Rich Alderson provided (the only
ITS conditional is the page size). There's a one-instruction difference
in the symbol positions, which I've converted into a patch at the end of
the code to maintain the original layout on ITS.

The INITM code, which doesn't appear in the final executable, is
a best guess but it's probably fairly close, since it generates objects
in the right order and locations, and the symbol locations match the
original.

The 1977 executable has a very large number of patches, which I've
replicated in MUD54 INIT. The code that the patches were replacing --
marked with "XXX patched" in the source -- is also a best guess.

I haven't checked that the TOPS-20 code is correct; it could be adjusted
to match mdl104.exe in the future. It would need STENEX, which could be
linked from MUDSYS;.
2020-09-14 11:28:51 +01:00
Adam Sampson
81f1297d3a Use a second XFILE to patch/initialise Muddle 56.
Previously the first XFILE printed out some commands to run after STINK
had completed, which is awkward if you're building Muddle repeatedly.
This automates the second half of the build process.
2020-09-14 11:28:51 +01:00
Adam Sampson
5579181af1 After initialisation, save TS MUD56, not TS MDL56.
Lars has found a couple of examples of TS MUD54 files, and they're the
initialised version (with references to internal functions filled in,
etc.). TAA's ZORK launcher also expects TS MUDxx to be the initialised
version. So it appears that the ITS version didn't generate TS MDLxx.

(Why does the initialisation process write out TS MUD56, then, if you're
only going to pdump the result over it? Because the last step in
initialisation is to invoke the GC, and getting back from the GC to the
interpreter requires mapping pages back in from the executable.)
2020-09-14 11:28:51 +01:00
Adam Sampson
366665e77a Fix wrong encoding of \r in Muddle 56 source.
Found from comparison with a TS MUD54 binary. The Muddle 56/106 source
came from TOPS-20 originally, and it had been extracted with newline
conversion but not ITS encoding.

Most of these are cosmetic, but there are a couple of VALRET strings
with embedded \rs -- including the one used to exit initialisation.
So successful initialisation now finishes with a *, rather than opening
a random location.
2020-09-14 11:28:51 +01:00
Adam Sampson
0205af6869 Fix UBAASL.
This wasn't updating UBAIFS owing to a typo ("LSH A,B" for "LSH
A,(B)"), so it always returned the first slot number. It's not actually
used anywhere in ITS 1650, so this didn't break anything.
2020-09-13 18:12:53 +01:00
Eric Swenson
b4f4a79a73 Updated version number of DIRDEV from 86 to 87 since there was a historical
version 86 and we made changes on top of that.

Resolves #1944.
2020-09-10 11:16:09 +02:00
Lars Brinkhoff
66dac82f59 Add Muddle code or printing a maze.
As per the specification in the Imlac portion of the Maze game.
2020-09-07 12:26:39 +02:00
Adam Sampson
8e870bf8e7 Fix the MIDAS 73 instruction names patch. 2020-09-05 12:46:46 +01:00
Adam Sampson
5ed3534528 Install STINK 121T as MUDSYS;TS STINK, and use it.
This replaces the existing MUDSYS;STINK 2 that was installed as TS
STINKM. The bad-EXPUNGE patch in there is no longer needed now Muddle is
built with MIDAS 73.
2020-08-31 11:13:58 +01:00
Adam Sampson
7c28bc7571 Correct ITS conditionals in STINK 121T.
It looks like the <mdl.int> version hadn't actually been built for ITS.
2020-08-31 11:13:58 +01:00
Adam Sampson
084028417e Import TENEX changes to STINK 121T.
<mdl.int>stink.mid.1 was the version of STINK used for building Muddle
106; it's STINK 121T with (not quite correct) ITS/TENEX conditionals
added. This imports all of the changes from that copy, except for those
that only altered whitespace.

It also avoids some mangling of the embedded DDT commands in our current
copy.
2020-08-31 11:13:58 +01:00
Adam Sampson
601079febc Add STINK 121T.
This came from AI: SYSEN2; and was dated 1974-07-06 in backup tapes (the
original STINK 121 is from 1973-02-03).
2020-08-31 11:13:58 +01:00
Lars Brinkhoff
7ce942a4f2 DDT patch for hiding files in the LCF directory.
Reproduced from binary patch in DM: .; @ ITS from 1980-05-07.
2020-08-31 07:17:02 +02:00