;XDEF.MAC;13 6-OCT-75 15:34:55 EDIT BY PLUMMER ;1.54 ;XDEF.MAC;11 18-SEP-75 18:37:49 EDIT BY PLUMMER ; PARC CHANGES ... UUO DEFINITION MACROS ;XDEF.MAC;6 29-JUL-75 11:44:33 EDIT BY PLUMMER ; CHANGE AUTOLOGOUT TIMES ;XDEF.MAC;5 21-MAR-75 13:28:18 EDIT BY PLUMMER ; TEMPORILY DEFEAT .DIRECTINE .NOBIN SO XDEF.REL GETS LOADED ;XDEF.MAC;4 14-MAR-75 23:10:28 EDIT BY PLUMMER ; ADD .DIRECTIVE .NOBIN ;XDEF.MAC;3 27-FEB-75 12:48:54 EDIT BY PLUMMER ; ALLOW ^T TYPEOUTS 0 SECONDS APART ;XDEF.MAC;2 2-JAN-75 12:22:28 EDIT BY PLUMMER ;1.53 ;XDEF.MAC;1 2-DEC-74 10:14:52 EDIT BY PLUMMER ; 1.52 ;XDEF.MAC;8 25-NOV-74 11:41:50 EDIT BY PLUMMER ; ADD SGTBLN FOR $SYSGT ;XDEF.MAC;6 26-JUL-74 13:44:06 EDIT BY PLUMMER ; DEFINE FDBUND ;XDEF.MAC;4 10-JUN-74 16:41:03 EDIT BY PLUMMER ; ^T PARAMETERS (PARC) ;XDEF.MAC;3 9-FEB-74 10:22:54 EDIT BY COMBS ; ADD DEF OF FDBUSW FOR SRI ;XDEF.MAC;2 24-JAN-74 11:04:03 EDIT BY PLUMMER ; 1.51 ; DOUBLE AUTOL2 AND AUTOL3 ; REMOVE XWD'S ; ADD PROGX BIT IN KWV1 ; ADD INTOFF, INTON, FDBEPH DEFINITIONS ; 1.50 ; DEFAULT FOR DST10X CONDITIONAL ; NETWORK STATISTICS FILE WINDOW ; 1.49 ; 1.46 ; PDP-10 TENEX EXECUTIVE SYMBOL DEFINITIONS ;GENERATES NO CODE, BUT DEFINES SYMBOLS AND MACROS AND OP CODES UNIVERSAL XDEF ; .DIRECTIVE .NOBIN .DIRECTIVE XSRCVN %XD %XD==%XD ;***** DEFAULT CONDITIONALS ******** IFNDEF DST10X, ;TURNOFF DISTRIBUTED CODE UNLESS ;REQUESTED BY A PARAMETER FILE ;**** THINGS THAT AFFECT THE LANGUAGE EFFECTED BY THIS CODE ***** CTRLC==3 ;SUPER-PANIC PSI CHARACTER ;AND "TERMINAL CODE" FOR SAME CTCODE==^D20 ;"TERMINAL CODE" FOR CHARACTER ASSIGNED TO PSI THAT ;PRINT RUNTIME (^T) HUCODE==^D30 ;"TERMINAL CODE" FOR DATAPHONE CARRIER OFF (HANGUP) BELL==7 ;CHARACTER TO RING WHEN ILLEGAL ^A OR ^W INPUT, ;OR WHEN RECOGNITION AMBIGUITY REQUIRES MORE INPUT CTRLE==5 ;CHARACTER THAT PREFIXES PRIVILEGED COMMANDS CTRLP==20 ;MINI EXEC INTERRUPT CHARACTER CTRLZ==32 ;EOF CHARACTER FOR "COPY" COMMAND WHEN TTY IS SOURCE CONTCH==176 ;STORED INTERNALLY FOR CONTINUATION CHARACTER (&). ;ONE BYTE, TRANSLATED BACK TO EOL-SPACE-& ON OUTPUT ;FOR ^R, ^A. THIS CHAR MUST NEVER TURN UP OTHERWISE; ;IS 176 THE BEST VALUE? ;ALSO MANY CHARACTERS ARE GIVEN SPECIAL FUNCTIONS BY THEIR ENTRIES ; IN THE CHARACTER TABLE (CHRTBL) IN RS.MAC. ;AUTOMATIC LOGOUT PARAMETERS: ;AUTOLOGOUT OCCURS IN TOP-LEVEL EXEC WHEN JOB IS NOT LOGGED IN AND: ; 1) EXEC RETURNS TO COMMAND INPUT AND AT LEAST AUTOLO1 SECONDS ; HAVE ELAPSED SINCE EXEC WAS STARTED, OR ; 2) AUTOL2 SECONDS HAVE ELAPSED SINCE STARTUP AND THERE HAS ; BEEN NO TELETYPE ACTIVITY FOR AUTOL3 SECONDS. AUTOL1==^D600 AUTOL2==^D120 AUTOL3==^D60 ;CONTROL T PARAMTERS CTTIM0==^D15 ;MAX. ^T INTERVAL THAT CAUSES FULL TYPEOUT CTTIM1==^D00 ;MIN. INTERVAL BETWEEN TYPEOUTS (CAN BE 0) ;****************** SYSTEM DEPENDENT THINGS ******************** ; ASCII CHARACTERS - IF ANY ARE CHANGED, MUST ALSO CHANGE "CHRTBL"! TAB==11 ;TAB (^I ON MODEL 33 TTY) LF==12 ;LINE FEED FORMF==14 ;FORM FEED CR==15 ;CARRIAGE RETURN EOL==37 ;CHARACTER FOR END OF LINE (CR-LF) ALTM==33 ;ALT MODE, ESC, ETC KEY ; FILE DESCRIPTOR BLOCK IN FILE DIRECTORY FDBCTL==1 ;CONTROL BITS WORD FDBTMP==1B0 ;TEMPORARY FILE CONTROL BIT FDBNEX==B2 ;FILE DOESN'T EXIST (NO EXTS) CONTROL BIT FDBDEL==1B3 ;FILE DELETED BIT IN CONTROL BITS WORD FDBNXF==B4 ;FILE DOESN'T EXIST (WRITE INCOMPLETE) CONTROL BIT FDBUND==1B9 ;FILE IS NOT DELETABLE (PERPETUAL, IMMORTAL,...!) FDBEPH==1B17 ;FILE IS AN EPHEMERON FDBPRT==4 ;PROTECTION WORD FDBBYV==11 ;# VERSIONS TO RETAIN, BYTE SIZE, # PAGES FDBSIZ==12 ;BYTE COUNT THAT WOULD ADDRESS EOF FDBCRV==13 ;VERSION CREATE DATE & TIME FDBWRT==14 ;DATE AND TIME OF LAST WRITE FDBRED==15 ;READ DATE & TIME FDBUSW==24 ;USER SETTABLE WORD ;WHERE DDT (UDDT.SAV) RESIDES DDTORG==770000 DDTSYM==DDTORG+1 ;LOCATION IN DDT THAT POINTS TO LOC WHERE ;SYMBOL TABLE POINTER IS STORED ($I-1) MAXJFN==155 ;FOR FILSTAT, RLJFNS, ETC ;*********** DEFINITIONS THAT ARE INTERNAL TO EXEC *********** ;MNEMONIC AC'S CBT=7 ;DESCRIPTIVE BITS FROM "CHRTBL" FOR LAST CHARACTER CHR=10 ;INPUT CHARACTER TRM=11 ;LAST INPUT FIELD TERMINATOR KWV=12 ;VALUE WORD RETURNED BY LAST KEYWORD TABLE LOOKUP KWV1=13 ;KWV SAVED AFTER FIRST KEYWORD IN COMMAND BFP=14 ;COMMAND BUFFER POINTER .BFP=15 ;DITTO SAVED AT BEGINNING OF LAST FIELD CNT=16 ;NUMBER OF CHARACTERS IN FIELD (REQUIRED BY ;EDITING STUFF) ;DEFINITIONS NEEDED TO APPEND ITEMS TO A LIST AND THEN EXTRACT ;THEM ALL FOR ASSEMBLY IN A SINGLE PLACE DEFINE APPEND(DEF,ITEM) < DEFINE DEF(XX,MORE) > > DEFINE EXPAND(DEF,OP) < DEFINE OPMAC(A,ITEM) ,>> DEF(OPMAC) PURGE OPMAC > ;UUO'S USED IN EXEC. MOST HAVE CALLING MACROS. ;NOTE: UUO DISPATCH TABLE AND DISPATCHER ARE AT BEGINNING OF XMAIN.MAC ; UUO ROUTINES ARE IN XSUBRS.MAC. DEFINE UUO(OP,DISP) < UUON==UUON+1 OPDEF OP [B8] IFB , IFNB , > APPEND(UUOS) ;INIT DISPATCH LIST UUON==0 ;INIT UUO NUMBERS UUO(UERR,%ERR) ;ERROR MESSAGE UUO(UTYPE,%TYPE) ;TYPE MESSAGE UUO(KEYWD,%KEYW) ;KEYWORD INPUT AND LOOKUP UUO(UNOI,%NOI) ;NOISE WORD INPUT/OUTPUT UUO(U$TYPE,%$TYPE) ;TYPE AND STORE MESSAGE UUO(ALLOW) ;CHECK LAST CHARACTER'S DESCRIPTIVE BITS UUO(UALTYP,%ALTYP) ;TYPE AND STORE MESSAGE IF ; AC "TRM" CONTAINS ALT MODE UUO(U$ERR,%$ERR) ;ERROR MESSAGE WITHOUT CR FIRST UUO(UETYPE,%ETYPE) ;TYPE MESSAGE AND INTERPRET % CODES UUO(GTB) ;CONVENIENT INTERFACE TO THE GETAB JSYS UUO(PRINT) ;PRINT ASCII CHARACTER FROM EFF ADDR UUO(UTRAP,%TRAP) ;ERROR PSI MESSAGE UUO(U.$ERR,%.$ERR) ;ERROR THAT DOESN'T CLEAR BUFFERS (^X) UUO(UINHEL,%INHEL) ;INPUT A FIELD AND GIVE HELP ON "?" UUO(SUBCOM,%SBCOM) ;INPUT AND DISPATCH ON SUBCOMMANDS ;MACROS TO CALL UUO'S AND SUBROUTINES DEFINE ERROR (TEXT) < UERR [ASCIZ @TEXT@] > DEFINE $ERROR (TEXT) < U$ERR [ASCIZ @TEXT@] > DEFINE .$ERROR (TEXT) < U.$ERR [ASCIZ @TEXT@] > DEFINE TYPE (TEXT) < UTYPE [ASCIZ @TEXT@] > DEFINE $TYPE (TEXT) < U$TYPE [ASCIZ @TEXT@] > DEFINE ETYPE (TEXT) < UETYPE [ASCIZ @TEXT@] > DEFINE NOISE (TEXT) < UNOI [ASCIZ @TEXT@] > DEFINE CONFIRM < CALL CONF > DEFINE ALTYPE (TEXT) < UALTYP [ASCIZ @TEXT@] > DEFINE TRAP (TEXT) < UTRAP [ASCIZ @TEXT@] > DEFINE INHELP (TEXT) < UINHEL [ASCIZ @TEXT@] > ; THE FOLLOWING SIMULATE UNIMPLEMENTED JSYS'S ;HYPOTHETICAL FUTURE JSYS TO STOP NON-INTERACTIVE JOB DEFINE BTCHER <> ;TURN OFF INTERRUPTS DEFINE INTOFF < MOVEI 1,400000 DIR> ;TURN ON INTERRUPTS DEFINE INTON< MOVEI 1,400000 EIR> ;COMMAND TABLE MACROS ;AN ENTRY ;ALSO USED FOR DEFAULT INFORMATION AFTER "KEYWD" MACRO DEFINE T(TEXT,BITS,ADDR) < IFB ,<..A=.'TEXT> IFNB ,<..A=ADDR> [BITS+0,,..A],,[ASCIZ @TEXT@] > ;HANDIER MACRO FOR USE WHERE "EOLOK" BIT IS TO BE SET DEFINE TE (TEXT,BITS,ADDR) < T ,EOLOK!BITS,ADDR> ;A "FAKE" ENTRY TO FORCE AN AMBIGUITY DEFINE X (TEXT) < T ,NOLOG+EOLOK+INVIS,CERR > ;BEGIN TABLE. ;FIRST WORD MUST BE NUMBER OF ENTRIES DEFINE TABLE < Z ;FILLED IN BY NEXT TEND ..T==. ;USED BY NEXT TEND > ;END TABLE DEFINE TEND < ..U==. RELOC ..T-1 ..U-..T ;FILL IN FIRST WORD OF TABLE RELOC ..U > ;AREA SIZES PDL==120 ;PUSHDOWN CBUFL==^D50 ;COMMAND BUFFER LENGTH. DETERMINES LENGTH OF COMMAND. CSBUFL==^D40 ;STRING BUFFER MINIMUM SIZE (ACTUAL DEPENDS ON ;PAGE BOUNDARY). ;BIG ENOUGH FOR USR NAME, PASSWD, ACCT #, AND THEN SOME JBUFL==17 ;JFN BUFFER LENGTH: ONE MORE THAN # JFNS IN A CMD. EDFILL==17 ;FILE NAME.EXT SAVED BY EDIT COMMAND ;(FIRST WORD IS POINTERS) NTTYMD==11 ;NUMBER OF TTY, ETC. MODE WORDS SGTBLN==^D40 ;SIZE OF THE $SYSGT HASH TABLE(S) ;BITS BITS BITS ;CHARACTER DESCRIPTION BITS. ;USED IN ENTRIES IN CHARACTER TABLE (CHRTBL) AND THUS THEY APPEAR ; IN AC "CBT" AND IN CALLS TO "ALLOW" UUO. ;BIT SET FOR --- ALPHAN==1 ;ALHPANUMERIC CHARACTERS AND "-" OCTDIG==2 ;OCTAL DIGITS 0 THRU 7 PUNBIT==4 ;PUNCTUATION = MOST OTHER PRINTING CHARACTERS TEOL==10 ;EOL AND SEMICOLON TSPC==20 ;SPACE AND TAB TALT==40 ;ALT MODE TCOM==100 ;COMMA TLPR==200 ;LEFT PAREN TRPR==400 ;RIGHT PAREN TCOL==1000 ;COLON (FOR DEVICE NAMES) TLAN==2000 ;LEFT ANGLE BRACKET TRAN==4000 ;RIGHT ANGLE BRACKET (>) ;BITS... ;BITS IN LEFT HALF OF VALUE WORD IN KEYWORD TABLES ;BITS DEFINED HERE ARE RETURNED IN LEFT HALF OF AC "KWV" BY THE LOOKUP ; UUO, "KEYWD". ;SOME OF THESE BITS ARE INTERPRETED BY %KEYW ITSELF, AND SOME ARE ; USED BY ITS CALLERS, AS FOLLOWS. ;THIS FIRST GROUP IS TESTED IN %KEYW, THE SERVICE ROUTINE FOR "KEYWD". ;BIT -- ;MEANING IF BIT ON -- COMOK==1 ;COMMA IS OK AS TERMINATOR FOR THIS WORD EOLOK==2 ;CARRIAGE RETURN OR SEMICOLON OK AS TERM FOR THIS WORD ; ALSO, "EOLOK" IS IMPLIED BY "ONEWD" LPROK==4 ;LEFT PAREN OK TO TERMINATE THIS WORD ;(USED WHERE A NOISE WORD CAN FOLLOW) NSPALT==10 ;DON'T TYPE SPACE AFTER A WORD TERMINATED WITH ALT MODE ;WHLUO, OPRUO, ERRUO REFER TO SPECIAL CAPABILITIES ENABLED: WHLUO==20 ;DON'T RECOGNIZE KEYWORD IF USER DOESN'T HAVE WHEEL PRIV OPRUO==40 ; " " " " " " " OPERATOR PRIVILEGE ERRUO==100 ; " " " " " " " CONFIDENTIAL INFORMATION ACCESS PRIV WOEPUO==200 ;DON'T RECOGNIZE KEYWORD IF USER HAS NEITHER WHEEL NOR ;OPER NOR CONF INF ACCESS SPECIAL CAP POSSIBLE ;(NEEDN'T BE ENABLED) ;NOTE: IF MORE THAN ONE OF THE PRIVILEGE BITS ARE ON, ;THE KEYWORD IS ACCEPTED IF USER HAS ANY OF THE PRIVS. LANOK==400 ;LEFT ANGLE BRACKET ACCEPTABLE AFTER THIS WORD INVIS==1000 ;DO NOT LIST THIS ENTRY'S KEYWORD WHEN "?" IS TYPED ;(TESTED IN %Z IN ETYPE) ;ALL BITS NOW IN USE -- UG !-- 8/28/70 ;BITS IN LH VALUE WORD IN KEYWORD TABLES... ;THE REST OF THE BITS ARE NOT TESTED BY %KEYW. ;THIS NEXT GROUP ARE USED IN THE MAIN COMMAND TABLES, AND ARE ; MOVED TO AC "KWV1" AFTER FIRST KEYWORD IS INPUT, AND ; STAY IN KWV1 THROUGHOUT COMMAND DECODING. ;SEVERAL ALSO USED IN SUBCOMMAND TABLES ;SUBROUTINE "CONF" LOOKS AT SEVERAL OF THESE. ONEWD==400000 ;ONE WORD COMMAND: CONFIRM BEFORE DISPATCH, ; "EOLOK" BIT IMPLIED NOCONF==200000 ;THIS COMMAND REQUIRES NO CONFIRMATION CONMAN==100000 ;CONFIRMATION IS MANDATORY FOR THIS COMMAND ALTCON==40000 ;ALT MODE MAY BE USED TO CONFIRM THIS COMMAND ;(EOL ECHOED) NOLOG==20000 ;THIS COMMAND LEGAL EVEN IF NOT LOGGED IN PROGX==10000 ;RUN A PROGRAM WHICH WILL APPEAR AS AN ; EXTENTION TO THE EXEC. THIS BIT IS NEVER ON IN ; COMMAND TABLE ENTRIES. IT IS TURNED ON BY THE EXEC ; WHEN IT DECIDES THAT A FILE NAME SHOULD LOOK LIKE ; AN EXEC COMMAND. ;ALSO B5 USED IN "CREATE" SUBCOMMAND TABLE EASUB==4000 ;THIS COMMAND EXAMINES, ALTERS, OR EXECUTES SUBSIDIARY ; FORK, AND IS THUS ILLEGAL IF A PROPRIETARY ; PROGRAM IS IN THAT FORK. CONFRC==2000 ;CONFIRMATION IS FORCED FOR THIS COMMAND ;THE FOLLOWING ARE SOME OF THE OTHER BITS USED IN VARIOUS OTHER TABLES. ;DO NOT REDEFINE THESE BITS OR THOSE IN GROUP INTERPRETED BY ; "%KEYW" IN SUCH A WAY AS TO PRODUCE A CONFLICT! ;B5 ALSO USED IN "CREATE" SUBCOMMAND TABLE (5/14/70). ;BITS... ;FLAG BITS IN AC Z LEFT HALF ;THESE FLAGS ARE CLEARED BEFORE EACH COMMAND IS DECODED PUNCF==1 ;PUNCTUATION OTHER THAN FILE NAME FIELD TERMINATORS ; OK IN INPUT FIELDS. ; TESTED IN "CSTR" SUBROUTINE. STCF==2 ;STORE CHARACTERS WHICH ARE OUTPUT WITH SUBR "CCHRO" ;(AND HENCE MACRO "TYPE") INTO CBUF (POINTER "CBP"). ;USED WHILE REST OF WORD IS BEING TYPED AFTER ALT MODE. CTRLVF==4 ;THIS CHARACTER WAS PRECEDED BY ^V ;SET IN "CCHRI", TESTED IN "CSTR" BAKFF==10 ;BACK UP A FIELD (UN-INPUT FIELD): CAUSES CSTR SUBR AND ; KEYWD UUO TO RE-USE THE PREVIOUS INPUT FIELD. DASHF==20 ;"-" A TERMINATOR NOT "ALPHANUMERIC" CHARACTER NECHOF==40 ;ECHOING OFF (PASSWORD INPUT). TESTED IN %NOI. RUNF==100 ;PROG RUNNING (OR AT LEAST ITS TTY MODES IN EFFECT) ;ALSO TELLS ^C TO FREEZE THE WORLD (5/20/70). CTLCF1==200 ;SET BY ^C TO SAY CLEAR BUFFER ON ANOTHER ^C CTLCF2==400 ;SET BY 2ND ^C TO SAY CLEAR BUFFER AFTER DEBREAK LOGOFF==1000 ;SET DURING LOGOUT MESSAGE AND LOGGING OUT PROCESS. ;TELLS ERRORS AND ^C TO SAY "NOT LOGGED OUT". DTACHF==2000 ;INDICATES "DETACH" COMMAND. ;DISTINGUISHES IT FROM "REDIRECT" AND OTHER COMMANDS ;DURING EXECUTION. NEOLF==4000 ;TELLS CSTR AND OTHER ROUTINES NOT TO ECHO INPUT EOL'S. ;USED WHEN A FILE NAME IS BEING PRE-READ. EOLNEF==10000 ;SAYS AN EOL HAS BEEN INPUT BUT NOT ECHOED. GROUPF==20000 ;ON IF INFG ETC INPUT A GROUP OF INPUT FILE NAMES ;(A NAME WITH AN *, OR MORE THAN ONE NAME) F3==40000 ;FLAG AVAILABLE FOR USE IN COMMANDS, ;NOT CLOBBERED BY UUO'S OR SUBROUTINES. F2==100000 ;ANOTHER FLAG AVAILABLE FOR USE IN COMMANDS F1==200000 ;FLAG AVAILABLE FOR LOCAL USE IN SUBRS AND UUO'S ;FLAG BITS IN AC Z RIGHT HALF ARE ALSO AVAILABLE TO COMMAND ROUTINES. ;GENERAL PURPOSE BIT SYMBOLS ;USED, FOR INSTANCE, IN JSYS CALLING SEQUENCES B0==400000 B1==200000 B2==100000 B3==40000 B4==20000 B5==10000 B6==4000 B7==2000 B8==1000 B9==400 B10==200 B11==100 B12==40 B13==20 B14==10 B15==4 B16==2 B17==1 ;LOCATIONS OF SOME PAGE BUFFERS ;PAGE-MAPPING BUFFERS ARE BETWEEN 747000 AND 767777. NSBUF=747000 ;WINDOW INTO NETWORK STATISTICS FILE BUF1=750000 ;"COPY" COMMAND SOURCE PAGE ;ALSO BUF1 AND FOLLOWING PAGES ARE USED BY "DIRECTORY" BUF2=751000 ;"COPY" COMMAND DESTINATION PAGE ;PAGEN==1000 ;IS ASSEMBLED INTO XPRIV.MAC. ;************* TENEX SYSTEM STANDARD DEFINITIONS ************* ;AC'S Z=0 A=1 B=2 C=3 D=4 E=5 F=6 G==7 AA==10 BB==11 CC==12 DD==13 EE==14 FF==15 GG==16 P=17 ;PUSHDOWN POINTER OPDEF CALL [PUSHJ P,] OPDEF RET [POPJ P,] END