Table of Contents

1MI

Table Of Contents

  • [00010] TERMINAL I/O DRIVER.
  • [00193] CFET - COMPUTE FET ADDRESS.
  • [00211] ERROR - PROCESS *1MI* ERROR CODE.
  • [00225] MSG - DEFINE ERROR OPTIONS AND DAYFILE MESSAGES.
  • [00297] DPP - DROP PPU.
  • [00304] ANR - ASSURE NETWORK REQUIREMENTS.
  • [00432] CAF - COMPUTE ABSOLUTE FET ADDRESS.
  • [00448] CEF - CHECK FOR ERROR FLAG.
  • [00482] CFN - COMPLETE FUNCTION.
  • [00541] CHG - CONDITIONALLY HANG PP.
  • [00559] CID - COPY INPUT DATA.
  • [00706] CJA - CHECK USER JOB ACTIVITY.
  • [00721] COD - COPY OUTPUT DATA.
  • [00838] CTI - CHECK FOR TERMINAL INPUT.
  • [00894] CTO - CHECK FOR TERMINAL OUTPUT.
  • [00946] DFS - DETERMINE FLUSH STATUS.
  • [01062] DFSA - TABLE OF CIO CODES TO FLUSH ON.
  • [01086] ERR - PROCESS ERROR.
  • [01106] ERS - ENTER RECALL STACK.
  • [01139] ERX - ERROR EXIT PROCESSOR.
  • [01248] TEPO - TABLE OF ERROR PROCESSING OPTIONS AND DAYFILE
  • [01274] GMX - GET MULTIPLEXOR STATUS.
  • [01302] IDM - SET UP AND ISSUE DAYFILE MESSAGE.
  • [01346] ITA - INITIALIZE INTERACTIVE ACCESS.
  • [01389] MRJ - CHECK FOR MONITOR FUNCTION REJECTION.
  • [01443] PTI - PROCESS TERMINAL INPUT.
  • [01603] PTO - PROCESS TERMINAL OUTPUT.
  • [01793] RBS - REVERSE BUFFER SCAN.
  • [01848] ROJ - ROLL USER JOB.
  • [01867] SLF - SEARCH LIST OF FILE ENTRIES.
  • [01962] VAD - VALIDATE ADDRESS WITHIN FL.
  • [01983] VFP - VERIFY FET PARAMETERS.
  • [02085] TIAF - TABLE OF *TSEM* FUNCTION REQUEST DEFINITIONS.
  • [02134] PRS - PRESET *1MI*.
  • [02278] CTT - CHECK TIOW/TINW BUSY.
  • [02380] REC - RECOVER FROM MONITOR REJECTION.

Source Code

1MI.txt
  1. IDENT 1MI,HST
  2. PERIPH
  3. BASE MIXED
  4. SST
  5. SYSCOM
  6. *COMMENT 1MI - TERMINAL I/O DRIVER.
  7. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  8. HST TITLE 1MI - TERMINAL I/O DRIVER.
  9. HST SPACE 4,10
  10. *** 1MI - TERMINAL I/O DRIVER.
  11. *
  12. * R. V. SAMORA. 82/05/30.
  13. HST SPACE 4,10
  14. *** *1MI* HIGH SPEED TERMINAL SUPPORT (HSTS) IMPROVES THE
  15. * INTERACTIVE I/O PERFORMANCE OF IAF BY REMOVING QUEUING DELAYS
  16. * AND ALLOWING INTERACTIVE I/O TO PROCEED WITHOUT MANDATORY
  17. * ROLLOUT OF THE INTERACTIVE USER PROGRAM. THIS FEATURE,
  18. * ALTHOUGH INTENDED FOR HIGH SPEED TERMINALS PRIMARILY,
  19. * IMPROVES SYSTEM PERFORMANCE NOT ONLY IN THE AREA OF CHARACTER
  20. * THROUGHPUT BUT REDUCES SYSTEM OVERHEAD BY KEEPING INTERACTIVE
  21. * JOB MOVEMENT AT A MINIMUM.
  22. HST SPACE 4,10
  23. *** CALL.
  24. *
  25. *
  26. *T IR 18/*1MI*, 1/A, 5/CP, 1/T, 17/, 18/FET
  27. * A SET IF AUTO RECALL DESIRED.
  28. * CP CONTROL POINT OF REQUESTOR.
  29. * T ZERO IF THIS PP HAS THE TINW/TIOW INTERLOCK.
  30. * FET FET ADDRESS.
  31. *
  32. *T MB 1/S, 5/, 6/CP, 6/RC, 18/, 12/FP, 1/A, 1/, 4/IF, 3/, 3/RT
  33. * S SET BY *CPUMTR* IF *1MI* STARTED FROM RECALL STACK.
  34. * CP UNUSED (WARNING - SOMETIMES SET BY *CPUMTR*).
  35. * RC REASON CODE WHY *1MI* ENTERED RECALL.
  36. * FP FIRST POT IN CHAIN PRIOR TO RECALL.
  37. * A SET IF MONITOR FUNCTION REJECTED BECAUSE IAF ABORTED.
  38. * IF *CIO* INTERNAL FUNCTION CODE (SEE *COMSCIO*).
  39. * RT MONITOR FUNCTION REJECTION COUNT.
  40. *
  41. *T MB+1 12/0, 24/IN, 24/OUT
  42. *T MB+2 6/0, 6/FETL, 24/FIRST, 24/LIMIT
  43. * FETL FET LENGTH IN CM WORDS.
  44. * FET POINTERS ARE TRANSFERED ONLY ON INITIAL *1MI* CALL.
  45. HST SPACE 4,10
  46. *** DAYFILE MESSAGES.
  47. *
  48. * * FET ADDRESS OUT OF RANGE AT NNN.*
  49. * FET ADDRESS .LE. 1 OR FET EXCEEDS FIELD LENGTH.
  50. *
  51. * * BUFFER ARGUMENT ERROR ON FFF AT NNN.*
  52. * A BUFFER POINTER DOES NOT CONFORM TO CONSTRAINTS-
  53. * - FIRST POINTER .LE. IN POINTER.
  54. * - FIRST POINTER .LE. OUT POINTER.
  55. * - OUT POINTER .LT. BUFFER LIMIT.
  56. * - IN POINTER .LT. BUFFER LIMIT.
  57. * - BUFFER LENGTH .LE. FIELD LENGTH.
  58. *
  59. * * INCORRECT I/O REQUEST ON FILE FFF AT NNN.*
  60. * I/O WAS REQUESTED ON A DETACHED INTERACTIVE
  61. * JOB WITH JOB TERMINATION OPTION SET TO COMPLETION.
  62. *
  63. * FFF REPRESENTS FILE NAME AS GIVEN IN THE FET.
  64. * NNN REPRESENTS THE FILE FET ADDRESS.
  65. HST SPACE 4,10
  66. *** HANG CONDITIONS.
  67. *
  68. * *1MI* WILL HANG WITH THE *HNGM* MONITOR FUNCTION IF-
  69. * - INCORRECT ERROR CODE IS DETECTED DURING ERROR
  70. * PROCESSING.
  71. * - AN INCORRECT NETWORK BLOCKSIZE IS DETECTED FROM IAF.
  72. *
  73. * HANG CONDITIONS ARE SOFT IN THAT BY CLEARING THE APPROPRIATE
  74. * PPU OUTPUT REGISTER, *1MI* WILL ATTEMPT TO RECOVER ITS
  75. * CURRENT PROCESS AS GRACEFULLY AS POSSIBLE.
  76. HST SPACE 4,10
  77. *** PROGRAMMING CONSIDERATIONS-
  78. *
  79. * *1MI* IN THE PROCESS OF HANDLING TERMINAL I/O WILL-
  80. *
  81. * 1) READ PROCESS-
  82. *
  83. * - ATTEMPT TO FLUSH *LOFW* OR RA+2 LIST OF FILE
  84. * ENTRIES BEFORE PROCESSING THE READ REQUEST.
  85. *
  86. * 2) WRITE PROCESS-
  87. *
  88. * - *1MI* WILL TRANSFER THE MAXIMUM AMOUNT OF OUTPUT
  89. * DATA SPECIFIC TO EACH TERMINALS DOWNLINE BLOCK
  90. * LIMIT WHICH IS CHARACTERISTIC OF ITS LINE SPEED.
  91. * - PPU RECALL IS USED BETWEEN *VADO* OUTPUT DOWNLINE
  92. * *TSEM* FUNCTION REQUESTS TO IAF.
  93. * - IN THE EVENT THE USER JOB SHOULD ROLL FROM THE
  94. * CONTROL POINT WHILE *1MI* IS IN PPU RECALL,
  95. * ROUTINE *1RO* WILL CONTINUE THE OUTPUT PROCESS
  96. * STARTED BY *1MI* WHETHER EXPLICIT OR IMPLICIT
  97. * OUTPUT REQUEST VIA LIST OF FILES PROCESSING.
  98. * - BUFFERED WRITE ON A FULL OUTPUT BUFFER
  99. * WITH NO *EOL* BYTE RESULTS IN A ROLL OF
  100. * THE USER JOB TO ALLOW *1RO* TO ASSURE
  101. * OUTPUT BUFFER FLUSH COMPLETION.
  102. *
  103. * 3) MONITOR FUNCTION REJECTION PROCESSING-
  104. *
  105. * - IF A *TGPM* OR *TSEM* MONITOR FUNCTION IS
  106. * REJECTED BECAUSE IAF IS BUSY, *1MI* WILL GO INTO
  107. * PP RECALL. WHEN RESTARTED, *1MI* WILL THEN
  108. * DROP ANY POTS CURRENTLY HELD AND START OVER.
  109. * - IAF INACCESSIBILITY DETECTED THROUGH EITHER
  110. * FUNCTION REJECTION OR *1MI* PRESET FORCES
  111. * SUSPENSION ROLLOUT OF THE USER JOB CAUSING
  112. * JOB DETACHMENT TO ALLOW SUBSEQUENT USER
  113. * RECOVERY.
  114. *
  115. * 4) MULTIPLEXOR TERMINAL CHARACTERISTICS-
  116. *
  117. * - BECAUSE OF THE LACK OF TYPEAHEAD FOR MULTIPLEXOR
  118. * TERMINALS, THE USER JOB STEMMING FROM TERMINALS
  119. * OF THIS TYPE WILL ALWAYS ROLL FROM THE CONTROL
  120. * POINT ON I/O REQUESTS.
  121. HST SPACE 4,10
  122. ** RECALL TIME PERIODS (MILLISECONDS)
  123.  
  124. RECMS1 EQU 10D JOB ACTIVE WITH NO READY DATA
  125. RECMS2 EQU 100D IAF REQUEST QUEUE REJECTION
  126.  
  127. ** REASON CODES FOR WHY *1MI* MIGHT GO INTO RECALL.
  128.  
  129. LOC 0
  130.  
  131. TALR BSS 1 IAF BUSY, TRY AGAIN LATER
  132. TDOR BSS 1 *VADO* *TSEM* MONITOR FUNCTION REJECTED
  133. TPOR BSS 1 *VDPO* *TSEM* MONITOR FUNCTION REJECTED
  134.  
  135. LOC *O
  136.  
  137. ** ASSEMBLY CONSTANTS.
  138.  
  139. IAFF EQU 4000 FUNCTION REJECTED BECAUSE IAF ABORTED
  140. TTB EQU 4000 TIOW/TINW BUSY, FROM *CPUMTR* IN IR+2
  141. EJT$ EQU 1 ASSEMBLE EJT ADDRESSING (*COMPGFP*)
  142. HST SPACE 4,10
  143. ** COMMON DECKS.
  144.  
  145.  
  146. *CALL,COMPMAC
  147. *CALL,COMSACC
  148. *CALL,COMSCIO
  149. *CALL,COMSCPS
  150. *CALL,COMSEJT
  151. *CALL COMSJCE
  152. *CALL,COMSPIM
  153. QUAL REM
  154. *CALL,COMSREM
  155. QUAL
  156. *CALL,COMSSSJ
  157. *CALL,COMSTCM
  158. HST SPACE 4,10
  159. ** DIRECT LOCATION ASSIGNMENTS.
  160.  
  161.  
  162. TT EQU T6 - T7 TERMINAL TABLE ADDRESS
  163. NF EQU 15 NFL/100B
  164. T8 EQU 16 SCRATCH
  165. T9 EQU 17 SCRATCH
  166. PA EQU T8 - T9 IAF POT MEMORY ADDRESS
  167. MB EQU 20 - 24 MESSAGE BUFFER PARAMETERS FROM *PPR*
  168. MB1 EQU 25 - 31 MESSAGE BUFFER + 1
  169. MB2 EQU 32 - 36 MESSAGE BUFFER + 2
  170. CD EQU MB1 SCRATCH BUFFER.
  171. CN EQU MB2 SCRATCH BUFFER
  172. BS EQU 37 - 43 BUFFER STATUS
  173. FN EQU BS FILE NAME
  174. FC EQU 44 *1MI* FUNCTION CODE
  175. TN EQU 45 INTERACTIVE TERMINAL NUMBER
  176. TA EQU 46 INTERACTIVE REFERENCE ADDRESS
  177. PP EQU 47 CURRENT POT POINTER
  178. WC EQU 57 CM TRANSFER WORD COUNT
  179. FT EQU 60 - 61 BUFFER FIRST WORD ADDRESS
  180. LM EQU 62 - 63 BUFFER LAST WORD ADDRESS
  181. IN EQU 64 - 65 BUFFER IN POINTER
  182. OT EQU 66 - 67 BUFFER OUT POINTER
  183.  
  184.  
  185. ERRNZ OT-FT-6 FET DIRECT CELLS MUST BE CONTIGUOUS
  186. ERRNZ /CIO/RDF CODE DEPENDS ON INTERNAL READ FUNCTION
  187. ERRNZ /CIO/WTF-1 CODE DEPENDS ON INTERNAL WRITE FUNCTION
  188.  
  189. HST TITLE MACRO DEFINITIONS.
  190.  
  191. ** MACRO DEFINITIONS.
  192. HST SPACE 4,10
  193. ** CFET - COMPUTE FET ADDRESS.
  194. * CFET N
  195. *
  196. * ENTRY *N* = FET CM WORD OFFSET.
  197. *
  198. * COMPUTES ABSOLUTE FET ADDRESS USING (IR+3 - IR+4)
  199. *
  200. * CALLS CAF.
  201.  
  202.  
  203. PURGMAC CFET
  204.  
  205. CFET MACRO W
  206. RJM CAF GET ABSOLUTE ADDRESS
  207. IFC NE,$W$$,1
  208. ADK W OFFSET IF REQUESTED
  209. ENDM
  210. HST SPACE 4,10
  211. ** ERROR - PROCESS *1MI* ERROR CODE.
  212. *
  213. * ERROR EC
  214. *
  215. * *EC* = *1MI* ERROR CODE.
  216.  
  217.  
  218. PURGMAC ERROR
  219.  
  220. ERROR MACRO EC
  221. LDK /CIOERR/EC
  222. LJM ERR PROCESS ERROR
  223. ENDM
  224. HST SPACE 4,10
  225. ** MSG - DEFINE ERROR OPTIONS AND DAYFILE MESSAGES.
  226. *
  227. *ERR MSG (TEXT),EF,FETD
  228. *
  229. * ENTRY *ERR* = *COMSCIO* ERROR CODE.
  230. * *TEXT* = DAYFILE ERROR MESSAGE.
  231. * *EF* = CONTROL POINT ERROR FLAG TO SET.
  232. * *FETD* = FET DUMP OPTION.
  233. *
  234. * EXIT ERROR PROCESSING OPTIONS AND DAYFILE MESSAGE
  235. * ADDRESSES GENERATED PER FORMAT OF *TEPO* TABLE
  236. * DESCRIPTION.
  237.  
  238.  
  239. PURGMAC MSG
  240.  
  241. MACRO MSG,ERR,TEXT,EF,FETD
  242. LOCAL A
  243. VFD 6/EF,5//CIOERR/ERR,1/FETD
  244. CON =Z*_TEXT_*
  245. A MICRO 1,,$TEXT$
  246. A MICCNT A
  247. ERRNG 32D-A TEXT OVERFLOW CONDITION
  248. ENDM
  249. HST TITLE *1MI* MAIN PROGRAM.
  250. ORG PPFW
  251.  
  252.  
  253.  
  254. HST RJM PRS PRESET *1MI*
  255. LDD FC *1MI* FUNCTION CODE
  256. LMN /CIO/WTF
  257. ZJP HST5 IF *1MI* WRITE FUNCTION
  258. AOM ANRA ANY OUTPUT SHOULD BE ENTIRELY FLUSHED
  259. UJN HST5 FLUSH ANY LIST OF FILE OUTPUT
  260.  
  261. * PROCESS *1MI* READ FUNCTION.
  262.  
  263. HST1 RJM CTI CHECK FOR TERMINAL INPUT
  264. ZJN HST1.1 IF NO INPUT FOUND
  265. RJM PTI PROCESS TERMINAL INPUT
  266. ZJN HST2 IF INPUT QUEUING WITHIN IAF IN PROCESS
  267. LJM DPP DROP PP
  268.  
  269. * PROCESS NO INPUT ON A READ OPERATION.
  270.  
  271. HST1.1 RJM GMX
  272. ZJN HST3 IF MULTIPLEXOR TERMINAL
  273. HST2 RJM CJA CHECK JOB ACTIVITY
  274. ZJN HST3 IF USER JOB INACTIVE
  275. LMK ICPS
  276. ZJN HST3 IF JOB IN *I* STATUS
  277. LMK ICPS&XCPS
  278. NJN HST4 IF JOB NOT IN RECALL
  279. HST3 LDK ROSR ROLL OUT JOB
  280. STD T0
  281. RJM ROJ ROLL USER JOB
  282. HST4 LDK TALR
  283. LJM ERS ENTER RECALL STACK
  284.  
  285. * PROCESS *1MI* WRITE FUNCTION.
  286.  
  287. HST5 RJM CTO CHECK FOR TERMINAL OUTPUT
  288. ZJN HST10 IF NO OUTPUT
  289. RJM PTO PROCESS TERMINAL OUTPUT
  290. MJN HST2 IF IAF OUTPUT THRESHOLD REACHED
  291. HST10 LDD FC INITIAL *1MI* FUNCTION CODE
  292. LMK /CIO/RDF
  293. ZJP HST1 IF OUTSTANDING READ FUNCTION
  294. RJM CFN COMPLETE OUTPUT FET
  295. * UJN DPP DROP PPU
  296. HST SPACE 4,10
  297. ** DPP - DROP PPU.
  298.  
  299. DPP BSS 0 ENTRY
  300. MONITOR DPPM DROP PPU
  301. LJM PPR EXIT TO PP RESIDENT
  302. HST TITLE GENERAL SUBROUTINES.
  303. ANR SPACE 4,10
  304. ** ANR - ASSURE NETWORK REQUIREMENTS.
  305. *
  306. * ENTRY (IR+3 - IR+4) = OUTPUT FET ADDRESS.
  307. * (CD+3 - CD+4) = MAXIMUM OUTPUT BUFFER CONTENT.
  308. * (BS - BS+4) = OUTPUT BUFFER STATUS.
  309. * (FT - FT+1) = BUFFER FIRST WORD ADDRESS.
  310. * (IN - IN+1) = BUFFER IN POINTER.
  311. * (OT - OT+1) = BUFFER OUT POINTER.
  312. * (LM - LM+1) = BUFFER LAST WORD ADDRESS.
  313. * (CD) = NETWORK BLOCK LIMIT CM WORD COUNT.
  314. *
  315. * EXIT (CD+2) = ACCEPTABLE CM WORD COUNT ENCOMPASSING
  316. * COMPLETE LOGICAL LINES.
  317. * (A) = LESS THAN ZERO IF NO COMPLETE LINES ARE
  318. * ENCOUNTERED WITHIN THE OUTPUT BUFFER.
  319. *
  320. * USES CM - CM+4, T2 - T4, CD+1 - CD+4.
  321. *
  322. * CALLS RBS.
  323.  
  324.  
  325. ANR SUBR ENTRY/EXIT
  326.  
  327. * BEGINNING BUFFER SCAN IS FROM NETWORK BLOCK SIZE.
  328.  
  329. LDD CD+3 COMPARE BUFFER CONTENT TO BLOCKSIZE
  330. SHN 14
  331. LMD CD+4
  332. SBD CD
  333. SBN 1
  334. PJN ANR1 IF CONTENT GREATER THAN BLOCKSIZE
  335.  
  336. * OUTPUT BUFFER IS SEARCHED FOR THE LAST *EOL* BYTE WHICH
  337. * MARKS THE ACCEPTABLE CM WORD TRANSFER COUNT SATISFYING
  338. * NETWORK REQUIREMENTS.
  339.  
  340. LDD CD+3 PRESET BUFFER SEARCH PARAMETERS
  341. STD CD+1
  342. LDD CD+4
  343. STD CD+2
  344.  
  345. * BUFFER IS TRANSFERED AS IS IF FLUSH CONDITIONS PREVAIL.
  346.  
  347. LDC ** BUFFER FLUSH PASS NETWORK REQUIREMENTS
  348. * LDC 1
  349. ANRA EQU *-1
  350. NJN ANRX IF WRITER,WRITEF,FLUSH OR READ FUNCTION
  351.  
  352. * PRESET RUNNING *IN* POINTER PRIOR TO BUFFER SCAN.
  353.  
  354. LDD IN CURRENT BUFFER *IN* POINTER
  355. STD T3
  356. LDD IN+1
  357. STD T4
  358. RJM RBS SCAN BUFFER FOR *EOL* WITHIN BLOCKSIZE
  359. PJN ANRX IF EOL FOUND
  360. LDM PTOA
  361. LPN 77
  362. NJN ANR0 IF BUFFER FULL
  363. LDM ANRB
  364. SBN 1
  365. MJN ANRX IF SYNCHRONOUS TERMINAL AND NO EOL
  366. ANR0 LDD CD+4 SET WORD COUNT TO BUFFER CONTENTS - 1
  367. SBN 1
  368. STD CD+2
  369. STM CODE SET NO RECALL
  370. SBN 1
  371. LJM ANRX RETURN
  372.  
  373. * ADJUST BUFFER SCAN PARAMETERS TO BEGIN AT BLOCKSIZE.
  374.  
  375. ANR1 LDD CD NETWORK BLOCKSIZE CM WORD COUNT
  376. STD CD+2
  377. SHN -14
  378. STD CD+1
  379. LDD OT BUFFER *IN* IS SET TO *OUT* PLUS BLOCKSIZE
  380. SHN 14
  381. LMD OT+1
  382. ADD CD+2
  383. STD T3+1 RUNNING *IN* POINTER
  384. SHN -14
  385. STD T3
  386. SBD LM
  387. SHN 14
  388. LMD T3+1
  389. SBD LM+1
  390. MJN ANR2 IF RUNNING *IN* IS LESS THAN *LIMIT*
  391. ADD FT+1 BUFFER WRAP RUNNING *IN* POINTER
  392. STD T3+1
  393. SHN -14
  394. ADD FT
  395. STD T3
  396. ANR2 RJM RBS SCAN BLOCKSIZE PORTION OF BUFFER
  397. PJP ANRX IF *EOL* BYTE WITHIN BLOCKSIZE
  398.  
  399. * AT LEAST BLOCKSIZE-1 CM WORDS NEED BE TRANSFERED IF FLUSH
  400. * CONDITIONS PREVAIL DUE TO WRITER,WRITEF,FLUSH OR READ
  401. * FUNCTION IS OUTSTANDING.
  402.  
  403. LDC 0
  404. * LDC 1 (IF TC .LE. 8, ASYNC LINE)
  405. ANRB EQU *-1
  406. ADM ANRA BUFFER FLUSH CONDITIONS
  407. NJN ANR3 IF FLUSH REQUIRED
  408.  
  409. * BUFFERED WRITE FUNCTION REQUIRES TOTAL SCAN FOR *EOL*.
  410.  
  411. LDD IN PRESET REST OF BUFFER SCAN
  412. STD T3
  413. LDD IN+1
  414. STD T3+1
  415. LDD CD+3 INCLUDE TOTAL BUFFER CONTENT
  416. STD CD+1
  417. LDD CD+4
  418. STD CD+2
  419. RJM RBS SCAN MAXIMUM BUFFER CONTENT FOR *EOL*
  420. MJP ANRX IF NO *EOL* BYTE WITHIN TOTAL BUFFER
  421.  
  422. * NETWORK BLOCKSIZE-1 CM WORDS ARE TRANSMITTED TO
  423. * FACILITATE MAXIMUM NETWORK TRANSFER WHILE ALLOWING FOR
  424. * CONTROL BYTE PROCESSING DURING CHARACTER CONVERSION
  425. * WITHIN IAF.
  426.  
  427. ANR3 LDD CD NETWORK BLOCKSIZE CM WORD COUNT
  428. SBN 1
  429. STD CD+2 BLOCKSIZE-1 CM TRANSFER
  430. UJP ANRX RETURN
  431. CAF SPACE 4,10
  432. ** CAF - COMPUTE ABSOLUTE FET ADDRESS.
  433. *
  434. * ENTRY (IR+3 - IR+4) = RELATIVE FET ADDRESS.
  435. *
  436. * EXIT (A) = ABSOLUTE FET ADDRESS.
  437.  
  438.  
  439. CAF SUBR ENTRY/EXIT
  440. LDD IR+3 RELATIVE ADDRESS
  441. LPN 37
  442. SHN 6
  443. ADD RA
  444. SHN 6
  445. ADD IR+4 ABSOLUTE ADDRESS
  446. UJN CAFX RETURN
  447. CEF SPACE 4,10
  448. ** CEF - CHECK FOR ERROR FLAG.
  449. *
  450. * EXIT (A) = ERROR FLAG, IF ONE EXISTS.
  451. * (CM+2) = 1, IF USER BREAK ERROR FLAG AND JOB HAS
  452. * EXTENDED REPRIEVE SELECTED.
  453. * 0, OTHERWISE.
  454. *
  455. * USES CM - CM+4, T0.
  456.  
  457.  
  458. CEF2 LDD T0 RETURN ERROR FLAG
  459.  
  460. CEF SUBR ENTRY/EXIT
  461. LDD CP
  462. ADK STSW CHECK FOR ERROR FLAG
  463. CRD CM
  464. LDN 0
  465. STD CM+2
  466. LDD CM+1
  467. ZJN CEFX IF NO ERROR FLAG PRESENT
  468. STD T0
  469. LMK TIET
  470. ZJN CEF1 IF USER BREAK ONE
  471. LMK TAET&TIET
  472. NJN CEF2 IF NOT A USER BREAK TWO
  473. CEF1 LDD CP
  474. ADK EECW CHECK FOR EXTENDED REPRIEVE
  475. CRD CM
  476. LDD CM
  477. SHN 0-12
  478. LPN 1
  479. STD CM+2
  480. UJN CEF2 RETURN
  481. CFN SPACE 4,10
  482. ** CFN - COMPLETE FUNCTION.
  483. *
  484. * ENTRY (IR+3 - IR+4) = FET ADDRESS NEEDING COMPLETION.
  485. * (BS - BS+4) = FET BUFFER STATUS.
  486. *
  487. * EXIT FET SET TO COMPLETION STATUS.
  488. * CONTROL POINT AREA FET POINTER REMOVED FROM
  489. * *TINW* OR *TIOW*.
  490. *
  491. * USES CM - CM+4.
  492. *
  493. * CALLS VAD.
  494. *
  495. * MACROS MONITOR.
  496.  
  497.  
  498. CFN SUBR ENTRY/EXIT
  499. LDD FC
  500. LMK /CIO/RDF
  501. NJN CFN1 IF NOT A READ FUNCTION
  502. LDN TINW TERMINAL INPUT POINTER
  503. STM CFNC+1 *UADM* REPLACEMENT FIELD
  504. LDN 18D FIELD POSITION
  505. SHN 6
  506. RAM CFNC+2
  507.  
  508. * UPDATE CONTROL POINT AREA *TIOW* OR *TINW*.
  509.  
  510. CFN1 LDN ZERL PRESET *UADM* REQUEST WORD
  511. CRD CM
  512. LDD MA
  513. CWM CFNC,ON WRITE REQUEST
  514. LDN 1 ONE *UADM* REQUEST WITH NO DROP OF PP
  515. STD CM+1
  516. STD CM+2
  517. MONITOR UADM UPDATE CONTROL POINT AREA
  518.  
  519. * SET FET COMPLETION STATUS.
  520.  
  521. LDD BS+4
  522. SCN 1
  523. LMN 1
  524. STD BS+4
  525.  
  526. * REVALIDATE FET+0 ADDRESS.
  527.  
  528. LDD IR+3 FET ADDRESS
  529. LPN 37
  530. SHN 14
  531. LMD IR+4
  532. RJM VAD VALIDATE FET+0 PRIOR TO WRITE
  533. ZJN CFN2 IF ADDRESS NOT WITHIN FL
  534. CFNB CWD BS REWRITE FET+0
  535. * PSN INHIBIT WRITE OF FET+0 (*ERX*)
  536. CFN2 UJP CFNX RETURN
  537.  
  538.  
  539. CFNC VFD 12/CSFS,12/TIOW,6/0,6/18D,24/**
  540. CHG SPACE 4,10
  541. ** CHG - CONDITIONALLY HANG PP.
  542. *
  543. * ENTRY (A) = ERROR FLAG.
  544. *
  545. * EXIT (A) = ZERO.
  546. *
  547. * USES CM - CM+4.
  548. *
  549. * MACROS MONITOR.
  550.  
  551.  
  552. CHG SUBR ENTRY/EXIT
  553. STD CM+2 SET ERROR FLAG
  554. LDM CHG GET ADDRESS WHERE ERROR DETECTED
  555. STD CM+1
  556. MONITOR CHGM CONDITIONALLY HANG PP
  557. UJN CHGX RETURN
  558. CID SPACE 4,10
  559. ** CID - COPY INPUT DATA.
  560. *
  561. * ENTRY (IR+3 - IR+4) = INPUT FET ADDRESS.
  562. * (BS - BS+4) = BUFFER STATUS.
  563. * (PP) = INPUT AHEAD POT CHAIN POINTER.
  564. * (TN) = TERMINAL CONNECTION NUMBER.
  565. *
  566. * EXIT INPUT AHEAD TRANSFERED TO FET.
  567. * INPUT AHEAD POT CHAIN RELEASED.
  568. *
  569. * USES BS+3 - BS+4, CM - CM+4, T1 - T4, PP, WC.
  570. *
  571. * CALLS CFN, CIB, MRJ, RRR, SPA, SRR, UPP, WBB.
  572. *
  573. * MACROS CFET, MONITOR.
  574.  
  575.  
  576. CID SUBR ENTRY/EXIT
  577. LDK ZERL RESET *TSEM* REQUEST
  578. CRM WDPO,ON
  579. LDD PP BEGINNING POT CHAIN POINTER
  580. STD T2 POT CHAIN TRAILER
  581. STM WDPO+3 SET TO DROP ENTIRE POT CHAIN
  582. LDD TN
  583. STM WDPO+4
  584. LDN /REM/VCPC TRANSFER CM WORD COUNT
  585. STD WC
  586. LDN 0 SET CM TRANSFER TALLY
  587. STD T3
  588.  
  589. * EOR/EOF STATUS DEPENDS ON BUFFER CONTENT.
  590.  
  591. CID1 RJM SRR SET R-REGISTER TO IAF RA
  592. RJM UPP UPDATE INPUT AHEAD POT POINTER
  593. STM CIDB
  594.  
  595. * SCAN THIS POSSIBLE LAST POT MEMORY FOR EOL BYTE.
  596.  
  597. LDD T2 RESTORE PREVIOUS POT POINTER
  598. STD PP
  599. RJM SPA SET POT MEMORY ADDRESS
  600. CRM BUFF,WC
  601. RJM RRR RESTORE R-REGISTER
  602. LDN 0
  603. STD WC
  604. STD T4
  605. CID2 LDM BUFF+4,T4
  606. ZJN CID3 IF EOL BYTE ENCOUNTERED
  607. LDD T4 SCAN NEXT CM WORD
  608. ADN 5
  609. STD T4
  610. AOD WC ACCEPT NEXT CM WORD
  611. SBN /REM/VCPC+1
  612. MJN CID2 IF NOT FULL POT MEMORY SCAN
  613. SOD WC
  614. UJN CID5 TRANSFER THIS FULL POT MEMORY
  615.  
  616. * ASSURE EOF CONDITION DETECTION.
  617.  
  618. CID3 LDD WC LAST POT MEMORY CM WORD COUNT
  619. NJN CID4 IF AT LEAST TWO CM WORDS
  620. LDD T3 CHECK EOF CONDITION
  621. ADM BUFF
  622. ADM BUFF+1
  623. ADM BUFF+2
  624. ADM BUFF+3
  625. ZJP CID8 IF EOF CONDITION
  626. CID4 AOD WC
  627. AOM CIDA LAST POT MEMORY WRITTEN
  628.  
  629. * ENTER WRITE LOOP TO TRANSFER TO INPUT FET BUFFER.
  630.  
  631. CID5 LDD T2 PREVIOUS POT CHAIN POINTER
  632. STD PP
  633. RJM CIB CHECK INPUT BUFFER THRESHOLD
  634. SBD WC
  635. PJN CID6 IF ROOM FOR COMPLETE TRANSFER
  636. ADD WC BIAS CM WORD TRANSFER COUNT
  637. ZJN CID7 IF BUFFER THRESHOLD
  638. STD WC TRANSFER MAXIMUM
  639. CID6 LDD WC
  640. STD T1 TRANSFER WORD COUNT FOR *WBB*
  641. RAD T3 COMPLETE TRANSFER TALLY
  642. LDC BUFF BEGINNING READ ADDRESS
  643. RJM WBB WRITE BINARY BUFFER
  644. LDN 0
  645. CIDA EQU *-1
  646. NJN CID7 IF LAST POT MEMORY WRITTEN
  647. LDC ** UPDATE POT MEMORY POINTER
  648. CIDB EQU *-1
  649. STD T2
  650. STD PP
  651. NJP CID1 IF NOT EOR/EOF
  652.  
  653. * FORCE EOR/EOF ON INPUT FET.
  654.  
  655. LDN 0
  656. STD T3
  657.  
  658. * COMPLETE READ OPERATIONS.
  659.  
  660. CID7 LDN ZERL RESET ENDING *IN* POINTER
  661. CRD CM
  662. LDD IN
  663. STD CM+3
  664. LDD IN+1
  665. STD CM+4
  666. CFET 2 *IN* POINTER OFFSET
  667. CWD CM REWRITE *IN* POINTER
  668.  
  669. * COMPLETE EOR/EOF BUFFER STATUS.
  670.  
  671. LDD BS+3 RESET APPROPRIATE EOR/EOF LEVEL
  672. SCN 74
  673. STD BS+3
  674. LDD T3 TRANSFER TALLY
  675. ZJN CID8 IF EOF
  676. LDN 4 INPUT LEVEL STATUS IS EOR
  677. RAD BS+3
  678. LDN 20 SET EOR
  679. STM CIDC
  680. CID8 LDD BS+4 RESET BUFFER STATUS
  681. LPC 6002
  682. LMC 30 (SET EOF TERMINATION)
  683. * LMC 20 (SET EOR TERMINATION)
  684. CIDC EQU *-1
  685. STD BS+4
  686.  
  687. * *TINW* MUST BE CLEARED BEFORE ISSUING THE *VDPO* *TSEM*
  688. * REQUEST, BECAUSE IF THE *VDPO* IS REJECTED AND THE JOB ROLLS,
  689. * IAF WOULD MISTAKENLY THINK THE JOB WAS REQUESTING INPUT.
  690.  
  691. RJM CFN COMPLETE INPUT OPERATION
  692.  
  693. * RELEASE INPUT AHEAD POT CHAIN.
  694.  
  695. LDC /REM/VDPO
  696. STM WDPO
  697. LDD MA
  698. CWM WDPO,ON
  699. LDK ZERL
  700. CRD CM
  701. MONITOR TSEM DROP POTS
  702. LDK TPOR CHECK FOR POSSIBLE *TSEM* REJECT
  703. RJM MRJ
  704. LJM CIDX RETURN
  705. CJA SPACE 4,10
  706. ** CJA - CHECK USER JOB ACTIVITY.
  707. *
  708. * EXIT (A) = *STSW* CPU STATUS.
  709. *
  710. * USES CM - CM+4.
  711.  
  712.  
  713. CJA SUBR ENTRY/EXIT
  714. LDD CP CONTROL POINT ADDRESS
  715. ADN STSW STATUS CONTROL WORD
  716. CRD CM
  717. LDD CM
  718. SHN -11 CP STATUS ONLY
  719. UJN CJAX RETURN
  720. COD SPACE 4,10
  721. ** COD - COPY OUTPUT DATA.
  722. *
  723. * ENTRY (IR+3 - IR+4) = OUTPUT FET ADDRESS.
  724. * (CD+2) = ACCEPTABLE CM WORD TRANSFER COUNT.
  725. * (PP) = DIRECT OUTPUT POT MEMORY CHAIN POINTER.
  726. *
  727. * EXIT DIRECT OUTPUT ASSIGNED TO OUTPUT POT MEMORY CHAIN.
  728. * (WC) = LAST POT MEMORY WORD COUNT.
  729. *
  730. * USES CD+2, PP, WC, CN - CN+4, T2 - T3.
  731. *
  732. * CALLS COB, RBB, RRR, SPA, SRR, UPP.
  733.  
  734.  
  735. COD SUBR ENTRY/EXIT
  736.  
  737. * DUE TO IAF INTERNAL OUTPUT QUEUING, IT IS NECESSARY TO
  738. * BYPASS THE FIRST TWO POT MEMORY CM WORDS IN EVERY POT
  739. * MEMORY CHAIN ALLOCATED FOR OUTPUT TO ALLOW FOR IAF
  740. * INTERNAL QUEUE LINKAGE CONTROL.
  741.  
  742. LDN /REM/VCPC-2 IAF POT MEMORY LENGTH-2
  743. STD WC INITIAL CM WORD TRANSFER
  744.  
  745. * TRANSFER DIRECT OUTPUT.
  746.  
  747. COD1 LDD CD+2 CHECK ACCEPTABLE CM TRANSFER COUNT
  748. SBN /REM/VCPC-2
  749. CODA EQU *-1
  750. PJN COD2 IF AT LEAST ONE POT MEMORY TO TRANSFER
  751. ADN /REM/VCPC-2 BIAS FOR MAXIMUM TRANSFER
  752. CODB EQU *-1
  753. STD WC
  754. COD2 LDD WC SET BUFFER TRANSFER COUNT *RBB*
  755. STD T3
  756. LDC BUFF BEGINNING WRITE BUFFER ADDRESS *RBB*
  757. RJM RBB READ BINARY BUFFER
  758. RJM SRR SET R-REGISTER TO IAF RA
  759. RJM SPA SET POT MEMORY ADDRESS FOR THIS TRANSFER
  760. ADN 2 ALLOW FOR LINKAGE FIRST POT ONLY
  761. * PSN IF FIRST POT MEMORY PASSED
  762. CODC EQU *-1
  763. CWM BUFF,WC TRANSFER OUTPUT
  764. RJM RRR RESTORE R-REGISTER
  765. LDD PP UPDATE LAST POT MEMORY WRITTEN
  766. STM WADO+2
  767. AOM WADO+1 INCREMENT POT COUNT
  768.  
  769. * UPDATE ACCEPTABLE TRANSFER COUNT.
  770.  
  771. LDD CD+2 ACCEPTABLE CM WORD TRANSFER COUNT
  772. SBD WC CURRENT TRANSFER
  773. STD CD+2
  774. LDN 0 INHIBIT SUCCESSIVE POT MEMORY OFFSET
  775. CODD EQU *-1
  776. NJN COD3 IF FIRST POT MEMORY PASSED
  777. LDN 2
  778. RAM CODA
  779. LDN 2
  780. RAM CODB
  781. LDN PSNI
  782. STM CODC
  783. AOM CODD
  784. AOD WC NEGATE LINKAGE CONTROL OFFSET COUNT
  785. AOD WC
  786.  
  787. * CONTINUE UNTIL NETWORK REQUIREMENT OR FLUSH COMPLETION.
  788.  
  789. COD3 LDD CD+2 REMAINING ACCEPTABLE CM WORD COUNT
  790. ZJN COD4 IF NETWORK REQUIREMENT MADE
  791. RJM SRR SET R-REGISTER TO IAF RA
  792. RJM UPP UPDATE POT MEMORY
  793. RJM RRR RESTORE R-REGISTER
  794. LDD PP
  795. NJP COD1 IF POT MEMORY AVAILABLE
  796.  
  797. * NETWORK REQUIREMENT MADE OR POT MEMORY EXHAUSTION.
  798.  
  799. COD4 LDN ZERL COMPLETE TRANSFER PROCESS
  800. CRD CN
  801. LDN 2R"IB" *0014* BYTE
  802. STD CN END OF TRANSFER PRESET
  803. LDD WC ALLOW FOR POSSIBLE TERMINATOR
  804. SBN /REM/VCPC
  805. ZJN COD5 IF COMPLETE POT MEMORY WRITTEN
  806. RJM SRR SET R-REGISTER TO IAF RA
  807. RJM SPA SET POT MEMORY ADDRESS
  808. ADD WC LAST POT WORD COUNT
  809. CWD CN WRITE TRANSFER TERMINATOR
  810. RJM RRR RESTORE R-REGISTER
  811.  
  812. * PRESET OUTPUT COMPLETION.
  813.  
  814. COD5 LDK ZERL
  815. CRD CN
  816. RJM COB CHECK FOR REMAINING OUTPUT
  817. NJN COD6 IF BUFFER IS NOT EMPTY
  818. LDM ANRA
  819. ZJN COD7 IF NOT EOR OR EOF
  820. LDN 2
  821. STD CN+4
  822. UJN COD7 PLACE FLAG IN WORD TWO OF THE POT HEADER
  823.  
  824. COD6 LDC 0 CHECK NO RECALL FLAG
  825. * LDC WC (IF NO RECALL - ONE WORD LEFT IN BUFFER)
  826. CODE EQU *-1 SET BY *ANR*
  827. NJN COD7 IF NO RECALL REQUIRED
  828. AOM PTOB ADDITIONAL OUTPUT REMAINS
  829. COD7 LDM WADO+3 GET ADDRESS OF FIRST POT
  830. STD PP
  831. RJM SRR SET R-REGISTER TO IAF RA
  832. RJM SPA
  833. ADN 1
  834. CWD CN
  835. RJM RRR RESTORE R-REGISTER
  836. LJM CODX RETURN
  837. CTI SPACE 4,15
  838. ** CTI - CHECK FOR TERMINAL INPUT.
  839. *
  840. * ENTRY (TT - TT+1) = TERMINAL TABLE ADDRESS.
  841. * (TN) = TERMINAL CONNECTION NUMBER.
  842. *
  843. * EXIT (IR+3 - IR+4) = INPUT FET ADDRESS.
  844. * (A) = TYPEAHEAD QUEUE POINTER.
  845. * (A) = ZERO IF NO INPUT AHEAD.
  846. *
  847. * USES CM - CM+4, IR - IR+4.
  848. *
  849. * CALLS GMX, RRR, SRR.
  850.  
  851.  
  852. CTI SUBR ENTRY/EXIT
  853. LDD IA REREAD ORIGINAL INPUT REGISTER
  854. CRD IR
  855. LDD IR+3
  856. LPN 37
  857. ADD IR+4
  858. ZJN CTIX IF NO INPUT FET
  859.  
  860. * CHECK FOR INPUT AHEAD QUEUE PREPROCESSED.
  861.  
  862. RJM SRR SET R-REGISTER TO IAF RA
  863. LDD TT
  864. SHN 14
  865. LMD TT+1
  866. ADN /REM/VROT *VADI* REQUEST WORD
  867. CRD CM
  868. RJM RRR RESTORE R-REGISTER
  869. LDD CM+1
  870. ZJN CTI1 IF QUEUE NOT PREPROCESSED
  871. STM PTIA INHIBIT UNECESSARY *VADI* FUNCTION
  872. UJP CTIX RETURN
  873.  
  874. * READ TERMINAL INPUT TYPEAHEAD QUEUE FROM IAF.
  875.  
  876. CTI1 RJM GMX MULTIPLEXOR TERMINALS REQUIRE PREPROCESS
  877. ZJP CTIX IF MULTIPLEXOR TERMINAL
  878. RJM SRR SET R-REGISTER TO IAF RA
  879. LDD TA IAF REFERENCE ADDRESS
  880. SHN 6
  881. ADN /REM/VMST TERMINAL STATUS MESSAGE WORD
  882. CRD CM
  883. LDD CM+1
  884. SHN 6
  885. ADD TA
  886. SHN 6
  887. ADD CM+2
  888. ADD TN
  889. CRD CM READ TERMINAL MESSAGE WORD
  890. RJM RRR RESTORE R-REGISTER
  891. LDD CM+4 INPUT TYPEAHEAD QUEUE POINTER
  892. UJP CTIX RETURN
  893. CTO SPACE 4,15
  894. ** CTO - CHECK FOR TERMINAL OUTPUT.
  895. *
  896. * ENTRY (TT - TT+1) = TERMINAL TABLE ADDRESS.
  897. *
  898. * EXIT (IR+3 - IR+4) = OUTPUT FET ADDRESS.
  899. * (CD+3 - CD+4) = MAXIMUM OUTPUT BUFFER CONTENT.
  900. * (A) = NONZERO IF TERMINAL OUTPUT.
  901. *
  902. * USES IR+3, IR+4, CM - CM+4, CD - CD+4.
  903. *
  904. * CALLS COB, RRR, SLF, SRR, STA, VFP.
  905.  
  906.  
  907. CTO SUBR ENTRY/EXIT
  908. LDN ZERL
  909. CRD CD
  910.  
  911. * *TIOW* IS OUTPUT FET ADDRESS.
  912.  
  913. LDD CP READ TERMINAL OUTPUT POINTER
  914. ADN TIOW
  915. CRD CM
  916. LDD CM+3
  917. LPN 37
  918. SHN 14
  919. LMD CM+4
  920. ZJN CTO1 IF NO OUTPUT POINTER
  921. STD IR+4
  922. SHN -14
  923. STD IR+3
  924. UJN CTO2 CHECK OUTPUT BUFFER CONTENT
  925.  
  926. CTO1 RJM SLF SEARCH LIST OF FILES
  927. ZJN CTO3 IF NO *LOFW* OR RA+2 LIST ENTRIES
  928.  
  929. * RETURN OUTPUT BUFFER COUNT.
  930.  
  931. CTO2 RJM VFP VERIFY FET PARAMETERS
  932. RJM COB CHECK OUTPUT BUFFER CONTENT
  933. STD CD+4
  934. SHN -14
  935. STD CD+3
  936. ADD CD+4
  937. CTO3 STM CTOA SAVE EXIT CONDITION
  938. RJM SRR SET R-REGISTER TO IAF RA
  939. RJM STA RESTORE TERMINAL TABLE ADDRESS
  940. RJM RRR RESTORE R-REGISTER
  941. LDM CTOA
  942. UJP CTOX RETURN
  943.  
  944. CTOA CON 0 EXIT CONDITION
  945. DFS SPACE 4,10
  946. ** DFS - DETERMINE FLUSH STATUS.
  947. *
  948. * THE REQUIREMENTS FOR A FILE TO BE FLUSHED ARE-
  949. * - FET MUST BE WITHIN FL.
  950. * - BUFFER MUST HAVE DATA IN IT.
  951. * - FET MUST NOT BE BUSY.
  952. * - CODE IN FET MUST BE A VALID *CIO* REQUEST.
  953. * - FILE MUST BE *OUTPUT* AND UNASSIGNED OR IT MUST BE
  954. * ASSIGNED TO TERMINAL EQUIPMENT.
  955. *
  956. * NOTE- ROUTINES *1RO*, *1AJ* AND *1MI* OBSERVE THE ABOVE
  957. * CONVENTIONS.
  958. *
  959. * ENTRY (T8 - T9) = FET ADDRESS.
  960. *
  961. * EXIT (A) = ZERO, IF ENTRY NOT A FLUSH CANDIDATE.
  962. * (CN - CN+4) = FIRST WORD OF FET.
  963. *
  964. * USES T1 - T7, CM - CM+4, CN - CN+4.
  965. *
  966. * CALLS VAD.
  967.  
  968.  
  969. DFS7 LDN 0 NOT A FLUSH CANDIDATE STATUS
  970.  
  971. DFS SUBR ENTRY/EXIT
  972. LDD T8 READ FET PARAMETERS
  973. LPN 37
  974. SHN 14
  975. LMD T9
  976. ADN 3
  977. RJM VAD
  978. ZJN DFSX IF FET OUTSIDE FL
  979. CRD T3 READ OUT
  980. SBN 1
  981. CRD T1 READ IN
  982. SBN 2
  983. CRD CN READ FET+0
  984. LDD CN+4
  985. LPN 1
  986. ZJN DFSX IF FET BUSY
  987. LDD T6
  988. SBD T4
  989. SHN 14
  990. ADD T7
  991. SBD T5
  992. ZJN DFSX IF BUFFER EMPTY
  993. LDN DFSAL CHECK ACCEPTABLE *CIO* CALLS
  994. STD T1
  995. LDD CN+3
  996. LPN 77
  997. NJP DFS7 IF FET ERRORS
  998.  
  999. * SCAN ACCEPTABLE *CIO* CODES.
  1000.  
  1001. DFS1 SOD T1
  1002. MJP DFS7 IF FET CODE NOT IN LIST
  1003. LDM DFSA,T1
  1004. LMD CN+4
  1005. SCN 2 IGNORE BINARY BIT
  1006. NJP DFS1 IF NOT VALID FET CODE
  1007. LDD NF SET NFL SIZE + 1
  1008. SHN 6
  1009. ADN 1
  1010. STD T7
  1011.  
  1012. * SEARCH FNT ENTRIES FOR ASSIGNED FILE.
  1013.  
  1014. LDC FNTN+LENF
  1015. STD T6
  1016. DFS2 NFA T6,R READ FNT ENTRY
  1017. CRD CM
  1018. LDD CM COMPARE FILE NAMES
  1019. ZJN DFS3 IF NO ENTRY
  1020. LMD CN
  1021. NJN DFS3 IF NO MATCH
  1022. LDD CM+1
  1023. LMD CN+1
  1024. NJN DFS3 IF NO MATCH
  1025. LDD CM+2
  1026. LMD CN+2
  1027. NJN DFS3 IF NO MATCH
  1028. LDD CM+3
  1029. LMD CN+3
  1030. SCN 77
  1031. ZJN DFS5 IF MATCH
  1032. DFS3 LDN LENF INCREMENT TO NEXT ENTRY
  1033. RAD T6
  1034. SBD T7
  1035. MJN DFS2 IF NOT END OF FNT
  1036. LDD CN CHECK FOR *OUTPUT*
  1037. LMC 2ROU
  1038. NJN DFS4 IF NOT *OUTPUT*
  1039. LDD CN+1
  1040. LMC 2RTP
  1041. NJN DFS4 IF NOT *OUTPUT*
  1042. LDD CN+2
  1043. LMC 2RUT
  1044. NJN DFS4 IF NOT *OUTPUT*
  1045. LDD CN+3
  1046. SCN 77
  1047. ZJN DFS6 IF *OUTPUT*
  1048. DFS4 UJP DFS7 FILE IS NOT A FLUSH CANDIDATE
  1049.  
  1050. * EQUIPMENT ASSIGNMENT MUST BE *TTEQ*.
  1051.  
  1052. DFS5 NFA T6,R CHECK EQUIPMENT ASSIGNMENT
  1053. ADN FSTL
  1054. CRD CM
  1055. LDD CM
  1056. LPC 777
  1057. LMN TTEQ
  1058. NJN DFS4 IF NOT ASSIGNED TO *TT*
  1059. DFS6 LDN 1 INDICATE OUTPUT AVAILABLE
  1060. UJP DFSX RETURN
  1061. HST SPACE 4,10
  1062. ** DFSA - TABLE OF CIO CODES TO FLUSH ON.
  1063. *
  1064. * ENTRY ONE WORD.
  1065. *
  1066. *T 12/*CIO* FUNCTION CODE.
  1067.  
  1068.  
  1069. DFSA BSS 0
  1070. LOC 0
  1071.  
  1072. CON 1 FET COMPLETE STATUS
  1073. CON 5 WRITE PRU
  1074. CON 15 BUFFERED WRITE
  1075. CON 25 WRITE EOR
  1076. CON 35 WRITE EOF
  1077. CON 105 WRITE NO REWIND
  1078. CON 121 OPEN ALTER
  1079. CON 145 OPEN WRITE REWIND
  1080. CON 161 OPEN ALTER REWIND
  1081.  
  1082. LOC *O
  1083.  
  1084. DFSAL EQU *-DFSA *DFSA* TABLE LENGTH
  1085. ERR SPACE 4,10
  1086. ** ERR - PROCESS ERROR.
  1087. *
  1088. * ENTRY (A) = ERROR CODE - *COMSCIO*.
  1089. *
  1090. * EXIT TO *ERX* TO PROCESS ERROR RESPONSE.
  1091. * (ERRA) = ERROR CODE ON ENTRY.
  1092. *
  1093. * USES CM - CM+4.
  1094. *
  1095. * CALLS CFN, ERX.
  1096.  
  1097.  
  1098. ERR BSS 0 ENTRY
  1099. STM ERRA SAVE ERROR CODE
  1100. RJM ERX PROCESS *1MI* ERROR
  1101. RJM CFN COMPLETE FUNCTION
  1102. LJM DPP DROP PP
  1103.  
  1104. ERRA CON 0 *1MI* ERROR CODE
  1105. ERS SPACE 4,10
  1106. ** ERS - ENTER RECALL STACK.
  1107. *
  1108. * ENTRY (A) = RECALL REASON CODE.
  1109. * ALL OTHER PARAMETERS PRESET IN RCPW - RCPW+4.
  1110. *
  1111. * EXIT TO *PPR*.
  1112. *
  1113. * USES CM - CM+4.
  1114. *
  1115. * MACROS MONITOR.
  1116.  
  1117.  
  1118. ERS BSS 0 ENTRY
  1119. SHN 6
  1120. RAM RCPW+1 SAVE RECALL REASON CODE
  1121. LDK ZERL
  1122. CRD CM
  1123. LDC RECMS1 DEFAULT TIME PERIOD FOR RECALL
  1124. * LDC RECMS2 MONITOR FUNCTION REJECT RECALL TIME PERIOD
  1125. ERSA EQU *-1
  1126. SHN 0 BIAS RECALL PERIOD REJECTION COUNT TIMES
  1127. ERSE EQU *-1
  1128. STD CM+4
  1129. LDD IA STORE INPUT REGISTER
  1130. CRD IR
  1131. LDD MA
  1132. CWM IR,ON REWRITE INPUT REGISTER TO MESSAGE BUFFER
  1133. CWM RCPW,ON STORE RECALL PARAMETERS
  1134. LDN PTMF TIMED RECALL CRITERIA
  1135. STD CM+1
  1136. MONITOR RECM RECALL PPU
  1137. LJM PPR EXIT TO *PPR*
  1138. ERX SPACE 4,10
  1139. ** ERX - ERROR EXIT PROCESSOR.
  1140. *
  1141. * ENTRY (IR+3 - IR+4) = INPUT OR OUTPUT FET ADDRESS.
  1142. * (BS - BS+4) = BUFFER STATUS.
  1143. * (ERRA) = *CIOERR* ERROR CODE INDEX.
  1144. * (FC) = *1MI* FUNCTION CODE.
  1145. *
  1146. * EXIT TO *DPP* IF INCORRECT ERROR CODE DETECTION.
  1147. * ERROR FLAG SET IN CONTROL POINT PER ERROR OPTION.
  1148. * DAYFILE ERROR MESSAGE RESPONSE ISSUED.
  1149. *
  1150. * USES T1, CM - CM+4, CN - CN+4.
  1151. *
  1152. * CALLS CHG, IDM, VAD.
  1153. *
  1154. * MACROS CFET, MONITOR.
  1155.  
  1156.  
  1157. ERX SUBR ENTRY/EXIT
  1158. LDC 22S9 FET ERROR STATUS = 22B
  1159. RAD BS+4
  1160. SHN -14
  1161. RAD BS+3
  1162. LDN ZERL
  1163. CRD CM
  1164. LDN 0 PRESET *TEPO* TABLE SEARCH
  1165. STD T1
  1166.  
  1167. * SEARCH *TEPO* TABLE FOR PROCESSING PARAMETERS.
  1168.  
  1169. ERX1 LDN TEPOL *TEPO* TABLE LENGTH
  1170. SBD T1
  1171. ZJN ERX2 IF TABLE LENGTH EXCEEDED
  1172. LDM TEPO,T1 PROCESSING PARAMETERS
  1173. SHN -1
  1174. LPN 37
  1175. SBM ERRA
  1176. ZJN ERX3 IF SELECTION FOUND
  1177. PJN ERX2 IF SELECTION PASSED
  1178. AOD T1 ADVANCE TABLE SEARCH
  1179. AOD T1
  1180. UJN ERX1 CONTINUE *TEPO* SCAN
  1181.  
  1182. * HANG *1MI* ON INCORRECT ERROR DETECTION.
  1183.  
  1184. ERX2 LDK PPET SET ERROR FLAG
  1185. RJM CHG CONDITIONALLY HANG PP
  1186. LJM DPP DROP PP
  1187.  
  1188. * ISSUE APPROPRIATE DAYFILE RESPONSE AND SET ERROR OPTIONS.
  1189.  
  1190. ERX3 LDM ERRA *CIOERR* ERROR CODE
  1191. LMK /CIOERR/ARG
  1192. NJN ERX4 IF NOT AN ARGUMENT ERROR
  1193. LDN PSNI INHIBIT WRITE OF FET+0
  1194. STM CFNB
  1195. ERX4 AOD T1 MESSAGE RESPONSE ADDRESS OFFSET
  1196. LDM TEPO,T1
  1197. STM IDMA
  1198. SOD T1
  1199. LDM TEPO,T1 READ ERROR PROCESSING OPTIONS
  1200. SHN -6
  1201. ZJN ERX5 IF NO ERROR FLAG OPTION
  1202.  
  1203. * SET CONTROL POINT ERROR FLAG.
  1204.  
  1205. STD CM+1
  1206. MONITOR CEFM SET CONTROL POINT ERROR FLAG
  1207.  
  1208. * SET FET DUMP OPTIONS.
  1209.  
  1210. ERX5 LDM TEPO,T1
  1211. LPN 1
  1212. ZJN ERX6 IF NO FET DUMP OPTION
  1213. LDD CP
  1214. ADC PPDW PPU DUMP CONTROL WORD
  1215. STD T1
  1216. CRD CM
  1217. CFET 1 GET CURRENT FET LENGTH AND VALIDATE
  1218. CRD CN
  1219. LDD CN+3
  1220. SHN -6
  1221. ADN 5 INITIAL FET LENGTH
  1222. STD CN+3
  1223. LDD IR+3
  1224. SHN 14
  1225. LMD IR+4
  1226. ADD CN+3 CURRENT FET LENGTH
  1227. RJM VAD VALIDATE FET DUMP LENGTH
  1228. ZJN ERX6 IF FET DUMP EXCEEDS FIELD LENGTH
  1229.  
  1230. * SET FET ADDRESS AND DUMP WORD COUNT TO *PPDW*.
  1231.  
  1232. LDD IR+3
  1233. LPN 77
  1234. SHN 14
  1235. LMD CN+3 WORD COUNT OF DUMP
  1236. SHN 6
  1237. STD CM+3
  1238. LDD IR+4
  1239. STD CM+4
  1240. LDD T1 REWRITE *PPDW*
  1241. CWD CM
  1242.  
  1243. * SET UP DAYFILE ERROR MESSAGE RESPONSE.
  1244.  
  1245. ERX6 RJM IDM ISSUE DAYFILE MESSAGE
  1246. UJP ERXX RETURN
  1247. HST SPACE 4,10
  1248. ** TEPO - TABLE OF ERROR PROCESSING OPTIONS AND DAYFILE
  1249. * ERROR MESSAGES.
  1250. *
  1251. * ENTRY TWO WORDS ASCENDING ORDER PER *ERR* ERROR
  1252. * CODE VALUE.
  1253. *
  1254. *T 6/EF, 5/ERR, 1/FETD
  1255. *T, 12/ADDR
  1256. *
  1257. * EF = CONTROL POINT ERROR FLAG OPTION.
  1258. * ERR = *CIOERR* ERROR CODE.
  1259. * FETD = SET IF FET DUMP DESIRED ON ERROR TERMINATION.
  1260. * ADDR = ADDRESS OF CORRESPONDING DAYFILE MESSAGE.
  1261.  
  1262.  
  1263. TEPO BSS 0
  1264. LOC 0
  1265.  
  1266. ARG MSG (FET ADDRESS OUT OF RANGE),PPET,0
  1267. BUF MSG (BUFFER ARGUMENT ERROR ON ),PPET,1
  1268. IRQ MSG (INCORRECT I/O REQUEST ON FILE ),PPET,1
  1269.  
  1270. LOC *O
  1271.  
  1272. TEPOL EQU *-TEPO
  1273. GMX SPACE 4,10
  1274. ** GMX - GET MULTIPLEXOR STATUS.
  1275. *
  1276. * ENTRY (TA) = INTERACTIVE REFERENCE ADDRESS.
  1277. * (TN) = TERMINAL CONNECTION NUMBER.
  1278. *
  1279. * EXIT (A) = ZERO IF MULTIPLEXOR TERMINAL TYPE.
  1280. *
  1281. * USES CM - CM+4.
  1282. *
  1283. * CALLS RRR, SRR.
  1284.  
  1285.  
  1286. GMX0 LDN 0 MULTIPLEXOR TERMINAL TYPE
  1287.  
  1288. GMX SUBR ENTRY/EXIT
  1289. RJM SRR SET R-REGISTER TO IAF RA
  1290. LDD TA INTERACTIVE REFERENCE ADDRESS
  1291. SHN 6
  1292. ADN /REM/VNTP TERMINAL TABLE POINTER
  1293. CRD CM
  1294. RJM RRR RESTORE R-REGISTER
  1295. LDD CM+2
  1296. ZJN GMXX IF NO NETWORK TERMINALS DEFINED
  1297. SBN 1 (A) = HIGHEST MUX TERMINAL NUMBER
  1298. SBD TN
  1299. PJN GMX0 IF A MUX TERMINAL
  1300. UJN GMXX RETURN
  1301. IDM SPACE 4,10
  1302. ** IDM - SET UP AND ISSUE DAYFILE MESSAGE.
  1303. *
  1304. * ENTRY (BS - BS+4) = BUFFER STATUS.
  1305. * (IDMA) = DAYFILE MESSAGE ADDRESS.
  1306. *
  1307. * EXIT DAYFILE MESSAGE ISSUED.
  1308. *
  1309. * USES T1, CM.
  1310. *
  1311. * CALLS ACS, ANS, DFM.
  1312.  
  1313.  
  1314. IDM SUBR ENTRY/EXIT
  1315. LDC BUFF SET BUFFER ADDRESS FOR *ACS*, *ANS*
  1316. STD T1
  1317. LDC 1R *100
  1318. STI T1
  1319. LDC ** MOVE MESSAGE TO CHARACTER BUFFER
  1320. IDMA EQU *-1 MESSAGE ADDRESS (*ERX*)
  1321. RJM ACS ASSEMBLE CHARACTER STRING
  1322. LDD BS+3
  1323. STD CM PRESERVE BUFFER STATUS
  1324. SCN 77
  1325. STD BS+3
  1326. LDN BS MOVE FILE NAME
  1327. RJM ACS ASSEMBLE NAME
  1328. LDD CM RESTORE BUFFER STATUS FIELD
  1329. STD BS+3
  1330. LDC =Z* AT * ADD * AT *
  1331. RJM ACS ASSEMBLE STRING
  1332. LDD IR+3 ADD FET ADDRESS
  1333. LPN 77
  1334. SHN 14
  1335. LMD IR+4
  1336. RJM ANS ASSEMBLE NUMERIC STRING
  1337. LDC =Z*.* ADD TERMINATOR
  1338. RJM ACS ASSEMBLE TERMINATOR
  1339.  
  1340. * ISSUE DAYFILE MESSAGE.
  1341.  
  1342. LDC BUFF MESSAGE BUFFER ADDRESS FOR *DFM*
  1343. RJM DFM ISSUE MESSAGE
  1344. UJP IDMX RETURN
  1345. ITA SPACE 4,15
  1346. ** ITA - INITIALIZE INTERACTIVE ACCESS.
  1347. *
  1348. * ENTRY SUBSYSTEM CONTROL TABLE TO BE SCANNED FOR
  1349. * IAF ACCESSIBILITY.
  1350. *
  1351. * EXIT (TA) = IAF REFERENCE ADDRESS.
  1352. * (A) = NONZERO IF IAF ACCESSIBLE.
  1353. *
  1354. * USES CM - CM+4, T1 - T5.
  1355. *
  1356. * CALLS PIR.
  1357.  
  1358.  
  1359. ITA0 LDN 0 IAF INACESSIBLE STATUS
  1360.  
  1361. ITA SUBR ENTRY/EXIT
  1362. LDC SSCP SUBSYSTEM TABLE POINTER
  1363. CRD CM
  1364. LDD CM+2 TABLE ADDRESS
  1365. LPN 37
  1366. SHN 14
  1367. LMD CM+3
  1368. CRD CM READ TABLE ENTRY
  1369. LDD CM IAF ENTRY
  1370. SHN 21-13 ACCESSIBILITY BIT
  1371. PJN ITA0 IF IAF INACCESSIBLE
  1372.  
  1373. * IF NO ERROR FLAGS, RETURN WITH IAF REFERENCE ADDRESS.
  1374.  
  1375. SHN 14
  1376. LPC 3777 MASK OFF ACCESSIBILITY BIT
  1377. SHN 7 BIAS CONTROL POINT ASSIGNMENT 200B
  1378. ADN STSW STATUS CONTROL WORD
  1379. CRD T1
  1380. ADN FLSW-STSW FIELD LENGTH CONTROL WORD
  1381. CRD CM
  1382. LDD T1+1 ERROR FLAG FIELD
  1383. NJN ITA0 IF IAF INACCESSIBLE
  1384. LDD CM+3
  1385. ZJN ITAX IF NO REFERENCE ADDRESS
  1386. RJM PIR PRESET WITH IAF R-REGISTER
  1387. UJN ITAX RETURN
  1388. MRJ SPACE 4,10
  1389. ** MRJ - CHECK FOR MONITOR FUNCTION REJECTION.
  1390. *
  1391. * *MRJ* CHECKS TO SEE IF A *TSEM* OR *TGPM* MONITOR FUNCTION
  1392. * WAS REJECTED. IF NOT, *MRJ* RETURNS TO THE CALLER. IF A
  1393. * FUNCTION WAS REJECTED, *MRJ* SAVES ALL NECESSARY RECALL
  1394. * INFORMATION AND THEN CAUSES *1MI* TO ENTER PP RECALL.
  1395. *
  1396. * ENTRY (A) = RECALL REASON CODE, IF FUNCTION REJECTED.
  1397. * (CM+1) = *CPUMTR* REPLY FROM MONITOR FUNCTION.
  1398. * (BS - BS+4) = CURRENT BUFFER STATUS.
  1399. *
  1400. * EXIT TO *ERS* IF FUNCTION WAS REJECTED.
  1401. *
  1402. * USES T0.
  1403. *
  1404. * CALLS ROJ.
  1405.  
  1406.  
  1407. MRJ SUBR ENTRY/EXIT
  1408. STM MRJA SAVE RECALL REASON CODE
  1409. LDD CM+1
  1410. ZJN MRJ1 IF IAF IS INACCESSIBLE
  1411. LMC 7777
  1412. ZJN MRJ2 IF THE MONITOR FUNCTION WAS REJECTED
  1413. UJN MRJX RETURN
  1414.  
  1415. * ROLLOUT WITH SUSPENSION IF IAF IS INACTIVE ONLY.
  1416.  
  1417. MRJ1 LDK ROSU SUSPEND ON JOB ROLLOUT
  1418. STD T0
  1419. RJM ROJ ROLLOUT USER JOB
  1420. LDK IAFF SET FUNCTION REJECTED BECAUSE IAF ABORTED
  1421. RAM RCPW+4
  1422.  
  1423. * RECALL PPU ON MONITOR REJECTION FOR 100 MILLISECONDS.
  1424.  
  1425. MRJ2 LDK RECMS2 100 MS RECALL PERIOD
  1426. STM ERSA
  1427. LDM RCRF+4 BIAS RECALL TIME PERIOD
  1428. LPN 7
  1429. RAM ERSE
  1430. LPN 7
  1431. RAM RCPW+4
  1432. LPN 7
  1433. SBN 4
  1434. PJN MRJ3 IF MAXIMUM TIME PERIOD REACHED
  1435. AOM RCPW+4 INCREMENT FUNCTION REJECT COUNT
  1436. MRJ3 LDM WIAF+3 FIRST POT
  1437. STM RCPW+3
  1438. LDM MRJA
  1439. LJM ERS ENTER PP RECALL
  1440.  
  1441. MRJA CON 0 RECALL REASON CODE
  1442. PTI SPACE 4,10
  1443. ** PTI - PROCESS TERMINAL INPUT.
  1444. *
  1445. * ENTRY (PTIA) = PREPROCESSED INPUT AHEAD QUEUE.
  1446. * (TN) = TERMINAL NUMBER.
  1447. *
  1448. * EXIT INPUT AHEAD TRANSFERED TO INPUT FET.
  1449. * (IR+3- IR+4) = INPUT FET ADDRESS.
  1450. * (TT - TT+1) = TERMINAL TABLE ADDRESS.
  1451. * (A) = NONZERO IF TRANSFER COMPLETE.
  1452. *
  1453. * USES CM - CM+4, IR - IR+4, PP, T2, T8 - T9.
  1454. *
  1455. * CALLS CID, ITA, MRJ, RRR, SRR, STA, VFP.
  1456. *
  1457. * MACROS DELAY, MONITOR, PAUSE.
  1458.  
  1459.  
  1460. PTI SUBR ENTRY/EXIT
  1461.  
  1462. * ASSURE INPUT FET ADDRESS FOLLOWING POSSIBLE OUTPUT FLUSH.
  1463.  
  1464. LDD IA REREAD ORIGINAL INPUT REGISTER
  1465. CRD IR
  1466. RJM VFP VERIFY FET PARAMETERS
  1467. RJM SRR SET R-REGISTER TO IAF RA
  1468. RJM STA SET TERMINAL TABLE ADDRESS
  1469. RJM RRR RESTORE R-REGISTER
  1470. LDC ** PREPROCESSED INPUT QUEUE POINTER (*CTI*)
  1471. PTIA EQU *-1
  1472. NJN PTI1 IF QUEUE PREPROCESSED
  1473.  
  1474. * FUNCTION IAF FOR DIRECT INPUT ASSIGNMENT.
  1475.  
  1476. PTI0 SOM PTIC DECREMENT *TSEM* REQUEST COUNT
  1477. LDK ZERL RESET *TSEM* REQUEST
  1478. CRD CM
  1479. CRM WADI,ON
  1480. LDC /REM/VADI
  1481. STM WADI
  1482. LDD TN TERMINAL NUMBER TO FUNCTION REQUEST
  1483. STM WADI+4
  1484. LDD MA
  1485. CWM WADI,ON
  1486. MONITOR TSEM
  1487. LDK TALR PRESET POSSIBLE VADI REJECTION
  1488. RJM MRJ
  1489.  
  1490. * STATUS PREVIOUS *VADI* REQUEST.
  1491.  
  1492. PTI1 LDD RA SAVE REFERENCE ADDRESS
  1493. STD T9
  1494.  
  1495. * DELAY THE INPUT PROCESS TO ALLOW *VADI* COMPLETION.
  1496.  
  1497. PTI2 RJM SRR SET R-REGISTER TO IAF RA
  1498. LDD TT *VADI* FUNCTION REQUEST RESPONSE
  1499. SHN 14
  1500. LMD TT+1
  1501. ADN /REM/VROT
  1502. CRD CM
  1503. RJM RRR RESTORE R-REGISTER
  1504. LDD CM+1
  1505. NJP PTI6 IF DIRECT INPUT ASSIGNED
  1506. LDD CM+3
  1507. LPC 6000
  1508. NJP PTI5 IF *TSEM* RESPONSE
  1509. * LDN 0 DEFINE DELAY TYPE
  1510. STM PTIB
  1511.  
  1512. * DELAY APPROXIMATLY 10 MILLISECONDS.
  1513.  
  1514. PTI2.1 LDN 77 DELAY CYCLE INCREMENT
  1515. STD T8
  1516. PTI3 SOD T8
  1517. NJN PTI3.1 IF DELAY CYCLE NOT EXHAUSTED
  1518. LDC 0 (TYPE OF DELAY)
  1519. PTIB EQU *-1
  1520. ZJP PTI2 IF *TSEM* NOT COMPLETE
  1521. LJM PTI0 REISSUE *TSEM*
  1522.  
  1523. PTI3.1 DELAY
  1524. PAUSE ALLOW STORAGE RELOCATION
  1525. LDD CM+1 ASSURE ERROR CONDITION THIS JOB
  1526. ZJN PTI4 IF NO ERROR FLAG AT THIS CP
  1527. LDN 0
  1528. UJP PTIX DISCONTINUE READ REQUEST
  1529.  
  1530. * ASSURE IAF ACCESSILILITY.
  1531.  
  1532. PTI4 RJM ITA GET IAF CURRENT STATUS
  1533. NJP PTI3 IF IAF STILL ACCESSIBLE
  1534. LDK ZERL
  1535. CRD CM
  1536. LDK TALR TREAT AS A *VADI* REJECTION
  1537. RJM MRJ THIS WILL ALWAYS EXIT VIA *ERS*
  1538.  
  1539. * *VADI* FUNCTION REJECTION IS POSSIBLE DUE TO LOW POT
  1540. * MEMORY WITHIN IAF, NO INPUT AHEAD IN IAF, THE IAF
  1541. * RECEIVE BUFFER BUSY, OR OVERFLOW OCCURRED. IF THE
  1542. * RECEIVE BUFFER IS BUSY BUT THERE IS TYPEAHEAD DATA
  1543. * IN IAF, DELAY AND REISSUE THE *VADI* *TSEM* REQUEST
  1544. * (A MAXIMUM OF EIGHT TIMES). IN THE THREE OTHER REJECT
  1545. * CASES, ROLL THE JOB.
  1546.  
  1547. PTI5 STD T2 SAVE REJECT TYPE
  1548. LMD CM+3
  1549. STD CM+3
  1550. AOM PTIB SET DELAY TYPE
  1551. RJM SRR SET R-REGISTER TO IAF RA
  1552. LDD TT TERMINAL TABLE ADDRESS
  1553. SHN 14
  1554. LMD TT+1
  1555. ADN /REM/VROT
  1556. CWD CM CLEAR REQUEST WORD
  1557. RJM RRR RESTORE R-REGISTER
  1558. LDD T2 CHECK REJECT TYPE
  1559. SHN 21-13
  1560. PJN PTI5.1 IF REJECT RESPONSE
  1561. LDM PTIC CHECK *TSEM* REQUEST COUNT
  1562. SHN 6
  1563. PJP PTI2.1 IF NOT AT LIMIT
  1564. PTI5.1 LDN 0 INCOMPLETION STATUS
  1565.  
  1566. UJP PTIX RETURN
  1567.  
  1568. * SATISFY READ FUNCTION REQUEST ON ACTIVE INPUT.
  1569.  
  1570. PTI6 STD PP SET INPUT AHEAD POT POINTER
  1571.  
  1572. * RESET INPUT FET POINTERS IF STORAGE RELOCATION OCCURRED.
  1573.  
  1574. LDD RA CURRENT REFERENCE ADDRESS
  1575. LMD T9 RA PRIOR TO POSSIBLE STORAGE RELOCATION
  1576. ZJN PTI7 IF NO STORAGE MOVEMENT OCCURRED
  1577. RJM VFP VERIFY FET PARAMETERS
  1578. RJM SRR SET R-REGISTER TO IAF RA
  1579. LDD TT REREAD *VROT*
  1580. SHN 14
  1581. LMD TT+1
  1582. ADN /REM/VROT
  1583. CRD CM
  1584. RJM RRR RESTORE R-REGISTER
  1585. PTI7 LDN 0 CLEAR POT POINTER
  1586. STD CM+1
  1587. LDD CM+4 CLEAR INPUT REQUESTED
  1588. SCN 10
  1589. STD CM+4
  1590. RJM SRR SET R-REGISTER TO IAF RA
  1591. LDD TT
  1592. SHN 14
  1593. LMD TT+1
  1594. ADN /REM/VROT
  1595. CWD CM REWRITE *VROT*
  1596. RJM RRR RESTORE R-REGISTER
  1597. RJM CID COPY INPUT DATA
  1598. LDN 1
  1599. LJM PTIX EXIT
  1600.  
  1601. PTIC CON 10 *TSEM* REQUEST LIMIT
  1602. PTO SPACE 4,20
  1603. ** PTO - PROCESS TERMINAL OUTPUT.
  1604. *
  1605. * ENTRY (IR+3 - IR+4) = OUTPUT FET ADDRESS.
  1606. * (CD+3 - CD+4) = MAXIMUM OUTPUT BUFFER CONTENT.
  1607. * (BS - BS+4) = OUTPUT BUFFER STATUS.
  1608. * (TN) = TERMINAL CONNECTION NUMBER.
  1609. *
  1610. * EXIT TERMINAL OUTPUT ASSIGNED.
  1611. * (A) .LT. 0, IF IAF OUTPUT THRESHOLD REACHED.
  1612. * (TT - TT+1) = TERMINAL TABLE ADDRESS.
  1613. * TO *ERS* IF NOT ALL OUTPUT FLUSHED.
  1614. * TO *DPP* IF FULL OUTPUT BUFFER AND NO EOL.
  1615. *
  1616. * USES CD, PP, CM - CM+4, CN - CN+4, T2 - T3.
  1617. *
  1618. * CALLS ANR, CHG, CIB, COD, GMX, MRJ, ROJ, RRR, SRR, STA.
  1619. *
  1620. * MACROS CFET, MONITOR.
  1621.  
  1622.  
  1623. PTO SUBR ENTRY/EXIT
  1624. RJM SRR SET R-REGISTER TO IAF RA
  1625. RJM STA SET TERMINAL TABLE ADDRESS
  1626. RJM RRR RESTORE R-REGISTER
  1627. LDD BS+4 BUFFER STATUS
  1628. LPN 20
  1629. NJN PTO1 IF AN EOR/EOF FUNCTION
  1630. RJM CIB CHECK BUFFER INPUT STATUS
  1631. NJN PTO2 IF NOT A FULL BUFFER
  1632.  
  1633. * IN THE EVENT NETWORK REQUIREMENTS ARE NOT MET FOR
  1634. * A BUFFERED WRITE ON A FULL BUFFER, IT IS NECESSARY
  1635. * TO ROLLOUT THE USER JOB TO ASSURE BUFFER FLUSH
  1636. * COMPLETION.
  1637.  
  1638. AOM PTOA SIGNAL FULL BUFFERED WRITE
  1639. UJN PTO2 ATTEMPT OUTPUT TRANSFER
  1640.  
  1641. * IGNORE NETWORK REQUIREMENTS ON EOR/EOF FUNCTION.
  1642.  
  1643. PTO1 AOM ANRA PASS NETWORK OUTPUT REQUIREMENTS
  1644.  
  1645. * SET NETWORK TERMINAL DOWNLINE BLOCK LIMIT.
  1646.  
  1647. PTO2 RJM GMX
  1648. ZJN PTO2.2 IF MUX
  1649. RJM SRR SET R-REGISTER TO IAF RA
  1650. LDD TA
  1651. SHN 6
  1652. ADN /REM/VMST
  1653. CRD CM READ TERMINAL MESSAGE BUFFER POINTER
  1654. LDD CM+1
  1655. SHN 6
  1656. ADD TA
  1657. SHN 6
  1658. ADD CM+2
  1659. ADD TN
  1660. CRD CM READ TERMINAL *VMST*
  1661. RJM RRR RESTORE R-REGISTER
  1662. LDD CM+1 CHECK TERMINAL CLASS
  1663. LPC 377
  1664. SBN 10+1
  1665. PJN PTO2.1 IF SYNCHRONOUS TERMINAL
  1666. AOM ANRB
  1667. PTO2.1 LDD CM+3
  1668. SHN -6
  1669. LPN 37
  1670. NJN PTO3 IF NETWORK BLOCKSIZE DEFINED
  1671.  
  1672. * HANG *1MI* ON INCORRECT NETWORK BLOCKSIZE.
  1673.  
  1674. * LDN 0 SET NO ERROR FLAG
  1675. RJM CHG CONDITIONALLY HANG PP
  1676. PTO2.2 LDN /REM/VOPL DEFAULT BLOCKSIZE
  1677.  
  1678. * REQUIREMENTS DEPEND ON BLOCKSIZE.
  1679.  
  1680. PTO3 SHN 3 CONVERT BLOCKSIZE TO CM WORD COUNT
  1681. STD CD
  1682. RJM ANR ASSURE TERMINAL REQUIREMENTS
  1683. MJP PTO6 IF REQUIREMENTS NOT ASSURED
  1684. RJM GMX
  1685. ZJP PTO6.1 IF MUX TERMINAL
  1686. LDN 0 CLEAR *TSEM* POT COUNT
  1687. STD T2
  1688. LDK /REM/VTRP *TSEM* QUEUE POINTER
  1689. STD T3
  1690. SOD T3
  1691. RJM SRR SET R-REGISTER TO IAF RA
  1692. PTO3.5 AOD T3 INCREMENT POINTER
  1693. SBK /REM/VTSP END OF QUEUE
  1694. PJN PTO4 IF END OF *TSEM* QUEUE
  1695. LDD TA IAF REFERENCE ADDRESS
  1696. SHN 6
  1697. ADD T3 ADD IN POINTER
  1698. CRD CM READ IN QUEUE ENTRY
  1699. LDD CM+4 CHECK TERMINAL NUMBER
  1700. LMD TN
  1701. NJN PTO3.5 IF NOT CURRENT TERMINAL
  1702. LDD CM CHECK TYPE OF *TSEM* REQUEST
  1703. SBK /REM/VADO
  1704. NJN PTO3.5 IF NOT *VADO* *TSEM* REQUEST
  1705. LDD CM+1 GET POT COUNT
  1706. RAD T2 ADD TO PREVIOUS POT COUNT
  1707. UJN PTO3.5 CONTINUE SEARCH
  1708. PTO4 RJM STA
  1709. ADN /REM/VSTT CHECK MESSAGES QUEUED IN IAF
  1710. CRD CM
  1711. RJM RRR RESTORE R-REGISTER
  1712. LDD CM+2
  1713. LPN 77
  1714. ADD T2 ADD *TSEM* QUEUE POT COUNT
  1715. STD CM+2
  1716. LDK /REM/VNCP COMPARE WITH MAXIMUM ALLOWED
  1717. SBD CM+2
  1718. MJP PTOX IF IAF OUTPUT THRESHOLD REACHED
  1719.  
  1720. * SET *TSEM* POT MEMORY REQUEST.
  1721.  
  1722. LDK ZERL PRESET *TGPM* SUBFUNCTION
  1723. CRD CM
  1724. CRM WADO,ON
  1725. LDD CD+2 CURRENT ACCEPTABLE TRANSFER
  1726. ADN /REM/VCPC-1+2 ROUND UP AND ALLOW FOR HEADER
  1727. SHN -3 CM WORD COUNT TO POT COUNT
  1728. STD CM+1 IAF POT COUNT REQUEST
  1729. MONITOR TGPM GET POT MEMORY
  1730. LDK TALR
  1731. RJM MRJ
  1732.  
  1733. * SET IAF *VADO* REQUEST FOR OUTPUT BUFFER FLUSH.
  1734.  
  1735. LDD CM+1 GET POT POINTER
  1736. STD PP CURRENT IAF POT MEMORY POINTER
  1737. STM WADO+3 FIRST POT IN ASSIGN OUTPUT *VADO*
  1738. STM WADO+2 LAST POT IN ASSIGN OUTPUT
  1739. LDC /REM/VADO PRESET ASSIGN DIRECT OUTPUT REQUEST
  1740. STM WADO
  1741. LDD TN
  1742. STM WADO+4 SET TERMINAL CONNECTION IN *VADO* REQUEST
  1743.  
  1744. * ASSIGN TERMINAL OUTPUT.
  1745.  
  1746. RJM COD COPY OUTPUT DATA
  1747. LDD MA MESSAGE BUFFER
  1748. CWM WADO,ON
  1749. LDK ZERL
  1750. CRD CM
  1751. MONITOR TSEM ASSIGN DIRECT OUTPUT *VADO*
  1752.  
  1753. * THE OUTPUT POINTER SHOULD NOT BE UPDATED UNTIL AFTER THE
  1754. * *VADO* *TSEM* REQUEST HAS BEEN HONORED. OTHERWISE, IF THE
  1755. * *VADO* WAS REJECTED AND THE JOB ROLLED, THEN *1RO* WOULD NOT
  1756. * BE ABLE TO FLUSH THAT OUTPUT WHICH *1MI* PUT INTO POTS.
  1757.  
  1758. LDK TDOR PRESET POSSIBLE *VADO* REJECTION
  1759. RJM MRJ
  1760. LDN ZERL REQUEST ACCEPTED, SO UPDATE OUTPUT POINTER
  1761. CRD CN
  1762. LDD OT
  1763. STD CN+3
  1764. LDD OT+1
  1765. STD CN+4
  1766. CFET 3
  1767. CWD CN
  1768. LDN 0
  1769. * LDN 1
  1770. PTOB EQU *-1
  1771. ZJN PTO7 IF ALL OUTPUT FLUSHED
  1772. LDC RECMS2
  1773. STM ERSA
  1774. PTO5 LDK TALR
  1775. LJM ERS ENTER RECALL STACK
  1776.  
  1777. * ROLLOUT JOB ON BUFFERED WRITE, FULL CONDITION NO *EOL*
  1778.  
  1779. PTO6 LDN 0 FULL BUFFERED WRITE CONDITION
  1780. * LDN 1
  1781. PTOA EQU *-1
  1782. ZJN PTO7 IF NOT FULL OUTPUT BUFFER AND NO *EOL*
  1783.  
  1784. * ALLOW ROUTINE *1RO* TO COMPLETE OUTPUT REQUEST.
  1785.  
  1786. PTO6.1 LDK ROSR
  1787. STD T0
  1788. RJM ROJ ROLLOUT USER JOB
  1789. UJN PTO5 ENTER RECALL
  1790.  
  1791. PTO7 LJM PTOX RETURN
  1792. RBS SPACE 4,10
  1793. ** RBS - REVERSE BUFFER SCAN.
  1794. *
  1795. * ENTRY (CD+1 - CD+2) = BEGINNING BUFFER SCAN CONTENT.
  1796. * (FT - FT+1) = BUFFER FIRST WORD ADDRESS.
  1797. * (LM - LM+1) = BUFFER LAST WORD ADDRESS.
  1798. * (T3 - T3+1) = RUNNING BUFFER *IN* POINTER.
  1799. *
  1800. * EXIT (CD+1 - CD+2) = ACCEPTABLE BUFFER CM WORD COUNT
  1801. * ENCOMPASSING COMPLETE LOGICAL LINES.
  1802. * (A) = LESS THAN ZERO IF NO *EOL* ENCOUNTERED.
  1803. *
  1804. * USES CM - CM+4.
  1805.  
  1806.  
  1807. * ENTER SEARCH LOOP FOR AN EXISTING *EOL* BYTE.
  1808.  
  1809. RBS2 LDD T3 BEGIN BUFFER SCAN
  1810. SHN 6
  1811. ADD RA
  1812. SHN 6
  1813. ADD T3+1
  1814. SBN 1 BACK OFF RUNNING *IN* POINTER
  1815. CRD CM READ BUFFER ENTRY
  1816. SHN 14
  1817. SBD RA
  1818. SHN 6
  1819. STD T3+1
  1820. SHN -14
  1821. STD T3
  1822. LDD CM+4
  1823. ZJN RBSX IF AN *EOL* BYTE ENCOUNTERED
  1824. LDD CD+1 DECREMENT ACCEPTABLE CM WORD TRANSFER
  1825. SHN 14
  1826. LMD CD+2
  1827. SBN 1
  1828. STD CD+2
  1829. SHN -14
  1830. STD CD+1
  1831. ADD CD+2
  1832. NJN RBS1 IF NOT A COMPLETE BUFFER SCAN
  1833. LCN 0 LINE FRAGMENT STATUS
  1834.  
  1835. RBS SUBR ENTRY/EXIT
  1836. RBS1 LDD T3 ASSURE BUFFER WRAP
  1837. SBD FT BUFFER FIRST WORD ADDRESS
  1838. SHN 14
  1839. LMD T3+1
  1840. SBD FT+1
  1841. NJP RBS2 IF *FIRST* NOT REACHED
  1842. LDD LM
  1843. STD T3 SET *IN = LIMIT*
  1844. LDD LM+1
  1845. STD T3+1
  1846. LJM RBS2 CONTINUE BUFFER SCAN
  1847. ROJ SPACE 4,10
  1848. ** ROJ - ROLL USER JOB.
  1849. *
  1850. * ENTRY (T0) = *COMSCPS* ROLLOUT OPTION REQUEST.
  1851. *
  1852. * EXIT CONTROL POINT ROLLOUT REQUESTED.
  1853. *
  1854. * USES CM - CM+4.
  1855. *
  1856. * MACROS MONITOR.
  1857.  
  1858.  
  1859. ROJ SUBR ENTRY/EXIT
  1860. LDN ZERL
  1861. CRD CM
  1862. LDD T0 REQUESTED OPTION
  1863. STD CM+1
  1864. MONITOR ROCM
  1865. UJN ROJX RETURN
  1866. SLF SPACE 4,10
  1867. ** SLF - SEARCH LIST OF FILE ENTRIES.
  1868. *
  1869. * ENTRY SCAN LIST OF FILE *LOFW* OR RA+2 ENTRIES
  1870. * FOR POSSIBLE OUTPUT BUFFER FLUSH CANDIDATES.
  1871. *
  1872. * EXIT (IR+3 - IR+4) = BUFFER OUTPUT FET ADDRESS.
  1873. * (A) = NONZERO IF FILE ENTRY TO BE FLUSHED.
  1874. *
  1875. * USES T1 - T5, CM - T9.
  1876. *
  1877. * CALLS DFS, VAD.
  1878.  
  1879.  
  1880. SLF SUBR ENTRY/EXIT
  1881. LDD FL
  1882. ZJN SLFX IF NO FIELD LENGTH
  1883.  
  1884. * PROCESS LIST OF FILE ENTRIES *LOFW*.
  1885.  
  1886. LDD CP LIST OF FILES POINTER
  1887. ADC LOFW
  1888. CRD CM
  1889. LDD CM+1
  1890. LPN 37
  1891. SHN 14
  1892. LMD CM+2
  1893. ZJN SLF1 IF *LOFW* NOT IN USE
  1894. ADN 1 OFFSET INTO *LOFW* TABLE
  1895. RJM VAD VALIDATE ENTRY ADDRESS
  1896. ZJN SLFX IF INCORRECT ADDRESS
  1897. CRD T8-3 READ *LOFW* ENTRY
  1898. RJM DFS DETERMINE FLUSH STATUS
  1899. NJP SLF3 SET UP FLUSH CANDIDATE
  1900. UJN SLFX IF NOT A FLUSH CANDIDATE
  1901.  
  1902. * PROCESS RA+2 LIST IF NO *LOFW*.
  1903.  
  1904. SLF1 AOM SLFA RA+2 INDEX
  1905. LPN 77
  1906. LMN PGNR MAXIMUM RA+2 LIST LENGTH
  1907. ZJN SLFX IF END OF LIST
  1908. LDD RA REFERENCE ADDRESS
  1909. SHN 6
  1910. SLFA ADN 1 INCREMENT RA+2 INDEX
  1911. CRD T8-3 READ RA+2 ENTRY
  1912. LDD T8-3
  1913. ZJP SLFX IF END OF LIST
  1914.  
  1915. * VALIDATE FET/FIT ADDRESS.
  1916.  
  1917. LDD T8
  1918. LPN 37
  1919. SHN 14
  1920. LMD T8+1
  1921. ADN 5 BIAS FET/FIT LENGTH
  1922. RJM VAD VALIDATE LIST ENTRY
  1923. ZJN SLF1 IF FET/FIT OUTSIDE FL
  1924. SBN 5
  1925. CRD T1 DETERMINE IF FET/FIT
  1926. LDD T1+3
  1927. LPN 37
  1928. ADD T1+4
  1929. NJN SLF2 IF NOT A POSSIBLE FIT
  1930.  
  1931. * VALIDATE FET POINTER WITHIN FIT TABLE.
  1932. * NOTE. FIT+0 RESERVED BITS (17-0) DISTINGUISH
  1933. * FIT TABLE DESCRIPTION.
  1934.  
  1935. LDD T8
  1936. LPN 37
  1937. SHN 14
  1938. LMD T8+1
  1939. ADN 1
  1940. RJM VAD VALIDATE FIT ADDRESS
  1941. ZJP SLF1 IF FIT ADDRESS OUTSIDE FL
  1942. CRD T8-3 READ FET ADDRESS WITHIN FIT
  1943. LDD T8
  1944. LPN 37
  1945. ADD T8+1
  1946. ZJP SLF1 IF NO FET ADDRESS WITHIN FIT
  1947.  
  1948. * DETERMINE FET/FIT FLUSH STATUS.
  1949.  
  1950. SLF2 RJM DFS DETERMINE FLUSH STATUS
  1951. ZJP SLF1 IF NOT A FLUSH CANDIDATE
  1952.  
  1953. * SET UP FET ADDRESS EXIT CONDITIONS.
  1954.  
  1955. SLF3 LDD T8
  1956. LPN 37
  1957. STD IR+3 SET UP FET ADDRESS
  1958. LDD T8+1
  1959. STD IR+4
  1960. LJM SLFX RETURN
  1961. VAD SPACE 4,10
  1962. ** VAD - VALIDATE ADDRESS WITHIN FL.
  1963. *
  1964. * ENTRY (A) = ADDRESS NEEDING VALIDATION.
  1965. *
  1966. * EXIT (A) = ABSOLUTE ADDRESS WITHIN FL.
  1967. * (A) = ZERO IF INCORRECT ADDRESS.
  1968.  
  1969.  
  1970. VAD1 LDN 0 INCORRECT ADDRESS STATUS
  1971.  
  1972. VAD SUBR ENTRY/EXIT
  1973. SHN 14
  1974. SBD FL FIELD LENGTH
  1975. SHN 6
  1976. PJN VAD1 IF INCORRECT ADDRESS PASSED
  1977. SHN 14
  1978. ADD FL
  1979. ADD RA REFERENCE ADDRESS
  1980. SHN 6 ABSOLUTE ADDRESS
  1981. UJN VADX RETURN
  1982. VFP SPACE 4,10
  1983. ** VFP - VERIFY FET PARAMETERS.
  1984. *
  1985. * ENTRY (IR+3 - IR+4) = FET ADDRESS.
  1986. *
  1987. * EXIT (FT - FT+1) = BUFFER FIRST WORD ADDRESS.
  1988. * (IN - IN+1) = BUFFER IN POINTER.
  1989. * (OT - OT+1) = BUFFER OUT POINTER.
  1990. * (LM - LM+1) = BUFFER LAST WORD ADDRESS.
  1991. * (BS - BS+4) = BUFFER FET STATUS.
  1992. *
  1993. * USES CM - CM+4.
  1994. *
  1995. * MACROS CFET, ERROR, MONITOR.
  1996.  
  1997.  
  1998. VFP SUBR ENTRY/EXIT
  1999.  
  2000. * RESET FET BUFFER STATUS.
  2001.  
  2002. CFET GET BUFFER STATUS
  2003. CRD BS
  2004. LDN 3 VALIDATE ALL FET PARAMETERS
  2005. STD CM+1
  2006. LDD IR+3 FET ADDRESS
  2007. LPN 77
  2008. STD CM+3
  2009. LDD IR+4
  2010. STD CM+4
  2011. MONITOR VFPM VERIFY FET PARAMETERS
  2012. LDD CM+1 VALIDATION RESPONSE
  2013. ZJN VFP2 IF VALID FET
  2014. LPN 1
  2015. ZJN VFP1 IF VALID FET ADDRESS
  2016. ERROR ARG *FET ADDRESS OUT OF RANGE*
  2017.  
  2018. VFP1 LDD CM+1
  2019. LPN 2
  2020. ZJN VFP2 IF NO BUFFER ERROR
  2021. ERROR BUF *BUFFER ARGUMENT ERROR*
  2022.  
  2023.  
  2024. * RESET VALID FET PARAMETERS.
  2025.  
  2026. VFP2 LDD MA CM MESSAGE BUFFER
  2027. ADN 2
  2028. CRD IN-1 *IN* AND *OUT*
  2029. ADN 1
  2030. CRD FT-1 *FIRST* AND *LIMIT*
  2031. LDD BS+3 CLEAR ERROR, LEVEL AND COMPLETION
  2032. SCN 77
  2033. STD BS+3
  2034. LDD BS+4
  2035. LPC 776
  2036. STD BS+4
  2037. UJP VFPX RETURN
  2038.  
  2039.  
  2040.  
  2041.  
  2042. ** COMMON DECKS.
  2043.  
  2044.  
  2045. *CALL,COMPACS
  2046. *CALL,COMPANS
  2047. *CALL,COMPCIB
  2048. *CALL,COMPCOB
  2049. PIR$ EQU 1 SELECT ASSEMBLY OF *PIR* FOR IAF R-REG
  2050. *CALL,COMPSRR
  2051. *CALL,COMPCRS
  2052. *CALL,COMPRBB
  2053. *CALL,COMPSPA
  2054. *CALL,COMPSTA
  2055. *CALL,COMPUPP
  2056. *CALL,COMPWBB
  2057. HST TITLE FUNCTION REQUEST AND BUFFER STORAGE.
  2058. ** PREVIOUS PP RECALL PARAMETER WORD.
  2059. * IF *1MI* IS STARTED FROM THE RECALL STACK, THIS WORD WILL
  2060. * CONTAIN INFORMATION SAVED BY THE PREVIOUS COPY OF *1MI*
  2061. * IN THE FOLLOWING FORMAT -
  2062. *
  2063. * 1/S, 5/, 6/CP, 6/RC, 18/, 12/FP, 1/A, 1/, 4/IF, 3/, 3/RT
  2064. *
  2065. * S SET BY *CPUMTR* TO SHOW *1MI* STARTED FROM RECALL.
  2066. * CP UNUSED (WARNING - SOMETIMES SET BY *CPUMTR*).
  2067. * RC REASON CODE WHY *1MI* ENTERED RECALL.
  2068. * FP FIRST POT IN CHAIN PRIOR TO RECALL.
  2069. * A SET IF MONITOR FUNCTION REJECTED BECAUSE IAF ABORTED.
  2070. * IF *CIO* INTERNAL FUNCTION CODE (SEE *COMSCIO*).
  2071. * RT MONITOR FUNCTION REJECTION COUNT.
  2072.  
  2073.  
  2074. RCRF CON 0,0,0,0,0
  2075.  
  2076.  
  2077.  
  2078. ** NEW PP RECALL PARAMETER WORD.
  2079. * USED IF *1MI* MUST ENTER RECALL. IT HAS THE SAME FORMAT AS
  2080. * THE PREVIOUS PP RECALL PARAMETER WORD.
  2081.  
  2082.  
  2083. RCPW CON 0,0,0,0,0
  2084. HST SPACE 4,10
  2085. ** TIAF - TABLE OF *TSEM* FUNCTION REQUEST DEFINITIONS.
  2086. *
  2087. * ENTRY FIVE WORDS. CONTENTS VARY PER *TSEM* REQUEST.
  2088. *
  2089. * WADO - ASSIGN DIRECT OUTPUT TO IAF.
  2090. *
  2091. *T 12//REM/VADO, 6/0, 6/PC, 12/LP, 12/FP, 12/TN
  2092. *
  2093. * WADI - ASSIGN DIRECT INPUT FROM IAF.
  2094. *
  2095. *T, 12//REM/VADI, 36/0, 12/TN
  2096. *
  2097. * WDPO - IAF DROP POT MEMORY REQUEST.
  2098. *
  2099. *T, 12//REM/VDPO, 12/0, 12/LP, 12/FP, 12/TN
  2100. *
  2101. * PC = POT MEMORY CHAIN COUNT PER CURRENT REQUEST.
  2102. * FP = FIRST POT MEMORY POINTER PER CURRENT REQUEST.
  2103. * LP = LAST POT MEMORY POINTER PER CURRENT REQUEST.
  2104. * TN = TERMINAL CONNECTION NUMBER.
  2105.  
  2106.  
  2107. TIAF BSS 0
  2108.  
  2109. WADO BSS 0 ASSIGN DIRECT OUTPUT
  2110. WADI BSS 0 ASSIGN DIRECT INPUT
  2111. WDPO BSS 0 DROP POT MEMORY REQUEST
  2112. WIAF CON 0,0,0,0,0 *TSEM* FUNCTION REQUEST PARMAETERS
  2113.  
  2114.  
  2115.  
  2116.  
  2117. * DATA TRANSFER BUFFER OVERLAYS PRESET.
  2118.  
  2119.  
  2120. USE BUFFERS
  2121.  
  2122.  
  2123.  
  2124. BUFF EQU *
  2125.  
  2126. BUFFL EQU /REM/VCPC*2*5
  2127. ERRNG 100000-BUFF-BUFFL
  2128.  
  2129.  
  2130.  
  2131.  
  2132.  
  2133. PRS TITLE *1MI* INITIALIZATION.
  2134. ** PRS - PRESET *1MI*.
  2135. *
  2136. * ENTRY (IR - IR+4) = *1MI* CALL.
  2137. * (MB - MB+4) = *1MI* MESSAGE BUFFER PARAMETERS (*PPR*)
  2138. * (MB1 - MB1+4) = MESSAGE BUFFER + 1 PARAMETERS.
  2139. * (MB2 - MB2+4) = MESSAGE BUFFER + 2 PARAMETERS.
  2140. *
  2141. * EXIT (FC) = INTERNAL *CIO* FUNCTION CODE.
  2142. * (BS - BS+4) = BUFFER STATUS = (FET+0)
  2143. * (FT - FT+1) = BUFFER FIRST WORD ADDRESS.
  2144. * (IN - IN+1) = BUFFER IN POINTER.
  2145. * (OT - OT+1) = BUFFER OUT POINTER.
  2146. * (LM - LM+1) = BUFFER LAST WORD ADDRESS.
  2147. * (TT - TT+1) = TERMINAL TABLE ADDRESS.
  2148. * (RCRF - RCRF+4) = PARAMETER WORD FROM PREVIOUS IAF.
  2149. * TO *DPP* IF USER BREAK PROCESS WITH EXTENDED REPRIEVE.
  2150. * TO *ERS* IF IAF INACCESSIBLE TO ALLOW USER RECOVERY.
  2151. *
  2152. * USES CM - CM+4, CN - CN+4, FT-1 - FT+3, IN-1 - IN+3,
  2153. * BS - BS+4, FC, NF, TN, T0.
  2154. *
  2155. * CALLS CFN, CJA, CTT, ITA, REC, ROJ, STA.
  2156. *
  2157. * MACROS CFET, ERROR, SFA.
  2158.  
  2159.  
  2160. PRS SUBR ENTRY/EXIT
  2161.  
  2162. * MOVE PP RECALL PARAMETER WORDS TO LOCATIONS WHICH ARE NOT
  2163. * DESTROYED BY COMMON DECKS.
  2164.  
  2165. LDD MA RESET FET PARAMETERS IN MESSAGE BUFFER
  2166. CWD MB
  2167. ADN 1 PRESET BUFFER POINTERS
  2168. CWD MB1
  2169. CRD IN-1 *IN* AND *OUT*
  2170. ADN 1
  2171. CWD MB2
  2172. CRD FT-1 *FIRST* AND *LIMIT*
  2173. LDD MB+4 INTERNAL *CIO* FUNCTION CODE
  2174. LPC 1700
  2175. STM RCPW+4 SAVE IN CASE *1MI* GOES INTO RECALL
  2176. SHN -6
  2177. STD FC
  2178. CFET READ FET+0
  2179. CRD BS
  2180. LDD MB
  2181. SHN 21-13
  2182. PJN PRS1 IF INITIAL *1MI* CALL
  2183. LDD MA
  2184. CRM RCRF,ON READ IN PREVIOUS RECALL PARAMETER WORD
  2185. RJM REC RECOVER *TSEM* REJECT
  2186. PRS1 RJM CTT CHECK TERMINAL I/O INTERLOCK
  2187. LDD CP
  2188. ADK TFSW
  2189. CRD CM
  2190. LDD CM
  2191. ZJN PRS2 IF NO EJT ORDINAL
  2192. SFA EJT
  2193. ADK JSNE CHECK JOB CONNECTION STATUS
  2194. CRD CM
  2195. LDD CM+4
  2196. SHN -7
  2197. LPN 17
  2198. STM PRSA
  2199. LMK NICS
  2200. ZJN PRS2 IF NON-INTERACTIVE
  2201. RJM CEF
  2202. ZJN PRS6 IF NO ERROR FLAG ON JOB
  2203. LDD FC *1MI* FUNCTION CODE
  2204. LMK /CIO/WTF
  2205. ZJN PRS6 IF A WRITE FUNCTION
  2206. LDD CM+2
  2207. NJN PRS3 IF USER BREAK AND EXTENDED REPRIEVE
  2208. LDD BS+4 SET EOR STATUS
  2209. LPC 6002
  2210. LMN 20
  2211. STD BS+4
  2212. PRS2 RJM CFN COMPLETE FUNCTION
  2213. PRS3 LJM DPP DROP PP
  2214.  
  2215. PRS6 RJM ITA
  2216. ZJN PRS7 IF IAF NOT AVAILABLE
  2217. LDC 0 CHECK CONNECTION STATUS
  2218. PRSA EQU *-1
  2219. LMK DTCS
  2220. NJN PRS9 IF NOT DETACHED
  2221.  
  2222. * A DETACHED JOB IS EITHER SUSPENDED OR TERMINATED BASED ON ITS
  2223. * END-OF-JOB OPTIONS.
  2224.  
  2225. LDD CP CHECK END-OF-JOB TERMINATION OPTIONS
  2226. ADN EOJW
  2227. CRD CM
  2228. LDD CM
  2229. SHN 0-11 ISOLATE JOB TERMINATION OPTION
  2230. LMN SUJT
  2231. ZJN PRS7 IF DETACHED JOB IS TO BE SUSPENDED
  2232. ERROR IRQ *INCORRECT I/O REQUEST ON FILE*
  2233.  
  2234. PRS7 LDK IAFF
  2235. RAM RCPW+4
  2236. LDK ROSU SUSPEND USER JOB
  2237. PRS8 STD T0
  2238. RJM ROJ ROLL USER JOB
  2239. LDK TALR TERMINAL I/O BUSY RECALL CODE
  2240. LJM ERS ENTER RECALL STACK
  2241.  
  2242. * CONTINUE PROCESS FOR ONLINE CONNECTIONS ONLY.
  2243.  
  2244. PRS9 LDD CP
  2245. ADN TTNW TERMINAL TABLE POINTER
  2246. CRD CM
  2247. LDD CM+1
  2248. STD TN
  2249. RJM SRR SET R-REGISTER TO IAF RA
  2250. RJM STA SET TERMINAL TABLE ADDRESS (TT - TT+1)
  2251.  
  2252. * ROLL A USER OUT DURING LOGIN PROCESSING AND DURING DETACH
  2253. * PROCESSING IF THE TERMINAL TABLE IS NOT COMPLETELY SET UP.
  2254. * THIS AVOIDS *VADO* AND *VADI* *TSEM* REQUESTS BEING SENT TO
  2255. * *IAF* BEFORE THE USER IS COMPLETELY LOGGED IN.
  2256.  
  2257. ADK /REM/VDCT CHECK IF USER FINISHED LOGGING IN
  2258. CRD CM
  2259. ADK /REM/VSTT-/REM/VDCT
  2260. CRD CN READ *VSTT*
  2261. RJM RRR RESTORE R-REGISTER
  2262. LDD CM
  2263. SHN 21-11
  2264. PJN PRS9.1 IF USER NOT COMPLETELY LOGGED IN
  2265. LDD CN CHECK FOR DETACH IN PROGRESS
  2266. SHN 21-10
  2267. PJN PRS10 IF DETACH NOT IN PROGRESS
  2268. PRS9.1 LDK ROSR
  2269. UJP PRS8 ROLLOUT USER JOB UNTIL COMPLETE RECOVERY
  2270.  
  2271. PRS10 LDD CP GET NEGATIVE FIELD LENGTH
  2272. ADN FLSW
  2273. CRD CM
  2274. LDD CM
  2275. STD NF NFL/100B
  2276. UJP PRSX RETURN
  2277. CTT SPACE 4,10
  2278. ** CTT - CHECK TIOW/TINW BUSY.
  2279. *
  2280. * *CTT* CHECKS THE *TINW/TIOW* INTERLOCK FLAG FROM *CPUMTR* TO
  2281. * DETERMINE WHETHER OR NOT THIS COPY OF *1MI* HAS THE TERMINAL
  2282. * I/O INTERLOCK. IF NOT, *CTT* ATTEMPTS TO GET THE INTERLOCK
  2283. * VIA A *UTEM* FUNCTION. IF UNSUCCESSFUL, *1MI* MUST GO INTO
  2284. * RECALL AND TRY TO OBTAIN THE INTERLOCK AT A LATER TIME.
  2285. *
  2286. * ENTRY (IR+2) = TIOW/TINW BUSY FLAG FROM *CPUMTR*.
  2287. *
  2288. * EXIT IF RECALL NECESSARY, TO *ERS*.
  2289. *
  2290. * USES CM - CM+4, IR+2.
  2291. *
  2292. * MACROS MONITOR.
  2293.  
  2294.  
  2295. CTT4 LDD IR+2 CLEAR FLAG FROM INPUT REGISTER
  2296. LMK TTB
  2297. STD IR+2
  2298. LDD IA REWRITE INPUT REGISTER
  2299. CWD IR
  2300.  
  2301. CTT SUBR ENTRY/EXIT
  2302. LDD IR+2 CHECK FLAG FROM *CPUMTR*
  2303. LPK TTB
  2304. ZJN CTTX IF TIOW/TINW GOES WITH THIS PP
  2305. LDK ZERL TEST AND SET TIOW/TINW
  2306. CRD CM
  2307. LDD CP SET WORD ADDRESS
  2308. ADK TIOW
  2309. STD CM+4
  2310. ERRNG TINW-TIOW CODE DEPENDS ON ORDER OF WORDS
  2311. LDN 3 TEST TWO FIELDS, SET ONE
  2312. STD CM+1
  2313. LDD FC
  2314. LMK /CIO/WTF
  2315. ZJN CTT1 IF WRITE FUNCTION
  2316. LDC 18D*100B SET TINW ADDRESS OFFSET AND FIELD
  2317. RAM CTTB+1
  2318. LDK TINW-TIOW SET TINW FIELD
  2319. SHN 6
  2320. RAM CTTB
  2321. CTT1 LDD IR+4 MOVE FET ADDRESS
  2322. STM CTTB+4
  2323. LDD IR+3
  2324. LPN 77
  2325. STM CTTB+3
  2326. LDD MA
  2327. CWM CTTA,TR
  2328. MONITOR UTEM
  2329. LDD CM+1
  2330. ZJP CTT4 IF TEST AND SET SUCCESSFUL
  2331. RJM CEF
  2332. LDD CM+2
  2333. NJN CTT2 IF USER BREAK WITH EXTENDED REPRIEVE
  2334.  
  2335. * ENTER RECALL WITH TIOW/TINW BUSY FLAG STILL SET IN THE INPUT
  2336. * REGISTER, SO THAT WHEN *1MI* IS RESTARTED IT WILL
  2337. * AGAIN ATTEMPT TO GET THE *TIOW/TINW* INTERLOCK.
  2338.  
  2339. LDK TALR
  2340. LJM ERS ENTER RECALL STACK
  2341.  
  2342. * IF BOTH A USER BREAK ERROR FLAG IS PRESENT AND EXTENDED
  2343. * REPRIEVE HAS BEEN SELECTED BY THE JOB, *1MI* CANNOT WAIT
  2344. * FOR THE TERMINAL I/O INTERLOCK TO BECOME AVAILABLE. THIS IS
  2345. * BECAUSE THE PP WITH THE INTERLOCK MAY BE A READ REQUEST, IN
  2346. * WHICH CASE IT WILL DROP WITHOUT CLEARING *TINW*.
  2347. * IF A WRITE REQUEST, *1MI* WILL COMPLETE THE FET AND DROP.
  2348. * IF A READ REQUEST, *1MI* WILL ATTEMPT TO SET *TINW* BEFORE
  2349. * DROPPING SO THAT *1AJ* KNOWS THAT AN INPUT REQUEST IS
  2350. * OUTSTANDING.
  2351.  
  2352. CTT2 LDD FC
  2353. LMK /CIO/WTF
  2354. ZJN CTT3 IF WRITE FUNCTION
  2355. LDK ZERL
  2356. CRD CM
  2357. LDD CP
  2358. ADK TIOW
  2359. STD CM+4
  2360. LDN 2
  2361. STD CM+1
  2362. LDD MA
  2363. CWM CTTA+5,CM+1
  2364. MONITOR UTEM
  2365. LJM DPP DROP PP
  2366.  
  2367. CTT3 LDD BS+4 COMPLETE FET
  2368. SCN 1
  2369. LMN 1
  2370. STD BS+4
  2371. CFET REWRITE FIRST WORD OF FET
  2372. CWD BS
  2373. LJM DPP DROP PP
  2374.  
  2375.  
  2376. CTTA VFD 1/1,5/0,6/18D,6/0,42/0 VERIFY 0 CLEAR
  2377. VFD 1/1,5/TINW-TIOW,6/18D,6/18D,42/0 VERIFY TINW CLEAR
  2378. CTTB VFD 1/0,5/0,6/18D,6/0,42/0 SET NEW FET ADDRESS
  2379. REC SPACE 4,10
  2380. ** REC - RECOVER FROM MONITOR REJECTION.
  2381. *
  2382. * ENTRY (RCRF+1) = RECALL REASON CODE.
  2383. * (RCRF+3) = FIRST POT CHAIN POINTER.
  2384. * (FC) = INITIAL *1MI* FUNCTION CODE.
  2385. *
  2386. * EXIT TO *DPP* IF *TINW/TIOW* INTERLOCK NO LONGER HELD.
  2387. * ANY POTS FROM A PREVIOUSLY REJECTED MONITOR FUNCTION
  2388. * ARE DROPPED.
  2389. *
  2390. * USES CM - CM+4, CN - CN+4.
  2391. *
  2392. * CALLS MRJ.
  2393. *
  2394. * MACROS MONITOR.
  2395.  
  2396.  
  2397. REC SUBR ENTRY/EXIT
  2398. LDM RCRF+1 GET REJECTED FUNCTION
  2399. SHN -6
  2400. LMK TDOR
  2401. ZJN REC2 IF *VADO* REJECTION
  2402. LMK TPOR&TDOR
  2403. NJP RECX IF NOT *VDPO* REJECTION
  2404. AOM RECA
  2405.  
  2406. * DROP PREVIOUS FUNCTION-S POTS UNLESS THE FUNCTION WAS
  2407. * REJECTED BECAUSE IAF WAS NOT AVAILABLE.
  2408.  
  2409. REC2 LDM RCRF+4
  2410. LPK IAFF
  2411. NJN REC3 IF NEW COPY OF IAF
  2412. LDK ZERL BUILD *VDPO* *TSEM* REQUEST
  2413. CRD CN
  2414. LDK /REM/VDPO
  2415. STD CN
  2416. LDM RCRF+3 SET POT NUMBER OF FIRST POT IN CHAIN
  2417. STD CN+3
  2418. LDD CP SET TERMINAL NUMBER
  2419. ADK TTNW
  2420. CRD CM
  2421. LDD CM+1
  2422. STD CN+4
  2423. LDN ZERL
  2424. CRD CM
  2425. LDD MA
  2426. CWD CN REWRITE REJECTED REQUEST
  2427. CRM WIAF,ON PRESET POSSIBLE FUNCTION REJECTION
  2428. MONITOR TSEM
  2429. LDM RCRF+1
  2430. SHN -6
  2431. RJM MRJ
  2432. REC3 LDN 0
  2433. * LDN 1
  2434. RECA EQU *-1
  2435. ZJP RECX IF INTERLOCK STILL HELD
  2436. LJM DPP DROP PP
  2437.  
  2438.  
  2439.  
  2440. ** COMMON DECKS NECESSARY FOR PRESET.
  2441.  
  2442. *CALL,COMPGFP
  2443.  
  2444.  
  2445.  
  2446.  
  2447.  
  2448. ERRNG 7777-*+1 AVOID PPU MEMORY WRAP
  2449. END