1
0
mirror of https://github.com/PDP-10/its.git synced 2026-01-18 09:12:08 +00:00

857 Commits

Author SHA1 Message Date
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
Lars Brinkhoff
2a2acd54d3 UTNAM - set DECtape name. 2020-08-31 07:00:28 +02:00
Adam Sampson
ae62a3e6d7 The Zork source should be in LCF;.
This directory was only on DM, and was protected by a binary patch to
DM's ITS.
2020-08-29 23:55:08 +01:00
Lars Brinkhoff
a309ad8a45 Add MACDMP, standalone tool for loading/dumping DECtape files.
MACDMP MOBY1 has 340 support, but only works with the old PDP-6
microtape device.  MACDMP 6U32 has both microtape and TD10 support,
but no 340 code.  Both programs can be adjusted for core size.
2020-08-29 06:54:47 +02:00
Lars Brinkhoff
cd8959f829 Reconstruct @ MARK source code.
Source text taken from SYSTEM GEN, mostly by removing the HACK things.
2020-08-27 18:34:14 +02:00
Adam Sampson
26c6e4faa2 Re-apply a subset of the ITS Muddle 56 fixes.
Most of these are the same as before. For UUOH, I've taken the fixed ITS
conditionals from uuoh.mid.181 (16th March 1981). For MAPPUR, I've put
the Tenex conditional around the whole of the segment-switching code
since none of it is needed on ITS.

Note in particular that the BOT patch is no longer needed -- this
version of Muddle works happily with the pure region at 700000.
2020-08-26 21:26:02 +01:00
Adam Sampson
a7399d0f9a Revert MUDSYS to match Muddle 106 source files.
Looking at the backup dates for files in <mdl.int>, mdl106.exe is from
20th January 1981, whereas some of the source files are from a couple of
years later. Revert to the last version prior to 20th January 1981 -- in
every case, this was the earliest revision that was kept in <mdl.int>.

This undoes the changes that we'd previously made to these files, many
of which are no longer necessary now that we're using MIDAS 73.
2020-08-26 21:26:02 +01:00
Adam Sampson
72b2519a7b Build Muddle with MIDAS 73.
This is the version of MIDAS that was being used at the time of Muddle
106 in 1980.
2020-08-26 21:26:02 +01:00
Adam Sampson
2512d25a32 Patch MIDAS 73 to provide FADRI etc.
The 1973 MUDDLE; TS MIDAS binary has these four instruction aliases with
SI at the end (and they weren't used in the 1973 Muddle at all). All
later versions of MIDAS use RI names, as does more recent Muddle source,
so this must have been patched in later.
2020-08-26 21:26:02 +01:00
Adam Sampson
dd607f57aa Patch MIDAS 73 to accept JCL.
Older versions of MIDAS expect you to type a command at them, which
makes them hard to automate with :x or XFILEs. This patch backports the
JCLINI code from later versions of MIDAS, which pre-stuffs the command
buffer with the JCL string if available.
2020-08-26 21:26:02 +01:00
Adam Sampson
5f5e25da1e Add reconstruction of MIDAS 73.
This was edited from later versions of the source to match MUDDLE; TS
MIDAS circa 1973, which was built with MOBY==0. The program itself dates
from no later than 1971. Comments, and results when built with other
options, are probably not historically accurate.

MIDAS 73 is useful because 74 and all later versions have completely
rewritten code for relocatable output (and for IO), and they don't
support some of STINK's features correctly (or at all). A ported version
of MIDAS 73 was still being used to build Muddle in the 1980s, going by
<mdl.int>midas.exe.5.
2020-08-26 21:26:02 +01:00
Adam Sampson
c5f94161d3 Adjust link order.
This matches a TS MUD from 1977, and is the same as TS MUD54 with the
addition of SGC. It's nearly the same as the Tenex order we had already.

There are a few differences between 54 and 56:

- CONST is new in 56;
- Three source files in 54 were merged into others in 56: TENTAB into
  READER, FLOATB into PRINT, and CHAN into FOPEN;
- DISPLA, which went between CREATE and SAVE in 54, is missing in 56.
2020-08-26 21:26:02 +01:00
Adam Sampson
3bf7f848c5 Tell STINK to keep symbols for all objects.
This matches TS MUD54 from 1977, and makes debugging easier.
2020-08-26 21:26:02 +01:00
Adam Sampson
86ef0e2ff9 Call Muddle objects BIN rather than REL.
This matches names recorded in MUDSYS; from 1977. Using BIN rather than
REL is a characteristic of early MIDAS.
2020-08-26 21:26:02 +01:00
Adam Sampson
abf2a9c9fd Shorten tvbrot's iter loop.
The code is now short enough to run from the registers, which would give
a speed improvement on a real KA.
2020-08-24 17:57:09 +01:00
Björn Victor
8d302ac3c4 Use correct address for received BRD pkts
When converting BRD pkts to RFC, use MYCHAD for the destination address, not whatever is at address MYCHAD.

Result: responses to BRD pkts use the correct source address.
2020-08-24 18:27:18 +02:00
Lars Brinkhoff
d3a87007a5 BANNER - make banners on line-printer paper in XGP fonts. 2020-08-21 10:44:14 +02:00
Lars Brinkhoff
979b77f341 CUBE, Rubik's cube.
Files provided by the author, Bernard Greenberg.
2020-08-10 22:08:00 +02:00
Lars Brinkhoff
5c6c647603 Edit PDS-4 Crash source code to match PDS-1 version of CRASH IML. 2020-06-18 19:31:43 +02:00
Lars Brinkhoff
378ed6fb06 Add HX ITS for hactrn.org. 2020-06-09 18:04:00 +02:00
Lars Brinkhoff
3d27de18ed Add emulators to start script. 2020-06-09 18:02:50 +02:00
Lars Brinkhoff
eda0148f67 Fix BLKLDR multiply defined MINUS1. 2020-05-17 16:22:32 +02:00
Lars Brinkhoff
3f46e646b8 Build Imlac secondary block loader from source code.
BLKLDR 1 is from the IMLAC; IML DEVICE archive file dated 1976-11-02.
The archive was found in three identical copies on ToTS tapes 7006990,
701351, and 90606; they were extracted by Brad Parker.  The BLKLDR 1
timestamp inside the archive is 1975-01-26.  Tape database records
from DM show a BLKLDR 4 dated 1974-08-19.

To build the IMLAC; IMLAC BLKLDR file, it's first assembled with
MIDAS.  Regular IMTRAN writes the block loader format, but the block
loader itself is in the "special TTY" boostrap format.  IMTRAN is
runtime patched to skip the block framing.
2020-05-17 16:22:32 +02:00
Lars Brinkhoff
4f21a27479 Fix ARDS short vector bugs in SSV 22. 2020-05-08 08:38:23 +02:00
Lars Brinkhoff
f6408e16cb Reconstruct SSV 22 source code.
The file IMLAC; SSV 52 dated 1973-01-07 was edited to match the Imlac
block loader format file http://www.ubanproductions.com/Imlac/ssv,
which claims to be SSV 22.  SSVMSE 38 from 1977-12-13 was also helpful
in the process.

IMSRC; SSVCHR 22 is entirely from disassembly.  The original file
would have been machine generated by SYMFOR.
2020-05-08 08:38:23 +02:00
Lars Brinkhoff
def3bb7a04 Add a check that lower part of MAZE code fits in 2K. 2020-05-01 13:02:07 +02:00
Lars Brinkhoff
349ac2f6c9 Remove LOADER from MAZE.
The LOADER subroutine breaks MAZE because it pushes all code higher,
making constants and WALLS cross over 14000.  It's also unnecessary
since setting the start address to 101 jumps back to SSV which will
accept the next data block sent from the PDP-10.

A possible explanation is that LOADER was added by someone running
MAZE without SSV.  No other version of the MAZE source code has
LOADER.
2020-05-01 13:02:07 +02:00
Lars Brinkhoff
cce28434a5 Move WEBSER from HACK to SYSNET. 2020-04-14 17:48:28 +02:00
Lars Brinkhoff
48fd3f61df PDP-6/10 Dazzle Dart. 2020-04-08 08:27:34 +02:00