cdc:nos2.source:opl871:cpd
Table of Contents
CPD
Table Of Contents
- [00007] CPD - COLLECT PERFORMANCE DATA.
- [00009] COLLECT PERFORMANCE DATA.
- [00098] DIRECT CELL DEFINITIONS.
- [00126] MACRO DEFINITIONS.
- [00129] ADO - ADD ONE.
- [00170] ADA - ADD ACCUMULATOR.
- [00219] RDM - READ MEMORY.
- [00249] MPAR - MULTIPLE PRECISION ARRAY.
- [00283] STA - STORE ACCUMULATOR.
- [00302] COMMON DECKS.
- [00341] MAIN PROGRAM.
- [00343] MAIN PROGRAM.
- [00489] LOOP OPERATION ROUTINES.
- [00491] CBC - CHECK BUFFERED I/O CHANNEL USAGE.
- [00533] CBP - CHECK BUFFERED I/O PARAMETERS.
- [00560] CDA - CHECK DEVICE ACTIVITY.
- [00612] CHU - CHECK CHANNEL USAGE.
- [00681] CPU - CPU USAGE.
- [00805] RESIDENT SUBROUTINES.
- [00807] ADA - ADD VALUE TO BUFFER.
- [00825] CCA - COMPUTE CPA/PCPA ADDRESS.
- [00844] CDS - CHECK DROP STATUS.
- [00876] RDM - READ MEMORY TO BUFFER.
- [00914] PRESET.
- [00928] PRS - PRESET.
- [01521] ERR - PROCESS PRESET ERROR.
- [01551] RDB - READ DATA INTO BUFFER.
- [01607] RWB - READ WORDS TO BUFFER.
- [01652] HEADER RECORD BUFFER ALLOCATION.
- [01676] PLO - PRESET *CPD* OVERLAID LOOP OPERATIONS.
- [01681] LOOP OPERATION ROUTINES.
- [01683] ACA - ACCUMULATE CP AND PCP ACTIVITY.
- [01780] ACP - ACCUMULATE CONCURRENT PP ACTIVITY.
- [01808] AEA - ACCUMULATE EST ACTIVITY.
- [01874] AIA - ACCUMULATE IAF ACTIVITY.
- [01911] CMR - CHECK STORAGE MOVE REQUEST.
- [01951] PPU - PP USAGE.
- [01990] SAA - SET EXCHANGE PACKAGE CPU ACCUMULATOR ADDRESS.
- [02016] SNO - SNAPSHOT LOOP OPERATIONS
- [02074] UEA - UPDATE EJT ENTRY.
- [02153] UQA - UPDATE QFT ACTIVITY.
- [02237] PFW - PRESET CPD FILE WRITE OPERATIONS.
- [02249] FILE WRITE ROUTINES.
- [02251] CIS - CLEAR INTERLOCK STATUS.
- [02269] DPB - DUMP BUFFER TO FILE.
- [02361] DPP - DROP PP.
- [02389] FWO - FILE WRITE OPERATIONS.
- [02416] RNT - REQUEST TRACKS.
- [02494] SIS - SET INTERLOCK STATUS.
- [02522] WES - WRITE EOI SECTOR.
- [02564] ZFB - ZERO FILL BUFFER.
Source Code
- CPD.txt
- IDENT CPD,CPD COLLECT PERFORMANCE DATA
- PERIPH
- BASE MIXED
- SST SSCP
- *COMMENT CPD - COLLECT PERFORMANCE DATA.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- TITLE CPD - COLLECT PERFORMANCE DATA.
- CPD SPACE 4,10
- *** CPD - COLLECT PERFORMANCE DATA.
- *
- * S. L. KSANDER. 78/12/13.
- * R. M. DESSEL. 81/07/27.
- * J. L. LARSON. 83/04/11.
- SPACE 4,10
- *** CPD GENERATES A FILE FROM WHICH SYSTEM USAGE CAN BE
- * DETERMINED. COUNTS OF VARIOUS FORMS OF ACTIVITY ARE
- * MAINTAINED AND PERIODICALLY WRITTEN TO THIS FILE.
- SPACE 4,10
- *** CALL.
- *
- *
- *T 18/ *CPD*,6/ CP,12/ SO,6/,18/ FET ADDR
- *
- *T FET 42/ FILE NAME,18/
- *T FET+1 42/ ,18/ FIRST
- *T FET+2 42/ ,18/ IN
- *T FET+3 42/ ,18/ OUT
- *T FET+4 12/ FO,30/,18/ LIMIT
- *T FET+5 12/ ,12/ FW,12/ SL,12/ ML,12/ FL
- *T, FET+8 42/ PF NAME,12/,6/ MODE
- *
- *
- * SO - ORDINAL OF RESERVED SYSTEM FNT ENTRY.
- * FO - RELATIVE SAMPLE FILE ADDRESS IN NFL.
- * FW - FILE WRITE TIME IN SECONDS.
- * SL - SLOW LOOP TIME IN MILLISECONDS.
- * ML - MEDIUM LOOP TIME IN MILLISECONDS.
- * FL - FAST LOOP TIME IN MILLISECONDS.
- *
- * IF A LOOP TIME IS SET TO ZERO, NO SAMPLES FOR THAT
- * LOOP WILL BE TAKEN.
- SPACE 4,10
- *** *CPD* TERMINATION.
- *
- * TO TERMINATE *CPD*, THE *CPD* DROP FLAG MUST BE SET.
- * REFER TO *SFM* DOCUMENTATION FOR FURTHER INFORMATION
- * CONCERNING THIS.
- SPACE 4,10
- *** DATA FILE FORMAT.
- *
- * RECORD 1 = HEADER DATA.
- * THIS RECORD CONTAINS STATIC INFORMATION REGARDING
- * THE SYSTEM CONFIGURATION AVAILABLE. THIS RECORD
- * CONTAINS A FIXED DATA BLOCK, A MASS STORAGE BLOCK,
- * A JOB CONTROL DATA BLOCK, AND AN EST DATA BLOCK.
- * THE SPECIFIC FORMAT OF THIS RECORD IS DESCRIBED
- * IN *COMSCPD*.
- *
- * RECORD 2 - N = DATA RECORDS.
- * THESE RECORDS CONTAIN THE ACCUMULATED DATA FOR
- * EACH FILE WRITE INTERVAL. EACH RECORD CONTAINS
- * A FIXED BASE BLOCK AND A MASS STORAGE DATA BLOCK.
- * THE SPECIFIC FORMAT OF THIS RECORD IS DESCRIBED
- * IN *COMSCPD*.
- SPACE 4,10
- *** DAYFILE MESSAGES.
- *
- *
- * * CPD - FILE NOT FOUND.*
- * THE SPECIFIED DATA FILE WAS NOT FOUND.
- *
- * * CPD - ALREADY ACTIVE.*
- * *CPD* IS ALREADY RUNNING IN THE SYSTEM.
- *
- * * CPD - FILE STATUS ERROR.*
- * ONE OF THE FOLLOWING CONDITIONS EXISTED REGARDING
- * THE SPECIFIED DATA FILE.
- * 1. UNABLE TO FIND FAST ATTACH FILE CALLED SAMPLE ON
- * CALLERS FAMILY.
- * 2. UNABLE TO ATTACH FAST ATTACH FILE IN REQUESTED
- * MODE.
- *
- * * CPD - USER ACCESS NOT VALID.*
- * CALLING PROGRAM DOES NOT HAVE SYSTEM ORIGIN
- * PRIVILEGES.
- *
- * * CPD - OVERLAY NOT IN RPL.*
- * *CPD* OVERLAY *3CR* OR *3CS* WAS NOT IN THE RPL.
- *
- * * CPD - PARAMETER ERROR.*
- * THE SPECIFIED PARAMETER ADDRESS IS INCORRECT.
- *
- * * CPD - INITIATED.*
- * *CPD* MAIN LOOP INITIATED.
- *
- * * CPD - TERMINATED.*
- * *CPD* MAIN LOOP TERMINATED.
- TITLE DIRECT CELL DEFINITIONS.
- * DIRECT LOCATION ASSIGNMENTS.
- T8 EQU 16 TEMPORARY STORAGE (USED BY MACROS)
- T9 EQU 17 TEMPORARY STORAGE (USED BY MACROS)
- FS EQU 20 - 24 FST ENTRY
- VB EQU 25 FWA VARIABLE DATA BUFFER
- LE EQU 26 LAST ORDINAL + 1 OF DEFINED EST ENTRIES
- ME EQU 27 NUMBER OF MASS STORAGE ENTRIES
- NP EQU 30 NUMBER OF PPUS
- NC EQU 31 NUMBER OF CONTROL POINTS
- SC EQU 32 CURRENT TIME IN SECONDS
- MS EQU 33 CURRENT TIME IN MILLISECONDS
- LI EQU 34 OPERATION LOOP INDEX
- LO EQU 35 LOOP OPERATION ADDRESS
- BA EQU 36 BUFFER POINTER
- PC EQU 37 PPU COMMUNICATION AREA ADDRESS
- CN EQU 40 - 44 WORKING STORAGE
- TA EQU 40 IAF RA/100B (FOR ROUTINE *AIA* ONLY)
- WC EQU 45 BUFFER WORD COUNT
- NM EQU 46 NUMBER OF MCT ENTRIES - 1
- EC EQU 47 PROCESSOR CONNECT CODE
- FO EQU 57 FNT ORDINAL FOR *SAMPLE* FILE
- AB EQU 60 - 64 WORKING STORAGE
- RC EQU 65 RECORD COUNT IN BUFFER
- RX EQU 66 MAXIMUM RECORDS IN BUFFER
- RN EQU HN P REGISTER MAINTENANCE REGISTER NUMBER
- TITLE MACRO DEFINITIONS.
- * MACRO DEFINITIONS.
- ADO SPACE 4,15
- ** ADO - ADD ONE.
- *
- * ADO M,D
- *
- * ENTRY *M* = BUFFER OFFSET TO BE INCREMENTED.
- * *D* = INDEX OFFSET.
- * (BA) = BUFFER BASE ADDRESS OF CURRENT RECORD.
- *
- * USES T8.
- *
- * REQUIRES BUFFER OFFSET TO BE DEFINED VIA *MPAR* MACRO
- * IN ORDER TO SET FIELD PRECISION.
- PURGMAC ADO
- ADO MACRO M,D
- MACREF ADO
- .1 SET P.M-1
- .2 IFC NE,$D$$
- LDD D
- IFNE .1,0,1
- SHN .1
- ADD BA
- STD T8
- AOM M+.1,T8
- DUP .1
- .1 SET .1-1
- SHN -14
- RAM M+.1,T8
- ENDD
- .2 ELSE
- AOM M+.1,BA
- DUP .1
- .1 SET .1-1
- SHN -14
- RAM M+.1,BA
- ENDD
- .2 ENDIF
- ENDM
- ADA SPACE 4,20
- ** ADA - ADD ACCUMULATOR.
- *
- * ADA M,D
- *
- * ENTRY *M* = BUFFER OFFSET TO BE INCREMENTED.
- * *D* = INDEX OFFSET.
- * (BA) = BUFFER BASE ADDRESS OF CURRENT RECORD.
- *
- * USES T8, T9.
- *
- * CALLS ADA.
- *
- * REQUIRES BUFFER OFFSET TO BE DEFINED VIA *MPAR* MACRO
- * IN ORDER TO SET FIELD PRECISION.
- *
- * WARNING - IF THE *D* PARAMETER IS PRESENT, ONLY
- * THE LOWER 12 BITS OF *A* ARE USED, AND THE
- * ELEMENT PRECISION MUST NOT BE GREATER THAN TWO.
- PURGMAC ADA
- ADA MACRO M,D
- MACREF ADA
- .1 SET P.M-1
- .2 IFC NE,$D$$
- STD T8
- LDD D
- ERRPL .1-2 PRECISION ERROR
- .3 IFNE .1,0
- SHN 1
- ADK M
- RJM ADA
- .3 ELSE
- ADD BA
- STD T9
- LDD T8
- RAM M,T9
- .3 ENDIF
- .2 ELSE
- RAM M+.1,BA
- DUP .1
- .1 SET .1-1
- SHN -14
- RAM M+.1,BA
- ENDD
- .2 ENDIF
- ENDM
- RDM SPACE 4,15
- ** RDM - READ MEMORY.
- *
- * RDM M
- *
- * ENTRY (A) = CM ADDRESS TO READ.
- * *M* = BUFFER OFFSET TO READ INTO.
- * (BA) = BUFFER BASE ADDRESS OF CURRENT RECORD.
- *
- * EXIT (A) = INITIAL CM ADDRESS + CM WORDS READ.
- *
- * USES T8, T9.
- *
- * CALLS RDM.
- *
- * REQUIRES BUFFER OFFSET TO BE DEFINED VIA *MPAR* MACRO
- * TO SET FIELD PRECISION.
- PURGMAC RDM
- RDM MACRO M
- MACREF RDM
- STD T9
- SHN -14
- STD T8
- LDC P.M/5*10000+M
- ERRNZ P.M/5*5-P.M LENGTH ERROR
- RJM RDM READ MEMORY
- ENDM
- MPAR SPACE 4,15
- ** MPAR - MULTIPLE PRECISION ARRAY.
- *
- * NAME MPAR L,P
- *
- * ENTRY *NAME* = ARRAY NAME.
- * *L* = ARRAY LENGTH IN ELEMENTS.
- * *P* = ELEMENT PRECISION IN PPU WORDS.
- *
- * EXIT *P.NAME* = PRECISION OF ELEMENTS.
- * *L.NAME* = ARRAY LENGTH.
- *
- * WARNING - IF ARRAY LENGTH IS NOT EQUAL TO ONE, THE ELEMENT
- * PRECISION MUST NOT BE GREATER THAN TWO.
- PURGMAC MPAR
- MACRO MPAR,NAME,LEN,PREC
- MACREF MPAR
- .1 IFC NE,$NAME$$
- .2 IFC EQ,$PREC$$
- ERR PRECISION NOT SPECIFIED
- .2 ELSE
- P.NAME EQU PREC
- .2 ENDIF
- .3 IFNE LEN,1
- ERRNG 2-P.NAME OFFSET CALCULATION ERROR
- .3 ENDIF
- L.NAME EQU LEN
- NAME BSS L.NAME*P.NAME
- BL SET BL+L.NAME*P.NAME
- .1 ENDIF
- ENDM
- STA SPACE 4,10
- ** STA - STORE ACCUMULATOR.
- *
- * STA M
- *
- * ENTRY *M* = DATA OFFSET IN BUFFER.
- * (BA) = BUFFER BASE ADDRESS OF CURRENT RECORD.
- PURGMAC STA
- STA MACRO M
- .1 SET P.M-1
- ERRPL .1-2 PRECISION ERROR
- .2 IFNE .1,0
- STM M+1,BA
- SHN -14
- .2 ENDIF
- STM M,BA
- ENDM
- TITLE COMMON DECKS.
- * COMMON DECKS.
- *CALL COMPMAC
- *CALL COMPMRM
- *CALL COMSCPS
- *CALL COMSEJT
- QUAL EVENT
- *CALL COMSEVT
- QUAL *
- *CALL COMSHIO
- *CALL COMSIOU
- *CALL COMSJIO
- *CALL COMSMSP
- *CALL COMSMTR
- *CALL COMSPFM
- *CALL COMSPIM
- QUAL IAF
- *CALL COMSREM
- QUAL *
- *CALL COMSSCD
- QUAL SCR
- *CALL COMSSCR
- QUAL *
- *CALL COMSSSD
- *CALL COMSSSJ
- *CALL COMSWEI
- LIST F,X
- *CALL COMSCPD
- LIST *
- SPACE 4,10
- **** ASSEMBLY CONSTANTS.
- SSJ$ EQU 1 ASSEMBLE *SSJ=* PROCESSING IN *COMPCUA*
- SBUFL MAX 48D,CTALL*5 SCRATCH BUFFER LENGTH
- ****
- TITLE MAIN PROGRAM.
- CPD SPACE 4,10
- ** CPD - MAIN PROGRAM.
- ORG PPFW
- CPD LJM /PRS/PRS PRESET
- FITS EQU CPD FILE INTERLOCK STATUS
- CPD1 LDN 1 INDICATE NOT TRACK LIMIT
- RJM CDS CHECK DROP STATUS
- * LDN 0
- STD LI SET LOOP INDEX
- LDC RTCL SET REAL TIME
- CRD CM
- LDD CM+1 SET SECONDS
- STD SC
- LDD CM+4 SET MILLISECONDS
- STD MS
- * CHECK LOOP OPERATIONS TIMES.
- CPD2 LDD MS SET ELAPSED TIME
- SBM CPDA,LI
- PJN CPD3 IF NO UNDERFLOW
- ADC 10000
- CPD3 STD T1
- SBM CPDC,LI
- MJN CPD4 IF NOT GTREATER THAN MAXIMUM CYCLE TIME
- RAM CPDC,LI UPDATE MAXIMUM CYCLE TIME
- CPD4 LDM CPDB,LI
- ZJN CPD7 IF NO OPERATION TO BE PERFORMED
- SBD T1 CHECK OPERATION INTERVAL
- SBN 1
- PJN CPD7 IF TIME NOT EXPIRED
- LDD MS SET NEW BASE TIME
- STM CPDA,LI
- LDM TLOT,LI SET OPERATION TABLE ADDRESS
- STD LO
- LDI LO INCREMENT SAMPLE COUNT
- ADD BA
- STD T1
- AOM 1,T1
- SHN -14
- RAI T1
- AOD LO ADVANCE TO PROCESS OPERATIONS
- CPD5 LDI LO
- STD T1
- ZJN CPD6 IF ROUTINE NOT TO BE PERFORMED
- RJM 0,T1 PERFORM OPERATION ROUTINE
- CPD6 AOD LO ADVANCE TO PROCESS NEXT OPERATION
- LMM TLOTL,LI
- NJN CPD5 IF MORE OPERATIONS TO PROCESS
- CPD7 AOD LI INCREMENT LOOP INDEX
- LMN MSLC
- NJP CPD2 IF ALL MILLISECOND LOOPS NOT PROCESSED
- LDM CPDB,LI
- ZJN CPD9 IF NO SNAPSHOT OPERATION TO BE PERFORMED
- LDD SC SET ELAPSED TIME
- SBM CPDA,LI
- PJN CPD8 IF NO UNDERFLOW
- ADC 10000
- CPD8 SBM CPDB,LI CHECK SNAPSHOT LOOP INTERVAL TIME
- MJN CPD9 IF TIME NOT EXPIRED
- LDD SC SET NEW BASE TIME
- STM CPDA,LI
- RJM /3CR/SNO PERFORM SNAPSHOT OPERATION
- AOD RC ADVANCE RECORD COUNT
- SBD RX
- ZJN CPD10 IF END OF BUFFER
- LDD WC ADVANCE BUFFER ADDRESS FOR NEXT RECORD
- SHN 2
- ADD WC
- RAD BA
- CPD9 LJM CPD1 LOOP
- CPD10 EXECUTE 3CS WRITE FILE
- CPD11 RJM /3CS/ZFB ZERO FILL BUFFER
- EXECUTE 3CR LOAD OVERLAID LOOP OPERATION ROUTINES
- LDC RTCL SET INITIAL OPERATION TIMES
- CRD CM
- LDD CM+4
- STM CPDA FAST LOOP
- STM CPDA+1 MEDIUM LOOP
- STM CPDA+2 SLOW LOOP
- LDD CM+1
- STM CPDA+3 SNAPSHOT LOOP
- UJN CPD9 LOOP
- CPDA BSS 0 LOOP OPERATION BASE TIMES
- CON 0 FAST LOOP
- CON 0 MEDIUM LOOP
- CON 0 SLOW LOOP
- MSLC EQU *-CPDA MILLISECOND LOOP COUNT
- CON 0 SNAPSHOT LOOP
- SCLC EQU *-CPDA-MSLC SECOND LOOP COUNT
- CPDB BSS 0 LOOP OPERATION INTERVAL TIMES
- CON 0 FAST LOOP
- CON 0 MEDIUM LOOP
- CON 0 SLOW LOOP
- CON 0 SNAPSHOT LOOP
- CPDC BSS 0 MAXIMUM CYCLE TIMES
- CON 0 FAST LOOP
- CON 0 MEDIUM LOOP
- CON 0 SLOW LOOP
- TLOT BSS 0 TABLE OF LOOP OPERATION TABLE ADDRESSES
- CON TFLO FAST LOOP OPERATIONS
- CON TMLO MEDIUM LOOP OPERATIONS
- CON TSLO SLOW LOOP OPERATIONS
- TLOTL BSS 0 TABLE OF LOOP OPERATION TABLES LWA + 1
- CON TFLOL FAST LOOP OPERATIONS
- CON TMLOL MEDIUM LOOP OPERATIONS
- CON TSLOL SLOW LOOP OPERATIONS
- TFLO BSS 0 TABLE OF FAST LOOP OPERATIONS
- CON CNIL INCREMENT FAST LOOP SAMPLE COUNT
- CON CDA CHECK DEVICE ACTIVITY
- DCBP CON 0 DISABLE BUFFERED I/O
- * CON CBP (CHECK BUFFERED I/O PARAMETERS)
- DCBC CON 0 DISABLE BUFFERED I/O
- * CON CBC (CHECK BUFFERED I/O CHANNEL USAGE)
- CON CHU CHECK CHANNEL USAGE
- CON /3CR/CMR CHECK MOVE REQUEST
- CON CPU CHECK CPU USAGE
- CON /3CR/PPU COUNT PP USAGE
- TFLOL EQU * TABLE OF FAST LOOP OPERATIONS LWA + 1
- TMLO BSS 0 TABLE OF MEDIUM LOOP OPERATIONS
- CON CTML INCREMENT MEDIUM LOOP SAMPLE COUNT
- CON /3CR/ACA ACCUMULATE CONTROL POINT ACTIVITY
- CON /3CR/CMR CHECK MOVE REQUEST
- CON /3CR/UEA UPDATE EJT ACTIVITY
- TMLOL EQU * TABLE OF MEDIUM LOOP OPERATIONS LWA + 1
- TSLO BSS 0 TABLE OF SLOW LOOP OPERATIONS
- CON CTOL INCREMENT SLOW LOOP SAMPLE COUNT
- CON /3CR/ACP ACCUMULATE CONCURRENT PP ACTIVITY
- CON /3CR/AEA ACCUMULATE EST ACTIVITY
- CON /3CR/AIA ACCUMULATE IAF ACTIVITY
- CON /3CR/UQA UPDATE QFT ACTIVITY
- TSLOL EQU * TABLE OF SLOW LOOP OPERATIONS LWA + 1
- TITLE LOOP OPERATION ROUTINES.
- CBC SPACE 4,10
- ** CBC - CHECK BUFFERED I/O CHANNEL USAGE.
- *
- * ENTRY (CBCA) = CHANNEL TABLE ADDRESS.
- * (CBCB) = NUMBER OF CHANNEL TABLE ENTRIES.
- *
- * EXIT BUFFERED I/O CHANNEL USAGE UPDATED.
- *
- * USES T1, T2, T3, AB - AB+4, CM - CM+4.
- *
- * MACROS ADO.
- CBC SUBR ENTRY/EXIT
- LDN 0
- STD T3
- LDC 0
- CBCA EQU *-2 (CHANNEL TABLE ADDRESS)
- STD T2 SET CHANNEL TABLE ADDRESS
- SHN -14
- STD T1
- CBC1 SHN 14
- ADD T2
- ADK CREQ
- CRD CM READ CHANNEL TABLE WORD *CREQ*
- ADN CCNT-CREQ READ CHANNEL NUMBER
- CRD AB
- LDD CM
- ZJN CBC2 IF NOT BUSY
- LDD AB+1 SET CHANNEL NUMBER
- LPN 77
- STD CM
- ADO BICA,CM COUNT CHANNEL ACTIVITY
- CBC2 AOD T3 ADVANCE CHANNEL TABLE INDEX
- SBN 0
- CBCB EQU *-1 (NUMBER OF CHANNEL TABLE ENTRIES)
- PJN CBCX IF END OF CHANNELS
- LDN CCTL
- RAD T2 ADVANCE TABLE ADDRESS
- SHN -14
- RAD T1
- UJN CBC1 CHECK NEXT CHANNEL
- CBP SPACE 4,10
- ** CBP - CHECK BUFFERED I/O PARAMETERS.
- *
- * ENTRY (CBPA) = FWA BUFFERED I/O TABLES.
- *
- * EXIT BUFFERED I/O PARAMETERS UPDATED.
- *
- * USES T2, CM - CM+4.
- *
- * MACROS ADA.
- CBP SUBR ENTRY/EXIT
- LDN WRTP-EMTP+1 INITIALIZE CONTROL WORD INDEX
- STD T2
- CBP1 SOD T2
- MJN CBPX IF END OF CONTROL WORDS
- CBPA ADC EMTP (FWA CONTROL WORDS + *EMPT*)
- CRD CM
- LDD CM+1 ADD COUNT OF BUFFERS IN LIST
- ADA BILA,T2
- UJN CBP1 LOOP
- ERRNZ DWTP-EMTP-1 OFFSET ERROR IN *MPAR* TABLE
- ERRNZ DRDP-DWTP-1 OFFSET ERROR IN *MPAR* TABLE
- ERRNZ WRTP-DRDP-1 OFFSET ERROR IN *MPAR* TABLE
- CDA SPACE 4,10
- ** CDA - CHECK DEVICE ACTIVITY.
- *
- * ENTRY (BA) = BUFFER BASE ADDRESS OF CURRENT RECORD.
- * (ME) = NUMBER OF MS ENTRIES.
- * (CDAA) = PP SPEED MASK.
- * (CDAB) = FWA MST-S.
- *
- * EXIT DEVICE ACTIVITY USAGE UPDATED.
- *
- * USES T1, T2, VB, CM - CM+4.
- CDA SUBR ENTRY/EXIT
- LDM CDAC COMPUTE RANDOM DELAY
- ADC 273D
- LPC 0
- * LPC 777 (1XPP)
- * LPC 1777 (2XPP)
- * LPC 3777 (4XPP)
- CDAA EQU *-1
- STM CDAC
- CDA1 SBN 1 NOW COUNT OUT THE DELAY
- NJN CDA1 IF NOT END OF DELAY
- LDD ME NUMBER OF MS ENTRIES
- STD T1
- LDD BA SET MASS STORAGE REQUEST ENTRY FWA
- ADK DFBL+NMSA
- STD VB
- LDC ** FWA MST-S
- CDAB EQU *-1
- STD T2
- CDA2 SOD T1
- MJN CDAX IF END OF MS ENTRIES
- LDD T2
- SHN 3
- ADN DALL
- CRD CM
- LDD CM UPDATE ACTIVITY USAGE
- LPN 77
- RAM 1,VB
- SHN -14
- RAI VB
- ERRNZ P.NMSA-2 CODE DEPENDS ON SIZE
- LDN DMBL ADVANCE TO NEXT MS REQUEST ENTRY
- RAD VB
- LDN MSTXL/10
- RAD T2
- UJN CDA2 PROCESS NEXT DEVICE
- CDAC CON 0 DELAY
- CHU SPACE 4,20
- ** CHU - CHECK CHANNEL USAGE.
- *
- * ACTIVITY ON CHANNELS ASSIGNED TO BUFFERED I/O DRIVERS
- * IS IGNORED HERE AND PROCESSED SEPARATELY IN ROUTINE *CBC*.
- * FOR CONCURRENT CHANNELS, ONLY CHANNEL REQUESTED/RESERVED IS
- * RECORDED, SINCE DETERMINING CHANNEL ACTIVITY IS IMPRACTICAL.
- *
- * ENTRY (NP) = NUMBER OF PP-S.
- * (PC) = FWA OF PP COMMUNICATIONS AREA.
- * (CHUA) = NUMBER OF CHANNELS ON MAINFRAME.
- * (CHUB) = FWA CHANNEL TABLE.
- *
- * EXIT CHANNEL USAGE UPDATED.
- *
- * USES T1, CM - CM+4.
- *
- * MACROS ADO.
- CHU SUBR ENTRY/EXIT
- LDN CTALL CHANNEL STATUS TABLE LENGTH
- STD T1
- CHUA LDC ** (FWA OF CHANNEL TABLE)
- CRM SBUF,T1
- LCN 0 INITIALIZE CHANNEL NUMBER
- STD T1
- CHU1 AOD T1
- CHUB LMN 40+** (MAXIMUM CONCURRENT CHANNEL + 1)
- ZJN CHUX IF ALL CHANNELS PROCESSED
- LDD T1
- CHUC SBN ** (MAXIMUM NON-CONCURRENT CHANNEL + 1)
- PJN CHU2 IF CONCURRENT CHANNEL
- * CHECK FOR BUFFERED I/O USAGE.
- LDM SBUF,T1 GET ASSIGNED PP NUMBER
- LPN 37
- SHN 3 GET PP INPUT REGISTER
- ADD PC
- CRD CM
- LDD CM+1
- SCN 77
- SHN 6
- LMD CM
- LMC 3RP1H
- ZJN CHU1 IF *1HP*
- LMC 3RM1X&3RP1H
- ZJN CHU1 IF *1XM*
- * SAMPLE CHANNEL DATA.
- LDC IJMI GENERATE CHANNEL INSTRUCTION
- ADD T1
- STM CHUD
- CHUD IJM CHU2,** IF CHANNEL INACTIVE
- ADO ACCH,T1 INCREMENT CHANNEL ACTIVE COUNT
- * THE FOLLOWING CODE IS PERFORMED FOR ALL CHANNELS.
- CHU2 LDM SBUF,T1 SET CHANNEL STATUS
- SHN 21-13
- PJN CHU3 IF NOT REQUESTED
- ADO RQCH,T1 INCREMENT CHANNEL REQUESTED COUNT
- CHU3 LDM SBUF,T1 SET CHANNEL STATUS
- LPN 37
- ZJN CHU4 IF NOT RESERVED
- ADO RSCH,T1 INCREMENT CHANNEL RESERVED COUNT
- CHU4 LJM CHU1 LOOP
- CPU SPACE 4,15
- ** CPU - CPU USAGE.
- *
- * ENTRY (NC) = NUMBER OF THE SYSTEM CONTROL POINT.
- * (CPUA) = MODIFIED IF NO SCR ON MAINFRAME.
- * (TCPS) = CPU STATUSES.
- * (RN) = P REGISTER MAINTENANCE REGISTER NUMBER.
- *
- * EXIT CPU ACTIVITY UPDATED.
- *
- * USES EC, AB - AB+4, CM - CM+4, CN - CN+4, T1 - T3.
- *
- * MACROS ADO, READMR.
- CPU7 LDN /SCR/FCRD+20 READ STATUS/CONTROL REGISTER
- OAN CHSC
- IAN CHSC
- STD T1
- SHN -3 CHECK MONITOR MODE
- LPN 3
- ZJN CPU8 IF NOT MONITOR MODE
- SBN 1 SET CPU OFFSET
- STD T2
- ADO MNMD,T2 INCREMENT MONITOR MODE COUNT
- CPU8 LDD T1 CHECK EXTENDED MEMORY TRANSFER
- LPN 4
- ZJN CPUX IF NO EXTENDED MEMORY TRANSFER ACTIVE
- ADO ECST INCREMENT EXTENDED MEMORY TRANS
- CPU SUBR ENTRY/EXIT
- LDN 0 INITIALIZE CPU COUNT
- STD T2
- UJN CPU2 CHECK CPU 0 STATUS
- CPU1 AOD T2
- LMN TCPSL
- CPUA ZJN CPU7 IF ALL CPUS PROCESSED
- * ZJN CPUX (NO SCR ON MAINFRAME)
- LDN CTCUL
- CPU2 STD T1 SET CPU USAGE INDEX
- LDM TCPS,T2
- NJN CPU1 IF CPU OFF
- CPUB LJM CPU2.3 DETERMINE NOS CPU USAGE
- * UJN CPU2.1 (180 TYPE CPU)
- * DETERMINE CODE SEGMENT FOR 180 TYPE CPU.
- CPU2.1 LDM PCCC,T2 SET PROCESSOR CONNECT CODE
- STD EC
- READMR PREG READ P REGISTER
- LDM PREG+2 GET PROCESSOR CODE SEGMENT
- LPN 17
- SHN 10
- ADM PREG+3
- SBN CSNS
- ZJN CPU2.3 IF NOS SEGMENT
- SBN CSEI-CSNS
- ZJN CPU2.2 IF EI SEGMENT
- SBN CSVU-CSEI DETERMINE NOS/VE SYSTEM OR USER SEGMENT
- SHN 0-21
- LMN 1
- ADN 1
- CPU2.2 ADN CI18 SET 180 USAGE CATEGORY
- STD T1
- LJM CPU6 INCREMENT CPU COUNT
- * DETERMINE NOS CPU USAGE.
- CPU2.3 LDD T2 GET CPU CPA ADDRESS
- ADC CPAL
- CRD CM
- LDD CM+2
- ADN TFSW
- CRD CN
- SBN TFSW-JCIW
- CRD AB
- LDD CM+2
- SHN -7
- LMD NC
- NJN CPU2.4 IF CPU NOT ACTIVE AT SYSTEM CONTROL POINT
- LDD CM+1 GET EXCHANGE PACKAGE TYPE
- SHN -6
- SBN IDXT
- PJN CPU6 IF IDLE PACKAGE
- ADN IDXT+1
- RAD T1 SET INDEX FOR EXCHANGE PACKAGE
- UJN CPU6 INCREMENT CPU USAGE COUNT
- CPU2.4 LDN CISU INCREMENT CPU USAGE INDEX TO SUBSYSTEM
- RAD T1
- LDD AB+2
- LMN IRSI
- ZJN CPU3 IF ROLLOUT INHIBITED
- LMN IRSI
- ADC -LSSI
- MJN CPU4 IF NOT SUBSYSTEM
- CPU3 STD T3 INCREMENT SUBSYSTEM CPU USAGE
- ADO SSCU,T3
- UJN CPU6 INCREMENT USAGE COUNT
- CPU4 AOD T1 INCREMENT CPU USAGE INDEX
- SFA EJT,CN
- ADN SCLE-JSNE SET JOB ORIGIN TYPE
- CRD CN
- LDD CN
- LPN 17
- LMK SYOT
- ZJN CPU6 IF SYSTEM ORIGIN
- AOD T1 INCREMENT CPU USAGE INDEX
- CPU6 ADO CTCU,T1 INCREMENT CPU USAGE COUNT
- LJM CPU1 PROCESS NEXT CPU
- MRER EQU CPUX ERROR PROCESSOR ADDRESS FOR *COMPMRM*
- PCCC BSS 1 PROCESSOR A CONNECT CODE
- BSS 1 PROCESSOR B CONNECT CODE
- TCPS BSS 0 TABLE OF CPU STATUS (0=ON, 1=OFF)
- CON 0 CPU 0 ON/OFF FLAG
- CON 0 CPU 1 OF/OFF FLAG
- TCPSL EQU *-TCPS TABLE LENGTH
- PREG BSS 10 P REGISTER FROM MAINTENANCE UNIT
- TITLE RESIDENT SUBROUTINES.
- ADA SPACE 4,10
- ** ADA - ADD VALUE TO BUFFER.
- *
- * ENTRY (A) = OFFSET INTO BUFFER FOR DOUBLE PRECISION WORD.
- * (BA) = BUFFER BASE ADDRESS.
- * (T8) = VALUE TO ADD TO DOUBLE PRECISION WORD.
- *
- * USES T9.
- ADA SUBR ENTRY/EXIT
- ADD BA
- STD T9
- LDD T8 ADD VALUE TO BUFFER
- RAM 1,T9
- SHN -14
- RAI T9
- UJN ADAX RETURN
- CCA SPACE 4,10
- ** CCA - COMPUTE CPA/PCPA ADDRESS.
- *
- * ENTRY (A) = CP/PCP NUMBER.
- * (NC) = NUMBER OF CONTROL POINTS.
- *
- * EXIT (A) = CPA/PCPA ADDRESS.
- CCA1 ADD NC
- SHN 7
- CCA SUBR ENTRY/EXIT
- SBD NC
- MJN CCA1 IF CONTROL POINT
- ZJN CCA1 IF SYSTEM CONTROL POINT
- SHN 7
- CCAA ADC ** (PCP AREAS BASE ADDRESS)
- UJN CCAX RETURN
- CDS SPACE 4,10
- ** CDS - CHECK DROP STATUS.
- *
- * ENTRY (A) = 0 IF TRACK LIMIT.
- * (RC) = NUMBER OF RECORDS IN BUFFER.
- *
- * EXIT (A) = 0.
- * TO */3CS/DPP* IF PP TO BE DROPPED.
- *
- * USES CN, CM - CM+4.
- *
- * CALLS /3CR/SNO.
- *
- * MACROS EXECUTE.
- CDS SUBR ENTRY/EXIT
- STD CN
- LDC INWL CHECK *CPD* DROP FLAG
- CRD CM
- LDD CM+4
- LPN 4
- ZJN CDSX IF NO DROP OUT
- LDD CN
- ZJN CDS2 IF TRACK LIMIT
- RJM /3CR/SNO PERFORM SNAPSHOT OPERATION
- AOD RC ADVANCE RECORD COUNT
- EXECUTE 3CS LOAD FILE WRITE ROUTINES
- CDS1 LJM /3CS/DPP DROP PP
- CDS2 RJM /3CS/CIS CLEAR INTERLOCK STATUS
- UJN CDS1 DROP PP
- RDM SPACE 4,10
- ** RDM - READ MEMORY TO BUFFER.
- *
- * ENTRY (A) = 6/ WORD COUNT, 12/ BUFFER OFFSET.
- * (T8 - T9) = CM ADDRESS TO READ FROM.
- *
- * EXIT (A) = CM LWA+1 OF DATA READ.
- *
- * USES LA.
- RDM SUBR ENTRY/EXIT
- ADD BA CALCULATE BUFFER ADDRESS
- STM RDMA
- SHN -14
- STD LA SAVE WORD COUNT
- LDD T8
- SHN 14
- ADD T9
- CRM **,LA
- RDMA EQU *-1
- UJN RDMX RETURN
- SPACE 4,10
- * COMMON DECKS.
- EJT$ EQU 1 INITIALIZE EJT PROCESSING
- IFP$ EQU 1 ASSEMBLE REMOTE INITIALIZATION CODE
- QFT$ EQU 1 INITIALIZE QFT PROCESSING
- *CALL COMPGFP
- *CALL COMPMRA
- SPACE 4,10
- USE LITS FLUSH LITERALS
- USE *
- SPACE 4,10
- * CPD OVERLAY LOAD ADDRESS.
- COVL EQU *+5 CPD OVERLAY LOAD ADDRESS
- TITLE PRESET.
- QUAL PRS
- * OVERLAID PRESET COMMON DECKS AND PRESET CODE.
- *CALL COMPCUA
- QUAL
- IFP HERE
- QUAL *
- PRS SPACE 4,30
- ** PRS - PRESET.
- *
- * ENTRY (IR+3 - IR+4) = FET ADDRESS.
- *
- * EXIT (FO) = 0.
- * (FITS) = 0 IF FILE INTERLOCK NOT REQUIRED.
- * (FS - FS+4) = DATA FILE FST.
- * (LE) = LAST ORDINAL + 1 OF DEFINED EST ENTRIES.
- * (LO) .NE. 0.
- * (ME) = NUMBER OF MASS STORAGE ENTRIES.
- * (NC) = NUMBER OF CONTROL POINTS.
- * (NP) = NUMBER OF PPUS.
- * (PC) = PPU COMMUNICATION AREA ADDRESS.
- * (NM) = NUMBER OF MCT ENTRIES - 1.
- * (RX) = MAXIMUM RECORD COUNT IN BUFFER.
- * (WC) = DATA RECORD WORD COUNT.
- * MAIN CODE/TABLES MODIFIED AS NEEDED.
- * TO *CPD11* TO ENTER MAIN LOOP.
- *
- * ERROR TO *ERR* IF ERROR ENCOUNTERED.
- *
- * USES BA, FO, LI, LO, MD, MS, NC, NP, PC, SC, RC, RX, WC,
- * AB - AB+4, CM - CM+4, CN - CN+4, FS - FS+4, IR - IR+4,
- * T1 - T6.
- *
- * CALLS CPT, CRS, CUA, DFM, FAT, IFP, RCS, RDB, RJC, SAF,
- * SEI, SFB, *3CS*, /3CS/CIS, /3CS/DPB, /3CS/RNT,
- * /3CS/SIS, /3CS/WES.
- *
- * MACROS CFI, EXECUTE, MONITOR, SETMS, SFA, STA.
- PRS BSS 0 ENTRY
- LDK PCPP SET FWA OF PCPA-S
- CRD CM
- LDD CM+3
- SHN 14
- LMD CM+4
- SBK 200B
- STM CCAA+1
- SHN -14
- LMC ADCI
- STM CCAA
- RJM IFP
- LDN 0 CLEAR FNT ORDINAL POINTER
- STD FO
- RJM CUA CHECK USER ACCESS
- ZJN PRS2 IF ACCESS ALLOWED
- LDC ERRA&ERRF * CPD - USER ACCESS NOT VALID.*
- PRS1 LMC ERRF * CPD - OVERLAY NOT IN RPL.*
- LJM ERR ISSUE ERROR MESSAGE
- PRS2 LDC 3R3CR CHECK *3CR* IN RPL
- * LDC 3R3CS (CHECK *3CS* IN RPL)
- PRSA EQU *-1
- STD CM+3
- SHN -14
- STD CM+2
- MONITOR SPLM SEARCH LIBRARY DIRECTORY
- LDD CM+1
- SCN 77
- ZJN PRS1 IF OVERLAY NOT IN RPL
- AOM PRSA
- LPN 77
- SBN 1RS+1
- MJN PRS2 IF MORE OVERLAYS TO CHECK
- LDN 1 CLEAR *CPD* DROP FLAG
- STD CM+1
- STD CM+2
- LDD MA
- CWM PRSC,ON
- MONITOR UADM
- * CHECK PARAMETER BLOCK ADDRESS.
- LDD IR+3 CHECK PARAMETER ADDRESS
- LPN 37
- STD IR+3
- SHN 14
- LMD IR+4
- SBN 2
- MJN PRS3 IF ADDRESS .LT. 2
- ADN 2+FETL-1
- SHN -6
- SBD FL
- MJN PRS4 IF PARAMETER BLOCK WITHIN FL
- PRS3 LDC ERRB * CPD - PARAMETER ERROR.*
- LJM ERR ISSUE ERROR MESSAGE
- * GET LOOP PARAMETERS.
- PRS4 LDD IR+3 SET ARGUMENTS
- SHN 6
- ADD RA
- SHN 6
- ADD IR+4
- ADN 4 GET SAMPLE FILE OFFSET IN NFL
- CRD AB-1
- ERRNZ FO+1-AB CODE DEPENDS ON VALUE
- ADN 5-4
- CRD CM
- ADN 3
- CRD CN SET MODE
- LDD CN+4
- LMN PTAP
- ZJN PRS5 IF APPEND MODE REQUEST
- LMN PTMD&PTAP
- ZJN PRS5 IF MODIFY MODE
- LMN PTWR&PTMD
- NJN PRS3 IF NOT WRITE MODE
- STM FITS CLEAR INTERLOCK NEEDED
- PRS5 LDC HBUF SET HEADER BUFFER ADDRESS
- STD BA
- .1 MICRO 1,2, "VERS" SET CPD VERSION
- .2 MICRO 3,2, "VERS"
- LDC 2R".1"
- STM CPDV,BA
- LDC 2R".2"
- STM CPDV+1,BA
- LDD CM+4
- STA DLIL SET FAST LOOP TIME
- STM CPDB+0
- LDD CM+3
- STA DLML SET MEDIUM LOOP TIME
- STM CPDB+1
- LDD CM+2
- STA DLOL SET SLOW LOOP TIME
- STM CPDB+2
- LDD CM+1
- STA DLFW SET SAMPLING/FILE WRITE LOOP TIME
- STM CPDB+3
- LDD FO
- NJN PRS7 IF FILE FOUND
- LDC ERRD * CPD - FILE NOT FOUND.*
- UJN PRS8 ISSUE ERROR MESSAGE
- PRS7 NFA FO,R READ FST INFORMATION
- ADN FSTL
- CRD T5 SET DIRECT CELLS
- CRD FS
- LDD IR+2
- NJN PRS9 IF FNT SLOT RESERVED
- LDC ERRE * CPD - FILE STATUS ERROR.*
- PRS8 LJM ERR ISSUE ERROR MESSAGE
- PRS9 RJM SEI SEARCH FOR EOI
- LDD T6
- STD FS+2 SET CURRENT TRACK
- LDD T7
- STD FS+3
- * DETERMINE NUMBER OF CONTROL POINTS, NUMBER OF PPUS,
- * AND FWA OF CHANNEL TABLE.
- PRS10 LDN PPCP SET PPU COMMUNICATION AREA ADDRESS
- CRD CM
- LDD CM+4
- STD PC
- LDD CM+2 SET CURRENT USER EM SHIFT COUNT
- ERRNZ MEFL-PPCP
- SHN -11
- STA UESC
- LDC CHTP SET FWA OF CHANNEL TABLE
- CRD CM
- LDD CM+2
- RAM CHUA
- LDD CM+3
- STM CHUA+1
- LDN PPUL READ PP AND CHANNEL COUNT
- CRD CM
- ERRNZ PPUL-CPPL CODE ASSUMES NPP/CPP DATA IN SAME WORD
- ADK MCTP-CPPL GET NUMBER OF MCT ENTRIES
- CRD AB
- LDD CM+3 SET NUMBER OF PHYSICALLY PRESENT CPP-S
- LPN 77
- STD T0
- STA NCPP
- LDD T0 SET MAXIMUM CHANNEL FOR REQUEST/RESERVE
- RAM CHUB
- LDD CM+1 SET NUMBER OF CONTROL POINTS
- STA NCPT
- ADN 1
- STD NC
- SOD AB+2 SET NUMBER OF MCT ENTRIES - 1
- STD NM
- SBD NC SET NUMBER OF PCP-S
- STA NPCP
- LDD CM SET CHANNEL COUNT
- ADN 1
- RAM CHUC
- LDD CM+2 SET PP COUNT
- STD NP
- STD T1 CHECK INACTIVE PPS
- STD T2
- PRS11 SOD T2
- MJN PRS12 IF NO MORE PPS TO CHECK
- SHN 3
- ADD PC
- CRD AB
- LDD AB
- LMC 2R**
- NJN PRS11 IF NOT INACTIVE PP
- SOD T1 DECREMENT ACTIVE PP COUNT
- UJN PRS11 LOOP FOR NEXT PP
- PRS12 LDD T1 SET ACTIVE PP COUNT
- STA NNPP
- * SET CPU INFORMATION, MEMORY SIZES IN HEADER RECORD.
- LDC MABL READ MAINFRAME ATTRIBUTES
- CRD CM
- ADN EABL-MABL
- CRD CN
- LDD CM+4 ADJUST RANDOM DELAY FOR PP SPEED
- LPN 7
- STD T1
- SBN PRSDL
- PJN PRS13 IF INCORRECT VALUE
- LDM PRSD,T1
- STM CDAA
- PRS13 LDD CM+1 GET CPU 0 ON/OFF STATUS
- LPN 1
- STM TCPS BIT 0 SET IF CPU 0 OFF
- LDD CM+1 GET CPU 1 ON/OFF STATUS
- SHN -1
- LPN 1
- STM TCPS+1 BIT 0 SET IF CPU 1 OFF
- LMN 1
- ADN 1 SET NUMBER OF CPUS
- STA NCPU
- LDD CM+1 CHECK MAINFRAME TYPE
- STD T1
- SHN -6
- LPN 31
- ZJN PRS14 IF CYBER 170 AND NOT CYBER 176
- LDN CPUX-CPU7 DISABLE SCR PROCESSING
- RAM CPUA
- LDD CM+1
- SHN 21-13
- MJN PRS14 IF NOT CYBER 180
- LDC UJNI+CPU2.1 SET MAINTENANCE REGISTER PROCESSING
- STM CPUB
- LDD CN+3 SET PROCESSOR A CONNECT CODE
- STM PCCC
- LDD CN+4 SET PROCESSOR B CONNECT CODE
- STM PCCC+1
- PRS14 LDD CM+2 SET MACHINE MEMORY SIZE/100B
- LPN 77
- SHN 14
- ADD CM+3
- STA MEMS
- LDN CMRL SET CMR SIZE/100
- CRD CM
- LDD CM+4
- STA CMRS
- LDN ECRL SET USER EXTENDED MEMORY SIZE
- CRD CM
- LDD CM+1
- STA UECS
- LDC EPBP READ NUMBER OF EXTENDED MEMORY/PP BUFFERS
- CRD CM
- LDD CM+3
- SHN -6
- STA ECPB STORE IN HEADER
- LDC BIOL CHECK FOR BUFFERED I/O CHANNELS
- CRD CM
- LDD CM+2 SET BUFFERED I/O CONTROL TABLE ADDRESS
- RAM CBPA+1
- SHN -14
- ADD CM+1
- RAM CBPA
- LDD CM+1
- SHN 14
- LMD CM+2
- ZJN PRS15 IF NO BUFFERED I/O
- ADN CCTP READ CHANNEL TABLE POINTER WORD
- CRD CM
- ADN CBTP-CCTP READ CONTROL BUFFER POINTER WORD
- CRD AB
- LDD CM
- RAM CBCB SET NUMBER OF CHANNEL TABLES
- LDD CM+4 PRESET CHANNEL TABLE ADDRESS
- STM CBCA+1
- LDD CM+3
- RAM CBCA
- LDC CBC ENABLE BUFFERED I/O PROCESSING
- STM DCBC
- LDC CBP
- STM DCBP
- LDD AB SET BUFFER COUNT IN HEADER
- PRS15 STA TIOB
- * SET IAF/TELEX INFORMATION IN HEADER RECORD.
- LDN TTEQ FETCH *TT* EST ENTRY
- SFA EST
- ADK EQDE
- CRD CM
- LDD CM+4
- LPC 777
- STA TRMS
- * SET MASS STORAGE AND TAPE INFORMATION IN HEADER RECORD.
- LDN ESTP SET EST POINTER
- CRD T1
- LDN NOPE INITIALIZE EST ORDINAL FOR SEARCH
- STD T1
- LDN 0 INITIALIZE TAPE EQUIPMENT COUNTER
- STD T2
- STD T5
- STD ME INITIALIZE MS ENTRY COUNTER
- PRS16 SFA EST,T1 READ EST ENTRY
- ADK EQDE
- CRD CM
- LDD CM+3 SET EQUIPMENT STATUS
- LMC 2RMT
- ZJN PRS17 IF *MT*
- LMC 2RNT&2RMT
- ZJN PRS17 IF *NT*
- LMC 2RCT&2RNT
- ZJN PRS17 IF *CT*
- LMC 2RAT&2RCT
- NJN PRS18 IF NOT *AT*
- PRS17 AOD T2 INCREMENT TAPE EQUIPMENT COUNTER
- PRS18 LDD CM
- SHN 21-13
- PJN PRS19 IF NOT MASS STORAGE
- AOD ME COUNT MS ENTRY
- LDD T5
- NJN PRS19 IF MST FWA ALREADY SET
- LDD CM+4 SAVE MST FWA
- STD T5
- PRS19 AOD T1 ADVANCE EST ORDINAL
- LMD T3
- NJN PRS16 IF NOT END OF EST
- STD LO INDICATE PRESET PROCESSING
- LDD T2
- STA MTXS
- LDD T3 SET LAST ORDINAL + 1 OF EST
- STD LE
- STA ESTL
- LDD ME SET NUMBER OF MASS STORAGE EST ENTRIES
- STD T1
- STA MXMS
- LDD T5 SET FWA MST-S
- STM CDAB
- LDK HBUF+HFBL+MSUN SET MS DATA BUFFER ADDRESS
- STD VB
- LDK DFBL SET DATA RECORD LENGTH
- STD RX
- PRS20 LDD T5 GET MS DATA FROM MST
- SHN 3
- ADK TDGL
- CRD CM
- ADK DDLL-TDGL
- CRD AB
- LDD AB+4 SET UNIT NUMBER
- LPN 77
- STI VB
- LDD CM SET MS TRACK CAPACITY
- STM TRKC-MSUN,VB
- LDN HMBL ADVANCE TO NEXT MS DATA BLOCK
- RAD VB
- LDN MSTXL/10 ADVANCE TO NEXT MST
- RAD T5
- LDN DMBL CALCULATE DATA BLOCK LENGTH
- RAD RX
- SOD T1
- NJN PRS20 IF MORE MST-S TO SCAN
- LDN DSSL SET LIBDECK NUMBER
- CRD CM
- LDD CM+4
- STA LIBD
- LDC MMFL SET MACHINE ID
- CRD CM
- LDD CM
- STA MCID
- LDC MSAP SET MASS STORAGE ALLOCATION AREA
- CRD CM
- LDN P.MSAA/5
- ERRNZ P.MSAA/5*5-P.MSAA CODE DEPENDS ON SIZE
- STD T1
- LDD CM
- LPN 77
- SHN 14
- ADD CM+1
- CRM HBUF+MSAA,T1 READ DEVICE SELECTION INFORMATION
- LDN IPRL SET SECONDARY ROLLOUT THRESHOLD
- CRD CM
- LDD CM+1
- STA SROT
- * SET FNT, EJT, QFT, FOT, AND SERVICE CLASS FIXED BLOCK
- * INFORMATION IN HEADER RECORD.
- LDN FNTP READ FNT POINTER
- CRD CM
- LDD CM+2 SET NUMBER OF FNT ENTRIES
- STA MFNT
- LDN EJTP READ EJT POINTER
- CRD CM
- LDD CM+2 STORE NUMBER OF EJT ENTRIES
- STA MEJT
- LDN QFTP READ QFT POINTER
- CRD CM
- LDD CM+2 STORE NUMBER OF QFT ENTRIES
- STA MQFT
- LDC FOTP READ FOT POINTER
- CRD CM
- LDD CM+2 SET NUMBER OF FOT ENTRIES
- STA MFOT
- LDN ESTE SET LENGTH OF EST ENTRY
- STA ESTS
- LDN FNTE SET SIZE OF FNT ENTRY
- STA FNTS
- LDN EJTE SET LENGTH OF AN EJT ENTRY
- STA EJTS
- LDN QFTE SET LENGTH OF A QFT ENTRY
- STA QFTS
- LDN MXSC SET MAXIMUM NUMBER OF SERVICE CLASSES
- STA MXNS
- LDN MXJS SET MAXIMUM NUMBER OF JOB STATUSES
- STA MNJS
- LDN MXCS SET MAXIMUM NUMBER OF CONNECTION STATUSES
- STA MNCS
- * SET SYSTEM DELAY PARAMETERS IN HEADER RECORD.
- LDN MSCL SET RECALL AND SWITCH DELAYS
- CRD CM
- LDD CM+1 SET CPU RECALL DELAY
- STA CPUD
- LDD CM+2 SET PP AUTO RECALL DELAY
- STA PPRD
- LDD CM+4 SET MEMORY PAD SIZE
- STA MPSZ
- LDN JSCL SET JOB SCHEDULER CONTROL WORDS
- CRD CM
- LDD CM+1 SET INPUT FILE SCHEDULING INTERVAL
- STA ISCI
- LDD CM+2 SET SCHEDULER CYCLE INTERVAL
- STA SCIN
- * SET SYSTEM CONSTANTS IN HEADER RECORD.
- PRS22 LDN CTCUL SET SYSTEM CONSTANTS
- STA CON1
- LDN 5*CTALL
- STA CON2
- LDN MXOT
- STA CON3
- LDN MXFT
- STA CON7
- LDN MXRS
- STA CON8
- LDN 10
- STD T1
- LDN TIML READ SYSTEM TIME/DATE/VERSION
- CRM HBUF+TIME,T1
- ERRNZ DTEL-TIML-1 CODE DEPENDS ON LOCATION
- ERRNZ SYTL-DTEL-1 CODE DEPENDS ON LOCATION
- ERRNZ SVNL-SYTL-4 CODE DEPENDS ON LOCATION
- ERRNZ DATE-TIME-5 CODE DEPENDS ON LOCATION
- ERRNZ SYSV-DATE-5 CODE DEPENDS ON LOCATION
- ERRNZ P.SYSV-6*5 CODE DEPENDS ON SIZE
- * CALCULATE SIZE OF HEADER RECORD.
- LDN 0
- STD AB+4
- STD MS
- LDD VB CALCULATE LENGTH OF DATA IN BUFFER
- ADC -HBUF
- STD SC
- PRS23 AOD MS CALCULATE WORDS OF DATA IN BUFFER
- LCN 5
- RAD SC
- SBN 5
- PJN PRS23 IF MORE WORDS IN BUFFER
- LDN P.ESTB/5 CALCULATE WORDS IN EST BLOCK
- ERRNZ P.ESTB/5*5-P.ESTB BLOCK LENGTH ERROR
- STD T1
- PRS24 LDD LE CALCULATE NUMBER OF EST WORDS
- RAD AB+4
- SOD T1
- NJN PRS24 IF MORE WORDS IN EST ENTRY
- LDK P.JCBA/5 NUMBER OF JOB CONTROL BLOCK WORDS
- ERRNZ P.JCBA/5*5-P.JCBA BLOCK LENGTH ERROR
- STD LI
- ADD AB+4
- ADD MS
- STD WC SET HEADER RECORD WORD COUNT
- LDN 1 SET RECORD COUNT
- STD RC
- LDD SC
- ZJN PRS25 IF NO LEFT OVER BYTES
- AOD WC ADJUST FOR PARTIAL WORD
- PRS25 NFA FO,R
- CRD CN RETRIEVE SAMPLE FILE NAME
- LDD FO
- STD CM+4
- LDN DLFS CLEAR LOCAL FNT ENTRY
- STD CM+1
- MONITOR PLFM
- SFA FNT,IR+2 ENTER DATA IN SYSTEM FNT
- CWD CN
- ADN FSTG
- CWD FS
- * SET JOB CONTROL BLOCK AND EST INFORMATION IN HEADER
- * RECORD AND PROCESS HEADER SECTOR WRITES AS NEEDED.
- P3CS EQU * *3CR* LWA+1 LIMIT
- EXECUTE 3CS LOAD WRITE ROUTINES
- RJM /3CS/SIS SET FILE INTERLOCK
- SETMS IO,(NS),HBUF-4
- RJM /3CS/RNT REQUEST TRACKS FOR HEADER RECORD
- LDN 1
- RJM RJC GET FWA JOB CONTROL BLOCKS
- RJM RDB READ DATA INTO HEADER BUFFER
- LDD AB+4 SET EST BLOCK LENGTH
- STD LI
- LDN 0
- SFA EST GET FWA EST
- RJM RDB READ EST DATA INTO HEADER BUFFER
- LDD WC DUMP REMAINING WORDS TO FILE
- RJM /3CS/DPB
- LDC HBUF+FSEI FORCE *WES* TO USE HEADER BUFFER
- STM /3CS/WESA
- LDC HBUF
- STM /3CS/WESB
- RJM /3CS/WES WRITE EOI SECTOR
- RJM /3CS/CIS CLEAR FILE INTERLOCK
- * MOVE PPU TO SYSTEM CONTROL POINT.
- RJM CRS CHECK RECALL STATUS
- ZJN PRS26 IF AUTO RECALL NOT SET
- LDN ZERL CLEAR (SYSTEM REQUEST)
- CRD CM
- LDD RA
- SHN 6
- ADN 1
- CWD CM
- MONITOR RCPM RESTART CPU
- PRS26 LDD NC
- STD CM+1
- MONITOR CCAM CHANGE TO SYSTEM CONTROL POINT
- LDD IA RESET INPUT REGISTER
- CRD IR
- LDC PRSB * CPD - INITIATED.*
- RJM DFM
- LDN 0 ENTER INITIATION EVENT
- STD CM+1
- LDC /EVENT/CPIE
- STD CM+4
- SHN -14
- STD CM+3
- MONITOR EATM
- * LDN 0
- STD WC
- PRS27 AOD WC SET DATA RECORD ROUNDED WORD COUNT
- LCN 5
- RAD RX
- SBN 1
- PJN PRS27 IF MORE BYTES IN RECORD
- LDN 0 CALCULATE MAXIMUM DATA RECORDS IN BUFFER
- STD RX
- LDK BUFFLW
- SBD WC
- PRS28 STD T1
- AOD RX INCREMENT RECORD COUNT
- LDD T1
- SBD WC
- PJN PRS28 IF MORE ROOM IN BUFFER
- LJM CPD11 ENTER CPD MAIN LOOP
- PRSB DATA C* CPD - INITIATED.*
- PRSC CON LDOS DECREMENT LOW CORE FIELD BY ONE
- CON INWL WORD ADDRESS
- CON 2*100+1 BIT ADDRESS/FIELD WIDTH
- CON 0,0
- PRSD BSS 0 TABLE OF FAST LOOP DELAY RANGES
- CON 777 1X PP SPEED
- CON 1777 2X PP SPEED
- CON 3777 4X PP SPEED
- PRSDL EQU *-PRSD
- ERR SPACE 4,10
- ** ERR - PROCESS PRESET ERROR.
- *
- * ENTRY (A) = ERROR MESSAGE ADDRESS.
- *
- * EXIT TO *PPR*.
- *
- * CALLS DFM.
- *
- * MACROS MONITOR.
- ERR BSS 0 ENTRY
- RJM DFM ISSUE ERROR MESSAGE
- LDD IR+2
- ZJN ERR1 IF NO RESERVED SLOT IN SYSTEM FNT
- STD CM+1
- LDN PFNT RELEASE RESERVED ENTRY
- STD CM+2
- MONITOR MTRM
- ERR1 MONITOR ABTM
- LJM PPR RETURN TO PP RESIDENT
- ERRA DATA C* CPD - USER ACCESS NOT VALID.*
- ERRB DATA C* CPD - PARAMETER ERROR.*
- ERRC DATA C* CPD - ALREADY ACTIVE.*
- ERRD DATA C* CPD - FILE NOT FOUND.*
- ERRE DATA C* CPD - FILE STATUS ERROR.*
- ERRF DATA C* CPD - OVERLAY NOT IN RPL.*
- RDB SPACE 4,20
- ** RDB - READ DATA INTO BUFFER.
- *
- * ENTRY (A) = CM ADDRESS TO READ DATA FROM.
- * (BA) = HEADER BUFFER BASE ADDRESS.
- * (LI) = WORD COUNT TO READ FROM CM.
- * (MS) = NUMBER OF DATA WORDS IN BUFFER.
- * (SC) = NUMBER OF EXCESS DATA BYTES IN BUFFER.
- * (VB) = FWA TO READ DATA TO IN PP.
- * (WC) = REMAINING WORD COUNT OF HEADER RECORD.
- *
- * EXIT (BA) = HEADER BUFFER BASE ADDRESS.
- * (MS) = UPDATED NUMBER OF DATA WORDS IN BUFFER.
- * (VB) = LWA+1 OF DATA IN BUFFER.
- * (WC) = REMAINING WORD COUNT OF HEADER RECORD.
- *
- * USES LI, T1, AB - AB+2.
- *
- * CALLS RWB, /3CS/DPB.
- RDB3 LDD LI READ WORDS TO BUFFER
- RJM RWB
- RDB SUBR ENTRY/EXIT
- STD AB+1 SAVE CM ADDRESS TO READ FROM
- SHN -14
- STD AB
- RDB1 LDK NWHB CALCULATE WORDS REMAINING IN BUFFER
- SBD MS
- STD AB+2
- SBD LI WORD COUNT TO READ FROM CM
- PJN RDB3 IF SUFFICIENT ROOM IN BUFFER
- LDD AB+2 FILL HEADER BUFFER
- RJM RWB
- LDD LI CALCULATE WORDS LEFT TO READ
- SBD AB+2
- STD LI
- LDC NWHB+10000 DUMP HEADER BUFFER
- RJM /3CS/DPB
- LDK HBUF RESET HEADER BUFFER BASE ADDRESS
- STD BA
- STD VB
- LDD WC DECREMENT WORDS REMAINING IN RECORD
- SBD MS
- STD WC
- LDN 0 INITIALIZE BUFFER WORD COUNT
- STD MS
- LDD SC MOVE EXCESS BYTES TO START OF BUFFER
- STD T1
- RAD VB
- RDB2 SOD T1
- MJN RDB1 IF END OF EXCESS BYTES
- LDM HBUF+HBUFL,T1
- STM HBUF,T1
- UJN RDB2 LOOP FOR NEXT BYTE
- RWB SPACE 4,15
- ** RWB - READ WORDS TO BUFFER.
- *
- * ENTRY (A) = NUMBER OF WORDS TO READ.
- * (AB - AB+1) = CM ADDRESS OF DATA.
- * (MS) = NUMBER OF DATA WORDS IN BUFFER.
- * (VB) = FWA TO READ DATA TO IN PP.
- *
- * EXIT (AB - AB+1) = LWA+1 DATA IN CM.
- * (MS) = UPDATED NUMBER OF DATA WORDS IN BUFFER.
- * (VB) = LWA+1 DATA IN BUFFER.
- *
- * USES T1.
- RWB SUBR ENTRY/EXIT
- ZJN RWBX IF NO WORDS TO READ
- STD T1
- RAD MS UPDATE NUMBER OF DATA WORDS IN BUFFER
- LDD VB SET PP BUFFER ADDRESS FOR READ
- STM RWBA
- LDD AB GET CM ADDRESS OF DATA
- SHN 14
- ADD AB+1
- CRM **,T1
- RWBA EQU *-1
- STD AB+1 SAVE UPDATED CM ADDRESS
- SHN -14
- STD AB
- LDD T1 ADVANCE PP BUFFER LWA+1
- SHN 2
- ADD T1
- RAD VB
- UJN RWBX RETURN
- SPACE 4,10
- CFNT
- SPACE 4,10
- * COMMON DECKS.
- *CALL COMPCRS
- *CALL COMPRJC
- *CALL COMPSEI
- SPACE 4,10
- USE LITS FLUSH LITERALS
- USE *
- TITLE HEADER RECORD BUFFER ALLOCATION.
- HBUF SPACE 4,10
- ** HEADER RECORD BUFFER ALLOCATION.
- BSS 4 HEADER BYTES FOR SECTOR AND FOR READ-BACK
- HBUF EQU * HEADER RECORD BUFFER
- RHBS EQU EPFW-4-HBUF REMAINING HEADER BUFFER SPACE
- NHSC EQU RHBS/500B NUMBER OF SECTORS IN HEADER BUFFER
- NWHB EQU NHSC*100B NUMBER OF WORDS IN HEADER BUFFER
- HBUFL EQU NHSC*500B LENGTH OF HEADER BUFFER IN BYTES
- HMNL EQU HFBL+MSMX*HMBL MINIMUM HEADER LENGTH
- ERRNG HBUFL-HMNL SECTOR SPACE OVERFLOWED
- QUAL *
- TTL 3CR - CPD OVERLAID LOOP OPERATIONS.
- TITLE
- QUAL 3CR
- IDENT 3CR,PLOX CPD OVERLAID LOOP OPERATIONS
- ORG COVL
- *COMMENT 3CR - CPD OVERLAID LOOP OPERATIONS.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- PMR SPACE 4,10
- ** PLO - PRESET *CPD* OVERLAID LOOP OPERATIONS.
- PLO SUBR ENTRY/EXIT
- UJN PLOX RETURN
- TITLE LOOP OPERATION ROUTINES.
- ACA SPACE 4,10
- ** ACA - ACCUMULATE CP AND PCP ACTIVITY.
- *
- * ENTRY (NC) = NUMBER OF CONTROL POINTS.
- * (NM) = NUMBER OF MCT ENTRIES - 1.
- *
- * EXIT CONTROL POINT ACTIVITY UPDATED.
- *
- * USES AB - AB+4, CM - CM+4, CN - CN+4, T1 - T7.
- *
- * CALLS CCA.
- *
- * MACROS ADA, SFA.
- ACA6 LDN ACML+AECL*0 SET AVAILABLE CENTRAL MEMORY
- CRD CM
- LDD CM ACCUMULATE AVAILABLE CM
- SHN 14
- LMD CM+1
- ADA MMAV
- LDD CM+3 ACCUMULATE AVAILABLE USER EM
- ADA ECAV
- ACA SUBR ENTRY/EXIT
- LDD NM SET NUMBER OF MCT ENTRIES - 1
- STD T1
- * SAMPLE CONTROL POINT ACTIVITY.
- ACA1 SOD T1
- ZJN ACA6 IF ALL CONTROL POINTS PROCESSED
- RJM CCA SET CP/PCP ADDRESS
- ADK TFSW CHECK FOR JOB ASSIGNMENT TO CP/PCP
- CRD CM
- LDD CM
- ZJN ACA1 IF JOB NOT ASSIGNED
- SFA EJT
- ADN SCLE-JSNE GET SERVICE CLASS
- CRD CN
- LDD CN
- SHN -6
- STD T2
- LDD T1 SET CP/PCP ADDRESS
- RJM CCA
- ADK STSW GET JOB STATUS WORD
- CRD CN
- ADN FLSW-STSW SET FIELD LENGTH
- CRD T3
- ADN ECSW-FLSW SET EXTENDED MEMORY WORD
- CRD AB
- ADN JCIW-ECSW SET JOB CONTROL WORD
- CRD CM
- SOD T2
- MJN ACA1.1 IF RESERVED SERVICE CLASS
- SBN MXJC-1
- PJN ACA1.1 IF NO JOB CONTROL BLOCK
- LDD NC
- SBD T1
- PJN ACA1.2 IF CONTROL POINT
- LDD T3+4 ACCUMULATE CM FL BY SERVICE CLASS
- ADD T3 ADD NFL SPACE
- ADA MPCP,T2
- LDD AB+4 ACCUMULATE EM FL BY SERVICE CLASS
- ADA ECPC,T2
- ACA1.1 UJN ACA2 CONTINUE
- ACA1.2 LDD T3+4 ACCUMULATE CM FL BY SERVICE CLASS
- ADD T3 ADD NFL SPACE
- ADA MMCP,T2
- LDD AB+4 ACCUMULATE ECS FL BY SERVICE CLASS
- ADA ECCP,T2
- ACA2 LDD CM+2 CHECK SUBSYSTEM ID
- SBN IRSI
- ZJN ACA3 IF ROLLOUT INHIBITED
- ADC -LSSI+IRSI
- MJN ACA4 IF NOT SUBSYSTEM
- ACA3 STD T2
- LDD T3+4 ACCUMULATE MEMORY FOR SUBSYSTEMS
- ADD T3 ADD NFL SPACE
- ADA SMCP,T2
- ACA4 LDD CN CHECK CONTROL POINT STATUS
- SHN -11
- SBN WCPS
- MJN ACA5 IF NOT *W*, *X*, OR *I* STATUS
- ADD BA
- STD T2
- AOM WSCP,T2 INCREMENT CONTROL POINT STATUS COUNT
- ACA5 LJM ACA1 PROCESS NEXT CONTROL POINT
- ERRNZ ACML-AECL PARAMETER CALCULATION ERROR
- ERRNZ XSCP-WSCP-1 OFFSET ERROR
- ERRNZ ARCP-WSCP-2 OFFSET ERROR
- ERRNZ XCPS-WCPS-1 OFFSET ERROR
- ERRNZ ICPS-WCPS-2 OFFSET ERROR
- ERRNZ P.ARCP-1 OFFSET ERROR
- ACP SPACE 4,10
- ** ACP - ACCUMULATE CONCURRENT PP ACTIVITY.
- *
- * EXIT *CTCP* AND *NCPA* FIELDS INCREMENTED IF NECESSARY.
- *
- * USES T0, CM - CM+4.
- *
- * NOTE CODE ASSUMES ACTIVE = PHYSICAL - AVAILABLE.
- ACP SUBR ENTRY/EXIT
- LDN CPPL CHECK CPP CONFIGURATION
- CRD CM
- LDD CM+3
- LPN 77
- ZJN ACPX IF NO CONCURRENT PP-S ON SYSTEM
- STD T0
- LDN PPAL CHECK NUMBER OF AVAILABLE CPP-S
- CRD CM
- LDD CM+3
- LPN 77
- STD CM+3
- NJN ACP1 IF CPP(S) AVAILABLE
- ADO NCPA INCREMENT *NO CPP AVAILABLE* COUNTER
- ACP1 LDD T0
- SBD CM+3
- ADA CTCP INCREMENT *ACTIVE CPP-S* COUNTER
- UJN ACPX RETURN
- AEA SPACE 4,10
- ** AEA - ACCUMULATE EST ACTIVITY.
- *
- * ENTRY (BA) = BUFFER BASE ADDRESS OF CURRENT RECORD.
- * (LE) = LAST ORDINAL + 1 OF DEFINED EST ENTRIES.
- *
- * EXIT EST ACTIVITY UPDATED.
- *
- * USES T1, T2, VB, CM - CM+4, CN - CN+4.
- *
- * MACROS ADO, SFA.
- AEA SUBR ENTRY/EXIT
- LDD BA SET MASS STORAGE TRACK ENTRY FWA
- ADK DFBL+TRES
- STD VB
- LDN NOPE SET FIRST EST ORDINAL
- STD T1
- * SAMPLE EQUIPMENT STATUS.
- AEA1 SFA EST,T1 READ MST ENTRY
- ADK EQDE
- CRD CM
- ADK EQAE-EQDE
- CRD CN
- LDD CM CHECK MASS STORAGE
- SHN 21-13
- PJN AEA3 IF NOT MASS STORAGE
- LDD CM+4
- SHN 3
- ADK TDGL
- CRD CM
- LDD CM+4 ACCUMULATE AVAILABLE TRACKS
- RAM 1,VB
- SHN -14
- RAI VB
- ERRNZ P.TRES-2 CODE DEPENDS ON SIZE
- LDN DMBL
- RAD VB ADVANCE TO NEXT MS TRACK ENTRY
- AEA2 AOD T1 INCREMENT EST ORDINAL
- LMD LE CHECK END OF DEFINED EST ENTRIES
- NJN AEA1 IF EST NOT COMPLETE
- UJN AEAX RETURN
- AEA3 LDD CN+4
- ZJN AEA2 IF NOT ASSIGNED
- LDD CM
- LPN 2
- NJN AEA2 IF DEVICE IS DOWN OR OFF
- LDD CM+3 GET DEVICE TYPE
- LMC 2RMT
- ZJN AEA4 IF *MT*
- LMC 2RCT&2RMT
- ZJN AEA3.2 IF *CT*
- LMC 2RNT&2RCT
- ZJN AEA3.1 IF *NT*
- LMC 2RAT&2RNT
- NJN AEA2 IF NOT *AT*
- LDN 1
- AEA3.1 ADN 1
- AEA3.2 ADN 1
- AEA4 STD T2 SET TAPE DEVICE TYPE
- ADO DRES,T2 INCREMENT TAPE DRIVES IN USE
- UJN AEA2 LOOP
- AIA SPACE 4,10
- ** AIA - ACCUMULATE IAF ACTIVITY.
- *
- * EXIT IAF ACTIVITY UPDATED.
- *
- * USES T1, AB - AB+4, CM - CM+4, CN - CN+4.
- *
- * CALLS PIR, RRR, SRR.
- *
- * MACROS ADA.
- AIA SUBR ENTRY/EXIT
- LDC /IAF/VCPT*1S7 CHECK IAF CONTROL POINT
- ADN JCIW
- CRD CM
- LDD CM+2
- LMC IFSI
- NJN AIAX IF IAF NOT PRESENT
- RJM PIR PRESET WITH IAF R-REGISTER
- RJM SRR SET IAF R-REGISTER
- LDD TA SET IAF RA
- SHN 6
- ADN /IAF/VANL SET NUMBER OF ACTIVE USERS
- CRD AB
- ADN /IAF/VPAL-/IAF/VANL SET POT CONTROL WORDS
- CRD CN
- ADN /IAF/VPUL-/IAF/VPAL
- CRD CM
- RJM RRR RESTORE R-REGISTER
- LDD AB+4 ACCUMULATE ACTIVE USER COUNT
- ADA ANTX
- LDD CN+4 ACCUMULATE POTS ALLOCATED
- ADA PATX
- LDD CM+4 ACCUMULATE POTS IN USE
- ADA PUTX
- LJM AIAX RETURN
- CMR SPACE 4,10
- ** CMR - CHECK STORAGE MOVE REQUEST.
- *
- * ENTRY (LI) = OPERATION LOOP INDEX.
- *
- * EXIT STORAGE MOVE REQUEST ACTIVITY UPDATED.
- *
- * USES T1, CM - CM+4.
- *
- * MACROS ADO.
- CMR3 ADO SMRP INCREMENT STORAGE MOVE REQUEST PENDING
- CMR SUBR ENTRY/EXIT
- LDN CMCL CHECK STORAGE MOVE REQUEST
- CRD CM
- LDD CM
- LMC 7777
- ZJN CMR2 IF NO STORAGE MOVE REQUEST PENDING
- LDD LI CHECK OPERATION LOOP INDEX
- ZJN CMR3 IF FAST LOOP OPERATION
- LDN 0 SET INITIAL OFFSET
- STD T1
- CMR1 LDM LSMR,T1 COMPARE MOVE REQUESTS
- LMM CM,T1
- NJN CMR2 IF NOT EQUAL
- AOD T1 INCREMENT OFFSET
- LMN 5
- NJN CMR1 IF COMPARE NOT COMPLETE
- ADO SSMP INCREMENT SAME STORAGE MOVE PENDING
- CMR2 LDD LI CHECK OPERATION LOOP INDEX
- ZJN CMRX IF FAST LOOP OPERATION
- LDD MA SET LAST MOVE REQUEST
- CWD CM
- CRM LSMR,ON
- UJN CMRX RETURN
- LSMR BSSZ 5 LAST STORAGE MOVE REQUEST BUFFER
- PPU SPACE 4,10
- ** PPU - PP USAGE.
- *
- * ENTRY (NP) = NUMBER OF PP-S AVAILABLE.
- *
- * EXIT PP USAGE UPDATED.
- *
- * USES CM - CM+4.
- *
- * MACROS ADA, ADO.
- PPU SUBR ENTRY/EXIT
- LDN PPAL READ AVAILABLE PP-S
- CRD CM
- LDD NP ACCUMULATE PP USAGE
- SBD CM+4
- ADA CTPP
- LDC PQRL READ PP QUEUE POINTER
- CRD CM
- LDD CM+4
- ZJN PPU3 IF NO PP-S QUEUED
- ADO NPAV INCREMENT NO PP AVAILABLE COUNT
- PPU3 LDN JSCL
- CRD CM
- LDD CM
- SHN 21-13
- PJN PPU4 IF JOB SCHEDULER NOT ACTIVE
- ADO NSJA INCREMENT JOB SCHEDULER ACTIVE COUNT
- PPU4 LDC SDAP READ *MTR* DATA
- CRD CM
- LDD CM
- SHN 14
- ADD CM+1
- ADN MTRS
- CRD CM
- LDD CM+4 ACCUMULATE *MTR* CYCLE TIME
- ADA MTCT
- LJM PPUX RETURN
- SAA SPACE 4,10
- ** SAA - SET EXCHANGE PACKAGE CPU ACCUMULATOR ADDRESS.
- *
- * ENTRY (A) = SYSTEM CONTROL POINT EXCHANGE PACKAGE TYPE.
- * (AB+3 - AB+4) = *CPUMTR* SYSTEM CONTROL POINT EXCHANGE
- * PACKAGE TABLE POINTER.
- *
- * EXIT (A) = ADDRESS OF EXCHANGE PACKAGE CPU ACCUMULATOR.
- * (A) = 0 IF EXCHANGE PACKAGE NOT IN USE.
- *
- * USES (CN - CN+4).
- SAA SUBR ENTRY/EXIT
- STD CN SAVE INDEX
- LDD AB+3 SET EXCHANGE PACKAGE TABLE ADDRESS
- SHN 14
- ADD AB+4
- ADD CN SET ENTRY ADDRESS
- CRD CN READ TABLE ENTRY
- LDD CN+3 SET EXCHANGE PACKAGE ADDRESS
- LPN 77
- SHN 14
- ADD CN+4
- ADN CTMW SET ACCUMULATOR ADDRESS
- UJN SAAX RETURN
- SNO SPACE 4,10
- ** SNO - SNAPSHOT LOOP OPERATIONS
- *
- * EXIT SNAPSHOT LOOP VARIABLES UPDATED.
- *
- * USES AB - AB+4, CM - CM+4.
- *
- * CALLS SAA.
- *
- * MACROS RDM.
- SNO SUBR ENTRY/EXIT
- LDN INSL SAMPLE INSTALLATION AREA
- RDM INSA
- LDN PDTL GET PACKED DATE AND TIME
- RDM PDTM
- ADN RTCL-PDTL-P.PDTM/5 SAMPLE REAL TIME CLOCK
- RDM RLTM
- LDC SDAP SAMPLE STATISTICAL DATA AREA
- CRD CM
- LDD CM
- SHN 14
- ADD CM+1
- RDM SDAA
- LDD NC SAMPLE PROGRAM MODE CPUMTR TIME
- SHN 7
- ADN CPTW
- RDM PGTM
- LDC CMTP GET *CPUMTR* FWA
- CRD AB
- LDD AB+3
- SHN 14
- ADD AB+4
- ADN CSXP EXCHANGE PACKAGE TABLE POINTER
- CRD AB
- LDN SMXT SET STORAGE MOVE ACCUMULATOR ADDRESS
- RJM SAA
- RDM SMTM SET STORAGE MOVE TIME
- LDM DCBP
- ZJN SNO1 IF BUFFERED I/O NOT CONFIGURED
- LDN PSXT SET PSEUDO-PP ACCUMULATOR ADDRESS
- RJM SAA
- RDM PSTM SET PSEUDO-PP TIME
- SNO1 LDM TCPS
- ZJN SNO2 IF CPU 0 *ON*
- LDN MIXT SET MAIN IDLE PACKAGE ACCUMULATOR ADDRESS
- UJN SNO3 READ CPU 1 IDLE TIME
- SNO2 LDN MIXT SET MAIN IDLE PACKAGE ACCUMULATOR ADDRESS
- RJM SAA
- RDM I0TM SET CPU 0 IDLE TIME
- LDM TCPS+1
- NJN SNO4 IF CPU 1 *OFF*
- LDN DIXT SET CPU 1 IDLE PACKAGE ACCUMULATOR ADDRESS
- SNO3 RJM SAA
- RDM I1TM SET CPU 1 IDLE TIME
- SNO4 LJM SNOX RETURN
- UEA SPACE 4,10
- ** UEA - UPDATE EJT ENTRY.
- *
- * ENTRY (BA) = BUFFER BASE ADDRESS OF CURRENT RECORD.
- *
- * EXIT EJT ACTIVITY UPDATED.
- *
- * USES CM+2, AB - AB+4, CN - CN+4, T1 - T5.
- *
- * MACROS ADA, ADO, SFA.
- UEA SUBR ENTRY EXIT
- LDN EJTP READ EJT POINTER
- CRD CM
- UJN UEA2 ACCESS EJT
- * SEARCH EJT TO DETERMINE JOB STATUS BY SERVICE CLASS.
- UEA1 SOD CM+2 DECREMENT EJT ORDINAL
- ZJN UEAX IF NO MORE ENTRIES
- UEA2 SFA EJT,CM+2 ACCESS EJT ENTRY
- CRD CN GET JOB STATUS
- ADN SCHE-JSNE GET SCHEDULER FIELD
- CRD AB
- ADN SCLE-SCHE GET SERVICE CLASS
- CRD T1
- LDD CN
- ZJN UEA1 IF FREE ENTRY
- LDD T1
- SHN -6
- SBN 1
- STD T1
- MJN UEA1 IF RESERVED SERVICE CLASS
- SBN MXJC-1
- PJN UEA1 IF NO JOB CONTROL BLOCK
- ADO EJTU INCREMENT ENTRIES IN USE
- LDD CN+4 GET JOB STATUS
- SHN -1
- LPN 37
- STD T2 (T2) = JOB STATUS
- LMN EXJS
- ZJN UEA3 IF JOB EXECUTING
- LMK PCJS&EXJS
- ZJN UEA3 IF JOB AT PCP
- * DETERMINE MEMORY IN ROLLOUT QUEUE.
- LDD T5 INCREMENT FL ASSIGNED TO JOB
- ADA MMRQ,T1
- LDD T4 INCREMENT EXTENDED MEMORY ROLLOUT QUEUE
- ADA ECRQ,T1
- * INCREMENT JOB STATUS ACTIVITY BY SERVICE CLASS.
- UEA3 LDN MXJC-1 CALCULATE JOB STATUS*(MXJC-1)
- STD T3
- LDN 0
- STD T4
- UEA4 LDD T2
- RAD T4
- SOD T3
- NJN UEA4 IF NOT COMPLETE
- LDD T4
- ADD T1 ADD JOB CLASS OFFSET
- ADD BA ADD BUFFER BASE ADDRESS
- STD T2
- AOM JSSC,T2 INCREMENT JOB STATUS BY SERVICE CLASS
- ERRNZ P.JSSC-1 CODE DEPENDS ON SIZE
- * DETERMINE NUMBER OF NON-INTERACTIVE, ON-LINE, OR
- * DETACHED INTERACTIVE JOBS.
- LDD CN+4 GET CONNECTION STATUS
- SHN -7
- LPN 17
- STD T1 (T1) = CONNECTION STATUS
- ADO JBCS,T1 INCREMENT CONNECTION STATUS
- LJM UEA1 PROCESS NEXT EJT ENTRY
- UQA SPACE 4,10
- ** UQA - UPDATE QFT ACTIVITY.
- *
- * ENTRY (BA) = BUFFER BASE ADDRESS OF CURRENT RECORD.
- *
- * EXIT QFT ACTIVITY UPDATED.
- *
- * USES CM+2, CN - CN+4, T1 - T5.
- *
- * MACROS ADO, SFA.
- UQA SUBR ENTRY/EXIT
- LDN QFTP READ QFT POINTER
- CRD CM
- UJN UQA3 ACCESS QFT
- * SEARCH QFT TO DETERMINE QUEUE TYPES.
- UQA1 ADO QACP INCREMENT FILES ASSIGNED TO CP
- UQA2 SOD CM+2 DECREMENT QFT ORDINAL
- ZJN UQAX IF NO MORE ENTRIES
- UQA3 SFA QFT,CM+2 ACCESS QFT ENTRY
- CRD CN
- ADN SCLQ-JSNQ GET SERVICE CLASS
- CRD T1
- LDD CN
- ZJN UQA2 IF FREE ENTRY
- LDD T1
- SHN -6
- STD T1
- ZJN UQA2 IF RESERVED SERVICE CLASS
- SBN MXJC
- PJN UQA2 IF NO JOB CONTROL BLOCK
- ADO QFTU INCREMENT ENTRIES IN USE
- SOD T1
- LDD CN+4
- LPN 2
- NJN UQA1 IF JOB ASSIGNED TO CP
- LDD CN+4
- SHN -11
- LMK INQT
- ZJN UQA6 IF INPUT QUEUE FILE TYPE
- LMN PRQT&INQT
- ZJN UQA5 IF PRINT QUEUE FILE TYPE
- LMN PHQT&PRQT
- ZJN UQA4 IF PUNCH QUEUE FILE TYPE
- LDN QNCP-PFSC
- UQA4 ADN PFSC-LPSC
- UQA5 ADN LPSC-IFSC
- UQA6 ADD BA CALCULATE ADDRESS OF QUEUE ENTRY
- RAD T1
- AOM IFSC,T1 INCREMENT QUEUE COUNT FOR SERVICE CLASS
- LJM UQA2 LOOP
- SPACE 4,10
- ** COMMON DECKS.
- QUAL
- PIR$ EQU 1 SELECT ASSEMBLY OF *PIR* FOR IAF R-REG
- VCPT EQU /IAF/VCPT DEFINE CONTROL POINT FOR *COMPSRR*
- QUAL *
- *CALL COMPSRR
- ERRNZ P.IFSC-1 CODE DEPENDS ON SIZE
- ERRNZ P.LPSC-1 CODE DEPENDS ON SIZE
- ERRNZ P.PFSC-1 CODE DEPENDS ON SIZE
- ERRNZ P.QNCP-1 CODE DEPENDS ON SIZE
- SPACE 4,10
- USE LITS FLUSH LITERALS
- USE *
- QUAL *
- R3CR EQU *+4-COVL ROUND LENGTH OF *3CR*
- L3CR EQU R3CR/5*5 LENGTH OF *3CR*
- TTL 3CS - CPD FILE WRITE OPERATIONS.
- TITLE
- QUAL 3CS
- IDENT 3CS,PFWX CPD FILE WRITE OPERATIONS
- ORG COVL
- *COMMENT 3CS - CPD FILE WRITE OPERATIONS.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- PFW SPACE 4,10
- ** PFW - PRESET CPD FILE WRITE OPERATIONS.
- *
- * ENTRY (LO) = 0 IF CALLED FROM PRESET.
- *
- * CALLS FWO.
- PFW SUBR ENTRY/EXIT
- LDD LO
- ZJN PFWX IF OVERLAY LOAD BY PRESET
- RJM FWO PERFORM FILE WRITE OPERATION
- UJN PFWX RETURN
- TITLE FILE WRITE ROUTINES.
- CIS SPACE 4,10
- ** CIS - CLEAR INTERLOCK STATUS.
- *
- * ENTRY (FITS) = 0 IF FILE INTERLOCK NOT REQUIRED.
- * (FS - FS+4) = DATA FILE FST.
- *
- * USES T6.
- *
- * CALLS CTI.
- CIS SUBR ENTRY/EXIT
- LDM FITS CHECK FILE INTERLOCK STATUS
- ZJN CISX IF FILE INTERLOCK NOT REQUIRED
- LDD FS+1
- STD T6
- RJM CTI CLEAR TRACK INTERLOCK
- UJN CISX RETURN
- DPB SPACE 4,20
- ** DPB - DUMP BUFFER TO FILE.
- *
- * ENTRY (A) = 6/EOR FLAG, 12/WORD COUNT.
- * (BA) = BUFFER ADDRESS.
- * (FS - FS+4) = DATA FILE FST.
- * (T5) = EQUIPMENT.
- * (T6) = TRACK.
- * (T7) = SECTOR.
- *
- * EXIT (BA) = LWA+1 WORDS IN BUFFER WRITTEN TO FILE.
- * (T6) = UPDATED CURRENT TRACK.
- * (T7) = UPDATED CURRENT SECTOR.
- *
- * ERROR TO *DPP* IF NEXT TRACK NOT RESERVED AND
- * SYSTEM DEBUG DISABLED.
- *
- * USES BA, CN, T3, T6, T7.
- *
- * CALLS CIS, SNT, WDS, WES.
- *
- * MACROS MONITOR.
- DPB SUBR ENTRY/EXIT
- STD T3 SET WORD COUNT
- SHN 6
- STD CN SAVE EOR FLAG
- DPB1 LDD T3
- NJN DPB2 IF MORE WORDS TO WRITE
- LDD CN
- NJN DPBX IF NO EXTRA EOR TO WRITE
- AOD CN
- DPB2 SOD BA
- LDD HN
- STI BA
- LDD T3
- SBD HN
- PJN DPB3 IF FULL SECTOR
- LDD T3 SET SHORT SECTOR
- STI BA
- LDN 0
- DPB3 STD T3
- SOD BA
- LDD T7
- ADN 1
- STI BA
- LMM SLM
- NJN DPB4 IF NOT AT END OF TRACK
- RJM SNT GET NEXT TRACK
- STI BA
- SHN 6
- PJP DPB6 IF NEXT TRACK NOT ALLOCATED
- DPB4 LDD BA WRITE SECTOR
- LMC WCSF
- RJM WDS
- PJN DPB4.2 IF NO ERROR
- SHN 21-11
- PJN DPB4.1 IF NOT PREVIOUS SECTOR ERROR
- LDM WDSE REWRITE PREVIOUS SECTOR
- * LMC WLSF
- ERRNZ WLSF CODE DEPENDS ON VALUE
- RJM WDS
- PJN DPB4 IF NO ERROR
- DPB4.1 RJM WES ATTEMPT TO WRITE EOI SECTOR
- RJM CIS CLEAR FILE INTERLOCK
- LJM DPP DROP PP
- DPB4.2 LDI BA SET NEXT SECTOR
- STD T7
- SHN 6
- PJN DPB5 IF NOT NEW TRACK
- SHN -6 SET TRACK
- STD T6
- LDN 0 CLEAR SECTOR
- STD T7
- DPB5 AOD BA GET SECTOR WORD COUNT
- LDI BA ADVANCE BUFFER ADDRESS TO NEXT SECTOR
- SHN 2
- ADI BA
- ADN 1
- RAD BA ADVANCE BUFFER ADDRESS
- LJM DPB1 LOOP TO WRITE NEXT SECTOR
- DPB6 RJM WES WRITE EOI
- RJM CIS CLEAR FILE INTERLOCK
- LDN 0 SET NO ERROR FLAG
- STD CM+2
- LDC * SET ADDRESS WHERE ERROR DETECTED
- STD CM+1
- MONITOR CHGM CONDITIONAL HANG
- * LJM DPP DROP PP
- DPP SPACE 4,10
- ** DPP - DROP PP.
- *
- * ENTRY (FO) = FNT ORDINAL.
- * (MD) = MODE.
- *
- * USES CM - CM+4.
- *
- * CALLS DFM, *0DF*.
- *
- * MACROS MONITOR.
- DPP BSS 0 ENTRY
- LDC DPPA
- RJM DFM ISSUE TERMINATION MESSAGE
- * LDN 0
- STD CM+1
- LDN /EVENT/CPTE ISSUE TERMINATION EVENT
- STD CM+4
- SHN -14
- STD CM+3
- MONITOR EATM
- MONITOR DPPM DROP PPU
- LJM PPR RETURN TO PP RESIDENT
- DPPA DATA C* CPD - TERMINATED.*
- FWO SPACE 4,10
- ** FWO - FILE WRITE OPERATIONS.
- *
- * ENTRY (FS - FS+4) = DATA FILE FST.
- * (RC) = RECORD COUNT IN BUFFER.
- * (WC) = WORD COUNT OF RECORD.
- *
- * USES BA, RC.
- *
- * CALLS CIS, DPB, RNT, SIS, WES.
- *
- * MACROS SETMS.
- FWO SUBR ENTRY/EXIT
- RJM SIS SET INTERLOCK STATUS
- SETMS IO,(NS),BUFF-4
- RJM RNT REQUEST TRACKS
- LDK BUFF SET BUFFER BASE ADDRESS
- STD BA
- FWO1 LDD WC WRITE ENTIRE RECORD
- RJM DPB DUMP BUFFER TO FILE
- SOD RC
- NJN FWO1 IF MORE RECORDS TO WRITE
- RJM WES WRITE EOI SECTOR
- RJM CIS CLEAR INTERLOCK STATUS
- UJN FWOX RETURN
- RNT SPACE 4,15
- ** RNT - REQUEST TRACKS.
- *
- * ENTRY (FS - FS+4) = FST ENTRY.
- * (RC) = NUMBER OF RECORDS TO WRITE.
- * (T5) = EQUIPMENT.
- * (T6) = TRACK.
- * (T7) = SECTOR.
- * (WC) = WORD COUNT OF RECORD.
- *
- * USES T2, T3, CM - CM+4.
- *
- * CALLS CDS, SNT.
- *
- * MACROS DELAY, MONITOR.
- RNT SUBR ENTRY/EXIT
- LDN 0
- STD T3
- LDD RC
- STD T2
- RNT1 LDD WC CALCULATE SECTORS TO WRITE
- ADN 77
- SHN -6
- RAD T3
- LDD WC
- LPN 77
- NJN RNT2 IF EOR COUNTED
- AOD T3
- RNT2 SOD T2
- NJN RNT1 IF MORE RECORDS TO WRITE
- AOD T3 ALLOW FOR EOI
- ADD T7 CHECK SECTORS LEFT ON CURRENT TRACK
- RNT3 SBM SLM
- STD T3
- SBN 1
- PJN RNT5 IF NOT ENOUGH SECTORS ON CURRENT TRACK
- RNT4 LDD FS+2 RESET CURRENT TRACK
- STD T6
- UJN RNTX RETURN
- RNT5 RJM SNT SET NEXT TRACK
- SHN 6
- PJN RNT6 IF NEXT TRACK NOT ASSIGNED
- SHN -6
- STD T6
- LDD T3
- UJN RNT3 CHECK SECTORS ON NEXT TRACK
- RNT6 LDD T5 SET EQUIPMENT EST ORDINAL
- STD CM+1
- LDD T6 SET CURRENT TRACK
- STD CM+2
- LDN 0
- STD CM+3
- LDD T3 REQUEST REMAINING SECTORS
- STD CM+4
- MONITOR RTCM REQUEST TRACK TRAIN
- LDD CM+4
- NJN RNT4 IF TRACKS ASSIGNED
- RJM CDS CHECK DROP STATUS
- RNT7 DELAY
- LDD T2
- NJN RNT6 IF EVENT ALREADY ISSUED
- AOD T2 SET FLAG
- LDD CP SET TRACK LIMIT MESSAGE
- ADN MS2W
- CWM RNTA,TR *CPD - TRACK LIMIT.*
- LDN ZERL ISSUE TRACK LIMIT EVENT
- CRD CM
- LDN /EVENT/TKLE
- STD CM+4
- MONITOR EATM
- UJN RNT7 RETRY REQUEST
- RNTA DATA C*CPD - TRACK LIMIT.*
- SIS SPACE 4,15
- ** SIS - SET INTERLOCK STATUS.
- *
- * ENTRY (FITS) = 0 IF FILE INTERLOCK NOT REQUIRED.
- * (FS - FS+4) = DATA FILE FST.
- *
- * EXIT INTERLOCK SET IF REQUIRED.
- * (T5) = EQUIPMENT EST ORDINAL.
- * (T6) = CURRENT TRACK.
- * (T7) = CURRENT SECTOR.
- *
- * CALLS IRA, STI.
- SIS SUBR ENTRY/EXIT
- LDD FS SET EQUIPMENT
- STD T5
- RJM IRA INITIALIZE RANDOM ACCESS PROCESSORS
- LDM FITS CHECK FILE INTERLOCK STATUS
- ZJN SIS1 IF FILE INTERLOCK NOT REQUIRED
- LDD FS+1 SET FIRST TRACK
- STD T6
- RJM STI SET TRACK INTERLOCK
- SIS1 LDD FS+3 SET CURRENT SECTOR
- STD T7
- LDD FS+2 SET CURRENT TRACK
- STD T6
- UJN SISX RETURN
- WES SPACE 4,15
- ** WES - WRITE EOI SECTOR.
- *
- * ENTRY (T5) = EQUIPMENT.
- * (T6) = TRACK.
- * (T7) = SECTOR.
- *
- * EXIT (FS - FS+4) = UPDATED FST ENTRY.
- * ENHANCED EOI SECTOR WRITTEN.
- * ENDMS ISSUED.
- * TRT UPDATED TO REFLECT NEW EOI.
- *
- * CALLS WEI.
- *
- * MACROS ENDMS, MONITOR.
- WES SUBR ENTRY/EXIT
- LDD T6 SET CURRENT TRACK
- STD FS+2
- LDD T7 SET CURRENT SECTOR
- STD FS+3
- LDD MA WRITE DATA FILE POINTERS
- CWD FS
- CRM BUFF+FSEI,ON COPY FST TO EOI BUFFER
- * CRM HBUF+FSEI,ON (PRESET DIRECT CALL)
- WESA EQU *-1
- LDC BUFF WRITE ENHANCED EOI
- * LDC HBUF (PRESET DIRECT CALL)
- WESB EQU *-1
- RJM WEI
- ENDMS
- LDD T5 SET EQUIPMENT
- LMC 4000
- STD CM+1
- LDD T6 SET CURRENT TRACK
- LPC 3777
- STD CM+2
- LDD T7 SET CURRENT SECTOR
- STD CM+3
- MONITOR DTKM
- UJN WESX RETURN
- ZFB SPACE 4,10
- ** ZFB - ZERO FILL BUFFER.
- *
- * ENTRY (WC) = WORD COUNT OF RECORD.
- * (RX) = MAXIMUM NUMBER OF RECORDS IN BUFFER.
- *
- * EXIT (BA) = BUFFER BASE ADDRESS.
- * (RC) = 0.
- *
- * USES T1, T2, BA.
- ZFB SUBR ENTRY/EXIT
- LDN 0 CLEAR RECORD COUNT
- STD RC
- LDC BUFF SET BUFFER BASE ADDRESS
- STD BA
- STD T1
- LDD RX GET MAXIMUM RECORD COUNT
- STD T2
- ZFB1 LDD WC
- SHN 2
- ADD WC
- RAD T1
- SOD T2
- NJN ZFB1 IF MORE RECORDS TO COUNT
- ZFB2 SOD T1
- SBD BA
- MJN ZFBX IF BUFFER CLEARED
- LDN 0
- STI T1
- UJN ZFB2 LOOP
- SPACE 4,10
- * COMMON DECKS.
- QUAL$ EQU 0 DO NOT QUALIFY COMMON DECKS
- *CALL COMPCTI
- IRA$ EQU 1 SET PRESET PRESENT
- *CALL COMPSNT
- *CALL COMPIRA
- *CALL COMPSTI
- WEI$ EQU 0 SET EOI BUFFER SUPPLIED BY CALLER
- *CALL COMPWEI
- SPACE 4,10
- USE LITS FLUSH LITERALS
- USE *
- QUAL *
- R3CS EQU *+4-COVL ROUND LENGTH OF *3CS*
- L3CS EQU R3CS/5*5 LENGTH OF *3CS*
- ERRNG /PRS/P3CS-COVL-L3CS CHECK OVERFLOW INTO PRESET CODE
- MLOV MAX L3CR,L3CS MAXIMUM LENGTH OF OVERLAYS
- SBUF EQU EPFW-SBUFL SCRATCH BUFFER
- BUFF EQU COVL+MLOV+4 DATA BUFFER FWA
- BUFFL EQU SBUF-BUFF MAXIMUM BUFFER LENGTH IN BYTES
- BUFFLW EQU BUFFL/5 MAXIMUM BUFFER LENGTH IN WORDS
- ERRNG BUFFLW*5-DFBL-MSMX*DMBL INSUFFICIENT BUFFER SPACE
- TTL CPD - COLLECT PERFORMANCE DATA.
- SPACE 4,10
- END
cdc/nos2.source/opl871/cpd.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator