1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
|
20-Aug-87 08:46:00-MDT,18698;000000000000
Date: Thu 20 Aug 87 08:46:00-MDT
From: "Nelson H.F. Beebe" <Beebe@SCIENCE.UTAH.EDU>
Subject: DVI driver family update #10
To: "DVI mailing list": ;
cc: BEEBE@SCIENCE.UTAH.EDU, "new addresses": ;
X-US-Mail: "Center for Scientific Computation, South Physics, University of Utah, Salt Lake City, UT 84112"
X-Telephone: (801) 581-5254
Message-ID: <12328007179.15.BEEBE@SCIENCE.UTAH.EDU>
DVI Driver Family Update #10
[18-Aug-87]
Version 2.08 of the driver family is now ready. Except for
the Atari support, this is a maintenance release only, with
minor cleanup, a couple of small bug fixes, and cosmetic
changes to make the installation process smoother, with no
unnecessary compilation warning messages which have been
causing concern to some users.
Unless you have been impacted by one of the bugs, or want
the Atari support, or the test version of the Canon LBP-A2
driver, it should not be necessary to update your sources.
I will, however, provide the European redistribution sites
for Bitnet and Janet with up-to-date versions. Because
these changes affect a large number of modules, it is not
worthwhile here to provide difference listings.
This work had to be completed in time for me to make new
master diskettes to take to the TUG meeting in Seattle next
week. I had hoped to finish the support for resident Imagen
fonts in time for this release, but it will have to wait.
Beginning September 1987, I expect that IBM PC floppies of
the DVI driver family will be available from from Personal
TeX. The details will be ironed out at the TUG meeting next
week, and announced on TeXHaX and this mailing list.
For the European Bitnet server: Contact rz92@dhdurz1.bitnet
For the British Janet server: Contact AbbottP@uk.ac.aston.mail
The subject of how to set up a VMS printer spooler for the
HP LaserJet has come up repeatedly. Portia Shao reported
the following approach recently:
>> Date: Wed, 13 May 87 18:42 PDT
>> From: Portia 616-2635 <PORTIA@ENGVAX.SCG.HAC.COM>
>> Subject: re: setting up HP laserjet +
>>
>> In response to the person asking about setup modules etc for the laserjet+
>>
>> This is how we set up our HP laser jet + on our microvax II.
>>
>> in systartup.com we have:
>> $define/system laserjet $terminal7: ! substibute your terminal line here
>> $set terminal laserjet/perm/nobroadcast/notypeahead/nowrap -
>> /speed=9600/width=80/page=0/device_type = unknown
>> $set device /spooled=(sys$print, sys$sysdevice:) laserjet
>> $initialize/queue/start/lib=laserjetlib/separate=(reset=reset) -
>> /on=laserjet/default=flag sys$print
>> $define/form/stock=default portrait 1 /desc="Portrait Courier" -
>> /setup=(portrait) /length=60/wid=80/margin=(bottom=0)/nowrap/notrunc
>> $define/form/stock=default landscape 2 /desc="Landscape"/setup=(landscape) -
>> /length=45/wid=132/margin=(bottom=0)/nowrap/notrunc
>> $define/form/stock=default compressed 3 /desc="Compressed Portrait" -
>> /setup=(compressed) /length=80/wid=120/margin=(bottom=0) -
>> /nowrap/notrunc
>>
>> and we have the following modules in sys$library:laserjetlib.tlb
>> COMPRESSED,LANDSCAPE,PORTRAIT,RESET
>>
>> where compressed.txt has the following ONE line
>>
>> <esc>E<esc>&l0O<esc>&a5l80M<esc>&a0R<esc>&l8D<esc>&l80F<esc>(8U<esc>(s0p16.66h
>> 8.5v0s0b0T
>>
>> landscape.txt has the following ONE LINE
>>
>> <esc>E<esc>&l10<esc>&l55F<esc>(8U<esc>(s0p10h12v0s0b3T
>>
>> portrait.txt has the following ONE line
>>
>> <esc>E<esc>&l0O<esc>&a5180M<esc>&a0R<esc>&l60F<esc>(8U<esc>(s0p10h12v0s0b3T
>>
>> and reset.txt has the following line
>>
>> <esc>E
>>
>> -- Portia Shao UUCP -- {allegra|ihnp4}!scgvaxd!engvax!portia
>> Hughes Aircraft Co. ARPA -- portia@engvax.scg.hac.com
>> or -- portia%engvax.uucp@oberon.usc.edu
>> (213) 616-2635
>>
Jerry Leichter at Yale has extended this, and here is his
current recommendation:
>> Reply-To: "Jerry Leichter" <leichter@venus.ycc.yale.edu>
>>
>> The HPLJ setup I use is derived from Portia's, with some
>> changes here and there. (I've sent mine back to her.)
>>
>> SET TERM/NOINTERACTIVE, which is a synonym for /PASSALL, is
>> WRONG. (It's also obsolete, and no longer appears in
>> current documentation.) The problem with doing that is that
>> it disables XON/XOFF handling. The Laserjet uses XON/XOFF
>> signaling; I don't know to what extent it might happen
>> during normal operation, but it will certainly XOFF the host
>> if, for example, it runs out of paper. If the line is set
>> /NOINTERACTIVE, you can lose characters. With XON/XOFF, I
>> am running my Laserjet at 19.2KB, rather than 9600. The
>> speedup is minor, but it IS there. I suspect the printer
>> WILL send XOFF's at this speed on a fairly regular basis,
>> since it's faster than the printer can actually print!
>>
>> The setup I use is:
>>
>> $ define/system SYS$LASERJET CSA0:
>> $ set terminal SYS$LASERJET/perm/nobroadcast/notypeahead/nowrap -
>> /speed=9600/width=80/page=0/device_type=unknown
>> $ set device /spooled=(SYS$PRINT,SYS$SYSDEVICE:) SYS$LASERJET
>> $ initialize/queue/start/lib=laserjetlib/separate=(reset=reset) -
>> /on=SYS$LASERJET/default=(flag,form=portrait) SYS$PRINT
>> $ define/form/stock=default portrait 1 /desc="Portrait Courier" -
>> /setup=(portrait) /length=60/wid=80/margin=(bottom=0)/wrap/notrunc
>> $ define/form/stock=default landscape 2 /desc="Landscape"/setup=(landscape) -
>> /length=45/wid=132/margin=(bottom=0)/wrap/notrunc
>> $ define/form/stock=default compressed 3 /desc="Compressed Portrait" -
>> /setup=(compressed) /length=80/wid=120/margin=(bottom=0) -
>> /wrap/notrunc
>> $ define/form/stock=default clandscape 4 /desc="Compressed Landscape" -
>> /setup=(clandscape) -
>> /length=64/wid=176/margin=(bottom=0)/wrap/notrunc
>>
>> (This is on a MicroVAX, with the printer connected to the
>> console port. The printer has an additional font cartridge,
>> which contains the font used by the CLANDSCAPE form.
>> /speed=9600 on the set terminal command is wrong (I actually
>> run at 19200) but irrelevent since the port involved doesn't
>> have a software-settable speed anyway. There are a set of
>> forms definitions to go with this; they require some editing
>> to mail because of embedded control characters, but I can
>> send them to anyone who wants them.)
>>
>> I print both normal text files and DVI files with this
>> printer; the only thing you MUST do is include /PASSALL on
>> the PRINT command for a DVI file. (Note: The use of the
>> same qualifier, /PASSALL, on both SET TERM and PRINT is
>> unfortunate, as they mean different things. SET
>> TERM/PASSALL is obsolete and should not be used.
>> PRINT/PASSALL is very much alive and needed here.
>>
To save me some writing, I'm including below the verbatim
change log history between 22-Jun-87 (Newsletter #9) and
now.
[14-Aug-87] {Thanks to Matthias Moritz (U608017@NHYKUN11.EARN)
for Atari support additions}
Merged in support for the Atari 520ST+ using the
Mark Williams C Compiler. makefile.ast should
build it. Since this involves changes in many
routines, I took the opportunity to introduce a
few other changes as well, and incremented the
version number of dvi*.c from 2.07 to 2.08. The
new versions should be functionally identical to
the previous ones for virtually everyone.
The Mark Williams compiler has some limitations,
and could not handle long macro definitions, in
particular DEBUG_OPEN and FONTLIST. I have
therefore made DEBUG_OPEN() expand to dbgopen(),
where the latter is defined at the end of
dviinit.h; this does not follow my standard
practice of one function per file. FONTLIST was
simply removed, and the two instances of its use
were replaced by its definition. There are about
40 instances in the driver source code of macros
continued over multiple lines. They are written
that way to prevent long lines in the source code
(80 is the absolute limit), which is an even more
serious barrier to portability.
The default stacksize on the Atari is often too
small; for the time being, main programs have
been set to declare a larger stack. On PC DOS
(which Atari GEMDOS resembles), the Microsoft
EXEMOD utility can be used to change the
stacksize of an executable program without
requiring code modification. I don't know
whether there is something similar on the Atari.
I removed the OS_xxxx-dependent conditional code
in dvi*.c for output file extension selection, by
introduction of a new variable, DVIPREFIX, in
machdefs.h. This is prepended to the default
file extension, which is now always identical to
the letters following dvi in the dvi*.c files.
On systems which do not support long file
extensions, it will be a null string; otherwise,
it will be "dvi-".
In dvialw.c, a genuine BUG surfaced; PSDEF_PATH
should be #define'd to be subpath instead of
SUBPATH. Otherwise, it cannot be overridden by
an environment variable. Thanks to Matthias
Moritz for catching this one.
An experimental version of a Canon A2 driver has
been added as dvica2.c, based on work by Pekka
Pietilainen (TFYS-PP@FINOU.BITNET), starting from
dvican.c. I have merged in his changes and
removed Unix-isms. This driver is intentionally
not included in the Makefiles. Only a few sites
have the Canon A2 printer, and once more
experience is obtained, it may replace dvican.c.
If you have such a printer, you can easily modify
the appropriate Makefile to support it, or you
can just compile and load dvica2 manually. For
debugging purposes, three additional option
switches are accepted in option.h; they will
disappear as the code settles.
More experience with the drivers at many VAX VMS
sites has indicated that variable-length record
files for the output are probably undesirable
until DEC gets its act in gear and makes all VMS
utilities handle such files properly. I have
therefore modified the code in dviinit.h to use
the fixed-block binary format for all but
POSTSCRIPT devices (for which the output is truly
an ordinary text file); previously, this format
was only selected for IMPRESS (dviimp).
For non-Unix operating systems, it is generally
necessary to open binary files differently than
text files, since the C-runtime libraries use
that distinction to decide how to translate Unix
line terminators. Every system so far has used
the letter "b" in the fopen() mode string to
select this mode, and every Unix system ignores
the "b", except Ultrix, which raises a run-time
error, sigh... I have therefore replaced the
mode string by RB_OPEN and WB_OPEN, and they are
set in machdefs.h. For all Unix systems they
will be "r" and "w", and for most non-Unix
systems, "rb" and "wb".
Lines longer than 80 characters in *.c and *.h
files have been wrapped.
The header "%!PS-Adobe-1.0" in dvialw.c has been
shortened to "%!"; the Adobe TranScript spooler
software thinks it is allowed to do page reversal
when it sees this, but dvialw output pages cannot
be reordered because fonts are defined only on
demand. The similar header in lptops.c is all
right; the pages there ARE independent.
The sources have been run through 4.2BSD lint and
System V lint. A number of missing typecasts
have been supplied, and several unreferenced
local variables have been eliminated. lint still
produces many warnings, but the remaining ones
seem to be benign, or simply red herrings.
lint revealed numerous problems with texidx.c
(which came from the GNU Project). I have
eliminated unused variables and functions, but
there remain some serious errors of incorrect
argument lists to sort_in_core() and
sort_offline(). I am not proposing to fix these
now, because at least 3 comprehensive indexing
packages for TeX have appeared recently, and
texidx.c may rapidly become obsolete.
I have changed the handling of some preprocessor
symbols in several routines so as to eliminate
redefinition warnings, and any assumptions that
undefined symbols evaluate to 0. The draft ANSI
C standard REQUIRES that all undefined symbols
evaluate to 0 in preprocessor expressions, but
many compilers to do yet follow this rule (VAX
VMS C in particular).
[15-Aug-87] {Thanks to Julian Perry (seismo!mcvax!zen.co.uk!jules)}
The code in option.h in the -o switch section
that forced page_begin[npage] <= page_end[npage]
conflicts with negative page numbers for counting
from the end. I have removed the code there, and
then in dvifile.h, before the main page loop,
inserted code to reset the page_begin[] and
page_end[] arrays to positive values (this can
only be done after page_count is known), and to
order them properly.
[10-Aug-87] {Thanks to Gary Beihl (beihl%bell.cad.mcc.com@mcc.com)}
In lw78.c and dvialw.c, change instances of
time(0) to time((long*)NULL).
[27-Jul-87] {Thanks to Charles Karney (Karney%ppc.mfenet@nmfecc.arpa)}
Here are two small changes to vaxvms.c:
In vmsexit(), we turn on a high bit on a non-zero
status code to suppress a useless VMS message:
150,151c150,151
< exit((1 << 28) + 2); /* error */
< break; /* (suppresses %NONAME-E-NOMSG) */
---
> exit(2); /* error */
> break;
457d456
In system(), add a test for the status code
returned by LIB$SPAWN; for the MAKE utility, this
allows recognition of errors returned from a
compilation.
< int stat;
463,464c462
< return ((LIB$SPAWN(&t,0,0,0,0,0,&stat) == SS$_NORMAL)
< && ((stat & 1) > 0)) ? 0 : 127;
---
> return (LIB$SPAWN(&t) == SS$_NORMAL) ? 0 : 127;
[20-Jul-87]
Updated cross-referencing awk scripts for use on
Sun OS 3.3 using standard cxref utility, replaced
old x*.awk by xref, xref1.awk, xref2.awk, and
xref3.awk, and replaced dvi.lrf and dvi.rby by
dvi.xrf.
[20-Jul-87] {Thanks to Eric M. Carroll (Eric.M.Carroll@uunet.uu.net)}
In dvialw.c, getlogin() can return a NULL
pointer, so we need to guard against that.
Change
(void)fprintf(plotfp,"%%%%Creator: %s and ",getlogin());
to
(void)fprintf(plotfp,"%%%%Creator: %s and ",
(getlogin() == (char*)NULL) ? "" : getlogin());
[08-Jul-87]
Update makefile.* to reflect new dvil3p, and
remove obsolete makefile.eun (for Eunice).
[08-Jul-87]
Add symbol DECLN03PLUS and change SUBPATH for
Unix from /usr/lib/tex/inputs/ to
/usr/lib/tex/macros to match Washington TeX
distribution.
[08-Jul-87]
In gblprocs.h, add OS_VAXVMS to the list of hosts
where sprintf() is not declared (because it is in
system include files).
[08-Jul-87]
Change type of main() from void to int in
gblprocs.h and main.h to bring them into
conformance with the draft ANSI C Standard.
[08-Jul-87]
In fontfile.h, changed VMS section to allow for
the possibility that TEXFONTS is a logical name
list (thanks for John Sauter for this).
[08-Jul-87] {Thanks to John Sauter (Sauter@dssdev.dec.com)}
Add dvil3p.c for DEC LN03+ printer.
[08-Jul-87]
In dvil75.c in prtbmap(), change OUTC('-') to
OUTS("-\n") so as to avoid long output lines.
-------
|