DZEDIT is an interactive program to manipulate the documentation
database.
The program can handle one RZ file
and one input
cards file in the same session.
All file handling (OPEN
, CLOSE
and FILDEF
)
are done by the program.
The RZ file
is opened with STATUS = `NEW'
if it should by created, the other files
(Listing, plotfiles) are opened with STATUS='UNKNOWN'
,
i.e. they will be overwritten if they exist.
It allows to create the RZ file
, to update it and
produce printed documentation of all or selected entries.
Documentation including graphical representation of the bank trees
may be produced in various formats:
xxxx.ps
can be
directly printed on a PostScript laser printer.
The P
option should be used with the appropriate commands.
xxxx.tex
is obtained with the L
option.
HTML
produces output in HTML format.
ZEBRA links are translated into hypertext links that allow one
to step through the data structure with a WWW browser.
DZEDIT uses KUIP [7] as command interface.
The program remembers the names of the RZ file
and the card image
file in a file called dzedit.las
.
CALL CREATEDOC chcard chrzf
chcard C 'Input card image file' D=' ' chrzf C 'Output RZ-file' D=' '
Create a new RZ file from documentation card image file
CALL UPDATEDOC chcard chrzf [ chsubd ]
chcard C 'Input card image file' D=' ' chrzf C 'Output RZ-file' D=' ' chsubd C 'Subdirectory name (blank=topdir)' D=' '
Update an existing RZ file with new documentation, this option is also used to put the documentation into any subdirectory of an existing RZ file .
CALL EXPORTFILE chfzf
chfzf C 'FZ-file name' D=' '
Write currently open RZ file as a FZ file in Alpha exchange mode for transport to a different computer.
CALL IMPORTFILE chfzf chrzf
chfzf C 'FZ-file name' D=' ' chrzf C 'RZ-file name'
Read a FZ file in Alpha exchange mode previously exported via the command EXPORTFILE on different (or same) computer. A new RZ file will be generated.
CALL OPENRZFILE chrzf [ choopt ]
chrzf C 'Input RZ-file' D=' ' choopt C 'Option for RZFILE (U=Update)'
Open an existing RZ file
for later use with list/draw/export
commands
(the file will be READONLY
unless the 'U'=update
option is given)
CALL PURGEKEY [ nkeep ]
nkeep I 'Number of cycles to be kept' D=-1
Purge cycles of all keys keeping the last nkeep
.
If nkeep < 0
keep just the highest cycle.
CALL DELETEKEY chbsbk chbsup [ icycle chdopt ]
chbsbk C 'Hollerith Id of selected bank' chbsup C 'Hollerith Id of its up-bank' icycle I 'Cycle number' D=0 > highest: delete highest cycle, =0: delete lowest cycle, =-1, -2 : delete highest-1, -2.. chdopt C 'Delete option' D='C' 'C': delete all cycles 'K': delete all keys, 'S': delete all cycles smaller ICYCLE. (See ZEBRA users guide: RZDELK)
Delete a key specifying BankId
and UpBankId
and cycle number.
CALL LISTDIRECTORY chrzf
chrzf C 'Input RZ-file' D=' '
List directory of an existing RZ file .
CALL LISTONEBANK chbsbk chbsup [ chlist chlopt choyno idatch ]
chbsbk C 'Hollerith Id of selected bank' D=' ' chbsup C 'Hollerith Id of its up-bank' D='****' chlist C 'File for listing' D=' ' chlopt C 'List option: D=' ' 'P' PostScript file (default: simple text file) 'I' use format of the bank descriptor cards (i.e. Input to CREATEDOC) choyno C 'List all cycles' D='NO' R='NO,YES' idatch I 'List only after date' D=0
List documentation for a selected bank or a group of banks.
An '*'
(asterix) may be used as wild card character.
Exactly two times 4 characters are needed to define bank and up-bank.
only the last cycle of one entry is listed regardless of its date.
List of all cycles or selection by date of entering the RZ file
may
also be choosen. The date is an integer of the form YYMMDD
.
CALL LISTALL [ chlist chlopt choyno idatch ]
chlist C 'File for listing' D=' ' chlopt C 'List option: D=' ' 'P' PostScript file (default: simple text file) 'I' use format of the bank descriptor cards (i.e. Input to CREATEDOC) choyno C 'List all cycles' D='NO' R='NO,YES' idatch I 'List only after date' D=0
List documentation for all banks
CALL HTML chbsbk chbsup [ chopt ]
chbsbk C 'Hollerith Id of selected bank' chbsup C 'Hollerith Id of its up-bank' chopt C 'Option: number of output files written D=' ' default: a different file is written for each bank = 1 all output is written into a single file
Generate documentation in HTML format suitable for a WWW browser.
One should use a chbsbk
equal to '****'
and chbsup
equal to 'NONE'
to generate a description
for all banks.
CALL DRAWONETREE chbsbk chbsup [chmeta chtext chpost chopt ctitle]
chbsbk C 'Hollerith Id of selected bank' chbsup C 'Hollerith Id of its up-bank' chmeta C 'Name of plotfile' D=' ' chtext C 'Name of text file' D=' ' chpost C 'Name of PostScript file' D=' ' chopt C 'Option (P=PostScript L=Latex)' D=' ' R=' ,P,C,L,PC,LC' 'P' PostScript file 'L' Latex file 'Q' do not produce output files 'C' check consistency ctitle C 'Global title' D='ZEBRA-Datastructures'
Draw tree below a selected bank. All banks belonging to the tree will be actually lifted in memory each with three data words. Word 1, 2, 3 are the number of data words, links and structural links as described in the documentation, a -1 indicates a variable number. A global title may be given which appears on the front page of thge document.
CALL DRAWALL [ chmeta chtext chpost chopt ctitle ]
chmeta C 'Name of plotfile' D=' ' chsgml C 'Name of text file' D=' ' chpost C 'Name of PostScript file' D=' ' chopt C 'Output: D='S' 'P' PostScript file 'L' Latex file 'N' do not check consistency 'Q' do not produce output files (check only) ctitle C 'Global title' D='ZEBRA-Datastructures'
Draw tree below all top banks (i.e. banks having "None"
as
up-bank. This also checks the consistency and completeness
of the documentation if option N
is not given.
CALL DZDISP [ chopt ]
chopt C 'Option: D=' ' 'C' use color
Display the last generated tree if graphics is available. Note that the number of data words is three for each bank. Their contents indicates the documented number of data words and links.
CALL DZDDIV [ chopt ]
chopt C 'Option: D=' ' 'C' use color
Call subroutine DZDDIV.
CALL DZDIRZ [ chopt ]
chopt C 'Option: D=' ' 'C' use color
Call subroutine DZDIRZ, display RZ-directory tree
MAKECODE generates PATCHY KEEP
sequences
containing Fortran code.
With option S
only the selected bank is treated,
with option T
all banks in the selected tree are treated.
The KEEP
sequences are named
with the hollerith Identifiers of the bank(trees) prefixed by mnemonics
like BOOK
, LKOFF
, DAOFF
etc.
CALL DATAOFFSETS chbsbk chbsup [ chlist chpfix choptd ]
chbsbk C 'Hollerith Id of selected bank' chbsup C 'Hollerith Id of its up-bank' chlist C 'File for listing' D=' ' chpfix C 'Prefix to mnemonic' D=' ' choptd C 'Option' D='T' 'S' One selected bank 'T' Complete treeGenerate sequences of data word offsets for a selected bank or a complete tree. The mnemonics given in the documentation can be prefixed by a (upto 8 char) string like:
DO_
Example of data word documentation
*B.4 IIDAT4 This is the 4th data word {\rm would produce:} INTEGER IIDAT4 PARAMETER (IIDAT4=4)
CALL LINKOFFSETS chbsbk chbsup [ chlist chpfix choptl ]
chbsbk C 'Hollerith Id of selected bank' chbsup C 'Hollerith Id of its up-bank' chlist C 'File for listing' D=' ' chpfix C 'Prefix to BankId' D='LO' choptl C 'Option' D='T' 'S' One selected bank 'T' Complete tree
Generate sequences of link offsets for a selected bank or tree.
Exactly two times 4 characters are needed to define bank and up-bank.
The variable generated is named chpfix
concatenated with the
bank Identifier.
Example of the description of a link
*B.LINK ... *B.7 IDBK Bank containing anything {\rm would produce:} INTEGER LOIDBK PARAMETER (LOIDBK=7)
CALL LINKASSIGNMENT chbsbk chbsup [ chlist chpfix choptl ]
chbsbk C 'Hollerith Id of selected bank' chbsup C 'Hollerith Id of its up-bank' chlist C 'File for listing' D=' ' chpfix C 'Prefix to BankId' D='LO' choptl C 'Option' D='T' 'S' One selected bank 'T' Complete tree
Generate sequences of link assignment statements for selected
bank or tree.
Exactly two times four characters are needed to define bank and up-bank.
The assumed linkoffset is named chpfix
concatenated with the
bank identifier.
Example: if a
Example of link to bank IDBK
with Up-bank IDUP
*B.UP IDUP *B.LINK ... *B.7 IDBK Bank containing anything {\rm would produce:} INTEGER LOIDBK LOIDBK=LQ(LOIDUP-7)
CALL BOOK chbsbk chbsup [ chlist choptb ]
chbsbk C 'Hollerith Id of selected bank' chbsup C 'Hollerith Id of its up-bank' chlist C 'File for listing' D=' ' choptb C 'Option' D='TB' 'S' One selected bank 'T' Complete tree 'B' Generate call to MZBOOK 'L' Generate call to MZLIFT
Generate code to book a bank or bank tree with MZBOOK
or MZLIFT.
For MZLIFT the bank parameters are put into arrays
MMIDBK
, which go into their own KEEP
sequence.
The link to the bank "BANK"
is named LBANK
,
the uplink is assumed LUPBK
if the up-bank is called "UPBK"
.
For LBANK
the declaration "INTEGER LBANK"
is generated,
for LUPBK
it is assumed to be done already.
A call to MZFORM is generated if not all data
words are of the same type. The IO-char may be given expicitely for
each data word or in line like: *B.IO 3I 4F
.
The link offset (JBIAS
) is taken from the card *B.UP UPBK -JBIAS
,
if JBIAS
is given.
If it is not given it is searched for in the documentation of the Up-bank.
If the string specified for UPBK
is "NONE"
,
it is set to +1
.
Defaults for non explicitly documented parameters
IXDIV: 0 (i.e. div 2 in store 0) JBIAS: no default NL: 0 NS: 0 ND: 0 IOChar: no default, if not given with the data word description NZERO: 0
CALL LIFT chbsbk chbsup [ chlist choptb ]
chbsbk C 'Hollerith Id of selected bank' chbsup C 'Hollerith Id of its up-bank' chlist C 'File for listing' D=' ' choptb C 'Option' D='TL' 'S' One selected bank 'T' Complete tree 'B' Generate call to MZBOOK 'L' Generate call to MZLIFT
Generate code to lift a bank or bank tree. See the description of BOOK above.
CHBSBK
and CHBSUP
can contain
the wildcard character *
, e.g. "CV**"
for CHBSBK
and "****"
for CHBSUP
would select all banks starting
with "CV"
(CV
, CVRA
, ...).
"None"
(or "NONE"
)
and generate the graphical documentation.
At the same time it checks whether all banks in the file are connected
in a tree and are not used more than once
(i.e., the pair BankId
and UpBankId
is not unique).
When the update option is specified, the input Cards file is first read and new keys (or a new cycle of a key if it is already present) are produced. It then checks for the cases where a new cycle has been added, if the data in the new cycle are identical to the one in the previous cycle. If so, it deletes the newly created cycle. So the update can be done with a Cards file containing documentation on all banks or just those which should be added or modified. Thus old cycles of the updated banks are kept and can be listed on request. (See option ``list all cycles'')