home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Collection of Hack-Phreak Scene Programs
/
cleanhpvac.zip
/
cleanhpvac
/
INTER52D.ZIP
/
INTPRINT.DOC
< prev
next >
Wrap
Text File
|
1996-02-11
|
11KB
|
294 lines
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".