IDENT 1MI,HST PERIPH BASE MIXED SST SYSCOM *COMMENT 1MI - TERMINAL I/O DRIVER. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. HST TITLE 1MI - TERMINAL I/O DRIVER. HST SPACE 4,10 *** 1MI - TERMINAL I/O DRIVER. * * R. V. SAMORA. 82/05/30. HST SPACE 4,10 *** *1MI* HIGH SPEED TERMINAL SUPPORT (HSTS) IMPROVES THE * INTERACTIVE I/O PERFORMANCE OF IAF BY REMOVING QUEUING DELAYS * AND ALLOWING INTERACTIVE I/O TO PROCEED WITHOUT MANDATORY * ROLLOUT OF THE INTERACTIVE USER PROGRAM. THIS FEATURE, * ALTHOUGH INTENDED FOR HIGH SPEED TERMINALS PRIMARILY, * IMPROVES SYSTEM PERFORMANCE NOT ONLY IN THE AREA OF CHARACTER * THROUGHPUT BUT REDUCES SYSTEM OVERHEAD BY KEEPING INTERACTIVE * JOB MOVEMENT AT A MINIMUM. HST SPACE 4,10 *** CALL. * * *T IR 18/*1MI*, 1/A, 5/CP, 1/T, 17/, 18/FET * A SET IF AUTO RECALL DESIRED. * CP CONTROL POINT OF REQUESTOR. * T ZERO IF THIS PP HAS THE TINW/TIOW INTERLOCK. * FET FET ADDRESS. * *T MB 1/S, 5/, 6/CP, 6/RC, 18/, 12/FP, 1/A, 1/, 4/IF, 3/, 3/RT * S SET BY *CPUMTR* IF *1MI* STARTED FROM RECALL STACK. * CP UNUSED (WARNING - SOMETIMES SET BY *CPUMTR*). * RC REASON CODE WHY *1MI* ENTERED RECALL. * FP FIRST POT IN CHAIN PRIOR TO RECALL. * A SET IF MONITOR FUNCTION REJECTED BECAUSE IAF ABORTED. * IF *CIO* INTERNAL FUNCTION CODE (SEE *COMSCIO*). * RT MONITOR FUNCTION REJECTION COUNT. * *T MB+1 12/0, 24/IN, 24/OUT *T MB+2 6/0, 6/FETL, 24/FIRST, 24/LIMIT * FETL FET LENGTH IN CM WORDS. * FET POINTERS ARE TRANSFERED ONLY ON INITIAL *1MI* CALL. HST SPACE 4,10 *** DAYFILE MESSAGES. * * * FET ADDRESS OUT OF RANGE AT NNN.* * FET ADDRESS .LE. 1 OR FET EXCEEDS FIELD LENGTH. * * * BUFFER ARGUMENT ERROR ON FFF AT NNN.* * A BUFFER POINTER DOES NOT CONFORM TO CONSTRAINTS- * - FIRST POINTER .LE. IN POINTER. * - FIRST POINTER .LE. OUT POINTER. * - OUT POINTER .LT. BUFFER LIMIT. * - IN POINTER .LT. BUFFER LIMIT. * - BUFFER LENGTH .LE. FIELD LENGTH. * * * INCORRECT I/O REQUEST ON FILE FFF AT NNN.* * I/O WAS REQUESTED ON A DETACHED INTERACTIVE * JOB WITH JOB TERMINATION OPTION SET TO COMPLETION. * * FFF REPRESENTS FILE NAME AS GIVEN IN THE FET. * NNN REPRESENTS THE FILE FET ADDRESS. HST SPACE 4,10 *** HANG CONDITIONS. * * *1MI* WILL HANG WITH THE *HNGM* MONITOR FUNCTION IF- * - INCORRECT ERROR CODE IS DETECTED DURING ERROR * PROCESSING. * - AN INCORRECT NETWORK BLOCKSIZE IS DETECTED FROM IAF. * * HANG CONDITIONS ARE SOFT IN THAT BY CLEARING THE APPROPRIATE * PPU OUTPUT REGISTER, *1MI* WILL ATTEMPT TO RECOVER ITS * CURRENT PROCESS AS GRACEFULLY AS POSSIBLE. HST SPACE 4,10 *** PROGRAMMING CONSIDERATIONS- * * *1MI* IN THE PROCESS OF HANDLING TERMINAL I/O WILL- * * 1) READ PROCESS- * * - ATTEMPT TO FLUSH *LOFW* OR RA+2 LIST OF FILE * ENTRIES BEFORE PROCESSING THE READ REQUEST. * * 2) WRITE PROCESS- * * - *1MI* WILL TRANSFER THE MAXIMUM AMOUNT OF OUTPUT * DATA SPECIFIC TO EACH TERMINALS DOWNLINE BLOCK * LIMIT WHICH IS CHARACTERISTIC OF ITS LINE SPEED. * - PPU RECALL IS USED BETWEEN *VADO* OUTPUT DOWNLINE * *TSEM* FUNCTION REQUESTS TO IAF. * - IN THE EVENT THE USER JOB SHOULD ROLL FROM THE * CONTROL POINT WHILE *1MI* IS IN PPU RECALL, * ROUTINE *1RO* WILL CONTINUE THE OUTPUT PROCESS * STARTED BY *1MI* WHETHER EXPLICIT OR IMPLICIT * OUTPUT REQUEST VIA LIST OF FILES PROCESSING. * - BUFFERED WRITE ON A FULL OUTPUT BUFFER * WITH NO *EOL* BYTE RESULTS IN A ROLL OF * THE USER JOB TO ALLOW *1RO* TO ASSURE * OUTPUT BUFFER FLUSH COMPLETION. * * 3) MONITOR FUNCTION REJECTION PROCESSING- * * - IF A *TGPM* OR *TSEM* MONITOR FUNCTION IS * REJECTED BECAUSE IAF IS BUSY, *1MI* WILL GO INTO * PP RECALL. WHEN RESTARTED, *1MI* WILL THEN * DROP ANY POTS CURRENTLY HELD AND START OVER. * - IAF INACCESSIBILITY DETECTED THROUGH EITHER * FUNCTION REJECTION OR *1MI* PRESET FORCES * SUSPENSION ROLLOUT OF THE USER JOB CAUSING * JOB DETACHMENT TO ALLOW SUBSEQUENT USER * RECOVERY. * * 4) MULTIPLEXOR TERMINAL CHARACTERISTICS- * * - BECAUSE OF THE LACK OF TYPEAHEAD FOR MULTIPLEXOR * TERMINALS, THE USER JOB STEMMING FROM TERMINALS * OF THIS TYPE WILL ALWAYS ROLL FROM THE CONTROL * POINT ON I/O REQUESTS. HST SPACE 4,10 ** RECALL TIME PERIODS (MILLISECONDS) RECMS1 EQU 10D JOB ACTIVE WITH NO READY DATA RECMS2 EQU 100D IAF REQUEST QUEUE REJECTION ** REASON CODES FOR WHY *1MI* MIGHT GO INTO RECALL. LOC 0 TALR BSS 1 IAF BUSY, TRY AGAIN LATER TDOR BSS 1 *VADO* *TSEM* MONITOR FUNCTION REJECTED TPOR BSS 1 *VDPO* *TSEM* MONITOR FUNCTION REJECTED LOC *O ** ASSEMBLY CONSTANTS. IAFF EQU 4000 FUNCTION REJECTED BECAUSE IAF ABORTED TTB EQU 4000 TIOW/TINW BUSY, FROM *CPUMTR* IN IR+2 EJT$ EQU 1 ASSEMBLE EJT ADDRESSING (*COMPGFP*) HST SPACE 4,10 ** COMMON DECKS. *CALL,COMPMAC *CALL,COMSACC *CALL,COMSCIO *CALL,COMSCPS *CALL,COMSEJT *CALL COMSJCE *CALL,COMSPIM QUAL REM *CALL,COMSREM QUAL *CALL,COMSSSJ *CALL,COMSTCM HST SPACE 4,10 ** DIRECT LOCATION ASSIGNMENTS. TT EQU T6 - T7 TERMINAL TABLE ADDRESS NF EQU 15 NFL/100B T8 EQU 16 SCRATCH T9 EQU 17 SCRATCH PA EQU T8 - T9 IAF POT MEMORY ADDRESS MB EQU 20 - 24 MESSAGE BUFFER PARAMETERS FROM *PPR* MB1 EQU 25 - 31 MESSAGE BUFFER + 1 MB2 EQU 32 - 36 MESSAGE BUFFER + 2 CD EQU MB1 SCRATCH BUFFER. CN EQU MB2 SCRATCH BUFFER BS EQU 37 - 43 BUFFER STATUS FN EQU BS FILE NAME FC EQU 44 *1MI* FUNCTION CODE TN EQU 45 INTERACTIVE TERMINAL NUMBER TA EQU 46 INTERACTIVE REFERENCE ADDRESS PP EQU 47 CURRENT POT POINTER WC EQU 57 CM TRANSFER WORD COUNT FT EQU 60 - 61 BUFFER FIRST WORD ADDRESS LM EQU 62 - 63 BUFFER LAST WORD ADDRESS IN EQU 64 - 65 BUFFER IN POINTER OT EQU 66 - 67 BUFFER OUT POINTER ERRNZ OT-FT-6 FET DIRECT CELLS MUST BE CONTIGUOUS ERRNZ /CIO/RDF CODE DEPENDS ON INTERNAL READ FUNCTION ERRNZ /CIO/WTF-1 CODE DEPENDS ON INTERNAL WRITE FUNCTION HST TITLE MACRO DEFINITIONS. ** MACRO DEFINITIONS. HST SPACE 4,10 ** CFET - COMPUTE FET ADDRESS. * CFET N * * ENTRY *N* = FET CM WORD OFFSET. * * COMPUTES ABSOLUTE FET ADDRESS USING (IR+3 - IR+4) * * CALLS CAF. PURGMAC CFET CFET MACRO W RJM CAF GET ABSOLUTE ADDRESS IFC NE,$W$$,1 ADK W OFFSET IF REQUESTED ENDM HST SPACE 4,10 ** ERROR - PROCESS *1MI* ERROR CODE. * * ERROR EC * * *EC* = *1MI* ERROR CODE. PURGMAC ERROR ERROR MACRO EC LDK /CIOERR/EC LJM ERR PROCESS ERROR ENDM HST SPACE 4,10 ** MSG - DEFINE ERROR OPTIONS AND DAYFILE MESSAGES. * *ERR MSG (TEXT),EF,FETD * * ENTRY *ERR* = *COMSCIO* ERROR CODE. * *TEXT* = DAYFILE ERROR MESSAGE. * *EF* = CONTROL POINT ERROR FLAG TO SET. * *FETD* = FET DUMP OPTION. * * EXIT ERROR PROCESSING OPTIONS AND DAYFILE MESSAGE * ADDRESSES GENERATED PER FORMAT OF *TEPO* TABLE * DESCRIPTION. PURGMAC MSG MACRO MSG,ERR,TEXT,EF,FETD LOCAL A VFD 6/EF,5//CIOERR/ERR,1/FETD CON =Z*_TEXT_* A MICRO 1,,$TEXT$ A MICCNT A ERRNG 32D-A TEXT OVERFLOW CONDITION ENDM HST TITLE *1MI* MAIN PROGRAM. ORG PPFW HST RJM PRS PRESET *1MI* LDD FC *1MI* FUNCTION CODE LMN /CIO/WTF ZJP HST5 IF *1MI* WRITE FUNCTION AOM ANRA ANY OUTPUT SHOULD BE ENTIRELY FLUSHED UJN HST5 FLUSH ANY LIST OF FILE OUTPUT * PROCESS *1MI* READ FUNCTION. HST1 RJM CTI CHECK FOR TERMINAL INPUT ZJN HST1.1 IF NO INPUT FOUND RJM PTI PROCESS TERMINAL INPUT ZJN HST2 IF INPUT QUEUING WITHIN IAF IN PROCESS LJM DPP DROP PP * PROCESS NO INPUT ON A READ OPERATION. HST1.1 RJM GMX ZJN HST3 IF MULTIPLEXOR TERMINAL HST2 RJM CJA CHECK JOB ACTIVITY ZJN HST3 IF USER JOB INACTIVE LMK ICPS ZJN HST3 IF JOB IN *I* STATUS LMK ICPS&XCPS NJN HST4 IF JOB NOT IN RECALL HST3 LDK ROSR ROLL OUT JOB STD T0 RJM ROJ ROLL USER JOB HST4 LDK TALR LJM ERS ENTER RECALL STACK * PROCESS *1MI* WRITE FUNCTION. HST5 RJM CTO CHECK FOR TERMINAL OUTPUT ZJN HST10 IF NO OUTPUT RJM PTO PROCESS TERMINAL OUTPUT MJN HST2 IF IAF OUTPUT THRESHOLD REACHED HST10 LDD FC INITIAL *1MI* FUNCTION CODE LMK /CIO/RDF ZJP HST1 IF OUTSTANDING READ FUNCTION RJM CFN COMPLETE OUTPUT FET * UJN DPP DROP PPU HST SPACE 4,10 ** DPP - DROP PPU. DPP BSS 0 ENTRY MONITOR DPPM DROP PPU LJM PPR EXIT TO PP RESIDENT HST TITLE GENERAL SUBROUTINES. ANR SPACE 4,10 ** ANR - ASSURE NETWORK REQUIREMENTS. * * ENTRY (IR+3 - IR+4) = OUTPUT FET ADDRESS. * (CD+3 - CD+4) = MAXIMUM OUTPUT BUFFER CONTENT. * (BS - BS+4) = OUTPUT BUFFER STATUS. * (FT - FT+1) = BUFFER FIRST WORD ADDRESS. * (IN - IN+1) = BUFFER IN POINTER. * (OT - OT+1) = BUFFER OUT POINTER. * (LM - LM+1) = BUFFER LAST WORD ADDRESS. * (CD) = NETWORK BLOCK LIMIT CM WORD COUNT. * * EXIT (CD+2) = ACCEPTABLE CM WORD COUNT ENCOMPASSING * COMPLETE LOGICAL LINES. * (A) = LESS THAN ZERO IF NO COMPLETE LINES ARE * ENCOUNTERED WITHIN THE OUTPUT BUFFER. * * USES CM - CM+4, T2 - T4, CD+1 - CD+4. * * CALLS RBS. ANR SUBR ENTRY/EXIT * BEGINNING BUFFER SCAN IS FROM NETWORK BLOCK SIZE. LDD CD+3 COMPARE BUFFER CONTENT TO BLOCKSIZE SHN 14 LMD CD+4 SBD CD SBN 1 PJN ANR1 IF CONTENT GREATER THAN BLOCKSIZE * OUTPUT BUFFER IS SEARCHED FOR THE LAST *EOL* BYTE WHICH * MARKS THE ACCEPTABLE CM WORD TRANSFER COUNT SATISFYING * NETWORK REQUIREMENTS. LDD CD+3 PRESET BUFFER SEARCH PARAMETERS STD CD+1 LDD CD+4 STD CD+2 * BUFFER IS TRANSFERED AS IS IF FLUSH CONDITIONS PREVAIL. LDC ** BUFFER FLUSH PASS NETWORK REQUIREMENTS * LDC 1 ANRA EQU *-1 NJN ANRX IF WRITER,WRITEF,FLUSH OR READ FUNCTION * PRESET RUNNING *IN* POINTER PRIOR TO BUFFER SCAN. LDD IN CURRENT BUFFER *IN* POINTER STD T3 LDD IN+1 STD T4 RJM RBS SCAN BUFFER FOR *EOL* WITHIN BLOCKSIZE PJN ANRX IF EOL FOUND LDM PTOA LPN 77 NJN ANR0 IF BUFFER FULL LDM ANRB SBN 1 MJN ANRX IF SYNCHRONOUS TERMINAL AND NO EOL ANR0 LDD CD+4 SET WORD COUNT TO BUFFER CONTENTS - 1 SBN 1 STD CD+2 STM CODE SET NO RECALL SBN 1 LJM ANRX RETURN * ADJUST BUFFER SCAN PARAMETERS TO BEGIN AT BLOCKSIZE. ANR1 LDD CD NETWORK BLOCKSIZE CM WORD COUNT STD CD+2 SHN -14 STD CD+1 LDD OT BUFFER *IN* IS SET TO *OUT* PLUS BLOCKSIZE SHN 14 LMD OT+1 ADD CD+2 STD T3+1 RUNNING *IN* POINTER SHN -14 STD T3 SBD LM SHN 14 LMD T3+1 SBD LM+1 MJN ANR2 IF RUNNING *IN* IS LESS THAN *LIMIT* ADD FT+1 BUFFER WRAP RUNNING *IN* POINTER STD T3+1 SHN -14 ADD FT STD T3 ANR2 RJM RBS SCAN BLOCKSIZE PORTION OF BUFFER PJP ANRX IF *EOL* BYTE WITHIN BLOCKSIZE * AT LEAST BLOCKSIZE-1 CM WORDS NEED BE TRANSFERED IF FLUSH * CONDITIONS PREVAIL DUE TO WRITER,WRITEF,FLUSH OR READ * FUNCTION IS OUTSTANDING. LDC 0 * LDC 1 (IF TC .LE. 8, ASYNC LINE) ANRB EQU *-1 ADM ANRA BUFFER FLUSH CONDITIONS NJN ANR3 IF FLUSH REQUIRED * BUFFERED WRITE FUNCTION REQUIRES TOTAL SCAN FOR *EOL*. LDD IN PRESET REST OF BUFFER SCAN STD T3 LDD IN+1 STD T3+1 LDD CD+3 INCLUDE TOTAL BUFFER CONTENT STD CD+1 LDD CD+4 STD CD+2 RJM RBS SCAN MAXIMUM BUFFER CONTENT FOR *EOL* MJP ANRX IF NO *EOL* BYTE WITHIN TOTAL BUFFER * NETWORK BLOCKSIZE-1 CM WORDS ARE TRANSMITTED TO * FACILITATE MAXIMUM NETWORK TRANSFER WHILE ALLOWING FOR * CONTROL BYTE PROCESSING DURING CHARACTER CONVERSION * WITHIN IAF. ANR3 LDD CD NETWORK BLOCKSIZE CM WORD COUNT SBN 1 STD CD+2 BLOCKSIZE-1 CM TRANSFER UJP ANRX RETURN CAF SPACE 4,10 ** CAF - COMPUTE ABSOLUTE FET ADDRESS. * * ENTRY (IR+3 - IR+4) = RELATIVE FET ADDRESS. * * EXIT (A) = ABSOLUTE FET ADDRESS. CAF SUBR ENTRY/EXIT LDD IR+3 RELATIVE ADDRESS LPN 37 SHN 6 ADD RA SHN 6 ADD IR+4 ABSOLUTE ADDRESS UJN CAFX RETURN CEF SPACE 4,10 ** CEF - CHECK FOR ERROR FLAG. * * EXIT (A) = ERROR FLAG, IF ONE EXISTS. * (CM+2) = 1, IF USER BREAK ERROR FLAG AND JOB HAS * EXTENDED REPRIEVE SELECTED. * 0, OTHERWISE. * * USES CM - CM+4, T0. CEF2 LDD T0 RETURN ERROR FLAG CEF SUBR ENTRY/EXIT LDD CP ADK STSW CHECK FOR ERROR FLAG CRD CM LDN 0 STD CM+2 LDD CM+1 ZJN CEFX IF NO ERROR FLAG PRESENT STD T0 LMK TIET ZJN CEF1 IF USER BREAK ONE LMK TAET&TIET NJN CEF2 IF NOT A USER BREAK TWO CEF1 LDD CP ADK EECW CHECK FOR EXTENDED REPRIEVE CRD CM LDD CM SHN 0-12 LPN 1 STD CM+2 UJN CEF2 RETURN CFN SPACE 4,10 ** CFN - COMPLETE FUNCTION. * * ENTRY (IR+3 - IR+4) = FET ADDRESS NEEDING COMPLETION. * (BS - BS+4) = FET BUFFER STATUS. * * EXIT FET SET TO COMPLETION STATUS. * CONTROL POINT AREA FET POINTER REMOVED FROM * *TINW* OR *TIOW*. * * USES CM - CM+4. * * CALLS VAD. * * MACROS MONITOR. CFN SUBR ENTRY/EXIT LDD FC LMK /CIO/RDF NJN CFN1 IF NOT A READ FUNCTION LDN TINW TERMINAL INPUT POINTER STM CFNC+1 *UADM* REPLACEMENT FIELD LDN 18D FIELD POSITION SHN 6 RAM CFNC+2 * UPDATE CONTROL POINT AREA *TIOW* OR *TINW*. CFN1 LDN ZERL PRESET *UADM* REQUEST WORD CRD CM LDD MA CWM CFNC,ON WRITE REQUEST LDN 1 ONE *UADM* REQUEST WITH NO DROP OF PP STD CM+1 STD CM+2 MONITOR UADM UPDATE CONTROL POINT AREA * SET FET COMPLETION STATUS. LDD BS+4 SCN 1 LMN 1 STD BS+4 * REVALIDATE FET+0 ADDRESS. LDD IR+3 FET ADDRESS LPN 37 SHN 14 LMD IR+4 RJM VAD VALIDATE FET+0 PRIOR TO WRITE ZJN CFN2 IF ADDRESS NOT WITHIN FL CFNB CWD BS REWRITE FET+0 * PSN INHIBIT WRITE OF FET+0 (*ERX*) CFN2 UJP CFNX RETURN CFNC VFD 12/CSFS,12/TIOW,6/0,6/18D,24/** CHG SPACE 4,10 ** CHG - CONDITIONALLY HANG PP. * * ENTRY (A) = ERROR FLAG. * * EXIT (A) = ZERO. * * USES CM - CM+4. * * MACROS MONITOR. CHG SUBR ENTRY/EXIT STD CM+2 SET ERROR FLAG LDM CHG GET ADDRESS WHERE ERROR DETECTED STD CM+1 MONITOR CHGM CONDITIONALLY HANG PP UJN CHGX RETURN CID SPACE 4,10 ** CID - COPY INPUT DATA. * * ENTRY (IR+3 - IR+4) = INPUT FET ADDRESS. * (BS - BS+4) = BUFFER STATUS. * (PP) = INPUT AHEAD POT CHAIN POINTER. * (TN) = TERMINAL CONNECTION NUMBER. * * EXIT INPUT AHEAD TRANSFERED TO FET. * INPUT AHEAD POT CHAIN RELEASED. * * USES BS+3 - BS+4, CM - CM+4, T1 - T4, PP, WC. * * CALLS CFN, CIB, MRJ, RRR, SPA, SRR, UPP, WBB. * * MACROS CFET, MONITOR. CID SUBR ENTRY/EXIT LDK ZERL RESET *TSEM* REQUEST CRM WDPO,ON LDD PP BEGINNING POT CHAIN POINTER STD T2 POT CHAIN TRAILER STM WDPO+3 SET TO DROP ENTIRE POT CHAIN LDD TN STM WDPO+4 LDN /REM/VCPC TRANSFER CM WORD COUNT STD WC LDN 0 SET CM TRANSFER TALLY STD T3 * EOR/EOF STATUS DEPENDS ON BUFFER CONTENT. CID1 RJM SRR SET R-REGISTER TO IAF RA RJM UPP UPDATE INPUT AHEAD POT POINTER STM CIDB * SCAN THIS POSSIBLE LAST POT MEMORY FOR EOL BYTE. LDD T2 RESTORE PREVIOUS POT POINTER STD PP RJM SPA SET POT MEMORY ADDRESS CRM BUFF,WC RJM RRR RESTORE R-REGISTER LDN 0 STD WC STD T4 CID2 LDM BUFF+4,T4 ZJN CID3 IF EOL BYTE ENCOUNTERED LDD T4 SCAN NEXT CM WORD ADN 5 STD T4 AOD WC ACCEPT NEXT CM WORD SBN /REM/VCPC+1 MJN CID2 IF NOT FULL POT MEMORY SCAN SOD WC UJN CID5 TRANSFER THIS FULL POT MEMORY * ASSURE EOF CONDITION DETECTION. CID3 LDD WC LAST POT MEMORY CM WORD COUNT NJN CID4 IF AT LEAST TWO CM WORDS LDD T3 CHECK EOF CONDITION ADM BUFF ADM BUFF+1 ADM BUFF+2 ADM BUFF+3 ZJP CID8 IF EOF CONDITION CID4 AOD WC AOM CIDA LAST POT MEMORY WRITTEN * ENTER WRITE LOOP TO TRANSFER TO INPUT FET BUFFER. CID5 LDD T2 PREVIOUS POT CHAIN POINTER STD PP RJM CIB CHECK INPUT BUFFER THRESHOLD SBD WC PJN CID6 IF ROOM FOR COMPLETE TRANSFER ADD WC BIAS CM WORD TRANSFER COUNT ZJN CID7 IF BUFFER THRESHOLD STD WC TRANSFER MAXIMUM CID6 LDD WC STD T1 TRANSFER WORD COUNT FOR *WBB* RAD T3 COMPLETE TRANSFER TALLY LDC BUFF BEGINNING READ ADDRESS RJM WBB WRITE BINARY BUFFER LDN 0 CIDA EQU *-1 NJN CID7 IF LAST POT MEMORY WRITTEN LDC ** UPDATE POT MEMORY POINTER CIDB EQU *-1 STD T2 STD PP NJP CID1 IF NOT EOR/EOF * FORCE EOR/EOF ON INPUT FET. LDN 0 STD T3 * COMPLETE READ OPERATIONS. CID7 LDN ZERL RESET ENDING *IN* POINTER CRD CM LDD IN STD CM+3 LDD IN+1 STD CM+4 CFET 2 *IN* POINTER OFFSET CWD CM REWRITE *IN* POINTER * COMPLETE EOR/EOF BUFFER STATUS. LDD BS+3 RESET APPROPRIATE EOR/EOF LEVEL SCN 74 STD BS+3 LDD T3 TRANSFER TALLY ZJN CID8 IF EOF LDN 4 INPUT LEVEL STATUS IS EOR RAD BS+3 LDN 20 SET EOR STM CIDC CID8 LDD BS+4 RESET BUFFER STATUS LPC 6002 LMC 30 (SET EOF TERMINATION) * LMC 20 (SET EOR TERMINATION) CIDC EQU *-1 STD BS+4 * *TINW* MUST BE CLEARED BEFORE ISSUING THE *VDPO* *TSEM* * REQUEST, BECAUSE IF THE *VDPO* IS REJECTED AND THE JOB ROLLS, * IAF WOULD MISTAKENLY THINK THE JOB WAS REQUESTING INPUT. RJM CFN COMPLETE INPUT OPERATION * RELEASE INPUT AHEAD POT CHAIN. LDC /REM/VDPO STM WDPO LDD MA CWM WDPO,ON LDK ZERL CRD CM MONITOR TSEM DROP POTS LDK TPOR CHECK FOR POSSIBLE *TSEM* REJECT RJM MRJ LJM CIDX RETURN CJA SPACE 4,10 ** CJA - CHECK USER JOB ACTIVITY. * * EXIT (A) = *STSW* CPU STATUS. * * USES CM - CM+4. CJA SUBR ENTRY/EXIT LDD CP CONTROL POINT ADDRESS ADN STSW STATUS CONTROL WORD CRD CM LDD CM SHN -11 CP STATUS ONLY UJN CJAX RETURN COD SPACE 4,10 ** COD - COPY OUTPUT DATA. * * ENTRY (IR+3 - IR+4) = OUTPUT FET ADDRESS. * (CD+2) = ACCEPTABLE CM WORD TRANSFER COUNT. * (PP) = DIRECT OUTPUT POT MEMORY CHAIN POINTER. * * EXIT DIRECT OUTPUT ASSIGNED TO OUTPUT POT MEMORY CHAIN. * (WC) = LAST POT MEMORY WORD COUNT. * * USES CD+2, PP, WC, CN - CN+4, T2 - T3. * * CALLS COB, RBB, RRR, SPA, SRR, UPP. COD SUBR ENTRY/EXIT * DUE TO IAF INTERNAL OUTPUT QUEUING, IT IS NECESSARY TO * BYPASS THE FIRST TWO POT MEMORY CM WORDS IN EVERY POT * MEMORY CHAIN ALLOCATED FOR OUTPUT TO ALLOW FOR IAF * INTERNAL QUEUE LINKAGE CONTROL. LDN /REM/VCPC-2 IAF POT MEMORY LENGTH-2 STD WC INITIAL CM WORD TRANSFER * TRANSFER DIRECT OUTPUT. COD1 LDD CD+2 CHECK ACCEPTABLE CM TRANSFER COUNT SBN /REM/VCPC-2 CODA EQU *-1 PJN COD2 IF AT LEAST ONE POT MEMORY TO TRANSFER ADN /REM/VCPC-2 BIAS FOR MAXIMUM TRANSFER CODB EQU *-1 STD WC COD2 LDD WC SET BUFFER TRANSFER COUNT *RBB* STD T3 LDC BUFF BEGINNING WRITE BUFFER ADDRESS *RBB* RJM RBB READ BINARY BUFFER RJM SRR SET R-REGISTER TO IAF RA RJM SPA SET POT MEMORY ADDRESS FOR THIS TRANSFER ADN 2 ALLOW FOR LINKAGE FIRST POT ONLY * PSN IF FIRST POT MEMORY PASSED CODC EQU *-1 CWM BUFF,WC TRANSFER OUTPUT RJM RRR RESTORE R-REGISTER LDD PP UPDATE LAST POT MEMORY WRITTEN STM WADO+2 AOM WADO+1 INCREMENT POT COUNT * UPDATE ACCEPTABLE TRANSFER COUNT. LDD CD+2 ACCEPTABLE CM WORD TRANSFER COUNT SBD WC CURRENT TRANSFER STD CD+2 LDN 0 INHIBIT SUCCESSIVE POT MEMORY OFFSET CODD EQU *-1 NJN COD3 IF FIRST POT MEMORY PASSED LDN 2 RAM CODA LDN 2 RAM CODB LDN PSNI STM CODC AOM CODD AOD WC NEGATE LINKAGE CONTROL OFFSET COUNT AOD WC * CONTINUE UNTIL NETWORK REQUIREMENT OR FLUSH COMPLETION. COD3 LDD CD+2 REMAINING ACCEPTABLE CM WORD COUNT ZJN COD4 IF NETWORK REQUIREMENT MADE RJM SRR SET R-REGISTER TO IAF RA RJM UPP UPDATE POT MEMORY RJM RRR RESTORE R-REGISTER LDD PP NJP COD1 IF POT MEMORY AVAILABLE * NETWORK REQUIREMENT MADE OR POT MEMORY EXHAUSTION. COD4 LDN ZERL COMPLETE TRANSFER PROCESS CRD CN LDN 2R"IB" *0014* BYTE STD CN END OF TRANSFER PRESET LDD WC ALLOW FOR POSSIBLE TERMINATOR SBN /REM/VCPC ZJN COD5 IF COMPLETE POT MEMORY WRITTEN RJM SRR SET R-REGISTER TO IAF RA RJM SPA SET POT MEMORY ADDRESS ADD WC LAST POT WORD COUNT CWD CN WRITE TRANSFER TERMINATOR RJM RRR RESTORE R-REGISTER * PRESET OUTPUT COMPLETION. COD5 LDK ZERL CRD CN RJM COB CHECK FOR REMAINING OUTPUT NJN COD6 IF BUFFER IS NOT EMPTY LDM ANRA ZJN COD7 IF NOT EOR OR EOF LDN 2 STD CN+4 UJN COD7 PLACE FLAG IN WORD TWO OF THE POT HEADER COD6 LDC 0 CHECK NO RECALL FLAG * LDC WC (IF NO RECALL - ONE WORD LEFT IN BUFFER) CODE EQU *-1 SET BY *ANR* NJN COD7 IF NO RECALL REQUIRED AOM PTOB ADDITIONAL OUTPUT REMAINS COD7 LDM WADO+3 GET ADDRESS OF FIRST POT STD PP RJM SRR SET R-REGISTER TO IAF RA RJM SPA ADN 1 CWD CN RJM RRR RESTORE R-REGISTER LJM CODX RETURN CTI SPACE 4,15 ** CTI - CHECK FOR TERMINAL INPUT. * * ENTRY (TT - TT+1) = TERMINAL TABLE ADDRESS. * (TN) = TERMINAL CONNECTION NUMBER. * * EXIT (IR+3 - IR+4) = INPUT FET ADDRESS. * (A) = TYPEAHEAD QUEUE POINTER. * (A) = ZERO IF NO INPUT AHEAD. * * USES CM - CM+4, IR - IR+4. * * CALLS GMX, RRR, SRR. CTI SUBR ENTRY/EXIT LDD IA REREAD ORIGINAL INPUT REGISTER CRD IR LDD IR+3 LPN 37 ADD IR+4 ZJN CTIX IF NO INPUT FET * CHECK FOR INPUT AHEAD QUEUE PREPROCESSED. RJM SRR SET R-REGISTER TO IAF RA LDD TT SHN 14 LMD TT+1 ADN /REM/VROT *VADI* REQUEST WORD CRD CM RJM RRR RESTORE R-REGISTER LDD CM+1 ZJN CTI1 IF QUEUE NOT PREPROCESSED STM PTIA INHIBIT UNECESSARY *VADI* FUNCTION UJP CTIX RETURN * READ TERMINAL INPUT TYPEAHEAD QUEUE FROM IAF. CTI1 RJM GMX MULTIPLEXOR TERMINALS REQUIRE PREPROCESS ZJP CTIX IF MULTIPLEXOR TERMINAL RJM SRR SET R-REGISTER TO IAF RA LDD TA IAF REFERENCE ADDRESS SHN 6 ADN /REM/VMST TERMINAL STATUS MESSAGE WORD CRD CM LDD CM+1 SHN 6 ADD TA SHN 6 ADD CM+2 ADD TN CRD CM READ TERMINAL MESSAGE WORD RJM RRR RESTORE R-REGISTER LDD CM+4 INPUT TYPEAHEAD QUEUE POINTER UJP CTIX RETURN CTO SPACE 4,15 ** CTO - CHECK FOR TERMINAL OUTPUT. * * ENTRY (TT - TT+1) = TERMINAL TABLE ADDRESS. * * EXIT (IR+3 - IR+4) = OUTPUT FET ADDRESS. * (CD+3 - CD+4) = MAXIMUM OUTPUT BUFFER CONTENT. * (A) = NONZERO IF TERMINAL OUTPUT. * * USES IR+3, IR+4, CM - CM+4, CD - CD+4. * * CALLS COB, RRR, SLF, SRR, STA, VFP. CTO SUBR ENTRY/EXIT LDN ZERL CRD CD * *TIOW* IS OUTPUT FET ADDRESS. LDD CP READ TERMINAL OUTPUT POINTER ADN TIOW CRD CM LDD CM+3 LPN 37 SHN 14 LMD CM+4 ZJN CTO1 IF NO OUTPUT POINTER STD IR+4 SHN -14 STD IR+3 UJN CTO2 CHECK OUTPUT BUFFER CONTENT CTO1 RJM SLF SEARCH LIST OF FILES ZJN CTO3 IF NO *LOFW* OR RA+2 LIST ENTRIES * RETURN OUTPUT BUFFER COUNT. CTO2 RJM VFP VERIFY FET PARAMETERS RJM COB CHECK OUTPUT BUFFER CONTENT STD CD+4 SHN -14 STD CD+3 ADD CD+4 CTO3 STM CTOA SAVE EXIT CONDITION RJM SRR SET R-REGISTER TO IAF RA RJM STA RESTORE TERMINAL TABLE ADDRESS RJM RRR RESTORE R-REGISTER LDM CTOA UJP CTOX RETURN CTOA CON 0 EXIT CONDITION DFS SPACE 4,10 ** DFS - DETERMINE FLUSH STATUS. * * THE REQUIREMENTS FOR A FILE TO BE FLUSHED ARE- * - FET MUST BE WITHIN FL. * - BUFFER MUST HAVE DATA IN IT. * - FET MUST NOT BE BUSY. * - CODE IN FET MUST BE A VALID *CIO* REQUEST. * - FILE MUST BE *OUTPUT* AND UNASSIGNED OR IT MUST BE * ASSIGNED TO TERMINAL EQUIPMENT. * * NOTE- ROUTINES *1RO*, *1AJ* AND *1MI* OBSERVE THE ABOVE * CONVENTIONS. * * ENTRY (T8 - T9) = FET ADDRESS. * * EXIT (A) = ZERO, IF ENTRY NOT A FLUSH CANDIDATE. * (CN - CN+4) = FIRST WORD OF FET. * * USES T1 - T7, CM - CM+4, CN - CN+4. * * CALLS VAD. DFS7 LDN 0 NOT A FLUSH CANDIDATE STATUS DFS SUBR ENTRY/EXIT LDD T8 READ FET PARAMETERS LPN 37 SHN 14 LMD T9 ADN 3 RJM VAD ZJN DFSX IF FET OUTSIDE FL CRD T3 READ OUT SBN 1 CRD T1 READ IN SBN 2 CRD CN READ FET+0 LDD CN+4 LPN 1 ZJN DFSX IF FET BUSY LDD T6 SBD T4 SHN 14 ADD T7 SBD T5 ZJN DFSX IF BUFFER EMPTY LDN DFSAL CHECK ACCEPTABLE *CIO* CALLS STD T1 LDD CN+3 LPN 77 NJP DFS7 IF FET ERRORS * SCAN ACCEPTABLE *CIO* CODES. DFS1 SOD T1 MJP DFS7 IF FET CODE NOT IN LIST LDM DFSA,T1 LMD CN+4 SCN 2 IGNORE BINARY BIT NJP DFS1 IF NOT VALID FET CODE LDD NF SET NFL SIZE + 1 SHN 6 ADN 1 STD T7 * SEARCH FNT ENTRIES FOR ASSIGNED FILE. LDC FNTN+LENF STD T6 DFS2 NFA T6,R READ FNT ENTRY CRD CM LDD CM COMPARE FILE NAMES ZJN DFS3 IF NO ENTRY LMD CN NJN DFS3 IF NO MATCH LDD CM+1 LMD CN+1 NJN DFS3 IF NO MATCH LDD CM+2 LMD CN+2 NJN DFS3 IF NO MATCH LDD CM+3 LMD CN+3 SCN 77 ZJN DFS5 IF MATCH DFS3 LDN LENF INCREMENT TO NEXT ENTRY RAD T6 SBD T7 MJN DFS2 IF NOT END OF FNT LDD CN CHECK FOR *OUTPUT* LMC 2ROU NJN DFS4 IF NOT *OUTPUT* LDD CN+1 LMC 2RTP NJN DFS4 IF NOT *OUTPUT* LDD CN+2 LMC 2RUT NJN DFS4 IF NOT *OUTPUT* LDD CN+3 SCN 77 ZJN DFS6 IF *OUTPUT* DFS4 UJP DFS7 FILE IS NOT A FLUSH CANDIDATE * EQUIPMENT ASSIGNMENT MUST BE *TTEQ*. DFS5 NFA T6,R CHECK EQUIPMENT ASSIGNMENT ADN FSTL CRD CM LDD CM LPC 777 LMN TTEQ NJN DFS4 IF NOT ASSIGNED TO *TT* DFS6 LDN 1 INDICATE OUTPUT AVAILABLE UJP DFSX RETURN HST SPACE 4,10 ** DFSA - TABLE OF CIO CODES TO FLUSH ON. * * ENTRY ONE WORD. * *T 12/*CIO* FUNCTION CODE. DFSA BSS 0 LOC 0 CON 1 FET COMPLETE STATUS CON 5 WRITE PRU CON 15 BUFFERED WRITE CON 25 WRITE EOR CON 35 WRITE EOF CON 105 WRITE NO REWIND CON 121 OPEN ALTER CON 145 OPEN WRITE REWIND CON 161 OPEN ALTER REWIND LOC *O DFSAL EQU *-DFSA *DFSA* TABLE LENGTH ERR SPACE 4,10 ** ERR - PROCESS ERROR. * * ENTRY (A) = ERROR CODE - *COMSCIO*. * * EXIT TO *ERX* TO PROCESS ERROR RESPONSE. * (ERRA) = ERROR CODE ON ENTRY. * * USES CM - CM+4. * * CALLS CFN, ERX. ERR BSS 0 ENTRY STM ERRA SAVE ERROR CODE RJM ERX PROCESS *1MI* ERROR RJM CFN COMPLETE FUNCTION LJM DPP DROP PP ERRA CON 0 *1MI* ERROR CODE ERS SPACE 4,10 ** ERS - ENTER RECALL STACK. * * ENTRY (A) = RECALL REASON CODE. * ALL OTHER PARAMETERS PRESET IN RCPW - RCPW+4. * * EXIT TO *PPR*. * * USES CM - CM+4. * * MACROS MONITOR. ERS BSS 0 ENTRY SHN 6 RAM RCPW+1 SAVE RECALL REASON CODE LDK ZERL CRD CM LDC RECMS1 DEFAULT TIME PERIOD FOR RECALL * LDC RECMS2 MONITOR FUNCTION REJECT RECALL TIME PERIOD ERSA EQU *-1 SHN 0 BIAS RECALL PERIOD REJECTION COUNT TIMES ERSE EQU *-1 STD CM+4 LDD IA STORE INPUT REGISTER CRD IR LDD MA CWM IR,ON REWRITE INPUT REGISTER TO MESSAGE BUFFER CWM RCPW,ON STORE RECALL PARAMETERS LDN PTMF TIMED RECALL CRITERIA STD CM+1 MONITOR RECM RECALL PPU LJM PPR EXIT TO *PPR* ERX SPACE 4,10 ** ERX - ERROR EXIT PROCESSOR. * * ENTRY (IR+3 - IR+4) = INPUT OR OUTPUT FET ADDRESS. * (BS - BS+4) = BUFFER STATUS. * (ERRA) = *CIOERR* ERROR CODE INDEX. * (FC) = *1MI* FUNCTION CODE. * * EXIT TO *DPP* IF INCORRECT ERROR CODE DETECTION. * ERROR FLAG SET IN CONTROL POINT PER ERROR OPTION. * DAYFILE ERROR MESSAGE RESPONSE ISSUED. * * USES T1, CM - CM+4, CN - CN+4. * * CALLS CHG, IDM, VAD. * * MACROS CFET, MONITOR. ERX SUBR ENTRY/EXIT LDC 22S9 FET ERROR STATUS = 22B RAD BS+4 SHN -14 RAD BS+3 LDN ZERL CRD CM LDN 0 PRESET *TEPO* TABLE SEARCH STD T1 * SEARCH *TEPO* TABLE FOR PROCESSING PARAMETERS. ERX1 LDN TEPOL *TEPO* TABLE LENGTH SBD T1 ZJN ERX2 IF TABLE LENGTH EXCEEDED LDM TEPO,T1 PROCESSING PARAMETERS SHN -1 LPN 37 SBM ERRA ZJN ERX3 IF SELECTION FOUND PJN ERX2 IF SELECTION PASSED AOD T1 ADVANCE TABLE SEARCH AOD T1 UJN ERX1 CONTINUE *TEPO* SCAN * HANG *1MI* ON INCORRECT ERROR DETECTION. ERX2 LDK PPET SET ERROR FLAG RJM CHG CONDITIONALLY HANG PP LJM DPP DROP PP * ISSUE APPROPRIATE DAYFILE RESPONSE AND SET ERROR OPTIONS. ERX3 LDM ERRA *CIOERR* ERROR CODE LMK /CIOERR/ARG NJN ERX4 IF NOT AN ARGUMENT ERROR LDN PSNI INHIBIT WRITE OF FET+0 STM CFNB ERX4 AOD T1 MESSAGE RESPONSE ADDRESS OFFSET LDM TEPO,T1 STM IDMA SOD T1 LDM TEPO,T1 READ ERROR PROCESSING OPTIONS SHN -6 ZJN ERX5 IF NO ERROR FLAG OPTION * SET CONTROL POINT ERROR FLAG. STD CM+1 MONITOR CEFM SET CONTROL POINT ERROR FLAG * SET FET DUMP OPTIONS. ERX5 LDM TEPO,T1 LPN 1 ZJN ERX6 IF NO FET DUMP OPTION LDD CP ADC PPDW PPU DUMP CONTROL WORD STD T1 CRD CM CFET 1 GET CURRENT FET LENGTH AND VALIDATE CRD CN LDD CN+3 SHN -6 ADN 5 INITIAL FET LENGTH STD CN+3 LDD IR+3 SHN 14 LMD IR+4 ADD CN+3 CURRENT FET LENGTH RJM VAD VALIDATE FET DUMP LENGTH ZJN ERX6 IF FET DUMP EXCEEDS FIELD LENGTH * SET FET ADDRESS AND DUMP WORD COUNT TO *PPDW*. LDD IR+3 LPN 77 SHN 14 LMD CN+3 WORD COUNT OF DUMP SHN 6 STD CM+3 LDD IR+4 STD CM+4 LDD T1 REWRITE *PPDW* CWD CM * SET UP DAYFILE ERROR MESSAGE RESPONSE. ERX6 RJM IDM ISSUE DAYFILE MESSAGE UJP ERXX RETURN HST SPACE 4,10 ** TEPO - TABLE OF ERROR PROCESSING OPTIONS AND DAYFILE * ERROR MESSAGES. * * ENTRY TWO WORDS ASCENDING ORDER PER *ERR* ERROR * CODE VALUE. * *T 6/EF, 5/ERR, 1/FETD *T, 12/ADDR * * EF = CONTROL POINT ERROR FLAG OPTION. * ERR = *CIOERR* ERROR CODE. * FETD = SET IF FET DUMP DESIRED ON ERROR TERMINATION. * ADDR = ADDRESS OF CORRESPONDING DAYFILE MESSAGE. TEPO BSS 0 LOC 0 ARG MSG (FET ADDRESS OUT OF RANGE),PPET,0 BUF MSG (BUFFER ARGUMENT ERROR ON ),PPET,1 IRQ MSG (INCORRECT I/O REQUEST ON FILE ),PPET,1 LOC *O TEPOL EQU *-TEPO GMX SPACE 4,10 ** GMX - GET MULTIPLEXOR STATUS. * * ENTRY (TA) = INTERACTIVE REFERENCE ADDRESS. * (TN) = TERMINAL CONNECTION NUMBER. * * EXIT (A) = ZERO IF MULTIPLEXOR TERMINAL TYPE. * * USES CM - CM+4. * * CALLS RRR, SRR. GMX0 LDN 0 MULTIPLEXOR TERMINAL TYPE GMX SUBR ENTRY/EXIT RJM SRR SET R-REGISTER TO IAF RA LDD TA INTERACTIVE REFERENCE ADDRESS SHN 6 ADN /REM/VNTP TERMINAL TABLE POINTER CRD CM RJM RRR RESTORE R-REGISTER LDD CM+2 ZJN GMXX IF NO NETWORK TERMINALS DEFINED SBN 1 (A) = HIGHEST MUX TERMINAL NUMBER SBD TN PJN GMX0 IF A MUX TERMINAL UJN GMXX RETURN IDM SPACE 4,10 ** IDM - SET UP AND ISSUE DAYFILE MESSAGE. * * ENTRY (BS - BS+4) = BUFFER STATUS. * (IDMA) = DAYFILE MESSAGE ADDRESS. * * EXIT DAYFILE MESSAGE ISSUED. * * USES T1, CM. * * CALLS ACS, ANS, DFM. IDM SUBR ENTRY/EXIT LDC BUFF SET BUFFER ADDRESS FOR *ACS*, *ANS* STD T1 LDC 1R *100 STI T1 LDC ** MOVE MESSAGE TO CHARACTER BUFFER IDMA EQU *-1 MESSAGE ADDRESS (*ERX*) RJM ACS ASSEMBLE CHARACTER STRING LDD BS+3 STD CM PRESERVE BUFFER STATUS SCN 77 STD BS+3 LDN BS MOVE FILE NAME RJM ACS ASSEMBLE NAME LDD CM RESTORE BUFFER STATUS FIELD STD BS+3 LDC =Z* AT * ADD * AT * RJM ACS ASSEMBLE STRING LDD IR+3 ADD FET ADDRESS LPN 77 SHN 14 LMD IR+4 RJM ANS ASSEMBLE NUMERIC STRING LDC =Z*.* ADD TERMINATOR RJM ACS ASSEMBLE TERMINATOR * ISSUE DAYFILE MESSAGE. LDC BUFF MESSAGE BUFFER ADDRESS FOR *DFM* RJM DFM ISSUE MESSAGE UJP IDMX RETURN ITA SPACE 4,15 ** ITA - INITIALIZE INTERACTIVE ACCESS. * * ENTRY SUBSYSTEM CONTROL TABLE TO BE SCANNED FOR * IAF ACCESSIBILITY. * * EXIT (TA) = IAF REFERENCE ADDRESS. * (A) = NONZERO IF IAF ACCESSIBLE. * * USES CM - CM+4, T1 - T5. * * CALLS PIR. ITA0 LDN 0 IAF INACESSIBLE STATUS ITA SUBR ENTRY/EXIT LDC SSCP SUBSYSTEM TABLE POINTER CRD CM LDD CM+2 TABLE ADDRESS LPN 37 SHN 14 LMD CM+3 CRD CM READ TABLE ENTRY LDD CM IAF ENTRY SHN 21-13 ACCESSIBILITY BIT PJN ITA0 IF IAF INACCESSIBLE * IF NO ERROR FLAGS, RETURN WITH IAF REFERENCE ADDRESS. SHN 14 LPC 3777 MASK OFF ACCESSIBILITY BIT SHN 7 BIAS CONTROL POINT ASSIGNMENT 200B ADN STSW STATUS CONTROL WORD CRD T1 ADN FLSW-STSW FIELD LENGTH CONTROL WORD CRD CM LDD T1+1 ERROR FLAG FIELD NJN ITA0 IF IAF INACCESSIBLE LDD CM+3 ZJN ITAX IF NO REFERENCE ADDRESS RJM PIR PRESET WITH IAF R-REGISTER UJN ITAX RETURN MRJ SPACE 4,10 ** MRJ - CHECK FOR MONITOR FUNCTION REJECTION. * * *MRJ* CHECKS TO SEE IF A *TSEM* OR *TGPM* MONITOR FUNCTION * WAS REJECTED. IF NOT, *MRJ* RETURNS TO THE CALLER. IF A * FUNCTION WAS REJECTED, *MRJ* SAVES ALL NECESSARY RECALL * INFORMATION AND THEN CAUSES *1MI* TO ENTER PP RECALL. * * ENTRY (A) = RECALL REASON CODE, IF FUNCTION REJECTED. * (CM+1) = *CPUMTR* REPLY FROM MONITOR FUNCTION. * (BS - BS+4) = CURRENT BUFFER STATUS. * * EXIT TO *ERS* IF FUNCTION WAS REJECTED. * * USES T0. * * CALLS ROJ. MRJ SUBR ENTRY/EXIT STM MRJA SAVE RECALL REASON CODE LDD CM+1 ZJN MRJ1 IF IAF IS INACCESSIBLE LMC 7777 ZJN MRJ2 IF THE MONITOR FUNCTION WAS REJECTED UJN MRJX RETURN * ROLLOUT WITH SUSPENSION IF IAF IS INACTIVE ONLY. MRJ1 LDK ROSU SUSPEND ON JOB ROLLOUT STD T0 RJM ROJ ROLLOUT USER JOB LDK IAFF SET FUNCTION REJECTED BECAUSE IAF ABORTED RAM RCPW+4 * RECALL PPU ON MONITOR REJECTION FOR 100 MILLISECONDS. MRJ2 LDK RECMS2 100 MS RECALL PERIOD STM ERSA LDM RCRF+4 BIAS RECALL TIME PERIOD LPN 7 RAM ERSE LPN 7 RAM RCPW+4 LPN 7 SBN 4 PJN MRJ3 IF MAXIMUM TIME PERIOD REACHED AOM RCPW+4 INCREMENT FUNCTION REJECT COUNT MRJ3 LDM WIAF+3 FIRST POT STM RCPW+3 LDM MRJA LJM ERS ENTER PP RECALL MRJA CON 0 RECALL REASON CODE PTI SPACE 4,10 ** PTI - PROCESS TERMINAL INPUT. * * ENTRY (PTIA) = PREPROCESSED INPUT AHEAD QUEUE. * (TN) = TERMINAL NUMBER. * * EXIT INPUT AHEAD TRANSFERED TO INPUT FET. * (IR+3- IR+4) = INPUT FET ADDRESS. * (TT - TT+1) = TERMINAL TABLE ADDRESS. * (A) = NONZERO IF TRANSFER COMPLETE. * * USES CM - CM+4, IR - IR+4, PP, T2, T8 - T9. * * CALLS CID, ITA, MRJ, RRR, SRR, STA, VFP. * * MACROS DELAY, MONITOR, PAUSE. PTI SUBR ENTRY/EXIT * ASSURE INPUT FET ADDRESS FOLLOWING POSSIBLE OUTPUT FLUSH. LDD IA REREAD ORIGINAL INPUT REGISTER CRD IR RJM VFP VERIFY FET PARAMETERS RJM SRR SET R-REGISTER TO IAF RA RJM STA SET TERMINAL TABLE ADDRESS RJM RRR RESTORE R-REGISTER LDC ** PREPROCESSED INPUT QUEUE POINTER (*CTI*) PTIA EQU *-1 NJN PTI1 IF QUEUE PREPROCESSED * FUNCTION IAF FOR DIRECT INPUT ASSIGNMENT. PTI0 SOM PTIC DECREMENT *TSEM* REQUEST COUNT LDK ZERL RESET *TSEM* REQUEST CRD CM CRM WADI,ON LDC /REM/VADI STM WADI LDD TN TERMINAL NUMBER TO FUNCTION REQUEST STM WADI+4 LDD MA CWM WADI,ON MONITOR TSEM LDK TALR PRESET POSSIBLE VADI REJECTION RJM MRJ * STATUS PREVIOUS *VADI* REQUEST. PTI1 LDD RA SAVE REFERENCE ADDRESS STD T9 * DELAY THE INPUT PROCESS TO ALLOW *VADI* COMPLETION. PTI2 RJM SRR SET R-REGISTER TO IAF RA LDD TT *VADI* FUNCTION REQUEST RESPONSE SHN 14 LMD TT+1 ADN /REM/VROT CRD CM RJM RRR RESTORE R-REGISTER LDD CM+1 NJP PTI6 IF DIRECT INPUT ASSIGNED LDD CM+3 LPC 6000 NJP PTI5 IF *TSEM* RESPONSE * LDN 0 DEFINE DELAY TYPE STM PTIB * DELAY APPROXIMATLY 10 MILLISECONDS. PTI2.1 LDN 77 DELAY CYCLE INCREMENT STD T8 PTI3 SOD T8 NJN PTI3.1 IF DELAY CYCLE NOT EXHAUSTED LDC 0 (TYPE OF DELAY) PTIB EQU *-1 ZJP PTI2 IF *TSEM* NOT COMPLETE LJM PTI0 REISSUE *TSEM* PTI3.1 DELAY PAUSE ALLOW STORAGE RELOCATION LDD CM+1 ASSURE ERROR CONDITION THIS JOB ZJN PTI4 IF NO ERROR FLAG AT THIS CP LDN 0 UJP PTIX DISCONTINUE READ REQUEST * ASSURE IAF ACCESSILILITY. PTI4 RJM ITA GET IAF CURRENT STATUS NJP PTI3 IF IAF STILL ACCESSIBLE LDK ZERL CRD CM LDK TALR TREAT AS A *VADI* REJECTION RJM MRJ THIS WILL ALWAYS EXIT VIA *ERS* * *VADI* FUNCTION REJECTION IS POSSIBLE DUE TO LOW POT * MEMORY WITHIN IAF, NO INPUT AHEAD IN IAF, THE IAF * RECEIVE BUFFER BUSY, OR OVERFLOW OCCURRED. IF THE * RECEIVE BUFFER IS BUSY BUT THERE IS TYPEAHEAD DATA * IN IAF, DELAY AND REISSUE THE *VADI* *TSEM* REQUEST * (A MAXIMUM OF EIGHT TIMES). IN THE THREE OTHER REJECT * CASES, ROLL THE JOB. PTI5 STD T2 SAVE REJECT TYPE LMD CM+3 STD CM+3 AOM PTIB SET DELAY TYPE RJM SRR SET R-REGISTER TO IAF RA LDD TT TERMINAL TABLE ADDRESS SHN 14 LMD TT+1 ADN /REM/VROT CWD CM CLEAR REQUEST WORD RJM RRR RESTORE R-REGISTER LDD T2 CHECK REJECT TYPE SHN 21-13 PJN PTI5.1 IF REJECT RESPONSE LDM PTIC CHECK *TSEM* REQUEST COUNT SHN 6 PJP PTI2.1 IF NOT AT LIMIT PTI5.1 LDN 0 INCOMPLETION STATUS UJP PTIX RETURN * SATISFY READ FUNCTION REQUEST ON ACTIVE INPUT. PTI6 STD PP SET INPUT AHEAD POT POINTER * RESET INPUT FET POINTERS IF STORAGE RELOCATION OCCURRED. LDD RA CURRENT REFERENCE ADDRESS LMD T9 RA PRIOR TO POSSIBLE STORAGE RELOCATION ZJN PTI7 IF NO STORAGE MOVEMENT OCCURRED RJM VFP VERIFY FET PARAMETERS RJM SRR SET R-REGISTER TO IAF RA LDD TT REREAD *VROT* SHN 14 LMD TT+1 ADN /REM/VROT CRD CM RJM RRR RESTORE R-REGISTER PTI7 LDN 0 CLEAR POT POINTER STD CM+1 LDD CM+4 CLEAR INPUT REQUESTED SCN 10 STD CM+4 RJM SRR SET R-REGISTER TO IAF RA LDD TT SHN 14 LMD TT+1 ADN /REM/VROT CWD CM REWRITE *VROT* RJM RRR RESTORE R-REGISTER RJM CID COPY INPUT DATA LDN 1 LJM PTIX EXIT PTIC CON 10 *TSEM* REQUEST LIMIT PTO SPACE 4,20 ** PTO - PROCESS TERMINAL OUTPUT. * * ENTRY (IR+3 - IR+4) = OUTPUT FET ADDRESS. * (CD+3 - CD+4) = MAXIMUM OUTPUT BUFFER CONTENT. * (BS - BS+4) = OUTPUT BUFFER STATUS. * (TN) = TERMINAL CONNECTION NUMBER. * * EXIT TERMINAL OUTPUT ASSIGNED. * (A) .LT. 0, IF IAF OUTPUT THRESHOLD REACHED. * (TT - TT+1) = TERMINAL TABLE ADDRESS. * TO *ERS* IF NOT ALL OUTPUT FLUSHED. * TO *DPP* IF FULL OUTPUT BUFFER AND NO EOL. * * USES CD, PP, CM - CM+4, CN - CN+4, T2 - T3. * * CALLS ANR, CHG, CIB, COD, GMX, MRJ, ROJ, RRR, SRR, STA. * * MACROS CFET, MONITOR. PTO SUBR ENTRY/EXIT RJM SRR SET R-REGISTER TO IAF RA RJM STA SET TERMINAL TABLE ADDRESS RJM RRR RESTORE R-REGISTER LDD BS+4 BUFFER STATUS LPN 20 NJN PTO1 IF AN EOR/EOF FUNCTION RJM CIB CHECK BUFFER INPUT STATUS NJN PTO2 IF NOT A FULL BUFFER * IN THE EVENT NETWORK REQUIREMENTS ARE NOT MET FOR * A BUFFERED WRITE ON A FULL BUFFER, IT IS NECESSARY * TO ROLLOUT THE USER JOB TO ASSURE BUFFER FLUSH * COMPLETION. AOM PTOA SIGNAL FULL BUFFERED WRITE UJN PTO2 ATTEMPT OUTPUT TRANSFER * IGNORE NETWORK REQUIREMENTS ON EOR/EOF FUNCTION. PTO1 AOM ANRA PASS NETWORK OUTPUT REQUIREMENTS * SET NETWORK TERMINAL DOWNLINE BLOCK LIMIT. PTO2 RJM GMX ZJN PTO2.2 IF MUX RJM SRR SET R-REGISTER TO IAF RA LDD TA SHN 6 ADN /REM/VMST CRD CM READ TERMINAL MESSAGE BUFFER POINTER LDD CM+1 SHN 6 ADD TA SHN 6 ADD CM+2 ADD TN CRD CM READ TERMINAL *VMST* RJM RRR RESTORE R-REGISTER LDD CM+1 CHECK TERMINAL CLASS LPC 377 SBN 10+1 PJN PTO2.1 IF SYNCHRONOUS TERMINAL AOM ANRB PTO2.1 LDD CM+3 SHN -6 LPN 37 NJN PTO3 IF NETWORK BLOCKSIZE DEFINED * HANG *1MI* ON INCORRECT NETWORK BLOCKSIZE. * LDN 0 SET NO ERROR FLAG RJM CHG CONDITIONALLY HANG PP PTO2.2 LDN /REM/VOPL DEFAULT BLOCKSIZE * REQUIREMENTS DEPEND ON BLOCKSIZE. PTO3 SHN 3 CONVERT BLOCKSIZE TO CM WORD COUNT STD CD RJM ANR ASSURE TERMINAL REQUIREMENTS MJP PTO6 IF REQUIREMENTS NOT ASSURED RJM GMX ZJP PTO6.1 IF MUX TERMINAL LDN 0 CLEAR *TSEM* POT COUNT STD T2 LDK /REM/VTRP *TSEM* QUEUE POINTER STD T3 SOD T3 RJM SRR SET R-REGISTER TO IAF RA PTO3.5 AOD T3 INCREMENT POINTER SBK /REM/VTSP END OF QUEUE PJN PTO4 IF END OF *TSEM* QUEUE LDD TA IAF REFERENCE ADDRESS SHN 6 ADD T3 ADD IN POINTER CRD CM READ IN QUEUE ENTRY LDD CM+4 CHECK TERMINAL NUMBER LMD TN NJN PTO3.5 IF NOT CURRENT TERMINAL LDD CM CHECK TYPE OF *TSEM* REQUEST SBK /REM/VADO NJN PTO3.5 IF NOT *VADO* *TSEM* REQUEST LDD CM+1 GET POT COUNT RAD T2 ADD TO PREVIOUS POT COUNT UJN PTO3.5 CONTINUE SEARCH PTO4 RJM STA ADN /REM/VSTT CHECK MESSAGES QUEUED IN IAF CRD CM RJM RRR RESTORE R-REGISTER LDD CM+2 LPN 77 ADD T2 ADD *TSEM* QUEUE POT COUNT STD CM+2 LDK /REM/VNCP COMPARE WITH MAXIMUM ALLOWED SBD CM+2 MJP PTOX IF IAF OUTPUT THRESHOLD REACHED * SET *TSEM* POT MEMORY REQUEST. LDK ZERL PRESET *TGPM* SUBFUNCTION CRD CM CRM WADO,ON LDD CD+2 CURRENT ACCEPTABLE TRANSFER ADN /REM/VCPC-1+2 ROUND UP AND ALLOW FOR HEADER SHN -3 CM WORD COUNT TO POT COUNT STD CM+1 IAF POT COUNT REQUEST MONITOR TGPM GET POT MEMORY LDK TALR RJM MRJ * SET IAF *VADO* REQUEST FOR OUTPUT BUFFER FLUSH. LDD CM+1 GET POT POINTER STD PP CURRENT IAF POT MEMORY POINTER STM WADO+3 FIRST POT IN ASSIGN OUTPUT *VADO* STM WADO+2 LAST POT IN ASSIGN OUTPUT LDC /REM/VADO PRESET ASSIGN DIRECT OUTPUT REQUEST STM WADO LDD TN STM WADO+4 SET TERMINAL CONNECTION IN *VADO* REQUEST * ASSIGN TERMINAL OUTPUT. RJM COD COPY OUTPUT DATA LDD MA MESSAGE BUFFER CWM WADO,ON LDK ZERL CRD CM MONITOR TSEM ASSIGN DIRECT OUTPUT *VADO* * THE OUTPUT POINTER SHOULD NOT BE UPDATED UNTIL AFTER THE * *VADO* *TSEM* REQUEST HAS BEEN HONORED. OTHERWISE, IF THE * *VADO* WAS REJECTED AND THE JOB ROLLED, THEN *1RO* WOULD NOT * BE ABLE TO FLUSH THAT OUTPUT WHICH *1MI* PUT INTO POTS. LDK TDOR PRESET POSSIBLE *VADO* REJECTION RJM MRJ LDN ZERL REQUEST ACCEPTED, SO UPDATE OUTPUT POINTER CRD CN LDD OT STD CN+3 LDD OT+1 STD CN+4 CFET 3 CWD CN LDN 0 * LDN 1 PTOB EQU *-1 ZJN PTO7 IF ALL OUTPUT FLUSHED LDC RECMS2 STM ERSA PTO5 LDK TALR LJM ERS ENTER RECALL STACK * ROLLOUT JOB ON BUFFERED WRITE, FULL CONDITION NO *EOL* PTO6 LDN 0 FULL BUFFERED WRITE CONDITION * LDN 1 PTOA EQU *-1 ZJN PTO7 IF NOT FULL OUTPUT BUFFER AND NO *EOL* * ALLOW ROUTINE *1RO* TO COMPLETE OUTPUT REQUEST. PTO6.1 LDK ROSR STD T0 RJM ROJ ROLLOUT USER JOB UJN PTO5 ENTER RECALL PTO7 LJM PTOX RETURN RBS SPACE 4,10 ** RBS - REVERSE BUFFER SCAN. * * ENTRY (CD+1 - CD+2) = BEGINNING BUFFER SCAN CONTENT. * (FT - FT+1) = BUFFER FIRST WORD ADDRESS. * (LM - LM+1) = BUFFER LAST WORD ADDRESS. * (T3 - T3+1) = RUNNING BUFFER *IN* POINTER. * * EXIT (CD+1 - CD+2) = ACCEPTABLE BUFFER CM WORD COUNT * ENCOMPASSING COMPLETE LOGICAL LINES. * (A) = LESS THAN ZERO IF NO *EOL* ENCOUNTERED. * * USES CM - CM+4. * ENTER SEARCH LOOP FOR AN EXISTING *EOL* BYTE. RBS2 LDD T3 BEGIN BUFFER SCAN SHN 6 ADD RA SHN 6 ADD T3+1 SBN 1 BACK OFF RUNNING *IN* POINTER CRD CM READ BUFFER ENTRY SHN 14 SBD RA SHN 6 STD T3+1 SHN -14 STD T3 LDD CM+4 ZJN RBSX IF AN *EOL* BYTE ENCOUNTERED LDD CD+1 DECREMENT ACCEPTABLE CM WORD TRANSFER SHN 14 LMD CD+2 SBN 1 STD CD+2 SHN -14 STD CD+1 ADD CD+2 NJN RBS1 IF NOT A COMPLETE BUFFER SCAN LCN 0 LINE FRAGMENT STATUS RBS SUBR ENTRY/EXIT RBS1 LDD T3 ASSURE BUFFER WRAP SBD FT BUFFER FIRST WORD ADDRESS SHN 14 LMD T3+1 SBD FT+1 NJP RBS2 IF *FIRST* NOT REACHED LDD LM STD T3 SET *IN = LIMIT* LDD LM+1 STD T3+1 LJM RBS2 CONTINUE BUFFER SCAN ROJ SPACE 4,10 ** ROJ - ROLL USER JOB. * * ENTRY (T0) = *COMSCPS* ROLLOUT OPTION REQUEST. * * EXIT CONTROL POINT ROLLOUT REQUESTED. * * USES CM - CM+4. * * MACROS MONITOR. ROJ SUBR ENTRY/EXIT LDN ZERL CRD CM LDD T0 REQUESTED OPTION STD CM+1 MONITOR ROCM UJN ROJX RETURN SLF SPACE 4,10 ** SLF - SEARCH LIST OF FILE ENTRIES. * * ENTRY SCAN LIST OF FILE *LOFW* OR RA+2 ENTRIES * FOR POSSIBLE OUTPUT BUFFER FLUSH CANDIDATES. * * EXIT (IR+3 - IR+4) = BUFFER OUTPUT FET ADDRESS. * (A) = NONZERO IF FILE ENTRY TO BE FLUSHED. * * USES T1 - T5, CM - T9. * * CALLS DFS, VAD. SLF SUBR ENTRY/EXIT LDD FL ZJN SLFX IF NO FIELD LENGTH * PROCESS LIST OF FILE ENTRIES *LOFW*. LDD CP LIST OF FILES POINTER ADC LOFW CRD CM LDD CM+1 LPN 37 SHN 14 LMD CM+2 ZJN SLF1 IF *LOFW* NOT IN USE ADN 1 OFFSET INTO *LOFW* TABLE RJM VAD VALIDATE ENTRY ADDRESS ZJN SLFX IF INCORRECT ADDRESS CRD T8-3 READ *LOFW* ENTRY RJM DFS DETERMINE FLUSH STATUS NJP SLF3 SET UP FLUSH CANDIDATE UJN SLFX IF NOT A FLUSH CANDIDATE * PROCESS RA+2 LIST IF NO *LOFW*. SLF1 AOM SLFA RA+2 INDEX LPN 77 LMN PGNR MAXIMUM RA+2 LIST LENGTH ZJN SLFX IF END OF LIST LDD RA REFERENCE ADDRESS SHN 6 SLFA ADN 1 INCREMENT RA+2 INDEX CRD T8-3 READ RA+2 ENTRY LDD T8-3 ZJP SLFX IF END OF LIST * VALIDATE FET/FIT ADDRESS. LDD T8 LPN 37 SHN 14 LMD T8+1 ADN 5 BIAS FET/FIT LENGTH RJM VAD VALIDATE LIST ENTRY ZJN SLF1 IF FET/FIT OUTSIDE FL SBN 5 CRD T1 DETERMINE IF FET/FIT LDD T1+3 LPN 37 ADD T1+4 NJN SLF2 IF NOT A POSSIBLE FIT * VALIDATE FET POINTER WITHIN FIT TABLE. * NOTE. FIT+0 RESERVED BITS (17-0) DISTINGUISH * FIT TABLE DESCRIPTION. LDD T8 LPN 37 SHN 14 LMD T8+1 ADN 1 RJM VAD VALIDATE FIT ADDRESS ZJP SLF1 IF FIT ADDRESS OUTSIDE FL CRD T8-3 READ FET ADDRESS WITHIN FIT LDD T8 LPN 37 ADD T8+1 ZJP SLF1 IF NO FET ADDRESS WITHIN FIT * DETERMINE FET/FIT FLUSH STATUS. SLF2 RJM DFS DETERMINE FLUSH STATUS ZJP SLF1 IF NOT A FLUSH CANDIDATE * SET UP FET ADDRESS EXIT CONDITIONS. SLF3 LDD T8 LPN 37 STD IR+3 SET UP FET ADDRESS LDD T8+1 STD IR+4 LJM SLFX RETURN VAD SPACE 4,10 ** VAD - VALIDATE ADDRESS WITHIN FL. * * ENTRY (A) = ADDRESS NEEDING VALIDATION. * * EXIT (A) = ABSOLUTE ADDRESS WITHIN FL. * (A) = ZERO IF INCORRECT ADDRESS. VAD1 LDN 0 INCORRECT ADDRESS STATUS VAD SUBR ENTRY/EXIT SHN 14 SBD FL FIELD LENGTH SHN 6 PJN VAD1 IF INCORRECT ADDRESS PASSED SHN 14 ADD FL ADD RA REFERENCE ADDRESS SHN 6 ABSOLUTE ADDRESS UJN VADX RETURN VFP SPACE 4,10 ** VFP - VERIFY FET PARAMETERS. * * ENTRY (IR+3 - IR+4) = FET ADDRESS. * * EXIT (FT - FT+1) = BUFFER FIRST WORD ADDRESS. * (IN - IN+1) = BUFFER IN POINTER. * (OT - OT+1) = BUFFER OUT POINTER. * (LM - LM+1) = BUFFER LAST WORD ADDRESS. * (BS - BS+4) = BUFFER FET STATUS. * * USES CM - CM+4. * * MACROS CFET, ERROR, MONITOR. VFP SUBR ENTRY/EXIT * RESET FET BUFFER STATUS. CFET GET BUFFER STATUS CRD BS LDN 3 VALIDATE ALL FET PARAMETERS STD CM+1 LDD IR+3 FET ADDRESS LPN 77 STD CM+3 LDD IR+4 STD CM+4 MONITOR VFPM VERIFY FET PARAMETERS LDD CM+1 VALIDATION RESPONSE ZJN VFP2 IF VALID FET LPN 1 ZJN VFP1 IF VALID FET ADDRESS ERROR ARG *FET ADDRESS OUT OF RANGE* VFP1 LDD CM+1 LPN 2 ZJN VFP2 IF NO BUFFER ERROR ERROR BUF *BUFFER ARGUMENT ERROR* * RESET VALID FET PARAMETERS. VFP2 LDD MA CM MESSAGE BUFFER ADN 2 CRD IN-1 *IN* AND *OUT* ADN 1 CRD FT-1 *FIRST* AND *LIMIT* LDD BS+3 CLEAR ERROR, LEVEL AND COMPLETION SCN 77 STD BS+3 LDD BS+4 LPC 776 STD BS+4 UJP VFPX RETURN ** COMMON DECKS. *CALL,COMPACS *CALL,COMPANS *CALL,COMPCIB *CALL,COMPCOB PIR$ EQU 1 SELECT ASSEMBLY OF *PIR* FOR IAF R-REG *CALL,COMPSRR *CALL,COMPCRS *CALL,COMPRBB *CALL,COMPSPA *CALL,COMPSTA *CALL,COMPUPP *CALL,COMPWBB HST TITLE FUNCTION REQUEST AND BUFFER STORAGE. ** PREVIOUS PP RECALL PARAMETER WORD. * IF *1MI* IS STARTED FROM THE RECALL STACK, THIS WORD WILL * CONTAIN INFORMATION SAVED BY THE PREVIOUS COPY OF *1MI* * IN THE FOLLOWING FORMAT - * * 1/S, 5/, 6/CP, 6/RC, 18/, 12/FP, 1/A, 1/, 4/IF, 3/, 3/RT * * S SET BY *CPUMTR* TO SHOW *1MI* STARTED FROM RECALL. * CP UNUSED (WARNING - SOMETIMES SET BY *CPUMTR*). * RC REASON CODE WHY *1MI* ENTERED RECALL. * FP FIRST POT IN CHAIN PRIOR TO RECALL. * A SET IF MONITOR FUNCTION REJECTED BECAUSE IAF ABORTED. * IF *CIO* INTERNAL FUNCTION CODE (SEE *COMSCIO*). * RT MONITOR FUNCTION REJECTION COUNT. RCRF CON 0,0,0,0,0 ** NEW PP RECALL PARAMETER WORD. * USED IF *1MI* MUST ENTER RECALL. IT HAS THE SAME FORMAT AS * THE PREVIOUS PP RECALL PARAMETER WORD. RCPW CON 0,0,0,0,0 HST SPACE 4,10 ** TIAF - TABLE OF *TSEM* FUNCTION REQUEST DEFINITIONS. * * ENTRY FIVE WORDS. CONTENTS VARY PER *TSEM* REQUEST. * * WADO - ASSIGN DIRECT OUTPUT TO IAF. * *T 12//REM/VADO, 6/0, 6/PC, 12/LP, 12/FP, 12/TN * * WADI - ASSIGN DIRECT INPUT FROM IAF. * *T, 12//REM/VADI, 36/0, 12/TN * * WDPO - IAF DROP POT MEMORY REQUEST. * *T, 12//REM/VDPO, 12/0, 12/LP, 12/FP, 12/TN * * PC = POT MEMORY CHAIN COUNT PER CURRENT REQUEST. * FP = FIRST POT MEMORY POINTER PER CURRENT REQUEST. * LP = LAST POT MEMORY POINTER PER CURRENT REQUEST. * TN = TERMINAL CONNECTION NUMBER. TIAF BSS 0 WADO BSS 0 ASSIGN DIRECT OUTPUT WADI BSS 0 ASSIGN DIRECT INPUT WDPO BSS 0 DROP POT MEMORY REQUEST WIAF CON 0,0,0,0,0 *TSEM* FUNCTION REQUEST PARMAETERS * DATA TRANSFER BUFFER OVERLAYS PRESET. USE BUFFERS BUFF EQU * BUFFL EQU /REM/VCPC*2*5 ERRNG 100000-BUFF-BUFFL PRS TITLE *1MI* INITIALIZATION. ** PRS - PRESET *1MI*. * * ENTRY (IR - IR+4) = *1MI* CALL. * (MB - MB+4) = *1MI* MESSAGE BUFFER PARAMETERS (*PPR*) * (MB1 - MB1+4) = MESSAGE BUFFER + 1 PARAMETERS. * (MB2 - MB2+4) = MESSAGE BUFFER + 2 PARAMETERS. * * EXIT (FC) = INTERNAL *CIO* FUNCTION CODE. * (BS - BS+4) = BUFFER STATUS = (FET+0) * (FT - FT+1) = BUFFER FIRST WORD ADDRESS. * (IN - IN+1) = BUFFER IN POINTER. * (OT - OT+1) = BUFFER OUT POINTER. * (LM - LM+1) = BUFFER LAST WORD ADDRESS. * (TT - TT+1) = TERMINAL TABLE ADDRESS. * (RCRF - RCRF+4) = PARAMETER WORD FROM PREVIOUS IAF. * TO *DPP* IF USER BREAK PROCESS WITH EXTENDED REPRIEVE. * TO *ERS* IF IAF INACCESSIBLE TO ALLOW USER RECOVERY. * * USES CM - CM+4, CN - CN+4, FT-1 - FT+3, IN-1 - IN+3, * BS - BS+4, FC, NF, TN, T0. * * CALLS CFN, CJA, CTT, ITA, REC, ROJ, STA. * * MACROS CFET, ERROR, SFA. PRS SUBR ENTRY/EXIT * MOVE PP RECALL PARAMETER WORDS TO LOCATIONS WHICH ARE NOT * DESTROYED BY COMMON DECKS. LDD MA RESET FET PARAMETERS IN MESSAGE BUFFER CWD MB ADN 1 PRESET BUFFER POINTERS CWD MB1 CRD IN-1 *IN* AND *OUT* ADN 1 CWD MB2 CRD FT-1 *FIRST* AND *LIMIT* LDD MB+4 INTERNAL *CIO* FUNCTION CODE LPC 1700 STM RCPW+4 SAVE IN CASE *1MI* GOES INTO RECALL SHN -6 STD FC CFET READ FET+0 CRD BS LDD MB SHN 21-13 PJN PRS1 IF INITIAL *1MI* CALL LDD MA CRM RCRF,ON READ IN PREVIOUS RECALL PARAMETER WORD RJM REC RECOVER *TSEM* REJECT PRS1 RJM CTT CHECK TERMINAL I/O INTERLOCK LDD CP ADK TFSW CRD CM LDD CM ZJN PRS2 IF NO EJT ORDINAL SFA EJT ADK JSNE CHECK JOB CONNECTION STATUS CRD CM LDD CM+4 SHN -7 LPN 17 STM PRSA LMK NICS ZJN PRS2 IF NON-INTERACTIVE RJM CEF ZJN PRS6 IF NO ERROR FLAG ON JOB LDD FC *1MI* FUNCTION CODE LMK /CIO/WTF ZJN PRS6 IF A WRITE FUNCTION LDD CM+2 NJN PRS3 IF USER BREAK AND EXTENDED REPRIEVE LDD BS+4 SET EOR STATUS LPC 6002 LMN 20 STD BS+4 PRS2 RJM CFN COMPLETE FUNCTION PRS3 LJM DPP DROP PP PRS6 RJM ITA ZJN PRS7 IF IAF NOT AVAILABLE LDC 0 CHECK CONNECTION STATUS PRSA EQU *-1 LMK DTCS NJN PRS9 IF NOT DETACHED * A DETACHED JOB IS EITHER SUSPENDED OR TERMINATED BASED ON ITS * END-OF-JOB OPTIONS. LDD CP CHECK END-OF-JOB TERMINATION OPTIONS ADN EOJW CRD CM LDD CM SHN 0-11 ISOLATE JOB TERMINATION OPTION LMN SUJT ZJN PRS7 IF DETACHED JOB IS TO BE SUSPENDED ERROR IRQ *INCORRECT I/O REQUEST ON FILE* PRS7 LDK IAFF RAM RCPW+4 LDK ROSU SUSPEND USER JOB PRS8 STD T0 RJM ROJ ROLL USER JOB LDK TALR TERMINAL I/O BUSY RECALL CODE LJM ERS ENTER RECALL STACK * CONTINUE PROCESS FOR ONLINE CONNECTIONS ONLY. PRS9 LDD CP ADN TTNW TERMINAL TABLE POINTER CRD CM LDD CM+1 STD TN RJM SRR SET R-REGISTER TO IAF RA RJM STA SET TERMINAL TABLE ADDRESS (TT - TT+1) * ROLL A USER OUT DURING LOGIN PROCESSING AND DURING DETACH * PROCESSING IF THE TERMINAL TABLE IS NOT COMPLETELY SET UP. * THIS AVOIDS *VADO* AND *VADI* *TSEM* REQUESTS BEING SENT TO * *IAF* BEFORE THE USER IS COMPLETELY LOGGED IN. ADK /REM/VDCT CHECK IF USER FINISHED LOGGING IN CRD CM ADK /REM/VSTT-/REM/VDCT CRD CN READ *VSTT* RJM RRR RESTORE R-REGISTER LDD CM SHN 21-11 PJN PRS9.1 IF USER NOT COMPLETELY LOGGED IN LDD CN CHECK FOR DETACH IN PROGRESS SHN 21-10 PJN PRS10 IF DETACH NOT IN PROGRESS PRS9.1 LDK ROSR UJP PRS8 ROLLOUT USER JOB UNTIL COMPLETE RECOVERY PRS10 LDD CP GET NEGATIVE FIELD LENGTH ADN FLSW CRD CM LDD CM STD NF NFL/100B UJP PRSX RETURN CTT SPACE 4,10 ** CTT - CHECK TIOW/TINW BUSY. * * *CTT* CHECKS THE *TINW/TIOW* INTERLOCK FLAG FROM *CPUMTR* TO * DETERMINE WHETHER OR NOT THIS COPY OF *1MI* HAS THE TERMINAL * I/O INTERLOCK. IF NOT, *CTT* ATTEMPTS TO GET THE INTERLOCK * VIA A *UTEM* FUNCTION. IF UNSUCCESSFUL, *1MI* MUST GO INTO * RECALL AND TRY TO OBTAIN THE INTERLOCK AT A LATER TIME. * * ENTRY (IR+2) = TIOW/TINW BUSY FLAG FROM *CPUMTR*. * * EXIT IF RECALL NECESSARY, TO *ERS*. * * USES CM - CM+4, IR+2. * * MACROS MONITOR. CTT4 LDD IR+2 CLEAR FLAG FROM INPUT REGISTER LMK TTB STD IR+2 LDD IA REWRITE INPUT REGISTER CWD IR CTT SUBR ENTRY/EXIT LDD IR+2 CHECK FLAG FROM *CPUMTR* LPK TTB ZJN CTTX IF TIOW/TINW GOES WITH THIS PP LDK ZERL TEST AND SET TIOW/TINW CRD CM LDD CP SET WORD ADDRESS ADK TIOW STD CM+4 ERRNG TINW-TIOW CODE DEPENDS ON ORDER OF WORDS LDN 3 TEST TWO FIELDS, SET ONE STD CM+1 LDD FC LMK /CIO/WTF ZJN CTT1 IF WRITE FUNCTION LDC 18D*100B SET TINW ADDRESS OFFSET AND FIELD RAM CTTB+1 LDK TINW-TIOW SET TINW FIELD SHN 6 RAM CTTB CTT1 LDD IR+4 MOVE FET ADDRESS STM CTTB+4 LDD IR+3 LPN 77 STM CTTB+3 LDD MA CWM CTTA,TR MONITOR UTEM LDD CM+1 ZJP CTT4 IF TEST AND SET SUCCESSFUL RJM CEF LDD CM+2 NJN CTT2 IF USER BREAK WITH EXTENDED REPRIEVE * ENTER RECALL WITH TIOW/TINW BUSY FLAG STILL SET IN THE INPUT * REGISTER, SO THAT WHEN *1MI* IS RESTARTED IT WILL * AGAIN ATTEMPT TO GET THE *TIOW/TINW* INTERLOCK. LDK TALR LJM ERS ENTER RECALL STACK * IF BOTH A USER BREAK ERROR FLAG IS PRESENT AND EXTENDED * REPRIEVE HAS BEEN SELECTED BY THE JOB, *1MI* CANNOT WAIT * FOR THE TERMINAL I/O INTERLOCK TO BECOME AVAILABLE. THIS IS * BECAUSE THE PP WITH THE INTERLOCK MAY BE A READ REQUEST, IN * WHICH CASE IT WILL DROP WITHOUT CLEARING *TINW*. * IF A WRITE REQUEST, *1MI* WILL COMPLETE THE FET AND DROP. * IF A READ REQUEST, *1MI* WILL ATTEMPT TO SET *TINW* BEFORE * DROPPING SO THAT *1AJ* KNOWS THAT AN INPUT REQUEST IS * OUTSTANDING. CTT2 LDD FC LMK /CIO/WTF ZJN CTT3 IF WRITE FUNCTION LDK ZERL CRD CM LDD CP ADK TIOW STD CM+4 LDN 2 STD CM+1 LDD MA CWM CTTA+5,CM+1 MONITOR UTEM LJM DPP DROP PP CTT3 LDD BS+4 COMPLETE FET SCN 1 LMN 1 STD BS+4 CFET REWRITE FIRST WORD OF FET CWD BS LJM DPP DROP PP CTTA VFD 1/1,5/0,6/18D,6/0,42/0 VERIFY 0 CLEAR VFD 1/1,5/TINW-TIOW,6/18D,6/18D,42/0 VERIFY TINW CLEAR CTTB VFD 1/0,5/0,6/18D,6/0,42/0 SET NEW FET ADDRESS REC SPACE 4,10 ** REC - RECOVER FROM MONITOR REJECTION. * * ENTRY (RCRF+1) = RECALL REASON CODE. * (RCRF+3) = FIRST POT CHAIN POINTER. * (FC) = INITIAL *1MI* FUNCTION CODE. * * EXIT TO *DPP* IF *TINW/TIOW* INTERLOCK NO LONGER HELD. * ANY POTS FROM A PREVIOUSLY REJECTED MONITOR FUNCTION * ARE DROPPED. * * USES CM - CM+4, CN - CN+4. * * CALLS MRJ. * * MACROS MONITOR. REC SUBR ENTRY/EXIT LDM RCRF+1 GET REJECTED FUNCTION SHN -6 LMK TDOR ZJN REC2 IF *VADO* REJECTION LMK TPOR&TDOR NJP RECX IF NOT *VDPO* REJECTION AOM RECA * DROP PREVIOUS FUNCTION-S POTS UNLESS THE FUNCTION WAS * REJECTED BECAUSE IAF WAS NOT AVAILABLE. REC2 LDM RCRF+4 LPK IAFF NJN REC3 IF NEW COPY OF IAF LDK ZERL BUILD *VDPO* *TSEM* REQUEST CRD CN LDK /REM/VDPO STD CN LDM RCRF+3 SET POT NUMBER OF FIRST POT IN CHAIN STD CN+3 LDD CP SET TERMINAL NUMBER ADK TTNW CRD CM LDD CM+1 STD CN+4 LDN ZERL CRD CM LDD MA CWD CN REWRITE REJECTED REQUEST CRM WIAF,ON PRESET POSSIBLE FUNCTION REJECTION MONITOR TSEM LDM RCRF+1 SHN -6 RJM MRJ REC3 LDN 0 * LDN 1 RECA EQU *-1 ZJP RECX IF INTERLOCK STILL HELD LJM DPP DROP PP ** COMMON DECKS NECESSARY FOR PRESET. *CALL,COMPGFP ERRNG 7777-*+1 AVOID PPU MEMORY WRAP END