IDENT 1RO,ROJ PERIPH BASE MIXED SST SYSCOM *COMMENT 1RO - ROLLOUT JOB. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. TITLE 1RO - ROLLOUT JOB. SPACE 4,10 *** 1RO - ROLLOUT JOB. * G. R. MANSFIELD. 70/10/24. * R. E. TATE. 71/01/11. * L. C. HAAS. 75/03/25. RESEQUENCE. * C. A. LACEY. 77/04/21. SPACE 4,10 *** *1RO* PERFORMS JOB ROLLOUT AND DM* FILE CREATION. IT * IS CALLED BY *1AJ* FOR FUNCTIONS 0 AND 1. FUNCTION 2 IS * CALLED DIRECTLY BY *CPUMTR*. SPACE 4,10 *** CALL. * *T 18/ *1RO*,1/,5/ CP,12/ FN,24/ N * CP CONTROL POINT NUMBER * FN = 0 ROLLOUT OF A CONTROL POINT JOB. * = 1 SELECTIVE ROLLOUT TO FILE DM* ACCORDING TO *DMP=* * PARAMETER. * = 2 PSEUDO-ROLLOUT. * = 3 ROLLOUT OF A PSEUDO-CONTROL POINT JOB. THIS MAY BE A * COMPOUND ROLLOUT. * N = ERROR FLAG FOR INTERACTIVE JOB (FUNCTION 0). * = PARAMETERS FROM DMP= PROGRAM *PST* ENTRY (FUNCTION 1). * 9/,1/ C,1/,1/ U,12/ FL * C = CREATE DM* FILE ONLY. * U = CREATE DM* AS AN UNLOCKED FILE. * FL = 0, DUMP CPA, ENTIRE CM FL AND ECS FL. * .NE. 0, DUMP CPA AND FL*100B OF CM FL. * = 12/ TN,12/ PN (FUNCTIONS 2 AND 3) * TN TERMINAL NUMBER IF *1TO* MUST BE CALLED * FOLLOWING COMPOUND ROLLOUT COMPLETION. * PN PCP NUMBER. SPACE 4,10 ** ROUTINES USED. * * *0AU* - PROCESS ACCUMULATOR OVERFLOW FLAGS. * *0BF* - BEGIN FILE. * *0DF* - DROP FILE. SPACE 4,10 ** PROGRAMS CALLED. * * *1AJ* - CONTINUE *DMP=* PROCESSING. SPACE 4,10 *** ACCOUNT DAYFILE MESSAGES. * * * *AUSR, SRUUNITS.* = NUMBER OF SRU-S WHICH COULD NOT BE * RECORDED IN THE PROJECT PROFILE FILE AT OVERFLOW OR END * OF ACCOUNT BLOCK. SPACE 4,10 ** COMMON DECKS. *CALL COMPMAC *CALL COMSACC QUAL CPS *CALL COMSCPS QUAL * *CALL COMSEJT *CALL COMSEVT QUAL COMSHIO *CALL COMSHIO QUAL * LIST X *CALL COMSJRO LIST * *CALL COMSLFD *CALL COMSMSP *CALL COMSPIM QUAL REM *CALL COMSREM QUAL *CALL COMSSCD *CALL COMSSSD *CALL COMSSSE *CALL COMSSSJ *CALL COMSTCM *CALL COMSWEI *CALL COMSZOL 1RO SPACE 4 **** ASSEMBLY CONSTANTS. IFLS EQU /CPS/IFLS *PIOM* REPLY STATUS RDDS EQU /CPS/RDDS *PIOM* DIRECT READ WDDS EQU /CPS/WDDS *PIOM* DIRECT WRITE SPACE 4,10 ** DIRECT CELL ASSIGNMENTS. T8 EQU 16 SCRATCH T9 EQU 17 SCRATCH FS EQU 20 - 24 SCRATCH (5 CELLS) NT EQU 25 NEXT TRACK POINTER EO EQU 26 EJT ORDINAL SC EQU 27 TERMINAL OUTPUT SECTOR COUNT CN EQU 30 - 34 SCRATCH (5 CELLS) OP EQU 35 - 36 OUTPUT POINTER (2 CELLS) DI EQU 37 *UJNI*+2 (USED TO DISABLE PROCESSING) FN EQU 40 - 44 SCRATCH (5 CELLS) TN EQU 45 TERMINAL NUMBER TT EQU 46 - 47 TERMINAL TABLE ADDRESS (2 CELLS) FA EQU 57 DM* FNT ADDRESS ZR EQU 60 - 64 ZERO WORD (5 CELLS) TA EQU 65 *IAF* RA NF EQU 67 NFL/100B **** TITLE MAIN PROGRAM. ROJ SPACE 4,10 ** ROJ - MAIN PROGRAM. ORG PPFW ROJ BSS 0 RJM PRS PRESET (RETURN TO *ROJ1* ON PSEUDO ROLL) * PERFORM INITIAL ROLLOUT OPERATIONS. ROJA RJM /3RS/CDM CREATE DM* FILE FNT ENTRY * UJN *+2 (NON-*DMP=* CALL) ROJB RJM /3RP/CKO CHECK FOR TERMINAL I/O * UJN *+2 (NON-INTERACTIVE JOB) RJM RMS REQUEST MASS STORAGE SPACE ROJC RJM /3RP/RFO READ FIRST SECTOR OF TERMINAL OUTPUT * UJN *+2 (NOT ON-LINE INTERACTIVE JOB) ROJ1 BSS 0 ENTRY FROM *PRS* IF PSEUDO ROLLOUT ROJD RJM CJS CHANGE JOB STATUS * UJN *+2 (*DMP=* CALL) ROJH RJM ISS INITIALIZE SYSTEM SECTOR * UJN ROJ2 (PSEUDO-ROLLOUT) ROJE RJM SRA SET RA TO FWA OF NFL * UJN *+2 (*DMP=* CALL) * WRITE THE ROLLOUT FILE. SETMS IO,(NS),WDSB ROJI LDC 0 * LDC EPNF (BUFFERED DEVICE AND ECS PRESENT) RAM UERR RJM WSS WRITE SYSTEM SECTOR MJN ROJ3 IF MASS STORAGE ERROR LDD HN SET SECTOR WORD COUNT STM BFMS+1 SEQ EQU *-2 ROJ2 SEQUENCE CPAI,CPA WRITE CONTROL POINT AREA * RJM TCP (PSEUDO-ROLLOUT) * UJN *+2 (NO CONTROL POINT) SEQUENCE TOPI,/3RP/WTO WRITE TERMINAL OUTPUT * UJN *+2 (NOT ON-LINE INTERACTIVE JOB) * UJN ROJ5 (PSEUDO-ROLLOUT) SEQUENCE JFLI,JFL WRITE JOB FIELD LENGTH * UJN *+2 (NO FL) SEQUENCE JECI,JEC WRITE JOB ECS FIELD LENGTH * UJN *+2 (NO ECS) ROJJ RJM WEI WRITE EOI SECTOR * UJN ROJ4 (BUFFERED DEVICE) PJN ROJ4 IF NO MASS STORAGE ERROR ROJ3 LJM MSR PROCESS MASS STORAGE ERROR ROJ4 ENDMS * PERFORM FINAL ROLLOUT OPERATIONS. ROJ5 RJM CRO COMPLETE ROLLOUT (ON-LINE MAY NOT RETURN) * RJM CDR (*DMP=* CALL) ROJF EQU *-1 LDD IR+2 SBN 2 NJN ROJ5.1 IF NOT PSEUDO-ROLLOUT STD CM+2 MONITOR RSJM CALL SCHEDULER ROJ5.1 LDC ** (ERROR FLAG) ROJK EQU *-1 RJM SEF SET ERROR FLAG, IF PRESENT RJM CPC CHECK PCP ROLLOUT COMPLETION ZJN ROJ7.1 IF SIMPLE PCP ROLLOUT PJN ROJ8 IF COMPOUND ROLLUT ROJG LDC /CPS/CCPS+/CPS/DPPS RELEASE CP AND DROP PP * LDC /CPS/CCPS (*1TO* TO BE CALLED) * UJN ROJ8 (*DMP=* CALL) ROJ7 STD CM+1 MONITOR JACM * ON A COMPOUND ROLLOUT, IF THE FIRST *1RO* FINDS THAT THERE * IS TERMINAL OUTPUT AVAILABLE FOR THE JOB BEING ROLLED TO * DISK, THE FIRST SECTOR OF OUTPUT IS SAVED IN THE PP UNTIL * AFTER THE SECOND *1RO* IS COMPLETE. *1TO* IS THEN CALLED * INTO THE SAME PP TO PROCESS THE OUTPUT. LDN ** ROJM EQU *-1 * LDN 1 (*1TO* CALL REQUIRED) ZJN ROJ8 IF *1TO* CALL NOT REQUIRED LDN /REM/VCPT MOVE TO *IAF* CP STD CM+1 MONITOR CCAM LDD IA WRITE *1TO* CALL TO INPUT REGISTER CWM ROJN,ON LDD CM+1 LMN /REM/VCPT NJN ROJ8 IF CHANGE MADE ROJ7.1 MONITOR DPPM ROJ8 LJM PPR EXIT ROJN VFD 18/3L1TO,6//REM/VCPT,36/0 SPACE 4 ** GLOBAL DATA. CPAD BSSZ 2 CP/PCP ADDRESS TITLE ROLLOUT FILE WRITE ROUTINES. CPA SPACE 4,10 ** CPA - WRITE CONTROL POINT AREA. * * CALLS WNS. CPA SUBR ENTRY/EXIT TLDC 0,CPAD READ FIRST HALF OF CPA/PCPA CRM BFMS+2,HN * CLEAR *MS1W* AND *MS2W* IF NO JOB ACTIVITY. LDC 1 CONTROL POINT ACTIVE FLAG * LDC 100 (EM PROTECT AND END OF JOB STEP) CPAB EQU *-1 LPN 1 NJN CPA1 IF JOB ACTIVITY STM BFMS+2+MS1W*5 STM BFMS+2+MS2W*5 LDM CPAB SET CORRECT FL FOR ROLLOUT ERRNZ MCMX/100-100 CHECK FOR CORRECT VALUE OF *MCMX* STM BFMS+2+FLSW*5+4 NJN CPA1 IF ECS PROTECTED STM BFMS+2+ECSW*5+4 CPA1 LDD NF SET NFL SIZE IN ROLLOUT FILE STM BFMS+2+FLSW*5 RJM WNS WRITE CPA TLDC 100,CPAD READ SECOND HALF OF CPA/PCPA CRM BFMS+2,HN RJM WNS WRITE NEXT SECTOR UJP CPAX RETURN JFL SPACE 4,10 ** JFL - WRITE JOB CM FIELD LENGTH. * * USES T3. * * CALLS ROD, ROM. * * MACROS ENDMS. JFL SUBR ENTRY/EXIT JFLA UJN *+2 CON .EMS * ENDMS (ROLLOUT DEVICE IS ECS) LDN 0 SET FWA TO ROLLOUT STD T3 LDC 0 LOAD LWA OF FL TO ROLL JFLB EQU *-1 ZJN JFLX IF NO FL TO BE ROLLED RJM ROM ROLLOUT MEMORY * RJM ROD (DEVICE BUFFERED IN ECS) JFLC EQU *-1 UJN JFLX RETURN JEC SPACE 4,10 ** JEC - WRITE JOB ECS FIELD LENGTH. * * ENTRY (CN - CN+4) = *FLSW*. * * USES T3, T8, CM - CM+4, CN - CN+4. * * CALLS AEA, ROD, ROM, WNS. * * MACROS ENDMS. JEC SUBR ENTRY/EXIT * ROLLOUT BUFFER SPACE. JECG LDD FL * LDD HN (NO ACTIVITY AND ECS PROTECTED) ADC -MCMX/100 STD T3 ADN MCMX/100/2 RJM ROM ROLLOUT MEMORY * RJM ROD (DEVICE BUFFERED IN ECS) JECA EQU *-1 * ROLLOUT ECS. LDN ZERL SET UP *MTR* CALL CRD CN LDC MCMX/4 SET WORD COUNT STD CN LDN 0 CHECK BUFFER SIZE RJM AEA TLDC 0,CPAD INITIALIZE RESPONSE ADDRESS CWD CN LDD FL SET BUFFER ADDRESS ADC -MCMX/100 STD CN+2 ADN MCMX/100/4 SET TOGGLE CONSTANT LMD CN+2 STM JECB LDD MA WRITE REQUEST TO *OR* CWD CN SBN 1 CWM JECF,ON LDN MCMX/4/1000 ADVANCE ECS ADDRESS RJM AEA JEC1 LDD OA WAIT *OR* CLEAR CRD CM LDD CM NJN JEC1 LOOP TILL CLEAR JEC2 TLDC 0,CPAD CHECK *RCXM/ECXM* RESPONSE WORD CRD CM LDD CM NJN JEC2 IF *RCXM/ECXM* INCOMPLETE LDD CM+1 ZJN JEC3 IF NO ECS ERROR LDK JSET SET ERROR FLAG TO ABORT JOB STEP SBM ROJK MJN JEC3 IF HIGHER ERROR FLAG ALREADY SET RAM ROJK JEC3 LDD CN+2 TOGGLE BUFFER POINTER STD T3 LMC * JECB EQU *-1 * LMC N (TOGGLE CONSTANT) * LJM JEC5 (IF LAST BUFFER FULL) STD CN+2 TLDC 0,CPAD SET COMPLETION STATUS CWD CN LDD MA WRITE REQUEST CWD CN SBN 1 CWM JECF,ON LDN MCMX/4/1000 ADVANCE ECS ADDRESS RJM AEA LDD T3 ADN MCMX/100/4 STD T8 * ROLLOUT ECS BUFFER. JEC4 LDD RA ADD T3 SHN 6 CRM BFMS+2,HN LDC BFMS RJM WNS AOD T3 LMD T8 NJN JEC4 IF NOT END OF ECS BLOCK LJM JEC1 GET NEXT BLOCK OF ECS JEC5 UJN *+2 JECC EQU *-1 CON .EMS * ENDMS (ROLLOUT DEVICE IS ECS) LDD T3 SHN 6 ADD CN SHN -6 RJM ROM ROLLOUT MEMORY * RJM ROD (DEVICE BUFFERED IN ECS) JECD EQU *-1 * ROLLOUT LAST PART OF CM. LDM UERR CLEAR NO FLUSH FLAG LPC -EPNF STM UERR JECH LDD FL * LDD HN (NO ACTIVITY AND ECS PROTECTED) SBN MCMX/100/2 SET FWA FOR ROLLOUT STD T3 ADN MCMX/100/2 RJM ROM ROLLOUT MEMORY * RJM ROD (DEVICE BUFFERED IN ECS) JECE EQU *-1 LJM JECX RETURN JECF VFD 12/RCXM EM TRANSFER FUNCTION PROCESSED BY *MTR* VFD 29/0 VFD 1/0 FUNCTION TYPE = READ VFD 18/0 ALTERNATE RESPONSE ADDRESS TITLE SUBROUTINES. AEA SPACE 4,10 ** AEA - ADVANCE EM ADDRESS FOR *RCXM/ECXM* FUNCTION. * * ENTRY (A) = INCREMENT. * (AEAA) = FLE. * (CN - CN+4) = *RCXM*/*ECXM* PARAMETER WORD. * * EXIT WORD COUNT ADJUSTED IF LESS THAN MCMX/4 WORDS TO GO. * *JECB* SET TO BYPASS NEXT READ IF FLE REACHED. * * USES CN, CN+4. * LDD *LJMI* AEA1 LDD HN SET *LJMI* TO BYPASS NEXT READ STM JECB-1 LDC JEC5 STM JECB AEA SUBR ENTRY/EXIT RAD CN+4 SHN -14 RAD CN+3 SHN 14 ADD CN+4 AEAA ADC ** * ADC -FLE PJN AEA1 IF FLE REACHED SHN 11 ADD CN SHN 11 MJN AEAX IF FULL BUFFER REMAINS ZJN AEAX IF FULL BUFFER REMAINS SHN 11 STD CN UJN AEAX RETURN CJS SPACE 4,20 ** CJS - CHANGE JOB STATUS. * * DETERMINE NEW JOB STATUS AND PLACE IT IN THE SYSTEM SECTOR * EJT IMAGE AND THE *UTEM* PARAMETER BLOCK TO BE USED TO UPDATE * THE EJT ENTRY IN CM. THE *UTEM* FUNCTION WILL BE ISSUED * AFTER WRITING THE ROLLOUT FILE. * * ENTRY (EO) = EJT ORDINAL. * (EJSS - EJSS+19) = EJT ENTRY. * (NF) = NFL. * * USES T1, T2, CM - CM+4, CN - CN+4, FS - FS+4. * * CALLS CET, RJC. * * MACROS MONITOR, NFA. CJS SUBR ENTRY/EXIT * CHECK FOR CORRECT JOB STATUS AND CLEAR THE FOLLOWING FIELDS * IN THE EJT ENTRY - JOB ADVANCE FLAG, JOB STATUS, INHIBIT JOB * ADVANCE FLAG. LDM EJSS+5*JSNE+4 SHN -1 LPN 37 LMK EXJS STD T2 ZJN CJS1 IF JOB STATUS IS CORRECT LMK PCJS&EXJS ZJN CJS1 IF JOB STATUS CORRECT LDN 0 INDICATE NO ERROR FLAG TO SET STD CM+2 LDC * SET ERROR DETECTION ADDRESS STD CM+1 MONITOR CHGM CONDITIONALLY HANG PP CJS1 LDM EJSS+5*JSNE+4 LPC 7600 STM EJSS+5*JSNE+4 RAM CROF * CHECK FOR PRE-DETERMINED JOB STATUS. IF THE JOB STATUS HAS * ALREADY BEEN SELECTED, IGNORE THE ROLLOUT CONTROL FLAGS IN * *STSW*. LDC ** CJSA EQU *-1 (SELECTED JOB STATUS) NJN CJS6 IF JOB STATUS ALEADY DETERMINED * USE THE ROLLOUT CONTROL FLAGS TO DETERMINE WHAT JOB STATUS TO * ASSIGN THE JOB. ERRNZ /CPS/ROSU/2-/CPS/ROSC CHECK ROLLOUT FLAG POSITIONS ERRNZ /CPS/ROSC/2-/CPS/RODS ERRNZ /CPS/RODS/2-/CPS/ROTE ERRNZ /CPS/ROTE/2-/CPS/ROSR LDM ERSA SHN -3 LPN 17 ZJN CJS5 IF JOB SCHEDULER ROLLOUT SHN -1 ZJN CJS4 IF TIMED/EVENT ROLLOUT SHN -1 ZJN CJS3 IF DISABLED JOB STATE REQUESTED SHN -1 ZJN CJS2 IF SCP ROLLOUT LDN SUJS&SOJS SET JOB STATUS = *SUJS* CJS2 LMN SOJS&DOJS SET JOB STATUS = *SOJS* CJS3 LMN DOJS&TOJS SET JOB STATUS = *DOJS* CJS4 LMN TOJS&ROJS SET JOB STATUS = *TOJS* CJS5 LMN ROJS SET JOB STATUS = *ROJS* CJS6 STD T1 SAVE JOB STATUS AS INDEX SHN 1 STORE JOB STATUS IN SYSTEM SECTOR EJT RAM EJSS+5*JSNE+4 LPN 76 RAM CROF * GO TO JOB STATUS PROCESSOR. LDM TJSP,T1 GET PROCESSOR ADDRESS STD T1 LJM 0,T1 GO TO PROCESSOR * PROCESS *ROJS* JOB STATUS. CJS7 LDD T2 ZJN CJS8 IF NOT ROLLING FROM A PCP LDM EJSS+5*SCHE+3 STD T1 LDM EJSS+5*SCHE+4 STD T2 UJN CJS8.1 SET ENTRY TIME INTO EJT DATA BLOCK * CALCULATE ENTRY TIME INTO QUEUE. CJS8 LDM EJSS+5*SCHE+4 GET SCHEDULING PRIORITY FOR *CET* STD T1 LDM EJSS+5*SCLE GET SERVICE CLASS FOR *CET* SCN 77 SHN 6 LMK EXQT RJM CET CALCULATE ENTRY TIME * PLACE ENTRY TIME IN SYSTEM SECTOR EJT ENTRY AND IN EJT DATA * BLOCK. CJS8.1 LDD T1 STM EJSS+5*SCHE+3 STM CROH+1 * UJN *+2 (*SUJS* JOB STATUS) CJSB EQU *-2 LDD T2 STM EJSS+5*SCHE+4 STM CROH+2 * UJN *+2 (*SUJS* JOB STATUS) CJSC EQU *-2 LJM CJSX RETURN * PROCESS *TOJS* JOB STATUS. CJS9 TLDC TERW,CPAD MOVE TIMED/EVENT ROLLOUT DESCRIPTOR CRD CM LDM EJSS+5*SCHE+2 LMD CM+2 LPN 77 LMM EJSS+5*SCHE+2 STM EJSS+5*SCHE+2 LPN 77 STM CROH LDD CM+3 STM EJSS+5*SCHE+3 STM CROH+1 LDD CM+4 STM EJSS+5*SCHE+4 STM CROH+2 LDD CM+2 SCN 77 STD CM+2 LDN 0 STD CM+3 STD CM+4 TLDC TERW,CPAD CWD CM CJS10 LJM CJSX RETURN * PROCESS *IOJS* JOB STATUS. CJS11 LDM CROG+1 SAVE TERMINAL OUTPUT TRACK STM CROH+1 LDN 3 SET SECTOR STM CROH+2 UJN CJS10 CLEAR ROLLOUT CONTROL FLAGS * PROCESS *SUJS* JOB STATUS. CJS12 LDM CROF SET *DTCS* CONNECTION STATUS LPC 4177 LMK DTCS*200 STM CROF LDD DI STM CJSB STM CJSC STM CROE AVOID TERMINAL TABLE UPDATE / *1TO* CALL LDM EJSS+5*SCLE GET SERVICE CLASS SHN -6 STD T1 SAVE PRE-DETACH SERVICE CLASS RJM RJC CALCULATE JCB ADDRESS ADN SVJT CRD CM LDC RTCL CRD FS LDD CM+4 CALCULATE SUSPENSION TIME-OUT VALUE SHN 3 ADD FS+1 STM CROH+2 STORE TIMEOUT VALUE IN EJT DATA BLOCK SHN -14 ADD FS STM CROH+1 LDM EJSS+5*JSNE+4 CHECK CONNECTION STATUS SHN -7 LPN 17 LMK DTCS ZJN CJS13 IF JOB ALREADY DETACHED NFA RC1N SET PRE-DETACH SERVICE CLASS CRD CN LDD CN+2 SCN 77 LMD T1 STD CN+2 NFA RC1N REWRITE RECOVERY WORD CWD CN CJS13 LJM CJS8 SET ENTRY TIME INTO QUEUE * PROCESS *PCJS* JOB STATUS. CJS14 LDD DI DISABLE */3RP/TER* CALL STM CROE UJN CJS13 SET ENTRY TIME INTO QUEUE SPACE 4,10 ** TJSP - TABLE OF JOB STATUS PROCESSORS. * * EACH TABLE ENTRY CONTAINS THE PROCESSOR ADDRESS CORRESPONDING * TO THE JOB STATUS. TJSP INDEX INDEX ROJS,CJS7 INDEX SOJS,CJSX INDEX TOJS,CJS9 INDEX IOJS,CJS11 INDEX DOJS,CJSX INDEX SUJS,CJS12 INDEX ERJS,CJSX INDEX PCJS,CJS14 INDEX MXJS CPC SPACE 4,15 ** CPC - CHECK PCP ROLLOUT COMPLETION. * * EXIT (A) .LT. 0 IF NOT PCP ROLLOUT. * (A) = 0 IF SIMPLE PCP ROLLOUT. * (A) .GT. 0 IF COMPOUND ROLLOUT. * PCP ASSIGNMENT CLEARED IF SIMPLE PCP ROLLOUT. * PCP ASSIGNMENT TRANSFERRED TO CP JOB IF COMPOUND * ROLLOUT. * JOB INTERLOCK CLEARED IF PCP ROLLOUT. * * USES CM - CM+4, CN - CN+4. * * MACROS MONITOR, SFA. CPC1 LCN 0 FLAG NOT PCP ROLLOUT CPC SUBR ENTRY/EXIT LDD IR+2 LMN 3 NJN CPC1 IF NOT PCP ROLLOUT LDC /CPS/ALCS+0 SET ALTERNATE CP/PCP FLAG STD CM+1 MONITOR CCAM CLEAR ALTERNATE PCP ASSIGNMENT TLDC TFSW,CPAD CRD CN LDC 0 CPCA EQU *-1 (CP JOB EJT ORDINAL IF COMPOUND ROLLOUT) STD CN TLDC TFSW,CPAD CLEAR OR TRANSFER PCP ASSIGNMENT CWD CN SFA EJT,EO ADK JSNE CRD CM SOD CM+4 CLEAR JOB INTERLOCK SFA EJT,EO ADK JSNE CWD CM LDD CN SET SIMPLE/COMPOUND ROLLOUT STATUS UJN CPCX RETURN CRO SPACE 4,10 ** CRO - COMPLETE ROLLOUT. * * ENTRY (EO) = EJT ORDINAL. * (NF) = NFL ASSIGNED. * (AEAA) = ECS FL ASSIGNED. * * USES CM - CM+4, CN - CN+4, FS - FS+4, T1 - T5. * * CALLS ISR, /3RP/TER. CRO SUBR ENTRY/EXIT LDD IR+2 SBN 2 ZJP CRO4 IF PSEUDO-ROLLOUT TLDC FLIW,CPAD CRD CM * DETERMINE IF CM/ECS FL FIELDS OF *UTEM* PARAMETER BLOCK HAVE * ALREADY BEEN SET. LDC ** CROB EQU *-1 NJN CRO3 IF CM/ECS FL FIELDS ALREADY SET * CALCULATE ROLLIN CM/ECS FL AND SAVE AMOUNTS IN *UTEM* * PARAMETER BLOCK. LDD CM+4 CALCULATE ROLLIN CM FL NJN CRO1 IF CM FL/NFL INCREASE PENDING LDC ** CROC EQU *-1 (CM FL) ADD NF CRO1 STM CROJ+1 STORE ROLLIN CM FL IN EJT DATA BLOCK LDC ** CROD EQU *-1 (EM FL - ZERO ON *DMP=* PARTIAL DUMP) STM CROJ STORE ROLLIN EM FL IN EJT DATA BLOCK SBD CM+3 PJN CRO3 IF PENDING ECS FL LESS THAN CURRENT ECS FL LDD CM+3 STM CROJ STORE NEW ROLLIN EM FL IN EJT DATA BLOCK CRO3 LDN 0 CLEAR CM/ECS INCREASE REQUESTS STD CM+3 STD CM+4 TLDC FLSW,CPAD CRD CN ADK FLIW-FLSW CWD CM LDN 0 STD CN+1 TLDC FLSW,CPAD CWD CN * UPDATE THE EJT ENTRY AS FOLLOWS - * UPDATE CONNECTION STATUS. * CHANGE JOB STATUS. * STORE ROLLOUT FILE ADDRESS. * SET SCHEDULE FIELD. * SAVE ERROR FLAG (IF ANY). * CLEAR FORCED ROLLIN. * SET ROLLIN CM/ECS FL. CRO4 SFA EJT,EO ADK JSNE CRD T1 ADK SCHE-JSNE CRD CM ADK PRFE-SCHE CRD CN ADK SCLE-PRFE CRD FS LDM CROF STD T1+4 LDD CM+2 STORE SCHEDULING FIELD DATA SCN 77 LMM CROH STM CROH LDM CROI STORE ERROR FLAG STD CN+1 LDD FS CLEAR FORCED ROLLIN FLAG SCN 20 STD FS LDM CROJ STORE EM FL STD FS+3 LDM CROJ+1 STORE CM FL STD FS+4 SFA EJT,EO ADK JSNE CWD T1 ADK SCHE-JSNE CWM CROG,ON ADK PRFE-SCHE-1 CWD CN ADK SCLE-PRFE CWD FS * RELEASE STORAGE. LDN 0 RELEASE CM AND EM FL RJM ISR * TERMINATE ROLLOUT. RJM /3RP/TER TERMINATE ON-LINE INTERACTIVE JOB * UJN *+2 (SUSPENDED, NOT ON-LINE OR PSEUDO-ROLL) CROE EQU *-2 LJM CROX RETURN * EJT ENTRY DATA BLOCK. CROF VFD 1/0 SCP/UCP CONNECTION STATUS VFD 4/0 INTERACTIVE CONNECTION STATUS VFD 1/1 JOB ADVANCE FLAG VFD 5/0 JOB STATUS VFD 1/1 JOB INTERLOCK FLAG CROG CON 0 ROLLOUT FILE EST ORDINAL CON 0 ROLLOUT FILE FIRST TRACK CROH CON 0,0,0 SCHEDULING DATA ERRNZ CROH-CROG-2 CELLS MUST BE CONTIGUOUS CROI CON 0 ERROR FLAG CROJ CON 0 ROLLIN EM FL CON 0 ROLLIN CM FL ERS SPACE 4,10 ** ERS - ENTER ROLLOUT STATUS. * * ENTRY (A) = 0, IF TO CLEAR ROLLOUT REQUESTED STATUS. * (A) = 1, IF TO SET ROLLOUT REQUESTED STATUS. * * EXIT (A) .GE. 0. * * USES T1, CM - CM+4. ERS SUBR ENTRY/EXIT STD T1 SAVE ROLLOUT REQUEST STATUS TLDC STSW,CPAD READ ROLLOUT CONTROL FLAGS CRD CM LDC ** ERSA EQU *-1 (ROLLOUT CONTROL FLAGS AT TIME OF ROLLOUT) SCN 3 CLEAR CPU STATUS FLAG AND ROLLOUT FLAG LMD T1 SET/CLEAR ROLLOUT REQUESTED FLAG STD CM+2 TLDC STSW,CPAD CWD CM UJN ERSX RETURN FTB SPACE 4,10 ** FTB - FILL TRACK BUFFER. * * ENTRY (FTBA - FTBA+1) = TRT POINTER. * (T6) = LAST TRACK USED. * * EXIT (A) .NE. 0. * (NT) = TBUF. * TRACK BUFFER REFILLED. * * USES T0, T1, CM - CM+4, NT. FTB SUBR ENTRY/EXIT LDC TBUF SET FWA OF TRACK BUFFER STD NT STD T0 LDD T6 SHN 6 FTB1 SHN -6 STI T0 FTB2 SHN -2 FTBA ADC TRTS CRD CM LDI T0 SET BYTE INDEX LPN 3 STD T1 AOD T0 BUMP INDEX LMC TBUFL-1 CHECK FOR END OF BUFFER ZJN FTB3 IF TRACK BUFFER FULL LDM CM,T1 SHN 6 MJN FTB1 IF NOT EOI TRACK LCN 0 INHIBIT REFILLING TRACK BUFFER FTB3 STI T0 SET END OF BUFFER AOD NT UJN FTBX RETURN ISR SPACE 4,15 ** ISR - ISSUE STORAGE REQUEST. * * ENTRY (A) = 5/0, 1/F, 12/K * F = 0 IF CM REQUEST. * = 1 IF EM REQUEST. * K = AMOUNT OF STORAGE REQUESTED. IF BOTH *F* * AND *K* ARE ZERO, ALL CM AND EM WILL BE * RELEASED. * (IR+4) = PCP NUMBER IF PSEUDO-ROLLOUT. * * USES T1, CM+1 - CM+3, FN - FN+4. * * MACROS MONITOR. ISR SUBR ENTRY/EXIT STD T1 SET STORAGE AMOUNT ISR1 STD CM+1 SHN -14 STD CM+2 SET STORAGE TYPE RAD T1 LDD IR+4 SET PCP NUMBER (IN CASE OF PSEUDO-ROLLOUT) STD CM+3 LDN ** * LDN 1 (PSEUDO-ROLLOUT) ISRA EQU *-1 SHN 12 RAD CM+2 LPN 1 ZJN ISR3 IF CM REQUEST TLDC ECSW,CPAD READ EM CONTROL WORD CRD FN LDD FN+4 ISR2 ZJN ISRX IF NO EM ASSIGNED ISR3 MONITOR RSTM LDD T1 NJN ISRX IF PREVIOUS REQUEST EM OR CM REMAINS LDC 1S12 UJN ISR1 RELEASE EM FL ISS SPACE 4,10 ** ISS - INITIALIZE SYSTEM SECTOR. * * USES CM - CM+4, CN - CN+4. * * MACROS NFA. ISS SUBR ENTRY/EXIT TLDC JCIW,CPAD CRD CN ADN TFSW-JCIW CRD CM ADK RFCW-TFSW READ DM* FILE POINTERS CRM DFSS,ON ADK SSCW-RFCW-1 READ SCP CONNECTION INDICATORS CRM COSS,ON ERRNZ RC1N-RC2N-1 ENSURE *RC1N*/*RC2N* CONTIGIOUS ERRNZ R2SS-R1SS-5 ENSURE *R1SS*/*R2SS* CONTIGUOUS NFA RC1N OBTAIN ADDRESS OF FIRST RECOVERY WORD CRM R1SS,ON CRM R1SS+5,ON LDD CM+1 ZJN ISS1 IF NO PRIMARY FILE NFA CM+1,R CRM PFSS,ON STORE PRIMARY FILE FNT IN SYSTEM SECTOR * STORE INPUT FILE DISK ADDRESS IN SYSTEM SECTOR. ISS1 NFA FNTN ADN FSTL CRM IFSS,ON * STORE SERVICE CLASS VALIDATION MASK. NFA SCVN CRM VMSS-2,ON * SET *SISS* FIELD. LDD CN+2 ADC -LSSI-1 MJN ISS4 IF JOB IS NOT A SUBSYSTEM LMN DSSI-LSSI-1 NJN ISS2 IF NOT DEADSTART SEQUENCING JOB LCN 7777-MSSI ERRPL 7677-MSSI ENSURE *LCN* MAY BE USED UJN ISS3 STORE SSID IN SYSTEM SECTOR ISS2 LDD CN+2 SAVE SSID ISS3 STM SISS * PLACE DAYFILE BUFFER POINTERS IN SYSTEM SECTOR ISS4 NFA DAPN+2 CRM DBSS,ON * SET FILE NAME AND TYPE FOR JOB ROLLOUT. *WSS* RESETS *FNSS* * FROM THE LOCAL FNT ENTRY FOR *DMP=* ROLLOUT. LDM EJSS+5*JSNE+0 SET JSN AS FILE NAME STM FNSS+0 LDM EJSS+5*JSNE+1 STM FNSS+1 LDC ROFT*100 SET FILE TYPE STM FNSS+4 LJM ISSX RETURN ITF SPACE 4,10 ** ITF - ISSUE *TSEM* FUNCTION. * * ENTRY *TSEM* PARAMETERS WRITTEN TO MESSAGE BUFFER. * * EXIT (A) = 0, IF IAF INACCESSIBLE OR ERROR. * (A) .NE. 0, IF REQUEST COMPLETE. * * USES T1. * * MACROS DELAY, MONITOR, PAUSE. ITF SUBR ENTRY/EXIT ITF1 MONITOR TSEM LDD CM+1 ZJN ITFX IF IAF INACCESSIBLE OR ERROR LMC 7777 NJN ITFX IF REQUEST COMPLETE PAUSE ST *TSEM* QUEUE FULL - DELAY AND RETRY LDC 3600 STD T1 ITF2 DELAY SOD T1 ZJN ITF1 IF TIME TO REISSUE REQUEST UJN ITF2 CONTINUE TO DELAY MSR SPACE 4,20 ** MSR - PROCESS MASS STORAGE ERROR OR INSUFFICIENT SPACE. * * ENTRY (A) .GE. 0 IF INSUFFICIENT SPACE FOR ROLLOUT. * .LT. 0 IF MASS STORAGE ERROR. * * EXIT TO */3RQ/MSE* TO PROCESS MASS STORAGE ERROR. * * MACROS EXECUTE. MSR BSS 0 ENTRY SHN 0-21 SAVE MASS STORAGE ERROR FLAG RAM MSRA EXECUTE 3RQ PROCESS MASS STORAGE ERROR LDN ** RETURN ERROR STATUS MSRA EQU *-1 LJM /3RQ/MSE PROCESS MASS STORAGE ERROR MSRE CON 0,0 TERMINAL OUTPUT POINTER ADDRESS MSRF BSS 5 TERMINAL OUTPUT POINTER MSRG CON 0 ORIGINAL ROLLOUT CONTROL FLAGS MSRH BSS 5 ORIGINAL *TERW* IMAGE RMS SPACE 4,20 ** RMS - REQUEST MASS STORAGE SPACE. * * ENTRY (NF) = NUMBER OF NFL SECTORS. * (SC) = OUTPUT BUFFER SECTOR COUNT (EXCLUDING EOR * SECTOR) FOR INTERACTIVE JOBS. * = 0 FOR NON-INTERACTIVE JOBS. * (FL) = JOB CM FIELD LENGTH (NFL NOT INCLUDED). * * EXIT (NT) = *TBUF*. * (TBUF) = TRACKS ASSIGNED. * * USES T5, T6, CM - CM+4, CN - CN+4, FS - FS+2. * * CALLS ERS, FTB, /3RS/UFS. * * MACROS ISTORE, MONITOR, SFA. * * NOTE - EXIT TO *MSR* IF INSUFFICIENT MASS STORAGE SPACE FOR * ROLLOUT FILE. RMS SUBR ENTRY/EXIT * COMPUTE SECTOR COUNT FOR ROLLOUT. LDM CROD EM FL / *UEBS* (ZERO ON *DMP=* PARTIAL) RMSN SHN 3 * SHN 3+UESC ADC 0 NFL SECTOR COUNT (ZERO IF *DMP=* ROLLOUT) RMSH EQU *-1 RMSA ADN 4 CPA SECTORS, SYSTEM SECTOR, EOI SECTOR * ADN 5 (IF INTERACTIVE JOB + EMPTY OUTPUT BUFFER) * ADN 5 (INTERACTIVE JOB + SECTOR OVERFLOW) ADD SC TERMINAL OUTPUT SECTOR COUNT ADC FL * ADC 0 (NO ACTIVITY) * ADC MCMX/100 (NO ACTIVITY AND ECS PROTECTED) RMSB EQU *-1 STD CM+4 SET SECTOR COUNT STM RMSL+1 SHN -14 STD CM+3 RAM RMSL LDM ERSA CHECK FOR TIMED EVENT ROLLOUT LPC 110 ZJN RMS0 IF NOT SUSPENDED OR TIMED EVENT LDN 0 UJN RMS1 SKIP SECONDARY ROLLOUT SELECTION RMS0 LDN IPRL READ SECONDARY ROLLOUT SECTOR THRESHOLD CRD CN LDD CM+3 SHN 14 LMD CM+4 SBD CN+1 SHN -21 ZJN RMS1 IF .GT. THRESHOLD LDN /CPS/SROS&/CPS/ROLS RMS1 LMN /CPS/ROLS STD CM+2 LDN ** * LDN /CPS/ROLS (JOB CONNECTED TO *SMF*) RMSK EQU *-1 (SET BY *PRESET*) ZJN RMS2 IF NOT *IAOT* JOB CONNECTED TO *SMF* STD CM+2 * RESERVE ROLLOUT FILE SPACE. RMS2 LDM CROD ZJN RMS5 IF NO ROLLOUT OF EM LDD FL ERRNZ MCMX/100-100 ENSURE DIRECT CELL *HN* MAY BE USED SBD HN PJN RMS5 IF ENOUGH CM TO ROLL ECS LDK SWET SET SYSTEM SOFTWARE ERROR FLAG STD CM+2 LDC * SET DETECTION ADDRESS STD CM+1 MONITOR CHGM CONDITIONALLY HANG PP * LDN 0 CLEAR ROLLOUT REQUESTED FLAG RJM ERS RMS3 LJM MSR PROCESS ERROR CONDITION RMS5 LDN 0 CLEAR EQUIPMENT STD CM+1 RMSL LDC 0 SECTOR COUNT STD CM+4 SHN -14 STD CM+3 LDC ** RMSG EQU *-1 (JOB ACCESS LEVEL) ADN 40 SHN 6 RAD CM+3 MONITOR RTCM ASSIGN MASS STORAGE SPACE LDD CM+4 NJN RMS6 IF SUFFICIENT MASS STORAGE SPACE LDC ** RMSM EQU *-1 NJN RMS3 IF SECOND ATTEMPT MADE STD CM+2 CLEAR *MSAL* DEVICE SELECTION AOM RMSM FLAG SECOND ATTEMPT UJN RMS5 RETRY *RTCM* REQUEST RMS6 STD T6 SET TRACK STM EJSS+5*SCHE+1 STORE TRACK IN EJT * STM FS+1 (*DMP=* CALL) RMSC EQU *-1 STM CROG+1 STORE FIRST TRACK IN EJT DATA BLOCK * STM FS+2 (*DMP=* CALL) RMSD EQU *-1 LDD CM+1 SET EST ORDINAL STD T5 STM EJSS+5*SCHE STORE EQUIPMENT IN EJT * STM FS (*DMP=* CALL) RMSE EQU *-1 STM CROG STORE EST ORDINAL IN EJT DATA BLOCK RMSF RJM /3RS/UFS UPDATE DM* FILE STATUS * UJN *+2 (NON-DMP= CALL) * READ TRACK CHAIN. SFA EST,T5 READ MST POINTER ADK EQDE CRD CM LDD CM+4 SET FWA OF TRT - TRACK BIT SHN 3 ADN DILL CRD CM ADN TRLL-DILL CRD CN LDD CN+3 LPN 77 SHN 14 LMD CN+4 SBD TH 4000S-2 STM FTBA+1 SHN -14 RAM FTBA LDD CM+3 CHECK FOR DEVICE BUFFERED IN ECS SHN 21-13 PJP RMS10 IF ROLLOUT FILE NOT ON ECS BUFFERED DEVICE SHN 13-21-6 LPN 7 LMN 4 ZJN RMS8 IF UEM LDD CM+3 LPN 7 ZJN RMS9 IF NO DDP PATH PRESENT RMS8 LDK SSTL CRD CN LDD CN+3 SHN 21-11 PJN RMS10 IF DDP ROLLOUT PATH ENABLED RMS9 LDC ROD SET UP DIRECT ROLLOUT STM JFLC STM JECA STM JECD STM JECE LDD CM+3 SHN 21-12 PJN RMS11 IF ECS ISTORE ROJJ,(UJN ROJ4) LDM CROD ZJN RMS12 IF NO ROLLOUT OF EM LDC EPNF SET NO FLUSH FOR CM ROLL STM ROJI+1 RMS10 UJN RMS12 CONTINUE RMS11 LDC RJMI STM JFLA STM JECC RMS12 RJM FTB FILL TRACK BUFFER LJM RMSX RETURN ROD SPACE 4,15 ** ROD - ROLLOUT USING DIRECT TRANSFER TO MASS STORAGE. * * ENTRY (A) = SECTOR COUNT. * (T3) = SECTOR OFFSET FROM RA. * * EXIT TO *MSR* IF MASS STORAGE ERROR. * * USES T8, CM+3 - CM+4. * * CALLS DDT, RTL. ROD SUBR ENTRY/EXIT STD T8 SAVE SECTOR COUNT LDD T3 SET FWA OF ROLLOUT SHN 6 STD CM+4 SHN -14 STD CM+3 LDD T8 SET SECTOR COUNT SBD T3 LMC /CPS/WDDS*10000 SET WRITE FUNCTION RJM DDT WRITE DIRECT TO MASS STORAGE MJP MSR IF MASS STORAGE ERROR RJM RTL RESYNC TRACK LIST UJP RODX RETURN ROM SPACE 4,10 ** ROM - ROLLOUT MEMORY. * * ENTRY (A) = SECTOR COUNT. * (T3) = SECTOR OFFSET FROM RA. * * USES T3, T8. * * CALLS WNS. ROM SUBR ENTRY/EXIT STD T8 SAVE NUMBER OF SECTORS TO ROLL ROM1 LDD RA ADD T3 SHN 6 CRM BFMS+2,HN RJM WNS WRITE NEXT SECTOR TO ROLLOUT FILE AOD T3 INCREMENT COUNT OF SECTORS ROLLED LMD T8 NJN ROM1 IF MORE SECTORS TO WRITE UJP ROMX RETURN RTL SPACE 4,15 ** RTL - RESYNC TRACK LIST. * * ENTRY (T6) = CURRENT TRACK. * (NT) = TRACK LIST INDEX. * * EXIT (A) = 0. * (T6) = CURRENT TRACK. * (NT) = CURRENT TRACK LIST INDEX. * * USES NT, T6, T8. * * CALLS FTB. RTL1 LDI NT STD T6 AOD NT LDI NT NJN RTL2 IF NEXT TRACK AVAILABLE RJM FTB FILL TRACK BUFFER RTL2 LDD T8 RTL3 LMM -1,NT NJN RTL1 IF NOT CURRENT TRACK RTL SUBR ENTRY/EXIT LDD T6 SET CURRENT TRACK STD T8 UJN RTL3 RESYNC TRACK LIST INDEX SEF SPACE 4,15 ** SEF - SET ERROR FLAG. * * ENTRY (A) = 1/ F,11/ ERROR FLAG. * (EO) = EJT ORDINAL (IF F=0 SPECIFIED). * * EXIT (A) = 0. * * USES CM+1 - CM+7. * * MACROS MONITOR, SFA. SEF SUBR ENTRY/EXIT ZJN SEFX IF NO ERROR FLAG LMC 4000 SET/CLEAR *EJT ORDINAL PRESENT* FLAG STD CM+1 SET ERROR FLAG LDD EO STORE EJT ORDINAL STD CM+2 SFA EJT GET JSN ADK JSNE CRD CM+3 MONITOR CEFM UJN SEFX RETURN SRA SPACE 4,10 ** SRA - SET RA TO THE BEGINNING OF NFL. * * EXIT FLSW, FLSW+1 AND EXCHANGE PACKAGE ALTERED * TO REFLECT THE NEW RA AND FL. * * NOTES AFTER THIS ROUTINE IS EXECUTED ANY ACCESS TO THE * JOB-S CM FL MUST BE BIASED BY CELL *NF*. * * USES CM - CM+4, CN - CN+4, FS - FS+4, FN - FN+4. SRA SUBR ENTRY/EXIT TLDC 1,CPAD READ EXCHANGE PACKAGE RA CRD FS ADN 1 READ EXCHANGE PACKAGE FL CRD FN ADN FLSW-2 READ FIELD LENGTH CONTROL WORDS CRD CM ADN FLSW+1-FLSW CRD CN LDD CM ADD NFL TO FL RAD CM+4 STD CN+4 SHN 6 STD FN+1 SHN -14 STD FN LDC 4000 SET NFL+4000 STD CN+3 LDD CM+2 FORM NEW RA SHN 14 ADD CM+3 SBD CM RA-NFL STD CM+3 STD CN+2 SHN 14 STD FS SHN -6 LPN 77 STD CM+2 STD CN+1 LDD CM+3 SHN 6 STD FS+1 LDD CM SAVE NFL SIZE FOR LEVEL 3 D/S STD CM+1 RAM JFLB ADJUST NUMBER OF SECTORS TO ROLL LDN 0 CLEAR NFL FIELD STD CM TLDC 1,CPAD UPDATE EXCHANGE PACKAGE DATA CWD FS ADN 1 CWD FN ADN FLSW-2 CWD CM ADN FLSW+1-FLSW CWD CN LJM SRAX RETURN TCP SPACE 4,10 ** TCP - TRANSFER CPA TO PCPA. * * ENTRY (IR+4) = PCP NUMBER. * * USES CM - CM+4. * * MACROS MONITOR. TCP SUBR ENTRY/EXIT LDD CP READ CPA INTO PP CRM BUF,HN CRM BUF+100*5,HN * SET ALTERNATE PCP ASSIGNMENT WHEN UPDATING THE PCP FIELD * LENGTH CONTROL WORDS TO PREVENT A SIMULTANEOUS UPDATE OF * THESE WORDS BY A STORAGE MOVE. LDD IR+4 SET PCP NUMBER ADC /CPS/ALCS SET ALTERNATE PCP FLAG STD CM+1 MONITOR CCAM SET ALTERNATE PCP ASSIGNMENT TLDC FLSW,PCAD PRESERVE PCPA FL CONTROL WORDS CRM BUF+FLSW*5,TR ADK TFSW-FLSW-3 PRESERVE EJT ORDINAL FROM PCPA CRD CM LDD CM STM BUF+TFSW*5+0 LDM BUF+STSW*5+2 CLEAR ROLLOUT CONTROL FLAGS LPN 2 PRESERVE CPU STATUS FLAG STM BUF+STSW*5+2 TLDC 0,PCAD MOVE CPA TO PCPA CWM BUF,HN CWM BUF+100*5,HN LDC /CPS/ALCS SET ALTERNATE CP FLAG STD CM+1 MONITOR CCAM CLEAR ALTERNATE PCP ASSIGNMENT UJP TCPX RETURN WNS SPACE 4,20 ** WNS - WRITE NEXT SECTOR. * * ENTRY (BFMS+1 - BFMS+501) = SECTOR FORMATTED. ANOTHER * BUFFER ADDRESS MAY BE USED IF CALLER PRESETS (WNSA), * (WNSB), AND (WNSC) AND RESTORES THEM. * (NT) = NEXT TRACK BUFFER POINTER. * (T6) = TRACK. * (T7) = SECTOR. * * EXIT (T6) AND (T7) UPDATED. * TO *MSR* IF MASS STORAGE ERROR OCCURRED. * * USES T2, T6, T7, NT. * * CALLS FTB, WDS. * * MACROS ENDMS. WNS SUBR ENTRY/EXIT LDD T7 SET NEXT SECTOR ADN 1 WNS1 STM BFMS WNSA EQU *-1 * STM OBUF (TERMINAL OUTPUT SECTOR) LMM SLM NJN WNS2 IF NOT END OF TRACK LDI NT SET NEXT TRACK UJN WNS1 SET TRACK INTO SECTOR LINKAGE BYTE WNS2 LDC BFMS+WCSF WRITE CONSECUTIVE SECTORS WNSB EQU *-1 * LDC OBUF+WCSF (TERMINAL OUTPUT SECTOR) RJM WDS WRITE SECTOR MJP MSR IF MASS STORAGE ERROR LDM BFMS WNSC EQU *-1 * LDM OBUF (TERMINAL OUTPUT SECTOR) STD T7 SHN 21-13 PJN WNSX IF NOT NEW TRACK SHN -6 STD T6 LDN 0 RESET SECTOR STD T7 AOD NT LDI NT WNS2.1 NJN WNSX IF NEXT TRACK AVAILABLE WNS3 LDD OA WAIT OUTPUT REGISTER CLEAR CRD CM LDD CM NJN WNS3 IF *RCXM*/*ECXM* IN PROGRESS ENDMS RJM FTB FILL TRACK BUFFER UJN WNS2.1 RETURN SPACE 4,10 * COMMON DECKS. CET$ EQU 1 ASSEMBLE ROUTINE *CET* (COMPCPE) *CALL COMPCPE PIR$ EQU 1 SELECT ASSEMBLY OF *PIR* FOR IAF R-REG *CALL COMPSRR LIST X *CALL COMPDDT LIST * IFP$ EQU 1 ASSEMBLE REMOTE INITIALIZATION (COMPGFP) EJT$ EQU 1 ASSEMBLE EJT ADDRESSING (COMPGFP) *CALL COMPGFP *CALL COMPRJC *CALL COMPSIC *CALL COMPWEI WCS$ EQU 1 WRITE CONSECUTIVE SECTORS (COMPWSS) *CALL COMPWSS SPACE 4,10 USE BUFFERS BUF EQU * ERRPL BUF+502-OBUF CPA OVERLAYS TERMINAL OUTPUT BUFFER * COMMON DECKS. *CALL COMPAST TITLE INITIALIZATION. PRS SPACE 4,25 ** PRS - PRESET. * * EXIT TO *ROJ1* IF PSEUDO ROLLOUT. * (DI) = *UJNI*+2. * (EO) = EJT ORDINAL. * (NF) = NFL SIZE. * (SC) = 0. * (TA) = SET PER *COMPSRR* ROUTINE *PIR*. * (TN) = TERMINAL NUMBER IF ON-LINE INTERACTIVE JOB. * (TT - TT+1) = TERMINAL TABLE ADDRESS IF ON-LINE * INTERACTIVE JOB. * (ZR - ZR+4) = 0. * (AEAA+1) = -FLE. * (CDRC) = ASSIGNED EM FL IN *UEBS* WORD BLOCKS. * (EJSS - EJSS+5*EJTE-1) = EJT ENTRY. * (CPAD) = CP OR PCP ADDRESS. * * USES DI, EO, FA, IR+2, IR+4, NF, SC, TN, CM - CM+4, * CN - CN+4, FN - FN+4, FS - FS+4, T1 - T9, * ZR - ZR+4. * * CALLS AST, CAU, ERS, FLF, IFP, ISU, ITF, /3RS/PDM, PIR, * /3RP/PRP, RRR, SIC, /3RP/SIO, SRR, /3RP/STA. * * MACROS EXECUTE, ISTORE, MONITOR, NFA, SFA. PRSE CON /REM/VCDT CLEAR TERMINAL INTERRUPT FLAG CON 0 CON /REM/VSTT CON 59D CON 0 TERMINAL NUMBER * PROCESS NON-*DMP=* ROLLOUT OF INTERACTIVE JOB. PRS25 EXECUTE 3RP LOAD INTERACTIVE JOB PROCESSING OVERLAY LDC ** PRSG EQU *-1 (CONNECTION STATUS) LMN OLCS ZJN PRS27 IF ON-LINE INTERACTIVE JOB * CHECK FOR RESOURCE LIMIT ON DETACHED INTERACTIVE JOB. SUCH * JOBS WILL BE SUSPENDED. LDD CN LPC 2400 ZJN PRS26 IF NOT RESOURCE LIMIT PRS25.1 LDM ERSA SET SUSPEND ON ROLLOUT FLAG LPC 7677 ERRNZ /CPS/ROSU*10-100 ERROR IF VALUE CHANGES LMD HN STM ERSA PRS26 LDN 0 CLEAR WORD COUNT IN OUTPUT SECTOR BUFFER STM OBUF+1 AOM RMSA INCLUDE NULL OUTPUT SECTOR IN SECTOR COUNT LJM PRS35 DISABLE ON-LINE INTERACTIVE PROCESSING * PROCESS ROLLOUT OF ON-LINE INTERACTIVE JOB. PRS27 RJM /3RP/PRP PRESET ON-LINE INTERACTIVE ROUTINES LDC FECF*10000+IFSI CHECK *IAF* ACCESSIBILITY RJM AST SHN 0-13 ERRNZ /REM/VCPT-1 CODE ASSUMES *IAF* CP = 1 NJN PRS27.2 IF *IAF* ACCESSIBLE TLDC TINW,CPAD CRD CN ADK TIOW-TINW CRD T8-3 LDD CN+3 SCN 77 ADD CN+2 NJN PRS27.1 IF TERMINAL INPUT LDD T8 LPN 37 ADD T9 NJN PRS27.1 IF EXPLICIT OUTPUT REQUEST RJM /3RP/SIO SEARCH FOR IMPLICIT OUTPUT ZJN PRS27.2 IF NO OUTPUT FOUND PRS27.1 LDN 0 CLEAR INTERACTIVE ERROR FLAG STM /3RP/INEF UJP PRS25.1 SUSPEND JOB PRS27.2 TLDC TTNW,CPAD SET TERMINAL NUMBER CRD CM LDD CM+1 NJN PRS29 IF TERMINAL NUMBER PRESENT PRS28 LDK SWET SET SYSTEM SOFTWARE ERROR STD CM+2 LDC * ADDRESS WHERE ERROR DETECTED STD CM+1 MONITOR CHGM CONDITIONALLY HANG PP SFA EJT,EO ADK JSNE CRD CM LDD CM+4 LPC 4177 LMK NICS*200 MAKE JOB NON-INTERACTIVE STD CM+4 SFA EJT,EO ADK JSNE CWD CM LDN 0 RJM ERS CLEAR ROLLOUT REQUESTED LDN /CPS/DPPS LJM ROJ7 CLEAR JOB ADVANCE AND DROP PP PRS29 STD TN SAVE TERMINAL NUMBER STM PRSE+4 RJM PIR PRESET WITH IAF R-REGISTER RJM SRR SET R-REGISTER TO IAF RA RJM /3RP/STA SET TERMINAL TABLE ADDRESS ADK /REM/VFNT CRD CN * AT ROLLOUT, *VROT* SHOULD BE BUSY. ADK /REM/VFST-/REM/VFNT CRD CM ADK /REM/VROT-/REM/VFST CRD FS RJM RRR RESTORE R-REGISTER LDD FS+4 *VROT* STATUS LPN 1 NJP PRS28 IF INCORRECT STATUS LDD CM+3 CHECK FOR *IAOT* JOB CONNECTED TO *SMF* SHN -6 ZJN PRS30 IF NOT CONNECTED TO *SMF* LDN /CPS/ROLS SET ROLLOUT FILE DEVICE ERRPL /CPS/ROLS-100 CODE REQUIRES 6 BIT VALUE RAM RMSK PRS30 TLDC TFSW,CPAD CRD CM LDD CM+1 ZJN PRS33 IF NO PRIMARY FILE NFA CM+1,R READ PRIMARY FILE DATA CRM /3RP/TERD,ON PRS33 LDD CN+4 PRESERVE BYTE 4 OF *VFNT* STM /3RP/TERD+4 LDM CPAB LPN 1 NJN PRS34 IF END OF JOB STEP RJM SRR SET R-REGISTER TO IAF RA RJM /3RP/STA READ TERMINAL TABLE ADK /REM/VSTT CRD CM RJM RRR RESTORE R-REGISTER LDD CM SHN 21-13 PJN PRS34 IF NOT TERMINAL INTERRUPT CONTROL * CLEAR TERMINAL INTERRUPT CONTROL AT THIS POINT SO THAT * *IAF* SEES THE CORRECT STATUS WHEN IT RECOGNIZES * END OF JOB STEP. LDD MA CLEAR TERMINAL INTERRUPT CONTROL CWM PRSE,ON RJM ITF ISSUE *TSEM* FUNCTION PRS34 UJN PRS38 READ EJT ENTRY INTO SYSTEM SECTOR BUFFER * DISABLE ON-LINE INTERACTIVE PROCESSING AND CHECK DMP= CALL. PRS35 LDD DI DISABLE ON-LINE INTERACTIVE JOB PROCESSING STM ROJB STM ROJC STM CROE LDD IR+2 LMN 1 NJN PRS38 IF NOT *DMP=* CALL EXECUTE 3RS LOAD *DMP=* PROCESSING OVERLAY * CLEAR SYSTEM SECTOR AND READ EJT ENTRY TO SYSTEM SECTOR. PRS38 LDC BFMS+2 STD T1 PRS39 LDN 0 STI T1 AOD T1 LMC BFMS+2+500 NJN PRS39 IF MORE WORDS TO CLEAR LDN EJTE SET EJT ENTRY LENGTH STD T1 SFA EJT,EO READ EJT ENTRY TO SYSTEM SECTOR CRM EJSS,T1 LDD IR+2 LMN 1 NJN PRSX IF NOT *DMP=* CALL RJM /3RS/PDM PRESET *DMP=* CALL PRS SUBR ENTRY/EXIT LDD CP PRESET *CPAD* FOR CP ACCESS STM CPAD+1 LDD IR+2 SBN 2 MJP PRS4 IF NO PCP INVOLVEMENT LDK NCPL GET NUMBER OF CONTROL POINTS CRD T1 ADK PCPP-NCPL GET PCP AREA POINTER CRD CM LDD IR+4 SBD T1+1 SBN 2 PCP AREA INDEX PJN PRS0.1 IF VALID PCP NUMBER MONITOR HNGM HANG PRS0.1 SHN 7 PCP AREA OFFSET RAD CM+4 SET PCP ADDRESS SHN -14 RAD CM+3 LDD IR+2 SBN 2 ZJP PRS2 IF PSEUDO-ROLLOUT * PROCESS PCP ROLLOUT. LDD CM+3 SET PCP ADDRESS STM CPAD LDD CM+4 STM CPAD+1 LDN 1 SET *CROF* WITHOUT JOB ADVANCE FLAG STM CROF LDD IR+4 SET PCP NUMBER AND ALTERNATE CP FLAG ADC /CPS/ALCS STD CM+1 MONITOR CCAM SET ALTERNATE PCP ASSIGNMENT AOD T1+1 SHN 7 SYSTEM CP ADDRESS LMD CP ZJN PRS1 IF SIMPLE PCP ROLLOUT LDD CP GET CP JOB EJT ORDINAL ADK TFSW CRD CM LDD CM SET EJT ORDINAL TO FLAG COMPOUND ROLLOUT STM CPCA SOD IR+2 SET FUNCTION 2 FOR RECALL OF *1RO* LDD IA UPDATE PP INPUT REGISTER CWD IR AOD IR+2 RESET ORIGINAL FUNCTION CODE PRS1 LJM PRS4 CONTINUE * PROCESS PSEUDO ROLLOUT. PRS2 LDD CM+3 SET PCP ADDRESS STM PCAD LDD CM+4 STM PCAD+1 AOM ISRA SET PSEUDO ROLLOUT REQUEST FLAG LDD IR+4 STORE PCP NUMBER IN EJT DATA BLOCK STM CROG+1 LDD IR+3 STORE TERMINAL NUMBER IN *1TO* CALL STM ROJN+4 ZJN PRS2.1 IF NO TERMINAL OUTPUT PENDING LDK /CPS/CCPS CLEAR *JACM* PP DROP OPTION STM ROJG+1 AOM ROJM INDICATE *1TO* CALL REQUIRED PRS2.1 LDK PCJS FORCE *PCJS* JOB STATUS STM CJSA ISTORE ROJH,(UJN ROJ2) LDC TCP SET PSEUDO-ROLLOUT PROCESSOR ADDRESS STM CPAI*2+SEQ+1 ISTORE TOPI*2+SEQ,(UJN ROJ5) LDC ROJ1 SET *PRS* EXIT STM PRS * PROCESS ALL ROLLOUT TYPES. PRS4 RJM IFP INITIALIZE *COMPGFP* LDC TSIC SET INSTRUCTION RELOCATION TABLE ADDRESS RJM SIC RELOCATE INSTRUCTIONS TLDC FLSW,CPAD GET NFL SIZE CRD CM SBN FLSW STM JECF+4 SET *RCXM* RESPONSE ADDRESS SHN -14 RAM JECF+3 LDD CM SET NFL SIZE STD NF STM RMSH SHN 6 RJM FLF FLUSH BUFFERED I/O BUFFERS RJM ISU ISSUE ACCUMULATED SRU MESSAGES * LDN 0 CLEAR TERMINAL OUTPUT SECTOR COUNT STD SC STD FA INITIALIZE DM* FILE FNT ADDRESS LDN ZERL CRD ZR LDD FL SET ROLLOUT CM FL STM CROC STM RMSB ADC -MCMX/100 STM JFLB TLDC STSW,CPAD READ CONTROL POINT STATUS WORD CRD FN ADN FLSW-STSW READ NFL WORD CRD T3 ADN TFSW-FLSW READ EJT ORDINAL WORD CRD FS ADK TERW-TFSW SAVE TIMED/EVENT ROLLOUT DESCRIPTOR CRM MSRH,ON ERRNZ CSPW-TERW-1 CODE DEPENDS ON *CSPW* = *TERW* + 1 CRD CN READ CONTROL STATEMENT POINTER WORD ADK JSCW-CSPW READ SECURITY WORD CRD CM LDD CM+1 SET JOB ACCESS LEVEL SHN -9D STM RMSG LDD FN+2 SAVE ROLLOUT CONTROL FLAGS STM ERSA STM MSRG LDD FS SAVE EJT ORDINAL STD EO SFA EJT ADK JSNE READ EJT ENTRY CRD FS LDC UJNI+2 STD DI LDD FN+1 SAVE ERROR FLAG IN EJT DATA BLOCK STM CROI * DETERMINE CONTROL POINT ACTIVITY. LDD FS+4 SAVE CONNECTION STATUS SHN 0-7 LPN 17 STM PRSG LDD FN+4 NFA SHCN CHECK *SHELL* CONTROLS CRD CM LDD CM ZJN PRS6 IF NO SHELL CONTROLS LDD CM+4 SHN 21-2 MJP PRS13 IF INTERACTIVE *SHELL* PRS6 LDD FN+4 SCN 17 NJN PRS6.1 IF PP RECALL OR TAPE ACTIVITY LDD FN+2 GET CPU STATUS FLAG LPN 2 ADD FN+1 GET ERROR FLAG NJN PRS6.1 IF CPU ACTIVITY OR ERROR FLAG SET LDD CN+3 LMD CN+4 PRS6.1 NJN PRS7 IF COMMAND BUFFER NOT EMPTY LDD CN+1 SHN 6 PRS6.2 PJP PRS13 IF NOT AT EOR OF CONTROL STATEMENT RECORD LDC ** LDD IR+2 LMN 1 ZJN PRS6.2 IF *DMP=* CALL TLDC EOJW,CPAD CRD CN ADK RFCW-EOJW CRD CM ADK SSCW-RFCW CRD FS LDD CN+2 LPC 777 NJN PRS8 IF PROLOGUE OR EPILOGUE ACTIVITY LDD CM+3 SCN 77 ADD CM+2 ADD FS ADD FS+1 ADD FS+2 ADD FS+3 ADD FS+4 PRS7 NJN PRS8 IF *TCS* COMMAND OR SCP CONNECTIONS TLDC JCIW,CPAD READ JOB CONTROL WORD CRD CM ADN TINW-JCIW READ TERMINAL INPUT WORD CRD CN ADK SPCW-TINW READ SPECIAL CALL WORD CRD FS LDD CM+3 SHN 21-10 MJN PRS8 IF JOB STEP FILES TO RETURN LDD FS NJN PRS8 IF *DMP=* IN PROGRESS LDD CN+3 SCN 77 ADD CN+2 NJN PRS8 IF TERMINAL INPUT PENDING LDD CN+1 LPC 100 ZJN PRS9 IF NOT REPRIEVE ON NORMAL TERMINATION PRS8 LJM PRS13 BYPASS EM CHECK PRS9 LDD IR+2 LMN 2 NJN PRS9.1 IF NOT PSEUDO-ROLLOUT * AVOID PSEUDO-ROLLOUT AT END OF JOB STEP. *1RO* WILL BE * RECALLED TO PERFORM A MASS STORAGE ROLLOUT OF THE JOB. TLDC TFSW,PCAD READ *TFSW* FROM PCPA CRD CM LDN 0 CLEAR EJT ORDINAL STD CM STD IR+2 SET NEW *1RO* FUNCTION CODE TLDC TFSW,PCAD REWRITE *TFSW* TO RELEASE PCP CWD CM LDN 0 CLEAR PCP NUMBER STD IR+4 LDD IA REWRITE PP INPUT REGISTER CWD IR LJM PPR RECALL *1RO* FOR MASS STORAGE ROLLOUT PRS9.1 TLDC JCIW,CPAD CRD FS SBN JCIW-ECSW CRD CN LDD CN+4 ZJN PRS10 IF EM NOT ASSIGNED LDD FS+3 LPC 100 ERRNZ MCMX/100-100 CHECK FOR CORRECT VALUE OF *MCMX* PRS10 STM CPAB LDN 0 CLEAR CM TO ROLL STM JFLB LDM PRSG LMN OLCS NJN PRS11 IF NOT ON-LINE CONNECTION STATUS LDM ERSA SET DISABLE FLAG IN ROLLOUT CONTROL BYTE SCN 20 LMN 20 STM ERSA PRS11 LDM CPAB NJN PRS12 IF ECS PROTECTED LDD DI DISABLE ECS ROLLOUT STM JECI*2+SEQ LDC UJNI+PRS14-PRSB DISABLE USER EM CHECK ERRPL PRS14-PRSB-40 RANGE ERROR ON JUMP STM PRSB PRS12 LDD NF SAVE NFL SIZE AS CM FL IN EJT DATA BLOCK ADM CPAB ADD FL FOR EM ROLLOUT ERRNZ MCMX/100-100 CHECK FOR CORRECT VALUE OF *MCMX* STM CROJ+1 STM CROB INDICATE CM/EM FL ALREADY SET LDD CN+4 SAVE ASSIGNED ECS AMOUNT STM CROJ LDM CPAB SET FL FOR ROLLOUT STM RMSB LDC LDDI+HN STM JECG STM JECH ERRNZ MCMX/100-100 CHECK FOR CORRECT VALUE OF *MCMX* PRS13 LDD IR+2 LMN 2 NJN PRS13.1 IF NOT PSEUDO-ROLLOUT LDD NF STORE CM FL IN EJT DATA BLOCK ADD T3+4 STM CROJ+1 LDD CP GET EM FL ADK ECSW CRD CM LDD CM+4 STORE EM FL IN EJT DATA BLOCK STM CROJ LJM PRS38 READ EJT ENTRY AND EXIT PRS13.1 LDK MEFL GET USER EM SHIFT COUNT (*UESC*) CRD CM LDD CM+2 SHN -11 RAM PRSC ADN 3 STM RMSN PRSB TLDC ECSW,CPAD * UJN PRS14 (NO CP ACTIVITY) CRD CN LDD CN+4 SAVE ASSIGNED ECS AMOUNT STM CROD PRSC SHN 0 * SHN UESC LMC -0 STM AEAA+1 SHN -14 RAM AEAA LDD CN+4 NJN PRS14 IF JOB HAS EM ASSIGNED LDD FL SET *FL* STM JFLB LDD DI STM JECI*2+SEQ PRS14 LDD IR+2 LMN 1 ZJN PRS19 IF *DMP=* CALL LDD DI DISABLE DM* FILE CREATION STM ROJA STM RMSF DISABLE DM* FILE FST UPDATE * CHECK FOR ACCUMULATOR OVERFLOW. TLDC SRUW,CPAD CRD CN LDD CN+1 SHN 21-5 PJN PRS17 IF NO ACCUMULATOR OVERFLOW RJM CAU CALL *0AU* TO PROCESS ACCUMULATOR OVERFLOW PRS17 LDM PRSG LMN OLCS ZJN PRS18 IF ON-LINE INTERACTIVE JOB LMN OLCS&DTCS NJN PRS19 IF NOT DETACHED INTERACTIVE JOB PRS18 LJM PRS25 PROCESS INTERACTIVE JOB PRS19 LDD DI DISABLE TERMINAL OUTPUT PROCESSING STM TOPI*2+SEQ LJM PRS35 DISABLE INTERACTIVE JOB PROCESSING CAU SPACE 4,15 ** CAU - CALL *0AU*. * * CALL *0AU* TO PROCESS ACCUMULATOR OVERFLOW. * * ENTRY (EO) = EJT ORDINAL. * * USES T1, CM - CM+4. * * CALLS CEA, DFM, 0AU. * * MACROS CFI, DELAY, EXECUTE, MONITOR, PAUSE. CAU4 LDN 0 INDICATE NO ERROR FLAG STD CM+2 LDC * SET PROGRAM ADDRESS STD CM+1 MONITOR CHGM CONDITIONALLY HANG PP CAU SUBR ENTRY/EXIT LDD IR+2 SBN 2 PJN CAU4 IF PCP ROLLOUT OR PSEUDO-ROLLOUT * SET *0AU* CALL PARAMETERS. LDD CP SET UP CALL BLOCK ADN SRUW CRM OAUA+5,ON ADN FPFW-SRUW-1 CRM OAUL-5,ON SFA EJT,EO CALCULATE EJT ENTRY ADDRESS ADK JSNE CRM OAUA,ON READ JSN INTO *0AU* PARAMETER BLOCK ADK SCLE-JSNE-1 READ SERVICE CLASS CRD CM LDD CM SET SERVICE CLASS FOR *0AU* SCN 77 STM OAUA+4 LDM OAUL-5 SET *0AU* OVERFLOW PROCESSING SCN 77 LMN 1 STM OAUL-5 LDC OAUA PARAMETER BLOCK FWA STM OAUL-4 * CALL *0AU*. CAU1 EXECUTE 0AU,OAUL CALL *0AU* SBN 2 CHECK FOR SUCCESSFUL UPDATE/FILE ERROR MJN CAU2 IF SUCCESSFUL UPDATE OR FILE ERROR SOM CAUA STD T1 SET DELAY COUNT PJN CAU3 IF RETRY COUNT NOT EXHAUSTED LDN /CPS/RLCO CLEAR OVERFLOW FLAGS STD CM+1 MONITOR RLMM LDC CAUB+ACFN OVERFLOW QUANTITY RJM DFM ISSUE MESSAGE CAU2 LJM CAUX EXIT * PROCESS *0AU* REJECT. CAU3 SOD T1 MJN CAU1 IF END OF DELAY DELAY PAUSE NE UJN CAU3 CONTINUE DELAY CAUA CON 10 RETRY COUNT CAUB DATA C*AUSR, 219902.325UNTS.* SPACE 4,10 ** BUFFER ASSIGNMENTS. OAUA EQU * *0AU* PARAMETER BLOCK OAUL EQU OAUA+2*5+5 *0AU* LOAD ADDRESS OVL0 EQU BUF+1 *0BF*/*0DF* LOAD ADDRESS TBUF EQU BUF NEXT TRACK BUFFER TBUFL EQU TBUF+10 WDSB EQU TBUFL WRITE ERROR PROCESSING BUFFER .1 MAX WDSB+502,PRS+1+5 E1RO EQU .1 OVERLAY ORIGIN OBUF EQU IROB FIRST SECTOR OUTPUT BUFFER ISU SPACE 4,10 ** ISU - ISSUE ACCUMULATED SRU MESSAGE. * * EXIT (A) = 0. * * USES CM - CM+4, CN - CN+4. * * CALLS DFM. * * MACROS MONITOR. ISU SUBR ENTRY/EXIT TLDC SRUW,CPAD CRD CN ADN SRJW-SRUW CRD CM * AN UPDATE MESSAGE IS ISSUED EVERY 107.374 SRU-S. LDD CN+2 SBD CM SHN -6 ZJN ISUX IF SRU PERIOD NOT ELAPSED LDD CN+2 UPDATE LAST SRU MESSAGE VALUE STD CM TLDC SRJW,CPAD CWD CM LDD CN+1 ADD CN+2 ADD CN+3 ADD CN+4 ZJP ISUX IF ZERO SRU-S TO DISPLAY LDD MA CONVERT SRU-S TO DISPLAY CODE CWD CN LDN 1 STD CM+1 STD CM+2 MONITOR RDCM LDD MA CRM ISUB,ON READ CONVERTED DATA LDC ISUA+ACFN RJM DFM * LDN 0 UJP ISUX RETURN ISUA DATA H*AASR, * ISUB BSS 5 DATA C*UNTS.* SPACE 4,10 ** COMMON DECKS. FLBS EQU /CPS/FLBS FLUSH BUFFER SUBFUNCTION IFP HERE *CALL COMPFLF TSIC SPACE 4,10 ** INSTRUCTION RELOCATION TABLE AND ASSOCIATED DATA. PCAD BSSZ 2 PCP ADDRESS TSIC BSS 0 INSTRUCTION RELOCATION TABLE LIST D SIC HERE LIST * CON 0 TERMINATE ENTRIES SPACE 4,10 ** OVERFLOW CHECKS. ERRNG EPFW-OAUL-ZAUL CHECK LENGTH OF *0AU* ERRNG BFMS-OVL0-ZDFL CHECK LENGTH OF *0DF* SPACE 4,10 USE OVERFLOW * NOTE - THE FOLLOWING CHECK DEPENDS ON THE FACT THAT *1RO* * IS CM-RESIDENT. *SLL* CONTAINS CODE TO ENSURE THIS. ERRNG OBUF-*-10 OVERFLOW INTO OUTPUT BUFFER SPACE 4,10 OVERFLOW PPFW,EPFW TITLE TTL 1RO/3RP - PROCESS ON-LINE INTERACTIVE JOBS. TITLE MAIN ROUTINES. QUAL 3RP IDENT 3RP,TRPX *COMMENT 1RO - PROCESS TXOT JOBS. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. SPACE 4,10 ** 3RP - PROCESS ON-LINE INTERACTIVE JOBS. ORG E1RO TRP SUBR ENTRY/EXIT UJN TRPX RETURN TFET SPACE 4,10 * TFET - OUTPUT FET+0. TFET BSS 5 RFO SPACE 4,10 ** RFO - READ FIRST SECTOR OF OUTPUT. * * ENTRY (OP - OP+1) = OUT POINTER. * (SC) = TERMINAL OUTPUT SECTOR COUNT. * * EXIT (OP - OP+1) UPDATED. * * USES CN. * * CALLS RDA, RLS, RMA. RFO SUBR ENTRY/EXIT LDD SC STD CN ZJN RFO1 IF NO OUTPUT IN BUFFER RJM RDA READ FIRST SECTOR LDC ADDI+NF ACCOUNT FOR RA ADJUSTMENT BY *SRA* STM RDAB STM RDAE STM RDAH LDD CN LMD HN ZJN RFO2 IF FULL SECTOR READ RFO1 RJM RMA READ ERROR MESSAGE LDD CN LMD HN ZJN RFO2 IF NOW FULL SECTOR LDM CPAB ZJN RFO3 IF NO JOB ACTIVITY, NO EM PROTECT LMD HN ZJN RFO3 IF NO ACTIVITY RFO2 LDN PSNI SET JOB FL PRESENT STM WTOA RFO3 LDC BFMS+2 RESET ADDRESSES STM RDAC STM RDAF STM RDAI STM RMAB LDD CN SET SECTOR WORD COUNT STM OBUF+1 ZJN RFO4 IF NO OUTPUT DATA LDN /REM/VOPR SET OUTPUT DATA AVAILABLE RAM TERA LDN 40 SET OUTPUT FROM ROLLOUT FILE SUB STATUS RAM TERB RFO4 LDM TERA LPN /REM/VIPR+/REM/VOPR ZJN RFO5 IF NO I/O REQUEST PENDING LDN IOJS SET JOB STATUS = *IOJS* STM CJSA RFO5 LJM RFOX RETURN TER SPACE 4,15 ** TER - TERMINATE ROLLOUT. * * ENTRY (TERA) = *VROT* STATUS. * (TERB) = *VROT* SUB STATUS. * (TERC) = SUBSYSTEM. * (TERD) = PRIMARY FILE NAME. * * EXIT TO *1TO*. * * USES CM - CM+1, CM+3 - CM+4, CN - CN+4, T2 - T6. * * CALLS CIT, CPC, ITF, RRR, SRR. * * MACROS MONITOR. TER6 LDD TT UPDATE TERMINAL TABLE SHN 14 ADD TT+1 ADN /REM/VFNT CWM TERD,ON ADN /REM/VROT-/REM/VFNT-1 CWD CN RJM RRR RESTORE R-REGISTER TER SUBR RJM SRR SET R-REGISTER TO IAF RA LDD TT UPDATE TERMINAL TABLE SHN 14 ADD TT+1 ADN /REM/VROT CRD CN ADN /REM/VSTT-/REM/VROT CRD T2 LDM CPAB SET CONTINUATION STATUS SHN 2 LMD CN+4 LPN 4 LMD CN+4 STD CN+4 LDM CROF CHECK ROLLOUT JOB STATUS SHN -1 LPN 37 LMN IOJS ZJN TER2.0 IF *IOJS* JOB STATUS LMN DOJS&IOJS NJP TER6 IF NOT *DOJS* JOB STATUS TER2.0 LDD CN+4 SCN 32 ADC ** TERA EQU *-1 (RFO, CFI, TER) STD CN+4 LDD CN+3 SET SUBSTATUS LPC 7437 CLEAR SRU LIMIT, TIME LIMIT, AND FILE TYPE LMC 0 SUBSTATUS TERB EQU *-1 STD CN+3 LDD TT SHN 14 ADD TT+1 ADN /REM/VFNT CWM TERD,ON ADN /REM/VROT-/REM/VFNT-1 CWD CN RJM RRR RESTORE R-REGISTER LDN 0 CHECK SUBSYSTEM * LDN XX (SET TO SUB SYSTEM CODE BY /3RP/PRP) TERC EQU *-1 STD CM+3 LMD T2+3 LPN 77 ZJN TER3 IF NO CHANGE LDD TN SET TERMINAL NUMBER STD CM+4 LDC /REM/VSBS HAVE *IAF* UPDATE SUBSYSTEM STD CM LDD MA CWD CM RJM ITF TER3 RJM CPC CHECK PCP ROLLOUT COMPLETION PJN TER4 IF PCP ROLLOUT LDC /CPS/CCPS RELEASE CP FROM JOB STD CM+1 MONITOR JACM TER4 RJM CIT CALL *1TO* IF OUTPUT AVAILABLE NJN TER5 IF *1TO* OR *1RO* TO BE CALLED IN THIS PP * DROP PPU. MONITOR DPPM DROP PP TER5 LJM PPR EXIT TO PP RESIDENT TERD BSSZ 5 PRIMARY FILE NAME TERE VFD 18/3L1TO,6//REM/VCPT,12/0,9/0,3/0,12/0 WTO SPACE 4,10 ** WTO - WRITE TERMINAL OUTPUT TO DISK. * * ENTRY (OP - OP+1) = OUT POINTER. * (SC) = SECTOR COUNT OF BUFFER. * * USES CN - CN+4. * * CALLS WNS, RDA, RMA, RMB. WTO SUBR ENTRY/EXIT LDC OBUF WRITE FIRST SECTOR OF OUTPUT STM WNSA SET BUFFER ADDRESSES STM WNSB STM WNSC RJM WNS LDC BFMS RESET BUFFER ADDRESSES STM WNSA STM WNSB STM WNSC LDD SC ZJN WTO3 IF ALL OF TERMINAL OUTUT READ WTO1 RJM RDA READ DATA FROM OUTUT BUFFER LDD SC ZJN WTO2 IF LAST SECTOR OF OUTPUT RJM WNS WRITE BUFFER UJN WTO1 LOOP FOR REST OF OUTPUT WTO2 RJM RMA READ FIRST PART OF ERROR MESSAGE LDD CN SET LAST SECTOR WORD COUNT STM BFMS+1 RJM WNS WRITE BUFFER WTO3 RJM RMB READ SECOND PART OF ERROR MESSAGE LDD HN RESET SECTOR WORD COUNT STM BFMS+1 WTOA UJN WTO4 RETURN * PSN (JOB FL PRESENT) LDN ZERL BUILD OUT POINTER CRD CN WTOB LDC ** FET ADDRESS ZJN WTO4 IF NO FET ADDRESS ADD RA WRITE FET+0 ADD NF ADD NFL SINCE RA HAS BEEN ADJUSTED SHN 6 ADN 3 WRITE *OUT* CWD OP-3 WTO4 LJM WTOX RETURN TITLE SUBROUTINES. CIT SPACE 4,30 ** CIT - CALL *1TO* TO PROCESS OUTPUT. * * IF OUTPUT IS AVAILABLE FOR THE TERMINAL, *1TO* WILL BE CALLED * INTO THIS PP. IF A *1TO* CALL IS NOT REQUIRED, A NULL OUTPUT * REQUEST WILL BE ISSUED FOR THE TERMINAL AS A SIGNAL TO *IAF* * THAT THE ROLLOUT IS COMPLETE. * * IF THIS IS A COMPOUND ROLLOUT AND TERMINAL OUTPUT IS * AVAILABLE, THE TERMINAL NUMBER WILL BE STORED INTO THE * *1RO* INPUT REGISTER IMAGE IN CM. WHEN THE PSEUDO-ROLLOUT * COMPLETES, *1RO* WILL CALL *1TO* TO PROCESS THE TERMINAL * OUTPUT FOR THE PCP JOB. * * ENTRY (TERA) = OUTPUT STATUS. * (TERE - TERE+4) = FORMATTED *1TO* CALL * (TN) = TERMINAL NUMBER. * * EXIT *TSEM/VASO* MONITOR REQUEST ISSUED TO SIGNAL * ROLLOUT COMPLETION IF *1TO* IS NOT REQUIRED. * (A) = 0 IF PP MAY BE DROPPED. * (A) .NE. 0 IF EITHER *1TO* IS TO BE CALLED INTO THIS * PP TO PROCESS TERMINAL OUTPUT OR *1RO* IS * TO BE CALLED INTO THIS PP TO COMPLETE A * COMPOUND ROLLOUT. * * USES CM+1, IR+2, IR+3. * * CALLS ITF. * * MACROS MONITOR. CIT1 LDM CPCA ZJN CIT2 IF NOT COMPOUND ROLLOUT SOD IR+2 SET FUNCTION CODE 2 LDD TN SAVE TERMINAL NUMBER STD IR+3 LDD IA UPDATE PP INPUT REGISTER CWD IR AOD IR+2 RESET ORIGINAL FUNCTION CODE UJN CITX EXIT WITH (A) .NE. 0 CIT2 LDN /REM/VCPT MOVE TO *IAF* CP STD CM+1 MONITOR CCAM LDD CM+1 LMN /REM/VCPT (A) = 0 IF CHANGE NOT MADE ZJN CITX IF CHANGE NOT MADE LDD IA PLACE *1TO* CALL IN INPUT REGISTER CWM TERE,ON CIT SUBR ENTRY/EXIT LDD TN SET TERMINAL NUMBER IN CALLS STM TERE+4 STM CITA+4 LDM TERA CHECK FOR OUTPUT AVAILABLE SHN 21-4 MJP CIT1 IF OUTPUT AVAILABLE * ISSUE NULL OUTPUT TO SIGNAL ROLLOUT COMPLETION. LDD MA WRITE FUNCTION TO MESSAGE BUFFER CWM CITA,ON RJM ITF ISSUE *TSEM* FUNCTION LDM CPCA UJP CITX EXIT WITH (A) NONZERO IF COMPOUND ROLLOUT CITA CON /REM/VASO OUTPUT FUNCTION CON 0,0,0 NULL PARAMETERS CON 0 TERMINAL NUMBER RDA SPACE 4,10 ** RDA - READ DATA FOR TERMINAL OUTPUT. * * ENTRY (SC) = SECTOR COUNT. * (SLIM) = SECTOR COUNT TO LIMIT. * (OP - OP+1) = OUT POINTER. * * EXIT (SC), (SLIM), (OP - OP+1) UPDATED. * * USES CN - CN+2, SC, OP - OP+1. RDA SUBR LDD HN PRESET SECTOR WORD COUNT STD CN SOD SC DECREMENT SECTOR COUNT NJN RDA1 IF NOT LAST SECTOR LDC 0 SET LAST SECTOR WORD COUNT (CKO) RDAA EQU *-1 STD CN ZJN RDAX IF LAST SECTOR EMPTY RDA1 SOM SLIM DECREASE SECTORS TO LIMIT COUNT MJN RDA3 IF LIMIT REACHED LDD OP READ BUFFER SHN 6 ADD RA PSN * ADD NF (*RDA* CALLED BY *WTO*) RDAB EQU *-1 SHN 6 ADD OP+1 CRM OBUF+2,CN RDAC EQU *-1 (RFO) RDA2 LDD CN ADVANCE OUT RAD OP+1 SHN -14 RAD OP UJN RDAX RETURN RDA3 LDC 100 SET WRAP AROUND WORD COUNTS RDAD EQU *-1 STD CN+1 LDD OP READ FIRST PART SHN 6 ADD RA PSN * ADD NF (*RDA* CALLED BY *WTO*) RDAE EQU *-1 SHN 6 ADD OP+1 CRM OBUF+2,CN+1 RDAF EQU *-1 (RFO) LDD CN SBD CN+1 MJN RDA2 IF NOT WRAP AROUND STD CN+2 SET SECOND PART WORD COUNT ZJN RDA4 IF SECOND PART ZERO LDD CN+1 SET WRAP AROUND BUFFER POSITION SHN 2 ADD CN+1 RAM RDAI RDAG LDC * READ SECOND PART (CKO) SHN 14 ADD RA PSN * ADD NF (*RDA* CALLED BY *WTO*) RDAH EQU *-1 SHN 6 CRM OBUF+2,CN+2 RDAI EQU *-1 (RFO, RDA) RDA4 LDC * RESET OUT RDAJ EQU *-2 ADD CN+2 STD OP+1 SHN -14 STD OP LJM RDAX RETURN SLIM CON 0 SECTORS TO LIMIT RMA SPACE 4,10 ** RMA - READ ERROR MESSAGE. * * ENTRY (CN) = SECTOR COUNT. * * EXIT (CN) UPDATED. * * USES T0, T1, CN. RMA SUBR ENTRY/EXIT RMAA LDN 0 (CEM) ZJN RMAX IF NO MESSAGE STD T1 RAD CN INCREMENT SECTOR WORD COUNT SBD T1 SET BUFFER POSITION STD T0 SHN 2 ADD T0 RAM RMAB TLDC MS1W,CPAD CRM OBUF+2,T1 RMAB EQU *-1 (CKO, RFO) UJN RMAX RMB SPACE 4,10 ** RMB - READ SECOND PART OF ERROR MESSAGE * * USES T1, T2. * * CALLS WNS. RMB SUBR ENTRY/EXIT RMBA LDC 0 (CEM) ZJN RMBX IF NO ERROR MESSAGE STD T1 STM BFMS+1 SET SECTOR WORD COUNT SHN -14 STD T2 LDD T1 ZJN RMB1 IF NO SECOND PART OF MESSAGE TLDC MS1W,CPAD ADD T2 CRM BFMS+2,T1 RMB1 LDC BFMS WRITE SHORT SECTOR RJM WNS UJN RMBX RETURN SPACE 4,10 USE BUFFER ERRNG OBUF-* TITLE ROUTINES OVERLAYED BY *OBUF*. CKO SPACE 4,10 ** CKO - CHECK TERMINAL INPUT AND OUTPUT. * * EXIT (OP - OP+1) = OUTPUT DATA POINTER. * (SC) = SECTOR COUNT OF OUTPUT BUFFER. * * USES T1, T8, T9, SC, CM - CM+4. * * CALLS ANR, CBP, CEM, SIO, VAD. CKO SUBR ENTRY/EXIT TLDC TINW,CPAD CHECK FOR INPUT FET POINTER SET CRD CM LDD CM+3 SCN 77 SHN 6 ADD CM+2 SHN 6 ZJN CKO1 IF NO INPUT REQUEST LDC 0 INEF EQU *-1 (INTERACTIVE ERROR FLAG) NJN CKO1 IF ERROR FLAG LDN /REM/VIPR SET INPUT REQUESTED RAM TERA CKO1 TLDC TIOW,CPAD CHECK IF OUTPUT FET POINTER SET CRD T8-3 LDD T8 LPN 37 STD T8 SHN 14 ADD T9 NJN CKO6 IF EXPLICIT OUTPUT REQUEST LDN PSNI STM ANRA OUTPUT ONLY COMPLETE LINES RJM SIO SEARCH FOR IMPLICIT OUTPUT NJN CKO7 IF OUTPUT FOUND CKO2 LDN 0 CLEAR SECTOR COUNT STD SC AOM RMSA ALLOW FOR ZERO LENGTH OUTPUT SECTOR CKO3 LDM INEF NJN CKO4 IF ERROR FLAG LDM CPAB LPN 1 NJN CKO5 IF JOB ACTIVITY CKO4 RJM CEM CHECK FOR ERROR MESSAGES CKO5 LJM CKOX RETURN * PROCESS OUTPUT. CKO6 RJM VAD READ FET+0 CRM TFET,ON CKO7 RJM CBP CHECK BUFFER PARAMETERS NJP CKO2 IF INVALID FET LDD T8 SET UP TO UPDATE FET LPN 37 SHN 14 LMD T9 SHN 14 STM MSRE+1 STM WTOB+1 SHN -14 STM MSRE RAM WTOB RJM ANR ASSURE NETWORK REQUIREMENTS LDD CN+3 LENGTH = IN - OUT SBD OP SHN 14 ADD CN+4 SBD OP+1 PJN CKO8 IF IN .GE. OUT SHN 6 LENGTH = (LIMIT - OUT) + (IN - FIRST) ADD CM+1 SBD T7 SHN 14 ADD CM+2 SBD CM CKO8 STD T1 SAVE LENGTH SHN -6 ADN 1 ALLOW FOR EOR SECTOR STD SC LDD T1 SET LAST SECTOR WORD COUNT LPN 77 STM RDAA LDD CM+1 WORD COUNT TO LIMIT = LIMIT - OUT SBD OP SHN 14 ADD CM+2 SBD OP+1 STD T1 SAVE WORDS TO LIMIT SBN 1 SHN -6 STORE SECTORS TO LIMIT STM SLIM LDD T1 CHECK WORD COUNT TO LIMIT LPN 77 ZJN CKO9 IF FULL SECTOR STM RDAD SET WORD COUNT OF FIRST PART CKO9 LDD CM SET FIRST STM RDAG+1 STM RDAJ+1 LDD T7 RAM RDAG STM RDAJ LJM CKO3 CHECK ERROR ANR SPACE 4,25 ** ANR - ASSURE NETWORK REQUIREMENTS. * * ENTRY (TERA) = BIT *VIPR* SET IF INPUT REQUEST. * (TFET+4) = FET REQUEST CODE. * (JFLC) = JOB ACTIVITY (ZERO IF END OF JOB) * (T7 - CM) = FIRST. * (CN+3 - CN+4) = IN. * (OP - OP+1) = OUT. * (CM+1 - CM+2) = LIMIT. * * EXIT BUFFER ACCEPTED AS-IS IF ANY OF- INPUT REQUEST, BUFFER * FULL AND NO END-OF-LINE, WRITE EOR/EOF, OR END OF JOB. * IF NOT ONE OF THE ABOVE SPECIAL CASES, * (CN+3 - CN+4) IS ALTERED TO ENCOMPASS ALL TERMINATED * DATA LINES IN THE BUFFER. A LINE FRAGMENT WILL NOT BE * SENT TO THE TERMINAL IN THIS CASE. * * USES CN+3 - CN+4, T1 - T4, ZR - ZR+4. * * CALLS GMX, RRR, SRR. * * MACROS ISTORE. ANR SUBR ENTRY/EXIT LDM TERA CHECK INPUT REQUESTED LPN /REM/VIPR NJN ANRX IF INPUT REQUESTED, RETURN LDM CPAB LPN 1 ZJN ANRX IF END OF JOB STEP LDM TFET+4 LPC 774 LMN 14 ANRA NJN ANRX IF NOT BUFFERED WRITE * PSN (IMPLICIT OUTPUT) LDD CN+3 IN STD T1 STD T3 LDD CN+4 STD T2 STD T4 UJP ANR4 CHECK IF EMPTY BUFFER ANR1 SOD T2 IN-1 PJN ANR2 IF NO BORROW FROM BITS 14 - 21 AOD T2 SOD T1 ANR2 LDD T1 CHECK IN-1 .GE. FIRST SBD T7 SHN 14 ADD T2 SBD T7+1 PJN ANR3 IF IN-1 .GE. FIRST LDD CM+1 SET WORKING IN = LIMIT STD T1 LDD CM+2 STD T2 UJN ANR1 REPEAT FOR BUFFER POINTER WRAP-AROUND ANR3 LDD T1 SHN 6 ADD RA SHN 6 ADD T2 CRD ZR LDD ZR+4 CHECK FOR END-OF-LINE ZJP ANR5.1 IF END OF LINE FOUND IN BUFFER LDD T1 DECREMENT IN FOR EXIT CONDITION STD CN+3 LDD T2 STD CN+4 PSN * UJN ANR4 (ALLOW ONLY ONE PASS THROUGH THIS CODE) ANRB EQU *-1 ISTORE ANRB,(UJN ANR4) LDD T1 RAM ANRC-1 LDD T2 STM ANRC ANR4 SBD OP+1 CHECK FOR IN .NE. OUT SHN 6 ADD CN+3 SBD OP NJP ANR1 IF IN .NE. OUT, CONTINUE SEARCH * CHECK INITIAL BUFFER CONDITIONS BY COMPUTING LENGTH AVAILABLE * FOR A WRITE INTO THE BUFFER. LDD OP LENGTH = OUT - IN SBD T3 SHN 14 ADD OP+1 SBD T4 PJN ANR5 IF OUT .GE. IN SHN 6 LENGTH = (LIMIT-FIRST)-(IN-OUT) ADD CM+1 SBD T7 SHN 14 ADD CM+2 SBD T7+1 ANR5 SBN 1 ZJN ANR5.2 IF BUFFER WAS FULL INITIALLY * CHECK THE TERMINAL CLASS TO SEE WHETHER OR NOT THE TERMINAL * IS SYNCHRONOUS, ASYNCHRONOUS, OR A MUX TERMINAL. ANR5.1 RJM SRR SET R-REGISTER TO IAF RA RJM GMX CHECK MULTIPLEXOR STATUS PJN ANR6 IF MUX TERMINAL LDD TA GET ADDRESS OF *VMST* TABLE SHN 6 ADN /REM/VMST CRD ZR LDD ZR+1 READ TERMINAL *VMST* WORD SHN 6 ADD TA SHN 6 ADD ZR+2 ADD TN CRD ZR LDD ZR+1 CHECK FOR SYNC OR ASYNC TERMINAL LPC 377 SBN 10+1 TERMINAL CLASS .LE. 8 = ASYNC LINE PJN ANR6 IF SYNCHRONOUS TERMINAL LDC 0 ANRC EQU *-1 ZJN ANR6 IF BUFFER ENDED WITH AN EOL STD T4 SHN -14 STD T3 ANR5.2 LDD T3 STD CN+3 LDD T4 STD CN+4 ANR6 RJM RRR RESTORE R-REGISTER LDN ZERL RESET (ZR - ZR+4) CRD ZR LJM ANRX RETURN CBP SPACE 4,15 ** CBP - CHECK BUFFER PARAMETERS. * * ENTRY (T8 - T9) = FET ADDRESS. * * EXIT (A) = 0, IF FET VALID. * (T7 - CM) = FIRST. * (CN+3 - CN+4) = IN. * (OP - OP+1) = OUT. * (CM+1 - CM+2) = LIMIT. * * USES CM - CM+4, CN+2 - CN+6, T6 - T7. * * MACROS MONITOR. CBP SUBR ENTRY/EXIT LDD T8 STD CM+3 LDD T9 STD CM+4 LDC 3 VALIDATE ALL FET PARAMETERS STD CM+1 MONITOR VFPM VERIFY FET PARAMTERS LDD CM+1 NJN CBPX IF BAD FET LDD T8 SAVE *OUT* POINTER SHN 6 ADD RA SHN 6 ADD T9 ADN 3 CRM MSRF,ON ERRNZ CN+5-OP DIRECT CELLS MUST BE CONTIGOUS LDD MA READ IN AND OUT ADN 2 CRD CN+2 ADN 1 CRD T6 LDN 0 INDICATE NO ERROR UJP CBPX RETURN CEM SPACE 4,10 ** CEM - CHECK ERROR MESSAGE. * * ENTRY (TT - TT+1) = TERMINAL TABLE ADDRESS. * (INEF) = INTERACTIVE ERROR FLAG. * * USES CM - CM+4, CN - CN+4, T1 - T2. * * CALLS RRR, SRR, TSM. * * MACROS MONITOR. CEM SUBR ENTRY/EXIT RJM SRR SET R-REGISTER TO IAF RA LDN 0 INITIALIZE MESSAGE WORD COUNT STD T2 LDD TT GET SYSTEM SHN 14 ADD TT+1 ADN /REM/VSTT CRD CM RJM RRR RESTORE R-REGISTER LDD CM+3 LPN 77 STD CM * DETERMINE IF STATUS MESSAGE TO BE ISSUED TO TERMINAL. TLDC CSPW,CPAD CHECK *SUPPRESS ERROR MESSAGE* FLAG CRD CN LDD CN SHN 21-5 MJN CEM6 IF ERROR MESSAGES SUPPRESSED LDD CM CHECK IF BATCH SUBSYSTEM LMN /REM/BATS ZJN CEM1 IF BATCH SUBSYSTEM LDM INEF ZJN CEM6 IF NO ERROR MESSAGE CEM1 RJM TSM TERMINATE STATUS MESSAGE * CHECK CPU TIME MESSAGE REQUIRED. CEM6 LDD CM CHECK SYSTEM SBN /REM/BASS MJP CEM7 IF BELOW *BASIC* SBN /REM/BATS-/REM/BASS PJN CEM7 IF *BATCH* OR ABOVE TLDC SRUW,CPAD READ SRU ACCUMULATORS CRD CM ADN SRJW-SRUW CRD CN LDD MA WRITE TO MESSAGE BUFFER CWD CN ADN 1 CWD CM LDN /CPS/ABEF STD CM+1 MONITOR ACTM LDD MA CRM CEMB+4,ON LDM CEMB+4 ZJN CEM7 IF NO CPU TIME TLDC MS1W,CPAD WRITE TIME TO MESSAGE BUFFER ADD T2 CWM CEMB,TR LDN 3 RAD T2 CEM7 LDD T2 ZJN CEM10 IF NO MESSAGE(S) LDM RDAA GET LAST SECTOR WORD COUNT ADD T2 STD T1 SHN -6 NJN CEM8 IF SECTOR OVERLAP LDD T2 SET WORD COUNT UJN CEM9 STORE WORD COUNT AND RETURN CEM8 LDD T1 SET SECOND PART WORD COUNT LPN 77 STM RMBA+1 AOM RMSA INCREMENT SECTOR COUNT LDD HN SET FIRST PART SBM RDAA RAM RMBA LPN 77 CEM9 RAM RMAA CEM10 LJM CEMX RETURN CEMB DATA 28H"EM""NL"SRU 000000.000 UNTS. CON 0 DFS SPACE 4,20 ** 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. * *CIO* CODE IN FET MUST BE IN THE LIST. * FILE MUST BE *OUTPUT* AND UNASSIGNED OR IT MUST BE * ASSIGNED TO TERMINAL EQUIPMENT. * * ENTRY (T8 - T9) = FET ADDRESS. * * EXIT (A) = 0, IF NO FLUSH CANDIDATE. * (TFET - TFET+4) = FIRST WORD OF FET. * * USES T1 - T5, CM - CM+4, CN - CN+4. * * CALLS VAD. * * MACROS NFA. 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 CRM TFET,ON READ FET+0 LDM TFET+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 LDM TFET+3 LPN 77 ZJN DFS2 IF NO FET ERRORS DFS1 LDN 0 LJM DFSX RETURN DFS2 SOD T1 MJN DFS1 IF FET CODE NOT IN LIST LDM DFSA,T1 LMM TFET+4 SCN 2 IGNORE BINARY BIT NJN DFS2 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 DFS3 NFA T6,R READ FNT ENTRY CRD CM LDD CM COMPARE FILE NAMES ZJN DFS4 IF NO ENTRY LMM TFET NJN DFS4 IF NO MATCH LDD CM+1 LMM TFET+1 NJN DFS4 IF NO MATCH LDD CM+2 LMM TFET+2 NJN DFS4 IF NO MATCH LDD CM+3 LMM TFET+3 SCN 77 ZJN DFS6 IF MATCH DFS4 LDN LENF INCREMENT TO NEXT ENTRY RAD T6 SBD T7 MJN DFS3 IF NOT END OF FNT LDM TFET CHECK FOR *OUTPUT* LMC 2ROU NJN DFS5 IF NOT *OUTPUT* LDM TFET+1 LMC 2RTP NJN DFS5 IF NOT *OUTPUT* LDM TFET+2 LMC 2RUT NJN DFS5 IF NOT *OUTPUT* LDM TFET+3 SCN 77 ZJN DFS7 IF *OUTPUT* DFS5 LDN 0 FILE NOT TO BE FLUSHED UJN DFS8 RETURN DFS6 NFA T6,R CHECK EQUIPMENT ASSIGNMENT ADN FSTL CRD CM LDD CM LPC 777 LMN TTEQ NJN DFS5 IF NOT ASSIGNED TO *TT* DFS7 LDN 1 INDICATE OUTPUT AVAILABLE DFS8 LJM DFSX RETURN * TABLE OF CIO CODES TO FLUSH ON. DFSA BSS 0 CON 1 FET NOT USED CON 5 WRITE PRU CON 15 BUFFERED WRITE CON 25 WRITE EOR CON 35 WRITE EOF CON 105 OPEN WRITE CON 121 OPEN ALTER CON 145 OPEN WRITE REWIND CON 161 OPEN ALTER REWIND DFSAL EQU *-DFSA GMX SPACE 4,10 ** GMX - GET MULTIPLEXOR STATUS. * * ENTRY (TA) = SET PER *COMPSRR* ROUTINE *PIR*. * (TN) = TERMINAL CONNECTION NUMBER. * (R) = IAF RA IF R-REGISTERS PRESENT ON MACHINE. * * EXIT (A) = POSITIVE IF MULTIPLEXOR TERMINAL TYPE. * * USES ZR - ZR+4. GMX SUBR ENTRY/EXIT LDD TA TIMESHARING REFERENCE ADDRESS SHN 6 ADN /REM/VNTP TERMINAL TABLE POINTER CRD ZR LDD ZR+2 ZJN GMXX IF NO NETWORK TERMINALS DEFINED SBN 1 (A) = HIGHEST MUX TERMINAL NUMBER SBD TN UJN GMXX RETURN SIO SPACE 4,15 ** SIO - SEARCH FOR IMPLICIT OUTPUT. * * CHECKS LIST OF FILES ENTRY. IF NO LIST OF FILES ENTRY, IT * CHECKS THE RA+2 LIST FOR FET OR FIT POINTERS. * * EXIT (A) = 0, IF NO DATA TO OUTPUT. * (T8 - T9) = FET ADDRESS, IF DATA TO OUTPUT. * * USES CM - CM+4, CN - CN+4, T1 - T5, T8 - T9. * * CALLS DFS, VAD. SIO SUBR ENTRY/EXIT LDD FL ZJN SIOX IF NO FL TLDC LOFW,CPAD READ LIST OF FILES POINTER CRD CM LDD CM+1 LPN 37 SHN 14 LMD CM+2 ZJN SIO2 IF LIST OF FILES NOT SPECIFIED ADN 1 RJM VAD VALIDATE ADDRESS ZJN SIOX IF ADDRESS BAD CRD T8-3 READ FIRST ENTRY RJM DFS DETERMINE FLUSH STATUS SIO1 UJN SIOX RETURN * PROCESS RA+2 LIST. SIO2 AOM SIOA LPN 77 LMN PGNR ZJN SIOX IF END OF LIST LDD RA SHN 6 SIOA ADN 1 POINTER TO LIST ENTRY CRD T8-3 LDD T8-3 ZJN SIO1 IF END OF LIST LDD T8 VALIDATE FET/FIT ADDRESS LPN 37 SHN 14 LMD T8+1 SBN PGNR MJN SIO2 IF FET ADDRESS LESS THAN *PGNR* ADK PGNR+5 RJM VAD SIO3 ZJN SIO2 IF FET/FIT OUTSIDE FL SBN 5 DETERMINE IF FET/FIT CRD CN ADN 1 CRD T1 LDD CN+3 LPN 77 ADD CN+4 NJN SIO4 IF NOT POSSIBLE FIT LDD T1+3 SET FIT/FET ADDRESS STD T8 LDD T1+4 STD T9 SIO4 RJM DFS DETERMINE FLUSH STATUS ZJN SIO3 IF FILE NOT TO BE FLUSHED LJM SIOX RETURN TSM SPACE 4,10 ** TSM - TERMINATE STATUS MESSAGE. * * EXIT (T2) = MESSAGE WORD COUNT IF MESSAGE PRESENT. * (T2) = 0 IF NO MESSAGE. * END OF MESSAGE ZERO FILLED. * * USES T2, CN - CN+4. TSM3 STD CN+1 TSM4 STD CN+2 TSM5 STD CN+3 TSM6 STD CN+4 TSM7 LDD T2 NJN TSM8 IF NOT FIRST MESSAGE WORD LDD CN ZJN TSMX IF NO MESSAGE TSM8 TLDC MS1W,CPAD ADD T2 CWD CN WRITE LAST WORD OF MESSAGE AOD T2 SET MESSSAGE LENGTH TSM SUBR ENTRY/EXIT LDN 0 STD T2 TSM1 TLDC MS1W,CPAD READ MESSAGE WORD ADD T2 CRD CN LDD CN ZJN TSM3 IF END OF MESSAGE LDD CN+1 ZJN TSM4 IF END OF MESSAGE LDD CN+2 ZJN TSM5 IF END OF MESSAGE LDD CN+3 TSM2 ZJN TSM6 IF END OF MESSAGE LDD CN+4 ZJN TSM7 IF END OF MESSAGE LDD T2 LMN MS2W-MS1W-1 ZJN TSM2 IF LAST WORD OF MESSAGE BUFFER AOD T2 ADVANCE WORD INDEX UJN TSM1 CHECK NEXT WORD VAD SPACE 4,10 ** VAD - VALIDATE ADDRESS WITHIN FL. * * ENTRY (A) = ADDRESS. * * EXIT (A) = 0, IF ADDRESS BEYOND FL. * (A) = ABSOLUTE ADDRESS OTHERWISE. VAD1 LDN 0 INDICATE ADDRESS BEYOND FL VAD SUBR ENTRY/EXIT SHN 14 SBD FL SHN 6 PJN VAD1 IF ADDRESS BEYOND FL SHN 14 ADD FL ADD RA SHN 6 UJN VADX RETURN SPACE 4,10 ERRNG BFMS-* SYSTEM SECTOR BUFFER OVERLAYS *3RP* CODE PRP TITLE INITIALIZATION. ** PRP - PRESET PROGRAM. * * ENTRY (CN - CN+4) = WORD *SRUW* OF CPA. * * USES CM - CM+4. * * CALLS SIC. * * MACROS MONITOR. PRP SUBR ENTRY/EXIT LDC PRPA SET RELOCATION TABLE ADDRESS RJM SIC RELOCATE INSTRUCTIONS TLDC TXSW,CPAD CRD CM LDD CM SET SYSTEM CODE SHN -6 RAM TERC LPN 77 SBN /REM/MSYS MJN PRP1 IF VALID SUBSYSTEM CODE LDN 0 INDICATE NO ERROR FLAG STD CM+2 LDC * SET DETECTION ADDRESS STD CM+1 MONITOR CHGM CONDITIONALLY HANG PP LDM TERC CLEAR SUBSYSTEM CODE SCN 77 STM TERC PRP1 LDD IR+2 NJN PRP1.1 IF NOT ROLLOUT FROM A CONTROL POINT LDD IR+4 SET INTERACTIVE ERROR FLAG STM INEF NJN PRP2 IF ERROR FLAG SET PRP1.1 LDD CN LPC 2400 MASK TIME AND SRU LIMIT FLAGS NJN PRP3 IF RESOURCE LIMITS EXCEEDED PRP2 LJM PRPX RETURN PRP3 SHN -12 ZJN PRP4 IF SRU LIMIT LDN 1&2 SET TIME LIMIT PRP4 LMN 2 SHN 6 RAM TERB LDN DOJS FORCE *DOJS* ON RESOURCE LIMIT STM CJSA UJN PRP2 RETURN PRPA BSS 0 INSTRUCTION RELOCATION TABLE LIST D SIC HERE LIST * CON 0 TERMINATE ENTRIES * PRESET COMMON DECKS. *CALL COMPSTA SPACE 4,10 * CHECK FOR OVERFLOW. OVERFLOW E1RO,EPFW TITLE TTL 1RO/3RQ - PROCESS MASS STORAGE ERRORS. TITLE MAIN ROUTINES. QUAL 3RQ IDENT 3RQ,PRSX *COMMENT 1RO - PROCESS MASS STORAGE ERRORS. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. SPACE 4,10 ** 3RQ - PROCESS MASS STORAGE ERRORS. ORG BFMS+5 PRS SUBR ENTRY/EXIT LDC TSIC SET INSTRUCTION RELOCATION TABLE ADDRESS RJM SIC RELOCATE INSTRUCTIONS UJP PRSX RETURN MSE SPACE 4,13 ** MSE - PROCESS MASS STORAGE ERROR OR INSUFFICIENT SPACE. * * ENTRY (A) .EQ. 0 IF INSUFFICIENT SPACE FOR ROLLOUT. * .NE. 0 IF MASS STORAGE ERROR. * * EXIT TO *PPR* IF PCP ROLLOUT. * TO *ROJ7* IF NOT PCP ROLLOUT. * * USES CM - CM+4. * * CALLS CDF, ERS, RSJ, *0DF*. * * MACROS EXECUTE, MONITOR. MSE BSS 0 ENTRY ZJN MSE1 IF NOT MASS STORAGE ERROR * PROCESS ROLLOUT FILE WRITE ERROR. LDD IR+2 LMN 1 ZJN MSE3 IF *DMP=* CALL RJM RSJ RESTORE JOB TO ITS PRE-ROLLOUT STATE LDM CROG RELEASE TRACK CHAIN STD CM+1 LDM CROG+1 STD CM+2 MONITOR DTKM UJN MSE2 CHECK ROLLOUT TYPE * PROCESS NO ROLLOUT FILE SPACE AVAILABLE. MSE1 LDK NCPL ISSUE SYSTEM CP MESSAGE CRD CM AOD CM+1 SHN 7 ADK MS2W CWM MSEA,TR MSE2 LDD IR+2 LMN 3 ZJN MSE5 IF PCP ROLLOUT LMN 1&3 NJN MSE4 IF NOT *DMP=* ROLLOUT * RETURN DM* FILE. MSE3 LDN 1 SET ROLLOUT FLAG RJM ERS RJM CDF CLEAR *DMP=* FLAGS LDN 2 SET RETURN ROLLOUT FILE FLAG STM OVL0-1 EXECUTE 0DF,OVL0 RETURN DM* FILE * EXIT TO CLEAR JOB ADVANCE AND DROP PP. MSE4 LDK /CPS/DPPS LJM ROJ7 CLEAR JOB ADVANCE AND DROP * RESTART PCP ROLLOUT. MSE5 LDD IA REWRITE ORIGINAL PP INPUT REGISTER CWD IR LJM PPR RESTART PCP ROLLOUT MSEA DATA C* NO ROLLOUT SPACE AVAILABLE.* CDF SPACE 4,10 ** CDF - CLEAR *DMP=* FLAGS. * * *CDF* WILL CLEAR *DMP=* PARAMETERS SET BY *1AJ* PRIOR TO * CALLING *1RO*. THIS WILL RESULT IN THE REQUEST BEING * REINITIATED BY *1AJ* AT A LATER TIME. * * EXIT *SPCW* *DMP=* INITIATED FLAGS CLEARED. * (PPDW+2) = 0. * * USES CM - CM+4, CN - CN+4. CDF SUBR ENTRY/EXIT LDD CP ADK SPCW CRD CN ADN PPDW-SPCW CRD CM LDD CN+1 CLEAR *DMP=* INITIATED FLAGS SCN 43 STD CN+1 LDN 0 CLEAR PPDW+2 STD CM+2 LDD CP REWRITE *SPCW* ADC SPCW CWD CN ADN PPDW-SPCW REWRITE *PPDW* CWD CM UJN CDFX RETURN RSJ SPACE 4,10 ** RSJ - RESET JOB TO ITS STATE AT THE START OF ROLLOUT. * * USES CM - CM+4. * * MACROS MONITOR. RSJ SUBR ENTRY/EXIT * RESTORE *OUT* POINTER IN TERMINAL OUTPUT FET. LDM MSRE SHN 14 LMM MSRE+1 ZJN RSJ1 IF NO TERMINAL OUTPUT AVAILABLE ADD RA SHN 6 ADN 3 CWM MSRF,ON * RESTORE ROLLOUT CONTROL FLAGS AND TIMED/EVENT ROLLOUT * DESCRIPTOR. RSJ1 TLDC STSW,CPAD RESTORE ROLLOUT CONTROL FLAGS CRD CM LDM MSRG GET ORIGINAL ROLLOUT CONTROL FLAGS STD CM+2 LDD IR+2 LMN 3 NJN RSJ2 IF NOT PCP ROLLOUT LDC /CPS/ALCS SET ALTERNATE CP FLAG STD CM+1 MONITOR CCAM CLEAR ALTERNATE PCP ASSIGNMENT RSJ2 TLDC STSW,CPAD CWD CM ADN TERW-STSW RESTORE ORIGINAL *TERW* IMAGE CWM MSRH,ON UJP RSJX RETURN TSIC SPACE 4,10 ** TSIC - INSTRUCTION RELOCATION TABLE. TSIC BSS 0 INSTRUCTION RELOCATION TABLE LIST D SIC HERE LIST * CON 0 TERMINATE ENTRIES SPACE 4,10 * OVERFLOW CHECKS. OVERFLOW BFMS+5,EPFW TITLE TTL 1RO/3RS - PROCESS *DMP=* CALL QUAL 3RS IDENT 3RS,DMPX *COMMENT 1RO - PROCESS *DMP=* CALL. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. 3RS SPACE 4,10 ** 3RS - PROCESS *DMP=* CALL. ORG E1RO DMP SUBR ENTRY/EXIT UJN DMPX RETURN CDM SPACE 4,15 ** CDM - CREATE DM* FNT ENTRY. * * EXIT (FA) = NFL ADDRESS OF DM* FILE FNT ENTRY. * * USES FN - FN+4, FS. * * CALLS *0BF*. * * MACROS EXECUTE, MONITOR. CDM SUBR ENTRY/EXIT LDN ZERL CLEAR FNT IMAGE CRD FN LDC 3R*DM CREATE LFN STD FN SHN -6 SCN 77 STD FN+1 * CALL *0BF* TO CREATE FNT/FST ENTRY. LDN NEEQ ASSIGN NULL EQUIPMENT STD FS LDN 40 SELECT SPECIAL FILE OPTION STM OVL0-1 EXECUTE 0BF,OVL0 BUILD FILE USING RESERVED FNT ENTRY ZJN CDMX IF FNT/FST ENTRY CREATED * IF THE FNT/FST ENTRY WAS NOT CREATED, HANG THE PP * SINCE THE RESERVED ENTRIES SHOULD ENSURE SUCCESSFUL * CREATION. * IF THE FILE ALREADY EXISTS BUT IS NOT ASSIGNED TO THE * NULL EQUIPMENT HANG THE PP SINCE THIS INDICATES A SYSTEM * LOGIC ERROR. SBD HN MJN CDM1 IF FILE NOT ALREADY PRESENT LDD FS LMN NEEQ NJN CDM1 IF NOT ASSIGNED TO NULL EQUIPMENT SOD FS+4 SET FILE BUSY NFA FA,R ADN FSTL CWD FS LJM CDMX RETURN CDM1 LDK SWET SET SYSTEM SOFTWARE ERROR STD CM+2 LDC * ADDRESS WHERE ERROR DETECTED STD CM+1 MONITOR CHGM CONDITIONALLY HANG PP EXECUTE 1AJ,= LDD IR+1 PLACE *1AJ* CALL IN PP INPUT REGISTER LPN 37 RAM CDMA+1 LDD IA CWM CDMA,ON LJM ROJ8 CALL *1AJ* CDMA VFD 18/0L1AJ,6/,36/0 CDR SPACE 4,10 ** CDR - COMPLETE *DMP=* ROLLOUT. * * ENTRY (CROF) = ASSIGNED EM FL IN *UEBS* WORD BLOCKS. * * USES CM - CM+5, FN - FN+4, FS - FS+4. * * CALLS CRS, ERS, ISR. * * MACROS EXECUTE, NFA, SFA. CDR SUBR ENTRY/EXIT RJM CRS CLEAR RECALL STACK * RELEASE ECS FL IF FULL CM FL ROLLOUT. LDD IR+4 NJN CDR1 IF NOT FULL CM FL ROLLOUT LDC 1S12 RELEASE ASSIGNED EM RJM ISR * CLEAR ROLLOUT REQUESTED FLAG AND CPU STATUS FLAG IN *STSW*. CDR1 LDN 0 CDR2 RJM ERS ENTER ROLLOUT STATUS * FINISH BUILDING DM* FILE FNT ENTRY. NFA FA,R ADK FNTL READ FNT ENTRY CRD FN ADN FSTL-FNTL READ FST ENTRY CRD FS LDD IR+3 SET/CLEAR WRITE LOCKOUT FLAG LPN 1 LMN 1 RAD FN+3 LDC 505 SET WRITE COMPLETE STATUS STD FS+4 NFA FA,R ADK FNTL WRITE FNT ENTRY CWD FN ADN FSTL-FNTL WRITE FST ENTRY CWD FS * CLEAR K-DISPLAY CONTROL, *CMM* CONTROL, AND SCP CONNECTIONS. LDD CP ADC DBAW CRD CM LDD CM SAVE FLAGS SCN 77 STD CM LDD IR+4 NJN CDR4 IF NOT FULL CM FL ROLLOUT LDD IR+3 SHN 21-2 MJN CDR4 IF NOT CPA DUMP LDD CM LPC 7677 CLEAR *CMM* ACTIVE FLAG STD CM CDR4 LDN ZERL CLEAR K-DISPLAY ADDRESSES CRD CM+1 LDD CP ADC DBAW CWD CM ADK SSCW-DBAW CLEAR SCP CONNECTION INDICATORS CWD ZR * SET DM* FILE ADDRESS AND ROLLOUT COMPLETE FLAG. ADK RFCW-SSCW CRD CM LDD FS STD CM LDD FS+1 STD CM+1 LDD CP ADK RFCW CWD CM SFA EJT,EO ADK SCHE CRD CM LDD CM+2 LPC 7377 LMC 400 SET *DMP=* ROLLOUT COMPLETE FLAG STD CM+2 SFA EJT,EO ADK SCHE CWD CM * SET *1AJ* CALL TO INITIATE *DMP=* PROGRAM. EXECUTE 1AJ,= LDD IR+1 PLACE *1AJ* CALL IN PP INPUT REGISTER LPN 37 RAM CDMA+1 AOM CDMA+4 LDD IA CWM CDMA,ON LJM CDRX RETURN CRS SPACE 4,10 ** CRS - CLEAR RECALL STACK. * * USES T1, CM - CM+4. CRS SUBR ENTRY/EXIT LDN LREC-1 INITIALIZE INDEX STD T1 CRS1 LDD CP CLEAR STACK ENTRY ADK RECW ADD T1 CWD ZR SOD T1 DECREMENT INDEX PJN CRS1 IF NOT COMPLETE LDD CP RESET RECALL STACK POINTER ADK STSW CRD CM LDN 1 CLEAR RECALL COUNT AND INITIALIZE POINTER STD CM+4 LDD CP ADN STSW CWD CM UJN CRSX RETURN UFS SPACE 4,15 ** UFS - UPDATE DM* FILE STATUS. * * ENTRY (FS) = ROLLOUT FILE EST ORDINAL. * (FS+1) = ROLLOUT FILE FIRST TRACK. * (FS+2) = ROLLOUT FILE CURRENT TRACK. * * EXIT DM* FILE FST ENTRY SET WITH ROLLOUT FILE POINTERS AND * STATUS. * (FA) = 0 FOR *WSS* SYSTEM SECTOR WRITE. * * USES FN - FN+4, FS+3, FS+4. * * MACROS NFA. UFS SUBR ENTRY/EXIT NFA FA,R ADK FNTL READ FNT ENTRY CRD FN LDC ROFT*100+SSST SET FILE TYPE AND STATUS STD FN+4 LDN FSMS SET FIRST SECTOR STD FS+3 LDN 0 SET FILE STATUS STD FS+4 NFA FA,R ADN FNTL WRITE FNT ENTRY CWD FN ADN FSTL-FNTL WRITE FST ENTRY CWD FS UJN UFSX RETURN SPACE 4,10 OVL1 BSS 0 *0BF* LOAD ADDRESS PDM SPACE 4,10 ** PDM - PRESET *DMP=* PROCESSING. * * ENTRY SYSTEM SECTOR CLEARED EXCEPT FOR *EJSS*. * EJT ENTRY IN SYSTEM SECTOR *EJSS*. * * EXIT DMP= PRESET COMPLETE. * * USES T1, CM - CM+4, FS - FS+4, * * MACROS ISTORE, NFA. PDM SUBR ENTRY/EXIT LDD CP ADK SEPW CRD CM ADK SPCW-SEPW CRD FS LDD FS+1 SHN 21-3 MJN PDM1 IF *DMP=* PARAMETER LIST IS IN *SPCW* * MOVE *DMP=* PARAMETER BLOCK TO NFL. LDN DMPL-1 SET BLOCK SIZE STD T1 LDD FS+3 LPN 37 SHN 14 LMD FS+4 ZJN PDM1 IF NO PARAMETER BLOCK EXISTS SHN 14 ADD RA SHN 6 CRM DBUF,T1 NFA DMPN CWM DBUF,T1 * CLEAR RA+1 IF NECESSARY. PDM1 LDD FS+1 SHN 21-4 MJN PDM2 IF RA+1 SHOULD NOT BE CLEARED LDD RA CLEAR RA+1 SHN 6 ADN 1 CWD ZR PDM2 LDN 0 PRESET *DMP=* FOR FULL FL DUMP STM DPSS LDD IR+4 ZJN PDM4 IF FULL DUMP STM JFLB STM RMSB SBD FL MJN PDM3 IF *DMP=* CM FL .LT. ASSIGNED CM FL LDD FL SET *DMP=* CM FL TO ASSIGNED CM FL STM JFLB STM RMSB PDM3 LDD DI DISABLE EM ROLLOUT STM JECI*2+SEQ LDN 0 CLEAR EM FL STM CROD LDM JFLB STORE *DMP=* CM FL IN SYSTEM SECTOR STM DPSS PDM4 LDC /3RS/CDR MODIFY COMPLETION ROUTINE CALL STM ROJF LDD DI DISABLE JOB STATUS CHANGE STM ROJD STM JFLA STM ROJE DISABLE NFL ROLLOUT LDN 0 DO NOT ALLOCATE SPACE FOR NFL STM RMSH ISTORE ROJG,(UJN ROJ8) LDN FS+1 SET TO UPDATE DM* FILE FST ENTRY STM RMSC LDN FS+2 STM RMSD LDN FS STM RMSE LJM PDMX RETURN DBUF BSS 0 *DMP=* PARAMETER BLOCK BUFFER 3RS SPACE 4,10 * OVERFLOW CHECKS. ERRNG EPFW-OVL1-ZBFL *0BF* OVERFLOW ERRNG EPFW-DBUF-DMPL*5+5 *DBUF* OVERFLOW OVERFLOW E1RO,EPFW TITLE TTL 1RJ - RECALL PP AND ROLLOUT JOB. TITLE 1RJ - RECALL PP AND ROLLOUT JOB. QUAL 1RJ IDENT 1RJ,RRJ RECALL PP AND ROLLOUT JOB. *COMMENT 1RO - RECALL PP AND ROLLOUT JOB. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. SPACE 4,10 *** 1RJ - RECALL PP AND ROLLOUT JOB. * * W. E. GOEBEL. 84/10/23. SPACE 4,10 *** *1RJ* CALL PARAMETERS. * * *1RJ* IS CALLED FROM A PP VIA THE *EXECUTE* MACRO. * * THE FOLLOWING FIELDS MUST BE SET UPON ENTRY TO *1RJ*. * * (IR) = PP INPUT REGISTER TO RECALL. THIS IS THE CM COPY * OF THE INPUT REGISTER. TYPICALLY IT WILL BE THE * SAME AS UPON INITIAL ENTRY TO THE PP. * (IR+4) = THE EST ORDINAL TO TIMED EVENT ROLL FOR. * THIS PARAMETER RESIDES IN THE DIRECT CELL *IR*+4, * NOT IN THE CM COPY OF THE PP INPUT REGISTER. * (MP - MP+4) = MESSAGE BUFFER PARAMETERS. SPACE 4,10 *** MS2W MESSAGES. * * *WAITING - INACCESSIBLE DEVICE.* TITLE LOCAL DEFINITIONS. **** COMMON DIRECT LOCATION ASSIGNMENTS. T8 EQU 16 SCRATCH T9 EQU 17 SCRATCH MP EQU 20 - 24 ASSEMBLY BUFFER CN EQU 25 - 31 CM WORD BUFFER **** TITLE MAIN PROGRAM. RRJ SPACE 4,10 ** RRJ - MAIN PROGRAM. * * ENTRY (IR+4) = EQUIPMENT NUMBER WAITING FOR. * * EXIT TO PPR, PP IS DROPPED. ORG PPFW RRJ UJN RJS1 ENTRY WHEN CALLED FROM CPU PROGRAM CON 0 ALLOW ROOM FOR RJM ENTRY RJS1 LDD CP WRITE MESSAGE TO CONTROL POINT ADN MS2W CWM RJSA,TR * SET JOB STEP PRIVATE FILE RETURN FLAG TO FORCE *1AJ* TO CHECK * FOR PARTIALLY RETURNED FILES BEFORE ADVANCING TO THE NEXT JOB * STEP. SUCH *1AJ* PROCESSING WOULD BE REQUIRED IF AN * INACCESSIBLE DEVICE ERROR PREVENTED THE COMPLETE RETURN OF A * FILE BUT THE RECALLED PP DROPPED BECAUSE OF AN ERROR FLAG * BEFORE THE DEVICE BECAME ACCESSIBLE. LDN /CPS/RPMS SET RETURN JOB STEP PRIVATE FILES STD CM+4 LDN /CPS/SCTS SET JOB CONTROL FLAG STD CM+1 MONITOR SJCM * ROLL OUT JOB ON EVENT IF POSSIBLE. LDD CP CHECK SUBSYSTEM ID ADK JCIW CRD CM LDD CM+2 ADC -LSSI-1 PJN RJS2 IF NOT TO ROLL OUT JOB LDN 77 SET ROLLOUT TIME STD CM+2 LDD IR+4 SET EST ORDINAL STD CM+3 LDN WISE SET WAIT INACCESSIBLE DEVICE EVENT STD CM+4 LDD MA WRITE TIMED/EVENT ROLLOUT PARAMETERS CWD CM LDN /CPS/ROTE SET *ROCM* OPTION STD CM+1 MONITOR ROCM ROLLOUT CONTROL POINT * RECALL PP. RJS2 LDN ZERL SET *RECM* SUBFUNCTION CRD CM LDD IA SET INPUT REGISTER TO RECALL CRD CN LDD MA CWD CN ADN 1 CWD MP MONITOR RECM RECALL AND DROP PP LJM PPR ENTER PP RESIDENT RJSA DATA C*WAITING - INACCESSIBLE DEVICE.* SPACE 4,10 * OVERFLOW CHECKS. OVERFLOW PPFW,EPFW TITLE TTL 1RO - ROLLOUT JOB. SPACE 4,10 END