home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CP/M
/
CPM_CDROM.iso
/
simtel
/
sigm
/
vols000
/
vol081
/
disk.doc
< prev
next >
Wrap
Text File
|
1984-04-29
|
11KB
|
248 lines
Disk Information
This disk contains five Pascal/Z programs: two general
purpose utilities: PRINT and FF; two Pascal development aids: PP
and XREF; and a text processor: TP. The assembly language and
other Pascal/Z files on the disk contain procedures used by
these programs. The file that you are now reading exists in two
forms on the disk: DISK.DOC is obtained by running TP with
DISK.TEX as input.
These programs have been donated to the Z User's Group.
They are guaranteed only to do what Iwant them to do on my
system. Use them, alter them, and give them away to friends,
but please do not attempt to market them. If they were saleable
products, I would have sold them. If you make substantial
improvements to them or discover substantial bugs in them,
please let me know.
General Description
These notes are intended to help you get the programs
running. When you have got TP working, you should be able to
obtain specifications for them by processing SYSTEM.TEX.
Everybody writes their own print utility; mine, PRINT, is
written for a specific printer, the I.D.S. 460G "Paper Tiger",
but the printer-dependent code is localized (and documented!) to
simplify changes. PRINT will not send and strange codes to the
printer unless you select fancy options, such as boldface
printing or proportional spacing.
FF is also written specifically for the I.D.S. 460; it
transmits all the codes necessary to straighten the printer out
when it has got into a muddle, and it also sends as many
form-feeds as you want.
PP is a Pascal/Z pretty-printer. It accepts a Pascal
source program (a .PAS file, not a .LST file) and produces a ___
.PPP file containing an equivalent program with improved layout.
The idea is that you work with a .PAS file and generate a .PPP
file only when you want a fancy listing. The .PAS files on this
disk are all squashed up and unreadable, but you can use PP to
massage them into a more presentable form.
XREF is a cross-reference generator that reads the output
of PP and produces a .XRT file containing a cross-reference
table of user identifiers. (It is really an index of user
identifiers, but I am not going to try and change accepted
terminology.) The cross-reference table includes identifiers
that start with a lower case letter, are not part of a quoted
string, and are not inside a comment of the form { ... }. I
Disk Information Page 1
write my programs entirely in lower case and PP converts Pascal
reserved words to upper case, and so this arrangement suits me
very well; if you don't like it, it is not difficult to modify
XREF to your own requirements.
The submit file PRETTY.SUB shows how PP and XREF are used
together.
If you use one of the flashy new "what you see is all
you've got" style text processors, you will find that TP is
something of a dinosaur. I wrote it because none of the text
processors available at a reasonable price satisfied my somewhat
eccentric requirements. (I use a small set of relatively
high-level commands suited to my work but I do not require high
quality final output, because I usually send the material to
someone with better typesetting equipment than mine. TP does
several things automatically, including section numbering and
cross-referencing, and this makes reorganizing text
straightforward. It does not do certain "basic" things, such as
justify text, because these are not part of my requirement.) TP
is not yet complete, but it is still largely device independent.
The only assumption that it makes is that the printer can handle
a carriage-return that is not followed by a line-feed. The next
revision will probably contain code for special character sets,
etc, which will be device dependent, so now seems a good time to
give it to ZUG. The best way to learn about TP is to use it to
format the file SYSTEM.TEX, and then compare SYSTEM.TEX with
SYSTEM.DOC. If you like TP and want to be informed of future
developments, let me know.
Implementation Notes
The disk contains a .SUB file for each Pascal program.
Note that all of the programs except FF require CONSTS.PAS,
TYPES.PAS, GETFILES.PAS, and PROCS.PAS during compilation, and
that PRINT, XREF, and TP also require assembly language
subroutines. The following suggestions may help to get you
started.
(1) Compile the programs by executing FF.SUB, PRINT.SUB,
PP.SUB, XREF.SUB, and TP.SUB. The .SUB files assume
that everything happens on the current system disk,
which must of course contain the compiler, assembler,
linker, MAIN.SRC, etc.
(2) Use PRETTY.SUB to obtain a pretty-printed listing of
each program. This procedure requires the name of a
Pascal source file as a parameter. For example:
SUBMIT PRETTY FF
Disk Information Page 2
PRETTY uses PRINT to print a listing of the
pretty-printed program and its cross-reference table.
By default, PRINT assumes 11" paper and 6 lines/inch;
it prints 60 lines of text on each page, printing
page headings and using form-feed characters for
pagination. It does not truncate or wrap long lines.
(3) Test TP by formatting this file with it. The command
TP DISK
should create a file DISK.DOC identical to the file
DISK.DOC on this disk. If it does, use TP to format
the documentation contained in the files SYSTEM.TEX,
SYSUT.TEX, and SYSTP.TEX. The command
TP SYSTEM
does this, creating the formatted manual SYSTEM.DOC,
the table of contents file SYSTEM.CON, and the file
of cross-references SYSTEM.REF, which is of no great
interest to the user.
Computers being what they are, you will probably get stuck
at some point in the proceedings. Unfortunately, I cannot
predict what will go wrong, but here are some possibly alarming
symptoms.
(1) All of the programs work with Version 4.0 of the
compiler and I believe that all except PP also work
with Version 3.0. The problems with PP under Version
3.0 concern passing one-byte integers by reference.
(2) Some of the operations are quite slow. My system
requires about 15 minutes to compile TP.
Furthermore, TP will require at least 7 minutes to
process SYSTEM -- it runs at about 1200 words per
minute under Cache BIOS with floppy disks.
(3) Large intermediate files will be created. Check the
amount of free disk space before each compilation,
especially before when compiling TP. The submit
procedures delete files as soon as they are no longer
required.
(4) I have had no memory problems running Cache BIOS in
128K. I do not know whether TP can be compiled on a
48K machine. It should run on a 48K machine, but ___
there will be less space for cross-references and
"keeps". The simplest way to reduce the memory
requirements of TP would be to split it in two: part
1 would initialize the global tables and chain to
Disk Information Page 3
part 2 which would do the work.
(5) Some of the cross-references in SYSTEM.DOC will be
unsatisfied (there will be statements like "see
Section 0.0.0"). There are two reasons for this: one
is that TP requires two passes to satisfy forward
references, and the other is that there are
references to sections of the manual that are not on
this disk.
(6) TP assumes 12 characters/inch by default. Each line
is preceded by 6 blanks (0.5"), and contains at most
78 characters (6.5") of text. Thus the text fits
onto 8.5"x11" paper with 1" margins. If your printer
prints 10 characters/inch and you use 8.5" paper, the
lines will be too long. (They will also be too long
to display on an 80-column screen.) You can tell TP
to print shorter lines by inserting the command
\HL 5 65
at the front of the file: look at DISK.TEX to see
where it goes.
(7) PRINT has a "T" option for printing .DOC files
produced by TP. You can say, for example:
PRINT SYSTEM.DOC T1,5
This is supposed to print the first 5 pages of
SYSTEM.DOC. Unfortunately this option does not work
on my system. When the "T" option is selected, the
printer seems to ignore the ETX/ACK protocol.
Please let me know if you manage to fix the bug.
In the meantime, use
PIP LST:=SYSTEM.DOC
instead.
Good luck!
Peter Grogono
Metonymy Productions
4125 Beaconsfield Avenue
Montreal, Quebec H4A 2H4
Disk Information Page 4