cdc:nos2.source:nam5871:nmi_rte
Table of Contents
NMI=RTE
Table Of Contents
- [00003] FILE ROUTING PROCESSOR
Source Code
- NMI=RTE.txt
- *DECK NMI=RTE
- IDENT ROUTEM
- TITLE FILE ROUTING PROCESSOR
- *IF -DEF,EXCST
- COMMENT ROUTEM - FILE ROUTING/ENCSF FUNCTION
- *ENDIF
- *IF DEF,EXCST
- COMMENT ROUTEM - FILE ROUTING/EXCST FUNCTION
- *ENDIF
- ENTRY ROUTEM
- USE /ROUTCOM/
- LFN BSS 1
- CODE BSS 1
- TYPERT BSS 1
- RTEOT BSS 1 ORIGIN TYPE (BINARY)
- RTESC BSS 1 SVC CLASS (CHAR IF PRESENT)
- USE *
- USE /TERMCOM/
- TCCNT BSS 1
- LCLBFR BSS 65 BFR SPACE FOR BEGINIP / SAVE SPACE
- USE *
- ** ROUTEM
- *
- * PARAMETERS PASSED THRU COMMON:
- * LFN (WORD 1) = NAME OF THE FILE TO BE ROUTED
- * CODE (WORD 2)= ROUTE CODE (0=INPUT, 1=OUTPUT)
- *
- * RETURNED PARAMS:
- * FETADDR = SYSTEM ASSIGNED JOB NAME
- * CODE = 0, SUCCESSFULL ROUTE OPERATION
- * = 27, FNT FULL
- * = 30, LOCAL FILE LIMIT
- * = 33 DEFFERRED BATCH JOB LIMIT
- * GENERAL COMMENTS:
- * THE FILE TO BE ROUTED HAS TO RESIDE
- * ON A Q-DEVICE AND HAS TO CONTAIN A JOB.
- * THE USER NUMBER MUST HAVE BEEN VALIDATED
- * PRIOR TO THE CALL TO THIS ROUTINE.
- * AN INVALID USER NUMBER IN A ROUTED JOB, WILL FORCE AN
- * UNCONDITIONAL ABORT BY THE SYSTEM.
- *
- * ROUTEM IS USED TO ROUTE THE NETWORK START-UP
- * JOBS TO THE INPUT QUEUE AND START NIP
- EJECT
- PARAMS BSSZ 7 ROUTE PARAMETER LIST
- BSSZ 8 EXTENDED PARAM LIST
- W1 VFD 14/0,3/5 FORMS CODE
- VFD 7/0,12/2CIN DISPOSITION CODE
- VFD 6/0,1/1 RTRN SYS ASSIGNED JOBNAME
- VFD 4/0,1/1 RETURN ERROR CODE
- VFD 2/1 FORMS CODE FLAG
- VFD 5/0,1/1 DISP CODE FLAG
- VFD 2/0,2/2 ROUTE TO CENTRAL SITE
- W2 VFD 24/0
- VFD 12/2HLP LINE PRINTER
- VFD 6/0
- VFD 18/22B PRINT ANYWHERE
- OUN VFD 42/0LSYSTEMX,18/0
- SPACE 4
- ROUTEM EQ *+1
- MX6 0 CLEAR PARAMS AREA
- SB1 1
- SA6 PARAMS+1
- DUP 13,1
- SA6 A6+B1
- SA2 LFN
- RJ STRIP55
- SA6 A2
- ZR X2,GETJNAM FILE NAME MISSING
- SA2 CODE
- SX3 1000B
- BX4 X2*X3
- NZ X4,RSUB IF NIP
- MX0 42
- SA1 LFN
- BX7 X1*X0 ISOLATE LFN
- SX4 4000B SET
- BX7 X7+X4 FORCED ORIGIN FLAG
- SA7 PARAMS IN WD-0 OF DSP BLOCK
- SA2 CODE GET INPUT/OUTPUT QUEUE FLAG
- SX5 7B
- BX2 X2*X5
- SB2 X2
- SA3 W1+B2 PICK UP ROUTE PARAMETERS
- BX6 X3
- SA2 A2 GET CODE FOR SUBSYS FLAG
- LX2 3 CODE = XXXX XXXX XXXX XXXX XSXX
- BX7 X4*X2 ADD SUBSYSTEM FLAG
- BX6 X6+X7 (IF PRESENT IN PARAM)
- SA6 A7+B1 TO DSP CALL BLOCK / FET+1
- BX0 X7 SAVE SUBSYSTEM FLAG IN X0
- NZ X0,RT0 IF SUBSYSTEM
- SA1 RTEOT PICK UP OT
- NZ X1,RT1 IF NOT SYOT
- RT0 BSS 0
- SX5 100B SET EXT PARAM BIT
- BX6 X5+X6
- SA6 A6
- SA3 OUN SET OWNER USERNAME
- BX7 X3
- SA7 PARAMS+10B
- SX7 2
- SA7 A7-B1 / FET+7
- ZR X0,RT1 IF NOT SUBSYSTEM
- SA2 LFN PUT LFN IN SUBSYSNAME
- MX0 18
- BX7 X0*X2
- LX7 18
- SA7 A7-B1 / FET+6
- EQ RT2
- *
- RT1 BSS 0
- SA1 RTEOT PICK UP OT
- LX1 1 PLACE
- SA2 A7 IN
- BX7 X1+X2 DSP
- SA7 A7 CALL BLOCK / FET+0
- NZ X1,RT2 IF NOT SYOT
- SA3 RTESC WAS SC SPFD
- ZR X3,RT2 NO
- LX3 36 SVC CLASS
- SA5 PARAMS+4 PARAMETER
- BX7 X3+X5 TO DSP
- SA7 A5 CALL BLOCK / FET+4
- LX4 9 SET
- BX6 X6+X4 FORCED SC FLAG
- SA6 A6 IN DSP CALL BLOCK / FET+1
- RT2 BSS 0
- *
- SA1 PARAMS SET STATUS MESSAGES
- RJ SMS1
- SA5 TYPERT IN TESTING MODE IF NON-ZERO
- NZ X5,RT3
- ROUTE PARAMS,R
- *
- RT3 BSS 0
- SA1 PARAMS
- SX7 77B
- MX0 42
- BX6 X0*X1
- SA6 LFN RETURN SYSTEM ASSINGED JOB NAME
- AX1 12 POSITION ERROR CODE
- BX7 X7*X1
- SA7 CODE ROUTE ERROR HAS BEEN ENCOUNTERED
- SA1 PARAMS
- RJ SMS2 SEND ROUTE MESSAGE
- EQ ROUTEM
- GETJNAM BSS 0
- SX6 88 TEMPORARY ERROR CODE FOR PASSING A 0
- * LFN
- SA6 CODE
- EQ ROUTEM
- EJECT
- STRIP55 EQ *+1S17 ENTRY/EXIT
- MX0 60-6 VALUE IN X2
- SX6 55B
- SB1 1
- SB4 10
- S55A LX2 6
- BX3 -X0*X2
- IX3 X3-X6 SEE IF BLANK
- NZ X3,S55B
- BX2 X0*X2 SET TO 0 IF BLANK
- S55B SB4 B4-B1
- NE B4,B0,S55A
- BX6 X2 MOVE TO X6 WHEN DONE
- EQ STRIP55
- SPACE 4,8
- FILL55 EQ *+1S17 ENTRY/EXIT
- MX0 60-6 VALUE IN X1
- SX6 55B
- SB1 1
- SB4 10
- F55A LX1 6
- BX3 -X0*X1
- NZ X3,F55B
- BX1 X1+X6 ADD IN A BLANK
- F55B SB4 B4-B1
- NE B4,B0,F55A
- BX6 X1 MOVE TO X6 WHEN DONE
- EQ FILL55
- MVED MACRO VAL,EDFLD,BITS
- SA1 VAL
- RJ =XCOD=
- SA2 EDFLD
- MX0 60-BITS
- BX2 X0*X2
- BX6 -X0*X6
- BX6 X6+X2
- SA6 A2
- ENDM
- SMS1 EQ *+1S17
- MX0 60-18
- SA2 A1 FET+0
- BX1 X0*X1
- MX0 6
- + LX1 6
- BX3 X0*X1 RIGHT JUSTIFY NAME
- NZ X3,*
- RJ FILL55
- SA6 RTMSG STARTING FILE NAME
- MX0 60-18
- BX6 -X0*X2
- SA6 F0A
- SA2 A1+B1 FET+1
- MX0 60-21
- BX6 -X0*X2
- SA6 F1A
- SA2 A2+3 FET+4
- MX0 60-12
- LX2 24
- BX6 -X0*X2
- SA6 F4A
- SA2 A2+2 FET+6
- MX0 60-18
- BX6 -X0*X2
- SA6 F6A
- SA2 A2+B1 FET+7
- BX6 -X0*X2
- SA6 F7A
- EQ SMS1
- SPACE 4,8
- SMS2 EQ *+1S17
- MX0 60-18
- SA2 A1 FET+0
- BX1 X0*X1 RETURNED SYSTEM NAME
- RJ FILL55
- SA6 RTMSG+3
- SX6 77B 12 BIT ERROR CODE
- LX2 60-12
- BX6 X6*X2
- SA6 F0B
- MVED F0B,RTMS3+2,36
- MESSAGE RTMSG,0,RECALL
- SA5 TYPERT
- ZR X5,SMS2B TESTING IF NON-ZERO
- SMS2A BSS 0
- MVED F0A,RTMS2+0,36
- MVED F1A,RTMS2+1,42
- MVED F4A,RTMS2+2,24
- MVED F6A,RTMS2+3,36
- MVED F7A,RTMS2+4,36
- MESSAGE RTMS2,0,RECALL
- SMS2B BSS 0
- SA5 F0B CHECK ERROR CODE
- ZR X5,SMS2C
- MESSAGE RTMS3,0,RECALL
- SMS2C BSS 0
- EQ SMS2
- ** COPYNRF
- *
- COPYNRF EQ *+1S17
- SB1 1
- OPEN NRF1,WRITE,R CREATE FILE NRF1
- REWIND BEGINIP REWIND FILE NIP
- SKIPF BEGINIP,1 SKIP 1 RECORD
- READ BEGINIP,1 READ 1 LOGICAL RECORD
- CPYNRF1 BSS 0
- READW BEGINIP,WBUF,WBUFL
- NG X1,COPF IF EOF OR EOI ENCOUNTERED
- ZR X1,CPYNRF2 IF FULL BUFFER
- WRITEW NRF1,WBUF,X1-WBUF COPY RECORD IN WBUF TO NRF1
- WRITER NRF1,R WRITE END-OF-RECORD
- REWIND NRF1
- OPEN NRF2,WRITE,R CREATE FILE NRF2
- READ BEGINIP,1 READ 1 LOGICAL RECORD
- CPYNRF3 BSS 0
- READW BEGINIP,WBUF,WBUFL
- NG X1,COPF IF EOF OR EOI ENCOUNTERED
- ZR X1,CPYNRF4 IF FULL BUFFER
- WRITEW NRF2,WBUF,X1-WBUF COPY RECORD IN WBUF TO NRF2
- WRITER NRF2,R WRITE END-OF-RECORD
- REWIND NRF2
- COPF REWIND BEGINIP
- EQ COPYNRF
- *
- CPYNRF2 BSS 0
- WRITEW NRF1,WBUF,WBUFL
- EQ CPYNRF1
- *
- CPYNRF4 BSS 0
- WRITEW NRF2,WBUF,WBUFL
- EQ CPYNRF3
- RTMSG DIS ,* FILNAME ROUTED, JOB NAME - XXXXXXXXXX*
- RTMS2 DIS ,* 0=AAAAAA 1=BBBBBBB 4=CCCC 6=DDDDDD 7=EEEEEE*
- RTMS3 DIS ,* ERROR IN ROUTE FCN. EC=XXXXXXB*
- F0A VFD 60/0
- F1A VFD 60/0
- F7A VFD 60/0
- F0B VFD 60/0
- F4A BSS 1
- F6A BSS 1
- NBUFL EQU 65
- PBUFL EQU 65
- WBUFL EQU 65
- BSS 0
- NRF1 FILEB NBUF,NBUFL,(FET=6)
- BSS 0
- NRF2 FILEB PBUF,PBUFL,(FET=6)
- NBUF BSS NBUFL
- PBUF BSS PBUFL
- WBUF BSSZ WBUFL
- EJECT
- *IF -DEF,EXCST
- ** RSUB
- * WE GET HERE WHEN NIP IS TO BE EXECUTED. IN THIS
- * CASE, WE HAVE WRAPPED UP ALL PROCESSING AND WILL
- * TRANSFER CONTROL TO NIPS JOB CONTROL, NEVER TO
- * RETURN.
- *
- RSUB BSS 0 ENTRY
- SA1 BEGINIP
- MX0 42
- BX1 -X0*X1
- SA2 LFN
- BX6 X1+X2
- SA6 A1
- SA1 BEGINIP
- RJ SMS1
- RJ COPYNRF COPY NRF1/NRF2
- SA5 TYPERT IN TESTING MODE IF NON-ZERO
- NZ X5,RS2 JUST RETURN IF TESTING
- ENCSF BEGINIP
- PSCSF BEGINIP
- ENDRUN
- RS2 BSS 0
- SA1 BEGINIP
- RJ SMS2
- EQ ROUTEM
- BEGINIP FILEB LCLBFR,65,(FET=8)
- RESTORE VFD 60/0
- SPACE 4
- *ENDIF
- *IF DEF,EXCST
- ** RSUB
- * WE GET HERE WHEN NIP IS TO BE EXECUTED. IN THIS
- * CASE, WE HAVE WRAPPED UP ALL PROCESSING AND WILL
- * TRANSFER CONTROL TO NIPS JOB CONTROL, NEVER TO
- * RETURN.
- *
- RSUB BSS 0 ENTRY/NO EXIT
- SA1 BEGINIP+1
- MX0 6 SET CTL CARD BUFFER
- BX5 X0*X1 SAVE PERIOD (.)
- SA1 BEGINIP ISOLATE (BEGIN,,)
- MX0 42
- BX4 X0*X1
- SA1 LFN GET FIRST 3 CHAR OF LFN
- MX0 18
- BX3 X0*X1
- LX3 18 MUST BE AT LEAST 3 CHAR (NIP+++)
- BX6 X3+X4
- SA6 BEGINIP SAVE (BEGIN,,NIP)
- BX1 -X0*X1 CLEAR OUT (NIP)
- LX1 18 READJUST AND ADD IN PERIOD
- SB1 1
- SB4 10
- MX0 6
- RS1 BX2 X0*X1
- ZR X2,RS3
- LX1 6
- SB4 B4-B1
- NE B0,B4,RS1
- RS3 BX6 X1+X5 PUT IN THE PERIOD (.)
- RS5 LX6 6
- SB4 B4-B1
- NE B0,B4,RS5
- SA6 A6+B1
- EXCST BEGINIP
- EQ ROUTEM
- BEGINIP DIS ,*BEGIN,,NIP.*
- SPACE 4
- *ENDIF
- END
cdc/nos2.source/nam5871/nmi_rte.txt ยท Last modified: 2023/08/05 17:22 by Site Administrator