.TITLE DATA GLOBAL DATA FOR DOCUMENTATION EXTRACTOR .IDENT /01/ ; ; THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS ONLY. DIGITAL EQUIPMENT ; CORPORATION USER'S SOCIETY, DIGITAL EQUIPMENT CORPORATION, ROCKWELL ; INTERNATIONAL AND THE AUTHOR DISCLAIM ALL WARRANTIES ON THE PROGRAM, ; INCLUDING WITHOUT LIMITATION, ALL IMPLIED WARRANTIES OF MERCHANTABLITY ; AND FITNESS. ; ; FULL PERMISSION AND CONSENT IS HEREBY GIVEN TO DECUS AND TO THE DECUS ; SPECIAL INTEREST GROUPS TO REPRODUCE, DISTRIBUTE, AND PUBLISH AND PER- ; MIT OTHERS TO REPRODUCE IN WHOLE OR IN PART, IN ANY FORM AND WITHOUT ; RESTRICTION, THIS PROGRAM AND ANY INFORMATION RELATING TO IT. ; ; ; AUTHOR: ; ; UNKNOWN ; ; ; MODIFIED BY: ; ; ; MACRO DEFINITIONS ; .MCALL CSI$ ;DEFINE COMMAND STRING INTERPRETER OFFSETS .MCALL CSI$ND ;END OF CSI SWITCH TABLE .MCALL CSI$SW ;CSI SWITCH TABLE ENTRY .MCALL FDBDF$ ;DEFINE FILE DESCRIPTOR BLOCK .MCALL FSRSZ$ ;DEFINE FILE STORAGE .MCALL GCMLB$ ;DEFINE COMMAND LINE CONTROL BLOCK .MCALL NMBLK$ ;DEFINE DEFAULT NAME BLOCK .MACRO LEN,ADDR,LENGTH ;RECORD LENGTH TABLE MACRO .WORD ADDR ;RECORD ADDRESS .WORD LENGTH ;RECORD LENGTH (0 = VARIABLE) .ENDM ; ; GLOBAL SYMBOLS ; .TRUE. == -1 ;TRUE = ALL BITS SET .FALS. == 0 ;FALSE = NO BITS SET ; ; LOGICAL UNIT NUMBERS ; OUTLUN == 1 ;OUTPUT FILE LUN INLUN == 2 ;INPUT FILE(S) LUN TOCLUN == 3 ;TABLE OF CONTENTS FILE LUN DOCLUN == 4 ;DOCUMENTATION FILE LUN TILUN == 5 ;COMMAND LINE (TERMINAL) LUN CRFLUN == 6 ;CROSS REFERENCE FILE LUN ; ; ASCII CHARACTERS ; CR.AST == 52 ;ASTERISK CR.AT == 100 ;COMMERCIAL AT CR.DLR == 44 ;DOLLAR SIGN CR.EQU == 75 ;EQUAL SIGN CR.FF == 14 ;FORM FEED CR.MIN == 55 ;MINUS CR.PER == 56 ;PERIOD CR.PLU == 53 ;PLUS CR.SLA == 57 ;SLASH CR.SPA == 40 ;SPACE CR.TAB == 11 ;TAB ; ; SWITCHES ; SPMSK == 1 ;OUTPUT SWITCH: SPOOL TCMSK == 2 ; TABLE OF CONTENTS SBMSK == 4 ; SUBROUTINES ONLY CMMSK == 10 ; COMMENTARY ONLY INMSK == 20 ; INDEX CRMSK == 40 ; CROSS REFERENCE LIMSK == 100 ; LIST DOCUMENTATION OUTDEF == TCMSK!INMSK!CRMSK!SPMSK!LIMSK ;DEFAULTS Z8MSK == 1 ;INPUT SWITCH: Z80 SOURCE CODE PDMSK == 2 ; PDP SOURCE CODE INDEF == Z8MSK!PDMSK!CMMSK ;DEFAULTS ; ; CROSS REFERENCE FILE RECORD OFFSETS ; XR.NAM == 0 ;ROUTINE/SUBROUTINE NAME XR.REF == 4 ;REFERENCE NAME (FORMAT 0) XR.SEC == 4 ;SECTION NUMBER (FORMAT 1) XR.PAG == 6 ;PAGE NUMBER (FORMAT 1) XR.FOR == 13 ;FORMAT NUMBER XS.NAM == 0 ;FILENAME XS.TYP == 6 ;FILE TYPE (EXTENT) XS.VER == 10 ;FILE VERSION NUMBER XS.UIC == 12 ;FILE U.I.C. XS.DEV == 20 ;FILE DEVICE NAME XS.UNT == 22 ;FILE DEVICE UNIT NUMBER XS.FL1 == 23 ;FIRST FLAG BYTE XS.CVR == 24 ;CREF FILE VERSION NUMBER XS.CDV == 26 ;CREF FILE DEVICE NAME XS.CUN == 30 ;CREF FILE DEVICE UNIT NUMBER XS.FL2 == 31 ;SECOND FLAG BYTE ; ; MISC SYMBOLS ; LENGTH == 54. ;LENGTH OF TEXT PORTION OF TITLE LINE MAXLIN == 56. ;MAXIMUM NUMBER OF LINES PER PAGE RECLN == 132. ;MAXIMUM RECORD LENGTH ; ; GLOBAL DATA ; ; COMMAND LINE CONTROL BLOCK ; CMDLCB::GCMLB$ 4,DOC,,TILUN ;COMMAND LINE CONTROL BLOCK CSI$ ;DEFINE CSI OFFSETS .EVEN ; ; COMMAND STRING INTERPRETER CONTROL BLOCK ; CSIBLK::.BLKB C.SIZE ;CSI CONTROL BLOCK ; ; SWITCH TABLES ; OUTSWT:: ;OUTPUT FILE SWITCH TABLE CSI$SW TC,TCMSK,OUTFLG,,NEG ;TABLE OF CONTENTS CSI$SW SB,SBMSK!CMMSK,OUTFLG,,NEG ;SUBROUTINES CALLED ONLY CSI$SW CM,CMMSK,OUTFLG,,NEG ;COMMENTARY ONLY CSI$SW IN,INMSK,OUTFLG,,NEG ;INDEX CSI$SW CR,CRMSK,OUTFLG,,NEG ;CROSS REFERENCE CSI$SW SP,SPMSK,OUTFLG,,NEG ;SPOOL CSI$SW LI,LIMSK,OUTFLG,,NEG ;LIST DOCUMENTATION CSI$ND INSWT:: ;INPUT FILE SWITCH TABLE CSI$SW Z8,Z8MSK,INFLG ;Z80 ASSEMBLER SOURCE CODE CSI$SW PD,Z8MSK!PDMSK,INFLG ;PDP (MACRO-11) SOURCE CODE CSI$SW FT,Z8MSK,INFLG,CLEAR ;FORTRAN SOURCE CODE CSI$SW SB,SBMSK!CMMSK,INFLG,,NEG ;SUBROUTINES CALLED ONLY CSI$SW CM,CMMSK,INFLG,,NEG ;COMMENTARY ONLY CSI$ND OUTFLG::.WORD 0 ;OUTPUT FILE FLAGS INFLG:: .WORD 0 ;INPUT FILE FLAGS ; ; FILE DESCRIPTOR BLOCKS ; FSRSZ$ 6 ;FILE STORAGE FOR 6 FILES OUTFDB::FDBDF$ ;OUTPUT FILE DESCRIPTOR BLOCK INFDB:: FDBDF$ ;INPUT FILE(S) DESCRIPTOR BLOCK TOCFDB::FDBDF$ ;TABLE OF CONTENTS FILE DESC. BLOCK DOCFDB::FDBDF$ ;DOCUMENTATION FILE DESC. BLOCK CRFFDB::FDBDF$ ;CROSS REFERENCE FILE DESC. BLOCK ; ; DEFAULT NAME BLOCKS ; OUTNB:: NMBLK$ DOCUMENT,DOC,,SY,0 ;OUTPUT FILE DEFAULT NAME BLOCK Z80NB:: NMBLK$ ,ASM,,SY,0 ;INPUT FILE NAME BLOCK: Z80 PDPNB:: NMBLK$ ,MAC,,SY,0 ;INPUT FILE NAME BLOCK: PDP FTNNB:: NMBLK$ ,FTN,,SY,0 ;INPUT FILE NAME BLOCK: FORTRAN TOCNB:: NMBLK$ TABLE,TMP,,SY,0 ;TABLE OF CONTENTS FILE NAME BLOCK DOCNB:: NMBLK$ DOCUMENT,TMP,,SY,0 ;DOCUMENTATION FILE NAME BLOCK CRFNB:: NMBLK$ ,CRF,,SY,0 ;CROSS REFERENCE FILE NAME BLOCK ; ; OUTPUT FILE DATASET DESCRIPTOR ; OUTDS:: .WORD 0,0,0,0,0,0 ; ; GENERAL INPUT/OUTPUT RECORD BUFFER ; .NLIST BEX RECBUF::.BLKB RECLN ; ; BLANK RECORD ; BLNKLN::.ASCII / / ; ; FORM FEED RECORD ; FFREC:: .BYTE CR.FF ; ; HEADER RECORD ; HEAD:: .ASCII / AUTOMATIC DOCUMENTATION EXTRACTOR/ .REPT RECLN-<.-HEAD> ;PAD RECORD TO FULL SIZE .ASCII / / .ENDR HDRLN = .-HEAD ;LENGTH OF HEADER RECORD .EVEN ; ; TABLE OF CONTENTS TITLE RECORD ; TABCON:: .ASCII / T A B L E O F / .ASCII / C O N T E N T S / .REPT RECLN-<.-TABCON> ;PAD RECORD TO FULL SIZE .ASCII / / .ENDR TOCLN = .-TABCON ;LENGTH OF T-O-C TITLE RECORD .EVEN ; ; GENERAL TITLE RECORD ; TITLE:: .BLKB RECLN .REPT RECLN-<.-TITLE> ;PAD RECORD TO FULL SIZE .ASCII / / .ENDR TTLLN = .-TITLE ;TITLE RECORD LENGTH .EVEN ; ; DEFAULT TITLE RECORD ; DEFAUL:: .ASCII / DOCUMENTATION EXTRACTED FROM / .REPT RECLN-<.-DEFAUL> ;PAD RECORD TO FULL SIZE .ASCII / / .ENDR DFTLN = .-DEFAUL ;LENGTH OF DEFAULT TITLE RECORD .EVEN .LIST BEX ; ; RECORD LENGTH TABLE ; LENTBL:: LEN BLNKLN,1. ;BLANK LINE, 1 BYTE LEN FFREC,1. ;FORM FEED, 1 BYTE LEN HEAD,HDRLN ;HEADER, HEADER LENGTH LEN TABCON,TOCLN ;TABLE OF CONTENTS TITLE, TOC LENGTH LEN TITLE,TTLLN ;GENERAL TITLE, GENERAL TITLE LENGTH LEN DEFAUL,DFTLN ;DEFAULT TITLE, DEF. TITLE LENGTH LEN RECBUF,0 ;GENERAL RECORD, VARIABLE LENGTH ; ; CROSS REFERENCE FILE DATA ; CRFHED:: ;CROSS REFERENCE FILE HEADER .RAD50 /DOC/ ; TASK NAME .RAD50 /EXT/ .WORD 2 ; TASK I.D. CRFTIM::.BLKW 5 ; CREATION TIME .WORD 0 ; FLAGS CRFHLN == .-CRFHED ; LENGTH CRFREC:: ;CROSS REFERENCE FILE RECORD .BLKW 4 .WORD 0 ; (UNUSED) .BYTE 0,0 ; FORMAT NO. & FLAGS CRFRLN == .-CRFREC ; LENGTH CRFBLK::.BLKW 13. ;CROSS REFERENCE FILE SEND BLOCK ; ; COUNTERS ; TOCLCT::.WORD 0 ;TABLE OF CONTENTS LINE COUNTER DOCLCT::.WORD 0 ;DOCUMENTATION LINE COUNTER PAGECT::.WORD 0 ;PAGE COUNTER SECTCT::.WORD 0 ;SECTION COUNTER ; ; FLAGS ; FIRST:: .BYTE 0 ;FIRST FILE FLAG FSTCMD::.BYTE 0 ;FIRST COMMAND LINE FLAG PRINT:: .BYTE 0 ;PRINT DOCUMENTATION FLAG SECFLG::.BYTE 0 ;SECTION FLAG ENDRUN::.BYTE 0 ;END RUN .EVEN ; ; COMMAND TYPE LIST ; COMAND:: ;COMMAND TYPES .BYTE CR.PLU ; START DOCUMENTATION EXTRACTION .BYTE CR.MIN ; STOP DOC. EXTRACTION & FORM FEED .BYTE CR.AT ; TITLE FOR GROUP OF ROUTINES .BYTE CR.DLR ; SUBROUTINE CALLED .BYTE CR.AST ; TITLE OF ONE ROUTINE .BYTE CR.SLA ; FORM FEED .BYTE CR.EQU ; STOP DOCUMENTATION EXTRACTION MAXCMD == .-COMAND ; REGULAR DOCUMENTATION .EVEN ; ; COMMAND PROCESSING ROUTINE ADDRESS TABLE ; ADRTBL:: ;ROUTINE ADDRESS TABLE .WORD PLUS ; ;+ (C+) ROUTINE .WORD MINUS ; ;- (C-) ROUTINE .WORD AT ; ;@ (C@) ROUTINE .WORD DOLLAR ; ;$ (C$) ROUTINE .WORD ASTRSK ; ;* (C*) ROUTINE .WORD SLASH ; ;/ (C/) ROUTINE .WORD EQUAL ; ;= (C=) ROUTINE .WORD BLANK ; ; (C ) ROUTINE ; ; MISC DATA ; RLNGTH::.WORD RECLN ;VARIABLE RECORD LENGTH TIME:: .BLKW 8. ;TIME BUFFER .NLIST BEX COMENT::.ASCII /;/ ;COMMENT DELIMITER FILNAM::.ASCII / / ;FILENAME STORAGE PAGENO::.ASCII / PAGE - / ;PAGE NUMBER FORMAT PAGELN == .-PAGENO ; LENGTH ASCIIS::.ASCII / / ;ASCII SECTION NUMBER ASCIIP::.ASCII / / ;ASCII PAGE NUMBER SUBRTN::.ASCII / / ;SUBROUTINE NAME ROUTIN::.ASCII / / ;SUBROUTINE NAME R50TBL::.ASCIZ / ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.$/ ;RADIX-50 CHARACTER TABLE .LIST BEX .END