cdc:nos2.source:opl871:1mv
Table of Contents
1MV
Table Of Contents
- [00007] 1MV - MASS STORAGE AND MEDIA VERIFICATION.
- [00009] MASS STORAGE AND MEDIA VERIFICATION.
- [00103] MACRO DEFINITIONS.
- [00105] FCN - DEFINE FUNCTION PROCESSOR.
- [00132] OVERLAY - DEFINE THE SECONDARY OVERLAY(S).
- [00151] โ.Oโ - TEXT
- [00160] ENTRY - DEFINE OVERLAY ENTRY POINT.
- [00175] VERIFY - DEFINE HARDWARE VERIFICATION ROUTINE FOR EQUIPMENT.
- [00252] MAIN PROGRAM.
- [00253] MAIN PROGRAM.
- [00266] FUNCTION PROCESSORS.
- [00268] DVFC - DEVICE VERIFICATION AND CLEAR SUSPECT.
- [00285] ONFC - DEVICE VERIFICATION AND SET DEVICE *ON*.
- [00302] IDFC - DEVICE VERIFICATION AND SET DEVICE *IDLE*.
- [00317] LVFC - LABEL VERIFICATION AND SET DEVICE *OFF*.
- [00331] MVFC - MEDIA VERIFICATION OF A PARTICULAR TRACK.
- [00394] UCFC - DATA PATH VERIFICATION AND SET CHANNEL STATE = *UP*.
- [00434] SCFC - PERFORM DISK SWEEP CYCLING.
- [00444] SUBROUTINES.
- [00446] AEC - ANALYZE ERROR CODE.
- [00510] CDA - CALCULATE PHYSICAL DISK ADDRESS.
- [00622] CEQ - CLEAR ERRORS FROM UNIT I/O QUEUE.
- [00660] CFE - CHECK FOR ERRORS.
- [00809] CSF - CALL *SEQM* SUBFUNCTION.
- [00841] CVI - CLEAR VERIFICATION INTERLOCK.
- [00864] DCH - DOWN CHANNEL.
- [00895] DHV - PERFORM DEVICE VERIFICATION.
- [00924] FBP - FILL BUFFER WITH PATTERN TO WRITE.
- [00941] FDC - FORMAT 895 DEVICE MAINTENANCE TRACK.
- [00968] HVE - HARDWARE VERIFICATION FOR EXTENDED MEMORY DEVICES.
- [01002] HVL - HARDWARE VERIFICATION FOR RMS DEVICES.
- [01099] IBM - ISSUE BML MESSAGE.
- [01123] IHD - INITIATE HYDRA DIAGNOSTICS.
- [01159] IPE - ISSUE REMOVABLE PACK EVENT.
- [01188] LBV - LABEL VERIFICATION.
- [01235] RCS - READ CONSECUTIVE SECTORS.
- [01290] RAE - RELEASE ASSIGNED EQUIPMENT.
- [01307] RLT - REPAIR LABEL TRACK.
- [01343] SDA - SET DEVICE AVAILABLE.
- [01380] SNC - SELECT NEXT CHANNEL.
- [01413] SUT - SCAN (BUFFERED I/O) UNIT TABLE.
- [01462] SVF - SET VERIFICATION FAILURE COUNT.
- [01492] SVI - SET VERIFICATION INTERLOCK.
- [01523] VBD - VERIFY BUFFER DATA.
- [01576] VLS - VERIFY LABEL SECTOR.
- [01724] VLT - VERIFY LEVEL TWO LABEL.
- [01795] VSF - VERIFY SYSTEM FILE.
- [01836] WCS - WRITE CONSECUTIVE SECTORS.
- [01894] WSF - WRITE SYSTEM FILE.
- [01940] BUFFERS.
- [01983] PRESET TABLES.
- [01985] TDVC - TABLE OF DEVICE CONSTANTS.
- [02024] TFCN - TABLE OF FUNCTION PROCESSORS.
- [02042] PRESET.
- [02044] PRS - PRESET.
- [02243] PRESET SUBROUTINES.
- [02245] ECA - ENABLE CONTROLLER ACTIVITY.
- [02369] ELM - ERROR LOG MESSAGE PROCESSOR.
- [02518] TFCN - TABLE OF SYMPTOM CODE DEPENDENT PROCESSORS.
- [02635] FMT - FORMAT 895 DEVICE MAINTENANCE TRACK.
- [02755] FNC - FUNCTION CHANNEL.
- [02787] VTE - VERIFY TRT EOI SECTORS.
- [02824] CMI - CHECK MACHINE RECOVERY TABLE INTERLOCK.
- [02872] CPF - CHECK PRESERVED FILE STATUS.
- [02910] CPS - CHECK FOR PRESERVED FILE STATUS.
- [02931] CPI - CHECK MMF PERMANENT FILE INTERLOCKS.
- [02954] FEB - FIND EOI TRT BYTE.
- [02977] FFT - FIND FIRST TRACK LINK.
- [02998] FTP - FIND TRT BYTE PATTERN.
- [03055] PCV - PRESET CONDITIONS FOR *VTE*.
Source Code
- 1MV.txt
- IDENT 1MV,IMV
- PERIPH
- BASE MIXED
- SST
- *COMMENT 1MV - MASS STORAGE AND MEDIA VERIFICATION.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- TITLE 1MV - MASS STORAGE AND MEDIA VERIFICATION.
- SPACE 4,10
- *** 1MV - MASS STORAGE AND MEDIA VERIFICATION.
- *
- * R. K. MYERS. 84/11/19.
- * W. E. GOEBEL. 85/04/12.
- SPACE 4,10
- *** *1MV* PERFORMS THE FOLLOWING MASS STORAGE VALIDATION
- * FUNCTIONS.
- *
- * 0 = DVFC = MASS STORAGE DEVICE VERIFICATION.
- * PERFORM A PHYSICAL AND LOGICAL VERIFICATION OF A MASS
- * STORAGE EQUIPMENT.
- * PHYSICAL VERIFICATION INVOLVES WRITING AND READING
- * THE MAINTENANCE CYLINDER ON ALL UNITS OF A DEVICE
- * THROUGH ALL CHANNELS OF ACCESS. THE DATA READ IS
- * VERIFIED AGAINST THE DATA WRITTEN.
- * LOGICAL VERIFICATION INVOLVES THE READING OF THE
- * LABEL SECTOR ON ALL UNITS OF A DEVICE THROUGH ALL
- * CHANNELS OF ACCESS. THE LABEL READ IS VERIFIED FOR
- * THE PROPER DATA.
- *
- * 1 = ONFC = SET DEVICE IN *ON* STATE.
- * THE DEVICE IS TURNED ON UPON SUCCESSFUL VERIFICATION.
- *
- * 2 = IDFC = SET DEVICE IN *IDLE* STATE.
- * SET THE DEVICE IN THE *IDLE* STATE UPON A SUCCESSFULL
- * VERIFICATION.
- *
- * 3 = OFFC = SET DEVICE IN *OFF* STATE.
- * SET THE DEVICE IN THE *OFF* STATE UPON A SUCCESSFULL
- * LABEL VERIFICATION. THE PHYSICAL VERIFICATION IS
- * NOT PERFORMED.
- *
- * 4 = MVFC = MEDIA VERIFICATION.
- * A LOGICAL TRACK IS WRITTEN AND READ SECTOR
- * BY SECTOR THROUGH ALL CHANNELS OF ACCESS.
- * IF NO ERRORS ARE ENCOUNTERED, THE TRACK FLAW
- * IS CLEARED AND THE TRACK CAN BE REUSED.
- *
- * 5 = UCFC = MASS STORAGE DATA PATH VERIFICATION AND SET
- * CHANNEL STATE = *UP*.
- * PERFORM A PHYSICAL AND LOGICAL VERIFICATION OF A
- * MASS STORAGE EQUIPMENT USING A SPECIFIED CHANNEL.
- * PHYSICAL AND LOGICAL VERIFICATION ARE PERFORMED IN THE
- * SAME FASHION AS FOR FUNCTION *DVFC* WITH THE EXCEPTION
- * THAT ONLY THE SPECIFIED CHANNEL IS USED. UPON
- * SUCCESSFUL VERIFICATION, THE CHANNEL STATE IS CHANGED
- * TO *UP*.
- *
- * 6 = SCFC = DISK SWEEP CYCLING.
- * PERFORM THE NEXT SEEK SEQUENCE IN THE SWEEP CYCLING
- * ALGORITHM FOR ALL PHYSICAL UNITS OF THE DEVICE WHOSE
- * EST ORDINAL WAS PASSED IN THE *1MV* CALL.
- SPACE 4,15
- *** CALL.
- *
- *T 18/1MV, 6/CP, 12/EST, 6/FCN, 1/R, 17/PAR.
- *
- * CP CALLING CONTROL POINT.
- * EST EST ORDINAL TO PROCESS.
- * FCN FUNCTION CODE.
- * R LABEL REPAIR HAS BEEN ATTEMPTED.
- * PAR = TRACK NUMBER TO TEST (FUNCTION *MVFC*).
- * = CHANNEL NUMBER, INCLUDING CONCURRENCY FLAG (FUNCTION
- * *UCFC*).
- SPACE 4,10
- ** COMMON DECKS.
- *CALL COMPMAC
- *CALL COMPCHI
- *CALL COMSCPS
- *CALL COMSDFS
- QUAL DSL
- *CALL COMSDSL
- QUAL *
- PLSS EQU /DSL/PLSS
- *CALL COMSEVT
- *CALL COMSHIO
- *CALL COMSLSD
- QUAL MMF
- *CALL COMSMMF
- QUAL *
- MISD EQU /MMF/MISD
- *CALL COMSMSP
- *CALL COMSMST
- *CALL COMSPFM
- *CALL COMSPIM
- *CALL COMSSSE
- *CALL COMSWEI
- *CALL COMSZOL
- *CALL COMS1DS
- LIST X
- *CALL COMS1MV
- LIST *
- TITLE MACRO DEFINITIONS.
- FCN SPACE 4,10
- ** FCN - DEFINE FUNCTION PROCESSOR.
- *
- * FN FCN P,R,E
- *
- * FN FUNCTION CODE.
- * P NAME OF FUNCTION PROCESSOR.
- * R NAME OF REPAIR PROCESSOR (HANDLES REPAIRABLE ERRORS).
- * E ERRORS THAT CAN BE REPAIRED BY *R*.
- *
- * TABLE GENERATED.
- *
- *T,TN 12/ P,12/ R,12/ E
- PURGMAC FCN
- MACRO FCN,FN,P,R,E
- MACREF FCN
- ORG TFCN+3*FN
- LOC FN
- .A IFC NE,$P$$
- CON P,R,E
- .A ELSE
- LOC *O
- .A ENDIF
- ENDM
- OVERLAY SPACE 4,10
- ** OVERLAY - DEFINE THE SECONDARY OVERLAY(S).
- *
- * OVERLAY (TEXT)
- * ENTRY *TEXT* = TEXT OF SUBTITLE.
- .N SET 0
- OVLB MICRO 1,, 2V OVERLAY NAME
- PURGMAC OVERLAY
- OVERLAY MACRO TEXT
- MACREF OVERLAY
- QUAL
- .N SET .N+1
- .M MICRO .N,1, ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
- .O MICRO 1,3, "OVLB"".M"
- QUAL ".O"
- TITLE ".O" - TEXT
- IDENT ".O",OVLA TEXT
- *COMMENT 1MV - TEXT
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- ORG OVLA
- LJM * ENTRY/EXIT
- UJN *-2 OVERLAY EXIT ADDRESS
- ENDM
- ENTRY SPACE 4,10
- ** ENTRY - DEFINE OVERLAY ENTRY POINT.
- *
- * NAME ENTRY
- * NAME = NAME OF ENTRY ADDRESS.
- PURGMAC ENTRY
- MACRO ENTRY,NAME
- MACREF ENTRY
- QUAL
- NAME BSS 0 ENTRY
- QUAL *
- ENDM
- VERIFY SPACE 4,10
- ** VERIFY - DEFINE HARDWARE VERIFICATION ROUTINE FOR EQUIPMENT.
- *
- * NAME ENTRY EQ
- * NAM = NAME OF ENTRY ADDRESS.
- * EQ = EQUIPMENT TYPE(S) TO VERIFY.
- PURGMAC VERIFY
- MACRO VERIFY,NAM,EQ
- MACREF VERIFY
- NAM SUBR ENTRY/EXIT
- IRP EQ
- PRC._EQ EQU NAM
- IRP
- ENDM
- SPACE 4,20
- **** DIRECT LOCATION ASSIGNMENTS.
- BEGIN BSSN 16
- T8 BSSN 1 SCRATCH
- T9 BSSN 1 SCRATCH
- CN BSSN 5 CM WORD BUFFER (5 LOCATIONS)
- CC BSSN 1 CURRENT CHANNEL ORDINAL FOR DEVICE
- DA BSSN 1 CHANNEL COUNT - 1 FOR DEVICE
- ES BSSN 5 EST ENTRY (5 LOCATIONS)
- EI BSSN 1 SCRATCH
- FC BSSN 1 FUNCTION CODE
- FP BSSN 1 *SEQM* FUNCTION PARAMETER
- HC BSSN 1 HEAD PROCESSING COUNTER
- MT BSSN 1 MEDIA ERROR THRESHOLD (1MV)
- * SCRATCH CELL (2VA)
- NS BSSN 1 NUMBER OF SECTORS TO PROCESS
- SU BSSN 1 SINGLE UNIT SECTOR LIMIT
- DP BSSN 5 DEVICE SEEK PARAMETERS (5 LOCATIONS)
- ERRNG 50-* DIRECT CELL OVERFLOW
- BSSN 57-*
- SP BSSN 1 STATISTICS BUFFER POINTER
- ERRNG 70-* DIRECT CELL OVERFLOW
- END BSSN
- EQ EQU IR+2 EQUIPMENT ORDINAL TO PROCESS
- ****
- SPACE 4,10
- **** ASSEMBLY CONSTANTS.
- BUFL EQU 502 PP BUFFER SIZE
- BUFP EQU 5252 BUFFER WORD PATTERN FOR WRITE/READ TEST
- CH EQU 0 MASS STORAGE CHANNEL
- DVSC EQU 3 DEVICE VERIFICATION SECTOR COUNT
- FCOC EQU 10 OPERATION COMPLETE FUNCTION CODE
- FCGS EQU 12 GENERAL STATUS FUNCTION CODE
- FCFP EQU 16 FORMAT 895 FUNCTION CODE
- FPBL EQU 22 PARAMETER BLOCK LENGTH FOR 895 FORMATTING
- METH EQU 6 MAINTENANCE CYLINDER MEDIA ERROR THRESHOLD
- ** STATISTICS BUFFER DEFINITION.
- BEGIN BSSN 0
- WCDB BSSN 1 WRITE ERROR CODE BYTE
- RCDB BSSN 1 READ ERROR CODE BYTE
- FMTB BSSN 1 895 FORMATTING ERROR COUNT BYTE
- WCTB BSSN 1 WRITE ERROR COUNT BYTE
- RCTB BSSN 1 READ ERROR COUNT BYTE
- VCTB BSSN 1 VERIFY ERROR COUNT BYTE
- FMNB BSSN 3 FAMILY/PACK NAME BYTES
- DNMB BSSN 1 DEVICE NUMBER BYTE
- EMNB BSSN 1 EQUIPMENT MNEMONIC BYTE
- LREB BSSN 1 LABEL READ ERROR CODE
- LEFB BSSN 1 LABEL ERROR FLAGS
- MXNB BSSN 0 MAXIMUM STATUS BUFFER BYTES
- END BSSN
- TBUFL EQU 2*10*MXNB TOTAL BUFFER LENGTH IN PP BYTES
- ****
- TITLE MAIN PROGRAM.
- ** 1MV - MAIN PROGRAM.
- ORG PPFW
- IMV LJM PRS PRESET PROGRAM
- DPP SPACE 4,10
- ** DROP PP.
- DPP RJM RAE RELEASE ASSIGNED EQUIPMENT
- RJM CVI CLEAR VERIFICATION INTERLOCK
- MONITOR DPPM DROP PP
- LJM PPR EXIT TO PP RESIDENT
- TITLE FUNCTION PROCESSORS.
- DVFC SPACE 4,10
- ** DVFC - DEVICE VERIFICATION AND CLEAR SUSPECT.
- *
- * ENTRY (IR+2) = EST ORDINAL TO VERIFY.
- * (IR+3) = UPPER 6 BITS IS FUNCTION CODE *DVFC*.
- DVF ENTRY ENTRY
- RJM DHV PERFORM DEVICE VERIFICATION
- RJM LBV PERFORM LABEL VERIFICATION
- DVF1 RJM CFE CHECK FOR ERRORS
- MJN DVF2 IF ERRORS
- LDN CSES CLEAR SUSPECT
- RJM SDA SET DEVICE AVAILABLE
- RJM IPE ISSUE REMOVABLE PACK EVENT
- DVF2 CMSTF L1MV CLEAR *1MV* ACTIVE FLAG
- DVF3 UJP DPP DROP PP
- ONFC SPACE 4,10
- ** ONFC - DEVICE VERIFICATION AND SET DEVICE *ON*.
- *
- * ENTRY (IR+2) = EST ORDINAL TO VERIFY.
- * (IR+3) = UPPER 6 BITS IS FUNCTION CODE *ONFC*.
- ONF ENTRY ENTRY
- RJM DHV PERFORM DEVICE VERIFICATION
- RJM LBV PERFORM LABEL VERIFICATION
- ONF1 RJM CFE CHECK FOR ERRORS
- MJN ONF2 IF ERRORS
- LDN ONES SET DEVICE ON
- RJM SDA SET DEVICE AVAILABLE
- * LDN 0
- RJM SVF CLEAR VERIFICATION FAILURE COUNT
- ONF2 UJN DVF3 DROP PP
- IDFC SPACE 4,10
- ** IDFC - DEVICE VERIFICATION AND SET DEVICE *IDLE*.
- *
- * ENTRY (IR+2) = EST ORDINAL TO VERIFY.
- * (IR+3) = UPPER 6 BITS IS FUNCTION CODE *IDFC*.
- IDF ENTRY ENTRY
- RJM DHV PERFORM DEVICE VERIFICATION
- RJM LBV PERFORM LABEL VERIFICATION
- IDF1 RJM CFE CHECK FOR ERRORS
- MJN IDF2 IF ERRORS
- LDN IDES SET DEVICE IN *IDLE* STATE
- RJM SDA SET DEVICE AVAILABLE
- IDF2 UJN ONF2 DROP PP
- LVA SPACE 4,10
- ** LVFC - LABEL VERIFICATION AND SET DEVICE *OFF*.
- *
- * ENTRY (IR+2) = EST ORDINAL TO VERIFY.
- * (IR+3) = UPPER 6 BITS IS FUNCTION CODE *OFFC*.
- LVA ENTRY ENTRY
- RJM LBV PERFORM LABEL VERIFICATION
- RJM CFE CHECK FOR ERRORS
- MJN LVA1 IF ERRORS
- LDN OFES SET DEVICE OFF
- RJM CSF ISSUE *SEQM* FUNCTION
- LVA1 UJN IDF2 DROP PP
- MVA SPACE 4,10
- ** MVFC - MEDIA VERIFICATION OF A PARTICULAR TRACK.
- *
- * ENTRY (IR+2) = EST ORDINAL TO PROCESS.
- * (IR+3) = UPPER 6 BITS IS FUNCTION CODE *MVFC*.
- * (IR+4) = LOGICAL TRACK NUMBER TO VERIFY.
- MVA ENTRY ENTRY
- LDD ES+4 READ MAXIMUM TRACKS
- SHN 3
- ADK TDGL
- CRD CM
- LDD IR+4 PRESET TRACK NUMBER TO PROCESS
- STD T6
- LPC 3777
- SBD CM
- PJP MVA6 IF BEYOND END OF TRT
- SETMS IOCH,(AD,DE,DF,ND,NR),DBUF
- RJM FBP FILL BUFFER WITH WRITE PATTERN
- * WRITE, READ AND VERIFY ENTIRE TRACK.
- LDD T4 SET CHANNEL FOR BUFFERED DEVICE
- MVA1 STM STSB
- LDN 0 INITIALIZE SECTOR NUMBER
- STD T7
- LDN MXSC SET SECTOR COUNT
- STD NS
- MVA2 SBD NS
- PJN MVA3 IF NOT MAXIMUM SECTORS TO PROCESS
- RAD NS
- MVA3 RJM WCS WRITE CONSECUTIVE SECTORS
- NJN MVA5 IF WRITE ERRORS
- RJM RCS READ BACK SECTOR DATA
- NJN MVA5 IF READ ERRORS
- RJM VBD VERIFY BUFFER DATA
- NJN MVA5 IF DATA VERIFICATION ERRORS
- LDM SLM
- SBD T7
- NJN MVA2 IF NOT SECTOR LIMIT
- RJM SNC
- PJP MVA1 IF ANOTHER CHANNEL TO PROCESS
- LDD EQ
- STD CM+1
- LDD IR+4 TRACK NUMBER TO CLEAR FLAW ON
- STD CM+2
- LDN CTFS
- STD CM+3
- MONITOR STBM
- UJN MVA6 RETURN
- MVA5 ENDMS
- LDK /COMSDFS/HS0105 ISSUE BML MESSAGE
- RJM IBM
- MVA6 LDD EQ CLEAR TRACK NUMBER IN MST
- STD CM+1
- LDD IR+4
- STD CM+2
- LDN CFTS CONDTIONALLY CLEAR TRACK NUMBER
- STD CM+3
- MONITOR SMDM
- MVA7 UJP DVF2 CLEAR *1MV* ACTIVE AND DROP PP
- UCFC SPACE 4,10
- ** UCFC - DATA PATH VERIFICATION AND SET CHANNEL STATE = *UP*.
- *
- * ENTRY (IR+2) = EST ORDINAL OF EQUIPMENT TO VERIFY.
- * (IR+3) = UPPER 6 BITS IS FUNCTION CODE *UCFC*.
- * (IR+4) = CHANNEL NUMBER, INCLUDING CONCURRENCY FLAG.
- UCF ENTRY ENTRY
- UCF1 LDM TSCH,CC
- STD T4 STORE CHANNEL FOR VERIFICATION PROCESSOR
- STM TSCH
- LMD IR+4
- ZJN UCF3 IF CHANNEL FOUND IN TABLE
- AOD CC
- LMD DA
- NJN UCF1 IF ANOTHER CHANNEL
- UCF2 UJN MVA7 DROP PP
- UCF3 STD CC FORCE SINGLE CHANNEL VERIFICATION
- STM DCHA+4
- STM HVLA DISABLE HYDRA DIAGNOSTICS
- ADN 1
- STD DA
- LDD ES
- SHN 21-6
- MJN UCF5 IF UNAVAILABLE DEVICE
- RJM DHV PERFORM VERIFICATION ON SPECIFIED CHANNEL
- RJM LBV PERFORM LABEL VERIFICATION
- UCF4 RJM CFE CHECK FOR ERRORS
- MJN UCF2 IF ERRORS
- UCF5 LDD T5 SET CHANNEL STATE TO *UP*
- STD CM+1
- LDM TSCH CHANNEL
- STD CM+2
- LDK SUCS SUBFUNCTION
- STD CM+3
- MONITOR SCSM
- RJM CEQ CLEAR ERRORS FROM UNIT I/O QUEUE
- UCF6 UJP UCF2 CLEAR ACTIVE FLAG AND DROP PP
- SCF SPACE 4,10
- ** SCFC - PERFORM DISK SWEEP CYCLING.
- *
- * ENTRY (IR+2) = EST ORDINAL OF EQUIPMENT ON WHICH TO PERFORM
- * SWEEP CYCLING SEEK SEQUENCE.
- * (IR+3) = UPPER 6 BITS IS FUNCTION CODE *SCFC*.
- SCF ENTRY ENTRY
- EXECUTE 0SC,OVLA EXECUTE *0SC*
- UJN UCF6 CLEAR ACTIVE FLAG AND DROP PP
- TITLE SUBROUTINES.
- AEC SPACE 4,15
- ** AEC - ANALYZE ERROR CODE.
- *
- * ENTRY (RDCT) = 6/, 6/ EC.
- * EC = ERROR CODE.
- * (MT) = MEDIA ERROR THRESHOLD.
- *
- * EXIT (A) = 0, IF *EC* IS *DRVE* OR *CRSE*.
- * = *PARE*, IF *EC*=*PARE* AND *METH* NOT EXCEEDED.
- * = 1/1, 1/D, 6/, 1/C, 3/, 6/ EC.
- * D = 1, IF *EC*=*DDFE*.
- * C = 1, IF CHANNEL OR CONTROLLER ERROR.
- * (MT) DECREMENTED IF MEDIA ERROR ENCOUNTERED.
- *
- * USES MT.
- AEC1 LDD MT MEDIA ERROR THRESHOLD
- ZJN AEC3 IF TOO MANY MEDIA ERRORS
- SOD MT
- LDK PARE+1000*IDC.ME
- UJN AECX RETURN
- AEC2 LMC SHNI&77&DDFE
- STM AECA
- LDC AECB BIT MAP OF ERRORS INVOLVING CHAN/CONT
- SHN 0-** POSITION BIT CORRESPONDING TO ERROR
- AECA EQU *-1
- LPN 1
- LMK IDC.ME
- SHN 9D
- LMD T0
- AEC3 LMC 400000+PARE+1000*IDC.ME
- AEC SUBR ENTRY/EXIT
- LDM RDCT
- LPN 77
- LMN DRVE
- ZJN AECX IF DRIVE RESERVE ERROR
- LMN CRSE&DRVE
- ZJN AECX IF CONTROLLER RESERVE ERROR
- LMN PARE&CRSE
- ZJN AEC1 IF MEDIA ERROR
- STD T0
- LMN DDFE&PARE
- NJN AEC2 IF NOT DIAGNOSTIC FAILURE
- LDC 600000+1000*IDC.DF+DDFE
- UJN AECX RETURN
- * GENERATE THE SET OF ERROR CODES OF CHANNEL/CONTROLLER ERRORS.
- .1 SET 1
- .2 SET 0
- .A ECHO ,ES=("DREC")
- .B IFEQ IDC.ES,1
- ERRNG 17D-.1 ERROR CODE OVER 17 IS CHAN/CONT ERROR CODE
- .1 DECMIC .1
- .2 SET .2+1S".1"
- .B ENDIF
- .1 SET .1+1
- .A ENDD
- AECB EQU .2
- CDA SPACE 4,10
- ** CDA - CALCULATE PHYSICAL DISK ADDRESS.
- *
- * ENTRY (T4 - T7) = MASS STORAGE DRIVER PARAMETERS.
- * (ES - ES+4) = *EQDE* WORD OF EST ENTRY.
- *
- * EXIT (DP - DP+4) = SEEK PARAMETERS.
- *
- * USES T1, T2, T3, T8, T9, CM - CM+4, DP - DP+4.
- *
- * MACROS MONITOR.
- CDA9 LDD MA STORE LOGICAL DISK ADDRESS
- CWD T4
- MONITOR LDAM CONVERT TO PHYSICAL ADDRESS
- LDD MA
- ADN 1 RETRIEVE SEEK PARAMETERS
- CRD DP
- CDA10 AOD DP FLAG DISK ADDRESS PRESENT
- CDA SUBR ENTRY/EXIT
- LDD DP
- NJN CDAX IF ADDRESS ALREADY OBTAINED
- STD CM+1
- STD T8 CLEAR PHYSICAL SECTOR ACCUMULATOR
- CDAA LDD T6
- * UJN CDA9 (NON-BUFFERED DEVICE)
- LPC 3777
- STD T3 ITERATION COUNT FOR CONVERSION
- * UNIT INDEX = SECTOR NUMBER / SINGLE UNIT SECTOR LIMIT.
- LDD T7 LOGICAL SECTOR NUMBER
- STD T9
- CDA1 STD T2
- AOD DP ADVANCE UNIT INDEX
- LDD T2
- SBD SU
- PJN CDA1 IF DIVISION INCOMPLETE
- LDD ES+4
- SHN 3
- ADN DDLL FETCH UNIT DESCRIPTOR WORD FROM MST
- CRD CM
- SOD DP
- SHN -1
- LMC -0 CALCULATE BYTE ADDRESS
- ADN CM+4
- STD T1
- LDD DP
- LPN 1
- SHN 21-0 DETERMINE POSITION WITHIN BYTE
- LMI T1
- PJN CDA2 IF UNIT POSITIONED LOW
- SHN -6
- CDA2 LPN 77 EXTRACT UNIT NUMBER
- STD DP+1
- LDD CM MERGE WITH EQUIPMENT (CONTROLLER) NUMBER
- LPC 700
- RAD DP+1
- * CONVERT LOGICAL DISK ADDRESS TO RELATIVE SECTOR COUNT.
- CDA3 SOD T3
- MJN CDA5 IF CONVERSION COMPLETE
- LDM LSLT
- RAD T9 ADVANCE LOGICAL SECTOR COUNT
- SHN -14
- RAD T8
- UJN CDA3 LOOP ON CONVERSION
- * DIVIDE THE RELATIVE SECTOR COUNT BY THE NUMBER OF LOGICAL
- * SECTORS PER CYLINDER.
- CDA4 AOD DP+2 ADVANCE RELATIVE CYLINDER NUMBER
- CDA5 LDM LSCY
- STD T0
- LDD T9
- SBM LSCY+1 DIVIDE BY ITERATIVE SUBTRACTION
- STD T9
- PJN CDA6 IF NO BORROW
- AOD T9
- AOD T0
- CDA6 LDD T8
- SBD T0
- STD T8
- PJN CDA4 IF DIVISION NOT COMPLETE
- LDM LSCY+1
- RAD T9
- SHN -14
- ADD T0
- RAD T8
- LDD ES+4
- SHN 3
- ADN SCYL FETCH STARTING CYLINDER FROM MST
- CRD CM
- LDD CM+2 CONVERT RELATIVE CYLINDER TO ABSOLUTE
- RAD DP+2
- UJN CDA8 COMPLETE ADDRESS CONVERSION
- * DIVIDE THE REMAINDER OF THE ABOVE CALCULATION BY THE NUMBER
- * OF LOGICAL SECTORS PER PHYSICAL TRACK.
- CDA7 AOD DP+3 ADVANCE PHYSICAL TRACK NUMBER
- CDA8 LDN 0
- SBM LSPT DIVIDE BY ITERATIVE SUBTRACTION
- RAD T9
- PJN CDA7 IF NO UNDERFLOW
- ADM LSPT
- CDAB SHN 0 SET PHYSICAL SECTOR NUMBER
- STD DP+4
- LJM CDA10 RETURN
- CEQ SPACE 4,10
- ** CEQ - CLEAR ERRORS FROM UNIT I/O QUEUE.
- *
- * ENTRY (EQ) = EST ORDINAL.
- * (ES - ES+4) = EST ENTRY.
- *
- * USES CM - CM+4.
- *
- * CALLS SUT.
- *
- * MACROS DELAY, MONITOR.
- CEQ1 DELAY
- LDD CN *PUT* ORDINAL
- CEQ2 STD CM+2
- LDN SUIS *BIOM* SUBFUNCTION
- STD CM+1
- MONITOR BIOM INTERLOCK *PUT* ENTRY
- LDD CM+1
- NJN CEQ1 IF CURRENTLY UNAVAILABLE
- LDD CN
- STD CM+2
- LDN CETS CLEAR ERROR STATUS FROM I/O QUEUE
- STD CM+1
- MONITOR BIOM
- * LDN 0 SCAN UNIT TABLE
- CEQ3 RJM SUT
- NJN CEQ2 IF SPECIFIED DEVICE
- CEQ SUBR ENTRY/EXIT
- LDD ES+3
- LMC 2RDV
- ZJN CEQX IF AN 819 DISK
- LMK 2RDW&2RDV
- ZJN CEQX IF AN 819 DISK
- LCN 0
- UJN CEQ3 CLEAR ERRORS
- CFE SPACE 4,25
- ** CFE - CHECK FOR ERRORS.
- *
- * ENTRY (DVC1) = CHANNEL 1 DEVICE STATISTICS.
- * (DVC2) = CHANNEL 2 DEVICE STATISTICS.
- *
- * EXIT (A) .LT. 0 IF ERRORS FOUND.
- * *1DS* CALLED TO DOWN CHANNEL IF ERRORS ON ONE OF TWO
- * CHANNELS OR PATH VERIFICATION FAILURE.
- * DEVICE DOWNED IF VERIFY ERRORS.
- * DEVICE TURNED OFF IF OTHER ERRORS.
- *
- * USES CC, SP, T2, T3, CM - CM+4, CN - CN+4.
- *
- * CALLS CSF, DCH, IBM, SVF, VSF.
- *
- * NOTE - *CFE* USES CM - CM+4 AND CN - CN+4 TO ACCUMULATE ANY
- * ERRORS DETECTED ON THE FIRST AND SECOND CHANNELS,
- * RESPECTIVELY. THE FIVE BYTES ARE USED AS FOLLOWS -
- *
- * BYTE 0 = CHANNEL NUMBER.
- * BYTE 1 = VERIFICATION ERROR COUNT.
- * BYTE 2 = TOTAL ERROR COUNT.
- * BYTE 3 = UNREPAIRABLE ERROR COUNT.
- * BYTE 4 = CHANNEL/CONTROLLER ERROR COUNT.
- CFE SUBR ENTRY/EXIT
- LDN ZERL CLEAR CHANNEL ERROR COUNTS
- CRD CM
- CRD CN
- LDN CM SET FIRST CHANNEL ACCUMULATOR ADDRESS
- STD T2
- LDC DVC1 BUFFER START ADDRESS
- STD SP
- LDN 0
- STD CC
- CFE1 LDM TSCH,CC SET CHANNEL NUMBER
- STI T2
- LDN 10 SET UNIT COUNT
- STD T3
- CFE2 LDM VCTB,SP ACCUMULATE VERIFY ERROR COUNTS
- ZJN CFE3 IF NO VERIFY ERROR
- AOM 1,T2 COUNT VERIFY ERROR THIS UNIT
- CFE3 LDM LEFB,SP GET REPAIRABLE LABEL ERRORS
- LPC **
- CFEA EQU *-1 (SET BY PRESET)
- STD T0
- LMM LEFB,SP ACCUMULATE READ/WRITE/LABEL ERROR COUNTS
- ZJN CFE3.1 IF NO UNREPAIRABLE LABEL ERRORS
- LDN 1
- CFE3.1 ADM RCTB,SP
- ADM WCTB,SP
- ADM FMTB,SP
- ZJN CFE3.3 IF NO UNREPAIRABLE ERRORS
- SHN -9D
- ZJN CFE3.2 IF NO CHANNEL/CONTROLLER ERRORS
- AOM 4,T2 COUNT CHANNEL/CONTROLLER ERRORS
- CFE3.2 AOM 3,T2 COUNT UNREPAIRABLE ERRORS
- CFE3.3 ADD T0
- ZJN CFE4 IF NO ERRORS
- AOM 2,T2 COUNT ERRORS
- CFE4 LDN MXNB
- RAD SP
- SOD T3
- NJP CFE2 IF NOT THROUGH WITH ALL UNITS
- LDN CN SET SECOND CHANNEL ACCUMULATOR ADDRESS
- STD T2
- AOD CC
- LMD DA
- NJP CFE1 IF ANOTHER CHANNEL
- SOD CC
- ZJN CFE8 IF ONLY ONE CHANNEL
- LDD CN+1
- ADD CN+2
- NJN CFE5 IF ERRORS ON SECOND CHANNEL
- LDD CM+1
- ADD CM+2
- ZJN CFE7 IF NO ERROR ON PRIMARY CHANNEL
- * ERROR EXISTS ON PRIMARY CHANNEL BUT NOT ON SECONDARY CHANNEL.
- LDN CM
- UJN CFE6 DOWN CHANNEL
- CFE5 LDD CM+1
- ADD CM+2
- NJN CFE8 IF ERRORS ON BOTH CHANNELS
- LDN CN
- CFE6 RJM DCH DOWN CHANNEL
- CFE7 RJM VSF VERIFY SYSTEM FILE
- UJP CFEX RETURN
- CFE8 LDD CM+1
- ADD CN+1
- NJP CFE10 IF DATA VERIFICATION ERRORS
- LDD CM+2
- ADD CN+2
- ZJN CFE7 IF NO READ/WRITE/LABEL ERRORS
- LDD CM+3
- ADD CN+3
- NJN CFE9 IF UNREPAIRABLE ERRORS
- LJM ** PROCESS REPAIRABLE ERROR
- CFEB EQU *-1 (SET BY PRESET)
- CFE9 LDM DCHA+4
- ZJN CFE11 IF PATH VERIFICATION
- LDD ES+4
- SHN 3
- ADN CTLL
- CRD CN
- AOD CN INCREMENT VERIFICATION FAILURE COUNTER
- RJM SVF
- LDD ES+4
- SHN 3
- ADN THLL
- CRD CM
- LDD CN
- SBD CM
- MJP CFE7 IF COUNT BELOW THRESHOLD - CLEAR ERROR
- LDD ES
- SHN 21-1
- MJN CFE13 IF DEVICE OFF OR DOWN
- LDN OFES
- RJM CSF ISSUE *SEQM*
- LDN /COMSDFS/HS0030 ISSUE BML MESSAGE
- RJM IBM
- UJN CFE13 RETURN
- CFE10 LDM DCHA+4
- NJN CFE12 IF NOT PATH VERIFICATION
- CFE11 LDN CM
- RJM DCH DOWN CHANNEL
- LDC 4000+UCFC
- RJM IBM ISSUE ERROR LOG MESSAGE
- UJN CFE14 RETURN
- * DOWN DEVICE WHEN VERIFY ERRORS ARE PRESENT ON ALL CHANNELS.
- CFE12 LDD ES CHECK DEVICE STATE
- LPN 3
- LMN 3
- ZJN CFE13 IF DEVICE DOWN
- LDN DWES RETURN DOWN STATUS
- RJM CSF ISSUE *SEQM*
- LDN /COMSDFS/HS0034 ISSUE BML MESSAGE
- RJM IBM
- CFE13 LCN 0
- CFE14 LJM CFEX RETURN
- CSF SPACE 4,15
- ** CSF - CALL *SEQM* SUBFUNCTION.
- *
- * ENTRY (A) = *SEQM* SUBFUNCTION.
- * (EQ) = EST ORDINAL.
- * (ES - ES+4) = EST ENTRY.
- *
- * USES T3, CM - CM+4.
- *
- * CALLS RAE.
- *
- * MACROS MONITOR, SFA.
- CSF SUBR ENTRY/EXIT
- STD T3
- LDD ES CHECK DEVICE STATE
- LPN 3
- LMN 3
- NJN CSF1 IF NOT *DOWN*
- RJM RAE RELEASE ASSIGNED EQUIPMENT
- CSF1 LDD T3
- STD CM+2 SET SUBFUNCTION FOR *SEQM* CALL
- LDD EQ
- STD CM+1
- LDN 0
- STD CM+4
- MONITOR SEQM
- SFA EST,EQ REREAD EST ENTRY
- ADK EQDE
- CRD ES
- UJN CSFX RETURN
- CVI SPACE 4,10
- ** CVI - CLEAR VERIFICATION INTERLOCK.
- *
- * ENTRY (CVIA) = EST ORDINAL OF DEVICE WITH INTERLOCK SET.
- *
- * USES CM - CM+4.
- *
- * MACROS MONITOR.
- CVI SUBR ENTRY/EXIT
- LDN ZERL
- CRD CM
- LDC ** (EST ORDINAL OF DEVICE WITH INTERLOCK SET)
- CVIA EQU *-1
- ZJN CVIX IF NO INTERLOCK SET
- STD CM+1 SET EST ORDINAL
- LDN CVIS CLEAR DEVICE VERIFICATION INTERLOCK
- STD CM+3
- MONITOR STBM
- * LDN 0
- STM CVIA CLEAR EST ORDINAL
- UJN CVIX RETURN
- DCH SPACE 4,10
- ** DCH - DOWN CHANNEL.
- *
- * ENTRY (A) = ADDRESS OF CHANNEL SUMMARY.
- * ((A)) = CHANNEL NUMBER.
- * ((A)+4) = CHANNEL/CONTROLLER ERROR COUNT.
- * (EQ) = EST ORDINAL OF EQUIPMENT BEING VERIFIED.
- *
- * USES CM - CM+4.
- *
- * MACROS EXECUTE, MONITOR.
- DCH SUBR ENTRY/EXIT
- STD CM+1
- LDI CM+1
- STM DCHA+3 SAVE CHANNEL AND CONCURRENCY FLAG
- LDM 4,CM+1
- NJN DCH1 IF CHANNEL/CONTROLLER ERRORS DETECTED
- LDD EQ SET EST ORDINAL IN REQUEST
- RAM DCHA+4
- DCH1 LDD MA
- CWM DCHA,ON
- LDN 0
- STD CM+1
- EXECUTE 1DS,=
- MONITOR RPPM CALL *1DS* TO DOWN CHANNEL
- UJN DCHX RETURN
- DCHA VFD 18/3L1DS,6/,12/DWNF,12/0,12/4000
- DHV SPACE 4,10
- ** DHV - PERFORM DEVICE VERIFICATION.
- *
- * ENTRY (CC) = CHANNEL COUNT.
- * (T5) = EST ORDINAL.
- * (ES - ES+4) = WORD *EQDE* OF EST ENTRY.
- *
- * EXIT (A) .NE. 0 IF PREMATURE VERIFICATION TERMINATION.
- * ERRORS ENCOUNTERED ARE REFLECTED IN STATISTICS BUFFER.
- *
- * USES T8.
- *
- * CALLS FBP, SVI, DEVICE DEPENDENT PROCESSORS.
- DHV1 LDN 0 SET RETURN STATUS
- DHV SUBR ENTRY/EXIT
- RJM SVI SET VERIFICATION INTERLOCK
- RJM FBP FILL BUFFER WITH WRITE PATTERN
- LDM DVPC SETUP PROCESSOR
- ZJN DHVX IF DEVICE NOT SUPPORTED
- STD T8
- LDC LDNI+METH ALLOW MAINTENANCE CYLINDER MEDIA ERRORS
- ERRPL METH-100 CODE DEPENDS ON VALUE
- STM RCSA
- STM WCSA
- RJM 0,T8 PERFORM DEVICE DEPENDENT PROCESSING
- UJN DHVX RETURN
- FBP SPACE 4,10
- ** FBP - FILL BUFFER WITH PATTERN TO WRITE.
- *
- * EXIT (A) = 0.
- *
- * USES T1.
- FBP SUBR ENTRY/EXIT
- LDC BUFL
- STD T1
- FBP1 LDC BUFP FILL BUFFER WITH PATTERN
- STM BFMS-1,T1
- SOD T1 FILL BUFFER WITH PATTERN
- NJN FBP1 IF NOT END OF BUFFER
- * LDN 0
- UJN FBPX RETURN
- FDC SPACE 4,10
- ** FDC - FORMAT 895 DEVICE MAINTENANCE TRACK.
- *
- * ENTRY (T4) = CHANNEL NUMBER.
- * (EQ) = EST ORDINAL.
- * (DVMT) = MAINTENANCE TRACK NUMBER.
- * (ES - ES+4) = EST ENTRY.
- *
- * EXIT (A) .NE. 0 IF ERROR.
- * (T4) = CHANNEL NUMBER.
- * (T5) = EST ORDINAL.
- * (T6) = MAINTENANCE TRACK NUMBER.
- *
- * CALLS /2VA/FDC.
- *
- * MACROS EXECUTE.
- FDC SUBR ENTRY/EXIT
- LDD T4 SAVE CHANNEL NUMBER
- STM FDCA
- EXECUTE 2VA
- LDC * (CHANNEL NUMBER)
- FDCA EQU *-1
- STD T4
- RJM /2VA/FMT FORMAT 895 MAINTENANCE TRACK
- UJN FDCX RETURN
- HVE SPACE 4,15
- ** HVE - HARDWARE VERIFICATION FOR EXTENDED MEMORY DEVICES.
- *
- * ENTRY (CC) = CHANNEL COUNT.
- * (T5) = EST ORDINAL.
- *
- * EXIT ERRORS NOTED IN STATISTICS BUFFER.
- *
- * USES T6, T7.
- *
- * CALLS RCS, SNC, VBD, WCS.
- *
- * MACROS SETMS, VERIFY.
- HVE VERIFY (DE,DP) ENTRY/EXIT
- SETMS IOCH,(AD,AR,DE,DF,ND),DBUF
- LDM DVMT SETUP MAINTENANCE TRACK
- STD T6
- ZJN HVEX IF UNDEFINED
- HVE1 LDN 1
- STD NS SET NUMBER OF SECTORS TO PROCESS
- HVEA LDN 0
- * LDN 20 IF EM TRACK SIZE IS MORE THAN 2020 WORDS
- STD T7
- HVE2 RJM WCS
- RJM RCS
- RJM VBD VERIFY READ BUFFERS
- LDM SLM
- SBD T7
- NJN HVE2 IF MORE SECTORS TO PROCESS
- RJM SNC SELECT NEXT CHANNEL
- PJN HVE1 IF SECOND CHANNEL PRESENT
- UJP HVEX RETURN
- HVL SPACE 4,15
- ** HVL - HARDWARE VERIFICATION FOR RMS DEVICES.
- *
- * ENTRY (CC) = CHANNEL COUNT.
- * (T4) = FIRST CHANNEL.
- * (T5) = EST ORDINAL.
- * (ES - ES+4) = WORD *EQDE* OF EST ENTRY.
- *
- * EXIT ERRORS NOTED IN STATISTICS BUFFER.
- *
- * USES HC, NS, SP, T6, T7.
- *
- * CALLS FDC, IHD, RCS, SNC, VBD, WCS.
- *
- * MACROS SETMS, VERIFY.
- HVL VERIFY (DB,DC,DD,DF,DG,DH,DI,DJ,DK,DL,DM,DN,DQ,DR,DX,DY,DZ,EA,
- ,EB,EC,ED,EE,EF,EM,EN,EG,EH,EI,EJ,EK,EL,EO,EP,ES,EU,EV,EW)
- SETMS IOCH,(AD,AR,DE,DF,ND),DBUF
- HVLA UJN HVL2 INITIATE HYDRA DIAGNOSTICS
- * PSN (PATH VERIFICATION)
- HVL1 LDC 0 (HYDRA DIAGNOSTICS DISABLED)
- * LDC 2*DDFE+1 (HYDRA DIAGNOSTIC FAILURE DETECTED)
- HVLB EQU *-1
- ZJN HVL3 IF NO DIAGNOSTICS
- HVL2 RJM IHD
- * UJN HVL3 (IF NOT HYDRA DEVICE)
- HVLE EQU HVL2
- HVL3 LDM DVMT SET MAINTENANCE TRACK
- STD T6
- ZJN HVLX IF UNDEFINED
- HVLF RJM FDC FORMAT MAINTENANCE TRACK, IF 895
- * UJN HVL3.1 (IF NOT 895 DEVICE)
- NJP HVL5 IF FORMATTING ERROR
- HVL3.1 LDN 0
- STD HC
- STM HVLD
- STM HVLG INITIALIZE SECTOR NUMBER
- SBM DVSB PHYSICAL SECTORS/BUFFER-1
- STM HVLH INITIALIZE MASK
- LDD T4 STORE CHANNEL IN CASE OF BUFFERED DEVICE
- STM STSB
- LDN DVSC SET NUMBER OF SECTORS TO PROCESS
- STD NS
- LDM DVST RESET FOR OTHER CHANNEL
- STM HVLC
- HVL4 LDC ** SECTOR NUMBER
- HVLG EQU *-1
- ADM DVSB ROUND UP TO BUFFER MULTIPLE
- LPC **
- HVLH EQU *-1
- STD T7
- SBM HVLC
- PJN HVL7 IF ROUNDING EXCEEDS SECTOR LIMIT
- RJM WCS WRITE CONSECUTIVE SECTORS
- HVL5 NJN HVL6 IF WRITE ERRORS
- RJM RCS READ BACK SECTOR DATA
- NJN HVL6 IF READ ERRORS
- RJM VBD VERIFY READ BUFFERS
- HVL6 NJN HVL10 IF DATA VERIFICATION ERRORS
- HVL7 LDM DVSI
- SBN DVSC ADVANCE SECTOR TO NEXT PHYSICAL TRACK
- RAM HVLG
- LDC 0 SECTORS + GAP SECTORS PER LOGICAL TRACK
- HVLC EQU *-1
- SBM HVLG
- SBN 1
- PJN HVL8 IF STILL WITHIN SAME LOGICAL TRACK
- LMC -0
- ADC 0 OFFSET TO NEXT UNIT
- HVLD EQU *-1
- SBN 1
- STM HVLG
- AOD T6 INCREMENT TO NEXT LOGICAL TRACK
- HVL8 AOD HC
- SBM DVHL
- ZJN HVL11 IF ALL HEADS PROCESSED
- HVL9 LJM HVL4 PROCESS NEXT HEAD
- HVL10 NJN HVL12 IF ERROR
- HVL11 STD HC
- LDN MXNB INCREMENT STATISTICS POINTER TO NEXT UNIT
- RAD SP
- LDM DVMT RESET LOGICAL TRACK POINTER
- STD T6
- LDD SU CHANGE FOR NEXT UNIT
- RAM HVLC
- LDD SU CHANGE SECTOR OFFSET TO NEXT UNIT
- RAM HVLD
- STD T7 SET NEXT SECTOR
- LMM SLM
- NJN HVL9 IF ANOTHER UNIT
- HVL12 RJM SNC SELECT NEXT CHANNEL
- PJP HVL1 IF SECOND CHANNEL PRESENT
- LJM HVLX RETURN
- IBM SPACE 4,15
- ** IBM - ISSUE BML MESSAGE.
- *
- * ENTRY (A) = SYMPTOM CODE OF BML MESSAGE.
- * (CH) = CHANNEL NUMBER BEING DOWNED.
- * (EQ) = EST ORDINAL.
- *
- * EXIT (A) = 0.
- *
- * USES CN.
- *
- * CALLS CDA, /2VA/ELM.
- *
- * MACROS EXECUTE.
- IBM SUBR DVF2 ENTRY/EXIT
- STD CN
- RJM CDA GET PHYSICAL DISK ADDRESS
- EXECUTE 2VA
- LDD EQ RESET EQUIPMENT
- STD T5
- RJM /2VA/ELM ISSUE BML MESSAGE
- UJN IBMX RETURN
- IHD SPACE 4,10
- ** IHD - INITIATE HYDRA DIAGNOSTICS.
- *
- * ENTRY (EQ) = EST ORDINAL.
- * (ES - ES+4) = *EQDE* WORD OF EST ENTRY.
- *
- * USES CM - CM+4.
- *
- * CALLS SUT.
- *
- * MACROS MONITOR.
- IHD2 SHN PUTLS CHANGE ORDINAL TO INDEX
- ADD CN+4
- STD CM+4
- SHN -14 FORM *PUT* ENTRY ADDRESS
- ADD CN+3
- STD CM+3
- LDN 1 PARAMETER WORD COUNT
- STD CM+1
- LDN 0 CLEAR UNUSED BYTE
- STD CM+2
- LDD MA STORE MESSAGE BUFFER PARAMETERS
- CWM IHDA,CM+1
- MONITOR UTEM
- * LDN 0 SCAN UNIT TABLE
- IHD3 RJM SUT
- NJN IHD2 IF SPECIFIED DEVICE
- IHD SUBR ENTRY/EXIT
- IHD1 LCN 0
- UJN IHD3 SEARCH FOR *PUT* ENTRY
- IHDA VFD 6/PILL,6/1,6/DVDF,42/1
- IPE SPACE 4,10
- ** IPE - ISSUE REMOVABLE PACK EVENT.
- *
- * ENTRY (ES - ES+4) = EST ENTRY.
- *
- * USES CM - CM+4.
- *
- * MACROS MONITOR.
- IPE SUBR ENTRY/EXIT
- LDD ES+4 READ PACKNAME/DEVICE NUMBER
- SHN 3
- ADK PFGL
- CRD CM
- LDD CM+3
- LPN 77
- NJN IPEX IF NOT AUXILIARY DEVICE
- LDD CM+3 BUILD PACKNAME HASH
- ADD CM+2
- ADD CM+1
- ADD CM
- STD CM+4
- LDN 0 SET EVENT
- STD CM+1
- LDN VSNE/10000
- STD CM+3
- MONITOR EATM
- UJN IPEX RETURN
- LBV SPACE 4,10
- ** LBV - LABEL VERIFICATION.
- *
- * EXIT STATISTICS BUFFER UPDATED WITH LABEL ERROR STATUS.
- *
- * USES CC, NS, SP, T7, CM - CM+4.
- *
- * CALLS SNC, VLS.
- LBV SUBR ENTRY/EXIT
- LDD ES CHECK UNAVAILABLE DEVICE
- SHN 21-6
- MJN LBVX IF NOT TO PERFORM LABEL CHECK
- SHN 21-5-21+6
- MJN LBVX IF BUFFERED DEVICE
- LDD ES+4 CHECK FOR INITIALIZE PENDING
- SHN 3
- ADN STLL
- CRD CM
- LDD CM
- LPC MLIAL+MLIHD+MLIFD
- NJN LBVX IF INITIALIZE PENDING
- ADK /MMF/LSLT
- STD T7
- STD NS
- STD CC
- LDK DVC1 SET POINTER TO FIRST CHANNEL BUFFER
- STD SP
- * VALIDATE LABEL SECTORS ON ALL UNITS.
- LBV1 RJM VLS CHECK CONTENTS OF LABEL
- AOD NS INCREMENT RELATIVE UNIT NUMBER
- LDN MXNB INCREMENT STATISTICS POINTER
- RAD SP
- LDD SU INCREMENT TO NEXT UNIT
- RAD T7
- SBM SLM
- MJN LBV1 IF NOT FINISHED WITH LOGICAL TRACK
- LDN /MMF/LSLT
- STD T7 RESET STARTING SECTOR NUMBER
- ADK 0-/MMF/LSLT
- STD NS RESET RELATIVE UNIT NUMBER
- RJM SNC SET NEXT CHANNEL
- PJN LBV1 IF ALL CHANNELS NOT PROCESSED
- UJP LBVX RETURN
- RCS SPACE 4,25
- ** RCS - READ CONSECUTIVE SECTORS.
- *
- * *RCS* READS (NS) CONSECUTIVE SECTORS IN CONSECUTIVE BUFFERS
- * AT (DBUF). IF A READ ERROR OCCURS, ((SP)+RCTB) IS INCREMENTED
- * AND READ ERROR CODE SAVED IN ((SP)+RCDB).
- *
- * ENTRY (NS) = NUMBER OF SECTORS TO READ.
- * (SP) = STATISTICS GATHERING POINTER.
- * (T4 - T7) = MASS STORAGE DRIVER PARAMETERS.
- *
- * EXIT (A) = READ ERROR COUNT.
- *
- * USES MT, T7, T8, T9.
- *
- * CALLS AEC, RDS.
- *
- * MACROS SETMS.
- RCS5 SETMS POSITION FORCE SEEK ON NEXT I/O REQUEST
- * LDN 0
- RCS SUBR ENTRY/EXIT
- LDN 0 SET MEDIA ERROR THRESHOLD
- * LDN METH (I/O ON MAINTENANCE CYLINDER)
- RCSA EQU *-1
- STD MT
- LDC DBUF SET BUFFER POINTER
- STD T8
- LDN 0 SET SECTOR NUMBER
- STD T9
- RCS1 SBD NS
- ZJN RCS5 IF ALL SECTORS READ
- LDM DVBE,T9
- NJN RCS3 IF SECTOR HAD WRITE ERRORS
- LDD T8 SET UP BUFFER ADDRESS FOR READ
- RJM RDS
- PJN RCS3 IF NO ERROR
- RJM AEC ANALYZE ERROR CODE
- NJN RCS2 IF NO CONTROLLER RESERVE
- LDN 1 SET ERROR INDICATION
- UJN RCSX RETURN
- RCS2 STM DVBE,T9
- STM RCDB,SP SAVE LATEST READ ERROR CODE
- PJN RCS3 IF NOT TOO MANY MEDIA OR OTHER ERRORS
- AOM RCTB,SP SET READ ERROR COUNT
- UJN RCSX RETURN
- RCS3 AOD T7 ADVANCE TO NEXT SECTOR
- LDC BUFL INCREMENT TO NEXT READ BUFFER
- RAD T8
- AOD T9 INCREMENT SECTOR NUMBER
- UJP RCS1 PROCESS NEXT SECTOR
- RAE SPACE 4,10
- ** RAE - RELEASE ASSIGNED EQUIPMENT.
- *
- * USES CM - CM+4.
- *
- * MACROS MONITOR.
- RAE SUBR ENTRY/EXIT
- LDC 0
- RAEA EQU *-1
- ZJN RAEX IF EQUIPMENT NOT ASSIGNED
- STD CM+1
- MONITOR DEQM RELEASE EQUIPMENT ASSIGNMENT
- * LDN 0
- STM RAEA
- UJN RAEX RETURN
- RLT SPACE 4,10
- ** RLT - REPAIR LABEL TRACK.
- *
- * EXIT TO *CFE9* IF DEVICE NOT OWNED BY THIS MAINFRAME.
- *
- * USES CM - CM+4, CN - CN+4, IR+3.
- *
- * CALLS *1CK*, *1RU*.
- *
- * MACROS EXECUTE.
- RLT LDD ES
- SHN 21-4
- MJN RLT1 IF ISHARED
- EXECUTE 1CK REWRITE LABELS
- * LJM IMV RERUN *1MV*
- RLT1 LDD ES+4
- SHN 3
- ADK SDGL
- CRD CM
- ADK DULL-SDGL
- CRD CN
- LDD CN+2
- LPN 17
- ADN 1
- SHN 1
- LMD CM+4
- LPN 76
- ZJN RLT2 IF INTERLOCKED BY THIS MAINFRAME
- LJM CFE9 PROCESS THE ERRORS
- RLT2 STD IR+3 SET *1RU* FUNCTION CODE
- EXECUTE 1RU REWRITE LABELS
- * LJM IMV RERUN *1MV*
- SDA SPACE 4,10
- ** SDA - SET DEVICE AVAILABLE.
- *
- * ENTRY (A) = *SEQM* SUBFUNCTION.
- * (EQ) = EST ORDINAL.
- *
- * EXIT (A) = 0.
- *
- * USES T3, CM - CM+4.
- *
- * CALLS CEQ, CSF.
- *
- * MACROS MONITOR.
- SDA SUBR ENTRY/EXIT
- STD T3
- RJM CEQ CLEAR ERRORS FROM UNIT I/O QUEUE
- LDD T3
- RJM CSF ISSUE *SEQM* FUNCTION
- LDD EQ
- STD CM+1
- LDN STDE
- STD CM+2
- LDN CERS CLEAR *DE* DEVICE ERROR STATUS
- STD CM+3
- MONITOR SMDM
- LDN ZERL CLEAR *CMS* TIMERS
- CRD CM
- ADN RDSL-ZERL
- CWD CM
- ERRNZ WISE CODE DEPENDS ON VALUE
- LDD EQ
- STD CM+3
- MONITOR EATM ISSUE EVENT FOR THIS DEVICE
- * LDN 0
- UJN SDAX RETURN
- SNC SPACE 4,15
- ** SNC - SELECT NEXT CHANNEL.
- *
- * ENTRY (CC) = CURRENT CHANNEL TABLE ORDINAL.
- *
- * EXIT (A) .EQ. CHANNEL NUMBER.
- * .LT. 0 IF NO MORE CHANNELS.
- * (T4) CHANNEL SELECTED.
- * (CC) INCREMENTED.
- * (SP) = SECOND CHANNEL STATISTICS POINTER.
- * CURRENT CHANNEL RELEASED.
- *
- * USES CC, SP, T4.
- *
- * MACROS ENDMS.
- SNC1 LCN 0
- SNC SUBR ENTRY/EXIT
- ENDMS
- AOD CC ADVANCE CHANNEL TABLE INDEX
- LMD DA
- ZJN SNC1 IF NO MORE CHANNELS
- LDC DVC2
- STD SP
- LDM TSCH,CC SET CHANNEL AND CONCURRENCY FLAG
- STD T4
- UJN SNCX RETURN
- TSCH CON 0 PRIMARY CHANNEL (FIRST IF SINGLE ACCESS)
- CON 0 SECONDARY CHANNEL
- SUT SPACE 4,15
- ** SUT - SCAN (BUFFERED I/O) UNIT TABLE.
- *
- * ENTRY (A) .LT. 0 IF INITIAL CALL.
- * (CN) = CURRENT *PUT* ORDINAL IF NOT INITIAL CALL.
- * (EQ) = EST ORDINAL.
- * (ES - ES+4) = EST ENTRY.
- * (CN+3 - CN+4) = FWA OF *PUT* IF NOT INITIAL CALL.
- *
- * EXIT (A) = 0 IF END OF SCAN.
- * = (CN) = *PUT* ORDINAL.
- * (CN+3 - CN+4) = FWA OF PHYSICAL UNIT TABLE.
- *
- * USES CM - CM+4, CN - CN+4.
- SUT1 SOD CN
- ZJN SUTX IF END OF UNIT TABLE
- SUT2 LDD CN+3
- SHN 14-PUTLS
- ADD CN FORM *PUT* ADDRESS
- SHN PUTLS
- ADD CN+4
- ADK UNCT READ UNIT CONTROL WORD
- CRD CM
- LDD CM+1 CHECK EST ORDINAL
- LMD EQ
- NJN SUT1 IF NOT REQUIRED DEVICE
- LDD CN
- SUT SUBR ENTRY/EXIT
- PJN SUT1 IF NOT INITIAL CALL
- LDD ES+4
- SHN 3
- ADN DILL FETCH DEVICE STATUS FROM MST
- CRD CM
- LDD CM+2
- ZJN SUTX IF NOT BUFFERED DEVICE
- LDC BIOL
- CRD CN
- LDD CN+1 GET *PUT* DESCRIPTOR
- SHN 14
- LMD CN+2
- ADN PUTP
- CRD CN
- LDD CN+3
- LPN 77 CLEAR FLAGS
- STD CN+3
- UJP SUT2 BEGIN UNIT TABLE SCAN
- SVF SPACE 4,10
- ** SVF - SET VERIFICATION FAILURE COUNT.
- *
- * ENTRY (A) = VERIFICATION FAILURE COUNT TO SET.
- *
- * EXIT FAILURE COUNT IN *CTLL* MST WORD UPDATED.
- *
- * USES CM - CM+4.
- *
- * MACROS MONITOR.
- SVF SUBR ENTRY/EXIT
- STM SVFA+4
- LDN 0
- STD CM+2
- LDD ES+4 BASE TABLE ADDRESS
- SHN 3
- STD CM+4
- SHN -14
- STD CM+3
- LDN 1
- STD CM+1
- LDD MA UPDATE FAILURE COUNT
- CWM SVFA,ON
- MONITOR UTEM
- UJN SVFX RETURN
- SVFA VFD 1/0,5/CTLL,6/12D,6/48D,42/0
- SVI SPACE 4,10
- ** SVI - SET VERIFICATION INTERLOCK.
- *
- * ENTRY (T5) = EST ORDINAL.
- * (ES - ES+4) = WORD *EQDE* OF EST ENTRY.
- *
- * EXIT (CVIA) = EST ORDINAL OF DEVICE WITH INTERLOCK SET.
- *
- * USES CM - CM+4.
- *
- * MACROS DELAY, MONITOR.
- SVI SUBR ENTRY/EXIT
- LDD ES
- SHN 21-11
- PJN SVIX IF NOT SHARED DEVICE
- SHN 21-4-21+11
- MJN SVIX IF ISD DEVICE
- SVI1 LDN ZERL
- CRD CM
- LDD T5 SET EST ORDINAL
- STD CM+1
- STM CVIA
- LDN SVIS SET DEVICE VERIFICATION INTERLOCK
- STD CM+3
- MONITOR STBM
- LDD CM+1
- ZJN SVIX IF INTERLOCK SET SUCCESSFULLY
- DELAY 20B DELAY 2 MILLISECONDS
- UJN SVI1 RETRY
- VBD SPACE 4,15
- ** VBD - VERIFY BUFFER DATA.
- *
- * FOR EACH BUFFER THAT DOES NOT VERIFY, ((SP)+VCTB) IS
- * INCREMENTED.
- *
- * ENTRY (NS) = NUMBER OF BUFFERS TO PROCESS.
- * (SP) = STATISTICS GATHERING POINTER.
- * (T7) = LAST SECTOR TO CHECK + 1.
- *
- * EXIT (A) = DATA ERROR COUNT.
- *
- * USES CN, T1, T2, T3.
- VBD SUBR ENTRY/EXIT
- LDC DBUF SET BUFFER POINTER
- STD T3
- LDN 0 SET SECTOR NUMBER
- STD T2
- VBD1 SBD NS
- ZJN VBDX IF ALL BUFFERS PROCESSED
- LDD T3
- STD T1 SET BUFFER ADDRESS TO CHECK
- ADC BUFL
- STD T3
- LDM DVBE,T2
- NJN VBD3 IF ERROR OCCURRED
- LDD T7 COMPUTE SECTOR NUMBER
- SBD NS
- ADD T2
- STD T0
- ADN 1
- LMI T1
- NJN VBD4 IF MISMATCH ON SECTOR
- AOD T1
- LDI T1
- LMD HN
- NJN VBD4 IF MISMATCH ON WORD COUNT
- AOD T1
- VBD2 LDC BUFP
- LMI T1
- NJN VBD4 IF PATTERN MISMATCH
- AOD T1
- LMD T3
- NJN VBD2 IF NOT END OF BUFFER
- VBD3 AOD T2
- UJN VBD1 CHECK FOR END OF BUFFERS
- VBD4 LDD T0 SET (T7) TO SECTOR IN ERROR
- STD T7
- AOM VCTB,SP SET DATA ERROR COUNT
- UJP VBDX RETURN
- VLS SPACE 4,15
- ** VLS - VERIFY LABEL SECTOR.
- *
- * ENTRY (T7) = LABEL SECTOR NUMBER.
- * (NS) = RELATIVE UNIT NUMBER.
- * (SP) = ERROR STATISTICS BUFFER POINTER.
- *
- * EXIT ERROR INDICATORS SET IN STATISTICS BUFFER.
- *
- * USES MT, T4, T6, T7, T8, CM - CM+4, CN - CN+4, IR - IR+4.
- *
- * CALLS AEC, RDS, VLT, *5ME*.
- *
- * MACROS ENDMS, EXECUTE, SETMS.
- VLS11 RJM AEC ANALYZE ERROR CODE
- ZJN VLS12 IF DRIVE OR CONTROLLER RESERVE
- STM LREB,SP SAVE LABEL READ ERROR
- LDK REFG SET READ ERROR FLAG
- VLS12 STM LEFB,SP
- ENDMS
- VLS SUBR ENTRY/EXIT
- VLS0 SETMS IOCH,(AD,AR,DE,DF,ND)
- * LDN 0 SET MEDIA ERROR THRESHOLD
- STD MT
- LDM TSCH,CC SET CHANNEL
- STD T4
- STM STSB STORE CHANNEL IN CASE BUFFERED DEVICE
- LDD ES+4 READ MST DATA
- SHN 3
- ADN ALGL
- CRD CM
- LDD CM+1 SET LABEL TRACK NUMBER
- STD T6
- LDC BFMS
- RJM RDS READ SECTOR
- VLS0.1 MJP VLS11 IF MASS STORAGE ERROR
- * CHECK CONTENTS OF LABEL.
- * LDN 0
- STD T8 SET ERROR STATUS
- LDM LLSS
- SHN -1
- ZJN VLS0.2 IF NOT LEVEL 2 LABEL
- LDD NS
- NJN VLS0.2 IF NOT RELATIVE UNIT ZERO
- RJM VLT VERIFY LEVEL 2 LABEL
- MJN VLS0.1 IF TRT READ ERROR
- STD T8 SET ERROR STATUS
- LPK CKFG
- NJP VLS12 IF CHECKSUM ERROR
- VLS0.2 LDM BFMS CHECK CONTROL BYTES
- LMC 3777
- ZJN VLS1 IF PROPER CONTROL BYTE
- LDK CBFG SET BAD CONTROL BYTE FLAG
- RAD T8
- VLS1 LDM BFMS+1
- LMN 77
- ZJN VLS2 IF PROPER WORD COUNT
- LDK WCFG SET BAD WORD COUNT FLAG
- RAD T8
- VLS2 LDM FTSS
- LMD T6
- ZJN VLS3 IF PROPER TRACK
- LDK TNFG SET BAD TRACK NUMBER FLAG
- RAD T8
- VLS3 LDM E4SS COMPARE EQUIPMENT TYPE WITH EST
- STM EMNB,SP
- LMM DVDT
- ZJN VLS6 IF MATCHING EQUIPMENT MNEMONIC
- LMN 1RP&1RE
- VLSA PSN
- * ZJN VLS6 (IF NON-MATCHING EM EQUIPMENT TYPES)
- LDK EQFG SET BAD EQUIPMENT MNEMONIC
- RAD T8
- VLS6 LDD ES+4 GET FAMILY/PACKNAME
- SHN 3
- ADN PFGL
- CRD CN
- LDD MA COPY LABEL NAME TO MESSAGE BUFFER
- CWM N4SS+5*PFGL,ON
- SBN 1 MOVE NAME TO DIRECT CELLS
- CRD CM
- LDD CM
- LMD CN
- NJN VLS7 IF NOT THE SAME LABEL
- LDD CM+1
- LMD CN+1
- NJN VLS7 IF NOT THE SAME LABEL
- LDD CM+2
- LMD CN+2
- NJN VLS7 IF NOT THE SAME LABEL
- LDD CM+3
- LMD CN+3
- SCN 77 CHECK DEVICE NUMBER SEPARATELY
- NJN VLS7 IF NOT THE SAME LABEL
- LDD CM+4
- LMD CN+4
- SCN 70
- ZJN VLS8 IF GOOD COMPARE
- VLS7 LDK FPFG SET FAMILY/PACK NAME ERROR FLAG
- RAD T8
- VLS8 LDD CM+3 COMPARE DEVICE NUMBERS
- LMD CN+3
- LPN 77
- ZJN VLS9 IF DEVICE NUMBERS MATCH
- LDK DNFG SET BAD DEVICE NUMBER FLAG
- RAD T8
- VLS9 LDD CM
- STM FMNB,SP
- LDD CM+1
- STM FMNB+1,SP
- LDD CM+2
- STM FMNB+2,SP
- LDD CM+3
- STM DNMB,SP
- LDD CM+4 CHECK RELATIVE UNIT NUMBER
- SHN -3
- LPN 7
- LMD NS
- ZJN VLS10 IF CORRECT UNIT NUMBER
- LDK RUFG SET RELATIVE UNIT NUMBER ERROR
- VLS10 RAD T8
- LPK FPFG+DNFG+RUFG
- NJN VLS10.2 IF WRONG PACK
- VLS10.1 LDD T8
- LJM VLS12 RETURN
- VLS10.2 LDD ES
- SHN 21-11
- PJN VLS10.1 IF NOT SHARED
- SHN 11-21
- LPN 3
- LMN 3
- ZJN VLS10.1 IF DOWN
- LDD T5
- STD IR+3 SET EST ORDINAL
- LDK BFMS
- STD IR+2 SET BUFFER ADDRESS
- EXECUTE 5ME
- LDD IA RESTORE INPUT REGISTER
- CRD IR
- LDN /MMF/LSLT RESET LABEL SECTOR
- STD T7
- LJM VLS0 RETRY VERIFICATION
- VLT SPACE 4,15
- ** VLT - VERIFY LEVEL TWO LABEL.
- *
- * ENTRY (NS) = RELATIVE UNIT NUMBER.
- * (SP) = ERROR STATISTICS BUFFER POINTER.
- * (T7) = LABEL SECTOR NUMBER.
- * (ES - ES+4) = *EQDE* WORD OF EST ENTRY.
- *
- * EXIT (A) = ERROR INDICATORS.
- *
- * USES T1, T7, T9, CM - CM+4.
- *
- * CALLS CLC, RDS.
- VLT6 LDK CKFG CHECKSUM ERROR
- VLT SUBR ENTRY/EXIT
- RJM CLC COMPUTE LABEL CHECKSUM
- LMM CKSS
- NJN VLT6 IF INCORRECT CHECKSUM
- LDM N4SS+SDGL*5+4 CHECK MST/TRT INTERLOCK
- LPN 76
- ZJN VLT1 IF NOT INTERLOCKED
- SHN -1
- STD T1
- LDD ES+4 COMPARE INTERLOCK WITH THIS MF-S INDEX
- SHN 3
- ADK DULL
- CRD CM
- LDD CM+2
- LPN 17
- ADN 1
- LMD T1
- ZJN VLT1 IF INTERLOCKED BY THIS MAINFRAME
- LDD T1
- SHN 2
- RAD T1
- LDM DISS-5+3,T1
- LPN 1
- LMN 1
- ZJN VLT1 IF INTERLOCKED FOR DEVICE RECOVERY
- LDK ILFG
- VLT1 STD T9
- LDD NS
- NJP VLT4 IF NOT RELATIVE UNIT ZERO
- LDM N4SS+TDGL*5+2 CHECK MST AND TRT COUNTERS
- SHN -6
- ADN 1
- RAD T7
- LDC DBUF
- RJM RDS READ LAST SECTOR OF TRT
- MJN VLT5 IF READ ERROR
- LDM N4SS+SDGL*5+2
- LMM DBUF+2+77*5+2
- NJN VLT2 IF COUNTERS DON-T MATCH
- LDM N4SS+SDGL*5+3
- LMM DBUF+2+77*5+3
- NJN VLT2 IF COUNTERS DON-T MATCH
- LDM N4SS+SDGL*5+4
- LMM DBUF+2+77*5+4
- SCN 77
- ZJN VLT3 IF COUNTERS MATCH
- VLT2 LDD TH COUNTER MISMATCH
- * LDK CMFG
- ERRNZ CMFG-1000B
- RAD T9
- VLT3 LDN /MMF/LSLT RESET LABEL SECTOR
- STD T7
- VLT4 LDD T9
- VLT5 LJM VLTX RETURN
- VSF SPACE 4,15
- ** VSF - VERIFY SYSTEM FILE.
- *
- * ENTRY (EQ) = (T5) = EST ORDINAL.
- * (ES - ES+4) = EST ENTRY.
- *
- * EXIT (A) .LT. 0 IF I/O ERROR.
- *
- * USES CM - CM+4, CN - CN+4.
- *
- * CALLS IRA, WSF.
- *
- * MACROS SFA.
- VSF SUBR ENTRY/EXIT
- LDD ES
- LPC 2003 CHECK DEVICE STATE
- LMC 2003
- NJN VSFX IF NOT DOWN SYSTEM DEVICE
- LDN FNTP
- CRD CM FETCH FNT POINTER
- LDD CM
- SHN 14 READ SYSTEM FILE FST
- LMD CM+1
- ERRNZ SYFO CODE DEPENDS ON VALUE
- ADN FSTG
- CRD CN
- RJM IRA INITIALIZE RANDOM ACCESS PROCESSORS
- * WRITE SYSTEM FILE - SYSTEM + EOI SECTORS.
- LDD CN+1 PROCESS SYSTEM FILE
- RJM WSF
- MJN VSFX IF I/O ERROR
- * WRITE PP LIBRARY FILE - SYSTEM + EOI SECTORS.
- LDM PLSS PROCESS PP LIBRARY FILE
- RJM WSF
- UJP VSFX RETURN
- WCS SPACE 4,15
- ** WCS - WRITE CONSECUTIVE SECTORS.
- *
- * ENTRY (NS) = NUMBER OF SECTORS TO WRITE.
- * (SP) = STATISTICS GATHERING POINTER.
- * (T4 - T7) = MASS STORAGE DRIVER PARAMETERS.
- * (BFMS) = DATA TO WRITE.
- *
- * EXIT (A) = WRITE ERROR COUNT.
- *
- * USES MT, T7, T9.
- *
- * CALLS AEC, WDS.
- WCS6 LDN 0 RESTORE ORIGINAL SECTOR NUMBER
- SBD NS
- RAD T7
- LDN 0
- WCS SUBR ENTRY/EXIT
- LDN 0 SET MEDIA ERROR THRESHOLD
- * LDN METH (I/O ON MAINTENANCE CYLINDER)
- WCSA EQU *-1
- STD MT
- LDD HN
- STM BFMS+1 SET SECTOR WORD COUNT
- LDN 0
- STD T9 INITIALIZE SECTOR NUMBER
- LDD T7
- WCS1 ADN 1 SET SECTOR LINKAGE
- STM BFMS
- AOD T9
- SBD NS
- ERRNZ WLSF CODE DEPENDS ON VALUE
- ZJN WCS2 IF WRITING LAST SECTOR
- PJN WCS6 IF WRITING COMPLETE
- LDC WCSF
- WCS2 ADC BFMS
- RJM WDS
- PJN WCS3 IF NO ERROR
- RJM AEC ANALYZE ERROR CODE
- NJN WCS3 IF NOT DRIVE OR CONTROLLER RESERVE
- STM DVBE-1,T9
- LDN 1 SET ERROR INDICATOR
- WCS2.1 UJP WCSX RETURN
- WCS3 STM DVBE-1,T9
- STM WCDB,SP SAVE LATEST WRITE ERROR CODE
- MJN WCS4 IF TOO MANY MEDIA OR OTHER ERRORS
- AOD T7
- UJP WCS1 PROCESS NEXT SECTOR
- WCS4 SHN 21-20
- PJN WCS5 IF NOT DIAGNOSTIC FAILURE
- STM HVLB
- WCS5 AOM WCTB,SP SET WRITE ERROR COUNT
- UJN WCS2.1 RETURN
- WSF SPACE 4,15
- ** WSF - WRITE SYSTEM FILE.
- *
- * ENTRY (A) = FIRST TRACK OF FILE.
- * (EQ) = ORDINAL OF DEVICE BEING VERIFIED.
- *
- * EXIT (A) .LT. 0 IF I/O ERROR.
- *
- * USES T5, T6, T7.
- *
- * CALLS RDS, SEI, WEI, WSS.
- *
- * MACROS ENDMS, SETMS.
- WSF SUBR ENTRY/EXIT
- STD T6
- LDN 0 SYSTEM SECTOR NUMBER
- STD T7
- SETMS READSYS,(AD,DF,ND)
- LDC BFMS READ SYSTEM SECTOR
- RJM RDS
- MJN WSFX IF READ ERROR
- ENDMS
- LDD EQ SELECT DEVICE BEING VERIFIED
- STD T5
- SETMS IO,(AD,DF,ND,NR)
- RJM WSS WRITE SYSTEM SECTOR
- MJN WSFX IF WRITE ERROR
- RJM SEI LOCATE EOI ON SYSTEM FILE
- SETMS POSITION
- RJM WEI WRITE EOI SECTOR
- MJN WSF1 IF WRITE ERROR
- ENDMS
- * LDN 0
- WSF1 UJP WSFX RETURN
- SPACE 4,10
- ** COMMON DECKS.
- *CALL COMPCLC
- IRA$ EQU 0 SET *IRA* INITIALIZATION COMPLETE
- *CALL COMPSEI
- *CALL COMPIRA
- *CALL COMPTLB
- *CALL COMPWEI
- *CALL COMPWSS
- TITLE BUFFERS.
- SPACE 4,10
- ** BUFFERS.
- BUF EQU *
- BEGIN BSSN BUF
- * CELLS SET BY PRESET.
- DVDT BSSN 1 DEVICE TYPE
- DVMT BSSN 1 DEVICE MAINTENANCE TRACK
- DVHL BSSN 1 DEVICE HEAD COUNT LIMIT PER TRACK
- DVSI BSSN 1 DEVICE SECTOR INCREMENT TO NEXT HEAD
- CVNF BSSN 1 CONVERSION FACTOR
- DVST BSSN 0 DEVICE SECTORS BETWEEN LOGICAL TRACKS
- LSLT BSSN 1 LOGICAL SECTORS/LOGICAL TRACK
- LSCY BSSN 2 LOGICAL SECTORS/CYLINDER
- LSPT BSSN 1 LOGICAL SECTORS/PHYSICAL TRACK
- DVSB BSSN 1 PHYSICAL SECTORS / BUFFER - 1
- DVPC BSSN 1 DEVICE HARDWARE VERIFICATION PROCESSOR
- * ZEROED OUT TABLES.
- DVC1 BSSN 10*MXNB CHANNEL 1 STATISTICS BUFFER
- DVC2 BSSN 10*MXNB CHANNEL 2 STATISTICS BUFFER
- EZOT BSSN 0 END OF ZEROED OUT TABLES
- * SCRATCH CELLS.
- .1 SET BFMS-*
- MXSC EQU .1/503 MAXIMUM SECTORS IN BUFFER
- DVBE BSSN MXSC DEVICE VERIFICATION ERROR FLAG BUFFER
- DBUF BSSN MXSC*BUFL DATA VERIFICATION DATA BUFFER
- END BSSN
- OVLA EQU DVBE+5 *2VA* OVERLAY LOAD POINT
- SPACE 4,10
- ERRNG BFMS-DBUF-MXSC*BUFL OVERFLOW INTO WRITE BUFFER
- ERRNG MXSC-DVSC NOT ENOUGH SECTORS FOR DEVICE VERIFY
- ERRNG EPFW-OVLA-ZSCL *0SC* OVERLAYED BY ERROR PROCESSOR
- TITLE PRESET TABLES.
- TDVC SPACE 4,10
- ** TDVC - TABLE OF DEVICE CONSTANTS.
- TDVC BSS 0
- TDVCL EQU 13 TABLE ENTRY LENGTH
- .A SET TDVCL+4
- TDVCS EQU .A/5 TABLE ENTRY SIZE (CM WORD COUNT)
- LIST G
- ECHO ,DT="MSEQ"
- .1 IF DEF,PRC._DT
- CON 2R_DT DT
- CON MCLT_DT LOGICAL TRACK OF MAINTENANCE CYLINDER
- .2 IFEQ PRC.DT,HVL
- CON PTCY_DT PHYSICAL TRACKS PER CYLINDER
- .A SET TT_DT+1
- CON LSPS_DT*PSPT_DT/.A SECTOR OFFSET TO NEXT HEAD POSITION
- CON CFS_DT CONVERSION FACTOR SHIFT COUNT
- CON SL_DT+GS_DT LOGICAL SECTORS/LOGICAL TRACK
- .A SET PSPT_DT*PTCY_DT-SPSC_DT PHYSICAL SECTORS/CYLINDER
- .B SET .A*LSPS_DT LOGICAL SECTORS/CYLINDER
- .C SET .B/10000
- .D SET .C*10000
- CON .C UPPER LOGICAL SECTORS/CYLINDER
- CON .B-.D LOWER LOGICAL SECTORS/CYLINDER
- CON LSPT_DT LOGICAL SECTORS/PHYSICAL TRACK
- .3 IF DEF,PSBF_DT
- CON 37 LOGICAL SECTOR BUFFER ROUNDING FACTOR
- .3 ELSE
- CON 0
- .3 ENDIF
- .2 ELSE
- BSSZ TDVCL-3
- .2 ENDIF
- CON PRC._DT DEVICE TYPE PROCESSOR
- .1 ENDIF
- ENDD
- LIST *
- BSSZ TDVCL END OF TABLE - NULL PARAMETERS
- TFCN SPACE 4,10
- ** TFCN - TABLE OF FUNCTION PROCESSORS.
- *
- * ENTRY - 3 BYTES.
- * BYTE 0 = FUNCTION PROCESSOR.
- * BYTE 1 = REPAIR PROCESSOR.
- * BYTE 2 = REPAIRABLE ERRORS.
- TFCN BSS 0
- DVFC FCN DVF,RLT,REFG+CKFG+CMFG
- ONFC FCN ONF,RLT,REFG+CKFG+CMFG
- IDFC FCN IDF,RLT,REFG+CKFG+CMFG
- OFFC FCN LVA,RLT,REFG+CKFG+CMFG
- MVFC FCN MVA,CFE9,0
- UCFC FCN UCF,CFE9,0
- SCFC FCN SCF,DVF2,0
- MXFN FCN
- TITLE PRESET.
- PRS SPACE 4,30
- ** PRS - PRESET.
- *
- * ENTRY (IR - IR+4) = *1MV* CALL.
- *
- * EXIT (CC) = (DA) = CHANNEL COUNT.
- * (FC) = FUNCTION CODE.
- * (SU) = SINGLE UNIT SECTOR COUNT FROM MST.
- * (SP) = POINTER TO STATISTICS BUFFER.
- * (T4) = FIRST CHANNEL.
- * (T5) = EST ORDINAL.
- * (T7) = 0.
- * (DP - DP+4) = 0 ((DP) = 1 IF EXTENDED MEMORY).
- * (ES - ES+4) = *EQDE* WORD OF EST ENTRY.
- * (DVSA) = SINGLE UNIT SECTOR + GAP COUNT.
- * (DVHL) = HEAD COUNT LIMIT FOR DEVICE.
- * (DVMT) = MAINTENANCE CYLINDER LOGICAL TRACK.
- * (DVSI) = SECTOR INCREMENT FOR FUNCTION.
- *
- * ERROR TO *DPP* IF BAD CALL.
- *
- * USES T1, T8, CM - CM+4, CN - CN+4, ES - ES+4.
- PRS BSS ENTRY
- LDD IR+3
- SHN -6
- STD FC EXTRACT FUNCTION CODE
- SHN 1
- ADD FC
- STD T1
- SBN MXFN*3
- PJN PRS1 IF INCORRECT FUNCTION CODE
- LDM TFCN,T1 SET PROCESSOR ADDRESS
- STM PRSB
- LDM TFCN+1,T1 SET REPAIR PROCESSOR ADDRESS
- STM CFEB
- LDM TFCN+2,T1 SET REPAIRABLE ERRORS
- STM CFEA
- LDK ESTP
- CRD CM
- LDD EQ SET EST ORDINAL
- STD T5
- SBD CM+3
- PJN PRS1 IF OUT OF EST
- SFA EST,T5 READ EST ENTRY
- ADK EQDE
- CRD ES
- ADK EQAE-EQDE
- CRD CN
- LDD ES
- SHN 21-13
- MJN PRS2 IF DEVICE IS MASS STORAGE
- PRS1 LJM DPP DROP PP
- PRS2 LDD ES+3
- LMC 2RDC
- ZJN PRS2.1 IF 895 TYPE DEVICE
- ISTORE HVLF,(UJN HVL3.1) DISABLE 895 FORMATTING
- LDD ES+3
- LMC 2RDF
- ZJN PRS2.2 IF 887 TYPE (HYDRA) DEVICE
- LMN 2RDH&2RDF
- ZJN PRS2.2 IF 887 TYPE (HYDRA) DEVICE
- PRS2.1 ISTORE HVLE,(UJN HVL3) DISABLE HYDRA DIAGNOSTICS
- PRS2.2 LDD ES+4 READ MST DATA
- SHN 3
- ADN MDGL
- CRD CM
- ADN DILL-MDGL GET DRIVER WORD
- CRD DP
- LDD CM+1 SAVE SINGLE UNIT SECTOR LIMIT
- LPC 3777
- STD SU
- * SEARCH FOR DEVICE IN TABLE.
- LDC TDVC-TDVCL INITIALIZE POINTER INTO DEVICE CONSTANTS
- STD T1
- LDD DP+3
- NJN PRS3 IF BUFFERED DEVICE
- LDC *
- ORG *-1 TRANSFER FOR NON-BUFFERED DEVICE
- LOC CDAA
- UJN CDA9 PROCESS *LDAM* DEVICE
- LOC *O
- STM CDAA
- PRS3 LDN TDVCL INCREMENT POINTER
- RAD T1
- LDI T1 CHECK DEVICE MNEMONIC
- ZJN PRS4 IF DEVICE NOT FOUND
- LMD ES+3
- NJN PRS3 IF NO MATCH
- PRS4 STD CC
- STD T7
- STD DA
- LDD T1 TRANSFER DEVICE PARAMETERS
- STM PRSA
- LDN TDVCS SET WORD COUNT
- STD T1
- ERRNG 6-TDVCS TRANSFER OVERFLOWS MESSAGE BUFFER
- LDD MA
- CWM 0,T1 MOVE TABLE ENTRY INTO MESSAGE BUFFER
- PRSA EQU *-1
- SBN TDVCS COPY ENTRY TO DEVICE PARAMETER BLOCK
- CRM DVDT,T1
- LDN ZERL CLEAR DEVICE SEEK PARAMETERS
- CRD DP
- LDN 77 SET LOGICAL TO PHYSICAL SECTOR CONVERSION
- SBM CVNF
- RAM CDAB
- LDD ES+3
- STM DVDT
- LMC 2RDP
- ZJN PRS5 IF ESM
- LMN 2RDE&2RDP
- NJN PRS6 IF NOT UEM
- PRS5 ISTORE VLSA,(ZJN VLS6)
- AOD DP AVOID ADDRESS CONVERSION
- LDD CN+2
- SHN -6
- LPN 3
- ZJN PRS6 IF XM TRACK SIZE IS 2020 WORDS
- LDD ES+4
- SHN 3 FORM MST ADDRESS
- ADK ALGL
- CRD CM
- LDD CM+1
- STM DVMT USE LABEL TRACK FOR VERIFICATION
- LDN 20
- RAM HVEA BEGIN VERIFICATION AT SECTOR 20
- PRS6 LDD ES+3
- LMC 2RDE
- ZJN PRS9 IF EXTENDED MEMORY
- LDN ES+1
- STD T1
- PRS7 LDI T1 SET CHANNEL IN TABLE
- LPN 77
- STM TSCH,DA
- LMI T1
- SHN 0-12
- LMN 2
- NJN PRS8 IF ACCESS NOT PRESENT OR DISABLED
- AOD DA
- PRS8 AOD T1 ADVANCE CHANNEL BYTE ADDRESS
- LMN ES+3
- NJN PRS7 IF ANOTHER CHANNEL BYTE
- SOD DA
- MJP DPP IF NO CHANNELS
- ZJN PRS10 IF SINGLE ACCESS DEVICE
- LDD ES
- SHN 21-6
- PJN PRS10 IF DEVICE IS AVAILABLE
- LDD ES+1
- LMD ES+2
- LPC 400
- PRS9 ZJN PRS10 IF SAME CONTROLLER TYPES
- LDD ES+2
- SHN 0-10
- LPN 1
- STD T1
- LDM ES+1,T1 SET HALF TRACK CHANNEL FOR VERIFICATION
- LPN 77
- STM TSCH
- UJN PRS11 CONTINUE
- PRS10 AOD DA SET CHANNEL COUNT
- LDM TSCH
- PRS11 STD T4 SET FIRST CHANNEL
- LDD IR+3 GET REPAIR STATUS
- LPN 40
- NJN PRS12 IF REPAIR HAS BEEN ATTEMPTED
- LDD T5
- STD CM+1
- LDN RVES RESERVE EQUIPMENT
- STD CM+2
- MONITOR REQM
- LDD CM+1
- NJN PRS13 IF DEVICE RESERVED
- LJM IBM+1 ISSUE BML MESSAGE
- PRS12 LDN 0 COUNT ALL LABEL ERRORS AS UNREPAIRABLE
- STM CFEA
- PRS13 LDD T5
- STM RAEA SET EQUIPMENT RESERVED
- * CLEAR STATISTICS BUFFER.
- LDC EZOT-1 SET BUFFER LWA+1
- STD SP SAVE STARTING ADDRESS
- ERRNG *-EZOT-1 TABLES OVERLAP CODE
- PRS14 LDN 0
- STI SP
- SOD SP DECREMENT POINTER
- LMC DVC1
- NJN PRS14 IF NOT DONE CLEARING
- STI SP
- RJM ECA ENABLE CONTROLLER ACTIVITY
- LJM * EXIT TO PROCESSOR
- PRSB EQU *-1
- TITLE PRESET SUBROUTINES.
- ECA SPACE 4,15
- ** ECA - ENABLE CONTROLLER ACTIVITY.
- *
- * THIS ROUTINE FORCES THE 583X/47444 (*DAS*) OR 9853 (*XMD*)
- * DRIVER TO REENABLE ACTIVITY TO A CONTROLLER IN ORDER TO
- * ALLOW A *UCFC* (*UP,CCH*) FUNCTION TO BE PROCESSED.
- * THIS IS ACCOMPLISHED BY SETTING A SPECIAL REQUEST BIT IN
- * WORD *PILL* OF THE *PUT*, AND A BIT FOR THE SPECIFIED
- * CHANNEL IN WORD *BDLL* OF THE *MST*.
- *
- * ENTRY (FC) = FUNCTION CODE.
- * (IR+2) = EST ORDINAL.
- * (IR+4) = CHANNEL.
- *
- * USES CM - CM+4, CN - CN+4, T1.
- *
- * MACROS MONITOR, SFA.
- ECA SUBR ENTRY/EXIT
- LDD FC CHECK FUNCTION CODE
- LMN UCFC
- NJN ECAX IF NOT *UP,CCH* FUNCTION
- SFA EST,IR+2 READ EST ENTRY
- ADK EQDE
- CRD CM
- LDN TECAL CHECK DEVICE TYPE
- STD T1
- ECA2 SOD T1 CHECK NEXT TABLE ENTRY
- MJN ECAX IF THIS DEVICE TYPE NOT IN TABLE
- LDD CM+3
- LMM TECA,T1
- NJN ECA2 IF DEVICE TYPE DOES NOT MATCH
- * SET CHANNEL SELECTION FLAGS.
- LDD CM+1 CHECK FOR FIRST CHANNEL SPECIFIED
- LPN 77
- LMD IR+4
- NJN ECA3 IF FIRST CHANNEL NOT SPECIFIED
- LDN 1 SET FLAG FOR FIRST CHANNEL
- UJN ECA4 UPDATE *MST*
- ECA3 LDN 2 SET FLAG FOR SECOND CHANNEL
- * SET CHANNEL SELECTION FLAGS INTO *MST*.
- ECA4 STD CN+4
- LDC BDLL*100+2 6/INDEX INTO *MST*, 6/BITS TO CHANGE
- STD CN
- LDC 49D*100 6/LOW ORDER BIT, 6/0
- STD CN+1
- LDD MA
- CWD CN STORE MESSAGE BUFFER PARAMETERS
- LDD CM+4 SAVE *MST* ADDRESS
- STD T1
- SHN 3
- STD CM+4
- SHN -14
- STD CM+3
- LDN 1
- STD CM+1 REQUESTS IN MESSAGE BUFFER
- MONITOR UTEM UPDATE TABLE ENTRY
- * SET SPECIAL REQUEST INTO *PUT*.
- LDC PILL*100+1 6/INDEX INTO *PUT*, 6/BITS TO CHANGE
- STD CN
- LDC ECAF*100 6/LOW ORDER BIT, 6/0
- STD CN+1
- LDN 1
- STD CN+4 NEW VALUE
- LDD MA
- CWD CN STORE MESSAGE BUFFER PARAMETERS
- LDD T1
- SHN 3 *MST* ADDRESS
- ADK DILL
- CRD CM (CM+2) = PUT ORDINAL
- LDK BIOL
- CRD CN READ BUFFERED I/O POINTERS
- LDD CN+1
- SHN 14
- LMD CN+2
- ADK PUTP
- CRD CN READ *PUT* POINTER
- LDD CM+2
- SHN PUTLS
- ADD CN+4
- STD CM+4 SET START ADDRESS OF *PUT*
- SHN -14
- ADD CN+3
- STD CM+3
- LDN 1
- STD CM+1 REQUESTS IN MESSAGE BUFFER
- MONITOR UTEM UPDATE TABLE ENTRY
- UJP ECAX RETURN
- TECA BSS 0 TABLE OF 583X/9853/47444 DEVICES
- CON 2RDN 9853
- CON 2REA 5832 (1X SSD)
- CON 2REB 5832 (2X SSD)
- CON 2REC 5833 (1X SABRE)
- CON 2RED 5833 (1XP SABRE)
- CON 2REE 5833 (2X SABRE)
- CON 2REF 5833 (2XP SABRE)
- CON 2REG 5838 (1X ELITE)
- CON 2REH 5838 (1XP ELITE)
- CON 2REI 5838 (2X ELITE) (MP)
- CON 2REJ 5838 (2XP ELITE) (MP)
- CON 2REK 5838 (3XP ELITE) (MP)
- CON 2REL 5838 (4X ELITE) (MP)
- CON 2REM 5833 (3XP SABRE) (MP)
- CON 2REN 5833 (4X SABRE) (MP)
- CON 2REO 47444 (1X 3.5IN)
- CON 2REP 47444 (1XP 3.5IN)
- CON 2RES 47444 (2X 3.5IN) (MP)
- CON 2REU 47444 (2XP 3.5IN) (MP)
- CON 2REV 47444 (3XP 3.5IN) (MP)
- CON 2REW 47444 (4X 3.5IN) (MP)
- TECAL EQU *-TECA LENGTH OF TABLE
- SPACE 4,10
- OVERFLOW
- OVERLAY (*1MV* FUNCTION COMPLETION OVERLAY.)
- ELM SPACE 4,20
- ** ELM - ERROR LOG MESSAGE PROCESSOR.
- *
- * ENTRY (CN) = SYMPTOM CODE.
- * (DCHA+3) = CHANNEL NUMBER, INCLUDING CONCURRENCY FLAG.
- * (CN) = SYMPTOM CODE FOR BML MESSAGE.
- * (EQ) = EST ORDINAL.
- * (FC) = *1MV* FUNCTION CODE.
- * (DP - DP+4) = DEVICE SEEK PARAMETERS.
- *
- * EXIT (A) = 0.
- *
- * USES MT, T1, T2, T3, T8, CM - CM+4, CN - CN+4.
- *
- * CALLS C2D, DFM.
- *
- * MACROS MONITOR.
- ELM SUBR ENTRY/EXIT
- LDD EQ CONVERT UPPER TWO DIGITS OF EST ORDINAL
- SHN -3
- RJM C2D
- STM ELMB+1
- STM ELMC+1
- STM ELMD+1
- STM ELME+1
- STM ELMF+1
- LDD EQ CONVERT LOWER DIGIT OF EST ORDINAL
- STM BMLEO STORE EST ORDINAL IN BML MESSAGE
- LPN 7
- SHN 6
- ADC 2R0
- STM ELMB+2
- STM ELMC+2
- STM ELMD+2
- STM ELME+2
- STM ELMF+2
- LDD CN STORE SYMPTOM CODE IN MESSAGE
- STD T2
- STM BMLSC
- LDD DP+1 ADD UNIT NUMBER TO MESSAGE
- STM BMLUN
- ELM1 LDK PPCP ADD PP NUMBER TO MESSAGE
- CRD CM
- ADN MMFL-PPCP
- CRD CN
- LDD CN ADD MACHINE ID TO MESSAGE
- STM BMLMF
- LDD IA STORE PP NUMBER IN BML MESSAGE
- SBD CM+4
- SHN 3
- LMM DCHA+3 APPEND CHANNEL NUMBER
- STM BMLPP
- * DETERMINE THE APPROPRIATE BML MESSAGE IDENTIFIER TO BE
- * ADDED TO THE MESSAGE. FOR DISKS, THE MESSAGE ID CAN BE
- * DETERMINED FROM THE DEVICE CODE. FOR EXTENDED MEMORY,
- * IT MUST BE DETERMINED FROM DATA IN WORD *DILL* OF THE MST.
- LDN 0 INITIALIZE TABLE POINTERS
- STD T8
- LDC MSGID-2 SET TABLE ADDRESS
- STD T1
- LDD ES+3 SAVE DEVICE CODE
- STD T3
- LMC 2RDE
- ZJN ELM2 IF A *DE* TYPE DEVICE
- LMN 2RDP&2RDE
- NJN ELM3 IF NOT A *DP* TYPE DEVICE
- ELM2 LDD ES+4 GET MST WORD *DILL*
- SHN 3
- ADN DILL
- CRD CM
- LDD CM+3 USE *DILL* DATA FIELDS
- LPC 707
- STD T3
- LDC MSEID-2 SET TABLE ADDRESS
- STD T1
- ELM3 LDN 2
- RAD T1
- LDI T1 SCAN TABLE FOR A MATCH
- ZJN ELM4 IF DEVICE IS NOT FOUND IN TABLE
- LMD T3
- NJN ELM3 IF A MATCH HAS NOT YET BEEN FOUND
- LDM 1,T1
- ELM4 STM BMLID STORE MESSAGE ID IN BML MESSAGE
- LDN BMLL1
- STD T3 SET BML MESSAGE LENGTH
- ELM5 LDN 2
- RAD T8
- LDM TFCN-2,T8
- LMD T2
- NJN ELM5 IF NOT A SYMPTOM CODE MATCH
- LDM TFCN-1,T8
- STD T1
- LDC ELMD SET DEFAULT ERRORLOG MESSAGE
- LJM 0,T1 PROCESS SYMPTOM CODE DEPENDENT DATA
- ELM6 LDM DCHA+3 CHANNEL NUMBER (AND CONCURRENCY FLAG)
- RJM C2D CONVERT CHANNEL NUMBER FOR MESSAGE
- STM ELMA+1
- LDN 0 SET NO BML MESSAGE
- STD T3
- LDC ELMA *CHXX, EQXXX VERIFICATION FAILURE.*
- LJM ELM9.1 ISSUE ERRLOG MESSAGE
- ELM7 LDN BMLL2 SET BML MESSAGE LENGTH
- STD T3
- LDD DP+2 SET CYLINDER IN MESSAGE
- STM BMLCY
- LDD DP+3 SET PHYSICAL TRACK IN MESSAGE
- STM BMLTR
- LDD DP+4 SET PHYSICAL SECTOR IN MESSAGE
- STM BMLSN
- LDD IR+4 STORE TRACK NUMBER IN ERRLOG MESSAGE
- RJM C2D
- STM ELMF+5
- LDD IR+4
- SHN -6
- RJM C2D
- STM ELMF+4
- LDC ELMF+ERLN ISSUE ERROR LOG MESSAGE
- RJM DFM
- UJN ELM11 ISSUE BML MESSAGE
- ELM8 LDC ELMC *EQXXX DOWNED BY SYSTEM.*
- ELM9 STD MT
- LDC ELMB+ERLN *EQXXX VERIFICATION FAILURE.*
- RJM DFM
- LDD MT
- ELM9.1 LMC ERLN ISSUE ERROR LOG MESSAGE
- ELM10 RJM DFM
- LDN ZERL ISSUE *SEE, ERRORLOG* EVENT
- CRD CM
- LDN ELAE
- STD CM+4
- MONITOR EATM
- ELM11 LDD T3
- ZJN ELM12 IF NULL MESSAGE
- STD CM+1 SET BML MESSAGE LENGTH
- LDC BML+BMLN ISSUE BML MESSAGE
- RJM DFM
- ELM12 LJM ELMX RETURN
- ELM13 LDN 0 SET NO BML MESSAGE
- STD T3
- LDC ELME+ERLN
- UJP ELM10 ISSUE ERRLOG MESSAGE
- TFCN SPACE 4
- ** TFCN - TABLE OF SYMPTOM CODE DEPENDENT PROCESSORS.
- TFCN BSS 0
- CON 4000+UCFC,ELM6 CHANNEL VERIFICATION FAILURE
- CON /COMSDFS/HS0030,ELM9 DEVICE SET *OFF* BY SYSTEM
- CON /COMSDFS/HS0034,ELM8 DEVICE SET *DOWN* BY SYSTEM
- CON /COMSDFS/HS0105,ELM7 TRACK FLAWED BY SYSTEM
- CON 0,ELM13 DEVICE UNAVAILABLE
- MSGID SPACE 4,10
- * MSGID - TABLE OF MESSAGE ID-S FOR NON-EXTENDED MEMORY DEVICES.
- MSGID BSS 0
- CON 2RDI,/COMSDFS/RM0002 (DI) 844-2X, HALF TRACK
- CON 2RDJ,/COMSDFS/RM0003 (DJ) 844-4X, HALF TRACK
- CON 2RDK,/COMSDFS/RM0004 (DK) 844-2X, FULL TRACK
- CON 2RDL,/COMSDFS/RM0005 (DL) 844-4X, FULL TRACK
- CON 2RDV,/COMSDFS/RM0006 (DV) 819, SINGLE DENSITY
- CON 2RDW,/COMSDFS/RM0006 (DW) 819, DOUBLE DENSITY
- CON 2RDM,/COMSDFS/RM0007 (DM) 885, HALF TRACK
- CON 2RDQ,/COMSDFS/RM0017 (DQ) 885, FULL TRACK
- CON 2RDR,/COMSDFS/RM0015 (DR) CDSS II
- CON 2RDX,/COMSDFS/RM0010 (DX) 3330-1
- CON 2RDY,/COMSDFS/RM0011 (DY) 3330-11
- CON 2RDZ,/COMSDFS/RM0012 (DZ) 3350
- CON 2RDA,/COMSDFS/RM0013 (DA) 33502
- CON 2RDB,/COMSDFS/RM0014 (DB) 885-42 (PFMD)
- CON 2RDC,/COMSDFS/RM0115 (DC) 895
- CON 2RDD,/COMSDFS/RM0110 (DD) 834
- CON 2RDF,/COMSDFS/RM0120 (DF) 887 (4KB SECTOR)
- CON 2RDG,/COMSDFS/RM0111 (DG) 836
- CON 2RDH,/COMSDFS/RM0121 (DH) 887 (16KB SECTOR)
- CON 2RDN,/COMSDFS/RM0124 (DN) 9853 (XMD/CM3)
- CON 2REA,/COMSDFS/RM0130 (EA) 5832 (1X SSD)
- CON 2REB,/COMSDFS/RM0131 (EB) 5832 (2X SSD)
- CON 2REC,/COMSDFS/RM0132 (EC) 5833 (1X SABRE)
- CON 2RED,/COMSDFS/RM0133 (ED) 5833 (1XP SABRE)
- CON 2REE,/COMSDFS/RM0134 (EE) 5833 (2X SABRE)
- CON 2REF,/COMSDFS/RM0137 (EF) 5833 (2XP SABRE)
- CON 2REG,/COMSDFS/RM0142 (EG) 5838 (1X ELITE)
- CON 2REH,/COMSDFS/RM0143 (EH) 5838 (1XP ELITE)
- CON 2REI,/COMSDFS/RM0144 (EI) 5838 (2X ELITE) (MP)
- CON 2REJ,/COMSDFS/RM0147 (EJ) 5838 (2XP ELITE) (MP)
- CON 2REK,/COMSDFS/RM0145 (EK) 5838 (3XP ELITE) (MP)
- CON 2REL,/COMSDFS/RM0146 (EL) 5838 (4X ELITE) (MP)
- CON 2REM,/COMSDFS/RM0135 (EM) 5833 (3XP SABRE) (MP)
- CON 2REN,/COMSDFS/RM0136 (EN) 5833 (4X SABRE) (MP)
- CON 2REO,/COMSDFS/RM0162 (EO) 47444 (1X 3.5IN)
- CON 2REP,/COMSDFS/RM0163 (EP) 47444 (1XP 3.5IN)
- CON 2RES,/COMSDFS/RM0164 (ES) 47444 (2X 3.5IN) (MP)
- CON 2REU,/COMSDFS/RM0167 (EU) 47444 (2XP 3.5IN) (MP)
- CON 2REV,/COMSDFS/RM0165 (EV) 47444 (3XP 3.5IN) (MP)
- CON 2REW,/COMSDFS/RM0166 (EW) 47444 (4X 3.5IN) (MP)
- CON 0 END OF TABLE
- MSEID SPACE 4,10
- * MSEID - TABLE OF MESSAGE ID-S FOR EXTENDED MEMORY DEVICES.
- MSEID BSS 0
- CON 102,/COMSDFS/RM0070 (DP) ECS I - DC135 DDP
- CON 100,/COMSDFS/RM0071 (DE) ECS I - COUPLER
- CON 202,/COMSDFS/RM0072 (DP) ECS II - DC135 DDP
- CON 200,/COMSDFS/RM0073 (DE) ECS II - COUPLER
- CON 101,/COMSDFS/RM0074 (DP) ECS I - DC145 DDP
- CON 201,/COMSDFS/RM0075 (DP) ECS II - DC145 DDP
- CON 300,/COMSDFS/RM0076 (DP) LCME - COUPLER
- CON 400,/COMSDFS/RM0077 (DE) UEM
- CON 500,/COMSDFS/RM0207 (DE) ESM - COUPLER
- CON 501,/COMSDFS/RM0210 (DP) ESM - LOW SPEED PORT
- CON 601,/COMSDFS/RM0172 (DP) STORNET
- CON 0 END OF TABLE
- SPACE 4,10
- * BINARY MAINTENANCE LOG MESSAGE.
- BML BSS 0
- BMLID VFD 12/ MESSAGE ID
- BMLSC VFD 12/ SYMPTOM CODE
- BMLPP VFD 6/ PP NUMBER
- VFD 6/ CHANNEL NUMBER
- BMLUN VFD 6/0 EQUIPMENT NUMBER
- VFD 6/ UNIT NUMBER
- VFD 12/0 RESERVED
- BMLEO VFD 12/ EST ORDINAL
- VFD 24/0 RESERVED
- BMLMF VFD 12/ MAINFRAME ID
- VFD 12/0 RESERVED
- BMLL1 EQU *-BML MESSAGE LENGTH (NON-TRACK FLAW FORMAT)
- VFD 24/0 RESERVED
- BMLCY VFD 12/ CYLINDER
- BMLTR VFD 12/ TRACK
- BMLSN VFD 12/ SECTOR
- BMLL2 EQU *-BML MESSAGE LENGTH (TRACK FLAW FORMAT)
- SPACE 4,10
- * ERROR LOG MESSAGES.
- ELMA DATA 6HCHXX,
- ELMB DATA C*EQXXX VERIFICATION FAILURE.*
- ELMC DATA C*EQXXX DOWNED BY SYSTEM.*
- ELMD DATA C*EQXXX OFFED BY SYSTEM.*
- ELME DATA C*EQXXX UNAVAILABLE.*
- ELMF DATA C*EQXXX,TKNNNN, MEDIA DEFECT FLAWED.*
- FMT SPACE 4,10
- ** FMT - FORMAT 895 DEVICE MAINTENANCE TRACK.
- *
- * ENTRY (T4) = CHANNEL NUMBER.
- * (EQ) = EST ORDINAL.
- * (DVMT) = MAINTENANCE TRACK NUMBER.
- * (ES - ES+4) = EST ENTRY.
- *
- * EXIT (A) .NE. 0 IF ERROR.
- * (T4) = CHANNEL NUMBER.
- * (T5) = EST ORDINAL.
- * (T6) = MAINTENANCE TRACK NUMBER.
- *
- * USES T1, T2, T4, T5, T6, CM - CM+4, CN - CN+2.
- *
- * CALLS FNC, SDR.
- *
- * MACROS DCHAN, DELAY, RCHAN.
- FMT12 LDD ES+4 GET UNIT COUNT
- SHN 3
- ADK DDLL
- CRD CM
- LDD CM
- LPN 7
- STD T2
- LDN FMMC
- RJM SDR
- LDN 0 SET RETURN STATUS
- FMT SUBR ENTRY/EXIT
- LDM DVMT RESTORE MAINTENANCE TRACK NUMBER
- STD T6
- LDD EQ RESTORE EST ORDINAL
- STD T5
- LDD T4
- LPN 40
- NJN FMT12 IF CONCURRENT CHANNEL
- LDD T4
- RCHAN RESERVE CHANNEL
- LDC CTAB
- STD T1 SET CHANNEL TABLE ADDRESS
- FMT1 LDI T1
- ZJN FMT2 IF END OF LIST
- STD T2
- LDI T2 MODIFY INSTRUCTION
- SCN 37
- LMD T4
- STI T2
- AOD T1 ADVANCE LIST POINTER
- UJN FMT1 MODIFY NEXT INSTRUCTION
- FMT2 LDD ES+4 GET UNIT LIST
- SHN 3
- ADK DDLL
- CRD CM
- LDD T6 STORE CYLINDER NUMBER
- LPC 3777
- SHN -1
- STD CN
- FMT3 LDD CM+4 EXTRACT NEXT UNIT
- SHN 14
- STD CM+4
- ERRPL 4000-3*SLDC CODE DEPENDS ON VALUE
- SHN -14
- LMC 3S6 SET MODE/OPERATION DECODE
- STD CN+1
- LDD TH SET LARGE RECORD SIZE
- STD CN+2
- FMT4 LDK FCFP ISSUE FORMAT FUNCTION
- RJM FNC
- MJN FMT6 IF ERROR
- ACN CH
- LDN FPBL
- OAM CN,CH
- NJN FMT6 IF INCOMPLETE DATA TRANSFER
- FMT5 EJM FMT7,CH IF ALL DATA WAS ACCEPTED
- ADN 1
- NJN FMT5 IF NOT TIMEOUT
- FMT6 UJN FMT9 SET ERROR STATUS
- FMT7 DCN CH+40
- LCN 0 SET 4 SECOND TIMEOUT
- STD T2
- FMT8 DELAY 10
- LDK FCGS ISSUE GENERAL STATUS FUNCTION
- RJM FNC
- MJN FMT9 IF ERROR
- ACN CH
- LDN 1
- IAM T1,CH
- NJN FMT9 IF INCOMPLETE DATA TRANSFER
- SFM FMT9,CH IF CHANNEL PARITY ERROR
- DCN CH+40
- LDD T1
- ZJN FMT10 IF TRACK FORMATTING COMPLETE
- SOD T2
- NJN FMT8 IF NOT TIMEOUT
- FMT9 AOM FMTB,SP SET ERROR STATUS
- UJN FMT11 COMPLETE PROCESSING
- FMT10 AOD CN+2 INCREMENT TRACK NUMBER
- LPN 77
- LMN PTCYDC
- NJP FMT4 IF NOT END OF CYLINDER
- LDD CM
- LPN 7
- SBN 1
- STD CM
- PJP FMT3 IF MORE UNITS TO FORMAT
- FMT11 DCN CH+40
- LDK FCOC RELEASE HARDWARE RESERVES
- RJM FNC
- SHN 0-21 SET ERROR STATUS IF ERROR
- RAM FMTB,SP
- LDD T4 RELEASE CHANNEL
- DCHAN
- LDM FMTB,SP
- LJM FMTX RETURN
- FNC SPACE 4,10
- ** FNC - FUNCTION CHANNEL.
- *
- * ENTRY (A) = FUNCTION CODE.
- *
- * EXIT (A) .EQ. 0 IF FUNCTION WAS ACCEPTED.
- * .LT. 0 IF TIMEOUT OR CHANNEL ACTIVE UPON ENTRY.
- FNC SUBR ENTRY/EXIT
- AJM FNC2,CH IF CHANNEL ALREADY ACTIVE
- FAN CH
- FNC1 ADD ON
- IJM FNC3,CH IF FUNCTION ACCEPTED
- NJN FNC1 IF NOT TIMEOUT YET
- FNC2 DCN CH+40
- LCN 0 RETURN ERROR STATUS
- UJN FNCX RETURN
- FNC3 LDN 0 RETURN SUCCESSFUL STATUS
- UJN FNCX RETURN
- CTAB BSS 0 TABLE OF CHANNEL INSTRUCTION ADDRESSES
- CHTB
- SPACE 4,10
- ** COMMON DECKS.
- *CALL COMPC2D
- *CALL COMPSDR
- *CALL COMPSMI
- VTE SPACE 4,15
- ** VTE - VERIFY TRT EOI SECTORS.
- *
- * ENTRY (EQ) = EST ORDINAL BEING PROCESSED.
- *
- * USES T6, T7.
- *
- * CALLS CMI, CPF, CPS, FEB, FFT, PCV, WEI.
- *
- * MACROS SETMS.
- VTE SUBR ENTRY/EXIT
- RJM PCV PRESET
- VTE1 RJM FEB FIND *EOI* BYTE IN TRT
- ZJN VTEX IF FINISHED WITH *EOI* PROCESSING
- RJM FFT FIND FIRST TRACK OF TRT CHAIN
- RJM CPS CHECK IF FILE IS PRESERVED
- ZJN VTE5 IF FILE IS NOT PRESERVED
- RJM CPF CHECK PRESERVED FILE INTERLOCKS
- NJN VTE1 IF FILE INTERLOCKED ON OTHER MAINFRAME
- VTE2 LDD T9 SETUP TO WRITE AN ENHANCED EOI SECTOR
- SBN 1
- STD T6
- LDD EI
- STD T7
- SETMS IO,(AD,ND,NR)
- RJM WEI WRITE PROPER EOI SECTOR
- * CHECK FOR MS ERROR.
- ENDMS
- VTE3 UJP VTE1 CONTINUE TO NEXT EOI
- VTE5 RJM CMI CHECK MACHINE RECOVERY TABLE INTERLOCK
- ZJN VTE3 IF FILE NOT LOCAL TO THIS MAINFRAME
- UJP VTE2 GO WRITE CORRECT EOI TO FILE
- CMI SPACE 4,15
- ** CMI - CHECK MACHINE RECOVERY TABLE INTERLOCK.
- *
- * ENTRY (T6) = FIRST TRACK NUMBER OF FILE.
- * (T8) = BYTE NUMBER IN TRT WORD.
- * (CM - CM+4) = TRT WORD CONTAINING (T6).
- * (FTPB) = LENGTH OF TRT BEING PROCESSED.
- *
- * EXIT (A) = 0 IF FILE IS NOT LOCAL TO THIS MAINFRAME.
- * .NE. 0 IF FILE IS LOCAL TO THIS MAINFRAME.
- *
- * USES T1, T2, CM - CM+4.
- CMI3 LDN 1 RETURN WITH LOCAL FILE STATUS
- CMI SUBR ENTRY/EXIT
- LDD CM+4 CHECK TRACK INTERLOCK
- LMM TCMI,T8
- SBD CM+4
- PJN CMI3 IF FILE NOT INTERLOCKED
- * CHECK MRT TO DETERMINE WHO HAS FILE INTERLOCKED.
- CMI1 LDD T6 CALCULATE WORD OFFSET INTO MRT
- SHN 21-4
- STD T1
- SHN 4-21 SAVE BIT INTERLOCK NUMBER (BITS 0-4)
- STD T2
- CMIB LDC ** GET TRT FWA
- ADM FTPB ADD LENGTH OF TRT
- ADD T1 ADD OFFSET INTO MRT
- CRD CM
- LDN CM+5 SET BYTE POINTER WITHIN MRT WORD
- STD T0
- CMI2 SOD T0
- LCN 14
- RAD T2
- PJN CMI2 IF NOT POSITIONED TO PROPER BYTE
- ADC SHNI+21-0+14
- STM CMIC
- LDI T0
- CMIC SHN **
- SHN 0-21
- UJP CMIX RETURN
- TCMI CON 200,100,40,20 TABLE OF TRACK INTERLOCK BITS
- CPF SPACE 4,15
- ** CPF - CHECK PRESERVED FILE STATUS.
- *
- * ENTRY (MT) = FIRST TRACK NUMBER OF FILE.
- *
- * EXIT (A) = 0 IF FILE IS NOT INTERLOCKED.
- * .NE. 0 IF FILE IS INTERLOCKED ON OTHER MAINFRAME.
- *
- * USES T6, T7.
- *
- * CALLS CPI, RDS.
- *
- * MACROS ENDMS, SETMS.
- CPF SUBR ENTRY/EXIT
- LDD MT SETUP TO READ SYSTEM SECTOR
- STD T6
- LDN 0
- STD T7
- SETMS IO,(AD,ND)
- LDC BFMS READ SYSTEM SECTOR
- RJM RDS
- * CHECK FOR MS ERROR.
- ENDMS
- LDM BFMS+2+4
- SHN -6
- LMN PMFT
- ZJN CPF1 IF DIRECT ACCESS PERMANENT FILE
- LMN FAFT&PMFT
- NJN CPF2 IF NOT FAST ATTACH PERMANENT FILE
- CPF1 LDD ES
- LPC 1020
- ZJN CPF2 IF DEVICE NOT A SHARED DEVICE
- RJM CPI CHECK MMF PERMANENT FILE INTERLOCKS
- CPF2 UJP CPFX RETURN
- CPS SPACE 4,10
- ** CPS - CHECK FOR PRESERVED FILE STATUS.
- *
- * ENTRY (T6) = FIRST TRACK NUMBER.
- * (T8) = BYTE NUMBER IN TRT WORD.
- * (CM - CM+4) = TRT WORD CONTAINING (T6).
- *
- * EXIT (A) = 0 IF FILE IS NOT PRESERVED.
- * .NE. 0 IF FILE IS PRESERVED FILE.
- CPS SUBR ENTRY/EXIT
- LDD CM+4 CHECK FOR PRESERVED BIT
- LMM TCPS,T8
- SBD CM+4
- SHN -21
- UJN CPSX RETURN
- * BIT MASKS FOR INTERLOCK TESTS.
- TCPS CON 4000,2000,1000,0400
- CPI SPACE 4,10
- ** CPI - CHECK MMF PERMANENT FILE INTERLOCKS.
- *
- * ENTRY (BFMS) = SYSTEM SECTOR OF PRESERVED FILE.
- *
- * EXIT (A) = 0 IF FILE IS NOT INTERLOCKED.
- * .NE. 0 IF FILE IS INTERLOCKED ON OTHER MAINFRAME.
- *
- * USES T2, T3, T5.
- *
- * CALLS SMI.
- CPI SUBR ENTRY/EXIT
- LDD EQ
- STD T5
- RJM SMI GET CURRENT MACHINE INDEX
- STD T2
- SHN 1
- STD T3 *2
- ADD T3 *4
- RAD T2 *5
- UJN CPIX RETURN
- FEB SPACE 4,15
- ** FEB - FIND EOI TRT BYTE.
- *
- * ENTRY (T9) = TRACK NUMBER TO BEGIN SEARCH.
- *
- * EXIT (A) = 0 IF NO EOI BYTE FOUND.
- * (T6) = TRACK NUMBER CONTAINING EOI BYTE, IF FOUND.
- * (T9) = UPDATED TO BEGIN NEXT SEARCH.
- *
- * USES T2.
- *
- * CALLS FTP.
- FEB SUBR ENTRY/EXIT
- LDN 0
- STD T2
- LDD T9
- RJM FTP
- ZJN FEBX IF NO *EOI* FOUND
- ADN 1
- STD T9
- UJN FEBX RETURN
- FFT SPACE 4,10
- ** FFT - FIND FIRST TRACK LINK.
- *
- * ENTRY (T6) = TRACK NUMBER TO LINK BACK TO *BOI*.
- *
- * EXIT (A) = (MT) = (T6) = TRACK NUMBER OF FIRST TRACK.
- *
- * USES MT, T2, T6.
- *
- * CALLS FTP.
- FFT SUBR ENTRY/EXIT
- FFT1 LDD T6
- STD T2
- LDN 0 BEGIN SEARCH FROM BEGINNING OF TRT
- RJM FTP
- NJN FFT1 IF FIRST LINK NOT FOUND
- LDD T6 SAVE FIRST TRACK NUMBER
- STD MT
- UJN FFTX RETURN
- FTP SPACE 4,15
- ** FTP - FIND TRT BYTE PATTERN.
- *
- * ENTRY (A) = TRACK NUMBER IN TRT TO BEGIN WITH.
- * (T2) = PATTERN TO FIND IN TRT BYTES.
- *
- * EXIT (A) = (T6) = TRACK NUMBER OF PATTERN MATCH.
- * (EI) = *EOI* SECTOR NUMBER, IF FOUND AS MATCH.
- * (T8) = BYTE NUMBER IN TRT WORD.
- *
- * USES EI, T1, T2, T6, T8, CM - CM+4.
- FTP SUBR ENTRY/EXIT
- STD T6
- LPN 3 CALCULATE FIRST OFFSET
- ADN CM
- STD T1
- LDD T6 CALCULATE TRT WORD OFFSET
- LPC 3777
- SHN -2
- STD T6
- FTP1 LDC ** READ TRT WORD
- FTPA EQU *-1
- ADD T6
- CRD CM
- FTP2 LDI T1
- SHN 21-13
- PJN FTP4 IF *EOI* BYTE
- SHN 21+1-21+13
- LMD T2
- ZJN FTP5 IF PATTERN MATCH
- FTP3 AOD T1
- SBN CM+4
- NJN FTP2 IF NOT THROUGH ALL TRT BYTES
- LDN CM
- STD T1
- LDC ** CHECK IF DONE WITH TRT
- FTPB EQU *-1 (NUMBER OF WORDS IN TRT)
- SBD T6
- ZJN FTPX IF NO PATTERN MATCH FOUND
- AOD T6 INCREMENT TRT WORD OFFSET
- UJN FTP1 CONTINUE SEARCHING TRT
- FTP4 LDD T2
- NJN FTP3 IF NOT SEARCHING FOR *EOI*
- LDI T1 SAVE *EOI* SECTOR NUMBER
- STD EI
- FTP5 LDD T1 CONSTRUCT TRACK NUMBER
- SBN CM
- STD T8 SAVE BYTE NUMBER IN TRT WORD
- SHN 21-2
- ADD T6
- SHN 2
- ADC 4000
- STD T6
- LJM FTPX RETURN
- PCV SPACE 4,20
- ** PCV - PRESET CONDITIONS FOR *VTE*.
- *
- * ENTRY (ES - ES+4) = EST ENTRY.
- *
- * EXIT (FTPB) = TRT LENGTH IN CM WORDS.
- *
- * USES CM - CM+4, CN - CN+4.
- *
- * CALLS IRA.
- PCV SUBR ENTRY/EXIT
- RJM IRA SET ADDRESSES
- LDD ES+4
- SHN 3
- ADK TDGL GET TRT LENGTH
- CRD CN
- ADN TRLL-TDGL GET TRT FWA
- CRD CM
- LDD CN+2
- STM FTPB
- LDD CM+4 PRESET TRT ADDRESS
- STM CMIB+1
- STM FTPA
- LDD CM+3
- LPN 77
- LMC LDCI
- STM CMIB
- STM FTPA-1
- UJP PCVX RETURN
- QUAL *
- OVERFLOW OVLA,BFMS
- TITLE
- END
cdc/nos2.source/opl871/1mv.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator