294 lines
11 KiB
Plaintext
294 lines
11 KiB
Plaintext
![]() |
INTPRINT v3.10
|
||
|
by Ralf Brown
|
||
|
|
||
|
The INTPRINT program is hereby donated to the public domain, with the sincere
|
||
|
hope that proper credit will be retained in all copies and derivatives.
|
||
|
|
||
|
------------------------------------------------------------------------------
|
||
|
|
||
|
INTPRINT.COM is a simple formatter for the interrupt list. Use this
|
||
|
program to print only a portion of the list, prevent widow lines at the
|
||
|
beginning of a function call, number the pages, boldface key portions,
|
||
|
center the printout, or create a summary of the function calls. After
|
||
|
formatting is complete, the total number of pages is displayed on the
|
||
|
screen.
|
||
|
|
||
|
Usage:
|
||
|
intprint [options] intlist [[>|>>]outfile]
|
||
|
|
||
|
where the options are:
|
||
|
-b boldface the title lines, Return:, and Notes: by overprinting
|
||
|
-B boldface by sending printer control sequences
|
||
|
|
||
|
-d (duplex) print even/odd pages with different margins; suitable
|
||
|
for binding the printout.
|
||
|
|
||
|
-e assume printer is in elite mode (96 characters per line), and
|
||
|
indent the output eight spaces to center the printout. This
|
||
|
is primarily for the default printer, as other printers may
|
||
|
force the equivalent or override this option.
|
||
|
|
||
|
-ffile create a file containing only the data structures described
|
||
|
in the interrupt list.
|
||
|
NOTE: you must put the filename immediately after the 'f'; no
|
||
|
blanks are allowed.
|
||
|
|
||
|
-Ffile filter the listing based on include and exclude strings
|
||
|
in 'file'. Only entries whose headers match none of the
|
||
|
exclude strings and at least one of the include strings
|
||
|
will be processed. All others will be skipped.
|
||
|
NOTE: you must put the filename immediately after the 'F'; no
|
||
|
blanks are allowed.
|
||
|
|
||
|
-H print a heading on each page indicating which interrupts
|
||
|
are listed on the page
|
||
|
|
||
|
-iN indent the output N spaces. The output device is assumed to be
|
||
|
at least 80+N characters wide.
|
||
|
NOTE: you must put the number immediately after the 'i'; no
|
||
|
blanks are allowed.
|
||
|
|
||
|
-I assume the printer is capable of producing IBM character
|
||
|
graphics. Printers other than "default" may force this option.
|
||
|
|
||
|
-k keep original divider lines instead of replacing them
|
||
|
with all dashes.
|
||
|
|
||
|
-lN print N lines per pages, overriding the printer-specific
|
||
|
default. Use 0 to omit page breaks (in this case, the
|
||
|
reported number of pages and -r page restriction may be
|
||
|
incorrect unless you also use -L); this can be useful if
|
||
|
you only want to filter the list before processing it
|
||
|
further.
|
||
|
|
||
|
-LN assume N lines on a page. If this is more than the number of
|
||
|
lines to print on each page, INTPRINT will use line feeds to
|
||
|
advance to the next page instead of form feeds.
|
||
|
|
||
|
-m specify that the interrupt list is in multiple parts beginning
|
||
|
with the named file. INTPRINT will increment the last
|
||
|
character of the name to get the next filename, and continue
|
||
|
until it is unable to open the file thus selected.
|
||
|
|
||
|
-nN assume N pages have already been printed, and start numbering
|
||
|
at N+1. This option allows you to create a properly-numbered
|
||
|
printout even if there is not enough disk space to concatenate
|
||
|
the parts of the interrupt list or hold a complete output file.
|
||
|
See the examples below.
|
||
|
NOTE: you must put the number immediately after the 'n'; no
|
||
|
blanks are allowed.
|
||
|
|
||
|
-p print the page number at the bottom center of each page
|
||
|
|
||
|
-Pname use control codes for the specified printer (-P? lists the
|
||
|
supported printers). The printer name may be given in either
|
||
|
case and abbreviated to a unique prefix; use either dashes or
|
||
|
underscores in place of blanks in the printer name.
|
||
|
|
||
|
-rN:M print only pages N through M. The entire input is processed
|
||
|
for use in -s and -f summaries (see below) even though only
|
||
|
a portion is formatted for printing. If filtering is enabled,
|
||
|
(see -F), page numbers are based on entries selected by the
|
||
|
filter file.
|
||
|
NOTE: you must put the page numbers immediately after the 'r';
|
||
|
no blanks are allowed. When using -l0 together with -r,
|
||
|
you must specify the appropriate page length with -L so
|
||
|
that page numbers can be computed correctly.
|
||
|
|
||
|
-sfile create a one-line-per-function summary and write it to "file"
|
||
|
if -n is also given, the summary will be appended to "file",
|
||
|
allowing a properly numbered summary file to be created even if
|
||
|
there is not enough disk space to concatenate the parts of the
|
||
|
list. See the examples below. If -p is also given, page
|
||
|
numbers will be included in the summary. If -V is also given,
|
||
|
byte offsets for use by INTERVUE will be included.
|
||
|
NOTE: you must put the filename immediately after the 's'; no
|
||
|
blanks are allowed.
|
||
|
|
||
|
-tN select typeface N for the chosen printer (currently supported
|
||
|
only for the HP).
|
||
|
|
||
|
-Tfile create a one-line-per-table summary and write it to "file"
|
||
|
if -n is also given, the summary will be appended to the named
|
||
|
file. If -p is also given, page numbers will be included in
|
||
|
the summary. If -V is also given, byte offsets for use by
|
||
|
INTERVUE will be included.
|
||
|
NOTE: you must put the filename immediately after the 'T'; no
|
||
|
blanks are allowed.
|
||
|
|
||
|
-V indicate that the summary file is intended for use by INTERVUE.
|
||
|
INTPRINT will output byte offsets that allow INTERVUE to jump
|
||
|
directly to an entry. Also forces -I.
|
||
|
|
||
|
-wN (widow lines) search N lines from the end of the page for a
|
||
|
good place to break. The default is eight lines; the valid
|
||
|
range is from 3 to one-half of the page length.
|
||
|
NOTE: you must put the number immediately after the 'w'; no
|
||
|
blanks are allowed.
|
||
|
|
||
|
-x include Index: lines in formatted listing. These lines are
|
||
|
are excluded by default because they are intended primarily
|
||
|
for use by hypertext converters.
|
||
|
|
||
|
Options may not be merged; "-ep" is illegal and the "p" will be ignored.
|
||
|
Use "-e -p" instead.
|
||
|
|
||
|
The formatted result of the input file is sent to the specified output file,
|
||
|
or to standard output if no output file is given. Standard output may be
|
||
|
redirected using the usual Unix or MSDOS redirection characters > or >>. If
|
||
|
you only want a summary file or data formats file, send or redirect the
|
||
|
output to the null device ("NUL" under MSDOS, "/dev/null" under Unix).
|
||
|
|
||
|
|
||
|
FILTER FILE:
|
||
|
------------
|
||
|
|
||
|
The filter file specified with -F is a simple text file containing
|
||
|
include lines, exclude lines, and comment lines. Both 'include' and
|
||
|
'exclude' lines may be based on either a category code or a substring
|
||
|
of the entry's title line. Comment lines start with a hash mark (#) in
|
||
|
the first column and are ignored. The other valid command characters
|
||
|
in the first column are:
|
||
|
|
||
|
> unconditionally include any entry with the specified category letter
|
||
|
< unconditionally exclude any entry with the specified category letter
|
||
|
+ include entries containing the specified string, unless unconditionally
|
||
|
excluded
|
||
|
- exclude entries containing the specified string, unless unconditionally
|
||
|
included
|
||
|
i include entries with the given category letter unless specifically
|
||
|
excluded by a '-' line
|
||
|
o override '-' line and include entry anyway if it has the given
|
||
|
category letter
|
||
|
|
||
|
Note that any category letters or selection strings must immediately
|
||
|
follow the command character. All spaces on '+' include and '-' exclude
|
||
|
lines are significant. Thus,
|
||
|
+ DOS
|
||
|
will only match entries containing the four-letter sequence " DOS",
|
||
|
while
|
||
|
+DOS
|
||
|
will match any entries containing the sequence "DOS", whether or not it
|
||
|
is preceded by a blank.
|
||
|
|
||
|
If a filter file is specified, only entries whose title lines contain at
|
||
|
least one of the '+' include lines (ignoring uppercase/lowercase
|
||
|
distinctions), none of the '-' exclude lines, or whose category codes
|
||
|
have been selected by other include/exclude lines, are processed. Thus,
|
||
|
a filter file must contain at least one include line, or INTPRINT will
|
||
|
skip all interrupt entries and print only the non-interrupt text in the
|
||
|
file.
|
||
|
|
||
|
----cut here----
|
||
|
# SAMPLE1.FLT
|
||
|
# Sample filtering file number 1, using only title includes/excludes.
|
||
|
# Extract MS-DOS calls, but exclude DR-DOS-specific, DOS-extender, and
|
||
|
# non-DOS networking calls.
|
||
|
# Note: a few extraneous calls are still included.
|
||
|
#
|
||
|
+ DOS
|
||
|
-DR DOS
|
||
|
-DR-DOS
|
||
|
-DR Multiuser DOS
|
||
|
-Concurrent DOS
|
||
|
-DOS/16M
|
||
|
-DOS4GX
|
||
|
-DOS/4G
|
||
|
-extender
|
||
|
-LAN Manager
|
||
|
-DECnet DOS
|
||
|
#
|
||
|
# end of SAMPLE1.FLT
|
||
|
----cut here----
|
||
|
|
||
|
----cut here----
|
||
|
# SAMPLE2.FLT
|
||
|
# Sample filtering file number 2, using category includes/excludes. Extract
|
||
|
# MS-DOS and DR-DOS calls, but exclude OS/2 and other operating systems.
|
||
|
#
|
||
|
# unconditionally include the DOS category
|
||
|
>D
|
||
|
# include 'other OSes' category, but remove OS/2, VMiX, PC-MOS, etc.
|
||
|
iO
|
||
|
-OS/2
|
||
|
-VMiX
|
||
|
-PC-MOS
|
||
|
-STARLITE
|
||
|
-WinDOS
|
||
|
-Acorn BBC
|
||
|
-Linux DOSEMU
|
||
|
#
|
||
|
# end of SAMPLE2.FLT
|
||
|
----cut here----
|
||
|
|
||
|
------------------------------------------------------------------------------
|
||
|
|
||
|
EXAMPLES:
|
||
|
---------
|
||
|
|
||
|
Print the interrupt list with page numbers, and create a summary file,
|
||
|
without concatenating INTERRUP.A, INTERRUP.B, and INTERRUP.C:
|
||
|
|
||
|
A> intprint -sb:interrup.sum -p interrup.a >prn
|
||
|
146 pages [screen output from INTPRINT]
|
||
|
A> intprint -sb:interrup.sum -p -n146 interrup.b prn
|
||
|
285 pages [screen output from INTPRINT]
|
||
|
A> intprint -sb:interrup.sum -p -n285 interrup.c >prn
|
||
|
403 pages [screen output from INTPRINT]
|
||
|
|
||
|
or, more easily:
|
||
|
A> intprint -sb:interrup.sum -m -p interrup.a prn
|
||
|
1587 pages [screen output from INTPRINT]
|
||
|
|
||
|
Create only a summary file:
|
||
|
|
||
|
C> intprint -sinterrupt.sum interrup.lst nul
|
||
|
|
||
|
Create a listing of the tables in the interrupt list:
|
||
|
|
||
|
C> intprint -Tinterrup.tbl interrup.lst nul
|
||
|
|
||
|
Print only those entries containing the string "DOS", except
|
||
|
those containing the string "DR-DOS"
|
||
|
|
||
|
C> type dos
|
||
|
+DOS
|
||
|
-DR-DOS
|
||
|
|
||
|
C> intprint -Fdos interrup.lst nul
|
||
|
|
||
|
|
||
|
Print the interrupt list on an Epson FX80, using 54 lines per page and
|
||
|
omitting both page numbers and summary:
|
||
|
|
||
|
C> intprint -Pepson -l54 interrup.lst >prn
|
||
|
|
||
|
Print the interrupt list using 120 lines on every 132-line page (using
|
||
|
superscript mode, for example), and make divider lines using IBM
|
||
|
character graphics:
|
||
|
|
||
|
C> intprint -I -l120 -L132 interrup.lst >prn
|
||
|
|
||
|
Print only pages 123 through 127, assuming that 106 pages are contained
|
||
|
in the first section of the list:
|
||
|
|
||
|
C> intprint -n106 -r123:127 interrup.b prn
|
||
|
|
||
|
Print using HP PCL4/5 escape sequences, numbering pages, from file
|
||
|
"interrup.lst" to file "interrup.pcl", at the default 69 lines per
|
||
|
page, using form-feeds:
|
||
|
|
||
|
C> intprint -Php -p interrup.lst >interrup.pcl
|
||
|
1587 pages [screen output from INTPRINT]
|
||
|
|
||
|
------------------------------------------------------------------------------
|
||
|
|
||
|
PORTABILITY:
|
||
|
------------
|
||
|
|
||
|
INTPRINT.C contains the source code for INTPRINT, for those people who
|
||
|
are using the interrupt list on a machine which does not run MSDOS.
|
||
|
This code has been tested with Turbo C v2.0, Borland C++ v3.1, and Mach
|
||
|
(BSD 4.3 Unix) "cc" and "gcc".
|
||
|
|