1
0
mirror of https://github.com/PDP-10/its.git synced 2026-01-14 07:40:05 +00:00

342 Commits

Author SHA1 Message Date
Adam Sampson
6fe2bc3aab VERSA: Fix handling of multiple files given as JCL.
Two bugs in my JCL-parsing code:

- B was getting clobbered at some point in the loop, so rfn"rfn only
  stored the first filename in the right place.

- The device's finish routine wasn't being called. For the hargld
  backend, this meant that the last few lines of each file weren't always
  being written to disk.
2018-06-01 11:23:04 +01:00
Adam Sampson
0fb43293bc VERSA: Implement tab and backspace.
@ uses tabs when formatting /C cross-reference pages.
2018-06-01 11:23:04 +01:00
Adam Sampson
71541561ba VERSA: Load the XGP's default font if there's no ;KSET.
@ doesn't emit ;KSET unless you explicitly specify fonts with the /F
switch; VERSA used to complain about this.
2018-06-01 11:23:04 +01:00
Adam Sampson
d8d517ea2d VERSA: Don't add blank pages before/after PRESS and XGP files.
VERSA doesn't do this for other formats.
2018-06-01 11:23:04 +01:00
Adam Sampson
03d87e8599 VERSA: Recognise FOO @XGP as an XGP file.
@ uses this filename convention.
2018-06-01 11:23:04 +01:00
Adam Sampson
71aada08fc VERSA: Fix XGP baseline adjustment.
This is used by TJ6 for superscripts and subscripts. It worked fine for
positive offsets, but "addi a,(x)" didn't do the right thing when the
offset x was negative (because it double-indirects).

The XGP documentation says that the baseline adjustment sticks until the
font is changed. Looking at SYSEN2; XGP 31 (and SAIL's XGPSER), it is
also reset at the start of each line. TJ6 relies on this behaviour.

Since VERSA scans each line twice (once to compute the line height, once
to draw the characters), and baseline adjustment directives will be
interpreted on both passes, we need to reset the adjustment at the start
of both passes.
2018-05-28 12:22:46 +01:00
Adam Sampson
47407aa6d9 VERSA: Fix XGP underline rectangle placement.
The underline offset in XGP files is positive downwards (as opposed to
the baseline offset, which is positive upwards!), and the ending Y
position of the rectangle should be computed from the line width, not
just the current position.
2018-05-28 12:22:46 +01:00
Adam Sampson
38d534c320 VERSA: Fix XGP line height calculation.
The default line height was 0, so empty lines came out as zero height.
Use the height of the current font instead.

If the last line of a page ended with the ^L, linfin was never called,
so its height was computed as 0 and it overlapped the previous line.
Ensure linfin always gets run in this case.
2018-05-28 12:22:46 +01:00
Adam Sampson
abfd92fa59 VERSA: Fix XGP intercharacter and interline spacing.
Parse ;VSP directives, and insert spaces between characters and lines as
appropriate. TJ6 makes use of both of these features.
2018-05-28 12:22:46 +01:00
Adam Sampson
e82ebb56d4 VERSA: Add support for XGP ;LFTMAR and ;TOPMAR.
Since this means adding support for parsing numeric arguments in XGP
control lines, also check that ;SKIP's argument is 1.
2018-05-28 12:22:46 +01:00
Adam Sampson
59600c21a3 XGP - PDP-11 code to drive the XGP.
While we don't have a way of running this in emulation yet, it's useful
as a reference when interpreting XGP files.
2018-05-28 12:22:28 +01:00
Adam Sampson
0f4750d052 XGPDEV/GLPDEV - printer queue jobdevs. 2018-05-28 12:22:28 +01:00
Adam Sampson
ae355003f2 Make XGP/GLP work when you're not at MIT.
This is mostly replacing references to AI:/MC: with DSK:, so this can be
used with a local spool directory.
2018-05-28 12:22:28 +01:00
Adam Sampson
124b021123 XGP/GLP - queue files to be printed. 2018-05-28 12:22:28 +01:00
Adam Sampson
cdb24d72a0 XGPSPL - XGP printer spooler. 2018-05-28 12:22:28 +01:00
Lars Brinkhoff
1092405cc8 CMD - DDT subroutines.
To use this, add (CMDS) to the sname search list.  Then make a
translation from DSK: (CMDS); TS * to DSK: SYS3; TS CMD.  Add a file
<HSNAME>; <XUNAME> (CMDS) where each subroutine is one line for the
subroutine name, followed by a body of commands terminated by a ^_
control character.
2018-05-22 06:03:04 -07:00
Eric Swenson
e9a608ecc7 Resolves #908: Reconcile two different versions of LSRRTN.
Resolves #912: Fix reference to BMT1;ANIMAL ONEWS in GAMES; ANIMAL NEWS.
2018-05-21 06:38:16 -07:00
Eric Swenson
d07f118808 Resolved #910: fix NGAME's path for CHASE documentation.
Resolved #391: Build CHASE game from source.
2018-05-21 06:37:44 -07:00
Eric Swenson
088ec2d6d9 Added NGAME and games invoked by it. 2018-05-20 12:49:09 -07:00
Adam Sampson
94eb2a1810 Change ADVENT DRW's version number from 25 to 26.
This means that ITS's version of D can read it correctly. The difference
is that version 26+ files are expected to have one more ASCIZ string in
the header of the file (the board type); an equivalent fix would be to
remove the first 0 word.
2018-05-18 22:46:01 -07:00
Lars Brinkhoff
88bf6d0461 LD10, Lisp display slave. 2018-05-15 20:58:42 +02:00
Adam Sampson
5d87874fb1 Allow filenames to be specified as JCL to VERSA.
This reworks VERSA's test mode so that you can specify an arbitrary list
of filenames as JCL, and have them rasterised either as SUPDUP graphics
(with /D) or as Harvard scan files in .TEMP.; (by default).
2018-05-11 19:10:21 +01:00
Adam Sampson
a99eab07c6 Reenable XGP input file support.
From ITS OBUGS0, dated 1982-09-23:
> In theory (if I turned on XGP file recognition in the spooler), XGP
> files produced by R come out correctly, but XGP files produced by TJ6
> or BOLIO (and I think @) cause it to crash.

At present, XGP files from TJ6 are rendered with some problems, and XGP
files from @ aren't accepted at all (because they don't specify fonts).
2018-05-11 19:10:21 +01:00
Adam Sampson
3202d117e7 VERSA - Versatec/Gould printer spooler.
This program reads files in several printable formats including ARDS,
XGP and PLT, and rasterises them for Versatec V80 and Gould 5200
printers, or as "Harvard scan" RLE bitmap files.

Normally it runs as a printer spooler, scanning the .GLPR. directory.
When invoked as VERSA, it runs in a test mode where it opens a fixed
series of files and displays them interactively using SUPDUP graphics.
The latter is more useful at the moment, so don't install the CHANNA
link by default.
2018-05-11 19:10:21 +01:00
Lars Brinkhoff
b24b917628 PLOT2 documentation. 2018-05-11 12:09:45 +02:00
Lars Brinkhoff
9ddb2db796 Fonts. 2018-05-09 07:05:12 -07:00
Lars Brinkhoff
4327f0a295 TJ6 - typesetting software. 2018-05-07 14:25:17 +02:00
Lars Brinkhoff
d6fa4be81a Move documentation files to doc. 2018-05-07 08:40:52 +02:00
Eric Swenson
aa8028551c Added 350-point adventure, 448-point adventure, and star trek games. 2018-05-06 07:47:14 -07:00
Adam Sampson
fbcf82e6dd Reconstruct TAA; UUOS >.
This is based on AI: SYS2; TS XXFILE, which was compiled by TAA on
1979-08-23 from XXFILE MTA220, and on @larsbrinkhoff's reconstruction.
After modifying the XXFILE MTA224 source to match (remove the OASC in
CTTYB, and the three .CLOSEs in CQUIT), this compiles into an identical
binary.

The UUO handlers look like they're based on the ones from DIRED, so I've
preserved the DIRED comments where possible, but otherwise adjusted to
match the style used in XXFILE.
2018-05-05 19:37:20 +01:00
Lars Brinkhoff
dd476901a5 XXFILE source code and documentation. 2018-05-05 19:37:20 +01:00
Lars Brinkhoff
b96902c728 SCNV - convert plotter files to XGP SCAN files. 2018-05-05 19:19:09 +02:00
Lars Brinkhoff
33074b453f SUDS - Stanford University Drawing System. 2018-05-05 19:19:09 +02:00
Lars Brinkhoff
5be5d506b9 Build LIMSER - Chaosnet limeric service. 2018-04-26 22:44:56 -07:00
Lars Brinkhoff
8f58c9cd5b Build LIMERIcs program.
Added data file.
2018-04-26 22:44:56 -07:00
Lars Brinkhoff
1753036cc0 Update SYSEN1; LIMERI version to 33.
This is the correct version according to backup archives.
2018-04-26 22:44:56 -07:00
Lars Brinkhoff
1c632bdd7a Adventure map By Dick Helliwell, from SAIL user Timothy E. Eldridge. 2018-04-27 07:39:54 +02:00
Lars Brinkhoff
350b056736 Update FAIL link script and use it. 2018-04-26 14:29:37 +02:00
Adam Sampson
3122c71eb2 Fix high core purification.
The PURIMP routine splits the page map into three parts: writable data
at the bottom, a large gap in the middle (which the GC will manage
later), and read-only code/data at the top. There's one CORBLK call for
each of these.

The final call, which gave pages BOT/2000 to 400 as the range, failed
with %EROPG when it hit the first unmapped page after the end of the
pure data. Experimentation shows that, at least with current ITS, this
is how CORBLK normally behaves.

Fix by calculating the final page from RHITOP rather than assuming 400.
2018-04-25 20:47:04 +01:00
Lars Brinkhoff
20faeb8d24 Update .INSRTs to not use the AI: device. 2018-04-25 07:34:41 -07:00
Lars Brinkhoff
9393d717d6 GCMAIL - delete old files from .MAIL. 2018-04-25 07:34:41 -07:00
Lars Brinkhoff
3cc1c13c38 Build script for Muddle and tools.
The MDL 54/104 and 55/105 manuals give the name SYS:TS MDL for the
interpreter, and a comment in MAIN says it was TS MUDDLE, so install
links for both.
2018-04-25 09:32:25 +01:00
Adam Sampson
b1f3c13826 Disable PURIMP's last call to CORBLK.
This is trying to make pages from BOT to the end of memory pure, but it
fails on current ITS, even if you adjust the end of the range to match
RHITOP.
2018-04-25 09:32:25 +01:00
Adam Sampson
6de007fe26 Make the pure region start at 600000.
On ITS, ILOOP in INITM fails because it runs out of address space;
it overruns by about 2000 words. There's a comment in MUDDLE suggesting
that BOT was originally 600000, so move it back to there (although we
could get away with a higher value if necessary in the future).

On TENEX, TXPURE would be used instead.
2018-04-25 09:32:25 +01:00
Adam Sampson
414c665700 Fix TVBASE assertion.
This is checking whether the transfer vector has overflowed the
compile-time space allocated for it -- but the test is backwards, so the
.LOP .VALUE always fires.
2018-04-25 09:32:25 +01:00
Adam Sampson
1d8c894752 Add ASSEM XFILE and MUD56 STINK.
These are analogous to TENEX's ASSEM ALL and MUD105 STINK.

This is version 56 for ITS, because the TENEX binary claimed to be
version 106, and the 54/104 and 55/105 manuals suggest that the ITS
version number tracked the TENEX one. Zork tests whether ,MUDDLE is less
than 100 to see if it's on ITS.
2018-04-25 09:32:25 +01:00
Adam Sampson
2ce999ebd2 Fix two (harmless) incorrect EXPUNGEs.
DOTYPS doesn't exist anywhere. NUMSTA is a typo for NUMSAT.
2018-04-25 09:32:25 +01:00
Adam Sampson
7c55ae06b2 Add a dummy control bits arg to the TTY open call.
Recent MIDAS complains about the DOTCAL macro adding SETZ to the name
pointer (which is effectively a global as it's in a distant CONSTANTS
section).
2018-04-25 09:32:25 +01:00
Adam Sampson
32def4d04b Only add NTTYPE and CLRSTR to the squoze table on TENEX. 2018-04-25 09:32:25 +01:00
Adam Sampson
6b0d849f94 Add %XUNA and %XJNA, which MUDITS uses. 2018-04-25 09:32:25 +01:00