Trailing-Edge
-
PDP-10 Archives
-
decnet_mcb_cusps_703a
-
10,7/dcnmcb/ngnmac.mac
There are 7 other files named ngnmac.mac in the archive. Click here to see a list.
; NGNMAC - NETGEN Common Universal File
; ======
UNIVERSAL NGNMAC
SEARCH GLXMAC ; General GLXLIB definitions
SEARCH ORNMAC ; Command block definitions
SEARCH MACSYM ; General macro defs
TOPS20< SEARCH MONSYM>
;
;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
; OR COPIED IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE.
;
;COPYRIGHT (c) DIGITAL EQUIPMENT CORPORATION 1980,1981,1982,1985,1986.
;ALL RIGHTS RESERVED.
;
;
;
; Set up NETGEN
;
DEFINE INIGEN(MODNAM,PFX),<
SALL ; Make nice clean listings
.DIRECTIVE FLBLST ; List only 1st binary word in multi
; word text strings
SEARCH GLXMAC ; General GLXLIB definitions
SEARCH ORNMAC ; Command block definitions
SEARCH MACSYM ; General macro defs
TOPS20< SEARCH MONSYM>
IFNB <PFX>,<
DEFINE VOUTX($S2,$S3,$S4),<
IFE $S3,<TITLE MODNAM $S2'('$S4')>
IFN $S3,<TITLE MODNAM $S2'.'$S3'('$S4')>>
IF1,<VOUTX(\NGNVER,\NGNMIN,\NGNEDT)>>
;
; PRTVER (MAJ,MIN,EDT) - Print out a version number in listing
;
DEFINE PRTVER (MAJ,MIN,EDT,DOT<.>), <
IF1 <
PRINTX MODNAM - Assembled using GLXMAC version: 'MAJ'DOT'MIN('EDT)>>
; PRTVER (\GLXMAJ,\GLXMIN,\GLXEDT)
PROLOGUE (MODNAM)
>
;
; Initialize GLXLIB assembly options
;
; .REQUIRE OPRPAR ; Where all the parser routines live
;
; Internal macros
;
; GLXMAC suplements
;
OPDEF SETT [SETO]
;
OPDEF SETF [SETZ]
;
OPDEF SETTM [SETOM]
;
OPDEF SETFM [SETZM]
;
DEFINE $DEFFAIL (TXT) <
$TEXT ,<?TXT>
$RETF>
;
DEFINE $DEFWARN (TXT) <
$TEXT ,<%TXT>
$RETT>
;
DEFINE $SYNFAIL (TXT) <
MOVEI S1,0
MOVEI S2,[ASCIZ\TXT\]
$RETF>
;
DEFINE $SEMFAIL (TXT) <
$TEXT ,<?TXT>
$RETT>
;
DEFINE $SEMWARN (TXT) <
$TEXT ,<%TXT>
$RETT>
;
; STRUCTURES:
;
; Parse block
;
XP PRSFLG, 0
DEFSTR (PRSENT, 0, 5, 1) ; Entity block flag
DEFSTR (PRSQUA, 0, 7, 1) ; Qualifier block flag
DEFSTR (PRSPRV, 0, 8, 1) ; Privledge parameter flag
DEFSTR (PRSTYP, 0, 12, 4) ; Node type applicability
DEFSTR (PRSMIN, 1, 17, 18) ; Low limit for number or string length
DEFSTR (PRSMAX, 1, 35, 18) ; Hi limit for number or string length
;
; Entity/Qualifier block
;
; DEFSTR (PRSENT, 0, 5, 1) ; Entity block flag
; DEFSTR (PRSPRV, 0, 8, 1) ; Privledge parameter flag
; DEFSTR (PRSTYP, 0, 12, 4) ; Node type applicability
DEFSTR (ENTNUM, 0, 17, 4) ; Entity number
DEFSTR (ENTADR, 0, 35, 18) ; Entity address
; DEFSTR (PRSMIN, 1, 17, 18) ; Low limit for number or string length
; DEFSTR (PRSMAX, 1, 35, 18) ; Hi limit for number or string length
XP ENTDSP, 2 ; Optional display routine address
; *OR*
DEFSTR (ENTTXT, ENTDSP, 35, 18) ; Text for entity display
XP ENTDEF, 3 ; JRST to store routine for entity
XP ENTKNO, 4 ; JRST to set KNOWN for entity
XP ENTLIS, 5 ; JRST to list routine for entity
XP ENTSIZ, 6 ; (number of entries for $BUILD)
;
; Entity/Qualifier list extension
;
XP EMAX, 6 ; Address of maximum number of entries
XP ECUR, 7 ; Address of current number of entries
XP EPTR,10 ; Identifier list address offset
DEFSTR (EADR, EPTR, 35, 23) ; Identifier list address
XP EINC,11 ; Secondary index increment
DEFSTR (EPRM,12, 35, 18) ; Address of associated parameter list.
XP LSTSIZ,13 ; (number of entries for $BUILD)
;
; Parameter block
;
; DEFSTR (PRSPRV, 0, 8, 1) ; Privledge parameter flag
; DEFSTR (PRSTYP, 0, 12, 4) ; Node type applicability
XP PRMPTR, 0 ; Offset to pointer for data item
DEFSTR (PRMADR, PRMPTR, 35, 23)
; DEFSTR (PRSMIN, 1, 17, 18) ; Low limit for number or string length
; DEFSTR (PRSMAX, 1, 35, 18) ; Hi limit for number or string length
XP PRMDSP, 2 ; Optional display routine address
; *OR*
DEFSTR (PRMTXT, PRMDSP, 17, 18) ; Text for parameter display
DEFSTR (PRMINI, 3, 35, 18) ; Initial value
DEFSTR (PRMDFL, 3, 17, 18) ; Address of default indicator
XP PRMDEF, 4 ; JRST to routine for DEFINE
XP PRMPUR, 5 ; JRST to routine for PURGE
XP PRMSTR, 6 ; JRST to routine to store value
XP PRMSIZ, 7 ; (number of entries for $BUILD)
;
; Parse block extensions
;
XP PAR.SM, 4 ; Semantic processing routine
XP PAR.PV, 5 ; Parse parameter vector
XP PARSIZ, 6 ; (number of entries for $BUILD)
;
DEFINE PVLIST (ENT<0>,PRM<0>,QUA<0>),<[EXP ENT,PRM,QUA]>
;
; The use of the following ACs can be phased in
;
I1==13 ; Parameter table index registers
I2==14 ; not to conflict with GLXLIB ACs.
LP==P4 ; List pointer
C1==T1 ; For extended instructions
C2==C1+1 ; (string manipulation)
C3==C2+1 ; six (6) ACs
C4==C3+1
C5==C4+1
C6==C5+1
DEFINE $SAVEC,<$CALL .SAVE6##>
;
; Local variables
;
; Define the fields of the version number
VI%WHO==7B2 ;WHO EDITTED LAST
VI%MAJ==777B11 ;MAJOR VERSION NUMBER
VI%MIN==77B17 ;MINOR VERSION NUMBER
VI%EDT==777777B35 ;EDIT NUMBER
; GLXMAJ==:<GLXVRS&077700000000>_-^D24 ; Get major version number
; GLXMIN==:<GLXVRS&000077000000>_-^D18 ; Get minor version number
; GLXEDT==:<GLXVRS&000000777777> ; Get edit number
;
; FLAGS:
;
F.DEV==1B1 ;SENT A DEV MACRO TO CETAB
F.ALPH==1B2 ;ALPHA CHAR SEEN IN NODE NAME
;
; Keyword values
;
XP .DMY, 0 ; Dummy keyword
XP .EXC, 1 ; EXCLUDE
XP .EXI, 2 ; EXIT
XP .FIN, 3 ; FINISHED
XP .HLP, 4 ; HELP
XP .INC, 5 ; INCLUDE
XP .INF, 6 ; INFORMATION
XP .NOD, 7 ; NODE
XP .PUS, 10 ; PUSH
XP .RES, 11 ; RESTORE
XP .SAV, 12 ; SAVE
XP .TAK, 13 ; TAKE
XP .LOG, 14 ; Log input
XP .STR, 15 ; Start dialog
XP .DEF, 16 ; DEFINE
XP .PUR, 17 ; PURGE
XP .LIS, 20 ; LIST
XP .PRV, 21 ; WHEEL
XP TOPMAX, 22 ; (number of entries for $BUILD)
;
;for general use
;
XP NAY, 0 ; NO value
XP YEA, 1 ; YES value
;
;INCLUDE command
;
XP BD.12, 7 ; 1200 baud
XP BD.18, 10 ; 1800 baud
XP BD.24, 12 ; 2400 baud
XP BD.36, 13 ; 3600 baud
XP BD.48, 14 ; 4800 baud
XP BD.72, 15 ; 7200 baud
XP BD.96, 16 ; 9600 baud
XP BD.192, 17 ; 19200 baud
XP BD.MAX, 20 ; (number of entries for $BUILD)
;
; Devices
;
XP DTE, 0 ; DTE20
XP DMC, 1 ; DMC11
XP DMR, 2 ; DMR11
XP KDP, 3 ; KDP
XP CDR, 4 ; CDR
XP LPT, 5 ; LPT
XP DEVMAX, 6 ; (number of entries for $BUILD)
;
;INFORMATION Command
;
XP CDR.I, 4 ; Information about Card-Reader
XP LPT.I, 5 ; " " Line-Printer
XP NOD.I, 6 ; " " Node
XP NTP.I, 7 ; " " Node-type
XP MAX.I, 10 ; (number of entries for $BUILD)
TOPS10 <
;DEFINE BREAK MASKS
BRINI. ;INITIALIZE BREAK MASK FOR STANDARD FIELD
BRKCH. (0,37) ;ALL CONTROL CHARACTERS
BRKCH. (40,54) ;SPACE THROUGH COMMA
BRKCH. (56,57) ;DOT AND SLASH
BRKCH. (72,77) ;COLON THROUGH QUESTION MARK
BRKCH. (100) ;ATSIGN
BRKCH. (133,140) ;OPEN BRACKET THROUGH ACCENT GRAVE
BRKCH. (173,177) ;CLOSE BRACKET THROUGH TILDE
FLDB0.==W0. ;STANDARD FIELD BREAK MASK
FLDB1.==W1.
FLDB2.==W2.
FLDB3.==W3.
> ; End of TOPS10
END