summaryrefslogtreecommitdiff
path: root/dviware/beebe/updates/00mail.10
blob: 6c8f945f68882f4d7ca3a2068bab0a820264146f (plain)
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.

-------