cdc:nos2.source:opl871:6di
Table of Contents
6DI
Table Of Contents
- [00008] 6DI - โHNโ DRIVER.
- [00010] 7155-7154-7054/885-844 DRIVER.
- [00320] 6DI - MAIN DRIVER.
- [00340] EMS - END MASS STORAGE PROCESSING.
- [00361] RDS - READ SECTOR.
- [00410] WDS - WRITE SECTOR.
- [00457] DST - DEVICE STATUS.
- [00491] LDA - LOAD ADDRESS.
- [00561] FNC - FUNCTION DEVICE.
- [00598] ERR - CALL *7BI*.
- [00614] DSW - DRIVER SEEK WAIT PROCESSING.
- [00696] TCHA - TABLE OF CHANNEL INSTRUCTION ADDRESSES.
- [00704] PRS - PRESET.
- [00726] 6DJ - ISD DISK DRIVER.
- [00785] EMS - END MASS STORAGE PROCESSING.
- [00806] RDS - READ SECTOR.
- [00838] WDS - WRITE SECTOR.
- [00877] DST - DEVICE STATUS.
- [00897] LDA - LOAD ADDRESS.
- [00973] FNC - FUNCTION DEVICE.
- [01006] ERR - CALL *7BI*.
- [01019] DSW - DRIVER SEEK WAIT PROCESSING.
- [01099] TCHA.J - TABLE OF CHANNEL INSTRUCTION ADDRESSES
- [01108] PRS - PRESET *6DJ*.
- [01132] DBI - INITIALIZE ERROR PROCESSING.
- [01175] ERR2 - CALL STATUS PROCESSOR.
- [01180] WEP - WRITE ERROR PROCESSOR.
- [01280] DCI - OBTAIN GENERAL AND DETAILED STATUS.
- [01448] DDI - DETAILED STATUS PROCESSOR.
- [01653] DEI - SET ERROR CODE.
- [01878] FTO - FUNCTION TIMEOUT PROCESSOR.
- [02019] RCM - READ CONTROLLER MEMORY.
- [02148] DCP - PROCESS CHANNEL/CONTROLLER ERROR.
- [02246] PCE - PROCESS CHANNEL/CONTROLLER ERROR.
- [02313] RCW - RELOAD CONTROLWARE PROCESSOR.
- [02426] SCT - SET (CLEAR) CONTROLWARE LOAD REQUEST FLAG.
- [02483] ICR - INITIATE CONTROLWARE RELOAD.
- [02567] FCM - FIND CONTROL MODULE EST ENTRY.
- [02629] FCT - FIND CONTROLWARE TABLE ENTRY.
- [02675] IRM - ISSUE RELOAD MESSAGE.
- [02766] EXD - EXECUTE LEVEL 1 DIAGNOSTICS.
- [02924] DSI - MAIN ROUTINE.
- [03056] 0TI - TRACK FLAW PROCESSOR.
- [03172] POM - PROCESS ONE FLAW MAP.
- [03212] FLT - FLAW LOGICAL TRACK.
- [03234] PRS - PRESET FLAW PROCESSOR.
- [03327] TALP - TABLE OF ALGORITHM INDEX DEPENDENT PARAMETERS.
- [03367] FPI - FLAW PROCESSOR FOR *DI* EQUIPMENTS.
- [03392] FPJ - FLAW PROCESSOR FOR *DJ* EQUIPMENTS.
- [03410] 0TJ - TRACK FLAW PROCESSOR FOR 33502.
- [03449] FPK - FLAW PROCESSOR FOR *DK* EQUIPMENT.
- [03471] FPL - FLAW PROCESSOR FOR *DL* EQUIPMENTS.
- [03492] FPM - FLAW PROCESSOR FOR *DM* EQUIPMENTS.
- [03501] FPQ - FLAW PROCESSOR FOR *DQ* EQUIPMENTS.
- [03548] FPA - FLAW PROCESSOR FOR *DA* EQUIPMENTS.
- [03557] FCE - FLAW DS AND CE TRACKS FOR *DA* DEVICE.
- [03576] FPB - FLAW PROCESSOR FOR *DB* EQUIPMENTS.
- [03604] CHS - CONVERT HEAD AND SECTOR TO RELATIVE SECTOR IN CYLINDER.
- [03627] PTF - PROCESS TRACK FLAW.
- [03660] 0PI - PACK SERIAL PROCESSOR.
- [03913] TDMA - TABLE OF DAYFILE MESSAGE ADDRESSES.
- [03920] TALP - TABLE OF ALGORITHM INDEX PROCESSING PARAMETERS.
- [03944] TDST - TABLE OF DEADSTART TRACK NUMBERS.
- [03965] TDSS - TABLE OF DEADSTART SECTOR NUMBERS.
- [03990] CBD - CONVERT BINARY CODED DECIMAL TO DISPLAY CODE.
- [04019] CSD - CONVERT SIX BCD DIGITS TO DISPLAY CODE.
- [04059] 0RI - UNIT RESERVE PROCESSOR.
- [04092] RUR - RELEASE UNIT RESERVES.
- [04129] 0SI - SERVO TIMING PROCESSOR.
- [04176] FTC - FUNCTION SERVO DIFFERENCE TIMING COUNTER.
- [04231] FTD - FUNCTION TIMING DIFFERENCE COUNTER.
- [04255] 0CI - FIRMWARE IDENT PROCESSOR.
- [04372] TDMA - TABLE OF DAYFILE MESSAGE ADDRESSES.
- [04508] CDD - CONVERT TWO DIGITS TO DECIMAL DISPLAY CODE.
- [04533] COD - CONVERT TWO DIGITS TO OCTAL DISPLAY CODE.
- [04554] 0SC - SWEEP CYCLING PROCESSOR.
- [04592] SCP - SWEEP CYCLING PROCESSOR.
- [04702] TDVP - TABLE OF DEVICE PARAMETERS.
- [04740] 0SD - SPIN UP/DOWN ISMD DRIVES.
- [04765] PRS - PRESET SPINUP/DOWN PROCESSOR.
- [04778] SUE - SPIN UP/DOWN AN ISD DRIVE.
- [04828] ANU - ADVANCE TO NEXT PHYSICAL UNIT.
- [04856] CGS - CHECK GENERAL STATUS.
- [04888] PRD - PRESET DRIVER.
Source Code
- 6DI.txt
- IDENT 6DI,MSFW 7155-7154-7054/885-844 MAIN DRIVER.
- HN MICRO 1,,+*LDAM* DEVICE+
- PERIPH J
- BASE MIXED
- SST
- *COMMENT 6DI - "HN" MAIN DRIVER.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- TITLE 6DI - "HN" DRIVER.
- SPACE 4
- *** 6DI - 7155-7154-7054/885-844 DRIVER.
- * R. J. THIELEN. 75/11/20.
- * W. E. GOEBEL. 78/01/24.
- SPACE 4
- *** 6DI PROVIDES THE CAPABILITY TO ACCESS THE 885 AND
- * 844-44 OR 844-41 DRIVES THROUGH THE 7155 CONTROLLER.
- * 6DI ALSO PROVIDES THE CAPABILITY TO ACCESS 844-21, 844-44,
- * 844-41 DISK DRIVES THROUGH EITHER A 7054 OR 7154 CONTROLLER.
- * FULL TRACKING OPERATIONS ARE ALLOWED ONLY THROUGH THE 7155
- * AND 7154 CONTROLLERS.
- *
- * ACCESS TO FSC 3330 AND 3350 DRIVES IN FULL TRACK MODE
- * IS PROVIDED THROUGH THE FSC CHANNEL ADAPTOR.
- *
- * 834 AND 836 DRIVES ARE ACCESSED THROUGH A 7255
- * CHANNEL ADAPTOR WHICH HAS A 7155 COMPATIBLE INTERFACE. THEY
- * MAY ONLY BE ACCESSED IN FULL TRACK MODE.
- *
- * CDSS SUBSYSTEMS ARE ACCESSED THROUGH A 7155 COMPATIBLE
- * CONTROLLER WHICH IS INCLUDED IN THE SUBSYSTEM. THEY MAY ONLY
- * BE ACCESSED IN FULL TRACK MODE.
- SPACE 4
- *** ORGANIZATION OF 7155/885.
- *
- * UP TO THREE 885 UNITS CAN BE COMBINED TO FORM A
- * LOGICAL DEVICE.
- *
- * EQUIPMENT TYPE = *DM*.
- *
- * SECTORS/TRACK = 640.
- *
- * TRACKS/UNIT = 1682.
- *
- * WORDS/UNIT = 68,894,720.
- *
- * UNITS/DEVICE = 1-3.
- *
- * WORDS/DEVICE = 68,894,720 - 206,684,160.
- *
- * MAXIMUM DATA RATE = 61.44 K WORDS/SECOND.
- *
- *
- * EQUIPMENT TYPE = *DQ*.
- *
- * SECTORS/TRACK = 640.
- *
- * TRACKS/UNIT = 1682.
- *
- * WORDS/UNIT = 68,894,720.
- *
- * UNITS/DEVICE = 1-3.
- *
- * WORDS/DEVICE = 68,894,720 - 206,684,160.
- *
- * MAXIMUM DATA RATE = 122.88 K WORDS/SECOND.
- SPACE 4
- *** ORGANIZATION OF 7X5X/844-XX.
- *
- * UP TO EIGHT 844-XX UNITS CAN BE COMBINED TO FORM A
- * LOGICAL DEVICE.
- *
- * EQUIPMENT TYPE = *DI*.
- *
- * SECTORS/TRACK = 107.
- *
- * TRACKS/UNIT = 1632.
- *
- * WORDS/UNIT = 11,175,936.
- *
- * UNITS/DEVICE = 1-8.
- *
- * WORDS/DEVICE = 11,175,936 - 89,407,488.
- *
- * MAXIMUM DATA RATE = 46.08 K WORDS/SECOND.
- *
- *
- * EQUIPMENT TYPE = *DJ*.
- *
- * SECTORS/TRACK = 227.
- *
- * TRACKS/UNIT = 1640.
- *
- * WORDS/UNIT = 23,825,920.
- *
- * UNITS/DEVICE = 1-8.
- *
- * WORDS/DEVICE = 23,825,920 - 190,607,360.
- *
- * MAXIMUM DATA RATE = 46.08 K WORDS/SECOND.
- *
- *
- * EQUIPMENT TYPE = *DK*.
- *
- * SECTORS/TRACK = 112.
- *
- * TRACKS/UNIT = 1632.
- *
- * WORDS/UNIT = 11,698,176.
- *
- * UNITS/DEVICE = 1-8.
- *
- * WORDS/DEVICE = 11,698,176 - 93,585,408.
- *
- * MAXIMUM DATA RATE = 92.16 K WORDS/SECOND.
- *
- *
- * EQUIPMENT TYPE = *DL*.
- *
- * SECTORS/TRACK = 227.
- *
- * TRACKS/UNIT = 1640.
- *
- * WORDS/UNIT = 23,825,920.
- *
- * UNITS/DEVICE = 1-8.
- *
- * WORDS/DEVICE = 24,825,920 - 190,607,360.
- *
- * MAXIMUM DATA RATE = 92.16 K WORDS/SECOND.
- SPACE 4,10
- *** ORGANIZATION OF FSC DEVICES.
- *
- *
- * MODEL = 3330-1.
- *
- * EQUIPMENT TYPE = *DX*.
- *
- * SECTORS/TRACK = 98.
- *
- * TRACKS/UNIT = 1632.
- *
- * WORDS/UNIT = 10,235,904.
- *
- * UNITS/DEVICE = 1-8.
- *
- * WORDS/DEVICE = 10,235,904 - 81,887,232.
- *
- * MAXIMUM DATA RATE = 80.64 K WORDS/SECOND.
- *
- *
- * MODEL = 3330-11.
- *
- * EQUIPMENT TYPE = *DY*.
- *
- * SECTORS/TRACK = 198.
- *
- * TRACKS/UNIT = 1624.
- *
- * WORDS/UNIT = 20,579,328.
- *
- * UNITS/DEVICE = 1-8.
- *
- * WORDS/DEVICE = 20,579,328 - 164,634,624.
- *
- * MAXIMUM DATA RATE = 80.64 K WORDS/SECOND.
- *
- *
- * MODEL = 3350.
- *
- * EQUIPMENT TYPE = *DZ*.
- *
- * SECTORS/TRACK = 420.
- *
- * TRACKS/MODULE = 1116.
- *
- * WORDS/MODULE = 30,051,840.
- *
- * MODULE/DEVICE = 1-4.
- *
- * WORDS/DEVICE = 30,051,840 - 120,207,360.
- *
- * MAXIMUM DATA RATE = 107.52 K WORDS PER SECOND.
- *
- *
- * MODEL = 33502.
- *
- * EQUIPMENT TYPE = *DA*.
- *
- * SECTORS/TRACK = 840.
- *
- * TRACKS/MODULE = 1116.
- *
- * WORDS/MODULE = 30,051,840.
- *
- * MODULE/DEVICE = 1-2.
- *
- * WORDS/DEVICE = 60,103,680 - 120,207,360.
- *
- * MAXIMUM DATA RATE = 107.52 K WORDS PER SECOND.
- SPACE 4,10
- *** ORGANIZATION OF 834 DEVICES.
- *
- * UP TO EIGHT 834 PHYSICAL UNITS MAY BE COMBINED TO FORM A
- * LOGICAL DEVICE.
- *
- * EQUIPMENT TYPE = *DD*.
- *
- * SECTORS/TRACK = 160.
- *
- * TRACKS/UNITS = 1628.
- *
- * WORDS/UNIT = 16,670,720.
- *
- * UNITS/DEVICE = 1-8.
- *
- * WORDS/DEVICE = 16,670,720 - 133,365,760.
- *
- * MAXIMUM DATA RATE = 122.88 K WORDS/SECOND.
- SPACE 4,10
- *** ORGANIZATION OF 836 DEVICES.
- *
- * UP TO THREE 836 PHYSICAL UNITS MAY BE COMBINED TO FORM A
- * LOGICAL DEVICE.
- *
- * EQUIPMENT TYPE = *DG*.
- *
- * SECTORS/TRACK = 564.
- *
- * TRACKS/UNIT = 1398.
- *
- * WORDS/UNIT = 50,462,208.
- *
- * UNITS/DEVICE = 1-3.
- *
- * WORDS/DEVICE = 50,462,208 - 151,386,624.
- *
- * MAXIMUM DATA RATE = 122.88 K WORDS/SECOND.
- SPACE 4
- *** ORGANIZATION OF CDSS II DEVICES.
- *
- * ONE CDSS II UNIT FORMS A SINGLE LOGICAL DEVICE.
- *
- * EQUIPMENT TYPE = *DR*.
- *
- * SECTORS/TRACK = 640.
- *
- * TRACKS/UNIT = 123,640.
- *
- * WORDS/UNIT = 253,229,056.
- *
- * UNITS/DEVICE = 1.
- *
- * WORDS/DEVICE = 253,229,056.
- SPACE 4
- ** ENTRY CONDITIONS.
- *
- *
- * (T4) = CHANNEL IF PREVIOUSLY RESERVED.
- * (T5) = EST ORDINAL.
- * (T6) = TRACK.
- * (T7) = SECTOR.
- SPACE 4
- RICHI$ EQU 1 SELECT DEFERRED INSTRUCTION REDEFINITION
- RICHL$ EQU 1
- RIREL$ EQU 1
- *CALL COMPMAC
- *CALL COMPCHI
- *CALL COMPCHL
- *CALL COMPREL
- *CALL COMSCPS
- *CALL COMSDFS
- *CALL COMSEVT
- LIST X
- *CALL COMSMSP
- LIST *
- *CALL COMSPIM
- *CALL COMSZOL
- *CALL COMS1DS
- SPACE 4,20
- ** DRIVER FUNCTION CODES.
- FCCN EQU 0 CONNECT FUNCTION CODE
- FCS1 EQU 1 SEEK 1 TO 1 INTERLACE
- FCS2 EQU 2 SEEK 2 TO 1 INTERLACE
- FCRD EQU 4 READ FUNCTION CODE
- FCWR EQU 5 WRITE FUNCTION CODE
- FCOC EQU 10 OPERATION COMPLETE FUNCTION CODE
- FCGR EQU 11 DISABLE RESERVES - GRENADE
- FCGS EQU 12 GENERAL STATUS FUNCTION CODE
- FCCO EQU 14 CONTINUE FUNCTION CODE
- FCDK EQU 15 DROP SEEKS
- FCDR EQU 20 DRIVE RELEASE
- FCDS EQU 23 DETAILED STATUS FUNCTION CODE
- FCRF EQU 30 READ FACTORY DATA FUNCTION CODE
- FCRU EQU 31 READ UTILITY SECTOR FUNCTION CODE
- FCRP EQU 34 READ PROTECTED SECTOR
- FCWL EQU 35 WRITE LAST SECTOR
- FCWP EQU 37 WRITE PROTECTED SECTOR
- FCRB EQU 43 READ BACK COUPLER BUFFER
- FCST EQU 52 INPUT PROCESSOR STATUS
- FCSU EQU 55 SPIN UP AN ISD DRIVE
- FCSD EQU 56 SPIN DOWN AN ISD DRIVE
- FCTD EQU 56 INPUT TIMING DATA
- FCDP EQU 61 AUTODUMP
- FCMP EQU 62 MANIPULATE PROCESSOR
- FCID EQU 63 INPUT DISPLAY DATA
- FCFT EQU 64 FUNCTION TIMING DIFFERENCE COUNTER
- FCLC EQU 71 AUTOLOAD CONTROL MODULE FROM PP
- FCAL EQU 414 AUTOLOAD FUNCTION CODE
- SPACE 4
- ** ASSEMBLY CONSTANTS.
- DSLN EQU 24 DETAILED STATUS LENGTH
- FRNW EQU 3 FIRMWARE REVISION NUMBER WORD
- ARNW EQU 20 FSC ADAPTOR REVISION NUMBER WORD
- CMNW EQU 21 CONTROL MODULE REVISION NUMBER WORD
- CH EQU 0 MASS STORAGE CHANNEL
- DEC MICRO 1,, 6DI DECK NAME
- TITLE 6DI - MAIN DRIVER.
- * REDEFINE CHANNEL INSTRUCTIONS TO PRODUCE CHANNEL TABLE.
- RICHI REDEFINE CHANNEL INSTRUCTIONS
- SPACE 4
- ORG MSFW
- SPACE 4
- * ENTRY POINT TRANSFERS.
- CON PRS PRESET ADDRESS
- RDS CON 0 ENTRY
- UJN RDS. READ SECTOR
- WDS CON 0 ENTRY
- UJN WDS.
- EMS SPACE 4,10
- ** EMS - END MASS STORAGE PROCESSING.
- *
- * ENTRY (T4) = CHANNEL, IF PREVIOUSLY RESERVED.
- * (T5) = EQUIPMENT.
- *
- * EXIT (A) = 0.
- *
- * NOTE - THE *.EMS* ENTRY POINT IS SUPPORTED ONLY VIA THE
- * *ENDMS* MACRO DEFINED IN *COMPMAC*. IF THIS LOCATION
- * CHANGES, THE DEFINITION OF *.EMS* MUST BE CHANGED IN
- * *PPCOM* AND ALL PROGRAMS USING THE *ENDMS*
- * MACRO MUST BE REASSEMBLED.
- .EMS SUBR ENTRY/EXIT
- LDN 0
- STD CM+3
- STI D1 SET POSITION REQUIRED
- RJM DSW DROP CHANNEL VIA *DSWM*
- UJN .EMSX RETURN
- RDS SPACE 4
- ** RDS - READ SECTOR.
- *
- * ENTRY (A) = BUFFER ADDRESS FOR SECTOR.
- *
- * EXIT (A) .LT. 0 IF UNRECOVERED ERROR AND READ ERROR
- * PROCESSING SELECTED.
- *
- * CALLS DST, FNC, LDA.
- RDS. STM RDSB SET BUFFER ADDRESS
- * THE CODE BETWEEN *RDSC* AND *RDSA* IS OVERLAID TO MEASURE
- * THE SERVO TIMING. *0SI* MEASURES THE SERVO
- * TIMING AND OVERLAYS *RDS*.
- RDSC BSS 0
- * THE FOLLOWING CODE MUST BE DUPLICATED IN BOTH *RDS* AND
- * *WDS* BECAUSE OF TIMING CONSTRAINTS FOR THE 885.
- SOI D1
- MJN RDS1 IF POSITION REQUIRED
- ADD T7
- LMM WDSA
- ZJN RDS2 IF CONSECUTIVE SECTORS
- RDS1 RJM LDA LOAD ADDRESS AND ISSUE POSITION
- RDS2 LDN FCRD NORMAL READ
- RDSA EQU *-1
- * LDN FCRU READ UTILITY SECTOR
- * LDN FCRF READ FACTORY DATA
- * LDN FCDS (READING DETAILED STATUS)
- * LDN FCTD (PERFORMING SERVO ADJUSTMENT FOR 885)
- * UJN RDS4 (ISSUING DISABLE RESERVES)
- * ENTERED HERE FROM *7SI* TO ISSUE CONTINUE FUNCTION.
- * ENTERED HERE TO READ BACK COUPLER BUFFER ON FULL TRACK
- * WRITE BUFFER TO DISK ERROR.
- RDS3 RJM FNC
- IAM *,CH
- RDSB EQU *-1
- RDS3.1 NJN WDS5 IF TRANSFER NOT COMPLETE
- * LJM DEI6.0 (IF COUPLER READ BACK)
- RDSD EQU *-1
- RDS4 LDM RDS
- SFM LDA8,CH IF CHANNEL PARITY ERROR (LOWER 800 SERIES)
- UJN DST1 CHECK STATUS
- WDS SPACE 4
- ** WDS - WRITE SECTOR.
- *
- * ENTRY (A) = BUFFER ADDRESS FOR SECTOR.
- *
- * EXIT (A) = 0 IF NO ERROR.
- * (A) = -0 IF UNRECOVERED ERROR AND WRITE ERROR
- * PROCESSING SELECTED.
- * (A) .EQ. -1 IF UNRECOVERED ERROR ON PREVIOUS SECTOR,
- * NO WRITE ERROR PROCESSING BUFFER SPECIFIED IN *WDSE*
- * AND WRITE ERROR PROCESSING SELECTED.
- *
- * CALLS DST, FNC, LDA.
- WDS. STM WDSC SET BUFFER ADDRESS
- SHN -14
- STM WDSB SET WRITE LAST SECTOR
- * THE FOLLOWING CODE MUST BE DUPLICATED IN BOTH *RDS* AND
- * *WDS* BECAUSE OF TIMING CONSTRAINTS FOR THE 885.
- SOI D1
- MJN WDS1 IF POSITION REQUIRED
- ADD T7
- LMC *
- WDSA EQU *-1
- ZJN WDS2 IF CONSECUTIVE SECTORS
- WDS1 RJM LDA LOAD ADDRESS AND ISSUE POSITION
- WDS2 LDI D1 CHECK END OF UNIT/TRACK
- * LJM /0SD/SUE2 (SPINNING DOWN AN ISD DRIVE)
- * LJM /0SD/SUE4 (SPINNING UP AN ISD DRIVE)
- ZJN WDS3 IF END OF UNIT/TRACK
- LDC 0
- WDSB EQU *-1
- WDS3 LMN FCWL WRITE LAST SECTOR
- * ENTERED HERE FROM *7SI* TO ISSUE CONTINUE FUNCTION.
- * ENTERED HERE FROM *0SD* TO ISSUE SPINUP/SPINDOWN FUNCTION.
- WDS4 RJM FNC
- OAM *,CH
- WDSC EQU *-1
- WDS5 NJN LDA9 IF INCOMPLETE TRANSFER
- WDSD LDM WDS
- * LDC /0SD/SUE4 (SPINNING UP/DOWN AN ISD DRIVE)
- * UJN DST PROCESS STATUS
- DST SPACE 4
- ** DST - DEVICE STATUS.
- * WAITS FOR CHANNEL EMPTY, THEN DISCONNECTS.
- *
- * ENTRY (A) = EXIT ADDRESS.
- *
- * EXIT (A) = 0 AND EXIT TO EXIT ADDRESS IF NO STATUS ERROR.
- * EXIT TO LDA1 IF STATUS ERROR.
- DST FJM *,CH
- DCN CH+40
- DST1 STD CM SAVE EXIT ADDRESS
- * THE *7155* CONTROLLER CANNOT ACCEPT THE GENERAL STATUS
- * FUNCTION FOR 5 MICRO SECONDS AFTER THE DATA TRANSFER
- * IS COMPLETE FOR READS AND 10 MICRO SECONDS FOR WRITE.
- * IN ORDER TO MAKE USE OF THIS TIMING CONSTRAINT THE EXIT
- * ADDRESS IS AN ENTRY CONDITION TO *DST*, WHICH IS STORED
- * IN THE EXIT INSTRUCTION DURING THE CONTROLLER OVERHEAD
- * PERIOD AFTER THE DATA TRANSFER. THIS ALLOWS THE SHORTEST
- * DELAY POSSIBLE TO RETURN TO THE CALLER AFTER GENERAL
- * STATUS IS RECEIVED. GENERAL STATUS IS PERFORMED AS AN
- * IN LINE OPERATION TO MINIMIZE OVERHEAD TIME FOR THE
- * *7155* CONTROLLER.
- LDN FCGS GET GENERAL STATUS
- RJM FNC ISSUE FUNCTION
- IAN CH+40
- SFM LDA8,CH IF CHANNEL PARITY ERROR (800 SERIES)
- DSTA NJN LDA3 IF ERRORS
- * LJM /0SD/CGS (SPINNING UP/DOWN AN ISD DRIVE)
- DSTB LJM 0,CM RETURN
- * LJM /0SC/SCP8 (SWEEP CYCLING)
- LDA SPACE 4,10
- ** LDA - LOAD ADDRESS.
- *
- * ENTRY (T5) = EQUIPMENT.
- * (T6) = TRACK.
- * (T7) = SECTOR.
- *
- * ENTRY LDA3 = ENTRY POINT TO PROCESS GENERAL STATUS ERRORS.
- * LDA2 = ENTRY POINT TO JUMP TO ERROR PROCESSOR.
- *
- * USES CM - CM+4.
- *
- * CALLS DST, DSW, FNC.
- *
- * MACROS MONITOR.
- LDA8 LCN CHPE SET CHANNEL PARITY ERROR FLAG
- LDA9 LJM DSW7 CALL ERROR PROCESSOR
- LDA CON 0 ENTRY
- * REENTER HERE ON ERROR RETRY.
- * COMPUTE PHYSICAL ADDRESS.
- LDA1 LDD OA WAIT OUTPUT REGISTER CLEAR
- CRD CM
- LDD CM
- NJN LDA1 IF NOT CLEAR
- STD CM+1 INDICATE A STANDARD SEEK
- LDD MA
- CWD T4
- MONITOR LDAM CONVERT LOGICAL TO PHYSICAL ADDRESS
- SOD CM+4 SET UNIT SWITCH COUNTER
- STI D1
- ADD T7 SET CONSECUTIVE SECTOR COUNT
- STM WDSA
- UJN LDA4 CHECK FOR SEEK WAIT NEEDED
- * ENTER HERE TO PROCESS GENERAL STATUS ERRORS.
- * *DSW* WILL DETERMINE IF STATUS REQUIRES AN ERROR PROCESSOR
- * CALL OR A SEEK WAIT MONITOR FUNCTION.
- LDA3 STD CM+3 SAVE STATUS
- LDA4 RJM DSW DRIVER SEEK WAIT PROCESSING
- LDD CM+2
- ZJN LDA5 IF CONTROLLER PREVIOUSLY RESERVED
- RJM FNC
- IAN CH+40
- SFM LDA8,CH IF CHANNEL PARITY ERROR (800 SERIES)
- LPC 2000
- NJN LDA3 IF CONTROLLER RESERVED
- LDN 11-1 SET CONNECTED STATUS IN CHRV
- RAM CHRV
- LDA5 LDD MA READ SEEK PARAMETERS
- * LJM RDS2 (GET DETAILED STATUS FOR *0CI*)
- LDAC EQU *-1
- ADN 1
- CRD CM
- LDAA LDN 0 SEEK FUNCTION
- * LDN FCS1 (SEEK 1 TO 1 INTERLACE)
- * LDN FCS2 (SEEK 2 TO 1 INTERLACE)
- * LDN FCGR (ISSUING DISABLE RESERVES)
- RJM FNC
- LDAB LDN 4
- * UJN LDA7 (ISSUING DISABLE RESERVES)
- OAM CM+1,CH OUTPUT UNIT, CYLINDER, TRACK AND SECTOR
- LDA6 NJN ERR IF ERROR
- LDA7 LDM LDA
- LJM DST CHECK STATUS
- FNC SPACE 4,15
- ** FNC - FUNCTION DEVICE.
- *
- * ENTRY (A) = FUNCTION CODE.
- *
- * EXIT (A) = 502, IF NORMAL FUNCTION.
- * = *DSLN*, IF READING DETAILED STATUS.
- * = 2, IF PERFORMING SERVO ADJUSTMENT FOR 885.
- * = 1, IF SPINNING UP/DOWN AN ISD DRIVE.
- * FUNCTION ISSUED.
- * CHANNEL ACTIVATED.
- *
- * CALLS ERR.
- FNC4 ACN CH
- LDC 502 FULL BUFFER WORD COUNT
- FNCA EQU *-1
- * LDC DSLN (READING DETAILED STATUS)
- * LDC 2 (PERFORMING SERVO ADJUSTMENT FOR 885)
- * LDC 1 (SPINNING UP/DOWN AN ISD DRIVE)
- FNC SUBR ENTRY/EXIT
- FNC1 AJM ERR,CH IF CONTROLLER NOT READY
- FNCC FAN CH
- * THE FOLLOWING DELAY MUST ALLOW AT LEAST 15 SECONDS.
- LDD HN
- STD T0
- FNC2 ADD ON ENSURE DELAY IS SATISIFIED
- FNCB IJM FNC4,CH IF FUNCTION ACCEPTED
- NJN FNC2 IF INNER TIMEOUT LOOP NOT YET COMPLETE
- SOD T0
- NJN FNC2 IF NOT YET TIMED OUT
- * UJN ERR PROCESS ERROR
- ERR SPACE 4,10
- ** ERR - CALL *7BI*.
- ERR MSERR 7BI,*
- LJM LEP1 CALL ERROR PROCESSOR
- * LJM DCI8 (DURING *7CI* PROCESSING)
- * LJM DEI6.1 (DURING *7EI* PROCESSING)
- * LJM FTO13 (DURING *7FI* PROCESSING)
- * LJM FTO16 (DURING *7FI* PROCESSING)
- * LJM DCP3 (DURING *7GI* PROCESSING)
- * LJM DCP5 (DURING *7GI* PROCESSING)
- * LJM EXD4 (DURING *7KI* PROCESSING)
- * LJM EXD11 (DURING *7KI* PROCESSING)
- * LJM /0SC/SCP9 (SWEEP CYCLING)
- ERRA EQU *-1 EXIT ADDRESS
- DSW SPACE 4,30
- ** DSW - DRIVER SEEK WAIT PROCESSING.
- *
- * ENTRY (CM+3) = SEEK WAIT FUNCTION. THE FOLLOWING IS A LIST
- * OF THE POSSIBLE VALUES AND THEIR ORIGIN.
- * 0 = CHANNEL RELEASE REQUEST. *ENDMS REQUEST*
- * 2 = SEEK IN PROGRESS. *CONTROLLER STATUS*
- * 4 = STORAGE MOVE REQUESTED OR *LDAM STATUS*
- * UNIT SWITCH REQUESTED. *LDAM STATUS*
- * 10 = DRIVE RESERVED. *CONTROLLER STATUS*
- * 11 = REQUEST CHANNEL AND UNIT. *LDAM STATUS*
- * 2000 = CONTROLLER RESERVED. *CONTROLLER STATUS*
- * 4XXX = ERROR STATUS. *CONTROLLER STATUS*
- * 5XXX = ERROR STATUS. *CONTROLLER STATUS*
- * 77YY = ERROR STATUS. *LDAM STATUS*
- * YY = COMPLIMENT OF ERROR CODE.
- * (CHRV) = DRIVER CONTROL WORD. SEE *COMSMSP*.
- *
- * EXIT (A) = 0.
- * (T4) = CHANNEL.
- * (T5) = SYSTEM DEVICE SELECTED WHEN APPROPRIATE.
- *
- * USES CM - CM+4.
- *
- * MACROS MONITOR.
- DSW4 FNC FCOC,CH+40 ISSUE RELEASE FUNCTION
- DSWD EQU *-1
- * FNC FCDR,CH+40 A DRIVE RELEASE FUNCTION IS ISSUED AS
- * OPPOSED TO THE OPERATION COMPLETE WHEN
- * A SEEK OPERATION IS OUTSTANDING ON A
- * SHARED DRIVE THROUGH THE SAME CHANNEL.
- * THE ISSUING OF THE DRIVE RELEASE PREVENTS
- * ANOTHER MACHINE FROM ACCESSING, THROUGH
- * THE SAME CONTROLLER, THE DRIVE THAT HAS
- * THE SEEK INITIATED.
- LDD HN
- STD T0
- DSW5 IJM DSW2,CH IF FUNCTION ACCEPTED
- ADD ON ENSURE DELAY IS SATISIFIED
- NJN DSW5 IF INNER TIMEOUT LOOP NOT YET COMPLETE
- SOD T0
- NJN DSW5 IF NOT YET TIMED OUT
- UJN DSW2 ISSUE DRIVER SEEK WAIT
- DSW SUBR ENTRY/EXIT
- LDM CHRV CHECK CHANNEL RESERVATION
- STD CM
- LPN 11
- DSW1 LMD CM+3
- ZJN DSWX IF NO *DSWM* NEEDED
- DSWB SCN 77
- * SCN 75 (SHARED DEVICE - NO RELEASE AFTER SEEK)
- SHN 21-13
- NJN DSW6 IF NO RELEASE OR ERROR
- LDD CM
- LPN 10
- NJN DSW4 IF CONNECTED ISSUE RELEASE
- DSW2 LDD MA WRITE MESSAGE BUFFER PARAMETERS
- CWD T4
- MONITOR DSWM DRIVER SEEK WAIT
- * LDN 0
- DSW3 RAI T0 MODIFY CHANNEL INSTRUCTIONS
- LDM TCHA,CM
- STD T0
- AOD CM
- LDD CM+4
- DSWA SBN CH
- NJN DSW3 IF MORE CHANNEL INSTRUCTIONS TO MODIFY
- LDD MA SET T4, T5, AND CM
- CRD T4
- LDD CM+1 SET RELEASE CODE
- STM DSWD
- LDD CM SET CHANNEL STATUS
- STM CHRV
- UJN DSW1 CHECK FOR ERROR
- DSW6 PJN DSW2 IF NO ERROR
- LDD CM+3 SET ERROR CODE
- DSW7 STI D1
- LJM ERR PROCESS ERROR
- TCHS SPACE 4,10
- ** TCHA - TABLE OF CHANNEL INSTRUCTION ADDRESSES.
- CHTL DSWA TERMINATE CHANNEL TABLE
- TCHA CHTB
- RSTC RESTORE CHANNEL INSTRUCTIONS
- PRS SPACE 4,10
- ** PRS - PRESET.
- *
- * ENTRY (CM - CM+4) = *EQDE* WORD OF EST ENTRY.
- *
- * EXIT SEEK FUNCTION SELECTED.
- * SELECTION MADE FOR DRIVE RELEASE AFTER SEEK.
- PRS LDM STSB SET SEEK FUNCTION
- ADK LDNI+FCS1-2000
- STM LDAA
- LDI D1
- STM DSWB
- LDN 0 INITIALIZE UNIT SWITCH COUNTER
- STI D1
- LJM SMSX RETURN
- SPACE 4
- .1 SET *+4-MSFW CHECK FOR OVERFLOW
- .1 SET .1/5
- .1 SET MSFW+.1*5
- .2 SET PPFW-5-* BYTES AVAILABLE BEFORE OVERFLOW
- ERRNG PPFW-5-.1 DRIVER OVERFLOWS INTO *PPFW*-5
- TITLE 6DJ - ISD DISK DRIVER.
- IDENT 6DJ,MSFW ISD DISK DRIVER.
- *COMMENT 6DI - ISD DISK DRIVER.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- SPACE 4,10
- *** 6DJ - ISD DISK DRIVER.
- *
- * K. F. REHM. 85/03/11.
- SPACE 4,15
- *** *6DJ* ALLOWS ACCESS TO ISD (834 AND 836) DRIVES ONLY.
- * IT PROVIDES IMPROVED DISK PERFORMANCE OVER *6DI* BY MAKING
- * SEVERAL CHANGES TO THE DATA TRANSFER PROTOCOL. *6DJ* CAUSES
- * *CPUMTR* TO PASS THE DIRECTION OF THE DISK TRANSFER (READ OR
- * WRITE) IN PREVIOUSLY UNUSED BITS IN THE SEEK PARAMETER WORDS.
- * THIS ALLOWS THE ADAPTER TO REDUCE SOME OF THE OVERHEAD IN ITS
- * COMMUNICATIONS WITH THE CONTROL MODULE AND ALLOWS THE PP TO
- * GIVE UP THE CHANNEL UNTIL DATA IS AVAILABLE IN THE CONTROL
- * MODULE-S BUFFER, EFFECTIVELY OVERLAPPING DISK LATENCY TIME.
- * *6DJ* ALSO GIVES UP THE CHANNEL AFTER A *WLSF* IF THE LAST
- * SECTOR WRITTEN HAS NOT YET ARRIVED ON DISK. THIS ALLOWS
- * OTHER PP-S TO USE THE CHANNEL WHILE THE CONTROL MODULE
- * FINISHES WRITING THE SECTOR. FOR NON-PERFORMANCE CRITICAL
- * DATA TRANSFERS SUCH AS READING THE PACK SERIAL NUMBER, THE
- * REGULAR *6DI* DRIVER IS USED INSTEAD.
- *
- * *6DJ* USES ALL THE SAME MASS STORAGE OVERLAYS AS
- * *6DI*. SINCE THE OVERLAYS OFTEN READ FROM OR MODIFY THE
- * RESIDENT DRIVER, MANY OF THE SUBROUTINE TAGS IN *6DJ* MUST
- * BE DEFINED AT THE SAME ADDRESS AS THOSE IN *6DI*. THOSE
- * TAGS IN *6DJ* WHICH DO NOT NEED TO BE IN LINE WITH THEIR
- * *6DI* COUNTERPARTS HAVE A *.J* APPENDED TO THEM TO PREVENT
- * ASSEMBLY ERRORS.
- SPACE 4,10
- ** ENTRY CONDITIONS.
- *
- * (T4) = CHANNEL IF PREVIOUSLY RESERVED.
- * (T5) = EST ORDINAL.
- * (T6) = TRACK.
- * (T7) = SECTOR.
- SPACE 4,10
- * REDEFINE CHANNEL INSTRUCTIONS TO PRODUCE CHANNEL TABLE.
- RICHI REDEFINE CHANNEL INSTRUCTIONS
- SPACE 4
- ORG MSFW
- SPACE 4
- * ENTRY POINT TRANSFERS.
- CON PRS PRESET *6DJ*
- RDS CON 0 ENTRY
- UJN RDS. READ SECTOR
- WDS CON 0 ENTRY
- UJN WDS. WRITE SECTOR
- EMS SPACE 4,10
- ** EMS - END MASS STORAGE PROCESSING.
- *
- * ENTRY (T4) = CHANNEL, IF PREVIOUSLY RESERVED.
- * (T5) = EQUIPMENT.
- *
- * EXIT (A) = 0.
- *
- * NOTE - THE *.EMS* ENTRY POINT IS SUPPORTED ONLY VIA THE
- * *ENDMS* MACRO DEFINED IN *COMPMAC*. IF THIS LOCATION
- * CHANGES, THE DEFINITION OF *.EMS* MUST BE CHANGED IN
- * *PPCOM* AND ALL PROGRAMS USING THE *ENDMS*
- * MACRO MUST BE REASSEMBLED.
- .EMS SUBR ENTRY/EXIT
- LDN 0
- STD CM+3
- STI D1 SET POSITION REQUIRED
- RJM DSW DROP CHANNEL VIA *DSWM*
- UJN .EMSX RETURN
- RDS SPACE 4,10
- ** RDS - READ SECTOR.
- *
- * ENTRY (A) = BUFFER ADDRESS FOR SECTOR.
- *
- * EXIT (A) .LT. 0 IF UNRECOVERED ERROR AND READ ERROR
- * PROCESSING SELECTED.
- *
- * CALLS DST, FNC, LDA.
- RDS. STM RDSB SET BUFFER ADDRESS
- SOI D1
- MJN RDS1 IF POSITION REQUIRED
- ADD T7
- LMM WDSA
- ZJN RDS2 IF CONSECUTIVE SECTORS
- RDS1 RJM LDA LOAD ADDRESS AND ISSUE POSITION
- RDS2 LDN FCRD NORMAL READ
- ERRNZ RDS2-.RDS2 ENSURE ADDRESS IS CORRECT FOR *LDAM* CHECK
- * ENTERED HERE FROM *7SI* TO ISSUE CONTINUE FUNCTION.
- * ENTERED HERE TO READ BACK COUPLER BUFFER ON FULL TRACK
- * WRITE BUFFER TO DISK ERROR.
- RDS3 RJM FNC
- IAM *,CH
- RDSB EQU *-1
- NJN WDS5 IF TRANSFER NOT COMPLETE
- SFM LDA8,CH IF CHANNEL PARITY ERROR (LOWER 800 SERIES)
- LDM RDS
- UJN DST1 CHECK STATUS
- WDS SPACE 4,10
- ** WDS - WRITE SECTOR.
- *
- * ENTRY (A) = BUFFER ADDRESS FOR SECTOR.
- *
- * EXIT (A) = 0 IF NO ERROR.
- * (A) = -0 IF UNRECOVERED ERROR AND WRITE ERROR
- * PROCESSING SELECTED.
- * (A) .EQ. -1 IF UNRECOVERED ERROR ON PREVIOUS SECTOR,
- * NO WRITE ERROR PROCESSING BUFFER SPECIFIED IN *WDSE*
- * AND WRITE ERROR PROCESSING SELECTED.
- *
- * CALLS DST, FNC, LDA.
- WDS. STM WDSC SET BUFFER ADDRESS
- SHN -14
- STM WDSB SET WRITE LAST SECTOR
- SOI D1
- MJN WDS1 IF POSITION REQUIRED
- ADD T7
- LMC *
- WDSA EQU *-1
- ZJN WDS2 IF CONSECUTIVE SECTORS
- WDS1 RJM LDA LOAD ADDRESS AND ISSUE POSITION
- WDS2 LDI D1 CHECK END OF UNIT/TRACK
- ZJN WDS3 IF END OF UNIT/TRACK
- LDC 0
- WDSB EQU *-1
- WDS3 LMN FCWL WRITE LAST SECTOR
- * ENTERED HERE FROM *7SI* TO ISSUE CONTINUE FUNCTION.
- WDS4 RJM FNC
- OAM *,CH
- WDSC EQU *-1
- WDS5 NJN LDA9 IF INCOMPLETE TRANSFER
- LDM WDS
- * UJN DST PROCESS STATUS
- DST SPACE 4,10
- ** DST - DEVICE STATUS.
- * WAITS FOR CHANNEL EMPTY, THEN DISCONNECTS.
- *
- * ENTRY (A) = EXIT ADDRESS.
- *
- * EXIT (A) = 0 AND EXIT TO EXIT ADDRESS IF NO STATUS ERROR.
- * EXIT TO LDA1 IF STATUS ERROR.
- DST FJM *,CH IF LAST WORD NOT YET TAKEN
- DCN CH+40
- DST1 STD CM SAVE EXIT ADDRESS
- ERRNZ DST1-.DST1 ENSURE ADDRESS IS CORRECT FOR *1MS* JUMP
- LDN FCGS GET GENERAL STATUS
- RJM FNC ISSUE FUNCTION
- IAN CH+40
- SFM LDA8,CH IF CHANNEL PARITY ERROR (800 SERIES)
- NJN LDA3.J IF ERRORS
- LJM 0,CM RETURN
- LDA SPACE 4,10
- ** LDA - LOAD ADDRESS.
- *
- * ENTRY (T5) = EQUIPMENT.
- * (T6) = TRACK.
- * (T7) = SECTOR.
- *
- * ENTRY LDA3 = ENTRY POINT TO PROCESS GENERAL STATUS ERRORS.
- * LDA2 = ENTRY POINT TO JUMP TO ERROR PROCESSOR.
- *
- * USES CM - CM+4.
- *
- * CALLS DST, DSW, FNC.
- *
- * MACROS MONITOR.
- LDA8 LCN CHPE SET CHANNEL PARITY ERROR FLAG
- LDA9 LJM DSW7A CALL ERROR PROCESSOR
- LDA CON 0 ENTRY
- * REENTER HERE ON ERROR RETRY.
- * COMPUTE PHYSICAL ADDRESS.
- LDA1 LDD OA WAIT OUTPUT REGISTER CLEAR
- CRD CM
- LDD CM
- NJN LDA1 IF NOT CLEAR
- LDD MA
- CWD T4
- LDM LDA PASS READ/WRITE FLAG TO *CPUMTR*
- STD CM+1
- MONITOR LDAM CONVERT LOGICAL TO PHYSICAL ADDRESS
- SOD CM+4 SET UNIT SWITCH COUNTER
- STI D1
- ADD T7 SET CONSECUTIVE SECTOR COUNT
- STM WDSA
- UJN LDA4.J CHECK FOR SEEK WAIT NEEDED
- * ENTER HERE TO PROCESS GENERAL STATUS ERRORS.
- * *DSW* WILL DETERMINE IF STATUS REQUIRES AN ERROR PROCESSOR
- * CALL OR A SEEK WAIT MONITOR FUNCTION.
- LDA3.J STD CM+3 SAVE STATUS
- LDA4.J RJM DSW DRIVER SEEK WAIT PROCESSING
- * IF (CM+2) = 1, THEN *DSW* WAS ENTERED BECAUSE A *0020*
- * GENERAL STATUS INDICATED THAT THE SECTOR JUST WRITTEN HAD NOT
- * YET ARRIVED ON DISK. IN ORDER TO ALLOW OTHER PP-S TO USE THE
- * CHANNEL DURING THIS DELAY, *6DJ* GIVES UP THE CHANNEL, THEN
- * PERIODICALLY RE-REQUESTS IT TO SEE IF THE SECTOR HAS BEEN
- * WRITTEN, GIVING THE CHANNEL UP AGAIN IF THE SECTOR IS STILL
- * NOT ON DISK. A GENERAL STATUS OF ZERO INDICATES THAT THE
- * SECTOR HAS ARRIVED ON DISK; BY PATCHING THE DRIVER EXIT
- * ADDRESS INTO *LDA*, THE ZERO GENERAL STATUS WILL CAUSE *6DJ*
- * TO CORRECTLY RETURN TO ITS CALLER.
- LDD CM+2
- ZJN LDA5 IF CONTROLLER PREVIOUSLY RESERVED
- SBN 1
- NJN LDA4.1 IF NOT BACK FROM A DSWM SUBFUNCTION 20
- LDM WDS
- STM LDA
- LDA4.1 LDN 11-1 SET CONNECTED STATUS IN CHRV
- RAM CHRV
- LDA5 LDD MA READ SEEK PARAMETERS
- ADN 1
- CRD CM
- LDN FCS1 (SEEK ONE TO ONE INTERLACE)
- RJM FNC
- LDN 4
- OAM CM+1,CH OUTPUT UNIT, CYLINDER, TRACK AND SECTOR
- NJN ERR IF ERROR
- LDM LDA
- LJM DST CHECK STATUS
- FNC SPACE 4,10
- ** FNC - FUNCTION DEVICE.
- *
- * ENTRY (A) = FUNCTION CODE.
- *
- * EXIT (A) = 502.
- * FUNCTION ISSUED.
- * CHANNEL ACTIVATED.
- *
- * CALLS ERR.
- FNC4 ACN CH
- LDC 502 FULL BUFFER WORD COUNT
- FNC SUBR ENTRY/EXIT
- AJM ERR,CH IF CONTROLLER NOT READY
- FAN CH
- * NOTE - THE FOLLOWING DELAY MUST BE AT LEAST 300 MS.
- FNC2A ADD ON ENSURE 300 MS DELAY IS SATISFIED
- IJM FNC4,CH IF FUNCTION ACCEPTED
- NJN FNC2A IF NOT YET TIMED OUT
- UJN ERR PROCESS ERROR
- SPACE 4,10
- * NOTE - THE FOLLOWING CODE IS PLACED HERE TO ALLOW *6DJ*
- * ADDRESSES TO REMAIN IN SYNCH WITH *6DI*
- DSW6A PJN DSW5.1 IF NO ERROR
- LDD CM+3 SET ERROR CODE
- DSW7A STI D1
- * UJN ERR PROCESS ERROR
- ERR SPACE 4,10
- ** ERR - CALL *7BI*.
- ERR MSERR 7BI,*
- LJM LEP1 CALL ERROR PROCESSOR
- * LJM DCI8 (DURING *7CI* PROCESSING)
- * LJM DEI6.1 (DURING *7EI* PROCESSING)
- * LJM FTO13 (DURING *7FI* PROCESSING)
- * LJM FTO16 (DURING *7FI* PROCESSING)
- * LJM DCP3 (DURING *7GI* PROCESSING)
- * LJM DCP5 (DURING *7GI* PROCESSING)
- ERRA EQU *-1 EXIT ADDRESS
- DSW SPACE 4,30
- ** DSW - DRIVER SEEK WAIT PROCESSING.
- *
- * ENTRY (CM+3) = SEEK WAIT FUNCTION. THE FOLLOWING IS A LIST
- * OF THE POSSIBLE VALUES AND THEIR ORIGIN.
- * 0 = CHANNEL RELEASE REQUEST. *ENDMS REQUEST*
- * 2 = SEEK IN PROGRESS. *CONTROLLER STATUS*
- * 4 = STORAGE MOVE REQUESTED OR *LDAM STATUS*
- * UNIT SWITCH REQUESTED. *LDAM STATUS*
- * 10 = DRIVE RESERVED. *CONTROLLER STATUS*
- * 11 = REQUEST CHANNEL AND UNIT. *LDAM STATUS*
- * 20 = WRITE IN PROGRESS. *CONTROLLER STATUS*
- * 4XXX = ERROR STATUS. *CONTROLLER STATUS*
- * 5XXX = ERROR STATUS. *CONTROLLER STATUS*
- * 77YY = ERROR STATUS. *LDAM STATUS*
- * YY = COMPLIMENT OF ERROR CODE.
- * (CHRV) = DRIVER CONTROL WORD. SEE *COMSMSP*.
- *
- * EXIT (A) = 0.
- * (T4) = CHANNEL.
- * (T5) = SYSTEM DEVICE SELECTED WHEN APPROPRIATE.
- *
- * USES CM - CM+4.
- *
- * MACROS MONITOR.
- DSW4 FNC FCOC,CH+40 ISSUE RELEASE FUNCTION
- DSWD EQU *-1
- * FNC FCDR,CH+40 A DRIVE RELEASE FUNCTION IS ISSUED AS
- * OPPOSED TO THE OPERATION COMPLETE WHEN
- * A SEEK OPERATION IS OUTSTANDING ON A
- * SHARED DRIVE THROUGH THE SAME CHANNEL.
- * THE ISSUING OF THE DRIVE RELEASE PREVENTS
- * ANOTHER MACHINE FROM ACCESSING, THROUGH
- * THE SAME CONTROLLER, THE DRIVE THAT HAS
- * THE SEEK INITIATED.
- LDN 1
- STD T0
- DSW5 IJM DSW2,CH IF FUNCTION ACCEPTED
- ADN 1 ENSURE DELAY IS SATISIFIED
- NJN DSW5 IF INNER TIMEOUT LOOP NOT YET COMPLETE
- SOD T0
- NJN DSW5 IF NOT YET TIMED OUT
- DSW5.1 UJN DSW2 ISSUE DRIVER SEEK WAIT
- DSW SUBR ENTRY/EXIT
- LDM CHRV CHECK CHANNEL RESERVATION
- STD CM
- LPN 11
- DSW1 LMD CM+3
- ZJN DSWX IF NO *DSWM* NEEDED
- SCN 55
- SHN 21-13
- NJN DSW6A IF NO RELEASE OR ERROR
- LDD CM
- LPN 10
- NJN DSW4 IF CONNECTED ISSUE RELEASE
- DSW2 LDD OA CHECK IF *DRCM*/*EXCM* COMPLETED
- CRM DSWC,ON
- LDM DSWC
- NJN DSW2 IF FUNCTION NOT YET PROCESSED
- LDD MA STORE PARAMETERS
- CWD T4
- MONITOR DSWM DRIVER SEEK WAIT
- * LDN 0
- DSW3.J RAI T0 MODIFY CHANNEL INSTRUCTIONS
- LDM TCHA.J,CM
- STD T0
- AOD CM
- LDD CM+4
- DSWA.J SBN CH
- NJN DSW3.J IF MORE CHANNEL INSTRUCTIONS TO MODIFY
- LDD MA SET T4, T5, AND CM
- CRD T4
- LDD CM+1 SET RELEASE CODE
- STM DSWD
- LDD CM SET CHANNEL STATUS
- STM CHRV
- LJM DSW1 CHECK FOR ERROR
- TCHS SPACE 4,10
- ** TCHA.J - TABLE OF CHANNEL INSTRUCTION ADDRESSES
- CHTL DSWA.J TERMINATE CHANNEL TABLE
- TCHA.J CHTB
- RSTC RESTORE CHANNEL INSTRUCTIONS
- ERRNG PRS-* DRIVER OVERFLOWED INTO SCRATCH AREA
- PRS SPACE 4,10
- ** PRS - PRESET *6DJ*.
- PRS BSS 0 ENTRY
- LDN 0 FORCE *LDA* CALL ON FIRST OPERATION
- STI D1
- LJM SMSX EXIT VIA *.SMS*
- DSWC BSS 0 *DRCM*/*ECXM* CHECK SCRATCH AREA
- SPACE 4
- .1 SET *+5+4-MSFW CHECK FOR OVERFLOW
- .1 SET .1/5
- .1 SET MSFW+.1*5
- .2 SET PPFW-5-*-5 BYTES AVAILABLE BEFORE OVERFLOW
- ERRNG PPFW-5-.1 DRIVER OVERFLOWS INTO *PPFW*-5
- 7BI MSOVL 7651,T2,EPFW-1,("HN" INITIAL ERROR PROCESSOR.)
- 7CI SPACE 4,10
- *** INITIALIZE ERROR PROCESSOR.
- * K. F. REHM. 84/02/01.
- 7CI SPACE 4,10
- *** *7BI* IS CALLED BY *6DI*/*6DJ* WHEN AN ERROR HAS BEEN
- * DETECTED. *7BI* OVERLAYS *6DI*/*6DJ* PRESET WITH RECOVERY
- * CODE INITIALIZES MEMORY LOCATIONS USED BY OTHER OVERLAYS.
- SPACE 4,10
- ** DBI - INITIALIZE ERROR PROCESSING.
- *
- * ENTRY (T1) = LENGTH OF *PRS* OVERLAY CODE.
- * (T2) = RDCT.
- * (T4 - T7) = DRIVER PARAMETERS.
- * (RDCT) = ERROR PROCESSOR INTERFACE WORD.
- * BIT 6 = 0 IF FIRST RETRY ATTEMPT.
- * (DRSW) = *LDAM*/*DSWM*/CHANNEL PARITY ERROR CODE
- * COMPLIMENT.
- *
- * EXIT TO *7CI*.
- * (T4 - T7) = UNCHANGED.
- * (DEAI) = ALGORITHM INDEX.
- * EXIT (DEDT) = ERROR PROCESSING CONTROL WORD.
- * BITS AFFECTED BY THIS OVERLAY -
- * BITS 3 - 0 = *6DI*/*6DJ* DRIVER TYPE.
- * (DEGS) = 0.
- * (DENR) = 0 IF FIRST RETRY ATTEMPT, ELSE UNCHANGED.
- * (DERC) = 0 IF FIRST RETRY ATTEMPT, ELSE UNCHANGED.
- * (DERW) = 1 IF WRITE REQUEST, 0 IF READ REQUEST.
- * (DEST) = 0.
- * (DEWR) = 0 IF FIRST RETRY ATTEMPT, ELSE UNCHANGED.
- * (DEXA) = *LDA1*, *7EP* EXIT ADDRESS.
- * (MSFW) = INITIAL CHANNEL.
- * (RDCT) = ERROR PROCESSOR INTERFACE WORD.
- * BITS AFFECTED BY THIS OVERLAY -
- * BIT 4 = 1.
- * (WDSB) = *WLSF* FUNCTION.
- * (MB, BYTES 0-3) = T4 - T7, SAVED FOR *7FI*.
- * (MB, BYTE 4) = ADDRESS OF LAST *FNC* CALL FOR *7FI*.
- * (MB+1) = PHYSICAL DISK ADDRESS FROM *LDAM*.
- *
- * USES T1, CM - CM+4.
- *
- * MACROS MONITOR, MSERR.
- SPACE 4,10
- * *7BI* MOVES THE FOLLOWING CODE TO THE *6DI* PRESET AREA.
- QUAL
- DBIA BSS 0 ERROR PROCESSOR CALLS
- LOC PRS
- ** ERR2 - CALL STATUS PROCESSOR.
- ERR2 MSERR 7SI,*
- UJN WEP1 EXECUTE *7SI*
- ** WEP - WRITE ERROR PROCESSOR.
- WEP STD T2
- MSERR 7WI,*
- WEP1 LJM LEP1 EXECUTE OVERLAY
- * THE FOLLOWING CHECK VERIFIES THAT LINKAGE BYTES ARE NOT
- * DESTROYED DURING ERROR RECOVERY OF THE FIRST SECTOR OF A
- * PP PROGRAM LOAD. IT ALSO VERIFIES THAT THE USE OF LONG
- * TERM ERROR PROCESSOR DATA CELLS DOES NOT DESTROY THE ERROR
- * PROCESSOR CALL CODE.
- ERRNG DEFW+1-* OVERFLOW
- LOC *O
- DBIAL EQU *-DBIA
- QUAL *
- SPACE 4,10
- DBI ENTRY *7BI* ENTRY
- DBI1 LDM DBIA-1,T1 MOVE CODE TO PRESET AREA
- STM PRS-1,T1
- SOD T1
- NJN DBI1 IF MORE TO MOVE
- STM DEST INITIALIZE ERROR PROCESSING CONTROL WORD
- STM DEGS INITIALIZE GENERAL STATUS
- STM DEDT SET DRIVER TYPE
- ERRNZ /COMSDFS/D6DI CODE REQUIRES *D6DI* = 0
- ERRNZ /COMSDFS/D6DJ CODE REQUIRES *D6DJ* = 0
- LCN 0
- STM DELF PRESET LAST FUNCTION
- SFA EST,T5
- ADK EQDE
- CRD CM
- LDD CM+4 GET ALGORITHM INDEX FROM MST
- SHN 3
- ADK DILL
- CRD CM
- LDD CM+4
- LPN 77
- STM DEAI
- LDM FNC PRESERVE ADDRESS OF LAST *FNC* CALL
- STD CM
- LDD MA SAVE (T4 - CM) IN CASE *7FI* IS CALLED
- CWD T4
- LDN 0
- STD CM+1
- MONITOR LDAM SAVE PHYSICAL DISK ADDRESS
- LDC RDS2 SET READ/WRITE FLAG
- SBM LDA
- SHN -21
- ERRNZ WRIP-1 CODE DEPENDS ON VALUE OF *WRIP*
- ERRNZ REDP CODE DEPENDS ON VALUE OF *REDP*
- STM DERW
- LDI T2
- LPC 100
- NJN DBI2 IF NOT FIRST RETRY ATTEMPT
- STM DERC INITIALIZE RETRY COUNT
- STM DEWR INITIALIZE *DATA WRITTEN/READ* FLAG
- STM DENR INITIALIZE *NON-RECOVERABLE ERROR* FLAG
- LDD HN
- STI T2
- LDD T4 SAVE INITIAL CHANNEL
- STM MSFW
- LDI D1
- LMC 7777&LNRE
- ZJN DBI2 IF SUSPECT SET BY PREVIOUS PP
- LDM CHRV
- SCN EPNS
- LMN EPNS PERMIT ACCESS TO SUSPECT DEVICE
- STM CHRV
- DBI2 LDC LDA1 SET ERROR PROCESSOR EXIT ADDRESS
- STM DEXA
- MSERR 7CI EXECUTE *7CI*
- SPACE 4,10
- ERRNG 10000-* *7BI* OVERFLOW
- BSS 10000-* (SPARES)
- CON DBI-1 (T0) = ENTRY ADDRESS - 1
- CON DBIAL (T1) = LENGTH OF ERROR PROCESSOR CALL CODE
- CON RDCT (T2) = RDCT
- ERRNZ LN-* INCORRECT *7BI* OVERLAY LENGTH
- QUAL *
- 7CI MSOVL 7637,T2,DEXA,(OBTAIN GENERAL AND DETAILED STATUS.)
- SPACE 4,10
- *** OBTAIN GENERAL AND DETAILED STATUS.
- * R. J. MAAS. 80/12/12.
- * C. R. LUND. 81/07/30.
- SPACE 4,10
- * *7CI* IS CALLED BY *7BI*. IF THE ERROR IS A
- * CONTROLLER REPORTED ERROR, *7CI* WILL OBTAIN GENERAL AND
- * DETAILED STATUS FROM THE CONTROLLER. IF THE ERROR IS A
- * *DSWM*, *LDAM* OR CHANNEL PARITY ERROR, STATUS WILL NOT BE
- * TAKEN. INSTEAD, *7EI* WILL BE CALLED IMMEDIATELY. *7FI*
- * WILL BE CALLED IF EITHER STATUS FUNCTION TIMES OUT OR AN
- * INCOMPLETE DATA TRANSFER OCCURS ON EITHER STATUS INPUT.
- 7DI SPACE 4,10
- * REDEFINE CHANNEL INSTRUCTIONS TO PRODUCE LINKED LIST.
- FWDL$ EQU 1 SELECT FORWARD LINKED CHANNEL INSTRUCTIONS
- RICHL
- LEO SPACE 4,10
- ** DCI - OBTAIN GENERAL AND DETAILED STATUS.
- *
- * ENTRY (T1) = DETAILED STATUS SIZE.
- * (T2) = FIRST CHANNEL INSTRUCTION ADDRESS.
- * (T4 - T7) = DRIVER PARAMETERS.
- * (D1) = DRSW.
- * (DRSW) = *LDAM*/*DSWM*/CHANNEL PARITY ERROR CODE
- * COMPLIMENT.
- * (MB, BYTES 0-3) = T4 - T7, SAVED FOR *7FI*.
- * (MB, BYTE 4) = ADDRESS OF LAST *FNC* CALL FOR *7FI*.
- * (MB+1) = PHYSICAL DISK ADDRESS FROM *LDAM*.
- *
- * EXIT TO *7EI* IF NOT A CONTROLLER REPORTED ERROR OR A
- * CHANNEL PARITY ERROR OCCURS WHEN ATTEMPTING TO INPUT
- * STATUS.
- * TO *7FI* IF FUNCTION TIMEOUT OR INCOMPLETE DATA
- * TRANSFER ON STATUS INPUT.
- * TO *7DI* OTHERWISE.
- * (T2) = *7EI* PROCESSING INDEX IF *7EI* IS CALLED.
- * (T4 - T7) = UNCHANGED.
- * (DEEC) = ERROR CODE (MEANINGFUL ONLY IF CALLING *7EI*
- * OR *7FI*).
- * = *CSTE* IF FUNCTION TIMEOUT OR INCOMPLETE DATA
- * TRANSFER.
- * = *CHPE* IF CHANNEL PARITY ERROR ON STATUS
- * INPUT OR CHANNEL PARITY ERROR ON INPUT IN
- * DRIVER.
- * = ERROR CODE REPORTED BY *DSWM* OR *LDAM*.
- * (DEGS) = GENERAL STATUS.
- * (DELF) = FUNCTION (COULD BE DATA) RETRIEVED FROM
- * CHANNEL.
- * (DERC) = *CHPE* RETRY LIMIT - 1 IF CHANNEL PARITY
- * ERROR ON STATUS INPUT IN THIS OVERLAY,
- * OTHERWISE UNCHANGED.
- * (MB, BYTES 0-3) = UNCHANGED.
- * (MB, BYTE 4) = UNCHANGED.
- * (MB+1) = UNCHANGED.
- * (MB+2 - MB+5) = DETAILED STATUS IF CALLING *7DI*.
- *
- * USES CM, T1, T2.
- *
- * CALLS FNC.
- *
- * MACROS MSERR.
- DCI ENTRY *7CI* ENTRY
- LDC DCI8 SET FUNCTION TIMEOUT ERROR ADDRESS
- STM ERRA
- * INITIALIZE TO ZEROS THE AREA WHERE DETAILED STATUS WILL BE
- * READ IN.
- ERRNG *-OFFW-DSLN DETAILED STATUS DESTROYS CODE
- DCI1 LDN 0
- STM OFFW-1,T1
- SOD T1
- NJN DCI1 IF MORE BYTES TO CLEAR
- * MODIFY CHANNEL INSTRUCTIONS.
- * LDN 0
- DCI2 RAD T2
- LDI T2 SAVE LINK TO NEXT CHANNEL INSTRUCTION
- LPN 37
- STD CM
- LDD T4 MODIFY A CHANNEL INSTRUCTION
- SBD CM
- RAI T2
- LDD CM
- NJN DCI2 IF MORE INSTRUCTIONS TO MODIFY
- * IF THE ERROR WAS REPORTED BY THE CONTROLLER, PROCEED TO
- * TAKE GENERAL AND DETAILED STATUS. IN ALL OTHER CASES GO
- * DIRECTLY TO *7EI*.
- LDI D1
- SBK 7700
- MJN DCI5 IF CONTROLLER REPORTED ERROR
- LMN 77
- UJN DCI4 EXECUTE *7EI*
- * PROCESS A CHANNEL PARITY ERROR (800 SERIES MACHINES)
- * THAT OCCURS ON INPUT OF GENERAL OR DETAILED STATUS
- * IN *7CI*. *CHRT* RETRIES WILL BE PERFORMED BEFORE
- * THE ERROR IS CONSIDERED UNRECOVERED.
- DCI3 AOD T1
- SBN CHRT
- MJN DCI6 IF NOT UNRECOVERED YET
- LDK CHRT-1 FORCE UNRECOVERED ERROR
- STM DERC
- LDN CHPE SET CHANNEL PARITY ERROR FLAG
- DCI4 LJM DCI9 CALL *7EI*
- * RETRIEVE ANY FUNCTION OR DATA LEFT ON THE CHANNEL AND THEN
- * TAKE BOTH GENERAL AND DETAILED STATUS. IF A FUNCTION TIMES
- * OUT OR IF ALL OF GENERAL OR DETAILED STATUS IS NOT RECEIVED,
- * CALL *7FI* TO DETERMINE THE CAUSE OF THE PROBLEM.
- DCI5 IJM DCI7,CH IF NOT FUNCTION TIMEOUT
- EJM DCI6,CH IF NO FUNCTION ON CHANNEL
- IAN CH+40 INPUT FUNCTION
- STM DELF
- DCI6 DCN CH+40
- DCI7 LDN FCGS GET GENERAL STATUS
- RJM FNC
- LDN 1
- IAM DEGS,CH
- SFM DCI3,CH IF CHANNEL PARITY ERROR (800 SERIES)
- NJN DCI8 IF INCOMPLETE DATA TRANSFER
- STD T1 RESET CHANNEL PARITY ERROR RETRY COUNT
- LDM DEGS
- LMC 5017
- ZJN DCI8 IF CONTROL MODULE MEMORY ERROR
- SHN 0-12
- LPN 1
- LMN 1
- ERRNZ EI0 CODE ASSUMES *EI0* = 0
- ZJN DCI11 IF OPPOSITE ACCESS RESERVED
- LDN FCDS GET DETAILED STATUS
- RJM FNC
- LDN DSLN
- IAM OFFW,CH
- ERRNG *-OFFW-DSLN DATA READ IN DESTROYS CODE
- SFM DCI3,CH IF CHANNEL PARITY ERROR (800 SERIES)
- NJN DCI8 IF INCOMPLETE DATA TRANSFER
- LDN 3R7DQ&3R7DI
- STM DCIA
- MSERR 7DI,=
- UJN DCI12 EXECUTE *7DI*
- DCI8 LDD HN
- ERRNZ 3R7FI-3R7EI-100 CODE ASSUMES RELATIVE VALUES
- RAM DCIA
- LDN CSTE SET CONTROLLER STOP ERROR CODE
- DCI9 STM DEEC
- LDN EI3 SET *7EI* PROCESSOR INDEX
- DCI11 STD T2
- DCI12 LDN DSLN/5
- STD T1
- LDD MA
- ADN 2
- CWM OFFW,T1
- ERRNZ DSLN/5-4 ADJUST IF VALUE OF *DSLN* CHANGES
- MSERR 7EI,*
- MSERR 7FI,= (FUNCTION TIMEOUT/DATA TRANSFER ERROR)
- DCIA EQU *-1
- LJM LEP1 EXECUTE *7DI*/*7EI*/*7FI*
- SPACE 4
- HERE TERMINATE LINKED CHANNEL INSTRUCTIONS
- SPACE 4,10
- ERRNG 10000-* *7CI* OVERFLOW
- BSS 10000-* (SPARES)
- CON DCI-1 (T0) = ENTRY ADDRESS - 1
- CON DSLN (T1) = DETAILED STATUS LENGTH
- CON CH01$ (T2) = FIRST CHANNEL INSTRUCTION ADDRESS
- ERRNZ LN-* INCORRECT *7CI* OVERLAY LENGTH
- QUAL *
- 7DI MSOVL 7550,T2,DEXA,(DETAILED STATUS PROCESSOR.)
- 7DI SPACE 4,10
- *** DETAILED STATUS PROCESSOR.
- * R. M. DANISCH. 85/02/06.
- 7DI SPACE 4,10
- * *7DI* IS CALLED BY *7CI* TO DETERMINE THE ERROR TYPE
- * BY ANALYZING DETAILED STATUS.
- 7DI SPACE 4,10
- ** DDI - DETAILED STATUS PROCESSOR.
- *
- * ENTRY (T1) = DEST.
- * (T2) = DEGS.
- * (T4 - T7) = DRIVER PARAMETERS.
- * (DEAI) = ALGORITHM INDEX.
- * (DERW) = 1 IF WRITE REQUEST, 0 IF READ REQUEST.
- * (DEGS) = GENERAL STATUS.
- * (RDCT) = ERROR PROCESSING INTERFACE WORD.
- * (MB+1) = PHYSICAL DISK ADDRESS FROM *LDAM*.
- * (MB+2 - MB+5) = DETAILED STATUS.
- *
- * EXIT TO *7EI*.
- * (DEST) = ERROR PROCESSING CONTROL WORD.
- * BITS AFFECTED BY THIS OVERLAY -
- * BIT 5 = 1 IF ISD DRIVE FAULT.
- * BIT 0 = 1 IF ERROR ON PREVIOUS SECTOR.
- * (DEWR) = 1 IF DATA WRITTEN TO DISK.
- * (MB+1) = UNCHANGED.
- * (MB+2 - MB+5) = UNCHANGED.
- *
- * USES CM, T2.
- *
- * MACROS MSERR.
- DDI ENTRY *7DI* ENTRY
- LDI T2
- SHN 0-11
- LMN 5
- ZJN DDI1 IF GENERAL STATUS = 5XXX
- LDN EI0 SET *7EI* PROCESSOR INDEX
- LJM DDI22 EXECUTE *7EI*
- DDI1 LDM DEAI IDENTIFY HARDWARE TYPE
- SBN AIIB
- MJN DDI3 IF 844/885 DEVICE
- SBK AIIE-AIIB
- PJN DDI2 IF NOT ISD DEVICE
- LDN 12-10
- RAM DDIE
- LDC UJNI+DDI18.1-DDIH
- ERRPL DDI18.1-DDIH-40 RANGE ERROR
- STM DDIH
- LDN 7-3
- UJN DDI6 CONTINUE
- DDI2 SBN AIDX-AIIE
- PJN DDI7 IF FSC DEVICE
- LJM DDI20 REPORT STATUS ERROR FOR BUFFERED DEVICE
- DDI3 LDN PSNI ENABLE DATA WRITTEN CHECK
- STM DDIC
- LDM DEAI
- SBN AIDQ
- PJN DDI4 IF *DR* OR *DQ* DEVICE
- ADN AIDQ-AIDM
- NJN DDI9 IF 844 DEVICE
- DDI4 LDN PSNI
- STM DDID ENABLE 885 NOT READY CHECK
- DDI6 UJN DDI8 CONTINUE
- DDI7 LCN 10-0 MODIFY CODE FOR FSC DEVICE
- RAM DDIE
- LDC LMNI+1
- STM DDIG
- LDN 21-14
- RAM DDIH+1
- LDC UJNI+DDI23-DDII
- ERRPL DDI23-DDII-40 RANGE ERROR
- STM DDII
- LCN 12-7
- DDI8 RAM DDIF
- DDI9 LDN DSLN/5 READ DETAILED STATUS FROM MESSAGE BUFFER
- STD CM
- LDD MA
- ADN 2
- CRM OFFW,CM
- ERRNZ DSLN/5-4 ADJUST CODE IF VALUE OF *DSLN* CHANGES
- ERRNG *-OFFW-DSLN CODE IS DESTROYED BY DETAILED STATUS
- * CHECK FOR DATA WRITTEN TO DISK.
- DDI13 UJN DDI15 CONTINUE FOR NON-844/885 DEVICE
- * PSN (844/885)
- DDIC EQU *-1
- LDM OFFW+20
- LPN 2
- ZJN DDI14 IF NOT DATA FIELD ERROR
- LDM DERW
- ZJN DDI14 IF READ REQUEST
- STM DEWR SET *DATA WRITTEN/READ* FLAG
- * CHECK FOR DRIVE NOT READY.
- DDI14 UJN DDI15 CONTINUE FOR NON-885
- * PSN (885)
- DDID EQU *-1
- LDM OFFW+7
- SHN 21-0
- MJN DDI17 IF NOT *NOT READY*
- DDI15 LDI T2
- LMC 5020
- NJN DDI17 IF NOT *NOT READY*
- LDM OFFW+10
- * LDM OFFW (FSC)
- * LDM OFFW+12 (ISD)
- DDIE EQU *-1
- SHN 0-7
- * SHN 0-12 (FSC)
- * SHN 0-3 (ISD)
- DDIF EQU *-1
- LPN 1
- DDIG PSN
- * LMN 1 (FSC)
- NJN DDI17 IF NOT *NOT READY*
- LDN EI6 SET *7EI* PROCESSOR INDEX
- UJN DDI18 EXECUTE *7EI*
- * CHECK FOR ERROR ON PREVIOUS SECTOR.
- DDI17 LDM OFFW+14
- * LDM OFFW+21 (FSC)
- * UJN DDI18.1 (ISD)
- DDIH EQU *-2
- SHN 0-13
- ZJN DDI19 IF NOT ERROR ON PREVIOUS SECTOR
- LDM DERW
- ZJN DDI18.2 IF NOT A WRITE
- AOI T1 SET *ERROR ON PREVIOUS SECTOR* FLAG
- LDN EI1 SET *7EI* PROCESSOR INDEX
- DDI18 LJM DDI22 EXECUTE *7EI*
- * CHECK FOR ISD MEDIA ERROR.
- DDI18.1 LDM OFFW+20 CHECK BOX ISOLATION STATUS
- SHN 21-5
- PJN DDI20 IF NOT DRIVE/MEDIA FAULT
- LDM OFFW+10
- SHN 0-4
- LMC 101
- ZJN DDI21 IF MEDIA ERROR IN HEADER
- LMN 101&103
- ZJN DDI21 IF MEDIA ERROR IN DATA
- LDN 40 SET *EXECUTE DIAGNOSTICS* FLAG
- RAI T1
- DDI18.2 UJN DDI20 SET *7EI* PROCESSOR INDEX (STATUS ERROR)
- * CHECK FOR 844/885 MEDIA ERROR.
- DDI19 LDM OFFW
- * UJN DDI23 (FSC)
- DDII EQU *-2
- LPN 17
- LMN 10
- ZJN DDI21 IF MEDIA ERROR
- LDM OFFW+1
- SHN 21-13
- MJN DDI21 IF MEDIA ERROR
- SHN 13-11
- MJN DDI21 IF MEDIA ERROR
- LDM OFFW+20
- SHN 21-10
- MJN DDI21 IF MEDIA ERROR
- DDI20 SOM DDIJ
- ERRNZ EI5-EI4-1 CODE ASSUMES *EI5* = *EI4* + 1
- DDI21 LDN EI5 SET *7EI* PROCESSOR INDEX
- * LDN EI4 (NOT A MEDIA ERROR)
- DDIJ EQU *-1
- DDI22 STD T2
- MSERR 7EI EXECUTE *7EI*
- * CHECK FOR FSC MEDIA ERROR.
- DDI23 LDI T2
- SHN 21-4
- PJN DDI20 IF NOT MEDIA ERROR
- LDM OFFW
- SHN 21-7
- PJN DDI20 IF NOT MEDIA ERROR
- LDM OFFW+1
- SHN 21-6
- PJN DDI20 IF NOT MEDIA ERROR
- UJN DDI21 EXECUTE *7EI*
- SPACE 4,10
- ERRNG 10000-* *7DI* HAS OVERFLOWED
- BSS 10000-* SPARES
- CON DDI-1 (T0) = ENTRY ADDRESS - 1
- CON DEST (T1) = DEST
- CON DEGS (T2) = DEGS
- ERRNZ LN-* INCORRECT *7DI* OVERLAY LENGTH
- QUAL *
- 7EI MSOVL 7542,T1,DEXA,(SET ERROR CODE.)
- SPACE 4
- *** SET ERROR CODE.
- * R. J. THIELEN. 75/11/20.
- * W. E. GOEBEL. 77/01/24.
- SPACE 4
- * *7EI* IS CALLED BY *7CI*, *7DI* OR *7FI* TO PERFORM
- * ADDITIONAL CHECKS ON GENERAL STATUS AND TO ASSIGN AN ERROR
- * CODE FOR THE CURRENT ERROR. FOR COUPLER TO DISK ERRORS,
- * *7EI* WILL READ BACK THE PREVIOUS SECTOR FROM THE CONTROLLER
- * SO THAT THE DRIVER CAN RE-WRITE IT.
- MSE SPACE 4
- ** DEI - SET ERROR CODE.
- *
- * ENTRY (T1) = DEST.
- * (T2) = INDEX TO PROCESSING ADDRESS IN *7EI*.
- * (T4 - T7) = DRIVER PARAMETERS.
- * (DEAI) = ALGORITHM INDEX.
- * (DEEC) = ERROR CODE IF CALLED BY *7CI* OR *7FI*.
- * (DEGS) = GENERAL STATUS.
- * (DERW) = 1 IF WRITE REQUEST, 0 IF READ REQUEST.
- * (DEST) = ERROR PROCESSING CONTROL WORD.
- * (RDSB) = ADDRESS OF DATA BUFFER FOR READ.
- * (WDSC) = ADDRESS OF DATA BUFFER FOR WRITE.
- * (WDSE) = ADDRESS OF BUFFER FOR WRITE ERROR RETRY (IF
- * SPECIFIED ON *SETMS*).
- * (MB+1) = PHYSICAL DISK ADDRESS FROM *LDAM*.
- * (MB+2 - MB+5) = DETAILED STATUS, IF ERROR WAS REPORTED
- * BY CONTROLLER (NOT A *DSWM*/*LDAM*/
- * CHANNEL PARITY ERROR.
- *
- * EXIT TO *7EK*
- * (T2) = READ BUFFER ADDRESS.
- * (T4 - T7) = UNCHANGED.
- * (DEEC) = ERROR CODE.
- * (DENR) = 1 IF NON-RECOVERABLE ERROR.
- * (DEST) = ERROR PROCESSING CONTROL WORD.
- * BITS AFFECTED BY THIS OVERLAY -
- * BIT 12 = 1 IF NO RETRIES ARE ALLOWED.
- * BIT 4 = 1 IF RECOVERY IN PROGRESS (BIT 10
- * OF GENERAL STATUS IS SET).
- * BIT 3 = 1 IF BUFFER READBACK FAILED.
- * (DEWR) = 1 IF DATA MAY HAVE BEEN WRITTEN TO DISK.
- * (DEXA) = ADDRESS AT WHICH TO RETRY OPERATION.
- * *LDA1*, IF *7SI* WILL NOT BE CALLED.
- * *ERR2*, IF *7SI* TO BE CALLED.
- * (MB+1) = UNCHANGED.
- * (MB+2 - MB+5) = UNCHANGED.
- *
- * USES T2, T7, CM.
- *
- * MACROS ISTORE, MSERR.
- DEI ENTRY *7EI* ENTRY
- LDM TDEI,T2
- STD CM
- LDN 0
- LJM 0,CM ENTER PROCESSOR
- * *EI0* - GENERAL STATUS .NE. 5XXX.
- DEI1 LDM DEGS
- SHN 21-10
- PJN DEI4 IF NO RECOVERY IN PROGRESS
- SHN 10-5
- PJN DEI3 IF NOT A CORRECTABLE ERROR
- LDM RDSB
- SBK EPFW-502+1
- PJN DEI4 IF ERROR PROCESSOR OVERLAYS BUFFER
- DEI3 LDC ERR2 CAUSE *7EP* TO CALL *7SI*
- STM DEXA
- LDN 20 SET IMMEDIATE EXIT FLAG FOR *7EP*
- RAI T1
- DEI4 LJM DEI9 SET *DSTE* ERROR CODE
- * *EI1* - WRITE ERROR ON PREVIOUS SECTOR.
- DEI5 LDM ERXA
- NJP DEI8 IF ERROR ON A RETRY
- STM WDSB FORCE *WRITE LAST SECTOR*
- ERRNZ WLSF CODE ASSUMES VALUE
- LDM WDSE
- NJN DEI6 IF WRITE BUFFER SPECIFIED
- LDM WDSC DESTROY CURRENT SECTOR BUFFER
- DEI6 STM RDSB
- STD T2
- SBK EPFW-502+1
- PJN DEI6.1 IF BUFFER IN ERROR PROCESSOR AREA
- LDC DEI7 SET RETURN FROM READ OF COUPLER BUFFER
- STM RDS
- LDC DEI6.1 SET ERROR RETURN
- STM ERRA
- LDD HN
- ERRNZ LJMI-100 CODE DEPENDS ON VALUE
- STM RDSD
- LDC DEI6.0
- STM RDSD+1
- LDN FCRB READ BACK COUPLER BUFFER
- LJM RDS3 USE READ PROCESSOR
- * RETURN HERE ON ERROR IN COUPLER BUFFER READ ATTEMPT.
- DEI6.1 LDC UJNI+DEI17-DEIA
- ERRPL DEI17-DEIA-40 RANGE ERROR
- STM DEIA
- LDN 10 SET *ERROR ON BUFFER READBACK* FLAG
- RAI T1
- UJN DEI8 CONTINUE
- * RETURN HERE TO DELAY DURING COUPLER READ BACK.
- DEI6.0 STD T0 SAVE (A)
- LDC LDMI RESTORE DRIVER CODE
- STM RDSD+1
- ISTORE RDSD,(NJN WDS5)
- SBN 1 DELAY AT LEAST 128 MICROSECONDS
- NJN *-1 IF DELAY NOT EXPIRED
- LDD T0 RESTORE (A)
- LJM RDS3.1 RE-ENTER DRIVER
- * SET UP RETRY OF PREVIOUS SECTOR.
- DEI7 LDM WDS SAVE *WDS* RETURN IN *RDS*
- STM RDS
- LDC WEP RETURN TO WEP AFTER RETRY
- STM WDS
- LDM WDSC SAVE CURRENT BUFFER ADDRESS
- STM RDSB
- LDD T2 SET RETRY BUFFER ADDRESS
- STM WDSC
- SOD T7
- * *EI2* - FUNCTION TIMEOUT / CONTROLLER MEMORY ERROR.
- DEI8 LDI T1
- LPC 101
- ZJN DEI11 IF FUNCTION TIMEOUT
- LPN 1
- ZJN DEI10 IF CONTROLLER MEMORY ERROR
- * *EI4* - STATUS ERROR.
- DEI9 LDK DSTE&RAME SET *DSTE* ERROR CODE
- DEI10 LMK RAME&FTOE SET *RAME* ERROR CODE
- DEI11 LMK FTOE&PARE SET *FTOE* ERROR CODE
- * *EI5* - MEDIA ERROR.
- DEI12 LMK PARE&NRDE SET *PARE* ERROR CODE
- * *EI6* - DEVICE NOT READY.
- DEI13 LMK NRDE SET *NRDE* ERROR CODE
- DEI14 STM DEEC
- * *EI3* - ERROR CODE ALREADY SET.
- DEI15 LDM DEEC
- * UJN DEI17 (ERROR ON COUPLER BUFFER READ)
- DEIA EQU *-2
- SBK RESE
- PJN DEI18 IF RESERVE ERROR
- * CHECK FOR A WRITE REQUEST ON AN ISD DEVICE. THIS IS
- * CONSIDERED A NON-RECOVERABLE CASE FOR CONTROLLER REPORTED
- * ERRORS DUE TO THE DATA BUFFERING IN THE 7255 ADAPTER AND
- * CONTROL MODULE. THE ERROR IS ALSO FORCED UNRECOVERED TO
- * PREVENT RETRYING THE OPERATION.
- LDM DEAI
- SBK AIIB
- MJN DEI18 IF NOT ISD
- SBK AIIE-AIIB
- PJN DEI18 IF NOT ISD
- LDC 600 SET ISD/WRITE BUFFERING FLAGS
- RAI T1
- SHN 21-4
- MJN DEI18 IF *CONTINUE* TO BE ISSUED
- DEI17 LDM DERW
- ZJN DEI18 IF READ REQUEST
- STM DEWR SET *DATA WRITTEN/READ* FLAG
- STM DENR SET *NON-RECOVERABLE* FLAG
- LDC 2000 SET *UNRECOVERED* FLAG
- RAI T1
- DEI18 LDC LEP1 RESET *FNC* TIMEOUT EXIT ADDRESS
- STM ERRA
- LDM RDSB
- STD T2
- MSERR 7EK EXECUTE *7EK*
- QUAL
- TDEI BSS 0 PROCESSOR ADDRESS TABLE
- LOC 0
- EI0 CON /7EI/DEI1
- EI1 CON /7EI/DEI5
- EI2 CON /7EI/DEI8
- EI3 CON /7EI/DEI15
- EI4 CON /7EI/DEI9
- EI5 CON /7EI/DEI12
- EI6 CON /7EI/DEI13
- CON 0 FORCE LAST ENTRY OF TABLE .LT. 7777B
- LOC *O
- QUAL *
- SPACE 4
- ERRNG 10000-* *7EI* HAS OVERFLOWED
- BSS 10000-* (SPARES)
- CON DEI-1 (T0) = ENTRY ADDRESS - 1
- CON DEST (T1) = DEST
- ERRNZ LN-* INCORRECT *7EI* OVERLAY LENGTH
- QUAL *
- 7FI MSOVL 7517,T2,DEXA,(FUNCTION TIMEOUT PROCESSOR.)
- FTO SPACE 4,10
- *** PROCESS FUNCTION TIMEOUT.
- * R. M. DANISCH 83/01/03.
- * P. D. HAAS. 83/04/29.
- FTO SPACE 4,10
- *** THE FUNCTION TIMEOUT PROCESSOR IS CALLED BY *7CI*
- * WHEN ONE OF THE FOLLOWING OCCURS - THE GENERAL STATUS
- * FUNCTION ISSUED BY *7CI* TIMES OUT, THE DETAILED
- * STATUS FUNCTION ISSUED BY *7CI* TIMES OUT, OR THERE
- * IS AN INCOMPLETE DATA TRANSFER ON THE INPUT OF GENERAL
- * OR DETAILED STATUS IN *7CI*.
- *
- * THIS OVERLAY PERFORMS THE FOLLOWING FUNCTIONS -
- * 1. RESTART A 7054 CONTROLLER HUNG ON A COUPLER LOCKUP
- * VIA A SHORT AUTOLOAD.
- * 2. DETERMINE IF A RAM PARITY ERROR OR CONTROLLER STOP
- * OCCURRED ON A 7155 CONTROLLER.
- 7FI SPACE 4,10
- * REDEFINE CHANNEL INSTRUCTIONS TO PRODUCE A LINKED LIST.
- FWDL$ EQU 1 SELECT FORWARD LINKING
- RICHL
- FTO SPACE 4,10
- ** FTO - FUNCTION TIMEOUT PROCESSOR.
- *
- * ENTRY (T1) = DEST.
- * (T2) = FIRST CHANNEL INSTRUCTION ADDRESS.
- * (T4) = CHANNEL NUMBER.
- * (DEAI) = ALGORITHM INDEX.
- * (DEEC) = *CSTE* ERROR CODE.
- * (DEGS) = GENERAL STATUS.
- * 5002 IF 7255 MEMORY ERROR.
- * 5017 IF ISD CONTROL MODULE MEMORY ERROR.
- * (DERW) = 1 IF WRITE REQUEST, 0 IF READ REQUEST.
- * (MB, BYTES 0-3) = T4 - T7.
- * (MB, BYTE 4) = ADDRESS OF LAST *FNC* CALL.
- * (MB+1) = PHYSICAL DISK ADDRESS FROM *LDAM*.
- * (MB+2 - MB+5) = DETAILED STATUS, IF ONE TAKEN.
- *
- * EXIT TO *7EI*.
- * (T2) = INDEX TO PROCESSING ADDRESS IN *7EI*
- * (T4 - T7) = RESTORED FROM *MB*.
- * (DENR) = 1 IF ALL OF THE FOLLOWING CONDITIONS HOLD -
- * A. THE CONTROLLER IS CONNECTED.
- * B. NOT AN ISD DEVICE.
- * C. THE OPERATION IS A WRITE.
- * D. TIMEOUT OCCURRED BEFORE THE PREVIOUS
- * SECTOR WAS WRITTEN TO DISK.
- * (DERC) = *FTRT* IF ALL OF THE FOLLOWING ARE TRUE -
- * A. THE CONTROLLER IS CONNECTED.
- * B. THE DRIVE IS NOT AN ISD.
- * C. THE CONTROLLER TYPE IS NOT A 7155 MODEL
- * B OR C.
- * D. TIMEOUT OCCURRED BEFORE THE PREVIOUS
- * SECTOR WAS WRITTEN TO DISK.
- * E. THE ERROR IS NOT A RAM PARITY ERROR.
- * (DEST) = ERROR PROCESSING CONTROL WORD.
- * BITS AFFECTED BY THIS OVERLAY -
- * BIT 6 = 1 IF RAM PARITY ERROR.
- * BITS 2-1 = CONTROLLER TYPE.
- * 0 7155 MODEL A.
- * 1 7155 MODEL B OR C.
- * 2 7255 ADAPTER.
- * 3 CONTROL MODULE.
- * (DEWR) = 1 IF WRITE OPERATION ON NON-ISD DEVICE AND
- * THE CONTROLLER IS CONNECTED.
- *
- * USES T0 - T2, T4 - T7, CM - CM+4.
- *
- * CALLS FNC, RCM.
- *
- * MACROS MSERR, RICHL.
- DFI ENTRY *7FI* ENTRY
- FTO LDN 0
- FTO1 RAD T2 MODIFY CHANNEL INSTRUCTIONS
- LDI T2
- LPN 37
- STD CM
- LDD T4
- SBD CM
- RAI T2
- LDD CM
- NJN FTO1 IF MORE INSTRUCTIONS
- ERRNZ WLSF CODE DEPENDS ON VALUE
- STM WDSB
- LDN EI3 PRESET *7EI* PROCESSOR INDEX
- STD T2
- DCN CH+40
- LDM DEAI
- SBK AIIB
- MJN FTO4 IF NOT ISD DEVICE
- SBK AIIE-AIIB
- PJN FTO4 IF NOT ISD DEVICE
- LDD HN SET *MEMORY ERROR* FLAG
- RAI T1
- LDM DEGS SET CONTROLLER TYPE
- LMC 5017
- ZJN FTO3 IF ISD CONTROL MODULE MEMORY ERROR
- LDN 1S1
- FTO3 LMN 3S1
- RAI T1
- LJM FTO15 CALL *7EI*
- * ISSUE A SHORT AUTOLOAD TO RESTART THE CONTROLLER IN CASE IT
- * IS HUNG, AND WAIT UNTIL THE FUNCTION HAS COMPLETED.
- * DETERMINE WHETHER OR NOT THE ERROR COULD HAVE OCCURRED ON A
- * PREVIOUS SECTOR.
- FTO3.1 ADN AIDR-AIDQ
- ZJN FTO6 IF 885 *DQ* DRIVE
- ADN AIDQ-AIDM
- UJN FTO4.1 CHECK FOR 885 *DM* DRIVE
- FTO4 FNC FCAL,CH ISSUE SHORT AUTOLOAD FUNCTION
- LDM DERW
- ZJN FTO5 IF READ SEQUENCE
- STM DEWR SET *DATA WRITTEN* FLAG
- LDM DEAI
- SBK AIDR
- MJN FTO3.1 IF POSSIBLE 885 *DQ* OR *DM* DRIVE
- FTO4.1 ZJN FTO6 IF CDSS II *DR* OR 885 *DM* DRIVE
- LDM LDAA
- LPN 77 EXTRACT INTERLACE
- FTO5 LMN FCS1
- ERRZR FCS1 CODE DEPENDS ON VALUE
- FTO6 STD T7
- LDD TH SET 5 SECOND TIMEOUT
- STD T5
- FTO7 DELAY 10D*8D DELAY FOR 10 MS
- SOD T5
- MJN RCM1 IF AUTOLOAD TIMEOUT
- AJM FTO7,CH IF AUTOLOAD NOT PROCESSED
- * ACTIVATE THE CHANNEL FOR 25 - 750 MICROSECONDS.
- * LDC ** 0 .LE. (A) .LT. 1000B
- ACN CH
- SBD MA 1022B .LE. (MA) .LE. 7632B
- MJN *-1 IF DELAY INCOMPLETE
- DCN CH+40
- * DETERMINE IF RAM PARITY ERROR OCCURRED. THE METHOD FOR
- * DOING THIS IS TO ISSUE A MANIPULATE PROCESSOR FUNCTION
- * AND SEE IF IT TIMES OUT. IF IT DOESN-T, THE CONTROLLER
- * TYPE IS ESTABLISHED AS A 7155, OTHER MODELS WILL NOT ACCEPT
- * THE FUNCTION. THE INPUT DISPLAY DATA FUNCTION IS USED
- * TO REFERENCE EACH RAM ADDRESS IN THE CONTROLLER AND WILL
- * NOT HALT IF A PARITY ERROR IS DETECTED, RATHER A BIT WILL
- * BE SET IN THE CONTROLLER-S PROCESSOR STATUS THAT INDICATES
- * THE ERROR. THIS BIT WILL BE INTERROGATED BY THE PP.
- LDN ZERL
- CRD CM
- LDC FTO13 SET ERROR EXIT FOR FUNCTION TIMEOUT
- STM ERRA
- LDC 8192DS-5 SET LOOP COUNT FOR 16384 BYTE DUMP
- STD T5
- BUF EQU OFFW SCRATCH BUFFER
- ERRPL BUF+77-* BUFFER OVERLAYS CODE
- RCM SPACE 4,10
- ** RCM - READ CONTROLLER MEMORY.
- *
- * ENTRY (CM+1 - CM+2) = ADDRESS IN CONTROLLER MEMORY.
- *
- * EXIT (CM) = 2.
- * *FCID* FUNCTION ISSUED TO CONTROLLER.
- * (ERRA) = *FTO16*.
- *
- * CALLS FNC.
- RCMX LJM FTO8 ENTRY/EXIT
- RCM EQU *-1
- LDN 2 SET READ MODE
- STD CM
- LDN FCMP ISSUE *MANIPULATE PROCESSOR* FUNCTION
- RJM FNC
- LDN 5 OUTPUT PARAMETERS
- OAM CM,CH
- RCM1 NJN FTO9 IF INCOMPLETE TRANSFER
- DCN CH+40
- LDC FTO16 SET ERROR EXIT FOR FUNCTION TIMEOUT
- STM ERRA
- LDN FCID ISSUE *INPUT DISPLAY DATA* FUNCTION
- RJM FNC
- UJN RCMX RETURN
- * READ OUT CONTROLLER MEMORY.
- FTO8 RJM RCM
- LDD HN INPUT 64 BYTES
- IAM BUF,CH
- FTO9 NJN FTO11 IF INCOMPLETE TRANSFER
- LDN 40
- RAD CM+2 ADVANCE CONTROLLER ADDRESS
- SHN 21-10
- PJN FTO10 IF NOT 8 BIT OVERFLOW
- STD CM+2
- AOD CM+1 ADJUST CONTROLLER ADDRESS
- FTO10 SOD T5
- NJN FTO8 IF MORE TO READ
- * OBTAIN PROCESSOR STATUS.
- LDN FCST ISSUE *INPUT PROCESSOR STATUS* FUNCTION
- RJM FNC
- LDN 40 INPUT STATUS
- IAM BUF,CH
- FTO11 NJN FTO12 IF INCOMPLETE TRANSFER
- LDM BUF+23
- LPN 20
- SHN 1-4 SET 7155 CONTROLLER TYPE, MODEL A OR/B/C
- RAI T1
- LDM BUF SET *RAM PARITY ERROR* FLAG
- LPN 20
- SHN 6-4
- RAI T1
- LDD MA
- CRD CM
- LDD CM+4 CHECK LAST CALL TO *FNC*
- LMC WDS4+2
- NJN FTO15 IF NOT WRITE FUNCTION TIMEOUT
- STD CM+1
- LDC 321
- STD CM+2 READ CONTROLLER MEMORY
- RJM RCM
- LDN 2 INPUT *WRITE BUFFER TO DISK* FLAG
- IAM T6,CH
- FTO12 NJN FTO16 IF INCOMPLETE TRANSFER
- FTO13 LDD T7
- NJN FTO15 IF NOT ERROR AFFECTING PREVIOUS SECTOR
- LDN 1 FORCE ERROR NON-RECOVERABLE
- STM DENR
- LDI T1
- SHN 21-1
- PJN FTO14 IF NOT B/C MODEL 7155 CONTROLLER
- SOD T2
- ERRNZ EI1+1-EI2 CODE DEPENDS ON VALUES
- UJN FTO15 ADJUST *7EI* PROCESSOR INDEX
- FTO14 LPN 20
- NJN FTO15 IF RAM PARITY ERROR
- LDK FTRT-1 FORCE UNRECOVERED
- STM DERC
- FTO15 SOD T2
- ERRNZ EI2+1-EI3 CODE DEPENDS ON VALUES
- FTO16 DCN CH+40
- LDD MA RESTORE DRIVER PARAMETERS
- CRD T4
- MSERR 7EI CALL *7EI*
- FTO SPACE 4,10
- HERE TERMINATE LINKED CHANNEL INSTRUCTIONS
- SPACE 4,10
- ERRNG 10000-* OVERFLOW
- BSS 10000-* SPARES
- CON DFI-1 (T0) = ENTRY ADDRESS - 1
- CON DEST (T1) = DEST
- CON CH01$ (T2) = FIRST CHANNEL INSTRUCTION ADDRESS
- ERRNZ LN-* INCORRECT *7FI* OVERLAY LENGTH
- QUAL *
- 7GI MSOVL 7613,T2,DSFA+4,(CHANNEL/CONTROLLER ERROR PROCESSOR.)
- DCP SPACE 4,10
- *** PROCESS CHANNEL/CONTROLLER ERROR.
- * R. M. DANISCH 83/01/03.
- DCP SPACE 4,10
- * THE CHANNEL/CONTROLLER ERROR PROCESSOR IS CALLED BY *7HI*.
- * IF *7HI* WAS UNSUCCESSFUL IN ATTEMPTING THE CONTROLWARE
- * RELOAD, *7GI* WILL ATTEMPT TO RELEASE DRIVES RESERVED TO THE
- * FAILING CONTROLLER SO THEY MAY BE ACCESSED THROUGH AN
- * ALTERNATE CHANNEL. IF THE CONTROLLER IS UNABLE TO RELEASE
- * DRIVES, IT MAY BE NECESSARY TO REMOVE DRIVE RESERVATIONS
- * MANUALLY IN ORDER TO GAIN ACCESS THROUGH AN ALTERNATE
- * CHANNEL.
- SPACE 4,10
- * GENERATE LINKED LIST OF CHANNEL INSTRUCTIONS.
- FWDL$ EQU 1 SELECT FORWARD LINKING
- RICHL
- SPACE 4,10
- * LIST OF PROCESSOR INDICES.
- QUAL
- DC1 EQU 0 *DCP1* INDEX
- DC6 EQU 1 *DCP6* INDEX
- DC9 EQU 2 *DCP9* INDEX
- DC11 EQU 3 *DCP11* INDEX
- QUAL *
- DCP SPACE 4,10
- ** DCP - PROCESS CHANNEL/CONTROLLER ERROR.
- *
- * ENTRY (A) = 0.
- * (T1) = RDCT.
- * (T2) = CH01$.
- * (T4) = CHANNEL NUMBER.
- * (T5) = EST ORDINAL.
- *
- * USES CM, T2.
- *
- * CALLS FNC.
- *
- * MACROS ENDMS.
- DCP1 RAD T2
- LDI T2 MODIFY CHANNEL INSTRUCTIONS
- LPN 37
- STD CM
- LDD T4
- SBD CM
- RAI T2
- LDD CM
- NJN DCP1 IF MORE INSTRUCTIONS
- LDM CHRV PREVENT OPERATION COMPLETE
- SCN 10
- STM CHRV
- LDM DEST
- LPN 40
- ZJN DCP2 IF NOT AN ISD DEVICE
- LJM DCP6 AVOID DROP SEEKS AND CONTROLLER HANG
- DCP2 AOM DCPA SET TIME-OUT FLAG
- LDM UERR
- ERRNZ EPDE-400-EPSM CODE ASSUMES VALUES
- SHN 21-10
- MJN DCP4 IF *ENDMS* IS DISABLED
- LDC DCP3 SET ERROR EXIT ADDRESS
- STM ERRA
- * RELEASE ALL UNITS RESERVED TO CONTROLLER.
- LDN FCDK RELEASE ALL BUT LAST DRIVE ACCESSED
- RJM FNC
- DCN CH+40
- LDN FCDR RELEASE LAST DRIVE ACCESSED
- RJM FNC
- SOM DCPA CLEAR TIME-OUT FLAG
- DCP3 DCN CH+40
- * SINCE IT IS KNOWN THE CONTROLLER CONTAINS A RAM PARITY
- * ERROR, IT IS DESIRABLE TO LEAVE THE CONTROLLER IN SUCH A
- * STATE THAT THE NEXT PP TO ACCESS IT DISCOVERS THE ERROR
- * ALSO. THE METHOD USED TO ACCOMPLISH THIS IS TO ISSUE A
- * PROCESSOR MANIPULATION FUNCTION TO CAUSE THE CONTROLLER TO
- * HANG ON A ZERO INSTRUCTION.
- DCP4 LDC DCP5 SET ERROR EXIT ADDRESS
- STM ERRA
- LDN FCMP HANG CONTROLLER
- RJM FNC
- LDN 5
- OAM DCPB,CH
- DCP5 LDC LEP1 RESET ERROR EXIT ADDRESS
- STM ERRA
- DCN CH+40
- DCP6 LDM UERR
- ERRNZ EPDE-400-EPSM CODE ASSUMES VALUES
- SHN 21-10
- MJN DCP8 IF *ENDMS* DISABLED
- ENDMS
- LDM CHRV
- SHN 21-4
- MJN DCP11 IF CALLER SELECTED CHANNEL
- DCPA LDN 0
- * LDN 1 (*FCDK*/*FCDR* TIMED OUT)
- DCP8 NJN DCP11 IF DRIVES NOT RELEASED
- DCP9 STD CM
- LDI T1
- LPC 500
- STI T1
- SOM HEDR+6
- LDM DEST
- LPC -3000
- STM DEST
- LDD CP CLEAR CONTROL POINT MESSAGE
- ADN MS2W
- CWD CM
- LJM LDA1 RETRY I/O
- DCP11 LDM DEST SET UNRECOVERED FLAG
- LPC -2000
- LMC 2000
- STM DEST
- LJM LEP EXECUTE *7EQ*
- DCPB CON 4,0,27,0,0
- PCE SPACE 4,20
- ** PCE - PROCESS CHANNEL/CONTROLLER ERROR.
- *
- * ENTRY (T3) = PROCESSOR INDEX.
- * = 0 FOR *DCP1*.
- * = 1 FOR *DCP6*.
- * = 2 FOR *DCP9*.
- * = 3 FOR *DCP11*.
- * (MB+2) = ORIGINAL CELLS (T3 - T7).
- * (MB+3 - MB+5) = LAST THREE WORDS OF DETAILED STATUS.
- *
- * EXIT (A) = 0.
- * (T3 - T7) = RESTORED FROM (MB+2).
- * (MB+3 - MB+5) = UNCHANGED.
- *
- * USES CM.
- *
- * NOTE IF THE TAGS IN *7GI* ARE RENAMED OR RENUMBERED,
- * THE TABLE INDEX MNEMONICS DEFINED ABOVE SHOULD ALSO
- * BE UPDATED TO REFLECT THOSE CHANGES (FOR CLARITY).
- DGI ENTRY *7GI* ENTRY
- PCE BSS 0
- LDM TPCE,T3 SET PROCESSOR ADDRESS
- STD CM
- LDD MA RESTORE DIRECT CELLS
- ADN 2
- CRD T3
- LDN 0
- LJM 0,CM EXIT TO PROCESSOR
- TPCE BSS 0 PROCESSOR ADDRESSES
- LOC 0
- DC1 CON DCP1
- DC6 CON DCP6
- DC9 CON DCP9
- DC11 CON DCP11
- LOC *O
- DCP SPACE 4,10
- HERE TERMINATE LINKED CHANNEL INSTRUCTIONS
- SPACE 4,10
- ERRNG 10000-* OVERFLOW
- BSS 10000-* SPARES
- CON DGI-1 (T0) = ENTRY ADDRESS - 1
- CON RDCT (T1) = RDCT
- CON CH01$ (T2) = CH01$
- ERRNZ LN-* INCORRECT *7GI* OVERLAY LENGTH
- QUAL *
- 7HI MSOVL 7574,T2,DSFA+4,(CONTROLWARE RELOAD PROCESSOR.)
- SPACE 4,10
- *** PROCESS CONTROLWARE RELOAD.
- * P. D. HAAS. 83/04/29.
- 7HI SPACE 4,10
- * *7HI* IS CALLED BY *7JI* TO RELOAD CHANNEL OR CONTROL
- * MODULE CONTROLWARE. *7HI* SETS THE RELOAD FLAG FOR THE
- * CHANNEL OR CONTROL MODULE AND THEN CALLS *1DS* TO START A
- * *LOADBC* JOB WHICH RELOADS THE CONTROLWARE. *7HI* WILL WAIT
- * UP TO *CRTO* SECONDS FOR THE RELOAD TO COMPLETE BEFORE GIVING
- * UP.
- SPACE 4,10
- ** COMMON DECKS.
- *CALL COMS1DS
- RCW SPACE 4,25
- ** RCW - RELOAD CONTROLWARE PROCESSOR.
- *
- * ENTRY (T1) = DEST.
- * (T2) = RELOAD TIMEOUT VALUE.
- * (T3) = ADDRESS + *CM* OF BYTE CONTAINING
- * RELOAD FLAGS.
- * (T4) = CONTROL MODULE ACCESS INDICATOR. FOR C/M
- * RELOADS, 1 INDICATES PRIMARY CHANNEL SHOULD
- * BE USED FOR RELOAD. 0 INDICATES SECONDARY
- * CHANNEL SHOULD BE USED. THIS CELL IS
- * UNUSED FOR NON-C/M RELOADS.
- * (T5) = SYSTEM CP *MS2W* ADDRESS.
- * (T6 - T7) = ADDRESS OF RELOAD INTERLOCK WORD.
- * (DEST) = ERROR PROCESSING CONTROL WORD.
- * (MB+2) = ORIGINAL CELLS (T3 - T7)
- * (MB+3 - MB+5) = LAST THREE WORDS OF DETAILED STATUS.
- *
- * EXIT TO *7GI*.
- * (T3) = *7GI* PROCESSOR INDEX.
- * (MB+2) = UNCHANGED.
- * (MB+3 - MB+5) = UNCHANGED.
- *
- * USES CM - CM+4, T0 - T7.
- *
- * CALLS FTN, SCT.
- *
- * MACROS DELAY, MONITOR, MSERR, PAUSE.
- DHI ENTRY *7HI* ENTRY
- RCW LDI T1
- SHN 0-1
- LPN 3
- LMN 3
- NJN RCW0 IF NOT CONTROL MODULE RELOAD
- LDD T4 STORE C/M ACCESS INDICATOR
- RAM SCTC+4 SET PRIMARY OR SECONDARY CHANNEL
- SOM RCWD AVOID DOWNING CHANNEL IF RELOAD FAILS
- ERRNZ RCW8-RCW7-1 CODE ASSUMES *RCW8* = RCW7* + 1
- AOM RCWC+4 INDICATE CONTROL MODULE RELOAD TO *1DS*
- UJN RCW0.1 BEGIN RELOAD
- RCW0 LDM SCTA-CM,T3 DEFINE LOCATION OF LOAD FLAGS
- STM SCTC+1
- STM SCTB+1
- SOM SCTC SET CORRECT FIELD WIDTH FOR NON-C/M LOAD
- STM SCTC+4 SET CORRECT FIELD VALUE
- * SET THE CONTROLWARE RELOAD FLAG FOR THE APPROPRIATE CHANNEL
- * OR CONTROL MODULE.
- RCW0.1 LDN 2 SET *UTEM* PARAMETER COUNT FOR *SCT*
- STD T4
- RJM SCT
- NJN RCW3 IF RELOAD ALREADY REQUESTED OR IN PROGRESS
- * INITIATE A CONTROLWARE RELOAD *1DS* CALL. *1DS* WILL START A
- * *LOADBC* JOB TO RELOAD THE CONTROLWARE.
- RCW1 RJM FTN
- * PAUSE NE PAUSE FOR MOVE
- LDD MA
- CWM RCWC,ON STORE *1DS* CALL
- MONITOR RPPM
- LDD CM+1
- ZJN RCW1 IF PP NOT ASSIGNED
- * WAIT *CRTO* SECONDS FOR THE RELOAD TO COMPLETE.
- LDN 0
- RCW2 LPN 1
- RCWA ZJN RCW3 IF RELOAD NOT INITIATED
- STM RCWA
- ZJN RCW4 IF RELOAD ABORTED
- RCW3 SOD T2
- NJN RCW5 IF NOT RELOAD TIMEOUT
- RCW4 RJM SCT CLEAR LOAD REQUESTED FLAG
- NJN RCW5 IF RELOAD REQUEST NOT CLEARED
- LJM RCW8 CONTINUE
- RCWD EQU *-1
- RCW5 DELAY 100D*8D 100 MILLISECOND DELAY LOOP
- RJM FTN
- * PAUSE NE
- LDD T6 CHECK RELOAD FLAGS
- SHN 14
- LMD T7
- CRD CM
- LDI T3
- SHN 0-12
- NJN RCW2 IF RELOAD NOT COMPLETE
- LDI T1
- SHN 0-1
- LPN 7
- LMN 1
- ZJN RCW6 IF 7155 B OR C AND READBACK WORKED
- LDM DENR
- LMN 1
- ZJN RCW7 IF UNRECOVERABLE WITH CONTROLWARE RELOAD
- RCW6 LDN DC9&DC11
- RCW7 LMN DC11
- ERRNZ DC1 CODE DEPENDS ON VALUE
- RCW8 STD T3
- LDN 0
- STD CM
- LDD T5 CLEAR SYSTEM CP MESSAGE
- CWD CM
- MSERR 7GI EXECUTE *7GI*
- RCWC VFD 18/0L1DS,6/0,6/0,6/ILJF,24/0
- SCT SPACE 4,15
- ** SCT - SET (CLEAR) CONTROLWARE LOAD REQUEST FLAG.
- *
- * ENTRY (T4) = 2.
- * (T6 - T7) = ADDRESS OF WORD CONTAINING CONTROLWARE
- * LOAD FLAGS.
- *
- * EXIT (A) = RESPONSE FROM *UTEM* REQUEST.
- *
- * USES CM - CM+4.
- *
- * MACROS MONITOR.
- SCT SUBR ENTRY/EXIT
- LDD MA SETUP OUTPUT REGISTER
- CWD T7-4
- CRD CM
- CWM SCTB,CM+1 STORE *UTEM* PARAMETERS
- MONITOR UTEM
- * LDN 0 RESET PARAMETERS FOR ERROR PROCESSING
- STM SCTC+4
- LDN 2
- STM SCTB+4
- LDD CM+1
- UJN SCTX RETURN
- SCTA BSS 0 TABLE OF RELOAD FLAG BIT POSITIONS
- CON 58DS6
- CON 46DS6
- CON 34DS6
- CON 22DS6
- CON 10DS6
- SCTB VFD 1/1,5/0,6/2,6/34D,42/0
- * VFD 1/1,5/0,6/2,6/34D,42/2
- SCTC VFD 1/0,5/0,6/3,6/33D,42/4
- * VFD 1/0,5/0,6/3,6/33D,42/0
- SPACE 4,10
- ERRNG 10000-* OVERFLOW
- BSS 10000-* SPARES
- CON DHI-1 (T0) = ENTRY ADDRESS - 1
- CON DEST (T1) = DEST
- CON CRTO*10D+1 (T2) = RELOAD TIMEOUT VALUE
- ERRNZ LN-* INCORRECT *7HI* OVERLAY LENGTH
- QUAL *
- 7II MSOVL 7613,T2,DSFA+4,(INITIATE CONTROLWARE RELOAD.)
- SPACE 4,10
- *** INITIATE CONTROLWARE RELOAD.
- * P. D. HAAS. 83/04/29.
- * R. M. DANISCH. 83/10/17.
- SPACE 4,10
- *** *7II* IS CALLED BY *7EP* TO DETERMINE WHETHER OR NOT
- * A CONTROLWARE RELOAD IS POSSIBLE. IF SO, *7JI* IS CALLED TO
- * BEGIN THE RELOAD PROCESS. IF NOT, *7GI* IS CALLED TO TRY AND
- * DOWN THE CHANNEL ON WHICH THE ERROR OCCURRED.
- 7II SPACE 4,10
- ** ICR - INITIATE CONTROLWARE RELOAD.
- *
- * ENTRY (T1) = DEST.
- * (T2) = DEEC.
- * (T4) = CHANNEL NUMBER.
- * (DEEC) = ERROR CODE.
- * (DEST) = ERROR PROCESSING CONTROL WORD.
- * (MB+3 - MB+5) = LAST THREE WORDS OF DETAILED STATUS.
- *
- * EXIT TO *7GI* IF NO CONTROLWARE RELOAD.
- * (T3) = *7GI* PROCESSOR INDEX.
- * (MB+2) = ORIGINAL CELLS (T3 - T7).
- * (MB+3 - MB+5) = UNCHANGED.
- *
- * TO *7JI* IF CONTROLWARE RELOAD.
- * (T3) = ADDRESS OF BYTE CONTAINING RELOAD FLAGS.
- * (T4) = CONTROL MODULE ACCESS INDICATOR. FOR C/M
- * RELOADS, 1 INDICATES PRIMARY CHANNEL SHOULD BE
- * USED FOR RELOAD. 0 INDICATES SECONDARY CHANNEL
- * SHOULD BE USED. THIS CELL IS UNUSED FOR
- * NON-C/M RELOADS.
- * (T5) = CONTROL MODULE EST ORDINAL IF C/M RELOAD.
- * (T6-T7) = ADDRESS OF RELOAD INTERLOCK WORD.
- * (MB+2) = ORIGINAL CELLS (T3 - T7).
- * (MB+3 - MB+5) = UNCHANGED.
- *
- * USES CM - CM+4, T0 - T7.
- *
- * CALLS FCM, FCT.
- *
- * MACROS MSERR.
- DII ENTRY *7II* ENTRY
- * IF THE ERROR IS EITHER A CHANNEL PARITY ERROR OR A CONTROLLER
- * STOP, PROCEED TO *7GI* TO TRY AND DOWN THE CHANNEL.
- ICR LDD MA SAVE DRIVER PARAMETERS
- ADN 2
- CWD T3
- LDI T2
- SBN RAME
- PJN ICR2 IF FUNCTION TIMEOUT / RAM PARITY
- LDN DC6&DC11
- ICR0 LMN DC11
- ERRNZ DC1 CODE DEPENDS ON VALUE
- ICR1 STD T3
- MSERR 7GI EXECUTE *7GI*
- * FOR RAM PARITY ERRORS AND FUNCTION TIMEOUTS, CHECK IF THE
- * CONTROLWARE RELOAD LIMIT HAS ALREADY BEEN REACHED. IF NOT,
- * CALL *7JI* TO BEGIN THE RELOAD.
- ICR2 LDI T1
- SHN 0-1
- LPN 3
- LMN 3
- ZJN ICR3 IF CONTROL MODULE RELOAD
- ERRNZ ICR1-ICR0-1 CODE REQUIRES *ICR1* = *ICR0* + 1
- AOM ICRB
- LDC FCT STORE ADDRESS OF NON-C/M PROCESSOR
- STM ICRA
- ICR3 RJM FCM FIND CONTROL MODULE EST ENTRY
- * RJM FCT (NOT CONTROL MODULE RELOAD)
- ICRA EQU *-1
- LDD CM+1
- RAD T7 SET CONTROLWARE TABLE WORD ADDRESS
- SHN -14
- ADD CM
- STD T6
- SHN 14 READ RELOAD FLAGS WORD
- LMD T7
- CRD CM
- LDI T3
- SHN -6
- LPN 7
- LMN CRTH
- ZJN ICR0 IF RELOAD THRESHOLD REACHED
- * ZJN ICR1 (NOT CONTROL MODULE ERROR)
- ICRB EQU *-1
- MSERR 7JI EXECUTE *7JI*
- FCM SPACE 4,15
- ** FCM - FIND CONTROL MODULE EST ENTRY.
- *
- * ENTRY (T4) = CHANNEL NUMBER.
- * (HEDR+3) = ISD UNIT NUMBER.
- *
- * EXIT (T3) = *CM* + 2.
- * (T4) = 1 IF PRIMARY CHANNEL SHOULD BE USED FOR RELOAD.
- * 0 IF SECONDARY CHANNEL SHOULD BE USED.
- * (T5) = CONTROL MODULE EST ORDINAL.
- * (T7) = RELOAD INTERLOCK WORD OFFSET FROM FWA OF EST.
- * (CM - CM+1) = FWA OF EST.
- *
- * USES T2 - CM+4.
- *
- * MACROS MONITOR, SFA.
- FCM CON 0 ENTRY
- LDD T4 STORE CHANNEL FOR COMPARISON
- RAM FCMA
- STM FCMB
- LDK ESTP
- CRD CM
- FCM1 SOD CM+2 DECREMENT EST ORDINAL
- CFI EST SAVE EST ENTRY OFFSET
- STD T7
- NJN FCM3 IF NOT END OF SCAN
- FCM2 MONITOR HNGM
- UJN FCM2 HANG PP
- FCM3 SFA EST,CM+2 READ NEXT ENTRY
- ADK EQDE
- CRD T2
- LDD T2+3
- LMC 2RCM
- NJN FCM1 IF NOT CONTROL MODULE EST ENTRY
- LDD T2+4
- SHN 0-6
- LMM HEDR+3
- SCN 7
- NJN FCM1 IF WRONG EQUIPMENT
- LDD T2+2 SET CHANNEL INDICATOR FOR *7HI*
- ZJN FCM4 IF NO SECONDARY CHANNEL
- LPN 37
- LMN **
- FCMA EQU *-1
- ZJN FCM5 IF SECONDARY CHANNEL IN USE
- FCM4 LDD T2+1
- LPN 37
- LMN **
- FCMB EQU *-1
- NJN FCM2 IF CHANNEL NOT IN EST ENTRY
- LDN 1
- FCM5 STD T4
- LDD CM+2 SAVE EST ORDINAL FOR *7HI*
- STD T5
- LDN CM+2 SET BYTE NUMBER
- STD T3
- AOD T7 ADVANCE TO *EQAE* WORD OF EST ENTRY
- ERRNZ EQAE-1 CODE ASSUMES *EQAE* = 1
- FCM6 LJM ICRA+1 RETURN
- FCT SPACE 4,10
- ** FCT - FIND CONTROLWARE TABLE ENTRY.
- *
- * ENTRY (T4) = CHANNEL NUMBER.
- *
- * EXIT (T3) = CHANNEL NUMBER MODULO 5 + *CM*.
- * (T7) = WORD OFFSET RELATIVE TO FWA OF CONTROLWARE
- * TABLE.
- * (CM - CM+1) = FWA OF CONTROLWARE TABLE.
- *
- * USES T3, T4, T6 - CM+2.
- FCT CON 0 ENTRY
- LDD T4 STORE CHANNEL NUMBER
- RAM FCTA
- FNC FCAL,CH ISSUE SHORT AUTOLOAD
- FCTA EQU *-2
- LDC CHTP READ CHANNEL TABLE POINTER
- CRD CM-2
- LDN 2*CTALL-1 INITIALIZE WORD OFFSET
- STD T7
- FCT1 AOD T7 INCREMENT WORD OFFSET
- LCN 5
- RAD T4
- PJN FCT1 IF CORRECT WORD NOT REACHED
- ADN CM+5 SAVE BYTE NUMBER + *CM*
- STD T3
- UJN FCM6 RETURN
- SPACE 4,10
- ERRNG 10000-* OVERFLOW
- BSS 10000-* SPARES
- CON DII-1 (T0) = ENTRY ADDRESS - 1
- CON DEST (T1) = DEST
- CON DEEC (T2) = DEEC
- ERRNZ LN-* INCORRECT *7II* OVERLAY LENGTH
- QUAL *
- 7JI MSOVL 7702,T2,DSFA+4,(ISSUE RELOAD MESSAGE.)
- SPACE 4,10
- *** ISSUE RELOAD MESSAGE.
- * R. M. DANISCH. 83/10/11.
- 7JI SPACE 4,10
- *** *7JI* IS CALLED BY *7II* TO ISSUE A MESSAGE TO THE
- * SYSTEM CONTROL POINT TO SHOW THE OPERATOR WHAT CHANNEL OR
- * CONTROL MODULE IS HAVING ITS CONTROLWARE RELOADED. *7JI*
- * THEN CALLS *7HI* TO BEGIN THE ACTUAL RELOAD.
- IRM SPACE 4,30
- ** IRM - ISSUE RELOAD MESSAGE.
- *
- * ENTRY (T1) = DEST.
- * (T2) = HEDR+7.
- * (T3) = ADDRESS + *CM* OF BYTE CONTAINING RELOAD FLAGS.
- * (T4) = CONTROL MODULE ACCESS INDICATOR. FOR CONTROL
- * MODULE RELOADS, 1 INDICATES THE PRIMARY CHANNEL
- * SHOULD BE USED FOR RELOAD. 0 INDICATES
- * SECONDARY CHANNEL SHOULD BE USED. THIS CELL IS
- * UNUSED FOR NON-CONTROL MODULE RELOADS.
- * (T5) = CONTROL MODULE EST ORDINAL IF C/M RELOAD.
- * (T6 - T7) = ADDRESS OF RELOAD INTERLOCK WORD.
- * (DEST) = ERROR PROCESSING CONTROL WORD.
- * (MB+2) = ORIGINAL (T3 - T7).
- * (MB+3 - MB+5) = LAST THREE WORDS OF DETAILED STATUS.
- *
- * EXIT TO *7HI*.
- * (T3) = UNCHANGED.
- * (T4) = UNCHANGED.
- * (T5) = SYSTEM CP *MS2W* ADDRESS.
- * (T6 - T7) = UNCHANGED.
- * (MB+2) = UNCHANGED.
- * (MB+3 - MB+5) = UNCHANGED.
- *
- * USES T5, CM - CM+4.
- *
- * MACROS MSERR.
- DJI ENTRY *7JI* ENTRY
- IRM LDI T1
- SHN 0-1
- LPN 3
- LMN 3
- NJN IRM1 IF NOT CONTROL MODULE RELOAD
- LDC 2REQ CONVERT MESSAGE FOR C/M RELOAD
- STM IRMA+5
- UJN IRM2 CONVERT EST ORDINAL
- IRM1 LDI T2 GET CHANNEL NUMBER
- SHN -6
- STD T5
- LDC 2R 0
- STM IRMA+6
- IRM2 LDD T5 CONVERT CHANNEL OR EST ORDINAL TO DISPLAY
- LPN 7
- SHN 6
- RAM IRMA+7
- LDD T5
- SHN -3
- LPN 7
- LMD T5
- LPN 77
- LMD T5
- RAM IRMA+6
- LDN NCPL WRITE MESSAGE TO SYSTEM CONTROL POINT
- CRD CM
- AOD CM+1
- SHN 7
- ADN MS2W
- STD T5
- CWM IRMA,TR
- MSERR 7HI EXECUTE *7HI*
- IRMA DATA C*RELOADING CH000 CONTROLWARE.*
- IRM SPACE 4,10
- ERRNG 10000-* OVERFLOW
- BSS 10000-* SPARES
- CON DJI-1 (T0) = ENTRY ADDRESS - 1
- CON DEST (T1) = DEST
- CON HEDR+7 (T2) = POINTER TO CHANNEL NUMBER
- ERRNZ LN-* INCORRECT *7JI* OVERLAY LENGTH
- QUAL *
- 7KI MSOVL 7567,T2,DSFA+4,(EXECUTE LEVEL 1 DIAGNOSTICS.)
- SPACE 4,10
- *** EXECUTE LEVEL 1 DIAGNOSTICS.
- * R. M. DANISCH. 83/10/17.
- SPACE 4,10
- *** *7KI* IS CALLED BY *7EO* FOR UNRECOVERED ERRORS ON
- * ISD DEVICES. IT ISSUES A SPINUP COMMAND TO EXECUTE
- * LEVEL 1 DIAGNOSTICS IN THE CONTROL MODULE. FOLLOWING
- * COMPLETION OF THE DIAGNOSTICS EXECUTION, *7EP* IS ENTERED
- * TO ISSUE A BML MESSAGE NOTING DIAGNOSTIC RESULTS FOR *HPA*.
- SPACE 4,10
- * GENERATE LINKED LIST OF CHANNEL INSTRUCTIONS.
- FWDL$ EQU 1 SELECT FORWARD LINKING
- RICHL
- 7KI SPACE 4,10
- ** EXD - EXECUTE LEVEL 1 DIAGNOSTICS.
- *
- * ENTRY (T1) = DEDT.
- * (T2) = FIRST CHANNEL INSTRUCTION ADDRESS.
- * (T4 - T7) = DRIVER PARAMETERS.
- * (DEDT) = ERROR PROCESSING CONTROL WORD.
- * (MSGH - MSGH+4) = *EMB* MESSAGE HEADER.
- * (HEDR - HEDR+11) = BML MESSAGE HEADER.
- * (DDMD - DDMD+4) = DEVICE DEPENDENT MESSAGE DATA.
- * (DSFA - DSFA+4) = FIRST WORD OF DETAILED STATUS.
- * (MB+2 - MB+5) = DETAILED STATUS TAKEN BY *7CI*.
- *
- * EXIT (T4 - T7) = UNCHANGED.
- * (MSGH - MSGH+4) = UNCHANGED.
- * (HEDR - HEDR+11) = BML MESSAGE HEADER.
- * (DDMD - DDMD+4) = DEVICE DEPENDENT MESSAGE DATA.
- * (DSFA - DSFA+23) = DETAILED STATUS TAKEN BY *7KI*.
- * (MB+2 - MB+5) = DETAILED STATUS TAKEN BY *7KI*.
- *
- * USES T0 - T2, CM - CM+4.
- *
- * CALLS FNC.
- *
- * MACROS DELAY, MSERR, PAUSE.
- DKI ENTRY *7KI* ENTRY
- LDI T1 CHECK INITIAL CALL
- LPN 20
- NJN EXD1 IF FIRST FAILURE MESSAGE ISSUED
- LDM ERXA
- STI D1 SAVE ERROR RETURN ADDRESS
- MSERR 7KI,*
- STM ERR2+1 MODIFY ERROR PROCESSOR CALL
- LDC ERR2
- STM ERXA
- LDN 20 SET RETURN TO ERROR PROCESSOR
- RAI T1
- LJM LEP ISSUE FIRST FAILURE MESSAGE
- EXD1 LDI D1 RESTORE ERROR RETURN ADDRESS
- STM ERXA
- LCN 20 CLEAR RETURN TO ERROR PROCESSOR
- RAI T1
- MSERR 7SI,* RESTORE ERROR PROCESSOR CALL
- STM ERR2+1
- LDN 0
- EXD2 RAD T2 MODIFY CHANNEL INSTRUCTIONS
- LDI T2
- LPN 37
- STD T0
- LDD T4
- SBD T0
- RAI T2
- LDD T0
- NJN EXD2 IF MORE INSTRUCTIONS TO MODIFY
- * ISSUE SPINUP FUNCTION TO EXECUTE LEVEL ONE DIAGNOSTICS.
- EXD3 LDN 0
- STD CM INITIALIZE *FCSU* TIMEOUT FLAG
- STD T2 INITIALIZE CHANNEL PARITY RETRY COUNT
- LDC EXD5
- STM ERRA SET ERROR EXIT ADDRESS
- LDN FCSU ISSUE SPINUP FUNCTION
- RJM FNC
- LDN 1 OUTPUT PARAMETER
- OAM HEDR+3,CH
- NJN EXD5 IF INCOMPLETE TRANSFER
- EXD4 SBN 1
- ZJN EXD5 IF TIMEOUT
- FJM EXD4,CH IF CHANNEL FULL
- AOD CM INDICATE NO ERROR ON *FCSU*
- EXD5 DCN CH+40
- * TAKE GENERAL STATUS. IF STATUS SHOWS SPINUP STILL IN
- * PROGRESS, LOOP ISSUING SPINUP AND GENERAL STATUS FUNCTIONS
- * UNTIL DIAGNOSTICS COMPLETE. IF GENERAL STATUS CANNOT BE
- * TAKEN, EXIT TO *7EP*.
- LDC EXD11 SET ERROR EXIT ADDRESS
- STM ERRA
- EXD6 AOD T2 INCREMENT CHANNEL PARITY RETRY COUNT
- LMN CHRT+1
- ZJN EXD7 IF CHANNEL PARITY RETRY LIMIT REACHED
- LDN FCGS ISSUE GENERAL STATUS FUNCTION
- RJM FNC
- LDN 1 INPUT GENERAL STATUS
- IAM DEGS,CH
- ZJN EXD9 IF DATA TRANSFER COMPLETE
- EXD7 LJM EXD11 CALL *7EP*
- EXD8 LJM EXD3 REISSUE SPINUP FUNCTION
- EXD9 STD T2 CLEAR CHANNEL PARITY RETRY COUNT
- LDD CM
- SFM EXD6,CH IF CHANNEL PARITY ERROR
- ZJN EXD10 IF *FCSU* TIMED OUT
- LDM DEGS
- STM DDMD+4 SET GENERAL STATUS IN MESSAGE
- LMN 2
- NJN EXD10 IF NOT BUSY STATUS
- DELAY 1*8D DELAY FOR 1 MILLISECOND
- PAUSE
- LDD CM+1
- LMN ORET
- NJN EXD8 IF NOT OPERATOR OVERRIDE
- * TAKE DETAILED STATUS.
- EXD10 AOD T2 INCREMENT CHANNEL PARITY RETRY COUNT
- LMN CHRT+1
- ZJN EXD11 IF CHANNEL PARITY RETRY LIMIT REACHED
- LDN FCDS ISSUE DETAILED STATUS
- RJM FNC
- LDN DSLN INPUT DETAILED STATUS
- IAM DSFA,CH
- NJN EXD11 IF DATA TRANSFER ERROR
- SFM EXD10,CH IF CHANNEL PARITY ERROR
- LDN DSLN/5
- STD T2
- LDD MA
- ADN 2 SAVE NEW DETAILED STATUS
- CWM DSFA,T2
- LDC /COMSDFS/RS0200+/COMSDFS/D6DJ*400 SET SYMPTOM CODE
- STM HEDR+1
- UJN EXD12 CALL *7EP*
- EXD11 DCN CH+40
- LDM DEST INHIBIT BML MESSAGE
- LPC 3777
- STM DEST
- EXD12 MSERR 7EP EXECUTE *7EP*
- EXD SPACE 4,10
- HERE TERMINATE LINKED CHANNEL INSTRUCTIONS
- EXD SPACE 4,10
- ERRNG 10000-* OVERFLOW
- BSS 10000-* SPARES
- CON DKI-1 (T0) = ENTRY ADDRESS - 1
- CON DEDT (T1) = DEDT
- CON CH01$ (T2) = FIRST CHANNEL INSTRUCTION ADDRESS
- ERRNZ LN-* INCORRECT *7KI* OVERLAY LENGTH
- QUAL *
- 7SI MSOVL 7733,T2,DSFA+4,(STATUS PROCESSOR.)
- SPACE 4
- *** MASS STORAGE STATUS PROCESSOR.
- * R. J. THIELEN. 75/11/20.
- * W. E. GOEBEL. 77/01/24.
- 7SI SPACE 4,10
- *** *7SI* IS CALLED BY *7EP* TO PERFORM ADDITIONAL
- * DETAILED STATUS PROCESSING. IF A CORRECTION VECTOR IS
- * PROVIDED IN DETAILED STATUS, *7SI* CORRECTS THE ERROR IN THE
- * READ BUFFER AND THEN EXITS TO *7EQ* TO COMPLETE ERROR
- * RECOVERY. FOR OTHER ERRORS, *7SI* REENTERS THE DRIVER AND
- * ISSUES A *CONTINUE* FUNCTION CAUSING THE CONTROLLER TO RETRY
- * THE PREVIOUS OPERATION.
- DSI SPACE 4
- ** DSI - MAIN ROUTINE.
- *
- * ENTRY (T1) = DEGS.
- * (T2) = DERW.
- * (T4 - T7) = DRIVER PARAMETERS.
- * (DERW) = 1 IF WRITE REQUEST, 0 IF READ REQUEST.
- * (DEGS) = GENERAL STATUS.
- * (HEDR - HEDR+11) = BML MESSAGE HEADER.
- * (HEDR+12 - HEDR+16) = FIRST WORD OF DETAILED STATUS.
- * (MB+3 - MB+5) = LAST THREE WORDS OF DETAILED STATUS.
- *
- * EXIT TO *6DI* IF CONTINUE FUNCTION TO BE ISSUED.
- * TO *7EQ* IF ERROR CAN BE CORRECTED ON THE FLY.
- * (T4 - T7) = UNCHANGED.
- * (MB+3 - MB+5) = UNCHANGED.
- *
- * USES CM, CM+1.
- DSI ENTRY *7SI* ENTRY
- LDI T2
- ZJN DSI1 IF READ
- LDN WDS4-RDS3 SET EXIT ADDRESS FOR CONTINUE
- DSI1 STD CM+1
- LDI T1
- LPN 40
- NJN DSI2 IF CORRECTABLE ON THE FLY
- LDN FCCO
- LJM RDS3,CM+1 ISSUE CONTINUE FUNCTION
- * PERFORM ERROR CORRECTION.
- DSI2 LDD MA
- ADN 3
- CRM DSFA+5,TR READ IN REMAINDER OF DETAILED STATUS
- ERRNG *-DSFA-DSLN DATA READ IN DESTROYS CODE
- LDM DSFA+14 SET BUFFER ADDRESS
- LPC 777
- ADM RDSB
- STD CM
- LDM DSFA+15 PERFORM CORRECTION ON FIRST WORD
- LMI CM
- STI CM
- AOD CM
- LDM DSFA+16 PERFORM CORRECTION ON SECOND WORD
- LMI CM
- STI CM
- LJM LEP CALL *7EQ* TO REPORT RECOVERY
- SPACE 4
- ERRNG 10000-* *7SI* HAS OVERFLOWED
- BSS 10000-* SPARES (ADJUST ORIGIN BY 5 AS REQUIRED)
- CON DSI-1 ENTRY ADDRESS - 1
- CON DEGS (T1) = DEGS
- CON DERW (T2) = DERW
- ERRNZ LN-* INCORRECT *7SI* OVERLAY LENGTH
- QUAL *
- 7WI MSOVL 7732,T1,DEEC,(WRITE ERROR PROCESSOR.)
- SPACE 4
- *** WRITE ERROR PROCESSOR.
- * W. E. GOEBEL. 77/01/24.
- SPACE 4
- *** THE WRITE ERROR PROCESSOR IS CALLED ONLY WHEN
- * WRITING IN FULL TRACK MODE UTILIZING THE 715X CONTROLLER
- * OR THE FSC CHANNEL ADAPTOR. *7WI* IS CALLED TO
- * RETRY THE CURRENT SECTOR AFTER THE ERROR PROCESSOR
- * HAS INITIATED A RETRY OF THE PREVIOUS SECTOR. THE PREVIOUS
- * SECTOR HAD BEEN DETECTED TO BE IN ERROR BY A FUNCTION
- * TIME OUT.
- *
- * IF THE PREVIOUS SECTOR WAS SUCCESSFULLY WRITTEN
- * AND THE CURRENT SECTOR DATA STILL EXISTS (BUFFER SPECIFIED
- * IN WDSE) NORMAL PROCESSING WILL RESUME AT THE CURRENT SECTOR.
- *
- * IF NO BUFFER WAS SPECIFIED VIA WDSE THE CURRENT SECTOR
- * DATA DOES NOT EXIST IN THE PPU FOR RETRY. IN THIS CASE
- * CONTROL WILL BE RETURNED TO THE CALLING PROGRAM WITH BIT 11
- * OF THE ACCUMULATOR (AND *RDCT*) SET.
- *
- * ENTRY (T1) = RDS.
- * (T2) = 0 IF PREVIOUS SECTOR ERROR WAS RECOVERED.
- * (RDS) = *WDS* EXIT ADDRESS.
- * (RDSB) = BUFFER ADDRESS.
- * (WDSE) = WRITE ERROR BUFFER ADDRESS (IF ANY).
- * (DEEC) = ERROR CODE.
- *
- * EXIT (A) = 1/1, 5/0, 12/(RDCT)
- * (RDCT) = 1/0, 1/1, 1/F, 3/0, 6/E.
- * F = 1 IF CURRENT SECTOR DATA WAS DESTROYED BY
- * PREVIOUS SECTOR RECOVERY. CALLER SHOULD
- * REISSUE CURRENT SECTOR WRITE REQUEST.
- * E = ERROR CODE.
- * (T7) = CURRENT SECTOR.
- *
- * USES T1, T7.
- *
- * MACROS ENDMS.
- PWI SPACE 4,10
- DWI ENTRY *7WI* ENTRY
- PWI AOD T7 ADVANCE TO CURRENT SECTOR
- LDM RDSB RESTORE BUFFER ADDRESS
- STM WDSC
- LDI T1 RESTORE EXIT ADDRESS
- STD T1
- STM WDS
- LDD T2
- NJN PWI1 IF UNRECOVERED ERROR
- LDD TH SET *REISSUE CURRENT SECTOR* FLAG
- RAM PWIA
- LDM WDSE
- NJN PWI2 IF ERROR RECOVERY BUFFER SPECIFIED
- LDM UERR
- ERRNZ EPDE-400-EPSM CODE ASSUMES VALUES
- SHN 21-10
- MJN PWI1 IF *ENDMS* DISABLED
- ENDMS
- PWI1 LDM DEEC SET ERROR PROCESSOR INTERFACE WORD
- LMC 1S17D+1S10D
- PWIA EQU *-1
- STM RDCT
- LJM 0,T1 RETURN
- PWI2 LJM LDA1 RETRY CURRENT SECTOR
- ERRNG 10000-* *7WI* HAS OVERFLOWED
- BSS 10000-* SPARES (ADJUST ORIGIN BY 5 AS REQUIRED)
- CON DWI-1 (T0) = ENTRY ADDRESS - 1
- CON RDS (T1) = *RDS*
- ERRNZ LN-* INCORRECT *7WI* OVERLAY LENGTH
- QUAL *
- TITLE 0TI - TRACK FLAW PROCESSOR.
- QUAL 0TI
- IDENT 0TI,FFIX "HN" TRACK FLAW PROCESSOR.
- *COMMENT 6DI - "HN" TRACK FLAW PROCESSOR.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- FFI SPACE 4
- *** TRACK FLAW PROCESSOR.
- * R. J. THIELEN. 75/11/20.
- * W. E. GOEBEL. 77/01/24.
- * J. R. HILDEBRAND. 82/01/12.
- FFI SPACE 4
- *** THE TRACK FLAW PROCESSOR READS FLAW MAPS FROM DISK
- * PACKS AND FLAWS LOGICAL TRACKS CORRESPONDING TO THE PHYSICAL
- * FLAW ADDRESSES RECORDED THERE.
- *
- *
- ** ENTRY CONDITIONS.
- *
- * ((LA)-1) = EQUIPMENT.
- *
- * THE TRACK FLAW PROCESSOR IS CALLED IN THE SAME MANNER AS
- * LOCATION FREE OVERLAYS.
- *
- *
- * EXIT CONDITIONS.
- *
- * (A) = NON-ZERO IF FLAWING INCOMPLETE.
- * (T5) = EQUIPMENT EST ORDINAL.
- * TRACKS FLAWED IN TRT IF POSSIBLE TO DO SO.
- *
- * CALLS RDS.
- *
- * USES DIRECT CELLS 00 - 17, BFMS - BFMS+501.
- *
- *
- * NOTES -
- *
- * MODIFIES READ FUNCTION CODE IN MAIN DRIVER AND CLEARS
- * *MSD* SO THAT DRIVER WILL BE RELOADED BY A *SMS*.
- *
- * PHYSICAL FLAW INFORMATION IS RECORDED IN THE UTILITY
- * SECTOR IN 24 BIT FORMAT AS FOLLOWS
- *
- * 1/S, 1/T, 10/CY, 6/HD, 6/SC
- *
- * WHERE S = SECTOR FLAW IF SET = 1
- * T = TRACK FLAW IF SET = 1
- * CY = CYLINDER
- * HD = HEAD
- * SC = SECTOR
- *
- * THE MAIN OVERLAY, 0TI, CONTAINS COMMON SUBROUTINES AND
- * PROCESSORS FOR THE FOLLOWING DEVICES -
- *
- * DI
- * DJ
- *
- * AN AUXILLIARY OVERLAY, 0TJ, CONTAINS PROCESSORS FOR -
- *
- * DK
- * DL
- * DM
- * DQ
- * DR
- * DX
- * DY
- * DZ
- * DA
- * DB
- * DC
- *
- * THE FOLLOWING TYPES OF DEVICES DO NOT HAVE FLAW MAPS RECORDED
- * ON DISK, SO *0TI* IS IMMEDIATELY EXITED -
- *
- * DD
- * DG
- SPACE 4
- ** DIRECT LOCATION ASSIGNMENTS.
- T8 EQU 16 TEMPORARY
- T9 EQU 17 TEMPORARY
- SPACE 4
- * REDEFINE INSTRUCTIONS FOR LOCATION FREE EXECUTION.
- RIREL REDEFINE INSTRUCTIONS
- FFI SPACE 4,10
- ORG 5
- FFI SUBR ENTRY/EXIT
- RJM PRS PRESET FLAW PROCESSING
- ZJN FFIX IF NO FLAW MAP ON DISK TO READ
- MJN FFIX IF NO ALGORITHM INDEX
- * MAIN FLAW PROCESSING LOOP.
- FFI1 LDC 0
- * LDC NTDA/2 (DA DEVICE)
- FFID EQU *-1
- RJM POM PROCESS ONE FLAW MAP
- FFIA UJN FFI2 CONTINUE
- * LDD T9 (PROCESS SECOND *DA* FLAW MAP)
- ADC -NTDA/2
- STD T9
- LDN 0
- RJM POM PROCESS FLAW MAP FOR SECOND *DA* VOLUME
- FFI2 LDC ** SINGLE UNIT SECTOR LIMIT
- FFIB EQU *-1
- RAD T7 ADVANCE LOGICAL SECTOR ADDRESS
- SBM. SLM
- MJN FFI1 IF MORE UNITS FOR THIS DEVICE
- FFIC UJN *+2 CONTINUE
- * RJM FCE (*DA* DEVICE)
- VFD 12/FCE
- LDD T8 ERROR STATUS
- UJN FFIX EXIT
- POM SPACE 4,10
- ** POM - PROCESS ONE FLAW MAP.
- *
- * ENTRY (A) = *NTDA*/2, IF FIRST CALL FOR A *DA* DEVICE.
- * 0 IF NOT.
- * T9 = LOGICAL TRACK NUMBER OF UTILITY FLAW SECTOR.
- *
- * EXIT T8 INCREMENTED IF ERROR.
- *
- * CALLS RDS, FLAW PROCESSORS.
- POM2 AOD T8 COUNT ERROR
- POM SUBR
- STM POMA+1 SET *DA* TRACK BIAS
- LDD T9 SET DEADSTART CYLINDER TRACK ADDRESS
- STD T6
- LDC BFMS RESET UTILITY MAP INDEX
- STD T3
- RJM. RDS READ UTILITY SECTOR
- SHN -17D
- STD T6 SAVE STATUS
- ENDMS
- LDD T6
- NJN POM2 IF ERROR IN READ
- * CONVERT FLAWS FROM PHYSICAL TO LOGICAL.
- POM1 LDI T3 READ TRACK ADDRESS
- ZJN POMX IF NO MORE FLAWS
- LPC 1777
- POMA ADC 0
- * ADC NTDA/2 (FIRST CALL FOR *DA* DEVICE)
- SHN 1
- STD T6
- POMB RJM ** PROCESS FLAW
- LDN 2 ADVANCE UTILITY SECTOR INDEX
- RAD T3
- UJN POM1 CONTINUE PROCESSING
- FLT SPACE 4
- ** FLT - FLAW LOGICAL TRACK.
- *
- * ENTRY (T6) = LOGICAL TRACK.
- *
- * EXIT LOGICAL TRACK FLAWED IF WITHIN TRT.
- *
- * USES CM+1 - CM+3.
- FLT SUBR ENTRY/EXIT
- LDD T6 CHECK IF TRACK WITHIN TRT
- STD CM+2
- ADC -**
- FLTA EQU *-1 NUMBER OF TRACKS
- PJN FLTX IF BEYOND TRT
- LDN STFS SELECT TRACK FLAW FUNCTION
- STD CM+3
- LDD T5 SET EQUIPMENT
- STD CM+1
- MONITOR STBM SET TRACK FLAW
- UJN FLTX EXIT
- PRS SPACE 4,10
- ** PRS - PRESET FLAW PROCESSOR.
- *
- * LOAD DRIVER AND PRESET FOR UTILITY SECTOR READ.
- * LOAD AUXILLIARY OVERLAY IF NEEDED.
- * MODIFY CODE FOR PROPER DEVICE.
- *
- * EXIT (T9) = LOGICAL TRACK OF UTILITY SECTOR.
- * (T7) = LOGICAL SECTOR OF UTILITY SECTOR.
- * (T8) = 0.
- * (A) .LT. 0 IF NO ALGORITHM INDEX IN MST.
- * (A) .EQ. 0 IF NO FLAW MAP ON DISK TO READ.
- * (T5) = EQUIPMENT.
- PRS3 RJM. EXR
- EXECUTE 0TJ,= LOAD AUXILLIARY PROCESSOR OVERLAY
- LDC -PFLA
- RAD LA RESTORE 0TI LOAD ADDRESS
- PRS4 LDM -1
- STD T5 SET EST ORDINAL
- SETMS PIO,(DF,NR,NS)
- LDC **
- PRSB EQU *-1
- STD T7 SET SECTOR NUMBER
- LDC **
- PRSC EQU *-1
- STD T9 SET TRACK NUMBER
- LDN 0
- STD T8 PRESET RETURN STATUS
- LDC LDNI+FCRU SET UTILITY SECTOR FUNCTION CODE
- STM. RDSA
- PRS SUBR
- PFLA BSS 0 AUXILLIARY PROCESSOR OVERLAY ORIGIN
- LDM -1 SET EST ORDINAL
- STD T5
- SFA EST
- ADK EQDE
- CRD CM READ EST ENTRY
- LDD CM+4
- SHN 3
- ADN DILL READ ALGORITHM INDEX
- CRD CM
- SBN DILL-TDGL
- CRD CM-1
- LCN 0 SET NUMBER OF TRACKS
- LMD CM-1+2
- SHN 2
- STM FLTA STORE IN *FLT* SUBROUTINE
- * SET ALGORITHM INDEX DEPENDENT PARAMETERS.
- LDD CM+4
- LPN 77
- SBN 1
- MJN PRSX IF NO ALGORITHM INDEX
- STD T0
- SHN 2 SET *TALP* OFFSET
- ADD T0
- ADD LA
- STD T3
- LDM. TALP,T3 SET LOGICAL TRACK
- ZJN PRSX IF NO FLAW MAP ON DISK TO READ
- STM PRSC
- LDM. TALP+1,T3 SAVE LOGICAL SECTOR
- STM PRSB
- LDM. TALP+2,T3 SET FLAW PROCESSOR
- STM POMB+1
- LDM. TALP+3,T3 SET SINGLE UNIT SECTOR LIMIT
- STM FFIB
- LDD T0
- SBN AIDA-1
- NJN PRS1 IF NOT A *DA* DEVICE
- LDC NTDA/2 SET UP FOR *DA* PROCESS
- STM FFID
- LDC LDDI+T9
- STM FFIA
- LDC RJMI+LA
- STM FFIC
- PRS1 LDM. TALP+4,T3
- NJN PRS2 IF AUXILLIARY OVERLAY NEEDED
- LJM PRS4 LOAD DRIVER
- PRS2 LDC PFLA
- RAD LA SET LOAD ADDRESS FOR AUXILLIARY OVERLAY
- LDM. TALP+4,T3
- SHN 6
- ADN 1R0
- SHN 18D-6
- LJM PRS3-PFLA LOAD AUXILLIARY PROCESSOR OVERLAY
- TALP SPACE 4
- ** TALP - TABLE OF ALGORITHM INDEX DEPENDENT PARAMETERS.
- *
- * ENTRY = 5 BYTES.
- * WORD 1 = LOGICAL TRACK OF FLAW INFORMATION.
- * WORD 2 = LOGICAL SECTOR OF FLAW INFORMATION.
- * WORD 3 = FLAW PROCESSOR ADDRESS.
- * WORD 4 = SINGLE UNIT SECTOR LIMIT.
- * WORD 5 = PROCESSOR OVERLAY NAME.
- TALP INDEX
- INDEX 5*AIDI-5,(7150,1,FPI,SLDI,0)
- INDEX 5*AIDJ-5,(7154,1,FPJ,SLDJ,0)
- INDEX 5*AIDK-5,(7150,2,FPK,SLDK,2RTJ)
- INDEX 5*AIDL-5,(7154,2,FPL,SLDL,2RTJ)
- INDEX 5*AIDM-5,(7223,20,FPM,SLDM,2RTJ)
- INDEX 5*AIDQ-5,(7222,41,FPQ,SLDQ,2RTJ)
- INDEX 5*AIDR-5,(0,0,0,0,0)
- INDEX 5*AIDD-5,(0,0,0,0,0)
- INDEX 5*AIDG-5,(0,0,0,0,0)
- INDEX 5*AIDX-5,(7150,1,FPX,SLDX,2RTJ)
- INDEX 5*AIDY-5,(7134,1,FPY,SLDY,2RTJ)
- INDEX 5*AIDZ-5,(6136,1,FPZ,SLDZ,2RTJ)
- INDEX 5*AIDA-5,(6137,1,FPA,SLDA,2RTJ)
- INDEX 5*AIDB-5,(7222,204,FPB,SLDB,2RTJ)
- INDEX 5*AIDC-5,(7352,1,FPC,SLDC,2RTJ)
- INDEX 5*AIDS-5
- FPX SPACE 4,10
- ** FLAW PROCESSORS.
- *
- * ENTRY (T3) = ADDRESS OF PHYSICAL ADDRESS.
- * (A) = (T6) = CYLINDER * 2.
- *
- * EXIT LOGICAL TRACK CORRESPONDING TO THE PHYSICAL ADDRESS
- * FLAWED IN THE TRT.
- *
- * MAY USE T1, T2, T6, T7, CM - CM+4.
- *
- * CALLS FLT.
- FPI SPACE 4
- ** FPI - FLAW PROCESSOR FOR *DI* EQUIPMENTS.
- FPI SUBR ENTRY/EXIT
- RAD T6
- LDM. 1,T3 TRACK AND SECTOR
- STD T2
- SHN -6
- SBN 11
- MJN FPI1 IF LOWER HALF OF CYLINDER
- AOD T6
- FPI1 LDD T2 SET EVEN ODD PHYSICAL SECTOR
- LPN 1
- SHN 1
- RAD T6
- RJM FLT FLAW TRACK
- LDI T3 CHECK FOR TRACK MODE FLAW
- SHN 21-12
- PJN FPIX IF NOT TRACK MODE FLAW
- LDD T6
- LMN 2 SELECT OTHER LOGICAL TRACK
- STD T6
- RJM FLT FLAW LOGICAL TRACK
- UJN FPIX EXIT
- FPJ SPACE 4,10
- ** FPJ - FLAW PROCESSOR FOR *DJ* EQUIPMENTS.
- FPJ SUBR ENTRY/EXIT
- LDM. 1,T3 SET EVEN/ODD TRACK
- LPN 1
- RAD T6
- RJM FLT FLAW LOGICAL TRACK
- LDI T3 CHECK FOR TRACK MODE FLAW
- SHN 21-12
- PJN FPJX IF NOT TRACK MODE FLAW
- LDD T6 SELECT OTHER LOGICAL TRACK
- LMN 1
- STD T6
- RJM FLT FLAW LOGICAL TRACK
- UJN FPJX EXIT
- SPACE 4
- ERRNG 473-* OVERLAY OVERFLOWS PRU
- TITLE 0TJ - TRACK FLAW PROCESSOR FOR 33502.
- IDENT 0TJ,FFIX "HN" TRACK FLAW PROCESSOR.
- *COMMENT 6DI - "HN" TRACK FLAW PROCESSOR.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- ZTJ SPACE 4,10
- *** TRACK FLAW PROCESSOR AUXILLIARY OVERLAY.
- * J. D. MEYER 80/12/12.
- * J. R. HILDEBRAND 82/01/12.
- ZTJ SPACE 4,10
- *** ADDITIONAL FLAW PROCESSORS FOR *0TI*.
- *
- * CONTAINS FLAW PROCESSORS FOR THE FOLLOWING EQUIPMENTS -
- *
- * DK
- * DL
- * DM
- * DQ
- * DX
- * DY
- * DZ
- * DA
- * DB
- * DC
- *
- * ENTRY (T3) = ADDRESS OF PHYSICAL ADDRESS.
- * (A) = (T6) = CYLINDER * 2.
- *
- * EXIT LOGICAL TRACK CORRESPONDING TO THE PHYSICAL ADDRESS
- * FLAWED IN THE TRT.
- *
- * MAY USE T1, T2, T6, T7, CM - CM+4.
- *
- * CALLS CHS, FLT, PTF.
- SPACE 4
- ORG 5
- LOC PFLA+5
- ZTJ SUBR
- UJN ZTJX RETURN AFTER LOADING ROUTINES
- FPK SPACE 4
- ** FPK - FLAW PROCESSOR FOR *DK* EQUIPMENT.
- FPK5 ADN 2
- PJN FPKX IF IN GAP SECTOR
- FPK6 RJM FLT FLAW LOGICAL TRACK
- FPK SUBR ENTRY/EXIT
- RAD T6
- LDI T3
- SHN 21-12
- MJN FPK2 IF TRACK MODE FLAW
- RJM CHS CONVERT HEAD GROUP AND SECTOR
- FPK1 LDC -SLDK-2
- RAD T2
- MJN FPK5 IF IN PREVIOUS TRACK
- AOD T6 ADVANCE TRACK
- UJN FPK1
- FPK2 RJM PTF PROCESS TRACK FLAW
- UJN FPKX RETURN
- FPL SPACE 4
- ** FPL - FLAW PROCESSOR FOR *DL* EQUIPMENTS.
- FPL4 ADN 2
- PJN FPLX IF IN GAP SECTOR
- FPL5 RJM FLT FLAW LOGICAL TRACK
- FPL SUBR ENTRY/EXIT
- LDI T3
- SHN 21-12
- MJN FPL2 IF TRACK MODE FLAW
- RJM CHS CONVERT HEAD GROUP AND SECTOR
- FPL1 LDC -SLDL-2
- RAD T2
- MJN FPL4 IF IN PREVIOUS TRACK
- AOD T6 ADVANCE TRACK
- UJN FPL1
- FPL2 RJM FPY PROCESS TRACK FLAW
- UJN FPLX RETURN
- FPM SPACE 4,10
- ** FPM - FLAW PROCESSOR FOR *DM* EQUIPMENTS.
- FPM SUBR ENTRY/EXIT
- RJM FLT FLAW TRACK
- AOD T6
- RJM FLT FLAW TRACK
- UJN FPMX RETURN
- FPQ SPACE 4,10
- ** FPQ - FLAW PROCESSOR FOR *DQ* EQUIPMENTS.
- FPQ SUBR ENTRY/EXIT
- LDM. 1,T3
- SHN -6
- SBN 24
- MJN FPQ1 IF IN FIRST HALF OF CYLINDER
- AOD T6
- FPQ1 RJM FLT FLAW TRACK
- UJN FPQX RETURN
- FPX SPACE 4,10
- ** FLAW PROCESSOR FOR *DX* EQUIPMENTS.
- FPX SUBR ENTRY/EXIT
- RAD T6
- RJM PTF PROCESS TRACK FLAW
- UJN FPXX RETURN
- FPY SPACE 4,10
- ** FLAW PROCESSOR FOR *DY* EQUIPMENTS.
- FPY2 RJM FLT FLAW LOGICAL TRACK
- FPY SUBR ENTRY/EXIT
- LDM. 1,T3
- SHN -6
- SBN 11
- MJN FPY2 IF IN FIRST TRACK
- NJN FPY1 IF IN SECOND TRACK
- RJM FLT FLAW BOTH TRACKS
- FPY1 AOD T6
- UJN FPY2 FLAW SECOND TRACK
- FPZ SPACE 4,10
- ** FLAW PROCESSOR FOR *DZ* EQUIPMENTS.
- FPZ SUBR ENTRY/EXIT
- LDM. 1,T3
- SHN -6
- SBN 17
- MJN FPZ1 IF FIRST TRACK IN CYLINDER
- AOD T6 ADVANCE TRACK
- FPZ1 RJM FLT FLAW LOGICAL TRACK
- UJN FPZX RETURN
- FPA SPACE 4,10
- ** FPA - FLAW PROCESSOR FOR *DA* EQUIPMENTS.
- FPA SUBR
- SHN -1
- STD T6 SET LOGICAL TRACK = PHYSICAL CYLINDER
- RJM FLT PROCESS FLAW
- UJN FPAX EXIT
- FCE SPACE 4,10
- ** FCE - FLAW DS AND CE TRACKS FOR *DA* DEVICE.
- FCE SUBR
- LDD T9
- ADC NTDA/2
- LPC 3777
- STD T6 SET DEAD START TRACK ADDRESS
- RJM FLT FLAW TRACK
- SOD T6
- RJM FLT
- LDD T6
- SHN -1
- STD T6
- RJM FLT
- SOD T6
- RJM FLT
- UJN FCEX RETURN
- FPB SPACE 4,10
- ** FPB - FLAW PROCESSOR FOR *DB* EQUIPMENTS.
- FPB SUBR
- LDM. 1,T3
- SHN -6
- SBN 5
- MJN FPB1 IF FIRST HALF OF CYLINDER
- AOD T6
- FPB1 RJM FLT ENTER FLAW
- UJN FPBX RETURN
- FPC SPACE 4,10
- ** FLAW PROCESSOR FOR *DC* EQUIPMENTS.
- FPC SUBR ENTRY/EXIT
- LDM. 1,T3
- SHN -6
- SBN 7
- MJN FPC2 IF IN FIRST TRACK
- NJN FPC1 IF IN SECOND TRACK
- RJM FLT FLAW BOTH TRACKS
- FPC1 AOD T6
- FPC2 RJM FLT FLAW LOGICAL TRACK
- UJN FPCX FLAW SECOND TRACK
- SPACE 4,10
- ** FLAW SUBROUTINES.
- CHS SPACE 4,10
- ** CHS - CONVERT HEAD AND SECTOR TO RELATIVE SECTOR IN CYLINDER.
- *
- * ENTRY ((T3)+1) = 6/ HEAD,6/ SECTOR.
- *
- * EXIT (T2) = RELATIVE SECTOR IN CYLINDER.
- * = HEAD * 30B + SECTOR.
- *
- * USES T1, T2.
- CHS SUBR ENTRY/EXIT
- LDM. 1,T3 SET HEAD GROUP
- SHN -6
- STD T1
- LDM. 1,T3 SET SECTOR
- LPN 77
- STD T2
- CHS1 SOD T1
- MJN CHSX IF END OF MULTIPLY
- LDN 30
- RAD T2
- UJN CHS1 LOOP
- PTF SPACE 4,10
- ** PTF - PROCESS TRACK FLAW.
- *
- * ENTRY (T3) = ADDRESS OF PHYSICAL ADDRESS.
- * (T6) = PHYSICAL CYLINDER * 4.
- *
- * EXIT LOGICAL TRACK FLAWED.
- *
- * USES T1.
- *
- * CALLS FLT.
- PTF3 RJM FLT FLAW LOGICAL TRACK
- PTF SUBR ENTRY/EXIT
- LDM. 1,T3
- SHN -6
- ADN 1
- STD T1 HEAD GROUP + 1
- UJN PTF2 CONTINUE PROCESSING
- PTF1 AOD T6 ADVANCE TRACK
- PTF2 LCN 5
- RAD T1
- MJN PTF3 IF IN PREVIOUS TRACK
- NJN PTF1 IF NOT HEAD GROUP CROSSING TRACK BOUNDARY
- RJM FLT FLAW LOGICAL TRACK
- AOD T6
- UJN PTF3 FLAW SECOND TRACK
- SPACE 4
- ERRNG 473-* OVERLAY OVERFLOWS PRU
- RSTR RESTORE INSTRUCTIONS
- TITLE 0PI - PACK SERIAL PROCESSOR.
- QUAL 0PI
- IDENT 0PI,PRSX "HN" PACK SERIAL PROCESSOR.
- *COMMENT 6DI - "HN" PACK SERIAL PROCESSOR.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- SPACE 4
- *** PACK SERIAL PROCESSOR.
- * R. J. THIELEN. 75/11/20.
- * W. E. GOEBEL. 78/03/06.
- SPACE 4
- *** THE PACK SERIAL PROCESSOR PERFORMS ANY ONE OF THREE
- * DIFFERENT FUNCTIONS, DEPENDING UPON THE OPTION CHOSEN BY THE
- * CALLER.
- * 1) IT READS THE PACK SERIAL NUMBER FROM A SPECIFIED DISK
- * PACK AND PLACES IT INTO BOTH ERRLOG AND BML MESSAGES
- * WHICH ARE RETURNED TO THE CALLING PROGRAM.
- * 2) IT LOADS AND MODIFIES THE MASS STORAGE DRIVER TO ALLOW
- * THE CALLER TO READ AND WRITE PROTECTED SECTORS.
- * 3) IT READS THE DEADSTART SECTOR FROM A SPECIFIED DISK
- * DRIVE AND VERIFIES THAT IT IS VALID BY CHECKING THOSE
- * FIELDS IN THE SECTOR WHOSE CONTENTS ARE KNOWN AND
- * CONSTANT. AN *ENDMS* IS NOT ISSUED IF THE SECTOR IS
- * VALID, ALLOWING THE CALLER TO UPDATE AND REWRITE THE
- * SECTOR BEFORE ANOTHER MAINFRAME CAN GAIN ACCESS TO THE
- * DRIVE.
- SPACE 4
- * REDEFINE INSTRUCTIONS FOR LOCATION FREE EXECUTION.
- RIREL REDEFINE INSTRUCTIONS
- SPACE 4,10
- * COMMON DECKS.
- *CALL COMSDFS
- PRS EJECT
- *** PRS - PRESET PACK SERIAL PROCESSOR.
- *
- * ENTRY ((LA)-1) = 3/ FC,9/ EQ.
- * EQ = EST ORDINAL.
- * FC = 0 IF TO READ PACK SERIAL NUMBER.
- * FC = 1 IF TO MODIFY DRIVER TO READ AND WRITE PROTECTED
- * SECTORS.
- * FC = 4 IF TO READ AND VERIFY THE DEADSTART SECTOR.
- *
- * EXIT (T5) = EST ORDINAL.
- *
- * FOR FC = 0,
- * (A) = MAIN PROCESSOR ENTRY ADDRESS.
- * (T6) = LOGICAL TRACK OF PACK SERIAL NUMBER.
- * (T7) = LOGICAL SECTOR OF PACK SERIAL NUMBER.
- * PACK SERIAL NUMBER PROCESSOR INITIALIZED.
- *
- * FOR FC = 1,
- * DRIVER MODIFIED TO READ AND WRITE PROTECTED SECTORS.
- *
- * FOR FC = 4,
- * (A) = 0 IF DEADSTART SECTOR LOADED AND VERIFIED.
- * = 1 IF MASS STORAGE ERROR OCCURRED WHILE READING
- * DEADSTART SECTOR.
- * = 2 IF DEADSTART SECTOR FIELDS WERE NOT CORRECT.
- * (T6) = LOGICAL TRACK OF DEADSTART SECTOR.
- * (T7) = LOGICAL SECTOR OF DEADSTART SECTOR.
- * (BFMS - BFMS+501) = DEADSTART SECTOR, IF (A) = 0.
- *
- * USES T3, T5 - T7, CM - CM+4.
- *
- * CALLS C2D, RDS.
- *
- * MACROS ENDMS, SETMS.
- ORG 5
- PRS SUBR ENTRY/EXIT
- LDD LA ABSOLUTIZE MESSAGE ADDRESSES
- RAM TDMA
- LDD LA
- RAM TDMA+1
- LDM -1 SET EST ORDINAL
- LPC 777
- STD T5
- STM MSGB+5
- SHN -3 CONVERT UPPER TWO DIGITS OF EST ORDINAL
- RJM C2D
- STM MSGA+1
- LDD T5 CONVERT LOWER DIGIT OF EST ORDINAL
- LPN 7
- SHN 6
- RAM MSGA+2
- * *SETMS* IS CHANGED TO SUPPRESS ERROR REPORTING OF NORMAL AND
- * NOT READY ERRORS WHILE READING BOTH THE DEADSTART SECTOR AND
- * THE PACK SERIAL NUMBER, PREVENTING UNNECESSARY ERROR MESSAGES
- * FROM BEING ISSUED TO THE OPERATOR. EXAMPLES OF UNNEEDED
- * ERROR MESSAGES ARE 1) READING THE DEADSTART SECTOR ON ISD AND
- * 844 PACKS WHICH HAVE NEVER HAD *CIP* INSTALLED, AND 2) TRYING
- * TO READ THE PACK SERIAL NUMBER ON AN ISD PACK THAT DOES NOT
- * HAVE ONE.
- SETMS PIO
- SETMS =,PIO,(AR,DF,-RR,SM)
- LDK EPAR&EPDF&EPRR&EPSM
- STM. UERR
- LDM. CHRV SET ACCESS TO A DOWN DEVICE
- SCN EPAD
- LMN EPAD
- STM. CHRV
- LDC LDNI+FCRF SET READ FACTORY DATA FUNCTION
- STM. RDSA
- LDD CM+3 SET EQUIPMENT NAME IN MESSAGE
- LPC 3777
- STM MSGA
- STM MSGB+2
- LDD CM+4
- SHN 3
- ADN DILL READ ALGORITHM INDEX
- CRD CM
- SBN DILL-MDGL READ SECTOR LIMIT
- CRD CM-1
- LDD CM-1+1 SET SINGLE UNIT SECTOR LIMIT
- LPC 3777
- STM PSPB
- * SET ALGORITHM INDEX DEPENDENT PROCESSING.
- LDD CM+4
- LPN 77
- ADC TALP
- ADD LA
- STD T3
- LDI T3 SET TRACK
- STD T6
- * NOTE - THE FOLLOWING CODE SETS THE CORRECT *FACTORY* SECTOR
- * NUMBER FOR ALL DEVICES (ZERO FOR ALL EXCEPT CDSS II). IF A
- * NEW DEVICE IS TO BE ADDED WITH A *DEADSTART* SECTOR NUMBER
- * EXCEEDING 377, THIS CODE MAY REQUIRE ALTERATION.
- LDM. TDSS-TALP,T3 SET FACTORY SECTOR NUMBER
- LPC 7400 CLEAR BITS 7-0
- STD T7
- LDM -1 CHECK OPTION TYPE
- SHN 0-11
- NJN PRS2 IF NOT READING PACK SERIAL NUMBER
- LDC PSP RETURN MAIN PROCESSOR ENTRY ADDRESS
- ADD LA
- PRS1 LJM PRSX EXIT
- PRS2 LDC LDNI+FCRP
- STM. RDSA
- LDC LDNI+FCWP
- STM. WDS3
- LDM -1
- SHN 0-12
- ZJN PRS1 IF SETTING FOR PROTECTED READS AND WRITES
- LDM. TDST-TALP,T3 SET DEADSTART TRACK
- STD T6
- LDM. TDSS-TALP,T3 SET DEADSTART SECTOR NUMBER
- STD T7
- LDC BFMS READ THE DEADSTART SECTOR
- RJM. RDS
- SHN 0-21
- NJN PRS4 IF DEADSTART SECTOR CANNOT BE READ
- LDN PRSBL+1
- STD CM
- LDD LA
- RAM PRSA
- PRS3 SOD CM CHECK NEXT BYTE
- ZJN PRS4 IF ALL KNOWN BYTES IN SECTOR ARE CORRECT
- LDM. BFMS-1,CM
- LMM. PRSB-1,CM VERIFY BYTE AGAINST EXPECTED VALUE
- PRSA EQU *-1
- ZJN PRS3 IF BYTE CONTENTS ARE CORRECT
- ENDMS
- LDN 2
- PRS4 LJM PRSX EXIT
- PRSB CON 0500,0016 CONTROL BYTES
- CON 0000,0000,0000,1120,1400 FIRST WORD OF SECTOR
- CON 0000,0000,0000 BEGINNING OF SECOND WORD
- PRSBL EQU *-PRSB
- PSP SPACE 4
- *** PSP - PACK SERIAL PROCESSOR.
- *
- * ENTRY (A) = LOGICAL UNIT.
- * (T5) = EQUIPMENT.
- * (T6) = TRACK.
- * (T7) = SECTOR.
- *
- * EXIT (A) = 6/BL, 12/TA.
- * BL = BML MESSAGE LENGTH.
- * TA = DAYFILE MESSAGE TABLE ADDRESS.
- * (A) = 0 IF DISK ERROR DETECTED.
- * (BFMS - BFMS+1) = PACK SERIAL NUMBER IF NO DISK ERROR.
- *
- * USES T0, T3 - T7, CM - CM+4.
- *
- * CALLS CBD, CHB, CSD, CTD, RDS.
- *
- * MACROS ENDMS.
- PSP4 LDN 0 RETURN ERROR STATUS
- PSP SUBR ENTRY/EXIT
- STD T1 SAVE LOGICAL UNIT
- PSP1 SOD T1 FORM LOGICAL UNIT * SECTOR LIMIT
- MJN PSP2 IF MULTIPLICATION COMPLETE
- LDC 0 ADD SINGLE UNIT SECTOR LIMIT
- PSPB EQU *-1
- RAD T7
- UJN PSP1
- PSP2 LDC BFMS READ FACTORY SECTOR
- RJM. RDS
- MJN PSP4 IF ERROR
- LDD MA GET PHYSICAL UNIT NUMBER
- CWD T4
- MONITOR LDAM CONVERT ADDRESS
- ENDMS
- LDD MA
- ADN 1
- CRD CM
- LDD CM+1 PUT PHYSICAL UNIT NUMBER IN MESSAGE
- STM MSGB+3
- RJM C2D
- STM MSGA+4
- LDC BFMS SET ADDRESS OF PACK SERIAL NUMBER
- STD CM
- LDC MSGA+7 SET ERRLOG MESSAGE DESTINATION ADDRESS
- ADD LA
- STD CM+1
- LDC MSGB+7 SET BML MESSAGE DESTINATION ADDRESS
- ADD LA
- STD CM+2
- RJM CSD CONVERT 6 BCD DIGITS TO DISPLAY
- LDC TDMA+MSG1L*10000
- ADD LA
- LJM PSPX EXIT
- MSGA DATA C*EQ000, U00,PS=000000.*
- MSGB CON DM0401 MESSAGE ID
- CON HI0100 MESSAGE SYMPTOM
- CON 0 DEVICE TYPE (DISPLAY CODE)
- CON 0 UNIT NUMBER (BINARY)
- CON 0 RESERVED FOR CDC
- CON 0 EST ORDINAL (BINARY)
- CON 0 RESERVED FOR CDC
- DATA 6AXXXXXX PACK SERIAL NUMBER (DISPLAY CODE)
- MSG1L EQU *-MSGB REGULAR BML MESSAGE LENGTH
- TDMA SPACE 4,10
- ** TDMA - TABLE OF DAYFILE MESSAGE ADDRESSES.
- TDMA BSS 0
- CON MSGA ERRLOG MESSAGE ADDRESS
- CON MSGB BML MESSAGE ADDRESS
- TALP SPACE 4
- ** TALP - TABLE OF ALGORITHM INDEX PROCESSING PARAMETERS.
- *
- * ENTRY = 1 WORDS.
- * WORD 1 = LOGICAL TRACK OF MANUFACTURING SECTOR.
- TALP INDEX
- INDEX AIDI,(7150)
- INDEX AIDJ,(7154)
- INDEX AIDK,(7150)
- INDEX AIDL,(7154)
- INDEX AIDM,(7222)
- INDEX AIDQ,(7222)
- INDEX AIDR,(5060)
- INDEX AIDX,(7150)
- INDEX AIDY,(7134)
- INDEX AIDZ,(6136)
- INDEX AIDA,(6137)
- INDEX AIDB,(7222)
- INDEX AIDC,(7352)
- INDEX AIDD,(0)
- INDEX AIDG,(0)
- INDEX AIDS
- TDST SPACE 4,10
- ** TDST - TABLE OF DEADSTART TRACK NUMBERS.
- TDST INDEX
- INDEX AIDI,7152
- INDEX AIDJ,7155
- INDEX AIDK,7150
- INDEX AIDL,7154
- INDEX AIDM,7222
- INDEX AIDQ,7222
- INDEX AIDR,5060
- INDEX AIDX,7150
- INDEX AIDY,7134
- INDEX AIDZ,6136
- INDEX AIDA,6137
- INDEX AIDB,7222
- INDEX AIDC,(7352)
- INDEX AIDD,7140
- INDEX AIDG,6570
- INDEX AIDS
- TDSS SPACE 4,10
- ** TDSS - TABLE OF DEADSTART SECTOR NUMBERS.
- *
- * NOTE - IF A NEW DEVICE WITH A DEADSTART SECTOR NUMBER GREATER
- * THAN 377 IS ADDED TO THIS TABLE, CODE IN THE AREA JUST BEFORE
- * TAG *PRS1* MAY REQUIRE ALTERATION.
- TDSS INDEX
- INDEX AIDI,1
- INDEX AIDJ,1
- INDEX AIDK,3
- INDEX AIDL,3
- INDEX AIDM,37B
- INDEX AIDQ,76B
- INDEX AIDR,2476B
- INDEX AIDX,2
- INDEX AIDY,2
- INDEX AIDZ,2
- INDEX AIDA,2
- INDEX AIDB,370B
- INDEX AIDC,2
- INDEX AIDD,0
- INDEX AIDG,0
- INDEX AIDS
- CBD SPACE 4
- ** CBD - CONVERT BINARY CODED DECIMAL TO DISPLAY CODE.
- *
- * ENTRY (A) = 10/,8/ 2 BCD DIGITS.
- * (CM+1) = ADDRESS IN ERRLOG MESSAGE WHERE RESULT IS
- * TO BE STORED.
- * (CM+2) = ADDRESS IN BML MESSAGE WHERE RESULT IS TO
- * BE STORED.
- *
- * EXIT CONVERTED DIGITS ADDED TO ERRLOG AND BML MESSAGES.
- * (CM+1) AND (CM+2) INCREMENTED.
- *
- * USES T0.
- CBD SUBR ENTRY/EXIT
- LPC 377 UNPACK DIGITS
- SHN 16 SAVE HIGH ORDER DIGIT
- STD T0
- SCN 17
- SHN -2 POSITION LOW ORDER DIGIT
- LMD T0 MERGE HIGH ORDER DIGIT
- SHN 6
- ADC 2R00 CONVERT TO DISPLAY CODE
- STI CM+1
- STI CM+2
- AOD CM+1
- AOD CM+2
- UJN CBDX EXIT
- CSD SPACE 4,10
- ** CSD - CONVERT SIX BCD DIGITS TO DISPLAY CODE.
- *
- * ENTRY (CM) = ADDRESS OF BCD DIGITS.
- * (CM+1) = STARTING ADDRESS IN ERRLOG MESSAGE WHERE
- * RESULT IS TO BE STORED.
- * (CM+2) = STARTING ADDRESS IN BML MESSAGE WHERE RESULT
- * IS TO BE STORED.
- *
- * EXIT DIGITS ADDED TO ERRLOG AND BML MESSAGES.
- * (CM - CM+2) EACH INCREMENTED TO POINT TO THE FIRST
- * BYTE AFTER THE ADDED DIGITS.
- *
- * USES CM.
- *
- * CALLS CBD.
- CSD SUBR ENTRY/EXIT
- LDI CM CONVERT BCD DIGITS ONE AND TWO
- SHN -4
- RJM CBD
- LDI CM CONVERT BCD DIGITS THREE AND FOUR
- LPN 17
- SHN 14
- LMM. 1,CM
- SHN -10
- RJM CBD
- AOD CM
- LDI CM CONVERT BCD DIGITS FIVE AND SIX
- RJM CBD
- AOD CM
- UJN CSDX EXIT
- SPACE 4
- ** COMMON DECKS.
- *CALL COMPC2D
- SPACE 4
- ERRNG 473-* OVERLAY OVERFLOWS PRU
- RSTR RESTORE INSTRUCTIONS
- TITLE 0RI - UNIT RESERVE PROCESSOR.
- QUAL 0RI
- IDENT 0RI,PRSX "HN" UNIT RESERVE PROCESSOR.
- *COMMENT 6DI - "HN" UNIT RESERVE PROCESSOR.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- SPACE 4
- *** UNIT RESERVE PROCESSOR.
- * R. J. THIELEN. 75/11/20.
- * W. E. GOEBEL. 78/03/06.
- * K. F. REHM. 84/07/12.
- SPACE 4
- *** THE UNIT RESERVE PROCESSOR IS USED IN CASES WHERE 844
- * DRIVES ARE CONNECTED TO MORE THAN ONE CONTROLLER, AND THE
- * CONTROLLER WHICH IS CURRENTLY HOLDING DRIVES RESERVED IS
- * INOPERATIVE. THE PROCESSOR ISSUES A *GRENADE* FUNCTION TO
- * THE FUNCTIONING CONTROLLER, WHICH RELEASES ALL 844 DRIVES
- * RESERVED BY THE INOPERATIVE CONTROLLER.
- SPACE 4
- * REDEFINE INSTRUCTIONS FOR LOCATION FREE EXECUTION.
- RIREL REDEFINE INSTRUCTIONS
- PRS SPACE 4,10
- *** PRS - PRESET UNIT RESERVE PROCESSOR.
- *
- * EXIT (A) = MAIN PROCESSOR ENTRY ADDRESS.
- ORG 5
- PRS SUBR ENTRY/EXIT
- LDC RUR
- ADD LA
- UJN PRSX EXIT
- RUR SPACE 4,10
- ** RUR - RELEASE UNIT RESERVES.
- *
- * ENTRY (T5) = EST ORDINAL OF EQUIPMENT.
- * (T6) = LEGAL TRACK NUMBER.
- * (T7) = LEGAL SECTOR NUMBER.
- *
- * CALLS RDS.
- *
- * MACROS SETMS.
- RUR SUBR ENTRY/EXIT
- SETMS PIO,(DF,NS)
- LDC LDNI+FCGR
- STM. LDAA
- LDM RURA
- STM. LDAB
- LDM RURB
- STM. RDSA
- RJM. RDS ISSUE GRENADE FUNCTION
- ENDMS
- UJN RURX RETURN
- RURA BSS 0
- LOC LDAB
- UJN LDA7 AVOID OUTPUT OF DISK ADDRESS
- LOC *O
- RURB BSS 0
- LOC RDSA
- UJN RDS4 AVOID ISSUING FURTHER FUNCTIONS
- LOC *O
- BSS 0
- ERRNG 473-* OVERLAY OVERFLOWS PRU
- RSTR RESTORE INSTRUCTIONS
- TITLE 0SI - SERVO TIMING PROCESSOR.
- QUAL 0SI
- IDENT 0SI,PRSX "HN" SERVO TIMING PROCESSOR.
- COMMENT 82/02/26. 82/10/23. 6DI - "HN" SERVO TIMING PROCESSOR.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- SPACE 4,10
- *** SERVO TIMING PROCESSOR.
- * R. J. THIELEN. 75/11/20.
- * W. E. GOEBEL. 78/03/06.
- * T. J. CALLAGHAN. 83/03/09.
- SPACE 4,10
- *** THE SERVO TIMING PROCESSOR PERFORMS SERVO
- * ADJUSTMENTS FOR 885 DRIVES.
- SPACE 4,10
- * REDEFINE INSTRUCTIONS FOR LOCATION FREE EXECUTION.
- RIREL REDEFINE INSTRUCTIONS
- PRS SPACE 4,10
- *** PRS - PRESET PACK SERIAL PROCESSOR.
- *
- * ENTRY ((LA)-1) = 3/,9/ EQ.
- * EQ = EST ORDINAL.
- *
- * EXIT (A) = MAIN PROCESSOR ENTRY ADDRESS.
- * (T5) = EST ORDINAL.
- * (T6) = TRACK.
- * (T7) = SECTOR.
- * PACK SERIAL PROCESSOR INITIALIZED.
- * MASS STORAGE DRIVER INITIALIZED AND MODIFIED TO READ
- * THE APPROPRIATE SECTOR.
- *
- * USES T5.
- *
- * MACROS SETMS.
- ORG 5
- PRS SUBR ENTRY/EXIT
- LDM -1 SET EST ORDINAL
- LPC 777
- STD T5
- SETMS PIO,(DF,NS)
- LDD LA ABSOLUTIZE ADDRESS
- RAM FTCA
- SBN TFTC-FTC RETURN PROCESSOR ADDRESS
- UJN PRSX RETURN
- FTC SPACE 4,10
- ** FTC - FUNCTION SERVO DIFFERENCE TIMING COUNTER.
- *
- * ENTRY (T7) = LOGICAL UNIT * SINGLE UNIT SECTOR LIMIT.
- *
- * EXIT (A) = 0 IF TIMING TOO LARGE.
- * (A) .LT. 0 IF DISK ERROR.
- * (A) = SERVO TIMING AVERAGED OVER 20 SAMPLES.
- *
- * USES T1, T3.
- *
- * CALLS RDS.
- *
- * MACROS ENDMS, SETMS.
- FTC3 ENDMS
- FTC SUBR ENTRY/EXIT
- LDN 2 SET DRIVER
- STM. FNCA
- LDN TFTCL-1 MOVE CODE TO *RDS*
- STD T1
- FTC1 LDM. TFTC,T1
- FTCA EQU *-1
- STM. RDSC,T1
- SOD T1
- PJN FTC1 IF MORE TO MOVE
- LDN 20 SET TIMING LOOP COUNTER
- STD T3
- FTC2 LDC BFMS INPUT TIMING SAMPLE
- RJM. RDS
- MJN FTCX IF ERROR
- LDM. BFMS
- NJN FTC3 IF TIMING DATA TOO LARGE
- LDM. BFMS+1 PROCESS TIMING SAMPLE
- RAM FTCB+1
- SHN -14
- RAM FTCB
- SOD T3
- NJN FTC2 IF MORE SAMPLES TO PROCESS
- ENDMS
- FTCB LDC 0 TOTAL OF TIMING SAMPLES
- SHN -4
- LJM FTCX RETURN
- TFTC BSS 0 CODE TO OVERLAY *RDS*
- LOC RDSC
- RJM. LDA SEEK TO CYLINDER 0
- RJM FTD FUNCTION TIMING DIFFERENCE COUNTER
- UJN RDSA INPUT TIMING DATA
- BSS RDSA-* SPARES
- RDSA LDN FCTD INPUT TIMING DATA
- LOC *O
- TFTCL EQU *-TFTC
- FTC SPACE 4,10
- ** FTD - FUNCTION TIMING DIFFERENCE COUNTER.
- FTD SUBR ENTRY/EXIT
- LDM. FNCC SET FUNCTION
- ADN 40
- STM FTDA
- LDM. FNCB SET TEST
- STM FTDB
- LDN FCFT FUNCTION TIMING DIFFERENCE COUNTER
- FTDA FAN 0+40
- LDD TH
- STD T1
- STD T2
- FTDB CON 0,RDSA
- * IJM RDSA,CH IF FUNCTION ACCEPTED
- SOD T1
- PJN FTDB IF NOT TIME OUT
- SOD T2
- PJN FTDB IF NOT TIME OUT
- UJN FTDX RETURN
- SPACE 4
- ERRNG 473-* OVERLAY OVERFLOWS PRU
- RSTR RESTORE INSTRUCTIONS
- TITLE 0CI - FIRMWARE IDENT PROCESSOR.
- QUAL 0CI
- IDENT 0CI,PRSX "HN" FIRMWARE IDENT PROCESSOR.
- *COMMENT 6DI - "HN" FIRMWARE IDENT PROCESSOR.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- SPACE 4
- *** FIRMWARE IDENT PROCESSOR.
- * R. J. THIELEN. 75/11/20.
- * W. E. GOEBEL. 78/03/06.
- SPACE 4
- *** THE FIRMWARE IDENT PROCESSOR OBTAINS DETAILED STATUS
- * FOR A SPECIFIED EQUIPMENT, CHANNEL AND LOGICAL UNIT, EXTRACTS
- * THE FIRMWARE REVISION NUMBER AND PLACES THAT INFORMATION IN A
- * DAYFILE MESSAGE THAT IT RETURNS TO THE CALLING PROGRAM.
- SPACE 4
- * REDEFINE INSTRUCTIONS FOR LOCATION FREE EXECUTION.
- RIREL REDEFINE INSTRUCTIONS
- SPACE 4,10
- ** COMMON DECKS.
- *CALL COMSDFS
- PRS SPACE 4,10
- *** PRS - PRESET FIRMWARE IDENTIFICATION PROCESSOR.
- *
- * ENTRY ((LA)-1) = 3/ FN,9/ EQ.
- * FN = FUNCTION NUMBER.
- * 0 = CHANNEL CONTROLWARE IDENTIFICATION.
- * 1 = CONTROL MODULE CONTROLWARE IDENTIFICATION.
- *
- * EXIT (A) = MAIN PROCESSOR ENTRY ADDRESS.
- * (T5) = EST ORDINAL.
- * FIRMWARE IDENTIFICATION PROCESSOR INITIALIZED.
- *
- * USES T5, T7, CM - CM+4.
- *
- * MACROS SETMS.
- ORG 5
- PRS SUBR ENTRY/EXIT
- LDD LA ABSOLUTIZE MESSAGE ADDRESSES
- RAM TDMA
- RAM TDMA+1
- LDM -1 SET EST ORDINAL
- LPC 777
- STD T5
- SETMS PIOCH,(DF,NR,NS)
- LDD CM+4 GET ALGORITHM INDEX FROM MST
- SHN 3
- ADN DILL
- CRD CM
- LDD CM+4
- LPN 77
- RAM FIPC
- STM PRSA
- ADC -AIIB-TDAI
- MJN PRS2 IF NOT ISD
- SBK AIIE-AIIB
- MJN PRS3 IF ISD
- SBK AIDC-AIIE
- ERRNG AIDC-AIIE ALGORITHM INDEXES OUT OF ORDER
- MJN PRS2 IF NOT FSC, 7165 NOR ISD
- STD T0
- LDN ARNW-FRNW SET ADAPTOR REVISION NUMBER WORD
- RAM FIPF
- LDD T0
- ZJN PRS5 IF 7165/895 EQUIPMENT
- PRS2 UJN PRS6 MODIFY DRIVER
- * MODIFY OVERLAY FOR EITHER THE 7255 ADAPTOR OR FOR A CONTROL
- * MODULE.
- PRS3 LDM -1
- SHN 0-11
- ZJN PRS5 IF 7255 ADAPTOR
- LDM PRSA
- ADK -AIDD-TDAI
- ZJN PRS4 IF *DD* DEVICE TYPE
- LDN /CNTL/T424-/CNTL/T422 (CONTROL MODULE II)
- PRS4 ADN /CNTL/T422 (CONTROL MODULE I)
- STM **
- PRSA EQU *-1 (MODIFY CONTROLWARE INDEX TABLE CONTENTS)
- LDN PSNI
- STM FIPE
- LDN HI0104-HI0101
- RAM MSGB+1
- PRS5 LDN 1RD-1RA
- RAM MSGA+5
- STM MSGB+10
- PRS6 LDC LDNI+FCDS SET DRIVER TO READ *DETAILED STATUS*
- STM. RDSA
- LDM -1
- SHN 0-11
- NJN PRS7 IF CONTROL MODULE FIRMWARE IDENTIFICATION
- LDD HN ENABLE A BRANCH TO READ *DETAILED STATUS*
- ERRNZ LJMI-100 ADJUST IF VALUE CHANGES
- STM. LDAC
- LDC RDS2
- STM. LDAC+1
- PRS7 LDN DSLN
- STM. FNCA
- LDC FIP
- ADD LA
- LJM PRSX EXIT
- MSGA DATA C*CH00 MA722-A00,CM0.*
- MSGB CON DM0401 MESSAGE ID
- CON HI0101 MESSAGE SYMPTOM
- CON 0 CHANNEL (OCTAL)
- CON 0 (CONTROL MODULE EQUIPMENT NUMBER)
- CON 0 RESERVED FOR CDC
- DATA 10A MA722-AYY FIRMWARE REVISION LEVEL (DISPLAY CODE)
- MSGBL EQU *-MSGB BML MESSAGE LENGTH
- TDMA SPACE 4,10
- ** TDMA - TABLE OF DAYFILE MESSAGE ADDRESSES.
- TDMA BSS 0
- CON MSGA ERRLOG MESSAGE ADDRESS
- CON MSGB-MSGA BML MESSAGE ADDRESS
- FIP SPACE 4
- *** FIP - FIRMWARE IDENTIFICATION PROCESSOR.
- *
- * ENTRY (T4) = CHANNEL.
- * (T5) = EST ORDINAL.
- *
- * EXIT (A) = 6/BL, 12/TA.
- * BL = BML MESSAGE LENGTH.
- * TA = ADDRESS OF MESSAGE PARAMETER BLOCK.
- * .LT. 0 IF MASS STORAGE ERROR.
- * (T5) = UNCHANGED.
- * (BFMS) = DETAILED STATUS.
- *
- * USES T3, T6, T7.
- *
- * CALLS CDD, COD, RDS.
- *
- * MACROS ENDMS.
- FIP SUBR ENTRY/EXIT
- LDN 0
- STD T6 CLEAR LOGICAL ADDRESS
- STD T7
- LDC BFMS READ DETAILED STATUS
- RJM. RDS
- MJN FIPX IF ERROR
- ENDMS
- * ADD CHANNEL NUMBER TO THE ERRLOG AND BML MESSAGES.
- LDD T4 PUT CHANNEL IN MESSAGE
- STM MSGB+2
- RJM COD
- STM MSGA+1
- * ADD FIRMWARE TYPE TO ERRLOG AND BML MESSAGES.
- LDM TDAI
- FIPC EQU *-1
- NJN FIP4 IF CONTROLWARE TYPE ALREADY KNOWN
- LDM. BFMS+FRNW
- SHN -12
- SHN 1
- FIP4 ADD LA
- ADC FIPH
- STD T3
- LDI T3
- STM MSGA+3
- STM MSGB+6
- LDM. 1,T3
- STM MSGA+4
- STM MSGB+7
- * ADD REVISION NUMBER TO ERRLOG AND BML MESSAGES. IF
- * PROCESSING A CONTROL MODULE, ADD THE CONTROL MODULE
- * EQUIPMENT NUMBER TO THE MESSAGES.
- LDC MSGA+7
- ADD LA
- STD T3
- UJN FIP6 CHANNEL FIRMWARE IDENTIFICATION
- * PSN (CONTROL MODULE FIRMWARE IDENTIFICATION)
- FIPE EQU *-1
- LDM. BFMS+FRNW GET CONTROL MODULE EQUIPMENT NUMBER
- SHN -3
- LPN 7
- STM MSGB+3
- ADC 2RM0
- STM MSGA+10
- LDN 11-7
- RAD T3
- LDM. BFMS+CMNW
- LPN 37
- UJN FIP7 ADD REVISION NUMBER
- FIP6 LDM. BFMS+FRNW
- * LDM. BFMS+ARNW (FSC AND 7165 EQUIPMENTS)
- FIPF EQU *-1
- SHN -6
- LPN 17
- FIP7 RJM CDD
- STM MSGA+6
- STM MSGB+11
- * TERMINATE THE ERROR LOG MESSAGE.
- LDC 2R.
- STI T3
- LDN 0
- STM. 1,T3
- LDC TDMA+MSGBL*10000 SET TABLE ADDRESS, BML MSG LENGTH
- ADD LA
- LJM FIPX RETURN
- FIPH BSS 0
- LOC 0
- QUAL CNTL
- T710 DATA 4RA710 HALF TRACK CONTROLWARE
- T454 DATA 4RA454 FSC ADAPTOR CONTROLWARE
- T401 DATA 4RA401 FULL TRACK CONTROLWARE
- T721 DATA 4RA721 FMD CONTROLWARE
- T722 DATA 4RA722 DEMA/PFMD CONTROLWARE
- T462 DATA 4RA462 7255 ADAPTOR CONTROLWARE
- T422 DATA 4RH422 CONTROL MODULE I CONTROLWARE
- T424 DATA 4RH424 CONTROL MODULE II CONTROLWARE
- T464 DATA 4RA464 7165 CONTROLWARE
- QUAL *
- LOC *O
- TDAI INDEX
- INDEX AIDI,0
- INDEX AIDJ,0
- INDEX AIDM,0
- INDEX AIDK,0
- INDEX AIDL,0
- INDEX AIDQ,0
- INDEX AIDR,0
- INDEX AIDD,/CNTL/T462
- INDEX AIDG,/CNTL/T462
- INDEX AIDB,/CNTL/T722
- INDEX AIDC,/CNTL/T464
- INDEX AIDX,/CNTL/T401
- INDEX AIDY,/CNTL/T401
- INDEX AIDZ,/CNTL/T401
- INDEX AIDA,/CNTL/T401
- INDEX AIDS
- CDD SPACE 4,10
- ** CDD - CONVERT TWO DIGITS TO DECIMAL DISPLAY CODE.
- *
- * ENTRY (A) = NUMBER TO CONVERT.
- *
- * EXIT (A) = DISPLAY CODE VALUE.
- *
- * USES T0 - T1.
- CDD2 ADN 10D+1R0
- SHN 14 POSITION UNITS
- ADD T0
- SHN 6
- CDD SUBR ENTRY/EXIT
- STD T1 SAVE NUMBER
- LDN 1R0 PRESET TENS
- STD T0
- CDD1 LDD T1 COUNT 10
- SBN 10D
- MJN CDD2 IF CONVERSION COMPLETE
- STD T1
- AOD T0
- UJN CDD1 LOOP TO END OF CONVERSION
- COD SPACE 4,10
- ** COD - CONVERT TWO DIGITS TO OCTAL DISPLAY CODE.
- *
- * ENTRY (A) = NUMBER TO CONVERT.
- *
- * EXIT (A) = DISPLAY CODE VALUE.
- *
- * USES T0.
- COD SUBR ENTRY/EXIT
- STD T0
- SHN 3
- LMD T0
- SCN 70
- ADC 2R00
- UJN CODX RETURN
- BSS 0
- ERRNG 473-* OVERLAY OVERFLOWS PRU
- RSTR RESTORE INSTRUCTIONS
- TITLE 0SC - SWEEP CYCLING PROCESSOR.
- QUAL 0SC
- IDENT 0SC,SCPX
- *COMMENT 6DI - SWEEP CYCLING PROCESSOR.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- 0SC SPACE 4,10
- *** 0SC - SWEEP CYCLING PROCESSOR.
- * R. M. DANISCH. 87/01/01.
- 0SC SPACE 4,10
- *** *0SC* IS CALLED BY *1MV* TO EXECUTE THE NEXT SWEEP CYCLING
- * SEEK SEQUENCE FOR A SPECIFIED MASS STORAGE DEVICE. THE SEEK
- * SEQUENCE WILL BE EXECUTED FOR EACH PHYSICAL UNIT OF A
- * MULTI-UNIT DEVICE. WORD *SCLL* OF THE MST ENTRY CONTAINS THE
- * CYLINDER NUMBER USED FOR THE LAST SEEK IN THE PREVIOUS
- * SEQUENCE.
- 0SC SPACE 4,10
- *** ENTRY CONDITIONS.
- *
- *
- * (IR+2) = EST ORDINAL.
- 0SC SPACE 4,10
- * DIRECT CELL ASSIGNMENTS.
- CN EQU 20 - 24 CM WORD BUFFER
- AB EQU 25 - 31 CM WORD BUFFER
- SU EQU 32 SINGLE UNIT SECTOR LIMIT
- SC EQU 33 SEEK COUNT
- SI EQU 34 SEEK INCREMENT
- TI EQU 35 *TDVP* TABLE INDEX
- MS EQU 36 MST ENTRY ADDRESS / 10B
- 0SC SPACE 4,10
- * REDEFINE INSTRUCTIONS FOR LOCATION FREE EXECUTION.
- RIREL
- SCP SPACE 4,10
- ORG 5
- ** SCP - SWEEP CYCLING PROCESSOR.
- SCP SUBR ENTRY/EXIT
- * PRESET *0SC*.
- LDD IR+2
- STD T5
- SETMS PIO,(NS)
- LDD CM+4 SAVE MST ENTRY ADDRESS
- STD MS
- SHN 3
- ADN MDGL READ SINGLE UNIT SECTOR LIMIT
- CRD AB
- ADK SCLL-MDGL READ SWEEP CYCLING CONTROL WORD
- CRD CN
- LDD AB+1 SET SINGLE UNIT SECTOR LIMIT
- LPC 3777
- STD SU
- LDD LA INITIALIZE *TDVP* TABLE INDEX
- SBN 5
- STD TI
- SCP1 LDN 5 ADVANCE TO NEXT TABLE ENTRY
- RAD TI
- SBD LA
- LMC TDVPL
- ZJP SCPX IF SWEEP CYCLING NOT SUPPORTED ON DEVICE
- LDM. TDVP,TI
- LMD CM+3
- NJN SCP1 IF NOT DEVICE TYPE MATCH
- STD T7
- LDC SCP9 DISABLE ERROR PROCESSING
- ADD LA
- STM. ERRA
- LDD HN AVOID DATA TRANSFER
- STM. DSTB
- ERRNZ LJMI-100 CODE DEPENDS ON VALUE
- * POSITION TO STARTING CYLINDER.
- SCP2 LDN 0 CAUSE IMMEDIATE EXIT IF ERROR ON 1ST SEEK
- STD SC
- LDN SCP4 AVOID DATA TRANSFER
- ADD LA
- STM. DSTB+1
- LDD CN
- ADN 1
- LMM. TDVP+1,TI
- ZJN SCP3 IF PRIOR SEQUENCE ENDED ON LAST CYLINDER
- LDD CN SET INITIAL POSITION
- SHN 1 CONVERT CYLINDER TO LOGICAL TRACK
- SCP3 STD T6
- * LDC BFMS ISSUE READ REQUEST FOR SEEK EXECUTION
- RJM. RDS CALL DRIVER TO ISSUE SEEK
- SCP4 DELAY 8D*17D DELAY FOR ONE DISK REVOLUTION
- * ISSUE SEEK SEQUENCE.
- LDC SCP8 AVOID DATA TRANSFER
- ADD LA
- STM. DSTB+1
- LDM. TDVP+2,TI SET SMALL SEEK COUNT
- STD SC
- LDM. TDVP+3,TI SET SMALL SEEK INCREMENT
- SCP5 STD SI
- SCP6 LDD SI ADVANCE POSITION BY SEEK INCREMENT
- SHN 1
- RAD T6
- SHN -1
- SBM. TDVP+1,TI
- MJN SCP7 IF NOT BEYOND END OF DEVICE
- LDN 0 PERFORM ONLY ONE SEEK AT END OF DEVICE
- STD SC
- LDM. TDVP+1,TI SEEK TO LAST CYLINDER
- SBN 1
- SHN 1
- STD T6
- * LDC BFMS ISSUE READ REQUEST WITH NO DATA TRANSFER
- SCP7 RJM. RDS CALL DRIVER TO ISSUE SEEK
- SCP8 DELAY 8D*17D DELAY FOR ONE DISK REVOLUTION
- SCP9 SOD SC DECREMENT SEEK COUNT
- MJN SCP10 IF POSITIONING COMPLETE
- NJN SCP6 IF SMALL SEEK SEQUENCE INCOMPLETE
- LDM. TDVP+4,TI SET MAJOR POSITION INCREMENT
- UJN SCP5 CALCULATE NEXT SEEK ADDRESS
- * RELEASE THE CURRENT DRIVE AND CHECK FOR ANOTHER (MULTI-UNIT).
- SCP10 ENDMS
- LDD SU ADVANCE TO NEXT UNIT
- RAD T7
- SBM. SLM
- MJP SCP2 IF MORE UNITS TO PROCESS
- * UPDATE THE SWEEP CYCLING CONTROL WORD IN THE MST ENTRY.
- LDD T6 STORE FINAL POSITION IN *SCLL*
- SHN -1
- STD CN
- LDK RTCL STORE NEW TIME STAMP IN *SCLL*
- CRD CM
- LDD CM+1
- STD CN+1
- LDD MS UPDATE *SCLL*
- SHN 3
- ADN SCLL
- CWD CN
- LJM SCPX RETURN
- TDVP SPACE 4,10
- ** TDVP - TABLE OF DEVICE PARAMETERS.
- TDVP BSS 0
- CON 2RDB DEVICE TYPE *DB*
- CON CYUNDB NUMBER OF CYLINDERS ON DEVICE
- CON 3 NUMBER OF SMALL INCREMENT SEEKS
- CON 12D SIZE OF SMALL INCREMENT SEEK
- CON 93D SIZE OF LARGE INCREMENT SEEK
- CON 2RDD DEVICE TYPE *DD*
- CON CYUNDD NUMBER OF CYLINDERS ON DEVICE
- CON 4 NUMBER OF SMALL INCREMENT SEEKS
- CON 13D SIZE OF SMALL INCREMENT SEEK
- CON 50D SIZE OF LARGE INCREMENT SEEK
- CON 2RDG DEVICE TYPE *DG*
- CON CYUNDG NUMBER OF CYLINDERS ON DEVICE
- CON 6 NUMBER OF SMALL INCREMENT SEEKS
- CON 16D SIZE OF SMALL INCREMENT SEEK
- CON 80D SIZE OF LARGE INCREMENT SEEK
- CON 2RDM DEVICE TYPE *DM*
- CON CYUNDM NUMBER OF CYLINDERS ON DEVICE
- CON 3 NUMBER OF SMALL INCREMENT SEEKS
- CON 12D SIZE OF SMALL INCREMENT SEEK
- CON 93D SIZE OF LARGE INCREMENT SEEK
- CON 2RDQ DEVICE TYPE *DQ*
- CON CYUNDQ NUMBER OF CYLINDERS ON DEVICE
- CON 3 NUMBER OF SMALL INCREMENT SEEKS
- CON 12D SIZE OF SMALL INCREMENT SEEK
- CON 93D SIZE OF LARGE INCREMENT SEEK
- TDVPL BSS 0 LWA+1 OF TABLE
- 0SC SPACE 4
- OVERFLOW 5,ZSCL *0SC* OVERFLOWS PRU
- TITLE 0SD - SPIN UP/DOWN ISMD DRIVES.
- QUAL 0SD
- IDENT 0SD,PRSX "HN" SPIN UP/DOWN MS DRIVES.
- *COMMENT 6DI - SPIN UP/DOWN MS DRIVES.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- SPACE 4,10
- *** 0SD - SPIN UP/DOWN MASS STORAGE DRIVES.
- * K. F. REHM. 83/06/16.
- SPACE 4,10
- *** *0SD* IS USED TO SPINUP OR SPINDOWN THOSE MASS STORAGE
- * DEVICES THAT SUPPORT SAID CAPABILITY. FOR ISMD TYPE
- * DEVICES, THE DRIVER IS MODIFIED TO ISSUE A SPINUP OR
- * SPINDOWN FUNCTION. FOR BUFFERED DEVICES, A FLAG IS
- * SET IN THE BUFFERED I/O PHYSICAL UNIT TABLE TO BE
- * PROCESSED BY DEVICE SPECIFIC DRIVERS.
- SPACE 4,10
- ** COMMON DECKS.
- *CALL COMSHIO
- SPACE 4,10
- * REDEFINE INSTRUCTIONS FOR LOCATION FREE EXECUTION.
- RIREL REDEFINE INSTRUCTIONS
- PRS SPACE 4,10
- ** PRS - PRESET SPINUP/DOWN PROCESSOR.
- *
- * EXIT (A) = PROCESSOR ENTRY ADDRESS.
- ORG 5
- PRS SUBR ENTRY/EXIT
- LDD LA
- RAM PRDC
- LDN SUE RETURN SPINUP/SPINDOWN PROCESSOR ADDRESS
- ADD LA
- UJN PRSX EXIT
- SUE SPACE 4,10
- ** SUE - SPIN UP/DOWN AN ISD DRIVE.
- *
- * ENTRY ((LA)-1) = EST ORDINAL OF EQUIPMENT TO SPIN UP/DOWN.
- * ((LA)-2) = 7/0,1/SF,4/0, WHERE
- * SF = 0, IF TO SPIN UP EQUIPMENT.
- * = 1, IF TO SPIN DOWN EQUIPMENT.
- *
- * EXIT ((LA)-1) = UNCHANGED.
- * ((LA)-2) = UNCHANGED.
- *
- * USES CM - CM+4.
- *
- * CALLS ANU, PRD, WDS.
- *
- * MACROS MONITOR.
- SUE4 RJM ANU ADVANCE TO THE NEXT PHYSICAL UNIT
- NJN SUE1 IF MORE UNITS TO SPIN UP
- SUE SUBR ENTRY/EXIT
- RJM PRD PRESET DRIVER
- ZJN SUEX IF NOT AN ISD DRIVE
- SUE1 LDN 0
- STM CGSA
- LDN CM+1
- RJM. WDS
- LPN 17
- LMN NRDE
- NJN SUE4 IF HARDWARE FAILURE
- STD CM CLEAR FLASHING *MS2W* MESSAGE
- LDD CP
- ADK MS2W
- CWD CM
- LDM -2
- NJN SUE4 IF SPINDOWN REQUEST
- SUE2 LDD MA
- CWD T4
- MONITOR LDAM
- LDD MA
- ADN 1
- CRD CM
- LDN 2 IGNORE *DRIVE BUSY* GENERAL STATUS
- STM CGSA
- LDM -2
- ZJN SUE3 IF SPINUP REQUEST
- LDN FCSD&FCSU SET SPINDOWN
- SUE3 LMK FCSU SET SPINUP
- LJM. WDS4 ISSUE SPINUP/DOWN FUNCTION
- ANU SPACE 4,10
- ** ANU - ADVANCE TO NEXT PHYSICAL UNIT.
- *
- * *ANU* WILL DELAY AT LEAST 10 MSEC TO AVOID POWER FLUCTUATIONS
- * WHEN MORE THAN ONE UNIT IS TO BE SPUN UP/DOWN.
- *
- * ENTRY (T6) = NUMBER OF UNITS REMAINING TO BE SPUN UP/DOWN.
- *
- * EXIT (A) .NE. 0, IF NEXT UNIT EXISTS.
- *
- * USES CM.
- *
- * MACROS DELAY, ENDMS.
- ANU2 ENDMS
- * LDN 0 (A) = 0 IS *ENDMS* EXIT CONDITION
- ANU SUBR ENTRY/EXIT
- LDC 0 (SINGLE UNIT SECTOR LIMIT)
- ANUA EQU *-1 SET BY *PRD*
- RAD T7
- SOD T6
- MJN ANU2 IF NO MORE UNITS IN EQUIPMENT
- DELAY 10D*8D DELAY 10 MILLISECONDS
- PAUSE ST
- LDN 1
- UJN ANUX EXIT
- CGS SPACE 4,10
- ** CGS - CHECK GENERAL STATUS.
- *
- * *CGS* TRAPS ALL GENERAL STATUS FUNCTIONS ISSUED BY *6DI* TO
- * THE CONTROLLER AND RETURNS TO CALLER IF EITHER A *0000*
- * (OPERATION SUCCESSFUL) OR *0002* (DRIVE BUSY) STATUS IS
- * ISSUED. THIS ALLOWS *0SD* TO CONTINUE SPINNING UP/DOWN
- * OTHER DRIVES WITHOUT HAVING TO WAIT IN *DSWM* PROCESSING
- * UNTIL THE CURRENT DRIVE FINISHES SPINNING UP/DOWN.
- *
- * ENTRY (A) = GENERAL STATUS.
- *
- * EXIT TO *SUE4* IF SPINUP AND NON-ERROR GENERAL STATUS.
- * TO *SUE2* IF SPINDOWN AND NON-ERROR GENERAL STATUS.
- * TO *LDA1* IF ERROR GENERAL STATUS.
- CGS BSS 0 ENTRY
- NJN CGS2 IF NOT *0000* GENERAL STATUS
- CGS1 LJM. 0,CM RETURN TO CALLER
- CGS2 STD CM+3 SAVE STATUS
- LMC 0
- * LMC 2 (IGNORE *DRIVE BUSY* GENERAL STATUS)
- CGSA EQU *-1
- ZJN CGS1 IF *DRIVE BUSY*
- SHN 21-13
- PJN CGS3 IF NO ERROR
- LDN 0
- STM CGSA
- CGS3 LDD CM+3 RESTORE STATUS
- LJM. LDA3 PROCESS STATUS
- PRD SPACE 4,10
- ** PRD - PRESET DRIVER.
- *
- * EXIT (A) = 0 IF DEVICE NOT CANDIDATE FOR SPINUP/SPINDOWN.
- * (T5) = EST ORDINAL.
- * (T6) = NUMBER OF UNITS - 1 IN EQUIPMENT.
- *
- * USES T6, T7, CM - CM+4.
- *
- * MACROS SETMS, SFA.
- PRD6 LDM -2 SET FLAG VALUE
- SHN -3
- NJN PRD7 IF SPINDOWN REQUEST
- LDN 4
- ERRNZ SPDF+1-SPUF CODE DEPENDS ON VALUE
- PRD7 LMN 1
- ERRNZ DUNF+1-SPDF CODE DEPENDS ON VALUE
- STM PRDA+4
- LDC BIOL GET POINTER TO BUFFERED I/O TABLES
- CRD CM
- LDD CM+1 FETCH *PUT* TABLE POINTER WORD
- SHN 14
- LMD CM+2
- ADN PUTP
- CRD CM
- LDD CM+4 SET FWA OF *UNCT* WORD IN *PUT*
- ADK UNCT
- STM PRDB
- SHN -14
- ADD CM+3
- LPN 77 CLEAR FLAGS
- LMC ADCI
- STM PRDB-1
- LDD CM NUMBER OF ENTRIES IN TABLE
- STD T7
- PRD8 SHN PUTLS READ UNIT DESCRIPTOR WORD
- ADC 0
- PRDB EQU *-1
- CRD CM
- STD CM+4 SAVE ADDRESS FOR MONITOR CALL
- SHN -14
- STD CM+3
- LDD CM+1 CHECK EST ORDINAL
- LMD T5
- NJN PRD9 IF NOT REQUESTED DEVICE
- LDN 1
- STD CM+1
- LDD MA STORE *UTEM* REQUEST IN MESSAGE BUFFER
- CWM. PRDA,CM+1
- PRDC EQU *-1
- MONITOR UTEM SET FLAG FOR BUFFERED DEVICE DRIVER
- SOD T6
- MJN PRD10 IF NO MORE UNITS
- PRD9 SOD T7
- NJN PRD8 IF NOT END OF *PUT*
- PRD10 LDN 0 DEVICE NOT CANDIDATE FOR SPINUP/SPINDOWN
- PRD SUBR ENTRY/EXIT
- LDM -1 SET EQUIPMENT
- STD T5
- SFA EST GET EST ENTRY
- ADK EQDE
- CRD CM
- LDD CM
- SHN 21-13
- PJN PRD10 IF NOT A MASS STORAGE DEVICE
- LDC TPRD-1 CHECK DEVICE TYPE
- ADD LA
- STD T1
- PRD1 AOD T1
- LDI T1
- ZJN PRD10 IF NOT CANDIDATE FOR SPINUP/SPINDOWN
- LMD CM+3
- NJN PRD1 IF DEVICE TYPE DOES NOT MATCH
- PRD2 LDD CM+4
- SHN 3
- ADN DDLL FETCH DEVICE UNIT COUNT
- CRD T6
- SBN DDLL-DILL GET DEVICE DEPENDENT PARAMETERS
- CRD T7
- LDD T6 CHECK FOR NULL EQUIPMENT
- LPC 2007
- STD T6 SAVE UNIT COUNT
- SHN 21-12
- MJP PRD10 IF NULL EQUIPMENT
- LDD T7+3
- SHN 21-12
- MJP PRD6 IF BUFFERED DEVICE
- LDD CM+4
- SHN 3
- ADN MDGL GET SINGLE UNIT SECTOR LIMIT
- CRD CM
- LDD CM+1 SECTOR LIMIT
- LPC 3777
- STM ANUA
- SETMS PIO,(AD,DE,DF,NR,NS)
- LDN 0
- STD T7
- LDD HN
- ERRNZ LJMI-100B CODE USES *HN* TO CREATE *LJM*
- STM. DSTA
- STM. WDS2 MODIFY ROUTINES *WDS* AND *DST*
- LDC CGS
- ADD LA
- STM. DSTA+1
- LDM -2
- ZJN PRD5 IF SPINUP REQUEST
- LDK SUE2&SUE4
- PRD5 LMK SUE4
- ADD LA
- STM. WDS2+1
- LDC LDCI
- STM. WDSD
- LDK SUE4
- ADD LA
- STM. WDSD+1
- LDN 1
- STM. FNCA
- LJM PRDX EXIT
- PRDA VFD 1/0,5/PILL-UNCT,6/3,6/DUNF,42/0 *UTEM* REQUEST
- TPRD BSS 0 CANDIDATE DEVICES FOR SPINUP/SPINDOWN
- CON 2RDD 834
- CON 2RDG 836
- CON 2RDF 887 (4KB SECTOR)
- CON 2RDH 887 (16KB SECTOR)
- CON 0
- SPACE 4,10
- ERRNG 473-* OVERLAY OVERFLOWS PRU
- RSTR RESTORE INSTRUCTIONS
- SPACE 4
- END
cdc/nos2.source/opl871/6di.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator