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
  1. IDENT 1CD,ICD
  2. PERIPH
  3. BASE MIXED
  4. SST
  5. *COMMENT 1CD - BATCHIO COMBINED DRIVER.
  6. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  7. TITLE 1CD - BATCHIO COMBINED DRIVER.
  8. SPACE 4,10
  9. *** 1CD - *BATCHIO* COMBINED DRIVER.
  10. *
  11. * G. R. MANSFIELD. 70/09/01.
  12. * P. D. HAAS. 73/12/20.
  13. * R. M. YASUHARA. 75/01/17.
  14. * D. R. HILGREN. 79/01/15.
  15. * D. R. HILGREN. 79/04/25. RESEQUENCED.
  16. * A. F. JOHNSTON. 84/11/16. 5870/5970 DRIVER.
  17. SPACE 4,10
  18. *** *1CD* IS THE DEVICE DRIVER FOR *BATCHIO*. EACH *1CD* CAN
  19. * DRIVE A SET OF DEVICES, DEFINED BY THE SUB-DRIVER ITS RUNS.
  20. * THE FOLLOWING SUB-DRIVERS AND THE DEVICES THEY HANDLE ARE
  21. * AS FOLLOWS:
  22. *
  23. * DCC SUB-DRIVER (UP TO 8 DEVICES PER *1CD*)
  24. * 3555/512 - 580
  25. * 3446/415
  26. * 3447/405
  27. *
  28. * CCC SUB-DRIVER (UP TO 8 DEVICES PER *1CD*)
  29. * 5870
  30. * 5970
  31. SPACE 4,10
  32. *** 1CD CALL.
  33. *
  34. *T IR 18/ 1CD, 6/, 12/ DN, 12/ COUNT, 12/ SDT
  35. *
  36. * DN DRIVER NUMBER (ASSIGNMENT ADDRESS).
  37. * COUNT NUMBER OF DEVICES BEING DRIVEN.
  38. * SDT SUB-DRIVER TYPE
  39. * 0 - 6681 DEVICES (LPDT, CRDT, CPDT).
  40. * 1 - CCC DEVICES (NPDT).
  41. SPACE 4,10
  42. *** 3555/512 - 580 DRIVER CHARACTERISTICS.
  43. *
  44. * LINE SPACING IS NORMALLY DONE IN THE *AUTO EJECT* MODE. THIS
  45. * MEANS CREASES IN THE PAPER ARE SKIPPED VIA THE 3555 OR 580
  46. * AUTOMATIC LINE SPACING. THUS, IT IS NECESARY FOR AUTO EJECT
  47. * TO BE DESELECTED IF ONE WANTS TO USE FORMAT CHANNELS TO
  48. * ADVANCE FROM PRIOR TO BOTTOM OF FORM TO BEYOND TOP OF FORM.
  49. * AN EXAMPLE OF THIS WOULD BE WITH THE TYPICAL *NOS* FORMAT
  50. * TAPE WHICH HAS ONLY 1 HOLE IN CHANNEL 6 THUS PROVIDING AN
  51. * EJECT OF UP TO TWO PAGES IN ORDER TO INSURE ALL BANNER PAGES
  52. * COME OUT FACE UP IF THE PAPER IS PUT IN THE PRINTER
  53. * CORRECTLY. IT SHOULD ALSO BE NOTED THAT DESELECTION OF AUTO
  54. * EJECT MODE ON A 512/580 WILL RESULT IN DESELECTION OF
  55. * 8 LINES/INCH IF PREVIOUSLY SELECTED.
  56. *
  57. * THE FIRST CHARACTER OF THE PRINT LINE CONTROLS THE OPTIONAL
  58. * FORMATS. THIS CHARACTER IS NOT PRINTED. THE PRINT
  59. * LINE THEREFORE CONSISTS OF UP TO 136 CHARACTERS.
  60. *
  61. * THE FORMAT CONTROL CHARACTERS, THE NUMBER OF LINES CHARGED
  62. * FOR THEM, AND THEIR FUNCTION FOLLOWS -
  63. * CHAR. LINE CHARGE FUNCTION
  64. * C 4 SKIP TO FORMAT CHANNEL 6 AFTER PRINT
  65. * D 3 SKIP TO FORMAT CHANNEL 5 AFTER PRINT
  66. * E 3 SKIP TO FORMAT CHANNEL 4 AFTER PRINT
  67. * F 2 SKIP TO FORMAT CHANNEL 3 AFTER PRINT
  68. * G 2 SKIP TO FORMAT CHANNEL 2 AFTER PRINT
  69. * H 1 SKIP TO FORMAT CHANNEL 1 AFTER PRINT
  70. * Q 0 SUPPRESS AUTO EJECT
  71. * R 0 SET AUTO EUECT
  72. * S 0 CLEAR 8 LINES/INCH (512/580 ONLY)
  73. * T 0 SET 8 LINES/INCH (512/580 ONLY)
  74. * V PL6L OR PL8L EJECT PAGE / RELOAD 580 PFC MEMORY
  75. * 0 2 SPACE 1 LINE BEFORE PRINT
  76. * 1 PL6L OR PL8L EJECT PAGE BEFORE PRINT
  77. * 2 PL6L/2 OR PL8L/2 ADV TO BOTTOM OF FORM BEFORE PRINT
  78. * 3 4 SKIP TO FORMAT CHANNEL 6 BEFORE PRINT
  79. * 4 3 SKIP TO FORMAT CHANNEL 5 BEFORE PRINT
  80. * 5 3 SKIP TO FORMAT CHANNEL 4 BEFORE PRINT
  81. * 6 2 SKIP TO FORMAT CHANNEL 3 BEFORE PRINT
  82. * 7 2 SKIP TO FORMAT CHANNEL 2 BEFORE PRINT
  83. * 8 1 SKIP TO FORMAT CHANNEL 1 BEFORE PRINT
  84. * + 1 SUPPRESS SPACE BEFORE PRINT
  85. * - 3 SPACE 2 LINES BEFORE PRINT
  86. * / 1 SUPPRESS SPACE AFTER PRINT
  87. * SPACE 1 NO LINE CONTROL
  88. * OTHER 1 NO LINE CONTROL
  89. *
  90. * ANY FORMAT CONTROL OTHER THAN *Q*, *R*, *S*, AND *T*
  91. * ARE PROCESSED ONCE FOR THE LINE PRINTED.
  92. *
  93. * IF THE FIRST TWO CHARACTERS OF THE LINE ARE *PM* THEN
  94. * THE MESSAGE TEXT ON THE REMAINDER OF THE LINE WILL BE
  95. * DISPLAYED ON THE *I* DISPLAY AND THE PRINTING OF THE
  96. * FILE WILL BE HALTED UNTIL THE OPERATOR ENTERS A
  97. * *CONTINUE* COMMAND. *PM* MESSAGE PROCESSING WILL BE
  98. * ALLOWED ONLY FOR USERS THAT HAVE THE *CBIO* VALIDATION
  99. * PARAMETER SET IN *AACW*.
  100. SPACE 4,10
  101. *** 3446/415 DRIVER CHARACTERISTICS.
  102. *
  103. * HOLLERITH CARDS ARE PUNCHED FROM A LINE CONSISTING OF UP TO
  104. * 90 CHARACTERS. HOWEVER, ONLY THE FIRST 80 CHARACTERS
  105. * OF THE LINE ARE ACTUALLY PUNCHED. THE DISPLAY CODE
  106. * TO O26/O29 CONVERSION IS ACCOMPLISHED BY A
  107. * DISPLAY CODE TO BINARY COLUMN IMAGE CONVERSION IN THE
  108. * DRIVER. THE CARD IS THEN PUNCHED IN BINARY MODE
  109. * ON THE 3446.
  110. *
  111. * BINARY DATA ARE PUNCHED IN THE FOLLOWING FORMAT
  112. * COLUMN 1 = WORD COUNT AND BINARY CARD INDICATOR (79)
  113. * COLUMN 2 = BINARY DATA CHECKSUM MODULO 4095
  114. * COLUMNS 3 - 77 = 15 CENTRAL WORDS OF DATA
  115. * COLUMN 78 = BLANK
  116. * COLUMNS 79 - 80 = 24 BIT BINARY CARD SEQUENCE NUMBER
  117. *
  118. * ABSOLUTE BINARY DATA ARE PUNCHED 16 CENTRAL WORDS/CARD WITH
  119. * NO SPECIAL PUNCHES.
  120. *
  121. * END OF RECORD CARDS CONTAIN A 7/8/9 PUNCH IN COLUMN 1
  122. * AND THE REMAINDER OF THE CARD IS BLANK.
  123. * END OF FILE CARDS CONTAIN A 6/7/9 PUNCH IN COLUMN 1
  124. * AND THE REMAINDER OF THE CARD IS BLANK.
  125. *
  126. * CARDS OFFSET ARE AS FOLLOWS -
  127. * 1. ALL END OF RECORD CARDS.
  128. * 2. THE END OF INFORMATION CARD.
  129. * 3. A CARD ON WHICH A COMPARE ERROR WAS DETECTED WILL BE
  130. * OFFSET AND ALSO THE FOLLOWING CARD. THESE 2 CARDS WILL
  131. * BE REPUNCHED UNTIL NO ERROR IS DETECTED.
  132. SPACE 4,10
  133. *** 3447/405 DRIVER CHARACTERISTICS.
  134. *
  135. * HOLLERITH CARDS ARE READ WITH TRAILING SPACES DELETED.
  136. * UP TO 80 CHARACTERS MAY BE TRANSFERRED TO THE CM BUFFER.
  137. * HOLLERITH TO DISPLAY CODE TRANSLATION IS ACCOMPLISHED BY
  138. * VERIFYING AND CONVERTING THE HOLLERITH DATA TO EXTERNAL BCD
  139. * FOLLOWED BY A BCD TO DISPLAY CONVERSION IN THE DRIVER.
  140. * ILLEGAL HOLLERITH CODES ARE TRANSLATED AS BLANKS.
  141. * HOLLERITH CONVERSION MAY BE CHANGED BY THE USE OF A CARD WITH
  142. * 5/7/9 PUNCHES IN COLUMN 1 AND THE CONVERSION MODE IN
  143. * COLUMN 2. THE ASSUMED MODE IS O26. A MODE CHANGE IS IN
  144. * EFFECT UNTIL CHANGED.
  145. *
  146. * CONVERSION MODE PUNCHES IN COLUMN 2 -
  147. * BLANK O26
  148. * 9 O29
  149. * 4/5/6/7/8/9 LITERAL INPUT
  150. * CARDS ARE READ IN BINARY FORMAT WITH NO CONVERSION
  151. * OR CHECKING UNTIL A CARD WHICH IS IDENTICAL IN ALL
  152. * 80 COLUMNS IS READ.
  153. *
  154. * HOLLERITH CONVERSION MAY ALSO BE SIGNALLED BY PUNCHING
  155. * *26* OR *29* IN COLUMNS 79 AND 80 OF THE FOLLOWING CARDS -
  156. * JOB CARD
  157. * EOR (7/8/9) CARD
  158. * EOF (6/7/9) CARD
  159. *
  160. * BINARY CARDS MUST CONFORM TO THE ABOVE SPECIFICATION FOR
  161. * PUNCHED BINARY DATA.
  162. *
  163. * AN END OF RECORD CONSISTS OF A CARD WITH 7/8/9 PUNCHES IN
  164. * COLUMN 1.
  165. * AN END OF FILE CONSISTS OF A CARD WITH 6/7/9 PUNCHES IN
  166. * COLUMN 1.
  167. * AN END OF INFORMATION CONSISTS OF A CARD WITH 6/7/8/9
  168. * PUNCHES IN COLUMN 1.
  169. * IN ANY CASE, THE REMAINDER OF THE CARD IS NOT CONSIDERED
  170. * AS DATA.
  171. SPACE 4,10
  172. *** 5870/5970 DRIVER CHARACTERISTICS.
  173. *
  174. * THE DRIVER FOR THE 5870/5970 IS SIMILAR TO THE 3555/512 - 580
  175. * DRIVER.
  176. *
  177. * THE FIRST CHARACTER OF THE PRINT LINE CONTAINS THE FORMAT
  178. * CONTROL CHARACTER. THIS CHARACTER IS NOT PRINTED. THE PRINT
  179. * LINE CONSISTS OF UP TO 150 CHARACTERS.
  180. *
  181. * THE FORMAT CONTROL CHARACTERS, THE NUMBER OF LINES CHARGED
  182. * FOR THEM, AND THEIR FUNCTION FOLLOWS -
  183. *
  184. * CHAR. LINE CHARGE FUNCTION
  185. * C 1 SKIP TO FORMAT CHANNEL 6 AFTER PRINT
  186. * D 1 SKIP TO FORMAT CHANNEL 5 AFTER PRINT
  187. * E 1 SKIP TO FORMAT CHANNEL 4 AFTER PRINT
  188. * F 1 SKIP TO FORMAT CHANNEL 3 AFTER PRINT
  189. * G 1 SKIP TO FORMAT CHANNEL 2 AFTER PRINT
  190. * H 1 SKIP TO FORMAT CHANNEL 1 AFTER PRINT
  191. * Q 0 LINE IGNORED
  192. * R 0 LINE IGNORED
  193. * S 0 LINE IGNORED
  194. * T 0 LINE IGNORED
  195. * V 0 LINE IGNORED
  196. * 0 2 SPACE 1 LINE BEFORE PRINT
  197. * 1 1 EJECT PAGE BEFORE PRINT
  198. * 2 1 ADVANCE TO BOTTOM OF FORM BEFORE PRINT
  199. * 3 1 SKIP TO FORMAT CHANNEL 6 BEFORE PRINT
  200. * 4 1 SKIP TO FORMAT CHANNEL 5 BEFORE PRINT
  201. * 5 1 SKIP TO FORMAT CHANNEL 4 BEFORE PRINT
  202. * 6 1 SKIP TO FORMAT CHANNEL 3 BEFORE PRINT
  203. * 7 1 SKIP TO FORMAT CHANNEL 2 BEFORE PRINT
  204. * 8 1 SKIP TO FORMAT CHANNEL 1 BEFORE PRINT
  205. * + 1 SUPPRESS SPACE BEFORE PRINT
  206. * - 3 SPACE 2 LINES BEFORE PRINT
  207. * / 1 SUPPRESS SPACE AFTER PRINT
  208. * SPACE 1 NO LINE CONTROL
  209. * OTHER 1 NO LINE CONTROL
  210. *
  211. * IF THE FIRST TWO CHARACTERS OF THE LINE ARE *PM*, THEN
  212. * THE REMAINDER OF THE LINE, UP TO 80 CHARACTERS, ARE
  213. * CONSIDERED A MESSAGE FOR THE 5870/5970. THIS IS ONLY
  214. * ALLOWED FOR USERS WITH THE *CBIO* VALIDATION.
  215. SPACE 4,10
  216. *** ERRLOG MESSAGES.
  217. *
  218. *
  219. * *EQXXX CCC/NIP STATUS ERROR.* = A STATUS OF 5XXX WAS
  220. * RETURNED FROM THE CCC.
  221. *
  222. * *EQXXX CHANNEL PARITY ERROR.* = A PARITY ERROR WAS DETECTED
  223. * ON A CONVERTER OR EQUIPMENT.
  224. *
  225. * *EQXXX COMPARE ERROR.* = COMPARE ERROR WAS DETECTED.
  226. *
  227. * *EQXXX CONTROLLER HUNG BUSY.* = THE CONTROLLER DOES NOT DROP
  228. * BUSY STATUS.
  229. *
  230. * *EQXXX FEED FAILURE.* = CARD FEED PROBLEM WAS DETECTED.
  231. *
  232. * *EQXXX FUNCTION TIMEOUT* = A FUNCTION TIMEOUT WAS DETECTED
  233. * ON A CONVERTER OR EQUIPMENT FUNCTION.
  234. *
  235. * *EQXXX INCOMPLETE DATA TRANSFER.* = AN INCOMPLETE DATA
  236. * TRANSFER WAS DETECTED.
  237. *
  238. * *EQXXX INTERNAL/EXTERNAL REJECT.* = AN INTERNAL OR EXTERNAL
  239. * REJECT WAS DETECTED.
  240. *
  241. * *EQXXX NNNN PRINT ERRORS.* = PRINT ERRORS DETECTED.
  242. *
  243. * *EQXXX PFC ERROR.* = ERROR LOADING PFC MEMORY.
  244. *
  245. * *EQXXX PRINT ERROR LIMIT EXCEEDED.* = PRINT ERROR LIMIT WAS
  246. * EXCEEDED.
  247. *
  248. * *EQXXX TRANSMISSION PARITY ERROR.* = A TRANSMISSION PARITY
  249. * ERROR WAS DETECTED.
  250. *
  251. * *EQXXX TURNED OFF BY SYSTEM.* = FAULTY EQUIPMENT
  252. * WAS TURNED OFF BY THE SYSTEM.
  253. *
  254. * WHERE -
  255. * EQ = EQUIPMENT MNEMONIC.
  256. * XXX = EST ORDINAL.
  257. * NNNN = NUMBER OF PRINT ERRORS.
  258. SPACE 4,10
  259. *** OPERATOR *I* DISPLAY STATUS MESSAGES.
  260. *
  261. * *NOT READY.* = DEVICE IS NOT READY.
  262. *
  263. * *NO PAPER.* = PRINTER HAS A PAPER OUT CONDITION.
  264. *
  265. * *COMPARE ERROR.* = CARD PUNCH HAS A COMPARE ERROR.
  266. *
  267. * *FEED FAILURE.* = CARD PUNCH HAS A CARD FEED PROBLEM.
  268. *
  269. * *HOLD.* = DEVICE IS SKIPPING OR HAS BEEN PLACED IN HOLD.
  270. *
  271. * *PM MESSAGE.* = PRINTER IS WAITING; CHECK *PM* MESSAGE
  272. * THEN ENTER *CONTINUE,EST.* FROM *DSD*.
  273. *
  274. * *PRINT ERROR.* = CORRECT PRINTER ERROR THEN ENTER
  275. * *CONTINUE,EST.* FROM *DSD*.
  276. *
  277. * *RE-RD CD COMPARE ERR.* = CARD READER HAS A CARD COMPARE
  278. * ERROR. OPERATOR SHOULD RE-READ THE LAST CARD IN THE OUTPUT
  279. * HOPPER.
  280. *
  281. * *ADV 1 CD RE-RD 3 CDS.* = CARD READER HAS ENCOUNTERED A
  282. * TRANSMISSION PARITY ERROR, AN INCOMPLETE DATA TRANSFER, OR A
  283. * BINARY CHECKSUM ERROR. IN ORDER TO RECOVER, THE OPERATOR
  284. * MUST ADVANCE THE NEXT CARD IN THE INPUT HOPPER, AND THEN
  285. * RE-READ THE LAST 3 CARDS IN THE OUTPUT HOPPER.
  286. *
  287. * *INTERVENTION NEEDED.* = THE 5870/5970 REQUIRES OPERATOR
  288. * INTERVENTION.
  289. SPACE 4,10
  290. *** CHANNEL ERROR PROCESSING.
  291. *
  292. *
  293. * THE FOLLOWING CHANNEL ERRORS ARE RETRIED *ERRL* TIMES -
  294. * CONNECT REJECT.
  295. * FUNCTION REJECT.
  296. * TRANSMISSION PARITY ERROR.
  297. * INCOMPLETE DATA TRANSFER.
  298. * THE FOLLOWING CHANNEL ERRORS ARE NOT RETRIED -
  299. * 6681 FUNCTION TIMEOUT.
  300. * EQUIPMENT FUNCTION TIMEOUT.
  301. * AFTER THE RETRY LIMIT IS REACHED OR AFTER A FUNCTION
  302. * TIMEOUT IS DETECTED, ERROR HANDLING PROCEEDS AS FOLLOWS -
  303. * OUTPUT FILES ARE REQUEUED.
  304. * TRACKS FOR INPUT FILES ARE DROPPED.
  305. * THE FAULTY EQUIPMENT IS TURNED OFF AND DROPPED.
  306. * ERROR LOG MESSAGES ARE ISSUED.
  307. SPACE 4,10
  308. *** *1CD* - *QAP* INTERFACE.
  309. *
  310. *
  311. * *1CD* AND *QAP* COMMUNICATE PRIMARILY VIA BYTE 4 OF THE
  312. * FIRST WORD OF THE FET. WHEN *1CD* MAKES A REQUEST,
  313. * THIS BYTE IS SET WITH THE REQUEST CODE AND BIT 0
  314. * IS CLEARED, INDICATING THAT THIS BUFFER
  315. * IS BUSY. UPON COMPLETION OF THE REQUESTED TASK,
  316. * QAP* SETS BIT 0 OF THIS BYTE, INDICATING THE
  317. * BUFFER IS NO LONGER BUSY.
  318. SPACE 4,10
  319. *** NOTES.
  320. *
  321. *
  322. * (1) LINES PRODUCING PRINTER *PRINT ERRORS* ARE FLAGGED
  323. * ON THE LISTING, AND THEN REPRINTED. THE OPERATOR MAY
  324. * BYPASS ERROR PROCESSING BY TURNING ON SSW1, OR BY MANUALLY
  325. * DEPRESSING THE *ERROR OVERRIDE* SWITCH. THE LATTER
  326. * INHIBITS PRINT ERROR ON THE STATUS LINE, AND AS SUCH WILL
  327. * SUPPRESS STATISTICS REPORTED IN THE *ERRLOG*.
  328. * IF ERROR PROCESSING IS NOT BYPASSED AND MORE THAN
  329. * *PERL* CONSECUTIVE LINES HAVE *PRINT ERRORS*, THEN
  330. * THE FILE IS REQUEUED AND THE PRINTER IS TURNED OFF.
  331. *
  332. * (2) INCOMPLETE DATA TRANSFERS AND TRANSMISSION PARITY
  333. * ERRORS DETECTED WHILE PUNCHING CARDS ARE COUNTED AND
  334. * RETRIED A MAXIMUM OF *ERRL* TIMES PER CARD IMAGE.
  335. * IF *ERRL* IS REACHED, THEN THE PUNCH FILE WILL BE
  336. * REQUEUED AND THE EQUIPMENT TURNED OFF. IF *ERRL*
  337. * IS NOT REACHED, ONLY THE LAST BAD CARD IS OFFSET FOR
  338. * A GIVEN CARD IMAGE, INDEPENDENT OF THE NUMBER OF
  339. * RETRIES FOR THAT CARD IMAGE.
  340. *
  341. * (3) THE CARD PUNCH ERROR COUNT IS PUNCHED IN COLUMN
  342. * 40 OF THE EOI CARD.
  343. SPACE 4,10
  344. ** PROGRAMMING CONSIDERATIONS.
  345. *
  346. *
  347. * (1) BEFORE ADDING CODE TO THIS ROUTINE, ONE SHOULD
  348. * UNDERSTAND WHAT HAPPENS ON A FUNCTION REJECT OR WAIT NOT
  349. * BUSY CONDITION. SEE SUBROUTINES *FCN* AND *WNB*.
  350. *
  351. * (2) THE PROGRAMMER SHOULD BE AWARE OF THE IMPLICATIONS
  352. * OF JUMPING TO MANAGER FROM A SUBROUTINE. IF THAT
  353. * SUBROUTINE IS CALLED MORE THAN ONCE, ANOTHER EQUIPMENT
  354. * DRIVEN BY THIS SAME *1CD* COULD CONCEIVABLY CALL THE
  355. * SAME SUBROUTINE FROM A DIFFERENT LOCATION. THUS, THE
  356. * RETURN ADDRESS WOULD NOT BE CORRECT FOR THE EQUIPMENT
  357. * THAT FIRST CALLED THE SUBROUTINE WHEN IT RESUMES
  358. * PROCESSING.
  359. SPACE 4,10
  360. *** PROGRAMS CALLED.
  361. *
  362. * CIO - COMBINED I/O.
  363. * QAP - QUEUE AUXILIARY PROCESSOR.
  364. SPACE 4,10
  365. * COMMON DECKS.
  366.  
  367.  
  368. *CALL COMPMAC
  369. LIST X
  370. *CALL COMSBIO
  371. LIST *
  372. *CALL COMSCPS
  373. *CALL COMSJIO
  374. *CALL COMSPIM
  375. SPACE 4,10
  376. **** DIRECT CELL USAGE.
  377.  
  378.  
  379. DB EQU 15 DATA BUFFER ADDRESS
  380. FC EQU 16 FUNCTION CODE
  381. PA EQU 17 PROCESSING ADDRESS
  382. FP EQU 20 - 24 FILE PARAMETERS (FET+5) (5 LOCATIONS)
  383. BF EQU FP BUFFER POINT OFFSET
  384. BI EQU 25 PP BUFFER CONTROL INDEX
  385. DA EQU 26 DATA ADDRESS
  386. BR EQU 27 BUSY RETURN
  387. F2 EQU 30 - 34 FILE PARAM WORD 2 (FET+12) (5 LOCATIONS)
  388. CS EQU F2 CONVERTER STATUS (FET+12 - BYTE 0)
  389. ST EQU F2+1 EQUIPMENT STATUS (FET+12 - BYTE 1)
  390. UL EQU F2+3 - F2+4 USER LIMIT (FET+12 - BYTES 3 AND 4)
  391. CR EQU 35 CHANNEL RESERVED
  392. EQ EQU 36 EQUIPMENT TYPE NUMBER
  393. TL EQU 37 CONVERSION TABLE LENGTH
  394. BS EQU 40 - 44 BUFFER STATUS (5 LOCATIONS)
  395. SB EQU 46 STATUS BLOCK WRITE LOCKOUT
  396. BL EQU 47 EQUIPMENT STATUS BLOCK LENGTH
  397. FA EQU 57 ADDRESS OF FST ENTRY
  398. FT EQU 60 - 61 FIRST ADDRESS OF CM BUFFER (2 LOCATIONS)
  399. IN EQU 62 - 63 NEXT INPUT ADDRESS (2 LOCATIONS)
  400. OT EQU 64 - 65 NEXT OUTPUT ADDRESS (2 LOCATIONS)
  401. LM EQU 66 - 67 LIMIT ADDRESS OF CM BUFFER (2 LOCATIONS)
  402. SPACE 4,10
  403. * ASSEMBLY CONSTANTS.
  404.  
  405.  
  406. * PROGRAMMERS NOTE - THE DEFAULT CHANNEL SHOULD REMAIN 16B.
  407. * THE MAIN LOOP OF *1CD* ASSUMES THAT A CHANNEL IS ALREADY
  408. * RESERVED AND IT WILL BE DROPPED WHEN NECESSARY. IN ORDER TO
  409. * ELIMINATE SPECIAL CASE CODE, CHANNEL 16B IS USED IN PRESET
  410. * SINCE IT IS DEFINED TO BE NON-DEDICATED AND MAY ALWAYS BE
  411. * REQUESTED AND DROPPED. USE OF ANY OTHER CHANNEL MAY RESULT
  412. * IN DEADLOCK WITH PP PROGRAMS WHICH MAY USE THAT CHANNEL IN A
  413. * DEDICATED MODE (SUCH AS *1TD*).
  414.  
  415. CH EQU 16B CHANNEL NUMBER
  416. BUFS EQU 2 BUFFER TABLE ENTRY LENGTH
  417. ****
  418. SPACE 4,10
  419. * CONVERSION TABLE AREA.
  420.  
  421.  
  422. CTID EQU MSFW
  423. CTBL EQU CTID+1
  424. CTBLL EQU CTID+5*CTLN
  425. TITLE MACRO DEFINITIONS.
  426. SPACE 4,10
  427. ** MACRO DEFINITIONS.
  428. FMTC SPACE 4,10
  429. ** FMTC C,L,F1,F2
  430. *
  431. * GENERATE ENTRY IN FORMAT CONTROL TABLE.
  432. *
  433. *T, 12/ASCII8
  434. *T+1, 6/L,6/F2
  435. * ASCII8 = 12-BIT ASCII CODE.
  436. * C = CONTROL CHARACTER IN 12 BIT ASCII, RIGHT-
  437. * JUSTIFIED.
  438. * L = NUMBER OF LINES CHARGED THRU ACCOUNTING.
  439. * F2 = FUNCTION CODE FOR 512/580.
  440.  
  441.  
  442. FMTC MACRO C,L,F1,F2
  443. NOREF YY
  444. CODE ASCII
  445. YY SET 1R_C+40B
  446. VFD 12/YY
  447. CODE *
  448. VFD 6/L,6/F2
  449. ENDM
  450. NFMTC SPACE 4,15
  451. ** NFMTC - NON-IMPACT PRINTER FORMAT CONTROL TABLE.
  452. *
  453. * NFMTC IS USED TO GENERATE A ENTRY IN THE FORMAT CONTROL
  454. * TABLE FOR A NON-IMPACT PRINTER.
  455. *
  456. * NFMTC C,NP,L,F1,F2
  457. *
  458. * ENTRY *C* = CONTROL CHARACTER.
  459. * *NP* = IF PRESENT, DO NOT PRINT LINE.
  460. * *L* = ADDITIONAL LINES TO CHARGE.
  461. * *F1* = FUNCTION TO ISSUE TO CCC.
  462. * *F2* = ADDITIONAL FUNCTION TO ISSUE AFTER *F1*.
  463.  
  464.  
  465. PURGMAC NFMTC
  466.  
  467. NFMTC MACRO C,NP,L,F1,F2
  468. MACREF NFMTC
  469. NOREF YY
  470. CODE ASCII
  471. YY SET 1R_C+40B
  472. VFD 12/YY
  473. CODE *
  474. VFD 6/L
  475. .A IFC EQ,$NP$$
  476. VFD 6/0
  477. .A ELSE
  478. VFD 6/1
  479. .A ENDIF
  480. .A IFC EQ,$F2$$
  481. VFD 12/F1,12/0
  482. .A ELSE
  483. VFD 12/F2,12/F1
  484. .A ENDIF
  485. NFMTC ENDM
  486. RELM SPACE 4,10
  487. ** RELM
  488. * REDEFINE -M- TYPE DATA INSTRUCTIONS FOR AUTOMATIC BIAS
  489. * BY *EQSB* IF -M- PART OF ADDRESS .LE. *CMDA*.
  490. * ORIGINAL FORM AVAILABLE WITH *.* SUFFIX.
  491.  
  492.  
  493. RELM MACRO OPC
  494. OPC. OPSYN OPC
  495. OPC= MACRO M,D
  496. IF DEF,M
  497. IFLE M,CMDA
  498. IFC EQ,*D**
  499. OPC. M+EQSB
  500. ELSE
  501. OPC. M,D
  502. ENDIF
  503. OPC= ENDM
  504. OPC OPSYN OPC=
  505. RELM ENDM
  506.  
  507.  
  508. RELM LDM
  509. RELM ADM
  510. RELM SBM
  511. RELM LMM
  512. RELM STM
  513. RELM RAM
  514. RELM AOM
  515. RELM SOM
  516. STR SPACE 4,10
  517. ** STR - GENERATE ASCII STRING.
  518. *
  519. * STR IS USED TO GENERATE A STRING OF ASCII CHARACTERS.
  520. * THE CHARACTERS ARE STORED ONE PER BYTE, RIGHT-ADJUSTED.
  521. *
  522. * STR (ABCD)
  523. *
  524. * ENTRY *ABCD* = STRING TO GENERATE.
  525.  
  526.  
  527. PURGMAC STR
  528.  
  529. STR MACRO STRING
  530. MACREF STR
  531. NOREF .1,.2,.3
  532. .B MICRO 1,,(STRING(
  533. .1 MICCNT .B
  534. .2 SET 1
  535. CODE ASCII
  536. DUP .1,4
  537. .C MICRO .2,1,#".B"#
  538. .3 SET 1R".C"+40B
  539. VFD 12/.3
  540. .2 SET .2+1
  541. CODE *
  542. STR ENDM
  543. SPACE 4,10
  544. ** COMMON DECKS.
  545.  
  546.  
  547. *CALL COMPCHI
  548. TITLE MANAGER.
  549. ICD SPACE 4,10
  550. ** MGR - EQUIPMENT MANAGER.
  551.  
  552.  
  553. ORG PPFW
  554.  
  555. ICD LJM PRS PRESET PROGRAM
  556. MGR EQU *-1
  557. STM CMAR SAVE -A- REGISTER
  558. LDM MGR STORE PROGRAM ADDRESS
  559. STM CMPA
  560. LDN FRJI CLEAR FUNCTION REJECT RETRY COUNT
  561. RJM CRV
  562. MGRA LDN 0 RESET TIMEOUT COUNTER
  563. * LDN 1 (1X PP SPEED)
  564. * LDN 2 (2X PP SPEED)
  565. * LDN 4 (4X PP SPEED)
  566. STM CMTC
  567.  
  568. * *MGR1* IS A SECONDARY ENTRY POINT FOR *MGR*.
  569.  
  570. MGR1 LDD BR STORE BUSY RETURN
  571. STM CMBR
  572.  
  573. * PAUSE FOR STORAGE MOVE / CHANNEL REQUESTED.
  574.  
  575. PSE LDN CMCL READ STORAGE MOVE CONTROL
  576. CRD CM
  577. LDD CP CHECK CONTROL POINT
  578. SHN -7
  579. LMD CM
  580. ZJN PSE2 IF MOVE REQUESTED
  581. LCN 0
  582. STD T0
  583. LDD CR
  584. STD T1
  585. PSE1 AOD T0 DETERMINE CHANNEL WORD ADDRESS
  586. LCN 5
  587. RAD T1
  588. PJN PSE1 IF CORRECT CHANNEL WORD NOT REACHED
  589. LDC 0
  590. PSEA EQU *-1 (CHANNEL TABLE ADDRESS)
  591. ADD T0
  592. CRD CM
  593. LDM CM+5,T1 CHECK CHANNEL
  594. SHN -13
  595. ZJN MGR2 IF CHANNEL NOT REQUESTED
  596. PSE2 LDD CR RELEASE CHANNEL
  597. DCHAN
  598. LDD CR RESERVE CHANNEL
  599. RCHAN
  600. * LDN 0 CLEAR EQUIPMENT COUNTER
  601. MGR2 STD T7
  602. LDD RA READ REQUEST WORD
  603. SHN 6
  604. ADN DRQR
  605. CRD CM
  606. LDD SB
  607. NJN MGR2.1 IF STATUS BLOCK INTERLOCKED
  608. RJM SFA
  609. ADN EDSO STORE STATUS BLOCK
  610. CWM EQSB,BL
  611. MGR2.1 LDD CM
  612. LMD IR+2
  613. NJN MGR3 IF NO REQUEST
  614. RJM SEA SET EQUIPMENT ASSIGNMENT
  615. MGR3 LDN BUFS ADVANCE BUFFER ADDRESS
  616. RAD BI
  617. LMC CBUFL
  618. NJN MGR4 IF NOT END OF BUFFERS
  619. LCN CBUFL-CBUF
  620. RAD BI
  621. MGR4 LDI BI
  622. ADM 1,BI
  623. NJN MGR5 IF EQUIPMENT ACTIVE
  624. AOD T7 ADVANCE EQUIPMENT COUNTER
  625. LMN MEQD
  626. NJN MGR3 IF NOT LAST EQUIPMENT
  627. LDD CR RELEASE CHANNEL
  628. DCHAN
  629. LDD RA
  630. SHN 6
  631. ADD IR+2
  632. CWD CM
  633. MONITOR DPPM DROP PP
  634. LJM PPR EXIT TO PP RESIDENT
  635.  
  636. MGR5 RJM SFA READ FET PARAMETERS
  637. CRD BS BUFFER STATUS
  638. ADN QAPO
  639. CRD T1 QUEUE ACCESS PARAMETER BLOCK
  640. ADN FPW2-QAPO
  641. CRD F2 FILE PARAMETER WORD 2
  642. SBN FPW2-5
  643. CRD FP FILE PARAMETER WORD 1 (FET+5)
  644. SBN 1
  645. CRD LM-3 LIMIT
  646. CRD T6
  647. SBN 1
  648. CRD OT-3 OUT
  649. SBN 1
  650. CRD IN-3 IN
  651. SBN 1
  652. CRD CM FIRST
  653. ADN EDSO-1
  654. CRM EQSB,BL
  655. LDM CMEN SET EQUIPMENT TYPE
  656. LPN 7
  657. STD EQ
  658. LDM CMBR SET BUSY RETURN
  659. STD BR
  660. LDD CM+3
  661. LPN 37
  662. STD FT
  663. LDD CM+4
  664. STD FT+1
  665. LDD BS+4
  666. SHN 21-0
  667. MJN MGR6 IF FILE NOT BUSY
  668. LDD T1+4
  669. SHN 21-0
  670. PJN MGR6 IF QUEUE ACCESS PARAMETER BLOCK BUSY
  671. AOD BS+4 SET FILE NOT BUSY
  672. SOD T1+4 SET QUEUE ACCESS PARAMETER BLOCK BUSY
  673. RJM SFA WRITE BUFFER STATUS
  674. CWD BS
  675. ADN QAPO WRITE QUEUE ACCESS PARAMETER BLOCK
  676. CWD T1
  677. MGR6 LDD T6 SET FST ADDRESS
  678. ZJN MGR7 IF NO FNT ENTRY
  679. SBN FSTL
  680. MGR7 STD FA
  681. LDM CMSB SET STATUS BLOCK INTERLOCK FLAG
  682. LPN 2
  683. STD SB
  684. NJN MGR9 IF INTERLOCKED
  685. LDM CMDB SET DATA ADDRESS
  686. STD DA
  687. NFA BF,R READ BUFFER POINT WORD
  688. CRD CM
  689. LDD CM+4 CHECK FOR OPERATOR REQUEST
  690. LPN 77
  691. ZJN MGR8 IF NO REQUEST
  692. RJM POF PROCESS OPERATOR REQUEST
  693. MGR8 RJM PMR PROCESS MESSAGE REQUEST
  694. NJN MGR9 IF REQUEST PENDING
  695. RJM ** ENTER SUB-DRIVER PROCESSOR
  696. MGRB EQU *-1 (SET BY *PRS*)
  697. * RJM /3CZ/SDP
  698. * RJM /3CY/SDP
  699. MGR9 LJM PSE CHECK FOR STORAGE MOVE
  700. TEQD SPACE 4,10
  701. ** TEQD - TABLE OF EQUIPMENT DRIVERS.
  702. *
  703. * INDEXED BY EQUIPMENT TYPE CODE.
  704.  
  705.  
  706. TEQD INDEX
  707. INDEX LPDT,/3CZ/LPD
  708. INDEX CPDT,/3CZ/CPD
  709. INDEX CRDT,/3CZ/CRD
  710. INDEX NPDT,/3CY/NPD
  711. INDEX MXDT
  712. TDCM SPACE 4,10
  713. ** TDCM - TABLE OF DEFAULT CONVERSION MODES.
  714. *
  715. * INDEXED BY EQUIPMENT TYPE CODE.
  716.  
  717.  
  718. TDCM INDEX
  719. INDEX LPDT,CDX8
  720. INDEX CPDT,CDXH
  721. INDEX CRDT,C6XD
  722. INDEX NPDT,CDX8
  723. INDEX MXDT
  724. TNRP SPACE 4,10
  725. ** TNRP - TABLE OF *NOT READY* PROCESSORS.
  726. *
  727. * INDEXED BY EQUIPMENT TYPE CODE.
  728.  
  729.  
  730. TNRP INDEX
  731. INDEX LPDT,/3CZ/LPE
  732. INDEX CPDT,/3CZ/CPE
  733. INDEX CRDT,/3CZ/CRE
  734. INDEX NPDT,/3CY/NPE
  735. INDEX MXDT
  736. SEA SPACE 4,15
  737. ** SEA - SET EQUIPMENT ASSIGNMENT.
  738. *
  739. * ENTRY (CM - CM+4) = EQUIPMENT ASSIGNMENT.
  740. *
  741. * EXIT BUFFER INITIALIZED.
  742. *
  743. * USES EQ, IR+3, T1, CM - CM+4.
  744. *
  745. * CALLS CLB, SFA.
  746. *
  747. * MACROS MONITOR.
  748.  
  749.  
  750. SEA2 MONITOR HNGM HANG PP
  751.  
  752. SEA SUBR ENTRY/EXIT
  753. LDD CM+1 SET EQUIPMENT TYPE
  754. LPN 7
  755. STD EQ
  756. SBN MXDT
  757. PJN SEA2 IF DRIVER NOT AVAILABLE
  758. LDC CBUF-BUFS SET BUFFER ADDRESS
  759. STD T1
  760. SEA1 LDN BUFS ADVANCE BUFFER ADDRESS
  761. RAD T1
  762. LMC CBUFL
  763. ZJN SEAX IF ALL BUFFERS BUSY
  764. LDI T1
  765. ADM 1,T1
  766. NJN SEA1 IF BUFFER IN USE
  767. STD SB
  768. LDD T1
  769. STD BI
  770. LDD CM+3 SET BUFFER ADDRESS
  771. STI BI
  772. LDD CM+4
  773. STM 1,BI
  774. RJM SFA READ DRIVER STATUS BLOCK
  775. ADN EDSO
  776. CRM EQSB,BL
  777. RJM CLB CLEAR STATUS BLOCK
  778. LDN ZERL CLEAR REQUEST
  779. CRD CM
  780. AOD IR+3 ADVANCE ENTRY COUNT
  781. LDD RA UPDATE EQUIPMENT COUNT
  782. SHN 6
  783. ADD IR+2
  784. CWD IR
  785. SBD IR+2
  786. ADN DRQR
  787. CWD CM
  788. LJM MGR1 STORE STATUS BLOCK
  789. TITLE PROCESS OPERATOR REQUESTS.
  790. CPH SPACE 4,10
  791. ** CPH - CLEAR PRINTER HOLDING.
  792. *
  793. * EXIT TO *POF1*.
  794.  
  795.  
  796. CPH LDN 0 CLEAR HOLD FLAG
  797. STM CMHF
  798. * UJN POF1 PROCESS OPERATOR FLAG
  799. POF SPACE 4,15
  800. ** POF - PROCESS OPERATOR FLAG.
  801. *
  802. * ENTRY (A) = OPERATOR REQUEST.
  803. * (EQ) = DEVICE TYPE.
  804. * (CM - CM+4) = BUFFER POINT WORD.
  805. *
  806. * USES CM+4, T1, T3.
  807. *
  808. * CALLS PROCESSOR WITH THE FOLLOWING CONDITIONS -
  809. * (EQ) = DEVICE TYPE.
  810. * (T3) = REQUEST PARAMETER.
  811. * BUFFER NOT BUSY.
  812. *
  813. * MACROS NFA.
  814.  
  815.  
  816. POF1 LDM CMER SET REPEAT COUNT
  817. SHN 6
  818. STD CM+4
  819. NFA BF,R STORE BUFFER POINT WORD
  820. CWD CM
  821.  
  822. POF SUBR ENTRY/EXIT
  823. STD T1 SET REQUEST
  824. SBN FPRE
  825. PJN POF1 IF ILLEGAL REQUEST
  826. LDD BS+4
  827. LPN 1
  828. ZJN POFX IF BUFFER BUSY
  829. LDM CMPA
  830. LMC TOPA
  831. ZJN POFX IF TERMINATION PROCESSING
  832. LDD CM+4 SET REQUEST PARAMETER
  833. SHN -6
  834. STD T3
  835. LDM TOPF,T1 PROCESS REQUEST
  836. STD T1
  837. LJM 0,T1 EXIT TO PROCESSOR
  838. CNT SPACE 4,10
  839. ** CNT - CONTINUE PRINTING.
  840. *
  841. * EXIT TO *POFX*.
  842. *
  843. * CALLS SDM.
  844.  
  845.  
  846. CNT LDN 0
  847. STM CMHF
  848. LDN CNTM SEND DAYFILE MESSAGE
  849. RJM SDM
  850. CNT1 UJN POFX RETURN
  851. HLD SPACE 4,10
  852. ** HLD - HOLD PRINTING.
  853. *
  854. * EXIT TO *CNT1*.
  855. *
  856. * CALLS MSG, SDM.
  857.  
  858.  
  859. HLD LDN HLDM
  860. RJM SDM SEND DAYFILE MESSAGE
  861. LDN EHLD
  862. RJM MSG ISSUE BUFFER POINT MESSAGE
  863. LDM CMHF
  864. SCN 1 SET HOLD FLAG
  865. HLD1 LMN 1
  866. STM CMHF
  867. HLD2 UJN CNT1 RETURN
  868. PPF SPACE 4,10
  869. ** PPF - POSITION PRINT FILE.
  870. *
  871. * EXIT TO *HLD1* IF DRIVER NOT HOLDING.
  872. * TO *HLD2* IF DRIVER HOLDING.
  873. *
  874. * USES CM - CM+4.
  875. *
  876. * CALLS CPS.
  877. *
  878. * MACROS NFA.
  879.  
  880.  
  881. PPF LDM CMHF CHECK DRIVER HOLDING
  882. LPN 2
  883. ZJN HLD1 IF DRIVER NOT HOLDING
  884. LDN ZERL SET UP BUFFER POINT PARAMETERS
  885. CRD CM
  886. LDN EHLD
  887. STD CM SET MESSAGE CODE
  888. LDM CMER
  889. STD CM+4 SET REPEAT COUNT
  890. NFA BF,R
  891. ADN 1 STORE BUFFER POINT WORD
  892. CWD CM
  893. LDC PORF+1000 PROCESS OPERATOR REQUEST
  894. RJM CPS
  895. UJN HLD2 RETURN
  896. RRN SPACE 4,10
  897. ** RRN - PROCESS RERUN.
  898. *
  899. * ENTRY (EQ) = DEVICE TYPE.
  900. *
  901. * EXIT TO *END2* IF CARD READER.
  902. * TO *TOP1* IF PUNCH OR PRINTER.
  903. *
  904. * CALLS SDM.
  905.  
  906.  
  907. RRN LDD EQ
  908. SBK CRDT
  909. ZJN END2 IF CARD READER
  910. LDN RRNM ISSUE RERUN MESSAGE
  911. RJM SDM
  912. * LDN 0 CLEAR MESSAGE REQUEST
  913. STM CMMR
  914. LDC RQFF+1000 REQUEUE FILE
  915. LJM TOP1 TERMINATE OPERATION
  916. END SPACE 4,10
  917. ** END - PROCESS *END*.
  918. *
  919. * ENTRY (T3) = NUMBER OF ENDS TO FORCE.
  920. *
  921. * EXIT TO *PSE*.
  922. *
  923. * USES T1, T3.
  924.  
  925. *
  926. * CALLS ECB, SDM, SFA.
  927.  
  928.  
  929. END LDD T3 FORCE ONE END
  930. NJN END1 IF .GE. ONE END
  931. AOD T3
  932. END1 AOM CMER DECREMENT REPEAT COUNT
  933. SBD T3
  934. PJN END2 IF REPEAT COUNT .GE. END COUNT
  935. ADN 1 CLEAR REPEAT COUNT
  936. RAD T3
  937. LDN 0 CLEAR REPEAT COUNT
  938. END2 STM CMER
  939. LDN ENDM SEND DAYFILE MESSAGE
  940. RJM SDM
  941. LDC 1031 SET EOI/EOF
  942. STD BS+4
  943. RJM SFA STORE BUFFER STATUS
  944. CWD BS
  945. RJM ECB EMPTY CENTRAL BUFFER
  946. LDM ENDA,EQ
  947. STM CMPA
  948. LJM PSE PAUSE
  949.  
  950.  
  951. ENDA INDEX *END* PROCESSOR
  952. INDEX LPDT,/3CZ/LPN PRINT DAYFILE
  953. INDEX CPDT,/3CZ/PED END OF FILE
  954. INDEX CRDT,TOP TERMINATE OPERATION
  955. INDEX NPDT,/3CY/NPN PRINT DAYFILE
  956. INDEX MXDT
  957. REP SPACE 4,15
  958. ** REP - PROCESS REPEAT.
  959. *
  960. * ENTRY (T3) = NUMBER OF REPEATS.
  961. *
  962. * EXIT TO *POFX*.
  963. *
  964. * USES T3.
  965. *
  966. * CALLS SDM.
  967.  
  968.  
  969. REP LDD T3
  970. NJN REP1 IF .GE. ONE REPEAT
  971. AOD T3
  972. REP1 RAM CMER ADVANCE REPEAT COUNT
  973. SHN -6
  974. ZJN REP2 IF REPEAT COUNT .LE. 77
  975. LDN 77
  976. STM CMER
  977. REP2 LDN REPM SEND DAYFILE MESSAGE
  978. RJM SDM
  979. REP3 LJM POFX RETURN
  980. SUP SPACE 4,10
  981. ** SUP - TOGGLE SUPPRESS FLAG.
  982. *
  983. * EXIT TO *REP3*.
  984. *
  985. * CALLS SDM.
  986.  
  987.  
  988. SUP LDM CMSF TOGGLE SUPPRESS FLAG
  989. LMN 4
  990. STM CMSF
  991. LDN SUPM SEND DAYFILE MESSAGE
  992. RJM SDM
  993. UJN REP3 RETURN
  994. TOPF SPACE 4,30
  995. ** TOPF - TABLE OF OPERATOR REQUESTS PROCESSORS.
  996. *
  997. * INDEXED BY REQUEST CODE. (DEFINED IN COMSBIO)
  998. * ONE WORD ENTRY IN FORMAT -
  999. *
  1000. *T, 12/ ADDR
  1001. * ADDR ADDRESS OF REQUEST PROCESSOR.
  1002.  
  1003.  
  1004. TOPF INDEX
  1005. INDEX ENDM,END END
  1006. INDEX REPM,REP REPEAT
  1007. INDEX SUPM,SUP SUPPRESS
  1008. INDEX RRNM,RRN RERUN
  1009. INDEX HLDM,HLD HOLD
  1010. INDEX CNTM,CNT CONTINUE
  1011. INDEX BKPO,PPF BACKSPACE PRUS
  1012. INDEX BKRO,PPF BACKSPACE RECORDS
  1013. INDEX BKFO,PPF BACKSPACE FILES
  1014. INDEX SKPO,PPF SKIP PRUS
  1015. INDEX SKRO,PPF SKIP RECORDS
  1016. INDEX SKFO,PPF SKIP FILES
  1017. INDEX CPHP,CPH CLEAR PRINTER HOLDING
  1018. INDEX LNLP,PPF LOCATE NEXT LINE
  1019. INDEX LCBP,PPF LOAD CENTRAL BUFFER
  1020. INDEX FPRE TABLE TERMINATOR
  1021. TITLE COMMON SUBROUTINES.
  1022. ACT SPACE 4,10
  1023. ** ACT - PROCESS ACCOUNTING INFORMATION.
  1024. *
  1025. * EXIT (A) = STATUS RESPONSE FROM *CPS*.
  1026. *
  1027. * USES CM, CM+3 - CM+4.
  1028. *
  1029. * CALLS CPS.
  1030.  
  1031.  
  1032. ACT SUBR ENTRY/EXIT
  1033. LDD EQ
  1034. STD CM+1 ENTER EQUIPMENT TYPE
  1035. LDM CMRC
  1036. STD CM+3
  1037. LDM CMRC+1
  1038. STD CM+4
  1039. LDD FT STORE REQUEST IN BUFFER
  1040. SHN 6
  1041. ADD RA
  1042. SHN 6
  1043. ADD FT+1
  1044. CWD CM
  1045. LDC ACTF+1000 PROCESS ACCOUNTING
  1046. RJM CPS
  1047. UJN ACTX RETURN
  1048. ADB SPACE 4,10
  1049. ** ADB - ASSIGN DATA BUFFER.
  1050. *
  1051. * ENTRY (DB) = FWA OF LAST DATA BUFFER USED.
  1052. *
  1053. * EXIT (A) = (DA) = (CMDB) = BUFFER ADDRESS.
  1054. * (DB) = FWA OF DATA BUFFER ASSIGNED.
  1055. * ((DB)) = RELATIVE LOCATION BUFFER INDEX.
  1056. * TO *MGR1* IF NO DATA BUFFER AVAILABLE.
  1057. *
  1058. * USES DA, DB, T7.
  1059.  
  1060.  
  1061. ADB3 LDD BI SET BUFFER ASSIGNED
  1062. STI DB
  1063. LDD DB ADDRESS OF DATA BUFFER
  1064. ADN 1
  1065. STM CMDB FWA OF DATA (DB+1) IN DATA BUFFER
  1066. ADB4 STD DA
  1067.  
  1068. ADB SUBR ENTRY/EXIT
  1069. LDM CMDB
  1070. NJN ADB4 IF DATA BUFFER IS ASSIGNED TO THIS DEVICE
  1071. STD T7
  1072. ADB1 LDI DB
  1073. ZJN ADB3 IF THIS DATA BUFFER NOT ASSIGNED
  1074. LDC 0 CHECK NEXT DATA BUFFER
  1075. ADBA EQU *-1 (DATA BUFFER SIZE SET BY *PRS*)
  1076. RAD DB
  1077. LMC 0
  1078. ADBB EQU *-1 (LWA+1 OF DATA BUFFERS SET BY *PRS*)
  1079. NJN ADB2 IF NOT LAST DATA BUFFER
  1080. LDC 0 LOOP TO FIRST DATA BUFFER
  1081. ADBC EQU *-1 (FWA OF DATA BUFFERS SET BY *PRS*)
  1082. STD DB
  1083. ADB2 AOD T7
  1084. ADBD LMN 0 (NUMBER OF DATA BUFFERS SET BY *PRS*)
  1085. NJN ADB1 IF NOT ALL DATA BUFFERS CHECKED
  1086. LJM MGR1 IGNORE REQUEST
  1087. AOP SPACE 4,10
  1088. ** AOP - ADVANCE OUT POINTER.
  1089. *
  1090. * ENTRY (A) = NUMBER OF WORDS TO ADVANCE POINTER.
  1091. *
  1092. * USES OT - OT+1.
  1093. *
  1094. * CALLS CDB.
  1095.  
  1096.  
  1097. AOP SUBR ENTRY/EXIT
  1098. RAD OT+1 ADVANCE OUT POINTER
  1099. SHN -14
  1100. RAD OT
  1101. SBD LM OUT - LIMIT
  1102. SHN 14
  1103. ADD OT+1
  1104. SBD LM+1
  1105. MJN AOP1 IF NO WRAP AROUND
  1106. ADD FT+1
  1107. STD OT+1
  1108. SHN -14
  1109. ADD FT
  1110. STD OT
  1111. AOP1 RJM CDB CHECK DATA REMAINING IN BUFFER
  1112. UJN AOPX RETURN
  1113. CCE SPACE 4,15
  1114. ** CCE - CHECK FOR CHANNEL ERROR.
  1115. *
  1116. * ENTRY (A) = STATUS/DATA INDEX.
  1117. * (T5) = FUNCTION CODE.
  1118. *
  1119. * EXIT (A) = 0 IF NO ERROR.
  1120. * 1 IF CHANNEL ERROR FLAG SET.
  1121. *
  1122. * USES T1, FC.
  1123. *
  1124. * CALLS CRV, PRE.
  1125.  
  1126.  
  1127. CCE1 LDD T5 SAVE FUNCTION CODE FOR ERROR MESSAGE
  1128. STD FC
  1129. LDD T1 PROCESS RETRIED ERROR
  1130. RJM PRE
  1131. LDN 1 ERROR RETURN
  1132.  
  1133. CCE SUBR ENTRY/EXIT
  1134. STD T1 SAVE STATUS/DATA INDEX
  1135. CCEA SFM. CCE1,CH IF CHANNEL ERROR FLAG SET
  1136. RJM CRV CHECK FOR RECOVERED ERROR
  1137. * LDN 0
  1138. UJN CCEX RETURN
  1139. CDB SPACE 4,10
  1140. ** CDB - CHECK DATA IN OUTPUT BUFFER.
  1141. *
  1142. * EXIT (A) = (CMBE) = NUMBER OF WORDS IN BUFFER.
  1143.  
  1144.  
  1145. CDB SUBR ENTRY/EXIT
  1146. LDD IN LENGTH = IN - OUT
  1147. SBD OT
  1148. SHN 14
  1149. ADD IN+1
  1150. SBD OT+1
  1151. PJN CDB1 IF IN .GE. OUT
  1152. SHN 6 LENGTH = (LIMIT - OUT) + (IN - FIRST)
  1153. ADD LM
  1154. SBD FT
  1155. SHN 14
  1156. ADD LM+1
  1157. SBD FT+1
  1158. CDB1 STM CMBE SET LENGTH
  1159. UJN CDBX RETURN
  1160. CEP SPACE 4,10
  1161. ** CEP - CHANNEL ERROR PROCESSOR.
  1162. *
  1163. * EXIT TO *TOP2*.
  1164. *
  1165. * USES BR.
  1166. *
  1167. * CALLS RDB.
  1168.  
  1169.  
  1170. CEP RJM RDB RELEASE DATA BUFFER
  1171. STM CMMR CLEAR DAYFILE MESSAGE REQUEST
  1172. AOD BR SET BUSY RETURN
  1173. LDC CECF+1000 DEACTIVATE EQUIPMENT
  1174. STM CMLR
  1175. LJM TOP2 TERMINATE OPERATION ON DEVICE
  1176. CIB SPACE 4,15
  1177. ** CIB - CHECK INPUT BUFFER.
  1178. *
  1179. * EXIT (A) = WORD COUNT OF BUFFER.
  1180. * IF WORD COUNT .LT. 1 SECTOR, A CALL WILL BE MADE TO
  1181. * DUMP BUFFER.
  1182. * IF FIRST WRITE, MAKE PP SERVICE CALL TO INITIATE
  1183. * INPUT FILE.
  1184. *
  1185. * USES BS+4, T1.
  1186. *
  1187. * CALLS CPS.
  1188.  
  1189.  
  1190. CIB SUBR ENTRY/EXIT
  1191. LDD BS+4 CHECK CURRENT STATUS
  1192. LPN 21
  1193. LMN 20
  1194. ZJP MGR1 IF BUFFER BUSY AND EOR
  1195. LDD OT LENGTH = OUT - IN
  1196. SBD IN
  1197. SHN 14
  1198. ADD OT+1
  1199. SBD IN+1
  1200. ZJN CIB1 IF IN = OUT
  1201. PJN CIB2 IF IN .LT. OUT
  1202. CIB1 SHN 6
  1203. ADD LM
  1204. SBD FT LENGTH = (LIMIT - IN) + (OUT - FIRST)
  1205. SHN 14
  1206. ADD LM+1
  1207. SBD FT+1
  1208. CIB2 SBN 1
  1209. STD T1 SAVE LENGTH
  1210. SHN -6
  1211. NJN CIB4 IF LENGTH .GE. 1 SECTOR
  1212. LDD BS+4
  1213. LPN 3
  1214. STD BS+4 REQUEST BUFFER WRITE
  1215. LDD FA
  1216. ZJN CIB3 IF FIRST WRITE
  1217. LDC WTIF+1000&14
  1218. CIB3 LMC WTIF+1000 SET REQUEST
  1219. RJM CPS
  1220. CIB4 LDD T1 SET LENGTH
  1221. LJM CIBX RETURN
  1222. CLB SPACE 4,15
  1223. ** CLB - CLEAR INTERNAL BUFFER.
  1224. *
  1225. * ENTRY (EQ) = EQUIPMENT TYPE CODE.
  1226. *
  1227. * EXIT (A) = 0.
  1228. * (T3) = ADDRESS OF *CMER*.
  1229. * (BR) .NE. 0 (BUSY RETURN SET).
  1230. * (CMPA) = PROCESSOR ADDRESS.
  1231. * (CMCT) = DEFAULT CONVERSION MODE.
  1232.  
  1233.  
  1234. CLB SUBR ENTRY/EXIT
  1235. LDC EQSB+CMER SET LOWER LIMIT
  1236. STD BR
  1237. ADN CMDA-CMER-1 SET UPPER LIMIT
  1238. STD T3
  1239. LDM TEQD,EQ SET PROCESSOR ADDRESS
  1240. STM CMPA
  1241. LDM TDCM,EQ SET DEFAULT CONVERSION MODE
  1242. STM CMCT
  1243. CLB1 LDN 0 CLEAR BUFFER
  1244. STI T3
  1245. SOD T3 DECREMENT BUFFER ADDRESS
  1246. LMD BR
  1247. NJN CLB1 IF NOT LOWER LIMIT
  1248. UJN CLBX RETURN
  1249. COB SPACE 4,15
  1250. ** COB - CHECK OUTPUT BUFFER.
  1251. *
  1252. * EXIT (A) = WORD COUNT OF BUFFER.
  1253. * IF WORD COUNT .LT. 1 SECTOR AND STATUS .NE. EOR
  1254. * OR EOF, A CALL WILL BE MADE TO FILL BUFFER.
  1255. * IF FILE IS A 12 BIT ASCII PRINT FILE, THE WORD
  1256. * COUNT THRESHOLD CHECK MADE IS FOR .LT. 2 SECTORS
  1257. * RATHER THAN 1 SECTOR.
  1258. * IF BUFFER IS EMPTY, AND STATUS = EOR OR EOF, EXIT
  1259. * WILL BE TAKEN TO APPROPRIATE PROCESSOR.
  1260. *
  1261. * USES BS+4, T1 - T2.
  1262. *
  1263. * CALLS CDB, CPS.
  1264.  
  1265.  
  1266. COB3 LDD BS+4
  1267. LPN 1
  1268. ZJN COB4 IF BUFFER BUSY
  1269. STD BS+4
  1270. LDM COBC,EQ REQUEST READ
  1271. RJM CPS
  1272. COB4 LDD T1 RETURN WITH LENGTH
  1273.  
  1274. COB SUBR ENTRY/EXIT
  1275. RJM CDB CHECK DATA IN OUTPUT BUFFER
  1276. STD T1 SAVE LENGTH
  1277. SBM CMBT
  1278. PJN COB4 IF LENGTH .LT. 1 OR 2 SECTORS
  1279. LDD BS+4 CHECK BUFFER STATUS
  1280. LPN 20
  1281. ZJN COB3 IF NOT EOR/EOF
  1282. LDD T1
  1283. NJN COBX IF BUFFER NOT EMPTY
  1284. LDD BS+4
  1285. LPN 10
  1286. NJN COB1 IF EOF/EOI
  1287. LDM COBA,EQ
  1288. UJN COB2 SET EOR PROCESSOR
  1289.  
  1290. COB1 LDM COBB,EQ SET EOF/EOI PROCESSOR
  1291. COB2 STD T2
  1292. LJM 0,T2 PROCESS EOF
  1293.  
  1294.  
  1295. * END OF RECORD PROCESSORS.
  1296.  
  1297. COBA INDEX
  1298. INDEX LPDT,COB3 READ NEXT RECORD
  1299. INDEX CPDT,/3CZ/PER PUNCH EOR
  1300. INDEX NPDT,COB3 READ NEXT RECORD
  1301. INDEX MXDT
  1302.  
  1303. * END OF FILE PROCESSORS.
  1304.  
  1305. COBB INDEX
  1306. INDEX LPDT,/3CZ/LEF LIST END OF INFORMATION
  1307. INDEX CPDT,/3CZ/PEF PUNCH END OF FILE
  1308. INDEX NPDT,/3CY/NEF LIST END OF INFORMATION
  1309. INDEX MXDT
  1310.  
  1311. * READ REQUEST CODES.
  1312.  
  1313. COBC INDEX
  1314. INDEX LPDT,600 READEI
  1315. INDEX CPDT,10 READ
  1316. INDEX NPDT,600 READEI
  1317. INDEX MXDT
  1318. CPS SPACE 4,15
  1319. ** CPS - CALL PP SERVICE PROGRAM.
  1320. *
  1321. * ENTRY (A) = REQUEST.
  1322. *
  1323. * EXIT (A) = 0 IF REQUEST NOT ACCEPTED.
  1324. *
  1325. * USES BS+4, T0, CM - CM+4.
  1326. *
  1327. * CALLS *CIO*, *QAP*, SFA.
  1328. *
  1329. * MACROS EXECUTE, MONITOR.
  1330.  
  1331.  
  1332. CPS SUBR ENTRY/EXIT
  1333. STD T0 SAVE REQUEST
  1334. SHN -9D
  1335. STD CM+2
  1336. ZJN CPS1 IF CIO REQUEST
  1337. SHN 9D CLEAR UPPER THREE BITS OF REQUEST
  1338. LMD T0
  1339. STD T0
  1340. LDC 3RPQA&3ROCI
  1341. CPS1 LMC 3ROCI
  1342. STD CM
  1343. SHN -6
  1344. SCN 77
  1345. STD CM+1
  1346. LDD BS+4 SAVE CURRENT BUFFER STATUS
  1347. STM CPSB
  1348. LPN 1
  1349. ZJN CPSX IF BUFFER BUSY
  1350. LMD BS+4
  1351. LMD T0
  1352. ZJN CPSX IF SAME OPERATION
  1353. LDD T0 SET REQUEST
  1354. STD BS+4
  1355. LDD CM+2
  1356. STM CMSB
  1357. LDI BI SET FET ADDRESS IN CALL
  1358. STD CM+3
  1359. LDM 1,BI
  1360. STD CM+4
  1361. RJM SFA STORE BUFFER STATUS
  1362. CWD BS
  1363. EXECUTE CIO,=
  1364. EXECUTE QAP,=
  1365. LDD MA
  1366. CWD CM
  1367. LDN 0 ENABLE QUEUING OF PP REQUEST
  1368. STD CM+1
  1369. MONITOR RPPM
  1370. LDD CM+1
  1371. NJN CPS2 IF PP ASSIGNED
  1372. LDC *
  1373. CPSB EQU *-1
  1374. STD BS+4 RESTORE ORIGINAL STATUS
  1375. RJM SFA SET FET ADDRESS
  1376. CWD BS
  1377. LDN 0
  1378. STM CMSB
  1379. CPS2 LJM CPSX RETURN
  1380. CRV SPACE 4,10
  1381. ** CRV - CHECK FOR RECOVERED ERROR.
  1382. *
  1383. * ENTRY (A) = INDEX OF ERROR.
  1384. *
  1385. * EXIT (A) = 0.
  1386. *
  1387. * USES T1, T3.
  1388. *
  1389. * CALLS SDM.
  1390.  
  1391.  
  1392. CRV SUBR ENTRY/EXIT
  1393. STD T1 SAVE INDEX
  1394. LDM FRCI+EQSB,T1 GET ERROR COUNT
  1395. ZJN CRVX IF NO PREVIOUS ERROR
  1396. SHN 6
  1397. STD T3 SAVE RETRY COUNT
  1398. LDN 0
  1399. STM FRCI+EQSB,T1 CLEAR ERROR COUNTER
  1400. LDM TERC,T1
  1401. RJM SDM
  1402. * LDN 0
  1403. UJN CRVX RETURN
  1404. CUL SPACE 4,15
  1405. ** CUL - CHECK USER LIMIT REACHED.
  1406. *
  1407. * ENTRY (A) = DECREMENT OF RECORD COUNT.
  1408. * (EQ) = EQUIPMENT TYPE CODE.
  1409. *
  1410. * EXIT (A) = 0 IF USER LIMIT NOT EXCEEDED.
  1411. * IF THE USER LIMIT IS EXCEEDED,
  1412. * THEN EXIT IS MADE TO THE RESPECTIVE
  1413. * DRIVER.
  1414. *
  1415. * USES T1.
  1416. *
  1417. * CALLS CPS, ECB, MGR.
  1418.  
  1419.  
  1420. CUL4 LDN 0 RETURN WITH (A) = 0
  1421.  
  1422. CUL SUBR ENTRY/EXIT
  1423. LMC -0
  1424. RAM CMRC+1
  1425. PJN CUL4 IF NO UNDERFLOW
  1426. AOM CMRC+1
  1427. SOM CMRC
  1428. PJN CUL4 IF USER LIMIT NOT EXCEEDED
  1429. AOM CMRC
  1430.  
  1431. * AN EXIT TO *CULX* IS NOT POSSIBLE AFTER THIS POINT.
  1432. * (SEE *PROGRAMMING CONSIDERATIONS*.)
  1433.  
  1434. CUL1 RJM MGR GO TO MANAGER
  1435. LDD BS+4 CHECK IF BUFFER ACTIVE
  1436. SHN 21-0
  1437. PJN CUL1 IF BUFFER ACTIVE
  1438. RJM ECB EMPTY CENTRAL BUFFER
  1439. CUL2 LDC PLEF+1000 REQUEST OUTPUT FILE TERMINATION
  1440. RJM CPS
  1441. CUL3 RJM MGR GO TO MANAGER
  1442. ZJN CUL2 IF REQUEST NOT ENTERED
  1443. LDD BS+4
  1444. SHN 21-0
  1445. PJN CUL3 IF REQUEST NOT COMPLETE
  1446. LDM CMSF CLEAR 6/12 AND 8/12 ASCII STATUS
  1447. SCN 50
  1448. STM CMSF
  1449. LDM CULA,EQ SET PROCESSOR ADDRESS
  1450. STD T1
  1451. LJM 0,T1 PROCESS USER VALIDATION EXCEEDED
  1452.  
  1453.  
  1454. CULA INDEX VALIDATION EXCEEDED PROCESSORS
  1455. INDEX LPDT,/3CZ/LPD4
  1456. INDEX CPDT,/3CZ/CPD3
  1457. INDEX NPDT,/3CY/NPD4
  1458. INDEX MXDT
  1459. ECB SPACE 4,10
  1460. ** ECB - EMPTY CIRCULAR BUFFER.
  1461. *
  1462. * EXIT IN = OUT = FIRST.
  1463. *
  1464. * CALLS SOP.
  1465.  
  1466.  
  1467. ECB SUBR ENTRY/EXIT
  1468. LDK FT-EQSB SET OUT = FIRST
  1469. RJM SOP STORE OUT POINTER
  1470. SBN 1 STORE IN POINTER
  1471. CWD CM
  1472. UJN ECBX RETURN
  1473. MCC SPACE 4,10
  1474. ** MCC - MOVE AND CONVERT CHARACTER.
  1475. *
  1476. * ENTRY (A) = DISPLAY CODE CHARACTER.
  1477. * (T2) = BYTE INDEX.
  1478. *
  1479. * EXIT (T0) = 0#23, IF ILLEGAL CHARACTER.
  1480. * (T2) DECREMENTED, IF CHARACTER NOT ESCAPE CODE.
  1481. * (T3) = UNCONVERTED CHARACTER.
  1482. *
  1483. * USES T2, T3.
  1484.  
  1485.  
  1486. MCC3 ADN 76 SAVE UNCONVERTED NORMAL CHARACTER
  1487. MCC4 STD T3
  1488. SOD T2 DECREMENT BUFFER INDEX
  1489. LDM CTBL,T3 CONVERT CHARACTER
  1490. MCC5 STM 1,T2
  1491.  
  1492. MCC SUBR ENTRY/EXIT
  1493. UJN MCC4 CONVERT CHARACTER
  1494. * PSN (IF ASCII 6/12 FILE)
  1495. MCCA EQU *-1
  1496. SBN 74
  1497. ZJN MCC1 IF CHARACTER IS ESCAPE CODE 74
  1498. SBN 76-74
  1499. NJN MCC3 IF CHARACTER IS NOT ESCAPE CODE 76
  1500. LDD T3
  1501. ZJN MCC2 IF 7600
  1502. SBN 37
  1503. PJN MCC2 IF 7637 - 7677
  1504. ADC 140+37
  1505. UJN MCC5 STORE CONVERTED CHARACTER
  1506.  
  1507. MCC1 LDD T3
  1508. SBN MCCBL
  1509. PJN MCC2 IF ILLEGAL CHARACTER
  1510. LDM MCCB,T3
  1511. NJN MCC5 IF LEGAL CHARACTER
  1512. MCC2 LDN 0#23 FLAG ILLEGAL CHARACTER
  1513. STD T0
  1514. LDN 0#20 REPLACE WITH BLANK
  1515. UJN MCC5 STORE CHARACTER
  1516.  
  1517.  
  1518. * TABLE OF 74XX CHARACTERS.
  1519.  
  1520. MCCB BSS 0
  1521. CON 0 ILLEGAL
  1522. CON 100 COMMERCIAL AT
  1523. CON 136 CIRCUMFLEX
  1524. CON 0 ILLEGAL
  1525. MCCC CON 72 COLON (64 CHARACTER SET)
  1526. * CON 45 PERCENT (63 CHARACTER SET)
  1527. CON 0 ILLEGAL
  1528. CON 0 ILLEGAL
  1529. CON 140 GRAVE
  1530. MCCBL EQU *-MCCB
  1531. MSG SPACE 4,10
  1532. ** MSG - SET BUFFER POINT MESSAGE.
  1533. *
  1534. * ENTRY (A) = MESSAGE NUMBER.
  1535. *
  1536. * USES T1, CM - CM+4.
  1537. *
  1538. * MACROS NFA.
  1539.  
  1540.  
  1541. MSG SUBR ENTRY/EXIT
  1542. STD T1
  1543. NFA BF,R READ MESSAGE CONTROL
  1544. ADN 1
  1545. CRD CM
  1546. LDD CM CHECK PREVIOUS MESSAGE
  1547. LMD T1
  1548. ZJN MSGX IF SAME AS CURRENT MESSAGE
  1549. LDD T1 SET BUFFER POINT MESSAGE
  1550. STD CM
  1551. SBN ENEC
  1552. MJN MSG1 IF NOT ERROR CONDITION
  1553. LDD CP STORE CONTROL POINT MESSAGE
  1554. ADN MS2W
  1555. CWM MSGA,TR
  1556. MSG1 NFA BF,R STORE BUFFER POINT MESSAGE
  1557. ADN 1
  1558. CWD CM
  1559. UJN MSGX RETURN
  1560.  
  1561.  
  1562. MSGA DATA C+$REQUEST *I* DISPLAY.+
  1563. PMR SPACE 4,10
  1564. ** PMR - PROCESS MESSAGE REQUEST.
  1565. *
  1566. * EXIT (A) = 0 IF NO REQUEST OR REQUEST PROCESSED.
  1567. *
  1568. * USES BS+4.
  1569. *
  1570. * CALLS CPS, SFA.
  1571.  
  1572.  
  1573. PMR2 LDD BS+4 CHECK BUFFER BUSY
  1574. LPN 1
  1575. ZJN PMR4 IF BUSY
  1576. LDM CMBS
  1577. STD BS+4 RESTORE PREVIOUS STATUS
  1578. RJM SFA SET FET ADDRESS
  1579. CWD BS
  1580. LDN 0
  1581. PMR3 STM CMMR INDICATE REQUEST IN PROGRESS/COMPLETED
  1582. ADN 1
  1583. PMR4 LMN 1 SET EXIT CONDITIONS
  1584.  
  1585. PMR SUBR ENTRY/EXIT
  1586. LDM CMMR
  1587. ZJN PMRX IF NO REQUEST
  1588. SHN 6
  1589. MJN PMR2 IF REQUEST IN PROGRESS
  1590. LDC PDMF+1000 PROCESS DAYFILE MESSAGE
  1591. RJM CPS
  1592. ZJN PMR4 IF REQUEST NOT HONORED
  1593. LDM CPSB
  1594. LMC PDMF+3
  1595. ZJN PMR1 IF PREVIOUS STATUS MESSAGE PROCESSING
  1596. LMC PDMF+3
  1597. STM CMBS SAVE PREVIOUS STATUS
  1598. PMR1 LCN 7
  1599. UJN PMR3 SET REQUEST IN PROGRESS
  1600. PRE SPACE 4,10
  1601. ** PRE - PROCESS RETRIED ERROR.
  1602. *
  1603. * ENTRY (A) = INDEX OF ERROR.
  1604. *
  1605. * EXIT TO *CEP* IF MAXIMUM RETRIES REACHED.
  1606. *
  1607. * USES T1.
  1608. *
  1609. * CALLS SDM, WST.
  1610.  
  1611.  
  1612. PRE SUBR ENTRY/EXIT
  1613. STD T1 SAVE INDEX
  1614. RJM WST WRITE STATUS TO FET
  1615. AOM FRCI+EQSB,T1 INCREMENT ERROR COUNTER
  1616. SBM TMAX,T1 COMPARE TO MAXIMUM
  1617. NJN PREX IF NOT AT MAXIMUM
  1618.  
  1619. * ISSUE MESSAGE AND TERMINATE OPERATION.
  1620.  
  1621. LDM FRCI+EQSB,T1 GET RETRY COUNT
  1622. SHN 6
  1623. ADN 1 SET UNRECOVERED FLAG
  1624. STD T3
  1625. LDN 0 CLEAR COUNTER
  1626. STM FRCI+EQSB,T1
  1627. LDM TERC,T1
  1628. RJM SDM
  1629. LJM CEP CHANNEL ERROR PROCESSOR
  1630. TERC SPACE 4,10
  1631. ** TERC - TABLE OF ERROR CODES.
  1632.  
  1633.  
  1634. TERC INDEX
  1635. INDEX DRRI,EITM INCOMPLETE DATA TRANSFER
  1636. INDEX FRJI,ERJM INTERNAL/EXTERNAL REJECT
  1637. INDEX SCEI,ECRE CHANNEL PARITY ERROR - STATUS
  1638. INDEX DCPI,ECRE CHANNEL PARITY ERROR - DATA
  1639. INDEX PERI,EPLM PRINT ERROR
  1640. INDEX MXRI
  1641. TMAX SPACE 4,10
  1642. ** TMAX - TABLE OF MAXIMUM RETRIES.
  1643.  
  1644.  
  1645. TMAX INDEX
  1646. INDEX DRRI,ERRL INCOMPLETE DATA TRANSFER
  1647. INDEX FRJI,ERRL INTERNAL/EXTERNAL REJECT
  1648. INDEX SCEI,CHPR CHANNEL PARITY ERROR - STATUS
  1649. INDEX DCPI,CHPR CHANNEL PARITY ERROR - DATA
  1650. INDEX PERI,PERL PRINT ERROR
  1651. INDEX MXRI
  1652. PSD SPACE 4,15
  1653. ** PSD - PRESET DRIVER.
  1654. *
  1655. * ENTRY (FA) = FST ADDRESS.
  1656. * (UL - UL+1) = USER LIMITS.
  1657. *
  1658. * EXIT FILE REWOUND.
  1659. * USER LIMITS SET IN *CMRC*.
  1660. * 6/12 AND 8/12 ASCII PRINT FLAGS SET/CLEAR IN *CMSF*.
  1661. *
  1662. * USES CM - CM+4.
  1663. *
  1664. * MACROS NFA.
  1665.  
  1666.  
  1667. PSD SUBR ENTRY/EXIT
  1668. LDD F2+2 SET/CLEAR ASCII PRINT FILE FLAGS
  1669. LPN 24
  1670. SHN 1
  1671. STM CMSF
  1672. NFA FA,R READ FST INFORMATION
  1673. CRD CM
  1674. LDD CM+1 REWIND FILE
  1675. STD CM+2
  1676. LDN FSMS
  1677. STD CM+3
  1678. NFA FA,R STORE FST INFORMATION
  1679. CWD CM
  1680. LDD UL SET USER LIMITS
  1681. STM CMRC
  1682. LDD UL+1
  1683. STM CMRC+1
  1684. UJN PSDX RETURN
  1685. RCB SPACE 4,15
  1686. ** RCB - READ CODED BUFFER.
  1687. *
  1688. * ENTRY (A) = CM WORD LIMIT FOR LINE/CARD IMAGE.
  1689. *
  1690. * EXIT (A) = (CMLR) = LENGTH OF LINE/CARD IN BYTES.
  1691. * (T2 - T6) = FIRST WORD NEXT LINE/CARD.
  1692. * (CM - CM+4) = LAST WORD CURRENT LINE/CARD.
  1693. * (OT - OT+1) UPDATED.
  1694. * (T1) = ADDRESS + 1 OF LAST CHARACTER TRANSLATED.
  1695. *
  1696. * USES T1 - T7.
  1697. *
  1698. * CALLS MCC, RNL, SCN.
  1699.  
  1700.  
  1701. RCB3 LDI T7 CHECK NEXT CHARACTER
  1702. LPC 3777 IGNORE HIGH-ORDER BIT
  1703. SBN 40
  1704. MJN RCB4 IF INCORRECT CHARACTER
  1705. SBK 177-40
  1706. MJN RCB5 IF LEGAL CHARACTER
  1707. RCB4 LDN 40 SUBSTITUTE BLANK
  1708. STI T7
  1709. LDN 43 SET INCORRECT CHARACTER IN LINE
  1710. STM 1,DA
  1711. RCB5 AOD T7 ADVANCE BUFFER ADDRESS
  1712. LMD T1
  1713. RCB6 NJN RCB3 IF NOT EOL
  1714. * PSN (NON-IMPACT PRINTER)
  1715. RCBA EQU RCB6
  1716. RCB7 LDD OT READ NEXT WORD
  1717. SHN 6
  1718. ADD RA
  1719. SHN 6
  1720. ADD OT+1
  1721. CRD T2
  1722. LDD T1 SET BYTE COUNT FOR LINE/CARD IMAGE
  1723. SBD DA
  1724. STM CMLR
  1725.  
  1726. RCB SUBR ENTRY/EXIT
  1727. STD T3
  1728. LDC 1S12 READ CODED LINE/CARD
  1729. LMD DA
  1730. RJM RNL
  1731. LDD T1
  1732. SBD T7
  1733. ZJN RCB7 IF EMPTY LINE OR CARD
  1734. LDM CMSF CHECK MODE OF FILE
  1735. LPN 50
  1736. ZJN RCB1 IF NOT ASCII FILE
  1737. LPN 10
  1738. NJN RCB6 IF 8/12 ASCII FILE
  1739. STD T0 INITIALIZE ILLEGAL CHARACTER FLAG
  1740. UJN RCB1.1 ENABLE 6/12 CONVERSION IN *MCC*
  1741.  
  1742. * CONVERT LINE OR CARD IMAGE.
  1743.  
  1744. RCB1 LDC ** DISABLE 6/12 CONVERSION IN *MCC*
  1745. ORG *-1
  1746. LOC MCCA
  1747. UJN MCC4 SKIP 6/12 CONVERSION
  1748. LOC *O
  1749. RCB1.1 STM MCCA
  1750. RJM SCN LOAD CONVERSION TABLE
  1751. SOD T1 SET END OF DATA IN BUFFER
  1752. STD T4
  1753. ADN 1
  1754. SBD DA SET END OF UNPACKED DATA
  1755. SHN 1
  1756. ADD DA
  1757. STD T1
  1758. SBN 1
  1759. STD T2
  1760. LDI T4 SAVE LAST CHARACTER FOR PUNCH DRIVER
  1761. LPN 77
  1762. STD T7
  1763. RCB2 LDI T4 UNPACK DATA BYTE
  1764. LPN 77
  1765. RJM MCC MOVE AND CONVERT CHARACTER
  1766. LDI T4
  1767. SHN -6
  1768. RJM MCC MOVE AND CONVERT CHARACTER
  1769. SOD T4 DECREMENT DATA ADDRESS
  1770. SBD DA
  1771. PJN RCB2 IF NOT START OF BUFFER
  1772. LDM CMSF
  1773. LPN 40
  1774. ZJN RCB2.3 IF NOT 6/12 ASCII
  1775. LDD DA SET BUFFER INDEX
  1776. STD T3
  1777. RCB2.1 AOD T2
  1778. SBD T1
  1779. PJN RCB2.2 IF END OF DATA
  1780. LDI T2 MOVE DATA BYTE
  1781. STI T3
  1782. AOD T3
  1783. UJN RCB2.1 READ NEXT BYTE
  1784.  
  1785. RCB2.2 LDD T3 SET NEW LWA+1
  1786. STD T1
  1787. LDD T0
  1788. ZJN RCB2.3 IF NO ILLEGAL CHARACTERS IN LINE
  1789. STM 1,DA FLAG ILLEGAL CHARACTER(S)
  1790. RCB2.3 LJM RCB7 READ NEXT WORD
  1791. RDB SPACE 4,10
  1792. ** RDB - RELEASE DATA BUFFER.
  1793. *
  1794. * ENTRY (CMDB) = FWA+1 OF DATA BUFFER ASSIGNED.
  1795. *
  1796. * EXIT (A) = (CMDB) = 0.
  1797. * (DB) = FWA OF DATA BUFFER RELEASED.
  1798. * ((DB)) = 0.
  1799. *
  1800. * USES DB.
  1801.  
  1802.  
  1803. RDB1 SBN 1
  1804. STD DB
  1805. LDN 0 RELEASE DATA BUFFER
  1806. STI DB
  1807. STM CMDB
  1808.  
  1809. RDB SUBR ENTRY/EXIT
  1810. LDM CMDB
  1811. NJN RDB1 IF DATA BUFFER IS ASSIGNED
  1812. UJN RDBX RETURN
  1813. RNL SPACE 4,15
  1814. ** RNL - READ NEXT LINE (CARD).
  1815. *
  1816. * ENTRY (A) BITS 0 - 11 = PP BUFFER ADDRESS.
  1817. * BITS 12 - 17 = 0 IF BINARY READ.
  1818. * = 1 IF CODED READ.
  1819. * (T3) = NUMBER OF WORDS TO READ.
  1820. * (CMBE) = NUMBER OF WORDS IN CENTRAL BUFFER.
  1821. *
  1822. * EXIT (T1) = END OF DATA IN PP BUFFER (CODED READ ONLY).
  1823. * (T3) = ACTUAL WORD COUNT TO END OF LINE (CARD).
  1824. * (T7) = PP BUFFER ADDRESS.
  1825. *
  1826. * USES T0 - T1, T3 - T7.
  1827. *
  1828. * CALLS AOP.
  1829.  
  1830.  
  1831. RNL SUBR ENTRY/EXIT
  1832. STM RNLB SET PP BUFFER ADDRESS
  1833. STD T1
  1834. STD T7
  1835. SHN -14 SAVE BINARY / CODED READ FLAG
  1836. STD T6
  1837. LDM CMBE CHECK DATA IN CENTRAL BUFFER
  1838. SBD T3
  1839. PJN RNL1 IF SUFFICIENT DATA
  1840. RAD T3
  1841. RNL1 LDD T3 NUMBER OF WORDS TO READ
  1842. STD T5
  1843. LDD LM LIMIT - OUT
  1844. SBD OT
  1845. SHN 14
  1846. ADD LM+1
  1847. SBD OT+1
  1848. STD T0 NUMBER OF WORDS FROM *OUT* TO *LIMIT*
  1849. SBD T3
  1850. PJN RNL2 IF NO WRAP AROUND
  1851. LMC -0 NUMBER OF WORDS STARTING AT *FIRST*
  1852. STD T4
  1853. LDD T0 WORD COUNT FROM *OUT* TO *LIMIT*
  1854. STD T5
  1855. SHN 2
  1856. ADD T5
  1857. ADD T1 BUFFER ADDRESS FOR FIRST READ
  1858. STM RNLA
  1859. LDD FT READ WRAP AROUND
  1860. SHN 6
  1861. ADD RA
  1862. SHN 6
  1863. ADD FT+1
  1864. CRM **,T4
  1865. RNLA EQU *-1
  1866. RNL2 LDD OT READ LINE
  1867. SHN 6
  1868. ADD RA
  1869. SHN 6
  1870. ADD OT+1
  1871. CRM **,T5
  1872. RNLB EQU *-1
  1873. LDD T6
  1874. ZJN RNL7 IF BINARY READ
  1875. SOD T1
  1876. LDN 0
  1877. STD T4
  1878. RNL3 LDN 5 SEARCH FOR EOL
  1879. RAD T1
  1880. AOD T4
  1881. LMD T3
  1882. ZJN RNL5 IF REQUESTED NUMBER OF WORDS CHECKED
  1883. LDI T1
  1884. NJN RNL3 IF NOT EOL
  1885. RNL4 SOD T1
  1886. RNL5 LDI T1
  1887. ZJN RNL4 IF EOL
  1888. AOD T1
  1889. SBD T7
  1890. PJN RNL6 IF NOT EMPTY LINE
  1891. LDD T7
  1892. STD T1
  1893. RNL6 LDD T4
  1894. STD T3
  1895. RNL7 LDD T3 ADVANCE OUT POINTER
  1896. RJM AOP
  1897. LJM RNLX RETURN
  1898. SCN SPACE 4,10
  1899. ** SCN - SET CONVERSION TABLE.
  1900.  
  1901.  
  1902. SCN SUBR ENTRY/EXIT
  1903. LDM CMCT CHECK TABLE IN MEMORY
  1904. LMM CTID
  1905. ZJN SCNX IF TABLE LOADED
  1906. LDD RA LOAD CONVERSION TABLE
  1907. SHN 6
  1908. ADN CTIR
  1909. ADM CMCT
  1910. CRM CTID,TL
  1911. UJN SCNX RETURN
  1912. SDM SPACE 4,10
  1913. ** SDM - SEND DAYFILE MESSAGE.
  1914. *
  1915. * ENTRY (A) = MESSAGE CODE.
  1916. * (T3) = MPARAM 1 (RETRIED ERRORS ONLY).
  1917. * (FC) = MPARAM 3.
  1918. * (SEE BUFFER POINT AREA DESCRIPTION IN
  1919. * *COMSBIO* FOR *MPARAM* VALUES.)
  1920. *
  1921. * EXIT (A) = 0.
  1922. *
  1923. * USES T1, T2, T4, T5, CM - CM+4.
  1924. *
  1925. * MACROS NFA.
  1926.  
  1927.  
  1928. SDM1 LDN ** SET BY *PRS*
  1929. SDMA EQU *-1 PP NUMBER
  1930. STD T4 (T4) = PP NUMBER
  1931. LDD FC
  1932. STD T5
  1933. NFA BF,R READ MESSAGE CONTROL
  1934. SDM2 ADN 1
  1935. CRD CM
  1936. LDD CM PRESERVE *I* DISPLAY
  1937. STD T1
  1938. NFA BF,R STORE MESSAGE PARAMETERS
  1939. ADN 1
  1940. CWD T1
  1941. LDN 0
  1942.  
  1943. SDM SUBR ENTRY/EXIT
  1944. STM CMMR
  1945. STD T2 STORE MESSAGE CODE
  1946. SBN ORME
  1947. PJN SDM1 IF NOT OPERATOR REQUEST
  1948. LDM CMER
  1949. SHN 6 ENTER REPEAT COUNT
  1950. STD CM+4
  1951. NFA BF,R STORE REPEAT COUNT
  1952. CWD CM
  1953. UJN SDM2 READ MESSAGE CONTROL
  1954. SFA SPACE 4,10
  1955. ** SFA - SET FET ADDRESS.
  1956. *
  1957. * ENTRY ((BI - BI+1)) = RELATIVE FET ADDRESS.
  1958. *
  1959. * EXIT (A) = FET ADDRESS.
  1960.  
  1961.  
  1962. SFA SUBR ENTRY/EXIT
  1963. LDI BI
  1964. SHN 6
  1965. ADD RA
  1966. SHN 6
  1967. ADM 1,BI
  1968. UJN SFAX RETURN
  1969. SOP SPACE 4,10
  1970. ** SOP - STORE OUT POINTER.
  1971. *
  1972. * ENTRY (A) = ADDRESS OF VALUE TO BE PLACED IN POINTER.
  1973. *
  1974. * EXIT (A) = ADDRESS OF OUT POINTER.
  1975. * (CM - CM+4) = OUT POINTER.
  1976. *
  1977. * USES T0, CM - CM+4.
  1978. *
  1979. * CALLS SFA.
  1980.  
  1981.  
  1982. SOP SUBR ENTRY/EXIT
  1983. ADC EQSB
  1984. STD T0
  1985. LDN ZERL CLEAR ASSEMBLY
  1986. CRD CM
  1987. LDI T0 GENERATE POINTER WORD
  1988. STD CM+3
  1989. AOD T0
  1990. LDI T0
  1991. STD CM+4
  1992. RJM SFA STORE OUT POINTER
  1993. ADN 3
  1994. CWD CM
  1995. UJN SOPX RETURN
  1996. TOF SPACE 4,10
  1997. ** TOF - TERMINATE OUTPUT FILE.
  1998. *
  1999. * USES BS+4, CM - CM+4.
  2000. *
  2001. * CALLS CLB, ECB, RDB, SFA.
  2002. *
  2003. * MACROS NFA.
  2004.  
  2005.  
  2006. TOF NFA BF,R READ BUFFER POINT WORD
  2007. CRD CM
  2008. RJM RDB RELEASE DATA BUFFER
  2009. SOM CMER
  2010. MJN TOP IF REPEAT COUNT SATISFIED
  2011. SHN 6
  2012. STD CM+4
  2013. NFA BF,R STORE ADJUSTED REPEAT COUNT
  2014. CWD CM
  2015. LDK ZERL
  2016. CRD CM
  2017. LDN 1 RESET BUFFER STATUS
  2018. STD BS+4
  2019. RJM SFA STORE BUFFER STATUS
  2020. CWD BS
  2021. ADN FPSN
  2022. CWD CM CLEAR CURRENT RANDOM INDEX
  2023. RJM ECB EMPTY CIRCULAR BUFFER
  2024. LDD BI INITIALIZE BUFFER
  2025. RJM CLB
  2026. LJM MGR1 GO TO MANAGER
  2027. TOP SPACE 4,10
  2028. ** TOP - TERMINATE OPERATION.
  2029. *
  2030. * USES BR, IR+3, CM - CM+4, T6 - T7.
  2031. *
  2032. * CALLS CPS, MGR, RDB, REC, SFA.
  2033. *
  2034. * MACROS MONITOR, NFA.
  2035.  
  2036.  
  2037. TOP LDN 60 *UNLOAD* FILE
  2038.  
  2039. * *TOP1* IS A SECONDARY ENTRY POINT FOR *TOP*.
  2040.  
  2041. TOP1 STM CMLR SAVE LAST REQUEST
  2042. RJM RDB RELEASE DATA BUFFER
  2043. AOD BR SET BUSY RETURN
  2044. RJM MGR GO TO MANAGER
  2045. RJM ** RELEASE EQUIPMENT
  2046. TOPB EQU *-1 (SET BY *PRS*)
  2047. * RJM /3CZ/REC
  2048. * RJM /3CY/REC
  2049.  
  2050. * *TOP2* IS A SECONDARY ENTRY POINT FOR *TOP*.
  2051.  
  2052. TOP2 LDM CMLR ISSUE LAST REQUEST
  2053. ZJN TOP4 IF NO REQUEST
  2054. RJM CPS CALL *QAP*/*CIO*
  2055. TOP3 RJM MGR GO TO MANAGER
  2056. TOPA EQU *
  2057. ZJN TOP2 IF REQUEST NOT ISSUED
  2058. LDD BS+4
  2059. LPN 1
  2060. LMN 1
  2061. NJN TOP3 IF REQUEST NOT COMPLETE
  2062.  
  2063. * *TOP4* IS A SECONDARY ENTRY POINT FOR *TOP*.
  2064.  
  2065. TOP4 LDN ZERL CLEAR BUFFER STATUS
  2066. CRD CM-2
  2067. RJM SFA SET FET ADDRESS
  2068. CWD CM-2
  2069. LDM CMEN SET EQUIPMENT NUMBER
  2070. SHN -3
  2071. STD CM+1
  2072. NFA BF,R STORE BUFFER POINT WORD
  2073. CWD CM-2
  2074. SOD IR+3 DECREMENT ENTRY COUNT
  2075. LDD RA
  2076. SHN 6
  2077. ADD IR+2
  2078. CWD IR
  2079. AOD SB DISABLE STATUS BLOCK UPDATE
  2080. MONITOR DEQM
  2081. * LDN 0 CLEAR BUFFER ASSIGNMENT
  2082. STI BI
  2083. STM 1,BI
  2084. LJM PSE RETURN TO MANAGER
  2085. WST SPACE 4,10
  2086. ** WST - WRITE STATUS TO FET.
  2087. *
  2088. * CALLS SFA.
  2089.  
  2090.  
  2091. WST SUBR ENTRY/EXIT
  2092. RJM SFA
  2093. ADN FPW2
  2094. CWD F2
  2095. UJN WSTX RETURN
  2096. SPACE 4,10
  2097. ** COMMON DATA BUFFER AREA.
  2098.  
  2099.  
  2100. CBUF BSSZ BUFS*MEQD BUFFER ASSIGNMENT TABLE
  2101. CBUFL BSS 0 LWA+1 OF BUFFER ASSIGNMENT TABLE
  2102. EQSB SPACE 4,10
  2103. ** EQSB - EQUIPMENT STATUS BUFFER.
  2104.  
  2105.  
  2106. EQSB BSS 0 FWA OF DRIVER STATUS BLOCK
  2107. EQSBL EQU EQSB+EDSBL*5 LWA+1 OF DRIVER STATUS BLOCK
  2108. ZBA SPACE 4,15
  2109. ** ZBA - ZERO DATA BUFFER ASSIGNMENT.
  2110. *
  2111. * ENTRY (T1) = FWA OF DATA BUFFERS.
  2112. * (T2) = DATA BUFFER SIZE.
  2113. * (T3) = LWA+1 OF DATA BUFFERS.
  2114. *
  2115. * EXIT (CTID) = 7777.
  2116. * (MSD) = 0.
  2117. * TO *MGR1*.
  2118. *
  2119. * NOTE THIS ROUTINE IS OVERLAYED BY *EQSB*.
  2120.  
  2121.  
  2122. ZBA BSS 0 ENTRY
  2123. ZBA1 LDN 0 CLEAR BUFFER ASSIGNMENT
  2124. STI T1
  2125. LDD T2 SET NEXT BUFFER
  2126. RAD T1
  2127. LMD T3
  2128. NJN ZBA1 IF MORE TO CLEAR
  2129. STM MSD CLEAR MASS STORAGE DESIGNATOR
  2130. LCN 0 ENSURE INITIAL CONVERSION TABLE LOAD
  2131. STM CTID
  2132. LJM MGR1 EXIT TO MANAGER
  2133. SPACE 4,10
  2134. ** SUB-DRIVER OVERLAY AREA.
  2135. *
  2136. * NOTE OVERLAY HEADER IS OVERLAYED BY *EQSB*.
  2137.  
  2138.  
  2139. OVLA EQU EQSBL-4 FWA OF SUBDRIVER OVERLAY AREA
  2140.  
  2141.  
  2142. ERRNG OVLA-*-5 OVERLAY LOAD DESTROYS **
  2143. TITLE DRIVER PRESET.
  2144. PRS SPACE 4,20
  2145. ** PRS - DRIVER PRESET.
  2146. *
  2147. * ENTRY (IR+4) = SUB-DRIVER NUMBER.
  2148. *
  2149. * EXIT (BI) = *CBUF*.
  2150. * (TL) = CONVERSION TABLE LENGTH.
  2151. *
  2152. * ERROR *HNGM* MONITOR FUNCTION ISSUED. PP DROPPED AND EXIT
  2153. * TO *PPR* WHEN *HNGM* REQUESTED CLEARED.
  2154. *
  2155. * CALLS EXR.
  2156. *
  2157. * MACROS MONITOR.
  2158.  
  2159.  
  2160. PRS3 MONITOR HNGM HANG PP
  2161. MONITOR DPPM
  2162. LJM PPR EXIT TO PPR
  2163.  
  2164. PRS BSS 0 ENTRY
  2165. LDD IR+4
  2166. SBN MXSD
  2167. PJN PRS3 IF INVALID SUB-DRIVER
  2168. LDK CHTP GET CHANNEL TABLE POINTER
  2169. CRD CM
  2170. LDD CM+3 SET CHANNEL TABLE ADDRESS
  2171. STM PSEA
  2172. LDD CM+2
  2173. RAM PSEA-1
  2174. LDN CTLN SET TABLE LENGTH
  2175. STD TL
  2176. LDN EDSBL SET EQUIPMENT STATUS BLOCK LENGTH
  2177. STD BL
  2178. STD SB
  2179. LDC CBUF INITIALIZE BUFFER TABLE SERACH
  2180. STD BI
  2181. LDK IPRL CHECK SYSTEM DEFAULT KEYPUNCH MODE
  2182. CRD CM
  2183. LDD CM+2
  2184. SHN 21-13
  2185. PJN PRS1 IF DEFAULT IS O26
  2186. LDN C9XD SET O29 CONVERSION MODE FOR CARD READER
  2187. STM TDCM+CRDT
  2188. PRS1 LDK MABL FETCH PP SPEED INDICATOR
  2189. CRD CM
  2190. LDD CM+4 SET TIMEOUT VALUE
  2191. SHN 1
  2192. NJN PRS2 IF NOT 1X PPS
  2193. LDN 1
  2194. PRS2 RAM MGRA
  2195. LDN PPCP PRESET PP NUMBER
  2196. CRD CM
  2197. LDD IA
  2198. SBD CM+4
  2199. SHN -3
  2200. RAM SDMA PP NUMBER FOR BML MESSAGE
  2201. LDM TDBF,IR+4 SET FWA OF FIRST DATA BUFFER
  2202. STM ADBC
  2203. LDM TDBN,IR+4 SET NUMBER OF DATA BUFFERS
  2204. RAM ADBD
  2205. LDM TDBL,IR+4 SET LWA+1 OF DATA BUFFERS
  2206. STM ADBB
  2207. LDM TDBS,IR+4 SET DATA BUFFER SIZE
  2208. STM ADBA
  2209. LDM TREC,IR+4 SET RELEASE EQUIPMENT ADDRESS
  2210. STM TOPB
  2211. LDM TSDP,IR+4 SET SUB-DRIVER PROCESSOR ADDRESS
  2212. STM MGRB
  2213. LDC 1R3*10000 SET SUB-DRIVER OVERLAY NAME
  2214. LMM TSDO,IR+4
  2215. EXECUTE 3CZ,=
  2216. EXECUTE 3CY,=
  2217. RJM EXR EXECUTE SUB-DRIVER
  2218. TDBF SPACE 4,10
  2219. ** TDBF - TABLE OF FWA OF FIRST DATA BUFFER.
  2220. *
  2221. * INDEXED BY SUB-DRIVER TYPE.
  2222.  
  2223.  
  2224. TDBF INDEX
  2225. INDEX 0,/3CZ/DBUF
  2226. INDEX 1,/3CY/DBUF
  2227. INDEX MXSD
  2228. TDBN SPACE 4,10
  2229. ** TDBN - TABLE OF NUMBER OF DATA BUFFERS.
  2230. *
  2231. * INDEXED BY SUB-DRIVER TYPE.
  2232.  
  2233.  
  2234. TDBN INDEX
  2235. INDEX 0,/3CZ/NDBUF
  2236. INDEX 1,/3CY/NDBUF
  2237. INDEX MXSD
  2238. TDBL SPACE 4,10
  2239. ** TDBL - TABLE OF LWA+1 OF DATA BUFFERS.
  2240. *
  2241. * INDEXED BY SUB-DRIVER TYPE.
  2242.  
  2243.  
  2244. TDBL INDEX
  2245. INDEX 0,/3CZ/DBUFL
  2246. INDEX 1,/3CY/DBUFL
  2247. INDEX MXSD
  2248. TDBS SPACE 4,10
  2249. ** TDBS - TABLE OF DATA BUFFER SIZES.
  2250. *
  2251. * INDEXED BY SUB-DRIVER TYPE.
  2252.  
  2253.  
  2254. TDBS INDEX
  2255. INDEX 0,/3CZ/DBUFS
  2256. INDEX 1,/3CY/DBUFS
  2257. INDEX MXSD
  2258. TREC SPACE 4,10
  2259. ** TREC - TABLE OF RELEASE EQUIPMENT PROCESSORS.
  2260. *
  2261. * INDEXED BY SUB-DRIVER TYPE.
  2262.  
  2263.  
  2264. TREC INDEX
  2265. INDEX 0,/3CZ/REC
  2266. INDEX 1,/3CY/REC
  2267. INDEX MXSD
  2268. TSDO SPACE 4,10
  2269. ** TSDO - TABLE OF SUB-DRIVER OVERLAY NAMES.
  2270. *
  2271. * INDEXED BY SUB-DRIVER TYPE.
  2272.  
  2273.  
  2274. TSDO INDEX
  2275. INDEX 0,2RCZ
  2276. INDEX 1,2RCY
  2277. INDEX MXSD
  2278. TSDP SPACE 4,10
  2279. ** TSDP - TABLE OF SUB-DRIVER PROCESSOR ADDRESSES.
  2280. *
  2281. * INDEXED BY SUB-DRIVER TYPE.
  2282.  
  2283.  
  2284. TSDP INDEX
  2285. INDEX 0,/3CZ/SDP
  2286. INDEX 1,/3CY/SDP
  2287. INDEX MXSD
  2288. XCD TTL 1CD/3CZ - BATCHIO COMBINED DRIVER.
  2289. TITLE
  2290. QUAL 3CZ
  2291. IDENT 3CZ,XCDX
  2292. *COMMENT 1CD - DRIVE *DCC*-CONNECTED DEVICES.
  2293. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  2294. 3CZ SPACE 4,10
  2295. *** 1CD/3CZ - BATCHIO COMBINED DRIVER.
  2296. *
  2297. * THIS SUB-DRIVER OVERLAY CONTAINS DRIVERS TO ACCESS DEVICES
  2298. * THAT ARE CONNECTED VIA A DATA CHANNEL CONVERTER (DCC).
  2299. 3CZ SPACE 4,10
  2300. ORG OVLA
  2301.  
  2302. XCD SUBR ENTRY/EXIT
  2303. CHTE CCEA
  2304. LJM PRS PRESET
  2305. TITLE 3555/512 - 580 DRIVER SECTION.
  2306. LPD SPACE 4,10
  2307. ** LPD - 3555/512 - 580 DRIVER.
  2308.  
  2309.  
  2310. LPD RJM PSD PRESET DRIVER
  2311. LPD1 LDC GBPF+2000 REQUEST BANNER PAGE GENERATION
  2312. RJM CPS
  2313. LPD2 RJM MGR GO TO MANAGER
  2314. ZJN LPD1 IF REQUEST NOT ACCEPTED
  2315. LDD BS+4 CHECK BUFFER STATUS
  2316. LMC GBPF+1
  2317. ZJN LPD4 IF OPERATION COMPLETE
  2318. LMN 4
  2319. ZJN LPD3 IF USER FORMS CONTROL ON PREVIOUS JOB
  2320. LMC CECF&GBPF+4
  2321. NJN LPD2 IF NOT PFC ERROR
  2322. LJM TOP4 TERMINATE OPERATION
  2323.  
  2324. * PHASE 1. LOAD BUFFER.
  2325.  
  2326. LPD3 SCN 2 SET DRIVER HOLDING
  2327. LMN 2
  2328. STM CMHF
  2329.  
  2330. * *LPD4* IS A SECONDARY ENTRY POINT FOR *LPD*.
  2331.  
  2332. LPD4 LDN 1 SET BUSY RETURN
  2333. STD BR
  2334. RJM MGR GO TO MANAGER
  2335. LDM CMHF
  2336. NJN LPD3 IF HOLD INITIATED
  2337. RJM COB CHECK OUTPUT BUFFER
  2338. SBN DBUFW*2+1
  2339. PJN LPD5 IF AT LEAST 1 LINE AND 1 WORD
  2340. LDD BS+4
  2341. LPN 20
  2342. ZJN LPD4 IF NOT EOR/EOF/EOI
  2343. LPD5 RJM ADB ASSIGN DATA BUFFER
  2344. LDN 0
  2345. STM LPFT CLEAR FORMAT TAPE AND PM MESSAGE FLAGS
  2346. STD BR CLEAR BUSY RETURN
  2347. LDM CMSF CHECK MODE OF FILE
  2348. LPN 50
  2349. ZJN LPD6 IF NOT 6/12 OR 8/12 ASCII PRINT FILE
  2350. LDN DBUFW
  2351. LPD6 ADN DBUFW READ CODED BUFFER
  2352. RJM RCB
  2353. NJN LPD8 IF NOT EMPTY LINE
  2354. LPD7 LDN 40 SET SPACE CHARACTER
  2355. STI T1
  2356. AOD T1
  2357. AOM CMLR ADVANCE BYTE COUNT FOR LINE
  2358. LPD8 SBN 2
  2359. MJN LPD7 IF NOT 2 CHARACTERS IN LINE
  2360. LDM CMSF
  2361. LPN 10
  2362. NJN LPD9 IF 12 BIT ASCII PRINT FILE
  2363. LPDA PSN
  2364. * UJN LPD9 (SYSTEM IN 63 CHARACTER SET)
  2365. LDM -1,T1 CHECK LAST CHARACTER IN LINE
  2366. LMN 72
  2367. NJN LPD9 IF NOT COLON
  2368. LDN 40 REPLACE WITH BLANK
  2369. STM -1,T1
  2370. LPD9 SOM CMLR DEDUCT CARRIAGE CONTROL CHARACTER
  2371. ADC -137D
  2372. LPDB EQU *-1
  2373. PJN LPD9 IF LINE TOO LONG
  2374. LDD T2 SET FORMAT CONTROL FOR NEXT LINE
  2375. STM LPFC
  2376. LDD OT SAVE *OUT* POINTER
  2377. STM LPOT
  2378. LDD OT+1
  2379. STM LPOT+1
  2380. RJM MGR GO TO MANAGER
  2381.  
  2382. * PHASE 2. PROCESS FORMAT CONTROL.
  2383.  
  2384. LDM CMSF
  2385. LPN 4
  2386. NJN LPD10.2 IF SUPPRESS FLAG SET
  2387. LDI DA CHECK FORMAT CHARACTER
  2388. LPC 3777 REMOVE UPPER BIT
  2389. STI DA
  2390. LMN 40 ASCII BLANK
  2391. ZJN LPD10.2 IF ASCII BLANK
  2392. RJM WNB WAIT NOT BUSY
  2393. RJM SPC PROCESS SPACE CONTROL
  2394. RJM MGR GO TO MANAGER
  2395. ZJN LPD10 IF NOT *Q*, *R*, *S*, *T* FORMAT CONTROL
  2396. LJM LPD4 LOAD BUFFER
  2397.  
  2398. LPD10 LDI DA CHECK FOR PM MESSAGE
  2399. ADC -120
  2400. NJN LPD10.2 IF NOT PM MESSAGE
  2401. AOD DA CHECK NEXT CHARACTER
  2402. LDI DA
  2403. ADC -115
  2404. NJN LPD10.1 IF NOT PM MESSAGE
  2405. LDN 2 SET PM MESSAGE FLAG
  2406. RAM LPFT
  2407. LPD10.1 SOD DA RESTORE DATA ADDRESS
  2408. LPD10.2 LDM CMBE
  2409. ZJN LPD13 IF BUFFER EMPTY
  2410. LDM CMSF
  2411. LPN 10
  2412. NJN LPD11 IF 12 BIT ASCII
  2413. LDM LPFC CHECK FORMAT CHARACTER OF NEXT LINE
  2414. SHN -6
  2415. LMN 1R+
  2416. UJN LPD12 CHECK FOR *+*
  2417.  
  2418. LPD11 LDM LPFC
  2419. LPC 3777 REMOVE UPPER BIT
  2420. LMN 53 ASCII *+*
  2421. LPD12 NJN LPD13 IF NOT *+*
  2422. LDM LPFT CHECK FORMAT TAPE FLAG
  2423. LPN 1
  2424. NJN LPD13 IF FUNCTION .GE. 31
  2425. RJM WNB WAIT NOT BUSY
  2426. LDN 6 SUPPRESS SPACE AFTER PRINT
  2427. RJM FCN
  2428.  
  2429. * PHASE 3. PRINT LINE.
  2430.  
  2431. LPD13 LDN ECLE CLEAR *I* DISPLAY
  2432. RJM MSG
  2433. AOD DA DO NOT PRINT FORMAT CHARACTER
  2434. LDM LPPR
  2435. ZJN LPD14 IF NO PRINT ERRORS
  2436. LDC 0#5F STORE ASCII *_*
  2437. STI DA
  2438. LPD14 LDC 16S12+OAMI OUTPUT PRINT RECORD
  2439. RJM XDR
  2440. RJM RDB RELEASE DATA BUFFER
  2441. LDC * SET REENTRY ADDRESS FOR FUNCTION REJECT
  2442. STM CMPA
  2443. LDN 22 SELECT END OF OPERATION INTERRUPT
  2444. RJM FCN
  2445. RJM MGR GO TO MANAGER
  2446.  
  2447. * PHASE 4. PROCESS POST PRINT OPERATIONS.
  2448.  
  2449. LDM LPFT CHECK FORMAT TAPE FLAG
  2450. LPN 1
  2451. ZJN LPD15 IF NOT SET
  2452. RJM WNB WAIT NOT BUSY
  2453. LDN 7 CONDITIONAL CLEAR FORMAT
  2454. RJM FCN
  2455. LPD15 LDD ST
  2456. SHN -12 CHECK PRINT ERROR STATUS LINE
  2457. LPN 1
  2458. NJN LPR IF SET
  2459. LDN PERI
  2460. RJM CRV CHECK FOR RECOVERED ERROR
  2461. LPD16 LDN LPOT STORE *OUT* POINTER
  2462. RJM SOP
  2463. AOM LPLP INCREMENT LINE COUNT
  2464. SBM LPLL
  2465. MJN LPD17 IF NOT END OF PAGE
  2466. LDM LPLL CHECK USER LIMITS
  2467. RJM CUL
  2468. STM LPLP CLEAR LINE COUNT FOR PAGE
  2469. LPD17 RJM PPM CHECK FOR PM MESSAGE
  2470. LJM LPD4 CONTINUE PRINTING
  2471. LPR SPACE 4,15
  2472. ** LPR - PROCESS PRINT ERROR.
  2473. *
  2474. * USES CM - CM+4.
  2475. *
  2476. * CALLS MSG, PRE.
  2477.  
  2478.  
  2479. LPR AOM CMEC ADVANCE ERROR COUNT
  2480. LDD CP
  2481. ADN SNSW CHECK ERROR REPORTING ENABLED
  2482. CRD CM
  2483. LDD CM+4 INTERROGATE SENSE SWITCH 1
  2484. SHN 21-6
  2485. MJN LPD16 IF ERROR REPORTING AND RETRYING DISABLED
  2486. LDN PERI
  2487. RJM PRE PROCESS RETRIED ERROR
  2488.  
  2489. * *LPR1* IS A SECONDARY ENTRY POINT FOR *LPR*.
  2490.  
  2491. LPR1 LDD CP CHECK ERROR STOP ENABLED
  2492. ADN SNSW
  2493. CRD CM
  2494. LDD CM+4 INTERROGATE SENSE SWITCH 2
  2495. SHN 21-7
  2496. MJN LPR2 IF HOLDING ON ERRORS
  2497. LJM LPD4 CONTINUE PRINTING
  2498.  
  2499. LPR2 LDN EPRH *I* DISPLAY MESSAGE CODE
  2500.  
  2501. * *LPR3* IS A SECONDARY ENTRY POINT FOR *LPR*.
  2502.  
  2503. LPR3 RJM MSG ISSUE BUFFER POINT MESSAGE
  2504. LDN 1
  2505. LJM LPD3 SET DRIVER HOLDING
  2506. LPE SPACE 4,10
  2507. ** LPE - ERROR PROCESSOR.
  2508. *
  2509. * ENTRY (A) = EQUIPMENT STATUS FOLLOWING CONNECT.
  2510. *
  2511. * EXIT TO *PSE*.
  2512. *
  2513. * CALLS MSG.
  2514.  
  2515.  
  2516. LPE LPN 10
  2517. ZJN LPE1 IF NO PAPER FAULT
  2518. LDN ENPA-ENRD
  2519. LPE1 ADN ENRD *NOT READY*
  2520. RJM MSG
  2521. LJM PSE RETURN
  2522. LPN SPACE 4,10
  2523. ** LPN - PROCESS *END*.
  2524. *
  2525. * USES BS+4, CM - CM+4.
  2526. *
  2527. * CALLS SFA.
  2528. *
  2529. * MACROS NFA.
  2530.  
  2531.  
  2532. LPN LDN 0 CLEAR HOLD FLAG
  2533. STM CMHF
  2534. LDM CMSF CHECK END FLAG
  2535. LPN 2
  2536. NJN LPN3 IF SET PREVIOUSLY
  2537. LDN 2 SET END FLAG
  2538. RAM CMSF
  2539. NFA FA,R READ FST INFORMATION
  2540. CRD CM
  2541. LDD FP+1 RESET FILE STATUS
  2542. ZJN LPN3 IF NO DAYFILE
  2543. STD CM+2
  2544. LDD FP+2
  2545. STD CM+3
  2546. NFA FA,R UPDATE FST INFORMATION
  2547. CWD CM
  2548.  
  2549. * *LPN1* IS A SECONDARY ENTRY POINT FOR *LPN*.
  2550.  
  2551. LPN1 LDN 1 RESET BUFFER STATUS
  2552.  
  2553. * *LPN2* IS A SECONDARY ENTRY POINT FOR *LPN*.
  2554.  
  2555. LPN2 STD BS+4
  2556. RJM SFA STORE BUFFER STATUS
  2557. CWD BS
  2558. LJM LPD4 RETURN TO MAIN DRIVER
  2559.  
  2560. LPN3 UJN LEF1 CHECK ACCOUNTING PROCESSED
  2561. LEF SPACE 4,10
  2562. ** LEF - LIST END OF INFORMATION.
  2563. *
  2564. * USES BR, FC, T4.
  2565. *
  2566. * CALLS ACT, MGR, SDM.
  2567.  
  2568.  
  2569. LEF LDD BS+4 CHECK BUFFER STATUS
  2570. SHN 21-11
  2571. PJN LPN1 IF NOT EOI
  2572. LDD F2+2 CHECK ABORT FLAG
  2573. LPN 2
  2574. ZJN LEF1 IF NO ABORT FLAG
  2575. LDN 0 CLEAR REPEAT COUNT
  2576. STM CMER
  2577. LJM LPN PROCESS *END*
  2578.  
  2579. * *LEF1* IS A SECONDARY ENTRY POINT FOR *LEF*.
  2580.  
  2581. LEF1 AOD BR
  2582. LDM CMSF CHECK ACCOUNT FLAG
  2583. LPN 1
  2584. NJN LEF4 IF SET
  2585. AOM CMSF SET ACCOUNT FLAG
  2586. SCN 50 CLEAR 6/12 AND 8/12 ASCII PRINT FLAGS
  2587. STM CMSF
  2588. LEF2 RJM ACT PROCESS ACCOUNTING
  2589. LEF3 RJM MGR GO TO MANAGER
  2590. ZJN LEF2 IF REQUEST NOT ENTERED
  2591. LDD BS+4
  2592. SHN 21-0
  2593. PJN LEF3 IF ACCOUNTING NOT COMPLETE
  2594. LJM LPD4 PRINT LINE COUNT
  2595.  
  2596. * *LEF4* IS A SECONDARY ENTRY POINT FOR *LEF*.
  2597.  
  2598. LEF4 LDM CMEC
  2599. ZJN LEF5 IF NO PRINT ERRORS
  2600. STD FC (FC) = PRINT ERROR COUNT
  2601. LDN EPEM *EQXXX NNNN PRINT ERRORS.*
  2602. RJM SDM
  2603. LEF5 LJM TOF TERMINATE OUTPUT FILE
  2604. PPM SPACE 4,15
  2605. ** PPM - PROCESS PM MESSAGE.
  2606. *
  2607. * EXIT TO CALLER IF NO *PM* MESSAGE OR USER DOES
  2608. * NOT HAVE *CBIO* PRIVILEGES.
  2609. * TO *LPR3* IF *PM* MESSAGE AND USER HAS
  2610. * *CBIO* PRIVILEGES (HOLD FLAG SET).
  2611. *
  2612. * CALLS MSG.
  2613.  
  2614.  
  2615. PPM SUBR ENTRY/EXIT
  2616. LDM LPFT CHECK PM FLAG
  2617. LPN 2
  2618. ZJN PPMX IF NO PM MESSAGE
  2619. LDD F2+2 CHECK USER *CBIO* PRIVILEGES
  2620. LPN 1
  2621. ZJN PPMX IF USER DOES NOT HAVE *CBIO* PRIVILEGES
  2622. LDN EPMM
  2623. LJM LPR3 ISSUE BUFFER POINT MESSAGE
  2624. SPC SPACE 4,10
  2625. ** SPC - PROCESS SPACE CONTROL.
  2626. *
  2627. * ENTRY ((DA)) = FORMAT CONTROL BYTE.
  2628. *
  2629. * EXIT (A) = 0 IF LINE TO BE PRINTED.
  2630. *
  2631. * USES BR, T4.
  2632. *
  2633. * CALLS CPS, CUL, FCN, MGR, RDB, SOP, WNB.
  2634.  
  2635.  
  2636. SPC SUBR ENTRY/EXIT
  2637. LDC TFCC-2 SET TABLE ADDRESS
  2638. STD T4
  2639. SPC1 LDN 2 ADVANCE TABLE
  2640. RAD T4
  2641. LDI T4
  2642. ZJN SPCX IF END OF TABLE
  2643. LMI DA
  2644. NJN SPC1 IF NO MATCH
  2645.  
  2646. * CHARGE FOR NUMBER OF LINES.
  2647.  
  2648. LDI T4 CHECK FOR PAGE EJECT
  2649. SBN 61 ASCII *1*
  2650. ZJN SPC2 IF NORMAL PAGE EJECT
  2651. SBN 126-61 ASCII *V* - ASCII *1*
  2652. NJN SPC3 IF NOT USER FORMS CONTROL
  2653. SPC2 LDM LPLL CHARGE FOR CURRENT PAGE
  2654. RJM CUL
  2655. STM LPLP CLEAR LINE COUNT FOR PAGE
  2656. SPC3 LDI T4 CHECK FOR LAST LINE OF FORM
  2657. SBN 62 ASCII *2*
  2658. NJN SPC4 IF NOT ADVANCE TO LAST LINE OF FORM
  2659. LDM LPLL
  2660. SHN -1 CHARGE FOR LAST LINE OF FORM (*PLXL*/2)
  2661. RAM LPLP
  2662. SPC4 LDM 1,T4
  2663. SHN 14
  2664. RAM LPLP
  2665.  
  2666. * ISSUE FORMAT FUNCTION.
  2667.  
  2668. SHN -14
  2669. ZJN SPC7 IF NO FORMAT SELECTION
  2670. RJM FCN
  2671. LDI T4 CHECK SELECTED FORMAT
  2672. ADC -121 ASCII *Q*
  2673. ZJN SPC5 IF *Q*
  2674. SBN 122-121 ASCII *R* - ASCII *Q*
  2675. NJN SPC8 IF NOT *R*
  2676. SPC5 LDD F2+2 GET BIO FLAGS
  2677. LPN 10 CHECK FOR FORCED 8 LPI
  2678. ZJN SPC6 IF NOT FORCED 8 LPI
  2679. RJM MGR GO TO MANAGER
  2680. RJM WNB WAIT NOT BUSY
  2681. LDN 10 SET 8 LPI
  2682. RJM FCN ISSUE FUNCTION
  2683. SPC6 LDN LPOT STORE *OUT* POINTER
  2684. RJM SOP
  2685. * LDN 1 SET NO PRINT ON RETURN
  2686. SPC7 LJM SPCX RETURN
  2687.  
  2688. SPC8 SBN 123-122 ASCII *S* - ASCII *R*
  2689. ZJN SPC9 IF *S*
  2690. SBN 124-123 ASCII *T* - ASCII *S*
  2691. NJN SPC11 IF NOT *T*
  2692. LDN LP8L-LP6L
  2693. SPC9 STD T4
  2694. LDM LP6L+EQSB,T4 SET LINE LIMIT FOR PAGE
  2695. STM LPLL
  2696. SPC10 UJN SPC5 SET NO PRINT ON RETURN
  2697.  
  2698. SPC11 SBN 126-124 ASCII *V* - ASCII *T*
  2699. ZJN SPC12 IF *V*
  2700. LDM LPFT
  2701. SCN 1
  2702. STM LPFT
  2703. LDD FC
  2704. SBN 30+1
  2705. SHN 0-21
  2706. LMN 1 SET FORMAT TAPE FLAG
  2707. RAM LPFT
  2708. LDN 0
  2709. UJN SPC7 RETURN
  2710.  
  2711. SPC12 LDM 1,DA CHECK PFC ARRAY TO BE CHANGED
  2712. SBN 66 ASCII *6*
  2713. ZJN SPC13 IF 6 LPI
  2714. SBN 70-66 ASCII *8* - ASCII *6*
  2715. ZJN SPC13 IF 8 LPI
  2716. SBN 103-70 ASCII *C* - ASCII *8*
  2717. NJN SPC10 IF NOT 8 LPI ACROSS 2 LINES
  2718. SPC13 AOD BR SET BUSY RETURN
  2719. RJM RDB RELEASE DATA BUFFER
  2720. SPC14 RJM MGR GO TO MANAGER
  2721. LDD BS+4 CHECK BUFFER STATUS
  2722. LPN 1
  2723. ZJN SPC14 IF BUFFER BUSY
  2724. LDD BS+4 SAVE BUFFER STATUS
  2725. STM CMBS
  2726. SPC15 LDC PFCF+2000 REQUEST RELOAD PFC MEMORY
  2727. RJM CPS
  2728. SPC16 RJM MGR GO TO MANAGER
  2729. ZJN SPC15 IF REQUEST NOT ACCEPTED
  2730. LDD BS+4 CHECK BUFFER STATUS
  2731. LMC 1031
  2732. NJN SPC17 IF NOT INVALID USER / ERROR IN PFC IMAGE
  2733. LJM LPD4 CONTINUE / TERMINATE PRINT JOB
  2734.  
  2735. SPC17 LMC PFCF&1030
  2736. NJN SPC18 IF NOT PFC LOAD COMPLETE
  2737. LDM CMBS
  2738. LJM LPN2 RESET BUFFER STATUS AND CONTINUE
  2739.  
  2740. SPC18 LMN CECF&PFCF
  2741. NJN SPC16 IF NOT PFC ERROR
  2742. LJM TOP4 TERMINATE OPERATION
  2743. TFCC SPACE 4,10
  2744. ** TFCC - TABLE OF FORMAT CONTROL CHARACTERS.
  2745. *
  2746. * TWO WORD ENTRY.
  2747. *
  2748. * PROGRAMMERS NOTE - THE *+* FORMAT CONTROL CHARACTER IS
  2749. * PROCESSED IN THE MAIN DRIVER BECAUSE THERE IS NO
  2750. * DIRECTLY EQUIVALENT CONTROLLER FUNCTION. CONTROLLER
  2751. * FUNCTION 6 IS USED FOR BOTH */* AND *+*, AND THE
  2752. * TIMING OF WHEN THE FUNCTION 6 IS SENT DETERMINES IF
  2753. * SPACING IS SUPPRESSED BEFORE OR AFTER PRINTING.
  2754.  
  2755.  
  2756. TFCC BSS 0
  2757. FMTC C,3,16,36 SKIP TO CHANNEL 6 AFTER PRINT
  2758. FMTC D,2,15,35 SKIP TO CHANNEL 5 AFTER PRINT
  2759. FMTC E,2,14,34 SKIP TO CHANNEL 4 AFTER PRINT
  2760. FMTC F,1,13,33 SKIP TO CHANNEL 3 AFTER PRINT
  2761. FMTC G,1,12,32 SKIP TO CHANNEL 2 AFTER PRINT
  2762. FMTC H,0,11,31 SKIP TO CHANNEL 1 AFTER PRINT
  2763. FMTC Q,0,10,30 CLEAR AUTO EJECT
  2764. FMTC R,0,5,5 SELECT AUTO EJECT
  2765. FMTC S,0,0,11 CLEAR 8 LINES/INCH
  2766. FMTC T,0,0,10 SET 8 LINES/INCH
  2767. FMTC V,0,0,4 EJECT AND CHANGE PFC IMAGE
  2768. FMTC 0,1,1,1 SPACE 1 LINE BEFORE PRINT
  2769. FMTC 1,0,4,4 EJECT BEFORE PRINT
  2770. FMTC 2,0,3,3 ADVANCE TO LAST LINE BEFORE PRINT
  2771. FMTC 3,3,26,56 SKIP TO CHANNEL 6 BEFORE PRINT
  2772. FMTC 4,2,25,55 SKIP TO CHANNEL 5 BEFORE PRINT
  2773. FMTC 5,2,24,54 SKIP TO CHANNEL 4 BEFORE PRINT
  2774. FMTC 6,1,23,53 SKIP TO CHANNEL 3 BEFORE PRINT
  2775. FMTC 7,1,22,52 SKIP TO CHANNEL 2 BEFORE PRINT
  2776. FMTC 8,0,21,51 SKIP TO CHANNEL 1 BEFORE PRINT
  2777. * FMTC +,0,0,0 PROCESSED IN MAIN DRIVER
  2778. FMTC -,2,2,2 SPACE 2 LINES BEFORE PRINT
  2779. FMTC /,0,6,6 SUPPRESS SPACE AFTER PRINT
  2780. CON 0
  2781.  
  2782. TITLE 3446/415 DRIVER SECTION.
  2783. CPD SPACE 4,10
  2784. ** CPD - 3446/415 DRIVER.
  2785.  
  2786.  
  2787. CPD RJM PSD PRESET DRIVER
  2788. LDC 4000 SET NO COMPARISON MODE FOR HEADER CARD
  2789. STM CPPM
  2790. LDD FP+2 SET PUNCH FORMAT
  2791. LPN 7
  2792. STM CPFM
  2793. LMN PHFR
  2794. ZJN CPD1 IF O26 CONVERSION MODE
  2795. LMN P9FR&PHFR
  2796. NJN CPD1 IF NOT O29 CONVERSION
  2797. LDN CDXA SET O29 CONVERSION MODE
  2798. STM CMCT
  2799. CPD1 LDC GLCF+1000 REQUEST LACE CARD GENERATION
  2800. RJM CPS
  2801. CPD2 RJM MGR GO TO MANAGER
  2802. ZJN CPD1 IF REQUEST NOT ENTERED
  2803. LDD BS+4 CHECK BUFFER STATUS
  2804. LMC GLCF+1
  2805. NJN CPD2 IF REQUEST NOT COMPLETE
  2806.  
  2807. * *CPD3* IS A SECONDARY ENTRY POINT FOR *CPD*.
  2808. *
  2809. * ENTRY BUFFER NOT BUSY.
  2810.  
  2811. CPD3 RJM MGR GO TO MANAGER
  2812. RJM ADB ASSIGN DATA BUFFER
  2813. LDN 0 CLEAR BUSY RETURN
  2814. STD BR
  2815. LDN 20 READ BINARY BUFFER
  2816. STD T3
  2817. RJM CDB CHECK DATA IN BUFFER
  2818. LDD DA
  2819. RJM RNL READ NEXT CARD
  2820. RJM MGR GO TO MANAGER
  2821. RJM PBC PUNCH BINARY CARD
  2822. RJM ECB EMPTY CIRCULAR BUFFER
  2823. LDD OT OUT1=OUT2=OUT
  2824. STM CPO1
  2825. STM CPO2
  2826. LDD OT+1
  2827. STM CPO1+1
  2828. STM CPO2+1
  2829.  
  2830. * *CPD4* IS A SECONDARY ENTRY POINT FOR *CPD*.
  2831.  
  2832. CPD4 LDN 0 INITIALIZE CARD COUNT
  2833. STM CPCN
  2834. STM CPCN+1
  2835.  
  2836. * *CPD5* IS A SECONDARY ENTRY POINT FOR *CPD*.
  2837.  
  2838. CPD5 AOD BR SET BUSY RETURN
  2839. RJM MGR GO TO MANAGER
  2840. RJM ADB ASSIGN DATA BUFFER
  2841. LDM CPO2 OUT = OUT2
  2842. STD OT
  2843. LDM CPO2+1
  2844. STD OT+1
  2845. LDM CPFM SELECT PUNCH PROCESSOR
  2846. ZJN CPD6 IF DEFAULT
  2847. LMN PHFR
  2848. ZJN CPD6 IF PUNCH CODED 026
  2849. LMN P9FR&PHFR
  2850. NJN CPD7 IF NOT PUNCH CODED 029
  2851. CPD6 LJM CPC PUNCH CODED
  2852.  
  2853. CPD7 LMN PBFR&P9FR
  2854. ZJN CPB1 IF PUNCH SYSTEM BINARY
  2855. LMN P8FR&PBFR
  2856. ZJN CPB IF PUNCH ABSOLUTE, 80 COLUMN BINARY
  2857. LJM TOF TERMINATE OUTPUT FILE
  2858. CPB SPACE 4,10
  2859. ** CPB - PUNCH BINARY.
  2860. *
  2861. * USES BR, T1 - T3.
  2862. *
  2863. * CALLS CCI, CKC, COB, PBC, RNL, MGR.
  2864.  
  2865.  
  2866. * PHASE 1. LOAD BUFFER AND GENERATE CHECKSUM.
  2867.  
  2868. CPB LDN 1 ABSOLUTE 80 COLUMN BINARY
  2869. CPB1 ADN 17
  2870. STD T3
  2871. RJM COB CHECK OUTPUT BUFFER
  2872. SBD T3
  2873. PJN CPB2 IF FULL CARD
  2874. RAD T3
  2875. SHN 2
  2876. ADD T3
  2877. ADD DA
  2878. RJM CCI CLEAR CARD IMAGE
  2879. LDD BS+4 CHECK LAST STATUS
  2880. LPN 20
  2881. NJN CPB2 IF EOR / EOF
  2882. LJM MGR1 RETURN TO MANAGER
  2883.  
  2884. CPB2 LDM CPFM SET DATA ADDRESS
  2885. LMN P8FR
  2886. ZJN CPB3 IF ABSOLUTE, 80 COLUMN BINARY
  2887. LDN 2 SYSTEM BINARY
  2888. CPB3 STD T2
  2889. ADD DA READ NEXT CARD
  2890. RJM RNL
  2891. LDD OT OUT2 = OUT
  2892. STM CPO2
  2893. LDD OT+1
  2894. STM CPO2+1
  2895. LDD T2
  2896. NJN CPB4 IF NOT ABSOLUTE BINARY
  2897. LJM CPB6 CLEAR BUSY RETURN
  2898.  
  2899. CPB4 LDD T3 SET WORD COUNT + BINARY INDICATOR
  2900. SHN 6
  2901. ADN 5
  2902. STI DA
  2903. LDD DA SET FIRST DATA ADDRESS
  2904. ADN 2
  2905. STD T1
  2906. ADC 113
  2907. STD T2
  2908. LDN 0 CLEAR CHECKSUM
  2909. STD T3
  2910. CPB5 LDI T1 GENERATE CHECKSUM
  2911. LMC 770000
  2912. RAD T3
  2913. AOD T1
  2914. LMD T2
  2915. NJN CPB5 IF NOT END OF DATA
  2916. STM 115,DA CLEAR COLUMN 78
  2917. SBD T3
  2918. STM 1,DA STORE CHECKSUM
  2919. AOM CPCN+1 STORE BINARY CARD NUMBER
  2920. STM 117,DA
  2921. SHN -14
  2922. RAM CPCN
  2923. STM 116,DA
  2924. CPB6 LDN 0 CLEAR BUSY RETURN
  2925. STD BR
  2926. RJM MGR GO TO MANAGER
  2927.  
  2928. * PHASE 2. PUNCH CARD.
  2929.  
  2930. RJM PBC PUNCH BINARY CARD
  2931. RJM MGR GO TO MANAGER
  2932.  
  2933. * PHASE 3. CHECK PREVIOUS CARD.
  2934.  
  2935. RJM CKC CHECK CARD
  2936. PJN CPB8 IF NO COMPARE ERROR
  2937. CPB7 LCN 2 DECREMENT BINARY CARD NUMBER
  2938. RAM CPCN+1
  2939. PJN CPB8 IF NO UNDERFLOW
  2940. SOM CPCN
  2941. AOM CPCN+1
  2942. CPB8 LJM CPD5 LOOP FOR NEXT CARD
  2943. CPC SPACE 4,10
  2944. ** CPC - PUNCH CODED.
  2945. *
  2946. * USES BR, T1.
  2947. *
  2948. * CALLS AOP, CCI, CKC, COB, PBC, RCB, MGR.
  2949.  
  2950.  
  2951. * PHASE 1. LOAD BUFFER.
  2952.  
  2953. CPC RJM COB CHECK OUTPUT BUFFER
  2954. SBN 11
  2955. PJN CPC1 IF AT LEAST 1 CARD AND 1 WORD
  2956. LDD BS+4 CHECK LAST STATUS
  2957. LPN 20
  2958. NJN CPC1 IF EOR / EOF
  2959. LJM MGR1 RETURN TO MANAGER
  2960.  
  2961. CPC1 LDN 10 READ CODED CARD
  2962. RJM RCB
  2963. ZJN CPC3 IF EMPTY CARD
  2964. LMC 120
  2965. NJN CPC2 IF CURRENT CARD NOT FULL
  2966. LDM CMBE
  2967. ZJN CPC2 IF BUFFER EMPTY
  2968. LDD T2 CHECK NEXT WORD
  2969. ADD T3
  2970. ADD T4
  2971. ADD T5
  2972. ADD T6
  2973. NJN CPC2 IF NOT END OF CARD
  2974. LDN 1 ADVANCE *OUT* POINTER
  2975. RJM AOP
  2976. CPC2 LDD T7 CHECK LAST CHARACTER PROCESSED
  2977. NJN CPC3 IF NOT PART OF EOL
  2978. SOD T1
  2979. CPC3 LDD T1 CLEAR REMAINDER OF CARD IMAGE
  2980. RJM CCI
  2981. LDD OT OUT2 = OUT
  2982. STM CPO2
  2983. LDD OT+1
  2984. STM CPO2+1
  2985. LDN 0 CLEAR BUSY RETURN
  2986. STD BR
  2987. RJM MGR GO TO MANAGER
  2988.  
  2989. * PHASE 2. PUNCH CARD.
  2990.  
  2991. RJM PBC PUNCH BINARY CARD
  2992. RJM MGR GO TO MANAGER
  2993.  
  2994. * PHASE 3. CHECK PREVIOUS CARD.
  2995.  
  2996. RJM CKC CHECK CARD
  2997. LJM CPD5 LOOP FOR NEXT CARD
  2998. CPX SPACE 4,10
  2999. ** CPX - PROCESS TRANSMISSION PARITY ERROR/INCOMPLETE
  3000. * DATA TRANSFER.
  3001. *
  3002. * EXIT TO *MGR1*.
  3003.  
  3004.  
  3005. CPX AOM CPPM SET PUNCH MODE TO OFFSET
  3006. LJM MGR1 RETURN TO MANAGER
  3007. CKC SPACE 4,10
  3008. ** CKC - CHECK CARD.
  3009. *
  3010. * EXIT (A) .LT. 0 IF COMPARE ERROR.
  3011. *
  3012. * USES BR, CM - CM+4.
  3013. *
  3014. * CALLS CUL, FCN, MSG, SDM, SFA, SOP, WST.
  3015.  
  3016.  
  3017. CKC5 LDM CPO2 OUT1 = OUT2
  3018. STM CPO1
  3019. LDM CPO2+1
  3020. STM CPO1+1
  3021. AOD BR SET BUSY RETURN
  3022. RJM CUL CHECK USER LIMITS
  3023.  
  3024. CKC SUBR ENTRY/EXIT
  3025. LDM CPPM CHECK PUNCH MODE
  3026. ZJN CKC3 IF COMPARE
  3027. SHN 6
  3028. MJN CKC1 IF NO COMPARE, NO OFFSET
  3029. LDN 3 OFFSET CARD
  3030. RJM FCN
  3031. CKC1 LDN 0 SET PUNCH MODE TO COMPARE
  3032. STM CPPM
  3033. LDN ECLE CLEAR ERROR MESSAGE
  3034. RJM MSG
  3035. CKC2 UJN CKC5 SET OUT POINTERS
  3036.  
  3037. CKC3 LDD ST CHECK STATUS
  3038. SHN 7
  3039. MJN CKC4 IF COMPARE ERROR
  3040. LDN CPO1 STORE OUT POINTER
  3041. RJM SOP
  3042. UJN CKC2 SET OUT POINTERS
  3043.  
  3044. CKC4 LDN 3 OFFSET CARD
  3045. RJM FCN
  3046. LDN ECPE *COMPARE ERROR.*
  3047. RJM MSG
  3048. RJM WST WRITE STATUS
  3049. LDN ECEM *EQXXX COMPARE ERROR.*
  3050. RJM SDM
  3051. RJM SFA OUT2 = OUT
  3052. ADN 3
  3053. CRD CM
  3054. LDD CM+3
  3055. STM CPO2
  3056. STM CPO1 OUT1 = OUT
  3057. LDD CM+4
  3058. STM CPO2+1
  3059. STM CPO1+1
  3060. AOM CPPM SET PUNCH MODE TO OFFSET
  3061. AOM CMEC ADVANCE ERROR COUNT
  3062. LCN 0
  3063. LJM CKCX RETURN
  3064. CCI SPACE 4,10
  3065. ** CCI - CLEAR CARD IMAGE.
  3066. *
  3067. * ENTRY (A) = STARTING ADDRESS TO CLEAR TO.
  3068. * (DA) = DATA BUFFER ADDRESS.
  3069. *
  3070. * EXIT (T1) = ADDRESS OF END OF CARD IMAGE.
  3071. *
  3072. * USES T0 - T1.
  3073.  
  3074.  
  3075. CCI1 LDN 0 CLEAR BUFFER
  3076. STI T0
  3077. SOD T0 DECREMENT ADDRESS
  3078. CCI2 SBD T1
  3079. PJN CCI1 IF NOT START OF DATA
  3080.  
  3081. CCI SUBR ENTRY/EXIT
  3082. STD T1
  3083. LDD DA
  3084. ADC 121 SET LIMIT ADDRESS
  3085. STD T0
  3086. UJN CCI2 ENTER LOOP
  3087. PBC SPACE 4,10
  3088. ** PBC - PUNCH BINARY CARD.
  3089. *
  3090. * ENTRY (DA) = DATA ADDRESS.
  3091. *
  3092. * CALLS FCN, RDB, XDR.
  3093.  
  3094.  
  3095. PBC SUBR ENTRY/EXIT
  3096. LDC 120 SET BYTE COUNT FOR BINARY CARD
  3097. STM CMLR
  3098. LDN 1 SELECT BINARY
  3099. RJM FCN
  3100. LDC 16S12+OAMI OUTPUT PUNCH RECORD
  3101. RJM XDR
  3102. RJM RDB RELEASE DATA BUFFER
  3103. UJN PBCX RETURN
  3104. PED SPACE 4,10
  3105. ** PED - PROCESS *END*.
  3106. *
  3107. * EXIT TO *TOF* IF *END* SET PREVIOUSLY.
  3108. *
  3109. * CALLS MGR.
  3110.  
  3111.  
  3112. PED LDM CMSF CHECK END FLAG
  3113. LPN 2
  3114. ZJN PED1 IF NOT SET
  3115. LJM TOF TERMINATE OUTPUT FILE
  3116.  
  3117. PED1 LDN 2 SET END FLAG
  3118. RAM CMSF
  3119. RJM MGR GO TO MANAGER
  3120. * LJM PEF PUNCH EOF
  3121. PEF SPACE 4,10
  3122. ** PEF - PUNCH END OF FILE.
  3123. *
  3124. * USES BR.
  3125. *
  3126. * CALLS ACT, ADB, CCI, FCN, MGR, PBC.
  3127.  
  3128.  
  3129. PEF RJM ADB ASSIGN DATA BUFFER
  3130. RJM CCI CLEAR CARD IMAGE
  3131. LDD BS+4 CHECK BUFFER STATUS
  3132. SHN 21-11
  3133. MJN PEF2 IF EOI
  3134. LDN 15
  3135. LJM PER1 SET EOF INDICATORS
  3136.  
  3137. PEF2 LDN 17 SET EOI INDICATORS
  3138. STI DA
  3139. STM 117,DA
  3140. LDN 0 CLEAR BUSY RETURN
  3141. STD BR
  3142. LDM CMEC ENTER ERROR COUNT
  3143. STM 47,DA
  3144. RJM MGR GO TO MANAGER
  3145. RJM PBC PUNCH BINARY CARD
  3146. RJM MGR GO TO MANAGER
  3147. LDN 3 OFFSET CARD
  3148. RJM FCN
  3149. RJM MGR GO TO MANAGER
  3150. LDN 4 GATE LAST CARD
  3151. RJM FCN
  3152. RJM MGR GO TO MANAGER
  3153. LDN 3 OFFSET EOI
  3154. RJM FCN
  3155. AOD BR SET BUSY RETURN
  3156. PEF3 RJM ACT PROCESS ACCOUNTING
  3157. PEF4 RJM MGR GO TO MANAGER
  3158. ZJN PEF3 IF REQUEST NOT ENTERED
  3159. LDD BS+4
  3160. SHN 21-0
  3161. PJN PEF4 IF ACCOUNTING NOT COMPLETE
  3162. LJM TOF TERMINATE OUTPUT FILE
  3163. PER SPACE 4,10
  3164. ** PER - PUNCH END OF RECORD.
  3165. *
  3166. * USES BR, BS+4.
  3167. *
  3168. * CALLS CCI, CKC, FCN, MGR, PBC, SFA.
  3169.  
  3170.  
  3171. PER LDD DA CLEAR CARD IMAGE
  3172. RJM CCI
  3173. LDN 7 SET EOR INDICATOR
  3174. PER1 STI DA
  3175. STM 117,DA
  3176. LDN 0 CLEAR BUSY RETURN
  3177. STD BR
  3178. RJM MGR GO TO MANAGER
  3179. LDM CPPM
  3180. ZJN PER2 IF NO OFFSET
  3181. LDN 3 OFFSET CARD
  3182. RJM FCN
  3183. RJM MGR GO TO MANAGER
  3184. PER2 RJM PBC PUNCH BINARY CARD
  3185. RJM MGR GO TO MANAGER
  3186. RJM CKC CHECK CARD
  3187. PJN PER3 IF NO COMPARE ERROR ON PREVIOUS CARD
  3188. LJM CPB7 REPUNCH CARD IN ERROR
  3189.  
  3190. PER3 LDN 1 CLEAR EOR/EOF
  3191. STD BS+4
  3192. RJM SFA STORE BUFFER STATUS
  3193. CWD BS
  3194. AOM CPPM SELECT OFFSET
  3195. LJM CPD4 EXIT TO DRIVER
  3196. CPE SPACE 4,10
  3197. ** CPE - ERROR PROCESSOR.
  3198. *
  3199. * ENTRY (A) = EQUIPMENT STATUS FOLLOWING CONNECT.
  3200. *
  3201. * EXIT TO *PSE*.
  3202. *
  3203. * CALLS MSG, SDM, WST.
  3204.  
  3205.  
  3206. CPE2 LDN ENRD *NOT READY*
  3207. CPE3 RJM MSG SET BUFFER POINT MESSAGE
  3208. LJM PSE RETURN
  3209.  
  3210. CPE SHN 21-6
  3211. PJN CPE2 IF NO *FEED FAILURE*
  3212. LDM CPES
  3213. NJN CPE1 IF NOT FIRST FAILURE
  3214. AOM CPES
  3215. RJM WST WRITE STATUS
  3216. LDN EFFM *EQXXX FEED FAILURE.*
  3217. RJM SDM
  3218. CPE1 LDN EFED *FEED FAILURE.*
  3219. UJN CPE3 SET BUFFER POINT MESSAGE
  3220. TITLE 3447/405 DRIVER SECTION.
  3221. CRD SPACE 4,10
  3222. ** CRD - 3447/405 DRIVER.
  3223.  
  3224.  
  3225. CRD LDN 0 CLEAR BINARY CARD SEQUENCE ERROR
  3226. STD FP+1
  3227. AOM CRRC INITIALIZE LOGICAL RECORD COUNT
  3228. STM CRSN INITIALIZE CARD COUNT IN RECORD
  3229. LDC 120 SET RECORD LENGTH
  3230. STM CMLR
  3231. RJM ECB EMPTY CIRCULAR BUFFER
  3232.  
  3233. * *CRD1* IS A SECONDARY ENTRY POINT FOR *CRD*.
  3234.  
  3235. CRD1 LDN 0
  3236. STD BR
  3237. RJM MGR GO TO MANAGER
  3238.  
  3239. * *CRD2* IS A SECONDARY ENTRY POINT FOR *CRD*.
  3240. *
  3241. * PHASE 1. CHECK MODE OF CARD.
  3242.  
  3243. CRD2 RJM CIB CHECK INPUT BUFFER
  3244. SBN 20
  3245. MJN CRD1 IF NOT ROOM FOR 1 CARD
  3246. LDN 0
  3247. STM CRBE
  3248. LDN ECLE CLEAR ERROR MESSAGE
  3249. RJM MSG
  3250. LDD ST CHECK CARD STATUS
  3251. SHN 21-12
  3252. PJN CRD3 IF NO ERROR
  3253. RJM WST WRITE STATUS
  3254. LDN ECEM *EQXXX COMPARE ERROR.*
  3255. RJM SDM ISSUE ERROR LOG MESSAGE
  3256. RJM EBF EMPTY BUFFER
  3257. LJM MGR1 RETURN TO MANAGER
  3258.  
  3259. CRD3 RJM ADB ASSIGN DATA BUFFER
  3260. LDN 1 NEGATE BCD CONVERSION
  3261. RJM FCN
  3262. LDM CRLI SET DATA ADDRESS
  3263. RAD DA
  3264. LDC 15S12+IAMI INPUT CARD
  3265. RJM XDR
  3266. AOD BR SET BUSY RETURN
  3267. RJM MGR GO TO MANAGER
  3268. LDM CRLI
  3269. NJN CRD4 IF LITERAL INPUT
  3270. LDI DA CHECK FOR BINARY CARD
  3271. LPN 5
  3272. LMN 5
  3273. NJN CRC IF NOT BINARY CARD
  3274. LJM CRB PROCESS BINARY CARD
  3275.  
  3276. CRD4 LJM CRL PROCESS LITERAL INPUT
  3277. CRC SPACE 4,10
  3278. ** CRC - PROCESS CODED CARD.
  3279. *
  3280. * USES T1 - T3.
  3281. *
  3282. * CALLS CHD, CKM, MGR, SCN, WBB.
  3283.  
  3284.  
  3285. * PHASE 2. CONVERT TO DISPLAY CODE AND DELETE TRAILING SPACES.
  3286.  
  3287. CRC LDD DA SET DATA ADDRESS OF BINARY INPUT
  3288. STD T1
  3289. STD T2 SET LAST NON-SPACE ADDRESS
  3290. STD T3 SET DATA ADDRESS FOR STORING DISPLAY CODE
  3291. ADN 120/2 SET END OF DISPLAY CODE IN BUFFER
  3292. STD T6
  3293. LDM CRFR CHECK JOB CARD FOR KEYPUNCH MODE
  3294. NJN CRC1 IF NOT JOB CARD
  3295. RJM CKM CHECK KEYPUNCH MODE
  3296. CRC1 RJM SCN SET CONVERSION TABLE
  3297. RJM CHD CONVERT HOLLERITH DATA
  3298. LDI T2 GET LAST BYTE TRANSLATED
  3299. LPN 77 CHECK LAST CHARACTER
  3300. NJN CRC2 IF NOT 00 CHARACTER
  3301. AOD T2 RETAIN 00 CHARACTER WITH SPACE PADDING
  3302. LDC 2R
  3303. STI T2
  3304. CRC2 AOD T2 ENSURE END OF LINE
  3305. STM CRCA
  3306. LDN ZERL GET ZEROED CM WORD
  3307. CRM **,ON
  3308. CRCA EQU *-1
  3309. AOD T2 CALCULATE BYTE COUNT + OFFSET (1)
  3310. SBD DA
  3311. STD T1 CALCULATE WORD COUNT ( = BYTE COUNT/5)
  3312. SHN -3 BYTE COUNT/8
  3313. ADD T1 BYTE COUNT/8 + BYTE COUNT
  3314. SHN -1 (BYTE COUNT/8 + BYTE COUNT)/2
  3315. ADD T1 (BYTE COUNT/8 + BYTE COUNT)/2 + BYTE COUNT
  3316. SHN -3 DIVIDE BY 8
  3317. ADN 1 ADD IN END OF LINE LENGTH (1)
  3318. RJM MGR GO TO MANAGER
  3319. STD T1 SET WORD COUNT
  3320.  
  3321. * PHASE 3. DUMP BUFFER.
  3322.  
  3323. LDD DA WRITE BINARY BUFFER
  3324. RJM WBB
  3325. LJM CRD5 GO TO PHASE 4
  3326. CRB SPACE 4,10
  3327. ** CRB - PROCESS BINARY CARD.
  3328. *
  3329. * USES BR, T1 - T4.
  3330. *
  3331. * CALLS EBF, PCE, MGR, MSG.
  3332.  
  3333.  
  3334. * PHASE 2. PROCESS EOR AND EOF, AND CHECK CHECKSUM.
  3335.  
  3336. CRB LDD DA SET DATA ADDRESS
  3337. STD T1
  3338. LDI T1 CHECK FIRST WORD
  3339. LPN 37
  3340. LMN 5
  3341. ZJN CRB1 IF BINARY DATA CARD
  3342. LJM CRF PROCESS SPECIAL FORM
  3343.  
  3344. CRB1 LDI T1 SET WORD COUNT
  3345. SHN -6
  3346. STD T4
  3347. SHN 2 SET BYTE LIMIT
  3348. ADD T4
  3349. ZJN CRB5 IF ZERO WORD COUNT
  3350. ADD DA
  3351. ADN 2
  3352. STD T2
  3353. LDI T1
  3354. LPN 40
  3355. STD T3 CLEAR CHECKSUM
  3356. NJN CRB3 IF CORRECTION PUNCH
  3357. AOD T1 COMPUTE CHECKSUM
  3358. CRB2 LDI T1
  3359. LMC 770000
  3360. RAD T3
  3361. AOD T1
  3362. LMD T2
  3363. NJN CRB2 IF NOT END OF BUFFER
  3364. LDD T3
  3365. NJN CRB5 IF ERROR
  3366. CRB3 LDM CRSN CHECK BINARY SEQUENCE ERROR
  3367. LMM 117,DA
  3368. NJN CRB8 IF SEQUENCE ERROR
  3369. CRB4 LDD T4 SET WORD COUNT
  3370. STI DA
  3371. RJM MGR GO TO MANAGER
  3372.  
  3373. * PHASE 3. DUMP BUFFER.
  3374.  
  3375. LDI DA SET WORD COUNT
  3376. STD T1
  3377. LJM CRL9 WRITE BINARY BUFFER
  3378.  
  3379. * *CRB5* IS A SECONDARY ENTRY POINT FOR *CRB*.
  3380. *
  3381. * PROCESS BINARY CHECKSUM / TRANSMISSION ERRORS.
  3382.  
  3383. CRB5 LDN 0 CLEAR BUSY RETURN
  3384. STD BR
  3385. LDN ERCB *RE-READ 3 CARDS.*
  3386. RJM MSG
  3387. CRB6 RJM MGR GO TO MANAGER
  3388. LDD ST
  3389. LPN 40
  3390. ZJN CRB6 IF INPUT TRAY NOT EMPTY
  3391. RJM EBF EMPTY BUFFER
  3392. LDN 1 SET BINARY CARD ERROR FLAG
  3393. STM CRBE
  3394. CRB7 RJM MGR GO TO MANAGER
  3395. UJN CRB7 WAIT FOR *NOT READY*
  3396.  
  3397. * PROCESS CARD OUT OF SEQUENCE ERROR.
  3398.  
  3399. CRB8 RJM PCE PROCESS CARD ERROR
  3400. LDM 117,DA ALIGN SEQUENCE CHECK
  3401. STM CRSN
  3402. LJM CRB4 RETURN TO MAIN LOOP
  3403. CRL SPACE 4,10
  3404. ** CRL - PROCESS LITERAL INPUT.
  3405. *
  3406. * USES T1 - T3.
  3407. *
  3408. * CALLS MGR, WBB.
  3409.  
  3410.  
  3411. * PHASE 2. CHECK FOR END OF LITERAL INPUT.
  3412.  
  3413. CRL LDM 2,DA CHECK FOR EOI
  3414. LMN 17
  3415. NJN CRL5 IF NOT EOI
  3416. LDD DA CHECK COLUMNS 2 THROUGH 79
  3417. ADN 2+1
  3418. STD T1
  3419. ADN 47-1
  3420. STD T2
  3421. ADN 117-47
  3422. STD T3
  3423. CRL1 LDI T1
  3424. NJN CRL5 IF NOT EOI CARD
  3425. AOD T1
  3426. LMD T2
  3427. NJN CRL2 IF NOT COLUMN 40
  3428. AOD T1 IGNORE COLUMN 40
  3429. CRL2 LDD T1
  3430. LMD T3
  3431. NJN CRL1 IF MORE COLUMNS TO CHECK
  3432. LDI T1 CHECK COLUMN 40
  3433. NJN CRL3 IF COLUMN 80 NOT BLANK
  3434. LDI T2 CHECK COLUMN 40
  3435. UJN CRL4 TEST FOR COLUMN 40 NON BLANK
  3436.  
  3437. CRL3 LMN 17
  3438. CRL4 NJN CRL5 IF NOT EOI
  3439. STM CRLI CLEAR LITERAL INPUT FLAG
  3440. LDN 17 SET EOI INDICATOR
  3441. STI DA
  3442. LJM RER PROCESS EOI
  3443.  
  3444. CRL5 LDM 2,DA CHECK FOR FORMAT CHANGE
  3445. LMN 25
  3446. NJN CRL7 IF NOT FORMAT CHANGE
  3447. LDM 3,DA
  3448. LMN 77
  3449. NJN CRL8 IF NOT LITERAL INPUT FLAG
  3450. STD T3 COMPUTE CHECKSUM
  3451. LDD DA
  3452. ADN 2
  3453. STD T1
  3454. ADC 120
  3455. STD T2
  3456. CRL6 LDD T3
  3457. LMI T1
  3458. SHN 1
  3459. STD T3
  3460. SHN -14
  3461. RAD T3
  3462. AOD T1
  3463. LMD T2
  3464. NJN CRL6 IF NOT END OF CARD
  3465. LDD T3 COMPARE CHECKSUM
  3466. LMM CRLC
  3467. CRL7 NJN CRL8 IF NOT IDENTICAL CHECKSUM
  3468. STM CRLI CLEAR LITERAL INPUT FLAG
  3469. LJM CRD1 GO TO PHASE 1
  3470.  
  3471. * PHASE 3. DUMP BUFFER.
  3472.  
  3473. CRL8 RJM MGR GO TO MANAGER
  3474. LDN 20 SET WORD COUNT
  3475. STD T1
  3476.  
  3477. * *CRL9* IS A SECONDARY ENTRY POINT FOR *CRL*.
  3478.  
  3479. CRL9 LDD DA WRITE BINARY BUFFER
  3480. ADN 2
  3481. RJM WBB
  3482. * LJM CRD5 GO TO PHASE 4
  3483. CRD5 SPACE 4,10
  3484. * *CRD5* IS A SECONDARY ENTRY POINT FOR *CRD*.
  3485. *
  3486. * PHASE 4. STORE IN AND UPDATE RECORD COUNT.
  3487.  
  3488.  
  3489. CRD5 RJM RDB RELEASE DATA BUFFER
  3490. AOM CRSN ADVANCE CARD COUNT
  3491. LDN ZERL
  3492. CRD CM
  3493. LDD IN
  3494. STD CM+3
  3495. LDD IN+1
  3496. STD CM+4
  3497. RJM SFA SET FET ADDRESS
  3498. ADN 2
  3499. CWD CM
  3500. LDM CRFR
  3501. NJN CRD6 IF NOT FIRST CARD
  3502. AOM CRFR ADVANCE FIRST RECORD FLAG
  3503. CRD6 AOM CMRC+1 INCREMENT CARD COUNT
  3504. SHN -14
  3505. RAM CMRC
  3506. LJM CRD1 LOOP TO PHASE 1
  3507. CHD SPACE 4,50
  3508. ** CHD - CONVERT HOLLERITH DATA.
  3509. *
  3510. * ENTRY (DA) = (T1) = (T2) = (T3) = BUFFER ADDRESS.
  3511. * (T6) = END OF DISPLAY CODE BUFFER ADDRESS.
  3512. *
  3513. * EXIT (T2) = ADDRESS OF LAST NON-BLANK CHARACTER PAIR.
  3514. *
  3515. * USES T1 - T5.
  3516. *
  3517. * CALLS PCE.
  3518.  
  3519.  
  3520. CHD18 RJM PCE PROCESS CARD ERROR
  3521. CHD19 LDN 1R SET BLANK CHARACTER
  3522. CHD20 STD T4 SAVE DISPLAY CODE CHARACTER
  3523. AOD T1 ADVANCE BUFFER ADDRESS
  3524. SBD DA
  3525. LPN 1
  3526. ZJN CHD21 IF PACKING LOWER CHARACTER
  3527. LDD T4 SET UPPER CHARACTER IN BYTE
  3528. SHN 6
  3529. STI T3
  3530. UJN CHD1 PROCESS NEXT COLUMN
  3531.  
  3532. CHD21 LDD T4 SET LOWER CHARACTER IN BYTE
  3533. RAI T3
  3534. LMC 2R
  3535. ZJN CHD22 IF BLANK CHARACTER PAIR
  3536. LDD T3 ADVANCE LAST NON-BLANK CHARACTER ADDRESS
  3537. STD T2
  3538. CHD22 AOD T3 ADVANCE ADDRESS FOR DISPLAY CODE
  3539. LMD T6
  3540. NJN CHD1 IF NOT END OF CARD IMAGE
  3541.  
  3542. CHD SUBR ENTRY/EXIT
  3543. CHD1 LDI T1 CHECK NEXT COLUMN
  3544. ZJN CHD19 IF BLANK CHARACTER
  3545.  
  3546. * EVALUATE 1, 8, AND 9 PUNCHES.
  3547.  
  3548. LPC 403
  3549. ZJN CHD5 IF NO 1, 8, OR 9 PUNCH
  3550. SBN 1
  3551. ZJN CHD2 IF 9 PUNCH ONLY
  3552. SBN 1
  3553. ZJN CHD4 IF 8 PUNCH
  3554. ADC -376
  3555. NJN CHD3 IF COMBINED PUNCHES (ILLEGAL)
  3556. LCN 8D
  3557. CHD2 ADN 9D SET VALUE FOR 9 PUNCH
  3558. STD T5
  3559. LDI T1 CHECK FOR PUNCHES 2 THROUGH 8
  3560. LPC 376
  3561. ZJN CHD12 IF NO PUNCHES 2 THROUGH 8
  3562. CHD3 LJM CHD18 CONVERT ILLEGAL COMBINATION TO BLANK
  3563.  
  3564. CHD4 LDN 8D SET VALUE FOR 8 PUNCH
  3565. CHD5 STD T5
  3566.  
  3567. * EVALUATE PUNCHES 2 THROUGH 7.
  3568.  
  3569. LDI T1
  3570. SHN -2
  3571. LPN 77
  3572. ZJN CHD12 IF NO PUNCHES 2 THROUGH 7
  3573. SBN 1
  3574. ZJN CHD7 IF 7 PUNCH ONLY
  3575. SBN 1
  3576. ZJN CHD8 IF 6 PUNCH ONLY
  3577. SBN 2
  3578. ZJN CHD9 IF 5 PUNCH ONLY
  3579. SBN 4
  3580. ZJN CHD10 IF 4 PUNCH ONLY
  3581. SBN 10
  3582. ZJN CHD11 IF 3 PUNCH ONLY
  3583. CHD6 SBN 20
  3584. NJN CHD3 IF ILLEGAL PUNCH COMBINATION
  3585. LCN 7-2 PRESET 2 PUNCH CONVERSION
  3586. CHD7 ADN 1
  3587. CHD8 ADN 1
  3588. CHD9 ADN 1
  3589. CHD10 ADN 1
  3590. CHD11 ADN 3
  3591. RAD T5
  3592.  
  3593. * EVALUATE ZONE PUNCHES.
  3594.  
  3595. CHD12 LDI T1 ISOLATE ZONE PUNCHES
  3596. SHN -9D
  3597. SBN 6
  3598. PJN CHD6 IF ILLEGAL COMBINATION
  3599. ADN 1
  3600. ZJN CHD15 IF + 0 COMBINATION
  3601. ADN 1
  3602. ZJN CHD13 IF + PUNCH ONLY
  3603. ADN 1
  3604. ZJN CHD17 IF - 0 COMBINATION
  3605. CHD13 ADN 3
  3606. SHN 4
  3607. CHD14 RAD T5
  3608. LDM CTBL,T5 CONVERT CHARACTER
  3609. LJM CHD20 ASSEMBLE CARD IMAGE IN DISPLAY CODE
  3610.  
  3611. CHD15 LDD T5
  3612. CHD16 NJN CHD6 IF ILLEGAL PUNCH COMBINATION
  3613. LDN 72
  3614. UJN CHD14 ASSEMBLE CARD IMAGE
  3615.  
  3616. CHD17 LDD T5
  3617. NJN CHD16 IF ILLEGAL PUNCH COMBINATION
  3618. LDN 52
  3619. UJN CHD14 ASSEMBLE CARD IMAGE
  3620. CKM SPACE 4,10
  3621. ** CKM - CHECK KEYPUNCH MODE CHANGE.
  3622. *
  3623. * ENTRY (DA) = BUFFER ADDRESS OF CARD TO BE CHECKED.
  3624. *
  3625. * EXIT (CMCT) = NEW CONVERSION TABLE INDEX.
  3626.  
  3627.  
  3628. CKM SUBR ENTRY/EXIT
  3629. LDM 116,DA EXAMINE COLUMN 79
  3630. LMC 200
  3631. NJN CKMX IF NOT *2*
  3632. LDM 117,DA EXAMINE COLUMN 80
  3633. LMN 10
  3634. ZJN CKM1 IF *6*
  3635. LMN 1&10
  3636. NJN CKMX IF NOT *9*
  3637. LDN C9XD&C6XD USE O29 CONVERSION TABLE INDEX
  3638. CKM1 LMN C6XD USE O26 CONVERSION TABLE INDEX
  3639. STM CMCT
  3640. UJN CKMX RETURN
  3641. CRE SPACE 4,10
  3642. ** CRE - NOT READY PROCESSOR.
  3643. *
  3644. * ENTRY (A) = EQUIPMENT STATUS FOLLOWING CONNECT.
  3645. *
  3646. * EXIT TO *PSE*.
  3647. *
  3648. * CALLS MSG.
  3649.  
  3650.  
  3651. CRE1 LDN ENRD *NOT READY*
  3652. CRE2 RJM MSG
  3653. LDM CRBE
  3654. ZJN CRE3 IF ERROR FLAG NOT SET
  3655. LDC CRD2
  3656. STM CMPA SET PHASE 1
  3657. CRE3 LJM PSE RETURN
  3658.  
  3659. CRE SHN 21-12
  3660. PJN CRE1 IF NO COMPARE ERROR
  3661. LDN ERCA *RE-RD 1 CD. COMPARE ERROR.*
  3662. UJN CRE2 SET BUFFER POINT MESSAGE
  3663. CRF SPACE 4,10
  3664. ** CRF - PROCESS SPECIAL FORM.
  3665. *
  3666. * USES T1 - T3.
  3667.  
  3668.  
  3669. CRF LDI DA CHECK FIRST WORD
  3670. LMN 25
  3671. ZJN CRF1 IF CONVERSION CHANGE
  3672. LJM RER PROCESS END OF RECORD
  3673.  
  3674. CRF1 LDM 1,DA CHECK FORMAT REQUEST
  3675. ZJN CRF2 IF O26 CONVERSION
  3676. LMN 1
  3677. NJN CRF4 IF NOT O29
  3678. LDN C9XD&C6XD
  3679. CRF2 LMN C6XD SET CONVERSION MODE
  3680. STM CMCT
  3681. CRF3 LJM CRD1 GO TO PHASE 1
  3682.  
  3683. CRF4 LMN 77&1
  3684. NJN CRF3 IF UNKNOWN CONVERSION
  3685. STD T3
  3686. LDN 2 SET LITERAL INPUT FLAG
  3687. STM CRLI
  3688. LDD DA
  3689. STD T1
  3690. ADC 120 COMPUTE CHECKSUM
  3691. STD T2
  3692. CRF5 LDD T3
  3693. LMI T1
  3694. SHN 1
  3695. STD T3
  3696. SHN -14
  3697. RAD T3
  3698. AOD T1
  3699. LMD T2
  3700. NJN CRF5 IF NOT END OF CARD
  3701. LDD T3
  3702. STM CRLC STORE CHECKSUM
  3703. UJN CRF3 GO TO PHASE 1
  3704. EBF SPACE 4,10
  3705. ** EBF - EMPTY BUFFER.
  3706. *
  3707. * EXIT TO *XDR1* IF CHANNEL HANGS EMPTY.
  3708. *
  3709. * USES FC, T3.
  3710. *
  3711. * CALLS IFN, SDM.
  3712.  
  3713.  
  3714. EBF2 IAN CH+40 INITIATE BUFFER FLUSH
  3715. DCN CH+40
  3716. CFM EBFX,CH IF CHANNEL ERROR FLAG CLEAR
  3717. LDN 0
  3718. STD T3
  3719. LDD T5 SAVE FUNCTION CODE FOR ERROR MESSAGE
  3720. STD FC
  3721. LDK ECRE *EQXXX CHANNEL PARITY ERROR.*
  3722. RJM SDM SEND DAYFILE MESSAGE
  3723.  
  3724. EBF SUBR ENTRY/EXIT
  3725. LDN 14 INPUT TO EOR
  3726. RJM IFN ISSUE FUNCTION
  3727. LDN 77 DELAY FOR BYTE TRANSMISSION FROM READER
  3728. EBF1 FJM EBF2,CH IF CHANNEL NOT HUNG EMPTY
  3729. SBN 1
  3730. NJN EBF1 IF DELAY NOT EXCEEDED
  3731. DCN CH+40
  3732. LDN ERRL-1 FORCE EQUIPMENT TURN OFF
  3733. STM CMDR
  3734. LDC 120 SET BYTES REMAINING COUNT
  3735. LJM XDR1 PROCESS INCOMPLETE TRANSFER ERROR
  3736. PCE SPACE 4,15
  3737. ** PCE - PROCESS CARD ERROR.
  3738. *
  3739. * ENTRY (T3) = 0 IF BINARY CARD SEQUENCE ERROR.
  3740. * .NE. 0 IF ILLEGAL HOLLERITH PUNCH DETECTED.
  3741. * (BA - BA+1) = ABSOLUTE FET ADDRESS.
  3742. * (FP - FP+4) = FILE PARAMETER WORD (FET+5).
  3743. *
  3744. * EXIT ERROR STATUS STORED IN (FET+5).
  3745. *
  3746. * USES FP+1 - FP+2.
  3747. *
  3748. * CALLS SFA.
  3749.  
  3750.  
  3751. PCE SUBR ENTRY/EXIT
  3752. LDD FP+1
  3753. NJN PCEX IF PREVIOUS ERROR
  3754. LDM CRSN SET CARD NUMBER
  3755. STD FP+1
  3756. LDD T3
  3757. ZJN PCE1 IF BINARY CARD ERROR
  3758. LDC 4000 FLAG ILLEGAL HOLLERITH CODE
  3759. PCE1 LMM CRRC SET RECORD NUMBER
  3760. STD FP+2
  3761. RJM SFA STORE FILE PARAMETER WORD
  3762. ADN 5
  3763. CWD FP
  3764. UJN PCEX RETURN
  3765. RER SPACE 4,10
  3766. ** RER - PROCESS END OF RECORD.
  3767. *
  3768. * USES BS+4, T2.
  3769. *
  3770. * CALLS ACT, CKM, CLB, CON, CPS, MGR, RDB, SFA.
  3771.  
  3772.  
  3773. RER LDM CRFR
  3774. NJN RER1 IF NOT FIRST CARD
  3775. LJM RER6 SKIP EMPTY FILE
  3776.  
  3777. RER1 LDI DA REQUEST WRITE
  3778. LPN 10
  3779. LMC WRIF+1000
  3780. STD T2
  3781. LDD FA
  3782. ZJN RER2 IF FIRST WRITE
  3783. LDC WRIF+1000&24
  3784. RER2 LMD T2 SET REQUEST
  3785. RJM CPS
  3786. RER3 RJM MGR GO TO MANAGER
  3787. ZJN RER1 IF REQUEST NOT ENTERED
  3788. LDD BS+4 CHECK OPERATION
  3789. LPN 21
  3790. LMN 21
  3791. NJN RER3 IF REQUEST NOT COMPLETE
  3792. LDI DA CHECK CARD
  3793. LPN 37
  3794. LMN 17
  3795. ZJN RER4 IF EOI
  3796. RJM CKM CHECK KEYPUNCH MODE
  3797. AOM CRRC BUMP LOGICAL RECORD COUNT
  3798. LDN 1
  3799. STM CRSN RESET SEQUENCE ERROR COMPARITIVE NUMBER
  3800. STD BS+4 CLEAR LAST OPERATION
  3801. RJM SFA
  3802. CWD BS
  3803. LJM CRD1 LOOP TO PHASE 1
  3804.  
  3805. * PROCESS EOI.
  3806.  
  3807. RER4 RJM ACT PROCESS ACCOUNTING
  3808. RER5 RJM MGR GO TO MANAGER
  3809. ZJN RER4 IF REQUEST NOT ENTERED
  3810. LDD BS+4 WAIT ACCOUNTING COMPLETE
  3811. LMC 1031
  3812. NJN RER5 IF ACCOUNTING NOT COMPLETE
  3813. RER6 RJM RDB RELEASE DATA BUFFER
  3814. LDC * SET RETURN FROM *WNB*
  3815. STM CMPA
  3816. RJM CON CONNECT EQUIPMENT
  3817. NJN RER7 IF CONNECT REJECT
  3818. LDD ST
  3819. LPN 1
  3820. ZJN RER7 IF NOT READY
  3821. RJM CLB
  3822. LJM MGR1 RETURN TO DRIVER VIA MANAGER
  3823.  
  3824. RER7 LDN 0 DROP EQUIPMENT
  3825. LJM TOP1 TERMINATE OPERATION
  3826. TITLE DRIVER SUBROUTINES.
  3827. CON SPACE 4,15
  3828. ** CON - CONNECT EQUIPMENT.
  3829. *
  3830. * EXIT (A) .NE. 0 IF FUNCTION REJECT.
  3831. * (FC) = CONNECT CODE.
  3832. * (ST) = EQUIPMENT STATUS.
  3833. * EXITS TO *FCN2* IF FUNCTION TIMEOUT.
  3834. *
  3835. * USES FC, ST, T1 - T3.
  3836. *
  3837. * CALLS CCE, FCN, IFN, STS, WNB.
  3838. *
  3839. * MACROS DCHAN, RCHAN.
  3840.  
  3841.  
  3842. CON SUBR ENTRY/EXIT
  3843. LDM CMCE CHECK CHANNEL
  3844. LPN 77
  3845. STD T3
  3846. CHTE *
  3847. LMN CH
  3848. ZJN CON3 IF CORRECT CHANNEL
  3849. LDC TCHS-1
  3850. STD T1
  3851. LDD CR RELEASE LAST CHANNEL
  3852. DCHAN
  3853. CHTE CR
  3854. * LDN 0
  3855. CON1 RAI T2 MODIFY NEXT CHANNEL
  3856. AOD T1
  3857. CON2 LDI T1
  3858. STD T2
  3859. LDD T3
  3860. CHTL *
  3861. SBN CH
  3862. NJN CON1 IF MORE CHANNELS TO MODIFY
  3863. LDD CR RESERVE NEW CHANNEL
  3864. RCHAN
  3865. CON3 LDN 10 SELECT MODE II CONNECT
  3866. RJM IFN ISSUE FUNCTION
  3867. LDM CMCE OUTPUT CONNECT CODE
  3868. SCN 77
  3869. OAN CH+40
  3870. STD FC SAVE CONNECT CODE FOR *REJECT* MESSAGE
  3871. LDC 100D TIMEOUT CONVERTER
  3872. CONA EQU *-1
  3873. * LDC 200D (2X PP)
  3874. * LDC 400D (4X PP)
  3875.  
  3876. CON4 EJM CON5,CH IF FUNCTION ACCEPT / CONVERTER REJECT
  3877. SBN 4
  3878. PJN CON4 IF NOT TIMED OUT
  3879. LJM FCN2 PROCESS FUNCTION TIMEOUT
  3880.  
  3881. CON5 DCN CH+40
  3882. CON6 LDN 13 SELECT EQUIPMENT STATUS
  3883. RJM IFN ISSUE FUNCTION
  3884. IAN CH+40
  3885. DCN CH+40
  3886. STD ST STORE EQUIPMENT STATUS
  3887. LDN SCEI STATUS PARITY ERROR
  3888. RJM CCE CHECK FOR CHANNEL ERROR
  3889. NJN CON6 IF ERROR
  3890. RJM STS GET CONVERTER STATUS
  3891. NJN CON9 IF ERROR
  3892. LDD EQ
  3893. SBK LPDT
  3894. ZJN CON7 IF PRINTER
  3895. RJM WNB
  3896. CON7 LDN 24 SELECT ABNORMAL *EOP* INTERRUPT
  3897. RJM FCN
  3898. CON8 LDD CS RETURN WITH STATUS
  3899. LPN 7
  3900. CON9 LJM CONX RETURN
  3901. FCN SPACE 4,15
  3902. ** FCN - OUTPUT FUNCTION TO EQUIPMENT.
  3903. *
  3904. * ENTRY (A) = FUNCTION CODE.
  3905. *
  3906. * EXIT (FC) = FUNCTION CODE.
  3907. * IF FUNCTION REJECT, THEN EXIT IS MADE TO *MGR1*.
  3908. * THUS, ALL CODE SINCE THE LAST *RJM MGR* WILL BE
  3909. * EXECUTED AGAIN PRIOR TO A RETRY ON THE FUNCTION.
  3910. * IF THE RETRY LIMIT IS REACHED OR IF THE FUNCTION
  3911. * TIMES OUT, THEN EXIT IS MADE TO *CEP*.
  3912. *
  3913. * USES FC.
  3914. *
  3915. * CALLS SDM, STS.
  3916.  
  3917.  
  3918. FCN4 RJM STS CHECK 6681 STATUS
  3919. ZJN FCNX IF FUNCTION ACCEPTED
  3920. LJM MGR1 GO TO MANAGER
  3921.  
  3922. FCN SUBR ENTRY/EXIT
  3923. FAN CH ISSUE FUNCTION
  3924. STD FC SAVE FUNCTION FOR REJECT MESSAGE
  3925. LDM CONA
  3926. FCN1 IJM FCN4,CH IF FUNCTION ACCEPTED
  3927. SBN 4
  3928. PJN FCN1 IF NOT TIMED OUT
  3929.  
  3930. * *FCN2* IS A SECONDARY ENTRY POINT FOR *FCN*.
  3931. *
  3932. * FUNCTION TIMEOUT ERROR PROCESSOR.
  3933.  
  3934. FCN2 DCN CH+40
  3935. LDN EFTM *EQXXX FUNCTION TIMEOUT.*
  3936. RJM SDM FORMAT DAYFILE MESSAGE
  3937. FCN3 LJM CEP CHANNEL ERROR PROCESSOR
  3938. IFN SPACE 4,10
  3939. ** IFN - ISSUE FUNCTION TO CONVERTER.
  3940. *
  3941. * ENTRY (A) = FUNCTION CODE.
  3942. *
  3943. * EXIT CHANNEL ACTIVE.
  3944. * (T5) = FUNCTION CODE.
  3945. * IF THE FUNCTION TIMES OUT, THEN EXIT IS MADE TO
  3946. * *CEP* VIA *FCN2*.
  3947. *
  3948. * USES FC, T5.
  3949.  
  3950.  
  3951. IFN2 ACN CH
  3952.  
  3953. IFN SUBR ENTRY/EXIT
  3954. SHN 6
  3955. FAN CH ISSUE FUNCTION
  3956. STD T5 SAVE FUNCTION
  3957. LDN 6 SET TIME LIMIT
  3958. IFN1 IJM IFN2,CH IF FUNCTION ACCEPTED
  3959. SBN 1
  3960. NJN IFN1 IF NOT TIMED OUT
  3961. LDD T5
  3962. STD FC FUNCTION CODE FOR ERROR MESSAGE
  3963. UJN FCN2 FUNCTION TIMEOUT ERROR PROCESSOR
  3964. SPACE 4,10
  3965. ** COMMON DECKS.
  3966.  
  3967.  
  3968. *CALL COMPWBB
  3969. SPACE 4,10
  3970. RTBL BSS 0 START OF RELOCATED CODE
  3971. LOC CTBLL
  3972. REC SPACE 4,10
  3973. ** REC - RELEASE EQUIPMENT CONNECT.
  3974. *
  3975. * CALLS CON, FCN.
  3976.  
  3977.  
  3978. REC SUBR ENTRY/EXIT
  3979. RJM CON CONNECT EQUIPMENT
  3980. NJN RECX IF CONNECT REJECT
  3981. * LDN 0 RELEASE AND DISCONNECT EQUIPMENT
  3982. RJM FCN
  3983. UJN RECX RETURN
  3984. SDP SPACE 4,10
  3985. ** SDP - SUB-DRIVER PROCESSOR.
  3986.  
  3987.  
  3988. SDP SUBR ENTRY/EXIT
  3989. LDD BR
  3990. NJN SDP2 IF BUSY RETURN REQUESTED
  3991. RJM CON CONNECT EQUIPMENT
  3992. NJN SDPX IF CONNECT REJECT
  3993. LDD ST
  3994. SHN 21-0
  3995. MJN SDP1 IF EQUIPMENT READY
  3996. LDM TNRP,EQ
  3997. STD PA
  3998. LDD ST (A) = EQUIPMENT STATUS
  3999. UJN SDP3 ENTER NOT READY PROCESSOR
  4000.  
  4001. SDP1 SHN 1+21-1
  4002. PJN SDP2 IF EQUIPMENT NOT BUSY
  4003. SHN 2+21-10
  4004. PJN SDPX IF NOT END OF OPERATION INTERRUPT
  4005. SDP2 LDM CMPA SET PROGRAM ADDRESS
  4006. STD PA
  4007. LDM CMAR RESET (A)
  4008. SDP3 LJM 0,PA RETURN TO NEXT DRIVER ADDRESS
  4009. STS SPACE 4,10
  4010. ** STS - GET CONVERTER STATUS.
  4011. *
  4012. * EXIT (A) = BITS 0 - 2 OF 6681 STATUS.
  4013. * (CS) = CONVERTER STATUS.
  4014. *
  4015. * CALLS CCE, IFN, PRE, SDM.
  4016.  
  4017.  
  4018. STS SUBR ENTRY/EXIT
  4019. STS1 LDN 12 SELECT 6681 STATUS
  4020. RJM IFN ISSUE FUNCTION
  4021. IAN CH+40
  4022. DCN CH+40
  4023. STD CS
  4024. LDN SCEI STATUS PARITY ERROR
  4025. RJM CCE CHECK FOR CHANNEL ERROR
  4026. NJN STS1 IF ERROR
  4027. LDD CS
  4028. LPN 7
  4029. ZJN STSX IF NO ERRORS
  4030.  
  4031. * FUNCTION REJECT/TRANSMISSION PARITY ERROR PROCESSOR.
  4032.  
  4033. LDN FRJI CHECK ERROR LIMIT EXCEEDED
  4034. RJM PRE
  4035. LDD CS
  4036. LPN 7
  4037. UJN STSX RETURN
  4038. WNB SPACE 4,15
  4039. ** WNB - WAIT NOT BUSY.
  4040. *
  4041. * ENTRY (ST) = DEVICE STATUS.
  4042. *
  4043. * EXIT IF DEVICE BUSY, THEN EXIT IS MADE
  4044. * TO *MGR1*. THUS, ALL CODE SINCE
  4045. * LAST RETURN TO MANAGER WILL BE
  4046. * EXECUTED AGAIN PRIOR TO PROCEEDING.
  4047. * IF BUSY RETRY COUNT REACHED,
  4048. * EXIT IS MADE TO *CEP*.
  4049. *
  4050. * CALLS SDM.
  4051.  
  4052.  
  4053. WNB3 STM CMCB CLEAR CONTROLLER BUSY RETRY COUNT
  4054.  
  4055. WNB SUBR ENTRY/EXIT
  4056. LDD ST CHECK EQUIPMENT STATUS FOR BUSY
  4057. LPN 2
  4058. ZJN WNB3 IF DEVICE NOT BUSY
  4059. SOM CMCB DECREMENT RETRY COUNT
  4060. ZJN WNB2 IF RETRY COUNT EXHAUSTED
  4061. WNB1 LJM MGR1 RETURN TO MANAGER
  4062.  
  4063. WNB2 SOM CMTC
  4064. NJN WNB1 IF NOT AT ABSOLUTE RETRY LIMIT
  4065. LDN ECBM *EQXXX CONTROLLER HUNG BUSY.*
  4066. RJM SDM SEND DAYFILE MESSAGE
  4067. LJM CEP CHANNEL ERROR PROCESSOR
  4068. XDR SPACE 4,20
  4069. ** XDR - TRANSMIT DATA RECORD (TO/FROM EXTERNAL EQUIPMENT).
  4070. *
  4071. * ENTRY (A) BITS 0-11 = INSTRUCTION (IAM/OAM).
  4072. * 12-17 = CONVERTER FUNCTION.
  4073. *
  4074. * USES CS, FC, T1.
  4075. *
  4076. * CALLS CCE, CRV, FCN, IFN, PRE, STS.
  4077.  
  4078.  
  4079. XDR SUBR ENTRY/EXIT
  4080. CHTE *
  4081. LMN CH SET INSTRUCTION WITH CHANNEL
  4082. STM XDRA
  4083. SHN -14 SET I/O FUNCTION
  4084. STD FC
  4085. LDD DA SET BUFFER ADDRESS
  4086. STM XDRA+1
  4087. LDD FC ISSUE CONVERTER FUNCTION
  4088. RJM IFN
  4089. LDM CMLR
  4090. XDRA OAM. **,CH OUTPUT (INPUT) DATA RECORD
  4091. * IAM **,CH
  4092. FJM *,CH
  4093. DCN CH+40
  4094. NJN XDR1 IF INCOMPLETE DATA TRANSFER
  4095. LDN DCPI CHECK FOR DATA PARITY ERROR
  4096. RJM CCE
  4097. NJN XDR2 IF ERROR
  4098. LDN DRRI
  4099. RJM CRV CHECK FOR RECOVERED ERROR
  4100. RJM STS GET CONVERTER STATUS
  4101. NJN XDR2 IF ERROR
  4102. UJN XDRX RETURN
  4103.  
  4104. * *XDR1* IS A SECONDARY ENTRY POINT FOR *XDR*.
  4105.  
  4106. XDR1 STD CS
  4107. LDN DRRI PROCESS RECOVERABLE ERROR
  4108. RJM PRE
  4109. XDR2 LDN 0 CLEAR AND DISCONNECT EQUIPMENT
  4110. RJM FCN
  4111. AOM CMEC
  4112. LDM XDRB,EQ
  4113. STD T1
  4114. LJM 0,T1 EXIT TO RETRY PROCESSOR
  4115.  
  4116. XDRB BSS 0 RETRY PROCSSING ADDRESS
  4117. LOC 0
  4118. CON LPR1 LINE PRINTER
  4119. CON CPX CARD PUNCH
  4120. CON CRB5 CARD READER
  4121. LOC *L+XDRB
  4122. TCHS SPACE 4,10
  4123. ** TCHS - CHANNEL TABLE.
  4124.  
  4125.  
  4126. TCHS CHTB
  4127.  
  4128. ERRNG ICD-* RELOCATED CODE OVERLAPS
  4129. LOC *O
  4130. RTBLL EQU *-RTBL
  4131. TITLE PRESET.
  4132. PRS SPACE 4,15
  4133. ** PRS - PRESET SUB-DRIVER OVERLAY.
  4134. *
  4135. * EXIT (CR) = CHANNEL RESERVED.
  4136. * (DB) = FIRST DATA BUFFER ADDRESS.
  4137. * TO *ZBA*.
  4138. *
  4139. * USES CM - CM+4, T1 - T3.
  4140. *
  4141. * MACROS RCHAN.
  4142.  
  4143.  
  4144. PRS BSS 0 ENTRY
  4145. LDC CTBLL MOVE TABLES TO PP RESIDENT
  4146. STD T1
  4147. LDC RTBL
  4148. STD T2
  4149. PRS1 LDI T2
  4150. STI T1
  4151. AOD T1
  4152. AOD T2
  4153. LMC RTBL+RTBLL
  4154. NJN PRS1 IF NOT END OF TABLES
  4155. LDN IPRL CHECK SYSTEM DEFAULT KEYPUNCH MODE
  4156. CRD CM
  4157. LDD CM+2
  4158. LPN 1
  4159. NJN PRS4 IF SYSTEM NOT IN 63 CHARACTER SET MODE
  4160. LDC *
  4161. ORG *-1
  4162. LOC LPDA
  4163. UJN LPD9 PROCESS 63 CHARACTER SET LINE
  4164. LOC *O
  4165. STM LPDA
  4166. LDN 45 CHANGE 6/12 COLON CONVERSION TO PERCENT
  4167. STM MCCC
  4168. PRS4 LDK MABL FETCH PP SPEED INDICATOR
  4169. CRD CM
  4170. LDD CM+4 SET TIMEOUT VALUE
  4171. RAM PRSA
  4172. LDN 100D/4 SET CONVERTER TIMEOUT
  4173. PRSA SHN 2
  4174. STM CONA
  4175. LDN CH RESERVE CHANNEL
  4176. STD CR
  4177. RCHAN
  4178. LDN ZERL
  4179. CRD CM
  4180. LDD MA CLEAR *CIO* REQUEST PARAMETERS
  4181. ADN 1
  4182. CWD CM
  4183.  
  4184. * INITIALIZE SYSTEM PAGE PARAMETERS
  4185.  
  4186. LDN IPPL FETCH SYSTEM PAGE PARAMETERS
  4187. CRD CM
  4188. LDD CM+3 SET PRINT WIDTH
  4189. LPC PWUL
  4190. ADN 1
  4191. LMC -0
  4192. STM LPDB
  4193. LDC DBUF SET BUFFER INFORMATION
  4194. STD DB
  4195. STD T1
  4196. LDK DBUFS
  4197. STD T2
  4198. LDC DBUFL
  4199. STD T3
  4200. LJM ZBA CLEAR DATA BUFFER ASSIGNMENTS
  4201. SPACE 4,10
  4202. OVERFLOW OVLA
  4203. DBUF SPACE 4,20
  4204. ** DBUF - BUFFER AREAS.
  4205.  
  4206.  
  4207. DBUFS EQU PWMX+5 DATA BUFFER SIZE
  4208. DBUFW EQU DBUFS/10D DATA BUFFER SIZE IN CM WORDS
  4209. DBUF EQU RTBL
  4210. .L SET 7777-DBUF
  4211. NDBUF EQU .L/DBUFS NUMBER OF DATA BUFFERS
  4212. DBUFL EQU DBUF+NDBUF*DBUFS LWA+1 OF DATA BUFFERS
  4213.  
  4214. * IF THE FOLLOWING TEST PRODUCES A NEGATIVE NUMBER,
  4215. * PERFORMANCE MAY BE DEGRADED (SINCE THERE ARE LESS THAN
  4216. * 4 DATA BUFFERS).
  4217.  
  4218. 7 ERRNG NDBUF-4
  4219.  
  4220. ERRNG 10000-DBUFL BUFFERS WRAP PP MEMORY
  4221. XCD TTL 1CD/3CY - BATCHIO COMBINED DRIVER.
  4222. TITLE
  4223. QUAL 3CY
  4224. IDENT 3CY,XCDX
  4225. *COMMENT 1CD - DRIVE *CCC*-CONNECTED DEVICES.
  4226. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  4227. 3CY SPACE 4,10
  4228. *** 1CD/3CY - BATCHIO COMBINED DRIVER.
  4229. *
  4230. * THIS SUB-DRIVER OVERLAY CONTAINS DRIVERS TO ACCESS DEVICES
  4231. * CONNECTED VIA A CYBER CHANNEL COUPLER (CCC).
  4232. 3CY SPACE 4,10
  4233. ORG OVLA
  4234.  
  4235. XCD SUBR ENTRY/EXIT
  4236. CHTE CCEA
  4237. LJM PRS PRESET
  4238. TITLE 5870/5970 DRIVER SECTION.
  4239. NPD SPACE 4,10
  4240. ** NPD - 5870/5970 DRIVER.
  4241.  
  4242.  
  4243. NPD RJM PSD PRESET DRIVER
  4244. NPD1 LDC GBPF+1000 REQUEST BANNER PAGE GENERATION
  4245. RJM CPS
  4246. NPD2 RJM MGR GO TO MANAGER
  4247. ZJN NPD1 IF REQUEST NOT ACCEPTED
  4248. LDD BS+4 CHECK BUFFER STATUS
  4249. LMC GBPF+1
  4250. NJN NPD2 IF OPERATION NOT COMPLETE
  4251. UJN NPD4 PRINT BANNER PAGE
  4252.  
  4253. * PHASE 1. LOAD BUFFER.
  4254.  
  4255. NPD3 SCN 2 SET DRIVER HOLDING
  4256. LMN 2
  4257. STM CMHF
  4258.  
  4259. * *NPD4* IS A SECONDARY ENTRY POINT FOR *NPD*.
  4260.  
  4261. NPD4 LDN 1 SET BUSY RETURN
  4262. STD BR
  4263. RJM MGR GO TO MANAGER
  4264. LDM CMHF
  4265. NJN NPD3 IF HOLD INITIATED
  4266. RJM COB CHECK OUTPUT BUFFER
  4267. SBN DBUFW*2+1
  4268. PJN NPD5 IF AT LEAST 1 LINE AND 1 WORD
  4269. LDD BS+4
  4270. LPN 20
  4271. ZJN NPD4 IF NOT EOR/EOF/EOI
  4272. NPD5 RJM ADB ASSIGN DATA BUFFER
  4273. LDN 0
  4274. STD BR CLEAR BUSY RETURN
  4275. STM NPLC CLEAR LINE COUNT
  4276. LDM CMSF CHECK MODE OF FILE
  4277. LPN 50
  4278. ZJN NPD6 IF NOT 6/12 OR 8/12 ASCII PRINT FILE
  4279. LDN DBUFW
  4280. NPD6 ADN DBUFW READ CODED BUFFER
  4281. RJM RCB
  4282. NJN NPD8 IF NOT EMPTY LINE
  4283. NPD7 LDN 40 SET SPACE CHARACTER
  4284. STI T1
  4285. AOD T1
  4286. AOM CMLR ADVANCE BYTE COUNT FOR LINE
  4287. NPD8 SBN 2
  4288. MJN NPD7 IF NOT 2 CHARACTERS IN LINE
  4289. LDM CMSF
  4290. LPN 10
  4291. NJN NPD9 IF 12 BIT ASCII PRINT FILE
  4292. NPDA PSN
  4293. * UJN NPD9 (SYSTEM IN 63 CHARACTER SET)
  4294. LDM -1,T1 CHECK LAST CHARACTER IN LINE
  4295. LMN 72
  4296. NJN NPD9 IF NOT COLON
  4297. LDN 40 REPLACE WITH BLANK
  4298. STM -1,T1
  4299. NPD9 SOM CMLR DEDUCT CARRIAGE CONTROL CHARACTER
  4300. SBK PXMX+1
  4301. PJN NPD9 IF LINE TOO LONG
  4302. LDD T2 SET FORMAT CONTROL FOR NEXT LINE
  4303. STM NPFC
  4304. LDD OT SAVE *OUT* POINTER
  4305. STM NPOT
  4306. LDD OT+1
  4307. STM NPOT+1
  4308. RJM MGR GO TO MANAGER
  4309.  
  4310. * PHASE 2. PROCESS FORMAT CONTROL.
  4311.  
  4312. LDN 4 PRESET SINGLE SPACE AFTER PRINT
  4313. STM NPWF
  4314. LDI DA CHECK FORMAT CHARACTER
  4315. LPC 3777
  4316. STI DA
  4317. LMN 40 ASCII BLANK
  4318. ZJN NPD11 IF ASCII BLANK
  4319. RJM PFC PROCESS FORMAT CONTROL
  4320. ZJN NPD10 IF PRINT LINE
  4321. RJM RDB RELEASE DATA BUFFER
  4322. LDN NPOT UPDATE *FET*
  4323. RJM SOP STORE OUT POINTER
  4324. LJM NPD4 GO TO PHASE 1
  4325.  
  4326. NPD10 LDI DA CHECK FOR *PM* MESSAGE
  4327. SBK 120
  4328. NJN NPD11 IF NOT *P*
  4329. LDM 1,DA
  4330. LPC 3777
  4331. SBK 115
  4332. NJN NPD11 IF NOT *PM*
  4333. LDM CMLR CHECK RECORD LENGTH
  4334. SBN 1
  4335. ZJN NPD11 IF ONLY *PM*
  4336. RJM PPM PROCESS PM MESSAGE
  4337. NPD11 LDM CMBE
  4338. ZJN NPD14 IF BUFFER EMPTY
  4339. LDM CMSF
  4340. LPN 10
  4341. NJN NPD12 IF 12 BIT ASCII MODE
  4342. LDM NPFC CHECK FORMAT CHARACTER OF NEXT LINE
  4343. SHN -6
  4344. LMN 1R+
  4345. UJN NPD13 CHECK FOR *+*
  4346.  
  4347. NPD12 LDM NPFC CHECK FORMAT CHARACTER OF NEXT LINE
  4348. LPC 3777
  4349. LMN 53 (ASCII *+*)
  4350. NPD13 NJN NPD14 IF NOT *+*
  4351. LDN 7 WRITE WITHOUT SPACING
  4352. STM NPWF
  4353.  
  4354. * PHASE 3. PRINT LINE.
  4355.  
  4356. NPD14 RJM MGR RETURN TO MANAGER
  4357. LDN ECLE CLEAR *I* DISPLAY
  4358. RJM MSG
  4359. AOD DA DO NOT PRINT FORMAT CHARACTER
  4360. LDM NPWF SET WRITE FUNCTION CODE
  4361. RJM WDR WRITE DATA RECORD
  4362. RJM RDB RELEASE DATA BUFFER
  4363.  
  4364. * PHASE 4. PROCESS POST PRINT OPERATIONS.
  4365.  
  4366. LDN NPOT STORE *OUT* POINTER
  4367. RJM SOP
  4368. AOM NPLC CHECK USER LIMITS
  4369. RJM CUL
  4370. LJM NPD4 GO TO PHASE 1
  4371. NEF SPACE 4,10
  4372. ** NEF - LIST END OF INFORMATION.
  4373. *
  4374. * USES BR, T4.
  4375. *
  4376. * CALLS ACT, MGR, NPN.
  4377.  
  4378.  
  4379. NEF LDD BS+4 CHECK BUFFER STATUS
  4380. SHN 21-11
  4381. MJN NEF1 IF EOI
  4382. LJM NPN1 RESET BUFFER STATUS
  4383.  
  4384. NEF1 LDD F2+2 CHECK ABORT FLAG
  4385. LPN 2
  4386. ZJN NEF2 IF NO ABORT FLAG
  4387. LDN 0 CLEAR REPEAT COUNT
  4388. STM CMER
  4389. LJM NPN PROCESS *END*
  4390.  
  4391. * *NEF2* IS A SECONDARY ENTRY POINT FOR *NEF*.
  4392.  
  4393. NEF2 AOD BR
  4394. LDM CMSF CHECK ACCOUNT FLAG
  4395. LPN 1
  4396. ZJN NEF3 IF ACCOUNT FLAG NOT SET
  4397. LJM TOF TERMINATE OUTPUT FILE
  4398.  
  4399. NEF3 AOM CMSF SET ACCOUNT FLAG
  4400. SCN 50 CLEAR 6/12 AND 8/12 ASCII PRINT FLAGS
  4401. STM CMSF
  4402. NEF4 LDN 0 SET PRINTER FOR *QAP*
  4403. STD EQ
  4404. RJM ACT PROCESS ACCOUNTING
  4405. NEF5 RJM MGR GO TO MANAGER
  4406. ZJN NEF4 IF REQUEST NOT ENTERED
  4407. LDD BS+4
  4408. SHN 21-0
  4409. PJN NEF5 IF ACCOUNTING NOT COMPLETE
  4410. LJM NPD4 PRINT LINE COUNT
  4411. NPE SPACE 4,10
  4412. ** NPE - ERROR PROCESSOR.
  4413. *
  4414. * ENTRY (A) = DEVICE STATUS.
  4415. *
  4416. * EXIT TO *PSE*.
  4417. *
  4418. * CALLS MSG.
  4419.  
  4420.  
  4421. NPE BSS 0 ENTRY
  4422. LPN 4
  4423. ZJN NPE1 IF NO INTERVENTION REQUIRED
  4424. LDN EIVR&ENRD
  4425. NPE1 LMN ENRD SEND *NOT READY.* MESSAGE
  4426. RJM MSG
  4427. LJM PSE RETURN
  4428. NPN SPACE 4,10
  4429. ** NPN - PROCESS *END*.
  4430. *
  4431. * USES BS+4, CM - CM+4.
  4432. *
  4433. * CALLS SFA.
  4434. *
  4435. * MACROS NFA.
  4436.  
  4437.  
  4438. NPN LDN 0 CLEAR HOLD FLAG
  4439. STM CMHF
  4440. LDM CMSF CHECK END FLAG
  4441. LPN 2
  4442. NJN NPN2 IF SET PREVIOUSLY
  4443. LDN 2 SET END FLAG
  4444. RAM CMSF
  4445. NFA FA,R READ FST INFORMATION
  4446. CRD CM
  4447. LDD FP+1 RESET FILE STATUS
  4448. ZJN NPN2 IF NO DAYFILE
  4449. STD CM+2
  4450. LDD FP+2
  4451. STD CM+3
  4452. NFA FA,R UPDATE FST INFORMATION
  4453. CWD CM
  4454.  
  4455. * *NPN1* IS A SECONDARY ENTRY POINT FOR *NPN*.
  4456.  
  4457. NPN1 LDN 1 RESET BUFFER STATUS
  4458. STD BS+4
  4459. RJM SFA STORE BUFFER STATUS
  4460. CWD BS
  4461. LJM NPD4 RETURN TO MAIN DRIVER
  4462.  
  4463. NPN2 LJM NEF2 PROCESS ACCOUNTING
  4464. PFC SPACE 4,20
  4465. ** PFC - PROCESS FORMAT CONTROL.
  4466. *
  4467. * ENTRY ((DA)) = FORMAT CONTROL CHARACTER (ASCII).
  4468. *
  4469. * EXIT (A) = 0 IF LINE SHOULD BE PRINTED.
  4470. * (NPLC) = LINE COUNT.
  4471. * (NPWF) = WRITE FUNCTION CODE.
  4472. *
  4473. * ERROR TO *MGR1* IF FUNCTION REJECTED.
  4474. *
  4475. * USES T4.
  4476. *
  4477. * CALLS FCN, GST.
  4478.  
  4479.  
  4480. PFC3 LDM 1,T4 SET LINE CHARGE COUNT
  4481. SHN 14
  4482. STM NPLC
  4483. SHN -14
  4484.  
  4485. PFC SUBR ENTRY/EXIT
  4486. LDC TPFC-4 SET FWA OF FORMAT CONTROL TABLE
  4487. STD T4
  4488. PFC1 LDN 4 SET NEXT ADDRESS
  4489. RAD T4
  4490. LDI T4
  4491. ZJN PFCX IF END OF TABLE
  4492. LMI DA
  4493. NJN PFC1 IF NO MATCH
  4494. LDM 2,T4 SET SECOND WRITE FUNCTION
  4495. STM NPWF
  4496. LDM 3,T4 SET FIRST WRITE FUNCTION
  4497. PFC2 ZJN PFC3 IF NO FUNCTION TO ISSUE
  4498. RJM FCN ISSUE FUNCTION
  4499. RJM GST GET GENERAL STATUS
  4500. ZJN PFC2 IF NO ERROR
  4501. LJM MGR1 RETURN TO *MGR*
  4502. TPFC SPACE 4,10
  4503. ** TPFC - TABLE OF FORMAT CONTROL CHARACTERS.
  4504. *
  4505. * FOUR WORDS PER ENTRY.
  4506.  
  4507.  
  4508. TPFC BSS 0
  4509. NFMTC C,,0,66 SKIP TO CHANNEL 6 AFTER PRINT
  4510. NFMTC D,,0,65 SKIP TO CHANNEL 5 AFTER PRINT
  4511. NFMTC E,,0,64 SKIP TO CHANNEL 4 AFTER PRINT
  4512. NFMTC F,,0,63 SKIP TO CHANNEL 3 AFTER PRINT
  4513. NFMTC G,,0,62 SKIP TO CHANNEL 2 AFTER PRINT
  4514. NFMTC H,,0,61 SKIP TO CHANNEL 1 AFTER PRINT
  4515. NFMTC Q,1,0,0 LINE IGNORED
  4516. NFMTC R,1,0,0 LINE IGNORED
  4517. NFMTC S,1,0,0 LINE IGNORED
  4518. NFMTC T,1,0,0 LINE IGNORED
  4519. NFMTC V,1,0,0 LINE IGNORED
  4520. NFMTC 0,,1,1,4 SPACE 1 LINE BEFORE PRINT
  4521. NFMTC 1,,0,21,4 EJECT BEFORE PRINT
  4522. NFMTC 2,,0,54 ADVANCE TO LAST LINE BEFORE PRINT
  4523. NFMTC 3,,0,46 SKIP TO CHANNEL 6 BEFORE PRINT
  4524. NFMTC 4,,0,45 SKIP TO CHANNEL 5 BEFORE PRINT
  4525. NFMTC 5,,0,44 SKIP TO CHANNEL 4 BEFORE PRINT
  4526. NFMTC 6,,0,43 SKIP TO CHANNEL 3 BEFORE PRINT
  4527. NFMTC 7,,0,42 SKIP TO CHANNEL 2 BEFORE PRINT
  4528. NFMTC 8,,0,41 SKIP TO CHANNEL 1 BEFORE PRINT
  4529. * NFMTC +,,0,0 PROCESSED IN MAIN DRIVER
  4530. NFMTC -,,2,2,4 SPACE 2 LINES BEFORE PRINT
  4531. NFMTC /,,0,7 SUPPRESS SPACE AFTER PRINT
  4532. DATA 0 END OF TABLE
  4533. PPM SPACE 4,10
  4534. ** PPM - PROCESS PM MESSAGE.
  4535. *
  4536. * ENTRY (DA) = FWA OF LINE RECORD.
  4537. * (FP+2) = VALIDATION FLAGS.
  4538. * (CMLR) = RECORD LENGTH - 1.
  4539. *
  4540. * EXIT (CMLR) = LENGTH OF *DJDE* ENTRY.
  4541. *
  4542. * USES T1, T2, T4.
  4543. *
  4544. * CALLS MVE.
  4545.  
  4546.  
  4547. PPM SUBR ENTRY/EXIT
  4548. LDD F2+2 CHECK VALIDATION
  4549. LPN 1
  4550. ZJN PPMX IF NOT *CBIO* VALIDATED
  4551. LDC 80D+1 INSURE MAX LENGTH OF 80 CHARACTERS
  4552. SBM CMLR
  4553. PJN PPM1 IF .LE. 80 CHARACTERS
  4554. RAM CMLR
  4555. PPM1 LDD DA SET LWA+1 OF SOURCE
  4556. ADM CMLR
  4557. ADN 1
  4558. STD T1
  4559. ADN PPMAL-1 SET LWA+1 OF DESTINATION
  4560. STD T2
  4561. ADN PPMBL SET LWA+1 OF ENDING STRING
  4562. STD T4
  4563. SOM CMLR MOVE TEXT STRING
  4564. RJM MVE
  4565. LDC PPMB+PPMBL
  4566. STD T1
  4567. LDD T4
  4568. STD T2
  4569. LDN PPMBL MOVE ENDING STRING
  4570. RJM MVE
  4571. LDC PPMA+PPMAL
  4572. STD T1
  4573. LDD DA
  4574. ADN PPMAL+1
  4575. STD T2
  4576. LDN PPMAL MOVE BEGINING STRING
  4577. RJM MVE
  4578. LDN PPMAL+PPMBL SET RECORD LENGTH
  4579. RAM CMLR
  4580. LJM PPMX RETURN
  4581.  
  4582. PPMA STR ("DJDE"OTEXT=)
  4583. DATA 50 (
  4584. STR (')
  4585. PPMAL EQU *-PPMA
  4586.  
  4587. PPMB STR (',1,WAIT)
  4588. DATA 51 )
  4589. STR (;END;)
  4590. PPMBL EQU *-PPMB
  4591. CON SPACE 4,15
  4592. ** CON - CONNECT TO EQUIPMENT.
  4593. *
  4594. * ENTRY (CMCE) = UNIT NUMBER.
  4595. *
  4596. * EXIT (A) = GENERAL STATUS.
  4597. * (ST) = GENERAL STATUS.
  4598. *
  4599. * ERROR TO *FCN3* IF FUNCTION TIMEOUT.
  4600. *
  4601. * CALLS FCN, GST.
  4602.  
  4603.  
  4604. CON2 DCN CH+40
  4605. RJM GST GET GENERAL STATUS
  4606.  
  4607. CON SUBR ENTRY/EXIT
  4608. LDN 0 ISSUE SELECT UNIT FUNCTION
  4609. RJM FCN
  4610. LDM CMCE SET UNIT NUMBER
  4611. SHN -11
  4612. ACN CH
  4613. OAN CH+40
  4614. CON1 ADD ON
  4615. EJM CON2,CH IF FUNCTION ACCEPTED
  4616. NJN CON1 IF NOT TIMED OUT
  4617. UJN FCN3 PROCESS FUNCTION TIMEOUT
  4618. FCN SPACE 4,15
  4619. ** FCN - OUTPUT FUNCTION TO EQUIPMENT.
  4620. *
  4621. * ENTRY (A) = FUNCTION CODE.
  4622. *
  4623. * EXIT (FC) = CURRENT FUNCTION CODE.
  4624. * (FC) = PRIOR FUNCTION CODE IF CURRENT FUNCTION CODE IS
  4625. * A GENERAL STATUS.
  4626. *
  4627. * ERROR TO *CEP* IF FUNCTION TIMEOUT.
  4628. *
  4629. * USES T1.
  4630. *
  4631. * CALLS SDM.
  4632.  
  4633.  
  4634. FCN SUBR ENTRY/EXIT
  4635. FAN CH ISSUE FUNCTION
  4636. LMN 12
  4637. ZJN FCN1 IF GENERAL STATUS FUNCTION
  4638. LMN 12
  4639. STD FC SAVE FUNCTION CODE FOR ERROR MESSAGE
  4640. FCN1 LDK 1000D*4 FOUR SECOND DELAY
  4641. ERRPL 1000D*4-7777 DELAY COUNT OVERFLOWS
  4642. STD T1 SET TIMEOUT COUNTDOWN INCREMENT
  4643. FCN2 LDM .DLY DELAY 1 MILLISECOND
  4644. SHN 2
  4645. FCN2.4 IJM FCNX,CH IF FUNCTION ACCEPTED
  4646. SBN 1
  4647. NJN FCN2.4 IF INNER LOOP NOT EXPIRED
  4648. SOD T1
  4649. PJN FCN2 IF TIMEOUT NOT ELAPSED
  4650. SOM CMTC
  4651. NJN FCN1 IF TIMEOUT NOT ELAPSED
  4652.  
  4653. * *FCN3* IS A SECONDARY ENTRY POINT FOR *FCN*.
  4654.  
  4655. FCN3 DCN CH+40
  4656. LDN EFTM *EQXXX FUNCTION TIMEOUT.*
  4657. RJM SDM
  4658. LJM CEP PROCESS CHANNEL ERROR
  4659. GST SPACE 4,15
  4660. ** GST - GET GENERAL STATUS OF CCC.
  4661. *
  4662. * ENTRY CHANNEL INSTRUCTIONS SET.
  4663. *
  4664. * EXIT (A) = GENERAL STATUS.
  4665. * (ST) = GENERAL STATUS.
  4666. *
  4667. * ERROR TO *FCN2* IF FUNCTION TIMEOUT.
  4668. * TO *CEP* IF STATUS ERROR.
  4669. *
  4670. * CALLS CCE, FCN, SDM.
  4671.  
  4672.  
  4673. GST2 LDD ST
  4674.  
  4675. GST SUBR ENTRY/EXIT
  4676. GST1 LDN 12 ISSUE GENERAL STATUS FUNCTION
  4677. RJM FCN
  4678. ACN CH
  4679. IAN CH+40
  4680. DCN CH+40
  4681. STD ST
  4682. LDN SCEI STATUS PARITY ERROR
  4683. RJM CCE CHECK FOR CHANNEL ERROR
  4684. NJN GST1 IF ERROR
  4685. LDD ST CHECK FOR STATUS ERROR
  4686. SHN -11
  4687. LMN 5
  4688. NJN GST2 IF NO ERROR
  4689. LDN ECSE *EQXXX CCC/NIP STATUS ERROR.*
  4690. RJM SDM
  4691. LJM CEP PROCESS CHANNEL ERROR
  4692. MCI SPACE 4,10
  4693. ** MCI - MODIFY CHANNEL INSTRUCTIONS.
  4694. *
  4695. * ENTRY (CMCE) = CHANNEL FOR DEVICE.
  4696. * (CR) = CURRENT CHANNEL.
  4697. *
  4698. * EXIT (CR) = CHANNEL RESERVED.
  4699. *
  4700. * USES T1 - T3.
  4701. *
  4702. * MACROS DCHAN, RCHAN.
  4703.  
  4704.  
  4705. MCI1 RAI T2 MODIFY NEXT CHANNEL
  4706. AOD T1
  4707. MCI2 LDI T1
  4708. STD T2
  4709. LDD T3
  4710. CHTL *
  4711. SBN CH
  4712. NJN MCI1 IF MORE CHANNELS TO MODIFY
  4713. LDD CR RESERVE NEW CHANNEL
  4714. RCHAN
  4715.  
  4716. MCI SUBR ENTRY/EXIT
  4717. LDM CMCE CHECK CHANNEL
  4718. LPN 77
  4719. STD T3
  4720. CHTE *
  4721. LMN CH
  4722. ZJN MCIX IF CORRECT CHANNEL
  4723. LDD CR RELEASE LAST CHANNEL
  4724. DCHAN
  4725. CHTE CR UPDATE *CR* DIRECT CELL
  4726. LDC TCHS MODIFY CHANNELS
  4727. STD T1
  4728. UJN MCI2 MODIFY FIRST CHANNEL
  4729. MVE SPACE 4,10
  4730. ** MVE - MOVE BUFFER.
  4731. *
  4732. * ENTRY (A) = NUMBER OF BYTES TO MOVE.
  4733. * (T1) = LWA+1 OF SOURCE BUFFER.
  4734. * (T2) = LWA+1 OF DESTINATION BUFFER.
  4735. *
  4736. * USES T1, T2, T3.
  4737.  
  4738.  
  4739. MVE1 SOD T1
  4740. SOD T2
  4741. LDI T1
  4742. STI T2
  4743. SOD T3
  4744. MVE2 NJN MVE1 IF MOVE NOT COMPLETE
  4745.  
  4746. MVE SUBR ENTRY/EXIT
  4747. STD T3
  4748. UJN MVE1 BEGIN MOVE
  4749. REC SPACE 4,10
  4750. ** REC - RELEASE EQUIPMENT CONNECT.
  4751.  
  4752.  
  4753. REC SUBR ENTRY/EXIT
  4754. UJN RECX RETURN
  4755. SDP SPACE 4,10
  4756. ** SDP - SUB-DRIVER PROCESSOR.
  4757. *
  4758. * CALLS CON, MCI.
  4759.  
  4760.  
  4761. SDP SUBR ENTRY/EXIT
  4762. LDD BR
  4763. NJN SDP1 IF BUSY RETURN REQUESTED
  4764. RJM MCI MODIFY CHANNEL INSTRUCTIONS
  4765. RJM CON CONNECT TO EQUIPMENT
  4766. ZJN SDP1 IF CONNECTED AND READY
  4767. SHN 21-1
  4768. MJN SDPX IF BUSY
  4769. LDM TNRP,EQ SET NOT READY PROCESSING ADDRESS
  4770. STD PA
  4771. LDD ST (A) = STATUS
  4772. UJN SDP2 ENTER ROUTINE
  4773.  
  4774. SDP1 LDM CMPA SET PROGRAM ADDRESS
  4775. STD PA
  4776. LDM CMAR RESET (A)
  4777. SDP2 LJM 0,PA RETURN TO NEXT DRIVER ADDRESS
  4778. WDR SPACE 4,10
  4779. ** WDR - WRITE DATA RECORD.
  4780. *
  4781. * ENTRY (A) = WRITE FUNCTION.
  4782. * (DA) = FWA OF DATA RECORD.
  4783. * (CMLR) = OUTPUT RECORD LENGTH.
  4784. *
  4785. * ERROR TO *MGR1* IF RETRY REQUIRED.
  4786. *
  4787. * CALLS CRV, FCN, GST, PRE.
  4788.  
  4789.  
  4790. WDR SUBR ENTRY/EXIT
  4791. RJM FCN ISSUE WRITE FUNCTION
  4792. LDD DA SET RECORD ADDRESS
  4793. STM WDRA
  4794. LDM CMLR SET RECORD LENGTH
  4795. ACN CH
  4796. OAM **,CH
  4797. WDRA EQU *-1 (RECORD ADDRESS)
  4798. FJM *,CH IF TRANSFER NOT COMPLETE
  4799. DCN CH+40
  4800. NJN WDR1 IF INCOMPLETE TRANSFER
  4801. LDN DRRI
  4802. RJM CRV CHECK FOR RECOVERED ERROR
  4803. RJM GST GET GENERAL STATUS
  4804. NJN WDR2 IF ERRORS
  4805. UJN WDRX RETURN
  4806.  
  4807. WDR1 STD CS SAVE BYTE COUNT
  4808. LDN DRRI
  4809. RJM PRE PROCESS RECOVERED ERROR
  4810. WDR2 LJM MGR1 RETURN TO MANAGER
  4811. TCHS SPACE 4,10
  4812. ** TCHS - CHANNEL TABLE.
  4813.  
  4814.  
  4815. TCHS CHTB
  4816. TITLE PRESET.
  4817. PRS SPACE 4,15
  4818. ** PRS - PRESET SUB-DRIVER OVERLAY.
  4819. *
  4820. * EXIT (CR) = CHANNEL RESERVED.
  4821. * (DB) = FIRST DATA BUFFER ADDRESS.
  4822. * TO *ZBA*.
  4823. *
  4824. * USES CM - CM+4, T1 - T3.
  4825. *
  4826. * MACROS RCHAN.
  4827.  
  4828.  
  4829. PRS BSS 0 ENTRY
  4830. LDN IPRL CHECK CHARACTER SET MODE
  4831. CRD CM
  4832. LDD CM+2
  4833. LPN 1
  4834. NJN PRS1 IF SYSTEM NOT IN 63 CHARACTER SET MODE
  4835. ISTORE NPDA,(UJN NPD9)
  4836. PRS1 LDN CH RESERVE CHANNEL
  4837. STD CR
  4838. RCHAN
  4839. STM RCBA
  4840. LDN ZERL CLEAR *CIO* REQUEST PARAMETERS
  4841. CRD CM
  4842. LDD MA
  4843. ADN 1
  4844. CWD CM
  4845. LDC DBUF SET BUFFER INFORMATION
  4846. STD DB
  4847. STD T1
  4848. LDC DBUFS
  4849. STD T2
  4850. LDC DBUFL
  4851. STD T3
  4852. LJM ZBA CLEAR DATA BUFFER ASSIGNMENTS
  4853. SPACE 4,10
  4854. OVERFLOW OVLA
  4855. DBUF SPACE 4,10
  4856. ** DBUF - DATA BUFFER AREA.
  4857.  
  4858.  
  4859. DBUFS EQU PXMX+5 DATA BUFFER SIZE
  4860. DBUFW EQU DBUFS/10D DATA BUFFER SIZE IN CM WORDS
  4861. DBUF EQU PRS FWA OF DATA BUFFERS
  4862. .L SET 7777-DBUF
  4863. NDBUF EQU .L/DBUFS NUMBER OF DATA BUFFERS
  4864. DBUFL EQU DBUF+DBUFS*NDBUF LWA+1 OF DATA BUFFERS
  4865.  
  4866. ERRNG 10000-DBUFL BUFFERS WRAP PP MEMORY
  4867. SPACE 4,10
  4868. END