IDENT 1IO,BCM
PERIPH
BASE MIXED
SST
*COMMENT 1IO - BATCHIO MANAGER.
COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
TITLE 1IO - BATCHIO MANAGER.
SPACE 4,10
***** 1IO - *BATCHIO* MANAGER.
* G. R. MANSFIELD. 70/07/20.
* P. D. HAAS. 74/04/19.
* R. M. YASUHARA. 75/01/17.
* D. R. HILGREN. 79/04/06. RESEQUENCED.
SPACE 4,15
*** 1IO PERFORMS SCHEDULING OF ALL PROCESSES OPERATING AT
* THE *BATCHIO* CONTROL POINT. THIS INCLUDES -
* (1) SEARCHING FOR THE HIGHEST PRIORITY *OUTPUT* AND *PUNCH*
* FILES.
* (2) CHECKING FOR A *READY* STATUS ON ANY CARD READERS.
* (3) MANAGING BUFFER STORAGE FOR THE ABOVE.
* (4) POSTING ERROR CONDITION MESSAGES FOR THE ABOVE.
*
* 1IO WITH THE OVERLAY 3ID INITIALIZES THE *BATCHIO*
* CONTROL POINT TO AN FL=200, AND SETS THE AVAILABLE EQUIPMENT
* LIST FROM WHICH THE OPERATIONS ARE SCHEDULED.
* ALSO SET IN THE CONTROL POINT ARE THE CONVERSION MODE TABLES
* WHICH 1CD WILL USE WHEN DRIVING THE VARIOUS EQUIPMENTS.
SPACE 4,10
*** CALL.
*
*
*T 18/ *1IO*,1/P,5/ CP,5/,1/F,6/ RS,12/ BN,12/ AB
*
* P PRESET PERFORMED.
* CP CONTROL POINT NUMBER.
* F FILE PREVIOUSLY REQUESTED FLAG.
* RS RELEASE STORAGE REPEAT COUNT.
* BN BUFFER POINT NUMBER CURRENTLY UNDER CONSIDERATION.
* AB ACTIVE BUFFER COUNT.
SPACE 4,10
*** DAYFILE AND ERRLOG MESSAGES.
*
*
* *EQXXX CCC/NIP CONTROLWARE LOADED.* =
* INFORMATIVE MESSAGE INDICATING THAT CCC/NIP
* CONTROLWARE WAS LOADED SUCCESSFULLY.
*
* *EQXXX CCC/NIP CONTROLWARE LOAD ERROR.* = ERROR WAS
* ENCOUNTERED IN THE CCC/NIP CONTROLWARE WHEN ATTEMPTING
* TO LOAD THE CCC.
*
* *EQXXX CCC/NIP CONTROLWARE NOT FOUND.* =
* CCC/NIP CONTROLWARE WAS NOT FOUND ON THE SYSTEM FILE.
*
* *EQXXX CCC/NIP STATUS ERROR.* = A STATUS OF 5XXX WAS
* RETURNED FROM THE CCC.
*
* *EQXXX CHANNEL PARITY ERROR.* =
* A PARITY ERROR WAS DETECTED ON A CONVERTER
* OR EQUIPMENT.
*
* *EQXXX CONTROLLER HUNG BUSY.* =
* THE CONTROLLER DOES NOT DROP BUSY STATUS.
*
* *EQXXX FUNCTION TIMEOUT* =
* A FUNCTION TIMEOUT WAS DETECTED ON A CONVERTER
* OR EQUIPMENT FUNCTION.
*
* *EQXXX INCOMPLETE DATA TRANSFER.* =
* AN INCOMPLETE DATA TRANSFER WAS DETECTED.
*
* *EQXXX INTERNAL/EXTERNAL REJECT.* =
* AN INTERNAL OR EXTERNAL REJECT WAS DETECTED.
*
* *EQXXX TRANSMISSION PARITY ERROR.* =
* A TRANSMISSION PARITY ERROR WAS DETECTED.
*
* *EQXXX TURNED OFF BY SYSTEM.* =
* FAULTY EQUIPMENT WAS TURNED OFF BY THE SYSTEM.
*
* * NO EQUIPMENT AVAILABLE.* =
* *BIO* DETERMINED THAT THERE IS NO EQUIPMENT IN
* THE SYSTEM THAT IT CAN DRIVE.
*
* * RECOVERY COMPLETE.* =
* INFORMATIVE MESSAGE.
*
* WHERE-
* EQ = EQUIPMENT MNEMONIC.
* XXX = EST ORDINAL.
SPACE 4,10
*** OPERATOR *I* DISPLAY STATUS MESSAGES.
*
* *NOT READY.* = DEVICE IS NOT READY.
*
* *OFF.* = DEVICE IS *OFF* IN THE EST.
*
* *DOWN.* = DEVICE IS *DOWN* IN THE EST.
*
* *OFF - CHECK ERRLOG.* = DEVICE HAS BEEN TURNED OFF DUE TO A
* HARDWARE PROBLEM. CHECK THE ERRLOG FOR THE DETAILS.
*
* *INTERVENTION NEEDED.* = DEVICE NEEDS OPERATOR INTERVENTION.
*
* *CH UNAVAILABLE.* = CHANNEL COULD NOT BE RESERVED.
SPACE 4,10
*** ERROR PROCESSING.
*
*
* CHANNEL ERROR PROCESSING.
*
* THE FOLLOWING CHANNEL ERRORS ARE DETECTED -
* CONNECT REJECT.
* FUNCTION REJECT.
* TRANSMISSION PARITY ERRORS.
* INCOMPLETE DATA TRANSFER.
* 6681 FUNCTION TIMEOUT.
* EQUIPMENT FUNCTION TIMEOUT.
* CCC/NIP STATUS ERROR.
* WHEN ANY OF THESE CHANNEL ERRORS ARE DETECTED, THE
* FOLLOWING ACTION IS TAKEN -
* OUTPUT FILES ARE REQUEUED.
* TRACKS FOR INPUT FILES ARE DROPPED.
* THE FAULTY EQUIPMENT IS TURNED OFF AND DROPPED.
* ERROR LOG MESSAGES ARE ISSUED.
*
* BAD SYSTEM SECTOR ERROR PROCESSING.
*
* IF AN ERROR IS ENCOUNTERED WHILE READING THE SYSTEM
* SECTORS, THE FILE IS RELEASED FROM THE *BATCHIO* CP
* WITH THE FOLLOWING CONDITIONS -
* THE NAME OF THE FILE IS CHANGED TO -**BAD O-.
* THE FILE TYPE IS CHANGED TO COMMON.
* WRITE LOCKOUT IS SELECTED FOR THE FILE.
SPACE 4,10
** ROUTINES USED.
*
*
* 3IA - 1IO SUBROUTINES.
* 3IB - 1IO LOAD IMAGE MEMORY.
* 3IC - 1IO ERROR ROUTINES.
* 3ID - 1IO PRESET ROUTINES.
* 3IF - 1IO LOAD CCC/NIP CONTROLWARE.
SPACE 4,10
** PROGRAMS CALLED.
*
*
* CIO - COMBINED INPUT/OUTPUT.
* QAC - QUEUE ACCESS.
* QAP - QUEUE AUXILIARY PROCESSOR.
* 1CD - *BATCHIO* DRIVER.
SPACE 4,10
** COMMON DECKS.
*CALL COMPMAC
*CALL COMSACC
*CALL COMPCHI
LIST X
*CALL COMSBIO
LIST *
*CALL COMSCPS
*CALL COMSDFS
*CALL COMSDSP
*CALL COMSEVT
*CALL COMSJCE
*CALL COMSJIO
*CALL COMSPIM
*CALL COMSQAC
*CALL COMSSSD
SPACE 4,10
**** DIRECT LOCATION ASSIGNMENTS.
RI EQU 16 - 17 RANDOM INDEX (2 LOCATIONS)
ES EQU 20 - 24 EST ENTRY
EC EQU 25 EQUIPMENT TYPE CODE
FC EQU 26 FUNCTION CODE
EI EQU 27 EQUIPMENT INDEX
CN EQU 30 - 34 CM WORD BUFFER (5 LOCATIONS)
CS EQU 35 CONVERTER STATUS
ST EQU 36 EQUIPMENT STATUS
ET EQU 37 EQUIPMENT DEFINITION
FN EQU 40 - 44 FILE NAME (5 LOCATIONS)
AB EQU FN - FN+4 PROGRAM NAME (5 LOCATIONS)
EQ EQU 45 EST ORDINAL / DEVICE TYPE
BA EQU 46 - 47 BUFFER ADDRESS (2 LOCATIONS)
FA EQU 57 FNT ADDRESS
FS EQU 60 - 64 FST INFORMATION (5 LOCATIONS)
RT EQU 65 ERROR RETRY COUNT + RECOVERY FLAG
MC EQU 66 ERROR MESSAGE CODE
RC EQU 67 CHANNEL ERROR RETRY COUNT
SPACE 4,10
* ASSEMBLY CONSTANT.
CH EQU 12 CHANNEL NUMBER
BFL EQU BUFR+77 BUFFER LENGTH, ROUNDED UP
MSR$ EQU 0 DEFINE ERROR PROCESSOR FOR *COMPRNS*
SAF$ EQU 1 DEFINE ENTRY CONDITION FOR *COMPSAF*
****
DBMLT SPACE 4,10
** DBMLT - DEFINE BML MESSAGE TABLE.
*
* DBMLT MSGCD,PROC,SYMPC,NBYTES.
*
* ENTRY MSGCD = MESSAGE CODE.
* PROC = ADDRESS OF BML MESSAGE PROCESSOR.
* SYMPC = SYMPTOM CODE FOR BML MESSAGE.
* NBYTES = NUMBER OF BYTES IN BML MESSAGE.
DBMLT MACRO MSGCD,PROC,SYMPC,NBYTES
DTPR RMT
INDEX MSGCD-BAME,PROC
RMT
DTSY RMT
INDEX MSGCD-BAME,SYMPC
RMT
DTNB RMT
INDEX MSGCD-BAME,NBYTES
RMT
ENDM
DEFOIES SPACE 4,10
** DEFOIES - DEFINE LOAD ADDRESS OF ERROR ROUTINES.
*
* DEFOIES ADDR
*
* ENTRY *ADDR* = LOAD ADDRESS. IF NOT SPECIFIED, USE
* CURRENT ADDRESS + 5.
*
* EXIT *OIES* = NEW OVERLAY LOAD ADDRESS VALUE.
PURGMAC DEFOIES
DEFOIES MACRO ADDR
MACREF DEFOIES
NOREF .1
QUAL
.1 SET ADDR *+5
IF -DEF,OIES
OIES SET .1
ELSE
OIES MAX OIES,.1
ENDIF
QUAL *
DEFOIES ENDM
SPACE 4,10
* DEFINE QUAL BLOCK ORDER.
QUAL 3IA
QUAL 3IB
QUAL 3IC
QUAL 3ID
QUAL 3IF
QUAL 5IA
QUAL 5IC
QUAL 5ID
QUAL 5IE
QUAL 5IG
QUAL 5IH
QUAL
TITLE MAIN PROGRAM.
BCM SPACE 4,10
** BCM - MAIN PROGRAM.
ORG PPFW
BCM LDD IR+1 CHECK PRESET FLAG
SHN 14
MJN BCM1 IF NOT FIRST ENTRY
EXECUTE 3ID PRESET BATCHIO
BCM1 LDN 0 CLEAR FST ADDRESS
STD RT
STD FA
STD BA CLEAR BUFFER ADDRESS
STD BA+1
LDD IR+4 CLEAR RECOVERY FLAG
LPN 77
STD IR+4
LDD CP CHECK IDLEDOWN STATUS
ADN SNSW
CRD CM
LDD CM+3
SHN 21-3
PJN BCM3 IF IDLEDOWN NOT REQUESTED
BCM2 LDD IR+4
NJN BCM4 IF BUFFERS ASSIGNED
LJM DPP DROP PP
BCM3 LDD RA CHECK FOR PENDING REQUEST
SHN 6
ADN DRQR
CRD CM
LDD CM
ZJN BCM5 IF NO PENDING REQUEST
BCM4 LJM BCM11 TERMINATE PROCESSING
BCM5 LDN TAEQL/5
STD T1
LDD RA READ EQUIPMENT TABLE
SHN 6
ADK TEQR
CRM TAEQ,T1
LDD IR+2 CHECK FILE REQUESTED FLAG
SHN 21-6
MJN BCM7 IF FILE PREVIOUSLY REQUESTED
* ENTER FILE REQUEST.
RJM REQ REQUEST EQUIPMENT
ZJN BCM4 IF NO EQUIPMENT AVAILABLE
RJM CPB CLEAR *QAC* PARAMETER BLOCK
LDD EQ SET EQUIPMENT TYPE
LPN 7
STD T1
LDM BCMA,T1
STD T1
LJM 0,T1 PROCESS EQUIPMENT
* RELEASE FILE BACK TO QUEUE.
BCM6 EXECUTE 3IC
LJM /3IC/CAS RELEASE FILE BACK TO QUEUE
* FILE PREVIOUSLY REQUESTED.
BCM7 RJM CFF CHECK FOR FILE
MJN BCM8 IF FILE FOUND
ZJN BCM11 IF REQUEST NOT COMPLETE
LDD FL CLEAR ANY PENDING FL REQUEST
RJM RSI
AOM RCLA SET NO RECALL REQUESTED FLAG
UJN BCM10 RELEASE EQUIPMENT
* PREPARE COMMUNICATION AREA FOR *1CD*.
BCM8 LDD EQ CHECK FOR PRINTER
LPN 7
SBK LPDT
NJN BCM9 IF NOT PRINTER
EXECUTE 3IB LOAD IMAGE MEMORY
NJN BCM6 IF MEMORY NOT LOADED
BCM9 EXECUTE 3IA ASSIGN JOB
RJM /3IA/ABF ASSIGN BUFFER
LJM /3IA/ADR ASSIGN DRIVER
* RELEASE EQUIPMENT AND TERMINATE PROCESSING.
BCM10 RJM RLE RELEASE EQUIPMENT
BCM11 RJM MSG PROCESS MESSAGES
RJM CPR CHECK PENDING REQUEST
RJM CSR CHECK STORAGE RELEASE
* UJN RCL RECALL *1IO*
RCL SPACE 4,10
** RCL - RECALL *1IO*.
RCL PAUSE CHECK ERROR FLAG
LDD CM+1
NJN ERR IF ERROR FLAG SET
RCLA LDN 0 RECALL REQUESTED
* LDN 1 (NO RECALL REQUESTED)
ZJN RCL1 IF RECALL REQUESTED
SOM RCLA
LJM BCM CHECK NEXT EQUIPMENT
RCL1 LDN ZERL
CRD CM
RCL2 LDD MA ENTER PP RECALL REQUEST
CWD IR
MONITOR RECM
RCL3 LJM PPR EXIT TO PP RESIDENT
DPP SPACE 4,10
** DPP - DROP PP.
DPP MONITOR DPPM DROP PP
LJM PPR EXIT TO PP RESIDENT
ERR SPACE 4,10
** ERR - PROCESS ERROR.
*
* ENTRY (A) = ERROR FLAG.
ERR LMN IDET
ZJN DPP IF IDLEDOWN
EXECUTE 3IC
RJM /3IC/PEF PROCESS ERROR FLAG
UJN DPP DROP PP
BCMA INDEX
INDEX LPDT,LPP
INDEX CPDT,CPP
INDEX CRDT,CRP
INDEX NPDT,LPP
INDEX MXDT
LPP SPACE 4,10
** LPP - LINE PRINTER PROCESSOR.
LPP LDN 1S2 FILE TYPE = PRINT
LJM SFF SEARCH FOR FILE
CPP SPACE 4,10
** CPP - CARD PUNCH PROCESSOR.
CPP LDN 1S3 FILE TYPE = PUNCH
LJM SFF SEARCH FOR FILE
CRP SPACE 4,10
** CRP - CARD READER PROCESSOR.
CRP LDD ST CHECK STATUS
LPN 40
ZJN CRP1 IF *INPUT TRAY NOT EMPTY*
LJM BCM10 RELEASE EQUIPMENT
CRP1 LDC 2R SET DUMMY NAME * * FOR INPUT FILE
STM QACB
LDN BCOT SET BATCH ORIGIN TYPE
STM QACB+5*5+4
LJM BCM9 ASSIGN JOB
TITLE SUBROUTINES.
CAD SPACE 4,10
** CAD - CLEAR AND DISCONNECT EQUIPMENT.
*
* ENTRY (ES+1) = CHANNEL (RESERVED).
* (EQ) = 9/EST ORDINAL, 3/DEVICE TYPE.
*
* EXIT (A) = 0.
* CHANNEL RELEASED.
*
* CALLS FCN.
*
* MACROS DCHAN.
CAD SUBR ENTRY/EXIT
LDD EQ CHECK EQUIPMENT
LPN 7
SBK NPDT
ZJN CAD1 IF NON-IMPACT PRINTER
LDN 0 CLEAR AND DISCONNECT
RJM FCN
CAD1 LDD ES+1 RELEASE CHANNEL
DCHAN
* LDN 0
UJN CADX RETURN
CCT SPACE 4,15
** CCT - CONNECT TO EQUIPMENT.
*
* ENTRY (ES - ES+4) = EST ENTRY.
*
* EXIT (A) = GENERAL STATUS.
*
* ERROR TO *FCN2* IF FUNCTION TIMEOUT.
* TO *FCN3* IF ERROR.
*
* CALLS CFN, CGS.
CCT4 DCN CH+40
RJM CGS GET GENERAL STATUS
NJN CCT3 IF ERROR
LDD ST CHECK STATUS
SHN -11
LMN 5
ZJN CCT2 IF STATUS ERROR
LDD ST
CCT SUBR ENTRY/EXIT
LDN 0 ISSUE SELECT UNIT FUNCTION
RJM CFN
NJN CCT3 IF ERROR
LDD ES+4 SET DEVICE
SHN -11
ACN CH
OAN CH+40
CCT1 ADD ON
EJM CCT4,CH IF FUNCTION ACCEPTED
NJN CCT1 IF NOT TIMED OUT
LJM FCN2 PROCESS FUNCTION TIMEOUT
CCT2 LDN ECSE *EQXXX CCC/NIP STATUS ERROR.*
CCT3 LJM FCN3 PROCESS ERROR
CEQ SPACE 4,15
** CEQ - CHECK EQUIPMENT AVAILABLE.
*
* ENTRY (A) = EST ORDINAL.
*
* EXIT (A) = 0 IF EQUIPMENT AVAILABLE AND RESERVED.
* (T5) = EST ORDINAL.
* (ES - ES+4) = EST ENTRY.
*
* USES CM - CM+4, FS - FS+4.
*
* CALLS IOM.
*
* MACROS MONITOR, SFA.
CEQ2 LDD FS+4
NJN CEQX IF EQUIPMENT ASSIGNED
LDD ES
ERRNZ REQS CODE ASSUMES *REQS* = 0
LPN 2
NJN CEQ1 IF EQUIPMENT OFF
STD CM+2
MONITOR REQM RESERVE EQUIPMENT
LDD CM+1
ZJN CEQ3 IF NOT ASSIGNED
LCN 1
CEQ3 ADN 1 RETURN ASSIGNED ELSEWHERE STATUS
CEQ SUBR ENTRY/EXIT
STD T5
STD CM+1
SFA EST FETCH EST ENTRY
ADK EQDE
CRD ES
ADK EQAE-EQDE READ EQUIPMENT ASSIGNMENT WORD
CRD FS
LDD ES
LPN 3 CHECK DEVICE STATE
LMN 3
NJN CEQ2 IF EQUIPMENT NOT DOWN
LDN EDWN&EOFF&2
CEQ1 LMN EOFF&2
RJM IOM ISSUE OPERATOR MESSAGE
LDN 1 SET NOT AVAILABLE
UJN CEQX RETURN
CFF SPACE 4,20
** CFF - CHECK FOR FILE.
*
* ENTRY (IR+2) = FILE REQUESTED FLAG SET (BIT 6).
* (IR+3) = BUFFER POINT NUMBER.
*
* EXIT (A) .GT. 0 IF FILE NOT FOUND OR ERRORS.
* (A) = 0 IF *QAC* REQUEST NOT COMPLETE.
* (A) .LT. 0 IF FILE FOUND.
* AVAILABLE EQUIPMENT TABLE WRITTEN.
* (EQ) = EST ORDINAL / DEVICE TYPE.
* (ES - ES+4) = EST ENTRY.
* (FA) = FNT ADDRESS.
* (FS - FS+4) = FST ENTRY.
* (QACB - QACB+QACBL) = *QAC* PARAMETER BLOCK.
*
* USES EQ, T1.
*
* MACROS NFA, SFA.
CFF SUBR ENTRY/EXIT
LDM TAEQ+1,IR+3 SET EST ORDINAL / DEVICE TYPE
STD EQ
SHN -3
SFA EST
ADK EQDE
CRD ES
* CHECK *QAC* PARAMETER BLOCK.
LDN QAPBL READ *QAC* PARAMETER BLOCK
STD T1
LDD RA
SHN 6
ADC QAPB
CRM QACB,T1
LDM QACB+0*5+4
LPN 1
ZJN CFFX IF *QAC* REQUEST NOT COMPLETE
LDD IR+2 CLEAR FILE REQUESTED FLAG
LMD HN
STD IR+2
LDM QACB+0*5+3 CHECK ERROR CODE
SHN 6
LMM QACB+0*5+4
SHN -12
NJN CFF1 IF ERROR
LDM QACB+4*5 SET FNT OFFSET
STD FA
NFA FA,R READ FST INFORMATION
ADN FSTL
CRD FS READ FST ENTRY
LCN 0 INDICATE NO ERRORS
CFF1 LJM CFFX RETURN
CFN SPACE 4,15
** CFN - OUTPUT FUNCTION TO EQUIPMENT.
*
* ENTRY (A) = FUNCTION CODE.
*
* EXIT (A) = 0 IF FUNCTION SUCCESSFUL.
* (FC) = FUNCTION CODE IF NOT GENERAL STATUS FUNCTION.
*
* ERROR (A) = ERROR MESSAGE CODE.
*
* USES T1.
CFN2 LDN 0
CFN SUBR ENTRY/EXIT
FAN CH ISSUE FUNCTION
STD T1
LMN 12
ZJN CFN1 IF GENERAL STATUS FUNCTION
LMN 12 SAVE FUNCTION CODE FOR ERROR MESSAGE
STD FC
CFN1 ADD ON
IJM CFN2,CH IF FUNCTION ACCEPTED
NJN CFN1 IF NOT TIMED OUT
DCN CH+40
LDD T1
STD FC
LDN EFTM *EQXXX FUNCTION TIMEOUT.*
UJN CFNX RETURN
CGS SPACE 4,15
** CGS - GET GENERAL STATUS.
*
* ENTRY (EQ) = 9/EST ORDINAL, 3/DEVICE TYPE.
* (ES - ES+4) = EST ENTRY.
*
* EXIT (A) = 0 IF GENERAL STATUS OBTAINED.
* (ST) = GENERAL STATUS.
*
* CALLS CFN, PCP.
CGS2 LDD RC
ZJN CGSX IF NO ERRORS
LDN 0 REPORT CHANNEL PARITY ERRORS
CGS3 RJM PCP
LDN 0
CGS SUBR ENTRY/EXIT
CGS1 LDN 12 ISSUE GENERAL STATUS FUNCTION
RJM CFN
NJN CGSX IF ERROR
ACN CH
IAN CH+40
DCN CH+40
STD ST
CFM CGS2,CH IF NO CHANNEL ERROR
AOD RC
SBK CHPR
NJN CGS1 IF RETRY COUNT NOT EXHAUSTED
LDN 1
UJN CGS3 PROCESS UNRECOVERED PARITY ERROR
CON SPACE 4,20
** CON - CONNECT EQUIPMENT.
*
* ENTRY 6681 CONNECTED.
* (ES - ES+4) = EST ENTRY.
*
* EXIT (A) = BITS 0 - 2 OF 6681 STATUS.
* (CS) = 6681 STATUS.
* (ST) = EQUIPMENT STATUS.
* (FC) = CONNECT CODE.
* EQUIPMENT CONNECTED.
* IF THE CONNECT FUNCTION TIMES OUT, THEN EXIT IS MADE
* TO *RAF* VIA *FCN2*.
*
* USES FC.
*
* CALLS GST, IFN.
CON2 DCN CH+40
RJM GST GET STATUS OF 6681 AND EQUIPMENT
CON SUBR ENTRY/EXIT
LDN 10 SELECT MODE II CONNECT
RJM IFN
LDD ES+4 OUTPUT CONNECT CODE
LPC 7000 SAVE CONNECT CODE
STD FC
OAN CH+40
LCN 0 TIME OUT CONNECT
CON1 EJM CON2,CH IF CONNECT RESPONSE RECEIVED
SBN 1
NJN CON1 IF NOT TIMED OUT
LJM FCN2 FUNCTION TIMEOUT ERROR PROCESSOR
CPB SPACE 4,10
** CPB - CLEAR *QAC* PARAMETER BLOCK.
*
* USES T2.
CPB SUBR ENTRY/EXIT
LDC QACB
STD T2
CPB1 LDN 0 CLEAR PARAMETER BLOCK
STI T2
AOD T2 ADVANCE ADDRESS
LMC QACB+QACBL
NJN CPB1 IF NOT END OF PARAMETER BLOCK
LDC QAPBL*100-500 SET PARAMETER BLOCK LENGTH
STM QACB+1*5+3
UJN CPBX RETURN
CPR SPACE 4,10
** CPR - CHECK PENDING REQUEST.
*
* CHECKS IF REQUEST IS PENDING FOR A *1CD* THAT HAS DROPPED
* OUT.
*
* EXIT TO *3IA* IF PENDING REQUEST AND *1CD* NOT ACTIVE.
*
* USES EC, CM - CM+4, CN - CN+4.
*
* CALLS *3IA*.
*
* MACROS EXECUTE.
CPR SUBR ENTRY/EXIT
LDD RA
SHN 6
ADN DRQR
CRD CN
LDD CN
ZJN CPRX IF NO PENDING REQUEST
LDD RA CHECK IF *1CD* ACTIVE
SHN 6
ADD CN
CRD CM
LDD CM
NJN CPRX IF *1CD* ACTIVE
LDD CN+1 SET DEVICE TYPE
LPN 7
STD EC
EXECUTE 3IA
LJM /3IA/ADR4 ASSIGN DRIVER
CSR SPACE 4,10
** CSR - CHECK FOR STORAGE RELEASE.
*
* ENTRY (IR - IR+4) SET.
*
* USES IR+2, IR+4, BA - BA+1, CM - CM+4, CN - CN+4, T1 - T4.
*
* MACROS MONITOR, PAUSE.
CSR SUBR ENTRY/EXIT
LDD IR+4
LPN 77
ZJN CSRX IF NO BUFFER ASSIGNED
AOD IR+2 ADVANCE ENTRY COUNT
LPN 77
LMN 5
NJN CSRX IF NOT 5 ENTRIES
LDD IR+2
SCN 77
STD IR+2 CLEAR ENTRY COUNT
LDN 0 CLEAR BUFFER COUNT
STD T1
STD T4 CLEAR LAST BUFFER NUMBER
STD T2 SET BUFFER ADDRESS
STD BA
LDC BUFR
STD T3
STD BA+1
CSR1 LDD T2 READ BUFFER STATUS
SHN 6
ADD RA
SHN 6
ADD T3
CRD CM
ADN 4 READ LIMIT
CRD CN
LDD CM
ZJN CSR2 IF BUFFER FREE
LDD CN+3 SET BUFFER LIMIT
STD BA
LDD CN+4
STD BA+1
LDD T1 SET CURRENT BUFFER COUNT
ADN 1
STD T4
CSR2 LDD CN+3 SET NEXT BUFFER ADDRESS
STD T2
LDD CN+4
STD T3
AOD T1 ADVANCE BUFFER COUNT
LMD IR+4
NJN CSR1 IF NOT END OF BUFFERS
LDD BA CHECK LAST BUFFER
SHN 14
ADD BA+1
ADN 77
SHN -6
STD CM+1
STD T1
LMD FL
ZJN CSR3 IF NO FL CHANGE
LDN 0 SET CM REQUEST
STD CM+2
MONITOR RSTM REQUEST STORAGE
PAUSE
LDD FL CHECK STORAGE
LMD T1
NJN CSR3 IF NOT RELEASED
LDD T4 SET NEW BUFFER COUNT
STD IR+4
CSR3 LJM CSRX RETURN
C2D SPACE 4,10
** C2D - CONVERT 2 DIGITS.
*
* ENTRY (A) = DIGITS RIGHT JUSTIFIED.
*
* EXIT (A) = DIGITS CONVERTED WITH LEADING 0 SUPPRESSED.
*
* USES T0.
C2D SUBR ENTRY/EXIT
LPN 77 UNPACK DIGITS
STD T0
SHN 3
LMD T0
SCN 70
ADC 2R00 CONVERT
STD T0
SHN -6
LMN 1R0 DELETE LEADING 0
NJN C2D1 IF NO LEADING ZERO
LDN 1R -1R0
SHN 6
RAD T0
C2D1 LDD T0
UJN C2DX RETURN
FCN SPACE 4,10
** FCN - ISSUE FUNCTION TO EQUIPMENT.
*
* ENTRY (A) BITS 0 - 11 = FUNCTION CODE.
* 12 - 17 = 0, ABORT IF ERROR DETECTED
* IN 6681 STATUS.
* 12 - 17 .NE. 0, EXIT IF EXTERNAL REJECT.
*
* EXIT (A) = BITS 0 - 2 OF 6681 STATUS.
* IF THE EXTERNAL REJECT EXIT IS REQUESTED
* AND THAT ERROR OCCURS, A NORMAL EXIT FROM
* *FCN* TAKES PLACE.
* OTHERWISE, IF A FUNCTION REJECT OR
* TRANSMISSION PARITY ERROR IS DETECTED, OR
* IF THE FUNCTION TIMES OUT,
* THEN EXIT IS MADE TO */3IC/CAS*.
*
* USES FC, MC, T6.
*
* CALLS GST, *3IC*.
*
* MACROS DCHAN, EXECUTE.
FCN4 RJM GST GET 6681 AND EQUIPMENT STATUS
ZJN FCNX IF NO ERRORS
LMN 1
ZJN FCN6 IF EXTERNAL REJECT
FCN5 LDN ERJM REJECT/TRANSMISSION PARITY ERROR
UJN FCN3 PROCESS ERROR
FCN6 LDD T6
ZJN FCN5 IF EXTERNAL REJECT EXIT NOT REQUESTED
LDD CS RETURN WITH CONVERTER STATUS
LPN 7
FCN SUBR ENTRY/EXIT
STD FC SAVE FUNCTION CODE
SHN -14
STD T6 RETURN CONTROLLER STATUS FLAG
LDD FC
FAN CH ISSUE FUNCTION
LCN 0 SET TIMEOUT LIMIT
FCN1 IJM FCN4,CH IF FUNCTION ACCEPTED
SBN 1
NJN FCN1 IF NOT TIMED OUT
* *FCN2* IS A SECONDARY ENTRY POINT FOR *FCN*.
*
* PROCESS FUNCTION TIMEOUT.
FCN2 DCN CH+40
LDN EFTM *EQXXX FUNCTION TIMEOUT.*
* *FCN3* IS A SECONDARY ENTRY POINT FOR *FCN*.
*
* ENTRY (A) = MESSAGE CODE.
* (ES+1) = CHANNEL (RESERVED).
FCN3 STD MC SAVE MESSAGE CODE
LDD ES+1 RELEASE CHANNEL
DCHAN
EXECUTE 3IC
RJM /3IC/ERM SEND ERROR MESSAGE
RJM /3IC/OEQ OFF EQUIPMENT
LJM /3IC/CAS CLEAR ASSIGNMENT
GST SPACE 4,10
** GST - GET STATUS OF 6681 AND EQUIPMENT.
*
* EXIT (A) = BITS O - 2 OF 6681 STATUS.
* (CS) = 6681 STATUS.
* (ST) = EQUIPMENT STATUS.
*
* CALLS RST.
GST SUBR ENTRY/EXIT
LDN 13 SELECT EQUIPMENT STATUS
RJM RST
LDN 12 GET CONVERTER STATUS
RJM RST
LDD CS CHECK CONVERTER STATUS
LPN 7
UJN GSTX RETURN
IFN SPACE 4,10
** IFN - ISSUE FUNCTION TO CONVERTER.
*
* ENTRY (A) = FUNCTION CODE/100.
*
* EXIT (FC) = FUNCTION CODE.
* CHANNEL ACTIVE.
* TO *FCN2* IF FUNCTION TIMEOUT.
IFN2 ACN CH
IFN SUBR ENTRY/EXIT
SHN 6
FAN CH ISSUE FUNCTION
STD FC
LDN 6
IFN1 IJM IFN2,CH IF FUNCTION ACCEPTED
SBN 1
NJN IFN1 IF NOT TIMED OUT
LJM FCN2 FUNCTION TIMEOUT ERROR PROCESSOR
IOM SPACE 4,10
** IOM - ISSUE OPERATOR MESSAGE.
*
* ENTRY (A) = MESSAGE CODE FOR *I* DISPLAY.
* (IR+3) = BUFFER POINT NUMBER.
*
* USES T1, CM - CM+4.
*
* MACROS NFA.
IOM SUBR ENTRY/EXIT
STD T1
NFA BFCW+1 READ PREVIOUS MESSAGE
ADD IR+3
ADD IR+3
CRD CM
LDD CM CHECK IF SAME MESSAGE
LMD T1
ZJN IOMX IF SAME AS LAST MESSAGE
LDD T1
LMN EOFF
NJN IOM1 IF SETTING *OFF* MESSAGE
LDD CM
LMN EOHE
ZJN IOMX IF CURRENTLY OFF WITH ERROR
IOM1 LDD T1 SET NEW MESSAGE
STD CM
SBN ENEC
MJN IOM2 IF NOT ERROR CONDITION
LDD CP GET ATTENTION OF OPERATOR
ADN MS2W
CWM IOMA,TR
IOM2 NFA BFCW+1 STORE NEW MESSAGE
ADD IR+3
ADD IR+3
CWD CM
UJP IOMX RETURN
IOMA DATA C+$REQUEST *I* DISPLAY.+
MCI SPACE 4,10
** MCI - MODIFY CHANNEL INSTRUCTIONS.
*
* ENTRY (ES+1) = CHANNEL NUMBER.
*
* EXIT (A) .EQ. 0, CHANNEL RESERVED AND (RC) = 0.
* (A) .EQ. *ECUA*, CHANNEL UNAVAILABLE.
*
* USES T1, T2.
*
* MACROS CHTL, RCHAN.
MCI1 RAI T2
AOD T1
MCI2 LDI T1
STD T2
LDD ES+1
LPN 37
CHTL *
SBN CH
NJN MCI1 IF MORE INSTRUCTIONS TO MODIFY
STD RC CLEAR RETRY COUNT
MCI SUBR ENTRY/EXIT
LDD ES+1 GET CHANNEL BYTE
LPC 4037 REMOVE ALL BUT CHANNEL NUMBER
RCHAN TRY TO RESERVE CHANNEL
LDC TCHS LOAD FWA OF CHANNEL TABLE ADDRESSES
STD T1
LDM CM+1
SHN 21-13
PJN MCI2 IF CHANNEL AVAILABLE
LDN ECUA *CHANNEL UNAVAILABLE*
UJN MCIX EXIT WITH ERROR CODE
MSG SPACE 4,10
** MSG - PROCESS CONTROL POINT MESSAGE.
*
* ENTRY (IR+4) SET.
*
* USES T1, CM - CM+4.
*
* CALLS C2D.
MSG SUBR ENTRY/EXIT
LDD IR+4
LPN 77
NJN MSG1 IF BUFFERS ASSIGNED
LDD CP CONSOLE MESSAGE = *IDLE.*
ADN MS1W
CWM =C*IDLE.*,ON
UJN MSG2 CHECK FOR *MS2W* MESSAGE
MSG1 RJM C2D CONVERT BUFFER COUNT
STM MSGA
LDD CP STORE CONTROL POINT MESSAGE
ADN MS1W
CWM MSGA,TR
MSG2 LDD CP CHECK FOR *MS2W* MESSAGE
ADN MS2W
CRD CM
LDD CM
ZJN MSGX IF NO +CHECK *I* DISPLAY+ MESSAGE
LDN 0 SET BUFFER POINT INDEX
STD T1
MSG3 NFA BFCW+1 READ SECOND BUFFER POINT WORD
ADD T1
ADD T1
CRD CM
LDD CM CHECK *I* DISPLAY MESSAGE CODE
SBN ENEC
PJN MSG4 IF ERROR CONDITION PRESENT
AOD T1 ADVANCE BUFFER POINT INDEX
LMM TAEQ
NJN MSG3 IF MORE TO CHECK
STD CM
LDD CP CLEAR OPERATOR ALERT
ADN MS2W
CWD CM
MSG4 LJM MSGX RETURN
MSGA DATA C*00 BUFFERS ACTIVE.*
PCP SPACE 4,10
** PCP - PROCESS CHANNEL PARITY.
*
* ENTRY (A) = UNRECOVERED FLAG.
* (RC) = RETRY COUNT.
*
* EXIT TO *FCN3* IF UNRECOVERED ERROR.
*
* USES MC, RC, RT.
*
* CALLS *3IC*.
*
* MACROS EXECUTE.
PCP1 STD RC CLEAR RETRY COUNT
EXECUTE 3IC
RJM /3IC/ERM ISSUE ERROR MESSAGE
PCP SUBR
STD RT STORE RECOVERED FLAG
LDN ECRE *EQXXX CHANNEL PARITY ERROR.*
STD MC
LDD RC
SHN 6 APPEND RETRY COUNT TO RECOVERY FLAG
RAD RT
LPN 1
ZJN PCP1 IF RECOVERED ERROR
LDN ECRE *EQXXX CHANNEL PARITY ERROR.*
LJM FCN3 PROCESS UNRECOVERED ERROR
REQ SPACE 4,15
** REQ - REQUEST EQUIPMENT.
*
* EXIT (A) = 0 IF NO EQUIPMENT AVAILABLE OR *DSP/QAC* CALL
* BLOCK BUSY.
* (EQ) = EST ORDINAL / DEVICE TYPE.
* (FA) = 0.
* (ES - ES+4) = EST ENTRY.
* (IR+3) = EQUIPMENT INDEX.
*
* USES EI.
*
* CALLS CAD, CEQ, CCT, IOM, MCI, RLE, STS.
*
* MACROS EXECUTE.
REQ SUBR ENTRY/EXIT
LDD RA CHECK *DSP/QAC* PARAMETER BLOCK BUSY
SHN 6
ADK QAPB
CRD CM
LDD CM+4 BUSY BIT
LPN 1
REQ0 ZJN REQX IF CALL BLOCK BUSY
LDN 0 CLEAR EST ORDINAL
STD EQ
STD FA CLEAR FST ADDRESS
LCN 0 SET COUNTER
STD EI
LDD IR+3 GET EQUIPMENT INDEX
SHN 0-13
ZJN REQ1 IF ALL EQUIPMENT NOT CHECKED
LCN 0
STD IR+3
REQ1 AOD IR+3 ADVANCE EQUIPMENT INDEX
LMM TAEQ
NJN REQ2 IF NO MATCH
STD IR+3
REQ2 AOD EI ADVANCE COUNTER
LMM TAEQ
ZJN REQ0 IF ALL EQUIPMENT CHECKED
LDM TAEQ+1,IR+3
STD EQ
SHN -3 CHECK EQUIPMENT AVAILABLE
RJM CEQ
NJN REQ1 IF EQUIPMENT ASSIGNED ELSEWHERE
RJM MCI MODIFY CHANNEL INSTRUCTIONS
ZJN REQ2.1 IF CHANNEL AVAILABLE
RJM IOM ISSUE ERROR MESSAGE
UJN REQ1 CHECK NEXT EQUIPMENT
REQ2.1 LDD EQ
LPN 7
SBK NPDT
NJN REQ4 IF NOT NON-IMPACT PRINTER
LDD ES CHECK IF CONTROLWARE LOAD NEEDED
SHN 21-4
PJN REQ3 IF LOAD NOT NEEDED
EXECUTE 3IF LOAD CONTROLWARE
NJN REQ7 IF BUFFER SPACE UNAVAILABLE
REQ3 RJM CCT CONNECT TO DEVICE
ZJN REQ8 IF DEVICE READY
LMN 1
ZJN REQ5 IF NOT READY
LMN 4&1
NJN REQ7 IF INTERVENTION NOT REQUIRED
LDN EIVR *INTERVENTION REQUIRED.*
UJN REQ6 SET ERROR MESSAGE
REQ4 RJM STS CHECK STATUS
NJN REQ8 IF EQUIPMENT READY
REQ5 LDN ENRD *NOT READY.*
REQ6 RJM IOM ISSUE OPERATOR MESSAGE
REQ7 RJM CAD CLEAR AND DISCONNECT
RJM RLE RELEASE EQUIPMENT
LJM REQ1 PROCESS NEXT EQUIPMENT
REQ8 RJM CAD CLEAR AND DISCONNECT
LDN ECLE CLEAR MESSAGE
RJM IOM ISSUE OPERATOR MESSAGE
LDN 1 SET EQUIPMENT AVAILABLE
LJM REQX RETURN
RLE SPACE 4,10
** RLE - RELEASE EQUIPMENT.
*
* ENTRY (EQ) = 9/EST ORDINAL, 3/DEVICE TYPE.
*
* EXIT (EQ) = 0.
*
* MACROS MONITOR.
RLE SUBR ENTRY/EXIT
LDD EQ
SHN -3
ZJN RLEX IF NOT ASSIGNED
STD CM+1
MONITOR DEQM
* LDN 0
STD EQ
UJN RLEX RETURN
RST SPACE 4,15
** RST - READ STATUS.
*
* ENTRY (A) = 12 IF REQUESTING CONVERTER STATUS.
* = 13 IF REQUESTING EQUIPMENT STATUS.
*
* EXIT (CS) = CONVERTER STATUS IF REQUESTED.
* (ST) = EQUIPMENT STATUS IF REQUESTED.
*
* USES CM, RC, T4.
*
* CALLS IFN, PCP.
RST2 AOD RC ADVANCE RETRY COUNT
SBN CHPR
MJN RST1 IF NOT AT RETRY LIMIT
LDN 1
RST3 RJM PCP PROCESS PARITY ERROR
RST SUBR ENTRY/EXIT
STD CM
SBN 12 SET STATUS INDEX
STD T4
RST1 LDD CM ISSUE CONVERTER FUNCTION
RJM IFN
IAN CH+40 INPUT STATUS
DCN CH+40
ERRNZ CS+1-ST CODE DEPENDS ON VALUE
STM CS,T4
SFM RST2,CH IF CHANNEL PARITY ERROR
LDD RC
ZJN RSTX IF NO PREVIOUS ERROR
LDN 0
UJN RST3 PROCESS RECOVERED PARITY ERROR
SFA SPACE 4,10
** SFA - SET FET ADDRESS.
*
* ENTRY (BA - BA+1) = RELATIVE FET ADDRESS.
*
* EXIT (A) = ABSOLUTE FET ADDRESS.
SFA SUBR ENTRY/EXIT
LDD BA
SHN 6
ADD RA
SHN 6
ADD BA+1
UJN SFAX RETURN
SFF SPACE 4,15
** SFF - SEARCH FOR FILE.
*
* ENTRY (A) = FILE TYPE.
* (EQ) = 9/EST ORDINAL,3/EQUIPMENT TYPE.
* (ES - ES+4) = EST ENTRY.
*
* EXIT *1IO* IS RECALLED AND *QAC* IS CALLED INTO THIS PP.
*
* USES T1, T2, CM - CM+4.
*
* CALLS *QAC*.
*
* MACROS EXECUTE, MONITOR, SFA.
SFF STM QACB+10*5 SET QUEUE TYPE
LMK PHQQ
ZJN SFF3 IF PUNCH QUEUE
LDK ZESF+HESF+DSSF SET EXT. CHAR. AND DISP. CODE
STM QACB+7*5+4
LDD ES+4 SET EXTERNAL CHARACTERISTICS (PRINT TRAIN)
SHN -6
LPN 7
STD T1
LMN 6
NJN SFF2 IF NOT 12-BIT ASCII TRAIN
LDK ECSF+DSSF SET EXPLICIT EXT. CHAR. AND DISP. CODE
STM QACB+7*5+4
SFF2 LDM TPTE,T1 SET EXTERNAL CHARACTERISTICS
STM QACB+10*5+3
SFF3 LDK FCSF+IDSF+DPSF ADD SELECTION FLAGS
RAM QACB+7*5+4
LDK LPSF+LVSF
STM QACB+7*5+3
LDD ES+3 SET DISPOSITION CODE
STM QACB+10*5+2
LDD ES+4 SET DEVICE ID CODE
LPN 77
STM QACB+5*5+3
LDD EQ READ EST ENTRY
SHN -3
SFA EST
ADK EQAE
CRD CM
LDD CM+2 SET FORMS CODE
STM QACB+10*5+1
LDD CM+3 SET EQUIPMENT ACCESS LEVEL LIMITS
SHN 6
STM QACB+11*5+3
LDN GTFC*2 SET *GET* FUNCTION
STM QACB+4
* RECALL *1IO* AND CALL *QAC* INTO THIS PP.
LDN QAPBL WRITE *QAC* PARAMETER BLOCK
STD T1
LDD RA
SHN 6
ADC QAPB
CWM QACB,T1
LDD HN SET FILE REQUESTED FLAG IN *1IO* RECALL
RAD IR+2
EXECUTE QAC,=
LDD MA CALL *QAC*
CWM SFFA,ON
LDN 0 ENABLE QUEUING OF PP REQUEST
STD CM+1
MONITOR RPPM
LJM RCL1 RECALL *1IO*
SFFA VFD 18/3LQAC,24/0,18/QAPB
STS SPACE 4,20
** STS - CHECK EQUIPMENT STATUS.
*
* ENTRY (ES - ES+4) = EST ENTRY.
*
* EXIT (A) = 0, IF EQUIPMENT *NOT READY*.
* (A) = 1, IF EQUIPMENT CONNECTED AND *READY*.
* (CS) = 6681 STATUS.
* (ST) = EQUIPMENT STATUS.
* TO *FCN3* IF ERROR.
*
* CALLS CON, IFN.
STS6 LDD ST CHECK EQUIPMENT STATUS
LPN 1
STS SUBR ENTRY/EXIT
LDN 20 SELECT 6681
RJM IFN ISSUE FUNCTION
DCN CH+40
RJM CON CONNECT EQUIPMENT
STS3 ZJN STS6 IF NO ERROR
RJM CON
ZJN STS6 IF PARITY ERROR CLEARED
STS4 LDN ERJM REJECT/TRANSMISSION PARITY ERROR
STS5 LJM FCN3 PROCESS ERROR
SPACE 4,10
** COMMON DECKS.
*CALL COMPRSI
SPACE 4,10
** LITERALS BLOCK.
USE OVERLAY
TPTE SPACE 4,10
** TPTE - TABLE OF PRINT TRAIN EXTERNAL CHARACTERISTIC VALUES.
*
* INDEXED BY PRINT TRAIN NUMBER.
*
*T, 3/EC , 9/ 0
*
* EC = EXTERNAL CHARACTERISTIC VALUE.
TPTE BSS 0
CON 4000 595-1/596-1
CON 4000 595-1/596-1
CON 4000 NOT SUPPORTED
CON 4000 NOT SUPPORTED
CON 6000 595-6/596-6
CON 5000 595-5/596-5
CON 6000 595-6/596-6
CON 0 595-6/596-6 USED AS 595-5/596-5
TCHS SPACE 4,10
** TCHS - CHANNEL TABLE.
TCHS CHTB
TAEQ SPACE 4,10
** TAEQ - TABLE OF AVAILABLE EQUIPMENT.
TAEQ BSS 0
TAEQL EQU CTIR*5-TEQR*5 TABLE LENGTH
SPACE 4,10
** QACB - *QAC* PARAMETER BLOCK BUFFER.
QACB EQU TAEQ+TAEQL FWA OF BUFFER
QACBL EQU QAPBL*5 *QAC* PARAMETER BLOCK BUFFER LENGTH
ORGR EQU QACB+5*QFFL+5
DEFOIES ORGR SET LOAD ADDRESS OF ERROR ROUTINES
SPACE 4,10
OVERFLOW ,BFMS-TAEQL
RIO TTL 1IO/3IA - 1IO SUBROUTINES.
TITLE
QUAL 3IA
IDENT 3IA,RIOX
*COMMENT 1IO - SUBROUTINES.
COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
RIO SPACE 4,10
** RIO - RETURN CONTROL.
ORG ORGR
RIO SUBR ENTRY/EXIT
UJN RIOX RETURN
ABF SPACE 4,10
** ABF - ASSIGN BUFFER.
*
* ENTRY (EQ) = EST ORDINAL / DEVICE TYPE.
* (FA) = FST ADDRESS.
* (FS - FS+4) = FST ENTRY.
* (QACB - QACB+QACBL) = *QAC* PARAMETER BLOCK.
*
* USES EC, FA, FS - FS+4.
*
* CALLS EBP, EFT, FFB.
ABF SUBR ENTRY/EXIT
LDD EQ SET DEVICE TYPE
LPN 7
STD EC
SBK CRDT
NJN ABF1 IF NOT INPUT FILE
STD FA CLEAR FST ADDRESS
LDN ZERL CLEAR FST ENTRY
CRD FS
ABF1 RJM FFB FIND FREE BUFFER
RJM EFT ENTER FET INFORMATION
RJM EBP ENTER BUFFER POINT INFORMATION
UJN ABFX RETURN
ADR SPACE 4,15
** ADR - ASSIGN DRIVER.
*
* ENTRY (IR+3) = BUFFER NUMBER.
* (BA - BA+1) = BUFFER ADDRESS.
* (EQ) = EST ORDINAL / DEVICE TYPE.
*
* EXIT TO *RCL*.
*
* USES EC, T2, CM - CM+4, CN - CN+4.
*
* CALLS MSG, *3IC*.
*
* MACROS EXECUTE, MONITOR.
ADR LDN D1AR PREPARE REQUEST WORD
STD CN
LDD EQ
STD CN+1
LPN 7
STD EC SET DEVICE TYPE
LDD BA
STD CN+3
LDD BA+1
STD CN+4
LDN 0 CLEAR EMPTY INDICATOR
STD T2
ADR1 LDD RA READ ASSIGNMENT WORD
SHN 6
ADD CN
CRD CM
LDD CM+1 CHECK PROCESSOR
SCN 77
SHN 6
ADD CM
NJN ADR2 IF ASSIGNED
LDD CN SET FREE ADDRESS
STD T2
ADR2 LMC 3RD1C
NJN ADR3 IF NOT DRIVER
LDD CM+3 CHECK ENTRY COUNT
LMN MEQD
ZJN ADR3 IF DRIVER FULL
LDM ADRB,EC CHECK SUB-DRIVER TYPE
LMD CM+4
NJN ADR3 IF NOT PROPER SUB-DRIVER
LDD RA STORE REQUEST
SHN 6
ADN DRQR
CWD CN
LJM ADR5 CHECK JOB TYPE
ADR3 AOD CN ADVANCE SEARCH
LMN DRQR
NJN ADR1 IF NOT END OF PROCESSORS
LDD T2
STD CN
NJN ADR4 IF ROOM FOR ANOTHER PROCESSOR
EXECUTE 3IC
LJM /3IC/CAS CLEAR ASSIGNMENT
* *ADR4* IS A SECONDARY ENTRY POINT FOR *ADR*.
*
* FORMAT *1CD* CALL AND TRY TO INITIATE *1CD* IN ANOTHER PP.
ADR4 LDD CN
STM ADRA+2 SET PROCESSER NUMBER
LDM ADRB,EC SET SUB-DRIVER TYPE
STM ADRA+4
LDD RA STORE PROCESSOR WORD
SHN 6
ADD CN
CWM ADRA,ON
LDD RA SET REQUEST
SHN 6
ADN DRQR
CWD CN
LDD IR+1 SET CONTROL POINT NUMBER
LPN 37
RAM ADRA+1
RJM MSG PROCESS MESSAGES
EXECUTE 1CD,=
LDD MA CALL *1CD*
CWM ADRA,ON
LDN 0 ENABLE QUEUING OF PP REQUEST
STD CM+1
MONITOR RPPM
LDD CM+1
ZJN ADR7 IF PP NOT ASSIGNED
* REQUEST NO *1IO* RECALL FOR OUTPUT JOBS.
ADR5 LDD FA
ZJN ADR6 IF INPUT JOB
AOM RCLA SET NO RECALL REQUESTED FLAG
ADR6 LJM RCL RECALL *1IO*
* RECALL *1IO* AND CALL *1CD* INTO THIS PP.
ADR7 LDC 4000
STD CM+1
LDD IA STORE INPUT REGISTER
CWM ADRA,ON
LJM RCL2 ENTER *1IO* RECALL REQUEST
ADRA VFD 60/0L1CD
ADRB INDEX SUB-DRIVER TYPES
INDEX LPDT,0
INDEX CPDT,0
INDEX CRDT,0
INDEX NPDT,1
INDEX MXDT
EBP SPACE 4,10
** EBP - ENTER BUFFER POINT INFORMATION.
*
* ENTRY (BA - BA+1) = BUFFER ADDRESS.
* (EQ) = EST ORDINAL / DEVICE TYPE.
* (IR+3) = BUFFER POINT NUMBER.
* (FA) = FNT ADDRESS.
* (T7) = REPEAT COUNT.
* (QACB) = FET.
*
* EXIT BUFFER POINT UPDATED.
*
* USES CM - CM+4.
*
* CALLS SFA.
*
* MACROS NFA.
EBP SUBR ENTRY/EXIT
RJM SFA READ FILE NAME
CRD CM
LDD EQ SET EST ORDINAL / DEVICE TYPE
SHN -3
STD CM+3
LDD T7 SET REPEAT COUNT
SHN 6
STD CM+4
NFA QACB+5*5,R STORE BUFFER POINT WORD
CWD CM
LDN ZERL
CRD CM
LDD BA SET FET ADDRESS
STD CM+3
LDD BA+1
STD CM+4
NFA BFSP STORE AUXILIARY BUFFER POINT WORD
ADD IR+3
CWD CM
UJN EBPX RETURN
EFT SPACE 4,10
** EFT - ENTER FET INFORMATION.
*
* ENTRY (EC) = DEVICE TYPE.
* (T3) = BUFFER SIZE / 100.
* (IR+3) = BUFFER NUMBER.
* (BA - BA+1) = BUFFER ADDRESS.
* (ES - ES+4) = EST ENTRY.
*
* EXIT (T7) = REPEAT COUNT.
*
* USES EC, T1, T5, T6, RI - RI+1.
*
* CALLS CRA, SFA.
* PROCESS PRINT FILE.
EFT1 SBN 6
NJN EFT2 IF NOT ASCII PRINT FILE
LDM QACB+10*5+3
SHN -6
LPN 7 ISOLATE IC
LMK DCIC
ZJN EFT2 IF 6-BIT DISPLAY CODE
LMK A6IC&DCIC
ZJN EFT1.1 IF 6/12 ASCII
LDN 20&4 SET 8/12 ASCII
EFT1.1 LMN 20 SET ASCII FILE FLAG
STM QACB+5*FPW2+2
EFT2 LDM QACB+15*5+3 SET *BATCHIO* SUBSYSTEM PRIVILEDGES FLAG
STM QACB+4*5+2
SHN 0-13
RAM QACB+5*FPW2+2
LDD ES CHECK PAPER SIZE
SHN 3-11
LPN 10 SHORT PAPER BIT
RAM QACB+5*FPW2+2
LDM QACB+14*5+2 SET DAYFILE RANDOM ADDRESS
SCN 77
SHN 6
LMM QACB+14*5+1
SHN 6
STD RI+1
SCN 77
LMM QACB+14*5
SHN 6
STD RI
ADD RI+1
ZJN EFT4 IF NO DAYFILE
LDD FS SET EQUIPMENT
STD T5
LDD FS+1 SET FIRST TRACK
STD T6
RJM CRA CONVERT RANDOM ADDRESS
MJN EFT4 IF ADDRESS NOT ON CHAIN
LDD T6 SET DAYFILE TRACK
STM QACB+5*5+1
LDD T7 SET DAYFILE SECTOR
* PROCESS PUNCH FILE.
EFT3 STM QACB+5*5+2
EFT4 LDN 0 CLEAR USER FORMS CONTROL INDICATOR
STM QACB+5*5+3
LDM QACB+14*5+3 SET USER LIMITS
STM QACB+5*FPW2+3
LDM QACB+14*5+4
STM QACB+5*FPW2+4
LDM QACB+5*16+1 MOVE FILE SIZE TO FET (LOWER 24 BITS)
SHN 14
SCN 77
ADM QACB+5*16+2
SHN -6
STM QACB+5*14+4 FILE SIZE
LDM QACB+5*16+0
SHN 14
SCN 77
ADM QACB+5*16+1
SHN -6
STM QACB+5*14+3 FILE SIZE
LDC 4000
STM QACB+5*1+1 SET RANDOM BIT
* PROCESS INPUT FILE.
EFT5 LDC BFCW SET BUFFER POINT OFFSET
SBD IR+3
SBD IR+3
STM QACB+5*5
LDN QFFL SET FET LENGTH
STD T1
ADD BA+1 SET BUFFER POINTERS
STM QACB+5*1+4
STM QACB+5*2+4
STM QACB+5*3+4
SHN -14
ADD BA
STM QACB+5*3+3
STM QACB+5*2+3
LMC QFFL*100-500
STM QACB+5*1+3
LDN 1 SET FET STATUS
STM QACB+4
LDN ZERL CLEAR QUEUE ACCESS PARAMETER BLOCK
CRM QACB+5*QAPO,ON
LDN ZERL
CRM QACB+5*FPSN,ON
* INITIALIZE DRIVER STATUS BLOCK.
LDM QACB+5*15+4 SAVE REPEAT COUNT
STD T7
LDC QACB+5*EDSO
STD T6
EFT6 LDN 0 CLEAR DRIVER STATUS BLOCK
STI T6
AOD T6
LMC QACB+5*QFFL
NJN EFT6 IF NOT END OF BLOCK
LDD EQ SET EQUIPMENT ORDINAL / TYPE
STM QACB+5*EDSO+CMEN
LDD ES+4 SET CONNECT CODE / CHANNEL
LPC 7000
LMD ES+1
SCN 37
LMD ES+1
STM QACB+5*EDSO+CMCE
LDD T7 SET REPEAT COUNT
LPN 77
STM QACB+5*EDSO+CMER
LDD T3 SET BUFFER THRESHOLD
SHN -2
ERRNG BBFL-4 CODE DEPENDS ON VALUE
SHN 6
STM QACB+5*EDSO+CMBT
RJM SFA STORE FET
CWM QACB,T1
EFT SUBR ENTRY/EXIT
LDM EFTA,EC SET PROCESSOR ADDRESS
STD T1
LDM QACB+10*5+3 EXTERNAL CHARACTERISTICS
SHN -11
LJM 0,T1 EXIT TO PROCESSOR
EFTA INDEX
INDEX LPDT,EFT1
INDEX CPDT,EFT3
INDEX CRDT,EFT5
INDEX NPDT,EFT1
INDEX MXDT
FFB SPACE 4,15
** FFB - FIND FREE BUFFER.
*
* ENTRY (EC) = DEVICE TYPE.
* (IR+4) SET.
*
* EXIT (T3) = BUFFER SIZE / 100.
* (BA - BA+1) = BUFFER ADDRESS.
*
* USES T2, CM - CM+4, CN - CN+4.
*
* CALLS RSI, SFA, *3IC*.
*
* MACROS EXECUTE.
FFB6 LDD FL CLEAR PENDING FL REQUEST
RJM RSI
FFB SUBR ENTRY/EXIT
* SEARCH ALLOCATED BUFFERS FOR A FREE BUFFER.
LDM FFBA,EC SET BUFFER SIZE
STD T3
LDN 0 CLEAR BUFFER COUNT
STD T2
STD BA SET FIRST BUFFER ADDRESS
LDC BUFR
STD BA+1
LDM QACB+10*5+3 CHECK FOR 12-BIT ASCII PRINT FILE
SHN -11
SBN 6
NJN FFB1 IF NOT 12-BIT ASCII CODE PRINT FILE
LDD T3 DOUBLE BUFFER SIZE REQUIRED
RAD T3
FFB1 LDD T2
LMD IR+4
ZJN FFB3 IF END OF BUFFERS
RJM SFA READ FET+0
CRD CM
ADN 4 READ LIMIT
CRD CN
LDD CM
NJN FFB2 IF BUFFER BUSY
LDD CN+3 CHECK BUFFER SIZE
STM QACB+4*5+3
SBD BA
SHN 14
ADD CN+4
STM QACB+4*5+4
SBD BA+1
SBK QFFL+1
SHN -6
SBD T3
MJN FFB2 IF FREE BUFFER NOT LARGE ENOUGH
LJM FFB6 CLEAR PENDING FL REQUESTS
FFB2 LDD CN+3 SET NEXT BUFFER ADDRESS
STD BA
LDD CN+4
STD BA+1
AOD T2 ADVANCE BUFFER COUNT
UJN FFB1 CHECK NEXT BUFFER
* REQUEST ADDITIONAL STORAGE.
FFB3 LDD BA COMPUTE FL NEEDED
SHN 6
ADD T3
SHN 6
ADD BA+1
ADC QFFL+1+77
SHN -6
RJM RSI
ZJN FFB5 IF STORAGE ASSIGNED
MJN FFB4 IF NOT AVAILABLE
LDD CP CONSOLE MESSAGE = *WAITING FOR STORAGE.*
ADN MS1W
CWM =C*WAITING FOR STORAGE.*,TR
LDD IR+2 SET SO STORAGE REQUEST WILL REMAIN 5 TIMES
SCN 77
STD IR+2
FFB4 LDN 0 INDICATE NO BUFFER
STD BA
STD BA+1
SOD IR+3 DECREMENT EQUIPMENT INDEX
EXECUTE 3IC
LJM /3IC/CAS RELEASE FILE AND EQUIPMENT
FFB5 AOD IR+4 ADVANCE ASSIGNED BUFFER COUNT
LDD BA
SHN 6
ADD T3
SHN 6
ADD BA+1
ADK QFFL+1
STM QACB+4*5+4 SET VALUE FOR LIMIT
SHN -14
STM QACB+4*5+3
LJM FFBX RETURN
FFBA INDEX BUFFER SIZES / 100
INDEX LPDT,BBFL*2
INDEX CPDT,BBFL
INDEX CRDT,BBFL*2
INDEX NPDT,BBFL*4
INDEX MXDT
SPACE 4,10
** COMMON DECKS.
*CALL COMPCRA
SPACE 4,10
OVERFLOW ORGR,BFMS
TTL 1IO/3IB - LOAD IMAGE MEMORY.
TITLE
QUAL 3IB
IDENT 3IB,LDMX
*COMMENT 1IO - LOAD PRINTER IMAGE MEMORY.
COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
3IB SPACE 4,10
** 3IB IS CALLED TO IDENTIFY A LINE PRINTER AND
* LOAD IMAGE MEMORY.
*
* ENTRY (EQ) = 9/EST ORDINAL,3/EQUIPMENT TYPE.
*
* EXIT (A) = 0, IF IMAGE CANNOT BE LOADED.
SLUG SPACE 4,15
** SLUG - DEFINE PRINT SLUG.
*
* CALL -
* SLUG (A1A2A3...AI),N
*
* WHERE AI ARE CODES APPEARING ON THE SLUG.
* N IS THE NUMBER OF CODES TO DEFINE. IF N IS
* ABSENT, THE SYMBOL *NCSL* DEFINES THE NUMBER OF
* CODES/SLUG.
*
* N WORDS ARE ASSEMBLED WITH THE CONTENTS BEING THE 12-BIT
* ASCII CODE EQUIVALENT OF THE SPECIFIED STRING, RIGHT-
* JUSTIFIED AND ZERO FILLED.
SLUG MACRO A,N
LOCAL AA,BB,CC
CC SET N NCSL
AA SET 1
CODE ASCII
NOREF NCSL
DUP CC,3
BB MICRO AA,1, A
CON 1R"BB"+40B
AA SET AA+1
CODE *
ENDM
ESLUG SPACE 4,10
** ESLUG - DEFINE EXTENDED TRAIN PRINT SLUG.
*
* CALL -
* ESLUG (XI,XJ,...,XM),P1,...,PN
*
* WHERE XI - XM ARE THE HEXADECIMAL REPRESENTATIONS OF
* THE VALUES OF THE 12-BIT ASCII CODES ON THE
* SLUG.
* P1 - PN SPECIFY THE POSITIONS IN THE TRAIN
* CONTAINING THIS SLUG.
ESLUG MACRO CHARS,P1,P2,P3,P4,P5,P6,P7,P8
NOREF NCHAR,NCSL,TIMC,.1
.1 SET *
ECHO 5,P=(P1,P2,P3,P4,P5,P6,P7,P8)
IFC NE,//P/
ORG TIMC-NCSL+NCSL*P
ECHO 2,Q=(CHARS)
CON Q
NCHAR SET NCHAR+1
ENDIF
ORG .1
ESLUG ENDM
SPACE 4,10
** PIOVL - DEFINE PRINT IMAGE OVERLAYS.
*
* CALL -
* PIOVL (A1,A2,A3...AN)
*
* WHERE (AN) ARE TWO CHARACTER OVERLAY NAMES.
* THE LENGTH OF AN ARRAY IS 8. THERFORE
* A MAXIMUM OF 8 NAMES CAN BE SPECIFIED.
* IF LESS THAN 8 NAMES ARE SPECIFIED, THE
* FIRST NAME WILL BE USED TO FILL THE
* REMAINING SLOTS.
PIOVL MACRO A
LOCAL AA,BB,CC,DD
AA SET 0
IRP A
CC MICRO 1,,*A*
CON 2R"CC"
AA SET AA+1
.B IFEQ AA,1
DD MICRO 1,,*A*
.B ENDIF
IRP
BB SET 10-AA
.B IFGT BB,0
DUP BB,1
CON 2R"DD"
.B ENDIF
PIOVL ENDM
TITLE MAIN PROGRAM.
LDM SPACE 4,10
** MAIN PROGRAM.
ORG ORGR
LDM SUBR ENTRY/EXIT
RJM MCI MODIFY CHANNEL INSTRUCTIONS
RJM LIM LOAD IMAGE MEMORY
NJN LDM2 IF ERROR
LDD ST CHECK FOR PRINTER READY
LPN 1
LMN 1
RAM LDMA
* NORMAL EXIT - RELEASE EQUIPMENT.
RJM CAD CLEAR AND DISCONNECT
LDMA LDN 0
* LDN 1 (PRINTER NOT LOADED)
LDM1 UJN LDMX EXIT
* ERROR EXIT - TURN EQUIPMENT OFF
LDM2 STD MC SAVE MESSAGE CODE
LMN ECUA
ZJN LDM4 IF CHANNEL UNAVAILABLE
DCN CH+40
LDD ES+1 RELEASE CHANNEL
DCHAN
EXECUTE 3IC
RJM /3IC/ERM SEND ERROR MESSAGE
RJM /3IC/OEQ OFF EQUIPMENT
LDM3 LDN 1 SET ERROR FLAG
UJN LDM1 EXIT
LDM4 LDN ECUA *CHANNEL UNAVAILABLE*
RJM IOM ISSUE ERROR MESSAGE
UJN LDM3 EXIT WITH ERROR FLAG
LIM SPACE 4,10
** LIM - LOAD IMAGE MEMORY.
*
* ENTRY (ES - ES+4) = EST ENTRY.
*
* EXIT (A) .NE. 0 IF IMAGE MEMORY CANNOT BE LOADED.
* (ST) = EQUIPMENT STATUS.
*
* USES CS, T3.
*
* CALLS CAD, CES, EXR, FCN, GST, IFN, *5IA*, *5IC*, *5ID*,
* *5IE*, *5IG*, *5IH*.
*
* MACROS EXECUTE.
LIM SUBR ENTRY/EXIT
RJM CES CHECK EQUIPMENT STATUS
PJN LIMX IF PRINTER NOT READY OR ERROR
LDD ET
SHN 6 FIND OVERLAY NAME
STD T3
LDD ES+4
SHN -6 ADD TRAIN TYPE TO INDEX
LPN 7
SHN 3
RAD T3
LDM QACB+15*5+3 GET PRINT IMAGE CODE
SHN -6
LPN 17
NJN LIM0 IF EXPLICIT PRINT IMAGE SPECIFIED
LDN PISD USE SYSTEM DEFAULT PRINT IMAGE
LIM0 LPN 7
RAD T3
LDM TIMO,T3 SET OVERLAY NAME
STM LIMA
RJM CAD CLEAR AND DISCONNECT
LDC 1L5 LOAD IMAGE MEMORY OVERLAY
LIMA EQU *-1
EXECUTE 5IA,=
EXECUTE 5IC,=
EXECUTE 5ID,=
EXECUTE 5IE,=
EXECUTE 5IG,=
EXECUTE 5IH,=
RJM EXR
STM LIMB SAVE TABLE LENGTH
RJM CES CHECK EQUIPMENT STATUS
PJN LIM1 IF PRINTER NOT READY OR ERROR
LDN 24 SELECT ABNORMAL *EOP* INTERRUPT
RJM FCN ISSUE FUNCTION
LDN 13 SET EXTENDED ARRAY MODE
RJM FCN
LDN 12 *FILL IMAGE MEMORY*
RJM FCN ISSUE FUNCTION
LDN 16 OUTPUT IMAGE MEMORY
RJM IFN ISSUE FUNCTION
LDC * OUTPUT IMAGE MEMORY
LIMB EQU *-1
OAM TIMC,CH
NJN LIM2 IF INCOMPLETE DATA TRANSFER
FJM *,CH
DCN CH+40
RJM GST GET 6681 AND EQUIPMENT STATUS
ZJN LIM1 IF NO ERRORS
LDN ERJM REJECT/TRANSMISSION PARITY ERROR
LIM1 LJM LIMX RETURN
LIM2 STD CS STORE NUMBER OF UNTRANSFERED BYTES
LDN EITM *EQXXX INCOMPLETE DATA TRANSFER.*
UJN LIM1 RETURN
CES SPACE 4,15
** CES - CHECK EQUIPMENT STATUS.
*
* EXIT (A) .LT. 0 IF NO ERROR.
* (A) = 0, IF PRINTER NOT READY.
* (A) = ERROR CODE.
* (ET) = 0 IF 512 PRINTER.
* = 1 IF 580 PRINTER.
*
* USES ET, T3.
*
* CALLS FCN, GST, STS, //MCI.
CES2 LDN 50 ISSUE FUNCTION UNIQUE TO IMAGE MEMORY
RJM FCN
LDC 1S12+66 ISSUE FUNCTION UNIQUE TO 580
RJM FCN
NJN CES3 IF NOT 580
AOD ET
CES3 LCN 0 INDICATE NO ERROR
CES SUBR ENTRY/EXIT
RJM //MCI MODIFY CHANNEL INSTRUCTIONS
NJN CESX IF CHANNEL UNAVAILABLE
RJM STS CHECK PRINTER STATUS
ZJN CESX IF NOT READY
* TIME OUT SINCE 512 CAN HANG BUSY WITH GARBAGE IN IMAGE
* MEMORY.
LDN 0 SET TIMEOUT LIMIT
STD T3
STD ET PRESET EQUIPMENT TYPE = 512
CES1 RJM GST GET STATUS OF 6681 AND EQUIPMENT
LDD ST CHECK EQUIPMENT STATUS
LPN 2
ZJN CES2 IF NOT BUSY
SOD T3
NJN CES1 IF NOT TIMED OUT
LDN ECBM *EQXXX CONTROLLER HUNG BUSY.*
UJN CESX BUSY ERROR
MCI SPACE 4,10
** MCI - MODIFY CHANNEL INSTRUCTIONS.
*
* ENTRY (ES+1) SET.
*
* EXIT CHANNEL INSTRUCTIONS SET WITH PROPER CHANNEL.
*
* USES T1, T2.
MCI SUBR ENTRY/EXIT
LDC TCHS
STD T1
UJN MCI2 UPDATE CHANNEL INSTRUCTIONS
MCI1 RAI T2
AOD T1
MCI2 LDI T1
STD T2
LDD ES+1
LPN 37
CHTL *
SBN CH
NJN MCI1 IF MORE CHANNEL INSTRUCTIONS TO MODIFY
UJN MCIX RETURN
TCHS SPACE 4,10
** TCHS - CHANNEL TABLE.
* TABLE CONTAINS THE ADDRESSES OF ALL INSTRUCTIONS WHICH
* REFERENCE THE EQUIPMENT CHANNEL.
TCHS CHTB
SPACE 4,10
ELIM EQU *+10 DEFINE END OF LOAD IMAGE MEMORY ROUTINES
TIMC EQU ELIM+5
QUAL
OIMT SET /3IB/ELIM DEFINE ORIGIN OF IMAGE MEMORY TABLES
QUAL *
DEFOIES OIMT SET LOAD ADDRESS OF ERROR ROUTINES
TIMO SPACE 4,15
** TIMO - TABLE OF IMAGE MEMORY OVERLAYS.
*
* EIGHT BY EIGHT WORD ENTRY.
*
* EACH SET OF EIGHT BY EIGHT WORDS DESCRIBES IMAGE OVERLAYS
* FOR A PARTICULAR EQUIPMENT TYPE. EACH WORD CONTAINS AN
* OVERLAY NAME.
*
* EACH ROW INDICATES A TRAIN TYPE -
* 0, 1 CDC GRAPHIC 64-CHARACTER SET.
* 4, 5, 7 ASCII GRAPHIC 64-CHARACTER SET.
* 6 ASCII GRAPHIC 95-CHARACTER SET.
*
* THE POSITION WITHIN A ROW INDICATES THE PRINT IMAGE (PI)
* ( 0 - 7 ) AND CORRESPONDING OVERLAY NAME FOR THAT TRAIN TYPE.
* IF LESS THAN 8 NAMES ARE SPECIFIED IN A ROW, THE FIRST (PI=0)
* NAME WILL BE USED TO FILL THE REMAINDER OF THE ROW.
TIMO BSS 0
* PI 0 1 2 3 4 5 6 7 TRAIN TYPE
* 512.
PIOVL (IA,IA,IA,IA,IA,IA,IA,IA) 595-1
PIOVL (IA) 595-1
PIOVL (IA) NOT SUPPORTED
PIOVL (IA) NOT SUPPORTED
PIOVL (ID) 595-6
PIOVL (IC) 595-4 OR 595-5
PIOVL (ID) 595-6
PIOVL (ID) 595-6 USED AS 595-5
* 580.
PIOVL (IE) 596-1
PIOVL (IE) 596-1
PIOVL (IE) NOT SUPPORTED
PIOVL (IE) NOT SUPPORTED
PIOVL (IH) 596-6
PIOVL (IG) 596-4 OR 596-5
PIOVL (IH) 596-6
PIOVL (IH) 596-6 USED AS 596-5
TTL 1IO/3IB/5IA - IMAGE MEMORY TABLE.
TITLE 3555/512 WITH 595-1 PRINT TRAIN.
QUAL 5IA
IDENT 5IA,IMTX
*COMMENT 1IO - 512/595-1 IMAGE MEMORY.
COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
5IA SPACE 4,10
NCSL EQU 4 DEFINE SLUG SIZE
IMT SPACE 4,10
ORG OIMT
IMT SUBR ENTRY/EXIT
LDC TIMCL
UJN IMTX RETURN WITH TABLE LENGTH
TIMC SPACE 4,10
* GROUP 1.
TIMC SLUG (0123)
SLUG (4567)
SLUG (BZ,/)
SLUG (89AC)
SLUG ((GH))
SLUG (RIFL)
SLUG (MNOP)
SLUG ([),1
CON 45 PERCENT
SLUG (^]),2
SLUG (DUST)
SLUG (VWXY)
SLUG (+-.E)
SLUG (JKQ*)
* GROUP 2.
SLUG (0123)
SLUG (4567)
SLUG ($),1
CON 137 CONCATENATION
SLUG ("=),2
SLUG (89AC)
SLUG (BZ,/)
SLUG (RIFL)
SLUG (MNOP)
SLUG ((GH))
SLUG (DUST)
SLUG ('?&!)
SLUG (+-.E)
SLUG (VWXY)
* GROUP 3.
SLUG (0123)
SLUG (4567)
SLUG (JKQ*)
SLUG (89AC)
SLUG (@\<>)
SLUG (RIFL)
SLUG (MNOP)
SLUG (BZ,/)
SLUG (DUST)
SLUG ((GH))
SLUG (+-.E)
CON 72 COLON
SLUG (;#=),3
* GROUP 4.
SLUG (0123)
SLUG (4567)
SLUG (VWXY)
SLUG (89AC)
SLUG (JKQ*)
SLUG (RIFL)
SLUG (MNOP)
SLUG ([),1
CON 45 PERCENT
SLUG (^]),2
SLUG (DUST)
SLUG (BZ,/)
SLUG (+-.E)
SLUG ((GH))
* GROUP 5.
SLUG (0123)
SLUG (4567)
SLUG ($),1
CON 137 CONCATENATION
SLUG ("=),2
SLUG (89AC)
SLUG (VWXY)
SLUG (RIFL)
SLUG (MNOP)
SLUG (JKQ*)
SLUG (DUST)
SLUG ('?&!)
SLUG (+-.E)
SLUG (BZ,/)
* GROUP 6.
SLUG (0123)
SLUG (4567)
SLUG ((GH))
SLUG (89AC)
SLUG (@\<>)
SLUG (RIFL)
SLUG (MNOP)
SLUG (VWXY)
SLUG (DUST)
SLUG (JKQ*)
SLUG (+-.E)
CON 72 COLON
SLUG (;#=),3
ERRNZ /3IB/TIMC-TIMC
TIMCL EQU *-TIMC
ERRNZ TIMCL-288D
DEFOIES SET LOAD ADDRESS OF ERROR ROUTINES
TTL 1IO/3IB/5IC - IMAGE MEMORY TABLE.
TITLE 3555/512 WITH 595-4, 595-5 PRINT TRAINS.
QUAL 5IC
IDENT 5IC,IMTX
*COMMENT 1IO - 512/595-4,595-5 IMAGE MEMORY.
COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
5IC SPACE 4,10
NCSL EQU 4 DEFINE SLUG SIZE
IMT SPACE 4,10
ORG OIMT
IMT SUBR ENTRY/EXIT
LDC TIMCL
UJN IMTX RETURN WITH TABLE LENGTH
TIMC SPACE 4,10
* GROUP 1.
TIMC SLUG (0123)
SLUG (4567)
SLUG (BZ,/)
SLUG (89AC)
SLUG ((GH))
SLUG (RIFL)
SLUG (MNOP)
SLUG ([),1
CON 45 PERCENT
SLUG ("]),2
SLUG (DUST)
SLUG (VWXY)
SLUG (+-.E)
SLUG (JKQ*)
* GROUP 2.
SLUG (0123)
SLUG (4567)
SLUG ($@'=)
SLUG (89AC)
SLUG (BZ,/)
SLUG (RIFL)
SLUG (MNOP)
SLUG ((GH))
SLUG (DUST)
SLUG (#\^!)
SLUG (+-.E)
SLUG (VWXY)
* GROUP 3.
SLUG (0123)
SLUG (4567)
SLUG (JKQ*)
SLUG (89AC)
SLUG (&?<>)
SLUG (RIFL)
SLUG (MNOP)
SLUG (BZ,/)
SLUG (DUST)
SLUG ((GH))
SLUG (+-.E)
CON 72 COLON
SLUG (;),1
CON 137 UNDERLINE
SLUG (=),1
* GROUP 4.
SLUG (0123)
SLUG (4567)
SLUG (VWXY)
SLUG (89AC)
SLUG (JKQ*)
SLUG (RIFL)
SLUG (MNOP)
SLUG ([),1
CON 45 PERCENT
SLUG ("]),2
SLUG (DUST)
SLUG (BZ,/)
SLUG (+-.E)
SLUG ((GH))
* GROUP 5.
SLUG (0123)
SLUG (4567)
SLUG ($@'=)
SLUG (89AC)
SLUG (VWXY)
SLUG (RIFL)
SLUG (MNOP)
SLUG (JKQ*)
SLUG (DUST)
SLUG (#\^!)
SLUG (+-.E)
SLUG (BZ,/)
* GROUP 6.
SLUG (0123)
SLUG (4567)
SLUG ((GH))
SLUG (89AC)
SLUG (&?<>)
SLUG (RIFL)
SLUG (MNOP)
SLUG (VWXY)
SLUG (DUST)
SLUG (JKQ*)
SLUG (+-.E)
CON 72 COLON
SLUG (;),1
CON 137 UNDERLINE
SLUG (=),1
ERRNZ /3IB/TIMC-TIMC
TIMCL EQU *-TIMC
ERRNZ TIMCL-288D
DEFOIES SET LOAD ADDRESS OF ERROR ROUTINES
TTL 1IO/3IB/5ID - IMAGE MEMORY TABLE.
5ID TITLE 3555/512 WITH 595-6 PRINT TRAIN.
QUAL 5ID
IDENT 5ID,IMTX
*COMMENT 1IO - 512/595-6 IMAGE MEMORY.
COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
5ID SPACE 4,10
NCSL EQU 4 DEFINE SLUG SIZE
IMT SPACE 4,10
ORG OIMT
IMT SUBR ENTRY/EXIT
LDC TIMCL
UJN IMTX RETURN WITH TABLE LENGTH
TIMC SPACE 4,10
TIMC BSSZ 288D
NCHAR SET 0
* DEFINE SYMBOLS X0-X7F FOR CORRESPONDING HEX VALUES.
ECHO 3,P=(2,3,4,5,6,7)
ECHO 2,Q=(0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F)
NOREF X_P_Q
X_P_Q EQU 0#_P_Q
BASE D
ESLUG (X30,X31,X32,X33),01,25,49 0,1,2,3
ESLUG (X34,X35,X36,X37),02,26,50 4,5,6,7
ESLUG (X38,X39,X62,X63),03,27,51 8,9,B(LC),C(LC)
ESLUG (X65,X73,X74,X61),04,28,52 E(LC),S(LC),T(LC),A(LC)
ESLUG (X64,X66,X75,X76),05,29,53 D(LC),F(LC),U(LC),V(LC)
ESLUG (X67,X68,X69,X6A),06,30,54 G(LC),H(LC),I(LC),J(LC)
ESLUG (X6B,X6C,X6D,X6E),07,31,55 K(LC),L(LC),M(LC),N(LC)
ESLUG (X6F,X70,X77,X72),08,32,56 O(LC),P(LC),W(LC),R(LC)
ESLUG (X71,X78,X79,X7A),09,33,57 Q(LC),X(LC),Y(LC),Z(LC)
ESLUG (X5C,X60,X51,X55),15,39,63 BACK/,ACCENT,Q(LC),U(LC)
ESLUG (X4A,X41,X4B,X45),16,40,64 J,A,K,E
ESLUG (X42,X57,X47,X48),17,41,65 B,W,G,H
ESLUG (X44,X43,X53,X54),18,42,66 D,C,S,T
ESLUG (X50,X4E,X46,X4C),19,43,67 P,N,F,L
ESLUG (X4D,X49,X4F,X52),20,44,68 M,I,O,R
ESLUG (X56,X5A,X58,X59),21,45,69 V,Z,X,Y
ESLUG (X3C,X3E,X5B,X5D),10,34,58 .LT.,.GT.,L.BRKT,R.BRKT
ESLUG (X2E,X7C,X7B,X7D),11,35,59 .,V.BAR,L.BRACE,R.BRACE
ESLUG (X21,X5E,X5F,X7E),12,36,60 EXCLAM,C.FLEX,UNDERSC,TILDE
ESLUG (X25,X30,X23,X40),13,37,61 PERCENT,0,POUND,AT
ESLUG (X3A,X3B,X27,X3F),14,38,62 COLON,SEMICOLON,APOS,Q.MARK
ESLUG (X28,X2F,X2A,X29),22,46,70 (,/,*,)
ESLUG (X2B,X2D,X2E,X2C),23,47,71 +,-,.,,
ESLUG (X24,X3D,X22,X26),24,48,72 $,=,D.QUOTE,AMPERSAND
BASE *
ERRNZ /3IB/TIMC-TIMC
TIMCL EQU NCHAR
ERRNZ TIMCL-288D
DEFOIES SET LOAD ADDRESS OF ERROR ROUTINES
TTL 1IO/3IB/5IE - IMAGE MEMORY TABLE.
TITLE 580 WITH 596-1 PRINT TRAIN.
QUAL 5IE
IDENT 5IE,IMTX
*COMMENT 1IO - 580/596-1 IMAGE MEMORY.
COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
5IE SPACE 4,10
NCSL EQU 8D DEFINE SLUG SIZE
IMT SPACE 4,10
ORG OIMT
IMT SUBR ENTRY/EXIT
LDC TIMCL
UJN IMTX RETURN WITH TABLE LENGTH
TIMC SPACE 4,10
* GROUP 1.
TIMC SLUG (17430265)
SLUG (E-+.HG98)
SLUG (FCBDRALI)
SLUG (140$3Z2,)
SLUG (POQKMN*J)
SLUG (/VTYWXUS)
SLUG (;=()[]),6
CON 45 PERCENT
CON 72 COLON
SLUG (17430265)
* GROUP 2.
SLUG (E-+.HG98)
SLUG (FCBDRALI)
SLUG (POQKMN*J)
SLUG (/VTYWXUS)
SLUG (&@\!),4
CON 137 CONCATENATION
SLUG ('?^),3
SLUG (#()><"Z,)
SLUG (17430265)
SLUG (E-+.HG98)
* GROUP 3.
SLUG (FCBDRALI)
SLUG (140$3Z2,)
SLUG (POQKMN*J)
SLUG (/VTYWXUS)
SLUG (;=()[]),6
CON 45 PERCENT
CON 72 COLON
SLUG (17430265)
SLUG (E-+.HG98)
SLUG (FCBDRALI)
* GROUP 4.
SLUG (POQKMN*J)
SLUG (/VTYWXUS)
SLUG (&@\!),4
CON 137 CONCATENATION
SLUG ('?^),3
SLUG (#()><"Z,)
SLUG (17430265)
SLUG (E-+.HG98)
SLUG (FCBDRALI)
SLUG (140$3Z2,)
* GROUP 5.
SLUG (POQKMN*J)
SLUG (/VTYWXUS)
SLUG (;=()[]),6
CON 45 PERCENT
CON 72 COLON
SLUG (17430265)
SLUG (E-+.HG98)
SLUG (FCBDRALI)
SLUG (POQKMN*J)
SLUG (/VTYWXUS)
* GROUP 6.
SLUG (&@\!),4
CON 137 CONCATENATION
SLUG ('?^),3
SLUG (#()><"Z,)
SLUG (17430265)
SLUG (E-+.HG98)
SLUG (FCBDRALI)
SLUG (POQKMN*J)
SLUG (/VTYWXUS)
SLUG (;=()[]),6
CON 45 PERCENT
CON 72 COLON
ERRNZ /3IB/TIMC-TIMC
TIMCL EQU *-TIMC
ERRNZ TIMCL-384D
DEFOIES SET LOAD ADDRESS OF ERROR ROUTINES
TTL 1IO/3IB/5IG - IMAGE MEMORY TABLE.
TITLE 580 WITH 596-4, 596-5 PRINT TRAINS.
QUAL 5IG
IDENT 5IG,IMTX
*COMMENT 1IO - 580/596-4,596-5 IMAGE MEMORY.
COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
5IG SPACE 4,10
NCSL EQU 8D DEFINE SLUG SIZE
IMT SPACE 4,10
ORG OIMT
IMT SUBR ENTRY/EXIT
LDC TIMCL
UJN IMTX RETURN WITH TABLE LENGTH
TIMC SPACE 4,10
* GROUP 1.
TIMC SLUG (17430265)
SLUG (E-+.HG98)
SLUG (FCBDRALI)
SLUG (140$3Z2,)
SLUG (POQKMN*J)
SLUG (/VTYWXUS)
SLUG (;&()[]),6
CON 45 PERCENT
CON 72 COLON
SLUG (17430265)
* GROUP 2.
SLUG (E-+.HG98)
SLUG (FCBDRALI)
SLUG (POQKMN*J)
SLUG (/VTYWXUS)
SLUG (!"^=@),5
CON 137 UNDERLINE
SLUG (?\),2
SLUG ('),1
CON 51 CLOSE PARENTHESIS
CON 50 OPEN PARENTHESIS
SLUG (><#Z,),5
SLUG (17430265)
SLUG (E-+.HG98)
* GROUP 3.
SLUG (FCBDRALI)
SLUG (140$3Z2,)
SLUG (POQKMN*J)
SLUG (/VTYWXUS)
SLUG (;&()[]),6
CON 45 PERCENT
CON 72 COLON
SLUG (17430265)
SLUG (E-+.HG98)
SLUG (FCBDRALI)
* GROUP 4.
SLUG (POQKMN*J)
SLUG (/VTYWXUS)
SLUG (!"^=@),5
CON 137 UNDERLINE
SLUG (?\),2
SLUG ('),1
CON 51 CLOSE PARENTHESIS
CON 50 OPEN PARENTHESIS
SLUG (><#Z,),5
SLUG (17430265)
SLUG (E-+.HG98)
SLUG (FCBDRALI)
SLUG (140$3Z2,)
* GROUP 5.
SLUG (POQKMN*J)
SLUG (/VTYWXUS)
SLUG (;&()[]),6
CON 45 PERCENT
CON 72 COLON
SLUG (17430265)
SLUG (E-+.HG98)
SLUG (FCBDRALI)
SLUG (POQKMN*J)
SLUG (/VTYWXUS)
* GROUP 6.
SLUG (!"^=@),5
CON 137 UNDERLINE
SLUG (?\),2
SLUG ('),1
CON 51 CLOSE PARENTHESIS
CON 50 OPEN PARENTHESIS
SLUG (><#Z,),5
SLUG (17430265)
SLUG (E-+.HG98)
SLUG (FCBDRALI)
SLUG (POQKMN*J)
SLUG (/VTYWXUS)
SLUG (;&()[]),6
CON 45 PERCENT
CON 72 COLON
ERRNZ /3IB/TIMC-TIMC
TIMCL EQU *-TIMC
ERRNZ TIMCL-384D
DEFOIES SET LOAD ADDRESS OF ERROR ROUTINES
TTL 1IO/3IB/5IH - IMAGE MEMORY TABLE.
5IH TITLE 580 WITH 596-6 PRINT TRAIN.
QUAL 5IH
IDENT 5IH,IMTX
*COMMENT 1IO - 580/596-6 IMAGE MEMORY.
COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
5IH SPACE 4,10
NCSL EQU 8D DEFINE SLUG SIZE
SPACE 4,10
ORG OIMT
IMT SUBR ENTRY/EXIT
LDC TIMCL
UJN IMTX RETURN WITH TABLE LENGTH
TIMC SPACE 4,10
TIMC BSSZ 384D
NCHAR SET 0
* DEFINE SYMBOLS X0-X7F FOR CORRESPONDING HEX VALUES.
ECHO 3,P=(2,3,4,5,6,7)
ECHO 2,Q=(0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F)
NOREF X_P_Q
X_P_Q EQU 0#_P_Q
BASE D
ESLUG (X31,X37,X34,X33,X30,X32,X36,X35),1,13,25,37
ESLUG (X45,X2D,X2B,X2E,X48,X47,X39,X38),2,14,26,38
ESLUG (X46,X43,X42,X44,X52,X41,X4C,X49),3,15,27,39
ESLUG (X50,X4F,X51,X4B,X4D,X4E,X2A,X4A),4,16,28,40
ESLUG (X2F,X56,X54,X59,X57,X58,X55,X53),5,17,29,41
ESLUG (X27,X24,X23,X2C,X3E,X3D,X3C,X5A),6,18,30,42
ESLUG (X21,X31,X3F,X40,X30,X5C,X22,X60),7,19,31,43
ESLUG (X66,X61,X63,X65,X67,X62,X64,X68),8,20,32,44
ESLUG (X6C,X6B,X6D,X6E,X70,X6F,X6A,X69),9,21,33,45
ESLUG (X76,X77,X74,X78,X73,X75,X71,X72),10,22,34,46
ESLUG (X7E,X7C,X5F,X7D,X7B,X7A,X79,X5E),11,23,35,47
ESLUG (X3B,X26,X28,X29,X5B,X5D,X25,X3A),12,24,36,48
BASE *
ERRNZ /3IB/TIMC-TIMC
TIMCL EQU NCHAR
ERRNZ TIMCL-384D
DEFOIES SET LOAD ADDRESS OF ERROR ROUTINES
RER TTL 1IO/3IC - ERROR SUBROUTINES.
TITLE
QUAL 3IC
IDENT 3IC,RERX
*COMMENT 1IO - ERROR SUBROUTINES.
COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
3IC SPACE 4,10
** RER - RETURN CONTROL.
ORG OIES
RER SUBR ENTRY/EXIT
UJN RERX RETURN
CAS SPACE 4,10
** CAS - CLEAR ASSIGNMENT.
*
* ENTRY (EQ) = EST ORDINAL / DEVICE TYPE.
* (EQ) = 0, IF NO EQUIPMENT ASSIGNED.
* (BA - BA+1) = BUFFER ADDRESS.
* (BA - BA+1) = 0, IF NO BUFFER ASSIGNED.
* (FA) = FNT ADDRESS.
* (FA) = 0 IF NO FILE ASSIGNED.
* (IR+1) SET.
* (IR+3) SET.
*
* EXIT EQUIPMENT RELEASED.
* BUFFER RELEASED.
* IF FILE IS TO BE RELEASED, THEN *1IO* IS RECALLED,
* AND *CIO* IS CALLED INTO THIS PP.
* OTHERWISE, EXIT IS MADE TO *RCL*.
*
* USES T1, T2, CM - CM+4.
*
* CALLS RLE, SFA, *DSP*.
*
* MACROS EXECUTE, MONITOR, NFA.
CAS BSS 0 ENTRY
LDN ZERL CLEAR BUFFER NAME
CRD CM
LDD BA CHECK FOR BUFFER ASSIGNMENT
ADD BA+1
ZJN CAS1 IF NO BUFFER ASSIGNED
RJM SFA CLEAR BUFFER
CWD CM
LDD EQ RESET BUFFER POINT WORD
SHN -3
STD CM+3
NFA BFCW
ADD IR+3
ADD IR+3
CWD CM
CAS1 RJM RLE RELEASE EQUIPMENT
LDD FA
NJN CAS3 IF FILE ASSIGNED
LJM RCL RECALL *1IO*
* SET UP *DSP* CALL BLOCK.
CAS3 NFA FA,R READ FILE NAME
CRM DSPP,ON
LDC DSPP+2
STD T1
CAS4 LDN 0 CLEAR *DSP* PARAMETER BLOCK
STI T1
AOD T1
LMC DSPPE
NJN CAS4 IF NOT END OF BLOCK
LDK FRPR+FRCS SET PRIORITY / CENTRAL SITE FLAGS
STM DSPP+1*5+4
LCN 0 SET MAXIMUM PRIORITY
STM DSPP+3*5+4
LDD FA SET FNT OFFSET
STM DSPP+4*5+4
LDN DSPBL SET PARAMETER BLOCK LENGTH
STD T1
LDD RA STORE *DSP* PARAMETER BLOCK
SHN 6
ADC QAPB
CWM DSPP,T1
* RECALL *1IO* AND CALL *DSP*.
EXECUTE DSP,=
LDD MA CALL *DSP*
CWM CASA,ON
LDN 0 ENABLE QUEUING OF PP REQUEST
STD CM+1
MONITOR RPPM
LJM RCL1 RECALL *1IO*
CASA VFD 18/0LDSP,24/0,18/QAPB
ERM SPACE 4,10
** ERM - PROCESS ERROR MESSAGE.
*
* ENTRY (CS) = CONVERTER STATUS/BYTE COUNT.
* (EQ) = 9/EST ORDINAL, 3/DEVICE TYPE.
* (FC) = FUNCTION CODE.
* (MC) = MESSAGE CODE.
* (ST) = EQUIPMENT STATUS.
* (ES - ES+4) = EST ENTRY.
*
* USES RT, T5.
*
* CALLS C2D, DFM, IBM.
ERM2 STD RT
ERM SUBR ENTRY/EXIT
LDD MC CHECK MESSAGE CODE
SBN BAME
MJN ERMX IF MESSAGE ISSUED ONLY BY *QAP*
STD T5
RJM IBM PROCESS BML MESSAGE
LDD RT CHECK IF ERROR RETRIED
ZJN ERM1 IF ERROR NOT RETRIED
LPN 1
ZJN ERM2 IF RECOVERED ERROR
ERM1 LDM TDFP,T5 SET MESSAGE ADDRESS
STD T5
LDD ES+3 SET EQUIPMENT TYPE
STI T5
LDD EQ CONVERT UPPER TWO DIGITS OF EST ORDINAL
SHN -6
RJM C2D
STM 1,T5
LDD EQ CONVERT LOWER DIGIT OF EST ORDINAL
LPN 70
SHN 3
ADC 2R0
STM 2,T5
LDD T5 SEND MESSAGE TO DAYFILE
RJM DFM
LDC ERLN SEND MESSAGE TO ERROR LOG
LMD T5
RJM DFM
LJM ERMX RETURN
TDFP SPACE 4,10
** TDFP - TABLE OF PROCESSORS AND MESSAGES.
*
* *TDFP* IS A PARTIAL TABLE OF MESSAGES CONTAINING ONLY
* THOSE MESSAGES ISSUED BY *1IO*.
TDFP INDEX
INDEX ERJM-BAME,(=C*EQXXX INTERNAL/EXTERNAL REJECT.*)
INDEX ETPE-BAME,(=C*EQXXX TRANSMISSION PARITY ERROR.*)
INDEX EFTM-BAME,(=C*EQXXX FUNCTION TIMEOUT.*)
INDEX EITM-BAME,(=C*EQXXX INCOMPLETE DATA TRANSFER.*)
INDEX EEOM-BAME,(=C*EQXXX TURNED OFF BY SYSTEM.*)
INDEX ECBM-BAME,(=C*EQXXX CONTROLLER HUNG BUSY.*)
INDEX ECRE-BAME,(=C*EQXXX CHANNEL PARITY ERROR.*)
INDEX ECSE-BAME,(=C*EQXXX CCC/NIP STATUS ERROR.*)
INDEX ECLM-BAME,(=C*EQXXX CCC/NIP CONTROLWARE LOADED.*)
INDEX ECWE-BAME,(=C*EQXXX CCC/NIP CONTROLWARE LOAD ERROR.*)
INDEX ECNF-BAME,(=C*EQXXX CCC/NIP CONTROLWARE NOT FOUND.*)
INDEX ELME-BAME
IBM SPACE 4,10
** IBM - ISSUE BML MESSAGE.
*
* ENTRY (A) = INDEX INTO TABLES *TIPR*, *TISY*, AND *TINB*.
* (CS) = CONVERTER STATUS/BYTE COUNT.
* (EQ) = 9/EST ORDINAL, 3/DEVICE TYPE.
* (FC) = FUNCTION CODE.
* (RT) = RETRY COUNT/UNRECOVERED FLAG.
* (ST) = EQUIPMENT STATUS.
* (T5) = ERROR LOG MESSAGE INDEX.
* (ES - ES+4) = EST ENTRY.
*
* USES T1, T2, CM - CM+4.
*
* CALLS DFM, DMI.
*
* MACROS BLMSIDT, DBMLT.
IBM SUBR ENTRY/EXIT
STD T2
RJM DMI DETERMINE BML MESSAGE ID
ZJN IBMX IF EQUIPMENT NOT FOUND
STM IBMA
LDK PPCP
CRD CM
LDD IA CALCULATE PP NUMBER
SBD CM+4
SHN 6-3
LMD ES+1 APPEND PP NUMBER
SCN 37
LMD ES+1
STM IBMA+2
LDK MMFL
CRD CM
LDD CM MACHINE ID
STM IBMB+3
LDM TISY,T2 SYMPTOM CODE
STM IBMA+1
LDM TIPR,T2 SET POSTPROCESSOR ADDRESS
STD T1
LJM 0,T1 COMPLETE MESSAGE PROCESSING
* CCC/NIP STATUS.
IBM1 LDC DM0401 SET MESSAGE ID
STM IBMA
UJN IBM3 COMPLETE BML MESSAGE
* FUNCTION REJECT, TRANSMISSION PARITY ERROR.
IBM2 LDD CS
LPN 4
ZJN IBM3 IF REJECT MESSAGE
AOD T2
AOD T5
LDM TISY,T2 SYMPTOM CODE
STM IBMA+1
IBM3 LDD ST EQUIPMENT STATUS
STM IBMC+1
* UJN IBM4 COMPLETE BML MESSAGE
* INCOMPLETE DATA TRANSFER.
IBM4 LDD CS CONVERTER STATUS/BYTE COUNT
STM IBMC
* UJN IBM5 COMPLETE BML MESSAGE
* CHANNEL PARITY ERROR.
IBM5 LDD RT RETRY COUNT/UNRECOVERED FLAG
IBM6 STM IBMB+1
* UJN IBM7 COMPLETE BML MESSAGE
* FUNCTION TIMEOUT, CONTROLLER HUNG BUSY.
IBM7 LDD FC
STM IBMC+2
* EQUIPMENT TURNED OFF.
IBM8 LDD ES+4 SET EQUIPMENT NUMBER
SHN 0-11
LPN 7
SHN 6
STM IBMA+3
LDD EQ EST ORDINAL
SHN 0-3
STM IBMB
LDN ZERL CLEAR CM REGISTER FOR DAYFILE CALL
CRD CM
LDM TINB,T2 SET BYTE COUNT FOR MESSAGE
STD CM+1
LDC IBMA+BMLN SEND MESSAGE TO BML
RJM DFM
LJM IBMX RETURN
** BML MESSAGE TABLE.
IBMA VFD 12/0,12/0,6/0,6/0,6/0,18/0 BML WORD 2
IBMB VFD 12/0,6/0,6/0,12/0,12/0,12/0 BML WORD 3
IBMC VFD 12/0,12/0,12/0,12/0,12/0 BML WORD 4
SPACE 4,10
** DEFINE BML PROCESSORS, SYMPTOM CODES, AND LENGTHS.
DBMLT ERJM,IBM2,/COMSDFS/HS0025,3*5 FUNCTION REJECT
DBMLT ETPE,IBM2,/COMSDFS/HS0010,3*5 TRANSMISSION PARITY
DBMLT EFTM,IBM7,/COMSDFS/HS0050,3*5 FUNCTION TIMEOUT
DBMLT EITM,IBM4,/COMSDFS/HS0005,3*5 INCOMPLETE TRANSFER
DBMLT EEOM,IBM8,/COMSDFS/HS0030,2*5 EQUIPMENT TURNED OFF
DBMLT ECBM,IBM7,/COMSDFS/HS0044,3*5 CONTROLLER HUNG BUSY
DBMLT ECRE,IBM5,/COMSDFS/HS0024,3*5 CHANNEL PARITY ERROR
DBMLT ECSE,IBM1,HI0113,3*5 CCC/NIP STATUS ERROR
DBMLT ECLM,IBM1,HI0111,3*5 CCC/NIP LOADED
DBMLT ECWE,IBM1,HI0112,3*5 CCC/NIP LOAD ERROR
DBMLT ECNF,IBMX,0,0 CCC/NIP CONTROLWARE NOT FOUND
SPACE 4,10
BLMSIDT
TIPR SPACE 4,10
** TIPR - TABLE OF PROCESSING ROUTINES.
TIPR INDEX
DUP ELME-BAME,1
CON IBMX
ORG TIPR
DTPR HERE
INDEX ELME-BAME
TISY SPACE 4,10
** TISY - TABLE OF SYMPTOM CODES.
TISY INDEX
DTSY HERE
INDEX ELME-BAME
TINB SPACE 4,10
** TINB - TABLE OF NUMBER OF BML BYTES.
TINB INDEX
DTNB HERE
INDEX ELME-BAME
OEQ SPACE 4,10
** OEQ - OFF EQUIPMENT.
*
* ENTRY (EQ) = EST ORDINAL / DEVICE TYPE.
* (IR+3) = BUFFER POINT NUMBER.
*
* USES MC, CM - CM+4.
*
* CALLS ERM, IOM.
*
* MACROS MONITOR, NFA.
OEQ SUBR ENTRY/EXIT
LDD EQ
SHN -3
STD CM+1
LDN OFES SET OFF STATUS
STD CM+2
MONITOR SEQM SET EQUIPMENT PARAMETER
LDN EEOM *EQXXX TURNED OFF BY SYSTEM.*
STD MC
RJM ERM SEND ERROR MESSAGE
LDN EOHE *OFF - CHECK ERRLOG.*
RJM IOM ISSUE OPERATOR MESSAGE
LDN ZERL
CRD CM
LDN ELAE ERROR LOG ALERT
STD CM+4
MONITOR EATM
UJN OEQX RETURN
PEF SPACE 4,10
** PEF - PROCESS ERROR FLAG.
*
* FILES IN PROCESS ARE RETURNED TO THE SYSTEM BY A *RERUN*.
*
* USES T1, CM - CM+4.
*
* MACROS NFA.
PEF SUBR ENTRY/EXIT
LDN ZERL
CRD CM
LDD RA
SHN 6
ADN DRQR
CWD CM CLEAR PENDING REQUEST
LDN MXEQ*2-2
STD T1
PEF1 NFA BFCW ENTER *RERUN* FOR ALL EQUIPMENTS
ADD T1
CRD CM
LDN RRNM ENTER *RERUN* OPERATOR FLAG FOR *1CD*
STD CM+4
LCN 0 SET PRIORITY
STD CM+2
NFA BFCW STORE BUFFER POINT WORD
ADD T1
CWD CM
LCN 2 DECREMENT BUFFER POINT INDEX
RAD T1
PJN PEF1 IF NOT LAST BUFFER
UJN PEFX RETURN
SPACE 4,10
** COMMON DECKS.
*CALL COMPC2D
SPACE 4,10
** LITERALS BLOCK.
USE LITERALS
DSPP SPACE 4,10
** DSPP - *DSP* PARAMETER BUFFER.
DSPP BSS 0
DSPPE EQU DSPP+DSPBL*5
SPACE 4,10
OVERFLOW OIES,7777+DSPP-DSPPE
PRS TTL 1IO/3ID - 1IO PRESET BATCHIO.
TITLE
QUAL 3ID
IDENT 3ID,PRSX
*COMMENT 1IO - BATCHIO PRESET.
COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
TITLE PRESET BATCHIO.
PRS SPACE 4,10
** PRS - PRESET BATCHIO.
ORG ORGR
PRS SUBR ENTRY/EXIT
LDD IR+4 CHECK RECOVERY
LMN DRET
NJN PRS1 IF NOT DEADSTART RERUN
RJM RIO RECOVER *BATCHIO*
LDC 4000 SET RECOVERY FLAG
STD IR+4
PRS1 LDN 0 CLEAR INPUT REGISTER FLAGS
STD IR+2
STD IR+3
LDN ZERL CLEAR CONSOLE MESSAGE
CRD CM
LDD CP
ADN MS1W
CWD CM
LDN CTIR-1 CLEAR (RA - RA+CTIR)
STD CM+2
LDD HN SET SUBFUNCTION = RELATIVE ADDRESSES
STD CM+1
AOD CM+4
MONITOR CSTM
* BUILD AVAILABLE EQUIPMENT TABLE.
LDN ESTP READ EST POINTER
CRD CM
LDN NOPE-1 INITIALIZE EST ORDINAL FOR SEARCH
STD T1
LDN 0
STD T2 CLEAR TABLE INDEX
PRS4 AOD T1 ADVANCE EST ORDINAL
LMD CM+2
ZJP PRS8 IF END OF EST
SFA EST,T1 READ EST ENTRY
ADK EQDE
CRD CN READ EST ENTRY
LDD CN+3
ZJN PRS4 IF EQUIPMENT UNDEFINED
LCN 1
STD T3
PRS6 LDN 2 ADVANCE TABLE INDEX
RAD T3
LDM TEQT,T3 COMPARE EQUIPMENT TYPE
ZJN PRS4 IF END OF TABLE
LMD CN+3
NJN PRS6 IF NO MATCH
LDN ZERL
CRD CN
LDD T2 CHECK BUFFER POINT AVAILABLE
SBN MXEQ
PJN PRS9 IF NONE LEFT
LDD T1
STD CN+3
SHN 3 SET EST ORDINAL AND TYPE IN TABLE
LMM TEQT+1,T3
STM TAEQ+1,T2
NFA BFCW STORE BUFFER POINT WORD
ADD T2
ADD T2
CWD CN
AOD T2 ADVANCE TABLE
LJM PRS4 LOOP
PRS8 LDD T2 SET EQUIPMENT COUNT
STM TAEQ
NJN PRS10 IF EQUIPMENT AVAILABLE
LDC =C*NO EQUIPMENT AVAILABLE.*
RJM DFM
LJM DPP DROP PP
PRS9 LDD T2 SET EQUIPMENT COUNT
STM TAEQ
LDC =C* NOT ALL EQUIPMENT SERVICABLE.*
RJM DFM
LDM TAEQ RESTORE
STD T2
PRS10 AOD T2 CLEAR REMAINDER OF TABLE
SBK TAEQL
PJN PRS11 IF END OF TABLE
LDN 0
STM TAEQ,T2
UJN PRS10 LOOP
PRS11 LDN TAEQL/5 STORE AVAILABLE EQUIPMENT TABLE
STD T1
LDD RA
SHN 6
ADN TEQR
CWM TAEQ,T1
LDN 40 SET PRESET COMPLETE FLAG
RAD IR+1
LDN IPRL CHECK 64 CHARACTER SET
CRD CN
LDD CN+2
SHN 21-0
MJN PRS12 IF 64 CHARACTER SET
RJM CCT CHANGE CONVERSION TABLES
PRS12 LDC CTBLL/5 STORE CONVERSION TABLES
STD T1
LDD RA
SHN 6
ADN CTIR
CWM CTBL,T1
CWD ON-4 SET *DSP/QAC* BUFFER NOT BUSY
ERRNZ CTIR+CTBLL/5-QAPB CODE DEPENDS ON CONTIGUOUS BUFFERS
LDD CP READ CONTROL STATEMENT POINTER
ADN CSPW
CRD CM
ADN JCRW-CSPW READ JOB CONTROL REGISTERS
CRD CN
SBN JCRW-EOJW READ END OF JOB CONTROL
CRD FN
AOD CN+1 SET (R3) = 1
* DISABLE OUTPUT FILE WHEN SUBSYSTEM IDLEDOWN.
LDC NOJT*100-QOJT*100
RAD FN
LDC CSBN-1 SET NEXT CONTROL STATEMENT
STD CM+3
SBN 2 SET LIMIT OF CONTROL STATEMENTS
STD CM+4
NFA CSBN STORE CONTROL STATEMENTS FOR RECOVERY
CWM PRSA,TR
LDD CP UPDATE STATEMENT POINTERS
ADN CSPW
CWD CM
ADN JCRW-CSPW STORE JOB CONTROL REGISTERS
CWD CN
SBN JCRW-EOJW STORE END OF JOB CONTROL
CWD FN
LDN ZERL
CRD CM
LDN BFL/100 SET INITIAL FL
STD CM+1
MONITOR RSTM
LDC SSCF*10000+BISI SET SUBSYSTEM ACCESSABILITY FLAG
RJM AST
LJM PRSX RETURN
PRSA VFD 60/0
VFD 60/0LBIO1.
VFD 60/0LEXIT.
CCT SPACE 4,10
** CCT - CHANGE CONVERSION TABLES
*
* CCT CHANGES CONVERSION TABLES FROM 64 CHARACTER SET
* TRANSLATION TO 63 CHARACTER TRANSLATION.
* THE COLON WILL BE CHANGED FROM 00 TO 63 DISPLAY CODE,
* THE PERCENT WILL BE DROPPED, AND 00 DISPLAY WILL BE
* TRANSLATED TO A BLANK.
CCT SUBR ENTRY/EXIT
* COMT6DP.
LDN 55 SPACE
STM CTBA+1+16
LDN 63 COLON
STM CTBA+1+12
* COMT9DP.
LDN 55 SPACE
STM CTBB+1+34
LDN 63 COLON
STM CTBB+1+12
* COMTDA8.
LDN 40 SPACE
STM CTBC+1+00
LDN 72 COLON
STM CTBC+1+63
* COMTDP6.
LDN 0 BLANK NO PUNCH
STM CTBD+1+00
LDC 0202 COLON 8-2
STM CTBD+1+63
* COMTDP9.
LDN 0 BLANK NO PUNCH
STM CTBE+1+00
LDC 0202 COLON 8-2
STM CTBE+1+63
LJM CCTX EXIT
CTBL SPACE 4,10
** CTBL - CONVERSION TABLES.
CTBL BSS 0
CTBA CON C6XD
*CALL COMT6DP
BSS CTBA+CTLN*5-* PRESERVE WORD BOUNDARY
CTBB CON C9XD
*CALL COMT9DP
BSS CTBB+CTLN*5-* PRESERVE WORD BOUNDARY
CTBC CON CDX8
*CALL COMTDA8
BSS CTBC+CTLN*5-* PRESERVE WORD BOUNDARY
CTBD CON CDXH
*CALL COMTDP6
BSS CTBD+CTLN*5-* PRESERVE WORD BOUNDARY
CTBE CON CDXA
*CALL COMTDP9
BSS CTBE+CTLN*5-* PRESERVE WORD BOUNDARY
CTBLL EQU *-CTBL
ERRNZ CTBLL/5*5-CTBLL INSURE TABLE LENGTH IS MULTIPLE
* OF CM WORDS
TEQT SPACE 4,10
** TEQT - TABLE OF EQUIPMENT TYPES.
* ENTRY = 2 WORDS.
*
*T TEQT 12/MNEMONIC, 12/DEVICE TYPE
TEQT BSS 0
VFD 12/2RCP,12/CPDT 415
VFD 12/2RCR,12/CRDT 405
VFD 12/2RLQ,12/LPDT 512
VFD 12/2RLR,12/LPDT 580-12
VFD 12/2RLS,12/LPDT 580-16
VFD 12/2RLT,12/LPDT 580-20
VFD 12/2RLX,12/NPDT 5870
VFD 12/2RLY,12/NPDT 5970
DATA 0
SPACE 4,10
** COMMON DECKS.
QUAL$ SET 1
AST$ EQU 0 DEFINE *COMPAST* ACCESS TO *SSCT*
*CALL COMPAST
*CALL COMPSAF
TITLE RECOVER BATCHIO.
RIO SPACE 4,10
** RIO - RECOVER *BATCHIO*.
*
* USES T5, T7, BA - BA+1, CM - CM+4, CN - CN+4, FN - FN+4.
*
* CALLS CAB, DEQ, DFM, RQF, SAF, SFA.
*
* MACROS NFA.
RIO4 RJM DEQ DROP EQUIPMENT
LDC =C* RECOVERY COMPLETE.*
RJM DFM
RIO SUBR ENTRY/EXIT
RJM CAB COUNT ACTIVE BUFFERS
ZJN RIO4 IF SUBSYSTEM IDLE
LDN MXEQ SET MAXIMUM EQUIPMENT COUNT
STD T5
LDN 0 SET FIRST FET ADDRESS
STD BA
LDC BUFR
STD BA+1
RIO1 RJM SFA READ FILE NAME
CRD FN
ADN 4 READ LIMIT WORD
CRD CN
ADN 5-4 READ FILE PARAMETER WORD
CRD T7
LDD FN
ZJN RIO2 IF BUFFER UNASSIGNED
LDD CN SEARCH FOR ASSIGNED FILE
RJM SAF
ZJN RIO2 IF FILE NOT FOUND
NFA T7,R
CRD CM
LCN 0 SET REQUEUING PRIORITY
STD CM+2
NFA T7,R STORE BUFFER POINT WORD
CWD CM
RJM RQF REQUEUE FILE
ZJN RIO3 IF ALL ACTIVE BUFFERS PROCESSED
RIO2 LDD CN+3 SET NEXT FET ADDRESS
STD BA
LDD CN+4
STD BA+1
SOD T5 DECREMENT EQUIPMENT COUNT
NJN RIO1 IF ALL EQUIPMENT NOT CHECKED
RIO3 LJM RIO4 DROP EQUIPMENT
TITLE RECOVERY SUBROUTINES.
CAB SPACE 4,10
** CAB - COUNT ACTIVE BUFFERS.
*
* EXIT (A) = (T6) = ACTIVE BUFFER COUNT.
*
* USES T7, CM - CM+4.
CAB SUBR ENTRY/EXIT
LDN D1AR SET FIRST DRIVER ASSIGNMENT WORD
STD T7
LDN 0 CLEAR BUFFER COUNT
STD T6
CAB1 LDD RA READ DRIVER ASSIGNMENT WORD
SHN 6
ADD T7
CRD CM
LDD CM+1 CHECK DRIVER ASSIGNED
SCN 77
SHN 6
LMD CM
LMC 3RD1C
NJN CAB2 IF DRIVER NOT ASSIGNED
LDD CM+3 ADVANCE ACTIVE BUFFER COUNT
RAD T6
CAB2 AOD T7 ADVANCE ASSIGNMENT ADDRESS
LMN DRQR
NJN CAB1 IF NOT END OF DRIVER WORDS
LDD T6
UJN CABX RETURN
DEQ SPACE 4,10
** DEQ - DROP EQUIPMENT.
*
* USES T6, T7, CM - CM+4, CN - CN+4, FS - FS+4.
*
* MACROS MONITOR, SFA.
DEQ SUBR ENTRY/EXIT
LDN ESTP READ EST POINTER
CRD FS
LDD CP FETCH EJT ORDINAL
ADN TFSW
CRD T6
LDN NOPE-1 INITIALIZE EST ORDINAL FOR SEARCH
STD T7
DEQ1 AOD T7 ADVANCE EST ORDINAL
STD CM+1
LMD FS+2
ZJN DEQX IF END OF EST
SFA EST,T7 READ EQUIPMENT ASSIGNMENT
ADK EQAE
CRD CN
LDD CN+4
LMD T6
NJN DEQ1 IF NOT ASSIGNED TO THIS JOB
MONITOR DEQM RELEASE EQUIPMENT
UJN DEQ1 LOOP TO END OF EST
RQF SPACE 4,15
** RQF - REQUEUE FILE.
*
* ENTRY (T6) = ACTIVE BUFFER COUNT.
* (BA - BA+1) = FET ADDRESS.
* (FN - FN+4) = FILE NAME.
*
* EXIT (A) = (T6) = ACTIVE BUFFER COUNT DECREMENTED.
*
* USES CM - CM+4.
*
* CALLS SFA, WNB.
*
* MACROS DELAY, MONITOR, PAUSE.
RQF2 RJM WNB WAIT NOT BUSY
SOD T6 DECREMENT ACTIVE BUFFER COUNT
RQF SUBR ENTRY/EXIT
LDD BA+1 SET FET ADDRESS IN *QAP* CALL
STM RQFA+4
LDD BA
STM RQFA+3
LDC RQFF SET *QAP* FUNCTION IN FET
STD FN+4
RJM SFA STORE FUNCTION IN FET
CWD FN
ADN QAPO SET *DSP* PARAMETER BLOCK BUSY
CWD FN
RQF1 LDD MA STORE *QAP* CALL
CWM RQFA,ON
LDN 0 ALLOW QUEUING OF PP REQUEST
STD CM+1
MONITOR RPPM
LDD CM+1
NJN RQF2 IF PP ASSIGNED / REQUEST QUEUED
DELAY WAIT AWHILE
PAUSE CHECK ERROR FLAG
LDD CM+1
ZJN RQF1 IF NO ERROR FLAG SET
MONITOR ABTM ABORT JOB
LJM PPR EXIT TO PP RESIDENT
RQFA VFD 18/0LQAP,42/BUFR
WNB SPACE 4,10
** WNB - WAIT NOT BUSY.
*
* USES FN - FN+4.
*
* CALLS SFA.
*
* MACROS DELAY, MONITOR, PAUSE.
WNB2 RJM SFA CHECK *DSP* PARAMETER BLOCK
ADN QAPO
CRD FN
LDD FN+4
LPN 1
ZJN WNB1 IF FILE BUSY
WNB SUBR ENTRY/EXIT
WNB1 DELAY WAIT AWHILE
PAUSE CHECK ERROR FLAG
LDD CM+1
ZJN WNB2 IF NO ERROR FLAG SET
MONITOR ABTM ABORT JOB
LJM PPR EXIT TO PP RESIDENT
SPACE 4,10
OVERFLOW ORGR,BFMS
TTL 1IO/3IF - LOAD CCC/NIP CONTROLWARE.
TITLE
QUAL 3IF
IDENT 3IF,LCCX
*COMMENT 1IO - LOAD CCC/NIP CONTROLWARE.
COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
3IF SPACE 4,15
** *3IF* LOADS 5870/5970 CONTROLWARE INTO A CYBER CHANNEL
* COUPLER (CCC).
SPACE 4,10
** COMMON DECKS.
*CALL COMSMSP
SPACE 4,10
** CCC8700 FILE INFORMATION.
T52W EQU 17 52 TABLE WORD
LDTL EQU 20 LOADER TABLES LENGTH
TITLE MAIN ROUTINE.
LCC SPACE 4,20
** LCC - LOAD CCC CONTROLWARE.
*
* ENTRY (EQ) = 9/EST ORDINAL, 3/DEVICE TYPE.
* (ES - ES+4) = EST ENTRY.
* EQUIPMENT AND CHANNEL RESERVED.
*
* EXIT (A) = 0 IF CONTROLWARE LOADED.
*
* ERROR TO *FCN3* IF LOAD ERROR.
*
* USES CN, MC.
*
* CALLS CGS, COE, GCW, LCW, RSI, /3IC/ERM.
*
* MACROS EXECUTE.
ORG ORGR
LCC SUBR ENTRY/EXIT
LDD FL SAVE FIELD LENGTH
STD CN
RJM GCW GET CCC/NIP CONTROLWARE
NJN LCCX IF STORAGE NOT AVAILABLE
RJM LCW LOAD CCC/NIP CONTROLWARE
LDD CN RESET FIELD LENGTH
RJM RSI
RJM CGS GET GENERAL STATUS
NJN LCC2 IF ERROR
LDD ST
NJN LCC1 IF LOAD ERROR
RJM COE CHECK OTHER EQUIPMENT
LDN ECLM *EQXXX CCC/NIP CONTROLWARE LOADED.*
STD MC
EXECUTE 3IC
RJM /3IC/ERM SEND ERROR MESSAGE
LDN 0 LOAD SUCCESSFUL
UJN LCCX RETURN
LCC1 LDN ECLE *EQXXX CCC/NIP CONTROLWARE LOAD ERROR.*
LCC2 LJM FCN3 PROCESS ERROR
SPACE 4,10
ERRNG OIES-5-* *3IC* OVERLAYS CODE
TITLE SUBROUTINES.
COE SPACE 4,10
** COE - CHECK OTHER EQUIPMENT.
*
* ENTRY (ES+1) = CURRENT CHANNEL BEING LOADED.
*
* USES T1, CN - CN+4.
*
* CALLS UES.
*
* MACROS SFA.
COE SUBR ENTRY/EXIT
LDM TAEQ SET AVAILABLE EQUIPMENT COUNT
STD T1
COE1 LDM TAEQ,T1 LOOK FOR NON-IMPACT PRINTER
LPN 7
SBK NPDT
ZJN COE3 IF NON-IMPACT PRINTER
COE2 SOD T1
NJN COE1 IF MORE EQUIPMENT TO CHECK
UJN COEX RETURN
COE3 LDM TAEQ,T1 READ EQUIPMENT EST ENTRY
SHN -3
SFA EST
ADK EQDE
CRD CN
LDD CN CHECK CONTROLWARE LOAD REQUIRED
SHN 21-4
PJN COE2 IF NOT CONTROLWARE LOAD REQUIRED
LDD ES+1
LMD CN+1
LPN 37
NJN COE2 IF NOT CURRENT CHANNEL
LDM TAEQ,T1
RJM UES UPDATE EQUIPMENT STATUS
UJN COE2 CHECK NEXT EQUIPMENT
GCB SPACE 4,10
** GCB - GET CENTRAL MEMORY BUFFER.
*
* ENTRY (A) = BUFFER SIZE NEEDED (CM WORDS).
*
* EXIT (A) = 0 IF BUFFER ASSIGNED.
*
* USES CM - CM+4.
*
* MACROS MONITOR.
GCB SUBR ENTRY/EXIT
ADC 77+LDTL
SHN -6
ADD FL
STD CM+1
LDN 0
STD CM+2
MONITOR RSTM REQUEST STORAGE INCREASE
LDD CM+1
UJN GCBX RETURN
GCW SPACE 4,15
** GCW - GET CCC/NIP CONTROLWARE.
*
* EXIT (A) = 0 IF CONTROLWARE MOVED TO CM.
* (CN+3 - CN+4) = LENGTH OF CONTROLWARE.
*
* ERROR TO *MSR1* IF CONTROLWARE NOT FOUND.
*
* USES T5, T6, T7, AB - AB+4, CM - CM+4, FN - FN+4.
*
* CALLS GCB, CLD, RNS.
*
* MACROS ENDMS, SETMS.
GCW SUBR ENTRY/EXIT
LDD MA SET CONTROLWARE RECORD NAME
CWM CCCN,ON
SBN 1
CRD AB
RJM CLD SEARCH CENTRAL LIBRARY DIRECTORY
NJN GCW1 IF CONTROLWARE RECORD FOUND
LDN ECNF *EQXXX CCC/NIP CONTROLWARE NOT FOUND.*
LJM MSR1 PROCESS ERROR
GCW1 CRD FN READ TRACK AND SECTOR
LDN FNTP GET SYSTEM EQUIPMENT
CRD CM
LDD CM READ SYSTEM FST
SHN 14
ADD CM+1
ADK SYFO*FNTE+FSTG
CRD T5
SETMS READSYS
LDD FN+3 SET FILE POINTERS
STD T6 TRACK
LDD FN+4 SECTOR
STD T7
LDN 0 SET FIRST SECTOR FLAG
STD FN+1
GCW2 LDC BFMS READ SECTOR
RJM RNS
ZJN GCW4 IF END OF FIRMWARE
STD FN SAVE WORD COUNT
LDD FN+1 CHECK IF FIRST SECTOR
NJN GCW3 IF NOT FIRST SECTOR
ENDMS
LDM BFMS+2+T52W*5+3 SET BUFFER SIZE REQUIRED
STD CN+3
SHN 14
ADM BFMS+2+T52W*5+4
STD CN+4
RJM GCB GET CENTRAL MEMORY BUFFER
NJN GCW5 IF BUFFER NOT ASSIGNED
GCW3 LDD RA WRITE BUFFER TO CENTRAL MEMORY
ADD CN
ADD FN+1
SHN 6
CWM BFMS+2,FN
AOD FN+1
LDD FN CHECK FOR EOR
SHN -6
NJN GCW2 IF NOT END OF FIRMWARE
GCW4 ENDMS
* LDN 0
GCW5 LJM GCWX RETURN
LCW SPACE 4,10
** LCW - LOAD CCC/NIP CONTROLWARE.
*
* ENTRY (CN) = FWA / 100B OF BUFFER.
* (CN+3 - CN+4) = CONTROLWARE LENGTH.
*
* ERROR TO *MSR1* IF ERROR.
*
* USES CS, FN, FN+1, CN+3 - CN+4.
*
* CALLS CFN, MCI.
LCW3 STD CN+4 SET REMAINING WORD COUNT
SHN -6
NJN LCW4 IF MORE THAN 100B WORDS
LDD CN+4
STD FN
LCW4 SHN -6
STD CN+3
LCW5 LDD RA READ NEXT BUFFER
ADD CN
ADD FN+1
SHN 6
ADN LDTL
CRM BFMS+2,FN
LDD FN COMPUTE BYTE COUNT
SHN 2
ADD FN
OAM BFMS+2,CH
NJN LCW1 IF INCOMPLETE TRANSFER
AOD FN+1 ADVANCE BUFFER ADDRESS
LDD CN+3
SHN 14
ADD CN+4
SBD FN
NJN LCW3 IF MORE TO LOAD
FJM *,CH IF TRANSFER NOT COMPLETE
DCN CH+40
LCW SUBR ENTRY/EXIT
RJM MCI MODIFY CHANNEL INSTRUCTIONS
LDD HN
STD FN
LDC 414 ISSUE AUTOLOAD FUNCTION
RJM CFN
STD FN+1
NJN LCW2 IF ERROR
ACN CH
LJM LCW5 OUTPUT CONTROLWARE TO CCC
LCW1 STD CS SAVE BYTE COUNT
LDN EITM *EQXXX INCOMPLETE DATA TRANSFER.*
LCW2 LJM MSR1 PROCESS ERROR
MCI SPACE 4,10
** MCI - MODIFY CHANNEL INSTRUCTIONS.
*
* ENTRY (ES+1) = CHANNEL NUMBER.
*
* USES T1, T2.
MCI1 RAI T2
AOD T1
MCI2 LDI T1
STD T2
LDD ES+1
LPN 37
CHTL *
SBN CH
NJN MCI1 IF MORE INSTRUCTIONS TO MODIFY
MCI SUBR ENTRY/EXIT
LDC TCHS LOAD FWA OF CHANNEL TABLE ADDRESSES
STD T1
UJN MCI2 UPDATE CHANNEL INSTRUCTIONS
MSR SPACE 4,15
** MSR - ERROR PROCESSOR FOR *COMPRNS*.
*
* ENTRY (CN) = ORIGINAL FL.
*
* EXIT TO *FCN3*.
*
* USES MC.
*
* CALLS RSI.
*
* MACROS ENDMS.
MSR SUBR ENTRY/EXIT
ENDMS
LDN ECWE *EQXXX CCC/NIP CONTROLWARE LOAD ERROR.*
MSR1 STD MC
LDD CN RESET FIELD LENGTH
RJM RSI
LDD MC
LJM FCN3 ISSUE ERROR
UES SPACE 4,10
** UES - UPDATE EQUIPMENT STATUS.
*
* ENTRY (A) = 9/EST ORDINAL, 3/DEVICE TYPE.
*
* EXIT CONTROLWARE LOAD REQUIRED BIT CLEARED IN EST.
*
* USES CM - CM+4.
*
* MACROS MONITOR.
UES SUBR ENTRY/EXIT
SHN -3
STD CM+1
LCN 20 SET MASK
STD CM+3
LDN 0 SET VALUE
STD CM+4
LDN SB0S SET SUBFUNCTION
STD CM+2
MONITOR SEQM SET EQUIPMENT PARAMETER
UJN UESX RETURN
SPACE 4,10
** COMMON DECKS.
*CALL COMPCLD
QUAL$ EQU 0 FORCE UNQUALIFIED COMMON DECK
*CALL COMPRNS
SPACE 4,10
** DATA LOCATIONS.
CCCN VFD 42/0LCCC5870,18/0 CONTROLWARE RECORD NAME
TCHS SPACE 4,10
** TCHS - CHANNEL TABLE.
TCHS CHTB
SPACE 4,10
OVERFLOW ORGR,BFMS
TTL 1IO - BATCHIO MANAGER.
SPACE 4,10
END