HP 3000 Manuals

New Version of DAT [ COMMUNICATOR 3000/XL XL Rel. 1.2 (PR A.21.00) ] MPE/iX Communicators


COMMUNICATOR 3000/XL XL Rel. 1.2 (PR A.21.00)

New Version of DAT 

by Mark Fulgham, Commercial Systems Division 

This article describes the new and enhanced features of DAT (version
A.04.01) and how to utilize them.


NOTE These enhancements have been included in DATPROG. Currently DEBUG does not have any of the enhancements. DEBUG will include these enhancements in a subsequent release of MPE XL.
Macro/Variable Table Sizing On OS release of 1.0 and earlier, both the macro and global variable limits were limited to 511 and 311 respectively. DAT/DEBUG now supports user sizing of the macro and variable tables by means of new ENV variables. The top end limits to macros and global variables have been increased to 1009 and local variables are up to 501. An example of how to configure the desired sizing is shown below: ENV MACROS [ x LE. #1009] Set maximum number of macros ENV VARS [ x LE. #1009] Set maximum number of variable ENV VARS_LOC [ x LE. #501] Set maximum number of local variables *(remember macro parms are handled as locals)* These new ENV variables are defined in a new ENV Group called LIMITS and they must be set (changed from defaults) before the first user variable or macro has been declared. Once the environment variable has been set it cannot be changed for the duration of the process. It is recommend that your DATINIT file be used to set table sizes. This will insure your desired configuration. The following DATINIT lines will work with both new and old versions of DAT: ignore quiet; { env macros #1009; env vars #1009; env vars_loc #501 } The absolute maximum system limits for macro and variable tables are: MACROS_LIMIT = #1999 Maximum size of MACROS VARS_LIMIT = #3000 Maximum size of combined VARS and VAR_LOC These limits should be sufficient for array of macros that DAT supports. All defined ENV limits can be displayed by entering: ENVL @ LIMITS Display all current limits New STORE/RESTORE Commands DAT supports new STORE/RESTORE commands. These commands provide a very quick way to load and store macros and or variables. On previous versions it took a significant amount of time to load system macros. This enhanced version takes approximately 2 seconds to load all the OS macros. The syntax takes the following form: STORE MACROS [filename] or STORE VARIABLES [filename] RESTORE MACROS [filename] or RESTORE VARIABLES [filename] MACROS Specifies that macros are to be stored/restored. VARIABLES Specifies that variables are to be stored/restored. (These keywords can be abbreviated as MAC or VAR) filename The file where the macros or variables are to be stored The :STORE command saves the currently defined macros or variables to the specified file. A new binary file is created to hold either the macros or variables. If "filename" already exists, an error will occur. The :RESTORE command is used to restore saved macros or variables. Any currently defined macros or variables are automatically lost, and replaced entirely by the contents of the restored file. Note: The limits (ENV MACROS or ENV VARS and ENV VARS_LOC) which were in effect when the file was STOREd will be re-established when the file is RESTOREd. EXAMPLE: store macros savemac /* save all currently defined macros macd @ /* delete all macros restore macros savemac /* restore saved macros Dump Data Compression The new version of DAT supports compressed dumps. When the :GETDUMP command is used to read in a dump tape, a single dump file xxxxxMEM is created on disc, left in its original compressed format that was originally stored on tape. This results in a substantial disc space savings (of approximately 35%-45% of the dump size).
NOTE Previous versions of DAT created multiple files for each dump. This version creates only sone file.
New Datstats File DAT now collects dump access statistics and can append stats records to a file called DATSTATS. DAT attempts to create/append to the DATSTATS file in the PUB group. The file has variable sized, human readable ASCII records. A new ENV variable enables/disables creating/appending of the stats record(s) to the DATSTATS file: ENV POST_STATS_FILE TRUE The following example shows the contents of a typical DATSTATS file: ********** STATS_VERSION_ID: A.00.00 DATE_TIME: TUE, SEP 13, 1988, 2:57 PM USER_ID: FRED,CM.CMDEBUG DUMP_NAME: DUMPC.DUMP.CMDEBUG OBJ_CLASS: 0, 1, 2, 3, 8, 9, 11, 15, 16, 17, 38, 48, 75, 78, 89, 250, 327 ********** STATS_VERSION_ID: A.00.00 DATE_TIME: TUE, SEP 13, 1988, 6:29 PM USER_ID: PAT.CMDEBUG DUMP_NAME: D7058.DUMP.CMDEBUG DUMP_COMPRESSION: 31 OBJ_CLASS: 0, 1, 2, 3, 6, 8, 11, 12, 15, 16, 21, 26, 27, 28, 29, OBJ_CLASS: 31, 33, 35, 37, 42, 43, 44, 45, 48, 49, 50, 51, 52, 58, OBJ_CLASS: 61, 63, 64, 65, 70, 72, 77, 87, 89, 90, 99, 104, 105, OBJ_CLASS: 109, 250, 413 Object Class Monitoring The OBJ_CLASS is a list of object classes that were accessed by the user during dump analysis. This information is used to provide information on which objects and how many times they were accessed during the analysis. The list of object class numbers can be posted to the new DATSTATS file (see above). Should the user wish to enable or disable monitoring of object class stats, a new ENV variable was created. This ENV variables syntax looks like: ENV GET_VSOBJ_STATS TRUE /* enable statistics New DAT Functions DAT supports a new dynamic procedure/function calls: NMCALL Dynamically calls a specified procedure passing up to four parameters. (Privileged function) DAT supports a new HASH function: HASH Hashes a virtual address to return the real offset which can be added to TR1 to get the hash table entry. DAT supports a new function for MAP command: MAPINDEX Returns the MAP index number of a filename, which was previously opened by the MAP command. DAT supports a new XL command: XL Utilizes symbol information in a local library/program file. The Indirection Operator The indirection operator (square brackets) has been enhanced to support a new (optional) prefix notation for virtual, real, and secondary addresses. It is now also possible to extract 1 byte, 2 bytes, 4 bytes, or 8 bytes at a specified address. Default Alignment / Return Type [ [prefix] [VIRT] virtaddr ] 4 byte (S32) 4 bytes [ [prefix] REAL realaddr ] 4 byte (S32) 4 bytes [ [prefix] SEC ldev.offset ] 4 byte (S32) 4 bytes where [prefix] can be any one of the following: BYTE byte aligned (U16) 1 byte U16 2 byte aligned (U16) 2 bytes S16 2 byte aligned (S16) 2 bytes LPTR 4 byte aligned (LPTR) 8 bytes Miscellaneous Enhancements The VARL command now displays variables sorted alphabetically. The LOCL commands now displays local variables along with their macro locality. The CM TR (stack trace command) supports control-Y. The DPTREE command supports control-Y. USE CLOSE ALL or USE CLOSE @ will close all currently opened USE files. The MAP command now supports an optional virtual byte offset to be specified: MAP myfile OFF c00003c0 1 MYFILE.GRP.ACCT 1000.c00003c0 Bytes = 2340


MPE/iX Communicators