cdc:nos2.source:opl871:xhc
Table of Contents
XHC
Table Of Contents
- [00005] XHC - HOSTCOPY DRIVER FOR 5870/5970 NIP.
- [00022] CNTB - CONTROL BLOCK.
- [00073] ASSEMBLY CONSTANTS.
- [00123] MAIN PROGRAM.
- [00124] MAIN PROGRAM.
- [00143] TERMINATION PROCESSORS.
- [00145] TRM - TERMINATION PROCESSOR.
- [00162] ABT - ABORT JOB.
- [00174] ERR - ERROR PROCESSOR.
- [00176] ERR - ERROR PROCESSOR.
- [00227] TDFP - TABLE OF PROCESSORS AND MESSAGES.
- [00252] XDR - TRANSFER DATA RECORD.
- [00254] XDR - TRANSFER DATA RECORD.
- [00292] SUBROUTINES.
- [00294] CAD - COMPUTE ABSOLUTE ADDRESS.
- [00332] CRQ - COMPLETE REQUEST.
- [00362] DEQ - DROP EQUIPMENT.
- [00387] FCN - ISSUE FUNCTION TO EQUIPMENT.
- [00414] RCB - READ CONTROL BLOCK.
- [00469] XHC PRESET.
- [00471] PRS - XHC PRESET.
- [00596] MCI - MODIFY CHANNEL INSTRUCTIONS.
- [00616] TCHS - CHANNEL TABLE.
Source Code
- XHC.txt
- IDENT XHC,XHC
- PERIPH
- BASE MIXED
- SST
- TITLE XHC - HOSTCOPY DRIVER FOR 5870/5970 NIP.
- *COMMENT XHC - HOSTCOPY DRIVER FOR 5870/5970 NIP.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- XHC SPACE 4,10
- *** XHC TRANSFERS DATA TO THE HOSTCOPY UTILITY
- * RESIDING ON A NIP PRINTER. 128 8-BIT BYTES OR 80
- * 8-BIT BYTES ARE TRANSFERED AT A TIME.
- *
- * L. M. BURGHER 84/09/22.
- * S. V. PRESTON 84/09/22.
- SPACE 4,10
- *** CALL.
- *
- *T 18/ *XHC*, 24/, 18/ CNTB
- *
- * CNTB ADDRESS OF CONTROL BLOCK *CNTB*.
- SPACE 4,10
- ** CNTB - CONTROL BLOCK.
- *
- * COMMUNICATION BETWEEN XHC AND THE CALLING CP PROGRAM
- * OCCURS IN *CNTB*.
- *
- *T CNTC 3/ ,9/ EQ ,11/ ,1/ T,11/ ,1/ I,11/ ,1/C
- *T DRPC 42/ , 18/ DRP
- *
- * EQ = EQUIPMENT NUMBER.
- * T = (1), TERMINATE XHC.
- * I = (1), CARD IMAGE.
- * C = (1), REQUEST COMPLETE.
- * DRP = DATA RECORD ADDRESS.
- SPACE 4,10
- *** DAYFILE AND ERRLOG MESSAGES.
- *
- * *EQXXX CHYY ADDDD INCOMPLETE TRANSFER.* =
- * AN INCOMPLETE DATA TRANSFER WAS DETECTED.
- *
- * *EQXXX CHYY GSSSS COUPLER STATUS.* =
- * CCC COUPLER STATUS.
- *
- * *EQXXX CHYY CONTROLWARE NOT LOADED.*=
- * CCC CONTROLWARE NOT SUCCESSFULLY LOADED.
- *
- * *EQXXX CHYY RESERVED.* = EQUIPMENT FOUND RESERVED.
- *
- * *EQXXX INCORRECT EQUIPMENT TYPE.* =
- * EQUIPMENT REQUESTED WAS NOT OF TYPE *LX* OR *LY*.
- *
- * *EQXXX INCORRECT EQUIPMENT NUMBER.* =
- * EQUIPMENT NUMBER NOT IN EST.
- *
- * *EQXXX NOT AVAILABLE.* = EQUIPMENT REQUESTED IS DOWN AND OFF.
- *
- * *TABLE NOT IN FL.* = HSTCOPY TABLE POINTER IS OUTSIDE FL.
- *
- * *INCORRECT JOB ORIGIN.* = CALLING PROGRAM IS NOT SYSTEM ORIGIN
- *
- * WHERE -
- * EQ = EQUIPMENT TYPE (LX, LY).
- * XXX = EST ORDINAL.
- * YY = CHANNEL.
- * DDDD = NUMBER OF BYTES REMAINING.
- * SSSS = COUPLER STATUS.
- SPACE 4,10
- ** COMMON DECKS.
- *CALL COMPCHI
- *CALL COMPMAC
- TITLE ASSEMBLY CONSTANTS.
- SPACE 4,10
- **** DIRECT CELL ASSIGNMENTS.
- BC EQU 25 BYTE COUNT
- EQ EQU 27 EQUIPMENT NUMBER
- ES EQU 30 - 34 EST ENTRY
- FC EQU 35 FUNCTION CODE
- T8 EQU 36 TEMPORARY
- TM EQU 45 TERMINATE REQUEST FLAG
- SPACE 4,10
- ** CONTROL BLOCK DEFINITIONS.
- CNTC EQU 0 CONTROL BLOCK WORD
- DRPC EQU 1 DATA RECORD POINTER
- CNTBL EQU 2 CONTROL BLOCK LENGTH
- SPACE 4,10
- ** DAYFILE MESSAGE CODES.
- LOC 0
- EITM BSS 1 *EQXXX CHYY ADDDD INCOMPLETE TRANSFER.*
- EGSM BSS 1 *EQXXX CHYY GSSSS COUPLER STATUS.*
- ENLM BSS 1 *EQXXX CHYY CCC CONTROLWARE NOT LOADED.*
- ERSM BSS 1 *EQXXX CHYY RESERVED.*
- ETYM BSS 1 *EQXXX INCORRECT EQUIPMENT TYPE.*
- ENMM BSS 1 *EQXXX INCORRECT EQUIPMENT NUMBER.*
- ENAM BSS 1 *EQXXX NOT AVAILABLE.*
- EFLM BSS 1 *TABLE NOT IN FL.*
- EJOM BSS 1 *INCORRECT JOB ORIGIN.*
- LOC *O
- SPACE 4,10
- ** CCC FUNCTION DEFINITIONS.
- FSUF EQU 0 SELECT UNIT
- FGSF EQU 12 GENERAL STATUS
- FTDF EQU 20 TRANSPARENT DATA TRANSFER
- SPACE 4,10
- ** MISCELLANEOUS CONSTANTS.
- BFCL EQU 128D*8D/60D+1 BUFF LENGTH IN CM WORDS
- BINL EQU 128D*8D/12D+1 BINARY BUFFER LENGTH
- CRDL EQU 80D*8D/12D+1 CARD IMAGE BUFFER LENGTH
- CH EQU 12 CHANNEL NUMBER
- NILP EQU 377777 NIL POINTER
- ****
- TITLE MAIN PROGRAM.
- ** XHC - MAIN PROGRAM.
- ORG PPFW
- XHC RJM PRS PRESET *XHC*
- XHC1 RJM RCB READ CONTROL BLOCK
- ZJN XHC2 IF NO DATA TO TRANSFER
- CRM BUFF,T2 READ DATA RECORD
- RJM XDR TRANSFER DATA RECORD
- UJN XHC3 CHECK FOR MOVE REQUEST
- XHC2 LDD TM
- NJN TRM IF REQUEST TO TERMINATE
- XHC3 PAUSE PAUSE FOR STORAGE MOVE
- LDD CM+1
- ZJN XHC1 IF NO CONTROL POINT ERROR
- UJN TRM1 ERROR EXIT
- TITLE TERMINATION PROCESSORS.
- TRM SPACE 4,10
- ** TRM - TERMINATION PROCESSOR.
- *
- * EXIT TO *PPR*.
- *
- * CALLS CRQ, DEQ.
- *
- * MACROS MONITOR.
- TRM RJM CRQ COMPLETE REQUEST
- * TRM1 IS A SECONDARY ENTRY POINT FOR TRM.
- TRM1 RJM DEQ DROP EQUIPMENT
- MONITOR DPPM DROP PP
- LJM PPR EXIT TO PP RESIDENT
- ABT SPACE 4,10
- ** ABT - ABORT JOB.
- *
- * EXIT TO *PPR*.
- *
- * CALLS DEQ.
- *
- * MACROS MONITOR.
- ABT RJM DEQ DROP EQUIPMENT
- MONITOR ABTM ABORT JOB
- LJM PPR EXIT TO PP RESIDENT
- TITLE ERR - ERROR PROCESSOR.
- ERR SPACE 4,10
- ** ERR - ERROR PROCESSOR.
- *
- * ENTRY (A) = MESSAGE CODE.
- * (FC) = STATUS/BYTES REMAINING.
- * (ES - ES+4) = EST ENTRY.
- *
- * USES T1, T2, T5.
- *
- * CALLS C2D, DFM.
- ERR SUBR ENTRY/EXIT
- SHN 1 GET TABLE ADDRESS
- STD T1
- LDM TDFP+1,T1 SET MESSAGE ADDRESS
- STD T5
- LDM TDFP,T1 SET PROCESSING ADDRESS
- STD T2
- LJM 0,T2 FORMAT ERROR MESSAGE
- ERR3 LDD FC CONVERT STATUS / BYTE COUNT REMAINING
- SHN -6
- RJM C2D
- STM 6,T5
- LDD FC
- RJM C2D
- STM 7,T5
- ERR4 LDD ES+1 CONVERT CHANNEL NUMBER TO DISPLAY CODE
- RJM C2D
- STM 4,T5
- LDD ES+3 SET EQUIPMENT TYPE
- STI T5
- ERR5 LDM CNTB+CNTC*5+0 CONVERT EQUIPMENT NUMBER
- SHN -3
- RJM C2D
- STM 1,T5
- LDM CNTB+CNTC*5+0
- RJM C2D
- SHN 6
- LMN 1R
- STM 2,T5
- ERR6 LDD T5 SEND MESSAGE TO DAYFILE
- RJM DFM
- LDC ERLN SEND MESSAGE TO ERROR LOG
- LMD T5
- RJM DFM
- LJM ERRX RETURN
- SPACE 4,10
- ** TDFP - TABLE OF PROCESSORS AND MESSAGES.
- *
- * *TDFP* IS INDEXED WITH DAYFILE MESSAGE CODES.
- *
- * ENTRY - 2 WORDS.
- *
- * INDEXED BY (MESSAGE CODE * 2).
- TDFP EQU *
- LOC 0
- CON ERR3,=C*EQXXX CHYY ADDDD INCOMPLETE TRANSFER.*
- CON ERR3,=C*EQXXX CHYY GSSSS ADAPTER STATUS.*
- CON ERR4,=C*EQXXX CHYY CCC CONTROLWARE NOT LOADED.*
- CON ERR4,=C*EQXXX CHYY RESERVED.*
- CON ERR5,=C*EQXXX INCORRECT EQUIPMENT TYPE.*
- CON ERR5,=C*EQXXX INCORRECT EQUIPMENT NUMBER.*
- CON ERR5,=C*EQXXX NOT AVAILABLE.*
- CON ERR6,=C*TABLE NOT IN FL.*
- CON ERR6,=C*INCORRECT JOB ORIGIN.*
- LOC *O
- TDFPL EQU *-TDFP
- USE LITERALS
- TITLE XDR - TRANSFER DATA RECORD.
- XDR SPACE 4,10
- ** XDR - TRANSFER DATA RECORD.
- *
- * ENTRY (BC) = BYTE COUNT.
- * (BUFF) = DATA BUFFER.
- *
- * ERROR TO *TRM1*, IF CONTROL POINT ERROR.
- *
- * TO *ABT*, IF INCOMPLETE DATA TRANSFER OR
- * BAD ADAPTER STATUS.
- *
- * USES FC.
- *
- * CALLS CRQ, ERR, FCN.
- XDR3 RJM CRQ COMPLETE REQUEST
- XDR SUBR ENTRY/EXIT
- LDN FTDF ISSUE TRANSPARENT DATA TRANSFER FUNCTION
- RJM FCN
- LDD BC BYTE COUNT
- OAM BUFF,CH OUTPUT BUFFER
- ZJN XDR1 IF TRANSFER COMPLETE
- STD FC REMAINING BYTE COUNT
- LDN EITM *EQXXX CHYY INCOMPLETE TRANSFER.*
- UJN XDR2 REPORT ERROR
- XDR1 FJM *,CH IF XFER INCOMPLETE
- DCN CH+40
- LDN FGSF ISSUE GENERAL STATUS FUNCTION
- RJM FCN
- IAN CH
- ZJN XDR3 IF STATUS OK
- STD FC SAVE STATUS
- LDN EGSM *EQXXX CHYY GSSSS ADAPTER STATUS.*
- XDR2 RJM ERR PROCESS ERROR
- LJM ABT ABORT JOB
- TITLE SUBROUTINES.
- CAD SPACE 4,15
- ** CAD - COMPUTE ABSOLUTE ADDRESS.
- *
- * ENTRY (A) = WORD COUNT.
- * (T1) = INDIRECT ADDRESS OF ADDRESS.
- * ((T1)) - ((T1)+1) = ADDRESS.
- *
- * EXIT (A) = ABSOLUTE ADDRESS.
- * (T2) = WORD COUNT.
- *
- * ERROR TO *ERR*, IF TABLE NOT IN FL.
- *
- * USES T2.
- *
- * CALLS ERR.
- CAD2 LDI T1 LOAD ABSOLUTE ADDRESS
- LPN 77
- SHN 6
- ADD RA
- SHN 6
- ADM 1,T1
- CAD SUBR ENTRY/EXIT
- STD T2 SAVE WORD COUNT
- LDI T1
- LPN 77
- SHN 14
- MJN CAD1 IF OUT OF RANGE
- LMM 1,T1
- ADD T2
- SHN -6
- SBD FL
- MJN CAD2 IF < FL - WORD COUNT
- CAD1 LDN EFLM *TABLE NOT IN FL.*
- RJM ERR PROCESS ERROR
- LJM ABT ERROR EXIT
- CRQ SPACE 4,15
- ** CRQ - COMPLETE REQUEST.
- *
- * ENTRY (IR+3) - (IR+4) = CNTB ADDRESS.
- *
- * EXIT CNTB UPDATED IN CM.
- *
- * USES T1, CM - CM+4.
- *
- * CALLS CAD.
- *
- * MACROS MONITOR.
- CRQ SUBR ENTRY/EXIT
- AOM CNTB+CNTC*5+4 SET REQUEST BIT
- LDN IR+3 CONTROL BLOCK ADDRESS
- STD T1
- LDN CNTBL CONTROL BLOCK LENGTH
- RJM CAD COMPUTE ABSOLUTE ADDRESS
- CWM CNTB,ON UPDATE CONTROL WORD
- LDD CP
- ADN STSW FETCH CONTROL POINT STATUS WORD
- CRD CM
- LDD CM CHECK CPU STATE
- SHN -11
- LMN 6
- NJN CRQX IF NOT IN *I* STATUS
- MONITOR RCPM
- UJN CRQX RETURN
- DEQ SPACE 4,10
- ** DEQ - DROP EQUIPMENT.
- *
- * ENTRY (EQ) = 0, IF NO EQUIPMENT ASSIGNED.
- * (EQ) = EQUIPMENT NUMBER.
- * (ES - ES+4) = EST ENTRY.
- *
- * EXIT (EQ) = 0.
- *
- * USES CM - CM+4.
- *
- * MACROS DCHAN, MONITOR.
- DEQ SUBR ENTRY/EXIT
- LDD EQ
- ZJN DEQX IF NO EQUIPMENT ASSIGNED.
- LDD ES+1 DROP CHANNEL
- DCHAN
- LDD EQ DROP EQUIPMENT
- STD CM+1
- MONITOR DEQM
- * LDN 0 INDICATE EQUIPMENT RELEASED
- STD EQ
- UJN DEQX RETURN
- FCN SPACE 4,15
- ** FCN - ISSUE FUNCTION TO EQUIPMENT.
- *
- * ENTRY (A) = FUNCTION CODE.
- *
- * EXIT CHANNEL ACTIVE.
- *
- * ERROR TO *TRM1*, IF CONTROL POINT ERROR.
- *
- * USES FC.
- *
- * MACROS PAUSE.
- FCN2 ACN CH ACTIVATE CHANNEL
- FCN SUBR ENTRY/EXIT
- STD FC SAVE FUNCTION CODE
- FAN CH ISSUE FUNCTION
- FCN1 IJM FCN2,CH IF FUNCTION ACCEPTED
- SBN 1
- NJN FCN1 IF NOT TIMED OUT
- PAUSE PAUSE FOR STORAGE MOVE
- LDD CM+1
- ZJN FCN1 IF NO CONTROL POINT ERROR
- DCN CH+40
- LJM TRM1 ERROR EXIT
- RCB SPACE 4,15
- ** RCB - READ CONTROL BLOCK.
- *
- * ENTRY (IR+3) - (IR+4) = CNTB ADDRESS.
- *
- * EXIT (A) = 0, IF NO DATA TO TRANSFER.
- * (A) = DATA RECORD ADDRESS.
- * (T2) = *BFCL*, IF (A) = DATA RECORD ADDRESS.
- * (CNTB) UPDATED, IF (A) = DATA RECORD ADDRESS.
- * (TM) <> 0, IF REQUEST TO TERMINATE.
- *
- * USES T1.
- *
- * CALLS CAD.
- RCB1 AOD TM SET *TERMINATE REQUEST*
- RCB2 LDN 0 INDICATE NO REQUEST
- RCB SUBR ENTRY/EXIT
- LDN IR+3 CNTB ADDRESS
- STD T1
- LDN CNTBL CNTB LENGTH
- RJM CAD COMPUTE ABSOLUTE ADDRESS
- CRM CNTB,T2 READ CNTB
- LDM CNTB+CNTC*5+4 CHECK REQUEST BIT
- SHN 21-0
- MJN RCB2 IF NO REQUEST
- LDM CNTB+CNTC*5+1 CHECK TERMINATE REQUEST
- SHN 21-0
- MJN RCB1 IF NOT REQUEST TO TERMINATE
- LDM CNTB+DRPC*5+3 GET DATA RECORD POINTER
- SHN 14
- ADM CNTB+DRPC*5+4
- LMC NILP
- ZJN RCBX IF NIL
- LDC CNTB+DRPC*5+3 DATA RECORD ADDRESS
- STD T1
- LDN BFCL DATA RECORD LENGTH
- RJM CAD COMPUTE ABSOLUTE ADDRESS
- UJP RCBX RETURN
- SPACE 4,10
- ** COMMON DECKS.
- *CALL COMPC2D
- SPACE 4,10
- USE BUFFER
- BUFF EQU * DATA RECORD BUFFER
- BUFE EQU BUFF+BFCL*5 END OF DATA BUFFER
- CNTB EQU BFMS-CNTBL*5 CONTROL BLOCK
- ERRNG CNTB-BUFE
- ERRNG CNTB-PRSE
- TITLE XHC PRESET.
- PRS SPACE 4,15
- ** PRS - XHC PRESET.
- *
- * ENTRY (IR+3 - IR+4) = CONTROL BLOCK ADDRESS.
- *
- * EXIT (BC) = CRDL, IF CARD IMAGE FILE.
- * (BC) = BINL, IF BINARY FILE.
- * (EQ) = EQUIPMENT NUMBER.
- * (ES - ES+4) = EST ENTRY.
- * CHANNEL INSTRUCTIONS MODIFIED.
- * EQUIPMENT AND CHANNEL RESERVED.
- * NIP UNIT SELECTED.
- *
- * ERROR TO *ABT*, IF INCORRECT JOB ORIGIN OR
- * EQUIPMENT PROBLEM.
- *
- * TO *TRM1*, IF CONTROL POINT ERROR.
- *
- * USES BC, CM - CM+4, EQ, ES - ES+4, FR, TM, T8.
- *
- * CALLS CRQ, ERR, FCN, GST, MCI, RCB.
- *
- * MACROS MONITOR, PAUSE, RCHAN.
- PRS SUBR ENTRY/EXIT
- LDN 0
- STD EQ EQUIPMENT NOT ASSIGNED
- STD TM TERMINATE NOT REQUESTED
- LDD CP CHECK FOR SYOT ORIGIN
- ADN JOTW
- CRD CM
- LDD CM+3
- * LMN SYOT
- ZJN PRS1 IF SYSTEM ORIGIN
- LDN EJOM *INCORRECT JOB ORIGIN.*
- UJN PRS4 PROCESS ERROR
- PRS1 RJM RCB READ CONTROL BLOCK
- LDM CNTB+CNTC*5+3
- SHN 21-0
- MJN PRS2 IF CARD IMAGE FILE
- LDC BINL
- UJN PRS3
- PRS2 LDN CRDL
- PRS3 STD BC
- LDN ESTP GET EST TABLE ADDRESS
- CRD CM
- LDM CNTB+CNTC*5+0 GET EQUIPMENT NUMBER
- LPC 777
- STD T8
- STD CM+1
- SBD CM+2
- MJN PRS5 IF ENTRY IN EST
- LDN ENMM *EQXXX CHYY INCORRECT EQUIPMENT NUMBER.*
- PRS4 RJM ERR PROCESS ERROR
- LJM ABT ABORT JOB
- PRS5 SFA EST,CM+1
- ADK EQDE
- CRD ES READ EST ENTRY
- LDD ES+3 CHECK FOR NIP
- LMC 2RLX
- ZJN PRS6 IF 5870
- LMN 2RLY&2RLX
- ZJN PRS6 IF 5970
- LDN ETYM *EQXXX INCORRECT EQUIPMENT TYPE.*
- UJN PRS4 ERROR EXIT
- PRS6 STD CM+2
- LDD ES CHECK STATUS OF EQUIPMENT
- SHN 21-5
- PJN PRS8 IF NOT DOWN AND OFF
- LDN ENAM *EQXXX NOT AVAILABLE.*
- PRS7 UJN PRS4 ERROR EXIT
- PRS8 SHN 1
- PJN PRS9 IF CONTROLWARE LOADED
- LDN ENLM *EQXXX CHYY CONTROLWARE NOT LOADED.*
- UJN PRS7 PROCESS ERROR
- PRS9 MONITOR REQM REQUEST EQUIPMENT
- LDD CM+1
- NJN PRS10 IF EQUIPMENT ASSIGNED
- LDN ERSM *EQXXX CHYY RESERVED.*
- UJN PRS7 PROCESS ERROR
- PRS10 LDD T8 SET EQUIPMENT RESERVED
- STD EQ
- LDD ES+1 CLEAR UPPER BITS OF CHANNEL
- LPN 37
- STD ES+1
- RJM MCI MODIFY CHANNEL INSTRUCTIONS
- LDD ES+1
- RCHAN RESERVE CHANNEL
- * CONNECT EQUIPMENT.
- LDN FSUF SELECT UNIT
- RJM FCN
- LDD ES+4 OUTPUT UNIT NUMBER
- SHN 0-11
- OAN CH+40
- PRS11 EJM PRS12,CH IF CONNECT RESPONSE RECEIVED
- SBN 1
- NJN PRS11 IF NOT TIMED OUT
- PAUSE PAUSE FOR STORAGE MOVE
- LDD CM+1
- ZJN PRS11 IF NO CONTROL POINT ERROR
- DCN CH+40
- LJM TRM1 ERROR EXIT
- PRS12 DCN CH+40
- LDN FGSF GET GENERAL STATUS
- RJM FCN
- IAN CH
- ZJN PRS13 IF GOOD STATUS
- STD FC
- LDN EGSM *EQXXX CHYY GSSSS ADAPTER STATUS.*
- RJM ERR PROCESS ERROR
- LJM ABT ABORT JOB
- PRS13 RJM CRQ COMPLETE REQUEST
- LJM PRSX RETURN
- MCI SPACE 4,10
- ** MCI - MODIFY CHANNEL INSTRUCTIONS.
- *
- * (ES+1) = CHANNEL NUMBER.
- *
- * USES T1, T2.
- MCI SUBR ENTRY/EXIT
- LDC TCHS LOAD FWA OF CHANNEL TABLE ADDRESSES
- STD T1
- MCI1 LDI T1
- ZJN MCIX IF NO MORE INSTRUCTIONS TO MODIFY
- STD T2
- LDI T2
- SCN 37
- LMD ES+1
- STI T2
- AOD T1
- UJN MCI1 MODIFY NEXT INSTRUCTION
- SPACE 4,10
- ** TCHS - CHANNEL TABLE.
- TCHS CHTB
- SPACE 4,10
- PRSE EQU *
- OVERFLOW
- END
cdc/nos2.source/opl871/xhc.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator