.MACRO .UDESC - LENGTH = <^x100> - TYPE = <^x01>, - CLASS = <^x0e>, .long !!LENGTH .long .+4 .blkb LENGTH .ENDM .UDESC .MACRO BNEQW DST,?LCL BEQL LCL BRW DST LCL: .ENDM BNEQW .MACRO BEQLW DST,?LCL BNEQ LCL BRW DST LCL: .ENDM BEQLW .MACRO BLBCW SRC,DST,?LCL BLBS SRC,LCL BRW DST LCL: .ENDM BLBCW .MACRO BLBSW SRC,DST,?LCL BLBC SRC,LCL BRW DST LCL: .ENDM BLBSW .MACRO PRINTF msg,- V1,V2,V3,V4,V5,V6,V7,V8,V9,V10,- ?L_$$L1 .save_psect .psect _DBG_DATA .iif ndf,DBG_Q_FAOBUF, DBG_Q_FAOBUF: .udesc <^x200> L_$$L1: .ascid ~msg~ .restore_psect movq r0,-(SP) DBG_K_ACNT = 3 .irp faoarg,<,,,,,,,,,> .if nb, pushl faoarg DBG_K_ACNT = DBG_K_ACNT + 1 .endc .endr pushaq DBG_Q_FAOBUF pushaw DBG_Q_FAOBUF movw #^x200,DBG_Q_FAOBUF pushaq L_$$L1 calls #DBG_K_ACNT,@#SYS$FAO pushaq DBG_Q_FAOBUF calls #1,G^LIB$PUT_OUTPUT movq (SP)+,r0 .ENDM PRINTF .MACRO _PRTDEF,$GBL $DEFINI PRT,$GBL $EQU PRT_V_SYSTEM 0 $EQU PRT_V_OWNER 4 $EQU PRT_V_GROUP 8 $EQU PRT_V_WORLD 12 $EQU PRT_M_READ <15\1> $EQU PRT_M_WRITE <15\2> $EQU PRT_M_EXECUTE <15\4> $EQU PRT_M_DELETE <15\8> $EQU PRT_M_NONE 15 $EQU PRT_M_R PRT_M_READ $EQU PRT_M_W PRT_M_WRITE $EQU PRT_M_E PRT_M_EXECUTE $EQU PRT_M_D PRT_M_DELETE $EQU PRT_M_N PRT_M_NONE $EQU PRT_M_RW $EQU PRT_M_RE $EQU PRT_M_RD $EQU PRT_M_WE $EQU PRT_M_WD $EQU PRT_M_ED $EQU PRT_M_RWE $EQU PRT_M_RWD $EQU PRT_M_RED $EQU PRT_M_WED $EQU PRT_M_RWED $DEFEND PRT,$GBL,DEF .ENDM _PRTDEF .MACRO _MSGBITDEF,$GBL $DEFINI MSGBIT,$GBL $EQU MSGBIT_V_TEXT 0 $EQU MSGBIT_V_IDENT 1 $EQU MSGBIT_V_SEVERITY 2 $EQU MSGBIT_V_FACILITY 3 $EQU MSGBIT_M_TEXT 1 $EQU MSGBIT_M_IDENT 2 $EQU MSGBIT_M_SEVERITY 4 $EQU MSGBIT_M_FACILITY 8 $DEFEND MSGBIT,$GBL,DEF .ENDM _MSGBITDEF .MACRO _NODEDEF CLASSES_DEFINED = 0 NODE_COUNT = 0 .MACRO DEFINE_COLLECTION NAME,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,- C11,C12,C13,C14,C15,C16,C17,C18,C19,- C20,C21,C22,C23,C24,C25,C26,C27,C28,- C29,C30,C31 .IIF NDF,COL_M_'NAME', COL_M_'NAME' = 0 .IRP IRPARG,<,,,,,,,,,- ,,,,,,,,- ,,,,,,,,- ,,,,,,> .IF NOT_BLANK, .IF DF,COL_M_'IRPARG' COL_M_'NAME' = COL_M_'NAME'!COL_M_'IRPARG' .IFF .IF DF,CLS_M_'IRPARG' COL_M_'NAME' = COL_M_'NAME'!CLS_M_'IRPARG' .IFF .ERROR 999 ; Undefined classname/collection name .ENDC .ENDC .ENDC .ENDR .ENDM DEFINE_COLLECTION .MACRO DEFINE_CLASS NAME .IF EQUAL CLASSES_DEFINED-32 .ERROR 999 ; Too many classes (max 32) .MEXIT .ENDC CLS_V_'NAME' = CLASSES_DEFINED CLS_M_'NAME' = 1@CLS_V_'NAME' COL_M_'NAME' = CLS_M_'NAME' CLASSES_DEFINED = CLASSES_DEFINED + 1 .ENDM DEFINE_CLASS .MACRO DEFINE_NODE NAME,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,- C11,C12,C13,C14,C15,C16,C17,C18,C19,- C20,C21,C22,C23,C24,C25,C26,C27,C28,- C29,C30,C31 CLASS_MASK = 0 .IRP IRPARG,<,,,,,,,,,- ,,,,,,,,- ,,,,,,,,- ,,,,,,> .IF NOT_BLANK, .IF DF,COL_M_'IRPARG' CLASS_MASK = CLASS_MASK!COL_M_'IRPARG' .IFF .ERROR 999 ; Undefined classname/collection name .ENDC .ENDC .ENDR .SAVE_PSECT .PSECT _NODE_NAMES NODE_T_'NAME': .long CLASS_MASK .ascid ~'NAME~ .restore_psect .save_psect .psect _NODE_LIST .iif ndf,NODE_GL_LIST, NODE_GL_LIST: .long NODE_T_'NAME' NODE_COUNT = NODE_COUNT + 1 .restore_psect .ENDM DEFINE_NODE .ENDM _NODEDEF .MACRO .ITM ITEM,OPTION,COLL,?L1 .word L1-. BITS = 0 .iif not_blank,