cdc:nos2.source:opl871:1cd
Table of Contents
1CD
Table Of Contents
- [00007] 1CD - BATCHIO COMBINED DRIVER.
- [00009] *BATCHIO* COMBINED DRIVER.
- [00425] MACRO DEFINITIONS.
- [00451] NFMTC - NON-IMPACT PRINTER FORMAT CONTROL TABLE.
- [00517] STR - GENERATE ASCII STRING.
- [00548] MANAGER.
- [00550] MGR - EQUIPMENT MANAGER.
- [00701] TEQD - TABLE OF EQUIPMENT DRIVERS.
- [00713] TDCM - TABLE OF DEFAULT CONVERSION MODES.
- [00725] TNRP - TABLE OF *NOT READY* PROCESSORS.
- [00737] SEA - SET EQUIPMENT ASSIGNMENT.
- [00789] PROCESS OPERATOR REQUESTS.
- [00791] CPH - CLEAR PRINTER HOLDING.
- [00800] POF - PROCESS OPERATOR FLAG.
- [00839] CNT - CONTINUE PRINTING.
- [00852] HLD - HOLD PRINTING.
- [00869] PPF - POSITION PRINT FILE.
- [00897] RRN - PROCESS RERUN.
- [00917] END - PROCESS *END*.
- [00958] REP - PROCESS REPEAT.
- [00981] SUP - TOGGLE SUPPRESS FLAG.
- [00995] TOPF - TABLE OF OPERATOR REQUESTS PROCESSORS.
- [01021] COMMON SUBROUTINES.
- [01023] ACT - PROCESS ACCOUNTING INFORMATION.
- [01049] ADB - ASSIGN DATA BUFFER.
- [01088] AOP - ADVANCE OUT POINTER.
- [01114] CCE - CHECK FOR CHANNEL ERROR.
- [01140] CDB - CHECK DATA IN OUTPUT BUFFER.
- [01161] CEP - CHANNEL ERROR PROCESSOR.
- [01177] CIB - CHECK INPUT BUFFER.
- [01223] CLB - CLEAR INTERNAL BUFFER.
- [01250] COB - CHECK OUTPUT BUFFER.
- [01319] CPS - CALL PP SERVICE PROGRAM.
- [01381] CRV - CHECK FOR RECOVERED ERROR.
- [01405] CUL - CHECK USER LIMIT REACHED.
- [01460] ECB - EMPTY CIRCULAR BUFFER.
- [01474] MCC - MOVE AND CONVERT CHARACTER.
- [01532] MSG - SET BUFFER POINT MESSAGE.
- [01564] PMR - PROCESS MESSAGE REQUEST.
- [01601] PRE - PROCESS RETRIED ERROR.
- [01631] TERC - TABLE OF ERROR CODES.
- [01642] TMAX - TABLE OF MAXIMUM RETRIES.
- [01653] PSD - PRESET DRIVER.
- [01686] RCB - READ CODED BUFFER.
- [01792] RDB - RELEASE DATA BUFFER.
- [01814] RNL - READ NEXT LINE (CARD).
- [01899] SCN - SET CONVERSION TABLE.
- [01913] SDM - SEND DAYFILE MESSAGE.
- [01955] SFA - SET FET ADDRESS.
- [01970] SOP - STORE OUT POINTER.
- [01997] TOF - TERMINATE OUTPUT FILE.
- [02028] TOP - TERMINATE OPERATION.
- [02086] WST - WRITE STATUS TO FET.
- [02103] EQSB - EQUIPMENT STATUS BUFFER.
- [02109] ZBA - ZERO DATA BUFFER ASSIGNMENT.
- [02143] DRIVER PRESET.
- [02145] PRS - DRIVER PRESET.
- [02219] TDBF - TABLE OF FWA OF FIRST DATA BUFFER.
- [02229] TDBN - TABLE OF NUMBER OF DATA BUFFERS.
- [02239] TDBL - TABLE OF LWA+1 OF DATA BUFFERS.
- [02249] TDBS - TABLE OF DATA BUFFER SIZES.
- [02259] TREC - TABLE OF RELEASE EQUIPMENT PROCESSORS.
- [02269] TSDO - TABLE OF SUB-DRIVER OVERLAY NAMES.
- [02279] TSDP - TABLE OF SUB-DRIVER PROCESSOR ADDRESSES.
- [02305] 3555/512 - 580 DRIVER SECTION.
- [02307] LPD - 3555/512 - 580 DRIVER.
- [02472] LPR - PROCESS PRINT ERROR.
- [02507] LPE - ERROR PROCESSOR.
- [02523] LPN - PROCESS *END*.
- [02562] LEF - LIST END OF INFORMATION.
- [02605] PPM - PROCESS PM MESSAGE.
- [02625] SPC - PROCESS SPACE CONTROL.
- [02744] TFCC - TABLE OF FORMAT CONTROL CHARACTERS.
- [02782] 3446/415 DRIVER SECTION.
- [02784] CPD - 3446/415 DRIVER.
- [02859] CPB - PUNCH BINARY.
- [02944] CPC - PUNCH CODED.
- [02999] CPX - PROCESS TRANSMISSION PARITY ERROR/INCOMPLETE
- [03008] CKC - CHECK CARD.
- [03065] CCI - CLEAR CARD IMAGE.
- [03088] PBC - PUNCH BINARY CARD.
- [03105] PED - PROCESS *END*.
- [03122] PEF - PUNCH END OF FILE.
- [03164] PER - PUNCH END OF RECORD.
- [03197] CPE - ERROR PROCESSOR.
- [03220] 3447/405 DRIVER SECTION.
- [03222] CRD - 3447/405 DRIVER.
- [03278] CRC - PROCESS CODED CARD.
- [03327] CRB - PROCESS BINARY CARD.
- [03404] CRL - PROCESS LITERAL INPUT.
- [03508] CHD - CONVERT HOLLERITH DATA.
- [03621] CKM - CHECK KEYPUNCH MODE CHANGE.
- [03642] CRE - NOT READY PROCESSOR.
- [03664] CRF - PROCESS SPECIAL FORM.
- [03705] EBF - EMPTY BUFFER.
- [03737] PCE - PROCESS CARD ERROR.
- [03766] RER - PROCESS END OF RECORD.
- [03826] DRIVER SUBROUTINES.
- [03828] CON - CONNECT EQUIPMENT.
- [03902] FCN - OUTPUT FUNCTION TO EQUIPMENT.
- [03939] IFN - ISSUE FUNCTION TO CONVERTER.
- [03973] REC - RELEASE EQUIPMENT CONNECT.
- [03985] SDP - SUB-DRIVER PROCESSOR.
- [04010] STS - GET CONVERTER STATUS.
- [04039] WNB - WAIT NOT BUSY.
- [04069] XDR - TRANSMIT DATA RECORD (TO/FROM EXTERNAL EQUIPMENT).
- [04123] TCHS - CHANNEL TABLE.
- [04131] PRESET.
- [04133] PRS - PRESET SUB-DRIVER OVERLAY.
- [04204] DBUF - BUFFER AREAS.
- [04238] 5870/5970 DRIVER SECTION.
- [04240] NPD - 5870/5970 DRIVER.
- [04372] NEF - LIST END OF INFORMATION.
- [04412] NPE - ERROR PROCESSOR.
- [04429] NPN - PROCESS *END*.
- [04465] PFC - PROCESS FORMAT CONTROL.
- [04503] TPFC - TABLE OF FORMAT CONTROL CHARACTERS.
- [04534] PPM - PROCESS PM MESSAGE.
- [04592] CON - CONNECT TO EQUIPMENT.
- [04619] FCN - OUTPUT FUNCTION TO EQUIPMENT.
- [04660] GST - GET GENERAL STATUS OF CCC.
- [04693] MCI - MODIFY CHANNEL INSTRUCTIONS.
- [04730] MVE - MOVE BUFFER.
- [04750] REC - RELEASE EQUIPMENT CONNECT.
- [04756] SDP - SUB-DRIVER PROCESSOR.
- [04779] WDR - WRITE DATA RECORD.
- [04812] TCHS - CHANNEL TABLE.
- [04816] PRESET.
- [04818] PRS - PRESET SUB-DRIVER OVERLAY.
- [04856] DBUF - DATA BUFFER AREA.
Source Code
- 1CD.txt
- IDENT 1CD,ICD
- PERIPH
- BASE MIXED
- SST
- *COMMENT 1CD - BATCHIO COMBINED DRIVER.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- TITLE 1CD - BATCHIO COMBINED DRIVER.
- SPACE 4,10
- *** 1CD - *BATCHIO* COMBINED DRIVER.
- *
- * G. R. MANSFIELD. 70/09/01.
- * P. D. HAAS. 73/12/20.
- * R. M. YASUHARA. 75/01/17.
- * D. R. HILGREN. 79/01/15.
- * D. R. HILGREN. 79/04/25. RESEQUENCED.
- * A. F. JOHNSTON. 84/11/16. 5870/5970 DRIVER.
- SPACE 4,10
- *** *1CD* IS THE DEVICE DRIVER FOR *BATCHIO*. EACH *1CD* CAN
- * DRIVE A SET OF DEVICES, DEFINED BY THE SUB-DRIVER ITS RUNS.
- * THE FOLLOWING SUB-DRIVERS AND THE DEVICES THEY HANDLE ARE
- * AS FOLLOWS:
- *
- * DCC SUB-DRIVER (UP TO 8 DEVICES PER *1CD*)
- * 3555/512 - 580
- * 3446/415
- * 3447/405
- *
- * CCC SUB-DRIVER (UP TO 8 DEVICES PER *1CD*)
- * 5870
- * 5970
- SPACE 4,10
- *** 1CD CALL.
- *
- *T IR 18/ 1CD, 6/, 12/ DN, 12/ COUNT, 12/ SDT
- *
- * DN DRIVER NUMBER (ASSIGNMENT ADDRESS).
- * COUNT NUMBER OF DEVICES BEING DRIVEN.
- * SDT SUB-DRIVER TYPE
- * 0 - 6681 DEVICES (LPDT, CRDT, CPDT).
- * 1 - CCC DEVICES (NPDT).
- SPACE 4,10
- *** 3555/512 - 580 DRIVER CHARACTERISTICS.
- *
- * LINE SPACING IS NORMALLY DONE IN THE *AUTO EJECT* MODE. THIS
- * MEANS CREASES IN THE PAPER ARE SKIPPED VIA THE 3555 OR 580
- * AUTOMATIC LINE SPACING. THUS, IT IS NECESARY FOR AUTO EJECT
- * TO BE DESELECTED IF ONE WANTS TO USE FORMAT CHANNELS TO
- * ADVANCE FROM PRIOR TO BOTTOM OF FORM TO BEYOND TOP OF FORM.
- * AN EXAMPLE OF THIS WOULD BE WITH THE TYPICAL *NOS* FORMAT
- * TAPE WHICH HAS ONLY 1 HOLE IN CHANNEL 6 THUS PROVIDING AN
- * EJECT OF UP TO TWO PAGES IN ORDER TO INSURE ALL BANNER PAGES
- * COME OUT FACE UP IF THE PAPER IS PUT IN THE PRINTER
- * CORRECTLY. IT SHOULD ALSO BE NOTED THAT DESELECTION OF AUTO
- * EJECT MODE ON A 512/580 WILL RESULT IN DESELECTION OF
- * 8 LINES/INCH IF PREVIOUSLY SELECTED.
- *
- * THE FIRST CHARACTER OF THE PRINT LINE CONTROLS THE OPTIONAL
- * FORMATS. THIS CHARACTER IS NOT PRINTED. THE PRINT
- * LINE THEREFORE CONSISTS OF UP TO 136 CHARACTERS.
- *
- * THE FORMAT CONTROL CHARACTERS, THE NUMBER OF LINES CHARGED
- * FOR THEM, AND THEIR FUNCTION FOLLOWS -
- * CHAR. LINE CHARGE FUNCTION
- * C 4 SKIP TO FORMAT CHANNEL 6 AFTER PRINT
- * D 3 SKIP TO FORMAT CHANNEL 5 AFTER PRINT
- * E 3 SKIP TO FORMAT CHANNEL 4 AFTER PRINT
- * F 2 SKIP TO FORMAT CHANNEL 3 AFTER PRINT
- * G 2 SKIP TO FORMAT CHANNEL 2 AFTER PRINT
- * H 1 SKIP TO FORMAT CHANNEL 1 AFTER PRINT
- * Q 0 SUPPRESS AUTO EJECT
- * R 0 SET AUTO EUECT
- * S 0 CLEAR 8 LINES/INCH (512/580 ONLY)
- * T 0 SET 8 LINES/INCH (512/580 ONLY)
- * V PL6L OR PL8L EJECT PAGE / RELOAD 580 PFC MEMORY
- * 0 2 SPACE 1 LINE BEFORE PRINT
- * 1 PL6L OR PL8L EJECT PAGE BEFORE PRINT
- * 2 PL6L/2 OR PL8L/2 ADV TO BOTTOM OF FORM BEFORE PRINT
- * 3 4 SKIP TO FORMAT CHANNEL 6 BEFORE PRINT
- * 4 3 SKIP TO FORMAT CHANNEL 5 BEFORE PRINT
- * 5 3 SKIP TO FORMAT CHANNEL 4 BEFORE PRINT
- * 6 2 SKIP TO FORMAT CHANNEL 3 BEFORE PRINT
- * 7 2 SKIP TO FORMAT CHANNEL 2 BEFORE PRINT
- * 8 1 SKIP TO FORMAT CHANNEL 1 BEFORE PRINT
- * + 1 SUPPRESS SPACE BEFORE PRINT
- * - 3 SPACE 2 LINES BEFORE PRINT
- * / 1 SUPPRESS SPACE AFTER PRINT
- * SPACE 1 NO LINE CONTROL
- * OTHER 1 NO LINE CONTROL
- *
- * ANY FORMAT CONTROL OTHER THAN *Q*, *R*, *S*, AND *T*
- * ARE PROCESSED ONCE FOR THE LINE PRINTED.
- *
- * IF THE FIRST TWO CHARACTERS OF THE LINE ARE *PM* THEN
- * THE MESSAGE TEXT ON THE REMAINDER OF THE LINE WILL BE
- * DISPLAYED ON THE *I* DISPLAY AND THE PRINTING OF THE
- * FILE WILL BE HALTED UNTIL THE OPERATOR ENTERS A
- * *CONTINUE* COMMAND. *PM* MESSAGE PROCESSING WILL BE
- * ALLOWED ONLY FOR USERS THAT HAVE THE *CBIO* VALIDATION
- * PARAMETER SET IN *AACW*.
- SPACE 4,10
- *** 3446/415 DRIVER CHARACTERISTICS.
- *
- * HOLLERITH CARDS ARE PUNCHED FROM A LINE CONSISTING OF UP TO
- * 90 CHARACTERS. HOWEVER, ONLY THE FIRST 80 CHARACTERS
- * OF THE LINE ARE ACTUALLY PUNCHED. THE DISPLAY CODE
- * TO O26/O29 CONVERSION IS ACCOMPLISHED BY A
- * DISPLAY CODE TO BINARY COLUMN IMAGE CONVERSION IN THE
- * DRIVER. THE CARD IS THEN PUNCHED IN BINARY MODE
- * ON THE 3446.
- *
- * BINARY DATA ARE PUNCHED IN THE FOLLOWING FORMAT
- * COLUMN 1 = WORD COUNT AND BINARY CARD INDICATOR (79)
- * COLUMN 2 = BINARY DATA CHECKSUM MODULO 4095
- * COLUMNS 3 - 77 = 15 CENTRAL WORDS OF DATA
- * COLUMN 78 = BLANK
- * COLUMNS 79 - 80 = 24 BIT BINARY CARD SEQUENCE NUMBER
- *
- * ABSOLUTE BINARY DATA ARE PUNCHED 16 CENTRAL WORDS/CARD WITH
- * NO SPECIAL PUNCHES.
- *
- * END OF RECORD CARDS CONTAIN A 7/8/9 PUNCH IN COLUMN 1
- * AND THE REMAINDER OF THE CARD IS BLANK.
- * END OF FILE CARDS CONTAIN A 6/7/9 PUNCH IN COLUMN 1
- * AND THE REMAINDER OF THE CARD IS BLANK.
- *
- * CARDS OFFSET ARE AS FOLLOWS -
- * 1. ALL END OF RECORD CARDS.
- * 2. THE END OF INFORMATION CARD.
- * 3. A CARD ON WHICH A COMPARE ERROR WAS DETECTED WILL BE
- * OFFSET AND ALSO THE FOLLOWING CARD. THESE 2 CARDS WILL
- * BE REPUNCHED UNTIL NO ERROR IS DETECTED.
- SPACE 4,10
- *** 3447/405 DRIVER CHARACTERISTICS.
- *
- * HOLLERITH CARDS ARE READ WITH TRAILING SPACES DELETED.
- * UP TO 80 CHARACTERS MAY BE TRANSFERRED TO THE CM BUFFER.
- * HOLLERITH TO DISPLAY CODE TRANSLATION IS ACCOMPLISHED BY
- * VERIFYING AND CONVERTING THE HOLLERITH DATA TO EXTERNAL BCD
- * FOLLOWED BY A BCD TO DISPLAY CONVERSION IN THE DRIVER.
- * ILLEGAL HOLLERITH CODES ARE TRANSLATED AS BLANKS.
- * HOLLERITH CONVERSION MAY BE CHANGED BY THE USE OF A CARD WITH
- * 5/7/9 PUNCHES IN COLUMN 1 AND THE CONVERSION MODE IN
- * COLUMN 2. THE ASSUMED MODE IS O26. A MODE CHANGE IS IN
- * EFFECT UNTIL CHANGED.
- *
- * CONVERSION MODE PUNCHES IN COLUMN 2 -
- * BLANK O26
- * 9 O29
- * 4/5/6/7/8/9 LITERAL INPUT
- * CARDS ARE READ IN BINARY FORMAT WITH NO CONVERSION
- * OR CHECKING UNTIL A CARD WHICH IS IDENTICAL IN ALL
- * 80 COLUMNS IS READ.
- *
- * HOLLERITH CONVERSION MAY ALSO BE SIGNALLED BY PUNCHING
- * *26* OR *29* IN COLUMNS 79 AND 80 OF THE FOLLOWING CARDS -
- * JOB CARD
- * EOR (7/8/9) CARD
- * EOF (6/7/9) CARD
- *
- * BINARY CARDS MUST CONFORM TO THE ABOVE SPECIFICATION FOR
- * PUNCHED BINARY DATA.
- *
- * AN END OF RECORD CONSISTS OF A CARD WITH 7/8/9 PUNCHES IN
- * COLUMN 1.
- * AN END OF FILE CONSISTS OF A CARD WITH 6/7/9 PUNCHES IN
- * COLUMN 1.
- * AN END OF INFORMATION CONSISTS OF A CARD WITH 6/7/8/9
- * PUNCHES IN COLUMN 1.
- * IN ANY CASE, THE REMAINDER OF THE CARD IS NOT CONSIDERED
- * AS DATA.
- SPACE 4,10
- *** 5870/5970 DRIVER CHARACTERISTICS.
- *
- * THE DRIVER FOR THE 5870/5970 IS SIMILAR TO THE 3555/512 - 580
- * DRIVER.
- *
- * THE FIRST CHARACTER OF THE PRINT LINE CONTAINS THE FORMAT
- * CONTROL CHARACTER. THIS CHARACTER IS NOT PRINTED. THE PRINT
- * LINE CONSISTS OF UP TO 150 CHARACTERS.
- *
- * THE FORMAT CONTROL CHARACTERS, THE NUMBER OF LINES CHARGED
- * FOR THEM, AND THEIR FUNCTION FOLLOWS -
- *
- * CHAR. LINE CHARGE FUNCTION
- * C 1 SKIP TO FORMAT CHANNEL 6 AFTER PRINT
- * D 1 SKIP TO FORMAT CHANNEL 5 AFTER PRINT
- * E 1 SKIP TO FORMAT CHANNEL 4 AFTER PRINT
- * F 1 SKIP TO FORMAT CHANNEL 3 AFTER PRINT
- * G 1 SKIP TO FORMAT CHANNEL 2 AFTER PRINT
- * H 1 SKIP TO FORMAT CHANNEL 1 AFTER PRINT
- * Q 0 LINE IGNORED
- * R 0 LINE IGNORED
- * S 0 LINE IGNORED
- * T 0 LINE IGNORED
- * V 0 LINE IGNORED
- * 0 2 SPACE 1 LINE BEFORE PRINT
- * 1 1 EJECT PAGE BEFORE PRINT
- * 2 1 ADVANCE TO BOTTOM OF FORM BEFORE PRINT
- * 3 1 SKIP TO FORMAT CHANNEL 6 BEFORE PRINT
- * 4 1 SKIP TO FORMAT CHANNEL 5 BEFORE PRINT
- * 5 1 SKIP TO FORMAT CHANNEL 4 BEFORE PRINT
- * 6 1 SKIP TO FORMAT CHANNEL 3 BEFORE PRINT
- * 7 1 SKIP TO FORMAT CHANNEL 2 BEFORE PRINT
- * 8 1 SKIP TO FORMAT CHANNEL 1 BEFORE PRINT
- * + 1 SUPPRESS SPACE BEFORE PRINT
- * - 3 SPACE 2 LINES BEFORE PRINT
- * / 1 SUPPRESS SPACE AFTER PRINT
- * SPACE 1 NO LINE CONTROL
- * OTHER 1 NO LINE CONTROL
- *
- * IF THE FIRST TWO CHARACTERS OF THE LINE ARE *PM*, THEN
- * THE REMAINDER OF THE LINE, UP TO 80 CHARACTERS, ARE
- * CONSIDERED A MESSAGE FOR THE 5870/5970. THIS IS ONLY
- * ALLOWED FOR USERS WITH THE *CBIO* VALIDATION.
- SPACE 4,10
- *** ERRLOG MESSAGES.
- *
- *
- * *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 COMPARE ERROR.* = COMPARE ERROR WAS DETECTED.
- *
- * *EQXXX CONTROLLER HUNG BUSY.* = THE CONTROLLER DOES NOT DROP
- * BUSY STATUS.
- *
- * *EQXXX FEED FAILURE.* = CARD FEED PROBLEM WAS DETECTED.
- *
- * *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 NNNN PRINT ERRORS.* = PRINT ERRORS DETECTED.
- *
- * *EQXXX PFC ERROR.* = ERROR LOADING PFC MEMORY.
- *
- * *EQXXX PRINT ERROR LIMIT EXCEEDED.* = PRINT ERROR LIMIT WAS
- * EXCEEDED.
- *
- * *EQXXX TRANSMISSION PARITY ERROR.* = A TRANSMISSION PARITY
- * ERROR WAS DETECTED.
- *
- * *EQXXX TURNED OFF BY SYSTEM.* = FAULTY EQUIPMENT
- * WAS TURNED OFF BY THE SYSTEM.
- *
- * WHERE -
- * EQ = EQUIPMENT MNEMONIC.
- * XXX = EST ORDINAL.
- * NNNN = NUMBER OF PRINT ERRORS.
- SPACE 4,10
- *** OPERATOR *I* DISPLAY STATUS MESSAGES.
- *
- * *NOT READY.* = DEVICE IS NOT READY.
- *
- * *NO PAPER.* = PRINTER HAS A PAPER OUT CONDITION.
- *
- * *COMPARE ERROR.* = CARD PUNCH HAS A COMPARE ERROR.
- *
- * *FEED FAILURE.* = CARD PUNCH HAS A CARD FEED PROBLEM.
- *
- * *HOLD.* = DEVICE IS SKIPPING OR HAS BEEN PLACED IN HOLD.
- *
- * *PM MESSAGE.* = PRINTER IS WAITING; CHECK *PM* MESSAGE
- * THEN ENTER *CONTINUE,EST.* FROM *DSD*.
- *
- * *PRINT ERROR.* = CORRECT PRINTER ERROR THEN ENTER
- * *CONTINUE,EST.* FROM *DSD*.
- *
- * *RE-RD CD COMPARE ERR.* = CARD READER HAS A CARD COMPARE
- * ERROR. OPERATOR SHOULD RE-READ THE LAST CARD IN THE OUTPUT
- * HOPPER.
- *
- * *ADV 1 CD RE-RD 3 CDS.* = CARD READER HAS ENCOUNTERED A
- * TRANSMISSION PARITY ERROR, AN INCOMPLETE DATA TRANSFER, OR A
- * BINARY CHECKSUM ERROR. IN ORDER TO RECOVER, THE OPERATOR
- * MUST ADVANCE THE NEXT CARD IN THE INPUT HOPPER, AND THEN
- * RE-READ THE LAST 3 CARDS IN THE OUTPUT HOPPER.
- *
- * *INTERVENTION NEEDED.* = THE 5870/5970 REQUIRES OPERATOR
- * INTERVENTION.
- SPACE 4,10
- *** CHANNEL ERROR PROCESSING.
- *
- *
- * THE FOLLOWING CHANNEL ERRORS ARE RETRIED *ERRL* TIMES -
- * CONNECT REJECT.
- * FUNCTION REJECT.
- * TRANSMISSION PARITY ERROR.
- * INCOMPLETE DATA TRANSFER.
- * THE FOLLOWING CHANNEL ERRORS ARE NOT RETRIED -
- * 6681 FUNCTION TIMEOUT.
- * EQUIPMENT FUNCTION TIMEOUT.
- * AFTER THE RETRY LIMIT IS REACHED OR AFTER A FUNCTION
- * TIMEOUT IS DETECTED, ERROR HANDLING PROCEEDS AS FOLLOWS -
- * OUTPUT FILES ARE REQUEUED.
- * TRACKS FOR INPUT FILES ARE DROPPED.
- * THE FAULTY EQUIPMENT IS TURNED OFF AND DROPPED.
- * ERROR LOG MESSAGES ARE ISSUED.
- SPACE 4,10
- *** *1CD* - *QAP* INTERFACE.
- *
- *
- * *1CD* AND *QAP* COMMUNICATE PRIMARILY VIA BYTE 4 OF THE
- * FIRST WORD OF THE FET. WHEN *1CD* MAKES A REQUEST,
- * THIS BYTE IS SET WITH THE REQUEST CODE AND BIT 0
- * IS CLEARED, INDICATING THAT THIS BUFFER
- * IS BUSY. UPON COMPLETION OF THE REQUESTED TASK,
- * QAP* SETS BIT 0 OF THIS BYTE, INDICATING THE
- * BUFFER IS NO LONGER BUSY.
- SPACE 4,10
- *** NOTES.
- *
- *
- * (1) LINES PRODUCING PRINTER *PRINT ERRORS* ARE FLAGGED
- * ON THE LISTING, AND THEN REPRINTED. THE OPERATOR MAY
- * BYPASS ERROR PROCESSING BY TURNING ON SSW1, OR BY MANUALLY
- * DEPRESSING THE *ERROR OVERRIDE* SWITCH. THE LATTER
- * INHIBITS PRINT ERROR ON THE STATUS LINE, AND AS SUCH WILL
- * SUPPRESS STATISTICS REPORTED IN THE *ERRLOG*.
- * IF ERROR PROCESSING IS NOT BYPASSED AND MORE THAN
- * *PERL* CONSECUTIVE LINES HAVE *PRINT ERRORS*, THEN
- * THE FILE IS REQUEUED AND THE PRINTER IS TURNED OFF.
- *
- * (2) INCOMPLETE DATA TRANSFERS AND TRANSMISSION PARITY
- * ERRORS DETECTED WHILE PUNCHING CARDS ARE COUNTED AND
- * RETRIED A MAXIMUM OF *ERRL* TIMES PER CARD IMAGE.
- * IF *ERRL* IS REACHED, THEN THE PUNCH FILE WILL BE
- * REQUEUED AND THE EQUIPMENT TURNED OFF. IF *ERRL*
- * IS NOT REACHED, ONLY THE LAST BAD CARD IS OFFSET FOR
- * A GIVEN CARD IMAGE, INDEPENDENT OF THE NUMBER OF
- * RETRIES FOR THAT CARD IMAGE.
- *
- * (3) THE CARD PUNCH ERROR COUNT IS PUNCHED IN COLUMN
- * 40 OF THE EOI CARD.
- SPACE 4,10
- ** PROGRAMMING CONSIDERATIONS.
- *
- *
- * (1) BEFORE ADDING CODE TO THIS ROUTINE, ONE SHOULD
- * UNDERSTAND WHAT HAPPENS ON A FUNCTION REJECT OR WAIT NOT
- * BUSY CONDITION. SEE SUBROUTINES *FCN* AND *WNB*.
- *
- * (2) THE PROGRAMMER SHOULD BE AWARE OF THE IMPLICATIONS
- * OF JUMPING TO MANAGER FROM A SUBROUTINE. IF THAT
- * SUBROUTINE IS CALLED MORE THAN ONCE, ANOTHER EQUIPMENT
- * DRIVEN BY THIS SAME *1CD* COULD CONCEIVABLY CALL THE
- * SAME SUBROUTINE FROM A DIFFERENT LOCATION. THUS, THE
- * RETURN ADDRESS WOULD NOT BE CORRECT FOR THE EQUIPMENT
- * THAT FIRST CALLED THE SUBROUTINE WHEN IT RESUMES
- * PROCESSING.
- SPACE 4,10
- *** PROGRAMS CALLED.
- *
- * CIO - COMBINED I/O.
- * QAP - QUEUE AUXILIARY PROCESSOR.
- SPACE 4,10
- * COMMON DECKS.
- *CALL COMPMAC
- LIST X
- *CALL COMSBIO
- LIST *
- *CALL COMSCPS
- *CALL COMSJIO
- *CALL COMSPIM
- SPACE 4,10
- **** DIRECT CELL USAGE.
- DB EQU 15 DATA BUFFER ADDRESS
- FC EQU 16 FUNCTION CODE
- PA EQU 17 PROCESSING ADDRESS
- FP EQU 20 - 24 FILE PARAMETERS (FET+5) (5 LOCATIONS)
- BF EQU FP BUFFER POINT OFFSET
- BI EQU 25 PP BUFFER CONTROL INDEX
- DA EQU 26 DATA ADDRESS
- BR EQU 27 BUSY RETURN
- F2 EQU 30 - 34 FILE PARAM WORD 2 (FET+12) (5 LOCATIONS)
- CS EQU F2 CONVERTER STATUS (FET+12 - BYTE 0)
- ST EQU F2+1 EQUIPMENT STATUS (FET+12 - BYTE 1)
- UL EQU F2+3 - F2+4 USER LIMIT (FET+12 - BYTES 3 AND 4)
- CR EQU 35 CHANNEL RESERVED
- EQ EQU 36 EQUIPMENT TYPE NUMBER
- TL EQU 37 CONVERSION TABLE LENGTH
- BS EQU 40 - 44 BUFFER STATUS (5 LOCATIONS)
- SB EQU 46 STATUS BLOCK WRITE LOCKOUT
- BL EQU 47 EQUIPMENT STATUS BLOCK LENGTH
- FA EQU 57 ADDRESS OF FST ENTRY
- FT EQU 60 - 61 FIRST ADDRESS OF CM BUFFER (2 LOCATIONS)
- IN EQU 62 - 63 NEXT INPUT ADDRESS (2 LOCATIONS)
- OT EQU 64 - 65 NEXT OUTPUT ADDRESS (2 LOCATIONS)
- LM EQU 66 - 67 LIMIT ADDRESS OF CM BUFFER (2 LOCATIONS)
- SPACE 4,10
- * ASSEMBLY CONSTANTS.
- * PROGRAMMERS NOTE - THE DEFAULT CHANNEL SHOULD REMAIN 16B.
- * THE MAIN LOOP OF *1CD* ASSUMES THAT A CHANNEL IS ALREADY
- * RESERVED AND IT WILL BE DROPPED WHEN NECESSARY. IN ORDER TO
- * ELIMINATE SPECIAL CASE CODE, CHANNEL 16B IS USED IN PRESET
- * SINCE IT IS DEFINED TO BE NON-DEDICATED AND MAY ALWAYS BE
- * REQUESTED AND DROPPED. USE OF ANY OTHER CHANNEL MAY RESULT
- * IN DEADLOCK WITH PP PROGRAMS WHICH MAY USE THAT CHANNEL IN A
- * DEDICATED MODE (SUCH AS *1TD*).
- CH EQU 16B CHANNEL NUMBER
- BUFS EQU 2 BUFFER TABLE ENTRY LENGTH
- ****
- SPACE 4,10
- * CONVERSION TABLE AREA.
- CTID EQU MSFW
- CTBL EQU CTID+1
- CTBLL EQU CTID+5*CTLN
- TITLE MACRO DEFINITIONS.
- SPACE 4,10
- ** MACRO DEFINITIONS.
- FMTC SPACE 4,10
- ** FMTC C,L,F1,F2
- *
- * GENERATE ENTRY IN FORMAT CONTROL TABLE.
- *
- *T, 12/ASCII8
- *T+1, 6/L,6/F2
- * ASCII8 = 12-BIT ASCII CODE.
- * C = CONTROL CHARACTER IN 12 BIT ASCII, RIGHT-
- * JUSTIFIED.
- * L = NUMBER OF LINES CHARGED THRU ACCOUNTING.
- * F2 = FUNCTION CODE FOR 512/580.
- FMTC MACRO C,L,F1,F2
- NOREF YY
- CODE ASCII
- YY SET 1R_C+40B
- VFD 12/YY
- CODE *
- VFD 6/L,6/F2
- ENDM
- NFMTC SPACE 4,15
- ** NFMTC - NON-IMPACT PRINTER FORMAT CONTROL TABLE.
- *
- * NFMTC IS USED TO GENERATE A ENTRY IN THE FORMAT CONTROL
- * TABLE FOR A NON-IMPACT PRINTER.
- *
- * NFMTC C,NP,L,F1,F2
- *
- * ENTRY *C* = CONTROL CHARACTER.
- * *NP* = IF PRESENT, DO NOT PRINT LINE.
- * *L* = ADDITIONAL LINES TO CHARGE.
- * *F1* = FUNCTION TO ISSUE TO CCC.
- * *F2* = ADDITIONAL FUNCTION TO ISSUE AFTER *F1*.
- PURGMAC NFMTC
- NFMTC MACRO C,NP,L,F1,F2
- MACREF NFMTC
- NOREF YY
- CODE ASCII
- YY SET 1R_C+40B
- VFD 12/YY
- CODE *
- VFD 6/L
- .A IFC EQ,$NP$$
- VFD 6/0
- .A ELSE
- VFD 6/1
- .A ENDIF
- .A IFC EQ,$F2$$
- VFD 12/F1,12/0
- .A ELSE
- VFD 12/F2,12/F1
- .A ENDIF
- NFMTC ENDM
- RELM SPACE 4,10
- ** RELM
- * REDEFINE -M- TYPE DATA INSTRUCTIONS FOR AUTOMATIC BIAS
- * BY *EQSB* IF -M- PART OF ADDRESS .LE. *CMDA*.
- * ORIGINAL FORM AVAILABLE WITH *.* SUFFIX.
- RELM MACRO OPC
- OPC. OPSYN OPC
- OPC= MACRO M,D
- IF DEF,M
- IFLE M,CMDA
- IFC EQ,*D**
- OPC. M+EQSB
- ELSE
- OPC. M,D
- ENDIF
- OPC= ENDM
- OPC OPSYN OPC=
- RELM ENDM
- RELM LDM
- RELM ADM
- RELM SBM
- RELM LMM
- RELM STM
- RELM RAM
- RELM AOM
- RELM SOM
- STR SPACE 4,10
- ** STR - GENERATE ASCII STRING.
- *
- * STR IS USED TO GENERATE A STRING OF ASCII CHARACTERS.
- * THE CHARACTERS ARE STORED ONE PER BYTE, RIGHT-ADJUSTED.
- *
- * STR (ABCD)
- *
- * ENTRY *ABCD* = STRING TO GENERATE.
- PURGMAC STR
- STR MACRO STRING
- MACREF STR
- NOREF .1,.2,.3
- .B MICRO 1,,(STRING(
- .1 MICCNT .B
- .2 SET 1
- CODE ASCII
- DUP .1,4
- .C MICRO .2,1,#".B"#
- .3 SET 1R".C"+40B
- VFD 12/.3
- .2 SET .2+1
- CODE *
- STR ENDM
- SPACE 4,10
- ** COMMON DECKS.
- *CALL COMPCHI
- TITLE MANAGER.
- ICD SPACE 4,10
- ** MGR - EQUIPMENT MANAGER.
- ORG PPFW
- ICD LJM PRS PRESET PROGRAM
- MGR EQU *-1
- STM CMAR SAVE -A- REGISTER
- LDM MGR STORE PROGRAM ADDRESS
- STM CMPA
- LDN FRJI CLEAR FUNCTION REJECT RETRY COUNT
- RJM CRV
- MGRA LDN 0 RESET TIMEOUT COUNTER
- * LDN 1 (1X PP SPEED)
- * LDN 2 (2X PP SPEED)
- * LDN 4 (4X PP SPEED)
- STM CMTC
- * *MGR1* IS A SECONDARY ENTRY POINT FOR *MGR*.
- MGR1 LDD BR STORE BUSY RETURN
- STM CMBR
- * PAUSE FOR STORAGE MOVE / CHANNEL REQUESTED.
- PSE LDN CMCL READ STORAGE MOVE CONTROL
- CRD CM
- LDD CP CHECK CONTROL POINT
- SHN -7
- LMD CM
- ZJN PSE2 IF MOVE REQUESTED
- LCN 0
- STD T0
- LDD CR
- STD T1
- PSE1 AOD T0 DETERMINE CHANNEL WORD ADDRESS
- LCN 5
- RAD T1
- PJN PSE1 IF CORRECT CHANNEL WORD NOT REACHED
- LDC 0
- PSEA EQU *-1 (CHANNEL TABLE ADDRESS)
- ADD T0
- CRD CM
- LDM CM+5,T1 CHECK CHANNEL
- SHN -13
- ZJN MGR2 IF CHANNEL NOT REQUESTED
- PSE2 LDD CR RELEASE CHANNEL
- DCHAN
- LDD CR RESERVE CHANNEL
- RCHAN
- * LDN 0 CLEAR EQUIPMENT COUNTER
- MGR2 STD T7
- LDD RA READ REQUEST WORD
- SHN 6
- ADN DRQR
- CRD CM
- LDD SB
- NJN MGR2.1 IF STATUS BLOCK INTERLOCKED
- RJM SFA
- ADN EDSO STORE STATUS BLOCK
- CWM EQSB,BL
- MGR2.1 LDD CM
- LMD IR+2
- NJN MGR3 IF NO REQUEST
- RJM SEA SET EQUIPMENT ASSIGNMENT
- MGR3 LDN BUFS ADVANCE BUFFER ADDRESS
- RAD BI
- LMC CBUFL
- NJN MGR4 IF NOT END OF BUFFERS
- LCN CBUFL-CBUF
- RAD BI
- MGR4 LDI BI
- ADM 1,BI
- NJN MGR5 IF EQUIPMENT ACTIVE
- AOD T7 ADVANCE EQUIPMENT COUNTER
- LMN MEQD
- NJN MGR3 IF NOT LAST EQUIPMENT
- LDD CR RELEASE CHANNEL
- DCHAN
- LDD RA
- SHN 6
- ADD IR+2
- CWD CM
- MONITOR DPPM DROP PP
- LJM PPR EXIT TO PP RESIDENT
- MGR5 RJM SFA READ FET PARAMETERS
- CRD BS BUFFER STATUS
- ADN QAPO
- CRD T1 QUEUE ACCESS PARAMETER BLOCK
- ADN FPW2-QAPO
- CRD F2 FILE PARAMETER WORD 2
- SBN FPW2-5
- CRD FP FILE PARAMETER WORD 1 (FET+5)
- SBN 1
- CRD LM-3 LIMIT
- CRD T6
- SBN 1
- CRD OT-3 OUT
- SBN 1
- CRD IN-3 IN
- SBN 1
- CRD CM FIRST
- ADN EDSO-1
- CRM EQSB,BL
- LDM CMEN SET EQUIPMENT TYPE
- LPN 7
- STD EQ
- LDM CMBR SET BUSY RETURN
- STD BR
- LDD CM+3
- LPN 37
- STD FT
- LDD CM+4
- STD FT+1
- LDD BS+4
- SHN 21-0
- MJN MGR6 IF FILE NOT BUSY
- LDD T1+4
- SHN 21-0
- PJN MGR6 IF QUEUE ACCESS PARAMETER BLOCK BUSY
- AOD BS+4 SET FILE NOT BUSY
- SOD T1+4 SET QUEUE ACCESS PARAMETER BLOCK BUSY
- RJM SFA WRITE BUFFER STATUS
- CWD BS
- ADN QAPO WRITE QUEUE ACCESS PARAMETER BLOCK
- CWD T1
- MGR6 LDD T6 SET FST ADDRESS
- ZJN MGR7 IF NO FNT ENTRY
- SBN FSTL
- MGR7 STD FA
- LDM CMSB SET STATUS BLOCK INTERLOCK FLAG
- LPN 2
- STD SB
- NJN MGR9 IF INTERLOCKED
- LDM CMDB SET DATA ADDRESS
- STD DA
- NFA BF,R READ BUFFER POINT WORD
- CRD CM
- LDD CM+4 CHECK FOR OPERATOR REQUEST
- LPN 77
- ZJN MGR8 IF NO REQUEST
- RJM POF PROCESS OPERATOR REQUEST
- MGR8 RJM PMR PROCESS MESSAGE REQUEST
- NJN MGR9 IF REQUEST PENDING
- RJM ** ENTER SUB-DRIVER PROCESSOR
- MGRB EQU *-1 (SET BY *PRS*)
- * RJM /3CZ/SDP
- * RJM /3CY/SDP
- MGR9 LJM PSE CHECK FOR STORAGE MOVE
- TEQD SPACE 4,10
- ** TEQD - TABLE OF EQUIPMENT DRIVERS.
- *
- * INDEXED BY EQUIPMENT TYPE CODE.
- TEQD INDEX
- INDEX LPDT,/3CZ/LPD
- INDEX CPDT,/3CZ/CPD
- INDEX CRDT,/3CZ/CRD
- INDEX NPDT,/3CY/NPD
- INDEX MXDT
- TDCM SPACE 4,10
- ** TDCM - TABLE OF DEFAULT CONVERSION MODES.
- *
- * INDEXED BY EQUIPMENT TYPE CODE.
- TDCM INDEX
- INDEX LPDT,CDX8
- INDEX CPDT,CDXH
- INDEX CRDT,C6XD
- INDEX NPDT,CDX8
- INDEX MXDT
- TNRP SPACE 4,10
- ** TNRP - TABLE OF *NOT READY* PROCESSORS.
- *
- * INDEXED BY EQUIPMENT TYPE CODE.
- TNRP INDEX
- INDEX LPDT,/3CZ/LPE
- INDEX CPDT,/3CZ/CPE
- INDEX CRDT,/3CZ/CRE
- INDEX NPDT,/3CY/NPE
- INDEX MXDT
- SEA SPACE 4,15
- ** SEA - SET EQUIPMENT ASSIGNMENT.
- *
- * ENTRY (CM - CM+4) = EQUIPMENT ASSIGNMENT.
- *
- * EXIT BUFFER INITIALIZED.
- *
- * USES EQ, IR+3, T1, CM - CM+4.
- *
- * CALLS CLB, SFA.
- *
- * MACROS MONITOR.
- SEA2 MONITOR HNGM HANG PP
- SEA SUBR ENTRY/EXIT
- LDD CM+1 SET EQUIPMENT TYPE
- LPN 7
- STD EQ
- SBN MXDT
- PJN SEA2 IF DRIVER NOT AVAILABLE
- LDC CBUF-BUFS SET BUFFER ADDRESS
- STD T1
- SEA1 LDN BUFS ADVANCE BUFFER ADDRESS
- RAD T1
- LMC CBUFL
- ZJN SEAX IF ALL BUFFERS BUSY
- LDI T1
- ADM 1,T1
- NJN SEA1 IF BUFFER IN USE
- STD SB
- LDD T1
- STD BI
- LDD CM+3 SET BUFFER ADDRESS
- STI BI
- LDD CM+4
- STM 1,BI
- RJM SFA READ DRIVER STATUS BLOCK
- ADN EDSO
- CRM EQSB,BL
- RJM CLB CLEAR STATUS BLOCK
- LDN ZERL CLEAR REQUEST
- CRD CM
- AOD IR+3 ADVANCE ENTRY COUNT
- LDD RA UPDATE EQUIPMENT COUNT
- SHN 6
- ADD IR+2
- CWD IR
- SBD IR+2
- ADN DRQR
- CWD CM
- LJM MGR1 STORE STATUS BLOCK
- TITLE PROCESS OPERATOR REQUESTS.
- CPH SPACE 4,10
- ** CPH - CLEAR PRINTER HOLDING.
- *
- * EXIT TO *POF1*.
- CPH LDN 0 CLEAR HOLD FLAG
- STM CMHF
- * UJN POF1 PROCESS OPERATOR FLAG
- POF SPACE 4,15
- ** POF - PROCESS OPERATOR FLAG.
- *
- * ENTRY (A) = OPERATOR REQUEST.
- * (EQ) = DEVICE TYPE.
- * (CM - CM+4) = BUFFER POINT WORD.
- *
- * USES CM+4, T1, T3.
- *
- * CALLS PROCESSOR WITH THE FOLLOWING CONDITIONS -
- * (EQ) = DEVICE TYPE.
- * (T3) = REQUEST PARAMETER.
- * BUFFER NOT BUSY.
- *
- * MACROS NFA.
- POF1 LDM CMER SET REPEAT COUNT
- SHN 6
- STD CM+4
- NFA BF,R STORE BUFFER POINT WORD
- CWD CM
- POF SUBR ENTRY/EXIT
- STD T1 SET REQUEST
- SBN FPRE
- PJN POF1 IF ILLEGAL REQUEST
- LDD BS+4
- LPN 1
- ZJN POFX IF BUFFER BUSY
- LDM CMPA
- LMC TOPA
- ZJN POFX IF TERMINATION PROCESSING
- LDD CM+4 SET REQUEST PARAMETER
- SHN -6
- STD T3
- LDM TOPF,T1 PROCESS REQUEST
- STD T1
- LJM 0,T1 EXIT TO PROCESSOR
- CNT SPACE 4,10
- ** CNT - CONTINUE PRINTING.
- *
- * EXIT TO *POFX*.
- *
- * CALLS SDM.
- CNT LDN 0
- STM CMHF
- LDN CNTM SEND DAYFILE MESSAGE
- RJM SDM
- CNT1 UJN POFX RETURN
- HLD SPACE 4,10
- ** HLD - HOLD PRINTING.
- *
- * EXIT TO *CNT1*.
- *
- * CALLS MSG, SDM.
- HLD LDN HLDM
- RJM SDM SEND DAYFILE MESSAGE
- LDN EHLD
- RJM MSG ISSUE BUFFER POINT MESSAGE
- LDM CMHF
- SCN 1 SET HOLD FLAG
- HLD1 LMN 1
- STM CMHF
- HLD2 UJN CNT1 RETURN
- PPF SPACE 4,10
- ** PPF - POSITION PRINT FILE.
- *
- * EXIT TO *HLD1* IF DRIVER NOT HOLDING.
- * TO *HLD2* IF DRIVER HOLDING.
- *
- * USES CM - CM+4.
- *
- * CALLS CPS.
- *
- * MACROS NFA.
- PPF LDM CMHF CHECK DRIVER HOLDING
- LPN 2
- ZJN HLD1 IF DRIVER NOT HOLDING
- LDN ZERL SET UP BUFFER POINT PARAMETERS
- CRD CM
- LDN EHLD
- STD CM SET MESSAGE CODE
- LDM CMER
- STD CM+4 SET REPEAT COUNT
- NFA BF,R
- ADN 1 STORE BUFFER POINT WORD
- CWD CM
- LDC PORF+1000 PROCESS OPERATOR REQUEST
- RJM CPS
- UJN HLD2 RETURN
- RRN SPACE 4,10
- ** RRN - PROCESS RERUN.
- *
- * ENTRY (EQ) = DEVICE TYPE.
- *
- * EXIT TO *END2* IF CARD READER.
- * TO *TOP1* IF PUNCH OR PRINTER.
- *
- * CALLS SDM.
- RRN LDD EQ
- SBK CRDT
- ZJN END2 IF CARD READER
- LDN RRNM ISSUE RERUN MESSAGE
- RJM SDM
- * LDN 0 CLEAR MESSAGE REQUEST
- STM CMMR
- LDC RQFF+1000 REQUEUE FILE
- LJM TOP1 TERMINATE OPERATION
- END SPACE 4,10
- ** END - PROCESS *END*.
- *
- * ENTRY (T3) = NUMBER OF ENDS TO FORCE.
- *
- * EXIT TO *PSE*.
- *
- * USES T1, T3.
- *
- * CALLS ECB, SDM, SFA.
- END LDD T3 FORCE ONE END
- NJN END1 IF .GE. ONE END
- AOD T3
- END1 AOM CMER DECREMENT REPEAT COUNT
- SBD T3
- PJN END2 IF REPEAT COUNT .GE. END COUNT
- ADN 1 CLEAR REPEAT COUNT
- RAD T3
- LDN 0 CLEAR REPEAT COUNT
- END2 STM CMER
- LDN ENDM SEND DAYFILE MESSAGE
- RJM SDM
- LDC 1031 SET EOI/EOF
- STD BS+4
- RJM SFA STORE BUFFER STATUS
- CWD BS
- RJM ECB EMPTY CENTRAL BUFFER
- LDM ENDA,EQ
- STM CMPA
- LJM PSE PAUSE
- ENDA INDEX *END* PROCESSOR
- INDEX LPDT,/3CZ/LPN PRINT DAYFILE
- INDEX CPDT,/3CZ/PED END OF FILE
- INDEX CRDT,TOP TERMINATE OPERATION
- INDEX NPDT,/3CY/NPN PRINT DAYFILE
- INDEX MXDT
- REP SPACE 4,15
- ** REP - PROCESS REPEAT.
- *
- * ENTRY (T3) = NUMBER OF REPEATS.
- *
- * EXIT TO *POFX*.
- *
- * USES T3.
- *
- * CALLS SDM.
- REP LDD T3
- NJN REP1 IF .GE. ONE REPEAT
- AOD T3
- REP1 RAM CMER ADVANCE REPEAT COUNT
- SHN -6
- ZJN REP2 IF REPEAT COUNT .LE. 77
- LDN 77
- STM CMER
- REP2 LDN REPM SEND DAYFILE MESSAGE
- RJM SDM
- REP3 LJM POFX RETURN
- SUP SPACE 4,10
- ** SUP - TOGGLE SUPPRESS FLAG.
- *
- * EXIT TO *REP3*.
- *
- * CALLS SDM.
- SUP LDM CMSF TOGGLE SUPPRESS FLAG
- LMN 4
- STM CMSF
- LDN SUPM SEND DAYFILE MESSAGE
- RJM SDM
- UJN REP3 RETURN
- TOPF SPACE 4,30
- ** TOPF - TABLE OF OPERATOR REQUESTS PROCESSORS.
- *
- * INDEXED BY REQUEST CODE. (DEFINED IN COMSBIO)
- * ONE WORD ENTRY IN FORMAT -
- *
- *T, 12/ ADDR
- * ADDR ADDRESS OF REQUEST PROCESSOR.
- TOPF INDEX
- INDEX ENDM,END END
- INDEX REPM,REP REPEAT
- INDEX SUPM,SUP SUPPRESS
- INDEX RRNM,RRN RERUN
- INDEX HLDM,HLD HOLD
- INDEX CNTM,CNT CONTINUE
- INDEX BKPO,PPF BACKSPACE PRUS
- INDEX BKRO,PPF BACKSPACE RECORDS
- INDEX BKFO,PPF BACKSPACE FILES
- INDEX SKPO,PPF SKIP PRUS
- INDEX SKRO,PPF SKIP RECORDS
- INDEX SKFO,PPF SKIP FILES
- INDEX CPHP,CPH CLEAR PRINTER HOLDING
- INDEX LNLP,PPF LOCATE NEXT LINE
- INDEX LCBP,PPF LOAD CENTRAL BUFFER
- INDEX FPRE TABLE TERMINATOR
- TITLE COMMON SUBROUTINES.
- ACT SPACE 4,10
- ** ACT - PROCESS ACCOUNTING INFORMATION.
- *
- * EXIT (A) = STATUS RESPONSE FROM *CPS*.
- *
- * USES CM, CM+3 - CM+4.
- *
- * CALLS CPS.
- ACT SUBR ENTRY/EXIT
- LDD EQ
- STD CM+1 ENTER EQUIPMENT TYPE
- LDM CMRC
- STD CM+3
- LDM CMRC+1
- STD CM+4
- LDD FT STORE REQUEST IN BUFFER
- SHN 6
- ADD RA
- SHN 6
- ADD FT+1
- CWD CM
- LDC ACTF+1000 PROCESS ACCOUNTING
- RJM CPS
- UJN ACTX RETURN
- ADB SPACE 4,10
- ** ADB - ASSIGN DATA BUFFER.
- *
- * ENTRY (DB) = FWA OF LAST DATA BUFFER USED.
- *
- * EXIT (A) = (DA) = (CMDB) = BUFFER ADDRESS.
- * (DB) = FWA OF DATA BUFFER ASSIGNED.
- * ((DB)) = RELATIVE LOCATION BUFFER INDEX.
- * TO *MGR1* IF NO DATA BUFFER AVAILABLE.
- *
- * USES DA, DB, T7.
- ADB3 LDD BI SET BUFFER ASSIGNED
- STI DB
- LDD DB ADDRESS OF DATA BUFFER
- ADN 1
- STM CMDB FWA OF DATA (DB+1) IN DATA BUFFER
- ADB4 STD DA
- ADB SUBR ENTRY/EXIT
- LDM CMDB
- NJN ADB4 IF DATA BUFFER IS ASSIGNED TO THIS DEVICE
- STD T7
- ADB1 LDI DB
- ZJN ADB3 IF THIS DATA BUFFER NOT ASSIGNED
- LDC 0 CHECK NEXT DATA BUFFER
- ADBA EQU *-1 (DATA BUFFER SIZE SET BY *PRS*)
- RAD DB
- LMC 0
- ADBB EQU *-1 (LWA+1 OF DATA BUFFERS SET BY *PRS*)
- NJN ADB2 IF NOT LAST DATA BUFFER
- LDC 0 LOOP TO FIRST DATA BUFFER
- ADBC EQU *-1 (FWA OF DATA BUFFERS SET BY *PRS*)
- STD DB
- ADB2 AOD T7
- ADBD LMN 0 (NUMBER OF DATA BUFFERS SET BY *PRS*)
- NJN ADB1 IF NOT ALL DATA BUFFERS CHECKED
- LJM MGR1 IGNORE REQUEST
- AOP SPACE 4,10
- ** AOP - ADVANCE OUT POINTER.
- *
- * ENTRY (A) = NUMBER OF WORDS TO ADVANCE POINTER.
- *
- * USES OT - OT+1.
- *
- * CALLS CDB.
- AOP SUBR ENTRY/EXIT
- RAD OT+1 ADVANCE OUT POINTER
- SHN -14
- RAD OT
- SBD LM OUT - LIMIT
- SHN 14
- ADD OT+1
- SBD LM+1
- MJN AOP1 IF NO WRAP AROUND
- ADD FT+1
- STD OT+1
- SHN -14
- ADD FT
- STD OT
- AOP1 RJM CDB CHECK DATA REMAINING IN BUFFER
- UJN AOPX RETURN
- CCE SPACE 4,15
- ** CCE - CHECK FOR CHANNEL ERROR.
- *
- * ENTRY (A) = STATUS/DATA INDEX.
- * (T5) = FUNCTION CODE.
- *
- * EXIT (A) = 0 IF NO ERROR.
- * 1 IF CHANNEL ERROR FLAG SET.
- *
- * USES T1, FC.
- *
- * CALLS CRV, PRE.
- CCE1 LDD T5 SAVE FUNCTION CODE FOR ERROR MESSAGE
- STD FC
- LDD T1 PROCESS RETRIED ERROR
- RJM PRE
- LDN 1 ERROR RETURN
- CCE SUBR ENTRY/EXIT
- STD T1 SAVE STATUS/DATA INDEX
- CCEA SFM. CCE1,CH IF CHANNEL ERROR FLAG SET
- RJM CRV CHECK FOR RECOVERED ERROR
- * LDN 0
- UJN CCEX RETURN
- CDB SPACE 4,10
- ** CDB - CHECK DATA IN OUTPUT BUFFER.
- *
- * EXIT (A) = (CMBE) = NUMBER OF WORDS IN BUFFER.
- CDB SUBR ENTRY/EXIT
- LDD IN LENGTH = IN - OUT
- SBD OT
- SHN 14
- ADD IN+1
- SBD OT+1
- PJN CDB1 IF IN .GE. OUT
- SHN 6 LENGTH = (LIMIT - OUT) + (IN - FIRST)
- ADD LM
- SBD FT
- SHN 14
- ADD LM+1
- SBD FT+1
- CDB1 STM CMBE SET LENGTH
- UJN CDBX RETURN
- CEP SPACE 4,10
- ** CEP - CHANNEL ERROR PROCESSOR.
- *
- * EXIT TO *TOP2*.
- *
- * USES BR.
- *
- * CALLS RDB.
- CEP RJM RDB RELEASE DATA BUFFER
- STM CMMR CLEAR DAYFILE MESSAGE REQUEST
- AOD BR SET BUSY RETURN
- LDC CECF+1000 DEACTIVATE EQUIPMENT
- STM CMLR
- LJM TOP2 TERMINATE OPERATION ON DEVICE
- CIB SPACE 4,15
- ** CIB - CHECK INPUT BUFFER.
- *
- * EXIT (A) = WORD COUNT OF BUFFER.
- * IF WORD COUNT .LT. 1 SECTOR, A CALL WILL BE MADE TO
- * DUMP BUFFER.
- * IF FIRST WRITE, MAKE PP SERVICE CALL TO INITIATE
- * INPUT FILE.
- *
- * USES BS+4, T1.
- *
- * CALLS CPS.
- CIB SUBR ENTRY/EXIT
- LDD BS+4 CHECK CURRENT STATUS
- LPN 21
- LMN 20
- ZJP MGR1 IF BUFFER BUSY AND EOR
- LDD OT LENGTH = OUT - IN
- SBD IN
- SHN 14
- ADD OT+1
- SBD IN+1
- ZJN CIB1 IF IN = OUT
- PJN CIB2 IF IN .LT. OUT
- CIB1 SHN 6
- ADD LM
- SBD FT LENGTH = (LIMIT - IN) + (OUT - FIRST)
- SHN 14
- ADD LM+1
- SBD FT+1
- CIB2 SBN 1
- STD T1 SAVE LENGTH
- SHN -6
- NJN CIB4 IF LENGTH .GE. 1 SECTOR
- LDD BS+4
- LPN 3
- STD BS+4 REQUEST BUFFER WRITE
- LDD FA
- ZJN CIB3 IF FIRST WRITE
- LDC WTIF+1000&14
- CIB3 LMC WTIF+1000 SET REQUEST
- RJM CPS
- CIB4 LDD T1 SET LENGTH
- LJM CIBX RETURN
- CLB SPACE 4,15
- ** CLB - CLEAR INTERNAL BUFFER.
- *
- * ENTRY (EQ) = EQUIPMENT TYPE CODE.
- *
- * EXIT (A) = 0.
- * (T3) = ADDRESS OF *CMER*.
- * (BR) .NE. 0 (BUSY RETURN SET).
- * (CMPA) = PROCESSOR ADDRESS.
- * (CMCT) = DEFAULT CONVERSION MODE.
- CLB SUBR ENTRY/EXIT
- LDC EQSB+CMER SET LOWER LIMIT
- STD BR
- ADN CMDA-CMER-1 SET UPPER LIMIT
- STD T3
- LDM TEQD,EQ SET PROCESSOR ADDRESS
- STM CMPA
- LDM TDCM,EQ SET DEFAULT CONVERSION MODE
- STM CMCT
- CLB1 LDN 0 CLEAR BUFFER
- STI T3
- SOD T3 DECREMENT BUFFER ADDRESS
- LMD BR
- NJN CLB1 IF NOT LOWER LIMIT
- UJN CLBX RETURN
- COB SPACE 4,15
- ** COB - CHECK OUTPUT BUFFER.
- *
- * EXIT (A) = WORD COUNT OF BUFFER.
- * IF WORD COUNT .LT. 1 SECTOR AND STATUS .NE. EOR
- * OR EOF, A CALL WILL BE MADE TO FILL BUFFER.
- * IF FILE IS A 12 BIT ASCII PRINT FILE, THE WORD
- * COUNT THRESHOLD CHECK MADE IS FOR .LT. 2 SECTORS
- * RATHER THAN 1 SECTOR.
- * IF BUFFER IS EMPTY, AND STATUS = EOR OR EOF, EXIT
- * WILL BE TAKEN TO APPROPRIATE PROCESSOR.
- *
- * USES BS+4, T1 - T2.
- *
- * CALLS CDB, CPS.
- COB3 LDD BS+4
- LPN 1
- ZJN COB4 IF BUFFER BUSY
- STD BS+4
- LDM COBC,EQ REQUEST READ
- RJM CPS
- COB4 LDD T1 RETURN WITH LENGTH
- COB SUBR ENTRY/EXIT
- RJM CDB CHECK DATA IN OUTPUT BUFFER
- STD T1 SAVE LENGTH
- SBM CMBT
- PJN COB4 IF LENGTH .LT. 1 OR 2 SECTORS
- LDD BS+4 CHECK BUFFER STATUS
- LPN 20
- ZJN COB3 IF NOT EOR/EOF
- LDD T1
- NJN COBX IF BUFFER NOT EMPTY
- LDD BS+4
- LPN 10
- NJN COB1 IF EOF/EOI
- LDM COBA,EQ
- UJN COB2 SET EOR PROCESSOR
- COB1 LDM COBB,EQ SET EOF/EOI PROCESSOR
- COB2 STD T2
- LJM 0,T2 PROCESS EOF
- * END OF RECORD PROCESSORS.
- COBA INDEX
- INDEX LPDT,COB3 READ NEXT RECORD
- INDEX CPDT,/3CZ/PER PUNCH EOR
- INDEX NPDT,COB3 READ NEXT RECORD
- INDEX MXDT
- * END OF FILE PROCESSORS.
- COBB INDEX
- INDEX LPDT,/3CZ/LEF LIST END OF INFORMATION
- INDEX CPDT,/3CZ/PEF PUNCH END OF FILE
- INDEX NPDT,/3CY/NEF LIST END OF INFORMATION
- INDEX MXDT
- * READ REQUEST CODES.
- COBC INDEX
- INDEX LPDT,600 READEI
- INDEX CPDT,10 READ
- INDEX NPDT,600 READEI
- INDEX MXDT
- CPS SPACE 4,15
- ** CPS - CALL PP SERVICE PROGRAM.
- *
- * ENTRY (A) = REQUEST.
- *
- * EXIT (A) = 0 IF REQUEST NOT ACCEPTED.
- *
- * USES BS+4, T0, CM - CM+4.
- *
- * CALLS *CIO*, *QAP*, SFA.
- *
- * MACROS EXECUTE, MONITOR.
- CPS SUBR ENTRY/EXIT
- STD T0 SAVE REQUEST
- SHN -9D
- STD CM+2
- ZJN CPS1 IF CIO REQUEST
- SHN 9D CLEAR UPPER THREE BITS OF REQUEST
- LMD T0
- STD T0
- LDC 3RPQA&3ROCI
- CPS1 LMC 3ROCI
- STD CM
- SHN -6
- SCN 77
- STD CM+1
- LDD BS+4 SAVE CURRENT BUFFER STATUS
- STM CPSB
- LPN 1
- ZJN CPSX IF BUFFER BUSY
- LMD BS+4
- LMD T0
- ZJN CPSX IF SAME OPERATION
- LDD T0 SET REQUEST
- STD BS+4
- LDD CM+2
- STM CMSB
- LDI BI SET FET ADDRESS IN CALL
- STD CM+3
- LDM 1,BI
- STD CM+4
- RJM SFA STORE BUFFER STATUS
- CWD BS
- EXECUTE CIO,=
- EXECUTE QAP,=
- LDD MA
- CWD CM
- LDN 0 ENABLE QUEUING OF PP REQUEST
- STD CM+1
- MONITOR RPPM
- LDD CM+1
- NJN CPS2 IF PP ASSIGNED
- LDC *
- CPSB EQU *-1
- STD BS+4 RESTORE ORIGINAL STATUS
- RJM SFA SET FET ADDRESS
- CWD BS
- LDN 0
- STM CMSB
- CPS2 LJM CPSX RETURN
- CRV SPACE 4,10
- ** CRV - CHECK FOR RECOVERED ERROR.
- *
- * ENTRY (A) = INDEX OF ERROR.
- *
- * EXIT (A) = 0.
- *
- * USES T1, T3.
- *
- * CALLS SDM.
- CRV SUBR ENTRY/EXIT
- STD T1 SAVE INDEX
- LDM FRCI+EQSB,T1 GET ERROR COUNT
- ZJN CRVX IF NO PREVIOUS ERROR
- SHN 6
- STD T3 SAVE RETRY COUNT
- LDN 0
- STM FRCI+EQSB,T1 CLEAR ERROR COUNTER
- LDM TERC,T1
- RJM SDM
- * LDN 0
- UJN CRVX RETURN
- CUL SPACE 4,15
- ** CUL - CHECK USER LIMIT REACHED.
- *
- * ENTRY (A) = DECREMENT OF RECORD COUNT.
- * (EQ) = EQUIPMENT TYPE CODE.
- *
- * EXIT (A) = 0 IF USER LIMIT NOT EXCEEDED.
- * IF THE USER LIMIT IS EXCEEDED,
- * THEN EXIT IS MADE TO THE RESPECTIVE
- * DRIVER.
- *
- * USES T1.
- *
- * CALLS CPS, ECB, MGR.
- CUL4 LDN 0 RETURN WITH (A) = 0
- CUL SUBR ENTRY/EXIT
- LMC -0
- RAM CMRC+1
- PJN CUL4 IF NO UNDERFLOW
- AOM CMRC+1
- SOM CMRC
- PJN CUL4 IF USER LIMIT NOT EXCEEDED
- AOM CMRC
- * AN EXIT TO *CULX* IS NOT POSSIBLE AFTER THIS POINT.
- * (SEE *PROGRAMMING CONSIDERATIONS*.)
- CUL1 RJM MGR GO TO MANAGER
- LDD BS+4 CHECK IF BUFFER ACTIVE
- SHN 21-0
- PJN CUL1 IF BUFFER ACTIVE
- RJM ECB EMPTY CENTRAL BUFFER
- CUL2 LDC PLEF+1000 REQUEST OUTPUT FILE TERMINATION
- RJM CPS
- CUL3 RJM MGR GO TO MANAGER
- ZJN CUL2 IF REQUEST NOT ENTERED
- LDD BS+4
- SHN 21-0
- PJN CUL3 IF REQUEST NOT COMPLETE
- LDM CMSF CLEAR 6/12 AND 8/12 ASCII STATUS
- SCN 50
- STM CMSF
- LDM CULA,EQ SET PROCESSOR ADDRESS
- STD T1
- LJM 0,T1 PROCESS USER VALIDATION EXCEEDED
- CULA INDEX VALIDATION EXCEEDED PROCESSORS
- INDEX LPDT,/3CZ/LPD4
- INDEX CPDT,/3CZ/CPD3
- INDEX NPDT,/3CY/NPD4
- INDEX MXDT
- ECB SPACE 4,10
- ** ECB - EMPTY CIRCULAR BUFFER.
- *
- * EXIT IN = OUT = FIRST.
- *
- * CALLS SOP.
- ECB SUBR ENTRY/EXIT
- LDK FT-EQSB SET OUT = FIRST
- RJM SOP STORE OUT POINTER
- SBN 1 STORE IN POINTER
- CWD CM
- UJN ECBX RETURN
- MCC SPACE 4,10
- ** MCC - MOVE AND CONVERT CHARACTER.
- *
- * ENTRY (A) = DISPLAY CODE CHARACTER.
- * (T2) = BYTE INDEX.
- *
- * EXIT (T0) = 0#23, IF ILLEGAL CHARACTER.
- * (T2) DECREMENTED, IF CHARACTER NOT ESCAPE CODE.
- * (T3) = UNCONVERTED CHARACTER.
- *
- * USES T2, T3.
- MCC3 ADN 76 SAVE UNCONVERTED NORMAL CHARACTER
- MCC4 STD T3
- SOD T2 DECREMENT BUFFER INDEX
- LDM CTBL,T3 CONVERT CHARACTER
- MCC5 STM 1,T2
- MCC SUBR ENTRY/EXIT
- UJN MCC4 CONVERT CHARACTER
- * PSN (IF ASCII 6/12 FILE)
- MCCA EQU *-1
- SBN 74
- ZJN MCC1 IF CHARACTER IS ESCAPE CODE 74
- SBN 76-74
- NJN MCC3 IF CHARACTER IS NOT ESCAPE CODE 76
- LDD T3
- ZJN MCC2 IF 7600
- SBN 37
- PJN MCC2 IF 7637 - 7677
- ADC 140+37
- UJN MCC5 STORE CONVERTED CHARACTER
- MCC1 LDD T3
- SBN MCCBL
- PJN MCC2 IF ILLEGAL CHARACTER
- LDM MCCB,T3
- NJN MCC5 IF LEGAL CHARACTER
- MCC2 LDN 0#23 FLAG ILLEGAL CHARACTER
- STD T0
- LDN 0#20 REPLACE WITH BLANK
- UJN MCC5 STORE CHARACTER
- * TABLE OF 74XX CHARACTERS.
- MCCB BSS 0
- CON 0 ILLEGAL
- CON 100 COMMERCIAL AT
- CON 136 CIRCUMFLEX
- CON 0 ILLEGAL
- MCCC CON 72 COLON (64 CHARACTER SET)
- * CON 45 PERCENT (63 CHARACTER SET)
- CON 0 ILLEGAL
- CON 0 ILLEGAL
- CON 140 GRAVE
- MCCBL EQU *-MCCB
- MSG SPACE 4,10
- ** MSG - SET BUFFER POINT MESSAGE.
- *
- * ENTRY (A) = MESSAGE NUMBER.
- *
- * USES T1, CM - CM+4.
- *
- * MACROS NFA.
- MSG SUBR ENTRY/EXIT
- STD T1
- NFA BF,R READ MESSAGE CONTROL
- ADN 1
- CRD CM
- LDD CM CHECK PREVIOUS MESSAGE
- LMD T1
- ZJN MSGX IF SAME AS CURRENT MESSAGE
- LDD T1 SET BUFFER POINT MESSAGE
- STD CM
- SBN ENEC
- MJN MSG1 IF NOT ERROR CONDITION
- LDD CP STORE CONTROL POINT MESSAGE
- ADN MS2W
- CWM MSGA,TR
- MSG1 NFA BF,R STORE BUFFER POINT MESSAGE
- ADN 1
- CWD CM
- UJN MSGX RETURN
- MSGA DATA C+$REQUEST *I* DISPLAY.+
- PMR SPACE 4,10
- ** PMR - PROCESS MESSAGE REQUEST.
- *
- * EXIT (A) = 0 IF NO REQUEST OR REQUEST PROCESSED.
- *
- * USES BS+4.
- *
- * CALLS CPS, SFA.
- PMR2 LDD BS+4 CHECK BUFFER BUSY
- LPN 1
- ZJN PMR4 IF BUSY
- LDM CMBS
- STD BS+4 RESTORE PREVIOUS STATUS
- RJM SFA SET FET ADDRESS
- CWD BS
- LDN 0
- PMR3 STM CMMR INDICATE REQUEST IN PROGRESS/COMPLETED
- ADN 1
- PMR4 LMN 1 SET EXIT CONDITIONS
- PMR SUBR ENTRY/EXIT
- LDM CMMR
- ZJN PMRX IF NO REQUEST
- SHN 6
- MJN PMR2 IF REQUEST IN PROGRESS
- LDC PDMF+1000 PROCESS DAYFILE MESSAGE
- RJM CPS
- ZJN PMR4 IF REQUEST NOT HONORED
- LDM CPSB
- LMC PDMF+3
- ZJN PMR1 IF PREVIOUS STATUS MESSAGE PROCESSING
- LMC PDMF+3
- STM CMBS SAVE PREVIOUS STATUS
- PMR1 LCN 7
- UJN PMR3 SET REQUEST IN PROGRESS
- PRE SPACE 4,10
- ** PRE - PROCESS RETRIED ERROR.
- *
- * ENTRY (A) = INDEX OF ERROR.
- *
- * EXIT TO *CEP* IF MAXIMUM RETRIES REACHED.
- *
- * USES T1.
- *
- * CALLS SDM, WST.
- PRE SUBR ENTRY/EXIT
- STD T1 SAVE INDEX
- RJM WST WRITE STATUS TO FET
- AOM FRCI+EQSB,T1 INCREMENT ERROR COUNTER
- SBM TMAX,T1 COMPARE TO MAXIMUM
- NJN PREX IF NOT AT MAXIMUM
- * ISSUE MESSAGE AND TERMINATE OPERATION.
- LDM FRCI+EQSB,T1 GET RETRY COUNT
- SHN 6
- ADN 1 SET UNRECOVERED FLAG
- STD T3
- LDN 0 CLEAR COUNTER
- STM FRCI+EQSB,T1
- LDM TERC,T1
- RJM SDM
- LJM CEP CHANNEL ERROR PROCESSOR
- TERC SPACE 4,10
- ** TERC - TABLE OF ERROR CODES.
- TERC INDEX
- INDEX DRRI,EITM INCOMPLETE DATA TRANSFER
- INDEX FRJI,ERJM INTERNAL/EXTERNAL REJECT
- INDEX SCEI,ECRE CHANNEL PARITY ERROR - STATUS
- INDEX DCPI,ECRE CHANNEL PARITY ERROR - DATA
- INDEX PERI,EPLM PRINT ERROR
- INDEX MXRI
- TMAX SPACE 4,10
- ** TMAX - TABLE OF MAXIMUM RETRIES.
- TMAX INDEX
- INDEX DRRI,ERRL INCOMPLETE DATA TRANSFER
- INDEX FRJI,ERRL INTERNAL/EXTERNAL REJECT
- INDEX SCEI,CHPR CHANNEL PARITY ERROR - STATUS
- INDEX DCPI,CHPR CHANNEL PARITY ERROR - DATA
- INDEX PERI,PERL PRINT ERROR
- INDEX MXRI
- PSD SPACE 4,15
- ** PSD - PRESET DRIVER.
- *
- * ENTRY (FA) = FST ADDRESS.
- * (UL - UL+1) = USER LIMITS.
- *
- * EXIT FILE REWOUND.
- * USER LIMITS SET IN *CMRC*.
- * 6/12 AND 8/12 ASCII PRINT FLAGS SET/CLEAR IN *CMSF*.
- *
- * USES CM - CM+4.
- *
- * MACROS NFA.
- PSD SUBR ENTRY/EXIT
- LDD F2+2 SET/CLEAR ASCII PRINT FILE FLAGS
- LPN 24
- SHN 1
- STM CMSF
- NFA FA,R READ FST INFORMATION
- CRD CM
- LDD CM+1 REWIND FILE
- STD CM+2
- LDN FSMS
- STD CM+3
- NFA FA,R STORE FST INFORMATION
- CWD CM
- LDD UL SET USER LIMITS
- STM CMRC
- LDD UL+1
- STM CMRC+1
- UJN PSDX RETURN
- RCB SPACE 4,15
- ** RCB - READ CODED BUFFER.
- *
- * ENTRY (A) = CM WORD LIMIT FOR LINE/CARD IMAGE.
- *
- * EXIT (A) = (CMLR) = LENGTH OF LINE/CARD IN BYTES.
- * (T2 - T6) = FIRST WORD NEXT LINE/CARD.
- * (CM - CM+4) = LAST WORD CURRENT LINE/CARD.
- * (OT - OT+1) UPDATED.
- * (T1) = ADDRESS + 1 OF LAST CHARACTER TRANSLATED.
- *
- * USES T1 - T7.
- *
- * CALLS MCC, RNL, SCN.
- RCB3 LDI T7 CHECK NEXT CHARACTER
- LPC 3777 IGNORE HIGH-ORDER BIT
- SBN 40
- MJN RCB4 IF INCORRECT CHARACTER
- SBK 177-40
- MJN RCB5 IF LEGAL CHARACTER
- RCB4 LDN 40 SUBSTITUTE BLANK
- STI T7
- LDN 43 SET INCORRECT CHARACTER IN LINE
- STM 1,DA
- RCB5 AOD T7 ADVANCE BUFFER ADDRESS
- LMD T1
- RCB6 NJN RCB3 IF NOT EOL
- * PSN (NON-IMPACT PRINTER)
- RCBA EQU RCB6
- RCB7 LDD OT READ NEXT WORD
- SHN 6
- ADD RA
- SHN 6
- ADD OT+1
- CRD T2
- LDD T1 SET BYTE COUNT FOR LINE/CARD IMAGE
- SBD DA
- STM CMLR
- RCB SUBR ENTRY/EXIT
- STD T3
- LDC 1S12 READ CODED LINE/CARD
- LMD DA
- RJM RNL
- LDD T1
- SBD T7
- ZJN RCB7 IF EMPTY LINE OR CARD
- LDM CMSF CHECK MODE OF FILE
- LPN 50
- ZJN RCB1 IF NOT ASCII FILE
- LPN 10
- NJN RCB6 IF 8/12 ASCII FILE
- STD T0 INITIALIZE ILLEGAL CHARACTER FLAG
- UJN RCB1.1 ENABLE 6/12 CONVERSION IN *MCC*
- * CONVERT LINE OR CARD IMAGE.
- RCB1 LDC ** DISABLE 6/12 CONVERSION IN *MCC*
- ORG *-1
- LOC MCCA
- UJN MCC4 SKIP 6/12 CONVERSION
- LOC *O
- RCB1.1 STM MCCA
- RJM SCN LOAD CONVERSION TABLE
- SOD T1 SET END OF DATA IN BUFFER
- STD T4
- ADN 1
- SBD DA SET END OF UNPACKED DATA
- SHN 1
- ADD DA
- STD T1
- SBN 1
- STD T2
- LDI T4 SAVE LAST CHARACTER FOR PUNCH DRIVER
- LPN 77
- STD T7
- RCB2 LDI T4 UNPACK DATA BYTE
- LPN 77
- RJM MCC MOVE AND CONVERT CHARACTER
- LDI T4
- SHN -6
- RJM MCC MOVE AND CONVERT CHARACTER
- SOD T4 DECREMENT DATA ADDRESS
- SBD DA
- PJN RCB2 IF NOT START OF BUFFER
- LDM CMSF
- LPN 40
- ZJN RCB2.3 IF NOT 6/12 ASCII
- LDD DA SET BUFFER INDEX
- STD T3
- RCB2.1 AOD T2
- SBD T1
- PJN RCB2.2 IF END OF DATA
- LDI T2 MOVE DATA BYTE
- STI T3
- AOD T3
- UJN RCB2.1 READ NEXT BYTE
- RCB2.2 LDD T3 SET NEW LWA+1
- STD T1
- LDD T0
- ZJN RCB2.3 IF NO ILLEGAL CHARACTERS IN LINE
- STM 1,DA FLAG ILLEGAL CHARACTER(S)
- RCB2.3 LJM RCB7 READ NEXT WORD
- RDB SPACE 4,10
- ** RDB - RELEASE DATA BUFFER.
- *
- * ENTRY (CMDB) = FWA+1 OF DATA BUFFER ASSIGNED.
- *
- * EXIT (A) = (CMDB) = 0.
- * (DB) = FWA OF DATA BUFFER RELEASED.
- * ((DB)) = 0.
- *
- * USES DB.
- RDB1 SBN 1
- STD DB
- LDN 0 RELEASE DATA BUFFER
- STI DB
- STM CMDB
- RDB SUBR ENTRY/EXIT
- LDM CMDB
- NJN RDB1 IF DATA BUFFER IS ASSIGNED
- UJN RDBX RETURN
- RNL SPACE 4,15
- ** RNL - READ NEXT LINE (CARD).
- *
- * ENTRY (A) BITS 0 - 11 = PP BUFFER ADDRESS.
- * BITS 12 - 17 = 0 IF BINARY READ.
- * = 1 IF CODED READ.
- * (T3) = NUMBER OF WORDS TO READ.
- * (CMBE) = NUMBER OF WORDS IN CENTRAL BUFFER.
- *
- * EXIT (T1) = END OF DATA IN PP BUFFER (CODED READ ONLY).
- * (T3) = ACTUAL WORD COUNT TO END OF LINE (CARD).
- * (T7) = PP BUFFER ADDRESS.
- *
- * USES T0 - T1, T3 - T7.
- *
- * CALLS AOP.
- RNL SUBR ENTRY/EXIT
- STM RNLB SET PP BUFFER ADDRESS
- STD T1
- STD T7
- SHN -14 SAVE BINARY / CODED READ FLAG
- STD T6
- LDM CMBE CHECK DATA IN CENTRAL BUFFER
- SBD T3
- PJN RNL1 IF SUFFICIENT DATA
- RAD T3
- RNL1 LDD T3 NUMBER OF WORDS TO READ
- STD T5
- LDD LM LIMIT - OUT
- SBD OT
- SHN 14
- ADD LM+1
- SBD OT+1
- STD T0 NUMBER OF WORDS FROM *OUT* TO *LIMIT*
- SBD T3
- PJN RNL2 IF NO WRAP AROUND
- LMC -0 NUMBER OF WORDS STARTING AT *FIRST*
- STD T4
- LDD T0 WORD COUNT FROM *OUT* TO *LIMIT*
- STD T5
- SHN 2
- ADD T5
- ADD T1 BUFFER ADDRESS FOR FIRST READ
- STM RNLA
- LDD FT READ WRAP AROUND
- SHN 6
- ADD RA
- SHN 6
- ADD FT+1
- CRM **,T4
- RNLA EQU *-1
- RNL2 LDD OT READ LINE
- SHN 6
- ADD RA
- SHN 6
- ADD OT+1
- CRM **,T5
- RNLB EQU *-1
- LDD T6
- ZJN RNL7 IF BINARY READ
- SOD T1
- LDN 0
- STD T4
- RNL3 LDN 5 SEARCH FOR EOL
- RAD T1
- AOD T4
- LMD T3
- ZJN RNL5 IF REQUESTED NUMBER OF WORDS CHECKED
- LDI T1
- NJN RNL3 IF NOT EOL
- RNL4 SOD T1
- RNL5 LDI T1
- ZJN RNL4 IF EOL
- AOD T1
- SBD T7
- PJN RNL6 IF NOT EMPTY LINE
- LDD T7
- STD T1
- RNL6 LDD T4
- STD T3
- RNL7 LDD T3 ADVANCE OUT POINTER
- RJM AOP
- LJM RNLX RETURN
- SCN SPACE 4,10
- ** SCN - SET CONVERSION TABLE.
- SCN SUBR ENTRY/EXIT
- LDM CMCT CHECK TABLE IN MEMORY
- LMM CTID
- ZJN SCNX IF TABLE LOADED
- LDD RA LOAD CONVERSION TABLE
- SHN 6
- ADN CTIR
- ADM CMCT
- CRM CTID,TL
- UJN SCNX RETURN
- SDM SPACE 4,10
- ** SDM - SEND DAYFILE MESSAGE.
- *
- * ENTRY (A) = MESSAGE CODE.
- * (T3) = MPARAM 1 (RETRIED ERRORS ONLY).
- * (FC) = MPARAM 3.
- * (SEE BUFFER POINT AREA DESCRIPTION IN
- * *COMSBIO* FOR *MPARAM* VALUES.)
- *
- * EXIT (A) = 0.
- *
- * USES T1, T2, T4, T5, CM - CM+4.
- *
- * MACROS NFA.
- SDM1 LDN ** SET BY *PRS*
- SDMA EQU *-1 PP NUMBER
- STD T4 (T4) = PP NUMBER
- LDD FC
- STD T5
- NFA BF,R READ MESSAGE CONTROL
- SDM2 ADN 1
- CRD CM
- LDD CM PRESERVE *I* DISPLAY
- STD T1
- NFA BF,R STORE MESSAGE PARAMETERS
- ADN 1
- CWD T1
- LDN 0
- SDM SUBR ENTRY/EXIT
- STM CMMR
- STD T2 STORE MESSAGE CODE
- SBN ORME
- PJN SDM1 IF NOT OPERATOR REQUEST
- LDM CMER
- SHN 6 ENTER REPEAT COUNT
- STD CM+4
- NFA BF,R STORE REPEAT COUNT
- CWD CM
- UJN SDM2 READ MESSAGE CONTROL
- SFA SPACE 4,10
- ** SFA - SET FET ADDRESS.
- *
- * ENTRY ((BI - BI+1)) = RELATIVE FET ADDRESS.
- *
- * EXIT (A) = FET ADDRESS.
- SFA SUBR ENTRY/EXIT
- LDI BI
- SHN 6
- ADD RA
- SHN 6
- ADM 1,BI
- UJN SFAX RETURN
- SOP SPACE 4,10
- ** SOP - STORE OUT POINTER.
- *
- * ENTRY (A) = ADDRESS OF VALUE TO BE PLACED IN POINTER.
- *
- * EXIT (A) = ADDRESS OF OUT POINTER.
- * (CM - CM+4) = OUT POINTER.
- *
- * USES T0, CM - CM+4.
- *
- * CALLS SFA.
- SOP SUBR ENTRY/EXIT
- ADC EQSB
- STD T0
- LDN ZERL CLEAR ASSEMBLY
- CRD CM
- LDI T0 GENERATE POINTER WORD
- STD CM+3
- AOD T0
- LDI T0
- STD CM+4
- RJM SFA STORE OUT POINTER
- ADN 3
- CWD CM
- UJN SOPX RETURN
- TOF SPACE 4,10
- ** TOF - TERMINATE OUTPUT FILE.
- *
- * USES BS+4, CM - CM+4.
- *
- * CALLS CLB, ECB, RDB, SFA.
- *
- * MACROS NFA.
- TOF NFA BF,R READ BUFFER POINT WORD
- CRD CM
- RJM RDB RELEASE DATA BUFFER
- SOM CMER
- MJN TOP IF REPEAT COUNT SATISFIED
- SHN 6
- STD CM+4
- NFA BF,R STORE ADJUSTED REPEAT COUNT
- CWD CM
- LDK ZERL
- CRD CM
- LDN 1 RESET BUFFER STATUS
- STD BS+4
- RJM SFA STORE BUFFER STATUS
- CWD BS
- ADN FPSN
- CWD CM CLEAR CURRENT RANDOM INDEX
- RJM ECB EMPTY CIRCULAR BUFFER
- LDD BI INITIALIZE BUFFER
- RJM CLB
- LJM MGR1 GO TO MANAGER
- TOP SPACE 4,10
- ** TOP - TERMINATE OPERATION.
- *
- * USES BR, IR+3, CM - CM+4, T6 - T7.
- *
- * CALLS CPS, MGR, RDB, REC, SFA.
- *
- * MACROS MONITOR, NFA.
- TOP LDN 60 *UNLOAD* FILE
- * *TOP1* IS A SECONDARY ENTRY POINT FOR *TOP*.
- TOP1 STM CMLR SAVE LAST REQUEST
- RJM RDB RELEASE DATA BUFFER
- AOD BR SET BUSY RETURN
- RJM MGR GO TO MANAGER
- RJM ** RELEASE EQUIPMENT
- TOPB EQU *-1 (SET BY *PRS*)
- * RJM /3CZ/REC
- * RJM /3CY/REC
- * *TOP2* IS A SECONDARY ENTRY POINT FOR *TOP*.
- TOP2 LDM CMLR ISSUE LAST REQUEST
- ZJN TOP4 IF NO REQUEST
- RJM CPS CALL *QAP*/*CIO*
- TOP3 RJM MGR GO TO MANAGER
- TOPA EQU *
- ZJN TOP2 IF REQUEST NOT ISSUED
- LDD BS+4
- LPN 1
- LMN 1
- NJN TOP3 IF REQUEST NOT COMPLETE
- * *TOP4* IS A SECONDARY ENTRY POINT FOR *TOP*.
- TOP4 LDN ZERL CLEAR BUFFER STATUS
- CRD CM-2
- RJM SFA SET FET ADDRESS
- CWD CM-2
- LDM CMEN SET EQUIPMENT NUMBER
- SHN -3
- STD CM+1
- NFA BF,R STORE BUFFER POINT WORD
- CWD CM-2
- SOD IR+3 DECREMENT ENTRY COUNT
- LDD RA
- SHN 6
- ADD IR+2
- CWD IR
- AOD SB DISABLE STATUS BLOCK UPDATE
- MONITOR DEQM
- * LDN 0 CLEAR BUFFER ASSIGNMENT
- STI BI
- STM 1,BI
- LJM PSE RETURN TO MANAGER
- WST SPACE 4,10
- ** WST - WRITE STATUS TO FET.
- *
- * CALLS SFA.
- WST SUBR ENTRY/EXIT
- RJM SFA
- ADN FPW2
- CWD F2
- UJN WSTX RETURN
- SPACE 4,10
- ** COMMON DATA BUFFER AREA.
- CBUF BSSZ BUFS*MEQD BUFFER ASSIGNMENT TABLE
- CBUFL BSS 0 LWA+1 OF BUFFER ASSIGNMENT TABLE
- EQSB SPACE 4,10
- ** EQSB - EQUIPMENT STATUS BUFFER.
- EQSB BSS 0 FWA OF DRIVER STATUS BLOCK
- EQSBL EQU EQSB+EDSBL*5 LWA+1 OF DRIVER STATUS BLOCK
- ZBA SPACE 4,15
- ** ZBA - ZERO DATA BUFFER ASSIGNMENT.
- *
- * ENTRY (T1) = FWA OF DATA BUFFERS.
- * (T2) = DATA BUFFER SIZE.
- * (T3) = LWA+1 OF DATA BUFFERS.
- *
- * EXIT (CTID) = 7777.
- * (MSD) = 0.
- * TO *MGR1*.
- *
- * NOTE THIS ROUTINE IS OVERLAYED BY *EQSB*.
- ZBA BSS 0 ENTRY
- ZBA1 LDN 0 CLEAR BUFFER ASSIGNMENT
- STI T1
- LDD T2 SET NEXT BUFFER
- RAD T1
- LMD T3
- NJN ZBA1 IF MORE TO CLEAR
- STM MSD CLEAR MASS STORAGE DESIGNATOR
- LCN 0 ENSURE INITIAL CONVERSION TABLE LOAD
- STM CTID
- LJM MGR1 EXIT TO MANAGER
- SPACE 4,10
- ** SUB-DRIVER OVERLAY AREA.
- *
- * NOTE OVERLAY HEADER IS OVERLAYED BY *EQSB*.
- OVLA EQU EQSBL-4 FWA OF SUBDRIVER OVERLAY AREA
- ERRNG OVLA-*-5 OVERLAY LOAD DESTROYS **
- TITLE DRIVER PRESET.
- PRS SPACE 4,20
- ** PRS - DRIVER PRESET.
- *
- * ENTRY (IR+4) = SUB-DRIVER NUMBER.
- *
- * EXIT (BI) = *CBUF*.
- * (TL) = CONVERSION TABLE LENGTH.
- *
- * ERROR *HNGM* MONITOR FUNCTION ISSUED. PP DROPPED AND EXIT
- * TO *PPR* WHEN *HNGM* REQUESTED CLEARED.
- *
- * CALLS EXR.
- *
- * MACROS MONITOR.
- PRS3 MONITOR HNGM HANG PP
- MONITOR DPPM
- LJM PPR EXIT TO PPR
- PRS BSS 0 ENTRY
- LDD IR+4
- SBN MXSD
- PJN PRS3 IF INVALID SUB-DRIVER
- LDK CHTP GET CHANNEL TABLE POINTER
- CRD CM
- LDD CM+3 SET CHANNEL TABLE ADDRESS
- STM PSEA
- LDD CM+2
- RAM PSEA-1
- LDN CTLN SET TABLE LENGTH
- STD TL
- LDN EDSBL SET EQUIPMENT STATUS BLOCK LENGTH
- STD BL
- STD SB
- LDC CBUF INITIALIZE BUFFER TABLE SERACH
- STD BI
- LDK IPRL CHECK SYSTEM DEFAULT KEYPUNCH MODE
- CRD CM
- LDD CM+2
- SHN 21-13
- PJN PRS1 IF DEFAULT IS O26
- LDN C9XD SET O29 CONVERSION MODE FOR CARD READER
- STM TDCM+CRDT
- PRS1 LDK MABL FETCH PP SPEED INDICATOR
- CRD CM
- LDD CM+4 SET TIMEOUT VALUE
- SHN 1
- NJN PRS2 IF NOT 1X PPS
- LDN 1
- PRS2 RAM MGRA
- LDN PPCP PRESET PP NUMBER
- CRD CM
- LDD IA
- SBD CM+4
- SHN -3
- RAM SDMA PP NUMBER FOR BML MESSAGE
- LDM TDBF,IR+4 SET FWA OF FIRST DATA BUFFER
- STM ADBC
- LDM TDBN,IR+4 SET NUMBER OF DATA BUFFERS
- RAM ADBD
- LDM TDBL,IR+4 SET LWA+1 OF DATA BUFFERS
- STM ADBB
- LDM TDBS,IR+4 SET DATA BUFFER SIZE
- STM ADBA
- LDM TREC,IR+4 SET RELEASE EQUIPMENT ADDRESS
- STM TOPB
- LDM TSDP,IR+4 SET SUB-DRIVER PROCESSOR ADDRESS
- STM MGRB
- LDC 1R3*10000 SET SUB-DRIVER OVERLAY NAME
- LMM TSDO,IR+4
- EXECUTE 3CZ,=
- EXECUTE 3CY,=
- RJM EXR EXECUTE SUB-DRIVER
- TDBF SPACE 4,10
- ** TDBF - TABLE OF FWA OF FIRST DATA BUFFER.
- *
- * INDEXED BY SUB-DRIVER TYPE.
- TDBF INDEX
- INDEX 0,/3CZ/DBUF
- INDEX 1,/3CY/DBUF
- INDEX MXSD
- TDBN SPACE 4,10
- ** TDBN - TABLE OF NUMBER OF DATA BUFFERS.
- *
- * INDEXED BY SUB-DRIVER TYPE.
- TDBN INDEX
- INDEX 0,/3CZ/NDBUF
- INDEX 1,/3CY/NDBUF
- INDEX MXSD
- TDBL SPACE 4,10
- ** TDBL - TABLE OF LWA+1 OF DATA BUFFERS.
- *
- * INDEXED BY SUB-DRIVER TYPE.
- TDBL INDEX
- INDEX 0,/3CZ/DBUFL
- INDEX 1,/3CY/DBUFL
- INDEX MXSD
- TDBS SPACE 4,10
- ** TDBS - TABLE OF DATA BUFFER SIZES.
- *
- * INDEXED BY SUB-DRIVER TYPE.
- TDBS INDEX
- INDEX 0,/3CZ/DBUFS
- INDEX 1,/3CY/DBUFS
- INDEX MXSD
- TREC SPACE 4,10
- ** TREC - TABLE OF RELEASE EQUIPMENT PROCESSORS.
- *
- * INDEXED BY SUB-DRIVER TYPE.
- TREC INDEX
- INDEX 0,/3CZ/REC
- INDEX 1,/3CY/REC
- INDEX MXSD
- TSDO SPACE 4,10
- ** TSDO - TABLE OF SUB-DRIVER OVERLAY NAMES.
- *
- * INDEXED BY SUB-DRIVER TYPE.
- TSDO INDEX
- INDEX 0,2RCZ
- INDEX 1,2RCY
- INDEX MXSD
- TSDP SPACE 4,10
- ** TSDP - TABLE OF SUB-DRIVER PROCESSOR ADDRESSES.
- *
- * INDEXED BY SUB-DRIVER TYPE.
- TSDP INDEX
- INDEX 0,/3CZ/SDP
- INDEX 1,/3CY/SDP
- INDEX MXSD
- XCD TTL 1CD/3CZ - BATCHIO COMBINED DRIVER.
- TITLE
- QUAL 3CZ
- IDENT 3CZ,XCDX
- *COMMENT 1CD - DRIVE *DCC*-CONNECTED DEVICES.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- 3CZ SPACE 4,10
- *** 1CD/3CZ - BATCHIO COMBINED DRIVER.
- *
- * THIS SUB-DRIVER OVERLAY CONTAINS DRIVERS TO ACCESS DEVICES
- * THAT ARE CONNECTED VIA A DATA CHANNEL CONVERTER (DCC).
- 3CZ SPACE 4,10
- ORG OVLA
- XCD SUBR ENTRY/EXIT
- CHTE CCEA
- LJM PRS PRESET
- TITLE 3555/512 - 580 DRIVER SECTION.
- LPD SPACE 4,10
- ** LPD - 3555/512 - 580 DRIVER.
- LPD RJM PSD PRESET DRIVER
- LPD1 LDC GBPF+2000 REQUEST BANNER PAGE GENERATION
- RJM CPS
- LPD2 RJM MGR GO TO MANAGER
- ZJN LPD1 IF REQUEST NOT ACCEPTED
- LDD BS+4 CHECK BUFFER STATUS
- LMC GBPF+1
- ZJN LPD4 IF OPERATION COMPLETE
- LMN 4
- ZJN LPD3 IF USER FORMS CONTROL ON PREVIOUS JOB
- LMC CECF&GBPF+4
- NJN LPD2 IF NOT PFC ERROR
- LJM TOP4 TERMINATE OPERATION
- * PHASE 1. LOAD BUFFER.
- LPD3 SCN 2 SET DRIVER HOLDING
- LMN 2
- STM CMHF
- * *LPD4* IS A SECONDARY ENTRY POINT FOR *LPD*.
- LPD4 LDN 1 SET BUSY RETURN
- STD BR
- RJM MGR GO TO MANAGER
- LDM CMHF
- NJN LPD3 IF HOLD INITIATED
- RJM COB CHECK OUTPUT BUFFER
- SBN DBUFW*2+1
- PJN LPD5 IF AT LEAST 1 LINE AND 1 WORD
- LDD BS+4
- LPN 20
- ZJN LPD4 IF NOT EOR/EOF/EOI
- LPD5 RJM ADB ASSIGN DATA BUFFER
- LDN 0
- STM LPFT CLEAR FORMAT TAPE AND PM MESSAGE FLAGS
- STD BR CLEAR BUSY RETURN
- LDM CMSF CHECK MODE OF FILE
- LPN 50
- ZJN LPD6 IF NOT 6/12 OR 8/12 ASCII PRINT FILE
- LDN DBUFW
- LPD6 ADN DBUFW READ CODED BUFFER
- RJM RCB
- NJN LPD8 IF NOT EMPTY LINE
- LPD7 LDN 40 SET SPACE CHARACTER
- STI T1
- AOD T1
- AOM CMLR ADVANCE BYTE COUNT FOR LINE
- LPD8 SBN 2
- MJN LPD7 IF NOT 2 CHARACTERS IN LINE
- LDM CMSF
- LPN 10
- NJN LPD9 IF 12 BIT ASCII PRINT FILE
- LPDA PSN
- * UJN LPD9 (SYSTEM IN 63 CHARACTER SET)
- LDM -1,T1 CHECK LAST CHARACTER IN LINE
- LMN 72
- NJN LPD9 IF NOT COLON
- LDN 40 REPLACE WITH BLANK
- STM -1,T1
- LPD9 SOM CMLR DEDUCT CARRIAGE CONTROL CHARACTER
- ADC -137D
- LPDB EQU *-1
- PJN LPD9 IF LINE TOO LONG
- LDD T2 SET FORMAT CONTROL FOR NEXT LINE
- STM LPFC
- LDD OT SAVE *OUT* POINTER
- STM LPOT
- LDD OT+1
- STM LPOT+1
- RJM MGR GO TO MANAGER
- * PHASE 2. PROCESS FORMAT CONTROL.
- LDM CMSF
- LPN 4
- NJN LPD10.2 IF SUPPRESS FLAG SET
- LDI DA CHECK FORMAT CHARACTER
- LPC 3777 REMOVE UPPER BIT
- STI DA
- LMN 40 ASCII BLANK
- ZJN LPD10.2 IF ASCII BLANK
- RJM WNB WAIT NOT BUSY
- RJM SPC PROCESS SPACE CONTROL
- RJM MGR GO TO MANAGER
- ZJN LPD10 IF NOT *Q*, *R*, *S*, *T* FORMAT CONTROL
- LJM LPD4 LOAD BUFFER
- LPD10 LDI DA CHECK FOR PM MESSAGE
- ADC -120
- NJN LPD10.2 IF NOT PM MESSAGE
- AOD DA CHECK NEXT CHARACTER
- LDI DA
- ADC -115
- NJN LPD10.1 IF NOT PM MESSAGE
- LDN 2 SET PM MESSAGE FLAG
- RAM LPFT
- LPD10.1 SOD DA RESTORE DATA ADDRESS
- LPD10.2 LDM CMBE
- ZJN LPD13 IF BUFFER EMPTY
- LDM CMSF
- LPN 10
- NJN LPD11 IF 12 BIT ASCII
- LDM LPFC CHECK FORMAT CHARACTER OF NEXT LINE
- SHN -6
- LMN 1R+
- UJN LPD12 CHECK FOR *+*
- LPD11 LDM LPFC
- LPC 3777 REMOVE UPPER BIT
- LMN 53 ASCII *+*
- LPD12 NJN LPD13 IF NOT *+*
- LDM LPFT CHECK FORMAT TAPE FLAG
- LPN 1
- NJN LPD13 IF FUNCTION .GE. 31
- RJM WNB WAIT NOT BUSY
- LDN 6 SUPPRESS SPACE AFTER PRINT
- RJM FCN
- * PHASE 3. PRINT LINE.
- LPD13 LDN ECLE CLEAR *I* DISPLAY
- RJM MSG
- AOD DA DO NOT PRINT FORMAT CHARACTER
- LDM LPPR
- ZJN LPD14 IF NO PRINT ERRORS
- LDC 0#5F STORE ASCII *_*
- STI DA
- LPD14 LDC 16S12+OAMI OUTPUT PRINT RECORD
- RJM XDR
- RJM RDB RELEASE DATA BUFFER
- LDC * SET REENTRY ADDRESS FOR FUNCTION REJECT
- STM CMPA
- LDN 22 SELECT END OF OPERATION INTERRUPT
- RJM FCN
- RJM MGR GO TO MANAGER
- * PHASE 4. PROCESS POST PRINT OPERATIONS.
- LDM LPFT CHECK FORMAT TAPE FLAG
- LPN 1
- ZJN LPD15 IF NOT SET
- RJM WNB WAIT NOT BUSY
- LDN 7 CONDITIONAL CLEAR FORMAT
- RJM FCN
- LPD15 LDD ST
- SHN -12 CHECK PRINT ERROR STATUS LINE
- LPN 1
- NJN LPR IF SET
- LDN PERI
- RJM CRV CHECK FOR RECOVERED ERROR
- LPD16 LDN LPOT STORE *OUT* POINTER
- RJM SOP
- AOM LPLP INCREMENT LINE COUNT
- SBM LPLL
- MJN LPD17 IF NOT END OF PAGE
- LDM LPLL CHECK USER LIMITS
- RJM CUL
- STM LPLP CLEAR LINE COUNT FOR PAGE
- LPD17 RJM PPM CHECK FOR PM MESSAGE
- LJM LPD4 CONTINUE PRINTING
- LPR SPACE 4,15
- ** LPR - PROCESS PRINT ERROR.
- *
- * USES CM - CM+4.
- *
- * CALLS MSG, PRE.
- LPR AOM CMEC ADVANCE ERROR COUNT
- LDD CP
- ADN SNSW CHECK ERROR REPORTING ENABLED
- CRD CM
- LDD CM+4 INTERROGATE SENSE SWITCH 1
- SHN 21-6
- MJN LPD16 IF ERROR REPORTING AND RETRYING DISABLED
- LDN PERI
- RJM PRE PROCESS RETRIED ERROR
- * *LPR1* IS A SECONDARY ENTRY POINT FOR *LPR*.
- LPR1 LDD CP CHECK ERROR STOP ENABLED
- ADN SNSW
- CRD CM
- LDD CM+4 INTERROGATE SENSE SWITCH 2
- SHN 21-7
- MJN LPR2 IF HOLDING ON ERRORS
- LJM LPD4 CONTINUE PRINTING
- LPR2 LDN EPRH *I* DISPLAY MESSAGE CODE
- * *LPR3* IS A SECONDARY ENTRY POINT FOR *LPR*.
- LPR3 RJM MSG ISSUE BUFFER POINT MESSAGE
- LDN 1
- LJM LPD3 SET DRIVER HOLDING
- LPE SPACE 4,10
- ** LPE - ERROR PROCESSOR.
- *
- * ENTRY (A) = EQUIPMENT STATUS FOLLOWING CONNECT.
- *
- * EXIT TO *PSE*.
- *
- * CALLS MSG.
- LPE LPN 10
- ZJN LPE1 IF NO PAPER FAULT
- LDN ENPA-ENRD
- LPE1 ADN ENRD *NOT READY*
- RJM MSG
- LJM PSE RETURN
- LPN SPACE 4,10
- ** LPN - PROCESS *END*.
- *
- * USES BS+4, CM - CM+4.
- *
- * CALLS SFA.
- *
- * MACROS NFA.
- LPN LDN 0 CLEAR HOLD FLAG
- STM CMHF
- LDM CMSF CHECK END FLAG
- LPN 2
- NJN LPN3 IF SET PREVIOUSLY
- LDN 2 SET END FLAG
- RAM CMSF
- NFA FA,R READ FST INFORMATION
- CRD CM
- LDD FP+1 RESET FILE STATUS
- ZJN LPN3 IF NO DAYFILE
- STD CM+2
- LDD FP+2
- STD CM+3
- NFA FA,R UPDATE FST INFORMATION
- CWD CM
- * *LPN1* IS A SECONDARY ENTRY POINT FOR *LPN*.
- LPN1 LDN 1 RESET BUFFER STATUS
- * *LPN2* IS A SECONDARY ENTRY POINT FOR *LPN*.
- LPN2 STD BS+4
- RJM SFA STORE BUFFER STATUS
- CWD BS
- LJM LPD4 RETURN TO MAIN DRIVER
- LPN3 UJN LEF1 CHECK ACCOUNTING PROCESSED
- LEF SPACE 4,10
- ** LEF - LIST END OF INFORMATION.
- *
- * USES BR, FC, T4.
- *
- * CALLS ACT, MGR, SDM.
- LEF LDD BS+4 CHECK BUFFER STATUS
- SHN 21-11
- PJN LPN1 IF NOT EOI
- LDD F2+2 CHECK ABORT FLAG
- LPN 2
- ZJN LEF1 IF NO ABORT FLAG
- LDN 0 CLEAR REPEAT COUNT
- STM CMER
- LJM LPN PROCESS *END*
- * *LEF1* IS A SECONDARY ENTRY POINT FOR *LEF*.
- LEF1 AOD BR
- LDM CMSF CHECK ACCOUNT FLAG
- LPN 1
- NJN LEF4 IF SET
- AOM CMSF SET ACCOUNT FLAG
- SCN 50 CLEAR 6/12 AND 8/12 ASCII PRINT FLAGS
- STM CMSF
- LEF2 RJM ACT PROCESS ACCOUNTING
- LEF3 RJM MGR GO TO MANAGER
- ZJN LEF2 IF REQUEST NOT ENTERED
- LDD BS+4
- SHN 21-0
- PJN LEF3 IF ACCOUNTING NOT COMPLETE
- LJM LPD4 PRINT LINE COUNT
- * *LEF4* IS A SECONDARY ENTRY POINT FOR *LEF*.
- LEF4 LDM CMEC
- ZJN LEF5 IF NO PRINT ERRORS
- STD FC (FC) = PRINT ERROR COUNT
- LDN EPEM *EQXXX NNNN PRINT ERRORS.*
- RJM SDM
- LEF5 LJM TOF TERMINATE OUTPUT FILE
- PPM SPACE 4,15
- ** PPM - PROCESS PM MESSAGE.
- *
- * EXIT TO CALLER IF NO *PM* MESSAGE OR USER DOES
- * NOT HAVE *CBIO* PRIVILEGES.
- * TO *LPR3* IF *PM* MESSAGE AND USER HAS
- * *CBIO* PRIVILEGES (HOLD FLAG SET).
- *
- * CALLS MSG.
- PPM SUBR ENTRY/EXIT
- LDM LPFT CHECK PM FLAG
- LPN 2
- ZJN PPMX IF NO PM MESSAGE
- LDD F2+2 CHECK USER *CBIO* PRIVILEGES
- LPN 1
- ZJN PPMX IF USER DOES NOT HAVE *CBIO* PRIVILEGES
- LDN EPMM
- LJM LPR3 ISSUE BUFFER POINT MESSAGE
- SPC SPACE 4,10
- ** SPC - PROCESS SPACE CONTROL.
- *
- * ENTRY ((DA)) = FORMAT CONTROL BYTE.
- *
- * EXIT (A) = 0 IF LINE TO BE PRINTED.
- *
- * USES BR, T4.
- *
- * CALLS CPS, CUL, FCN, MGR, RDB, SOP, WNB.
- SPC SUBR ENTRY/EXIT
- LDC TFCC-2 SET TABLE ADDRESS
- STD T4
- SPC1 LDN 2 ADVANCE TABLE
- RAD T4
- LDI T4
- ZJN SPCX IF END OF TABLE
- LMI DA
- NJN SPC1 IF NO MATCH
- * CHARGE FOR NUMBER OF LINES.
- LDI T4 CHECK FOR PAGE EJECT
- SBN 61 ASCII *1*
- ZJN SPC2 IF NORMAL PAGE EJECT
- SBN 126-61 ASCII *V* - ASCII *1*
- NJN SPC3 IF NOT USER FORMS CONTROL
- SPC2 LDM LPLL CHARGE FOR CURRENT PAGE
- RJM CUL
- STM LPLP CLEAR LINE COUNT FOR PAGE
- SPC3 LDI T4 CHECK FOR LAST LINE OF FORM
- SBN 62 ASCII *2*
- NJN SPC4 IF NOT ADVANCE TO LAST LINE OF FORM
- LDM LPLL
- SHN -1 CHARGE FOR LAST LINE OF FORM (*PLXL*/2)
- RAM LPLP
- SPC4 LDM 1,T4
- SHN 14
- RAM LPLP
- * ISSUE FORMAT FUNCTION.
- SHN -14
- ZJN SPC7 IF NO FORMAT SELECTION
- RJM FCN
- LDI T4 CHECK SELECTED FORMAT
- ADC -121 ASCII *Q*
- ZJN SPC5 IF *Q*
- SBN 122-121 ASCII *R* - ASCII *Q*
- NJN SPC8 IF NOT *R*
- SPC5 LDD F2+2 GET BIO FLAGS
- LPN 10 CHECK FOR FORCED 8 LPI
- ZJN SPC6 IF NOT FORCED 8 LPI
- RJM MGR GO TO MANAGER
- RJM WNB WAIT NOT BUSY
- LDN 10 SET 8 LPI
- RJM FCN ISSUE FUNCTION
- SPC6 LDN LPOT STORE *OUT* POINTER
- RJM SOP
- * LDN 1 SET NO PRINT ON RETURN
- SPC7 LJM SPCX RETURN
- SPC8 SBN 123-122 ASCII *S* - ASCII *R*
- ZJN SPC9 IF *S*
- SBN 124-123 ASCII *T* - ASCII *S*
- NJN SPC11 IF NOT *T*
- LDN LP8L-LP6L
- SPC9 STD T4
- LDM LP6L+EQSB,T4 SET LINE LIMIT FOR PAGE
- STM LPLL
- SPC10 UJN SPC5 SET NO PRINT ON RETURN
- SPC11 SBN 126-124 ASCII *V* - ASCII *T*
- ZJN SPC12 IF *V*
- LDM LPFT
- SCN 1
- STM LPFT
- LDD FC
- SBN 30+1
- SHN 0-21
- LMN 1 SET FORMAT TAPE FLAG
- RAM LPFT
- LDN 0
- UJN SPC7 RETURN
- SPC12 LDM 1,DA CHECK PFC ARRAY TO BE CHANGED
- SBN 66 ASCII *6*
- ZJN SPC13 IF 6 LPI
- SBN 70-66 ASCII *8* - ASCII *6*
- ZJN SPC13 IF 8 LPI
- SBN 103-70 ASCII *C* - ASCII *8*
- NJN SPC10 IF NOT 8 LPI ACROSS 2 LINES
- SPC13 AOD BR SET BUSY RETURN
- RJM RDB RELEASE DATA BUFFER
- SPC14 RJM MGR GO TO MANAGER
- LDD BS+4 CHECK BUFFER STATUS
- LPN 1
- ZJN SPC14 IF BUFFER BUSY
- LDD BS+4 SAVE BUFFER STATUS
- STM CMBS
- SPC15 LDC PFCF+2000 REQUEST RELOAD PFC MEMORY
- RJM CPS
- SPC16 RJM MGR GO TO MANAGER
- ZJN SPC15 IF REQUEST NOT ACCEPTED
- LDD BS+4 CHECK BUFFER STATUS
- LMC 1031
- NJN SPC17 IF NOT INVALID USER / ERROR IN PFC IMAGE
- LJM LPD4 CONTINUE / TERMINATE PRINT JOB
- SPC17 LMC PFCF&1030
- NJN SPC18 IF NOT PFC LOAD COMPLETE
- LDM CMBS
- LJM LPN2 RESET BUFFER STATUS AND CONTINUE
- SPC18 LMN CECF&PFCF
- NJN SPC16 IF NOT PFC ERROR
- LJM TOP4 TERMINATE OPERATION
- TFCC SPACE 4,10
- ** TFCC - TABLE OF FORMAT CONTROL CHARACTERS.
- *
- * TWO WORD ENTRY.
- *
- * PROGRAMMERS NOTE - THE *+* FORMAT CONTROL CHARACTER IS
- * PROCESSED IN THE MAIN DRIVER BECAUSE THERE IS NO
- * DIRECTLY EQUIVALENT CONTROLLER FUNCTION. CONTROLLER
- * FUNCTION 6 IS USED FOR BOTH */* AND *+*, AND THE
- * TIMING OF WHEN THE FUNCTION 6 IS SENT DETERMINES IF
- * SPACING IS SUPPRESSED BEFORE OR AFTER PRINTING.
- TFCC BSS 0
- FMTC C,3,16,36 SKIP TO CHANNEL 6 AFTER PRINT
- FMTC D,2,15,35 SKIP TO CHANNEL 5 AFTER PRINT
- FMTC E,2,14,34 SKIP TO CHANNEL 4 AFTER PRINT
- FMTC F,1,13,33 SKIP TO CHANNEL 3 AFTER PRINT
- FMTC G,1,12,32 SKIP TO CHANNEL 2 AFTER PRINT
- FMTC H,0,11,31 SKIP TO CHANNEL 1 AFTER PRINT
- FMTC Q,0,10,30 CLEAR AUTO EJECT
- FMTC R,0,5,5 SELECT AUTO EJECT
- FMTC S,0,0,11 CLEAR 8 LINES/INCH
- FMTC T,0,0,10 SET 8 LINES/INCH
- FMTC V,0,0,4 EJECT AND CHANGE PFC IMAGE
- FMTC 0,1,1,1 SPACE 1 LINE BEFORE PRINT
- FMTC 1,0,4,4 EJECT BEFORE PRINT
- FMTC 2,0,3,3 ADVANCE TO LAST LINE BEFORE PRINT
- FMTC 3,3,26,56 SKIP TO CHANNEL 6 BEFORE PRINT
- FMTC 4,2,25,55 SKIP TO CHANNEL 5 BEFORE PRINT
- FMTC 5,2,24,54 SKIP TO CHANNEL 4 BEFORE PRINT
- FMTC 6,1,23,53 SKIP TO CHANNEL 3 BEFORE PRINT
- FMTC 7,1,22,52 SKIP TO CHANNEL 2 BEFORE PRINT
- FMTC 8,0,21,51 SKIP TO CHANNEL 1 BEFORE PRINT
- * FMTC +,0,0,0 PROCESSED IN MAIN DRIVER
- FMTC -,2,2,2 SPACE 2 LINES BEFORE PRINT
- FMTC /,0,6,6 SUPPRESS SPACE AFTER PRINT
- CON 0
- TITLE 3446/415 DRIVER SECTION.
- CPD SPACE 4,10
- ** CPD - 3446/415 DRIVER.
- CPD RJM PSD PRESET DRIVER
- LDC 4000 SET NO COMPARISON MODE FOR HEADER CARD
- STM CPPM
- LDD FP+2 SET PUNCH FORMAT
- LPN 7
- STM CPFM
- LMN PHFR
- ZJN CPD1 IF O26 CONVERSION MODE
- LMN P9FR&PHFR
- NJN CPD1 IF NOT O29 CONVERSION
- LDN CDXA SET O29 CONVERSION MODE
- STM CMCT
- CPD1 LDC GLCF+1000 REQUEST LACE CARD GENERATION
- RJM CPS
- CPD2 RJM MGR GO TO MANAGER
- ZJN CPD1 IF REQUEST NOT ENTERED
- LDD BS+4 CHECK BUFFER STATUS
- LMC GLCF+1
- NJN CPD2 IF REQUEST NOT COMPLETE
- * *CPD3* IS A SECONDARY ENTRY POINT FOR *CPD*.
- *
- * ENTRY BUFFER NOT BUSY.
- CPD3 RJM MGR GO TO MANAGER
- RJM ADB ASSIGN DATA BUFFER
- LDN 0 CLEAR BUSY RETURN
- STD BR
- LDN 20 READ BINARY BUFFER
- STD T3
- RJM CDB CHECK DATA IN BUFFER
- LDD DA
- RJM RNL READ NEXT CARD
- RJM MGR GO TO MANAGER
- RJM PBC PUNCH BINARY CARD
- RJM ECB EMPTY CIRCULAR BUFFER
- LDD OT OUT1=OUT2=OUT
- STM CPO1
- STM CPO2
- LDD OT+1
- STM CPO1+1
- STM CPO2+1
- * *CPD4* IS A SECONDARY ENTRY POINT FOR *CPD*.
- CPD4 LDN 0 INITIALIZE CARD COUNT
- STM CPCN
- STM CPCN+1
- * *CPD5* IS A SECONDARY ENTRY POINT FOR *CPD*.
- CPD5 AOD BR SET BUSY RETURN
- RJM MGR GO TO MANAGER
- RJM ADB ASSIGN DATA BUFFER
- LDM CPO2 OUT = OUT2
- STD OT
- LDM CPO2+1
- STD OT+1
- LDM CPFM SELECT PUNCH PROCESSOR
- ZJN CPD6 IF DEFAULT
- LMN PHFR
- ZJN CPD6 IF PUNCH CODED 026
- LMN P9FR&PHFR
- NJN CPD7 IF NOT PUNCH CODED 029
- CPD6 LJM CPC PUNCH CODED
- CPD7 LMN PBFR&P9FR
- ZJN CPB1 IF PUNCH SYSTEM BINARY
- LMN P8FR&PBFR
- ZJN CPB IF PUNCH ABSOLUTE, 80 COLUMN BINARY
- LJM TOF TERMINATE OUTPUT FILE
- CPB SPACE 4,10
- ** CPB - PUNCH BINARY.
- *
- * USES BR, T1 - T3.
- *
- * CALLS CCI, CKC, COB, PBC, RNL, MGR.
- * PHASE 1. LOAD BUFFER AND GENERATE CHECKSUM.
- CPB LDN 1 ABSOLUTE 80 COLUMN BINARY
- CPB1 ADN 17
- STD T3
- RJM COB CHECK OUTPUT BUFFER
- SBD T3
- PJN CPB2 IF FULL CARD
- RAD T3
- SHN 2
- ADD T3
- ADD DA
- RJM CCI CLEAR CARD IMAGE
- LDD BS+4 CHECK LAST STATUS
- LPN 20
- NJN CPB2 IF EOR / EOF
- LJM MGR1 RETURN TO MANAGER
- CPB2 LDM CPFM SET DATA ADDRESS
- LMN P8FR
- ZJN CPB3 IF ABSOLUTE, 80 COLUMN BINARY
- LDN 2 SYSTEM BINARY
- CPB3 STD T2
- ADD DA READ NEXT CARD
- RJM RNL
- LDD OT OUT2 = OUT
- STM CPO2
- LDD OT+1
- STM CPO2+1
- LDD T2
- NJN CPB4 IF NOT ABSOLUTE BINARY
- LJM CPB6 CLEAR BUSY RETURN
- CPB4 LDD T3 SET WORD COUNT + BINARY INDICATOR
- SHN 6
- ADN 5
- STI DA
- LDD DA SET FIRST DATA ADDRESS
- ADN 2
- STD T1
- ADC 113
- STD T2
- LDN 0 CLEAR CHECKSUM
- STD T3
- CPB5 LDI T1 GENERATE CHECKSUM
- LMC 770000
- RAD T3
- AOD T1
- LMD T2
- NJN CPB5 IF NOT END OF DATA
- STM 115,DA CLEAR COLUMN 78
- SBD T3
- STM 1,DA STORE CHECKSUM
- AOM CPCN+1 STORE BINARY CARD NUMBER
- STM 117,DA
- SHN -14
- RAM CPCN
- STM 116,DA
- CPB6 LDN 0 CLEAR BUSY RETURN
- STD BR
- RJM MGR GO TO MANAGER
- * PHASE 2. PUNCH CARD.
- RJM PBC PUNCH BINARY CARD
- RJM MGR GO TO MANAGER
- * PHASE 3. CHECK PREVIOUS CARD.
- RJM CKC CHECK CARD
- PJN CPB8 IF NO COMPARE ERROR
- CPB7 LCN 2 DECREMENT BINARY CARD NUMBER
- RAM CPCN+1
- PJN CPB8 IF NO UNDERFLOW
- SOM CPCN
- AOM CPCN+1
- CPB8 LJM CPD5 LOOP FOR NEXT CARD
- CPC SPACE 4,10
- ** CPC - PUNCH CODED.
- *
- * USES BR, T1.
- *
- * CALLS AOP, CCI, CKC, COB, PBC, RCB, MGR.
- * PHASE 1. LOAD BUFFER.
- CPC RJM COB CHECK OUTPUT BUFFER
- SBN 11
- PJN CPC1 IF AT LEAST 1 CARD AND 1 WORD
- LDD BS+4 CHECK LAST STATUS
- LPN 20
- NJN CPC1 IF EOR / EOF
- LJM MGR1 RETURN TO MANAGER
- CPC1 LDN 10 READ CODED CARD
- RJM RCB
- ZJN CPC3 IF EMPTY CARD
- LMC 120
- NJN CPC2 IF CURRENT CARD NOT FULL
- LDM CMBE
- ZJN CPC2 IF BUFFER EMPTY
- LDD T2 CHECK NEXT WORD
- ADD T3
- ADD T4
- ADD T5
- ADD T6
- NJN CPC2 IF NOT END OF CARD
- LDN 1 ADVANCE *OUT* POINTER
- RJM AOP
- CPC2 LDD T7 CHECK LAST CHARACTER PROCESSED
- NJN CPC3 IF NOT PART OF EOL
- SOD T1
- CPC3 LDD T1 CLEAR REMAINDER OF CARD IMAGE
- RJM CCI
- LDD OT OUT2 = OUT
- STM CPO2
- LDD OT+1
- STM CPO2+1
- LDN 0 CLEAR BUSY RETURN
- STD BR
- RJM MGR GO TO MANAGER
- * PHASE 2. PUNCH CARD.
- RJM PBC PUNCH BINARY CARD
- RJM MGR GO TO MANAGER
- * PHASE 3. CHECK PREVIOUS CARD.
- RJM CKC CHECK CARD
- LJM CPD5 LOOP FOR NEXT CARD
- CPX SPACE 4,10
- ** CPX - PROCESS TRANSMISSION PARITY ERROR/INCOMPLETE
- * DATA TRANSFER.
- *
- * EXIT TO *MGR1*.
- CPX AOM CPPM SET PUNCH MODE TO OFFSET
- LJM MGR1 RETURN TO MANAGER
- CKC SPACE 4,10
- ** CKC - CHECK CARD.
- *
- * EXIT (A) .LT. 0 IF COMPARE ERROR.
- *
- * USES BR, CM - CM+4.
- *
- * CALLS CUL, FCN, MSG, SDM, SFA, SOP, WST.
- CKC5 LDM CPO2 OUT1 = OUT2
- STM CPO1
- LDM CPO2+1
- STM CPO1+1
- AOD BR SET BUSY RETURN
- RJM CUL CHECK USER LIMITS
- CKC SUBR ENTRY/EXIT
- LDM CPPM CHECK PUNCH MODE
- ZJN CKC3 IF COMPARE
- SHN 6
- MJN CKC1 IF NO COMPARE, NO OFFSET
- LDN 3 OFFSET CARD
- RJM FCN
- CKC1 LDN 0 SET PUNCH MODE TO COMPARE
- STM CPPM
- LDN ECLE CLEAR ERROR MESSAGE
- RJM MSG
- CKC2 UJN CKC5 SET OUT POINTERS
- CKC3 LDD ST CHECK STATUS
- SHN 7
- MJN CKC4 IF COMPARE ERROR
- LDN CPO1 STORE OUT POINTER
- RJM SOP
- UJN CKC2 SET OUT POINTERS
- CKC4 LDN 3 OFFSET CARD
- RJM FCN
- LDN ECPE *COMPARE ERROR.*
- RJM MSG
- RJM WST WRITE STATUS
- LDN ECEM *EQXXX COMPARE ERROR.*
- RJM SDM
- RJM SFA OUT2 = OUT
- ADN 3
- CRD CM
- LDD CM+3
- STM CPO2
- STM CPO1 OUT1 = OUT
- LDD CM+4
- STM CPO2+1
- STM CPO1+1
- AOM CPPM SET PUNCH MODE TO OFFSET
- AOM CMEC ADVANCE ERROR COUNT
- LCN 0
- LJM CKCX RETURN
- CCI SPACE 4,10
- ** CCI - CLEAR CARD IMAGE.
- *
- * ENTRY (A) = STARTING ADDRESS TO CLEAR TO.
- * (DA) = DATA BUFFER ADDRESS.
- *
- * EXIT (T1) = ADDRESS OF END OF CARD IMAGE.
- *
- * USES T0 - T1.
- CCI1 LDN 0 CLEAR BUFFER
- STI T0
- SOD T0 DECREMENT ADDRESS
- CCI2 SBD T1
- PJN CCI1 IF NOT START OF DATA
- CCI SUBR ENTRY/EXIT
- STD T1
- LDD DA
- ADC 121 SET LIMIT ADDRESS
- STD T0
- UJN CCI2 ENTER LOOP
- PBC SPACE 4,10
- ** PBC - PUNCH BINARY CARD.
- *
- * ENTRY (DA) = DATA ADDRESS.
- *
- * CALLS FCN, RDB, XDR.
- PBC SUBR ENTRY/EXIT
- LDC 120 SET BYTE COUNT FOR BINARY CARD
- STM CMLR
- LDN 1 SELECT BINARY
- RJM FCN
- LDC 16S12+OAMI OUTPUT PUNCH RECORD
- RJM XDR
- RJM RDB RELEASE DATA BUFFER
- UJN PBCX RETURN
- PED SPACE 4,10
- ** PED - PROCESS *END*.
- *
- * EXIT TO *TOF* IF *END* SET PREVIOUSLY.
- *
- * CALLS MGR.
- PED LDM CMSF CHECK END FLAG
- LPN 2
- ZJN PED1 IF NOT SET
- LJM TOF TERMINATE OUTPUT FILE
- PED1 LDN 2 SET END FLAG
- RAM CMSF
- RJM MGR GO TO MANAGER
- * LJM PEF PUNCH EOF
- PEF SPACE 4,10
- ** PEF - PUNCH END OF FILE.
- *
- * USES BR.
- *
- * CALLS ACT, ADB, CCI, FCN, MGR, PBC.
- PEF RJM ADB ASSIGN DATA BUFFER
- RJM CCI CLEAR CARD IMAGE
- LDD BS+4 CHECK BUFFER STATUS
- SHN 21-11
- MJN PEF2 IF EOI
- LDN 15
- LJM PER1 SET EOF INDICATORS
- PEF2 LDN 17 SET EOI INDICATORS
- STI DA
- STM 117,DA
- LDN 0 CLEAR BUSY RETURN
- STD BR
- LDM CMEC ENTER ERROR COUNT
- STM 47,DA
- RJM MGR GO TO MANAGER
- RJM PBC PUNCH BINARY CARD
- RJM MGR GO TO MANAGER
- LDN 3 OFFSET CARD
- RJM FCN
- RJM MGR GO TO MANAGER
- LDN 4 GATE LAST CARD
- RJM FCN
- RJM MGR GO TO MANAGER
- LDN 3 OFFSET EOI
- RJM FCN
- AOD BR SET BUSY RETURN
- PEF3 RJM ACT PROCESS ACCOUNTING
- PEF4 RJM MGR GO TO MANAGER
- ZJN PEF3 IF REQUEST NOT ENTERED
- LDD BS+4
- SHN 21-0
- PJN PEF4 IF ACCOUNTING NOT COMPLETE
- LJM TOF TERMINATE OUTPUT FILE
- PER SPACE 4,10
- ** PER - PUNCH END OF RECORD.
- *
- * USES BR, BS+4.
- *
- * CALLS CCI, CKC, FCN, MGR, PBC, SFA.
- PER LDD DA CLEAR CARD IMAGE
- RJM CCI
- LDN 7 SET EOR INDICATOR
- PER1 STI DA
- STM 117,DA
- LDN 0 CLEAR BUSY RETURN
- STD BR
- RJM MGR GO TO MANAGER
- LDM CPPM
- ZJN PER2 IF NO OFFSET
- LDN 3 OFFSET CARD
- RJM FCN
- RJM MGR GO TO MANAGER
- PER2 RJM PBC PUNCH BINARY CARD
- RJM MGR GO TO MANAGER
- RJM CKC CHECK CARD
- PJN PER3 IF NO COMPARE ERROR ON PREVIOUS CARD
- LJM CPB7 REPUNCH CARD IN ERROR
- PER3 LDN 1 CLEAR EOR/EOF
- STD BS+4
- RJM SFA STORE BUFFER STATUS
- CWD BS
- AOM CPPM SELECT OFFSET
- LJM CPD4 EXIT TO DRIVER
- CPE SPACE 4,10
- ** CPE - ERROR PROCESSOR.
- *
- * ENTRY (A) = EQUIPMENT STATUS FOLLOWING CONNECT.
- *
- * EXIT TO *PSE*.
- *
- * CALLS MSG, SDM, WST.
- CPE2 LDN ENRD *NOT READY*
- CPE3 RJM MSG SET BUFFER POINT MESSAGE
- LJM PSE RETURN
- CPE SHN 21-6
- PJN CPE2 IF NO *FEED FAILURE*
- LDM CPES
- NJN CPE1 IF NOT FIRST FAILURE
- AOM CPES
- RJM WST WRITE STATUS
- LDN EFFM *EQXXX FEED FAILURE.*
- RJM SDM
- CPE1 LDN EFED *FEED FAILURE.*
- UJN CPE3 SET BUFFER POINT MESSAGE
- TITLE 3447/405 DRIVER SECTION.
- CRD SPACE 4,10
- ** CRD - 3447/405 DRIVER.
- CRD LDN 0 CLEAR BINARY CARD SEQUENCE ERROR
- STD FP+1
- AOM CRRC INITIALIZE LOGICAL RECORD COUNT
- STM CRSN INITIALIZE CARD COUNT IN RECORD
- LDC 120 SET RECORD LENGTH
- STM CMLR
- RJM ECB EMPTY CIRCULAR BUFFER
- * *CRD1* IS A SECONDARY ENTRY POINT FOR *CRD*.
- CRD1 LDN 0
- STD BR
- RJM MGR GO TO MANAGER
- * *CRD2* IS A SECONDARY ENTRY POINT FOR *CRD*.
- *
- * PHASE 1. CHECK MODE OF CARD.
- CRD2 RJM CIB CHECK INPUT BUFFER
- SBN 20
- MJN CRD1 IF NOT ROOM FOR 1 CARD
- LDN 0
- STM CRBE
- LDN ECLE CLEAR ERROR MESSAGE
- RJM MSG
- LDD ST CHECK CARD STATUS
- SHN 21-12
- PJN CRD3 IF NO ERROR
- RJM WST WRITE STATUS
- LDN ECEM *EQXXX COMPARE ERROR.*
- RJM SDM ISSUE ERROR LOG MESSAGE
- RJM EBF EMPTY BUFFER
- LJM MGR1 RETURN TO MANAGER
- CRD3 RJM ADB ASSIGN DATA BUFFER
- LDN 1 NEGATE BCD CONVERSION
- RJM FCN
- LDM CRLI SET DATA ADDRESS
- RAD DA
- LDC 15S12+IAMI INPUT CARD
- RJM XDR
- AOD BR SET BUSY RETURN
- RJM MGR GO TO MANAGER
- LDM CRLI
- NJN CRD4 IF LITERAL INPUT
- LDI DA CHECK FOR BINARY CARD
- LPN 5
- LMN 5
- NJN CRC IF NOT BINARY CARD
- LJM CRB PROCESS BINARY CARD
- CRD4 LJM CRL PROCESS LITERAL INPUT
- CRC SPACE 4,10
- ** CRC - PROCESS CODED CARD.
- *
- * USES T1 - T3.
- *
- * CALLS CHD, CKM, MGR, SCN, WBB.
- * PHASE 2. CONVERT TO DISPLAY CODE AND DELETE TRAILING SPACES.
- CRC LDD DA SET DATA ADDRESS OF BINARY INPUT
- STD T1
- STD T2 SET LAST NON-SPACE ADDRESS
- STD T3 SET DATA ADDRESS FOR STORING DISPLAY CODE
- ADN 120/2 SET END OF DISPLAY CODE IN BUFFER
- STD T6
- LDM CRFR CHECK JOB CARD FOR KEYPUNCH MODE
- NJN CRC1 IF NOT JOB CARD
- RJM CKM CHECK KEYPUNCH MODE
- CRC1 RJM SCN SET CONVERSION TABLE
- RJM CHD CONVERT HOLLERITH DATA
- LDI T2 GET LAST BYTE TRANSLATED
- LPN 77 CHECK LAST CHARACTER
- NJN CRC2 IF NOT 00 CHARACTER
- AOD T2 RETAIN 00 CHARACTER WITH SPACE PADDING
- LDC 2R
- STI T2
- CRC2 AOD T2 ENSURE END OF LINE
- STM CRCA
- LDN ZERL GET ZEROED CM WORD
- CRM **,ON
- CRCA EQU *-1
- AOD T2 CALCULATE BYTE COUNT + OFFSET (1)
- SBD DA
- STD T1 CALCULATE WORD COUNT ( = BYTE COUNT/5)
- SHN -3 BYTE COUNT/8
- ADD T1 BYTE COUNT/8 + BYTE COUNT
- SHN -1 (BYTE COUNT/8 + BYTE COUNT)/2
- ADD T1 (BYTE COUNT/8 + BYTE COUNT)/2 + BYTE COUNT
- SHN -3 DIVIDE BY 8
- ADN 1 ADD IN END OF LINE LENGTH (1)
- RJM MGR GO TO MANAGER
- STD T1 SET WORD COUNT
- * PHASE 3. DUMP BUFFER.
- LDD DA WRITE BINARY BUFFER
- RJM WBB
- LJM CRD5 GO TO PHASE 4
- CRB SPACE 4,10
- ** CRB - PROCESS BINARY CARD.
- *
- * USES BR, T1 - T4.
- *
- * CALLS EBF, PCE, MGR, MSG.
- * PHASE 2. PROCESS EOR AND EOF, AND CHECK CHECKSUM.
- CRB LDD DA SET DATA ADDRESS
- STD T1
- LDI T1 CHECK FIRST WORD
- LPN 37
- LMN 5
- ZJN CRB1 IF BINARY DATA CARD
- LJM CRF PROCESS SPECIAL FORM
- CRB1 LDI T1 SET WORD COUNT
- SHN -6
- STD T4
- SHN 2 SET BYTE LIMIT
- ADD T4
- ZJN CRB5 IF ZERO WORD COUNT
- ADD DA
- ADN 2
- STD T2
- LDI T1
- LPN 40
- STD T3 CLEAR CHECKSUM
- NJN CRB3 IF CORRECTION PUNCH
- AOD T1 COMPUTE CHECKSUM
- CRB2 LDI T1
- LMC 770000
- RAD T3
- AOD T1
- LMD T2
- NJN CRB2 IF NOT END OF BUFFER
- LDD T3
- NJN CRB5 IF ERROR
- CRB3 LDM CRSN CHECK BINARY SEQUENCE ERROR
- LMM 117,DA
- NJN CRB8 IF SEQUENCE ERROR
- CRB4 LDD T4 SET WORD COUNT
- STI DA
- RJM MGR GO TO MANAGER
- * PHASE 3. DUMP BUFFER.
- LDI DA SET WORD COUNT
- STD T1
- LJM CRL9 WRITE BINARY BUFFER
- * *CRB5* IS A SECONDARY ENTRY POINT FOR *CRB*.
- *
- * PROCESS BINARY CHECKSUM / TRANSMISSION ERRORS.
- CRB5 LDN 0 CLEAR BUSY RETURN
- STD BR
- LDN ERCB *RE-READ 3 CARDS.*
- RJM MSG
- CRB6 RJM MGR GO TO MANAGER
- LDD ST
- LPN 40
- ZJN CRB6 IF INPUT TRAY NOT EMPTY
- RJM EBF EMPTY BUFFER
- LDN 1 SET BINARY CARD ERROR FLAG
- STM CRBE
- CRB7 RJM MGR GO TO MANAGER
- UJN CRB7 WAIT FOR *NOT READY*
- * PROCESS CARD OUT OF SEQUENCE ERROR.
- CRB8 RJM PCE PROCESS CARD ERROR
- LDM 117,DA ALIGN SEQUENCE CHECK
- STM CRSN
- LJM CRB4 RETURN TO MAIN LOOP
- CRL SPACE 4,10
- ** CRL - PROCESS LITERAL INPUT.
- *
- * USES T1 - T3.
- *
- * CALLS MGR, WBB.
- * PHASE 2. CHECK FOR END OF LITERAL INPUT.
- CRL LDM 2,DA CHECK FOR EOI
- LMN 17
- NJN CRL5 IF NOT EOI
- LDD DA CHECK COLUMNS 2 THROUGH 79
- ADN 2+1
- STD T1
- ADN 47-1
- STD T2
- ADN 117-47
- STD T3
- CRL1 LDI T1
- NJN CRL5 IF NOT EOI CARD
- AOD T1
- LMD T2
- NJN CRL2 IF NOT COLUMN 40
- AOD T1 IGNORE COLUMN 40
- CRL2 LDD T1
- LMD T3
- NJN CRL1 IF MORE COLUMNS TO CHECK
- LDI T1 CHECK COLUMN 40
- NJN CRL3 IF COLUMN 80 NOT BLANK
- LDI T2 CHECK COLUMN 40
- UJN CRL4 TEST FOR COLUMN 40 NON BLANK
- CRL3 LMN 17
- CRL4 NJN CRL5 IF NOT EOI
- STM CRLI CLEAR LITERAL INPUT FLAG
- LDN 17 SET EOI INDICATOR
- STI DA
- LJM RER PROCESS EOI
- CRL5 LDM 2,DA CHECK FOR FORMAT CHANGE
- LMN 25
- NJN CRL7 IF NOT FORMAT CHANGE
- LDM 3,DA
- LMN 77
- NJN CRL8 IF NOT LITERAL INPUT FLAG
- STD T3 COMPUTE CHECKSUM
- LDD DA
- ADN 2
- STD T1
- ADC 120
- STD T2
- CRL6 LDD T3
- LMI T1
- SHN 1
- STD T3
- SHN -14
- RAD T3
- AOD T1
- LMD T2
- NJN CRL6 IF NOT END OF CARD
- LDD T3 COMPARE CHECKSUM
- LMM CRLC
- CRL7 NJN CRL8 IF NOT IDENTICAL CHECKSUM
- STM CRLI CLEAR LITERAL INPUT FLAG
- LJM CRD1 GO TO PHASE 1
- * PHASE 3. DUMP BUFFER.
- CRL8 RJM MGR GO TO MANAGER
- LDN 20 SET WORD COUNT
- STD T1
- * *CRL9* IS A SECONDARY ENTRY POINT FOR *CRL*.
- CRL9 LDD DA WRITE BINARY BUFFER
- ADN 2
- RJM WBB
- * LJM CRD5 GO TO PHASE 4
- CRD5 SPACE 4,10
- * *CRD5* IS A SECONDARY ENTRY POINT FOR *CRD*.
- *
- * PHASE 4. STORE IN AND UPDATE RECORD COUNT.
- CRD5 RJM RDB RELEASE DATA BUFFER
- AOM CRSN ADVANCE CARD COUNT
- LDN ZERL
- CRD CM
- LDD IN
- STD CM+3
- LDD IN+1
- STD CM+4
- RJM SFA SET FET ADDRESS
- ADN 2
- CWD CM
- LDM CRFR
- NJN CRD6 IF NOT FIRST CARD
- AOM CRFR ADVANCE FIRST RECORD FLAG
- CRD6 AOM CMRC+1 INCREMENT CARD COUNT
- SHN -14
- RAM CMRC
- LJM CRD1 LOOP TO PHASE 1
- CHD SPACE 4,50
- ** CHD - CONVERT HOLLERITH DATA.
- *
- * ENTRY (DA) = (T1) = (T2) = (T3) = BUFFER ADDRESS.
- * (T6) = END OF DISPLAY CODE BUFFER ADDRESS.
- *
- * EXIT (T2) = ADDRESS OF LAST NON-BLANK CHARACTER PAIR.
- *
- * USES T1 - T5.
- *
- * CALLS PCE.
- CHD18 RJM PCE PROCESS CARD ERROR
- CHD19 LDN 1R SET BLANK CHARACTER
- CHD20 STD T4 SAVE DISPLAY CODE CHARACTER
- AOD T1 ADVANCE BUFFER ADDRESS
- SBD DA
- LPN 1
- ZJN CHD21 IF PACKING LOWER CHARACTER
- LDD T4 SET UPPER CHARACTER IN BYTE
- SHN 6
- STI T3
- UJN CHD1 PROCESS NEXT COLUMN
- CHD21 LDD T4 SET LOWER CHARACTER IN BYTE
- RAI T3
- LMC 2R
- ZJN CHD22 IF BLANK CHARACTER PAIR
- LDD T3 ADVANCE LAST NON-BLANK CHARACTER ADDRESS
- STD T2
- CHD22 AOD T3 ADVANCE ADDRESS FOR DISPLAY CODE
- LMD T6
- NJN CHD1 IF NOT END OF CARD IMAGE
- CHD SUBR ENTRY/EXIT
- CHD1 LDI T1 CHECK NEXT COLUMN
- ZJN CHD19 IF BLANK CHARACTER
- * EVALUATE 1, 8, AND 9 PUNCHES.
- LPC 403
- ZJN CHD5 IF NO 1, 8, OR 9 PUNCH
- SBN 1
- ZJN CHD2 IF 9 PUNCH ONLY
- SBN 1
- ZJN CHD4 IF 8 PUNCH
- ADC -376
- NJN CHD3 IF COMBINED PUNCHES (ILLEGAL)
- LCN 8D
- CHD2 ADN 9D SET VALUE FOR 9 PUNCH
- STD T5
- LDI T1 CHECK FOR PUNCHES 2 THROUGH 8
- LPC 376
- ZJN CHD12 IF NO PUNCHES 2 THROUGH 8
- CHD3 LJM CHD18 CONVERT ILLEGAL COMBINATION TO BLANK
- CHD4 LDN 8D SET VALUE FOR 8 PUNCH
- CHD5 STD T5
- * EVALUATE PUNCHES 2 THROUGH 7.
- LDI T1
- SHN -2
- LPN 77
- ZJN CHD12 IF NO PUNCHES 2 THROUGH 7
- SBN 1
- ZJN CHD7 IF 7 PUNCH ONLY
- SBN 1
- ZJN CHD8 IF 6 PUNCH ONLY
- SBN 2
- ZJN CHD9 IF 5 PUNCH ONLY
- SBN 4
- ZJN CHD10 IF 4 PUNCH ONLY
- SBN 10
- ZJN CHD11 IF 3 PUNCH ONLY
- CHD6 SBN 20
- NJN CHD3 IF ILLEGAL PUNCH COMBINATION
- LCN 7-2 PRESET 2 PUNCH CONVERSION
- CHD7 ADN 1
- CHD8 ADN 1
- CHD9 ADN 1
- CHD10 ADN 1
- CHD11 ADN 3
- RAD T5
- * EVALUATE ZONE PUNCHES.
- CHD12 LDI T1 ISOLATE ZONE PUNCHES
- SHN -9D
- SBN 6
- PJN CHD6 IF ILLEGAL COMBINATION
- ADN 1
- ZJN CHD15 IF + 0 COMBINATION
- ADN 1
- ZJN CHD13 IF + PUNCH ONLY
- ADN 1
- ZJN CHD17 IF - 0 COMBINATION
- CHD13 ADN 3
- SHN 4
- CHD14 RAD T5
- LDM CTBL,T5 CONVERT CHARACTER
- LJM CHD20 ASSEMBLE CARD IMAGE IN DISPLAY CODE
- CHD15 LDD T5
- CHD16 NJN CHD6 IF ILLEGAL PUNCH COMBINATION
- LDN 72
- UJN CHD14 ASSEMBLE CARD IMAGE
- CHD17 LDD T5
- NJN CHD16 IF ILLEGAL PUNCH COMBINATION
- LDN 52
- UJN CHD14 ASSEMBLE CARD IMAGE
- CKM SPACE 4,10
- ** CKM - CHECK KEYPUNCH MODE CHANGE.
- *
- * ENTRY (DA) = BUFFER ADDRESS OF CARD TO BE CHECKED.
- *
- * EXIT (CMCT) = NEW CONVERSION TABLE INDEX.
- CKM SUBR ENTRY/EXIT
- LDM 116,DA EXAMINE COLUMN 79
- LMC 200
- NJN CKMX IF NOT *2*
- LDM 117,DA EXAMINE COLUMN 80
- LMN 10
- ZJN CKM1 IF *6*
- LMN 1&10
- NJN CKMX IF NOT *9*
- LDN C9XD&C6XD USE O29 CONVERSION TABLE INDEX
- CKM1 LMN C6XD USE O26 CONVERSION TABLE INDEX
- STM CMCT
- UJN CKMX RETURN
- CRE SPACE 4,10
- ** CRE - NOT READY PROCESSOR.
- *
- * ENTRY (A) = EQUIPMENT STATUS FOLLOWING CONNECT.
- *
- * EXIT TO *PSE*.
- *
- * CALLS MSG.
- CRE1 LDN ENRD *NOT READY*
- CRE2 RJM MSG
- LDM CRBE
- ZJN CRE3 IF ERROR FLAG NOT SET
- LDC CRD2
- STM CMPA SET PHASE 1
- CRE3 LJM PSE RETURN
- CRE SHN 21-12
- PJN CRE1 IF NO COMPARE ERROR
- LDN ERCA *RE-RD 1 CD. COMPARE ERROR.*
- UJN CRE2 SET BUFFER POINT MESSAGE
- CRF SPACE 4,10
- ** CRF - PROCESS SPECIAL FORM.
- *
- * USES T1 - T3.
- CRF LDI DA CHECK FIRST WORD
- LMN 25
- ZJN CRF1 IF CONVERSION CHANGE
- LJM RER PROCESS END OF RECORD
- CRF1 LDM 1,DA CHECK FORMAT REQUEST
- ZJN CRF2 IF O26 CONVERSION
- LMN 1
- NJN CRF4 IF NOT O29
- LDN C9XD&C6XD
- CRF2 LMN C6XD SET CONVERSION MODE
- STM CMCT
- CRF3 LJM CRD1 GO TO PHASE 1
- CRF4 LMN 77&1
- NJN CRF3 IF UNKNOWN CONVERSION
- STD T3
- LDN 2 SET LITERAL INPUT FLAG
- STM CRLI
- LDD DA
- STD T1
- ADC 120 COMPUTE CHECKSUM
- STD T2
- CRF5 LDD T3
- LMI T1
- SHN 1
- STD T3
- SHN -14
- RAD T3
- AOD T1
- LMD T2
- NJN CRF5 IF NOT END OF CARD
- LDD T3
- STM CRLC STORE CHECKSUM
- UJN CRF3 GO TO PHASE 1
- EBF SPACE 4,10
- ** EBF - EMPTY BUFFER.
- *
- * EXIT TO *XDR1* IF CHANNEL HANGS EMPTY.
- *
- * USES FC, T3.
- *
- * CALLS IFN, SDM.
- EBF2 IAN CH+40 INITIATE BUFFER FLUSH
- DCN CH+40
- CFM EBFX,CH IF CHANNEL ERROR FLAG CLEAR
- LDN 0
- STD T3
- LDD T5 SAVE FUNCTION CODE FOR ERROR MESSAGE
- STD FC
- LDK ECRE *EQXXX CHANNEL PARITY ERROR.*
- RJM SDM SEND DAYFILE MESSAGE
- EBF SUBR ENTRY/EXIT
- LDN 14 INPUT TO EOR
- RJM IFN ISSUE FUNCTION
- LDN 77 DELAY FOR BYTE TRANSMISSION FROM READER
- EBF1 FJM EBF2,CH IF CHANNEL NOT HUNG EMPTY
- SBN 1
- NJN EBF1 IF DELAY NOT EXCEEDED
- DCN CH+40
- LDN ERRL-1 FORCE EQUIPMENT TURN OFF
- STM CMDR
- LDC 120 SET BYTES REMAINING COUNT
- LJM XDR1 PROCESS INCOMPLETE TRANSFER ERROR
- PCE SPACE 4,15
- ** PCE - PROCESS CARD ERROR.
- *
- * ENTRY (T3) = 0 IF BINARY CARD SEQUENCE ERROR.
- * .NE. 0 IF ILLEGAL HOLLERITH PUNCH DETECTED.
- * (BA - BA+1) = ABSOLUTE FET ADDRESS.
- * (FP - FP+4) = FILE PARAMETER WORD (FET+5).
- *
- * EXIT ERROR STATUS STORED IN (FET+5).
- *
- * USES FP+1 - FP+2.
- *
- * CALLS SFA.
- PCE SUBR ENTRY/EXIT
- LDD FP+1
- NJN PCEX IF PREVIOUS ERROR
- LDM CRSN SET CARD NUMBER
- STD FP+1
- LDD T3
- ZJN PCE1 IF BINARY CARD ERROR
- LDC 4000 FLAG ILLEGAL HOLLERITH CODE
- PCE1 LMM CRRC SET RECORD NUMBER
- STD FP+2
- RJM SFA STORE FILE PARAMETER WORD
- ADN 5
- CWD FP
- UJN PCEX RETURN
- RER SPACE 4,10
- ** RER - PROCESS END OF RECORD.
- *
- * USES BS+4, T2.
- *
- * CALLS ACT, CKM, CLB, CON, CPS, MGR, RDB, SFA.
- RER LDM CRFR
- NJN RER1 IF NOT FIRST CARD
- LJM RER6 SKIP EMPTY FILE
- RER1 LDI DA REQUEST WRITE
- LPN 10
- LMC WRIF+1000
- STD T2
- LDD FA
- ZJN RER2 IF FIRST WRITE
- LDC WRIF+1000&24
- RER2 LMD T2 SET REQUEST
- RJM CPS
- RER3 RJM MGR GO TO MANAGER
- ZJN RER1 IF REQUEST NOT ENTERED
- LDD BS+4 CHECK OPERATION
- LPN 21
- LMN 21
- NJN RER3 IF REQUEST NOT COMPLETE
- LDI DA CHECK CARD
- LPN 37
- LMN 17
- ZJN RER4 IF EOI
- RJM CKM CHECK KEYPUNCH MODE
- AOM CRRC BUMP LOGICAL RECORD COUNT
- LDN 1
- STM CRSN RESET SEQUENCE ERROR COMPARITIVE NUMBER
- STD BS+4 CLEAR LAST OPERATION
- RJM SFA
- CWD BS
- LJM CRD1 LOOP TO PHASE 1
- * PROCESS EOI.
- RER4 RJM ACT PROCESS ACCOUNTING
- RER5 RJM MGR GO TO MANAGER
- ZJN RER4 IF REQUEST NOT ENTERED
- LDD BS+4 WAIT ACCOUNTING COMPLETE
- LMC 1031
- NJN RER5 IF ACCOUNTING NOT COMPLETE
- RER6 RJM RDB RELEASE DATA BUFFER
- LDC * SET RETURN FROM *WNB*
- STM CMPA
- RJM CON CONNECT EQUIPMENT
- NJN RER7 IF CONNECT REJECT
- LDD ST
- LPN 1
- ZJN RER7 IF NOT READY
- RJM CLB
- LJM MGR1 RETURN TO DRIVER VIA MANAGER
- RER7 LDN 0 DROP EQUIPMENT
- LJM TOP1 TERMINATE OPERATION
- TITLE DRIVER SUBROUTINES.
- CON SPACE 4,15
- ** CON - CONNECT EQUIPMENT.
- *
- * EXIT (A) .NE. 0 IF FUNCTION REJECT.
- * (FC) = CONNECT CODE.
- * (ST) = EQUIPMENT STATUS.
- * EXITS TO *FCN2* IF FUNCTION TIMEOUT.
- *
- * USES FC, ST, T1 - T3.
- *
- * CALLS CCE, FCN, IFN, STS, WNB.
- *
- * MACROS DCHAN, RCHAN.
- CON SUBR ENTRY/EXIT
- LDM CMCE CHECK CHANNEL
- LPN 77
- STD T3
- CHTE *
- LMN CH
- ZJN CON3 IF CORRECT CHANNEL
- LDC TCHS-1
- STD T1
- LDD CR RELEASE LAST CHANNEL
- DCHAN
- CHTE CR
- * LDN 0
- CON1 RAI T2 MODIFY NEXT CHANNEL
- AOD T1
- CON2 LDI T1
- STD T2
- LDD T3
- CHTL *
- SBN CH
- NJN CON1 IF MORE CHANNELS TO MODIFY
- LDD CR RESERVE NEW CHANNEL
- RCHAN
- CON3 LDN 10 SELECT MODE II CONNECT
- RJM IFN ISSUE FUNCTION
- LDM CMCE OUTPUT CONNECT CODE
- SCN 77
- OAN CH+40
- STD FC SAVE CONNECT CODE FOR *REJECT* MESSAGE
- LDC 100D TIMEOUT CONVERTER
- CONA EQU *-1
- * LDC 200D (2X PP)
- * LDC 400D (4X PP)
- CON4 EJM CON5,CH IF FUNCTION ACCEPT / CONVERTER REJECT
- SBN 4
- PJN CON4 IF NOT TIMED OUT
- LJM FCN2 PROCESS FUNCTION TIMEOUT
- CON5 DCN CH+40
- CON6 LDN 13 SELECT EQUIPMENT STATUS
- RJM IFN ISSUE FUNCTION
- IAN CH+40
- DCN CH+40
- STD ST STORE EQUIPMENT STATUS
- LDN SCEI STATUS PARITY ERROR
- RJM CCE CHECK FOR CHANNEL ERROR
- NJN CON6 IF ERROR
- RJM STS GET CONVERTER STATUS
- NJN CON9 IF ERROR
- LDD EQ
- SBK LPDT
- ZJN CON7 IF PRINTER
- RJM WNB
- CON7 LDN 24 SELECT ABNORMAL *EOP* INTERRUPT
- RJM FCN
- CON8 LDD CS RETURN WITH STATUS
- LPN 7
- CON9 LJM CONX RETURN
- FCN SPACE 4,15
- ** FCN - OUTPUT FUNCTION TO EQUIPMENT.
- *
- * ENTRY (A) = FUNCTION CODE.
- *
- * EXIT (FC) = FUNCTION CODE.
- * IF FUNCTION REJECT, THEN EXIT IS MADE TO *MGR1*.
- * THUS, ALL CODE SINCE THE LAST *RJM MGR* WILL BE
- * EXECUTED AGAIN PRIOR TO A RETRY ON THE FUNCTION.
- * IF THE RETRY LIMIT IS REACHED OR IF THE FUNCTION
- * TIMES OUT, THEN EXIT IS MADE TO *CEP*.
- *
- * USES FC.
- *
- * CALLS SDM, STS.
- FCN4 RJM STS CHECK 6681 STATUS
- ZJN FCNX IF FUNCTION ACCEPTED
- LJM MGR1 GO TO MANAGER
- FCN SUBR ENTRY/EXIT
- FAN CH ISSUE FUNCTION
- STD FC SAVE FUNCTION FOR REJECT MESSAGE
- LDM CONA
- FCN1 IJM FCN4,CH IF FUNCTION ACCEPTED
- SBN 4
- PJN FCN1 IF NOT TIMED OUT
- * *FCN2* IS A SECONDARY ENTRY POINT FOR *FCN*.
- *
- * FUNCTION TIMEOUT ERROR PROCESSOR.
- FCN2 DCN CH+40
- LDN EFTM *EQXXX FUNCTION TIMEOUT.*
- RJM SDM FORMAT DAYFILE MESSAGE
- FCN3 LJM CEP CHANNEL ERROR PROCESSOR
- IFN SPACE 4,10
- ** IFN - ISSUE FUNCTION TO CONVERTER.
- *
- * ENTRY (A) = FUNCTION CODE.
- *
- * EXIT CHANNEL ACTIVE.
- * (T5) = FUNCTION CODE.
- * IF THE FUNCTION TIMES OUT, THEN EXIT IS MADE TO
- * *CEP* VIA *FCN2*.
- *
- * USES FC, T5.
- IFN2 ACN CH
- IFN SUBR ENTRY/EXIT
- SHN 6
- FAN CH ISSUE FUNCTION
- STD T5 SAVE FUNCTION
- LDN 6 SET TIME LIMIT
- IFN1 IJM IFN2,CH IF FUNCTION ACCEPTED
- SBN 1
- NJN IFN1 IF NOT TIMED OUT
- LDD T5
- STD FC FUNCTION CODE FOR ERROR MESSAGE
- UJN FCN2 FUNCTION TIMEOUT ERROR PROCESSOR
- SPACE 4,10
- ** COMMON DECKS.
- *CALL COMPWBB
- SPACE 4,10
- RTBL BSS 0 START OF RELOCATED CODE
- LOC CTBLL
- REC SPACE 4,10
- ** REC - RELEASE EQUIPMENT CONNECT.
- *
- * CALLS CON, FCN.
- REC SUBR ENTRY/EXIT
- RJM CON CONNECT EQUIPMENT
- NJN RECX IF CONNECT REJECT
- * LDN 0 RELEASE AND DISCONNECT EQUIPMENT
- RJM FCN
- UJN RECX RETURN
- SDP SPACE 4,10
- ** SDP - SUB-DRIVER PROCESSOR.
- SDP SUBR ENTRY/EXIT
- LDD BR
- NJN SDP2 IF BUSY RETURN REQUESTED
- RJM CON CONNECT EQUIPMENT
- NJN SDPX IF CONNECT REJECT
- LDD ST
- SHN 21-0
- MJN SDP1 IF EQUIPMENT READY
- LDM TNRP,EQ
- STD PA
- LDD ST (A) = EQUIPMENT STATUS
- UJN SDP3 ENTER NOT READY PROCESSOR
- SDP1 SHN 1+21-1
- PJN SDP2 IF EQUIPMENT NOT BUSY
- SHN 2+21-10
- PJN SDPX IF NOT END OF OPERATION INTERRUPT
- SDP2 LDM CMPA SET PROGRAM ADDRESS
- STD PA
- LDM CMAR RESET (A)
- SDP3 LJM 0,PA RETURN TO NEXT DRIVER ADDRESS
- STS SPACE 4,10
- ** STS - GET CONVERTER STATUS.
- *
- * EXIT (A) = BITS 0 - 2 OF 6681 STATUS.
- * (CS) = CONVERTER STATUS.
- *
- * CALLS CCE, IFN, PRE, SDM.
- STS SUBR ENTRY/EXIT
- STS1 LDN 12 SELECT 6681 STATUS
- RJM IFN ISSUE FUNCTION
- IAN CH+40
- DCN CH+40
- STD CS
- LDN SCEI STATUS PARITY ERROR
- RJM CCE CHECK FOR CHANNEL ERROR
- NJN STS1 IF ERROR
- LDD CS
- LPN 7
- ZJN STSX IF NO ERRORS
- * FUNCTION REJECT/TRANSMISSION PARITY ERROR PROCESSOR.
- LDN FRJI CHECK ERROR LIMIT EXCEEDED
- RJM PRE
- LDD CS
- LPN 7
- UJN STSX RETURN
- WNB SPACE 4,15
- ** WNB - WAIT NOT BUSY.
- *
- * ENTRY (ST) = DEVICE STATUS.
- *
- * EXIT IF DEVICE BUSY, THEN EXIT IS MADE
- * TO *MGR1*. THUS, ALL CODE SINCE
- * LAST RETURN TO MANAGER WILL BE
- * EXECUTED AGAIN PRIOR TO PROCEEDING.
- * IF BUSY RETRY COUNT REACHED,
- * EXIT IS MADE TO *CEP*.
- *
- * CALLS SDM.
- WNB3 STM CMCB CLEAR CONTROLLER BUSY RETRY COUNT
- WNB SUBR ENTRY/EXIT
- LDD ST CHECK EQUIPMENT STATUS FOR BUSY
- LPN 2
- ZJN WNB3 IF DEVICE NOT BUSY
- SOM CMCB DECREMENT RETRY COUNT
- ZJN WNB2 IF RETRY COUNT EXHAUSTED
- WNB1 LJM MGR1 RETURN TO MANAGER
- WNB2 SOM CMTC
- NJN WNB1 IF NOT AT ABSOLUTE RETRY LIMIT
- LDN ECBM *EQXXX CONTROLLER HUNG BUSY.*
- RJM SDM SEND DAYFILE MESSAGE
- LJM CEP CHANNEL ERROR PROCESSOR
- XDR SPACE 4,20
- ** XDR - TRANSMIT DATA RECORD (TO/FROM EXTERNAL EQUIPMENT).
- *
- * ENTRY (A) BITS 0-11 = INSTRUCTION (IAM/OAM).
- * 12-17 = CONVERTER FUNCTION.
- *
- * USES CS, FC, T1.
- *
- * CALLS CCE, CRV, FCN, IFN, PRE, STS.
- XDR SUBR ENTRY/EXIT
- CHTE *
- LMN CH SET INSTRUCTION WITH CHANNEL
- STM XDRA
- SHN -14 SET I/O FUNCTION
- STD FC
- LDD DA SET BUFFER ADDRESS
- STM XDRA+1
- LDD FC ISSUE CONVERTER FUNCTION
- RJM IFN
- LDM CMLR
- XDRA OAM. **,CH OUTPUT (INPUT) DATA RECORD
- * IAM **,CH
- FJM *,CH
- DCN CH+40
- NJN XDR1 IF INCOMPLETE DATA TRANSFER
- LDN DCPI CHECK FOR DATA PARITY ERROR
- RJM CCE
- NJN XDR2 IF ERROR
- LDN DRRI
- RJM CRV CHECK FOR RECOVERED ERROR
- RJM STS GET CONVERTER STATUS
- NJN XDR2 IF ERROR
- UJN XDRX RETURN
- * *XDR1* IS A SECONDARY ENTRY POINT FOR *XDR*.
- XDR1 STD CS
- LDN DRRI PROCESS RECOVERABLE ERROR
- RJM PRE
- XDR2 LDN 0 CLEAR AND DISCONNECT EQUIPMENT
- RJM FCN
- AOM CMEC
- LDM XDRB,EQ
- STD T1
- LJM 0,T1 EXIT TO RETRY PROCESSOR
- XDRB BSS 0 RETRY PROCSSING ADDRESS
- LOC 0
- CON LPR1 LINE PRINTER
- CON CPX CARD PUNCH
- CON CRB5 CARD READER
- LOC *L+XDRB
- TCHS SPACE 4,10
- ** TCHS - CHANNEL TABLE.
- TCHS CHTB
- ERRNG ICD-* RELOCATED CODE OVERLAPS
- LOC *O
- RTBLL EQU *-RTBL
- TITLE PRESET.
- PRS SPACE 4,15
- ** PRS - PRESET SUB-DRIVER OVERLAY.
- *
- * EXIT (CR) = CHANNEL RESERVED.
- * (DB) = FIRST DATA BUFFER ADDRESS.
- * TO *ZBA*.
- *
- * USES CM - CM+4, T1 - T3.
- *
- * MACROS RCHAN.
- PRS BSS 0 ENTRY
- LDC CTBLL MOVE TABLES TO PP RESIDENT
- STD T1
- LDC RTBL
- STD T2
- PRS1 LDI T2
- STI T1
- AOD T1
- AOD T2
- LMC RTBL+RTBLL
- NJN PRS1 IF NOT END OF TABLES
- LDN IPRL CHECK SYSTEM DEFAULT KEYPUNCH MODE
- CRD CM
- LDD CM+2
- LPN 1
- NJN PRS4 IF SYSTEM NOT IN 63 CHARACTER SET MODE
- LDC *
- ORG *-1
- LOC LPDA
- UJN LPD9 PROCESS 63 CHARACTER SET LINE
- LOC *O
- STM LPDA
- LDN 45 CHANGE 6/12 COLON CONVERSION TO PERCENT
- STM MCCC
- PRS4 LDK MABL FETCH PP SPEED INDICATOR
- CRD CM
- LDD CM+4 SET TIMEOUT VALUE
- RAM PRSA
- LDN 100D/4 SET CONVERTER TIMEOUT
- PRSA SHN 2
- STM CONA
- LDN CH RESERVE CHANNEL
- STD CR
- RCHAN
- LDN ZERL
- CRD CM
- LDD MA CLEAR *CIO* REQUEST PARAMETERS
- ADN 1
- CWD CM
- * INITIALIZE SYSTEM PAGE PARAMETERS
- LDN IPPL FETCH SYSTEM PAGE PARAMETERS
- CRD CM
- LDD CM+3 SET PRINT WIDTH
- LPC PWUL
- ADN 1
- LMC -0
- STM LPDB
- LDC DBUF SET BUFFER INFORMATION
- STD DB
- STD T1
- LDK DBUFS
- STD T2
- LDC DBUFL
- STD T3
- LJM ZBA CLEAR DATA BUFFER ASSIGNMENTS
- SPACE 4,10
- OVERFLOW OVLA
- DBUF SPACE 4,20
- ** DBUF - BUFFER AREAS.
- DBUFS EQU PWMX+5 DATA BUFFER SIZE
- DBUFW EQU DBUFS/10D DATA BUFFER SIZE IN CM WORDS
- DBUF EQU RTBL
- .L SET 7777-DBUF
- NDBUF EQU .L/DBUFS NUMBER OF DATA BUFFERS
- DBUFL EQU DBUF+NDBUF*DBUFS LWA+1 OF DATA BUFFERS
- * IF THE FOLLOWING TEST PRODUCES A NEGATIVE NUMBER,
- * PERFORMANCE MAY BE DEGRADED (SINCE THERE ARE LESS THAN
- * 4 DATA BUFFERS).
- 7 ERRNG NDBUF-4
- ERRNG 10000-DBUFL BUFFERS WRAP PP MEMORY
- XCD TTL 1CD/3CY - BATCHIO COMBINED DRIVER.
- TITLE
- QUAL 3CY
- IDENT 3CY,XCDX
- *COMMENT 1CD - DRIVE *CCC*-CONNECTED DEVICES.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- 3CY SPACE 4,10
- *** 1CD/3CY - BATCHIO COMBINED DRIVER.
- *
- * THIS SUB-DRIVER OVERLAY CONTAINS DRIVERS TO ACCESS DEVICES
- * CONNECTED VIA A CYBER CHANNEL COUPLER (CCC).
- 3CY SPACE 4,10
- ORG OVLA
- XCD SUBR ENTRY/EXIT
- CHTE CCEA
- LJM PRS PRESET
- TITLE 5870/5970 DRIVER SECTION.
- NPD SPACE 4,10
- ** NPD - 5870/5970 DRIVER.
- NPD RJM PSD PRESET DRIVER
- NPD1 LDC GBPF+1000 REQUEST BANNER PAGE GENERATION
- RJM CPS
- NPD2 RJM MGR GO TO MANAGER
- ZJN NPD1 IF REQUEST NOT ACCEPTED
- LDD BS+4 CHECK BUFFER STATUS
- LMC GBPF+1
- NJN NPD2 IF OPERATION NOT COMPLETE
- UJN NPD4 PRINT BANNER PAGE
- * PHASE 1. LOAD BUFFER.
- NPD3 SCN 2 SET DRIVER HOLDING
- LMN 2
- STM CMHF
- * *NPD4* IS A SECONDARY ENTRY POINT FOR *NPD*.
- NPD4 LDN 1 SET BUSY RETURN
- STD BR
- RJM MGR GO TO MANAGER
- LDM CMHF
- NJN NPD3 IF HOLD INITIATED
- RJM COB CHECK OUTPUT BUFFER
- SBN DBUFW*2+1
- PJN NPD5 IF AT LEAST 1 LINE AND 1 WORD
- LDD BS+4
- LPN 20
- ZJN NPD4 IF NOT EOR/EOF/EOI
- NPD5 RJM ADB ASSIGN DATA BUFFER
- LDN 0
- STD BR CLEAR BUSY RETURN
- STM NPLC CLEAR LINE COUNT
- LDM CMSF CHECK MODE OF FILE
- LPN 50
- ZJN NPD6 IF NOT 6/12 OR 8/12 ASCII PRINT FILE
- LDN DBUFW
- NPD6 ADN DBUFW READ CODED BUFFER
- RJM RCB
- NJN NPD8 IF NOT EMPTY LINE
- NPD7 LDN 40 SET SPACE CHARACTER
- STI T1
- AOD T1
- AOM CMLR ADVANCE BYTE COUNT FOR LINE
- NPD8 SBN 2
- MJN NPD7 IF NOT 2 CHARACTERS IN LINE
- LDM CMSF
- LPN 10
- NJN NPD9 IF 12 BIT ASCII PRINT FILE
- NPDA PSN
- * UJN NPD9 (SYSTEM IN 63 CHARACTER SET)
- LDM -1,T1 CHECK LAST CHARACTER IN LINE
- LMN 72
- NJN NPD9 IF NOT COLON
- LDN 40 REPLACE WITH BLANK
- STM -1,T1
- NPD9 SOM CMLR DEDUCT CARRIAGE CONTROL CHARACTER
- SBK PXMX+1
- PJN NPD9 IF LINE TOO LONG
- LDD T2 SET FORMAT CONTROL FOR NEXT LINE
- STM NPFC
- LDD OT SAVE *OUT* POINTER
- STM NPOT
- LDD OT+1
- STM NPOT+1
- RJM MGR GO TO MANAGER
- * PHASE 2. PROCESS FORMAT CONTROL.
- LDN 4 PRESET SINGLE SPACE AFTER PRINT
- STM NPWF
- LDI DA CHECK FORMAT CHARACTER
- LPC 3777
- STI DA
- LMN 40 ASCII BLANK
- ZJN NPD11 IF ASCII BLANK
- RJM PFC PROCESS FORMAT CONTROL
- ZJN NPD10 IF PRINT LINE
- RJM RDB RELEASE DATA BUFFER
- LDN NPOT UPDATE *FET*
- RJM SOP STORE OUT POINTER
- LJM NPD4 GO TO PHASE 1
- NPD10 LDI DA CHECK FOR *PM* MESSAGE
- SBK 120
- NJN NPD11 IF NOT *P*
- LDM 1,DA
- LPC 3777
- SBK 115
- NJN NPD11 IF NOT *PM*
- LDM CMLR CHECK RECORD LENGTH
- SBN 1
- ZJN NPD11 IF ONLY *PM*
- RJM PPM PROCESS PM MESSAGE
- NPD11 LDM CMBE
- ZJN NPD14 IF BUFFER EMPTY
- LDM CMSF
- LPN 10
- NJN NPD12 IF 12 BIT ASCII MODE
- LDM NPFC CHECK FORMAT CHARACTER OF NEXT LINE
- SHN -6
- LMN 1R+
- UJN NPD13 CHECK FOR *+*
- NPD12 LDM NPFC CHECK FORMAT CHARACTER OF NEXT LINE
- LPC 3777
- LMN 53 (ASCII *+*)
- NPD13 NJN NPD14 IF NOT *+*
- LDN 7 WRITE WITHOUT SPACING
- STM NPWF
- * PHASE 3. PRINT LINE.
- NPD14 RJM MGR RETURN TO MANAGER
- LDN ECLE CLEAR *I* DISPLAY
- RJM MSG
- AOD DA DO NOT PRINT FORMAT CHARACTER
- LDM NPWF SET WRITE FUNCTION CODE
- RJM WDR WRITE DATA RECORD
- RJM RDB RELEASE DATA BUFFER
- * PHASE 4. PROCESS POST PRINT OPERATIONS.
- LDN NPOT STORE *OUT* POINTER
- RJM SOP
- AOM NPLC CHECK USER LIMITS
- RJM CUL
- LJM NPD4 GO TO PHASE 1
- NEF SPACE 4,10
- ** NEF - LIST END OF INFORMATION.
- *
- * USES BR, T4.
- *
- * CALLS ACT, MGR, NPN.
- NEF LDD BS+4 CHECK BUFFER STATUS
- SHN 21-11
- MJN NEF1 IF EOI
- LJM NPN1 RESET BUFFER STATUS
- NEF1 LDD F2+2 CHECK ABORT FLAG
- LPN 2
- ZJN NEF2 IF NO ABORT FLAG
- LDN 0 CLEAR REPEAT COUNT
- STM CMER
- LJM NPN PROCESS *END*
- * *NEF2* IS A SECONDARY ENTRY POINT FOR *NEF*.
- NEF2 AOD BR
- LDM CMSF CHECK ACCOUNT FLAG
- LPN 1
- ZJN NEF3 IF ACCOUNT FLAG NOT SET
- LJM TOF TERMINATE OUTPUT FILE
- NEF3 AOM CMSF SET ACCOUNT FLAG
- SCN 50 CLEAR 6/12 AND 8/12 ASCII PRINT FLAGS
- STM CMSF
- NEF4 LDN 0 SET PRINTER FOR *QAP*
- STD EQ
- RJM ACT PROCESS ACCOUNTING
- NEF5 RJM MGR GO TO MANAGER
- ZJN NEF4 IF REQUEST NOT ENTERED
- LDD BS+4
- SHN 21-0
- PJN NEF5 IF ACCOUNTING NOT COMPLETE
- LJM NPD4 PRINT LINE COUNT
- NPE SPACE 4,10
- ** NPE - ERROR PROCESSOR.
- *
- * ENTRY (A) = DEVICE STATUS.
- *
- * EXIT TO *PSE*.
- *
- * CALLS MSG.
- NPE BSS 0 ENTRY
- LPN 4
- ZJN NPE1 IF NO INTERVENTION REQUIRED
- LDN EIVR&ENRD
- NPE1 LMN ENRD SEND *NOT READY.* MESSAGE
- RJM MSG
- LJM PSE RETURN
- NPN SPACE 4,10
- ** NPN - PROCESS *END*.
- *
- * USES BS+4, CM - CM+4.
- *
- * CALLS SFA.
- *
- * MACROS NFA.
- NPN LDN 0 CLEAR HOLD FLAG
- STM CMHF
- LDM CMSF CHECK END FLAG
- LPN 2
- NJN NPN2 IF SET PREVIOUSLY
- LDN 2 SET END FLAG
- RAM CMSF
- NFA FA,R READ FST INFORMATION
- CRD CM
- LDD FP+1 RESET FILE STATUS
- ZJN NPN2 IF NO DAYFILE
- STD CM+2
- LDD FP+2
- STD CM+3
- NFA FA,R UPDATE FST INFORMATION
- CWD CM
- * *NPN1* IS A SECONDARY ENTRY POINT FOR *NPN*.
- NPN1 LDN 1 RESET BUFFER STATUS
- STD BS+4
- RJM SFA STORE BUFFER STATUS
- CWD BS
- LJM NPD4 RETURN TO MAIN DRIVER
- NPN2 LJM NEF2 PROCESS ACCOUNTING
- PFC SPACE 4,20
- ** PFC - PROCESS FORMAT CONTROL.
- *
- * ENTRY ((DA)) = FORMAT CONTROL CHARACTER (ASCII).
- *
- * EXIT (A) = 0 IF LINE SHOULD BE PRINTED.
- * (NPLC) = LINE COUNT.
- * (NPWF) = WRITE FUNCTION CODE.
- *
- * ERROR TO *MGR1* IF FUNCTION REJECTED.
- *
- * USES T4.
- *
- * CALLS FCN, GST.
- PFC3 LDM 1,T4 SET LINE CHARGE COUNT
- SHN 14
- STM NPLC
- SHN -14
- PFC SUBR ENTRY/EXIT
- LDC TPFC-4 SET FWA OF FORMAT CONTROL TABLE
- STD T4
- PFC1 LDN 4 SET NEXT ADDRESS
- RAD T4
- LDI T4
- ZJN PFCX IF END OF TABLE
- LMI DA
- NJN PFC1 IF NO MATCH
- LDM 2,T4 SET SECOND WRITE FUNCTION
- STM NPWF
- LDM 3,T4 SET FIRST WRITE FUNCTION
- PFC2 ZJN PFC3 IF NO FUNCTION TO ISSUE
- RJM FCN ISSUE FUNCTION
- RJM GST GET GENERAL STATUS
- ZJN PFC2 IF NO ERROR
- LJM MGR1 RETURN TO *MGR*
- TPFC SPACE 4,10
- ** TPFC - TABLE OF FORMAT CONTROL CHARACTERS.
- *
- * FOUR WORDS PER ENTRY.
- TPFC BSS 0
- NFMTC C,,0,66 SKIP TO CHANNEL 6 AFTER PRINT
- NFMTC D,,0,65 SKIP TO CHANNEL 5 AFTER PRINT
- NFMTC E,,0,64 SKIP TO CHANNEL 4 AFTER PRINT
- NFMTC F,,0,63 SKIP TO CHANNEL 3 AFTER PRINT
- NFMTC G,,0,62 SKIP TO CHANNEL 2 AFTER PRINT
- NFMTC H,,0,61 SKIP TO CHANNEL 1 AFTER PRINT
- NFMTC Q,1,0,0 LINE IGNORED
- NFMTC R,1,0,0 LINE IGNORED
- NFMTC S,1,0,0 LINE IGNORED
- NFMTC T,1,0,0 LINE IGNORED
- NFMTC V,1,0,0 LINE IGNORED
- NFMTC 0,,1,1,4 SPACE 1 LINE BEFORE PRINT
- NFMTC 1,,0,21,4 EJECT BEFORE PRINT
- NFMTC 2,,0,54 ADVANCE TO LAST LINE BEFORE PRINT
- NFMTC 3,,0,46 SKIP TO CHANNEL 6 BEFORE PRINT
- NFMTC 4,,0,45 SKIP TO CHANNEL 5 BEFORE PRINT
- NFMTC 5,,0,44 SKIP TO CHANNEL 4 BEFORE PRINT
- NFMTC 6,,0,43 SKIP TO CHANNEL 3 BEFORE PRINT
- NFMTC 7,,0,42 SKIP TO CHANNEL 2 BEFORE PRINT
- NFMTC 8,,0,41 SKIP TO CHANNEL 1 BEFORE PRINT
- * NFMTC +,,0,0 PROCESSED IN MAIN DRIVER
- NFMTC -,,2,2,4 SPACE 2 LINES BEFORE PRINT
- NFMTC /,,0,7 SUPPRESS SPACE AFTER PRINT
- DATA 0 END OF TABLE
- PPM SPACE 4,10
- ** PPM - PROCESS PM MESSAGE.
- *
- * ENTRY (DA) = FWA OF LINE RECORD.
- * (FP+2) = VALIDATION FLAGS.
- * (CMLR) = RECORD LENGTH - 1.
- *
- * EXIT (CMLR) = LENGTH OF *DJDE* ENTRY.
- *
- * USES T1, T2, T4.
- *
- * CALLS MVE.
- PPM SUBR ENTRY/EXIT
- LDD F2+2 CHECK VALIDATION
- LPN 1
- ZJN PPMX IF NOT *CBIO* VALIDATED
- LDC 80D+1 INSURE MAX LENGTH OF 80 CHARACTERS
- SBM CMLR
- PJN PPM1 IF .LE. 80 CHARACTERS
- RAM CMLR
- PPM1 LDD DA SET LWA+1 OF SOURCE
- ADM CMLR
- ADN 1
- STD T1
- ADN PPMAL-1 SET LWA+1 OF DESTINATION
- STD T2
- ADN PPMBL SET LWA+1 OF ENDING STRING
- STD T4
- SOM CMLR MOVE TEXT STRING
- RJM MVE
- LDC PPMB+PPMBL
- STD T1
- LDD T4
- STD T2
- LDN PPMBL MOVE ENDING STRING
- RJM MVE
- LDC PPMA+PPMAL
- STD T1
- LDD DA
- ADN PPMAL+1
- STD T2
- LDN PPMAL MOVE BEGINING STRING
- RJM MVE
- LDN PPMAL+PPMBL SET RECORD LENGTH
- RAM CMLR
- LJM PPMX RETURN
- PPMA STR ("DJDE"OTEXT=)
- DATA 50 (
- STR (')
- PPMAL EQU *-PPMA
- PPMB STR (',1,WAIT)
- DATA 51 )
- STR (;END;)
- PPMBL EQU *-PPMB
- CON SPACE 4,15
- ** CON - CONNECT TO EQUIPMENT.
- *
- * ENTRY (CMCE) = UNIT NUMBER.
- *
- * EXIT (A) = GENERAL STATUS.
- * (ST) = GENERAL STATUS.
- *
- * ERROR TO *FCN3* IF FUNCTION TIMEOUT.
- *
- * CALLS FCN, GST.
- CON2 DCN CH+40
- RJM GST GET GENERAL STATUS
- CON SUBR ENTRY/EXIT
- LDN 0 ISSUE SELECT UNIT FUNCTION
- RJM FCN
- LDM CMCE SET UNIT NUMBER
- SHN -11
- ACN CH
- OAN CH+40
- CON1 ADD ON
- EJM CON2,CH IF FUNCTION ACCEPTED
- NJN CON1 IF NOT TIMED OUT
- UJN FCN3 PROCESS FUNCTION TIMEOUT
- FCN SPACE 4,15
- ** FCN - OUTPUT FUNCTION TO EQUIPMENT.
- *
- * ENTRY (A) = FUNCTION CODE.
- *
- * EXIT (FC) = CURRENT FUNCTION CODE.
- * (FC) = PRIOR FUNCTION CODE IF CURRENT FUNCTION CODE IS
- * A GENERAL STATUS.
- *
- * ERROR TO *CEP* IF FUNCTION TIMEOUT.
- *
- * USES T1.
- *
- * CALLS SDM.
- FCN SUBR ENTRY/EXIT
- FAN CH ISSUE FUNCTION
- LMN 12
- ZJN FCN1 IF GENERAL STATUS FUNCTION
- LMN 12
- STD FC SAVE FUNCTION CODE FOR ERROR MESSAGE
- FCN1 LDK 1000D*4 FOUR SECOND DELAY
- ERRPL 1000D*4-7777 DELAY COUNT OVERFLOWS
- STD T1 SET TIMEOUT COUNTDOWN INCREMENT
- FCN2 LDM .DLY DELAY 1 MILLISECOND
- SHN 2
- FCN2.4 IJM FCNX,CH IF FUNCTION ACCEPTED
- SBN 1
- NJN FCN2.4 IF INNER LOOP NOT EXPIRED
- SOD T1
- PJN FCN2 IF TIMEOUT NOT ELAPSED
- SOM CMTC
- NJN FCN1 IF TIMEOUT NOT ELAPSED
- * *FCN3* IS A SECONDARY ENTRY POINT FOR *FCN*.
- FCN3 DCN CH+40
- LDN EFTM *EQXXX FUNCTION TIMEOUT.*
- RJM SDM
- LJM CEP PROCESS CHANNEL ERROR
- GST SPACE 4,15
- ** GST - GET GENERAL STATUS OF CCC.
- *
- * ENTRY CHANNEL INSTRUCTIONS SET.
- *
- * EXIT (A) = GENERAL STATUS.
- * (ST) = GENERAL STATUS.
- *
- * ERROR TO *FCN2* IF FUNCTION TIMEOUT.
- * TO *CEP* IF STATUS ERROR.
- *
- * CALLS CCE, FCN, SDM.
- GST2 LDD ST
- GST SUBR ENTRY/EXIT
- GST1 LDN 12 ISSUE GENERAL STATUS FUNCTION
- RJM FCN
- ACN CH
- IAN CH+40
- DCN CH+40
- STD ST
- LDN SCEI STATUS PARITY ERROR
- RJM CCE CHECK FOR CHANNEL ERROR
- NJN GST1 IF ERROR
- LDD ST CHECK FOR STATUS ERROR
- SHN -11
- LMN 5
- NJN GST2 IF NO ERROR
- LDN ECSE *EQXXX CCC/NIP STATUS ERROR.*
- RJM SDM
- LJM CEP PROCESS CHANNEL ERROR
- MCI SPACE 4,10
- ** MCI - MODIFY CHANNEL INSTRUCTIONS.
- *
- * ENTRY (CMCE) = CHANNEL FOR DEVICE.
- * (CR) = CURRENT CHANNEL.
- *
- * EXIT (CR) = CHANNEL RESERVED.
- *
- * USES T1 - T3.
- *
- * MACROS DCHAN, RCHAN.
- MCI1 RAI T2 MODIFY NEXT CHANNEL
- AOD T1
- MCI2 LDI T1
- STD T2
- LDD T3
- CHTL *
- SBN CH
- NJN MCI1 IF MORE CHANNELS TO MODIFY
- LDD CR RESERVE NEW CHANNEL
- RCHAN
- MCI SUBR ENTRY/EXIT
- LDM CMCE CHECK CHANNEL
- LPN 77
- STD T3
- CHTE *
- LMN CH
- ZJN MCIX IF CORRECT CHANNEL
- LDD CR RELEASE LAST CHANNEL
- DCHAN
- CHTE CR UPDATE *CR* DIRECT CELL
- LDC TCHS MODIFY CHANNELS
- STD T1
- UJN MCI2 MODIFY FIRST CHANNEL
- MVE SPACE 4,10
- ** MVE - MOVE BUFFER.
- *
- * ENTRY (A) = NUMBER OF BYTES TO MOVE.
- * (T1) = LWA+1 OF SOURCE BUFFER.
- * (T2) = LWA+1 OF DESTINATION BUFFER.
- *
- * USES T1, T2, T3.
- MVE1 SOD T1
- SOD T2
- LDI T1
- STI T2
- SOD T3
- MVE2 NJN MVE1 IF MOVE NOT COMPLETE
- MVE SUBR ENTRY/EXIT
- STD T3
- UJN MVE1 BEGIN MOVE
- REC SPACE 4,10
- ** REC - RELEASE EQUIPMENT CONNECT.
- REC SUBR ENTRY/EXIT
- UJN RECX RETURN
- SDP SPACE 4,10
- ** SDP - SUB-DRIVER PROCESSOR.
- *
- * CALLS CON, MCI.
- SDP SUBR ENTRY/EXIT
- LDD BR
- NJN SDP1 IF BUSY RETURN REQUESTED
- RJM MCI MODIFY CHANNEL INSTRUCTIONS
- RJM CON CONNECT TO EQUIPMENT
- ZJN SDP1 IF CONNECTED AND READY
- SHN 21-1
- MJN SDPX IF BUSY
- LDM TNRP,EQ SET NOT READY PROCESSING ADDRESS
- STD PA
- LDD ST (A) = STATUS
- UJN SDP2 ENTER ROUTINE
- SDP1 LDM CMPA SET PROGRAM ADDRESS
- STD PA
- LDM CMAR RESET (A)
- SDP2 LJM 0,PA RETURN TO NEXT DRIVER ADDRESS
- WDR SPACE 4,10
- ** WDR - WRITE DATA RECORD.
- *
- * ENTRY (A) = WRITE FUNCTION.
- * (DA) = FWA OF DATA RECORD.
- * (CMLR) = OUTPUT RECORD LENGTH.
- *
- * ERROR TO *MGR1* IF RETRY REQUIRED.
- *
- * CALLS CRV, FCN, GST, PRE.
- WDR SUBR ENTRY/EXIT
- RJM FCN ISSUE WRITE FUNCTION
- LDD DA SET RECORD ADDRESS
- STM WDRA
- LDM CMLR SET RECORD LENGTH
- ACN CH
- OAM **,CH
- WDRA EQU *-1 (RECORD ADDRESS)
- FJM *,CH IF TRANSFER NOT COMPLETE
- DCN CH+40
- NJN WDR1 IF INCOMPLETE TRANSFER
- LDN DRRI
- RJM CRV CHECK FOR RECOVERED ERROR
- RJM GST GET GENERAL STATUS
- NJN WDR2 IF ERRORS
- UJN WDRX RETURN
- WDR1 STD CS SAVE BYTE COUNT
- LDN DRRI
- RJM PRE PROCESS RECOVERED ERROR
- WDR2 LJM MGR1 RETURN TO MANAGER
- TCHS SPACE 4,10
- ** TCHS - CHANNEL TABLE.
- TCHS CHTB
- TITLE PRESET.
- PRS SPACE 4,15
- ** PRS - PRESET SUB-DRIVER OVERLAY.
- *
- * EXIT (CR) = CHANNEL RESERVED.
- * (DB) = FIRST DATA BUFFER ADDRESS.
- * TO *ZBA*.
- *
- * USES CM - CM+4, T1 - T3.
- *
- * MACROS RCHAN.
- PRS BSS 0 ENTRY
- LDN IPRL CHECK CHARACTER SET MODE
- CRD CM
- LDD CM+2
- LPN 1
- NJN PRS1 IF SYSTEM NOT IN 63 CHARACTER SET MODE
- ISTORE NPDA,(UJN NPD9)
- PRS1 LDN CH RESERVE CHANNEL
- STD CR
- RCHAN
- STM RCBA
- LDN ZERL CLEAR *CIO* REQUEST PARAMETERS
- CRD CM
- LDD MA
- ADN 1
- CWD CM
- LDC DBUF SET BUFFER INFORMATION
- STD DB
- STD T1
- LDC DBUFS
- STD T2
- LDC DBUFL
- STD T3
- LJM ZBA CLEAR DATA BUFFER ASSIGNMENTS
- SPACE 4,10
- OVERFLOW OVLA
- DBUF SPACE 4,10
- ** DBUF - DATA BUFFER AREA.
- DBUFS EQU PXMX+5 DATA BUFFER SIZE
- DBUFW EQU DBUFS/10D DATA BUFFER SIZE IN CM WORDS
- DBUF EQU PRS FWA OF DATA BUFFERS
- .L SET 7777-DBUF
- NDBUF EQU .L/DBUFS NUMBER OF DATA BUFFERS
- DBUFL EQU DBUF+DBUFS*NDBUF LWA+1 OF DATA BUFFERS
- ERRNG 10000-DBUFL BUFFERS WRAP PP MEMORY
- SPACE 4,10
- END
cdc/nos2.source/opl871/1cd.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator