cdc:nos2.source:opl871:1hy
Table of Contents
1HY
Table Of Contents
- [00002] 1HY - HYDRA (887) DRIVER.
- [00009] HYDRA (887) DRIVER.
- [00168] CONSTANTS AND DEFINITIONS.
- [00437] MACROS.
- [00441] TBLM - CREATE TABLE ENTRY MACRO.
- [00464] CBTE - CONTROL BUFFER TABLE ENTRY.
- [00479] CCTE - CHANNEL CONTROL TABLE ENTRY.
- [00494] CHTE - CHANNEL TABLE ENTRY.
- [00509] EMBE - ERROR MESSAGE TABLE ENTRY.
- [00524] EXPE - EXCHANGE PACKAGE ADDRESS ENTRY.
- [00539] FTTE - FUNCTION TIMEOUT TABLE ENTRY.
- [00554] PUTE - PHYSICAL UNIT TABLE ENTRY.
- [00568] MAIN PROGRAM.
- [00570] HYD - MAIN PROGRAM.
- [00615] READ / WRITE PROCESSING.
- [00617] PIO - READ / WRITE PROCESSING.
- [00706] DOCUMENT UNIT CHARACTERISTICS.
- [00708] DUC - DAYFILE UNIT CHARACTERISTICS.
- [00758] LOG *IHD* ERRORS.
- [00760] LGE - LOG *IHD* ERRORS.
- [00874] LOAD OPERATING PARAMETERS.
- [00876] LOP - LOAD OPERATING PARAMETERS.
- [00917] DIAGNOSTIC PROCESSING.
- [00919] RND - RUN DIAGNOSTICS.
- [00985] SPIN-DOWN PROCESSING.
- [00987] SPD - SPIN DOWN DRIVE.
- [01003] SPIN-UP PROCESSING.
- [01005] SPU - SPIN UP DRIVE.
- [01075] SELECTIVE RESET PROCESSING.
- [01077] SRS - PROCESS SELECTIVE RESET.
- [01109] SUBROUTINES.
- [01111] ACE - ANALYZE CHANNEL ERROR.
- [01136] AME - ATTEMPT MONITOR EXCHANGE.
- [01170] AMR - ACCESS MAINTENANCE REGISTER.
- [01211] ATT - PROCESS ATTENTION.
- [01251] CCR - CHECK FOR CHANNEL REQUEST.
- [01293] CFE - CHECK FOR I/O ERROR.
- [01322] CFR - CHECK *PUT* FOR REQUEST.
- [01412] CMC - CHECK MONITOR COMPLETE.
- [01439] CMP - COMPLETE PROCESSING.
- [01493] COS - CHECK OPERATIONAL STATUS.
- [01566] CSD - CONNECT TO SLAVE DEVICE.
- [01639] CSR - CLEAR SPECIAL REQUEST.
- [01652] CTO - CHECK TIMEOUT.
- [01679] DCB - DELINK CONTROL BUFFERS.
- [01747] EIO - ENTER I/O REQUEST QUEUE.
- [01783] ERR - PROCESS ERRORS.
- [02085] FCN - ISSUE FUNCTION.
- [02113] GDS - GET DEVICE STATUS.
- [02129] GSS - GET SLAVE STATUS.
- [02174] IBM - ISSUE BML MESSAGE.
- [02264] IEM - ISSUE BML ERROR MESSAGE.
- [02288] IIO - INITIATE I/O.
- [02347] IMR - INITIATE MONITOR REQUEST.
- [02374] IOM - ISSUE OPERATOR MESSAGE.
- [02406] ISF - ISSUE *SEQM* FUNCTION.
- [02434] ISR - IDENTIFY SPECIAL REQUEST.
- [02472] PEF - PROCESS ERROR FLAGS.
- [02547] RBD - READ BUFFERED DISK.
- [02569] RCR - RESET CHANNEL REGISTERS.
- [02584] RCS - REMOVE CHANNEL FROM SYSTEM USE.
- [02612] RCT - READ CHANNEL TABLE.
- [02628] RLB - READ LINKAGE BITS.
- [02671] R1B - READ ONE BYTE.
- [02690] SAP - SELECT ADAPTOR PORT.
- [02705] SCD - STORE *CPD* DATA.
- [02727] SEC - SET ERROR CODE.
- [02761] SFR - SEARCH FOR CONSECUTIVE REQUEST.
- [02837] SLB - SET LINKAGE BITS.
- [02890] SRF - SET DRIVER RELOAD FLAG.
- [02922] SSD - SELECT SLAVE DEVICE.
- [02967] STF - REQUEST TRACK FLAW.
- [03034] STO - SET TIMEOUT.
- [03063] SUA - SET UEM ADDRESS.
- [03093] SUI - SET UNIT INTERLOCK.
- [03122] TMSE - TABLE OF MASS STORAGE ERROR CODES.
- [03144] TMSK - TABLE OF UNIT MASKS.
- [03162] UEC - UPDATE MST ERROR COUNT.
- [03188] UHD - UNPACK HEX DATA.
- [03249] WBD - WRITE BUFFERED DISK.
- [03272] WCB - WRITE COMMAND BLOCK.
- [03318] WFC - WRITE FUNCTION WORD AND CLEAR.
- [03331] WFW - WRITE FUNCTION WORD.
- [03353] WLB - WRITE LINKAGE BITS.
- [03395] WMC - WAIT MAINTENANCE CHANNEL EMPTY.
- [03432] WTC - WAIT TRANSMISSION COMPLETE.
- [03461] WTR - WRITE *T* REGISTER.
- [03495] MISCELLANEOUS.
- [03537] PRESET ROUTINES.
- [03539] CCP - CHECK CALLING PROGRAM.
- [03565] IST - INITIALIZE DEVICE STATE TABLE.
- [03624] MCI - MODIFY CHANNEL INSTRUCTIONS.
- [03709] PRS - PRESET *1HY* FOR PROCESSING.
- [03784] SCT - SET CHANNEL TABLE ENTRY ADDRESSES.
- [03829] SPA - SET PP EXCHANGE PACKAGE ADDRESSES.
- [03863] STA - SET TABLE ADDRESSES.
Source Code
- 1HY.txt
- IDENT 1HY,HYDD
- TITLE 1HY - HYDRA (887) DRIVER.
- CIPPU ,S
- BASE M
- SST
- *COMMENT 1HY - HYDRA (887) DRIVER.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- SPACE 4,10
- *** 1HY - HYDRA (887) DRIVER.
- *
- * P. D. HAAS. 85/12/16.
- SPACE 4,10
- *** *1HY* IS THE DRIVER FOR THE 887 DISK STORAGE SUBSYSTEM.
- *
- * THE 887 DISK DRIVES ARE SUPPORTED AS BUFFERED I/O
- * DEVICES. REQUESTS THAT ARE PROCESSED BY *1HY* ARE
- * POSTED BY *CPUMTR* IN THE BUFFERED I/O TABLES IN *CMR*.
- * *1HY* INTERLOCKS UNITS, DELINKS BUFFERS, AND COMPLETES
- * SAID REQUESTS BY ISSUING APPROPRIATE *BIOM* FUNCTIONS.
- *
- * EACH COPY OF *1HY* WILL SUPPORT ONE CONCURRENT CHANNEL AND
- * IS THE SOLE DRIVER FOR ALL HYDRA DISKS ON THAT CHANNEL.
- * *1HY* MUST BE LOADED INTO A CONCURRENT PP, IN THE SAME
- * BANK AS THE CHANNEL IT IS TO SERVICE.
- *
- * *1HY* SCANS THROUGH THE *PUT* ENTRIES IN A CIRCULAR FASHION
- * LOOKING FOR REQUESTS TO PROCESS. ONCE A REQUEST IS FOUND,
- * *1HY* USES THE PHYSICAL DISK AND UEM ADDRESSES IN THE
- * CORRESPONDING *CBT* ENTRY TO DETERMINE THE ACTION TO BE
- * TAKEN. *1HY* WILL ATTEMPT TO PROCESS CONSECUTIVE REQUESTS
- * ON THE CURRENT UNIT UNTIL THE END OF THE UNIT I/O QUEUE,
- * OR A CONSECUTIVE REQUEST WAS NOT FOUND. AT THIS POINT
- * *1HY* WILL RESUME ITS SEARCH THROUGH THE *PUT* WITH THE
- * *PUT* ENTRY IMMEDIATELY FOLLOWING THE ONE JUST PROCESSED.
- SPACE 4,10
- *** CALL.
- *
- *T 18/ *1HY*, 6/ CP, 6/ CO, 18/, 7/ 1, 5/ CH
- *
- * CP CONTROL POINT NUMBER (MUST BE SYSTEM CP).
- * CO CHANNEL TABLE ORDINAL (SET BY *CPUMTR*).
- * CH CHANNEL NUMBER BEING SERVICED BY THIS PP.
- SPACE 4,10
- *** DAYFILE MESSAGES.
- *
- * 1HY - UNAUTHORIZED CALL.
- *
- * *1HY* WILL ISSUE THIS MESSAGE AND ABORT IF
- * NOT ASSIGNED TO THE SYSTEM CONTROL POINT.
- SPACE 4,10
- *** ERRLOG MESSAGES.
- *
- * EQORD,TKNNNN, MEDIA DEFECT ENCOUNTERED.
- *
- * A MEDIA DEFECT HAS BEEN ENCOUNTERED ON EQUIPMENT WITH EST
- * ORDINAL ORD, LOGICAL TRACK NNNN. A REQUEST HAS BEEN ISSUED
- * TO AUTOMATICALLY FLAW THIS TRACK WHEN IT IS DROPPED.
- SPACE 4,10
- *** OPERATOR MESSAGES.
- *
- * EQORD, DIAGNOSTICS RUNNING.
- *
- * EQORD, SPIN UP PENDING.
- SPACE 4,10
- *** ORGANIZATION OF THE 887 (MEASUREMENTS IN DECIMAL).
- *
- * EQUIPMENT TYPE *DF*
- *
- * UNITS/LOGICAL DEVICE (N) 1 - 3
- *
- * PHYSICAL ORGANIZATION:
- *
- * WORDS/PHYSICAL SECTOR 512
- * PHYSICAL SECTORS/TRACK 38
- * PHYSICAL TRACKS/CYLINDER 4
- * CYLINDERS/DEVICE 884 * N
- * WORDS/DEVICE 68,796,416 * N
- *
- * LOGICAL ORGANIZATION:
- *
- * WORDS/LOGICAL SECTOR 64
- * LOGICAL SECTORS/PHYSICAL SECTOR 8
- * LOGICAL SECTORS/LOGICAL TRACK 608 * N
- * LOGICAL TRACKS/CYLINDER 2
- * LOGICAL TRACKS/DEVICE 1768
- *
- * MAXIMUM SUSTAINED DATA RATE 983 K WORDS/SECOND
- *
- *
- * EQUIPMENT TYPE *DH*
- *
- * UNITS/LOGICAL DEVICE (N) 1 - 2
- *
- * PHYSICAL ORGANIZATION:
- *
- * WORDS/PHYSICAL SECTOR 2048
- * PHYSICAL SECTORS/TRACK 11
- * PHYSICAL TRACKS/CYLINDER 4
- * CYLINDERS/DEVICE 884 * N
- * WORDS/DEVICE 79,659,008 * N
- *
- * LOGICAL ORGANIZATION:
- *
- * WORDS/LOGICAL SECTOR 64
- * LOGICAL SECTORS/PHYSICAL SECTOR 32
- * LOGICAL SECTORS/LOGICAL TRACK 704 * N
- * LOGICAL TRACKS/CYLINDER 2
- * LOGICAL TRACKS/DEVICE 1768
- *
- * MAXIMUM SUSTAINED DATA RATE 1122 K WORDS/SECOND
- SPACE 4,10
- *** DISK ERROR PROCESSING DONE BY *1HY*.
- *
- * FOR EACH REQUEST THAT IS PROCESSED, *1HY* KEEPS A COUNTER
- * WHICH CONTAINS THE NUMBER OF RETRIES THAT HAVE BEEN
- * ATTEMPTED WHILE TRYING TO SUCCESSFULLY PROCESS THE REQUEST.
- * WHEN A REQUEST IS COMPLETED *1HY* CHECKS TO SEE IF THE
- * ERROR COUNT IS NON-ZERO. *1HY* WILL LOG A BML MESSAGE
- * AND INCREMENT THE RECOVERED ERROR COUNT IN THE MST IF THE
- * ERROR COUNT IS NON-ZERO.
- *
- * IF THE ERROR COUNT REACHES *MERC* BEFORE THE REQUEST IS
- * SUCCESSFULLY COMPLETED, *1HY* WILL SET THE ERROR FLAGS IN
- * THE *CBT*, LOG A FATAL ERROR IN THE BML, AND INCREMENT THE
- * UNRECOVERED ERROR COUNT IN THE MST.
- SPACE 4,10
- *** SPECIAL PROGRAMMING NOTES.
- *
- * THE FOLLOWING IS A LIST OF SPECIAL NOTES THAT SHOULD BE
- * READ AND UNDERSTOOD BEFORE ANY MODIFICATIONS ARE MADE TO
- * THIS PROGRAM.
- *
- *
- * 1) WHERE POSSIBLE, *CMR* POINTERS HAVE BEEN PLUGGED BY THE
- * PRESET ROUTINE TO IMPROVE THE EXECUTION SPEED OF THE
- * PROGRAM AND TO MINIMIZE THE AMOUNT OF CODE.
- *
- * 2) THIS PROGRAM EXCHANGES *CPUMTR* WITHOUT WAITING FOR
- * THE REQUEST TO COMPLETE. ROUTINE *CMC* SHOULD BE CALLED
- * IF THE *MONITOR* MACRO IS TO BE USED WHILE THERE IS A
- * POSSIBILITY OF AN OUTSTANDING MONITOR REQUEST.
- *
- * 3) THE DEVICE STATE TABLE IS BUILT AT LOCATION *EXR* IN
- * PP RESIDENT, THEREFORE IT IS NOT POSSIBLE TO USE THE
- * *EXR* AND *SMS* ROUTINES.
- SPACE 4,10
- ** COMMON DECKS.
- *CALL COMPMAC
- RICHI$ EQU 1 SELECT DEFERRED INSTRUCTION MODIFICATION
- *CALL COMPCHI
- *CALL COMSCPS
- QUAL$S SET 0 REMOVE QUALIFICATION OF COMSDFS CONSTANTS
- *CALL COMSDFS
- LIST X
- *CALL COMSHIO
- LIST *
- QUAL IOU
- *CALL COMSIOU
- QUAL *
- *CALL COMSLSD
- *CALL COMSMSC
- *CALL COMSMSP
- *CALL COMSPIM
- *CALL COMS1DS
- TITLE CONSTANTS AND DEFINITIONS.
- SPACE 4,10
- **** DIRECT CELL ALLOCATION.
- NR EQU 15 - 21 NEXT REQUEST
- WB EQU 22 - 26 CM WORD BUFFER
- * THE NEXT FIVE LOCATIONS ARE ORDER DEPENDENT.
- PB EQU 27 PREVIOUS CONTROL BUFFER ORDINAL
- CB EQU 30 CURRENT CONTROL BUFFER ORDINAL
- NB EQU 31 NEXT CONTROL BUFFER ORDINAL
- EO EQU 32 EST ORDINAL
- UN EQU 33 UNIT NUMBER
- UA EQU 34 - 35 UEM ADDRESS / 100
- RC EQU 36 REQUEST COUNT
- DT EQU 37 DEVICE TYPE
- SS EQU 40 SLAVE STATUS FLAGS
- PO EQU 41 CURRENT *PUT* ORDINAL
- TO EQU 42 COMMAND TIMEOUT
- SF EQU 43 DEVICE SELECTED FLAG
- UC EQU 44 UNIT ACTIVITY COUNT
- ERRNZ SF+1-UC CODE DEPENDS ON VALUE
- RW EQU 45 READ / WRITE FLAG
- PA EQU 46 PROCESSOR ADDRESS
- DI EQU 47 DEVICE INDEX
- CR EQU 57 CHANNEL RESERVED STATUS
- ML EQU 60 MESSAGE LENGTH
- FC EQU 61 FAULT CODE
- CD EQU 62 CHANNEL DATA
- RF EQU 63 SPECIAL REQUEST FLAGS
- ****
- SPACE 4,10
- ** ISI ADAPTOR FUNCTION CODES.
- FCMC EQU 0#000 MASTER CLEAR
- FCRC EQU 0#100 READ CONTROL REGISTER
- FCWC EQU 0#101 WRITE CONTROL REGISTER
- FCRM EQU 0#200 READ MASK REGISTER
- FCWM EQU 0#201 WRITE MASK REGISTER
- FCRE EQU 0#300 READ ERROR STATUS
- FCRO EQU 0#400 READ OPERATIONAL STATUS
- FCIS EQU 0#500 REQUEST IDLE STATUS
- FCRT EQU 0#600 READ *T* REGISTERS
- FCWT EQU 0#601 WRITE *T* REGISTERS
- FCRS EQU 0#700 READ TEST SEED
- FCWS EQU 0#701 WRITE TEST SEED
- FCCH EQU 0#800 CLEAR SELECT HOLD
- FCSH EQU 0#801 SET SELECT HOLD
- FCCS EQU 0#900 CLEAR COMMAND SEQUENCE
- FCSS EQU 0#901 SET COMMAND SEQUENCE
- FCSO EQU 0#A00 FORCE SYNC OUT
- FCPM EQU 0#B00 SET PP MODE
- FCCD EQU 0#C00 CLEAR DMA MODE
- FCSD EQU 0#C01 SET DMA MODE
- FCCE EQU 0#D00 CLEAR ECHO MODE
- FCSE EQU 0#D01 SET ECHO MODE
- FCCT EQU 0#E00 CLEAR *T* REGISTERS
- SPACE 4,10
- ** FUNCTION WORD OPTION FLAGS.
- FOBS EQU 1S8 BUS SLAVE (IHD) SELECT
- FONI EQU 1S9 NON-INTERLOCKED MODE
- FOTT EQU 1S10 TERMINATE I/O TRANSFER
- FOZI EQU 1S11 ZERO-FILL INHIBIT
- FOCA EQU 1S12 CLEAR ATTENTION
- FODE EQU 1S13 DATA EXCHANGE
- FOSR EQU 1S14 SELECTIVE RESET
- FOWR EQU 1S15 WRITE SELECT
- SPACE 4,10
- ** *IHD* FUNCTION WORDS.
- FWSB EQU 0#80 READ STATUS BLOCK
- FWDS EQU 0#90 READ DEVICE STATUS
- FWBS EQU FOBS BUS SLAVE (IHD) SELECT
- FWCA EQU FOCA CLEAR ATTENTION
- FWSN EQU FOCA+FOTT+0#D0 READ SERIAL NUMBER
- FWRL EQU FOCA+FOTT+0#FA READ REVISION LEVEL
- FWEP EQU FODE+FOCA+FOTT ERROR PROCESSING
- FWEL EQU FODE+FOCA+FOTT READ ERROR LOG
- FWER EQU FODE+FOCA+FOTT READ ERROR REGISTER
- FWRE EQU FODE+FOTT+FONI+FOCA READ EXCHANGE
- FWSR EQU FOSR+FOCA SELECTIVE RESET
- FWCB EQU FOWR+FOCA WRITE COMMAND BLOCK
- FWWE EQU FOWR+FWRE+FOZI WRITE EXCHANGE
- SPACE 4,10
- ** *IHD* COMMAND CODES.
- CCRL EQU 0#01+1S15 READ ERROR LOG
- CCRI EQU 0#02+1S15 READ ERROR REGISTER IMAGE
- CCNO EQU 0#05+1S15 NO OPERATION
- CCSD EQU 0#12+1S15 SPIN-DOWN DRIVE
- CCSU EQU 0#13+1S15 SPIN-UP DRIVE
- CCOW EQU 0#23+1S15 INITIATE OPEN-ENDED WRITE
- CCOR EQU 0#35+1S15 INITIATE OPEN-ENDED READ
- CCLM EQU 0#53+1S15 LOAD OPERATING MODE PARAMETERS
- CCLD EQU 0#54+1S15 LOAD ATTENTION DELAY PARAMETERS
- CCD2 EQU 0#70+1S15 EXECUTE LEVEL 2 DIAGNOSTICS
- CCRT EQU 0#78+1S15 EXECUTE READ TEST
- CCWT EQU 0#79+1S15 EXECUTE WRITE TEST
- CCD1 EQU 0#7A+1S15 EXECUTE LEVEL 1 DIAGNOSTICS
- SPACE 4,10
- ** *IHD* COMMAND EXECUTION STATUS.
- ESUI EQU 00 *IHD* UNIT IDLE
- ESRD EQU 10 READ DATA AVAILABLE
- ESBS EQU 20 BUFFER SPACE AVAILABLE
- ESCB EQU 40 COMMAND BLOCK INDEPENDENT
- ESUA EQU 60 UNSOLICITED ATTENTION
- ESCC EQU 70 COMMAND COMPLETE
- SPACE 4,10
- ** *IHD* COMMAND BLOCK PARAMETER WORD VALUES.
- PWIT EQU 0#0000 INTEGRITY TEST
- PWWT EQU 0#0005 WRITE TEST
- PWRT EQU 0#0006 READ TEST
- PWADDF EQU 0#0401 ATTENTION DELAY (4KB SECTOR)
- PWADDH EQU 0#0101 ATTENTION DELAY (16KB SECTOR)
- PWOM EQU 0#3D02 OPERATING MODE
- SPACE 4,10
- ** MAINTENANCE REGISTER REQUEST CODE SYMBOLS.
- MR EQU /IOU/MR MAINTENANCE CHANNEL
- IOUC EQU /IOU/IOUC+/IOU/MRRD READ CONNECT CODE
- RMRF EQU /IOU/MRRD-/IOU/MRRD READ REGISTER
- WMRF EQU /IOU/MRWT-/IOU/MRRD WRITE REGISTER
- RFMR EQU RMRF*10000+/IOU/FMCR READ FAULT MASK REGISTER
- RCSR EQU RMRF*10000+/IOU/C0CR READ CHANNEL STATUS REGISTER
- WFMR EQU WMRF*10000+/IOU/FMCR WRITE FAULT MASK REGISTER
- SPACE 4,10
- ** FAULT ANALYSIS CODES.
- ECPE EQU 1 CHANNEL PARITY ERROR
- ECER EQU 4 CHANNEL DETECTED ERROR
- ECCM EQU 5 CHANNEL DETECTED CM ERROR
- ECIE EQU 6 ISI CHANNEL ERROR
- ECHF EQU 7 CHANNEL HUNG FULL
- ETAT EQU 10 ATTENTION TIMEOUT
- ETFN EQU 11 CHANNEL FUNCTION TIMEOUT
- EDPE EQU 14 DATA PARITY ERROR
- EDNR EQU 20 DEVICE NOT READY
- EOTC EQU 21 OVER TEMP CONDITION
- EIDT EQU 24 INCOMPLETE DATA TRANSFER
- EIRQ EQU 30 *IHD* FAILURE
- ECBN EQU 31 COMMAND BLOCK NUMBER
- EICU EQU 32 INCORRECT UNIT SELECTED
- ETSL EQU 33 SELECT TIMEOUT
- ESUF EQU 34 SPIN-UP FAILURE
- ESDF EQU 35 SPIN-DOWN FAILURE
- ETTC EQU 36 TRANSFER COMPLETE TIMEOUT
- EUES EQU 37 UNEXPECTED EXECUTION STATUS
- ETCB EQU 40 COMMAND BLOCK TIMEOUT
- EUDS EQU 41 UNEXPECTED DELAY STATUS
- ELOP EQU 42 LOAD OPERATING PARAMETERS FAILURE
- EDSA EQU 43 SELECT ACTIVE DROPPED
- ETTR EQU 44 *T* REGISTER EMPTY TIMEOUT
- EIOS EQU 45 I/O INITIATION ERROR
- EIOC EQU 46 I/O COMPLETE ERROR
- EDTF EQU 50 DIAGNOSTIC FAULT
- EDRA EQU 54 DRIVE RESERVED TO ALTERNATE ACCESS
- SPACE 4,10
- ** DEVICE STATE TABLE DEFINITIONS.
- LOC 0
- PUTO BSS 1 *PUT* ORDINAL
- CREG BSS 1 CONTROL REGISTER IMAGE
- ADDR BSS 1 PROCESSOR ADDRESS
- RADD BSS 1 RETURN ADDRESS
- ATTN BSS 1 ATTENTION RETURN
- EEST BSS 1 EXPECTED EXECUTION STATUS
- RWST BSS 1 READ / WRITE STATUS
- RQIN BSS 1 REQUEST QUEUE INDEX
- RQLN EQU 10 REQUEST QUEUE LENGTH
- IORQ BSS RQLN I/O REQUEST QUEUE
- CBCT BSS 1 CUMULATIVE BUFFER COUNT
- CYLN BSS 1 CYLINDER ON SEEK
- TKSN BSS 1 TRACK + SECTOR ON SEEK
- ERCT BSS 1 ERROR COUNT
- ELEN BSS 1 ERROR LOG ENTRY NUMBER
- ELRC BSS 1 ERROR LOG REPETITION COUNT
- EREN BSS 1 ERROR REGISTER ENTRY NUMBER
- SREQ BSS 1 SPECIAL REQUEST
- IPPS BSS 1 I/O PREPROCESSING STATUS
- LCMD BSS 1 LAST *IHD* COMMAND
- ESAD BSS 1 ERROR STEP ADDRESS
- DSTBE BSS 0 LENGTH OF STATE TABLE ENTRY
- LOC 0
- SPACE 4,15
- **** ASSEMBLY CONSTANTS.
- CH EQU 16 CHANNEL NUMBER
- MXND EQU 10*2 MAXIMUM NUMBER OF UNITS / DRIVER
- DSTB EQU EXR START OF DEVICE STATE TABLES
- DSTBL EQU DSTB+DSTBE*MXND LWA+1 OF DEVICE STATE TABLES
- OHYD MAX PPFW,DSTBL DRIVER ORIGIN
- * THE FOLLOWING SYMBOLS DEFINE LOCATIONS IN THE I/O
- * REQUEST QUEUE (IORQ) OF THE DEVICE STATE TABLE.
- * THESE LOCATIONS MAY BE USED ONLY DURING ERROR AND
- * SPECIAL REQUEST PROCESSING (NOT DURING I/O PROCESSING).
- ENAD EQU IORQ+RQLN-1 ERROR NEXT ADDRESS
- CACT EQU ENAD-1 CLEAR ATTENTION COUNT
- SIST EQU CACT-1 SYSTEM INTERVENTION STATUS
- MIST EQU SIST-1 MANUAL INTERVENTION STATUS
- GSST EQU MIST-1 GENERAL SLAVE STATUS
- IOST EQU GSST-1 READ WRITE STATUS
- ERAD EQU IOST-1 ERROR RETURN ADDRESS
- ERRNG ERAD-IORQ CODE DEPENDS ON VALUE
- * THE FOLLOWING VALUE IS USED AS A SHIFT COUNT
- * TO DETERMINE THE FUNCTION TIMEOUT DELAY (2**N).
- FTOS EQU 0 1 MILLISECOND
- ERRNG 8D-FTOS VALUE TOO LARGE
- .2 DECMIC FTOS+2
- FTOD EQU 370S".2" FUNCTION TIMEOUT DELAY
- DRFM EQU 1000 DIRECTION FLAG MASK
- ILFM EQU 4000 INTERLOCK FLAG MASK
- MERC EQU 7 ERROR PROCESSING RETRY COUNT
- CSRC EQU MERC/2+1 CHANNEL SWITCH RETRY COUNT
- FTRC EQU 3 FUNCTION TIMEOUT RETRY COUNT
- DSRC EQU 20D DEVICE SELECT RETRY COUNT
- ERLGL EQU 48D ERROR LOG LENGTH
- ERRGL EQU 48D ERROR REGISTER LENGTH
- SLSTL EQU 7 SLAVE STATUS BLOCK LENGTH
- DVSTL EQU 10 DEVICE STATUS BLOCK LENGTH
- STSBL EQU SLSTL+DVSTL COMBINED STATUS BLOCK LENGTH
- DBUFL MAX ERLGL,ERRGL DATA BUFFER LENGTH
- EBUFL EQU 5*10D ERROR MESSAGE BUFFER LENGTH
- ****
- SPACE 4,10
- * THE FOLLOWING SYMBOL DEFINITION CONTROLS WHICH (IF ANY)
- * OF THE DIAGNOSTICS ARE USED FOR DEVICE VERIFICATION.
- *CCVD EQU CCNO NO DIAGNOSTICS
- *CCVD EQU CCD1 LEVEL 1 DIAGNOSTICS
- *CCVD EQU CCD2 LEVEL 2 DIAGNOSTICS
- CCVD EQU CCD2 LEVEL 2 DIAGNOSTICS
- TITLE MACROS.
- SPACE 4,10
- ** MACRO DEFINITIONS.
- TBLM SPACE 4,10
- ** TBLM - CREATE TABLE ENTRY MACRO.
- *
- *NAM TBLM
- *
- * ENTRY NAM = TABLE NAME.
- *
- * EXIT NAM_E MACRO DEFINED.
- PURGMAC TBLM
- MACRO TBLM,NAM
- PURGMAC NAM_E
- NAM_E MACRO ADDR
- LOCAL A
- MACREF NAM_E
- NOREF A
- A EQU ADDR
- T_NAM RMT
- CON A
- RMT
- TBLM ENDM
- CBTE SPACE 4,10
- ** CBTE - CONTROL BUFFER TABLE ENTRY.
- *
- * THIS MACRO GENERATES AN ENTRY IN REMOTE LIST *TCBT*
- * THAT CONTAINS THE ADDRESS OF AN INSTRUCTION WHICH
- * REQUIRES THE FWA OF THE CONTROL BUFFER TABLE.
- *
- * CBTE ADDR
- *
- * ENTRY (ADDR) = ADDRESS OF INSTRUCTION.
- *
- * EXIT ADDRESS IS ADDED TO THE REMOTE BLOCK *TCBT*.
- CBT TBLM
- CCTE SPACE 4,10
- ** CCTE - CHANNEL CONTROL TABLE ENTRY.
- *
- * THIS MACRO GENERATES AN ENTRY IN REMOTE LIST *TCCT*
- * THAT CONTAINS THE ADDRESS OF AN INSTRUCTION WHICH
- * REQUIRES THE FWA OF THE CHANNEL CONTROL TABLE.
- *
- * CCTE ADDR
- *
- * ENTRY (ADDR) = ADDRESS OF INSTRUCTION.
- *
- * EXIT ADDRESS IS ADDED TO THE REMOTE BLOCK *TCCT*.
- CCT TBLM
- CHTE SPACE 4,10
- ** CHTE - CHANNEL TABLE ENTRY.
- *
- * THIS MACRO GENERATES AN ENTRY IN REMOTE LIST *TCHT*
- * THAT CONTAINS THE ADDRESS OF AN INSTRUCTION WHICH
- * REQUIRES THE FWA OF THE CHANNEL TABLE.
- *
- * CHTE ADDR
- *
- * ENTRY (ADDR) = ADDRESS OF INSTRUCTION.
- *
- * EXIT ADDRESS IS ADDED TO THE REMOTE BLOCK *TCHT*.
- CHT TBLM
- EMBE SPACE 4,10
- ** EMBE - ERROR MESSAGE TABLE ENTRY.
- *
- * THIS MACRO GENERATES AN ENTRY IN REMOTE LIST *TEMB*
- * THAT CONTAINS THE ADDRESS OF AN INSTRUCTION WHICH
- * REQUIRES THE FWA OF THE ERROR MESSAGE TABLE.
- *
- * EMBE ADDR
- *
- * ENTRY (ADDR) = ADDRESS OF INSTRUCTION.
- *
- * EXIT ADDRESS IS ADDED TO THE REMOTE BLOCK *TEMB*.
- EMB TBLM
- EXPE SPACE 4,10
- ** EXPE - EXCHANGE PACKAGE ADDRESS ENTRY.
- *
- * THIS MACRO GENERATES AN ENTRY IN REMOTE LIST *TEXP*
- * THAT CONTAINS THE ADDRESS OF AN INSTRUCTION WHICH
- * REQUIRES THE FWA OF THE PP EXCHANGE PACKAGE.
- *
- * EXPE ADDR
- *
- * ENTRY (ADDR) = ADDRESS OF INSTRUCTION.
- *
- * EXIT ADDRESS IS ADDED TO THE REMOTE BLOCK *TEXP*.
- EXP TBLM
- FTTE SPACE 4,10
- ** FTTE - FUNCTION TIMEOUT TABLE ENTRY.
- *
- * THIS MACRO GENERATES AN ENTRY IN REMOTE LIST *TFTT*
- * THAT CONTAINS THE ADDRESS OF AN INSTRUCTION WHICH
- * REQUIRES THE FWA OF THE FUNCTION TIMEOUT TABLE.
- *
- * FTTE ADDR
- *
- * ENTRY (ADDR) = ADDRESS OF INSTRUCTION.
- *
- * EXIT ADDRESS IS ADDED TO THE REMOTE BLOCK *TFTT*.
- FTT TBLM
- PUTE SPACE 4,10
- ** PUTE - PHYSICAL UNIT TABLE ENTRY.
- *
- * THIS MACRO GENERATES AN ENTRY IN REMOTE LIST *TPUT*
- * THAT CONTAINS THE ADDRESS OF AN INSTRUCTION WHICH
- * REQUIRES THE FWA OF THE PHYSICAL UNIT TABLE.
- *
- * PUTE ADDR
- *
- * ENTRY (ADDR) = ADDRESS OF INSTRUCTION.
- *
- * EXIT ADDRESS IS ADDED TO THE REMOTE BLOCK *TPUT*.
- PUT TBLM
- TITLE MAIN PROGRAM.
- HYD SPACE 4,10
- ** HYD - MAIN PROGRAM.
- ORG OHYD
- RICHI BEGIN CHANNEL INSTRUCTION MODIFICATION
- HYDD LJM PRS PRESET DRIVER
- HYD EQU *-1
- LDM HYD PRESERVE RETURN ADDRESS
- STM ADDR,DI
- HYD1 LDD SF
- ZJN HYD3 IF DEVICE NOT SELECTED
- LDC FCCH
- RJM FCN CLEAR SELECT HOLD
- SOD SF
- HYD3 BSS 0
- LDC 0 CHECK ERROR PROCESSING
- UNSW EQU *-1
- NJN HYD5 IF UNIT SWITCH DISABLED
- LDN DSTBE
- RAD DI ADVANCE DEVICE INDEX
- LMC DSTBL
- HYDA EQU *-1
- NJN HYD5 IF NOT END OF STATUS BLOCK
- RJM CCR
- ZJN HYD7 IF CHANNEL DOWN
- HYD4 LDC DSTB
- STD DI RESET START OF STATUS BLOCK
- HYD5 RJM CFR
- UJN HYD3 CHECK NEXT DEVICE
- HYD7 UJN *+2 FIRST PASS
- HYDB EQU HYD7
- UJN HYD8 DROP PP ON SECOND PASS
- SOM HYDB
- LDN 0 ENABLE UNIT SWITCH
- STM UNSW
- LDN PSNI CHANGE PATH THRU *CFR*
- STM CFRA
- LDC CMP7 RELEASE *PUT* INTERLOCKS
- STM CFRB
- UJN HYD4 LOOP THRU DEVICE STATE TABLE
- HYD8 MONITOR DPPM DROP PP
- LJM PPR EXIT TO PPR
- TITLE READ / WRITE PROCESSING.
- PIO SPACE 4,10
- ** PIO - READ / WRITE PROCESSING.
- PIO BSS 0
- LDML PIOB,RW ISSUE SEEK COMMAND
- LMC 1S17
- RJM WCB WRITE COMMAND BLOCK
- * WAIT UNTIL *IHD* HAS RAISED ATTENTION.
- LDM PIOC,RW PROCESS ATTENTION
- RJM ATT
- ZJN PIO2 IF EXPECTED STATUS
- LDN EIOS
- PIO1 RJM ERR PROCESS ERROR
- * INITIATE DATA TRANSFER.
- PIO2 LDN 1 SET CHANNEL ACTIVE FOR *CPD*
- RJM SCD
- LDML PIOD,RW SELECT INFORMATION EXCHANGE
- RJM WFW
- LDC FCSD SET DMA MODE
- RJM FCN
- LDM PIOE,RW SET PROCESSOR ADDRESS
- STM PIOA
- PIO3 RJM 0 PROCESS I/O REQUEST
- PIOA EQU *-1
- PIO6 NJN PIO1 IF TIMEOUT ERROR
- * WAIT - TRANSFER COMPLETE.
- PIO7 LCN 1 CHECK OPERATIONAL STATUS
- RJM COS
- ZJN PIO8 IF TRANSFER COMPLETE
- LDN ETTC
- UJN PIO1 TRANSFER IN PROGRESS TIMEOUT
- PIO8 RJM SFR CHECK FOR CONSECUTIVE REQUEST
- STD CB
- NJN PIO3 IF ONE MORE REQUEST
- * COMPLETE READ / WRITE OPERATIONS.
- LDC FCCS CLEAR COMMAND SEQUENCE
- RJM FCN
- LDN 0 CLEAR CHANNEL ACTIVE
- RJM SCD
- LDN ESCC PROCESS ATTENTION
- RJM ATT
- ZJN PIO9 IF *COMMAND COMPLETE*
- LDN EIOC
- UJN PIO6 ERROR IN I/O COMPLETE STATUS
- PIO9 LDD SS CHECK FOR DELAY STATUS
- LPN 1
- ZJN PIO11 IF NO DELAY STATUS
- LDD RW
- STM IPPS,DI SAVE READ / WRITE STATUS
- LDN 0
- STD RW SELECT *IHD* ERROR LOG
- STM RWST,DI
- LDC PIO10 SET RETURN ADDRESS
- STM ESAD,DI
- LJM LGE1 DUMP ERROR LOG
- PIO10 LDM IPPS,DI RESTORE READ / WRITE STATUS
- STD RW
- STM RWST,DI
- LDN 0 ENABLE ERROR PROCESSING
- STM ESAD,DI
- PIO11 LJM CMP COMPLETE PROCESSING
- PIOB BSS 0 COMMAND CODES
- CONL CCOR
- CONL CCOW
- PIOC BSS 0 EXPECTED EXECUTION STATUS
- CON ESRD
- CON ESBS
- PIOD BSS 0 INFORMATION EXCHANGE FUNCTION WORDS
- CONL FWRE
- CONL FWWE
- PIOE BSS 0 PROCESSOR ADDRESSES
- CON RBD
- CON WBD
- TITLE DOCUMENT UNIT CHARACTERISTICS.
- DUC SPACE 4,10
- ** DUC - DAYFILE UNIT CHARACTERISTICS.
- DUC BSS 0
- LDN ZERL CLEAR MESSAGE HEADER
- CRD WB
- LDN MLDY SET DAYFILE CODE
- STD WB+4
- LDC FWSN
- RJM WFW REQUEST SERIAL NUMBER
- LDN 2
- STD T7 SET BLOCK SIZE
- ACN CH
- IAM DBUF,CH READ SERIAL NUMBER
- RJM CFE
- LDC FWRL REQUEST OTHER CHARACTERISTICS
- RJM WFW
- LDN 6 READ CHARACTERISTICS
- ACN CH
- IAM DBUF+2,CH READ REVISION LEVEL
- RJM CFE
- LDC SBUF SET MESSAGE ADDRESS
- STM MAD1
- ADN 2*5 ASSEMBLY BUFFER ADDRESS
- STD T3
- LDC 10S12+DBUF UNPACK HEX DATA
- RJM UHD
- ADN 2 SET MESSAGE LENGTH
- STD WB+3
- LDM MSGL RESIDUAL BYTE COUNT
- STD WB+2
- LDC DM0401 MESSAGE ID
- STD PB
- LDC HI0107 SET SYMPTOM CODE
- STD PB+1
- LDD DT DEVICE TYPE
- SHN 1
- ERRNZ PB+3-EO CODE DEPENDS ON VALUE
- ADC 2RDF
- ERRNZ PB+4-UN CODE DEPENDS ON VALUE
- STD PB+2
- LDD MA MOVE BASIC MESSAGE DATA
- CWM WB,T7
- ERRNZ WB+5-PB CODE DEPENDS ON VALUE
- SBN 2
- CRM SBUF,T7
- LDN 0
- STD RW ISSUE BML MESSAGE
- RJM IBM
- LJM CSR CLEAR SPECIAL REQUEST FLAG
- TITLE LOG *IHD* ERRORS.
- LGE SPACE 4,10
- ** LGE - LOG *IHD* ERRORS.
- *
- * ENTRY (RW) = 0 TO LOG ERROR LOG.
- * = 1 TO LOG ERROR REGISTER.
- LGE BSS 0
- LDC CMP SET RETURN ADDRESS
- LGE1 STM RADD,DI
- LDN 3 SET TIMEOUT VALUE = 3 SECONDS
- STD TO
- LDML LGEA,RW REQUEST LOG / REGISTER DUMP
- RJM WCB
- * WAIT UNTIL *IHD* HAS RAISED ATTENTION.
- LDN ESRD PROCESS ATTENTION
- RJM ATT
- ZJN LGE3 IF EXPECTED RESPONSE
- LDN EIOS
- RJM ERR PROCESS ERROR
- * INITIATE DATA TRANSFER.
- LGE3 LDML LGEB,RW WRITE FUNCTION WORD
- RJM WFW
- ACN CH
- LDM LGEC,RW SET DUMP LENGTH
- STD T7
- IAM DBUF,CH INPUT ERROR DATA
- RJM CFE
- LCN 0 PRESET SEARCH INDEX
- STD T6
- LDD RW
- ZJN LGE5 IF DUMPING ERROR LOG
- LDML DBUF
- SBML EREN,DI
- ZJN LGE7 IF NO CHANGE IN ERROR REGISTER
- RAML EREN,DI
- UJN LGE9 PROCESS ERROR REGISTER DATA
- * SCAN ERROR LOG DATA FOR NEW ENTRIES.
- LGE4 SHN -12 POSITION ERROR COUNT
- LMM ELEN,DI
- ZJN LGE10 IF END OF NEW ENTRIES
- LGE5 AOD T6
- SHN 2 ADVANCE INDICES
- STD T7
- ERRNZ ERLGL-ERLGL/4*4 CODE DEPENDS ON VALUE
- LMK ERLGL
- ZJN LGE8 IF END OF ERROR LOG
- LDML DBUF,T7
- NJN LGE4 IF NOT EMPTY ENTRY
- LGE6 LDD T6
- NJN LGE8 IF NEW ENTRIES FOUND
- LGE7 LJM LGE12 CLEAR COMMAND SEQUENCE
- LGE8 LDML DBUF
- SHN -12 RESET ENTRY NUMBER
- STM ELEN,DI
- LDML DBUF+3 SET REPETITION COUNT
- STML ELRC,DI
- LGE9 UJN LGE11 PROCESS ERROR DATA
- LGE10 LDML DBUF+3,T7 CHECK REPEAT COUNT
- SBML ELRC,DI
- ZJN LGE6 IF NO CHANGE IN REPETITION COUNT
- STML DBUF+3,T7
- RAML ELRC,DI UPDATE ERROR LOG REPEAT COUNT
- LDN 4
- RAD T7 INCLUDE THIS ERROR LOG ENTRY
- * PROCESS ERROR INFORMATION.
- LGE11 LDC MBUF SET MESSAGE BUFFER ADDRESS
- STD T3
- LDD T7 ERROR DATA BYTE COUNT
- SHN 14
- LMC DBUF
- RJM UHD UNPACK HEX DATA
- SHN 14
- LMM LGED,RW ISSUE BML MESSAGE
- RJM IBM
- LGE12 LDC FCCS CLEAR COMMAND SEQUENCE
- RJM FCN
- LDN ESCC PROCESS ATTENTION
- RJM ATT
- ZJN LGE13 IF *COMMAND COMPLETE*
- LDN EIOC
- RJM ERR ERROR IN I/O COMPLETE STATUS
- LGE13 LDC FWCA CLEAR ATTENTION
- RJM WFC
- LDM RADD,DI SET RETURN ADDRESS
- STD PA
- LJM 0,PA RETURN TO CALLER
- LGEA BSS 0 LOG / REGISTER SELECT OPTIONS
- CONL CCRL
- CONL CCRI
- LGEB BSS 0 DUMP FUNCTION WORDS
- CONL FWEL
- CONL FWER
- LGEC BSS 0 DUMP LENGTHS
- CON ERLGL
- CON ERRGL
- LGED BSS 0 BML SYMPTOM CODES
- CON HD0104
- CON HD0103
- TITLE LOAD OPERATING PARAMETERS.
- LOP SPACE 4,10
- ** LOP - LOAD OPERATING PARAMETERS.
- *
- * ENTRY (RW) = 0 TO LOAD ATTENTION DELAY PARAMETERS.
- * = 1 TO LOAD OPERATING MODE PARAMETERS.
- LOP BSS 0
- LDC CMP SET RETURN ADDRESS
- LOP1 STM RADD,DI
- LDD RW
- NJN LOP2 IF SETTING OPERATING MODE
- LDML LOPA,DT
- UJN LOP3 SET ATTENTION DELAY PARAMETERS
- LOP2 LDC PWOM SET OPERATING MODE PARAMETERS
- LOP3 STML WCBA+4
- LDN 3 SET TIMEOUT VALUE = 3 SECONDS
- STD TO
- LDML LOPB,RW LOAD PARAMETERS
- RJM WCB
- * WAIT UNTIL *IHD* HAS RAISED ATTENTION.
- LDN ESCC PROCESS ATTENTION
- RJM ATT
- ZJN LOP4 IF NORMAL COMPLETION
- LDN ELOP
- RJM ERR PROCESS ERROR
- LOP4 LDM RADD,DI SET RETURN ADDRESS
- STD PA
- LJM 0,PA RETURN TO CALLER
- LOPA BSS 0 ATTENTION DELAY PARAMETER WORDS
- CONL PWADDF
- CONL PWADDH
- LOPB BSS 0 COMMAND CODES
- CONL CCLD
- CONL CCLM
- TITLE DIAGNOSTIC PROCESSING.
- RND SPACE 4,10
- ** RND - RUN DIAGNOSTICS.
- *
- * ENTRY (RW) = 0 TO EXECUTE READ TEST.
- * = 1 TO EXECUTE WRITE TEST.
- * = 2 TO RUN VERIFICATION DIAGNOSTICS.
- RND BSS 0
- LDC CSR SET RETURN ADDRESS
- RND1 STM RADD,DI
- LDC RNDD ISSUE OPERATOR MESSAGE
- RJM IOM
- LDML RNDA,RW SET PARAMETER WORD
- STML WCBA+4
- LDM RNDB,RW SET TIMEOUT VALUE
- STD TO
- LDML RNDC,RW INITIATE TEST
- RJM WCB
- * WAIT UNTIL *IHD* HAS RAISED ATTENTION.
- LDN 0 PROCESS ATTENTION
- RJM ATT
- RND2 LDC MBUF SET ASSEMBLY BUFFER ADDRESS
- STD T3
- LDC SLSTL*10000+SLST UNPACK HEX DATA
- RJM UHD
- SHN 14 ISSUE BML MESSAGE
- LMC HD0106
- ADD RW
- ERRNZ HD0106+1-HD0107 CODE DEPENDS ON VALUE
- ERRNZ HD0107+1-HD0110 CODE DEPENDS ON VALUE
- RJM IBM
- LDD RW CHECK OPERATION
- SBN 2
- ZJN RND3 IF VERIFICATION DIAGNOSTICS
- LDD SS
- LMN ESCC
- LPN 70
- ZJN RND3 IF NORMAL COMPLETION
- LDN EDTF
- RJM ERR PROCESS ERROR
- *RND3 LDN 0 CLEAR OPERATOR MESSAGE
- RND3 RJM IOM
- LDM RADD,DI SET RETURN ADDRESS
- STD PA
- LJM 0,PA RETURN TO CALLER
- RNDA BSS 0 PARAMETER WORDS
- CONL PWRT
- CONL PWWT
- CONL PWIT
- RNDB BSS 0 TIMEOUT VALUES (IN SECONDS)
- CON 1*60D
- CON 1*60D
- CON 4*60D+20D
- RNDC BSS 0 COMMAND CODES
- CONL CCRT
- CONL CCWT
- CONL CCVD
- RNDD DATA C* EQ000, DIAGNOSTIC RUNNING.*
- TITLE SPIN-DOWN PROCESSING.
- SPD SPACE 4,10
- ** SPD - SPIN DOWN DRIVE.
- SPD BSS 0
- LDN 1*60D SET TIMEOUT VALUE = 1 MINUTE
- STD TO
- LDC CCSD SPIN-DOWN DRIVE
- RJM WCB
- * WAIT UNTIL *IHD* HAS RAISED ATTENTION.
- LDN ESCC PROCESS ATTENTION
- RJM ATT
- ZJP CSR IF NORMAL COMPLETION
- LDN ESDF
- RJM ERR PROCESS ERROR
- TITLE SPIN-UP PROCESSING.
- SPU SPACE 4,10
- ** SPU - SPIN UP DRIVE.
- SPU BSS 0
- LDC CSR SET RETURN ADDRESS
- SPU1 STM ERAD,DI
- LDN 0 GET SLAVE STATUS
- RJM GSS
- LDML SLST+5 CHECK DEVICE READY
- SHN 0-17
- ZJN SPU2 IF DISK NOT SPINNING
- LDN SPU5-SPU4
- SPU2 ADC SPU4 PROCESS SELECTIVE RESET
- LJM SRS1
- SPU3 RJM HYD RETURN TO MAIN LOOP
- * CHECK TIME INTERVAL SINCE LAST SPIN-UP.
- SPU4 RJM CMC CHECK MONITOR COMPLETE
- LDK HSUEI
- STD CM+4 SET SPIN-UP INTERVAL
- SHN -14
- STD CM+3
- LDN UHSS UPDATE EVENT TIME
- STD CM+1
- MONITOR EATM CHECK EVENT TIME
- LDD CM+1
- NJN SPU3 IF EVENT INTERVAL NOT ELAPSED
- * WRITE COMMAND BLOCK TO POWER UP SPINDLE.
- RJM SSD
- LDC 3*60D SET TIMEOUT VALUE = 3 MINUTES
- STD TO
- LDC SPUA ISSUE OPERATOR MESSAGE
- RJM IOM
- LDC CCSU SPIN-UP DRIVE
- RJM WCB
- * WAIT UNTIL *IHD* HAS RAISED ATTENTION.
- LDN ESCC PROCESS ATTENTION
- RJM ATT
- ZJN SPU5 IF NORMAL COMPLETION
- LDN ESUF
- RJM ERR PROCESS ERROR
- SPU5 LDN 1 SELECT LOAD OF MODE PARAMETERS
- STM RWST,DI
- SPU6 STD RW SET PROCESSOR INDEX
- LDC SPU7
- LJM LOP1 LOAD OPERATING PARAMETERS
- SPU7 SOM RWST,DI
- PJN SPU6 IF YET TO LOAD DELAY PARAMETERS
- LDM SREQ,DI
- ZJN SPU8 IF SPIN-UP INITIATED BY DRIVER
- LDN DUNF
- RJM CPF CLEAR DEVICE UNAVAILABLE
- * COMPLETE DEVICE INITIALIZATION.
- SPU8 LDM ERAD,DI SET RETURN ADDRESS
- STD PA
- LDN 0 CLEAR OPERATOR MESSAGE
- RJM IOM
- LJM 0,PA RETURN TO CALLER
- SPUA DATA C* EQ000, SPIN UP PENDING.*
- TITLE SELECTIVE RESET PROCESSING.
- SRS SPACE 4,10
- ** SRS - PROCESS SELECTIVE RESET.
- SRS BSS 0
- LDC CMP4 SET RETURN ADDRESS
- SRS1 STM RADD,DI
- LDC FWSR ISSUE SELECTIVE RESET
- RJM WFW
- LDN 6 SET TIMEOUT TO 6 SECONDS
- RJM STO
- LDN ESCB PROCESS ATTENTION
- RJM ATT
- ZJN SRS3 IF *COMMAND BLOCK INDEPENDENT*
- LDN EUES
- SRS2 RJM ERR PROCESS ERROR
- SRS3 LDD SS CHECK DELAY STATUS PRESENT
- LPN 1
- ZJN SRS4 IF NO DELAY STATUS
- LDM SLST+3
- LPC 377 CHECK DELAY STATUS
- LMC 0#83
- ZJN SRS5 IF HOST GENERATED RESET
- SRS4 LDN EUDS
- UJN SRS2 UNEXPECTED DELAY STATUS
- SRS5 STM ELEN,DI
- STM ELRC,DI CLEAR INTERNAL ERROR COUNTERS
- STM EREN,DI
- LDM RADD,DI SET RETURN ADDRESS
- STD PA
- LJM 0,PA RETURN TO CALLER
- TITLE SUBROUTINES.
- ACE SPACE 4,10
- ** ACE - ANALYZE CHANNEL ERROR.
- *
- * ENTRY (RBUF) = CHANNEL STATUS REGISTER.
- ACE3 LDN ECCM SET CHANNEL DETECTED CM ERROR
- ACE4 STM FALT
- ACE SUBR ENTRY/EXIT
- LDM RBUF+5
- LPN 2
- ZJN ACEX IF NO CHANNEL ERROR
- LDM RBUF
- LPN 76
- NJN ACE3 IF ERROR IN MEMORY
- LDM RBUF+1
- SHN -5
- ZJN ACE2 IF NOT PARITY / ISI CHANNEL ERROR
- LPN 2
- ZJN ACE1 IF NOT PARITY ERROR
- LDN ECPE&ECIE
- ACE1 LMN ECIE&ECER FAULT ANALYSIS CODE
- ACE2 LMN ECER
- UJN ACE4 SAVE FAULT CODE
- AME SPACE 4,10
- ** AME - ATTEMPT MONITOR EXCHANGE.
- *
- * EXIT (A) = 0.
- *
- * USES CM - CM+4.
- *
- * MACROS EXPE.
- AME SUBR ENTRY/EXIT
- EXPE *
- AME1 LDC 6 CHECK FOR (MA) NON-ZERO
- CRD CM
- LDD CM
- ADD CM+1
- NJN AME1 IF EXCHANGE PACKAGE NOT READY
- EXPE *
- AME2 LDC 0 SET (B0) NON-ZERO
- CWM AMEA,ON
- SBN 1 EXCHANGE MONITOR
- MXN 0
- CRD CM
- LDD CM+4
- ZJN AMEX IF EXCHANGE TAKEN
- LDN 28D
- SBN 1 WAIT 20 MICROSECONDS ELAPSED
- NJN *-1
- UJN AME2 RETRY EXCHANGE
- AMEA VFD 24/0 (P)
- VFD 18/0 (A0)
- VFD 18/0 (B0)
- AMR SPACE 4,15
- ** AMR - ACCESS MAINTENANCE REGISTER.
- *
- * ENTRY (A) = 6/ OC, 12/ RN
- * OC = *RMRF* TO READ REGISTER.
- * = *WMRF* TO WRITE REGISTER.
- * RN = *IOU* REGISTER NUMBER.
- *
- * EXIT (A) = 0 IF NO CHANNEL ERROR.
- * (RBUF) = REGISTER CONTENTS.
- *
- * USES T4.
- *
- * CALLS WMC.
- AMR1 ACN. MR
- LDN 0 OUTPUT NULL PARAMETER
- OAN. MR
- LDD T4 TRANSMIT REGISTER NUMBER
- OAN. MR
- LDN 0 WAIT CHANNEL EMPTY
- RJM WMC
- DCN. MR+40
- NJN AMRX IF CHANNEL HUNG FULL
- ACN. MR
- LDN 10 READ / WRITE REGISTER
- AMRA IAM. RBUF,MR
- AMR SUBR ENTRY/EXIT
- STD T4
- SHN -14 POSITION OP CODE
- LMD HN
- ERRNZ IOUC-100 CODE DEPENDS ON VALUE
- FAN. MR
- LPN 20
- ERRNZ RMRF+20-WMRF CODE DEPENDS ON VALUE
- SHN 3
- LMC IAMI+MR FORM I/O INSTRUCTION
- STM AMRA
- UJP AMR1 ACCESS MAINTENANCE REGISTER
- ATT SPACE 4,15
- ** ATT - PROCESS ATTENTION.
- *
- * ENTRY (A) = EXPECTED EXECUTION STATUS.
- *
- * EXIT (A) = 0 IF EXPECTED EXECUTION STATUS.
- * (SS) = SLAVE STATUS (SET BY *GSS*).
- *
- * ERROR TO *ERR* IF TIMEOUT.
- *
- * USES PA.
- *
- * CALLS CTO, GSS, HYD, R1B, SSD.
- ATT CON 0 ENTRY
- STM EEST,DI
- LDM ATT SAVE RETURN ADDRESS
- STM ATTN,DI
- ATT1 RJM HYD RETURN TO MAIN LOOP
- LDC FCIS
- RJM R1B REQUEST IDLE STATUS
- STML IDST
- LPML TMSK,UN
- ZJN ATT2 IF ATTENTION NOT SET
- LDM ATTN,DI
- STD PA
- RJM SSD SELECT SLAVE DEVICE
- * RETURN TO CALLER WITH *IHD* STATUS.
- LDM EEST,DI
- RJM GSS GET SLAVE STATUS
- LMM EEST,DI
- LJM 0,PA RETURN TO CALLER
- ATT2 RJM CTO
- MJN ATT1 IF NOT TIMEOUT
- LDN ETAT
- RJM ERR PROCESS ERROR
- CCR SPACE 4,15
- ** CCR - CHECK FOR CHANNEL REQUEST.
- *
- * ENTRY (UC) = UNIT ACTIVITY COUNT.
- * (IR+4) = CHANNEL NUMBER.
- *
- * EXIT (A) = 0 IF CHANNEL DOWN.
- *
- * USES CM - CM+4.
- *
- * CALLS DCR, RCT, SRF.
- *
- * MACROS DELAY, MONITOR.
- CCR3 RJM SRF SET DRIVER RELOAD FLAG
- CCR4 LDD CR
- CCR SUBR ENTRY/EXIT
- RJM RCT READ CHANNEL TABLE
- SHN 21-5
- MJN CCR3 IF CHANNEL GLOBALLY DOWN
- LPN 40
- ZJN CCR4 IF CHANNEL NOT REQUESTED
- STM CHRQ DISABLE NEW ACTIVITY
- LDD UC
- NJN CCRX IF CURRENT ACTIVITY
- RJM DCR DROP CHANNEL RESERVATION
- * LDN 0
- STM CHRQ ENABLE NEW ACTIVITY
- CCR1 LDD CR
- NJN CCRX IF CHANNEL RESERVED
- CCR2 DELAY
- LDD IR+4
- STD CM+1 ATTEMPT TO RESERVE CHANNEL
- MONITOR CCHM
- LDD CM+2 SET RESERVATION STATUS
- STD CR
- RJM RCT READ CHANNEL TABLE
- LPN 40
- ZJN CCR1 IF CHANNEL NOT DOWN
- LJM CCR3 SET DRIVER RELOAD FLAG
- CFE SPACE 4,10
- ** CFE - CHECK FOR I/O ERROR.
- *
- * EXIT (A) = 0.
- *
- * ERROR TO *ERR*.
- CFE3 LDC FCRE ACCESS ERROR REGISTER
- RJM FCN
- ACN CH SIMULATE REGISTER READ
- DCN CH+40
- CFM *+2,CH CLEAR CHANNEL ERROR FLAG
- LDD T1
- CFE4 NJN CFE2 IF INCOMPLETE DATA TRANSFER
- CFE SUBR ENTRY/EXIT
- DCN CH+40
- CFM CFE4,CH IF CHANNEL ERROR FLAG CLEAR
- STD T1
- LDML WFWA CHECK OPERATION IN PROGRESS
- LMC FWSR
- ZJN CFE3 IF SELECTIVE RESET
- LDN ECIE
- CFE1 RJM ERR PROCESS CHANNEL ERROR
- CFE2 STM RBCT SAVE RESIDUAL BYTE COUNT
- LDN EIDT
- UJN CFE1 PROCESS ERROR
- CFR SPACE 4,10
- ** CFR - CHECK *PUT* FOR REQUEST.
- *
- * ENTRY (DI) = DEVICE STATUS BLOCK ADDRESS.
- *
- * USES T2, CM - CM+4.
- *
- * CALLS CSD, IIO, ISR, SAP.
- *
- * MACROS PUTE, SFA.
- CFR3 LDD WB EXTRACT UNIT NUMBER
- LPN 77
- STD UN
- LDD WB+1
- STD EO SET EST ORDINAL
- SFA EST
- ADK EQDE READ EST ENTRY
- CRD CM
- LDD CM+3
- LPN 77
- SBN 1RF SET DEVICE TYPE
- SHN 0-1
- STD DT
- LDD WB+3 SET *CBT* ORDINAL
- STD CB
- LDD PA
- ZJN CFR4 IF NO REQUEST IN PROGRESS
- RJM SAP SELECT ADAPTOR PORT
- LDM RWST,DI
- STD RW SET READ / WRITE STATUS
- UJN CFR6 RETURN TO PROCESSOR
- CFR4 LDD T2
- ZJN CFR7 IF NO SPECIAL REQUEST
- RJM ISR IDENTIFY SPECIAL REQUEST
- ZJN CFRX IF UNKNOWN REQUEST
- LDN 0
- STD CB
- CFR5 RJM CSD CONNECT TO *IHD*
- ZJN CFRX IF UNIT UNAVAILABLE
- * EXIT TO PROCESSOR AS APPLICABLE WITH -
- * (PO) = *PUT* ORDINAL.
- * (CB) = *CBT* ORDINAL.
- * (EO) = EST ORDINAL.
- * (RW) = READ / WRITE STATUS.
- * (DT) = DEVICE TYPE.
- * (UN) = UNIT NUMBER.
- * (RF) = SPECIAL REQUEST FLAGS.
- * (WB - WB+4) = *UNCT* WORD OF *PUT* ENTRY.
- CFR6 LJM 0,PA RETURN TO PROCESSOR
- CFR7 LDD CB INITIATE I/O
- RJM IIO
- NJN CFR5 IF I/O ENABLED ON THIS ACCESS
- CFR SUBR ENTRY/EXIT
- LDI DI
- ERRNZ PUTO CODE DEPENDS ON VALUE
- STD PO
- SHN PUTLS READ *PUT* ENTRY
- PUTE *
- ADC PILL GET INTERLOCK STATUS
- CRD CM
- SBN PILL-UNCT FETCH UNIT CONTROL WORD
- CRD WB
- LDM ADDR,DI CHECK REQUEST PRESENT
- STD PA
- NJN CFR2 IF REQUEST IN PROGRESS
- LDD CM+3
- STD RF SET SPECIAL REQUESTS
- DVRF BITSET DVDF-DVDF/12D*12D
- LPN 77&DVRF EXTRACT OPERATOR REQUESTS
- STD CM+3
- SCN 1 CLEAR DEVICE UNAVAILABLE
- STD T2
- NJN CFR1 IF SPECIAL REQUEST PRESENT
- LMD CM+3
- NJN CFRX IF DEVICE UNAVAILABLE FOR I/O
- ADD WB+3
- ZJN CFRX IF NO I/O REQUEST
- CFR1 LDD CM+4
- CFRA ZJN CFR2 IF UNIT NOT INTERLOCKED
- LMD OA
- NJN CFRX IF NOT INTERLOCKED BY THIS DRIVER
- CFR2 LJM CFR3
- CFRB EQU *-1 (MODIFIED FOR TERMINATION PROCESSING)
- CMC SPACE 4,10
- ** CMC - CHECK MONITOR COMPLETE.
- *
- * EXIT (A) = (CM) = 0.
- *
- * USES CM - CM+4.
- *
- * CALLS AME.
- *
- * MACROS DELAY.
- CMC SUBR ENTRY/EXIT
- CMC1 LDD OA
- CRD CM
- LDD CM
- ZJN CMCX IF NO REQUEST WAITING FOR RESPONSE
- SHN 21-13
- PJN CMC2 IF NOT TO RETRY REQUEST
- SHN 13-21
- LPC 177 CLEAR FLAGS
- STD CM
- LDD OA UPDATE OUTPUT REGISTER
- CWD CM
- RJM AME REISSUE REQUEST
- CMC2 DELAY
- UJN CMC1 RECHECK OUTPUT REGISTER
- CMP SPACE 4,15
- ** CMP - COMPLETE PROCESSING.
- *
- * ENTRY (SF) = DEVICE SELECTED STATUS.
- * (UC) = UNIT ACTIVITY COUNT.
- * (RW) = READ / WRITE STATUS.
- *
- * EXIT TO *HYD3*.
- * (SF) = 0.
- * (UC) = UNIT ACTIVITY COUNT DECREMENTED.
- *
- * USES WB+4.
- *
- * CALLS CMC, DCB, FCN, IEM, WFC.
- CMP LDM ERCT,DI
- ZJN CMP3 IF NO ERRORS
- AOM ERCT,DI
- CMP1 LDN HD0111-HD0100
- RJM IEM ISSUE FINAL MESSAGE
- * LDN 0
- CMP2 STM ERCT,DI CLEAR ERROR COUNT
- CMP3 STM IPPS,DI
- CMP4 LDD SF
- ZJN CMP5 IF DEVICE NOT SELECTED
- LDC FWCA
- RJM WFC CLEAR ATTENTION
- LDC FCCH
- RJM FCN CLEAR SELECT HOLD
- SOD SF
- CMP5 LDD RW SET DATA TRANSFER DIRECTION
- SHN 13-0
- LMM CBCT,DI APPEND CUMULATIVE BUFFER COUNT
- STD WB+4
- LDM RQIN,DI SET UP *CBT* LIST
- LMC 4000
- RJM DCB DELINK BUFFERS / RELEASE UNIT INTERLOCK
- LDD WB+3
- SHN 0-13
- ZJN CMP6 IF UNIT INTERLOCK NOT RELEASED
- SOD UC
- LDN 0 CLEAR REQUEST IN PROGRESS
- CMP6 STM ADDR,DI
- STM CBCT,DI CLEAR *CBT* COUNT
- STM RQIN,DI
- STM SREQ,DI
- RJM CMC
- LJM HYD3 RETURN
- CMPA EQU *-1
- CMP7 LDN 0 SET REQUEST QUEUE EMPTY
- STM RQIN,DI
- UJP CMP5 RELEASE UNIT INTERLOCK
- COS SPACE 4,10
- ** COS - CHECK OPERATIONAL STATUS.
- *
- * ENTRY (A) = POSITIVE MASK TO RETURN ON BIT(S) SET.
- * = NEGATIVE MASK TO RETURN ON BIT(S) CLEAR.
- *
- * EXIT (A) = 0 IF CONDITION SET.
- * .LT. 0 IF TIMEOUT.
- *
- * ERROR TO *ERR* IF ADAPTOR DROPPED SELECT ACTIVE.
- *
- * USES T2, T3.
- *
- * CALLS CTO, R1B.
- COS3 SHN 12
- LPDL T2 CHECK CONDITION MET
- LMDL T3
- ZJN COSX IF CONDITION SET
- RJM CTO
- MJN COS2 IF NOT TIMEOUT
- LCN 0
- COS SUBR ENTRY/EXIT
- STDL T2
- PJN COS1 IF RETURN ON BIT(S) SET
- LMC -0
- STDL T2 COMPLEMENT MASK
- LDN 0
- COS1 STDL T3
- COS2 LDC FCRO GET OPERATIONAL STATUS
- RJM R1B
- SHN 21-11
- MJN COS3 IF *SELECT* ACTIVE
- LDN EDSA
- RJM ERR PROCESS ERROR
- CPF SPACE 4,10
- ** CLEAR *PUT* FLAG.
- *
- * ENTRY (A) = BIT NUMBER TO CLEAR IN *PILL* WORD.
- *
- * EXIT (A) = 0.
- *
- * USES T6, T7, CM - CM+4.
- *
- * CALLS CMC.
- *
- * MACROS MONITOR, PUTE.
- CPF SUBR ENTRY/EXIT
- SHN 6
- STD T7 SET BIT NUMBER
- LDC PILL*100+1
- STD T6 WORD OFFSET + FIELD WIDTH
- RJM CMC
- * LDN 0 CLEAR UNUSED BYTE
- STD CM+2
- LDD MA STORE MESSAGE BUFFER PARAMETERS
- CWD T6
- LDN 1 PARAMETER WORD COUNT
- STD CM+1
- LDD PO
- SHN PUTLS
- PUTE *
- ADC 0 SET BASE *PUT* ENTRY ADDRESS
- STD CM+4
- SHN -14
- STD CM+3
- MONITOR UTEM CLEAR *PUT* FLAG
- * LDN 0
- UJN CPFX RETURN
- CSD SPACE 4,15
- ** CSD - CONNECT TO SLAVE DEVICE.
- *
- * ENTRY (UN) = UNIT NUMBER.
- * (CB) = *CBT* ORDINAL IF I/O REQUEST.
- * (CM - CM+4) = EST ENTRY.
- *
- * EXIT (A) .NE. 0 IF UNIT CONNECTED.
- *
- * USES T2, T7, CM - CM+4.
- *
- * ERROR TO *ERR* IF SELECT REJECT.
- *
- * CALLS R1B, SSD, SUI.
- *
- * MACROS CBTE.
- CSD SUBR ENTRY/EXIT
- LDC 0
- CHRQ EQU *-1
- NJN CSD4 IF CHANNEL REQUESTED
- STM LCMD,DI
- * CHECK EST ENTRY FOR CHANNEL DOWN.
- LDD CM+1 EXTRACT CHANNEL
- LMD IR+4
- LPN 77
- ZJN CSD1 IF PATH SERVICED BY THIS DRIVER
- LDN 1
- CSD1 ADN CM+1 SET CHANNEL BYTE ADDRESS
- STD T2
- LDI T2 CHECK CHANNEL STATE
- SHN -11
- LMN 4
- ZJN CSD6 IF CHANNEL UP AND AVAILABLE
- SCN 1
- NJN CSD4 IF CHANNEL DOWN OR NOT ENABLED
- LDD CB
- ZJN CSDX IF NOT I/O REQUEST
- SHN CBTLS
- CBTE *
- ADC PAD4 GET CHANNEL FROM CBT ENTRY
- CRD T7
- ADN HSLK-PAD4 GET CHANNEL SELECT STATUS
- CRD CM
- LDD CM CHECK ERROR FLAGS
- SHN 0-12
- ZJN CSDX IF NOT CHANNEL SPECIFIC REQUEST
- LDD T7 CHECK CHANNEL
- SHN -6
- LMD IR+4
- ZJN CSD6 IF REQUEST FOR THIS DRIVER
- CSD4 LDN 0
- CSD5 UJP CSDX RETURN
- CSD6 RJM SUI SET UNIT INTERLOCK
- NJN CSD4 IF ASSIGNED ELSEWHERE
- LDC FCIS
- RJM R1B READ IDLE STATUS
- STML IDST
- RJM SSD SELECT *IHD*
- * READ BIT SIGNIFICANT RESPONSE.
- LDC FCSO FORCE SYNC OUT
- RJM R1B
- STML BSRN SAVE RESPONSE
- LPML TMSK,UN
- NJN CSD5 IF CORRECT UNIT SELECTED
- LDN EICU
- RJM ERR PROCESS ERROR
- CSR SPACE 4,10
- ** CSR - CLEAR SPECIAL REQUEST.
- *
- * EXIT TO *CMP*.
- *
- * CALLS CPF.
- CSR BSS 0 ENTRY
- LDM SREQ,DI
- ZJN CSR1 IF REQUEST SELECTED BY DRIVER
- RJM CPF
- CSR1 LJM CMP COMPLETE PROCESSING
- CTO SPACE 4,10
- ** CTO - CHECK TIMEOUT.
- *
- * ENTRY (PO) = *PUT* ORDINAL.
- *
- * EXIT (A) .LT. 0 IF NOT TIMEOUT.
- *
- * USES T6, T7, CM - CM+4.
- *
- * MACROS FTTE.
- CTO SUBR ENTRY/EXIT
- LDD PO
- SHK FTTLS READ *FTT* ENTRY
- FTTE *
- ADC 0
- CRD CM
- LDC RTCL FETCH CURRENT CLOCK VALUE
- CRD T6
- LDD T6 CHECK ELAPSED TIME
- SBD CM+3
- MJN CTOX IF NOT TIMEOUT
- SHN 14
- ADD T7
- SBD CM+4
- UJN CTOX RETURN
- DCB SPACE 4,15
- ** DCB - DELINK CONTROL BUFFERS.
- *
- * ENTRY (A) = VALUE FOR BYTE 3 OF *BIOM* REQUEST.
- * (RW) = READ / WRITE STATUS.
- *
- * EXIT (A) = 0.
- * (WB+3) = BYTE 3 OF *BIOM* REQUEST.
- *
- * USES RC, T2, T3, WB+3.
- *
- * CALLS IMR, SLB.
- DCB1 LDM IORQ,DI EXTRACT *CBT* ORDINAL
- STD PB
- RJM SLB SET LINKAGE BITS
- SOM RQIN,DI
- ZJN DCB3 IF QUEUE NOW EMPTY
- STD T3
- LDD DI ADDRESS OF FIRST QUEUE ENTRY
- ADN IORQ+1
- STD T2
- DCB2 LDI T2 MOVE STACK DOWN
- STM -1,T2
- AOD T2 ADVANCE LIST ADDRESS
- SOD T3
- NJN DCB2 IF NOT END OF MOVE
- SOD RC
- NJN DCB1 IF BUFFER COUNT NOT SATISFIED
- DCB3 LDN DCBS
- RJM IMR INITIATE MONITOR REQUEST
- * LDN 0
- DCB SUBR ENTRY/EXIT
- STD WB+3
- ZJN DCBX IF NULL REQUEST
- LPN 77
- ZJN DCB3 IF NO BUFFERS TO PROCESS
- STD RC
- LDD RW
- ZJN DCB1 IF READ OPERATION
- LDN 0
- SBD RC ADJUST REQUEST QUEUE ENTRY COUNT
- RAM RQIN,DI
- UJN DCB3 ISSUE MONITOR REQUEST
- DCR SPACE 4,10
- ** DCR DROP CHANNEL RESERVATION.
- *
- * ENTRY (CR) = 1 IF CHANNEL RESERVED.
- * (IR+4) = CHANNEL NUMBER.
- *
- * EXIT (A) = (CR) = 0.
- *
- * USES CM - CM+4.
- *
- * MACROS MONITOR.
- DCR SUBR ENTRY/EXIT
- LDD CR
- ZJN DCRX IF CHANNEL NOT RESERVED
- LDD IR+4
- STD CM+1 DROP CHANNEL
- MONITOR DCHM
- * LDN 0 SET CHANNEL NOT RESERVED
- STD CR
- UJN DCRX RETURN
- EIO SPACE 4,10
- ** EIO - ENTER I/O REQUEST QUEUE.
- *
- * ENTRY (A) = *CBT* ORDINAL.
- * (RW) = READ / WRITE STATUS.
- *
- * EXIT (PB) = *CBT* ORDINAL.
- *
- * USES T5.
- *
- * CALLS DCB, SLB.
- EIO1 RJM SLB SET LINKAGE BITS
- EIO2 AOM CBCT,DI
- AOM RQIN,DI ADVANCE ENTRY COUNT
- SBM EIOA,RW
- MJN EIOX IF QUEUE NOT FULL
- LDN 1
- RJM DCB DELINK 1ST BUFFER IN LIST
- EIO SUBR ENTRY/EXIT
- STD PB
- LDD RW
- NJN EIO1 IF WRITE OPERATION
- LDM RQIN,DI
- ADD DI ADDRESS OF NEXT AVAILABLE SLOT
- STD T5
- LDD PB ENTER *CBT* ORDINAL IN QUEUE
- STM IORQ,T5
- UJN EIO2 ADVANCE ENTRY COUNT
- EIOA BSS 0 DELINKING CRITERIA
- CON 3
- CON 10
- ERR SPACE 4,15
- ** ERR - PROCESS ERRORS.
- *
- * ENTRY (A) = FAULT ANALYSIS CODE.
- * (CR) = CHANNEL RESERVATION STATUS.
- *
- * EXIT TO *CMP*.
- *
- * USES PA, T2, T3, T5, CM - CM+4, WB - WB+4.
- *
- * CALLS ACE, AMR, GDS, GSS, IEM, IMR, ISF, RCR, SCD, SET,
- * SRS, STF, STO, UHD, WFC.
- ERR CON 0 ENTRY
- STD FC
- LDM ESAD,DI
- ZJN ERR1 IF NEW PASS THRU PROCESSOR
- STD PA
- LJM 0,PA CONTINUE
- ERR1 STD T5 CLEAR CHANNEL ACTIVE
- RJM SCD
- AOM UNSW DISABLE UNIT SWITCH
- LDC ERR5
- STM ESAD,DI SET ERROR STEP ADDRESS
- * GENERATE BML ERROR MESSAGE.
- LDD FC SET INITIAL FAULT CODE
- STM CODE
- STM FALT
- LDD DT SET SECTORS TRANSFERED COUNT
- SHN 21-0
- LMM CBCT,DI
- MJN ERR2 IF LARGE SECTOR DEVICE
- SHN 2
- ERRNZ PSBFDH*4-PSBFDF CODE DEPENDS ON VALUE
- ERR2 STM STCT
- LDM CYLN,DI SET SEEK ADDRESS - CYLINDER
- STM ICYL
- LDM TKSN,DI SEEK ADDRESS - TRACK AND SECTOR
- STM ITAS
- ERR3 LCN 0 PRESET INTERMEDIATE FAULT CODES
- STM FCS1
- STM FCS2
- STM FCS3
- LDML LCMD,DI SET LAST *IHD* COMMAND
- STML LSCC
- LDM FCNA MOVE LAST CHANNEL FUNCTION
- STM LCFN
- SCF. ERR3,MR ACQUIRE MAINTENANCE REGISTER ACCESS
- CON LDCI
- IAN CH (FORCE CHANNEL TABLE ENTRY)
- ORG *-1
- CON RCSR+CH
- RJM AMR READ CHANNEL STATUS REGISTER
- DCN. MR+40
- CCF. *+2,MR CLEAR CHANNEL FLAG
- LDN 0
- STD T2 CLEAR INDICES
- STD T3
- RJM ACE ANALYZE CHANNEL ERROR
- ERR4 LDM RBUF,T2
- SHN 10 PACK 8-BIT DATA
- LMM RBUF+1,T2
- STML RBUF,T3
- AOD T3 ADVANCE INDEX
- SHN 1
- STD T2 SET INDEX
- LMN 10
- NJN ERR4 IF MORE REGISTER DATA
- LDN ZERL
- CRM RBUF+4,ON CLEAR UNUSED BYTES
- LDD CR
- ZJN ERR6 IF FUNCTION TIMEOUT
- LDN 0
- STD FC CLEAR PRESENT FAULT CODE
- LDC FCRT
- RJM FCN ISSUE READ *T* REGISTER FUNCTION
- ACN CH
- LDN 3 INPUT REGISTER CONTENTS
- IAM RBUF+7,CH
- DCN CH+40
- ERR5 LDD FC SET INTERMEDIATE FAULT CODE
- STM FCS1
- ERR6 LDC EBUF+2*5 SET MESSAGE ASSEMBLY ADDRESS
- STD T3
- LDC 17S12+DBUF UNPACK HEX DATA
- RJM UHD
- ADN 2 APPEND LENGTH OF NON-HEX DATA
- STD ML
- LDC ERR28 SET NEXT ERROR STEP
- STM ESAD,DI
- LDN 0 CLEAR CHECK ATTENTION COUNT
- STM CACT,DI
- STM RSVD CLEAR RESERVED FIELD
- STD FC
- LDM RWST,DI SAVE READ / WRITE STATUS
- STM IOST,DI
- LDD CR
- ZJP ERR51 IF FUNCTION TIMEOUT
- RJM RCR
- LDM LCMD,DI
- ZJN ERR14 IF NO ACTIVE COMMAND
- ERR10 AOM CACT,DI ADVANCE CHECK ATTENTION COUNT
- LMN 6
- ZJN ERR14 IF DEVICE LOCKED UP
- LDN 3
- RJM STO SET TIMEOUT = 3 SECONDS
- LDN 0
- RJM ATT PROCESS ATTENTION
- ERR11 SHN -3
- STD PA
- LDM ERRB,PA SET PROCESSOR ADDRESS
- ERR12 STD PA
- LJM 0,PA EXIT TO PROCESSOR
- ERR13 LDC FWEP CLEAR ATTENTION
- RJM WFC
- UJN ERR10 LOOP FOR NEXT ATTENTION
- ERR14 RJM SSD SELECT SLAVE DEVICE
- LDC ERR51
- LJM SRS1 PROCESS SELECTIVE RESET
- ERR16 LDC ERR51
- UJN ERR20 SET POST PROCESSING ADDRESS
- ERR17 LDC ERR38
- UJN ERR20 SET POST PROCESSING ADDRESS
- ERR18 LDN 0 CLEAR INTERMEDIATE FAULT CODE
- STM FCS2
- LDM ENAD,DI
- UJN ERR12 EXIT TO POST PROCESSOR
- ERR19 LDC ERR30 SET POST PROCESSING ADDRESS
- ERR20 STM ENAD,DI
- LDM SLST+1 SAVE SYSTEM INTERVENTION CODE
- STM SIST,DI
- LDM SLST+2 SAVE MANUAL INTERVENTION CODE
- STM MIST,DI
- LDD SS SAVE EXECUTION STATUS
- STM GSST,DI
- RJM GDS GET DEVICE STATUS
- LDC FWCA
- RJM WFC CLEAR ATTENTION
- LDC EBUF+6*5
- STD T3 SET DESTINATION DATA ADDRESS
- LDC STSBL*10000+SLST
- RJM UHD UNPACK HEX DATA
- RAD ML
- LDN 1 SELECT DUMP OF ERROR REGISTER
- STM RWST,DI
- ERR24 STD RW SET PROCESSOR INDEX
- LDC ERR25
- LJM LGE1 LOG *IHD* ERRORS
- ERR25 SOM RWST,DI
- PJN ERR24 IF YET TO DUMP ERROR LOG
- LJM ERR18 EXIT TO POST PROCESSOR
- ERR28 LDD FC SET INTERMEDIATE FAULT CODE
- STM FCS2
- LDC ERR50 SET ERROR STEP
- STM ESAD,DI
- LJM ERR14 PROCESS SELECTIVE RESET
- ERR30 LDM GSST,DI CHECK EXECUTION STATUS
- LPN 6
- ZJP ERR51 IF NO INTERVENTION FLAGS
- * ANALYZE INTERVENTION STATUS.
- SHN -2 SET LIST INDEX
- STD T2
- ADN MIST SET STATUS WORD ADDRESS
- ADD DI
- STD T3
- LDM ERRE,T2 SET LIST ADDRESS
- STD T2
- ERR31 LDN 2 ADVANCE LIST ADDRESS
- RAD T2
- LDI T2
- ZJN ERR32 IF END OF LIST
- LMI T3
- LPC 377
- NJN ERR31 IF NOT MATCHING INTERVENTION CODE
- * ATTEMPT ERROR SPECIFIC RECOVERY.
- ERR32 LDM 1,T2 SET PROCESSOR ADDRESS
- STD T2
- LDC ERR50 SET NEXT ERROR STEP
- STM ESAD,DI
- LDN 0
- LJM 0,T2 EXIT TO PROCESSOR
- ERR36 LDN EDNR SET NOT READY ERROR
- STM FALT
- LDML SLST+5 CHECK SLAVE STATUS
- SHN 0-17
- NJN ERR50 IF DISK SPINNING
- LDM ERCT,DI
- ZJN ERR38 IF INITIAL RETRY
- LMN CSRC
- NJN ERR50 IF NOT FIRST ALTERNATE RETRY
- ERR38 LDC ERR50
- LJM SPU1 PROCESS SPIN UP
- ERR40 LDM IOST,DI RESTORE READ / WRITE STATUS
- STM RWST,DI
- STD RW
- LDC ERR44 RUN DIAGNOSTIC
- LJM RND1
- ERR44 RJM STF PROCESS MEDIA ERROR
- LDN EDPE&EOTC
- * UJN ERR46 SET DATA PARITY ERROR
- ERR46 LMN EOTC&ECPE
- * UJN ERR47 SET OVER-TEMP CONDITION ERROR
- ERR47 LMN ECPE&EDTF
- * UJN ERR48 SET CHANNEL PARITY ERROR
- ERR48 LMN EDTF SET DIAGNOSTIC TIMEOUT ERROR
- ERR49 STM FALT
- * COMPLETE ERROR PROCESSING.
- ERR50 LDD FC SET INTERMEDIATE FAULT CODE
- STM FCS3
- ERR51 LDM IOST,DI RESTORE READ / WRITE STATUS
- STD RW
- LDN 0 CLEAR ERROR STEP
- STM ESAD,DI
- STM UNSW ENABLE UNIT SWITCH
- AOM ERCT,DI ADVANCE ERROR COUNT
- LMN MERC
- NJN ERR53 IF NOT RETRY LIMIT
- ERR52 AOM MISC
- RJM SEC SET ERROR CODE IN *CBT*
- LJM CMP1 COMPLETE PROCESSING
- ERR53 LDN HD0100-HD0100
- RJM IEM ISSUE ERROR MESSAGE
- LDM FALT
- LMN ETFN
- ZJN ERR52 IF FUNCTION TIMEOUT ERROR
- LMN EDTF&ETFN
- ZJN ERR52 IF DIAGNOSTIC FAILURE
- LDM SREQ,DI
- NJN ERR54 IF NOT I/O PROCESSING
- LDM ERCT,DI
- LMN CSRC
- ZJN ERR56 IF TIME FOR CHANNEL SWAP
- LMN 1&CSRC
- NJN ERR54 IF NOT FIRST RETRY
- LDM RQIN,DI
- STD WB+3
- LDN IDSS INHIBIT DATA STREAMING
- RJM IMR
- ERR54 LDC 4000 DISABLE RELEASE OF UNIT INTERLOCK
- STM RQIN,DI
- LJM CMP4 RETRY REQUEST
- ERR56 RJM SEC FORCE ALTERNATE CHANNEL SELECTION
- LDN SSES
- RJM ISF SET SUSPECT STATE
- * LDN 0
- LJM CMP2 COMPLETE PROCESSING
- ERRB BSS 0
- CON ERR14 (IHD IDLE)
- CON ERR13 READ DATA AVAILABLE
- CON ERR13 BUFFER SPACE AVAILABLE
- CON ERR14 (UNDEFINED)
- CON ERR16 COMMAND BLOCK INDEPENDENT
- CON ERR14 (UNDEFINED)
- CON ERR17 UNSOLICITED ATTENTION
- CON ERR19 COMMAND COMPLETE
- ERRC BSS 0 MANUAL INTERVENTION CODES
- CON 0#C1,ERR36 DISK NOT READY
- CON 0#63,ERR47 ISI I/O PARITY ERROR
- CON 0#6A,ERR48 DIAGNOSTIC FAILURE
- CON 0#6B,ERR46 TEMPERATURE FAULT
- CON 0000,ERR51
- ERRD BSS 0 SYSTEM INTERVENTION CODES
- CON 0#41,ERR40 UNABLE TO READ HEADER
- CON 0#42,ERR40 HEADER ERROR
- CON 0#43,ERR40 UNABLE TO READ DATA
- CON 0#A6,ERR48 DIAGNOSTIC FAILURE
- CON 0000,ERR51
- ERRE BSS 0 LIST ADDRESSES
- CON ERRC-2 MANUAL INTERVENTION CODES
- CON ERRD-2 SYSTEM INTERVENTION CODES
- FCN SPACE 4,10
- ** FCN - ISSUE FUNCTION.
- *
- * ENTRY (A) = FUNCTION CODE.
- *
- * ERROR TO *ERR*.
- *
- * CALLS RCS.
- FCN SUBR ENTRY/EXIT
- STM FCNA
- LDN FTRC SET INTERNAL REPEAT COUNT
- STD T0
- FCN1 FNC 0,CH ISSUE FUNCTION
- FCNA EQU *-1
- LDC FTOD
- FCN2 IJM FCNX,CH IF FUNCTION ACCEPTED
- SBN 1
- NJN FCN2 IF NOT TIMED OUT
- DCN CH+40
- SOD T0
- NJN FCN1 IF RETRY COUNT NOT SATISFIED
- STD SF
- * LDN 0
- RJM RCS GLOBALLY DOWN CHANNEL
- LDN ETFN
- RJM ERR PROCESS ERROR
- GDS SPACE 4,10
- ** GDS - GET DEVICE STATUS.
- *
- * CALLS CFE, FCN, WFW.
- GDS SUBR ENTRY/EXIT
- LDC FWDS
- RJM WFW WRITE FUNCTION WORD
- ACN CH
- LDN DVSTL INPUT DEVICE STATUS
- IAM DVST,CH
- RJM CFE
- LDC FCCS CLEAR COMMAND SEQUENCE
- RJM FCN
- UJN GDSX RETURN
- GSS SPACE 4,15
- ** GSS - GET SLAVE STATUS.
- *
- * ENTRY (A) = 0 TO IGNORE INTERVENTION STATUS.
- *
- * EXIT (A) = EXECUTION STATUS.
- * (SS) = STATUS FLAGS.
- *
- * ERROR TO *ERR* IF *INTERVENTION REQUIRED*.
- *
- * USES T2.
- *
- * CALLS CFE, WFW.
- GSS5 LMN ESCC RESTORE EXECUTION STATUS
- GSS SUBR ENTRY/EXIT
- STD T2
- LDC FWSB
- RJM WFW WRITE FUNCTION WORD
- ACN CH
- LDN SLSTL INPUT STATUS BLOCK
- IAM SLST,CH
- RJM CFE
- LDML SLST CHECK COMMAND BLOCK NUMBER
- LPN 17
- NJN GSS4 IF INVALID BLOCK NUMBER
- LDML SLST
- STML EXST
- SHN 0-10 EXTRACT STATUS FLAGS
- STD SS
- LPN 70 CHECK EXECUTION STATUS
- LMN ESCC
- NJN GSS5 IF NOT *COMMAND COMPLETE*
- LDD T2
- GSS1 ZJN GSS5 IF NO INTERVENTION STATUS ANALYSIS
- LDD SS
- LPN 6
- ZJN GSS5 IF NO INTERVENTION FLAGS
- GSS2 LDN EIRQ
- GSS3 RJM ERR PROCESS ERROR
- GSS4 LDN ECBN
- UJN GSS3 COMMAND BLOCK NUMBER
- IBM SPACE 4,20
- ** IBM - ISSUE BML MESSAGE.
- *
- * ENTRY (A) = 6/ ML, 12/ SC
- * ML = MESSAGE LENGTH (CM WORD COUNT).
- * SC = MESSAGE SYMPTOM CODE.
- * (RW) = READ / WRITE FLAG.
- * (DT) = DEVICE TYPE.
- * (EO) = EST ORDINAL.
- * (UN) = UNIT NUMBER.
- * (MISC) = 1 IF UNRECOVERED ERROR.
- *
- * EXIT (A) = (MISC) = 0.
- *
- * USES T2, T3.
- *
- * CALLS CMC, IMB, UEC.
- IBM SUBR ENTRY/EXIT
- LMC D1HY*400
- STM BMLM+1
- SHN -14 SET MESSAGE LENGTH
- STD T2
- ZJN IBM1 IF BASIC MESSAGE ONLY
- LDN 1
- IBM1 STD T3
- LDD DT
- ADC RM0120 SET MESSAGE ID
- STM BMLM
- LDML CREG,DI SET PORT NUMBER
- SHN 6-16
- * LPC 100
- STM PORT
- LDD UN SET UNIT NUMBER
- STM UNIT
- LDD EO SET EST ORDINAL
- STM ESTO
- LDM ERCT,DI SET RETRY COUNT
- SHN 5
- LMD RW MERGE READ / WRITE FLAG
- SHN 1
- RAM MISC
- RJM CMC CHECK MONITOR COMPLETE
- LDM MAD1
- NJN IBM3 IF HEADER NOT REQUIRED
- LDD T2 PARTIAL MESSAGE LENGTH
- ADN 3 HEADER LENGTH
- STM MSGL+1 COMPLETE MESSAGE LENGTH
- LDM MAD2 MESSAGE ADDRESS
- STD T0
- LDN 3*5-1
- STD T3
- IBM2 SOD T0 MOVE HEADER TO MESSAGE
- LDM MSGP,T3
- STI T0
- SOD T3
- PJN IBM2 IF MOVE NOT COMPLETE
- LDD T0
- IBM3 RJM IMB ISSUE MESSAGE TO BUFFER
- RJM UEC UPDATE MST ERROR COUNT
- LDC MBUF
- STM MAD2 RESTORE MESSAGE ADDRESS
- LDN 0
- STM MAD1
- STM MISC CLEAR UNRECOVERED ERROR STATUS
- * LDN 0
- LJM IBMX RETURN
- MAD1 CON 0 MESSAGE ADDRESS IF MESSAGE HAS HEADER.
- MAD2 CON MBUF MESSAGE ADDRESS IF HEADER MUST BE ADDED.
- MSGP CON 0 MESSAGE PREFIX
- CON 0
- MSGL CON 0,0 MESSAGE LENGTH
- CON MLDY MESSAGE TYPE
- BMLM BSS 0 BML MESSAGE PREFIX
- VFD 12/RM0120 887 MESSAGE ID
- VFD 12/ SYMPTOM CODE
- VFD 6/,6/ CPP NUMBER, CHANNEL NUMBER
- UNIT VFD 6/0,6/ UNUSED, UNIT NUMBER
- PORT VFD 6/,6/0 PORT NUMBER, UNUSED
- ESTO VFD 12/ EST ORDINAL
- MISC VFD 6/,4/0,2/ RETRY COUNT, UNUSED, WRITE + REC FLAGS
- VFD 12/0 UNUSED
- MFID VFD 12/ MAINFRAME ID
- VFD 12/0 UNUSED
- IEM SPACE 4,10
- ** IEM - ISSUE BML ERROR MESSAGE.
- *
- * ENTRY (A) = SYMPTOM CODE OFFSET FROM *HD0100*.
- * (ML) = MESSAGE LENGTH (CM WORD COUNT).
- *
- * EXIT (A) = (ML) = 0.
- *
- * CALLS IBM.
- IEM SUBR ENTRY/EXIT
- ADD HN
- ERRNZ HD0100-100 CODE DEPENDS ON VALUE
- STD T0
- LDC EBUF SET MESSAGE ADDRESS
- STM MAD2
- LDD ML MESSAGE LENGTH
- SHN 14
- LMD T0
- RJM IBM ISSUE ERROR MESSAGE
- * LDN 0
- STD ML
- UJN IEMX RETURN
- IIO SPACE 4,15
- ** IIO - INITIATE I/O.
- *
- * ENTRY (A) = (CB) = *CBT* ORDINAL.
- *
- * EXIT (A) = 0 IF I/O DISABLED ON THIS CHANNEL.
- * (RW) = READ / WRITE STATUS.
- * (PA) = PROCESSOR ADDRESS.
- * (TO) = SEEK TIMEOUT VALUE.
- * (NR - NR+4) = PHYSICAL ADDRESS OF REQUEST.
- *
- * USES T1 - T7.
- *
- * CALLS PEF.
- *
- * MACROS CBTE.
- IIO3 STD PA
- SCN 77 SET I/O DISABLED STATUS
- IIO SUBR ENTRY/EXIT
- SHN CBTLS
- CBTE *
- ADC PAD1 FETCH SEEK PARAMETERS FROM *CBT*
- CRD NR
- ADN PAD4-PAD1 GET CHANNEL FROM CBT ENTRY
- CRD T1
- ADN HSLK-PAD4 GET CHANNEL SELECT STATUS
- CRD T2
- SBN HSLK-IOLK GET READ / WRITE FLAG
- CRD T3
- LDD T2 CHECK ERROR FLAGS
- SHN 0-12
- ZJN IIO2 IF NO FLAGS
- SHN -1
- STD RW PROCESS ERROR FLAGS
- RJM PEF
- IIO1 NJN IIO3 IF I/O PREPROCESSING INDICATED
- IIO2 LDD NR+1
- STM WCBA+5 SET CYLINDER IN COMMAND BLOCK
- STM CYLN,DI
- LDD NR+2
- STM TKSN,DI TRACK + SECTOR
- SCN 77
- SHN 2
- LMD NR+2 SEPARATE INTO 8 BIT FIELDS
- SCN 77
- LMD NR+2 SET IN COMMAND BLOCK
- STML WCBA+6
- LDD T3
- SHN 22-11 EXTRACT WRITE DATA FLAG
- LPN 1
- STM RWST,DI SET READ / WRITE STATUS
- STD RW
- LDN 3
- STD TO SEEK TIMEOUT = 3 SECONDS
- LDC PIO
- UJN IIO1 SET PROCESSOR ADDRESS
- IMR SPACE 4,15
- ** IMR - INITIATE MONITOR REQUEST.
- *
- * ENTRY (A) = *BIOM* SUBFUNCTION.
- * (PO) = *PUT* ORDINAL.
- * (WB+3 - WB+4) = *BIOM* PARAMETERS.
- *
- * EXIT (A) = 0.
- *
- * USES WB - WB+2.
- *
- * CALLS AME, CMC.
- IMR2 RJM AME ATTEMPT MONITOR EXCHANGE
- * LDN 0
- IMR SUBR ENTRY/EXIT
- STD WB+1
- LDD PO SET *PUT* ORDINAL
- STD WB+2
- LDN BIOM SET MONITOR FUNCTION
- STD WB
- RJM CMC CHECK MONITOR COMPLETE
- LDD OA
- CWD WB
- UJN IMR2 ATTEMPT EXCHANGE
- IOM SPACE 4,10
- ** IOM - ISSUE OPERATOR MESSAGE.
- *
- * ENTRY (A) = ADDRESS OF MESSAGE.
- * = 0 TO CLEAR MESSAGE.
- * (EO) = EST ORDINAL.
- *
- * USES T1.
- *
- * CALLS C2D.
- IOM1 LDD CP CLEAR THE MESSAGE
- ADN MS2W
- CWD T1
- IOM SUBR ENTRY/EXIT
- STD T1
- ZJN IOM1 IF CLEAR MESSAGE CALL
- STM IOMA
- LDD EO CONVERT EST ORDINAL
- RJM C2D
- STM 2,T1 SET IN MESSAGE
- LDD EO
- SHN -6
- LMC 2RQ0
- STM 1,T1
- LDD CP STORE OPERATOR MESSAGE
- ADN MS2W
- CWM **,TR
- IOMA EQU *-1
- UJN IOMX RETURN
- ISF SPACE 4,15
- ** ISF - ISSUE *SEQM* FUNCTION.
- *
- * ENTRY (A) = *SEQM* SUBFUNCTION.
- * (EO) = EST ORDINAL.
- * (IR+4) = CHANNEL NUMBER.
- *
- * EXIT (A) = 0.
- *
- * USES T2, CM - CM+4.
- *
- * CALLS CMC.
- *
- * MACROS MONITOR.
- ISF SUBR ENTRY/EXIT
- STD T2
- RJM CMC CHECK MONITOR COMPLETE
- LDD EO
- STD CM+1 SET EST ORDINAL
- LDD T2
- STD CM+2 SET *SEQM* SUBFUNCTION
- LDD IR+4
- STD CM+3 SET CHANNEL NUMBER
- MONITOR SEQM
- * LDN 0
- UJN ISFX RETURN
- ISR SPACE 4,10
- ** ISR - IDENTIFY SPECIAL REQUEST.
- *
- * ENTRY (A) = SPECIAL REQUEST FLAGS.
- *
- * EXIT (A) = 0 IF UNIDENTIFIED FLAG.
- * (PA) = PROCESSOR ADDRESS.
- * (RW) = SPECIAL REQUEST INDEX.
- ISR2 LDM ISRA,RW SET SPECIAL REQUEST PROCESSOR
- STD PA
- ISR SUBR ENTRY/EXIT
- SHN -1
- STD T0 SAVE FLAGS
- LCN 0
- ERRNZ DUNF+1-SPDF CODE DEPENDS ON VALUE
- STD RW
- ISR1 AOD RW ADVANCE INDEX
- LDD T0
- SHN 21-0 CHECK NEXT FLAG
- STD T0
- PJN ISR1 IF NOT SET
- LDD RW
- STM RWST,DI SET INDEX FOR DIAGNOSTICS
- ADN SPDF
- STM SREQ,DI SET SPECIAL REQUEST FLAG
- SBN DUCF+1
- MJN ISR2 IF VALID REQUEST
- LDN 0
- UJN ISRX RETURN
- ISRA BSS 0 SPECIAL REQUEST PROCESSORS
- CON SPD SPIN-DOWN DRIVE
- CON SPU SPIN-UP DRIVE
- CON DUC DAYFILE UNIT CHARACTERISTICS
- PEF SPACE 4,15
- ** PEF - PROCESS ERROR FLAGS.
- *
- * ENTRY (RW) = ERROR INDEX.
- * (CB) = *CBT* ORDINAL.
- * (T1) = BYTE 0 OF *PAD4* WORD OF CBT ENTRY.
- * (RF) = SPECIAL REQUEST FLAGS.
- * (NR - NR+4) = *PAD1* WORD OF *CBT* ENTRY.
- *
- * EXIT (A) = 0 IF OK TO INITIATE I/O.
- * = I/O PREPROCESSOR ADDRESS.
- *
- * USES RW, PA.
- *
- * CALLS CPF, IIO, WFC.
- PEF6 LDN 0 INDICATE I/O IN ORDER
- PEF SUBR ENTRY/EXIT
- LDD T1
- SHN -6
- LMD IR+4 CHECK CHANNEL NUMBER
- NJN PEFX IF I/O DISABLED ON THIS ACCESS
- LDM ERCT,DI
- NJN PEF1 IF PATH VERIFICATION INITIATED
- LDM PEFA,RW
- STM ERCT,DI SET INITIAL ERROR COUNT
- PEF1 LDM IPPS,DI
- NJN PEF6 IF I/O PREPROCESSING COMPLETE
- LDD RW
- SHN 14-0
- NJN PEF2 IF NOT *1MV* DEVICE VERIFICATION
- * CHECK DISK ADDRESS AT BEGINNING OF MAINTENANCE CYLINDER.
- LDD NR+1 CHECK CURRENT CYLINDER
- .CY SET MCLTDF-4000
- ERRNZ MCLTDH-MCLTDF CODE DEPENDS ON VALUE
- LMC .CY/2
- NJN PEF6 IF NOT MAINTENANCE CYLINDER
- LDD NR+2
- NJN PEF6 IF DEVICE VERIFICATION IN PROGRESS
- LDD RF
- LPN DVRF
- ZJN PEFX IF NO VERIFICATION DIAGNOSTICS
- LCN PEF4-PEF3
- PEF2 ADC PEF4
- UJP PEFX RETURN
- PEF3 LDN DVDF CLEAR DIAGNOSTICS REQUESTED FLAG
- RJM CPF
- PEF4 LDM PEFB,RW SET I/O PREPROCESSOR ADDRESS
- STD PA
- LDN 2 SELECT VERIFICATION DIAGNOSTICS
- STD RW
- STM RWST,DI SAVE AS READ / WRITE STATUS
- LDC PEF5
- LJM 0,PA EXIT TO PREPROCESSOR
- PEF5 LDC FWCA CLEAR ATTENTION
- RJM WFC
- LDD CB INITIATE I/O
- STM IPPS,DI
- RJM IIO
- LJM 0,PA EXIT TO PROCESSOR
- PEFA BSS 0 INITIAL ERROR COUNT
- CON 0
- CON CSRC
- PEFB BSS 0 I/O PREPROCESSOR
- CON RND1
- CON SRS1
- RBD SPACE 4,10
- ** RBD - READ BUFFERED DISK.
- *
- * ENTRY (CB) = CURRENT *CBT* ORDINAL.
- *
- * EXIT (A) = *ETTC* IF TRANSFER COMPLETE TIMEOUT.
- *
- * CALLS COS, EIO, SFR, WTR.
- RBD SUBR ENTRY/EXIT
- RBD1 RJM WTR WRITE *T* REGISTER
- LDD CB
- RJM EIO ENTER REQUEST IN I/O QUEUE
- RJM SFR
- ZJN RBDX IF NO CONSECUTIVE REQUEST FOUND
- STD CB
- LCN 1 CHECK OPERATIONAL STATUS
- RJM COS
- ZJN RBD1 IF TRANSFER COMPLETE
- LDN ETTR
- UJN RBDX RETURN ERROR
- RCR SPACE 4,10
- ** RCR - RESET CHANNEL REGISTERS.
- *
- * EXIT (SF) = 0 (DEVICE NOT SELECTED).
- *
- * CALLS FCN.
- RCR SUBR HYD4 ENTRY/EXIT
- DCN CH+40
- LDK FCMC MASTER CLEAR THE ADAPTOR
- RJM FCN
- LDN 0 SET DEVICE NOT SELECTED
- STD SF
- UJN RCRX RETURN
- RCS SPACE 4,10
- ** RCS - REMOVE CHANNEL FROM SYSTEM USE.
- *
- * ENTRY (A) = EST ORDINAL IF CHANNEL IS TO BE DOWNED ON A
- * PARTICULAR DEVICE.
- * = 0 IF CHANNEL IS TO BE GLOBALLY DOWNED.
- *
- * USES CM - CM+4.
- *
- * MACROS DELAY, EXECUTE, MONITOR.
- RCS SUBR ENTRY/EXIT
- LMC 4000 SET DRIVER CALL FLAG, EST ORDINAL
- STM RCSA+4
- LDD MA WRITE *1DS* CALL IN MESSAGE BUFFER
- CWM RCSA,ON
- RCS1 LDN 0 SET NON-PRIORITY REQUEST
- STD CM+1
- EXECUTE 1DS,=
- MONITOR RPPM
- LDD CM+1
- NJN RCSX IF *1DS* STARTED
- DELAY
- UJN RCS1 RETRY CALL
- RCSA VFD 18/3L1DS,6/,12/DWNF,12/0,12/4000
- RCT SPACE 4,10
- ** RCT - READ CHANNEL TABLE.
- *
- * EXIT (A) = CHANNEL TABLE STATUS BYTE.
- *
- * USES NR - NR+4.
- *
- * MACROS CHTE.
- RCT SUBR ENTRY/EXIT
- CHTE *
- LDC 0 READ CHANNEL TABLE ENTRY
- CRD NR
- RCTA LDD NR+0
- UJN RCTX RETURN
- RLB SPACE 4,15
- ** RLB - READ LINKAGE BITS.
- *
- * ENTRY (A) = (T6) = ADDRESS FOR LINKAGE IN (CM - CM+4).
- * (PB) = CONTROL BUFFER ORDINAL.
- * (T1) = DATA BUFFER ADDRESS.
- * (T2) = CONTROL BUFFER WORD NUMBER.
- * (CM - CM+4) = *PAD* WORD OF *CBT* ENTRY.
- *
- * EXIT SECTOR LINKAGE SET IN *CBT* ENTRY.
- *
- * USES T6.
- *
- * MACROS CBTE.
- RLB1 LDN 10+4 ADVANCE BUFFER ADDRESS
- RAD T1
- LDIL T1 EXTRACT LINKAGE FROM BUFFER
- RLB2 SHN -14
- SHN 10 POSITION FOR *CBT* ENTRY
- STI T6
- LDML 4,T1 EXTRACT LINKAGE FROM BUFFER
- SHN -14
- SHN 4 POSITION FOR *CBT* ENTRY
- RAI T6
- LDML 10,T1 EXTRACT LINKAGE FROM BUFFER
- SHN -14
- * SHN 0 POSITION FOR *CBT* ENTRY
- RAI T6
- AOD T6 ADVANCE *CBT* WORD ADDRESS
- LMN CM+5
- NJN RLB1 IF MORE LINKAGE
- LDD PB
- SHN CBTLS
- CBTE *
- ADC 0 FWA OF *CBT*
- ADD T2
- CWD CM UPDATE CONTROL BUFFER ENTRY
- RLB SUBR ENTRY/EXIT
- * LDD T6
- UJN RLB2 MOVE SECTOR LINKAGE
- R1B SPACE 4,10
- ** R1B - READ ONE BYTE.
- *
- * ENTRY (A) = FUNCTION CODE.
- *
- * EXIT (A) = (CD) = CHANNEL DATA.
- *
- * CALLS CFE, FCN.
- R1B SUBR ENTRY/EXIT
- RJM FCN
- ACN CH
- IAN CH
- STDL CD SAVE INPUT
- LDN 0
- RJM CFE CHECK FOR ERROR
- LDDL CD
- UJN R1BX RETURN
- SAP SPACE 4,10
- ** SAP - SELECT ADAPTOR PORT.
- *
- * CALLS FCN, WTC.
- SAP SUBR ENTRY/EXIT
- LDC FCWC
- RJM FCN WRITE CONTROL REGISTER
- ACN CH
- LDML CREG,DI OUTPUT PORT SELECT
- OAN CH
- LDN 0 WAIT - TRANSMISSION COMPLETE
- RJM WTC
- UJN SAPX RETURN
- SCD SPACE 4,10
- ** SCD - STORE *CPD* DATA.
- *
- * ENTRY (A) = 0 TO INDICATE CHANNEL INACTIVE.
- * = 1 TO INDICATE CHANNEL ACTIVE.
- * (UC) = UNIT ACTIVITY COUNT.
- *
- * USES T7, CM - CM+4.
- *
- * MACROS CCTE.
- SCD SUBR ENTRY/EXIT
- STD T7
- LDN ZERL CLEAR UNUSED BYTES
- CRD CM
- LDD UC INSERT UNIT COUNT
- STD CM
- CCTE *
- LDC CREQ STORE *CPD* DATA
- CWD T7
- UJN SCDX RETURN
- SEC SPACE 4,10
- ** SEC - SET ERROR CODE.
- *
- * ENTRY (EO) = EST ORDINAL.
- *
- * USES T5, WB+3 - WB+4.
- *
- * CALLS IMR, RCR, RCS, SES.
- SEC1 LDN 1 *CBT* COUNT TO BE DELINKED
- STD WB+3
- SHN 13-0 SET INTERLOCK RELEASED (FOR *CMP*)
- STM RQIN,DI
- LDM FALT
- SHN -2 CREATE INDEX FROM FAULT CODE
- STD T5
- LDM TMSE,T5 SET MASS STORAGE ERROR CODE
- STD WB+4
- LDN SETS INSERT CODE IN *CBT*
- RJM IMR
- SOD UC DECREMENT UNIT ACTIVITY COUNT
- SEC SUBR ENTRY/EXIT
- RJM RCR RESET CHANNEL REGISTERS
- LDD EO
- STD T5 EST ORDINAL FOR *SES*
- LDN STDE
- RJM SES SET ERROR STATUS IN MST
- LDM SREQ,DI
- ZJN SEC1 IF I/O PROCESSING
- LDD EO DOWN CHANNEL ON THIS DEVICE
- RJM RCS
- LJM CMP1 COMPLETE PROCESSING
- SFR SPACE 4,15
- ** SFR - SEARCH FOR CONSECUTIVE REQUEST.
- *
- * ENTRY (CB) = CURRENT *CBT* ORDINAL.
- * (DT) = DEVICE TYPE.
- *
- * EXIT (A) = 0 IF NO CONSECUTIVE REQUEST FOUND.
- * = (NB) = *CBT* ORDINAL OF NEXT REQUEST.
- * (NR - NR+4) = PHYSICAL ADDRESS OF NEXT REQUEST.
- *
- * USES CM - CM+4, T1 - T6.
- *
- * MACROS CBTE.
- SFR SUBR ENTRY/EXIT
- LDD CB
- SHN CBTLS FETCH SEEK PARAMETERS FROM *CBT*
- CBTE *
- ADC PAD1
- CRD CM
- ADN IOLK-PAD1 (T1) = I/O LINK-UP FLAGS
- CRD T1
- LDD T1 CHECK STREAMING ENABLED
- LPN 40
- NJN SFR1 IF DATA STREAMING DISABLED
- LDD T1+2
- ZJN SFRX IF NO REQUEST AVAILABLE
- STD NB
- SHN CBTLS
- CBTE *
- ADC PAD1 PHYSICAL ADDRESS OF NEXT REQUEST
- CRD NR
- ADN IOLK-PAD1 I/O LINK-UP WORD OF NEXT REQUEST
- CRD T2
- LDD T2 COMPARE LINK-UP FLAGS
- LMD T1
- LPC DRFM+ILFM
- ZJN SFR3 IF SAME DIRECTION AND INTERLOCKED
- SFR1 LDN 0
- STD NB
- SFR2 UJN SFRX RETURN
- SFR3 LDD NR+1 CHECK SEEK PARAMETERS
- SBD CM+1
- ZJN SFR4 IF SAME CYLINDER
- SBN 1
- NJN SFR1 IF NOT NEXT CYLINDER
- LDD NR+2
- NJN SFR1 IF NOT CONSECUTIVE CYLINDER REQUEST
- SBK PTCYDF*100
- UJN SFR5 CHECK NEXT TRACK / SECTOR
- ERRNZ PTCYDH-PTCYDF CODE DEPENDS ON VALUE
- SFR4 LDD CM+2 CHECK NEXT SECTOR
- ADM SFRA,DT
- LMD NR+2
- ZJN SFR6 IF NEXT SECTOR ON SAME TRACK
- LDN 0
- SFR5 ADD CM+2 SET NEXT TRACK
- ADD HN
- SBM SFRB,DT CHECK NEXT SECTOR
- LMD NR+2
- NJN SFR1 IF NOT NEXT SECTOR ON CONSECUTIVE TRACKS
- SFR6 LDD NB
- UJN SFR2 RETURN
- SFRA BSS 0 PHYSICAL SECTORS PER I/O BUFFER
- CON PSBFDF
- CON PSBFDH
- SFRB BSS 0 FACTOR FOR NEXT SECTOR CALCULATION
- CON PSPTDF-PSBFDF
- CON PSPTDH-PSBFDH
- SLB SPACE 4,15
- ** SLB - SET LINKAGE BITS.
- *
- * ENTRY (PB) = *CBT* ORDINAL.
- * (RW) = READ / WRITE STATUS.
- *
- * EXIT LINKAGE BITS SET IN *CBT* ENTRY / UEM BUFFER.
- *
- * USES CM - CM+4, T0 - T6, UA - UA+1.
- *
- * CALLS RLB, SUA, WLB.
- *
- * MACROS CBTE.
- SLB SUBR ENTRY/EXIT
- LDD PB
- RJM SUA SET UEM ADDRESS
- LDN PAD1
- STD T2
- SRD T3
- LDN 5 UEM WORD COUNT
- STD T5
- LDM SLBB,RW SET PROCESSOR ADDRESS
- STM SLBA
- SLB1 LRD UA LOAD *R* REGISTER
- LDD PB
- SHN CBTLS READ CONTROL BUFFER WORD
- CBTE *
- ADC 0 FWA OF *CBT*
- ADD T2
- CRD CM
- LDC SBUF-4 SET BUFFER ADDRESS
- STD T1
- LDC 1S17 READ START OF BUFFER SEGMENT
- CRML SBUF,T5
- LDN CM+3 SET *CBT* ENTRY ADDRESS
- STD T6
- RJM 0 MOVE LINKAGE BITS
- SLBA EQU *-1
- LDN 10 ADVANCE *R* REGISTER IMAGE
- RAD UA+1
- SHN -14
- RAD UA
- AOD T2 ADVANCE CONTROL BUFFER WORD
- LMN PAD4+1
- NJN SLB1 IF NOT COMPLETE
- LRD T3
- UJP SLBX RETURN
- SLBB CON RLB
- CON WLB
- SRF SPACE 4,10
- ** SRF - SET DRIVER RELOAD FLAG.
- *
- * EXIT (A) = 0.
- *
- * USES CM - CM+4.
- *
- * CALLS CMC, DCR.
- *
- * MACROS CHTE, MONITOR.
- SRF SUBR ENTRY/EXIT
- RJM CMC
- RJM DCR DROP CHANNEL RESERVATION
- * LDN 0
- STD CM+2 CLEAR UNUSED BYTE
- CHTE *
- LDC CTALL*2 ADDRESS OF CHANNEL CONTROLWARE TABLE ENTRY
- STD CM+4
- SHN -14
- STD CM+3
- LDN 1 SET NUMBER OF REQUESTS
- STD CM+1
- LDD MA STORE REQUEST IN MESSAGE BUFFER
- CWM SRFA,CM+1
- MONITOR UTEM SET RELOAD FLAG
- * LDN 0
- UJN SRFX RETURN
- SRFA VFD 1/0,5/0,6/1,6/,42/1
- SSD SPACE 4,15
- ** SSD - SELECT SLAVE DEVICE.
- *
- * ENTRY (SF) = 1 IF DEVICE PREVIOUSLY SELECTED.
- * (UN) = UNIT NUMBER.
- *
- * EXIT (A) .NE. 0 IF DEVICE SELECTED.
- * (SF) = 1 IF DEVICE SELECTED.
- *
- * ERROR TO *ERR* IF SELECT REJECT.
- *
- * USES T2.
- *
- * CALLS FCN, R1B, SAP, WFW.
- SSD4 AOD SF SET DEVICE SELECTED
- SSD SUBR ENTRY/EXIT
- LDD SF
- NJN SSDX IF DEVICE PREVIOUSLY SELECTED
- LDN DSRC
- STD T2
- RJM SAP SELECT ADAPTOR PORT
- SSD1 LDD UN
- LMC FWBS WRITE FUNCTION WORD
- RJM WFW
- SSD2 LDC FCRO GET OPERATIONAL STATUS
- RJM R1B
- SHN 0-11
- LPN 35 EXTRACT PAUSE, SYNC IN/OUT, SELECT ACTIVE
- LMN 1
- ZJN SSD4 IF DEVICE SELECTED
- LDC FCCH
- RJM FCN CLEAR SELECT HOLD
- SOD T2
- NJN SSD1 IF RETRY COUNT NOT EXHAUSTED
- LDC FCIS
- RJM R1B CHECK IDLE STATUS
- SHN -10
- LPML TMSK,UN
- ZJN SSD3 IF DRIVE NOT BUSY
- LDN EDRA&ETSL
- SSD3 LMN ETSL
- RJM ERR PROCESS ERROR
- STF SPACE 4,15
- ** STF - REQUEST TRACK FLAW.
- *
- * ENTRY (CB) = CURRENT *CBT* ORDINAL.
- * (EO) = EST ORDINAL.
- *
- * USES CM - CM+4, T3 - T3+4.
- *
- * CALLS CMC, C2D, IBM.
- *
- * MACROS CBTE, MONITOR.
- STF SUBR ENTRY/EXIT
- RJM CMC
- LDD EO CONVERT EST ORDINAL
- SHN -3
- RJM C2D
- STM STFB+1 SET ORDINAL IN MESSAGE
- LDD EO
- STD CM+1
- LPN 7
- SHN 6
- ADC 2R0,
- STM STFB+2
- LDD CB FETCH *CBT* INFORMATION
- SHN CBTLS
- CBTE *
- ADC PAD1
- CRD T3
- LDD T3+1 DETERMINE LOGICAL TRACK NUMBER
- SHN 1
- ERRNZ LTCYDF-2 CODE DEPENDS ON VALUE
- ADC 4000
- ERRNZ LTCYDH-LTCYDF CODE DEPENDS ON VALUE
- STD CM+2
- LDD T3+2
- ERRNZ PTCYDF-4 CODE DEPENDS ON VALUE
- SHN -7
- ERRNZ PTCYDH-PTCYDF CODE DEPENDS ON VALUE
- RAD CM+2
- RJM C2D CONVERT TRACK NUMBER FOR MESSAGE
- STM STFB+5
- LDD CM+2
- SHN -6
- RJM C2D
- STM STFB+4
- LDK SFTS INSERT SUBFUNCTION
- STD CM+3
- MONITOR SMDM SET TRACK FLAW REQUEST IN MST
- LDD CM+1
- NJN STF2 IF THIS FLAW ALREADY REQUESTED
- LDC STFA
- STM MAD1 ISSUE ERROR LOG MESSAGE
- RJM IBM
- STF2 LJM STFX RETURN
- STFA VFD 24/0 RESERVED
- VFD 12/1 ERRLOG ALERT FLAG
- VFD 12/STFAL MESSAGE LENGTH
- VFD 12/ELDY ERRLOG DAYFILE
- STFB DATA C*EQXXX,TKNNNN, MEDIA DEFECT ENCOUNTERED.*
- .1 SET *-STFA+4
- STFAL EQU .1/5
- STO SPACE 4,10
- ** STO - SET TIMEOUT.
- *
- * ENTRY (A) = TIMEOUT VALUE (IN SECONDS).
- * (PO) = *PUT* ORDINAL.
- *
- * USES T5, T6, T7, CM - CM+4.
- *
- * MACROS FTTE.
- STO SUBR ENTRY/EXIT
- STD T6
- LDC RTCL FETCH CURRENT TIME
- CRD CM
- LDD T6
- RAD CM+1 SET TIME LIMIT
- SHN -14
- RAD CM
- LDM STO SET CALLERS ADDRESS
- STD T7
- LDN 0
- STD T5
- LDD PO STORE TABLE ENTRY
- SHK FTTLS
- FTTE *
- ADC 0
- CWD T5
- UJN STOX RETURN
- SUA SPACE 4,10
- ** SUA - SET UEM ADDRESS.
- *
- * ENTRY (A) = *CBT* ORDINAL.
- *
- * EXIT (UA - UA+1) = UEM ADDRESS / 100.
- *
- * USES CM - CM+4.
- *
- * MACROS CBTE.
- SUA SUBR ENTRY/EXIT
- SHN CBTLS
- CBTE *
- ADC IOLK READ *CBT* ENTRY
- CRD CM
- LDD CM+4 EXTRACT RELATIVE UEM ADDRESS
- ADC 0
- SUAA EQU *-1
- SHN -6
- STD UA+1 SET ABSOLUTE ADDRESS / 100
- LDD CM+3
- ADC 0
- SUAB EQU *-1
- SHN 6
- RAD UA+1
- SHN -14
- STD UA
- UJN SUAX RETURN
- SUI SPACE 4,15
- ** SUI - SET UNIT INTERLOCK.
- *
- * ENTRY (PO) = *PUT ORDINAL.
- *
- * EXIT (A) = 0 IF *PUT* ENTRY INTERLOCKED.
- * (UC) = UNIT ACTIVITY COUNT INCREMENTED.
- *
- * USES CM - CM+4.
- *
- * CALLS CMC.
- *
- * MACROS MONITOR.
- SUI1 AOD UC ADVANCE UNIT ASSIGNED COUNT
- LDN 0
- SUI SUBR ENTRY/EXIT
- RJM CMC
- LDD PO SET *PUT* ORDINAL
- STD CM+2
- LDN SUIS SET SUBFUNCTION
- STD CM+1
- MONITOR BIOM INTERLOCK DEVICE
- LDD CM+1
- ZJN SUI1 IF INTERLOCK ACQUIRED
- LMD OA
- UJN SUIX RETURN
- TMSE SPACE 4,10
- ** TMSE - TABLE OF MASS STORAGE ERROR CODES.
- *
- * INDEXED BY FAULT CODE / 4.
- TMSE BSS 0
- LOC 0
- CON CHPE CHANNEL PARITY
- CON CHFE CHANNEL FAILURE
- CON FTOE FUNCTION TIMEOUT
- CON PARE DATA PARITY (MEDIA)
- CON NRDE DEVICE NOT READY
- CON IDTE DATA TRANSFER
- CON DSTE DEVICE STATUS
- CON DSTE DEVICE STATUS
- CON DSTE DEVICE STATUS
- CON DSTE DEVICE STATUS
- CON DDFE DIAGNOSTIC FAILURE
- CON DRVE DRIVE RESERVED
- LOC *O
- TMSK SPACE 4,10
- ** TMSK - TABLE OF UNIT MASKS.
- *
- * INDEXED BY UNIT NUMBER.
- TMSK BSS 0
- LOC 0
- CON 200
- CON 100
- CON 040
- CON 020
- CON 010
- CON 004
- CON 002
- CON 001
- LOC *O
- UEC SPACE 4,15
- ** UEC - UPDATE MST ERROR COUNT.
- *
- * ENTRY (EO) = EST ORDINAL.
- * (BMLM+2) = BML MESSAGE SYMPTOM CODE.
- * (MISC - BIT 0) = 1 IF UNRECOVERED ERROR.
- *
- * USES CM - CM+4.
- *
- * MACROS MONITOR.
- UEC SUBR ENTRY/EXIT
- LDM BMLM+1
- LMC D1HY*400+HD0111
- NJN UECX IF NOT COMPLETION MESSAGE
- LDD EO
- STD CM+1 SET EST ORDINAL
- LDM MISC
- LPN 1 SET BYTE NUMBER
- ADN 3
- STD CM+2
- LDN ICTS INCREMENT ERROR COUNT
- STD CM+3
- MONITOR SMDM
- UJN UECX RETURN
- UHD SPACE 4,15
- ** UHD - UNPACK HEX DATA.
- *
- * ENTRY (A) = 6/ BC, 12/ SA
- * BC = BYTE COUNT OF HEX DATA.
- * SA = SOURCE DATA ADDRESS.
- * (T3) = DESTINATION DATA ADDRESS.
- *
- * EXIT (A) = CM WORD COUNT OF 12 BIT DATA.
- *
- * USES T2, T4, T5.
- *
- * CALLS DV5.
- UHD3 AOD T3 SET END OF 12 BIT DATA
- STM UHDA
- LDN ZERL ENSURE ZERO FILL TO CM WORD BOUNDARY
- CRM *,ON
- UHDA EQU *-1
- LDD T3 SET BYTE COUNT OF 12 BIT DATA
- SBD T5
- RJM DV5 CONVERT TO CM WORD COUNT
- UHD SUBR ENTRY/EXIT
- STD T2
- SHN -14 SET BYTE COUNT
- STD T4
- LDD T3 PRESERVE DESTINATION BUFFER ADDRESS
- STD T5
- UHD1 LDIL T2 UNPACK N+3RD BYTE
- SHN 16
- STI T3
- SHN -6
- SCN 77
- STM 1,T3
- AOD T3
- SOD T4
- UHD2 ZJN UHD3 IF END OF HEX DATA
- AOD T2
- LDIL T2 UNPACK N+4TH BYTE
- SHN -10
- RAI T3
- AOD T3
- LDIL T2
- SHN 4
- SCN 17
- STI T3
- SOD T4
- ZJN UHD2 IF END OF HEX DATA
- AOD T2
- LDIL T2 UNPACK N+5TH BYTE
- STM 1,T3
- SHN -14
- RAI T3
- AOD T3
- SOD T4
- ZJN UHD2 IF END OF HEX DATA
- AOD T2
- AOD T3
- UJP UHD1 CONTINUE UNPACK
- WBD SPACE 4,10
- ** WBD - WRITE BUFFERED DISK.
- *
- * ENTRY (CB) = CURRENT *CBT* ORDINAL.
- *
- * EXIT (A) = *ETTR* IF *T* REGISTER EMPTY TIMEOUT.
- *
- * CALLS COS, EIO, SFR, WTR.
- WBD2 RJM WTR WRITE *T* REGISTER
- RJM SFR
- NJN WBD1 IF CONSECUTIVE REQUEST FOUND
- WBD SUBR ENTRY/EXIT
- LDD CB
- WBD1 STD CB ENTER REQUEST IN I/O QUEUE
- RJM EIO
- LDN 2 CHECK OPERATIONAL STATUS
- RJM COS
- ZJN WBD2 IF *T* REGISTER EMPTY
- LDN ETTR
- UJN WBDX RETURN ERROR
- WCB SPACE 4,15
- ** WCB - WRITE COMMAND BLOCK.
- *
- * ENTRY (A) = 1/ CA, 1/, 16/ CC
- * CA = 1 IF NOT CLEARING ATTENTION.
- * CC = COMMAND CODE.
- * (TO) = TIMEOUT VALUE FOR *FTT*.
- *
- * USES T3.
- *
- * CALLS FCN, R1B, STO, WFW, WTC.
- WCB SUBR ENTRY/EXIT
- STML WCBA+7
- STML LCMD,DI
- SHN 0-21 EXTRACT *CLEAR ATTENTION* STATUS
- SHN 14-0
- LMC FWCB INITIATE COMMAND BLOCK WRITE
- WCB1 RJM WFW
- LDN 10 SET LENGTH OF BLOCK
- ACN CH
- OAM WCBA,CH OUTPUT COMMAND BLOCK
- RJM WTC
- LDC 250D SET LOCAL TIMEOUT
- STD T3
- WCB2 LDC FCRO GET OPERATIONAL STATUS
- RJM R1B
- LPN 1
- NJN WCB4 IF COMMAND BLOCK TRANSFER INCOMPLETE
- * LDN 0
- STM WCBA+4 CLEAR PARAMETER WORD
- LDC FCCS
- RJM FCN CLEAR COMMAND SEQUENCE
- LDD TO
- RJM STO SET REQUEST TIMEOUT
- WCB3 UJP WCBX RETURN
- WCB4 DELAY 7 WAIT AWHILE
- SOD T3
- NJN WCB2 IF NOT TIMEOUT
- LDN ETCB
- RJM ERR PROCESS ERROR
- WCBA BSS 10 COMMAND BLOCK
- WFC SPACE 4,10
- ** WFC - WRITE FUNCTION WORD AND CLEAR.
- *
- * ENTRY (A) = FUNCTION WORD.
- *
- * CALLS FCN, WFW.
- WFC SUBR ENTRY/EXIT
- RJM WFW WRITE FUNCTION WORD
- LDC FCCS CLEAR COMMAND SEQUENCE
- RJM FCN
- UJN WFCX RETURN
- WFW SPACE 4,10
- ** WFW - WRITE FUNCTION WORD.
- *
- * ENTRY (A) = FUNCTION WORD.
- *
- * CALLS FCN, WTC.
- WFW SUBR ENTRY/EXIT
- STML WFWA
- LDC FCCS CLEAR COMMAND SEQUENCE
- RJM FCN
- LDC FCSS SET COMMAND SEQUENCE / SELECT HOLD
- RJM FCN
- LDN 1 SET BYTE COUNT
- ACN CH
- OAM WFWA,CH OUTPUT FUNCTION WORD
- RJM WTC
- UJN WFWX RETURN
- WFWA CON 0 FUNCTION WORD BUFFER
- WLB SPACE 4,10
- ** WLB - WRITE LINKAGE BITS.
- *
- * ENTRY (A) = (T6) = ADDRESS FOR LINKAGE IN (CM - CM+4).
- * (T1) = DATA BUFFER ADDRESS.
- * (T5) = NUMBER OF WORDS TO WRITE.
- * (CM - CM+4) = *PAD* WORD OF *CBT* ENTRY.
- *
- * EXIT SECTOR LINKAGE SET IN DATA BUFFER.
- *
- * USES T6.
- WLB1 LDN 10+4 ADVANCE BUFFER ADDRESS
- RAD T1
- LDI T6 EXTRACT LINKAGE FROM *CBT* ENTRY
- SHN -10
- * LPN 17
- SHN 14 POSITION FOR DATA BUFFER
- LMI T1
- STIL T1
- WLB2 LDI T6 EXTRACT LINKAGE FROM *CBT* ENTRY
- SHN -4
- LPN 17
- SHN 14 POSITION FOR DATA BUFFER
- LMM 4,T1
- STML 4,T1
- LDI T6 EXTRACT LINKAGE FROM *CBT* ENTRY
- * SHN 0
- LPN 17
- SHN 14 POSITION FOR DATA BUFFER
- LMM 10,T1
- STML 10,T1
- AOD T6 ADVANCE *CBT* WORD ADDRESS
- LMN CM+5
- NJN WLB1 IF MORE LINKAGE
- LDC 1S17
- CWML SBUF,T5 UPDATE DATA BUFFER
- WLB SUBR ENTRY/EXIT
- * LDD T6
- UJN WLB2 MOVE SECTOR LINKAGE
- WMC SPACE 4,10
- ** WMC - WAIT MAINTENANCE CHANNEL EMPTY.
- *
- * ENTRY (A) = 0 IF TRANSFER COMPLETE.
- * (T5) = 0 IF INITIAL ENTRY.
- *
- * EXIT (A) = 0 IF CHANNEL EMPTY.
- * = (T5) IF CHANNEL HUNG FULL.
- *
- * USES CM - CM+4.
- WMC3 LDD T5
- ZJN WMCX IF NO ERRORS
- LDN ZERL
- CRD CM CLEAR BUFFER
- LDD CP
- ADN MS2W CLEAR CP MESSAGE
- CWD CM
- LDN 0 INDICATE CHANNEL EMPTY
- WMC SUBR ENTRY/EXIT
- NJN WMC2 IF INCOMPLETE TRANSFER
- LDD TH
- WMC1 EJM. WMC3,MR IF TRANSMISSION COMPLETE
- SBN 1
- NJN WMC1 IF NOT TIMED OUT
- WMC2 DCN. MR+40
- CCF. *+2,MR CLEAR CHANNEL FLAG
- LDD CP
- ADN MS2W STORE CP MESSAGE
- CWM WMCA,TR
- STD T5
- UJN WMCX RETURN
- WMCA DATA C*MR ERROR.*
- WTC SPACE 4,10
- ** WTC - WAIT TRANSMISSION COMPLETE.
- *
- * EXIT (A) = 0.
- *
- * ERROR TO *ERR*.
- *
- * USES T1.
- *
- * CALLS CFE.
- WTC3 LDD T1 CHECK FOR I/O ERROR
- RJM CFE
- * LDN 0 EXIT CONDITION FROM *CFE*
- WTC SUBR ENTRY/EXIT
- STD T1
- LDN 5 SET TIMEOUT = 5*262 MILLISECONDS
- STD T0
- WTC1 LDN 0
- WTC2 EJM WTC3,CH IF LAST BYTE TAKEN OFF CHANNEL
- SBN 1
- NJN WTC2 IF NOT TIMED OUT
- SOD T0
- NJN WTC1 IF NOT TIMEOUT
- DCN CH+40
- LDN ECHF
- RJM ERR PROCESS CHANNEL ERROR
- WTR SPACE 4,10
- ** WTR - WRITE *T* REGISTER.
- *
- * ENTRY (CB) = *CBT* ORDINAL.
- * (TO) = TIMEOUT VALUE FOR *FTT*.
- *
- * CALLS FCN, STO, SUA, WTC.
- WTR SUBR ENTRY/EXIT
- LDD CB
- RJM SUA SET UEM ADDRESS
- LDD UA+1
- SHN 11
- SCN 7
- STML WTRA+2 FORM ABSOLUTE UEM ADDRESS
- LDD UA
- SHN 14
- LMD UA+1
- SHN 11-20 SET IN *T* REGISTER
- STM WTRA+1
- LDC FCWT ISSUE WRITE *T* REGISTER FUNCTION
- RJM FCN
- LDN 3 SET BLOCK LENGTH
- ACN CH
- OAM WTRA,CH OUTPUT BUFFER PARAMETERS
- RJM WTC
- LDD TO SET REQUEST TIMEOUT
- RJM STO
- UJP WTRX RETURN
- WTRA BSS 0 *T* REGISTER BUFFER
- CONL 40000 BYTE LENGTH OF I/O TRANSFER
- CONL 0,0 UEM ADDRESS OF BUFFER
- TITLE MISCELLANEOUS.
- SPACE 4,10
- ** COMMON DECKS.
- *CALL COMPC2D
- RND$ EQU 0 DEFINE ROUNDING FOR *COMPDV5*
- *CALL COMPDV5
- M8K$ EQU 1 USE LONG INSTRUCTIONS
- *CALL COMPIMB
- *CALL COMPSES
- SPACE 4,10
- ** BUFFERS.
- SLST BSS 0 SLAVE STATUS
- DVST EQU SLST+SLSTL DEVICE STATUS
- EHDR EQU DVST+DVSTL ERROR MESSAGE HEADER BUFFER
- EBUF EQU EHDR+5*3 ERROR MESSAGE ASSEMBLY BUFFER
- CODE EQU EBUF INITIAL FAULT CODE
- FCS1 EQU EBUF+1 FAULT CODE - ERROR STEP 1
- FCS2 EQU EBUF+2 FAULT CODE - ERROR STEP 2
- FCS3 EQU EBUF+3 FAULT CODE - ERROR STEP 3
- FALT EQU EBUF+4 FINAL FAULT CODE
- RSVD EQU EBUF+5 RESERVED
- RBCT EQU EBUF+6 RESIDUAL BYTE COUNT
- STCT EQU EBUF+7 SECTORS TRANSFERED COUNT
- ICYL EQU EBUF+10 CYLINDER ON INITIAL SEEK
- ITAS EQU EBUF+11 TRACK + SECTOR ON INITIAL SEEK
- DBUF EQU EBUF+EBUFL DATA BUFFER
- EXST EQU DBUF EXECUTION STATUS
- IDST EQU DBUF+1 IDLE STATUS
- BSRN EQU DBUF+2 BIT SIGNIFICANT RESPONSE
- LSCC EQU DBUF+3 LAST SLAVE COMMAND
- LCFN EQU DBUF+4 LAST CHANNEL FUNCTION
- RBUF EQU DBUF+5 REGISTER BUFFER
- SBUF EQU DBUF+DBUFL SCRATCH BUFFER
- MBUF EQU SBUF+5*3 MESSAGE ASSEMBLY BUFFER
- TITLE PRESET ROUTINES.
- CCP SPACE 4,10
- ** CCP - CHECK CALLING PROGRAM.
- *
- * EXIT (A) = 0.
- *
- * USES CM - CM+4.
- *
- * CALLS DFM.
- *
- * MACROS MONITOR.
- CCP SUBR ENTRY/EXIT
- LDK NCPL
- CRD CM GET NUMBER OF CONTROL POINTS
- AOD CM+1
- SHN 7
- LMD CP
- ZJN CCPX IF DRIVER AT SYSTEM CP
- LDC CCPA
- RJM DFM ISSUE DAYFILE MESSAGE
- MONITOR ABTM
- LJM PPR EXIT TO PP RESIDENT
- CCPA DATA C* 1HY - UNAUTHORIZED CALL.*
- IST SPACE 4,15
- ** IST - INITIALIZE DEVICE STATE TABLE.
- *
- * ENTRY (PO) = 0.
- * (RC) = NUMBER OF ENTRIES IN *PUT*.
- *
- * EXIT (A) = 0 IF NO DEVICES FOR THIS DRIVER.
- *
- * USES DI, PO, CM - CM+4.
- *
- * MACROS PUTE, SFA.
- IST6 LDD DI DEFINE END OF DEVICES
- STM HYDA
- LMC DSTB SET EXIT CONDITION
- IST SUBR ENTRY/EXIT
- LDC DSTBL-1
- STD DI
- IST1 LDN 0 CLEAR DEVICE STATE TABLE
- STI DI
- SOD DI
- LMC DSTB
- NJN IST1 IF MORE TO CLEAR
- IST2 AOD PO
- LMD RC
- ZJN IST6 IF END OF PHYSICAL UNIT TABLE
- LDD PO
- SHN PUTLS READ *PUT* ENTRY
- PUTE *
- ADC UNCT GET UNIT CONTROL WORD
- CRD CM
- SFA EST,CM+1 FETCH EST ENTRY
- ADK EQDE
- CRD CM
- LDN CM INITIALIZE CHANNEL BYTE ADDRESS
- STD CM
- IST3 AOD CM ADVANCE PATH DESCRIPTOR ADDRESS
- LMN CM+3
- ZJN IST2 IF TWO POSSIBLE CHANNELS CHECKED
- LDI CM
- ZJN IST3 IF NULL ACCESS
- LMD IR+4
- LPN 77
- IST4 NJN IST3 IF NOT THIS DRIVERS CHANNEL
- IST5 LDD PO SET *PUT* ORDINAL IN STATE TABLE
- STI DI
- ERRNZ PUTO CODE DEPENDS ON VALUE
- LDI CM
- LPC 200 SET PORT SELECT IN CONTROL REGISTER
- SHN 16-7
- STML CREG,DI
- LDN DSTBE ADVANCE STATE TABLE ADDRESS
- RAD DI
- LMC DSTBL
- NJN IST4 IF NOT AT BLOCK LIMIT
- LJM IST6 SET INITIAL STATE TABLE ADDRESS
- MCI SPACE 4,10
- ** MCI - MODIFY CHANNEL INSTRUCTIONS.
- *
- * ENTRY (IR+4) = CONCURRENT CHANNEL NUMBER.
- *
- * EXIT (A) = 0.
- *
- * USES T1, T2.
- MCI1 RAIL T2 MODIFY CHANNEL INSTRUCTION
- AOD T1
- MCI2 LDM TCHA,T1 EXTRACT NEXT ADDRESS
- STD T2
- LDD T0 CHECK END OF LIST
- CHTL *
- SBN CH
- NJN MCI1 IF MORE INSTRUCTIONS TO MODIFY
- MCI SUBR ENTRY/EXIT
- LDD IR+4
- LPN 37 EXTRACT CHANNEL NUMBER
- STD T0
- LDN 0 INITIALIZE REMOTE TABLE INDEX
- STD T1
- UJN MCI2 ENTER LOOP
- TCHA SPACE 4,10
- ** TABLE OF CHANNEL INSTRUCTIONS ADDRESSES.
- TCHA CHTB
- RSTC RESTORE CHANNEL INSTRUCTIONS
- TCBT SPACE 4,10
- ** TABLE OF INSTRUCTIONS REQUIRING FWA OF *CBT*.
- TCBT BSS 0
- TCBT HERE
- CON 0 TERMINATE TABLE
- TCCT SPACE 4,10
- ** TABLE OF INSTRUCTIONS REQUIRING ADDRESS OF *CCT* ENTRY.
- TCCT BSS 0
- TCCT HERE
- CON 0 TERMINATE TABLE
- TCHT SPACE 4,10
- ** TABLE OF INSTRUCTIONS REQUIRING FWA OF CHANNEL TABLE.
- TCHT BSS 0
- TCHT HERE
- CON 0 TERMINATE TABLE
- TEMB SPACE 4,10
- ** TABLE OF INSTRUCTIONS REQUIRING FWA OF *EMB*.
- TEMB BSS 0
- QUAL COMPIMB
- TEMB HERE
- QUAL *
- CON 0 TERMINATE TABLE
- TEXP SPACE 4,10
- ** TABLE OF INSTRUCTIONS REQUIRING FWA OF PP EXCHANGE PACKAGE.
- TEXP BSS 0
- TEXP HERE
- CON 0 TERMINATE TABLE
- TFTT SPACE 4,10
- ** TABLE OF INSTRUCTIONS REQUIRING FWA OF *FTT*.
- TFTT BSS 0
- TFTT HERE
- CON 0 TERMINATE TABLE
- TPUT SPACE 4,10
- ** TABLE OF INSTRUCTIONS REQUIRING FWA OF *PUT*.
- TPUT BSS 0
- TPUT HERE
- CON 0 TERMINATE TABLE
- SPACE 4,10
- ERRPL *-10000 CODE DEPENDS ON VALUE
- PRS SPACE 4,20
- ** PRS - PRESET *1HY* FOR PROCESSING.
- *
- * EXIT (UC) = 0.
- *
- * CALLS CCP, CCR, MCI, IST, PCT, RCR, SPA, STA.
- PRS RJM CCP CHECK CALLING PROGRAM
- * LDN 0
- STD UC SET NO UNITS RESERVED
- STD PO
- RJM MCI MODIFY CHANNEL INSTRUCTIONS
- STD CR
- RJM SPA SET PP EXCHANGE PACKAGE ADDRESSES
- PRS1 RJM SCT SET CHANNEL TABLE ADDRESSES
- LDK BIOL
- CRD CM READ BUFFERED I/O POINTERS
- LDD CM+1
- SHN 14
- LMD CM+2
- ADN FTTP READ *FTT* POINTER
- CRD T6
- SBN FTTP-CCTP READ *CCT* POINTER
- CRD T4
- ADN PUTP-CCTP READ *PUT* POINTER
- CRD T2
- ADN CBTP-PUTP READ *CBT* POINTER
- CRD WB
- AOD T2 SET NUMBER OF *PUT* ENTRIES
- STD RC
- LDC T5*10000+TPUT SET *PUT* ADDRESSES
- RJM STA
- LDD IR+2 ADJUST CHANNEL CONTROL TABLE POINTER
- SHN CCTLS-6
- RAD CM
- SHN -14
- RAD T7
- LDC T7*10000+TCCT SET *CCT* ADDRESSES
- RJM STA
- .CM1 EQU CM+1
- LDC .CM1*10000+TFTT SET *FTT* ADDRESSES
- RJM STA
- .WB3 EQU WB+3
- LDC .WB3*10000+TCBT SET *CBT* ADDRESSES
- RJM STA
- LDN EMBP FETCH *EMB* POINTER
- CRD CM
- LDC .CM1*10000+TEMB SET *EMB* ADDRESSES
- RJM STA
- LDK UEML
- CRD CM READ UEM POINTERS
- LDD CM
- PRSA SHN 11
- * SHN 11+EMSC
- SCN 77
- STM SUAA SET FWA OF UEM
- LDD CM
- PRSB SHN -3
- * SHN EMSC-3
- STM SUAB
- LDK MMFL FETCH MACHINE ID
- CRD CM
- LDD CM SET MAINFRAME ID FOR BML MESSAGES
- STM MFID
- LDC PRS3 SET RETURN ADDRESS
- STM CCR
- RJM IST INITIALIZE DEVICE STATE TABLE
- ZJN PRS4 IF NO DEVICES FOR THIS DRIVER
- LDN 0 CLEAR RESIDUAL BYTE COUNT
- STM RBCT
- LJM CCR2 RESERVE CHANNEL
- PRS3 NJP RCR+1 IF CHANNEL NOT DOWN
- PRS4 LJM HYD8 DROP CPP
- SCT SPACE 4,10
- ** SCT - SET CHANNEL TABLE ENTRY ADDRESSES.
- *
- * ENTRY (IR+4) = CHANNEL NUMBER.
- *
- * USES T1, T2, CM - CM+4.
- *
- * CALLS STA.
- SCT SUBR ENTRY/EXIT
- LDD IR+4
- STD T1 SET CHANNEL NUMBER
- STM RCSA+3
- RAM BMLM+2
- * SHN 6 SAVE RECOVERY CHANNEL FOR *BML*
- * STM BMLM+7
- LCN 0 WORD OFFSET
- STD T2
- SCT1 AOD T2 INCREMENT WORD OFFSET
- LCN 5
- RAD T1
- PJN SCT1 IF CHANNEL NOT IN THIS WORD
- ADN 5
- STD T1
- RAM RCTA SET BYTE OFFSET
- LDD T1
- SHN 1 BYTE OFFSET * 2
- ADD T1 BYTE OFFSET * 3
- SHN 2 BYTE OFFSET * 12
- SBN 59D (BYTE OFFSET * 12) - 59
- LMC -0 59 - (BYTE OFFSET * 12)
- SBN 2
- SHN 6
- STM SRFA+1 SET DRIVER FLAG BIT POSITION
- LDK CHTP
- CRD CM
- LDD T2 SET ADDRESS OF WORD IN CHANNEL TABLE
- RAD CM+3
- SHN -14
- RAD CM+2
- .CM2 EQU CM+2
- LDC .CM2*10000+TCHT SET CHANNEL TABLE ADDRESSES
- RJM STA
- LJM SCTX RETURN
- SPA SPACE 4,10
- ** SPA - SET PP EXCHANGE PACKAGE ADDRESSES.
- *
- * USES T1 - T5, CM - CM+4.
- *
- * CALLS STA.
- SPA SUBR ENTRY/EXIT
- LDN PXPP
- CRD CM FETCH FWA OF PP EXCHANGE PACKAGE AREA
- ADN 1
- CRM AMEA,ON SET FIRST WORD OF PP EXCHANGE PACKAGE
- ADN PPCP-PXPP-2
- CRD T1 READ PP COMMUNICATION AREA POINTER
- LDD IA
- STM AMEA+4 SET (B0) NON-ZERO FOR EXCHANGE TEST
- SBD T1+4
- SHN -3 (A) = CPP NUMBER
- SBN 24
- SHN 6
- STM BMLM+2 INSERT CPP NUMBER IN BML MESSAGE
- SHN -6
- ADN 24-2
- STD T1 CPP NUMBER - 2
- SHN 4
- ADD T1 (CPP NUMBER - 2) * 21B
- RAD CM+4
- SHN -14
- RAD CM+3
- .CM3 EQU CM+3
- LDC .CM3*10000+TEXP SET EXCHANGE PACKAGE ADDRESSES
- RJM STA
- LJM SPAX RETURN
- STA SPACE 4,10
- ** STA - SET TABLE ADDRESSES.
- *
- * ENTRY (A) = 6/ TP, 12/ TA
- * TP = TABLE POINTER.
- * TA = INSTRUCTION TABLE ADDRESS.
- *
- * EXIT (A) = 0.
- *
- * USES T1, T2, T3.
- STA1 STD T2 SET INSTRUCTION ADDRESS
- LDM 1,T1
- RAM 1,T2 SET LOWER 12 BITS OF ADDRESS
- SHN -14
- ADI T1 SET UPPER 6 BITS OF ADDRESS
- LPN 37
- RAI T2
- AOD T3 ADVANCE INSTRUCTION LIST
- STA2 LDI T3
- NJN STA1 IF NOT END OF TABLE
- STA SUBR ENTRY/EXIT
- STD T3
- SHN -14 SET ADDRESS POINTER
- STD T1
- UJN STA2 ENTER LOOP
- OVERFLOW OHYD,20000
- END
cdc/nos2.source/opl871/1hy.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator