; ; DEFINE_SYMB.MAR ; ; Procedure to define global symbols ; .TITLE DEFINE_SYMB $SSDEF ; System status values ;+ ; Declare external routines ;- .EXTRN LIB$SET_SYMBOL .SBTTL RO_DATA - Read Only DATA .PSECT RO_DATA RD,NOWRT,NOEXE SYMBOLS:.ASCID "SET DEFAULT" ; Symbol Value .ASCID "SD" ; Symbol Name .ASCID "$AUTHORIZE" .ASCID "UAF" .ASCID "$SYSMAN" .ASCID "SYSMAN" .ASCID "SHOW QUEUE/FULL/ALL" .ASCID "SQFA" .ASCID "SHOW USERS/NODE" .ASCID "SUN" .ASCID "SHOW PROCESS/ID=" .ASCID "SPID" .ASCID "SHOW DEVICE D" .ASCID "SDD" .ASCID "SHOW DEFAULT" .ASCID "SHD" .ASCID "MONITOR SYSTEM/ALL" .ASCID "MSA" .ASCID "MONITOR PROCESS/TOPCPU" .ASCID "TOPC" .ASCID "SHOW MEMORY/POOL/FULL" .ASCID "POOL" .ASCID "SHOW MEMORY/FILE/FULL" .ASCID "PAGE" .ASCID "REPLY/ALL/BELL" .ASCID "MSG" .ASCID "REPLY/STATUS" .ASCID "STATUS" .LONG 0 ; End of list GLOBAL_SYM: .LONG LIB$K_CLI_GLOBAL_SYM ; Select Global symbols tbl .SBTTL CODE - Start of program .PSECT CODE RD,NOWRT,EXE .ENTRY DEFINE_SYMB ^M<> MOVAQ SYMBOLS,R3 ; Start w/ first symbol 10$: TSTL (R3) ; Check for end of table BEQL 20$ ; If 0, done PUSHAL GLOBAL_SYM ; Make it a GLOBAL symbol PUSHL R3 ; Push address of symbol name ; Compute address of symbol value ADDW (R3),R3 ; + length of symbol name ADDL #8,R3 ; + 8 more bytes to skip descriptor PUSHL R3 ; Push address of symbol value CALLS #3,G^LIB$SET_SYMBOL ; Define it ADDW (R3),R3 ; Move to next symbol name ADDL #8,R3 ; + 8 bytes to skip descriptor BRB 10$ ; do it again 20$: RET .END DEFINE_SYMB