1
0
mirror of https://github.com/PDP-10/its.git synced 2026-02-27 01:09:49 +00:00

TJ6 - typesetting software.

This commit is contained in:
Lars Brinkhoff
2018-05-07 09:17:50 +02:00
parent d6fa4be81a
commit 4327f0a295
9 changed files with 7559 additions and 2 deletions

View File

@@ -10,9 +10,9 @@ SRC = system syseng sysen1 sysen2 sysen3 sysnet kshack dragon channa \
spcwar rwg libmax rat z emaxim rz maxtul aljabr cffk das ell ellen \
jim jm jpg macrak maxdoc maxsrc mrg munfas paulw reh rlb rlb% share \
tensor transl wgd zz graphs lmlib pratt quux scheme gsb ejs mudsys \
draw wl taa
draw wl taa tj6
DOC = info _info_ sysdoc sysnet syshst kshack _teco_ emacs emacs1 c kcc \
chprog sail draw wl pc
chprog sail draw wl pc tj6
BIN = sys2 emacs _teco_ lisp liblsp alan inquir sail comlap c decsys moon \
graphs draw datdrw

View File

@@ -787,3 +787,13 @@ respond "*" ":load sysbin;xxfile bin\r"
respond "*" "ttyop1\033b\033g"
expect ":PDUMP SYS2;TS XXFILE"
type ":kill\r"
# TJ6
respond "*" ":midas sysbin;_tj6;tj6\r"
expect ":KILL"
respond "*" ":job tj6\r"
respond "*" ":load sysbin; tj6 bin\r"
respond "*" "purify\033g"
respond "DSK: SYS; TS NTJ6" "\r"
respond "*" ":kill\r"
respond "*" ":link sys; ts tj6, sys; ts ntj6\r"

View File

@@ -181,6 +181,7 @@
- TIMES, TCP time server.
- TIMOON, displays the time and phase of the moon.
- TIMSRV, RFC 868 network time protocol.
- TJ6, typesetting software.
- TMPKIL, clean out old files in .TEMP.;.
- TREK, Star Trek game.
- TTLOC, Advertises physical location of logged in users.

25
doc/tj6/-read-.-this- Normal file
View File

@@ -0,0 +1,25 @@
This directory is maintained by BKPH and JDC.
It contains:
.INSRT'able files for TJ6 users;
TJ6 documentation;
various test programs;
and TJ6 source listings.
-READ- -THIS- This file
.TECO. (INIT) Some random macros for use in writing TJ6MEM >
ERROR > Part of source for ORDER XGP
NNTJ6 > Current NNTJ6 and NTJ6 MIDAS source
NTJ6 142 Old (12/13/73 TJ6 source.)
ORDER > ORDER TJ6 source (.insrts ERROR > and SPACES >)
ORDER MEMO :PRINTable TJ6 ORDER
ORDER XGP XGPable TJ6 ORDER
SPACES > Part of ORDER source
SPTEST > Test File
TABTST > Test File
TJ6 129 Super old TJ6 source (12/13/73).
TJ6 ARCHIV All changes to TJ6 since 6/74.
TJ6 LPT .INSRTable file with LPT page and text sizes
TJ6 TERMIN .INSRTable file with TERMINET page and text sizes
TJ6MEM mumble Sources and outputs for new TJ6 AI MEMO #164B
TJTST 30 Test file
VJTEST 1 Test file

392
doc/tj6/tj6.archiv Normal file
View File

@@ -0,0 +1,392 @@
WBA 2/4/78 version 26
BUFSIZ increased from 200 to 600 (determines free storage)
GLS 12/26/77 version 25
[1] The maximum number of fonts has been raised
from six to ten. Thus any decimal digit may
follow a ^F character.
[2] One may write ^F*, which means pop the font
to the state before the last ^Fn command.
There is a ring buffer for this, so that
^Fn ... ^F* may be nested about 64 deep.
[3] .LTRSPC 0 prevents TJ6 from putting extra
space between letters of a word when adjusting
for the XGP. .LTRSPC 1 (the default) reenables
this.
[4] .XGP used to be ignored if the output device
was not DSK. Now it is ignored only if the
output device is LPT or TPL.
JDC 5/16/75 New NNTJ6 (and NTJ6) fixes some bugs. New features:
.SQUISH causes ;SQUISH to appear on XGP command page
.ASP absolute space. Like .SPACE, but leaves same amount of space when
SINGLE or DOUBLE spacing.
.ABLOCK absolute BLOCK. Like .BLOCK, but not dependent on SINGLE or DOUBLE.
 (control G) new in-text command equivalent to .GENNUM 1 1.
TJ6 will soon be identical to NNTJ6 and NTJ6.
Reminder: I'm still ignoring bug reports without source files, and all requests for
features.
2/25/75
NTJ6_NNTJ6.7 NNTJ6_NNTJ6.8
NNTJ6.8 fixes some bugs: .HYPHEN, :JCL mumble <cr>P, etc.
Also, as promised, eliminates commands in favor of in-text characters, or command switches:
BSCORE ESCORE HDFONT SELECT SF DATE FNAME CONTEN
       /C
1/75
Because of some particularly bad default conditions in NNTJ6.6,
NNTJ6 has been unfrozen and refrozen, and NNTJ6.7 has the following changes:
The default size of a tab and spacing unit has been changed to
the largest character in font 0. The new command TABFNT
can be used to change this.
Tabs and spaces which cause breaks will never be compacted.
TABINC has gone away.
Three command names have been changed to things that can be remembered:
PGN to NOHEAD
PGNRGH to HEADPW
RL to RTW
BLUP and BLDOWN are flushed in favor of SCRIPT.
There are 8 GENNUM counters.
/X makes the output default 2nd file name XGP.
NNTJ6.7 is not restartable and kills itself after one file.
It is one block smaller the block which was flushed was unpure. (Total 6 blocks,
3 pure.) This is part of President Ford's WIN program.
For details, XGP TJ6;ORDER MEMO, or :print TJ6;TJ6 ORDER.
This file has a writeup on spaces and tabs, and explains error mesages.
11/27/74 JDC
18 November, 1974
There are many changes, some incompatible, in NNTJ6.6.
The complete list of NNTJ6 commands is TJ6;TJ6 ORDER. (XGP Version -- TJ6;ORDER MEMO)
1) Contents: TJ6 when asked to do a table of contents,
outputs a file which is suitable for input to TJ6, and is a series of .SPREAD
commands, eg,
.Spread
/First Section Heading//1/
.Spread
/Second section//2/
etc. TJ6 will use a / as the field seperator in writing .SPREADs,
unless this is changed with the .STERM command, which takes one character
as an argument (like .DUMMY).
The preferred method of causing a table of contents to be produced is to
type /C in the command line. If one uses the .CONTEN command instead,
it must appear before any text. (This command may go away soon.)
The default output 2nd filename when /C is typed is CONTEN instead of MEMO.
2) Tabs on the XGP will try to align so that things which line up in TECO will
also line up in TJ6. In order to do this, tabstops will be equal to
8 * the width of the largest character read in all fonts.
Units for .INDENT, .TW, .RLINE, etc., and spaces at the
beginning of a line will all be 1/8th of a tabstop wide.
To change this, (but risk not having TJ6 and TECO be isomorphic with
respect to tab alignment,) use:
.TABINC <number> sets width of a tabstop in inches
.SPW <number> sets the width of the spacing unit in XGP dots (and a tabstop
is 8 times as wide).
3)  (Control Q) is now the default quoting character.
4)  (Control D) and (Control N) are two new in-text command
characters which respectively insert the date and file name into the text
(like .DATE and .FNAME). The date is now of the form "November 78, 2965"
instead of MM/DD/YY. The in text characters should be preferred to the
commands as the latter may go away.
5) Redundant carriage returns will be retained in the output text. To turn this
off use:
.CRCOMP compacts carriage returns. The opposite is:
.CRRETA retains carriage rturns.
6) The size of a .BLOCK implied by a .SECT can be controlled with
.SBLOCK <number>
7) Other new commands:
.CRBR all carriage returns break.
.CRSP carriage returns in fill and adjust mode are like spaces (default).
.SPBR leading spaces and tabs cause a break (default).
.SPSP they don't break.
.SPCOMP compact spaces in FILL and ADJUST modes.
.SPRETA retain spaces. These last two commands are affected by
.FILL, .ADJUST, and .HALFAD, the first two of which do an automatic
.SPRETA, and the latter two do a .SPCOMP.
Note that the combination of .SPSP and .SPCOMP will allow input text that
has leading spaces or tabs to be treated as though those tabs or spaces weren't there.
8) The .TABSET command has died an early death.
9) -- (dash) will not be broken between the hyphens.
10) Font files which don't open will have the ERR device message printed.
11) The commands which should appear before text in the input file:
.XGP, .FONT, and .CONTEN, will have an error message printed if they
appear after text.
12) PGNRGH will now align headings on both sides with the page boundaries.
13) The p"pages" message printed by TJ6 is now the actual number of
pages printed, rather than the last page number.
14) Rubouts in the command string work better from displays.
15) NNTJ6.6 is now down to 7 core blocks (but just barely). This is one less than NNT6.5,
and in spite gross additions (like variable width hackery) is only one greater than TJ6.
Its small size (and shared pages) is one of the main reasons that TJ6 runs
so much quicker than PUB (which is 54 blocks as soon as you type PUB^K, and gets
bigger faster than Alice in Wonderland.) I aim to keep TJ6 small, and I therefore declare
it frozen, with the possibility of removing some commands.
The commands likely to be flushed, which all can be effected some other way, are:
.FNAME (use )
.DATE (use )
.SELECT and .SF (use )
.BSCORE (use )
.ESCORE (use )
One of .BLUP .BLDOWN
.HDFONT (use )
Also TJ6 may kill itself after printing one file.
16) I need source files in order to find bugs!!!
A bug which looks easy to recreate often depends on
som special circumstance in the source file, and is next to impossible for me to
duplicate.
--JDC
TJ6 Recent Changes 1_ NNTJ6 3 -- 24 June, 1974
or, T_h_e_ _N_e_w_ _R_e_g_i_m_e_
There are important new changes to the text justifier. These changes are
incorporated in NNTJ6. After a while, NNTJ6 will become the standard TJ6,
so use NNTJ6 and help get the bugs out.
Most of these changes are designed to straighten out the mess which is the
insides of TJ6. Changes visible to the user are:
NNTJ6 is half p_u_r_e_ _c_o_d_e_. Hopefully this will speed it up in certain
circumstances.
It has some n_e_w_ _c_o_m_m_a_n_d_s_:
._P_W_I_N_C_H_ _n_ -- sets paper width (.PAPERW) in tenths of an inch. E.G.,
.PWINCH 8.5 sets the physical paper width to 8.5 inches.
._T_W_I_N_C_H_ _n_ -- sets text width (.LINE)
._P_L_I_N_C_H_ _n_ -- paper length (.PSIZE)
._T_L_I_N_C_H_ _n_ -- text length (.PAPER)
._S_I_N_C_H_ _a_,_b_,_c_,_d_,_e_ -- sets paper width, text width, paper length, text
length, and left margin in inches respectively to a,b,c,d, and e.
E.G.,
.SINCH 8.5,6.,11,8.0,1.5 sets the physical paper size to 8 1/2x11,
the text size to 6x8, and left margin to 1 1/2 inches.
._F_I_N_C_H_ _n_ -- sets figure size in inches.
._F_I_G_U_R_E_ _n_ nows treats its argument as an absolute number of lines
(irregardless of whether you are single or double spacing).
._F_O_N_T_ _n_ _F_i_l_e_ _N_a_m_e_ -- associates font n with the appropriate font file.
This is used to set font height and width, for use by various size
commands, and to set the font name for the XGPLPT command page.
.FONT 1 LGI makes font 1 FONTS;LGI KST.
(This command actually causes the entire font to be read in and
groveled over, so it takes a while to execute. The only legal
device names are AI and DSK.)
._V_S_P_ -- sets interline space. Units are XGP raster dots, 1/192nds of an
inch. (Default is 6.)
._H_V_W_ _a_,_b_,_c_ -- sets the height of font 0, VSP, and width of a space in font
0 respectively to a, b, and c. The defaults are 25, 6, and 16 for
the XGP, and 24, 6, and 19 for non-XGP. These data are used by the
commands which set size in inches. .HVW is a quicker way of
reading in this information than .FONT.
X_G_P_L_P_T_ _c_o_m_m_a_n_d_ _p_a_g_e_ -- If TJ6 thinks it's outputting to the XGP, (i.e.,
output device is DSK: and there was either a /X in the command line
or a .XGP command,) it automatically outputs a page of XGPLPT
commands:
TJ6 Recent Changes 2_ NNTJ6 3 -- 24 June, 1974
;TOPMAR 0
;BOTMAR 0
;LFTMAR 0
;VSP n
;KSET any font names you have specified with .FONT
;SKIP 1
To prevent TJ6 from doing this, use:
._N_O_S_P_E_C_ -- turns off automatic output of XGPLPT commands.
._U_L_F_O_N_T_ _n_ -- causes printing in font n to be underlined if output is not to
the XGP. Default is .ULFONT 1. (This is helpful if the ulfont is
italicized.) (To turn off, make n <0 or >3.)
_ _(_c_o_n_t_r_o_l_ _Y_)_ -- in text command character which begins underscore.
_ _(_c_o_n_t_r_o_l_ _X_)_ -- in text command character which ends underscore.
Note that underscoring is treated differently by TJ6 and the XGP than
backspacing and overstriking with underbars. For underscoring, TJ6
outputs special XGP underscore commands. For overstriking, TJ6
backspaces and overstrikes. (Complicated, huh?) For most fonts,
the _ character is defined to look like underscoring. For a couple
it isn't. So if you mean underscore, do it, and if you mean
overstruck _, do that. (Backspacing and overstriking of all
characters once again win in .NOFILL mode.)
All the in text command characters should now work on centered, spread,
etc., lines, and in the header. Those in-text characters which
make sense to non-XGP devices are:  (control Y), begin underscore;
 (control X), end underscore; and  (control F), font switch,
which makes sense because of .ULFONT). Other in-text commands are
ignored if not to the XGP.
H_i_d_d_e_n_ _h_y_p_h_e_n_s_ work!
^^_C_ _(_c_o_n_t_r_o_l_ _C_)_ is now read by TJ6 like any other input character, but TECO
makes these difficult to insert. Also they are not typed out in
block mode .IOTs to teletypes, due to a system "feature".
Characters which have been quoted (with the quoting character), will be
printed on the XGP in "normal" mode. E.G., quoting character
followed by a backspace will print as lambda, rather than
backspace. To turn this off use:
._N_O_R_M_A_L_ _n_ -- if no argument or n=0, turns off "normalization" of
quoted characters to the XGP, otherwise turns it on. This command
does not break.
F_L_U_S_H_E_D_ _C_O_M_M_A_N_D_S_
The following commands have been noops for a while, and are now gone:
.BSPDIR (Back spacing is always direct.)
TJ6 Recent Changes 3_ NNTJ6 3 -- 24 June, 1974
.QUICK
.TABS
.TABSET
.C2471
.K2471
.S2471
.T2471
.CBALL
.KBALL
.SBALL
.TBALL
The following have simply been flushed:
.NJ
.NOJUST
.PAUSE
.STOP
.STPCHR
.TSTOUT
The following "abbreviations" and command names have been flushed in favor
of others:
.BP -- use .BEGIN
.CM -- use .C or .COMMENT
.CO -- use .FI or .FILL
.CP -- use .BLOCK
.RA -- use .RI or .RIGHT
.APPND -- use .AP or .APPEND
.DUMCHR -- use .DUMMY
.TR -- use .TRANS
.QTECHR -- use .QUOTE
.PL, .PAPER -- use .TL
.PS, .PSIZE -- use .PL
.L, .LINE -- use .TW
.PAPERW -- use .PW
The prior four new names are mnemonic for T_ext L_ength, P_aper L_ength, T_ext
W_idth, and P_aper W_idth.
C_H_A_N_G_E_D_ _C_O_M_M_A_N_D_S_
The following have been changed:
._D_U_M_M_Y_ -- can now be used to specify more than one dummy character by
simply using the command more than once.
._F_I_L_L_ -- now causes adjusting to be turned off.
._H_E_A_D_E_R_ -- now takes its argument on the next line (just like .HE1, .HE2,
etc.)
._P_H_P_1_ -- again takes no argument, and simply causes the header to be
printed on page one.
TJ6 Recent Changes 4_ NNTJ6 3 -- 24 June, 1974
._S_E_C_T_ -- now does a .BLOCK 2, so that a section title will not be the last
line on an output page.
._T_R_A_N_S_ -- now works on input instead of output. All text characters may be
translated. Command line characters are not translated. (The
translation occurs before the test for in-text command characters,
therefore,
.TRANS \^F will cause \_ to act as an in-text font switching
character.)
._X_G_P_ and /_X_ -- now are equivalent. If output is to DSK, they: do a .SINCH
8.5,6,11,8; a .HVW 25,6,16; and try to output an XGPLPT command
page.
Handling of s_p_a_c_e_s_, ?_ _._ _!_, and ;_ _:_ has been changed. In .NOFILL mode, they
continue to get no special treatment. In fill mode, they have two
spaces inserted afterwards only if followed by a carriage return or
line feed. There is a n_e_w_ _m_o_d_e_, .HALFAD, in which the text is
filled, but not adjusted, and in which spaces and ?_._!_:_;_ are treated
the same as in .ADJUST mode. The gist of this treatment is that
two spaces will be inserted after ._!_?_:_;_ at the end of a clause or
sentence, and that more than one space or tab in a row (except at
the start of an input line,) is treated like one space. NNTJ6's
algorithm for determining the end of sentence or clause is:
A_B_._C_D_
The . is always treated like the end of a clause or sentence if C
is a carriage return or line feed; otherwise, This is n_o_t_ the end
of a sentence or clause if:
1 B is a number;
2 B is a letter and A is a space, tab, or one of ._!_?_;_:_;
3 C is not a space, tab, carriage return, line feed, or one or more
of the following: )_"_'_]_;
4 C is one or more of )_"_'_]_, and D is not a space, tab, carriage
return, or line feed.
(In cases like A_B_._)_ _, the spaces are inserted after the )_.)
If you don't like the special treatment of some of these
characters, turn one off with:
._P_E_R_I_O_D_ _n_ _c_h_a_r_a_c_t_e_r_ -- which turns off special treatment of c_h_a_r_a_c_t_e_r_ if
n=0, otherwise, turns it on.

2
doc/tj6/tj6.order Normal file
View File

@@ -0,0 +1,2 @@
A description of TJ6 is available as AI Memo #358

27
doc/tj6/tj6_3.recent Normal file
View File

@@ -0,0 +1,27 @@
.ALTER
Swap left and right header on even numbered pages.
.GENSET
GENSET n now sets the counter to n-1, so that the next GENNUM produces n.
(control-g)
now can take one argument, which is the counter number to increment.
.LS
no longer exists. Use blank lines instead of .SP if you want the old
LS SP effect.
/T, typein from tty
In order to get typein from the TTY, you must now use the /T switch
instead of terminating the command line with a LF. TJ6 will accept
command or text input from the tty, with reasonable rubouts, untill
tty input is terminated with a .APPEND, .INSRT, or the new command:
.ET
which is now used to terminate input from the tty, instead of the
old CR, space.
.XGP
now has the same effect as the /X switch, i.e., the default second
filename is XGP, not MEMO.

2588
doc/tj6/tj6mem.61 Normal file

File diff suppressed because it is too large Load Diff

4512
src/tj6/tj6.28 Normal file

File diff suppressed because it is too large Load Diff