Trailing-Edge
-
PDP-10 Archives
-
decuslib10-08
-
43,50512/rmccom.req
There are no other files named rmccom.req in the archive.
!++
!
! ***** BEGINNING OF RMCCOM.REQ *****
!
!--
! THE FOLLOWING FEATURE SWITCHES ARE USE IN COMPILATIONS
! FOR DIFFERENT OPERATING SYSTEMS (I.E. VAX,TOPS10 AND
! TOPS20). THESE SWITCHES PERTAIN TO ONLY RMCOPY
! RELATED CODE(TRANSPORTABLE ONLY)
COMPILETIME FTTOPS10=1;
COMPILETIME FTTOPS20=0;
COMPILETIME FTVAX=IF FTTOPS10 OR FTTOPS20 THEN 0 ELSE 1;
MACRO
BIT0=0,1%,
BIT1=1,1%,
BIT2=2,1%,
BIT3=3,1%,
BIT4=4,1%,
BIT5=5,1%,
BIT6=6,1%,
BIT7=7,1%,
BIT8=8,1%,
BIT9=9,1%,
BIT10=10,1%,
BIT11=11,1%,
BIT12=12,1%,
BIT13=13,1%,
BIT14=14,1%,
BIT15=15,1%;
MACRO !TO BUMP A COMPILETIME INDEX,
! AND PRINT THE NEW VALUE TO THE LISTING
NEXT[INDX]=NEXTBLOCK[INDX,1]%; !A BLOCK OF SIZE ONE
MACRO !TO ALLOCATE A BLOCK IN A FIELD SET
NEXTBLOCK[INDX,SIZE]=%ASSIGN(INDX,INDX+SIZE)
%PRINT(%NUMBER(INDX))%;
MACRO !TO ALLOCATE SPACE FOR CHARACTER SEQUENCES
CH$SEQUENCE(N)=VECTOR[CH$ALLOCATION(N)]%;
MACRO !FOR A PIECE OF THE STRUCTURE DECLARATION ATTRIBUTE
SIGNEXT=1%, !PARTIAL WORD SIGN EXTENSION FLAG (ON)
NOSIGNEXT=0%; !NO PARTIAL WORD SIGN EXTENSION FLAG
MACRO !FOR COMMONLY USED FIELD ATTRIBUTES
FULLSIGNED=0,%BPVAL,SIGNEXT%,
FULLUNSIGNED=0,%BPVAL,NOSIGNEXT%;
MACRO !NUMBER OF ACSIZ CHARACTERS PER WORD ACCORDING TO LANGUAGE
CHARSPERWORD=%IF %BLISS(BLISS36) %THEN 5 %ELSE
%IF %BLISS(BLISS16) %THEN 2 %ELSE
%IF %BLISS(BLISS32) %THEN 4 %ELSE 1 %FI%FI%FI %;
! D A P P R O T E C T I O N F I E L D S
LITERAL !BIT VECTOR DEFINITIONS (DEFINED WHEN SET TO 1)
DAP$PRO_RDV=0, !DENY READ ACCESS
DAP$PRO_WRV=1, !DENY WRITE ACCESS
DAP$PRO_EXE=2, !DENY EXECUTE ACCESS
DAP$PRO_DLE=3, !DENY DELETE ACCESS
DAP$PRO_APP=4, !DENY APPEND ACCESS
DAP$PRO_LST=5, !DENY LIST (DIRECTORY) ACCESS
DAP$PRO_UPD=6, !DENY UPDATE ACCESS
DAP$EXTENSN=7, !EXTENSION (0 IF FOLLOWING NOT NEEDED)
DAP$PRO_CNG=8, !DENY CHANGE PROTECTION ACCESS
DAP$PRO_EXT=9, !DENY EXTEND ACCESS
DAP$PRO$SIZE=DAP$PRO_EXT+1; !SIZE OF BITVECTOR
! D A P O P E R A T I N G S Y S T E M S C O D E S
MACRO
DAP$ILLEGAL=0%, !ILLEGAL DAP CODE
DAP$RT11=1%, !RT-11 DAP CODE
DAP$RSTS=2%, !RSTS DAP CODE
DAP$RSX11S=3%, !RSX11S DAP CODE
DAP$RSX11M=4%, !RSX11M DAP CODE
DAP$RSX11D=5%, !RSX11D DAP CODE
DAP$IAS=6%, !IAS DAP CODE
DAP$VAX=7%, !VAX DAP CODE
DAP$TOPS20=8%, !TOPS-20 DAP CODE
DAP$TOPS10=9%; !TOPS-10 DAP CODE
! S E N D R M C R E Q U E S T B L O C K D E S C R I P T I O N S
COMPILETIME BKINDX = 0;
FIELD SD$RMC_FIELDS=
SET
SD$RMCVER=[BKINDX,FULLUNSIGNED], !RMCOPY VERSION NUMBER
NEXT[BKINDX]
SD$RMCOPT=[BKINDX,FULLUNSIGNED], !RMC$OPT OPTION BITS
RMC$O_CODE=[BKINDX,BIT0,NOSIGNEXT], !LOG FILE OPTION SPECIFIED
RMC$O_WAIT=[BKINDX,BIT1,NOSIGNEXT], !WAIT OPTION SPECIFIED
RMC$O_B36=[BKINDX,BIT2,NOSIGNEXT], !BINARY 36 OPTION SPECIFIED
RMC$O_B11I=[BKINDX,BIT3,NOSIGNEXT], !BINARY 16 IMAGE OPTION SPECIFIED
RMC$O_B11P=[BKINDX,BIT4,NOSIGNEXT], !BINARY 16 PACKED OPTION SPECIFIED
RMC$O_ASC=[BKINDX,BIT5,NOSIGNEXT], !ASCII MODE OPTION SPECIFIED
RMC$O_GO=[BKINDX,BIT6,NOSIGNEXT], !NOT USED
RMC$O_RTS=[BKINDX,BIT7,NOSIGNEXT], !RTS OPTION SPECIFIED
RMC$O_DE=[BKINDX,BIT8,NOSIGNEXT], !DELETE INPUT FILE OPTION SPECIFIED
RMC$O_CRP=[BKINDX,BIT9,NOSIGNEXT], !ENCRYPT OPTION SPCIFIED
RMC$O_OPR=[BKINDX,BIT10,NOSIGNEXT], !NOTIFY OPR OPTION SPECIFIED
RMC$O_SU=[BKINDX,BIT11,NOSIGNEXT], !SUPERCEDE OPTION SPECIFIED
RMC$O_APPD=[BKINDX,BIT12,NOSIGNEXT], !APPEND OPTION SPECIFIED
RMC$O_SBIT=[BKINDX,BIT13,NOSIGNEXT], !SIXBIT OPTION SPECIFIED
RMC$O_CKSM=[BKINDX,BIT14,NOSIGNEXT], !CHECKSUM OPTION SPECIFIED
RMC$O_ASCB=[BKINDX,BIT15,NOSIGNEXT], !ASCII BLOCK OPTION SPECIFIED
NEXT[BKINDX]
SD$RMCFUN=[BKINDX,FULLUNSIGNED], !TRANSFER REQUEST FUNCTION CODE
NEXT[BKINDX]
SD$CNT_JOB=[BKINDX,FULLUNSIGNED], !CHAR. COUNT OF JOB NAME
NEXT[BKINDX]
SD$PTR_JOB=[BKINDX,FULLUNSIGNED], !PTR TO ASCIZ OF JOB NAME
NEXT[BKINDX]
SD$CNT_RTS=[BKINDX,FULLUNSIGNED], !CHAR. COUNT OF RUNTIME SYSTEM NAME
NEXT[BKINDX]
SD$PTR_RTS=[BKINDX,FULLUNSIGNED], !PTR TO RUNTIME SYSTEM NAME TEXT
NEXT[BKINDX]
SD$CNT_RMT=[BKINDX,FULLUNSIGNED], !CHAR. COUNT OF REMOTE FILE SPEC. PTR
NEXT[BKINDX]
SD$PTR_RMT=[BKINDX,FULLUNSIGNED], !PTR TO REMOTE FILE SPEC. TEXT STRING
NEXT[BKINDX]
SD$CNT_REN=[BKINDX,FULLUNSIGNED], !CHAR. COUNT OF RENAME/LOCAL FILE SPEC. PTR
NEXT[BKINDX]
SD$PTR_REN=[BKINDX,FULLUNSIGNED], !PTR TO RENAME/LOCAL FILE SPEC. TEXT STRING
NEXT[BKINDX]
SD$CNT_ACC=[BKINDX,FULLUNSIGNED], !CHAR. COUNT OF ACCOUNTING PTR
NEXT[BKINDX]
SD$PTR_ACC=[BKINDX,FULLUNSIGNED], !PTR TO ACCOUNTING TEXT STRING
NEXT[BKINDX]
SD$CNT_LNOD=[BKINDX,FULLUNSIGNED], !CHAR. COUNT FOR THE LOCAL NODE PTR
NEXT[BKINDX]
SD$PTR_LNOD=[BKINDX,FULLUNSIGNED], !PTR TO THE LOCAL NODE NAME TEXT STRING
NEXT[BKINDX]
SD$CNT_RNOD=[BKINDX,FULLUNSIGNED], !CHAR. COUNT FOR THE REMOTE NODE PTR
NEXT[BKINDX]
SD$PTR_RNOD=[BKINDX,FULLUNSIGNED], !PTR TO THE REMOTE NODE NAME TEXT STRING
NEXT[BKINDX]
SD$CNT_LOG=[BKINDX,FULLUNSIGNED], !CHAR. COUNT FOR THE LOG FILE SPEC. PTR
NEXT[BKINDX]
SD$PTR_LOG=[BKINDX,FULLUNSIGNED], !PTR TO THE LOG FILE SPEC. TEXT STRING
NEXT[BKINDX]
SD$WAIT =[BKINDX,FULLUNSIGNED], !WAIT TIME IN MINUTES
NEXT[BKINDX]
SD$AFTER=[BKINDX,FULLUNSIGNED], !AFTER TIME IN MINUTES
NEXT[BKINDX]
!The next 4 protection fields actually are 9 bit patterns
! Each of the 9 bits must be composed in the standard DAP
! format. The bits describe read, write, execute, append, etc..
! We do not supply the individual bit defn's here.
SD$SYSPROTECT=[BKINDX,0,9,NOSIGNEXT], !SYSTEM FILE PROTECTION CODE
NEXT[BKINDX]
SD$WORPROTECT=[BKINDX,0,9,NOSIGNEXT], !WORLD PROTECTION CODE
NEXT[BKINDX]
SD$OWNPROTECT=[BKINDX,0,9,NOSIGNEXT], !OWNER FILE PROTECTION CODE
NEXT[BKINDX]
SD$GRPPROTECT=[BKINDX,0,9,NOSIGNEXT], !GROUP FILE PROTECTIONCODE
NEXT[BKINDX]
SD$LIMIT=[BKINDX,FULLUNSIGNED], !LIMIT WORD FOR FILE SIZE
NEXT[BKINDX]
SD$RDAP_NOD=[BKINDX,FULLUNSIGNED], !REMOTE NODE DAP CODE
NEXT[BKINDX]
SD$LDAP_NOD=[BKINDX,FULLUNSIGNED], !LOCAL NODE DAP CODE
NEXT[BKINDX]
SD$PRIOR=[BKINDX,FULLUNSIGNED] !PRIOR WORD FOR REQUEST EXECUTE
TES;
NEXT[BKINDX] !MUST INCREMENT ONE MORE TIME FOR WORD COUNT
COMPILETIME SD$SIZE=BKINDX; !REMEMBER THE SIZE OF SD$RMCBLK FOR ALLOCATION
MACRO
SD_RMCBLK=BLOCK[SD$SIZE] FIELD(SD$RMC_FIELDS)%;
! R M C R E M O T E F U N C T I O N V A L U E S
%ASSIGN(BKINDX,0) !START WITH A ZERO OFFSET
! ***** NOTE : IF THESE INDICES EVER CHANGE, QSRQUE AND QSRSCH
! MUST ALSO BE CHANGED.
LITERAL NEXT[BKINDX]
RMC$F_SEND=BKINDX, !SEND FILE TO REMOTE FUNCTION
NEXT[BKINDX]
RMC$F_GET=BKINDX, !RETRIEVE FILE FROM REMOTE FUNCTION
NEXT[BKINDX]
RMC$F_REN=BKINDX, !RENAME FUNCTION
NEXT[BKINDX]
RMC$F_DEL=BKINDX, !DELETE FILE FUNCTION
NEXT[BKINDX]
RMC$F_DI=BKINDX, !DIRECTORY INFORMATION FUNCTION
NEXT[BKINDX]
RMC$F_SUBMIT=BKINDX, !Send a batch file & submit it
NEXT[BKINDX]
RMC$F_EXECUTE=BKINDX; !Submit a batch stream
! F L A G S F O R T H E RUN, START, RMCOPY M A T C H E R
! N O T E ::
! These indexes must be positive, since FND_PATTERN returns
! -1 as an error
%ASSIGN(BKINDX,1) !START WITH AN OFFSET OF 1
LITERAL
RUN$SWITCH = BKINDX, !The index for the RUN command
NEXT [BKINDX]
START$SWITCH = BKINDX, !... if the user did a GET... START
NEXT [BKINDX]
RMCOPY$SWITCH = BKINDX; !The normal way to get things going
!I N T E R N A L R M C CHK-ACCESS B L O C K D E S C R I P T I O N S
%ASSIGN(BKINDX,0) !START WITH A ZERO OFFSET
FIELD CHK$BLK_FIELDS=
SET
CHK$SPEC$PTR=[BKINDX,FULLUNSIGNED], !FILE SPEC PTR
NEXT[BKINDX]
CHK$DEV$PTR=[BKINDX,FULLUNSIGNED], !DEVICE PTR
NEXT[BKINDX]
CHK$DEV$CNT=[BKINDX,FULLUNSIGNED], !DEVICE CHAR. COUNT RETURNED HERE
NEXT[BKINDX]
CHK$DEV$MAX=[BKINDX,FULLUNSIGNED], !DEVICE MAX. CHAR. COUNT
NEXT[BKINDX]
CHK$PRO=[BKINDX,FULLUNSIGNED], !PROTECTION ADDR
NEXT[BKINDX]
CHK$LIM=[BKINDX,FULLUNSIGNED], !LIMITS ADDR.
NEXT[BKINDX]
CHK$ACCESS$VAL=[BKINDX,FULLUNSIGNED], !ACCESS VALUE
NEXT[BKINDX]
CHK$PATH$PTR=[BKINDX,FULLUNSIGNED], !USER PATH PTR
NEXT[BKINDX]
CHK$PATH$MAX=[BKINDX,FULLUNSIGNED], !USER PATH MAX CNT
NEXT[BKINDX]
CHK$PATH$CNT=[BKINDX,FULLUNSIGNED] !PATH CNT RETURNED HERE
TES;
NEXT[BKINDX] !MUST INCREMEMT ONE MORE TIME FOR WORD COUNT
COMPILETIME CHK$SIZE_ARG=BKINDX; !REMEMBER THE SIZE OF THE CHK$ARG FOR ALLOCATION
MACRO
CHK$ARGBLK=BLOCK[CHK$SIZE_ARG] FIELD(CHK$BLK_FIELDS)%;
!I N T E R N A L R M C E V A L U A T I O N B L O C K D E S C R I P T I O N S
%ASSIGN(BKINDX,0) !START WITH A ZERO OFFSET
FIELD EVAL$BLK_FIELDS=
SET
EVAL$LFILESPCCC=[BKINDX,FULLUNSIGNED], !LEFT SIDE COMMAND STRING FILESPEC CHAR. COUNT
NEXT[BKINDX]
EVAL$LFILESPCPT=[BKINDX,FULLUNSIGNED], !LEFT SIDE COMMAND STRING FILESPEC PTR.
NEXT[BKINDX]
EVAL$RFILESPCCC=[BKINDX,FULLUNSIGNED], !RIGHT SIDE COMMAND STRING FILESPEC CHAR. COUNT
NEXT[BKINDX]
EVAL$RFILESPCPT=[BKINDX,FULLUNSIGNED], !RIGHT SIDE COMMAND STRING FILESPEC PTR.
NEXT[BKINDX]
EVAL$GLOBSTAT=[BKINDX,FULLUNSIGNED], !COMMAND STRING EVALUATION STATUS
EVAL$S_INPUTEOF=[BKINDX,BIT0,NOSIGNEXT], !TTY/INPUT EOF FLAG
EVAL$S_INDCOMPL=[BKINDX,BIT1,NOSIGNEXT], !INDIRECT FILE SPEC. READY FOR PARSING FLAG
NEXT[BKINDX]
EVAL$COMSTAT=[BKINDX,FULLUNSIGNED], !COMMAND STRING EVALUATION STATUS
EVAL$S_RTNODE=[BKINDX,BIT0,NOSIGNEXT], !RIGHT NODE ID DETECTED FLAG
EVAL$S_LTNODE=[BKINDX,BIT1,NOSIGNEXT], !LEFT NODE ID DETECTED FLAG
EVAL$S_SIDE=[BKINDX,BIT2,NOSIGNEXT], !"=" DETECTED FLAG(THE START OF THE RIGHT SIDE OF COMMAND)
EVAL$S_MORE=[BKINDX,BIT3,NOSIGNEXT], !MORE OR "-" SWITCH DETECTED FLAG
EVAL$S_INDIR=[BKINDX,BIT4,NOSIGNEXT], !INDIRECT FILE "@" DETECTED FLAG
EVAL$S_KILL=[BKINDX,BIT5,NOSIGNEXT], !KILL QUEUE REQUEST DETECTED FLAG
EVAL$S_LIST=[BKINDX,BIT6,NOSIGNEXT], !LIST QUEUE REQUEST DETECTED FLAG
EVAL$S_SWITCH=[BKINDX,BIT7,NOSIGNEXT], !OPTION SWITCH HAS BEEN DETECTED FLAG
EVAL$S_LFILESP=[BKINDX,BIT8,NOSIGNEXT], !LEFT FILE SPEC. DETECTED AND SAVED FLAG
EVAL$S_RFILESP=[BKINDX,BIT9,NOSIGNEXT], !RIGHT FILE SPEC. STRING DETECTED AND SAVED FLAG
EVAL$S_FILESPEC=[BKINDX,BIT10,NOSIGNEXT], !START A FILE SPEC SCAN FLAG
EVAL$S_LOCALNOD=[BKINDX,BIT11,NOSIGNEXT], !LOCAL NODE ALREADY DETECTED FLAG
EVAL$S_AFTERFLG=[BKINDX,BIT12,NOSIGNEXT], !AFTER DELAY SEND REQUEST FLAG
EVAL$S_LIMIT=[BKINDX,BIT13,NOSIGNEXT], !LIMIT OPTION SPECIFIED FLAG
EVAL$LTLOCALNOD=[BKINDX,BIT14,NOSIGNEXT], !LOG FILE SPEC. READY FOR PARSING FLAG
EVAL$S_NOLOG=[BKINDX,BIT15,NOSIGNEXT], !NOLOG OPTION SPECIFIED FLAG
NEXT[BKINDX]
EVAL$LOCALPTR=[BKINDX,FULLUNSIGNED], !LOCAL NODE TEXT STRING PTR
NEXT[BKINDX]
EVAL$LOCALCC=[BKINDX,FULLUNSIGNED], !LOCAL NODE TEXT STRING CHARACTER COUNT
NEXT[BKINDX]
EVAL$REMOTEPTR=[BKINDX,FULLUNSIGNED], !REMOTE NODE TEXT STRING PTR
NEXT[BKINDX]
EVAL$REMOTECC=[BKINDX,FULLUNSIGNED], !REMOTE NODE TEXT STRING CHARACTER COUNT
NEXT[BKINDX]
EVAL$SWTCHFUNCT=[BKINDX,FULLUNSIGNED],
!SWITCH FUNCTION BEING EVALUATED - USED FOR ADDITION AL FIELD DETECTION
NEXT[BKINDX]
EVAL$INDCC=[BKINDX,FULLUNSIGNED], !INDIRECT FILE SPEC. CHAR. COUNT
NEXT[BKINDX]
EVAL$INDPTR=[BKINDX,FULLUNSIGNED], !INDIRECT FILE SPEC. TEXT PTR.
NEXT[BKINDX]
EVAL$LNODEID=[BKINDX,FULLUNSIGNED], !LEFT SIDE NODE ID
NEXT[BKINDX]
EVAL$RNODEID=[BKINDX,FULLUNSIGNED], !RIGHT SIDE NODE ID
NEXT[BKINDX]
EVAL$RNODECHAR=[BKINDX,FULLUNSIGNED], !REMOTE NODE CHARACTERISTICS WORD
NEXT[BKINDX]
EVAL$USERNUMPTR=[BKINDX,FULLUNSIGNED], !USER NUMBER[PPN] TEXT STRING PTR
NEXT[BKINDX]
EVAL$USERNUMCNT=[BKINDX,FULLUNSIGNED], !USER NUMBER [PPN] TEXT STRING CNT
NEXT[BKINDX]
EVAL$USERSFDPTR=[BKINDX,FULLUNSIGNED], !USER SFD TEXT STRING PTR
NEXT[BKINDX]
EVAL$USERSFDCNT=[BKINDX,FULLUNSIGNED], !USER SFD TEXT STRING CNT
NEXT[BKINDX]
EVAL$FILEVERPTR=[BKINDX,FULLUNSIGNED], !FILE VERSION TEXT STRING PTR
NEXT[BKINDX]
EVAL$FILEVERCNT=[BKINDX,FULLUNSIGNED], !FILE VERSION TEXT STRING CNT
NEXT[BKINDX]
EVAL$FILESPCPTR=[BKINDX,FULLUNSIGNED], !WORKING FILESPEC STARTING PTR
NEXT[BKINDX]
EVAL$FILESPECCC=[BKINDX,FULLUNSIGNED] !WORKING FILESPEC CHARACTER COUNT
TES;
NEXT[BKINDX] !MUST INCREMENT ONE MORE TIME FOR WORD COUNT
COMPILETIME EVAL$SIZE=BKINDX; !REMEMBER THE SIZE OF EVAL$BLK FOR ALLOCATION
MACRO
EVAL_BLK=BLOCK[EVAL$SIZE] FIELD(EVAL$BLK_FIELDS)%;
! F I L E S P E C . D E F I N I T I O N B L O C K
!THIS BLOCK DEFINITIONS ARE USED TO HOLD PTR AND CHAR. COUNTS
!FOR FILE SPEC. ARGUMENTS
%ASSIGN(BKINDX,0) !START WITH A ZERO OFFSET
FIELD FILE_ARG_FIELDS=
SET
DSK$PTR=[BKINDX,FULLUNSIGNED], !DISK STRUCTURE PTR WORD
NEXT[BKINDX]
DSK$CNT=[BKINDX,FULLUNSIGNED], !DISK STRUCTURE CHAR. COUNT
NEXT[BKINDX]
FILE$PTR=[BKINDX,FULLUNSIGNED], !FILE NAME PTR WORD
NEXT[BKINDX]
FILE$CNT=[BKINDX,FULLUNSIGNED], !FILENAME CHAR. COUNT
NEXT[BKINDX]
EXT$PTR=[BKINDX,FULLUNSIGNED], !FILE EXT. PTR WORD
NEXT[BKINDX]
EXT$CNT=[BKINDX,FULLUNSIGNED], !FILE EXT. CHAR. COUNT
NEXT[BKINDX]
SFD$PTR=[BKINDX,FULLUNSIGNED], !SFD PTR WORD
NEXT[BKINDX]
SFD$CNT=[BKINDX,FULLUNSIGNED], !SFD CHAR COUNT
NEXT[BKINDX]
VER$PTR=[BKINDX,FULLUNSIGNED], !VER PTR WORD
NEXT[BKINDX]
VER$CNT=[BKINDX,FULLUNSIGNED], !VER CHAR COUNT
NEXT[BKINDX]
PPN$PTR=[BKINDX,FULLUNSIGNED], !PPN PTR WORD
NEXT[BKINDX]
PPN$CNT=[BKINDX,FULLUNSIGNED] !PPN CHAR. COUNT
TES;
NEXT[BKINDX] !MUST INCREMEMT ONE MORE TIME FOR WORD COUNT
COMPILETIME FILE$SIZE_ARG=BKINDX; !REMEMBER THE SIZE OF THE FILE$ARG FOR ALLOCATION
MACRO
FILE$ARG=BLOCK[FILE$SIZE_ARG] FIELD(FILE_ARG_FIELDS)%;
!SWITCH OPTIONS WITH FUNCTION FIELDS FOLLOWING
!USE THE FOLLOWING PROCESS BIT MAPS
%ASSIGN(BKINDX,0)
LITERAL
RTANGL$VAL=BKINDX,
PPN$VAL=BKINDX,
BRACKET$VAL=BKINDX,
NEXT[BKINDX]
EXT$VAL=BKINDX,
LTANGL$VAL=BKINDX,
PROT$VAL=BKINDX,
ANGLES$VAL=BKINDX,
NEXT[BKINDX]
FILE$VAL=BKINDX,
RTBRAC$VAL=BKINDX,
NUMCHK$VAL=BKINDX,
NEXT[BKINDX]
DSK$VAL=BKINDX,
LTBRAC$VAL=BKINDX,
NUMVAL$VAL=BKINDX,
NEXT[BKINDX]
COLON1$VAL=BKINDX,
DATE$VAL=BKINDX,
NEXT[BKINDX]
COLON2$VAL=BKINDX,
SFD$VAL=BKINDX,
NEXT[BKINDX]
COMMA1$VAL=BKINDX,
NEXT[BKINDX]
COMMA2$VAL=BKINDX,
NEXT[BKINDX]
PERIOD$VAL=BKINDX,
NEXT[BKINDX]
START$VAL = BKINDX,
SWITCH$VAL=BKINDX,
NEXT[BKINDX]
END$VAL=BKINDX,
NEXT[BKINDX]
NUMERIC$VAL=BKINDX,
SPECIAL$VAL=BKINDX,
NEXT[BKINDX]
TIME$VAL=BKINDX;
COMPILETIME SWFUNC$SIZE=BKINDX;
%IF SWFUNC$SIZE GTR %BPUNIT %THEN PRINT 'NO SWITCH FUNCTION BIT DEFINITIONS DEFINED' %FI
MACRO
BITMASK(X)[]=%IF %NULL(X) %THEN 0 %ELSE
1^X + BITMASK(%REMAINING) %FI %;
LITERAL
RIGHTSIDE=0,
LEFTSIDE=1,
ONE=1,
ZERO=0,
HUNDRED=100;
LITERAL
!THESE LITERALS ARE USE TO IDENTIFY MODULES FROM
!WHICH ERRORS ARE OUTPUT FROM....
RMCSCAINDX=1,
RMCPARINDX=2,
RMCSEMINDX=3,
RMCCONINDX=4,
RMCMSCINDX=5;
!The following are the asciz pattern literals use to numerical destinate
!the identified the ascii DAY SWITCH option
!THESE LITERALS ARE IN NUMERIC ORDER ACCORDING TO DAY OF THE WEEK
%ASSIGN(BKINDX,0)
LITERAL
NEXT[BKINDX]
SUN$SWITCH = BKINDX,
NEXT[BKINDX]
MON$SWITCH = BKINDX,
NEXT[BKINDX]
TUE$SWITCH = BKINDX,
NEXT[BKINDX]
WED$SWITCH = BKINDX,
NEXT[BKINDX]
THU$SWITCH = BKINDX,
NEXT[BKINDX]
FRI$SWITCH = BKINDX,
NEXT[BKINDX]
SAT$SWITCH = BKINDX,
NEXT[BKINDX]
TOD$SWITCH = BKINDX,
NEXT[BKINDX]
TOM$SWITCH = BKINDX,
NEXT[BKINDX]
NOW$SWITCH = BKINDX;
!The following are the asciz pattern literals use to numerical destinate
!the identified the ascii MONTH SWITCH option
!THESE LITERALS ARE IN NUMERIC ORDER ACCORDING TO MONTH
%ASSIGN(BKINDX,0)
LITERAL
NEXT[BKINDX]
JAN$SWITCH = BKINDX,
NEXT[BKINDX]
FEB$SWITCH = BKINDX,
NEXT[BKINDX]
MAR$SWITCH = BKINDX,
NEXT[BKINDX]
APR$SWITCH = BKINDX,
NEXT[BKINDX]
MAY$SWITCH = BKINDX,
NEXT[BKINDX]
JUN$SWITCH = BKINDX,
NEXT[BKINDX]
JUL$SWITCH = BKINDX,
NEXT[BKINDX]
AUG$SWITCH = BKINDX,
NEXT[BKINDX]
SEP$SWITCH = BKINDX,
NEXT[BKINDX]
OCT$SWITCH = BKINDX,
NEXT[BKINDX]
NOV$SWITCH = BKINDX,
NEXT[BKINDX]
DEC$SWITCH = BKINDX;
!The following are the asciz pattern literals use to numerical destinate
!the identified the ascii SWITCH option
!FIELDS AND switch function fields..
%ASSIGN(BKINDX,0)
LITERAL
NEXT[BKINDX]
LOG$SWITCH = BKINDX,
NEXT[BKINDX]
NOLOG$SWITCH = BKINDX,
NEXT[BKINDX]
WAIT$SWITCH = BKINDX,
NEXT[BKINDX]
PRIOR$SWITCH = BKINDX,
NEXT[BKINDX]
OPR$SWITCH = BKINDX,
NEXT[BKINDX]
MORE$SWITCH = BKINDX,
NEXT[BKINDX]
BIN16$SWITCH = BKINDX,
NEXT[BKINDX]
REN$SWITCH = BKINDX,
NEXT[BKINDX]
APPEND$SWITCH = BKINDX,
NEXT[BKINDX]
DIRECT$SWITCH = BKINDX,
NEXT[BKINDX]
SUPER$SWITCH = BKINDX,
NEXT[BKINDX]
CONTIG$SWITCH = BKINDX,
NEXT[BKINDX]
BLOCK$SWITCH = BKINDX,
NEXT[BKINDX]
ACCT$SWITCH = BKINDX,
NEXT[BKINDX]
DELETE$SWITCH = BKINDX,
NEXT[BKINDX]
SIXBIT$SWITCH = BKINDX,
NEXT[BKINDX]
BIN36$SWITCH = BKINDX,
NEXT[BKINDX]
AFTER$SWITCH = BKINDX,
NEXT[BKINDX]
ASCII$SWITCH = BKINDX,
NEXT[BKINDX]
RTS$SWITCH = BKINDX,
NEXT[BKINDX]
ENCRYPT$SWITCH = BKINDX,
NEXT[BKINDX]
CHKSUM$SWITCH = BKINDX,
NEXT[BKINDX]
SEQ$SWITCH = BKINDX,
NEXT[BKINDX]
IMAGE$SWITCH = BKINDX,
NEXT[BKINDX]
PACKED$SWITCH = BKINDX,
NEXT[BKINDX]
LIST$SWITCH = BKINDX,
NEXT[BKINDX]
LIMIT$SWITCH = BKINDX,
NEXT[BKINDX]
SELF$SWITCH = BKINDX,
NEXT[BKINDX]
KILL$SWITCH = BKINDX,
NEXT[BKINDX]
PROTECT$SWITCH = BKINDX,
NEXT[BKINDX]
SYSTEM$SWITCH = BKINDX,
NEXT[BKINDX]
GROUP$SWITCH = BKINDX,
NEXT[BKINDX]
OWNER$SWITCH = BKINDX,
NEXT[BKINDX]
WORLD$SWITCH = BKINDX,
NEXT[BKINDX]
READ$SWITCH = BKINDX,
NEXT[BKINDX]
WRITE$SWITCH = BKINDX,
NEXT[BKINDX]
EXECUTE$SWITCH = BKINDX,
NEXT[BKINDX]
UPDATE$SWITCH = BKINDX,
NEXT[BKINDX]
CHANGE$SWITCH = BKINDX,
NEXT[BKINDX]
EXTEND$SWITCH = BKINDX;
!LITERAL FLAGS USE FOR CHK_NEXT_CHAR ROUTINE VALUE RETURNS
LITERAL
C_N_C$NULL=1, !A NULL CHARACTER WAS DETECTED
C_N_C$DASH=2, !A DASH "-" WAS DETECTED
C_N_C$BLANK=3, !A BLANK WAS DETECTED
C_N_C$OTHER=4; !SOME OTHER CHARACTER WAS DETECTED
!LITERAL FLAGS USED FOR GET_ACCESS ROUTINE VALUE CALLS
LITERAL
SRC$ACCESS=1, !SOURCE ACCESS VALUE
DST$ACCESS=2, !DESTINATION ACCESS VALUE
LOG$ACCESS=3, !LOG FILE ACCESS VALUE
CMD$ACCESS=4; !CMD FILE ACCESS VALUE
!LITERAL FLAGS USED FOR MORE_CHK ROUTINE VALUE RETURNS
LITERAL
M_CHK$MORE=2, !MORE SWITCH FOUND
M_CHK$OK=1; !NORMAL RETURN
! R M C O P Y E R R O R L I T E R A L S
! DEFINITIONS
! THIS IS DONE TO ALLOW OF ERROR/ CORRECTION
%ASSIGN(BKINDX,1) !SET UP THE NUMBER COUNT FOR THE ERROR LITERALS
LITERAL
RMCAQF=BKINDX, !Acknowledgement receive failed
NEXT[BKINDX]
RMCCMD=BKINDX, !Command msg acsiz message
NEXT[BKINDX]
RMCCTL=BKINDX, !Command string too long
NEXT[BKINDX]
RMCDES=BKINDX, !Destination file message
NEXT[BKINDX]
RMCDND=BKINDX, !Device is not a disk -- <filespec>
NEXT[BKINDX]
RMCEIF=BKINDX, !END of indirect file
NEXT[BKINDX]
RMCFAN=BKINDX, !File access not allowed
NEXT[BKINDX]
RMCFND=BKINDX, !File not found -- <filespec>
NEXT[BKINDX]
RMCGPF=BKINDX, !GROUP Protection field error
NEXT[BKINDX]
RMCICS=BKINDX, !Illegal combination of switches -- <field>
NEXT[BKINDX]
RMCIDF=BKINDX, !Indirect file --
NEXT[BKINDX]
RMCIFI=BKINDX, !Indirect file input
NEXT[BKINDX]
RMCIFS=BKINDX, !Illegal file specification -- <filespec>
NEXT[BKINDX]
RMCINA=BKINDX, !Indirect file not ascii
NEXT[BKINDX]
RMCINF=BKINDX, !Indirect file not found
NEXT[BKINDX]
RMCINR=BKINDX, !Illegal node in request
NEXT[BKINDX]
RMCIOF=BKINDX, !Indirect file open failure
NEXT[BKINDX]
RMCIPF=BKINDX, !Indirect file protection failure
NEXT[BKINDX]
RMCIPP=BKINDX, !Illegal ppn
NEXT[BKINDX]
RMCIRD=BKINDX, !Illegal Remote DAP code
NEXT[BKINDX]
RMCISN=BKINDX, !Illegal transfer within same node
NEXT[BKINDX]
RMCISS=BKINDX, !Illegal switch specified -- <switch>
NEXT[BKINDX]
RMCISV=BKINDX, !Illegal switch value field -- <field>
NEXT[BKINDX]
RMCI11=BKINDX, !Internal error - Illegal return from G_L_N
NEXT[BKINDX]
RMCI12=BKINDX, !Internal error - G_L_N$FAI - G_L_N failure
NEXT[BKINDX]
RMCI13=BKINDX, !Internal error - GETPATH error
NEXT[BKINDX]
RMCI14=BKINDX, !Internal error - Local node name not in NODTBL.EXE
NEXT[BKINDX]
RMCI15=BKINDX, !Internal error - G_I_S$EOF end-of-file on the specified input channel
NEXT[BKINDX]
RMCI16=BKINDX, !Internal error - G_I_S$IER device error on the input channel
NEXT[BKINDX]
RMCI17=BKINDX, !Internal error - G_I_S$CCO character count overflow
NEXT[BKINDX]
RMCI18=BKINDX, !Internal error - G_I_S$ILC illegal channel code
NEXT[BKINDX]
RMCI19=BKINDX, !Internal error - G_I_S$CNI (indirect) channel not initialized
NEXT[BKINDX]
RMCI20=BKINDX, !Internal error -- CHK_AC$NAK - no access allowed
NEXT[BKINDX]
RMCI21=BKINDX, !Internal error -- Creat error return
NEXT[BKINDX]
RMCI22=BKINDX, !Internal error -- CHK_AC$CCO - Character count overflow
NEXT[BKINDX]
RMCI23=BKINDX, !Internal error --
NEXT[BKINDX]
RMCI24=BKINDX, !Internal error --
NEXT[BKINDX]
RMCI25=BKINDX, !Internal error -- Illegal return from INI_IN
NEXT[BKINDX]
RMCI26=BKINDX, !Internal error -- QFN$ILP Parameter type code
NEXT[BKINDX]
RMCI27=BKINDX, !Internal error -- QFN$ILF Illegal function
NEXT[BKINDX]
RMCI28=BKINDX, !Internal error -- QFUNC Illegal return
NEXT[BKINDX]
RMCI29=BKINDX, !Internal error -- No free pages to create request
NEXT[BKINDX]
RMCI30=BKINDX, !Internal error -- Illegal return from CHK_ACCESS
NEXT[BKINDX]
RMCI31=BKINDX, !Internal error -- Illegal return from G_I_S
NEXT[BKINDX]
RMCI32=BKINDX, !Internal error -- INI_IN$BFS Indirect file/bad file spec
NEXT[BKINDX]
RMCI33=BKINDX, !Internal error -- Creat error return
NEXT[BKINDX]
RMCLDS=BKINDX, !LOG file's dsk / LOCAL file's dsk must be same
NEXT[BKINDX]
RMCLOG=BKINDX, !Log file message
NEXT[BKINDX]
RMCLQF=BKINDX, !List answer receive failed
NEXT[BKINDX]
RMCLRD=BKINDX, !Legal Remote DAP Code not implemented - file spec parsing for node
NEXT[BKINDX]
RMCMFN=BKINDX, !Multi-filespec requests not implemented
NEXT[BKINDX]
RMCMOR=BKINDX, !More>
NEXT[BKINDX]
RMCMSE=BKINDX, !/ MORE switch error
NEXT[BKINDX]
RMCNDC=BKINDX, !Zero DAP code for node in node table
NEXT[BKINDX]
RMCNDD=BKINDX, !Node delimiter detected in switch/filespec field
NEXT[BKINDX]
RMCNFS=BKINDX, !NO file spec on right side of command string
NEXT[BKINDX]
RMCNIF=BKINDX, !Nested indirect files not implemented
NEXT[BKINDX]
RMCNLN=BKINDX, !No local node in request
NEXT[BKINDX]
RMCOOR=BKINDX, !Error passed is OUT OF RANGE
NEXT[BKINDX]
RMCOFF=BKINDX, !Open failure -- <filespec>
NEXT[BKINDX]
RMCOPF=BKINDX, !OWNER protection field is invalid
NEXT[BKINDX]
RMCPRF=BKINDX, !Protection failure -- <filespec>
NEXT[BKINDX]
RMCRDC=BKINDX, !Remote DAP code 0 - no file spec parsing for node
NEXT[BKINDX]
RMCRDN=BKINDX, !Remote disk structure not specified
NEXT[BKINDX]
RMCRMC=BKINDX, !RMCOPY>
NEXT[BKINDX]
RMCRMV=BKINDX, !RMCOPY Version:
NEXT[BKINDX]
RMCRNA=BKINDX, !Retrieve not allowed from the remote NODE
NEXT[BKINDX]
RMCRQF=BKINDX, !Receive from [SYSTEM] QUASAR Failed
NEXT[BKINDX]
RMCRSN=BKINDX, !Retrieve/Send not allowed from/to the remote NODE
NEXT[BKINDX]
RMCSAS=BKINDX, !Switch already specified
NEXT[BKINDX]
RMCSEC=BKINDX, !Syntax error in command string
NEXT[BKINDX]
RMCSFE=BKINDX, !Source file error
NEXT[BKINDX]
RMCSNA=BKINDX, !Send not allowed to the remote NODE
NEXT[BKINDX]
RMCSNI=BKINDX, !Switch not implemented --
NEXT[BKINDX]
RMCSOU=BKINDX, !Source file message
NEXT[BKINDX]
RMCSPF=BKINDX, !System protection field error
NEXT[BKINDX]
RMCSQF=BKINDX, !Send to [SYSTEM] QUASAR failed, message being resent
NEXT[BKINDX]
RMCURN=BKINDX, !Undefined remote node name
NEXT[BKINDX]
RMCWFQ=BKINDX, !RMCOPY waiting for [SYSTEM] QUASAR to start
NEXT[BKINDX]
RMCWNI=BKINDX, !Wildcarding not implemented
NEXT[BKINDX]
RMCWPF=BKINDX, !WORLD protection field error
NEXT[BKINDX]
RMCXXX=BKINDX; !Internal error -- <reason>
COMPILETIME MSG$TAB$SIZE=BKINDX;
! REMEMBER TOTAL NUMBER OF ERROR MESSAGES
!++
!
! ***** END OF RMCCOM.REQ *****
!
!--