User Tools

Site Tools


plato:source:plaopl:dsn1

Table of Contents

DSN1

Table Of Contents

  • [00006] ASO - APPLICATION SYSTEM SIGNON
  • [00095] DTS - DETERMINE TERMINAL SPEED
  • [00145] DTT - DETERMINE TERMINAL TYPE
  • [00286] BFI - READ NEXT BLOCK FROM CIRCULAR BUFFER
  • [00455] CSS - CHANGE IN SWITCH STATUS
  • [00524] DSM - DISPLAY SYSTEM MESSAGE
  • [00567] CPR - PRESET FOR CCP ERROR MESSAGE
  • [00626] C2O - CONVERT AND STORE TWO OCTAL DIGITS.
  • [00646] ST2 - STORE TWO TEXT CHARACTERS.
  • [00670] CD1 - CONVERT/DISPLAY $CD (LINK/STAT) MESSAGE - 1
  • [00732] ST2 - STORE TWO TEXT CHARACTERS.
  • [00750] SHX - STORE HEX CHARACTERS INTO THE MESSAGE BUFFER.
  • [00783] CD2 - CONVERT/DISPLAY $CD (LINK/STAT) MESSAGE - 2
  • [00846] SHX - STORE HEX CHARACTERS INTO THE MESSAGE BUFFER.
  • [00873] ST2 - STORE TWO TEXT CHARACTERS.
  • [00891] SND - SEND MESSAGE IN BUFFER TO THE ERROR LOG, SET TERMNATOR.
  • [00909] C2O - CONVERT AND STORE TWO OCTAL DIGITS.
  • [00935] CE1 - CONVERT/DISPLAY $CE (CE ERROR) MESSAGES
  • [01060] SHX - STORE HEX CHARACTERS INTO THE MESSAGE BUFFER.
  • [01089] ST2 - STORE TWO TEXT CHARACTERS.
  • [01107] SND - SEND MESSAGE IN BUFFER TO THE ERROR LOG, SET TERMNATOR.
  • [01211] SHX - STORE HEX CHARACTERS INTO THE MESSAGE BUFFER.
  • [01240] ST2 - STORE TWO TEXT CHARACTERS.
  • [01260] SND - SEND MESSAGE IN BUFFER TO THE ERROR LOG, SET TERMNATOR.
  • [01279] COR - CONVERT ERROR ORDINAL INTO REAL ERROR CODE.
  • [01349] DIB - DUMP INPUT BLOCK TO ERROR LOG.
  • [01410] EM7 - EM ACCESS FOR 700 SERIES.
  • [01458] RECS - READ ECS VIA MONITOR FUNCTION.
  • [01548] WECS - WRITE ECS VIA MONITOR FUNCTION.
  • [01636] EM8 - EM ACCESS ROUTINES FOR 800 SERIES.
  • [01667] RECS - READ UEM VIA DIRECT ACCESS.
  • [01732] WECS - WRITE UEM VIA DIRECT ACCESS.
  • [01801] GPS - GET PRIMARY SWITCH NUMBER
  • [01895] IDP - INITIALIZE ESM ACCESS
  • [02108] KYO - PROCESS KEY BUFFER OVERFLOW PROBLEMS
  • [02206] LPG - LOAD PROGRAM INTO 2550
  • [02271] CNP - MASTER CLEAR 2550
  • [02283] GTW - MOVE WORDS FROM DISK BUFFER TO 2550 BUFFER
  • [02320] RDB - READ DISK BUFFER
  • [02348] MXE - PROCESS 2550 CHANNEL ERRORS
  • [02716] DXB - CONVERT NUMBER FROM DISPLAY CODE
  • [02894] PSM - PROCESS SYSTEM MESSAGE
  • [02963] RFE - RESERVE FRONT END.
  • [03124] RTT - RETURN TERMINAL TYPE
  • [03193] SSM - PROCESS SUPER SYSTEM MESSAGE
  • [03240] TER - TERMINATION OVERLAY
  • [03380] UMT - UPDATE MAXIMUM TERMINAL NUMBER IN USE
  • [03468] KEYS - CONVERSION FROM ASCII TO PLATO KEYS
  • [03473] KEY - MACRO TO CREATE KEY CONVERSION TABLE
  • [03655] NKY - CONVERSION FROM ASCII TO PLATO KEYS

Source Code

DSN1.txt
  1. DSN1
  2. * /--- FILE TYPE = E
  3. * /--- BLOCK ASO 00 000 86/05/28 14.31
  4. ASO OVERLAY (PROCESS APPLICATION SIGON-ON.)
  5. ASO SPACE 5,11
  6. ** ASO - APPLICATION SYSTEM SIGNON
  7. *
  8. * SIGN THIS TERMINAL INTO PLATO
  9.  
  10.  
  11. ORG //OVL+5
  12. ASO SUBR
  13. LDN 0 CLEAR *BFI LOADED FLAG
  14. STM BODC
  15. LDD NI GET HIGHEST POSSIBLE CONNECTION
  16. SHN 4
  17. STD T1
  18. LDM IBUF+7,IP GET PLATO STATION NUMBER
  19. ADD SI
  20. ADD CB
  21. STD ST
  22. SBM NCB+20,T1
  23. MJN ASO1 IF CONNECTION IN RANGE
  24. LDN TTBE T(D) TOO BIG
  25. RJM MES
  26. UJN ASOX EXIT
  27.  
  28. * LOG USER IN TO PLATO
  29. * UPDATE PP TABLES
  30. * SEND NEXT KEY TO PLATO
  31. * SEND ACKNOWLEDGE TO CNP
  32.  
  33. ASO1 LDN 0
  34. STM TOD,ST CLEAR OUTPUT DELAY
  35. LDM IBUF+5,IP
  36. STM SDT,ST SET S(D) IN PP TABLE
  37. LDM IBUF+6,IP
  38. STM TDT,ST SET T(D) IN PP TABLE
  39.  
  40. * SAVE TERMINAL TYPE
  41.  
  42. LDD RA
  43. SHN 6
  44. ADD TB
  45. ADD ST
  46. ADD ST
  47. CRD CM
  48. RJM DTT DETERMINE TERMINAL TYPE
  49. STM ASOA SAVE FOR LATER VERIFICATION
  50. SHN 4
  51. STD CM
  52. LDN 0
  53. STD CM+1 SHOW NO LOST KEYS
  54. LDD RA
  55. SHN 6
  56. ADD TB
  57. ADD ST
  58. ADD ST
  59. CWD CM UPDATE CM TABLE
  60. LDM IBUF+3,IP FETCH TERMINAL TYPE
  61. RJM DTS DETERMINE TERMINAL SPEED
  62. RAM TDT,ST SET TERMINAL SPEED
  63. LDN 0#04
  64. RJM PLM BUILD LOGIN MESSAGE
  65. LDD TH SET STATION IN USE
  66. STM TST,ST
  67.  
  68. * /--- BLOCK ASO 00 000 86/05/28 14.33
  69.  
  70. * CONVERT NETWORK TERMINAL TYPE TO PLATO TYPE
  71.  
  72. LDM ASOA GET TERMINAL TYPE
  73. STD T1
  74. LDC //RTTA
  75. STD T2
  76. RTT1 LDI T2
  77. ZJN RTT4 IF TERMINAL TYPE NOT FOUND
  78. LMD T1
  79. LPC 0#FE TERMINAL TYPE WITHOUT PARITY
  80. ZJN RTT2 IF TERMINAL FOUND
  81. AOD T2
  82. UJN RTT1 CHECK NEXT TERMINAL TYPE
  83.  
  84. RTT2 LJM ASOX VALID TYPE -- EXIT
  85.  
  86. RTT4 LDN 0
  87. STM TST,ST SHOW TERMINAL NOT ACTIVE
  88. LDN 0#0C
  89. RJM PLM REVALIDATE USER AT DPNC
  90. LJM ASOX EXIT
  91.  
  92. ASOA BSS 1 TEMP TERMINAL TYPE
  93. * /--- BLOCK ASO 00 000 86/05/28 14.33
  94. DTS SPACE 5,11
  95. ** DTS - DETERMINE TERMINAL SPEED
  96. *
  97. * ENTRY - (A) = NETWORK TERMINAL TYPE
  98. *
  99. * EXIT - (A) = -1 IF UNRECOGNIZED TERMINAL
  100. * 0 IF 1200 BAUD
  101. * 4000 IF 300 BAUD
  102.  
  103.  
  104. DTS3 LDI T2
  105. LPC 7400
  106.  
  107. DTS SUBR
  108. STD T1
  109. LDC DTSA
  110. STD T2
  111. DTS1 LDI T2
  112. ZJN DTS2 IF END OF LIST
  113. LMD T1
  114. LPC 377
  115. ZJN DTS3 IF TERMINAL TYPE FOUND
  116. AOD T2
  117. UJN DTS1
  118.  
  119. DTS2 BSS 0
  120. * LCN 1 (A) = UNRECOGNIZED
  121. LDN 0 (A) = 120 CPS IST
  122. UJN DTSX EXIT
  123.  
  124.  
  125. * NETWORK TERMINAL TYPE CONVERSION TABLE
  126. *
  127. * 1/LS, 1/TX, 2/, 8/NT
  128. *
  129. * LS = LINE SPEED (0- 120 CPS, 1- 300 CPS)
  130. * TX = TEKTRONIX (0 = STANDARD (IST), 1 = TEKTRONIX)
  131. * USED WHEN SETTING TTYPE IN LOGIN MESSAGE.
  132. * NT = NETWORK TERMINAL TYPE
  133.  
  134. DTSA VFD 1/1,3/0,8/0#3C 30 CPS IST
  135. VFD 1/0,3/0,8/0#3D 120 CPS IST
  136. VFD 1/1,1/1,2/0,8/0#3E 30 CPS TEKTRONIX
  137. VFD 1/0,1/1,2/0,8/0#3F 120 CPS TEKTRONIX
  138. VFD 1/1,3/0,8/0#03 30 CPS DEFAULT
  139. VFD 1/0,3/0,8/0#21 120 CPS DEFAULT
  140. VFD 1/1,3/0,8/0#2E 30 CPS NOS
  141. VFD 1/0,3/0,8/0#22 120 CPS NOS
  142. DATA 0
  143. * /--- BLOCK ASO 00 000 86/05/28 14.34
  144. DTT SPACE 5,11
  145. ** DTT - DETERMINE TERMINAL TYPE
  146. *
  147. * A SIGN-ON MESSAGE IS INTERROGATED TO DETERMINE
  148. * THE ASCII TERMINAL TYPE
  149. *
  150. * THE TERMINAL TYPE IS SPECIFIED AFTER THE SYSTEM
  151. * NAME -
  152. * PLEASE SIGN ON -- PLD,T
  153. *
  154. * T - TERMINAL TYPE
  155. *
  156. * IF NO TYPE IS SPECFIED, ASCII IST IS ASSUMED
  157. *
  158. * EXIT - (A) = TERMINAL TYPE
  159.  
  160.  
  161. DTT2 LDM IBUF+1,T1 (A) = TERMINAL TYPE
  162.  
  163. DTT SUBR
  164. LDD IP
  165. ADN 10
  166. STD T1 SET POINTER TO FIRST CHARACTER
  167. LDD IP
  168. ADD PL
  169. ADN 2-1
  170. STD T2 SET LWA TO SCAN (LWA-1 OF DATA)
  171. DTT1 LDM IBUF,T1
  172. LMN A.COMMA
  173. SCN 1 CLEAR PARITY BIT
  174. ZJN DTT2 IF COMMA FOUND
  175. AOD T1
  176. LMD T2
  177. NJN DTT1 IF MORE TO SCAN
  178. LDC A.I SET TERMINAL TYPE TO ASCII IST
  179. UJN DTTX EXIT
  180.  
  181. ERRNG OVLE-* OVERFLOW OF OVERLAY BUFFER
  182. QUAL *
  183. * /--- BLOCK ASP 00 000 86/05/28 14.35
  184. ASP OVERLAY (COMPLETE PLATO APPLICATION SIGNON.)
  185. ASP SPACE 5,11
  186. ** UPDATE PLATO ASCII CONNECTION TABLE
  187.  
  188.  
  189. ORG //OVL+5
  190. ASP SUBR
  191. LDN 0 CLEAR *BFI* LOADED FLAG
  192. STM BODC
  193.  
  194. * TEST FOR PLATO STATION IN USE.
  195.  
  196. ERRNZ STBKL-27D STATION BANK LENGTH .NE. 27D
  197.  
  198. * COMPUTE STATION BANK OFFSET (27 = 32-1-1-1-1-1).
  199.  
  200. LDD ST
  201. SBD CB
  202. ADD SB
  203. STD T1 1 * STATION
  204. SHN 5 32 * STATION
  205. SBD T1 31 * STATION
  206. SBD T1 30 * STATION
  207. SBD T1 29 * STATION
  208. SBD T1 28 * STATION
  209. SBD T1 27 * STATION
  210.  
  211. * COMPUTE ADDRESS OF *BANKADD* WORD
  212.  
  213. ADM BANKADD
  214. ADM NSYSBNK+1
  215. STD T2
  216. SHN -14
  217. ADM NSYSBNK
  218. STD T1
  219.  
  220. * READ THE *BANKADD* WORD FROM THE STATION BANK.
  221.  
  222. LDN 1
  223. STD T3
  224. LDN CN
  225. RJM RECS
  226.  
  227. * CHECK FOR THE PLATO STATION IN USE.
  228.  
  229. LDD CN
  230. SHN 6
  231. PJN ASO2 IF PLATO STATION SIGNED IN
  232. LDK TCAO ABORT ANY PENDING OUTPUT
  233. RJM STC
  234. UJN ASO4 CONTINUE LOGIN PROCESS
  235.  
  236. * THE PLATO STATION IS IN USE. SEND AN *SSLKEY*
  237. * TO PLATO AND A LOGOUT TO THE NETWORK.
  238.  
  239. ASO2 LDN PIUE PORT IN USE
  240. RJM MES
  241. ASO3 RJM SSL LOG OFF STATION
  242. LDN 0
  243. STM TST,ST SHOW TERMINAL NOT ACTIVE
  244. LDN 0#0C
  245. RJM PLM REVALIDATE USER AT DPNC
  246. LJM ASPX EXIT
  247. * /--- BLOCK ASP 00 000 86/07/23 14.06
  248.  
  249. ASO4 BSS 0
  250. LDN ZERL
  251. CRD CN
  252. LDM SDT,ST SET S(D)
  253. LPC 0#FF
  254. STD CN
  255. LDM TDT,ST SET T(D)
  256. LPC 0#FF
  257. STD CN+1
  258. LDM IBUF+3,IP SET TERMINAL TYPE
  259. STD CN+2
  260. LDM IBUF-2,IP SET FOB NUMBER
  261. SHN 10B * 256
  262. ADM IBUF-1,IP
  263. STD CN+3
  264. LDD ST WRITE CONNECTION INFO TO EM
  265. SBD CB
  266. ADD SB
  267. ADM ASCCON+1
  268. STD T2
  269. SHN -14
  270. ADM ASCCON
  271. STD T1
  272. LDN 1
  273. STD T3
  274. LDN CN
  275. RJM WECS
  276. LDN NXKY SEND NEXT KEY TO PLATO
  277. STD KY
  278. RJM SKY
  279. LJM ASPX EXIT
  280.  
  281. ERRNG OVLE-* OVERFLOW OF OVERLAY BUFFER
  282. QUAL *
  283. * /--- BLOCK BFI 00 000 86/05/28 14.36
  284. BFI OVERLAY (READ NEXT BLOCK FROM CIRCULAR BUFFER.)
  285. BFI SPACE 5,11
  286. ** BFI - READ NEXT BLOCK FROM CIRCULAR BUFFER
  287. *
  288. * ENTRY - (T4) = MAXIMUM BLOCK SIZE ACCEPTABLE
  289. * (FI2) = CPU IN POINTER
  290. * (FO2) = PPU OUT POINTER
  291. * (FL2) = LIMIT POINTER
  292. * (FP2) = ECS ADDR OF IN/OUT POINTERS
  293. * (FB2) = ECS ADDRESS OF BUFFER
  294. *
  295. * EXIT - (A) = NON-ZERO IF DATA PRESENT
  296. * BUF = DATA BLOCK
  297. *
  298. * NO DATA PRESENT IS RETURNED IF
  299. * 1. BUFFER IS EMPTY
  300. * 2. DATA BLOCK WILL NOT FIT IN CURRENT 2550 BUFFER
  301. * 3. EM ERROR OCCURRED
  302.  
  303. ORG //OVL+5
  304. BFI SUBR
  305. LDN 1 SET *BFI* LOADED FLAG
  306. STM BODC
  307. LJM BFI0
  308.  
  309.  
  310. * INCREMENT PPU CIRCULAR BUFFER POINTER
  311.  
  312. BFI8 LDM NETC INCREMENT CIRCULAR BUFF POINTER
  313. RAD FO2
  314. SBD FL2 CHECK FOR BUFFER WRAP-AROUND
  315. MJN BFI9 IF NO WRAPPING
  316. STD FO2 UPDATE *OUT* POINTER
  317.  
  318. * WRITE *OUT* TO ECS
  319.  
  320. BFI9 LDN ZERL
  321. CRD CN
  322. LDD FO2
  323. STD CN+4
  324. LDD FP2+1
  325. ADN 1 COMPUTE ADDR OF *OUT* POINTER
  326. STD T2
  327. SHN -14
  328. ADD FP2
  329. STD T1
  330. LDN 1
  331. STD T3 SET CM WORD COUNT
  332. LDN CN (A) = PP ADDRESS
  333. RJM WECS
  334. LDN 1 (A) = DATA READ
  335.  
  336. BFI10 LJM BFIX EXIT
  337.  
  338. * /--- BLOCK BFI 00 000 86/05/28 14.36
  339.  
  340. * CHECK IF DATA PRESENT
  341.  
  342. BFI0 LDD FL2 CHECK IF BUFFER DEFINED
  343. ZJN BFI10
  344. LDD FI2 CHECK IF DATA IN BUFFER
  345. SBD FO2
  346. ZJN BFI10 IF BUFFER EMPTY
  347. LDD FI2 CHECK IN POINTER LEGAL
  348. SBD FL2
  349. MJN BFI2 IF WITHIN RANGE
  350. BFI1 LDN DFPE DSN - FRAMAT POINTERS BAD
  351. BFI1.1 RJM MES SEND ERROR MSG
  352. BFI1.2 LDN 0 INDICATE NO DATA PASSED
  353. UJN BFI10 EXIT
  354.  
  355. BFI2 LDD FO2 CHECK OUT POINTER LEGAL
  356. SBD FL2
  357. PJN BFI1 IF OUT OF RANGE
  358.  
  359. * SET UP FOR BLOCK TRANSFER
  360. * READ HEADER WORD FROM BUFFER
  361.  
  362. LDD FB2+1 SET BUFFER ADDRESS
  363. ADD FO2 BIAS BY *OUT*
  364. STD T2
  365. SHN -14
  366. ADD FB2
  367. STD T1
  368. LDN 1 SET CM WORD COUNT
  369. STD T3
  370. LDC BUF SET PP ADDRESS
  371. RJM RECS READ BLOCK HEADER
  372. NJN BFI1.2 -- IF ECS ERROR
  373.  
  374. * UPDATE ECS ADDRESS
  375.  
  376. AOD T2
  377. SHN -14
  378. RAD T1
  379.  
  380. * /--- BLOCK BFI 00 000 86/05/28 14.38
  381.  
  382. * CHECK IF CAN TRANSFER BLOCK IN ONE READ
  383.  
  384. LDM NETC CHECK LENGTH LEGAL
  385. ZJN BFI1 IF EMPTY BLOCK
  386. SBD FL2
  387. PJN BFI1 IF LARGER THAN BUFFER
  388. ADD FL2
  389. SBN 1
  390. ZJN BFI5 IF HEADER ALONE
  391. STD T3 SET NUMBER OF WORDS TO READ
  392.  
  393. LDM NETP MESSAGE LTH IN PP BYTES
  394. SBN 32D MAX DSN MSG IS 31D
  395. NJN BFI3 -- IF NO ERROR
  396. LDN PMLE PLATO MSG LTH ERROR
  397. UJP BFI1.1 -- SEND MSG AND EXIT
  398. BFI3 BSS 0
  399.  
  400. * CHECK IF BLOCK WILL FIT IN 2550 BUFFER
  401.  
  402. LDD T4 CHECK IF BLOCK TOO LONG
  403. SBN 4 ALLOW FOR HEADER
  404. SBM NETP
  405. MJN BFI4 IF BLOCK TOO BIG
  406.  
  407. LDD T3
  408. ADD FO2
  409. SBD FL2 CHECK TRANSFER WITH *LIMIT*
  410. PJN BFI6 IF MUST SPLIT TRANSFER
  411. LDC BUF+5 (A) = PP ADDRESS
  412. RJM RECS READ THE BLOCK
  413. ZJN BFI5 IF NO ECS ERROR
  414. BFI4 LDN 0 (A) = 0, NO DATA
  415. LJM BFIX
  416.  
  417. BFI5 LJM BFI8 UPDATE OUT POINTER
  418.  
  419. * /--- BLOCK BFI 00 000 86/05/28 14.38
  420.  
  421. * READ BLOCK IN TWO SECTIONS
  422.  
  423. BFI6 LDD FL2 COMPUTE LENGTH OF FIRST READ
  424. SBD FO2
  425. SBN 1 DECREMENT FOR HEADER
  426. STD T3
  427. ZJN BFI7.1 IF HEADER IS AT LIMIT
  428. LDC BUF+5 (A) = PP ADDRESS
  429. RJM RECS READ FIRST PART OF BLOCK
  430. BFI7 NJN BFI4 IF ECS ERROR
  431. LDD T3 BUMP PP ADDRESS
  432. SHN 2 COMPUTE NUMBER PPU WORDS READ
  433. ADD T3
  434. BFI7.1 ADC BUF+5 COMPUTE PPU ADDRESS FOR READ
  435. STM BFIA
  436. LDD FB2+1 RESET BACK TO FIRST
  437. STD T2
  438. LDD FB2
  439. STD T1
  440. LDM NETC
  441. SBN 1 ADJUST FOR HEADER WORD
  442. SBD T3 COMPUTE NUMBER WORDS REMAINING
  443. STD T3
  444. LDC **
  445. BFIA EQU *-1
  446. RJM RECS
  447. NJN BFI7 IF ECS ERROR
  448. LJM BFI8 UPDATE POINTERS
  449.  
  450. ERRNG OVLE-* OVERFLOW OF OVERLAY BUFFER
  451. QUAL *
  452. * /--- BLOCK CSS 00 000 82/04/22 13.41
  453. CSS OVERLAY (CHANGE IN SWITCH STATUS OVERLAY.)
  454. CSS SPACE 5,11
  455. ** CSS - CHANGE IN SWITCH STATUS
  456. *
  457. * UPDATE ALL TERMINALS CONNECTED TO THE SWITCH
  458.  
  459.  
  460. ORG //OVL+5
  461. CSS SUBR
  462. LDN 0
  463. STM BODC CLEAR *BFI* LOADED FLAG
  464. STM CSSC PRESET LOST USER COUNT
  465. LDD CB FETCH FIRST CONNECTION
  466. STD ST
  467. LDD NI
  468. SHN 4
  469. STD T1
  470. LDM NCB+20,T1 FETCH LAST CONNECTION
  471. STM CSSA
  472. LDC SLKY
  473. STD KY
  474. CSS1 LDM SDT,ST GET S(D) FOR THIS TERMINAL
  475. LMM IBUF+2,IP
  476. NJN CSS2 IF THIS TERMINAL NOT ON SWITCH
  477. LDM TST,ST
  478. ZJN CSS2 IF TERMINAL NOT ACTIVE
  479.  
  480. * LOG OFF THIS TERMINAL
  481.  
  482. AOM CSSC INCREMENT LOST USER COUNT
  483. LDN 0#08
  484. RJM PLM LOGOUT USER FROM DPNC
  485. LDN 0 (A) = FORCED STORE
  486. STM TST,ST SHOW TERMINAL NOT ACTIVE
  487. RJM SPK STORE PLATO KEY
  488.  
  489. * BUMP TO NEXT TERMINAL
  490.  
  491. CSS2 AOD ST
  492. LMM CSSA
  493. NJN CSS1 IF MORE TERMINALS
  494. LDM CSSC
  495. ZJN CSS3 IF NO USERS LOST
  496. LDM NEST,NI SET EQUIPMENT NUMBER
  497. RJM C2D
  498. STM CSSB+1
  499. LDM IBUF+2,IP SET SWITCH NUMBER
  500. RJM C2D
  501. STM CSSB+16D
  502. LDM IBUF+2,IP
  503. SHN -6
  504. RJM C2D
  505. STM CSSB+15D
  506. LDM CSSC SET NUMBER OF LOST USERS
  507. RJM C2D
  508. STM CSSB+3
  509. LDC CSSB
  510. RJM DFM SEND DAYFILE MESSAGE
  511. CSS3 BSS 0
  512. LJM CSSX EXIT
  513.  
  514. CSSA BSS 1 LAST CONNECTION
  515.  
  516. CSSB DATA C*EQXX XX USERS LOST ON SWITCH XXXXB*
  517. CSSC BSS 1
  518.  
  519. ERRNG OVLE-* OVERFLOW OF OVERLAY BUFFER
  520. QUAL *
  521. * /--- BLOCK DSM 00 000 82/12/02 15.59
  522. DSM OVERLAY (DISPLAY SYSTEM MESSAGE OVERLAY.)
  523. DSM SPACE 5,11
  524. ** DSM - DISPLAY SYSTEM MESSAGE
  525. *
  526. * THE SYSTEM MESSAGE RECEIVED IS WRITTEN TO THE
  527. * ERROR LOG.
  528.  
  529.  
  530. ORG //OVL+5
  531. DSM SUBR
  532. LDN 0 CLEAR *BFI* LOADED FLAG
  533. STM BODC
  534. LDD PL
  535. STD T3 SET LENGTH OF DATA TO CONVERT
  536. SBN 16D
  537. MJN DSM1 IF NOT TOO LONG
  538. LDN 16D
  539. STD T3
  540. DSM1 LDD IP
  541. STD T4 (T4) = NEXT BYTE TO DUMP
  542. RAD T3 (T3) = LWA +1 TO DUMP
  543. LDC BUF+2
  544. STD T5 (T5) = DISPLAY DATA POINTER
  545. LDC 2R S SET MESSAGE HEADER
  546. STM BUF
  547. LDC 2RM
  548. STM BUF+1
  549. DSM2 LDM IBUF,T4
  550. RJM C2X CONVERT TO HEX
  551. STI T5
  552. AOD T5 BUMP OUTPUT POINTER
  553. AOD T4 BUMP INPUT POINTER
  554. SBD T3
  555. MJN DSM2 IF MORE TO DUMP
  556. LDN 0 SET ZERO TERMINATOR
  557. STI T5
  558. LDC BUF+ERLN SEND MESSAGE TO ERROR LOG
  559. RJM DFM
  560. LJM DSMX EXIT
  561.  
  562. ERRNG OVLE-* OVERFLOW OF OVERLAY BUFFER
  563. QUAL *
  564. * /--- BLOCK CPR 00 000 86/05/28 14.37
  565. CPR OVERLAY (PRESET FOR CCP ERROR MESSAGE)
  566. CPR SPACE 5,11
  567. ** CPR - PRESET FOR CCP ERROR MESSAGE
  568. *
  569. * BUILD HEADER FOR ERROR LOG DAYFILE MESSAGE AND
  570. * DETERMINE CLASS OF MESSAGE
  571.  
  572.  
  573. ORG //OVL+5
  574. CPR SUBR
  575. LDN 0 CLEAR *BFI* LOADED FLAG
  576. STM BODC
  577. LDC DSFE (A) = EST MNEMONIC FOR DSN 2550
  578. STM BUF PLACE IT IN THE MESSAGE BUFFER
  579. LDC BUF+1 (A) = MESSAGE BUFFER POINTER
  580. STD PT
  581.  
  582. * EST ORDINAL OF *FE* EQUIPMENT
  583.  
  584. LDM NEST,NI (A) = EST ORDINAL OF THIS NPU
  585. RJM C2O CONVERT EST ORDINAL
  586.  
  587. * *FE* CHANNEL
  588.  
  589. LDC 2R,C
  590. RJM ST2
  591. LDM NCH,NI (A) = CHANNEL OF THIS NPU
  592. RJM C2O
  593.  
  594. * *FE* EQUIPMENT NUMBER
  595.  
  596. LDC 2R-E
  597. RJM ST2
  598. LDM NEQ (A) = NPU EQUIPMENT NUMBER
  599. SHN -3D POSITION IT FOR DAYFILE MSG
  600. SCN 77B
  601. ADC 2R0,
  602. RJM ST2
  603. LDM IBUF+2,IP (A) = CONTROL CODE
  604. LMC 0#CE CE ERROR MESSAGE
  605. NJN CPR1 IF NOT $CE CONTROL CODE
  606.  
  607. * PROCESS $CE (CE ERROR MESSAGE) CONTROL CODE
  608.  
  609. EXECUTE CE1,=
  610. LDC /CE1/OVL
  611. RJM EXR
  612. UJN CPR2
  613.  
  614. CPR1 LDM IBUF+2,IP (A) = CONTROL CODE
  615. LMC 0#CD LINK/TRUNK STATISTICS
  616. NJN CPR2 IF NOT $CD CONTROL CODE
  617.  
  618. * PROCESS $CD (LINK/TRUNK STATISTICS) CONTROL CODE
  619.  
  620. EXECUTE CD1,=
  621. LDC /CD1/OVL
  622. RJM EXR
  623. CPR2 LJM CPRX EXIT
  624. * /--- BLOCK CPR 00 000 86/05/28 14.37
  625. C2O SPACE 4,10
  626. ** C2O - CONVERT AND STORE TWO OCTAL DIGITS.
  627. *
  628. * ENTRY (A) = BINARY VALUE LESS THAN 77B.
  629. *
  630. * EXIT TWO OCTAL DIGITS STORED AS DISPLAY CODE CHARACTERS.
  631.  
  632.  
  633. C2O SUBR ENTRY/EXIT
  634. STM C2OA
  635. SHN -3
  636. LPN 7
  637. ADN 1R0
  638. RJM STX
  639. LDC 0
  640. C2OA EQU *-1
  641. LPN 7
  642. ADN 1R0
  643. RJM STX
  644. UJN C2OX RETURN
  645. ST2 SPACE 4,10
  646. ** ST2 - STORE TWO TEXT CHARACTERS.
  647. * (DISPLAY CODES) INTO THE MESSAGE BUFFER.
  648. *
  649. * ENTRY (A) = TWO DISPLAY CHARACTERS.
  650. *
  651. * EXIT CHARACTERS STORED.
  652.  
  653.  
  654. ST2 SUBR ENTRY/EXIT
  655. STM ST2A
  656. SHN -6
  657. RJM STX
  658. LDM ST2A
  659. RJM STX
  660. UJN ST2X RETURN
  661.  
  662. ST2A CON 0
  663.  
  664.  
  665. ERRNG OVLE-* OVERFLOW OF OVERLAY BUFFER
  666. QUAL *
  667. * /--- BLOCK CD1 00 000 82/12/02 16.03
  668. CD1 OVERLAY (DISPLAY $CD LINK/STATISTICS MESSAGE - 1)
  669. CD1 SPACE 5,11
  670. ** CD1 - CONVERT/DISPLAY $CD (LINK/STAT) MESSAGE - 1
  671. *
  672. * CONVERT AND SEND $CD MESSAGE TO THE ERROR LOG.
  673. * PART 1.
  674. *
  675. * EXIT T7 = UPDATED POINTER INTO *IBUF*
  676.  
  677.  
  678. ORG //OVL+5
  679. CD1 SUBR
  680. LDN 0 CLEAR *BFI* LOADED FLAG
  681. STM BODC
  682. LDD IP GET IBUF INDEX
  683. ADN 5 ADVANCE TO CODE
  684. STD T7 SAVE IN T7
  685. LDM IBUF,T7 (A) = CODE
  686. NJN WEL3 IF CODE IS NOT ZERO
  687. AOD T7 (T7) POINTS TO MAJOR RECORD TYPE
  688. LDM IBUF,T7 (A) = MAJOR RECORD TYPE
  689. SBN 3
  690. ZJN WEL4 IF TYPE IS $03
  691. PJN WEL3 IF TYPE IS OUT OF RANGE
  692. ADN 1
  693. ZJN WEL5 IF TYPE IS $02
  694.  
  695. WEL3 LDN NSBE NET STAT TYPE/CODE BAD
  696. LJM WEL31
  697.  
  698. WEL4 LDN 8D*2 SET TRUNK BYTE COUNT
  699. STM BYTECNT
  700. LDN 11D START MESSAGE OVERFLOW COUNTER
  701. STM MSGCNT
  702. LDC 2RTK TRUNK STATISTICS
  703. UJN WEL6
  704.  
  705. WEL5 LDN 11D START MESSAGE OVERFLOW COUNTER
  706. STM MSGCNT
  707. SHN 1 SET LINK BYTE COUNT
  708. STM BYTECNT
  709. LDC 2RLK
  710.  
  711. WEL6 RJM ST2
  712. LDD PL VERIFY PACKET LENGTH
  713. SBM BYTECNT WITH BYTE COUNT
  714. SBN 7 AND BY HEADER+1 (EQXX,CYY-EZ,)
  715. MJN WEL6.1 IF LENGTH OKAY
  716. LJM WEL30 PACKET IS TOO LONG
  717.  
  718. WEL6.1 BSS 0
  719. AOD T7 (T7) POINTS TO MINOR RECORD TYPE
  720. LDM IBUF,T7 (A) = MAJOR RECORD TYPE (LINK NUM)
  721. RJM SHX
  722. UJN WEL32
  723.  
  724. WEL30 LDN NMLE NET MSG LENGTH ERROR
  725. WEL31 RJM MES
  726. WEL32 EXECUTE CD2,=
  727. LDC /CD2/OVL
  728. RJM EXR
  729.  
  730. * /--- BLOCK CD1 00 000 82/12/02 16.03
  731. ST2 SPACE 4,10
  732. ** ST2 - STORE TWO TEXT CHARACTERS.
  733. * (DISPLAY CODES) INTO THE MESSAGE BUFFER.
  734. *
  735. * ENTRY (A) = TWO DISPLAY CHARACTERS.
  736. *
  737. * EXIT CHARACTERS STORED.
  738.  
  739.  
  740. ST2 SUBR ENTRY/EXIT
  741. STM ST2A
  742. SHN -6
  743. RJM STX
  744. LDM ST2A
  745. RJM STX
  746. UJN ST2X RETURN
  747.  
  748. ST2A CON 0
  749. SHX SPACE 4,10
  750. ** SHX - STORE HEX CHARACTERS INTO THE MESSAGE BUFFER.
  751. *
  752. * ENTRY (A) = 2 HEXIDECIMAL DIGITS.
  753. *
  754. * EXIT CHARACTERS STORED AS DISPLAY CODES.
  755. *
  756. * USES T1.
  757.  
  758.  
  759. SHX SUBR ENTRY/EXIT
  760. STD T1 SAVE THE ORIGINAL
  761. SHN -4
  762. LPN 17B
  763. SBN 10D
  764. PJN SHX2 IF ALPHA DIGIT
  765. ADN 1R0+9D
  766. SHX2 ADN 1
  767. RJM STX
  768. LDD T1
  769. LPN 17B
  770. SBN 10D
  771. PJN SHX4 IF ALPHA DIGIT
  772. ADN 1R0+9D
  773. SHX4 ADN 1
  774. RJM STX
  775. UJN SHXX
  776.  
  777.  
  778. ERRNG OVLE-* OVERFLOW OF OVERLAY BUFFER
  779. QUAL *
  780. * /--- BLOCK CD2 00 000 82/12/02 16.04
  781. CD2 OVERLAY (DISPLAY $CD LINK/STATISTICS MESSAGE - 2)
  782. CD2 SPACE 5,11
  783. ** CD2 - CONVERT/DISPLAY $CD (LINK/STAT) MESSAGE - 2
  784. *
  785. * CONVERT AND SEND $CD MESSAGE TO THE ERROR LOG.
  786. * PART 2.
  787. *
  788. * ENTRY T7 = POINTER INTO IBUF
  789.  
  790.  
  791. ORG //OVL+5
  792. CD2 SUBR
  793. LDN 0 CLEAR *BFI* LOADED FLAG
  794. STM BODC
  795. WEL7 BSS 0
  796. AOD T7 (T7) POINTS TO DATA BYTE
  797. LDM IBUF,T7 (A) = MAJOR RECORD TYPE
  798. RJM SHX
  799. SOM BYTECNT
  800. ZJN WEL8 IF END OF INPUT DATA
  801. SOM MSGCNT
  802. PJN WEL7 IF NO MESSAGE OVERFLOW
  803. RJM SND SEND PARTIAL MESSAGE.
  804. LDN 11D
  805. STM MSGCNT RESET THE OVERFLOW COUNTER
  806. LDM STXB+1
  807. STM STXA
  808. LDC BUF+8D
  809. STD PT RESET POINTER FOR CONTINUATION
  810. UJN WEL7
  811.  
  812. WEL8 BSS 0
  813.  
  814. * OUTPUT THE USER COUNT
  815.  
  816. LDD RA (A) = ADDRESS OF CP RA / 100B
  817. SHN 6 (A) = ADDRESS OF CP RA
  818. ADM UMTB OFFSET TO STATS
  819. ADD NI (A) = ADDR OF NPU USER STATS
  820. ADD NI (2 WDS/NPU)
  821. CRD CM
  822.  
  823. * THE FOLLOWING CODE ASSUMES THAT A NPU WILL
  824. * SUPPORT NO MORE THAN 777B USERS.
  825.  
  826. LDD CM (A) = USER STATS FOR THIS NPU
  827. SHN -6 (A) = UPPER PART OF STATS
  828. LPN 7B (A) = LIMITED TO 777B MAX
  829. ADC 2RU0 (A) SET UP FOR THE DAYFILE
  830. RJM ST2 OUTPUT THE UPPER PART
  831.  
  832. LDD CM (A) = USER STATS FOR THIS NPU
  833. LPN 77B (A) = LOWER PART OF STATS
  834. RJM C2O CONVERT AND OUTPUT UPPER PART
  835.  
  836.  
  837. * COMPLETE THE MESSAGE
  838.  
  839. LDN 1R. TERMINATE MESSAGE WITH A PERIOD
  840. RJM STX
  841. RJM SND SEND MESSAGE TO ERROR LOG
  842.  
  843. LJM CEMX
  844. * /--- BLOCK CD2 00 000 82/12/02 16.06
  845. SHX SPACE 4,10
  846. ** SHX - STORE HEX CHARACTERS INTO THE MESSAGE BUFFER.
  847. *
  848. * ENTRY (A) = 2 HEXIDECIMAL DIGITS.
  849. *
  850. * EXIT CHARACTERS STORED AS DISPLAY CODES.
  851. *
  852. * USES T1.
  853.  
  854.  
  855. SHX SUBR ENTRY/EXIT
  856. STD T1 SAVE THE ORIGINAL
  857. SHN -4
  858. LPN 17B
  859. SBN 10D
  860. PJN SHX2 IF ALPHA DIGIT
  861. ADN 1R0+9D
  862. SHX2 ADN 1
  863. RJM STX
  864. LDD T1
  865. LPN 17B
  866. SBN 10D
  867. PJN SHX4 IF ALPHA DIGIT
  868. ADN 1R0+9D
  869. SHX4 ADN 1
  870. RJM STX
  871. UJN SHXX
  872. ST2 SPACE 4,10
  873. ** ST2 - STORE TWO TEXT CHARACTERS.
  874. * (DISPLAY CODES) INTO THE MESSAGE BUFFER.
  875. *
  876. * ENTRY (A) = TWO DISPLAY CHARACTERS.
  877. *
  878. * EXIT CHARACTERS STORED.
  879.  
  880.  
  881. ST2 SUBR ENTRY/EXIT
  882. STM ST2A
  883. SHN -6
  884. RJM STX
  885. LDM ST2A
  886. RJM STX
  887. UJN ST2X RETURN
  888.  
  889. ST2A CON 0
  890. SND SPACE 4,10
  891. ** SND - SEND MESSAGE IN BUFFER TO THE ERROR LOG, SET TERMNATOR.
  892. *
  893. * ENTRY UNTERMINATED MESSAGE IN *BUF*.
  894. *
  895. * EXIT MESSAGE WRITTEN TO ERROR LOG.
  896. *
  897. * CALLS DFM.
  898.  
  899.  
  900. SND SUBR ENTRY/EXIT.
  901. LDN 0
  902. RJM STX
  903. LDN 0 ADD EOM TRAILER
  904. STI PT
  905. LDC BUF+ERLN
  906. RJM DFM
  907. UJN SNDX RETURN
  908. C2O SPACE 4,10
  909. ** C2O - CONVERT AND STORE TWO OCTAL DIGITS.
  910. *
  911. * ENTRY (A) = BINARY VALUE LESS THAN 77B.
  912. *
  913. * EXIT TWO OCTAL DIGITS STORED AS DISPLAY CODE CHARACTERS.
  914.  
  915.  
  916. C2O SUBR ENTRY/EXIT
  917. STM C2OA
  918. SHN -3
  919. LPN 7
  920. ADN 1R0
  921. RJM STX
  922. LDC 0
  923. C2OA EQU *-1
  924. LPN 7
  925. ADN 1R0
  926. RJM STX
  927. UJN C2OX RETURN
  928.  
  929.  
  930. ERRNG OVLE-* OVERFLOW OF OVERLAY BUFFER
  931. QUAL *
  932. * /--- BLOCK CE1 00 000 86/05/28 14.40
  933. CE1 OVERLAY (CONVERT $CE CE ERROR MESSAGES)
  934. CCE SPACE 5,11
  935. ** CE1 - CONVERT/DISPLAY $CE (CE ERROR) MESSAGES
  936. *
  937. * CONVERT AND SEND $CE MESSAGE TO THE ERROR LOG.
  938. * PART 1.
  939. *
  940. * C E ERROR MESSAGE FORMATS.
  941. *
  942. * 12/$CE,12/MN,12/SC,12/$XX,12/DATA...12/DATA
  943. *
  944. * MN = MINUTES.
  945. * SC = SECONDS.
  946. * XX = 01 IF DATA IS POPULATION COUNTERS,
  947. * 04 IF DATA IS ERROR MESSAGE TEXT.
  948. * DATA = 8 BITS PER WORD - VARIABLE LENGTH.
  949. *
  950. * CE ERROR DETAIL AND COUNT MESSAGES.
  951. *
  952. * SD.FE00,C00,E0,CE,CD, ---
  953. * 01,ZZZ---ZZZ.
  954. * 04,MN,SC,ZZZ---ZZZ.
  955. *
  956. * CE = C E ERROR MESSAGE IDENTIFICATION.
  957. * MN = MINUTE WHEN NPU ERROR OCCURRED.
  958. * SC = SECOND WHEN NPU ERROR OCCURRED.
  959. * CD = CODE TO DIFFERENTIATE DETAILS AND COUNTS
  960. * 01 = COUNT MESSAGES,
  961. * 04 = DETAIL MESSAGES.
  962. * ZZZ = DATA.
  963. * COUNT MESSAGES
  964. * NN/M=$00, OR NN/M=$0000.
  965. * NN = ERROR CODE,
  966. * M = TRUNK NUMBER (0 IF NON-TRUNK),
  967. * $00 OR $0000 = HEXIDECIMAL COUNTS.
  968. * DETAIL MESSAGES
  969. * 00NNXXX---XXX; NN = ERROR CODE, XXX = SEE CCP 2.0 ERS.
  970.  
  971.  
  972. ORG //OVL+5
  973. CE1 SUBR
  974. LDN 0 CLEAR *BFI* LOADED FLAG
  975. STM BODC
  976. LDD IP GET IBUF INDEX
  977. ADN 3 ADVANCE TO MINUTES
  978. STD T7 SAVE IN T7
  979. LDM IBUF,T7 (A) = MINUTES
  980. STM WELA
  981. LDC 2RCE START THE MESSAGE BUFFER
  982. RJM ST2
  983. LDN 1R, COMMA
  984. RJM STX
  985. AOD T7 (T7) POINTS TO SECONDS
  986. LDM IBUF,T7 (A) = SECONDS
  987. STM WELL SAVE THE SECONDS
  988. LDD PL GET PACKET LENGTH FOR LOOP COUNTER
  989. SBN 2
  990. STM BYTECNT
  991. AOD T7 (T7) POINTS TO $04 BYTE
  992. LDM IBUF,T7 (A) = $04 BYTE
  993. LMN 01
  994. NJN WEL10.1 IF DETAIL RECORD
  995. LJM WEL14 DATA IS COUNTERS
  996.  
  997. * /--- BLOCK CE1 00 000 86/05/29 09.38
  998.  
  999. WEL10.1 LDD PL VERIFY PACKET LENGTH
  1000. SBN 12D
  1001. MJN WEL10.2 IF LENGTH OKAY
  1002. LJM WEL30 PACKET IS TOO LONG
  1003.  
  1004. WEL10.2 BSS 0
  1005. LDN 04
  1006. RJM SHX
  1007. LDN 1R, COMMA
  1008. RJM STX
  1009. LDC 0
  1010. WELA EQU *-1 (MINUTES)
  1011. RJM SHX STORE HEX MINUTES
  1012. LDN 1R,
  1013. RJM STX
  1014. LDC 0
  1015. WELL EQU *-1
  1016. RJM SHX STORE HEX SECONDS
  1017. LDN 1R,
  1018. RJM STX
  1019. WEL11 LDN 7
  1020. STM MSGCNT START MESSAGE OVERFLOW COUNTER
  1021. WEL12 AOD T7 (T7) POINTS TOO NEXT DATA BYTE
  1022. LDM IBUF,T7 (A) = NEXT DATA BYTE
  1023. RJM SHX
  1024. SOM BYTECNT
  1025. MJN WEL13 AT END OF DATA
  1026. SOM MSGCNT
  1027. PJN WEL12 IF NO MESSAGE OVERFLOW
  1028. RJM SND SEND PARTIAL MESSAGE
  1029. LDC BUF+12D
  1030. STD PT RESET POINTER FOR CONTINUATION
  1031. LDM STXB+1
  1032. STM STXA
  1033. UJN WEL11
  1034.  
  1035. WEL13 LDN 1R. TERMINATE THE MESSAGE WITH A PERIOD
  1036. RJM STX
  1037. RJM SND SEND MESSAGE TO THE ERROR LOG
  1038. UJN WEL35 EXIT
  1039.  
  1040. WEL14 LDN 01 SUBCODE = 1 FOR MESSAGE COUNTERS
  1041. RJM SHX
  1042. LDN 1R, COMMA
  1043. RJM STX
  1044. LDD PL VERIFY PACKET LENGTH
  1045. ADC -120D
  1046. PJN WEL30 PACKET IS TOO LONG
  1047. UJN WEL36 EXIT
  1048.  
  1049. WEL30 LDN NMLE NET MSG LENGTH ERROR
  1050. RJM MES
  1051.  
  1052. WEL35 LDN 0 INDICATE MESSAGE COMPLETE
  1053. WEL36 ZJN WEL37 IF MESSAGE COMPLETE
  1054. EXECUTE CE2,=
  1055. LDC /CE2/OVL
  1056. RJM EXR
  1057. WEL37 LJM CEMX EXIT
  1058. * /--- BLOCK CE1 00 000 86/05/29 09.39
  1059. SHX SPACE 4,10
  1060. ** SHX - STORE HEX CHARACTERS INTO THE MESSAGE BUFFER.
  1061. *
  1062. * ENTRY (A) = 2 HEXIDECIMAL DIGITS.
  1063. *
  1064. * EXIT CHARACTERS STORED AS DISPLAY CODES.
  1065. *
  1066. * USES T1.
  1067. *
  1068. * CALLS STX.
  1069.  
  1070.  
  1071. SHX SUBR ENTRY/EXIT
  1072. STD T1 SAVE THE ORIGINAL
  1073. SHN -4
  1074. LPN 17B
  1075. SBN 10D
  1076. PJN SHX2 IF ALPHA DIGIT
  1077. ADN 1R0+9D
  1078. SHX2 ADN 1
  1079. RJM STX STORE FIRST DIGIT
  1080. LDD T1
  1081. LPN 17B
  1082. SBN 10D
  1083. PJN SHX4 IF ALPHA DIGIT
  1084. ADN 1R0+9D
  1085. SHX4 ADN 1
  1086. RJM STX STORE SECOND DIGIT
  1087. UJN SHXX
  1088. ST2 SPACE 4,10
  1089. ** ST2 - STORE TWO TEXT CHARACTERS.
  1090. * (DISPLAY CODES) INTO THE MESSAGE BUFFER.
  1091. *
  1092. * ENTRY (A) = TWO DISPLAY CHARACTERS.
  1093. *
  1094. * EXIT CHARACTERS STORED.
  1095. *
  1096. * CALLS STX.
  1097.  
  1098.  
  1099. ST2 SUBR ENTRY/EXIT
  1100. STD T0
  1101. SHN -6
  1102. RJM STX STORE FIRST CHARACTER
  1103. LDD T0
  1104. RJM STX STORE SECOND CHARACTER
  1105. UJN ST2X RETURN
  1106. SND SPACE 4,10
  1107. ** SND - SEND MESSAGE IN BUFFER TO THE ERROR LOG, SET TERMNATOR.
  1108. *
  1109. * ENTRY UNTERMINATED MESSAGE IN *BUF*.
  1110. *
  1111. * EXIT MESSAGE WRITTEN TO ERROR LOG.
  1112. *
  1113. * CALLS DFM.
  1114.  
  1115.  
  1116. SND SUBR ENTRY/EXIT.
  1117. LDN 0
  1118. RJM STX
  1119. LDN 0 ADD EOM TRAILER
  1120. STI PT
  1121. LDC BUF+ERLN
  1122. RJM DFM
  1123. UJN SNDX RETURN
  1124.  
  1125. ERRNG OVLE-* OVERFLOW OF OVERLAY BUFFER
  1126. QUAL *
  1127. * /--- BLOCK CE2 00 000 86/05/29 09.49
  1128. CE2 OVERLAY (CONVERT $CE CE ERROR MESSAGE - 2)
  1129. SPACE 5
  1130. ** CE2 CONVERT AND SEND $CE MESAGE TO THE ERROR LOG.
  1131. * PART 2.
  1132. *
  1133. * CE ERROR SUMMARY DATA.
  1134. *
  1135.  
  1136. ORG //OVL+5
  1137. CE2 SUBR
  1138. LDN 0 CLEAR *BFI* LOADED FLAG
  1139. STM BODC
  1140.  
  1141. * THE SUMMARY CODE DOES NOT FIT IN THE OVERLAY BUFFER SO
  1142. * LEAVE IT OUT FOR NOW.
  1143.  
  1144. LIST F
  1145.  
  1146. CESUM IF -DEF,CESUMRY
  1147. LJM CEMX
  1148. CESUM ELSE
  1149. AOD T7 (T7) POINTS TO FIRST IDENTIFIER
  1150. LDM IBUF,T7 (A) = FIRST IDENTIFIER
  1151. LMC 376B
  1152. NJN WEL15 IF NOT MINUS ONE
  1153. LDC 2R-1
  1154. RJM ST2 DISPLAY THE -1 IDENTIFIER
  1155. LDC 2R/0
  1156. RJM ST2 STORE TRUNK NUMBER
  1157. UJN WEL16
  1158.  
  1159. WEL15 LMC 376B RESTORE THE VALUE
  1160. RJM COR
  1161. WEL16 LDC 2R=$ SEPARATORS
  1162. RJM ST2
  1163. AOD T7 (T7) POINTS TO COUNTER (UPPER 8 BITS)
  1164. LDM IBUF,T7 (A) = COUNTER (UPPER 8 BITS)
  1165. ZJN WEL17 IF VALUE IS ZERO
  1166. RJM SHX
  1167.  
  1168. * /--- BLOCK CE2 00 000 86/05/29 09.49
  1169.  
  1170. WEL17 AOD T7 (T7) POINTS TO COUNTER (LOWER 8 BITS)
  1171. LDM IBUF,T7 (A) = COUNTER (LOWER 8 BITS)
  1172. RJM SHX
  1173. LDC -3 DECREMENT THE BYTE COUNT
  1174. RAM MSGCNT
  1175. MJN WEL18.2 IF END OF DATA
  1176. LDN 1R,
  1177. RJM STX
  1178. AOD T7 (T7) POINTS TO IDENTIFIER
  1179. LDM IBUF,T7 (A) = IDENTIFIER
  1180. RJM COR
  1181. LDC 2R=$
  1182. RJM ST2
  1183. AOD T7 (T7) POINTS TO COUNT (UPPER 8 BITS)
  1184. LDM IBUF,T7 (A) = COUNT (UPPER 8 BITS)
  1185. ZJN WEL18 IF ALL ZERO
  1186. RJM SHX
  1187. WEL18 AOD T7 (T7) POINTS TO COUNT (LOWER 8 BITS)
  1188. LDM IBUF,T7 (A) = COUNT (LOWER 8 BITS)
  1189. RJM SHX
  1190. WEL18.2 LDN 1R. PERIOD
  1191. RJM STX
  1192. RJM SND SEND MESSAGE TO THE ERROR LOG
  1193. LDM BYTECNT
  1194. SHN 6
  1195. MJN WEL19 IF DATA ALL PROCESSED
  1196. LDC -3 DECREMENT THE PACKET CHARACTER COUNT
  1197. RAM BYTECNT
  1198. MJN WEL19 IF END OF PACKET
  1199. LDC BUF+9D
  1200. STD PT RESET THE BUFFER POINTER
  1201. LDM STXB+1
  1202. STM STXA RESET THE STORAGE CONTROL
  1203. AOD T7 (T7) = ERROR MESSAGE IDENTIFIER
  1204. LDM IBUF,T7 (A) = ERRORR MESSAGE IDENTIFIER
  1205. RJM COR
  1206. LJM WEL16 CONTINUE PROCESSING
  1207.  
  1208. WEL19 LJM CEMX
  1209. * /--- BLOCK CE2 00 000 86/05/29 09.48
  1210. SHX SPACE 4,10
  1211. ** SHX - STORE HEX CHARACTERS INTO THE MESSAGE BUFFER.
  1212. *
  1213. * ENTRY (A) = 2 HEXIDECIMAL DIGITS.
  1214. *
  1215. * EXIT CHARACTERS STORED AS DISPLAY CODES.
  1216. *
  1217. * USES T1.
  1218. *
  1219. * CALLS STX.
  1220.  
  1221.  
  1222. SHX SUBR ENTRY/EXIT
  1223. STD T1 SAVE THE ORIGINAL
  1224. SHN -4
  1225. LPN 17B
  1226. SBN 10D
  1227. PJN SHX2 IF ALPHA DIGIT
  1228. ADN 1R0+9D
  1229. SHX2 ADN 1
  1230. RJM STX STORE FIRST DIGIT
  1231. LDD T1
  1232. LPN 17B
  1233. SBN 10D
  1234. PJN SHX4 IF ALPHA DIGIT
  1235. ADN 1R0+9D
  1236. SHX4 ADN 1
  1237. RJM STX STORE SECOND DIGIT
  1238. UJN SHXX
  1239. ST2 SPACE 4,10
  1240. ** ST2 - STORE TWO TEXT CHARACTERS.
  1241. * (DISPLAY CODES) INTO THE MESSAGE BUFFER.
  1242. *
  1243. * ENTRY (A) = TWO DISPLAY CHARACTERS.
  1244. *
  1245. * EXIT CHARACTERS STORED.
  1246. *
  1247. * CALLS STX.
  1248.  
  1249.  
  1250. ST2 SUBR ENTRY/EXIT
  1251. STM ST2A
  1252. SHN -6
  1253. RJM STX STORE FIRST CHARACTER
  1254. LDM ST2A
  1255. RJM STX STORE SECOND CHARACTER
  1256. UJN ST2X RETURN
  1257.  
  1258. ST2A CON 0
  1259. SND SPACE 4,10
  1260. ** SND - SEND MESSAGE IN BUFFER TO THE ERROR LOG, SET TERMNATOR.
  1261. *
  1262. * ENTRY UNTERMINATED MESSAGE IN *BUF*.
  1263. *
  1264. * EXIT MESSAGE WRITTEN TO ERROR LOG.
  1265. *
  1266. * CALLS DFM.
  1267.  
  1268.  
  1269. SND SUBR ENTRY/EXIT.
  1270. LDN 0
  1271. RJM STX
  1272. LDN 0 ADD EOM TRAILER
  1273. STI PT
  1274. LDC BUF+ERLN
  1275. RJM DFM
  1276. UJN SNDX RETURN
  1277. * /--- BLOCK CE2 00 000 86/05/29 09.50
  1278. COR SPACE 4,10
  1279. ** COR - CONVERT ERROR ORDINAL INTO REAL ERROR CODE.
  1280. *
  1281. * ENTRY (A) = ERROR ORDINAL.
  1282. *
  1283. * EXIT DATA CONVERTED AND STORED INTO BUFFER.
  1284. *
  1285. * CALLS SHX, ST2.
  1286. SPACE 2
  1287. COR SUBR ENTRY/EXIT
  1288. STM CORA
  1289. LDN 0
  1290. STM CORC INITIALIZE THE TRUNK NUMBER
  1291. LDC 0
  1292. CORA EQU *-1 ERROR ORDINAL
  1293. ZJN COR2 IF THE ERROR CODE IS ZERO
  1294. SBN 32D
  1295. MJN COR3 IF TRUNK MIGHT BE ZERO OR ONE
  1296. COR1 STM CORB
  1297. AOM CORC INCREMENT THE TRUNK NUMBER
  1298. LDC 0
  1299. CORB EQU *-1 WORKING ORDINAL
  1300. SBN 16D
  1301. PJN COR1 IF ORDINAL IS STILL LARGER
  1302. AOM CORC ADJUST THE TRUNK NUMBER
  1303. LDM CORB
  1304. COR2 RJM SHX STORE THE HEX ERROR CODE
  1305. LDC 0
  1306. CORC EQU *-1 TRUNK NUMBER
  1307. ADC 2R/0
  1308. RJM ST2 STORE THE TRUNK NUMBER
  1309. LJM CORX RETURN
  1310.  
  1311. COR3 ADN 32D-19D
  1312. MJN COR5 IF ERROR SMALLER, MAY BE FOR TRUNK 1
  1313. ZJN COR4 IF ERROR IS $1C
  1314. ADN 30D
  1315. UJN COR2 STORE DATA INTO BUFFER
  1316.  
  1317. COR4 LDN 28D
  1318. UJN COR2 STORE DATA INTO BUFFER
  1319.  
  1320. COR5 ADN 1
  1321. MJN COR6 IF NOT $18 ERROR
  1322. LDN 24D
  1323. UJN COR2 STORE DATA INTO BUFFER
  1324.  
  1325. COR6 STM CORD
  1326. ADN 1
  1327. ZJN COR7 IF ERROR = $11
  1328. ADN 16D
  1329. ZJN COR7 IF ERROR = $01
  1330. LDN 1
  1331. STM CORC SET TRUNK = 1
  1332. COR7 LDC 0
  1333. CORD EQU *-1 ERROR CODE COMPLEMENT
  1334. SHN 21-13
  1335. SHN 13-21 ENTEND THE SIGN
  1336. ADN 19D RESTORE THE VALU
  1337. LJM COR2 STORE DATA INTO BUFFER
  1338.  
  1339. CESUM ENDIF
  1340.  
  1341. LIST *
  1342.  
  1343.  
  1344. ERRNG OVLE-* OVERFLOW OF OVERLAY BUFFER
  1345. QUAL *
  1346. * /--- BLOCK DIB 00 000 86/05/29 09.45
  1347. DIB OVERLAY (DUMP INPUT BLOCK TO ERROR LOG)
  1348. DIB SPACE 5,11
  1349. ** DIB - DUMP INPUT BLOCK TO ERROR LOG.
  1350. *
  1351. * AN ERROR WAS ENCOUNTERED WHILE PROCESSING AN INPUT
  1352. * BLOCK. PRINT THE CONTENTS OF IL, IP, PL AND THE
  1353. * INPUT BLOCK.
  1354.  
  1355. ORG //OVL+5
  1356. DIB SUBR
  1357. LDN 0 CLEAR *BFI* LOADED FLAG
  1358. STM BODC
  1359. LDD IL CONVERT BLOCK LENGTH
  1360. RJM C2D
  1361. STM DIBA+3
  1362. LDD IL
  1363. SHN -6
  1364. RJM C2D
  1365. STM DIBA+2
  1366. LDD IP CONVERT PACKET POINTER
  1367. RJM C2D
  1368. STM DIBA+7
  1369. LDD IP
  1370. SHN -6
  1371. RJM C2D
  1372. STM DIBA+6
  1373. LDD PL CONVERT PACKET LENGTH
  1374. RJM C2D
  1375. STM DIBA+13
  1376. LDD PL
  1377. SHN -6
  1378. RJM C2D
  1379. STM DIBA+12
  1380. LDC DIBA+ERLN
  1381. RJM DFM PRINT TO ERROR LOG
  1382.  
  1383. LDD IL
  1384. ZJN DIB2 EXIT IF ZERO LENGTH
  1385. LDN 0
  1386. STD T7 COUNTER FOR INPUT BLOCK
  1387. DIB1 LDM IBUF,T7 INPUT BLOCK WORD TO CONVERT
  1388. RJM C2D
  1389. STM DIBB+1
  1390. LDM IBUF,T7
  1391. SHN -6
  1392. RJM C2D
  1393. STM DIBB
  1394. LDC DIBB+ERLN
  1395. RJM DFM PRINT WORD TO ERROR LOG
  1396. AOD T7 INCREMENT BLOCK COUNTER
  1397. LMD IL SUBTRACT BLOCK LENGTH
  1398. NJN DIB1 IF MORE WORDS TO PRINT
  1399.  
  1400. DIB2 LJM DIBX EXIT
  1401.  
  1402. DIBA DATA C* IL=XXXX IP=XXXX PL=XXXX*
  1403. DIBB DATA C*XXXX*
  1404.  
  1405. ERRNG OVLE-* OVERFLOW OF OVERLAY BUFFER
  1406. QUAL *
  1407. * /--- BLOCK EM7 00 000 82/12/02 16.07
  1408. EM7 OVERLAY (EM ACCESS FOR 700 SERIES.)
  1409. EM7 SPACE 5,11
  1410. ** EM7 - EM ACCESS FOR 700 SERIES.
  1411. *
  1412. * OVER-WRITE THE DDP READ/WRITE EM ROUTINES WITH
  1413. * READ/WRITE EM VIA MONITOR FUNCTION ROUTINES FOR
  1414. * THE 700 SERIES.
  1415.  
  1416. ORG //OVL+5
  1417. EM7 SUBR
  1418. LDN 0 CLEAR *BFI* LOADED FLAG
  1419. STM BODC
  1420.  
  1421. * COPY CPMTR ROUTINE TO REPLACE DDP ROUTINES
  1422.  
  1423. LDN 0
  1424. STD T1
  1425. EM71 LDM RECF,T1
  1426. STM //RECSX,T1
  1427. AOD T1
  1428. LMC RECL
  1429. NJN EM71 CONTINUE MOVE
  1430. LDN 0 MOVE WRITE ROUTINE
  1431. STD T1
  1432. EM72 LDM WECF,T1
  1433. STM //WECSX,T1
  1434. AOD T1
  1435. LMC WECL
  1436. NJN EM72 CONTINUE MOVE
  1437.  
  1438. * SET ADDRESS OF CM BUFFER
  1439.  
  1440. LDD IR+4
  1441. SHN 6
  1442. .NOSV2 IFGE OSLEV,562D NOS V2
  1443. RAM .RECA
  1444. LDD IR+4 BIAS FOR HEADERS
  1445. SHN 1
  1446. .NOSV2 ENDIF
  1447. RAM .RECA
  1448. STM .RECB
  1449. STM .WECA
  1450. .NOSV2 IFGE OSLEV,562D NOS V2
  1451. UJP EM7X
  1452. .NOSV2 ELSE NOS V1
  1453. UJN EM7X
  1454. .NOSV2 ENDIF
  1455.  
  1456. * /--- BLOCK /CMR/READE 00 000 86/05/29 10.31
  1457. RECS SPACE 5,11
  1458. ** RECS - READ ECS VIA MONITOR FUNCTION.
  1459. *
  1460. * ENTRY (A) = PPU MEMORY ADDRESS.
  1461. * (T1) = UPPER PORTION OF ECS ADDRESS.
  1462. * (T2) = LOWER PORTION OF ECS ADDRESS.
  1463. * (T3) = NUMBER OF CM WORDS TO READ.
  1464. *
  1465. * EXIT (A) = 0, IF NO ERRORS.
  1466. * = 1, IF ECS PARITY ERROR.
  1467. *
  1468. * THIS SUBROUTINE WILL OVERWRITE THE DDP ECS READ
  1469. * SUBROUTINE, //RECS, IF THE DDP IS NOT
  1470. * AVAILABLE.
  1471.  
  1472.  
  1473. RECF EQU *
  1474. LOC //RECSX
  1475.  
  1476. RECS SUBR
  1477. STM RECA SAVE PP ADDRESS
  1478. .NOSV2 IFGE OSLEV,562D NOS V2
  1479. LDK ZERL ZERO WORD
  1480. CRD CM
  1481. .NOSV2 ENDIF
  1482. LDD T1
  1483. STD CM+3 (CM+3) = UPPER PART OF EM ADDR.
  1484. LDD T2
  1485. STD CM+4 (CM+4) = LOWER PART OF EM ADDR.
  1486. .NOSV1 IFLT OSLEV,562D NOS V1
  1487. LDD MA
  1488. CWD CM (MB) = 36/TRASH,24/EM ADDRESS
  1489. .NOSV1 ENDIF
  1490. LDD T3 GET NUMBER CPU WORDS TO READ
  1491. .NOSV1 IFLT OSLEV,562D NOS V1
  1492. SBN 1 ADJUST WORD COUNT
  1493. .NOSV1 ENDIF
  1494. SHN 6
  1495. STD CM+1 SET NUMBER CPU WORDS TO READ
  1496. LDD RA COMPUTE CM ADDRESS
  1497. SHN 6
  1498. ADC EB ECS/CM BUFFER ADDRESS
  1499. .RECA EQU *-1
  1500.  
  1501. * /--- BLOCK /CMR/READE 00 000 86/05/29 10.31
  1502.  
  1503. .NOSV2 IFGE OSLEV,562D NOS V2
  1504. SBN 1 BACK UP TO BUFFER HEADER
  1505. CWD CM
  1506. STD CM+2 SAVE HEADER ADDRESS
  1507. SHN -12D
  1508. LPN 77B ENSURE NO SIGN EXTENSION
  1509. STD CM+1
  1510. LDD HN STORE REQUEST COUNT
  1511. RAD CM+1
  1512. LDC /CPS/PELS*1000B
  1513. STD CM+3 *ECSM* SUBFUNCTION *PELS*
  1514. LDN 0
  1515. STD CM+4
  1516. .NOSV2 ELSE NOS V1
  1517. STD CM+2 SET LOWER PART OF CM ADDRESS
  1518. SHN -14
  1519. RAD CM+1 SET UPPER PART OF CM ADDRESS
  1520. LDC /CPS/RWEM*1000B
  1521. STD CM+3 (CM+3) = SUBFUNCTION = *RWEM*
  1522. LDN 0
  1523. STD CM+4 (CM+4) = R/W FLAG (READ)
  1524. .NOSV2 ENDIF
  1525. MONITOR ECSM READ ECS TO CM
  1526. LDD RA READ DATA TO PP
  1527. SHN 6
  1528. ADC EB CM/ECS BUFFER ADDRESS
  1529. .RECB EQU *-1
  1530. CRM **,T3
  1531. RECA EQU *-1
  1532. LDD CM+1 CHECK IF ECS ERROR OCCURRED
  1533. ZJN RECS1 (A)=0, NO ECS ERROR
  1534. LDN DERE ECS READ ERROR
  1535. RJM MES
  1536. LDN 1 EXIT WITH (A) = 1
  1537. RECS1 LJM RECSX EXIT
  1538.  
  1539. * CHECK THAT THIS SUBROUTINES LENGTH IS .LE. THE
  1540. * DDP ECS READ SUBROUTINE LENGTH.
  1541.  
  1542. RECL EQU *-RECSX LENGTH OF THIS SUBROUTINE
  1543. ERRNG //RECL-RECL SUBROUTINE TOO LONG
  1544.  
  1545. LOC *O
  1546. * /--- BLOCK /CMR/WRITE 00 000 86/05/29 10.33
  1547. WECS SPACE 5,11
  1548. ** WECS - WRITE ECS VIA MONITOR FUNCTION.
  1549. *
  1550. * ENTRY (A) = PPU MEMORY ADDRESS.
  1551. * (T1) = UPPER PORTION OF ECS ADDRESS.
  1552. * (T2) = LOWER PORTION OF ECS ADDRESS.
  1553. * (T3) = NUMBER OF CM WORDS TO WRITE.
  1554. *
  1555. * EXIT (A) = 0, IF NO ERRORS.
  1556. * = 1, IF ECS PARITY ERROR.
  1557. *
  1558. * THIS SUBROUTINE WILL OVERWRITE THE DDP ECS WRITE
  1559. * SUBROUTINE, //WECS, IF THE DDP IS NOT
  1560. * AVAILABLE.
  1561.  
  1562.  
  1563. WECF EQU *
  1564. LOC //WECSX
  1565.  
  1566. WECS SUBR
  1567. STM WECA SAVE PP ADDRESS
  1568. .NOSV2 IFGE OSLEV,562D NOS V2
  1569. LDK ZERL ZERO WORD
  1570. CRD CM
  1571. .NOSV2 ENDIF
  1572. LDD T1
  1573. STD CM+3 (CM+3) = UPPER PART OF EM ADDR.
  1574. LDD T2
  1575. STD CM+4 (CM+4) = LOWER PART OF EM ADDR.
  1576. .NOSV1 IFLT OSLEV,562D NOS V1
  1577. LDD MA
  1578. CWD CM (MB) = 36/TRASH,24/EM ADDRESS
  1579. .NOSV1 ENDIF
  1580. LDD T3 GET NUMBER CPU WORDS TO WRITE
  1581. ZJN WECSX IF NO DATA
  1582. .NOSV1 IFLT OSLEV,562D NOS V1
  1583. SBN 1 ADJUST WORD COUNT
  1584. .NOSV1 ENDIF
  1585. SHN 6
  1586. STD CM+1 SET NUMBER CPU WORDS TO WRITE
  1587. LDD RA COMPUTE CM ADDRESS
  1588. SHN 6
  1589. ADC EB CM/ECS BUFFER ADDRESS
  1590. .WECA EQU *-1
  1591. CWM **,T3 WRITE THE DATA
  1592. WECA EQU *-1
  1593. SBD T3
  1594.  
  1595. * /--- BLOCK /CMR/WRITE 00 000 86/05/29 10.33
  1596.  
  1597. .NOSV2 IFGE OSLEV,562D NOS V2
  1598. SBN 1 BACK UP TO BUFFER HEADER
  1599. CWD CM
  1600. .NOSV2 ENDIF
  1601. STD CM+2
  1602. SHN -14
  1603. LPN 77 ENSURE NO SIGN EXTENSION
  1604. .NOSV2 IFGE OSLEV,562D NOS V2
  1605. LMD HN SET REQUEST COUNT
  1606. STM CM+1
  1607. LDC /CPS/PELS*1000B+1S8 WRITE EM VIA CM LIST
  1608. .NOSV2 ELSE NOS V1
  1609. RAD CM+1
  1610. LDC /CPS/RWEM*1000B
  1611. .NOSV2 ENDIF
  1612. STD CM+3 (CM+3) = SUBFUNCTION = *RWEM*
  1613. LDN 1
  1614. STD CM+4 (CM+4) = R/W FLAG (READ)
  1615. MONITOR ECSM WRITE CM TO ECS
  1616. LDD CM+1 CHECK IF ECS ERROR OCCURRED
  1617. ZJN WECS1 (A)=0, NO ECS ERROR
  1618. LDN DEWE ECS WRITE ERROR
  1619. RJM MES
  1620. LDN 1 EXIT WITH (A) =1
  1621. WECS1 LJM WECSX EXIT
  1622.  
  1623. * CHECK THAT THIS SUBROUTINES LENGTH IS .LE. THE
  1624. * DDP ECS WRITE SUBROUTINE LENGTH.
  1625.  
  1626. WECL EQU *-WECSX LENGTH OF THIS SUBROUTINE
  1627. ERRNG //WECL-WECL SUBROUTINE TOO LONG
  1628.  
  1629. LOC *O
  1630.  
  1631. ERRNG OVLE-* OVERFLOW OF OVERLAY BUFFER
  1632. QUAL *
  1633. * /--- BLOCK EM8 00 000 82/04/23 09.11
  1634. EM8 OVERLAY (EM ACCESS FOR 800 SERIES.)
  1635. EM8 SPACE 5,11
  1636. ** EM8 - EM ACCESS ROUTINES FOR 800 SERIES.
  1637. *
  1638. * REWRITE THE DDP EM ACCESS ROUTINES WITH THE
  1639. * READ/WRITE EM ROUTINES CONTAINED IN THIS OVERLAY
  1640. * FOR 800 SERIES MACHINES.
  1641.  
  1642. ORG //OVL+5
  1643. EM8 SUBR
  1644. LDN 0 CLEAR *BFI* LOADED FLAG
  1645. STM BODC
  1646.  
  1647. * COPY CPMTR ROUTINE TO REPLACE DDP ROUTINES
  1648.  
  1649. LDN 0
  1650. STD T1
  1651. EM81 LDM RECF,T1
  1652. STM //RECSX,T1
  1653. AOD T1
  1654. LMC RECL
  1655. NJN EM81 CONTINUE MOVE
  1656. LDN 0 MOVE WRITE ROUTINE
  1657. STD T1
  1658. EM82 LDM WECF,T1
  1659. STM //WECSX,T1
  1660. AOD T1
  1661. LMC WECL
  1662. NJN EM82 CONTINUE MOVE
  1663. LJM EM8X RETURN
  1664.  
  1665. * /--- BLOCK /UEM/READE 00 000 86/05/29 10.38
  1666. RECS SPACE 5,11
  1667. ** RECS - READ UEM VIA DIRECT ACCESS.
  1668. *
  1669. * ENTRY (A) = PPU MEMORY ADDRESS.
  1670. * (T1) = UPPER PORTION OF ECS ADDRESS.
  1671. * (T2) = LOWER PORTION OF ECS ADDRESS.
  1672. * (T3) = NUMBER OF CM WORDS TO READ.
  1673. *
  1674. * EXIT (A) = 0, IF NO ERRORS.
  1675. * = 1, IF ECS PARITY ERROR.
  1676. *
  1677. * THIS SUBROUTINE WILL OVERWRITE THE DDP ECS READ
  1678. * SUBROUTINE, //RECS, ON 800-SERIES MAINFRAMES.
  1679.  
  1680.  
  1681. RECF EQU *
  1682. LOC //RECSX
  1683.  
  1684. RECS SUBR
  1685.  
  1686. * PLANT PP ADDRESS THE CM WORDS ARE TO BE READ INTO
  1687.  
  1688. STM RCS20 PLANT PP MEMORY ADDRESS
  1689. LDD T3 (A) = NUMBER OF PP WORDS
  1690. ZJN RECSX IF NO WORDS TO BE READ
  1691.  
  1692. SRD CM+2 SAVE CURRENT (R)
  1693.  
  1694. * FORM PART OF EM ADDRESS IN (R)
  1695.  
  1696. LDD T1 (A) = UPPER PART OF EM ADDRESS
  1697. SHN -6 (A) = BITS 23 - 18 OF EM ADDR
  1698. STD CM
  1699. LDD T1
  1700. SHN 6 (A) = BITS 17 - 12 OF EM ADDR
  1701. STD CM+1
  1702. LRD CM (R) = BITS 23 - 12 OF EM ADDR
  1703.  
  1704. * FORM THE REST OF THE EM ADDRESS IN (A)
  1705.  
  1706. LDD T2 (A) = LOWER PART OF EM ADDRESS
  1707. LMC 400000B SET BIT TO USE (R) IN ADDR CALC
  1708.  
  1709. * READ EM
  1710.  
  1711. CRM **,T3
  1712. RCS20 EQU *-1 LOCATION TO PLANT PP ADDR INTO
  1713.  
  1714. * DONE.
  1715.  
  1716. LRD CM+2 RESTORE OLD (R)
  1717.  
  1718. LDN 0 MARK NO ERROR OCCURRED
  1719. LJM RECSX RETURN
  1720.  
  1721.  
  1722.  
  1723. * CHECK THAT THIS SUBROUTINES LENGTH IS .LE. THE
  1724. * DDP ECS READ SUBROUTINE LENGTH.
  1725.  
  1726. RECL EQU *-RECSX LENGTH OF THIS SUBROUTINE
  1727. ERRNG //RECL-RECL SUBROUTINE TOO LONG
  1728.  
  1729. LOC *O
  1730. * /--- BLOCK /UEM/WRITE 00 000 86/05/29 10.37
  1731. WECS SPACE 5,11
  1732. ** WECS - WRITE UEM VIA DIRECT ACCESS.
  1733. *
  1734. * ENTRY (A) = PPU MEMORY ADDRESS.
  1735. * (T1) = UPPER PORTION OF ECS ADDRESS.
  1736. * (T2) = LOWER PORTION OF ECS ADDRESS.
  1737. * (T3) = NUMBER OF CM WORDS TO WRITE.
  1738. *
  1739. * EXIT (A) = 0, IF NO ERRORS.
  1740. * = 1, IF ECS PARITY ERROR.
  1741. *
  1742. * THIS SUBROUTINE WILL OVERWRITE THE DDP ECS WRITE
  1743. * SUBROUTINE, //WECS, ON 800-SERIES MAINFRAMES.
  1744.  
  1745.  
  1746. WECF EQU *
  1747. LOC //WECSX
  1748.  
  1749. WECS SUBR
  1750.  
  1751. * PLANT PP ADDRESS THE CM WORDS ARE TO BE
  1752. * WRITTEN FROM
  1753.  
  1754. STM WCS20 PLANT PP MEMORY ADDRESS
  1755.  
  1756. LDD T3 (A) = NUMBER OF PP WORDS
  1757. ZJN WECSX IF NO WORDS TO WRITE
  1758.  
  1759. SRD CM+2 SAVE CURRENT (R)
  1760.  
  1761. * FORM PART OF EM ADDRESS IN (R)
  1762.  
  1763. LDD T1 (A) = UPPER PART OF EM ADDRESS
  1764. SHN -6 (A) = BITS 23 - 18 OF EM ADDR
  1765. STD CM
  1766. LDD T1
  1767. SHN 6 (A) = BITS 17 - 12 OF EM ADDR
  1768. STD CM+1
  1769. LRD CM (R) = BITS 23 - 12 OF EM ADDR
  1770.  
  1771. * FORM THE REST OF THE EM ADDRESS IN (A)
  1772.  
  1773. LDD T2 (A) = LOWER PART OF EM ADDRESS
  1774. LMC 400000B SET BIT TO USE (R) IN ADDR CALC
  1775.  
  1776. * WRITE EM
  1777.  
  1778. CWM **,T3
  1779. WCS20 EQU *-1 LOCATION TO PLANT PP ADDR INTO
  1780.  
  1781. * DONE.
  1782.  
  1783. LRD CM+2 RESTORE OLD (R)
  1784.  
  1785. LDN 0 MARK NO ERROR OCCURRED
  1786. LJM WECSX RETURN
  1787.  
  1788. * CHECK THAT THIS SUBROUTINES LENGTH IS .LE. THE
  1789. * DDP ECS WRITE SUBROUTINE LENGTH.
  1790.  
  1791. WECL EQU *-WECSX LENGTH OF THIS SUBROUTINE
  1792. ERRNG //WECL-WECL SUBROUTINE TOO LONG
  1793.  
  1794. LOC *O
  1795.  
  1796. ERRNG OVLE-* OVERFLOW OF OVERLAY BUFFER
  1797. QUAL *
  1798. * /--- BLOCK GPS 00 000 87/02/10 12.05
  1799. GPS OVERLAY (GET PRIMARY SWITCH NUMBER.)
  1800. GPS SPACE 5,11
  1801. ** GPS - GET PRIMARY SWITCH NUMBER
  1802. *
  1803. * GET PRIMARY SWITCH NUMBER, DATA AND TIME TO
  1804. * WRITE INTO 2550.
  1805.  
  1806.  
  1807. ORG //OVL+5
  1808. GPS SUBR
  1809. LDN 0 CLEAR *BFI* LOADED FLAG
  1810. STM BODC
  1811. LDN ZERL
  1812. CRM /PRESET/BUF,ON
  1813. LDN NPUS/400 NPU PRESET ADDRESS
  1814. STM /PRESET/BUF+2
  1815. LDC NPUS-NPUS/400*400
  1816. STM /PRESET/BUF+3
  1817. LDN 9D SET LENGTH
  1818. STM /PRESET/BUF+5
  1819.  
  1820. * SET NUMBER OF TRUNKS
  1821.  
  1822. LDM NEST,NI READ EST ENTRY
  1823. .NOS22 IFGE OSLEV,594D NOS 2.2
  1824. SFA EST (A) = FWA OF EST ENTRY
  1825. .NOS252 IFGE OSLEV,678D
  1826. ADK EQAE
  1827. .NOS252 ELSE
  1828. ADK EQDE WORD OFFSET
  1829. .NOS252 ENDIF
  1830. .NOS22 ELSE NOS 2.1 OR PRIOR
  1831. ADM ESTS
  1832. .NOS22 ENDIF
  1833. CRD CM
  1834. LDD CM+2
  1835. LPN 77
  1836. NJN GPS1 IF TRUNKS DEFINED
  1837. LDN 1 SET TO ONE TRUNK
  1838. GPS1 STM /PRESET/BUF+7
  1839. LDN 1
  1840. STM /PRESET/BUF+10
  1841. LDN 9D YEAR - 19XX
  1842. STM /PRESET/BUF+11
  1843. LDN DTEL
  1844. CRD CM
  1845. LDD CM
  1846. LPN 77
  1847. SBN 33
  1848. STM /PRESET/BUF+12 YEAR UPPER
  1849. LDD CM+1
  1850. SHN -6
  1851. SBN 33
  1852. STM /PRESET/BUF+13 YEAR LOWER
  1853.  
  1854. * /--- BLOCK GPS 00 000 86/05/29 10.40
  1855.  
  1856. LDN PDTL
  1857. CRD CM
  1858. LDD CM+2
  1859. LPN 77 GET MONTH
  1860. STM /PRESET/BUF+14
  1861. LDD CM+3
  1862. SHN 22-6 GET DAY
  1863. STM /PRESET/BUF+15
  1864. SHN -14 GET HOURS
  1865. STM /PRESET/BUF+16
  1866. LDD CM+4
  1867. SHN 22-6 GET MINUTES
  1868. STM /PRESET/BUF+17
  1869. SHN -14 GET SECONDS
  1870. STM /PRESET/BUF+20
  1871. LDD SN SET S(D) UPPER
  1872. SHN -10
  1873. STM /PRESET/BUF+22
  1874. LDD SN SET S(D) LOWER
  1875. LPC 377
  1876. STM /PRESET/BUF+23
  1877. LDM NDS,NI SET DPNC S(D) UPPER
  1878. SHN -10
  1879. STM /PRESET/BUF+24
  1880. LDM NDS,NI SET DPNC S(D) LOWER
  1881. LPC 377
  1882. STM /PRESET/BUF+25
  1883. LDN 0 CLEAR UNUSED LOCATIONS
  1884. STM /PRESET/BUF+6
  1885. STM /PRESET/BUF+21
  1886. STM /PRESET/BUF+26
  1887. STM /PRESET/BUF+27
  1888. LJM GPSX EXIT
  1889.  
  1890. ERRNG OVLE-* OVERFLOW OF OVERLAY BUFFER
  1891. QUAL *
  1892. * /--- BLOCK IDP 00 000 87/02/10 12.23
  1893. IDP OVERLAY (INITIALIZE ESM ACCESS.)
  1894. IDP SPACE 5,11
  1895. ** IDP - INITIALIZE ESM ACCESS
  1896. *
  1897. * ASSIGN DDP IF AVAILABLE, ELSE SET UP CM TRANSFER
  1898. *
  1899. * EXIT - (A) = 0 IF DDP RESERVED
  1900. * 1 IF NO DDP AND 700 SERIES
  1901. * -1 IF NO DDP AND 800 SERIES
  1902.  
  1903.  
  1904. ORG //OVL+5
  1905. IDP SUBR
  1906. LDN 0 CLEAR *BFI* LOADED FLAG
  1907. STM BODC
  1908.  
  1909. * SEARCH THE EST FOR A DDP (TYPE *D4*). THE DIRECT
  1910. * CELLS USED IN THIS LOOP ARE AS FOLLOWS -
  1911. *
  1912. * NOS 2.2 AND LATER -
  1913. * (CN) = CURRENT EST ORDINAL
  1914. * (CN+2) = LAST EST ORDINAL +1
  1915. *
  1916. * NOS 2.1 AND PRIOR -
  1917. * (CN) = CURRENT EST ENTRY ADDRESS
  1918. * (CN+1) = LWA + 1 OF EST
  1919. * (CN+2) = FWA OF EST
  1920.  
  1921. LDN ESTP
  1922. CRD CN
  1923. .NOS22 IFGE OSLEV,594D NOS 2.2
  1924. LDN 0
  1925. .NOS22 ELSE NOS 2.1 OR PRIOR
  1926. LDD CN SAVE BASE ADDRESS OF EST
  1927. STD CN+2 (CN+2) = FWA OF EST
  1928. SBN 1
  1929. .NOS22 ENDIF
  1930. STD CN (CN) = ENTRY ORDINAL OR ADDRESS
  1931. IDP1 AOD CN BUMP TO NEXT EST ENTRY
  1932. .NOS22 IFGE OSLEV,594D NOS 2.2
  1933. SFA EST (A) = FWA OF EST ENTRY
  1934. CRD CM
  1935. LDD CN (A) = CURRENT EST ORDINAL
  1936. SBD CN+2
  1937. .NOS22 ELSE NOS 2.1 OR PRIOR
  1938. CRD CM
  1939. SBD CN+1
  1940. .NOS22 ENDIF
  1941. NJN IDP1.1 IF MORE ENTRIES TO CHECK
  1942. LJM IDP3 NO DDP RESERVED
  1943. IDP1.1 BSS 0
  1944. LDD CM+3
  1945. LMC DSDP
  1946. NJN IDP1 IF EQUIPMENT TYPES DO NOT MATCH
  1947. .NOS251 IFGE OSLEV,664D
  1948. LDD CM
  1949. LPN 3
  1950. NJP IDP1 IF DEVICE UNAVAILABLE
  1951. .NOS251 ENDIF
  1952. .NOSV2 IFGE OSLEV,562D NOS V2
  1953. .NOS22 IFGE OSLEV,594D NOS 2.2
  1954. SFA EST,CN (A) = FWA OF ENTRY
  1955. ADK EQAE OFFSET TO ASSIGNMENT WORD
  1956. .NOS22 ELSE NOS 2.1
  1957. LDD CN EST ENTRY
  1958. ADD HN OFFSET TO EAT ENTRY
  1959. .NOS22 ENDIF
  1960. CRD CM
  1961. LDD CM+4 EJT ORDINAL FOR THIS EQ
  1962. STD T1 SAVE IT
  1963. LDD CP GET THIS JOBS EJT ORDINAL
  1964. ADN TFSW
  1965. CRD CM
  1966. LDD CM DSN EJT ORDINAL
  1967. STD T2 SAVE IT
  1968.  
  1969. * /--- BLOCK IDP 00 000 87/02/10 14.47
  1970.  
  1971. .NOS22 IFGE OSLEV,594D NOS 2.2
  1972. SFA EST,CN (A) = FWA OF ENTRY
  1973. ADK EQDE EQUIPMENT DESCRIPTOR WORD
  1974. .NOS22 ELSE NOS 2.1
  1975. LDD CN EST ENTRY
  1976. .NOS22 ENDIF
  1977. CRD CM RESTORE EST ENTRY IN CM
  1978. LDD T1
  1979. SBD T2
  1980. ZJN IDP2 IF ALREADY ASSIGNED
  1981. .NOSV2 ELSE NOS V1
  1982. LDD CM CHECK IF ALREADY ASSIGN TO CP
  1983. LPN 77
  1984. SHN 7
  1985. LMD CP
  1986. ZJN IDP2 IF ASSIGNED TO THIS CP
  1987. .NOSV2 ENDIF
  1988. .NOS22 IFGE OSLEV,594D NOS 2.2
  1989. LDD CN (A) = EST ORDINAL
  1990. .NOS22 ELSE NOS 2.1 OR PRIOR
  1991. LDD CN COMPUTE EST ORDINAL
  1992. SBD CN+2
  1993. .NOS22 ENDIF
  1994. STD CM+1
  1995. STM DPEQ
  1996. .NOS242 IFGE OSLEV,642D
  1997. LDN /CPS/REQS REQUEST ACTIVE EQUIPMENT
  1998. .NOS242 ELSE
  1999. LDN 0 REQUEST ACTIVE EQUIPMENT
  2000. .NOS242 ENDIF
  2001. STD CM+2
  2002. MONITOR REQM REQUEST ASSIGNMENT
  2003. LDD CM+1
  2004. ZJN IDP2.2 IF NOT ASSIGNED
  2005. .NOS22 IFGE OSLEV,594D NOS 2.2
  2006. SFA EST,CN (A) = FWA OF CURRENT ENTRY
  2007. .NOS22 ELSE NOS 2.1 OR PRIOR
  2008. LDD CN
  2009. .NOS22 ENDIF
  2010. CRD CM
  2011. IDP2 MONITOR CCHM
  2012. LDD CM+2
  2013. NJN IDP2.1 IF CHANNEL RESERVED
  2014. .NOS22 IFGE OSLEV,594D NOS 2.2
  2015. SFA EST,CN (A) = FWA OF CURRENT ENTRY
  2016. .NOS22 ELSE NOS 2.1 OR PRIOR
  2017. LDD CN
  2018. .NOS22 ENDIF
  2019. CRD CM
  2020. LDD CM+2
  2021. .NOS252 IFGE OSLEV,678D
  2022. SHN 6
  2023. PJP IDP2.2 IF ALTERNATE ACCESS DISABLED
  2024. SHN 21-6
  2025. .NOS252 ELSE
  2026. ZJN IDP2.2 IF NO ALTERNATE CHANNELS
  2027. .NOS252 ENDIF
  2028. STD CM+1
  2029. MONITOR CCHM
  2030. LDD CM+2
  2031. ZJN IDP2.2 IF CHANNEL NOT RESERVED
  2032. IDP2.1 LJM IDP6 IF CHANNEL RESERVED
  2033.  
  2034. IDP2.2 LJM IDP1 LOOP FOR NEXT ENTRY
  2035.  
  2036. * /--- BLOCK IDP 00 000 87/02/24 10.10
  2037.  
  2038. * SET CM BUFFER ADDRESS BASED ON PP ORDINAL
  2039.  
  2040. IDP3 STM DPEQ SHOW NO LOW SPEED PORT
  2041.  
  2042. * DETERMINE IF 700 OR 800 SERIES
  2043.  
  2044. .NOSV2 IFGE OSLEV,562D NOS V2
  2045. LDC MABL
  2046. CRD CM
  2047. LDD CM+1
  2048. SHN 21-13
  2049. PJN IDP4 IF 800 SERIES
  2050. LDN 1 MARK FOR 700 SERIES
  2051. UJN IDP5
  2052.  
  2053. IDP4 LCN 1 MARK FOR 800 SERIES
  2054. IDP5 LJM IDPX RETURN
  2055. .NOSV2 ELSE NOS V1
  2056. LDC CPUL
  2057. CRD CM
  2058. LDD CM+3
  2059. SHN 21-10
  2060. MJN IDP4 IF 800 SERIES
  2061. LDN 1 MARK FOR 700 SERIES
  2062. UJN IDP5
  2063.  
  2064. IDP4 LCN 1 MARK FOR 800 SERIES
  2065. IDP5 LJM IDPX RETURN
  2066. .NOSV2 ENDIF
  2067.  
  2068. * SET DDP CHANNEL
  2069.  
  2070. IDP6 LDC /PRESET/DPCH SET CHANNEL TABLE ADDRESS
  2071. STD T2
  2072. LDD CM+1 (A) = CHANNEL NUMBER
  2073. STM //DPCH
  2074. RJM ICH SET CHANNEL NUMBERS
  2075. .NOS252 IFGE OSLEV,678D
  2076. LDK EXML CHECK EM TYPE
  2077. CRD CM
  2078. LDD CM+3
  2079. SHN 7
  2080. MJN IDP7 IF ESM MODE
  2081. .NOS252 ELSE
  2082. .NOSV2 IFGE OSLEV,562D NOS V2
  2083. LDN MEFL CHECK EM TYPE
  2084. CRD CM
  2085. LDD CM+2
  2086. LPN 7 (A) = EM TYPE CODE
  2087. SBN 5 ESM MODE = 5
  2088. ZJN IDP7 IF ESM MODE
  2089. .NOSV2 ELSE NOS V1
  2090. LDN CPUL
  2091. CRD CM
  2092. LDD CM+ESMW
  2093. SHN 21-ESMB
  2094. MJN IDP7 IF ESM MODE
  2095. .NOSV2 ENDIF
  2096. .NOS252 ENDIF
  2097. LDC UJNI+2 NO-OP MODE SELECT
  2098. STM //RECB
  2099. STM //WECB
  2100. IDP7 LDN 0 MARK DDP RESERVED
  2101. LJM IDPX RETURN
  2102.  
  2103. ERRNG OVLE-* OVERFLOW OF OVERLAY BUFFER
  2104. QUAL *
  2105. * /--- BLOCK KYO 00 000 86/05/29 10.45
  2106. KYO OVERLAY (KEY BUFFER OVERFLOW PROCESSING.)
  2107. KYO SPACE 5,11
  2108. ** KYO - PROCESS KEY BUFFER OVERFLOW PROBLEMS
  2109. *
  2110. * THIS OVERLAY IS CALLED WHEN A KEY WILL BE DROPPED
  2111. * BECAUSE THE OVERFLOW KEY BUFFER IS FULL
  2112. *
  2113. * EXIT - (A) = 0 IF KEY BUFFER SHOULD BE UPDATED
  2114.  
  2115.  
  2116. ORG //OVL+5
  2117. KYO SUBR
  2118. LDN 0 CLEAR *BFI* LOADED FLAG
  2119. STM BODC
  2120.  
  2121. * COUNT NUMBER OF KEYS LOST
  2122.  
  2123. AOM SKYB+2 INCREMENT LOST KEY COUNT
  2124. SHN -14
  2125. RAM SKYB+1
  2126.  
  2127. * CHECK FOR TOO MANY LOST FOR THIS USER
  2128.  
  2129. AOM CMB+1
  2130. SBN 50 LOSE UP TO 50B KEYS
  2131. PJN KYO2 IF TOO MANY LOST KEYS
  2132. LDD KY
  2133. ADC -ST1KY
  2134. NJN KYO1 IF NOT A STOP1 KEY
  2135.  
  2136. * EMPTY OVERFLOW BUFFER AND SET STOP1 KEY
  2137.  
  2138. LDN 1
  2139. STD T2
  2140. LDD KY
  2141. STM CMB+2
  2142. KYO1 LDN 0 (A) = UPDATE OVERFLOW BUFFER
  2143. UJN KYOX
  2144.  
  2145. * /--- BLOCK KYO 00 000 86/05/29 10.45
  2146.  
  2147. * LOG USER OFF, TOO MANY LOST KEYS IN A ROW
  2148.  
  2149. KYO2 BSS 0
  2150. LDC SLKY SINGLE STATION LOGOFF KEY
  2151. STD KY
  2152. LDN 0 FORCE STORE OF KEY
  2153. STM TST,ST SHOW TERMINAL NOT ACTIVE
  2154. RJM SPK
  2155. LDN 0#08
  2156. RJM PLM LOGOUT USER FROM DPNC
  2157. LDD ST
  2158. SBD CB
  2159. ADD SB
  2160. STD T7 SAVE STATION NUMBER
  2161. RJM C2D
  2162. STM KYOA+7 SET LOWER STATION NUMBER
  2163. LDD T7 GET STATION NUMBER
  2164. SHN -6
  2165. RJM C2D
  2166. STM KYOA+6 SET UPPER STATION NUMBER
  2167. LDM SDT,ST GET S(O)
  2168. RJM C2D
  2169. STM KYOA+16 SET LOWER S(O)
  2170. LDM SDT,ST
  2171. SHN -6
  2172. RJM C2D
  2173. STM KYOA+15 SET UPPER S(O)
  2174. LDM TDT,ST GET T(D)
  2175. LPC 377
  2176. STD T7
  2177. RJM C2D
  2178. STM KYOA+21 SET LOWER T(O)
  2179. LDD T7
  2180. SHN -6
  2181. RJM C2D
  2182. STM KYOA+20 SET UPPER T(O)
  2183.  
  2184. * CHECK FOR INHIBIT ERROR MESSAGE - SW2
  2185.  
  2186. LDD RA
  2187. SHN 6
  2188. CRD CN
  2189. LDD CN+4
  2190. SHN 21-7 POSITION SW2
  2191. MJN KYO3 EXIT IF SW2 IS SET
  2192. LDC KYOA
  2193. RJM DFM
  2194. KYO3 BSS 0
  2195. LDN 0 (A) = UPDATE OVERFLOW BUFFER
  2196. STM CMB+1 CLEAR LOST KEY COUNT
  2197. LJM KYOX EXIT
  2198.  
  2199. KYOA DATA C*KEY PUMPING XXXXB, NETNUM XXXXB-XXXXB.*
  2200.  
  2201. ERRNG OVLE-* OVERFLOW OF OVERLAY BUFFER
  2202. QUAL *
  2203. * /--- BLOCK LPG 00 000 82/12/06 16.09
  2204. LPG OVERLAY (LOAD PROGRAM INTO 2550.)
  2205. LPG SPACE 5,11
  2206. ** LPG - LOAD PROGRAM INTO 2550
  2207. *
  2208. * ENTRY - ((CB)) = LOAD FILE DISK ADDRESS
  2209.  
  2210.  
  2211. ORG //OVL+5
  2212. LPG SUBR
  2213.  
  2214. * SET DISK ADDRESS OF LOAD FILE
  2215.  
  2216. LDI CB
  2217. STD T5
  2218. LDM 1,CB
  2219. STD T6
  2220. LDM 2,CB
  2221. STD T7
  2222. LDC RTCL SET UP STATUS CLOCK
  2223. CRD CM
  2224. LDD CM+1
  2225. STM NSTS,NI
  2226. LDN 0 CLEAR *BFI* LOADED FLAG
  2227. STM BODC
  2228. STD IP CLEAR BUFFER INDEX
  2229. STD IL CLEAR WORD COUNT
  2230. RJM CNP CLEAR 2550
  2231. LDC 20*5 PREFIX AND HEADER BYTE LENGTH
  2232. RJM GTW SKIP PREFIX
  2233. NJN LPG3 IF EOR
  2234.  
  2235. * FORMAT DAYFILE MESSAGE
  2236.  
  2237. LDM NEST,NI
  2238. RJM C2D
  2239. STM LPGB+1
  2240. LDN 10D-1 LENGTH OF BINARY DECK ID
  2241. STD T1
  2242. LPG1 LDM /PRESET/BUF+50,T1
  2243. STM LPGB+7,T1
  2244. SOD T1
  2245. PJN LPG1 IF MORE TO MOVE
  2246. LDC LPGB
  2247. RJM DFM
  2248. LPG2 LDN 0
  2249. STD IP BUFFER INDEX
  2250. LDN 6 2550 FWA PACKET LENGTH
  2251. RJM GTW
  2252. NJN LPG5 IF EOR
  2253. LDM /PRESET/BUF
  2254. SHN 21-13
  2255. MJN LPG4 IF LEGAL CONTROL WORD
  2256. LPG3 LDN NFFE LOAD FILE FORMAT ERROR
  2257. LJM MXE ABORT
  2258.  
  2259. LPG4 LDM /PRESET/BUF+5
  2260. SHN 1
  2261. ZJN LPG3 IF PACKET LENGTH IS ZERO
  2262. RJM GTW GET PACKET
  2263. NJN LPG3 IF EOR
  2264. RJM /PRESET/WTB WRITE LOAD DATA AND VERIFY
  2265. UJN LPG2
  2266.  
  2267. LPG5 LJM LPGX EXIT
  2268.  
  2269. LPGB DATA C*EQXX LOADING- XXXXXXXXXXXXXXXXXXXX*
  2270. CNP SPACE 5,11
  2271. ** CNP - MASTER CLEAR 2550
  2272.  
  2273.  
  2274. CNP SUBR
  2275. LDC CLC
  2276. RJM FNC CLEAR COUPLER
  2277. LDC CNU
  2278. RJM FNC CLEAR 2550
  2279. RJM STS CLEAR ANY LEFT OVER STATUS
  2280. UJN CNPX
  2281. * /--- BLOCK LPG 00 000 82/12/06 16.04
  2282. GTW SPACE 5,11
  2283. ** GTW - MOVE WORDS FROM DISK BUFFER TO 2550 BUFFER
  2284. *
  2285. * ENTRY - (A) = REQUESTED PP BYTE COUNT
  2286. * (IL) = NUMBER OF BYTES LEFT IN DISK BUFFER
  2287. * (IP) = STARTING ADDRESS IN 2550 BUFFER
  2288. *
  2289. * EXIT - (BUF) = REQUESTED DATA BYTES
  2290. * (A) = 0 DATA READ
  2291.  
  2292.  
  2293. GTW4 LDN 1 SET EOF/EOI FLAG
  2294.  
  2295. GTW SUBR
  2296. ZJN GTWX IF NO DATA REQUESTED
  2297. STD PL SAVE BYTE COUNT
  2298. LDD IL
  2299. NJN GTW2 IF BYTES LEFT IN *BFDS*
  2300. GTW1 RJM RDB FILL *BFDS*
  2301. ZJN GTW4 IF EOF/EOI ENCOUNTERED
  2302. LDD IL SET SIZE OF READ
  2303. ZJN GTW1 IF EMPTY SECTOR
  2304. STM GTWA
  2305. GTW2 LDC 500
  2306. GTWA EQU *-1
  2307. SBD IL FIND STARTING TRANSFER POINT
  2308. STD T2
  2309. GTW3 LDM /PRESET/BFDS+2,T2
  2310. STM /PRESET/BUF,IP
  2311. AOD T2
  2312. AOD IP
  2313. SOD IL
  2314. SOD PL
  2315. ZJN GTWX IF ALL BYTES TRANSFERRED
  2316. LDD IL
  2317. NJN GTW3 IF BYTES LEFT IN *BFDS*
  2318. UJN GTW1 READ NEXT DISK SECTOR
  2319. RDB SPACE 5,11
  2320. ** RDB - READ DISK BUFFER
  2321. *
  2322. * EXIT - (A) = 0 IF EOF/EOI ENCOUNTERED
  2323. * (IL) = NUMBER OF PP BYTES READ
  2324.  
  2325.  
  2326. RDB SUBR
  2327. LDN 1
  2328. RDBA EQU *-1
  2329. ZJN RDBX IF EOR ON PREVIOUS SECTOR
  2330. SETMS READSYS
  2331. LDC /PRESET/BFDS
  2332. RJM /PRESET/RNS READ NEXT SECTOR
  2333. SHN 2 COUNT PP WORD COUNT
  2334. ADD T1
  2335. STD IL
  2336. ENDMS
  2337. LDD T1
  2338. SHN -6
  2339. ADC LDNI
  2340. STM RDBA SET EOR FLAG
  2341. UJN RDBX EXIT
  2342.  
  2343. ERRNG OVLE-* OVERFLOW OF OVERLAY BUFFER
  2344. QUAL *
  2345. * /--- BLOCK MXE 00 000 87/02/10 14.50
  2346. MXE OVERLAY (PROCESS 2550 CHANNEL ERRORS.)
  2347. MXE SPACE 5,11
  2348. ** MXE - PROCESS 2550 CHANNEL ERRORS
  2349. *
  2350. * ENTRY - (T7) = ERROR CODE
  2351.  
  2352.  
  2353. ORG //OVL+5
  2354. MXE SUBR
  2355. LDN 0 CLEAR *BFI* LOADED FLAG
  2356. STM BODC
  2357.  
  2358. * ISSUE DAYFILE MESSAGE ABOUT ERROR
  2359.  
  2360. LDD T7
  2361. RAM .MXEA
  2362. RJM C2D
  2363. STM MXEA+6
  2364. LDM NEST,NI
  2365. RJM C2D
  2366. STM MXEA+1
  2367. STM MXEB+1
  2368. LDC MXEA *EQXX ERROR XX.*
  2369. RJM DFM
  2370. LDN 0
  2371. STD OD CLEAR OUTPUT DELAY FLAG
  2372. STD OL CLEAR OUTPUT LENGTH
  2373.  
  2374. LDD IR+2
  2375. NJN MXE0.1 IF RELOAD CALL
  2376. LDM INIC
  2377. ZJN MXE0.1 IF INITIALIZATIONS COMPLETE
  2378. LDN ILFE INITIAL LOADING FAILURE
  2379. RJM MES
  2380. LJM TER TERMINATE PROGRAM
  2381. * LOG OFF ALL TERMINALS CONNECTED TO THIS 2550
  2382.  
  2383. MXE0.1 BSS 0
  2384. RJM LOT
  2385.  
  2386. * CALL ANOTHER COPY OF DSN TO RE-LOAD THIS 2550
  2387.  
  2388. LDM NCH,NI DROP CHANNEL
  2389. DCHAN
  2390. LDD MA BUILD INPUT REGISTER
  2391. CWD IR
  2392. CRD CM
  2393. LDM NEST,NI SET EST ORDINAL TO RE-LOAD
  2394. STD CM+2
  2395. .NOS22 IFGE OSLEV,594D NOS 2.2
  2396. SFA EST (A) = FWA OF EST ENTRY
  2397. ADK EQDE OFFSET TO DESCRIPTOR WORD
  2398. .NOS22 ELSE NOS 2.1 OR PRIOR
  2399. ADM ESTS READ EST ENTRY
  2400. .NOS22 ENDIF
  2401. CRD CN
  2402. .NOS252 IFGE OSLEV,664D
  2403. LDD CN
  2404. LPN 3
  2405. NJP MXE1 IF UNAVAILABLE
  2406. .NOS252 ELSE
  2407. LDD CN+3 CHECK IF 2550 IS STILL ON
  2408. SHN 6
  2409. MJN MXE1 IF TURNED OFF
  2410. .NOS252 ENDIF
  2411.  
  2412. LDN 0
  2413. .MXEA EQU *-1 2550 ERROR CODE
  2414. SBN OPLE
  2415. ZJN MXE2 IF OPERATOR REQUESTED LOAD
  2416.  
  2417. * /--- BLOCK MXE 00 000 86/05/29 10.49
  2418.  
  2419. * CHECK IF RELOAD INHIBITED
  2420.  
  2421. LDD RA READ SENSE SWITCHES
  2422. SHN 6
  2423. CRD CN
  2424. LDD CN+4
  2425. SHN 21-6
  2426. MJN MXE0 IF RELOADS INHIBITED (SSW1)
  2427. AOM NREL,NI CHECK IF TOO MANY RE-LOADS
  2428. SBN MXREL+1
  2429. MJN MXE2 IF NOT TOO MANY RE-LOADS
  2430.  
  2431. * TURN 2550 OFF AFTER MAXIMUM RE-LOADS
  2432.  
  2433. MXE0 LDD CM+2
  2434. STD CM+1
  2435. LDN 1
  2436. STD CM+2
  2437. MONITOR SEQM
  2438. LDC MXEB *EQXX TURNED OFF.*
  2439. RJM DFM
  2440. LDD IR+2
  2441. ZJN MXE1 -- IF NOT RELOAD CALL
  2442. LJM TER RELOAD CALL'; EXIT
  2443. MXE1 LJM MXE7
  2444.  
  2445. MXE2 LDD SN SET S(D)
  2446. STD CM+3
  2447. LDM NDS,NI SET DPNC S(D)
  2448. STD CM+4
  2449. LDD MA
  2450. CWD CM
  2451. MXE5 LDN 1 SET PRIORITY PP REQUEST
  2452. STD CM+1
  2453. MONITOR RPPM REQUEST PP
  2454. LDD CM+1
  2455. ZJN MXE5 IF PP NOT LOADED
  2456.  
  2457. * WAIT FOR PP TO LOAD 2550 AND DROP
  2458.  
  2459. STD T7
  2460. MXE6 DELAY
  2461. LDD T7
  2462. CRD CM
  2463. LDD IR
  2464. LMD CM
  2465. NJN MXE7 IF PP HAS DROPPED
  2466. LDD CM+1
  2467. LMD IR+1
  2468. SCN 77
  2469. NJN MXE7 IF PP HAS DROPPED
  2470. RJM PSE PAUSE
  2471. ZJN MXE6 IF NO ERROR FLAG
  2472. LJM TER
  2473.  
  2474. * CONTINUE 2550 RELOAD AFTER LOAD PP DROPPED
  2475.  
  2476. MXE7 EXECUTE MXP,=
  2477. LDC /MXP/OVL
  2478. RJM EXR
  2479.  
  2480. MXEA DATA C*EQXX ERROR XX.*
  2481. MXEB DATA C*EQXX TURNED OFF.*
  2482.  
  2483. ERRNG OVLE-* OVERFLOW OF OVERLAY BUFFER
  2484. QUAL *
  2485. * /--- BLOCK MXP 00 000 86/05/29 10.50
  2486. MXP OVERLAY (COMPLETE 2550 RELOAD.)
  2487. MXP SPACE 5,11
  2488. ** COMPLETE 2550 RELOAD
  2489.  
  2490. ORG //OVL+5
  2491. MXP SUBR
  2492. LDN 0 CLEAR *BFI* LOADED FLAG
  2493. STM BODC
  2494.  
  2495. * CHECK IF 2550 IS STILL TURNED ON
  2496.  
  2497. LDM NEST,NI
  2498. .NOS22 IFGE OSLEV,594D NOS 2.2
  2499. SFA EST (A) = FWA OF EST ENTRY
  2500. ADK EQDE OFFSET TO DESCRIPTOR WORD
  2501. .NOS22 ELSE NOS 2.1 OR PRIOR
  2502. ADM ESTS READ EST ENTRY
  2503. .NOS22 ENDIF
  2504. CRD CN
  2505. LDD CN+3 CHECK IF 2550 IS STILL ON
  2506. SHN 6
  2507. PJN MXP3 IF STILL ON
  2508.  
  2509. * STOP PROCESSING THIS 2550
  2510.  
  2511. .NOSV2 IFGE OSLEV,562D NOS V2
  2512. LDM NEST,NI LOCATION IN EST TABLE
  2513. .NOS22 IFGE OSLEV,594D NOS 2.2
  2514. SFA EST (A) = FWA OF EST ENTRY
  2515. ADK EQAE
  2516. CRD CN READ WORD *EQAE* OF EST ENTRY
  2517. .NOS22 ELSE NOS 2.1
  2518. ADM ESTS LOCATION OF EST TABLE
  2519. ADC 100 MOVE TO EAT TABLE
  2520. CRD CN READ EAT ENTRY
  2521. .NOS22 ENDIF
  2522. LDD CP GET EJT ORDINAL
  2523. ADN TFSW
  2524. CRD CM
  2525. LDD CM EJT ORDINAL
  2526. SBD CN+4 EJT 2550 IS ASSIGNED TO
  2527. NJN MXP2 IF 2550 NOT ASSIGNED HERE
  2528. .NOSV2 ELSE NOS V1
  2529. LDD CN CHECK IF ALREADY DROPPED
  2530. ZJN MXP2 IF NOT ASSIGNED TO ANY CP
  2531. .NOSV2 ENDIF
  2532. LDM NEST,NI RELEASE 2550 EQUIPMENT
  2533. STD CM+1
  2534. MONITOR DEQM
  2535. MXP2 LDN 0
  2536. STM NEST,NI SHOW THIS 2550 NOT ACTIVE
  2537.  
  2538. * /--- BLOCK MXP 00 000 86/05/29 10.50
  2539.  
  2540. * CHECK IF THE CHANNEL SHOULD BE RESERVED AGAIN
  2541. * CHECK ANY 2550 TO PROCESS
  2542.  
  2543. MXP3 LDN 0
  2544. STD T1 (T1) = 2550 INDEX
  2545. STD T2 (T2) = ACTIVE 2550 COUNT
  2546. STD T3 (T3) = CHANNEL NEEDED FLAG
  2547. LDC RTCL
  2548. CRD CM
  2549. MXP4 LDM NEST,T1
  2550. ZJN MXP5 IF INACTIVE 2550
  2551. AOD T2 COUNT ACTIVE 2550S
  2552. LDD CM+1 RESET STATUS CLOCK
  2553. STM NSTS,T1
  2554. LDM NCH,T1
  2555. LMM NCH,NI
  2556. NJN MXP5 IF NOT ON THE DROPPED CHANNEL
  2557. AOD T3 MARK CHANNEL NEEDED
  2558. MXP5 AOD T1
  2559. LMM .SNPA
  2560. NJN MXP4 IF MORE 2550S TO CHECK
  2561. LDD T2
  2562. ZJN MXP7 IF NO 2550S TO PROCESS
  2563. LDD T3
  2564. ZJN MXP6 IF CHANNEL NOT NEEDED
  2565. LDM NCH,NI
  2566. RCHAN RESERVE CHANNEL
  2567. MXP6 RJM SNP
  2568. LJM MAI1 ENTER MAIN LOOP OF DRIVER
  2569.  
  2570. MXP7 LJM MAI9 DROP PP
  2571.  
  2572. ERRNG OVLE-* OVERFLOW OF OVERLAY BUFFER
  2573. QUAL *
  2574. * /--- BLOCK OPC 00 000 87/02/10 15.14
  2575. OPC OVERLAY (PROCESS OPERATOR CFO COMMAND.)
  2576. OPC SPACE 5,11
  2577. ** PROCESS OPERATOR CFO COMMAND
  2578.  
  2579.  
  2580. ORG //OVL+5
  2581. OPC SUBR
  2582. LDN 0 CLEAR *BFI* LOADED FLAG
  2583. STM BODC
  2584.  
  2585. * READ OPERATOR REQUEST
  2586.  
  2587. LDD RA
  2588. SHN 6
  2589. ADN CCDR
  2590. CRD CM
  2591. LDD CM
  2592. LMC 2RRE CHECK FOR *RE*
  2593. ZJN OPC2 IF RELOAD REQUEST
  2594. OPC1 LDC OPCA
  2595. RJM DFM
  2596. LJM OPC9 SET CFO BIT AND EXIT
  2597.  
  2598. * PROCESS *RELOAD* REQUEST
  2599.  
  2600. OPC2 LDD CM+1
  2601. RJM DXB CONVERT EST ORDINAL
  2602. MJN OPC1 IF INVALID NUMBER
  2603. STD T4 (T4) = EST ORDINAL
  2604. .NOS22 IFGE OSLEV,594D NOS 2.2
  2605. SFA EST (A) = FWA OF EST ENTRY
  2606. ADK EQDE OFFSET TO DESCRIPTOR WORD
  2607. .NOS22 ELSE NOS 2.1 OR PRIOR
  2608. ADM ESTS
  2609. .NOS22 ENDIF
  2610. CRD CM
  2611. LDD CM+3
  2612. LMC DSFE
  2613. NJN OPC1 IF NOT *FE* EQUIPMENT
  2614.  
  2615. * DETERMINE WHICH PP DRIVES THIS 2550
  2616.  
  2617. .NOS252 IFGE OSLEV,678D
  2618. SFA EST,T4
  2619. ADK EQAE
  2620. CRD CM
  2621. .NOS252 ENDIF
  2622. LDD CM+2 EXTRACT 2550 ORDINAL
  2623. SHN -6
  2624. STD CM+2
  2625. LDD MA
  2626. CWD IR
  2627. CRD CN (CN+4) = PP ORDINAL
  2628. OPC3 LCN MXNPU
  2629. RAD CM+2
  2630. MJN OPC4 IF FOUND THE CORRECT PP
  2631. AOD CN+4
  2632. UJN OPC3
  2633.  
  2634. OPC4 ADN MXNPU
  2635. STD T5 (T5) = 2550 ORDINAL WITHIN PP
  2636. .NOS252 IFGE OSLEV,678D
  2637. SFA EST,T4
  2638. ADK EQDE
  2639. CRD CM
  2640. .NOS252 ENDIF
  2641. LDD CM+1
  2642. LPN 77
  2643. STD T6 (T6) = CHANNEL
  2644. LDD CM+4
  2645. LPC 7000
  2646. STD T7 (T7) = EQUIPMENT
  2647. LDN 1
  2648. STD T3 (T3) = UP REQUEST
  2649.  
  2650. * /--- BLOCK OPC 00 000 86/05/29 10.53
  2651.  
  2652. * CHECK IF THIS PP IS LOADED
  2653.  
  2654. LDN PPUL
  2655. CRD CM
  2656. LDD CM+2
  2657. STD T1 (T1) = NUMBER OF PPS
  2658. LDN PPCP
  2659. CRD CM
  2660. LDD CM+4
  2661. STD T2 (T2) = PP COMMUNICATION ADDRESS
  2662. OPC5 LDD T2
  2663. CRD CM
  2664. LDD CM
  2665. LMD IR
  2666. NJN OPC6 IF NOT *DSN*
  2667. LDD CM+1
  2668. LMD IR+1
  2669. SCN 77
  2670. NJN OPC6 IF NOT *DSN*
  2671. LDD CM+4
  2672. LMD CN+4
  2673. ZJN OPC8 IF PROPER DRIVER LOADED
  2674. OPC6 LDN 10
  2675. RAD T2
  2676. SOD T1
  2677. NJN OPC5 IF MORE PPS
  2678.  
  2679. * LOAD THIS PP
  2680.  
  2681. OPC7 LDD MA
  2682. CWD CN
  2683. LDN 1 SET PRIORITY PP REQUEST
  2684. STD CM+1
  2685. MONITOR RPPM
  2686. LDD CM+1
  2687. NJN OPC9 IF PP ASSIGNED
  2688. RJM PSE
  2689. ZJN OPC7
  2690. LJM TER
  2691.  
  2692. * /--- BLOCK OPC 00 000 86/05/29 10.52
  2693.  
  2694. * WRITE REQUEST TO DRIVER REQUESTS
  2695.  
  2696. OPC8 LDD RA
  2697. SHN 6
  2698. ADN DR
  2699. ADD CN+4
  2700. CWD T3
  2701.  
  2702. * SET CFO BIT
  2703.  
  2704. OPC9 LDD RA
  2705. SHN 6
  2706. CRD CM
  2707. LDN 4
  2708. STD CM+3
  2709. LDD RA
  2710. SHN 6
  2711. CWD CM
  2712. LJM OPCX EXIT
  2713.  
  2714. OPCA DATA C* INVALID REQUEST.*
  2715. DXB SPACE 5,11
  2716. ** DXB - CONVERT NUMBER FROM DISPLAY CODE
  2717. *
  2718. * ENTRY - (A) = CHARACTERS TO CONVERT
  2719. *
  2720. * EXIT - (A) = CONVERTED NUMBER (-1 IF ERROR)
  2721.  
  2722.  
  2723. DXB1 LCN 1
  2724.  
  2725. DXB SUBR
  2726. STD T1
  2727. LPN 77
  2728. SBN 1R0
  2729. MJN DXB1 IF ILLEGAL CHARACTER
  2730. STD T0
  2731. SBN 10
  2732. PJN DXB1 IF ILLEGAL CHARACTER
  2733. LDD T1
  2734. SHN -6
  2735. SBN 1R0
  2736. MJN DXB1 IF ILLEGAL CHARACTER
  2737. SBN 10
  2738. PJN DXB1 IF ILLEGAL CHARACTER
  2739. ADN 10
  2740. SHN 3
  2741. ADD T0
  2742. UJN DXBX EXIT
  2743.  
  2744. ERRNG OVLE-* OVERFLOW OF OVERLAY BUFFER
  2745. QUAL *
  2746. * /--- BLOCK OPR 00 000 86/05/29 10.56
  2747. OPR OVERLAY (PROCESS MAIN DRIVER REQUEST.)
  2748. OPR SPACE 5,11
  2749. ** PROCESS REQUEST FROM MAIN DRIVER
  2750. *
  2751. * REQUEST PARAMETERS
  2752. * ------- ----------
  2753. *
  2754. * 1 (RELOAD 2550) EST, ORDINAL, CHANNEL, EQUIP
  2755.  
  2756.  
  2757. ORG //OVL+5
  2758. OPR SUBR
  2759. LDN 0 CLEAR *BFI* LOADED FLAG
  2760. STM BODC
  2761.  
  2762. * READ AND CLEAR REQUEST BUFFER
  2763.  
  2764. LDN ZERL
  2765. CRD CM
  2766. LDD RA
  2767. SHN 6
  2768. ADN DR
  2769. ADD PO
  2770. CRD CN READ REQUEST
  2771. CWD CM CLEAR REQUEST
  2772.  
  2773. * DETERMINE REQUEST TYPE
  2774.  
  2775. LDD CN
  2776. SBN 1
  2777. NJN OPRX IF UNKNOWN REQUEST
  2778.  
  2779. * RESERVE EQUIPMENT
  2780.  
  2781. .NOSV2 IFLT OSLEV,562D IF NOS V1
  2782. LDD CN+1 CHECK IF ALREADY ASSIGNED TO CP
  2783. ADM ESTS
  2784. CRD CM
  2785. LDD CM
  2786. SHN 7
  2787. LMD CP
  2788. .NOSV2 ELSE IF NOS V2
  2789. LDD CN+1 (A) = EST ORDINAL
  2790. .NOS22 IFGE OSLEV,594D NOS 2.2
  2791. SFA EST (A) = FWA OF EST ENTRY
  2792. ADK EQAE OFFSET TO ASSIGNMENT WORD
  2793. .NOS22 ELSE NOS 2.1
  2794. ADM ESTS (A) = ADDRESS OF EST ENTRY
  2795. ADD HN (A) = ADDRESS OF EAT ENTRY
  2796. .NOS22 ENDIF
  2797. CRD CM READ EAT ENTRY
  2798. LDD CM+4
  2799. STD T1
  2800. LDD CP CHECK DSN,S EJT ORDINAL
  2801. ADK TERW (A) = ADDR OF CP EJT ORDINAL
  2802. CRD CM
  2803. LDD T1
  2804. LMD CM
  2805. .NOSV2 ENDIF
  2806. ZJN OPR1 IF ASSIGNED TO THIS CP
  2807. LDM NEST,CN+2
  2808. ZJN OPR0 IF 2550 ORDINAL IS OKAY
  2809. LDC OPRA DUPLICATE 2550 ORDINALS
  2810. RJM DFM
  2811. LJM OPRX EXIT
  2812.  
  2813. * /--- BLOCK OPR 00 000 86/05/29 10.55
  2814.  
  2815. OPR0 BSS 0
  2816. LDD CN+1
  2817. STD CM+1
  2818. .NOS242 IFGE OSLEV,642D
  2819. LDN /CPS/REQS REQUEST ACTIVE EQUIPMENT
  2820. .NOS242 ELSE
  2821. LDN 0 REQUEST ACTIVE EQUIPMENT
  2822. .NOS242 ENDIF
  2823. STD CM+2
  2824. MONITOR REQM REQUEST ASSIGNMENT
  2825. LDD CM+1
  2826. NJN OPR1 IF ASSIGNED
  2827. LJM OPRX EXIT
  2828.  
  2829. * BUILD TABLES FOR THIS 2550
  2830.  
  2831. OPR1 LDD CN+2
  2832. SHN 4
  2833. STD T1
  2834. LDD CN+1
  2835. STM NEST,CN+2
  2836. LDD CN+3
  2837. STM NCH,CN+2
  2838. LDD CN+4
  2839. STM NEQ,T1
  2840. LDN 0
  2841. STM NREL,CN+2
  2842.  
  2843. * CHECK IF CHANNEL ALREADY REQUEST
  2844.  
  2845. .NOSV2 IFGE OSLEV,562D NOS V2
  2846. LDN CTALL
  2847. STD T1 (T1) = LENGTH OF CHANNEL TABLE
  2848. LDK CHTP (A) = CMR POINTER ADDRESS
  2849. CRD CM
  2850. LDD CM+2
  2851. SHN 14B
  2852. ADD CM+3 (A) = FWA OF CHANNEL TABLE
  2853. .NOSV2 ELSE NOS V1
  2854. LDN CTILL
  2855. STD T1
  2856. LDC CTIL
  2857. .NOSV2 ENDIF
  2858. CRM BUF,T1
  2859. LDN PPCP
  2860. CRD CM
  2861. LDD IA
  2862. SBD CM+4
  2863. SHN -3
  2864. LMM BUF,CN+3
  2865. .NOSV2 IFGE OSLEV,562D NOS V2
  2866. LPN 37
  2867. .NOSV2 ELSE NOS V1
  2868. LPN 77
  2869. .NOSV2 ENDIF
  2870. ZJN OPR2 IF CHANNEL ALREADY ASSIGNED
  2871. LDD CN+3
  2872. RCHAN
  2873.  
  2874. * SET UP TO RE-LOAD THIS 2550
  2875.  
  2876. OPR2 LDD CN+2
  2877. LMD NI
  2878. ZJN OPR3 IF SET TO PROPER 2550
  2879. RJM SNP SET UP NEXT 2550
  2880. UJN OPR2
  2881.  
  2882. * FORCE THIS 2550 TO BE RELOADED
  2883.  
  2884. OPR3 LDN OPLE
  2885. LJM MXE RE-LOAD 2550
  2886.  
  2887. OPRA DATA C*DUPLICATE 2550 ORDINALS.*
  2888.  
  2889. ERRNG OVLE-* OVERFLOW OF OVERLAY BUFFER
  2890. QUAL *
  2891. * /--- BLOCK PSM 00 000 86/05/29 10.53
  2892. PSM OVERLAY (PROCESS SYSTEM MESSAGE.)
  2893. PSM SPACE 5,11
  2894. ** PSM - PROCESS SYSTEM MESSAGE
  2895. *
  2896. * ENTRY - (IP) - POINTER TO START OF TERMINAL BLOCK
  2897. *
  2898. * EXIT - (IP) - INCREMENTED BY LENGTH OF DATA BLOCK
  2899.  
  2900. ORG //OVL+5
  2901. PSM SUBR
  2902. LDN 0 CLEAR *BFI* LOADED FLAG
  2903. STM BODC
  2904. LDM IBUF,IP SET SYSTEM MESSAGE NUMBER
  2905. STD T4
  2906. LDC SYSB
  2907. STD T5
  2908. LDM IBUF,IP CHECK FOR FB MESSAGE
  2909. ADC -0#FB
  2910. NJN SYS1 IF NOT A FB MESSAGE
  2911. LDM IBUF+2,IP GET FB MESSAGE NUMBER
  2912. STD T4
  2913. LDC SYSD SET TO FB TABLE
  2914. STD T5
  2915.  
  2916. * SEARCH FOR THIS SYSTEM MESSAGE
  2917.  
  2918. SYS1 LDI T5
  2919. ZJN SYS2 IF END OF TABLE
  2920. LMD T4
  2921. ZJN SYS3 IF FOUND THIS SYSTEM MESSAGE
  2922. LDN 2
  2923. RAD T5
  2924. UJN SYS1 CHECK NEXT ENTRY IN TABLE
  2925.  
  2926. * SYSTEM MESSAGE NOT FOUND
  2927.  
  2928. SYS2 LDD T4
  2929. STD ST ST CONTAINS BAD CODE
  2930. LDN USME UNKNOWN SYSTEM MESSAGE
  2931. RJM MES
  2932. LDN 1 MARK AS UNKNOWN MESSAGE
  2933. UJN SYS4
  2934.  
  2935. * JUMP TO PROCESSOR FOR THIS SYSTEM MESSAGE
  2936. *
  2937. * (IP) = POINTER TO TERMINAL BLOCK
  2938. * (PL) = PACKET LENGTH
  2939.  
  2940. SYS3 LDM 1,T5
  2941. STM /SYS/SYSA
  2942. LDN 0 MARK AS ROUTINE PLANTED
  2943. SYS4 BSS 0
  2944. LJM PSMX EXIT
  2945.  
  2946. SYSB BSS 0 SYSTEM MESSAGE TABLE
  2947. CON 0#CA,CSS CHANGE SWITCH STATUS
  2948. CON 0#CD,DSM IST ERROR STATISTICS
  2949. CON 0#DE,CEM 2550 CCP ERROR/STATISTIC MSG
  2950. * DELETED ASU, APPLICATION SYSTEM UPDATE
  2951. CON 0#E7,ASO APPLICATION SIGNON
  2952. CON 0 END OF TABLE
  2953.  
  2954. SYSD BSS 0 FB MESSAGE TABLE
  2955. CON 0#91,SBG SIGN-ON TO BACKGROUND SYSTEM
  2956. CON 0 END OF TABLE
  2957.  
  2958. ERRNG OVLE-* OVERFLOW OF OVERLAY BUFFER
  2959. QUAL *
  2960. * /--- BLOCK RFE 00 000 87/02/10 15.16
  2961. RFE OVERLAY (RESERVE FRONT ENDS.)
  2962. RFE SPACE 4,10
  2963. ** RFE - RESERVE FRONT END.
  2964. *
  2965. * RESERVE 2550S ASSIGNED TO THIS PP.
  2966.  
  2967.  
  2968.  
  2969. ORG //OVL+5
  2970. RFE SUBR ENTRY / EXIT
  2971. LDN 0 CLEAR *BFI* LOADED FLAG
  2972. STM BODC
  2973. LDN ESTP
  2974. CRD CN
  2975. .NOS22 IFGE OSLEV,594D NOS 2.2
  2976. LDN 0
  2977. STD CN+3 (CN+3) = CURRENT EST ORDINAL
  2978. STD CN+4 (CN+4) = NO. OF 2550S ASSIGNED
  2979. RFE1 AOD CN+3 ADVANCE TO NEXT EST ENTRY
  2980. SBD CN+2 (CN+2) = LAST EST ORDINAL + 1
  2981. PJP RFE6 IF NO MORE ENTRIES
  2982. SFA EST,CN+3
  2983. CRD CM READ EST ENTRY
  2984. .NOS22 ELSE NOS 2.1 OR PRIOR
  2985. LDD CN SAVE BASE ADDRESS OF EST
  2986. STD CN+2
  2987. SBN 1
  2988. STD CN INITIALIZE LOOP
  2989. LDN 0
  2990. STD CN+4 NUMBER OF 2550S ASSIGNED
  2991. RFE1 AOD CN BUMP TO NEXT EST ENTRY
  2992. CRD CM
  2993. SBD CN+1
  2994. MJN RFE1.1 IF MORE ENTRIES
  2995. LJM RFE6
  2996. .NOS22 ENDIF
  2997.  
  2998. RFE1.1 LDD CM+3
  2999. LMC DSFE
  3000. NJN RFE1 IF EQUIPMENT TYPES DO NOT MATCH
  3001.  
  3002. * CHECK IF THIS ORDINAL SHOULD BE ASSIGNED TO PP
  3003.  
  3004. LDN 0
  3005. STD NI
  3006. .NOS252 IFGE OSLEV,678D
  3007. SFA EST,CN+3
  3008. ADK EQAE
  3009. CRD CM
  3010. .NOS252 ENDIF
  3011. RFE2 LDD CM+2
  3012. SHN -6
  3013. LMM NORD,NI
  3014. ZJN RFE3 IF THIS PP SHOULD PROCESS
  3015. AOD NI
  3016. LMM .SNPA
  3017. NJN RFE2 IF MORE 2550 TO CHECK
  3018. RFE2.1 UJN RFE1 SEARCH FOR NEXT 2550
  3019.  
  3020. RFE3 LDM NEST,NI
  3021. ZJN RFE4 IF ORDINAL NOT YET ASSIGNED
  3022. LDC RFEB * DUPLICATE 2550 ORDINALS.*
  3023. LJM RFE7
  3024.  
  3025. .NOS22 IFGE OSLEV,594D NOS 2.2
  3026. RFE4 LDD CN+3 (A) = EST ORDINAL
  3027. .NOS22 ELSE NOS 2.1 OR PRIOR
  3028. RFE4 LDD CN COMPUTE EST ORDINAL
  3029. SBD CN+2
  3030. .NOS22 ENDIF
  3031. STD CM+1
  3032.  
  3033. * /--- BLOCK RFE 00 000 87/02/10 15.19
  3034.  
  3035. .NOS242 IFGE OSLEV,642D
  3036. LDN /CPS/REQS
  3037. .NOS242 ELSE
  3038. LDN 0 REQUEST ACTIVE EQUIPMENT
  3039. .NOS242 ENDIF
  3040. STD CM+2 ACTIVE EQUIPMENT ONLY
  3041. MONITOR REQM REQUEST ASSIGNMENT
  3042. LDD CM+1
  3043. ZJN RFE2.1 IF NOT ASSIGNED
  3044. .NOS22 IFGE OSLEV,642D
  3045. LDD CN+3 (A) = EST ORDINAL
  3046. .NOS22 ENDIF
  3047. STM NEST,NI SET EST ORDINAL
  3048. AOD CN+4 COUNT 2550S ASSIGNED
  3049. LDD NI
  3050. SHN 4
  3051. STD T7
  3052. .NOS22 IFGE OSLEV,594D NOS 2.2
  3053. SFA EST,CN+3 (A) = CURRENT ENTRY FWA
  3054. ADK EQDE
  3055. .NOS22 ELSE NOS 2.1 OR PRIOR
  3056. LDD CN
  3057. .NOS22 ENDIF
  3058. CRD CM RE-READ EST
  3059. LDD CM+4 SAVE EQUIPMENT NUMBER
  3060. LPC 7000
  3061. STM NEQ,T7
  3062. LDD CM+1
  3063. LPN 77
  3064. STD T2
  3065. STM NCH,NI
  3066. LDN 0 SHOW NO RE-LOADS YET
  3067. STM NREL,NI
  3068.  
  3069. * CHECK IF CHANNEL ALREADY REQUEST
  3070.  
  3071. .NOSV2 IFGE OSLEV,562D NOS V2
  3072. LDN CTALL
  3073. STD T1 (T1) = LENGTH OF CHANNEL TABLE
  3074. LDK CHTP (A) = CMR POINTER ADDRESS
  3075. CRD CM
  3076. LDD CM+2
  3077. SHN 14B
  3078. ADD CM+3 (A) = FWA OF CHANNEL TABLE
  3079. .NOSV2 ELSE NOS V1
  3080. LDN CTILL
  3081. STD T1
  3082. LDC CTIL
  3083. .NOSV2 ENDIF
  3084. CRM BUF,T1
  3085. LDN PPCP
  3086. CRD CM
  3087. LDD IA
  3088. SBD CM+4
  3089. SHN -3
  3090. LMM BUF,T2
  3091. .NOSV2 IFGE OSLEV,562D NOS V2
  3092. LPN 37
  3093. .NOSV2 ELSE NOS V1
  3094. LPN 77
  3095. .NOSV2 ENDIF
  3096. ZJN RFE5 IF CHANNEL ALREADY ASSIGNED
  3097. LDD T2
  3098. RCHAN
  3099. RFE5 LJM RFE1 CHECK REST OF EST
  3100.  
  3101. * /--- BLOCK RFE 00 000 82/05/10 11.16
  3102.  
  3103. * VERIFY SOME 2550S FOUND
  3104.  
  3105. RFE6 LDD CN+4
  3106. NJN RFE8 IF SOME 2550S FOUND
  3107. LDD PO (A) = PP ORDINAL
  3108. RJM C2D
  3109. STM RFEA+13
  3110. LDC RFEA *NO 2550S FOUND.*
  3111. RFE7 RJM DFM
  3112. LJM TER
  3113.  
  3114. RFE8 LJM RFEX EXIT
  3115.  
  3116. RFEA DATA C* NO 2550S FOUND FOR PPXX.*
  3117. RFEB DATA C* DUPLICATE 2550 ORDINALS.*
  3118.  
  3119. ERRNG OVLE-* OVERFLOW OF OVERLAY BUFFER
  3120. QUAL *
  3121. * /--- BLOCK RTT 00 000 82/04/21 12.22
  3122. RTT OVERLAY (RETURN PLATO TERMINAL TYPE.)
  3123. RTT SPACE 5,11
  3124. ** RTT - RETURN TERMINAL TYPE
  3125. *
  3126. * THE TERMINAL TYPE IS SENT TO PLATO AS AN ECHO
  3127. * KEY
  3128. *
  3129. * TERMINAL ECHO KEY = 3/TT, 4/12 (ASCII TYPE)
  3130. *
  3131. * TT - 0 = ASCII IST
  3132. * 1 = CDC 750
  3133. * 2 = TEKTRONIX 4014
  3134. * 3 = DATASPEED 40
  3135.  
  3136.  
  3137. ORG //OVL+5
  3138. RTT SUBR
  3139. LDN 0 CLEAR *BFI* LOADED FLAG
  3140. STM BODC
  3141. LDM TST,ST
  3142. ZJN RTTX IF TERMINAL NOT ACTIVE
  3143.  
  3144. * READ TERMINAL INFORMATION WORD
  3145. * GET TERMINAL TYPE
  3146.  
  3147. LDD RA
  3148. SHN 6
  3149. ADD TB BIAS TO TERMINAL INFORMATION
  3150. ADD ST
  3151. ADD ST
  3152. CRD CM
  3153. LDD CM
  3154. SHN -4
  3155. STD T1 (T1) = TERMINAL TYPE
  3156.  
  3157. * CONVERT NETWORK TERMINAL TYPE TO PLATO TYPE
  3158.  
  3159. LDC //RTTA START OF TERM TYPE TABLE
  3160. STD T2
  3161. RTT1 LDI T2
  3162. ZJN RTT4 IF TERMINAL TYPE NOT FOUND
  3163. LMD T1
  3164. LPC 0#FE TERMINAL TYPE WITHOUT PARITY
  3165. ZJN RTT2 IF TERMINAL FOUND
  3166. AOD T2
  3167. UJN RTT1 CHECK NEXT TERMINAL TYPE
  3168.  
  3169. RTT2 LDI T2 FETCH PLATO TERMINAL TYPE
  3170. SHN -10 POSITION PLATO TYPE
  3171. LPN 7
  3172. SHN 4
  3173. ADC TTKY INCLUDE ECHO CODE
  3174. SHN 1
  3175. STD KY
  3176. LDN 0 FORCED STORE
  3177. RJM SPK STORE PLATO KEY
  3178. RTT3 LJM RTTX EXIT
  3179.  
  3180. RTT4 RJM SSL RE-VALIDATE USER
  3181. LDN 0
  3182. STM TST,ST SHOW TERMINAL NOT ACTIVE
  3183. LDN 0#0C
  3184. RJM PLM REVALIDATE USER AT DPNC
  3185. UJN RTT3 EXIT
  3186.  
  3187.  
  3188. ERRNG OVLE-* OVERFLOW OF OVERLAY BUFFER
  3189. QUAL *
  3190. * /--- BLOCK SSM 00 000 82/03/26 14.56
  3191. SSM OVERLAY (PROCESS SUPER SYSTEM MESSAGE.)
  3192. SSM SPACE 5,11
  3193. ** SSM - PROCESS SUPER SYSTEM MESSAGE
  3194. *
  3195. * ALL ACTIVE TERMINALS ARE LOGGED OFF
  3196. * A RESET COMPLETE IS SENT IF REQUEST RESET IS
  3197. * RECEIVED
  3198.  
  3199.  
  3200. ORG //OVL+5
  3201. SSM SUBR
  3202. LDN 0 CLEAR *BFI* LOADED FLAG
  3203. STM BODC
  3204. LDM NEST,NI
  3205. RJM C2D
  3206. STM SSMA+1
  3207. STM SSMB+1
  3208. LDM IBUF ISSUE DAYFILE MESSAGE
  3209. RJM C2X
  3210. STM SSMA+13
  3211. LDM IBUF+2
  3212. RJM C2X
  3213. STM SSMA+15
  3214. LDC SSMA * SUPER SYSTEM MSG XX.*
  3215. RJM DFM
  3216. RJM LOT SIGN ALL TERMINALS OFF PLATO
  3217.  
  3218. * SEND RESET COMPLETE
  3219.  
  3220. SSM1 LDC 0#FD
  3221. STM OBUF
  3222. LDN 2
  3223. STM OBUF+1
  3224. STD OL
  3225. RJM FOB SEND SUPER SYSTEM MESSAGE
  3226. LDC 0#80+1*10000B SET ENABLE ROUTING
  3227. RJM SRM SEND ROUTING MESSAGE
  3228. LDC SSMB * RESET COMPLETE.*
  3229. RJM DFM
  3230. LJM SSMX EXIT
  3231.  
  3232. SSMA DATA C*EQXX SUPER SYSTEM MSG XX (XX).*
  3233. SSMB DATA C*EQXX RESET COMPLETE.*
  3234.  
  3235. ERRNG OVLE-* OVERFLOW OF OVERLAY BUFFER
  3236. QUAL *
  3237. * /--- BLOCK TER 00 000 86/05/29 11.00
  3238. TER OVERLAY (TERMINATION OVERLAY.)
  3239. TER SPACE 5,11
  3240. ** TER - TERMINATION OVERLAY
  3241. *
  3242. * LOG OUT ALL TERMINALS
  3243. * CLEAR 2550S
  3244. * DROP EQUIPMENT AND CHANNELS
  3245. *
  3246. * ENTRY - (TERT) = 0 IF DISABLE ROUTING
  3247.  
  3248.  
  3249. ORG //OVL+5
  3250. TER SUBR
  3251. LDN 0
  3252. STM BODC CLEAR *BFI* LOADED FLAG
  3253. STM MSD CLEAR MASS STORAGE DRIVER
  3254.  
  3255. * SEND MESSAGE TO DISABLE ROUTING
  3256.  
  3257. LCN 0
  3258. STD NI
  3259. LDD IR+2
  3260. ZJN TER1 IF DRIVER COPY
  3261. LJM TER4 RELOAD COPY'; NO DSN MSG OR EM
  3262.  
  3263. TER1 RJM SNP SET UP NPU
  3264. ZJN TER2 IF FULL CYCLE
  3265. RJM LOT SIGN TERMINALS OFF PLATO
  3266. LDM TERT
  3267. NJN TER1 IF NO DISABLE ROUTING
  3268. LDC 0#40+2*10000B DISABLE ROUTING CODE
  3269. RJM SRM SEND ROUTING MESSAGE
  3270. LDC CNU CLEAR 2550
  3271. RJM FNC
  3272. UJN TER1 IF MORE NPUS
  3273.  
  3274. * /--- BLOCK TER 00 000 86/05/29 11.01
  3275.  
  3276. * DROP LOW SPEED PORT CHANNEL
  3277.  
  3278. TER2 LDM DPCH CHECK IF DDP CHANNEL ASSIGNED
  3279. ZJN TER4 IF NO CHANNEL
  3280. DCHAN
  3281. LDM DPEQ RELEASE DDP EQUIPMENT
  3282. ZJN TER4 IF THIS PP DID NOT RESERVE IT
  3283. STD CM+1
  3284. MONITOR DEQM
  3285. UJN TER4
  3286.  
  3287. TER3 LJM TER8 END OF DROP EQ/CH LOOP
  3288.  
  3289. * RELEASE 2550 AND THEIR CHANNELS
  3290.  
  3291. TER4 LDN 0
  3292. STD NI
  3293. TER5 LMM .SNPA
  3294. ZJN TER3 IF NO MORE 2550S
  3295. LDM NEST,NI RELEASE 2550 EQUIPMENT
  3296. .NOSV2 IFGE OSLEV,562D NOS V2
  3297. ZJP TER6 IF NO EQUIPMENT
  3298. .NOSV2 ELSE NOS V1
  3299. ZJN TER6 IF NO EQUIPMENT
  3300. .NOSV2 ENDIF
  3301. .NOS22 IFGE OSLEV,594D NOS 2.2
  3302. SFA EST (A) = FWA OF EST ENTRY
  3303. ADK EQAE READ EQUIPMENT ATTRIBUTE WORD
  3304. CRD CN
  3305. .NOS22 ELSE NOS 2.1
  3306. ADM ESTS LOCATION OF EST TABLE
  3307. ADD HN (A) = ADDRESS OF EAT ENTRY
  3308. CRD CN READ EAT ENTRY
  3309. .NOS22 ENDIF
  3310. LDD CP GET EJT ORDINAL
  3311. ADN TFSW
  3312. CRD CM
  3313. LDD CM EJT ORDINAL
  3314. SBD CN+4 EJT 2550 IS ASSIGNED TO
  3315. NJP TER6 IF NOT ASSIGNED HERE
  3316. LDM NEST,NI RELEASE 2550 EQUIPMENT
  3317. STD CM+1
  3318. MONITOR DEQM
  3319.  
  3320. * /--- BLOCK TER 00 000 86/05/29 11.01
  3321.  
  3322. * CHECK IF CHANNEL ALREADY DROPPED
  3323.  
  3324. TER6 BSS 0
  3325. LDM NCH,NI
  3326. STD T2
  3327. .NOSV2 IFGE OSLEV,562D NOS V2
  3328. LDN CTALL
  3329. STD T1 (T1) = LENGTH OF CHANNEL TABLE
  3330. LDK CHTP (A) = CMR POINTER ADDRESS
  3331. CRD CM
  3332. LDD CM+2
  3333. SHN 14B
  3334. ADD CM+3 (A) = FWA OF CHANNEL TABLE
  3335. .NOSV2 ELSE NOS V1
  3336. LDN CTILL
  3337. STD T1
  3338. LDC CTIL
  3339. .NOSV2 ENDIF
  3340. CRM BUF,T1
  3341. LDN PPCP
  3342. CRD CM
  3343. LDD IA
  3344. SBD CM+4
  3345. SHN -3
  3346. LMM BUF,T2
  3347. .NOSV2 IFGE OSLEV,562D NOS V2
  3348. LPN 37
  3349. .NOSV2 ELSE NOS V1
  3350. LPN 77
  3351. .NOSV2 ENDIF
  3352. NJN TER7 IF CHANNEL NOT ASSIGNED TO PP
  3353. LDD T2
  3354. DCHAN
  3355. TER7 AOD NI CHECK FOR MORE 2550S
  3356. LJM TER5 PROCESS NEXT 2550
  3357.  
  3358. * DISPLAY NUMBER OF KEYS LOST
  3359.  
  3360. TER8 STD CM+1 SET NON-CM CONVERSION
  3361. LDD MA
  3362. CWM SKYB-2,ON
  3363. MONITOR RDCM
  3364. LDD MA
  3365. CRM TERA,ON
  3366. LDM TERA
  3367. ZJN TER9 IF NO KEYS LOST
  3368. LDC TERA
  3369. RJM DFM
  3370. TER9 MONITOR DPPM DROP PP
  3371. LJM PPR IDLE
  3372.  
  3373. TERA DATA C*XXXXXXXXXXK KEYS LOST.*
  3374.  
  3375. ERRNG OVLE-* OVERFLOW OF OVERLAY BUFFER
  3376. QUAL *
  3377. * /--- BLOCK UMT 00 000 82/04/29 13.26
  3378. UMT OVERLAY (UPDATE MAXIMUM TERMINAL NUMBER IN USE.)
  3379. UMT SPACE 5,11
  3380. ** UMT - UPDATE MAXIMUM TERMINAL NUMBER IN USE
  3381. *
  3382. * THE TERMINAL STATUS TABLE IS SEARCHED FOR THE
  3383. * HIGHEST PLATO STATION NUMBER
  3384. *
  3385. * EXIT - (NMT) = UPDATED TO HIGHEST CONNECTION
  3386.  
  3387.  
  3388. ORG //OVL+5
  3389. UMT SUBR
  3390. LDN 0 CLEAR *BFI* LOADED FLAG
  3391. STM BODC
  3392. LDD NI
  3393. SHN 4
  3394. STD T1
  3395. LDM NCB+20,T1
  3396. STD T3 SET TO MAXIMUM POSSIBLE NUMBER
  3397. UMT1 LDM TST-1,T3
  3398. NJN UMT2 IF TERMINAL IN USE
  3399. SOD T3
  3400. LMD CB
  3401. NJN UMT1 IF MORE TERMINALS TO CHECK
  3402.  
  3403. * COUNT NUMBER OF TERMINALS ACTIVE
  3404.  
  3405. UMT2 LDD T3
  3406. SBD CB
  3407. STM NMT,NI SET HIGHEST CONNECTION IN USE
  3408. LDN 0
  3409. STD CM
  3410. LDD CB
  3411. STD T1
  3412. UMT3 LMD T3
  3413. ZJN UMT5 IF ALL TERMINALS CHECKED
  3414. LDM TST,T1
  3415. ZJN UMT4 IF TERMINAL NOT ACTIVE
  3416. AOD CM COUNT TERMINAL
  3417. UMT4 AOD T1 BUMP TO NEXT TERMINAL
  3418. UJN UMT3
  3419.  
  3420. * STORE FOR THIS NPU
  3421.  
  3422. UMT5 BSS 0
  3423. LDD CM NUMBER OF TERMINALS FOR NPU
  3424. STM NUSR,NI
  3425. RJM UCS UPDATE CM STATISTICS
  3426.  
  3427.  
  3428. * COUNT TOTAL CONNECTED TERMINALS
  3429.  
  3430. LDN 0
  3431. STD T1
  3432. STD T2
  3433. UMT6 LDD RA
  3434. SHN 5
  3435. ADD T1
  3436. SHN 1
  3437. ADK TS
  3438. CRD CM
  3439. LDD CM
  3440. RAD T2
  3441. AOD T1
  3442. LMM UMTC
  3443. NJN UMT6 IF MORE 2550S
  3444.  
  3445. * UPDATE *B* DISPLAY MESSAGE
  3446.  
  3447. LDD T2
  3448. RJM C2D CONVERT FOR MESSAGE
  3449. STM UMTA+1
  3450. LDD T2
  3451. SHN -6
  3452. RJM C2D
  3453. STM UMTA
  3454. LDD CP
  3455. ADN MS1W
  3456. CWM UMTA,TR
  3457. LJM UMTX EXIT
  3458.  
  3459. UMTA DATA C*XXXX TERMINALS ACTIVE.*
  3460.  
  3461. ERRNG OVLE-*
  3462. QUAL *
  3463.  
  3464. OVLC EQU OVI LAST OVERLAY TO BE CM RESIDENT
  3465. * /--- BLOCK KEY 00 000 82/03/31 15.48
  3466. KEY OVERLAY (ASCII TO PLATO KEY TRANSLATION TABLE.)
  3467. KEY SPACE 5,11
  3468. ** KEYS - CONVERSION FROM ASCII TO PLATO KEYS
  3469. *
  3470. * ALL CHARACTERS ARRIVE IN REVERSE BIT ORDER
  3471. * THIS TABLE IS ORDERED IN THIS MANNER
  3472. SPACE 5,11
  3473. ** KEY - MACRO TO CREATE KEY CONVERSION TABLE
  3474. *
  3475. *AA KEY PPP
  3476. *
  3477. * AA - HEX ASCII KEY VALUE
  3478. * PPP- PLATO KEY VALUE
  3479. *
  3480. * TABLE ENTRY FORMAT
  3481. *
  3482. * 10/PLATO KEY VALUE, 1/0, 1/EXPECTED PARITY
  3483.  
  3484.  
  3485. NOREF /KEY/KEYS,/KEY/.4
  3486.  
  3487. MACRO KEY,A,P
  3488. .1 MICRO 1,1, A
  3489. .3 MICRO 1,, A
  3490. .5 MICRO 0#".3"+1,1, 0110100110010110100101100110100110010110011
  3491. ,01001011010011001011010010110011010010110100110010110011010011001011010
  3492. ,01011001101001
  3493. .2 MICRO 0#".1"+1,1, 084C2A6E195D3B7F
  3494. .1 MICRO 2,1, A
  3495. .3 MICRO 0#".1"+1,1, 084C2A6E195D3B7F
  3496. .4 SET 0#".3"".2"
  3497. .4 SET .4/2
  3498. ORG KEYS+.4
  3499. LOC .4
  3500. VFD 10/P,1/0,1/".5"
  3501. ENDM
  3502.  
  3503.  
  3504. ORG //KEYA
  3505.  
  3506. KEY SUBR
  3507. UJN KEYX EXIT
  3508.  
  3509. KEYS BSSZ 200
  3510.  
  3511. * /--- BLOCK KEY 00 000 86/05/29 11.07
  3512.  
  3513. 00 KEY 074 SQUARE1
  3514. 01 KEY 032 STOP
  3515. 02 KEY 030 BACK
  3516. 03 KEY 033 COPY
  3517. 04 KEY 021 SUB
  3518. 05 KEY 061 SUB1
  3519. *06 ACK
  3520. 07 KEY 022 ANS
  3521. 08 KEY 023 ERASE
  3522. 09 KEY 065 HELP1
  3523. 0A KEY 014 TAB
  3524. 0B KEY 025 HELP
  3525. 0C KEY 035 LAB
  3526. 0D KEY 026 NEXT
  3527. 0E KEY 070 BACK1
  3528. 0F KEY 075 LAB1
  3529.  
  3530. *10 DLE
  3531. 11 KEY 072 STOP1
  3532. 12 KEY 031 DATA
  3533. 13 KEY 020 SUPER
  3534. 14 KEY 062 TERM
  3535. *15 NAK
  3536. 16 KEY 073 COPY1
  3537. 17 KEY 060 SUPER1
  3538. 18 KEY 067 EDIT1
  3539. 19 KEY 063 ERASE1
  3540. 1A KEY 027 EDIT
  3541. *1B ESC
  3542. 1C KEY 054 CR
  3543. 1D KEY 071 DATA1
  3544. 1E KEY 066 NEXT1
  3545. 1F KEY 140 SPACE1 (BKSP)
  3546.  
  3547. 20 KEY 100 SPACE
  3548. 21 KEY 176 '.
  3549. 22 KEY 177 ',
  3550. 23 KEY 056 '+
  3551. 24 KEY 044 $
  3552. 25 KEY 045 %
  3553. 26 KEY 012 "
  3554. 27 KEY 053 '#
  3555. 28 KEY 051 (
  3556. 29 KEY 173 )
  3557. 2A KEY 050 *
  3558. 2B KEY 016 +
  3559. 2C KEY 137 ,
  3560. 2D KEY 017 -
  3561. 2E KEY 136 .
  3562. 2F KEY 135 /
  3563.  
  3564. 30 KEY 000 0
  3565. 31 KEY 001 1
  3566. 32 KEY 002 2
  3567. 33 KEY 003 3
  3568. 34 KEY 004 4
  3569. 35 KEY 005 5
  3570. 36 KEY 006 6
  3571. 37 KEY 007 7
  3572. 38 KEY 010 8
  3573. 39 KEY 011 9
  3574. 3A KEY 174 ';
  3575. 3B KEY 134 ;
  3576. 3C KEY 040 <
  3577. 3D KEY 133 =
  3578. 3E KEY 041 >
  3579. 3F KEY 175 '/
  3580.  
  3581. * /--- BLOCK KEY 00 000 86/05/29 11.07
  3582.  
  3583. 40 KEY 052 '"
  3584. 41 KEY 141 A (UC)
  3585. 42 KEY 142 B (UC)
  3586. 43 KEY 143 C (UC)
  3587. 44 KEY 144 D (UC)
  3588. 45 KEY 145 E (UC)
  3589. 46 KEY 146 F (UC)
  3590. 47 KEY 147 G (UC)
  3591. 48 KEY 150 H (UC)
  3592. 49 KEY 151 I (UC)
  3593. 4A KEY 152 J (UC)
  3594. 4B KEY 153 K (UC)
  3595. 4C KEY 154 L (UC)
  3596. 4D KEY 155 M (UC)
  3597. 4E KEY 156 N (UC)
  3598. 4F KEY 157 O (UC)
  3599.  
  3600. 50 KEY 160 P (UC)
  3601. 51 KEY 161 Q (UC)
  3602. 52 KEY 162 R (UC)
  3603. 53 KEY 163 S (UC)
  3604. 54 KEY 164 T (UC)
  3605. 55 KEY 165 U (UC)
  3606. 56 KEY 166 V (UC)
  3607. 57 KEY 167 W (UC)
  3608. 58 KEY 170 X (UC)
  3609. 59 KEY 171 Y (UC)
  3610. 5A KEY 172 Z (UC)
  3611. 5B KEY 042 [
  3612. 5C KEY 055 ASSIGN1
  3613. 5D KEY 043 ]
  3614. 5E KEY 015 _
  3615. 5F KEY 046 '6
  3616.  
  3617. 60 KEY 013 #
  3618. 61 KEY 101 A (LC)
  3619. 62 KEY 102 B (LC)
  3620. 63 KEY 103 C (LC)
  3621. 64 KEY 104 D (LC)
  3622. 65 KEY 105 E (LC)
  3623. 66 KEY 106 F (LC)
  3624. 67 KEY 107 G (LC)
  3625. 68 KEY 110 H (LC)
  3626. 69 KEY 111 I (LC)
  3627. 6A KEY 112 J (LC)
  3628. 6B KEY 113 K (LC)
  3629. 6C KEY 114 L (LC)
  3630. 6D KEY 115 M (LC)
  3631. 6E KEY 116 N (LC)
  3632. 6F KEY 117 O (LC)
  3633.  
  3634. 70 KEY 120 P (LC)
  3635. 71 KEY 121 Q (LC)
  3636. 72 KEY 122 R (LC)
  3637. 73 KEY 123 S (LC)
  3638. 74 KEY 124 T (LC)
  3639. 75 KEY 125 U (LC)
  3640. 76 KEY 126 V (LC)
  3641. 77 KEY 127 W (LC)
  3642. 78 KEY 130 X (LC)
  3643. 79 KEY 131 Y (LC)
  3644. 7A KEY 132 Z (LC)
  3645. 7B KEY 024 MICRO
  3646. 7C KEY 047 '7
  3647. 7D KEY 034 SQUARE
  3648. 7E KEY 057 '-
  3649. 7F KEY 064 FONT
  3650.  
  3651. QUAL *
  3652. * /--- BLOCK NKY 00 000 86/05/29 11.05
  3653. NKY OVERLAY (ASCII TO PLATO NEW KEY TRANSLATION TABLE.)
  3654. NKY SPACE 5,11
  3655. ** NKY - CONVERSION FROM ASCII TO PLATO KEYS
  3656. *
  3657. * ALL CHARACTERS ARRIVE IN REVERSE BIT ORDER
  3658. * THIS TABLE IS ORDERED IN THIS MANNER
  3659.  
  3660. ORG //KEYA
  3661.  
  3662. NKY SUBR
  3663. UJN NKYX EXIT
  3664.  
  3665. KEYS BSSZ 200
  3666.  
  3667. * /--- BLOCK NKY 00 000 86/05/29 11.06
  3668.  
  3669. * NUL
  3670. 01 KEY 032 STOP
  3671. 02 KEY 030 BACK
  3672. 03 KEY 033 COPY
  3673. 04 KEY 021 SUB
  3674. 05 KEY 072 STOP1
  3675. *06 ACK
  3676. 07 KEY 022 ANS
  3677. 08 KEY 023 ERASE
  3678. 09 KEY 014 TAB
  3679. 0A KEY 065 HELP1
  3680. 0B KEY 025 HELP
  3681. 0C KEY 035 LAB
  3682. 0D KEY 026 NEXT
  3683. 0E KEY 070 BACK1
  3684. 0F KEY 075 LAB1
  3685.  
  3686. *10 DLE
  3687. * DC1
  3688. 12 KEY 031 DATA
  3689. * DC3
  3690. 14 KEY 062 TERM
  3691. *15 NAK
  3692. 16 KEY 073 COPY1
  3693. 17 KEY 020 SUPER
  3694. 18 KEY 067 EDIT1
  3695. 19 KEY 063 ERASE1
  3696. 1A KEY 027 EDIT
  3697. *1B ESC
  3698. 1C KEY 054 CR
  3699. 1D KEY 071 DATA1
  3700. 1E KEY 066 NEXT1
  3701. 1F KEY 140 SPACE1 (BKSP)
  3702.  
  3703. 20 KEY 100 SPACE
  3704. 21 KEY 176 '.
  3705. 22 KEY 177 ',
  3706. 23 KEY 056 '+
  3707. 24 KEY 044 $
  3708. 25 KEY 045 %
  3709. 26 KEY 012 "
  3710. 27 KEY 047 '7
  3711. 28 KEY 051 (
  3712. 29 KEY 173 )
  3713. 2A KEY 050 *
  3714. 2B KEY 016 +
  3715. 2C KEY 137 ,
  3716. 2D KEY 017 -
  3717. 2E KEY 136 .
  3718. 2F KEY 135 /
  3719.  
  3720. 30 KEY 000 0
  3721. 31 KEY 001 1
  3722. 32 KEY 002 2
  3723. 33 KEY 003 3
  3724. 34 KEY 004 4
  3725. 35 KEY 005 5
  3726. 36 KEY 006 6
  3727. 37 KEY 007 7
  3728. 38 KEY 010 8
  3729. 39 KEY 011 9
  3730. 3A KEY 174 ';
  3731. 3B KEY 134 ;
  3732. 3C KEY 040 <
  3733. 3D KEY 133 =
  3734. 3E KEY 041 >
  3735. 3F KEY 175 '/
  3736.  
  3737. * /--- BLOCK NKY 00 000 86/05/29 11.06
  3738.  
  3739. 40 KEY 052 '"
  3740. 41 KEY 141 A (UC)
  3741. 42 KEY 142 B (UC)
  3742. 43 KEY 143 C (UC)
  3743. 44 KEY 144 D (UC)
  3744. 45 KEY 145 E (UC)
  3745. 46 KEY 146 F (UC)
  3746. 47 KEY 147 G (UC)
  3747. 48 KEY 150 H (UC)
  3748. 49 KEY 151 I (UC)
  3749. 4A KEY 152 J (UC)
  3750. 4B KEY 153 K (UC)
  3751. 4C KEY 154 L (UC)
  3752. 4D KEY 155 M (UC)
  3753. 4E KEY 156 N (UC)
  3754. 4F KEY 157 O (UC)
  3755.  
  3756. 50 KEY 160 P (UC)
  3757. 51 KEY 161 Q (UC)
  3758. 52 KEY 162 R (UC)
  3759. 53 KEY 163 S (UC)
  3760. 54 KEY 164 T (UC)
  3761. 55 KEY 165 U (UC)
  3762. 56 KEY 166 V (UC)
  3763. 57 KEY 167 W (UC)
  3764. 58 KEY 170 X (UC)
  3765. 59 KEY 171 Y (UC)
  3766. 5A KEY 172 Z (UC)
  3767. 5B KEY 042 [
  3768. 5C KEY 055 ASSIGN1
  3769. 5D KEY 043 ]
  3770. 5E KEY 015 _
  3771. 5F KEY 046 '6
  3772.  
  3773. 60 KEY 013 #
  3774. 61 KEY 101 A (LC)
  3775. 62 KEY 102 B (LC)
  3776. 63 KEY 103 C (LC)
  3777. 64 KEY 104 D (LC)
  3778. 65 KEY 105 E (LC)
  3779. 66 KEY 106 F (LC)
  3780. 67 KEY 107 G (LC)
  3781. 68 KEY 110 H (LC)
  3782. 69 KEY 111 I (LC)
  3783. 6A KEY 112 J (LC)
  3784. 6B KEY 113 K (LC)
  3785. 6C KEY 114 L (LC)
  3786. 6D KEY 115 M (LC)
  3787. 6E KEY 116 N (LC)
  3788. 6F KEY 117 O (LC)
  3789.  
  3790. 70 KEY 120 P (LC)
  3791. 71 KEY 121 Q (LC)
  3792. 72 KEY 122 R (LC)
  3793. 73 KEY 123 S (LC)
  3794. 74 KEY 124 T (LC)
  3795. 75 KEY 125 U (LC)
  3796. 76 KEY 126 V (LC)
  3797. 77 KEY 127 W (LC)
  3798. 78 KEY 130 X (LC)
  3799. 79 KEY 131 Y (LC)
  3800. 7A KEY 132 Z (LC)
  3801. 7B KEY 024 MICRO
  3802. 7C KEY 053 ^'I
  3803. 7D KEY 034 SQUARE
  3804. 7E KEY 057 '-
  3805. 7F KEY 064 FONT
  3806.  
  3807.  
  3808.  
  3809. END
plato/source/plaopl/dsn1.txt ยท Last modified: 2023/08/05 18:54 by Site Administrator