Table of Contents

1TS

Table Of Contents

  • [00007] 1TS - INTERNAL STIMULATION DRIVER.
  • [00009] INTERNAL STIMULATION DRIVER.
  • [00103] DIRECT CELLS AND ASSEMBLY CONSTANTS.
  • [00138] MACRO DEFINITIONS.
  • [00140] RETURN - RETURN TO MANAGER TO ADVANCE TERMINAL PROCESSING.
  • [00156] TTADD - GENERATE TERMINAL TABLE ADDRESS.
  • [00204] MAIN PROGRAM.
  • [00206] STM - MAIN PROGRAM.
  • [00334] DPP - DROP PPU.
  • [00355] TERMINATION ROUTINES.
  • [00357] TDR - TERMINATE DRIVER.
  • [00421] ESD - END STIMOUT DATA.
  • [00451] STIMULATOR SERVICE.
  • [00493] SSL - STIMULATOR SERVICE LOOP.
  • [00532] UPLINE DATA PROCESSING ROUTINES.
  • [00534] LGI - PROCESS LOGIN.
  • [00590] REJ - REJECT CHARACTER.
  • [00616] TTD - THINK TIME DELAY.
  • [00662] WTC - WRITE CHARACTER.
  • [00795] TSCH - TABLE OF SPECIAL CHARACTERS.
  • [00818] EOL - PROCESS END OF LINE.
  • [00907] EOS - PROCESS END OF SCRIPT.
  • [01001] PET - PROCESS END OF TASK.
  • [01065] SNT - SET NEXT TASK.
  • [01164] OTT - OPTIONAL THINK TIME.
  • [01209] TANV - TABLE OF ASCII NUMERIC VALUES.
  • [01225] SAN - SET ACCOUNT NUMBER.
  • [01278] DOWNLINE DATA PROCESSING ROUTINES.
  • [01280] RTC - READ TERMINAL CHARACTER.
  • [01338] HNU - HANG UP.
  • [01398] INI - INITIATE INPUT.
  • [01450] COMMON SUBROUTINES.
  • [01452] ETM - ENTER TIME.
  • [01473] SAA - SET ABSOLUTE ADDRESSES.
  • [01539] SDC - STORE DATA CHARACTER.
  • [01576] SDW - STORE DATA WORD.
  • [01630] INITIALIZATION.
  • [01632] PRS - PRESET PROGRAM.
  • [01724] TOCA - TABLE OF OUTPUT CONTROL ADDRESSES.
  • [01740] ABT - ABORT JOB.
  • [01749] CTS - CHECK *IAF* STATUS.
  • [01802] ICT - INTIALIZE CONTROL TABLE.
  • [01831] IOR - INITIALIZE OUTPUT RECOVERY.
  • [01872] ISC - INITIALIZE STIMULATOR CHANNELS.
  • [01898] RQS - REQUEST STORAGE.
  • [01944] SCP - START CENTRAL PROGRAM.
  • [01996] SAD - SET ADDRESSES.

Source Code

1TS.txt
  1. IDENT 1TS,STM
  2. PERIPH
  3. BASE MIXED
  4. SST
  5. *COMMENT 1TS - INTERNAL STIMULATION DRIVER.
  6. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  7. TITLE 1TS - INTERNAL STIMULATION DRIVER.
  8. SPACE 4,10
  9. *** 1TS - INTERNAL STIMULATION DRIVER.
  10. * G. R. MANSFIELD. 72/08/10.
  11. * R. A. JAPS. 77/12/05.
  12. SPACE 4,10
  13. *** *1TS* IS A STIMULATION DRIVER WHICH IS CALLED BY *STIMULA*
  14. * TO STIMULATE LOW SPEED INTERACTIVE TERMINALS FOR *IAF*.
  15. SPACE 4,10
  16. *** INPUT REGISTER FORMAT.
  17. *
  18. *T IR 18/ *1TS* ,24/ 0 ,18/ADDR
  19. *
  20. * ADDR ADDRESS OF CONTROL TABLE ENTRY FOR STIMULATION.
  21. * ADDR IS ZERO FOR STIMULATION INITIALIZATION.
  22. *
  23. * REFER TO *STIMULA* FOR TABLE FORMATS.
  24. SPACE 4,10
  25. *** DAYFILE MESSAGES.
  26. *
  27. * * IAF ABORT.*
  28. * STIMULATION WAS ABORTED BECAUSE *IAF* WAS NOT
  29. * COMMUNICATING WITH THE STIMULATOR.
  30. *
  31. * * OUT OF SYNCH.*
  32. * THE STIMULATION WAS ABORTED BECAUSE *1TS* WAS OUT OF
  33. * SYNCH WITH *IAF*.
  34. *
  35. * * LOST STIMOUT DATA.*
  36. * *1TS* WAS NOT ABLE TO RECOVER ALL OUTPUT BECAUSE THE
  37. * CM BUFFERS WERE FULL.
  38. *
  39. * *XXXXXX.XXX SEC. 1TS CYCLE TIME.*
  40. * INFORMATIVE MESSAGE STATING THE MAXIMUM CYCLE TIME
  41. * FOR *1TS*.
  42. *
  43. * * INVALID OPTIONAL THINK TIME.*
  44. * STIMULATION WAS ABORTED BECAUSE OF AN INVALID OPTIONAL
  45. * THINK TIME SPECIFICATION IN THE SCRIPTS. CORRECT
  46. * SCRIPTS AND RETRY.
  47. *
  48. * * ERROR IN SPECIAL ACCOUNT NUMBER.*
  49. * STIMULATION WAS ABORTED BECAUSE AN ERROR IN THE
  50. * SCRIPTS WAS ENCOUNTERED WHILE PROCESSING THE SPECIAL
  51. * ACCOUNT NUMBER FLAGS.
  52. *
  53. * * STIMULATION INITIATED.*
  54. * INFORMATIVE MESSAGE STATING THAT THE STIMULATION HAS
  55. * STARTED.
  56. *
  57. * * IAF NOT ACTIVE.*
  58. * STIMULATION WAS ABORTED BECAUSE *IAF* WAS NOT AT
  59. * CONTROL POINT 1. BRING UP *IAF* AND RETRY.
  60. *
  61. * * MEMORY REQUEST ERROR.*
  62. * AN INTERNAL ERROR INDICATING THAT *STIMULA* HAS NOT
  63. * REQUESTED ENOUGH FL FOR THE STIMULATION.
  64. *
  65. * * INPUT REQUESTED PAST END OF SCRIPT - NNNN.*
  66. * AN INPUT REQUEST WAS RECEIVED EVEN THOUGH END OF
  67. * SCRIPT HAD BEEN REACHED ON TERMINAL *NNNN*. THIS
  68. * IS A FATAL ERROR.
  69. SPACE 4,10
  70. *** INSTALLATION NOTES.
  71. *
  72. * THE STIMULATION DRIVER INTERFACES WITH *STIMULA*.
  73. * *1TS* IS A STIMULATION DRIVER THAT COMMUNICATES
  74. * WITH *1TN* VIA CHANNEL (INTERNAL STIMUALTION).
  75. *
  76. * **************
  77. * * *
  78. * * 1TS *
  79. * * *
  80. * **************
  81. * I
  82. * CHANNEL I
  83. * I
  84. * **************
  85. * * *
  86. * * 1TN *
  87. * * *
  88. * **************
  89. SPACE 4
  90. ** COMMON DECKS.
  91.  
  92.  
  93. *CALL COMSACC
  94. *CALL COMSPIM
  95. *CALL COMPMAC
  96. *CALL COMPCHI
  97. *CALL COMSREM
  98. *CALL COMSSCD
  99. *CALL COMSSSD
  100. LIST X
  101. *CALL COMSSTM
  102. LIST -X
  103. TITLE DIRECT CELLS AND ASSEMBLY CONSTANTS.
  104. DIRECT SPACE 4,10
  105. **** DIRECT LOCATION ASSIGNMENTS.
  106.  
  107.  
  108. DP EQU 20 - 24 DATA POINTER
  109. TT EQU DP+2 THINK TIME
  110. RT EQU DP+3 DATA RATE
  111. CK EQU DP+4 CLOCK
  112. OC EQU 25 OUTPUT CHARACTER
  113. IC EQU 26 INPUT CHARACTER
  114. AT EQU 30 ACTIVE TERMINAL COUNT
  115. LS EQU 31 LAST SECOND COUNT
  116. MT EQU 32 1TS MAX CYCLE TIME
  117. LM EQU 33 LAST MILLISECOND COUNT
  118. MC EQU 34 MILLISECOND COUNT
  119. NT EQU 35 NUMBER OF TERMINALS
  120. TC EQU 36 TERMINAL COUNT
  121. LC EQU 37 NUMBER OF TERMINALS TO LOGIN
  122. OT EQU 40 OUTPUT TERMINAL NUMBER
  123. IT EQU 41 INPUT TERMINAL NUMBER
  124. TW EQU 42 - 47 WORD TWO OF *TTER* ENTRY
  125. LI EQU TW+0 LINE SPEED
  126. IS EQU TW+1 INPUT SPEED
  127. LD EQU TW+2 LOGOUT DELAY
  128. TI EQU TW+3 INITIAL THINK TIME
  129. TO EQU TW+4 OPTIONAL THINK TIME
  130. SC EQU 47 SECOND COUNT
  131. IN EQU 60 - 64 IN POINTER
  132. ****
  133. SPACE 4,10
  134. ** ASSEMBLY CONSTANTS.
  135.  
  136.  
  137. CH EQU 15 STIMULATOR CHANNEL
  138. TITLE MACRO DEFINITIONS.
  139. RETURN SPACE 4
  140. ** RETURN - RETURN TO MANAGER TO ADVANCE TERMINAL PROCESSING.
  141. *
  142. * RETURN EXIT,ADDR
  143. *
  144. * ENTRY *EXIT* = MANAGER EXIT NUMBER.
  145. * *ADDR* = MANAGER RETURN ADDRESS.
  146. * IF *ADDR* IS NULL, RETURN TO NEXT PROGRAM ADDRESS.
  147.  
  148.  
  149. PURGMAC RETURN
  150.  
  151. RETURN MACRO N,A
  152. LDC A *+4
  153. LJM N STT
  154. ENDM
  155. TTADD SPACE 4
  156. ** TTADD - GENERATE TERMINAL TABLE ADDRESS.
  157. *
  158. * TTADD TER,W
  159. *
  160. * ENTRY *TER* = DIRECT LOCATION CONTAINING TERMINAL NUMBER.
  161. * W = 0, ADDRESS OF FIRST WORD OF ENTRY.
  162. * = 1, ADDRESS OF SECOND WORD OF ENTRY.
  163. * = 2, ADDRESS OF THIRD WORD OF ENTRY.
  164. * = 3, ADDRESS OF FOURTH WORD OF ENTRY.
  165. * = 4, ADDRESS OF FIFTH WORD OF ENTRY.
  166. *
  167. * EXIT (A) = DESIRED ADDRESS.
  168.  
  169.  
  170. TTADD MACRO T,W
  171. LOCAL L
  172. LDD RA
  173. SHN 6
  174. ADD T
  175. QUAL
  176. L ADC **
  177. QUAL *
  178. IFC EQ,$W$0$
  179. TTE0 RMT
  180. CON L
  181. TTE0 RMT
  182. ENDIF
  183. IFC EQ,$W$1$
  184. TTE1 RMT
  185. CON L
  186. TTE1 RMT
  187. ENDIF
  188. IFC EQ,$W$2$
  189. TTE2 RMT
  190. CON L
  191. TTE2 RMT
  192. ENDIF
  193. IFC EQ,$W$3$
  194. TTE3 RMT
  195. CON L
  196. TTE3 RMT
  197. ENDIF
  198. IFC EQ,$W$4$
  199. TTE4 RMT
  200. CON L
  201. TTE4 RMT
  202. ENDIF
  203. ENDM
  204. TITLE MAIN PROGRAM.
  205. STM SPACE 4
  206. ** STM - MAIN PROGRAM.
  207.  
  208.  
  209. ORG PPFW
  210. STM RJM PRS PRESET PROGRAM
  211. ACN CH
  212.  
  213. * UPDATE CLOCKS.
  214.  
  215. STM1 LDC RTCL READ REAL TIME CLOCK
  216. CRD CM
  217. LDD CM+4 SET ELAPSED MILLISECOND COUNT
  218. SBM STMD
  219. PJN STM2 IF CLOCK NOT RECYCLED
  220. ADC 10000B IF CLOCK RECYCLED
  221. STM2 STD MC SET MILLISECOND COUNT SINCE LAST CYCLE
  222. SBD MT CHECK CYCLE TIME
  223. MJN STM4 IF MAXIMUM NOT EXCEEDED
  224. RAD MT SET NEW MAXIMUM
  225. STM4 LDD MC
  226. RAD LM ADD LAST MILLISECOND
  227. SBK 1000D
  228. PJN STM5 IF SECOND ELAPSED
  229. LDN 0
  230. UJN STM6 TOGGLE SECOND STATUS
  231.  
  232. STM5 STD LM SAVE LAST MILLISECOND
  233. AOD LS UPDATE LAST SECOND
  234. LDN 1
  235. STM6 STD SC SET SECOND COUNT STATUS
  236. LDD CM+4 CURRENT TIME
  237. STM STMD
  238. LDD NT SET TERMINAL COUNT
  239. STD TC
  240. LDD MA STORE CLOCK
  241. CWD AT
  242. LDN 2 SET ON LINE CONTROL
  243. STM LCIC
  244.  
  245. * CHECK FOR END OF STIMULATION.
  246.  
  247. STM7 PAUSE
  248. LDD CM+1
  249. STM STMF SAVE ERROR STATUS
  250. RJM SAA SET ABSOLUTE ADDRESSES
  251. LDC **
  252. STMF EQU *-1 (ERROR STATUS)
  253. NJN STM11 IF ERROR FLAG SET
  254. LDN 0
  255. * LDN 1 (INTERNAL ERROR ENCOUNTERED)
  256. STMA EQU *-1
  257. NJN STM11 IF INTERNAL ERROR ENCOUNTERED
  258. IJM STM10,CH IF DRIVER ABORTED
  259. FJM STM8,CH IF DRIVER READY
  260. LDN 77 DELAY
  261. SBN 1
  262. NJN *-1 IF DELAY NOT EXPIRED
  263. UJN STM7 RETRY
  264.  
  265. STM8 IAN CH+40 INPUT SYNC CODE
  266. LPC 7777 TRUNCATE TO 12 BITS
  267. LMC 7777 CHECK FOR SYNC CODE
  268. NJN STM9 IF NOT SYNC CODE
  269. RJM SSL ENTER STIMULATOR SERVICE LOOP
  270. LDD AT CHECK ACTIVE TERMINAL COUNT
  271. ZJN STM11 IF NONE ACTIVE
  272. LJM STM1 LOOP
  273.  
  274. * PROCESS OUT OF SYNC CONDITION.
  275.  
  276. STM9 LDC MSGB SET MESSAGE ADDRESS
  277. UJN STM12 TERMINATE STIMULATION RUN
  278.  
  279. * PROCESS *IAF* ABORT.
  280.  
  281. STM10 LDC MSGA * IAF ABORTED.*
  282. UJN STM12 TERMINATE STIMULATION RUN
  283.  
  284. * PROCESS END OF STIMULATION.
  285.  
  286. STM11 RJM TDR TERMINATE DRIVER
  287. LDC 0
  288. * LDC MSGE * INVALID OPTIONAL THINK TIME.*
  289. * LDC MSGB * OUT OF SYNCH.*
  290. * LDC MSGF * ERROR IN SPECIAL ACCOUNT NUMBER.*
  291. * LDC MSGG * INPUT REQUESTED PAST END OF SCRIPT...*
  292. STMB EQU *-1
  293. ZJN STM13 IF NO ERROR MESSAGE
  294.  
  295. * TERMINATE STIMULATION RUN.
  296. *
  297. * ENTRY (A) = MESSAGE ADDRESS.
  298.  
  299. STM12 RJM DFM
  300. STM13 LDN ZERL CONVERT MAXIMUM CYCLE TIME
  301. CRD CM
  302. LDD MT
  303. ZJN STM14 IF NO TIME ACCUMULATED
  304. STD CM+4
  305. LDD MA
  306. CWD CM
  307. MONITOR RDCM REQUEST DATA CONVERSION
  308. LDD MA SET UP MESSAGE
  309. CRM MSGD,ON *XXXXXX.XXX SEC. 1TS CYCLE TIME.*
  310. LDC MSGD
  311. RJM DFM
  312. STM14 RJM ESD END STIMOUT DATA
  313. LDD IR+3 SET CONTROL TABLE ENTRY COMPLETE
  314. SHN 6
  315. ADD RA
  316. SHN 6
  317. ADD IR+4
  318. CRD CM
  319. LDC 4000
  320. STD CM
  321. LDC 0
  322. STMC EQU *-1 (TOTAL TIMES IN REGULATION)
  323. STD CM+1
  324. LDD IR+3
  325. SHN 6
  326. ADD RA
  327. SHN 6
  328. ADD IR+4
  329. CWD CM
  330. UJN DPP DROP PPU
  331.  
  332. STMD CON 0 PREVIOUS TIME
  333. DPP SPACE 4
  334. ** DPP - DROP PPU.
  335.  
  336.  
  337. DPP MONITOR DPPM DROP PPU
  338. LJM PPR EXIT TO PP RESIDENT
  339. SPACE 4,10
  340. ** STIMULATION COMPLETION MESSAGES.
  341.  
  342. MSGA DATA C* IAF ABORT.*
  343. MSGB DATA C* OUT OF SYNCH.*
  344. MSGC DATA C* LOST STIMOUT DATA.*
  345. MSGD DATA C*XXXXXX.XXX SEC. 1TS CYCLE TIME.*
  346. MSGE DATA C* INVALID OPTIONAL THINK TIME.*
  347. MSGF DATA C* ERROR IN SPECIAL ACCOUNT NUMBER.*
  348. MSGG DATA H* INPUT REQUESTED PAST END OF SCRIPT -*
  349. MSGH DATA C*NNNN.*
  350. SPACE 4,10
  351. ** COMMON DECKS.
  352.  
  353.  
  354. *CALL COMPC2D
  355. TITLE TERMINATION ROUTINES.
  356. TDR SPACE 4,15
  357. ** TDR - TERMINATE DRIVER.
  358. *
  359. * ENTRY STIMULATION ENDED.
  360. * (NT) = NUMBER OF TERMINALS.
  361. *
  362. * EXIT ALL TERMINALS SET OFF LINE.
  363. * TO *STM10*, IF OUT OF SYNCH OR *1TN* NOT RESPONDING.
  364. *
  365. * USES T1 - T4.
  366. *
  367. * MACROS PAUSE, TTADD.
  368.  
  369.  
  370. TDR SUBR ENTRY/EXIT
  371. LDN 20
  372. STD T4
  373. LDN 0
  374. STD T3
  375. TDR1 IJM STM10,CH IF DRIVER ABORTED
  376. PAUSE
  377. EJM TDR1,CH WAIT FOR DRIVER
  378. IAN CH+40 INPUT SYNC CODE
  379. LPC 7777 TRUNCATE TO 12 BITS
  380. LMC 7777
  381. ZJN TDR2 IF IN SYNCH
  382. LJM STM10 IF DRIVER ABORTED
  383.  
  384. TDR2 STD T1
  385. STD T2 CLEAR ACTIVE COUNT
  386. TDR3 TTADD T1,0 READ TERMINAL TABLE ENTRY
  387. CRD DP
  388. LDD DP CHECK STATUS
  389. SHN 21-13
  390. MJN TDR5 IF OFF LINE
  391. LDD T2
  392. NJN TDR6 IF ONE ALREADY PROCESSED
  393. AOD T3
  394. SBN 20
  395. NJN TDR4 DELAY LOG OFF
  396. STD T3
  397. LDC 4000 SET OFF LINE
  398. STD DP
  399. TTADD T1,0
  400. CWD DP
  401. TDR4 LDD TH SET TERMINAL LOGGED OFF
  402. STD T2
  403. UJN TDR6 OUTPUT CHARACTER
  404.  
  405. TDR5 LDN 0 SET OFF LINE
  406. TDR6 OAN CH+40
  407. FJM *,CH
  408. IAN CH+40 ACCEPT DRIVER INPUT
  409. AOD T1 ADVANCE TERMINAL NUMBER
  410. LMD NT
  411. NJP TDR3 IF MORE TERMINALS
  412. LDD T2
  413. ZJN TDR8 IF NO TERMINALS LOGGED OFF
  414. TDR7 LJM TDR1 LOOP
  415.  
  416. TDR8 SOD T4
  417. NJN TDR7 IF FINAL PASS INCOMPLETE
  418. DCN CH+40
  419. LJM TDRX RETURN
  420. ESD SPACE 4,15
  421. ** ESD - END STIMOUT DATA.
  422. *
  423. * ENTRY STIMULATION COMPLETE.
  424. * (NT) = NUMBER OF TERMINALS.
  425. *
  426. * EXIT DATA WORD IN *TTER* FLUSHED TO FET BUFFER.
  427. *
  428. * USES T1, T7, CM - CM+4.
  429. *
  430. * CALLS SDW.
  431. *
  432. * MACROS TTADD.
  433.  
  434.  
  435. ESD SUBR ENTRY/EXIT
  436. LDN 1 (NO OUTPUT RECOVERY)
  437. * LDN 0 (OUTPUT RECOVERY)
  438. ESDA EQU *-1
  439. NJN ESDX IF NO OUTPUT RECOVERY
  440. STD T1 ZERO DUMMY CHARACTER
  441. STD T7 TERMINAL NUMBER
  442. ESD1 TTADD T7,3 READ TERMINAL TABLE ENTRY
  443. CRD CM
  444. LDD CM
  445. ZJN ESD2 IF NO ENTRY IN DATA WORD
  446. RJM SDW STORE DATA WORD
  447. ESD2 AOD T7 ADVANCE TERMINAL NUMBER
  448. LMD NT
  449. NJN ESD1 IF MORE TERMINALS
  450. UJN ESDX RETURN
  451. TITLE STIMULATOR SERVICE.
  452. OFL SPACE 4,10
  453. * RETURNS FOR TERMINAL IDLE AND OFF LINE.
  454.  
  455.  
  456. OFL STM TOCA,OT SET ENTRY ADDRESS
  457. OFL1 LDN 0 SET OFF LINE STATUS
  458. STD OC
  459. UJN STT1 STORE TERMINAL TABLE ENTRY
  460.  
  461. OFL2 LDN 0 SET OFF LINE STATUS
  462. STD OC
  463. UJN NOP RETURN FOR NO OPERATION
  464. ONL SPACE 4,10
  465. * RETURNS FOR TERMINAL IDLE AND ON LINE.
  466.  
  467.  
  468. ONL STM TOCA,OT SET ENTRY ADDRESS
  469. ONL1 LDD TH SET ON LINE STATUS
  470. STD OC
  471. UJN STT1 STORE TERMINAL TABLE ENTRY
  472.  
  473. ONL2 LDD TH SET ON LINE STATUS
  474. ONL3 STD OC
  475. UJN NOP RETURN FOR NO OPERATION
  476. STT SPACE 4,10
  477. * RETURNS FOR STORE TERMINAL TABLE ENTRY.
  478.  
  479.  
  480. STT STM TOCA,OT SET ENTRY ADDRESS
  481. STT1 TTADD OT,0 STORE TERMINAL TABLE ENTRY
  482. CWD DP
  483. * UJN NOP RETURN FOR NO OPERATION
  484. NOP SPACE 4,10
  485. * RETURN FOR NO OPERATION.
  486.  
  487. NOP AOD OT ADVANCE OUTPUT TERMINAL
  488. LMD NT
  489. NJN SSL4 IF LIMIT NOT REACHED
  490. STD OT
  491. * UJN SSL4 PROCESS NEXT TERMINAL
  492. SSL SPACE 4,10
  493. ** SSL - STIMULATOR SERVICE LOOP.
  494. *
  495. * ENTRY (NT) = NUMBER OF TERMINALS BEING STIMULATED.
  496. * (TC) = TERMINAL COUNT.
  497. *
  498. * EXIT ALL TERMINALS SERVICED.
  499. *
  500. * USES IC, IT, TC, T1.
  501. *
  502. * CALLS RTC.
  503. *
  504. * NOTES UPLINE DATA PROCESSORS RETURN TO THE SERVICE
  505. * LOOP AT *SSL4*.
  506. *
  507. * *SSL* IS RESPONSIBLE FOR SENDING AND RECEIVING
  508. * DATA FROM THE STIMULATOR CHANNEL.
  509.  
  510.  
  511. SSL4 IAN CH+40 INPUT CHARACTER
  512. STD IC
  513. SOD TC DECREMENT TERMINAL COUNT
  514. NJN SSL1 IF NOT END OF TERMINALS
  515. * UJN SSLX
  516.  
  517. SSL SUBR ENTRY/EXIT
  518. SSL1 LDD OC OUTPUT CHARACTER
  519. OAN CH+40
  520. FJM *,CH
  521. LDD IC CHECK PREVIOUS INPUT CHARACTER
  522. SHN 6
  523. PJN SSL2 IF NO INPUT DATA
  524. RJM RTC READ TERMINAL CHARACTER
  525. SSL2 AOD IT ADVANCE INPUT TERMINAL
  526. LMD NT
  527. NJN SSL3 IF LIMIT NOT REACHED
  528. STD IT
  529. SSL3 LDM TOCA,OT
  530. STD T1
  531. LJM 0,T1 ENTER OUTPUT ROUTINE
  532. TITLE UPLINE DATA PROCESSING ROUTINES.
  533. LGI SPACE 4,20
  534. ** LGI - PROCESS LOGIN.
  535. *
  536. * ENTRY (LC) = LOGIN COUNT.
  537. * (SC) = SECOND COUNT.
  538. * (OT) = OUTPUT TERMINAL.
  539. * (LCIC) = ON LINE CONTROL.
  540. *
  541. * EXIT TERMINAL SET ON LINE.
  542. *
  543. * USES LC, OC, CM - CM+4, DP - DP+4.
  544. *
  545. * MACROS RETURN, TTADD.
  546. *
  547. * NOTES *LGI* IS RESPONSIBLE FOR THE RATE AT WHICH
  548. * TERMINALS ARE BROUGHT ON LINE.
  549.  
  550.  
  551. LGI LDD LC CHECK LOGIN COUNT
  552. NJN LGI1 IF LOGIN ALLOWED
  553. LJM OFL2 SET OFF LINE STATUS
  554.  
  555. LGI1 TTADD OT,0 READ TERMINAL TABLE ENTRY
  556. CRD DP
  557. SOD LC DECREMENT LOGIN COUNT
  558. RETURN OFL
  559. LGIA LDD SC CHECK SECOND COUNT
  560. NJN LGI2 IF SECOND ELAPSED
  561. LJM OFL2 SET OFF LINE STATUS
  562.  
  563. LGI2 TTADD OT,0 READ TERMINAL TABLE ENTRY
  564. CRD DP
  565. SOD CK DECREMENT CLOCK
  566. ZJN LGI3 IF START TIME REACHED
  567. MJN LGI3 IF START TIME REACHED
  568. LJM OFL1 SET OFF LINE STATUS
  569.  
  570. LGI3 AOD LC ADJUST LOGIN COUNT
  571. LDD DP CLEAR OFF LINE
  572. LPN 77 KEEP UPPER 6 BITS OF SCRIPT ADDRESS
  573. STD DP
  574. RETURN OFL
  575. LGIB LDM LCIC CHECK ON LINE CONTROL
  576. NJN LGI4 IF OKAY TO BRING ON LINE
  577. LJM OFL2 SET OFF LINE STATUS
  578.  
  579. LGI4 SOM LCIC DECREMENT ON LINE CONTROL
  580. TTADD OT,0
  581. CRD DP
  582. RETURN ONL
  583. LGI5 LDC 5000 SEND LEGAL CHARACTER
  584. LJM ONL3 SET ON LINE STATUS
  585.  
  586.  
  587. LCIC CON 0 ON LINE CONTROL
  588. LGID CON 0 NUMBER OF ACTIVE TERMINALS
  589. REJ SPACE 4,10
  590. ** REJ - REJECT CHARACTER.
  591. *
  592. * EXIT (OC) = 1400.
  593. *
  594. * USES OC, DP - DP+4.
  595. *
  596. * MACROS RETURN, TTADD.
  597.  
  598.  
  599. REJ BSS 0 ENTRY
  600. TTADD OT,0 READ TERMINAL TABLE ENTRY
  601. CRD DP
  602. LDD CK CHECK CLOCK
  603. SBD MC
  604. MJN REJ1 IF CHARACTER DELAY ELAPSED
  605. STD CK
  606. LDC 1400 SET OUTPUT CHARACTER REJECT
  607. STD OC
  608. LJM STT1 UPDATE TERMINAL STATUS
  609.  
  610. REJ1 ADD RT RESET CLOCK
  611. PJN REJ2
  612. LDD RT
  613. REJ2 STD CK
  614. RETURN ONL,ONL2
  615. TTD SPACE 4,15
  616. ** TTD - THINK TIME DELAY.
  617. *
  618. * ENTRY (OT) = OUTPUT TERMINAL NUMBER.
  619. *
  620. * EXIT THINK TIME DELAY EXPIRED.
  621. * INPUT SPEED SET FOR UPLINE DATA.
  622. * TO *WTC*.
  623. *
  624. * USES DP - DP+4, TW - TW+4.
  625. *
  626. * MACROS RETURN, TTADD.
  627. *
  628. * NOTES *TTD* IS RESPONSIBLE FOR GENERATING AND
  629. * PROCESSING A THINK TIME DELAY BEFORE SENDING
  630. * UPLINE DATA.
  631.  
  632.  
  633. TTD BSS 0 ENTRY
  634. TTADD OT,0 READ TERMINAL TABLE ENTRY
  635. CRD DP
  636. LDD TT SET THINK TIME
  637. LPC 177
  638. STD CK
  639. IAN. 14 SELECT RANDOM INCREMENT
  640. TTDA LPN **
  641. RAD CK
  642. ZJN TTD2 IF NO DELAY
  643. AOD CK
  644. RETURN ONL
  645. LDD SC CHECK SECOND COUNT
  646. NJN TTD1 IF SECOND ELAPSED
  647. LJM ONL2 RETURN ON LINE STATUS
  648.  
  649. TTD1 TTADD OT,0 READ TERMINAL TABLE ENTRY
  650. CRD DP
  651. SOD CK DECREMENT CLOCK
  652. ZJN TTD2 IF THINK TIME ELAPSED
  653. LJM ONL1 RETURN ON LINE STATUS
  654.  
  655. TTD2 TTADD OT,1 READ TERMINAL TABLE ENTRY
  656. CRD TW
  657. LDD IS SET INPUT SPEED
  658. STD CK
  659. STD RT
  660. RETURN ONL,WTC
  661. WTC SPACE 4,25
  662. ** WTC - WRITE CHARACTER.
  663. *
  664. * ENTRY INPUT SPEED SET IN *TTER*.
  665. * (OT) = OUTPUT TERMINAL.
  666. * (MC) = MILLESECOND TIME CLOCK.
  667. *
  668. * EXIT (OC) = OUTPUT CHARACTER.
  669. * TO *STT1* IF CHARACTER TO OUTPUT.
  670. * TO *OTT1* TO PROCESS OPTIONAL THINK TIME.
  671. * TO *ONL1* IF OPTIONAL THINK TIME PROCESSED.
  672. *
  673. * USES T0 - T6, DP - DP+4, TW - TW+4.
  674. *
  675. * CALLS GNT, OTT, SAN, SDC.
  676. *
  677. * MACROS TTADD.
  678. *
  679. * NOTES *WTC* IS RESPONSIBLE FOR THE FOLLOWING -
  680. * 1. PROCESSING INPUT SPEED FOR UPLINE DATA.
  681. * 2. GETTING THE NEXT CHARACTER OF UPLINE DATA
  682. * FROM THE SESSION SCRIPT IN CM.
  683. * 3. PROCESS ANY SPECIAL CHARACTERS RELATED TO
  684. * TASKS, OPTIONAL THINK TIME, OR DYNAMIC
  685. * USER NUMBERS.
  686.  
  687.  
  688. WTC BSS 0 ENTRY
  689. TTADD OT,0 READ TERMINAL TABLE ENTRY
  690. CRD DP
  691.  
  692. * CHECK IF INPUT THINK TIME EXPIRED.
  693.  
  694. LDD CK CHECK CLOCK
  695. SBD MC
  696. MJN WTC1 IF CHARACTER DELAY ELAPSED
  697. STD CK
  698. LJM ONL1 RETURN ON LINE STATUS
  699.  
  700. WTC1 ADD RT SET NEW RATE
  701. PJN WTC2
  702. LDD RT
  703. WTC2 STD CK
  704.  
  705. * SAVE CURRENT SCRIPT ADDRESS FOR POSSIBLE LINE
  706. * REGULATION PROCESSING.
  707.  
  708. LDD DP
  709. SHN 21-11
  710. PJN WTC3 IF NOT BEGINNING OF LINE
  711. TTADD OT,4 SAVE CURRENT ADDRESS OF SCRIPT
  712. CRD T1
  713. LDD DP
  714. STD T1
  715. LDD DP+1
  716. STD T1+1
  717. LDN 0
  718. STD T1+2
  719. TTADD OT,4
  720. CWD T1
  721.  
  722. * GET NEXT CHARACTER FROM SCRIPT SESSION.
  723.  
  724. WTC3 LDD DP SET BYTE NUMBER
  725. SHN 14
  726. LPN 7
  727. STD T5
  728. LDD DP
  729. LPN 77
  730. SHN 6
  731. ADD RA
  732. SHN 6
  733. ADD DP+1
  734. CRD T0
  735. LDD HN ADVANCE BYTE
  736. RAD DP
  737. SHN -6
  738. LPN 7
  739. LMN 5
  740. NJN WTC4 IF NOT END OF WORD
  741. AOD DP+1 ADVANCE WORD
  742. SHN -14
  743. ADD DP
  744. LPC 1077 RESET BYTE
  745. STD DP
  746. WTC4 TTADD OT,0
  747. CWD DP
  748. TTADD OT,1
  749. CRD TW
  750.  
  751. * CHECK CHARACTERS FOR SPECIAL PROCESSING.
  752.  
  753. LDI T5 CHECK FOR SPECIAL CHARACTER
  754. SHN -11
  755. ZJN WTC7 IF NOT SPECIAL CHARACTER
  756. LDN 0 CLEAR INDEX
  757. STD T6
  758. WTC5 LDM TSCH,T6 CHECK FOR SPECIAL CHARACTER
  759. ZJN WTC7 IF END OF TABLE
  760. LMI T5
  761. ZJN WTC6 IF SPECIAL CHARACTER
  762. LDN 2 ADVANCE TABLE INDEX
  763. RAD T6
  764. UJN WTC5 LOOP
  765.  
  766. WTC6 LDM TSCH+1,T6 GET PROCESSOR ADDRESS
  767. STD T6
  768. LJM 0,T6 PROCESS SPECIAL CHARACTER
  769.  
  770. WTC7 LDD TO
  771. ZJN WTC8 IF NOT IN OPTIONAL THINK TIME MODE
  772. LJM OTT1 PROCESS OPTIONAL THINK TIME
  773.  
  774. WTC8 LDI T5 SET CHARACTER
  775. LMD TH STORE OUTPUT CHARACTER
  776. STD OC
  777. LDD DP CLEAR FIRST OUTPUT FLAG
  778. LPC 6777
  779. STD DP
  780. LDD TO CHECK OPTIONAL THINK TIME ENTRY
  781. ZJN WTC9 IF NOT OPTIONAL THINK TIME ENTRY
  782. LDC ONL1&STT1
  783. WTC9 LMC STT1
  784. STM WTCA
  785. LDD OT SET TERMINAL NUMBER
  786. STD T7
  787. LDD OC STORE DATA CHARACTER
  788. LPC 377
  789. RJM SDC
  790. LJM *
  791. * LJM STT1 (NO OPTIONAL THINK TIME)
  792. * LJM ONL1 (OPTIONAL THINK TIME PRESENT)
  793. WTCA EQU *-1
  794. TSCH SPACE 4,10
  795. ** TSCH - TABLE OF SPECIAL CHARACTERS.
  796. *
  797. *T 12/ CHAR
  798. *T, 12/ ADDR
  799. *
  800. * CHAR SPECIAL CHARACTER (ASCII)
  801. * ADDR ADDRESS OF PROCESSOR
  802.  
  803.  
  804. TSCH BSS 0
  805. CON .ELCR,EOL END OF LINE
  806. CON .ELXO,EOL END NOF LINE
  807. CON .ESC,EOL ESCAPE
  808. CON .ETX,EOL END OF TEXT
  809. CON .AUTO,WTC7 SOURCE LINE INPUT
  810. CON .BTSK,SNT BEGIN TASK
  811. CON .ETSK,PET END TASK
  812. CON .SACN,SAN DYNAMIC LOGIN
  813. CON .OPTT,OTT OPTIONAL THINK TIME
  814. CON .ESCR,EOS END OF SCRIPT
  815. CON .ESXO,EOS END OF SCRIPT
  816. CON 0,0 END OF TABLE
  817. EOL SPACE 4,20
  818. ** EOL - PROCESS END OF LINE.
  819. *
  820. * ENTRY (OT) = OUTPUT TERMINAL NUMBER.
  821. * (TO) = OPTIONAL THINK TIME.
  822. * (DP - DP+4) = TERMINAL STATUS.
  823. *
  824. * EXIT TERMINAL STATUS UPDATED IN *TTER*.
  825. * (OC) = OUTPUT CHARACTER.
  826. * TO *STT1* IF NO ERROR.
  827. * TO *ONL1* IF ERROR ENCOUNTERED.
  828. *
  829. * USES CK, DP, RT, TO, TT, CM - CM+4.
  830. *
  831. * CALLS ETM, SDC.
  832. *
  833. * MACROS TTADD.
  834.  
  835.  
  836. EOL BSS 0 ENTRY
  837. LDD TO
  838. NJN EOL1 IF OPTIONAL THINK TIME
  839. LJM EOL5 IF NORMAL PROCESSING
  840.  
  841. EOL1 LMC 6000 CHECK FLAG FOR \\
  842. ZJN EOL3 IF RESET TO INITIAL THINK TIME
  843. LDD TO CHECK OPTIONAL THINK TIME
  844. LPC 1777
  845. STD T6
  846. ADC -200
  847. PJN EOL4 IF ENTRY TOO LARGE
  848. EOL2 LDD TT CURRENT RC,TT VALUES IN TERMINAL TABLE
  849. LPC 7600 KEEP RC VALUE
  850. ADD T6 INSERT NEW TT VALUE
  851. STD TT
  852. STD RT
  853. STD CK
  854. LDN 0
  855. STD TO CLEAR OPTIONAL THINK TIME
  856. TTADD OT,1
  857. CWD TW
  858. LJM ONL1 RETURN ON LINE
  859.  
  860. EOL3 LDD TI SET INITIAL THINK TIME
  861. STD T6
  862. UJN EOL2 INSERT THINK TIME
  863.  
  864. EOL4 LDC MSGE SET INTERNAL ERROR STATUS
  865. STM STMB
  866. LDC LDNI+1
  867. STM STMA
  868. LJM ONL1 RETURN ON LINE
  869.  
  870. * PROCESS END OF LINE (CARRIAGE RETURN, ECS, ETX).
  871.  
  872. EOL5 BSS 0 ENTRY
  873. LDC ONL2 SET ON LINE
  874. STM TOCA,OT
  875. LDD LI RESET LINE SPEED FOR OUTPUT
  876. STD RT
  877. LDI T5 STORE OUTPUT CHARACTER
  878. LPC 377
  879. LMC 5000
  880. STD OC
  881. TTADD OT,2
  882. CRD CM
  883. LDD CM+4
  884. ZJN EOL6 IF NOT SOURCE LINE INPUT
  885. LDC TTD SET THINK TIME DELAY PROCESSOR
  886. STM TOCA,OT
  887. LDD DP SET FIRST OUTPUT CHARACTER ENCOUNTERED
  888. LPC 6777
  889. LMC 1000
  890. STD DP
  891. EOL6 LDD CM+2 CLEAR USER NUMBER FLAG
  892. LPN 77
  893. STD CM+2
  894. LDN 0
  895. STD CK
  896. STD CM+4 CLEAR SOURCE LINE INPUT FLAG
  897. TTADD OT,2
  898. CWD CM
  899. LDD OT SET TERMINAL NUMBER
  900. STD T7
  901. LDD OC STORE DATA CHARACTER
  902. LPC 377
  903. RJM SDC
  904. RJM ETM ENTER TIME
  905. LJM STT1 RETURN TERMINAL STATUS
  906. EOS SPACE 4,20
  907. ** EOS - PROCESS END OF SCRIPT.
  908. *
  909. * ENTRY (DP - DP+4) = TERMINAL STATUS.
  910. * (RBUF - RBUF+4) = *RA+0* WORD.
  911. *
  912. * EXIT TERMINAL STATUS AND SCRIPT ADDRESS UPDATED.
  913. * TO *EOL5* IF LAST SESSION.
  914. * TO *EOL* IF NEW SESSION TO BE STIMULATED.
  915. *
  916. * USES T6, T7, CM - CM+4, DP - DP+4.
  917.  
  918.  
  919. EOS BSS 0 ENTRY
  920. LDD DP+2
  921. LPC 7600
  922. NJN EOS1 REPEAT COUNT PRESENT
  923. LDD DP SET END OF SESSION
  924. LPN 77
  925. LMC 6000
  926. STD DP
  927. LJM EOL5 PROCESS END OF LINE
  928.  
  929. EOS1 LDM RBUF CHECK LOOP FLAG
  930. SHN 21-13
  931. PJN EOS2 IF NEXT RECORD TO BE USED
  932. LJM EOS5 IF REPEAT ON SESSION RECORD
  933.  
  934. * LOOP ON FILE - SET ADDRESS OF NEXT SESSION RECORD.
  935.  
  936. EOS2 LDN 0
  937. STD T7
  938. LDD DP
  939. SHN -6
  940. ZJN EOS3 IF THE 1ST BYTE OF A NEW WORD
  941. AOD T7
  942. EOS3 AOD T7
  943. LDD DP
  944. LPN 77
  945. SHN 14
  946. ADD DP+1
  947. ADD T7
  948. STD DP+1
  949. SHN -14
  950. STD DP
  951. SBM RBUF
  952. SHN 14
  953. ADD DP+1
  954. SBM RBUF+1
  955. ZJN EOS4 IF LAST SESSION - LOOP TO FIRST SESSION
  956. LJM EOS9 IF SESSION TO CONTINUE TO NEXT SCRIPT
  957.  
  958. EOS4 LDM RBUF+3 SET FWA OF FIRST SCRIPT
  959. STD DP+1
  960. LDM RBUF+2
  961. LJM EOS8 DECREMENT REPEAT COUNT
  962.  
  963. * LOOP ON SESSION - SET ADDRESS OF CURRENT SESSION RECORD.
  964.  
  965. EOS5 LDD DP
  966. SHN -6
  967. ZJN EOS6 IF THE FIRST BYTE OF A NEW WORD
  968. LDN 1
  969. EOS6 STD T6 ADDRESS OF NEXT SESSION RECORD
  970. LDD DP
  971. LPN 77
  972. STD DP
  973. SHN 6
  974. ADD RA
  975. SHN 6
  976. ADD DP+1
  977. ADD T6 FORM POINTER TO START OF CURRENT RECORD
  978. CRD CM
  979. LDD DP+1 BACK UP POINTER TO START OF RECORD
  980. SBD CM+4
  981. ADD T6
  982. STD DP+1
  983. PJN EOS7 IF POSITIVE
  984. ADC 10000B IF NEGATIVE, ADD THE CARRY
  985. STD DP+1
  986. SOD DP DECREMENT DUE TO THE CARRY
  987. EOS7 LDD DP
  988. SBD CM+3
  989. EOS8 STD DP
  990.  
  991. * DECREMENT REPEAT COUNT.
  992.  
  993. EOS9 LDD DP+2 CHECK FOR UNLIMITED REPEAT COUNT
  994. LPC 7600 MASK REPEAT COUNT
  995. LMC 7600
  996. ZJN EOS10 IF RC=31 (MAXIMUM, DO NOT DECREMENT)
  997. LDC -200 DECREMENT REPEAT COUNT BY 1
  998. RAD DP+2
  999. EOS10 LJM EOL PROCESS END OF LINE
  1000. PET SPACE 4,20
  1001. ** PET - PROCESS END OF TASK.
  1002. *
  1003. * ENTRY (OT) = OUTPUT TERMINAL NUMBER.
  1004. *
  1005. * EXIT SCRIPT ADDRESS RESET IN *TTER*.
  1006. * TASK COMPLETION COUNTER ADVANCED.
  1007. *
  1008. * USES CM - CM+4, DP - DP+4, T0 - T0+4.
  1009. *
  1010. * MACROS TTADD.
  1011. *
  1012. * NOTES IF NO TASK ENTRY ADDRESS IS PRESENT IN *TTER*, THEN
  1013. * THE SPECIAL CHARACTER, *.ETSK*, WILL BE PROCESSED AS
  1014. * A CHARACTER OF DATA.
  1015. *
  1016. * *END OF TASK* PROCESSING WILL RESET THE DYNAMIC
  1017. * LOGIN FIELD IN *TTER*.
  1018.  
  1019.  
  1020. PET BSS 0 ENTRY
  1021. TTADD OT,2 READ THIRD WORD OF *TTER* ENTRY
  1022. CRD CM
  1023. LDD CM+2 READ SECOND WORD OF *TASK* ENTRY
  1024. LPN 77
  1025. STD CM+2
  1026. ADD CM+3
  1027. NJN PET1 IF TASK ENTRY ADDRESS PRESENT
  1028. LJM WTC7 NO SPECIAL PROCESSING REQUIRED
  1029.  
  1030. PET1 LDD CM+2
  1031. SHN 6
  1032. ADD RA
  1033. SHN 6
  1034. ADD CM+3
  1035. ADN 1
  1036. CRD T0
  1037. AOD T3 INCREMENT TASK COMPLETED COUNTER
  1038. LDD CM+2 WRITE SECOND WORD OF *TASK* ENTRY
  1039. SHN 6
  1040. ADD RA
  1041. SHN 6
  1042. ADD CM+3
  1043. ADN 1
  1044. CWD T0
  1045. TTADD OT,0 READ TERMINAL STATUS
  1046. CRD DP
  1047. LDD DP SET OLD SCRIPT ADDRESS
  1048. LMD CM
  1049. LPC 7000
  1050. LMD CM
  1051. STD DP
  1052. LDD CM+1
  1053. STD DP+1
  1054. TTADD OT,0 SET SCRIPT ADDRESS
  1055. CWD DP REPLACE *TTER* WITH OLD SCRIPT ADDR
  1056. LDD CM+2 CLEAR TASK ENTRY ADDRESS
  1057. SCN 77
  1058. STD CM+2
  1059. LDN 0
  1060. STD CM+3
  1061. TTADD OT,2
  1062. CWD CM
  1063. LJM WTC3 PROCESS NEXT CHARACTER
  1064. SNT SPACE 4,20
  1065. ** SNT - SET NEXT TASK.
  1066. *
  1067. * ENTRY (OT) = OUTPUT TERMINAL NUMBER.
  1068. *
  1069. * EXIT NEXT BEST TASK SET IN *TTER*.
  1070. * TO *WTC3*.
  1071. *
  1072. * USES T6, T7, CM - CM+4, DP - DP+4.
  1073. *
  1074. * MACROS TTADD.
  1075.  
  1076.  
  1077. SNT BSS 0 ENTRY
  1078. TTADD OT,0 READ TERMINAL STATUS
  1079. CRD CM
  1080. TTADD OT,2 READ TASK ADDRESS
  1081. CRD DP
  1082. LDD CM SAVE CURRENT SCRIPT ADDRESS
  1083. LPC 777
  1084. STD DP
  1085. LDD CM+1
  1086. STD DP+1
  1087. LDD RA GET NEXT BEST TASK
  1088. SHN 6
  1089. ADN RANT
  1090. CRD CM
  1091. LDD CM+3
  1092. SHN 14
  1093. ADD CM+4
  1094. NJN GNT1 IF TASK SET
  1095. LDD RA ADVANCE NO TASK COUNTER
  1096. SHN 6
  1097. ADN RASC
  1098. CRD CM
  1099. AOD CM+4
  1100. LDD RA GET DEFAULT TASK ADDRESS
  1101. SHN 6
  1102. ADN RASC
  1103. CWD CM
  1104. ADN RATK SET DEFAULT TASK
  1105. CRD CM
  1106. STM GNTA SET DEFAULT TASK FLAG
  1107. LDD CM+3
  1108. SHN 14
  1109. ADD CM+4 LOAD ADDRESS OF TASK TABLE
  1110. NJN GNT1 IF TASK TABLE EXISTS
  1111. LJM WTC7 CONTINUE CHARACTER PROCESSING
  1112.  
  1113. GNT1 LDD CM+4 SAVE FWA OF TASK
  1114. STD T7
  1115. LDD CM+3 GET FWA OF TASK TEXT
  1116. LPN 77
  1117. STD T6
  1118. SHN 6
  1119. ADD RA
  1120. SHN 6
  1121. ADD CM+4
  1122. CRD CM
  1123. ADN 1
  1124. CRD T0 READ SECOND WORD OF TASK ENTRY
  1125. LDD DP+2
  1126. LPC 7700
  1127. ADD T6
  1128. STD DP+2
  1129. LDD T7
  1130. STD DP+3
  1131. TTADD OT,2 SAVE OLD SCRIPT ADDRESS
  1132. CWD DP
  1133. TTADD OT,0 READ TERMINAL STATUS
  1134. CRD DP
  1135. LDD DP SET TASK ADDRESS
  1136. LPC 7000
  1137. ADD CM+3
  1138. STD DP
  1139. LDD CM+4
  1140. STD DP+1
  1141. TTADD OT,0
  1142. CWD DP
  1143. LDC **
  1144. GNTA EQU *-1 (DEFAULT TASK FLAG)
  1145. NJN GNT2 IF DEFAULT TASK SELECTED
  1146. LDN ZERL CLEAR TASK ADDRESS
  1147. CRD CM
  1148. LDD RA
  1149. SHN 6
  1150. ADN RANT
  1151. CWD CM
  1152. GNT2 AOD T4 INCREMENT *TASK CALLED*
  1153. LDD T6 UPDATE SECOND WORD OF *TASK* ENTRY
  1154. SHN 6
  1155. ADD RA
  1156. SHN 6
  1157. ADD T7
  1158. ADN 1
  1159. CWD T0
  1160. LDN 0 CLEAR DEFAULT TASK FLAG
  1161. STM GNTA
  1162. LJM WTC3 PROCESS NEXT CHARACTER
  1163. OTT SPACE 4,10
  1164. ** OTT - OPTIONAL THINK TIME.
  1165. *
  1166. * ENTRY ((T5)) = OUTPUT CHARACTER.
  1167. * (TO) = OPTIONAL THINK TIME.
  1168. *
  1169. * EXIT (TO) = OPTIONAL THINK TIME.
  1170. * TO *WTC3*.
  1171. *
  1172. * USES TO, T6.
  1173. *
  1174. * MACROS TTADD.
  1175. *
  1176. * NOTE OPTIONAL THINK TIME IS SET INTO *TTER* WHEN
  1177. * END OF LINE IS PROCESSED.
  1178.  
  1179.  
  1180. OTT BSS 0 ENTRY
  1181. LDD TO
  1182. ZJN OTT4 IF NOT RESET REQUEST
  1183. LDC 6000 SET FLAG TO RESET INITIAL THINK TIME
  1184. STD TO
  1185. UJN OTT5 UPDATE *TTER*
  1186.  
  1187. OTT1 BSS 0 ENTRY
  1188. LDN 0
  1189. STD T6
  1190. OTT2 LDM TANV,T6 GET ASCII NUMBER FROM TABLE
  1191. ZJN OTT5 IF END OF TABLE - IGNORE CHARACTER
  1192. LMI T5
  1193. ZJN OTT3 IF MATCH
  1194. AOD T6
  1195. UJN OTT2 UPDATE *TTER*
  1196.  
  1197. OTT3 LDD TO SET OPTIONAL THINK TIME
  1198. LPC 777
  1199. SHN 3
  1200. LMD T6
  1201. OTT4 LMC 4000B SET FLAG (IN CASE OF LEADING 0 CHARS)
  1202. STD TO
  1203. UJN OTT5
  1204.  
  1205. OTT5 TTADD OT,1
  1206. CWD TW REPLACE *TTER-1* ENTRY
  1207. LJM WTC3 PROCESS NEXT CHARACTER
  1208. TANV SPACE 4,10
  1209. ** TANV - TABLE OF ASCII NUMERIC VALUES.
  1210.  
  1211.  
  1212. TANV BSS 0
  1213. LOC 0
  1214. CON .ZER 0
  1215. CON .ONE 1
  1216. CON .TWO 2
  1217. CON .THR 3
  1218. CON .FOR 4
  1219. CON .FIV 5
  1220. CON .SIX 6
  1221. CON .SEV 7
  1222. CON 0 END OF TABLE
  1223. LOC *O
  1224. SAN SPACE 4,10
  1225. ** SAN - SET ACCOUNT NUMBER.
  1226. *
  1227. * ENTRY ((T5)) = OUTPUT CHARACTER.
  1228. * (OT) = OUTPUT TERMINAL.
  1229. *
  1230. * EXIT ((T5)) = NEXT OUTPUT CHARACTER.
  1231. * ACCOUNT FLAG IN *TTER* UPDATED.
  1232. * TO *WTC3*.
  1233. *
  1234. * USES T5, T6, CM - CM+4.
  1235. *
  1236. * MACROS TTADD.
  1237.  
  1238.  
  1239. SAN BSS 0 ENTRY
  1240. LDM SDWA SET TERMINAL NUMBER
  1241. ADD OT
  1242. STD T6
  1243. TTADD OT,2 READ TERMINAL TABLE ENTRY
  1244. CRD CM
  1245. LDD CM+2 GET ACCOUNT NUMBER POINTER
  1246. SHN 14
  1247. LPN 7
  1248. NJN SAN1 IF FIRST CHARACTER PROCESSED
  1249. LDD T6 SET FIRST CHARACTER OF TERMINAL NUMBER
  1250. SHN 14
  1251. UJN SAN3 REPLACE SPECIAL CHARACTER
  1252.  
  1253. SAN1 SBN 1
  1254. NJN SAN2 IF SECOND CHARACTER PROCESSED
  1255. LDD T6 SET SECOND CHARACTER OF TERMINAL NUMBER
  1256. SHN 17
  1257. UJN SAN3 REPLACE SPECIAL CHARACTER
  1258.  
  1259. SAN2 SBN 1
  1260. NJN SAN4 IF THIRD CHARACTER PROCESSED - FLAG ERROR
  1261. LDD T6 SET THIRD CHARACTER OF TERMINAL NUMBER
  1262. SAN3 LPC 7 ISOLATE LOWER 3-BITS
  1263. STD T6
  1264. LDM TANV,T6 CONVERT NUMBER TO ASCII CHARACTER
  1265. STI T5 SAVE OUTPUT CHARACTER
  1266. LDD CM+2
  1267. ADC 100 INCREMENT ACCOUNT NUMBER POINTER BY 1
  1268. STD CM+2
  1269. TTADD OT,2 WRITE TERMINAL TABLE ENTRY
  1270. CWD CM
  1271. LJM WTC7 PROCESS NEXT CHARACTER
  1272.  
  1273. SAN4 LDC MSGF SET INTERNAL ERROR STATUS
  1274. STM STM12
  1275. LDC LDNI+1
  1276. STM STMA
  1277. LJM WTC3 PROCESS NEXT CHARACTER
  1278. TITLE DOWNLINE DATA PROCESSING ROUTINES.
  1279. RTC SPACE 4,25
  1280. ** RTC - READ TERMINAL CHARACTER.
  1281. *
  1282. * ENTRY (IC) = INPUT CHARACTER.
  1283. *
  1284. * EXIT TO *HNU* IF (IC) = 6000.
  1285. * TO *INI* IF (IC) = 6400.
  1286. *
  1287. * USES T7, DP - DP+4.
  1288. *
  1289. * CALLS ETM, SDC.
  1290.  
  1291.  
  1292. RTC SUBR ENTRY/EXIT
  1293. LDD IC
  1294. LPC 6777
  1295. LMC 1000
  1296. LMC 7000
  1297. ZJN RTCX IF PHONE LINE ENABLE
  1298. LMC .IISE&7000
  1299. NJN RTC1 IF NOT HANG UP
  1300. LJM HNU HANG UP
  1301.  
  1302. RTC1 LMC .IISI&.IISE
  1303. NJN RTC2 IF NOT BEGIN INPUT
  1304. LJM INI INITIATE INPUT
  1305.  
  1306. RTC2 LDM TOCA,IT CHECK ROUTINE
  1307. LMC LGI5
  1308. ZJN RTCX RETURN IF LOGIN IN PROCESS
  1309. LDC REJ SET REJECT
  1310. RTC3 STM TOCA,IT
  1311. RTC4 LDD IT SET TERMINAL NUMBER
  1312. STD T7
  1313. TTADD IT,0
  1314. CRD DP
  1315. LDD DP
  1316. SHN 21-11
  1317. MJN RTC5 IF NOT POSSIBLY THE SECOND CHARACTER
  1318. LDD IC CHARACTER
  1319. LPC 4376
  1320. LMC 4024
  1321. ZJN RTC6 IF ECHO *LF* - DO NOT PUT OUT TIME
  1322. LMC 4032&4024
  1323. ZJN RTC6 IF *CR* SENT
  1324. LMC 4000&4032
  1325. ZJN RTC5 IF NULL CHARACTER SENT FOR CARRIAGE DELAY
  1326. LMC 4376&4000
  1327. ZJN RTC5 IF DELETE CHARACTER SENT IN TAPE MODE
  1328. LDC 1000
  1329. RAD DP
  1330. TTADD IT,0
  1331. CWD DP SET FIRST CHARACTER FLAG
  1332. RJM ETM ENTER TIME
  1333. RTC5 LDD IC STORE DATA CHARACTER
  1334. LPC 377
  1335. RJM SDC
  1336. RTC6 LJM RTCX RETURN
  1337. HNU SPACE 4,25
  1338. ** HNU - HANG UP.
  1339. *
  1340. * ENTRY (IT) = INPUT TERMINAL.
  1341. * (NT) = NUMBER OF TERMINALS.
  1342. * (AT) = ACTIVE TERMINAL COUNT.
  1343. *
  1344. * EXIT IF REPEAT COUNT NOT PRESENT, TERMINAL SET OFF LINE
  1345. * (AT) = ACTIVE TERMINAL COUNT.
  1346. * (LC) = LOGIN CONTROL.
  1347. *
  1348. * USES AT, DP - DP+4, TW - TW+4.
  1349. *
  1350. * MACROS TTADD.
  1351. *
  1352. * NOTES IF A REPEAT COUNT IS PRESENT, *HNU* WILL
  1353. * INITIALIZE THE *TTER* ENTRY FOR THE NEXT SESSION
  1354. * TO BE PROCESSED. THIS INCLUDES SETTING THE THINK
  1355. * TIME, AND LOGIN DELAY. *PSO* HAS ALREADY SET
  1356. * THE SESSION ADDRESS IN *TTER*.
  1357. * IF NO REPEAT COUNT IS PRESENT, THE TERMINAL IS
  1358. * SET OFF LINE.
  1359.  
  1360.  
  1361. HNU BSS 0 ENTRY
  1362. TTADD IT,0 READ TERMINAL TABLE ENTRY
  1363. CRD DP
  1364. LDD DP SET OFF LINE
  1365. LPC 3777
  1366. LMC 4000
  1367. STD DP
  1368. TTADD IT,1
  1369. CRD TW
  1370. LDD TT REPLACE INITIAL THINK TIME
  1371. LPC 7600
  1372. ADD TI
  1373. STD TT
  1374. TTADD IT,0
  1375. CWD DP
  1376. LDD DP CHECK SESSION STATUS
  1377. SHN 21-12
  1378. MJN HNU1 IF END OF SESSIONS
  1379. LDD LD
  1380. STD CK SET *LOGOUT DELAY* AS *LOGIN DELAY*
  1381. TTADD IT,0
  1382. CWD DP REPLACE TERMINAL TABLE ENTRY
  1383. TTADD IT,2 CLEAR LINE FEED
  1384. CRD CM
  1385. LDD CM
  1386. LPC 3777
  1387. STD CM
  1388. TTADD IT,2
  1389. CWD CM
  1390. LDC LGI SET LOGIN
  1391. STM TOCA,IT
  1392. LJM RTCX RETURN
  1393.  
  1394. HNU1 SOD AT DECREMENT ACTIVE TERMINAL COUNT
  1395. LDC OFL2 SET OFF LINE
  1396. LJM RTC3 RETURN
  1397. INI SPACE 4,25
  1398. ** INI - INITIATE INPUT.
  1399. *
  1400. * ENTRY UPLINE DATA TO BE INITIATED.
  1401. * (IT) = INPUT TERMINAL.
  1402. *
  1403. * EXIT OUTPUT PROCESSOR SET IN *TOCA*.
  1404. * INPUT TYPING SPEED SET IF LOGIN IN PROCESS.
  1405. *
  1406. * USES DP - DP+4.
  1407. *
  1408. * CALLS HNU.
  1409. *
  1410. * MACROS TTADD.
  1411.  
  1412.  
  1413. INI BSS 0 ENTRY
  1414. TTADD IT,0
  1415. CRD DP
  1416. LDD DP
  1417. SHN -12
  1418. LMN 3
  1419. ZJP INI2 IF END OF SCRIPT HAS BEEN REACHED
  1420. LDM TOCA,IT
  1421. LMC LGI5
  1422. NJN INI1 IF LOGIN NOT IN PROCESS
  1423. TTADD IT,1
  1424. CRD TW
  1425. LDD IS SET INPUT TYPING SPEED FOR DATA RATE
  1426. STD RT
  1427. STD CK
  1428. TTADD IT,0
  1429. CWD DP
  1430. LDC WTC SET WRITE CHARACTER
  1431. STM TOCA,IT
  1432. LJM RTCX
  1433.  
  1434. INI1 LDC TTD SET THINK TIME
  1435. STM TOCA,IT
  1436. LJM RTCX RETURN
  1437.  
  1438. INI2 LDC MSGG SET INTERNAL ERROR STATUS
  1439. STM STMB
  1440. LDC LDNI+1
  1441. STM STMA
  1442. LDD IT SET TERMINAL NUMBER IN MESSAGE
  1443. SHN -6
  1444. RJM C2D CONVERT DIGITS
  1445. STM MSGH
  1446. LDD IT
  1447. RJM C2D CONVERT DIGITS
  1448. STM MSGH+1
  1449. LJM HNU HANG UP PHONE
  1450. TITLE COMMON SUBROUTINES.
  1451. ETM SPACE 4,10
  1452. ** ETM - ENTER TIME.
  1453. *
  1454. * ENTRY (LS) = LAST SECOND CLOCK.
  1455. * (LM) = LAST MILLESECOND CLOCK.
  1456. *
  1457. * EXIT TIME STAMP SET ON DATA.
  1458. *
  1459. * CALLS SDC.
  1460.  
  1461.  
  1462. ETM SUBR ENTRY/EXIT
  1463. LDD LS ENTER LAST SECOND CLOCK
  1464. LPC 1777
  1465. LMC 6000 SET TIME FLAG FOR *DEMUX*
  1466. RJM SDC STORE TIME BYTE
  1467. LDD LM ENTER MILLISECONDS
  1468. LPC 1777
  1469. LMC 4000 SET TIME FLAG
  1470. RJM SDC STORE MS TIME BYTE
  1471. UJN ETMX RETURN
  1472. SAA SPACE 4,10
  1473. ** SAA - SET ABSOLUTE ADDRESSES.
  1474. *
  1475. * EXIT ABSOLUTE ADDRESSES SET IN *SDW*.
  1476. *
  1477. * USES T1 - T2, CM - CM+4.
  1478.  
  1479.  
  1480. SAA SUBR ENTRY/EXIT
  1481. LDC **
  1482. SAAA EQU *-1 (FET ADDRESS)
  1483. SHN 6
  1484. LMC ** (FET ADDRESS)
  1485. SAAB EQU *-1
  1486. ZJN SAAX IF NO OUTPUT RECOVERED
  1487. ADD RA SET IN POINTER ADDRESS
  1488. SHN 6
  1489. ADN 2
  1490. STD T2
  1491. STM .INA+1
  1492. SHN -14
  1493. STD T1
  1494. ADC LDCI
  1495. STM .INA
  1496. LDD T1
  1497. SHN 14
  1498. LMD T2
  1499. CRD IN READ IN
  1500. * PSN (AFTER FIRST ENTRY)
  1501. SAAC EQU *-1
  1502. SBN 1
  1503. CRD CM READ FIRST
  1504. LDD CM+3
  1505. LPN 37
  1506. SHN 14
  1507. ADD CM+4
  1508. SBN 1 ADJUST FOR IN ADVANCEMENT
  1509. STM .FT1+1
  1510. SHN -14
  1511. ADC LDCI
  1512. STM .FT1
  1513. LDD T1 READ LIMIT
  1514. SHN 14
  1515. LMD T2
  1516. ADN 2
  1517. CRD CM
  1518. LDD CM+3
  1519. LPN 37
  1520. SHN 6
  1521. ADD RA
  1522. SHN 6
  1523. ADD CM+4
  1524. SBN 1
  1525. STM .LM1+1
  1526. SHN -14
  1527. ADC LMCI
  1528. STM .LM1
  1529. LDD RA SET RA
  1530. SHN 6
  1531. STM .RA1+1
  1532. SHN -14
  1533. ADC ADCI
  1534. STM .RA1
  1535. LDC PSNI DISABLE READ OF IN
  1536. STM SAAC
  1537. LJM SAAX RETURN
  1538. SDC SPACE 4,20
  1539. ** SDC - STORE DATA CHARACTER.
  1540. *
  1541. * ENTRY (A) = CHARACTER.
  1542. * (T7) = TERMINAL NUMBER.
  1543. *
  1544. * EXIT DATA WORD IN *TTER* UPDATED WITH CHARACTER.
  1545. *
  1546. * USES T1, CM - CM+4.
  1547. *
  1548. * CALLS SDW.
  1549. *
  1550. * NOTES *SDC* USES THE DATA WORD (FOURTH WORD OF
  1551. * THE *TTER* ENTRY) AS A TEMPORARY BUFFER FOR
  1552. * OUTPUT. ONCE THIS WORD IS FULL, *SDC* IS CALLED
  1553. * TO ENTER IT INTO THE OUTPUT BUFFER.
  1554.  
  1555.  
  1556. SDC SUBR ENTRY/EXIT
  1557. STD T1 SAVE CHARACTER
  1558. LDN 1 (NO OUTPUT RECOVERY)
  1559. * LDN 0 (OUTPUT RECOVERY)
  1560. SDCA EQU *-1
  1561. NJN SDCX IF NO OUTPUT RECOVERY
  1562. TTADD T7,3 READ TERMINAL TABLE ENTRY
  1563. CRD CM
  1564. AOD CM
  1565. LMN 4
  1566. ZJN SDC1 IF END OF WORD PACK
  1567. LDD T1
  1568. STM CM,CM
  1569. TTADD T7,3 WRITE TERMINAL TABLE ENTRY
  1570. CWD CM
  1571. LDD T1
  1572. NJN SDC2 IF NOT END OF SESSION
  1573. SDC1 RJM SDW
  1574. SDC2 UJN SDCX RETURN
  1575. SDW SPACE 4,20
  1576. ** SDW - STORE DATA WORD.
  1577. *
  1578. * ENTRY (T7) = TERMINAL NUMBER.
  1579. * (T1) = CHARACTER.
  1580. * (IN - IN+4) = ADDRESS TO IN POINTER.
  1581. *
  1582. * EXIT DATA WORD WRITTEN TO FET BUFFER.
  1583. * IN POINTER UPDATED IN FET.
  1584. *
  1585. * USES IN+3, IN+4, CM - CM+4.
  1586. *
  1587. * CALLS DFM.
  1588.  
  1589.  
  1590. SDW SUBR ENTRY/EXIT
  1591. LDD T7 ENTER TERMINAL NUMBER
  1592. ADC **
  1593. SDWA EQU *-1 (TERMINAL BIAS)
  1594. STD CM
  1595. LDD T1 ENTER CHARACTER
  1596. STD CM+4
  1597. LDD IN+3 STORE DATA WORD
  1598. SHN 14
  1599. ADD IN+4
  1600. .RA1 ADC **
  1601. CWD CM
  1602. .LM1 LMC ** CHECK IN
  1603. NJN SDW1 IF IN .NE LIMIT-1
  1604. .FT1 LDC ** RESET IN = FIRST
  1605. STD IN+4
  1606. SHN -14
  1607. STD IN+3
  1608. SDW1 AOD IN+4 ADVANCE IN
  1609. SHN -14
  1610. ZJN SDW2
  1611. AOD IN+3
  1612. SDW2 BSS 0
  1613. .INA LDC ** UPDATE IN
  1614. CWD IN
  1615. ADN 1
  1616. CRD CM READ OUT
  1617. LDD IN+3
  1618. SBD CM+3 IN-OUT
  1619. SHN 14
  1620. ADD IN+4
  1621. SBD CM+4
  1622. NJN SDW3 IF IN IS NOT EQUAL TO OUT
  1623. LDC MSGC OVERFLOW MESSAGE
  1624. RJM DFM
  1625. SDW3 LDN ZERL
  1626. CRD CM
  1627. TTADD T7,3 CLEAR DATA WORD ENTRY
  1628. CWD CM CLEAR ACCUMULATOR WORD
  1629. LJM SDWX RETURN
  1630. TITLE INITIALIZATION.
  1631. PRS SPACE 4,20
  1632. ** PRS - PRESET PROGRAM.
  1633.  
  1634.  
  1635. PRS3 LDN 0 CLEAR TERMINAL NUMBER
  1636. STD T1
  1637. LDD NT SET ACTIVE TERMINAL COUNT
  1638. STD AT
  1639. PRS4 LDC LGI ENTRY ADDRESS = LOGIN
  1640. STM TOCA,T1
  1641. TTADD T1,0
  1642. CRD CM
  1643. LDD CM CHECK DISABLED STATUS
  1644. SHN 21-12
  1645. PJN PRS5 IF TERMINAL ACTIVE
  1646. SOD AT DECREMENT ACTIVE TERMINAL COUNT
  1647. LDC OFL2 SET ENTRY ADDRESS OFF LINE
  1648. STM TOCA,T1
  1649. PRS5 AOD T1 ADVANCE TERMINAL NUMBER
  1650. LMD NT
  1651. NJN PRS4 IF NOT END OF TABLE
  1652. LDC RTCL READ REAL TIME CLOCK
  1653. CRD CM
  1654. LDD CM+4 SET LAST MILLISECOND COUNT
  1655. STM STMD SET PREVIOUS TIME
  1656. LDD RA READ *RA*
  1657. SHN 6
  1658. CRM RBUF,ON
  1659. * UJN PRSX RETURN
  1660.  
  1661. PRS SUBR ENTRY/EXIT
  1662. PAUSE NE
  1663. LDK NCPL CHECK *STIMULA* CONTROL POINT
  1664. CRD CM
  1665. LDD CM+1
  1666. SHN 7
  1667. LMD CP
  1668. ZJN PRS0 IF *STIMULA* AT LAST CONTROL POINT
  1669. LDC =C+ *STM* MUST BE AT LAST CP.+
  1670. LJM ABT ABORT
  1671.  
  1672. PRS0 RJM CTS CHECK *IAF* STATUS
  1673. LDD IR+3
  1674. LPN 37
  1675. STD IR+3
  1676. ADD IR+4
  1677. NJN PRS1 IF STIMULATION TO BE INITIATIED
  1678. RJM ICT INITIALIZE CONTROL TABLE
  1679. LJM DPP DROP PPU
  1680.  
  1681. PRS1 RJM ISC INITIALIZE STIMULATOR CHANNELS
  1682. LDD RA READ CONTROL WORD
  1683. SHN 6
  1684. ADN RACW
  1685. CRD CM
  1686. LDD CM SET NUMBER OF *TTER* ENTRIES
  1687. STM SADA
  1688. LDD CM+1 SET ACTIVATE COUNT
  1689. STD LC
  1690. LDD CM+2 SET THINK TIME INCREMENT MASK
  1691. LPN 77
  1692. RAM TTDA
  1693. LDD CM+4 SAVE REQUIRED FL
  1694. STM SCPA
  1695. LDD IR+3 READ CONTROL TABLE ENTRY
  1696. LPN 37
  1697. SHN 6
  1698. ADD RA
  1699. SHN 6
  1700. ADD IR+4
  1701. CRD TW
  1702. RJM SCP START CENTRAL PROGRAM
  1703. RJM IOR INITIALIZE OUTPUT RECOVERY
  1704. LDD TW+3 SET BASE TERMINAL TABLE ADDRESS
  1705. LPN 37
  1706. STD T3
  1707. LDD TW+4
  1708. STD T4
  1709. RJM SAD SET TERMINAL TABLE ADDRESSES
  1710. LDN 0 CLEAR OUTPUT CHARACTER
  1711. STD OC
  1712. STD IC CLEAR INPUT CHARACTER
  1713. STD MT MAXIMUM CYCLE TIME
  1714. STD LM LAST MILLISECOND CLOCK
  1715. STD LS LAST SECOND CLOCK
  1716. LDD NT INPUT TERMINAL = N-1
  1717. SBN 1
  1718. STD IT
  1719. ZJN PRS2 IF ONLY ONE TERMINAL
  1720. LDN 1
  1721. PRS2 STD OT SET OUTPUT TERMINAL NUMBER
  1722. LJM PRS3 INITIALIZE *TOCA*
  1723. TOCA SPACE 4,10
  1724. ** TOCA - TABLE OF OUTPUT CONTROL ADDRESSES.
  1725. *
  1726. * ENTRY 1 WORD.
  1727. *
  1728. * ADDRESS OF CURRENT OUTPUT ROUTINE.
  1729.  
  1730.  
  1731. USE //
  1732. RBUF EQU 6000 *RA* BUFFER
  1733. TOCA EQU RBUF+5 OUTPUT PROCESSOR BUFFER
  1734. IBUF EQU TOCA+100 INPUT BUFFER
  1735. OBUF EQU IBUF+100 OUTPUT BUFFER
  1736. TBUF EQU OBUF+100 TRACE BUFFER
  1737. ERRNG 7776-TBUF-100*5 BUFFER OVERFLOW
  1738. ERRNG TOCA-PRSX-2 OVERFLOW INTO BUFFER
  1739. ABT SPACE 4,10
  1740. ** ABT - ABORT JOB.
  1741. *
  1742. * ENTRY (A) = ERROR MESSAGE.
  1743.  
  1744.  
  1745. ABT RJM DFM ISSUE DAYFILE MESSAGE
  1746. MONITOR ABTM ABORT JOB
  1747. LJM PPR EXIT TO PP RESIDENT
  1748. CTS SPACE 4,15
  1749. ** CTS - CHECK *IAF* STATUS.
  1750. *
  1751. * ENTRY NONE.
  1752. *
  1753. * EXIT (NT) = NUMBER OF TERMINALS.
  1754. * (DP) = STIMULATOR CHANNEL.
  1755. * TO *ABT* IF *IAF* NOT ACTIVE.
  1756. *
  1757. * USES T1, T2, CM - CM+4.
  1758. *
  1759. * MACROS SFA.
  1760.  
  1761.  
  1762. CTS5 LDC =C* IAF NOT ACTIVE.*
  1763. LJM ABT
  1764.  
  1765. CTS SUBR ENTRY/EXIT
  1766. LDN PPUL SET PPU COUNT
  1767. CRD CM
  1768. LDD CM+2
  1769. STD T1
  1770. LMN 10D
  1771. ZJN CTS1 IF ONLY 10 PPUS
  1772. LDN 20D
  1773. STD T1 SET 20 PPUS
  1774. CTS1 LDN PPCP SET START OF PPU COMMUNICATIONS AREA
  1775. CRD CM
  1776. LDD CM+4
  1777. STD T2
  1778. CTS2 SOD T1 DECREMENT PPU COUNT
  1779. ZJN CTS5 IF END OF PPU
  1780. LDN 10 ADVANCE INPUT REGISTER ADDRESS
  1781. RAD T2
  1782. CRD CM READ INPUT REGISTER
  1783. LDD CM+1 CHECK NAME
  1784. SCN 77
  1785. SHN 6
  1786. LMD CM
  1787. LMC 3RN1T
  1788. NJN CTS2 IF NOT *1TN*
  1789. CTS3 SFA EST,CM+2 READ STIMULATOR EST ENTRY
  1790. ADK EQDE
  1791. CRD CM
  1792. LDD CM+1 SET CHANNEL NUMBER
  1793. LPN 37
  1794. STD DP
  1795. LDD CM+4 SET PORT COUNT
  1796. LPC 777
  1797. NJN CTS4 IF PORTS SPECIFIED
  1798. LDD TH SET DEFAULT PORT COUNT
  1799. CTS4 STD NT
  1800. LJM CTSX RETURN
  1801. ICT SPACE 4,20
  1802. ** ICT - INTIALIZE CONTROL TABLE.
  1803. *
  1804. * ENTRY (NT) = NUMBER OF TERMINALS.
  1805. *
  1806. * EXIT CONTROL TABLE BUILT STARTING AT (RA+5).
  1807. *
  1808. * USES CM - CM+4, T1 - T5.
  1809.  
  1810.  
  1811. ICT SUBR ENTRY/EXIT
  1812. LDN ZERL RETURN NUMBER OF TERMINALS
  1813. CRD CM
  1814. CRD T1
  1815. LDD NT
  1816. STD CM+1
  1817. LDD RA
  1818. SHN 6
  1819. ADN TCWD
  1820. CWD CM
  1821. ADN 1 SET END OF TABLE
  1822. CWD T1
  1823. LDN 1 SET NUMBER OF *TCWD* ENTRIES
  1824. STD T1+4
  1825. LDD RA
  1826. SHN 6
  1827. ADN RAPP
  1828. CWD T1
  1829. UJN ICTX RETURN
  1830. IOR SPACE 4,10
  1831. ** IOR - INITIALIZE OUTPUT RECOVERY.
  1832. *
  1833. * ENTRY (TW - TW+4) = CONTROL TABLE ENTRY.
  1834. *
  1835. * EXIT FET ADDRESS SET IN *SAA*
  1836. *
  1837. * USES T1, T2.
  1838.  
  1839.  
  1840. IOR SUBR ENTRY/EXIT
  1841. LDD TW+3 SET ADDRESS OF IN
  1842. SCN 77
  1843. STM SAAA
  1844. SHN 6
  1845. LMD TW+2
  1846. STM SAAB
  1847. ZJN IORX IF NO OUTPUT RECOVERED
  1848. LDC IORA SET MODIFICATION TABLE
  1849. STD T1
  1850. IOR1 LDI T1 SET ADDRESS
  1851. ZJN IOR2 IF END OF TABLE
  1852. STD T2
  1853. AOD T1
  1854. LDI T1
  1855. STI T2
  1856. AOD T1
  1857. UJN IOR1 LOOP TO END OF TABLE
  1858.  
  1859. IOR2 LDD TW SET TERMINAL BIAS
  1860. LPC 3777
  1861. STM SDWA
  1862. LJM IORX RETURN
  1863.  
  1864. IORA BSS 0
  1865. CON SDCA
  1866. LDN 0
  1867. CON ESDA
  1868. LDN 0
  1869.  
  1870. CON 0 END OF TABLE
  1871. ISC SPACE 4,20
  1872. ** ISC - INITIALIZE STIMULATOR CHANNELS.
  1873. *
  1874. * ENTRY (DP) = CHANNEL NUMBER.
  1875. *
  1876. * EXIT CHANNEL INSTRUCTIONS MODIFIED.
  1877. *
  1878. * USES T1, T2.
  1879. *
  1880. * MACROS CHTL.
  1881.  
  1882.  
  1883. ISC SUBR ENTRY/EXIT
  1884. LDC TCHS SET FWA OF CHANNEL TABLE
  1885. STD T1
  1886. ISC1 LDI T1
  1887. STD T2
  1888. LDD DP
  1889. CHTL *
  1890. SBN CH
  1891. ZJN ISCX RETURN IF ALL INSTRUCTIONS MODIFIED
  1892. RAI T2 MODIFY INSTRUCTION
  1893. AOD T1
  1894. UJN ISC1 LOOP FOR ALL INSTRUCTIONS
  1895.  
  1896. TCHS CHTB
  1897. RQS SPACE 4,20
  1898. ** RQS - REQUEST STORAGE.
  1899. *
  1900. * ENTRY (A) = STORAGE REQUEST.
  1901. *
  1902. * EXIT STIMULATOR FIELD LENGTH ADJUSTED.
  1903. * TO *ABT* IF ERROR.
  1904. *
  1905. * USES T1, T2, CM - CM+4.
  1906. *
  1907. * MACROS MONITOR, PAUSE.
  1908.  
  1909.  
  1910. RQS3 LDC =C*MEMORY REQUEST ERROR.*
  1911. LJM ABT
  1912.  
  1913. RQS SUBR ENTRY/EXIT
  1914. STD T1 SAVE REQUEST
  1915. LDD IR+3 CHECK OUTPUT RECOVERY
  1916. SCN 77
  1917. ADD IR+2
  1918. ZJN RQS1 IF NOT SET
  1919. LDD NT
  1920. RQS1 ADD NT COMPUTE LAST WORD TO BE WRITTEN
  1921. ADD NT
  1922. ADD NT
  1923. STD T2
  1924. LDD IR+3
  1925. LPN 37
  1926. SHN 14
  1927. ADD IR+4
  1928. ADD T2
  1929. ADN 77
  1930. SHN -6
  1931. SBD T1
  1932. ZJN RQS2 IF ENOUGH ROOM
  1933. PJN RQS3 IF NOT ENOUGH ROOM FOR WRITES
  1934. RQS2 LDD T1 REQUEST STORAGE
  1935. STD CM+1
  1936. LDN 0 SET CM REQUEST
  1937. STD CM+2
  1938. MONITOR RSTM
  1939. LDD FL CHECK FIELD LENGTH
  1940. LMD T1
  1941. NJN RQS2 IF REQUEST REJECTED
  1942. LJM RQSX RETURN
  1943. SCP SPACE 4,20
  1944. ** SCP - START CENTRAL PROGRAM.
  1945. *
  1946. * ENTRY (SCPA) = FL REQUIRED FOR STIMULATION.
  1947. * (TW - TW+4) = CONTROL WORD FROM *TCWD*.
  1948. *
  1949. * EXIT FL SET.
  1950. * CPU PROGRAM STARTED IF OUTPUT TO BE RECOVERED.
  1951. * REMAINING COPIES OF STIMULATION DRIVER CALLED.
  1952. * TO *DPP* IF ERROR FLAG SET AT CONTROL POINT.
  1953. *
  1954. * USES CM - CM+4, T1 - T1+4.
  1955. *
  1956. * CALLS DFM, RQS.
  1957. *
  1958. * MACROS CHTE, MONITOR, PAUSE.
  1959. *
  1960. * NOTES *SCP* IS RESPONSIBLE FOR STARTING THE CPU
  1961. * IF OUTPUT IS TO BE RECOVERED.
  1962.  
  1963.  
  1964. SCP SUBR ENTRY/EXIT
  1965. LDD IR+3
  1966. SHN 14
  1967. LMD IR+4
  1968. LMN TCWD
  1969. NJN SCPX IF NOT FIRST COPY OF *1TS*
  1970. LDN 0
  1971. STD CM+1
  1972. MONITOR DCPM CLEAR CPU STATUS
  1973. LDC * (REQUIRED FL)
  1974. SCPA EQU *-1
  1975. RJM RQS REQUEST STORAGE
  1976. LDC =C* STIMULATION INITIATED.*
  1977. RJM DFM
  1978.  
  1979. * START CPU IF OUTPUT IS TO BE RECOVERED.
  1980.  
  1981. LDD TW+3
  1982. SCN 77
  1983. ADD TW+2
  1984. ZJN SCP1 IF CENTRAL PROGRAM NOT NEEDED
  1985. LDD CP READ EXCHANGE PACKAGE
  1986. CRD CM
  1987. LDC STMO SET (P)
  1988. STD CM+1
  1989. SHN -14
  1990. STD CM
  1991. LDD CP
  1992. CWD CM
  1993. MONITOR RCPM REQUEST CPU
  1994. SCP1 LJM SCPX RETURN
  1995. SAD SPACE 4,10
  1996. ** SAD - SET ADDRESSES.
  1997. *
  1998. * ENTRY (T3 - T4) = BASE ADDRESS FOR *TTER*.
  1999. *
  2000. * EXIT TABLE ADDRESS SET.
  2001. *
  2002. * USES T1, T2, T3, T4, T5.
  2003.  
  2004.  
  2005. SAD SUBR ENTRY/EXIT
  2006. LDC SADB
  2007. STD T1
  2008. SAD1 LDI T1 SET NEXT TABLE ADDRESS
  2009. ZJN SADX IF NO MORE TABLES
  2010. STD T2
  2011. SAD2 LDI T2
  2012. NJN SAD3 IF NOT END OF TABLE
  2013. LDC * (NUMBER OF *TTER* ENTRIES)
  2014. SADA EQU *-1
  2015. RAD T4
  2016. SHN -14
  2017. RAD T3
  2018. AOD T1
  2019. UJN SAD1 PROCESS NEXT TABLE
  2020.  
  2021. SAD3 STD T5
  2022. LDD T3 SET TABLE ENTRY ADDRESS
  2023. RAI T5
  2024. LDD T4
  2025. RAM 1,T5
  2026. AOD T2
  2027. UJN SAD2 LOOP
  2028.  
  2029. SADB BSS 0
  2030. CON TTE0 *TTER* WORD 0 ADDRESS
  2031. CON TTE1 *TTER* WORD 1 ADDRESSES
  2032. CON TTE2 *TTER* WORD 2 ADDRESSES
  2033. CON TTE3 *TTER* WORD 3 ADDRESSES
  2034. CON TTE4 *TTER* WORD 4 ADDRESSES
  2035. CON 0 END OF TABLE
  2036. SPACE 4,10
  2037. ** INITIALIZATION TABLES.
  2038.  
  2039.  
  2040. TTE0 BSS 0
  2041. TTE0 HERE
  2042. CON 0
  2043.  
  2044. TTE1 BSS 0
  2045. TTE1 HERE
  2046. CON 0
  2047.  
  2048. TTE2 BSS 0
  2049. TTE2 HERE
  2050. CON 0
  2051.  
  2052. TTE3 BSS 0
  2053. TTE3 HERE
  2054. CON 0
  2055.  
  2056. TTE4 BSS 0
  2057. TTE4 HERE
  2058. CON 0
  2059. SPACE 4
  2060. END