User Tools

Site Tools


cdc:nos2.source:opl871:scrsim

SCRSIM

Table Of Contents

  • [00010] SCRSIM - STATUS/CONTROL REGISTER SIMULATOR.
  • [00012] STATUS/CONTROL REGISTER SIMULATOR.
  • [00116] CONSTANTS.
  • [00122] HOLDING REGISTERS AND DIRECT LOCATIONS.
  • [00300] ARP - SET AREA TO OCTAL VALUE.
  • [00471] BYP - SET BYTE TO OCTAL VALUE.
  • [00573] CLP - CLEAR BITS IN HOLDING REGISTERS.
  • [00646] CYP - CYCLE BIT AT GIVEN INTERVAL.
  • [00871] GOP - TRANSFER HOLDING REGISTERS TO S/C REGISTERS.
  • [00908] LIP - SET HOLDING REGISTER LINE TO OCTAL VALUE.
  • [00986] REP - READ CURRENT CONTENTS OF S/C OR INTERLOCK REGISTER.
  • [01023] SEP - SET BITS IN HOLDING REGISTERS.
  • [01083] STP - END SIMULATOR.
  • [01104] TOP - TOGGLE REGISTER IN USE.
  • [01146] CBV - CHANGE BIT VALUES.
  • [01223] CDC - CONVERT TEN BITS TO DISPLAY CODE.
  • [01251] GOV - GET OCTAL VALUE.
  • [01348] GPV - GET PARAMETER VALUE.
  • [01445] RDR - READ REGISTER CONTENTS.
  • [01522] SSR - SEND SYSTEM REQUEST FOR CYCLE OR READ.
  • [01545] DISPLAY SUBROUTINES.
  • [01547] DCR - DISPLAY CONTENTS OF S/C REGISTER.
  • [01602] DOC - DISPLAY OCTAL WORD.
  • [01648] DYL - DISPLAY LINE IN HOLDING REGISTER.
  • [01701] DYW - DISPLAY WORD.
  • [01800] DISPLAY BUFFER LINE NUMBER TABLES.
  • [01883] DISPLAY BUFFER.
  • [02100] PRS - PRESET.

Source Code

SCRSIM.txt
  1. IDENT SCRSIM,PW16,SCRSIM
  2. ABS
  3. SST
  4. SYSCOM B1
  5. ENTRY SCRSIM
  6. ENTRY RFL=
  7. ENTRY SSJ=
  8. *COMMENT SCRSIM - SCR SIMULATOR.
  9. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  10. TITLE SCRSIM - STATUS/CONTROL REGISTER SIMULATOR.
  11. SPACE 4
  12. *** SCRSIM - STATUS/CONTROL REGISTER SIMULATOR.
  13. * A. J. BEEKMAN 74/06/13.
  14. SPACE 4
  15. *** *SCRSIM* SIMULATES THE CYBER 170 STATUS/CONTROL REGISTERS
  16. * BY ALLOWING THE OPERATOR TO MANIPULATE THE BITS IN THE ACTUAL
  17. * S/C REGISTER(S) OF THE CYBER 170 OR THE INTERLOCK REGISTER
  18. * OF THE CYBER 70.
  19. *
  20. * *SCRSIM* DRIVES A *K* DISPLAY THAT ALLOWS THE OPERATOR TO
  21. * SET AND CLEAR BITS, SET BYTES, AND SET LINES AND AREAS IN
  22. * HOLDING REGISTERS. THIS ALLOWS THE OPERATOR TO SET UP BOTH
  23. * REGISTERS COMPLETELY. WHEN *GO.* IS ENTERED, THE ENTIRE
  24. * HOLDING REGISTER CONTENTS ARE TRANSFERRED INTO THE
  25. * STATUS/CONTROL REGISTERS OF THE CYBER 170, OR 128 BITS
  26. * ARE TRANSFERRED INTO THE INTERLOCK REGISTER OF THE CYBER 70.
  27. * THE PROGRAM IS CALLED FROM THE CONSOLE BY ENTERING X.SCRSIM.
  28. *
  29. * COMMANDS CAN BE ENTERED ON THE *K* DISPLAY BY ENTERING
  30. * K.COMND. WHERE COMND. IS ONE OF THE FOLLOWING-
  31. *
  32. * AREA,A,M,Y.
  33. * BYTE,XX,YYYY.
  34. * CLEAR,A,B,...,Z.
  35. * CYCLE,X,T,R.
  36. * END.
  37. * GO.
  38. * LINE,X,Y.
  39. * READ.
  40. * SET,A,B,...,Z.
  41. * STOP.
  42. * +.
  43. *
  44. * THE BITS SET THROUGH THE SIMULATOR ARE LOGGED IN THE ERROR
  45. * LOG IF AN ERROR BIT (BITS 0-39) IS SET. ERROR LOGGING
  46. * WILL NOT OCCUR ON A CYBER 70 IF NNNN OF THE IPRDECK ENTRY
  47. * DELAY,TCNNNN IS ZERO. THE SIMULATOR JOB DAYFILE LISTS ALL
  48. * COMMANDS ENTERED.
  49. *
  50. * BATCH INPUT.
  51. *
  52. * THE SIMULATOR MAY BE CALLED FROM BATCH INPUT BY THE
  53. * COMMAND *SCRSIM*. THE INPUT FILE MUST HAVE A RECORD
  54. * CONTAINING THE COMMANDS TO BE PROCESSED, ONE COMMAND PER
  55. * COMMAND. DEBUG MODE IS NECESSARY, AND THE USER MUST BE
  56. * VALIDATED FOR SYSTEM ORIGIN PRIVILEDGES.
  57. SPACE 4
  58. *** DAYFILE MESSAGES.
  59. *
  60. * * END SIMULATOR.* - OPERATOR HAS ENTERED *STOP.* TO DROP THE
  61. * SIMULATOR.
  62. *
  63. * * NO SCR ON MAINFRAME.* - OPERATOR HAS BROUGHT UP
  64. * SCR SIMULATOR ON MAINFRAME THAT DOES NOT SUPPORT
  65. * STATUS/CONTROL REGISTER.
  66. SPACE 4
  67. *** *K* DISPLAY MESSAGES.
  68. *
  69. * *CONVERSION ERROR.* - PRESENCE OF CHARACTER AFTER POSTRADIX
  70. * OR PRESENCE OF 8 OR 9 WITH POSTRADIX OF B.
  71. *
  72. * *CYCLE STILL PROCESSING.* - COMMAND OTHER THAN *END*
  73. * ENTERED BEFORE TOTAL TIME LIMIT IS REACHED.
  74. *
  75. * *INCORRECT BIT NUMBER.* - BIT NUMBER SPECIFIED NOT VALID.
  76. *
  77. * *INCORRECT BYTE NUMBER.* - BYTE NUMBER SPECIFIED NOT VALID.
  78. *
  79. * *INCORRECT CHARACTER.* - ALPHABETIC CHARACTER OTHER THAN B OR
  80. * OR D AS POSTRADIX ON DECIMAL VALUES, ALPHABETIC CHARACTER,
  81. * 8, OR 9 FOUND IN OCTAL VALUE ARGUMENT, OR CHARACTER WITH
  82. * DISPLAY CODE OF 60B OR ABOVE FOUND.
  83. *
  84. * *INCORRECT COMMAND.* - ENTERED COMMAND NOT LEGAL.
  85. *
  86. * *INCORRECT LINE NUMBER.* - LINE NUMBER SPECIFIED NOT LEGAL.
  87. *
  88. * *MAXIMUM NUMBER OF ARGUMENTS.* - FIRST 30 BIT NUMBERS ONLY
  89. * ACCEPTED ON SET OR CLEAR COMMANDS.
  90. *
  91. * *NO BITS SPECIFIED.* - NO BIT NUMBERS SPECIFIED ON SET OR
  92. * CLEAR BIT COMMANDS.
  93. *
  94. * *NOT ENOUGH ARGUMENTS.* - TERMINATOR FOUND BEFORE THE CORRECT
  95. * NUMBER OF ARGUMENTS ENTERED FOR THE COMMAND.
  96. *
  97. * *NUMBER OF BITS TOO LARGE.* - NUMBER OF BITS ON AREA COMMAND
  98. * LARGER THAN NUMBER OF BITS FROM STARTING BIT TO END OF
  99. * REGISTER.
  100. *
  101. * *NUMBER OF CYCLES TOO LARGE.* - NUMBER OF CYCLES ON CYCLE
  102. * COMMAND IS GREATER THAN 4095.
  103. *
  104. * *TIME LIMIT UP.* - TOTAL TIME LIMIT ON CYCLE COMMAND HAS
  105. * PASSED. INPUT CAN AGAIN BE ACCEPTED BY THE SIMULATOR.
  106. *
  107. * *TOO MANY BITS SPECIFIED.* - MORE BITS SPECIFIED THAN CAN
  108. * BE HELD IN AREA, LINE OR BYTE GIVEN.
  109. SPACE 4
  110. *CALL COMCMAC
  111. *CALL COMCDCM
  112. *CALL COMSPRD
  113. *CALL COMSSCR
  114. *CALL COMSSSJ
  115. *CALL COMSSSD
  116. TITLE CONSTANTS.
  117. * CONSTANTS.
  118.  
  119. MNOP EQU 30 MAXIMUM NUMBER OF PARAMETERS ALLOWED
  120. IBUFL EQU 101B INPUT BUFFER LENGTH
  121. OBUFL EQU 101B OUTPUT BUFFER LENGTH
  122. TITLE HOLDING REGISTERS AND DIRECT LOCATIONS.
  123. ORG 101B
  124.  
  125. * HOLDING REGISTERS FOR OPERATOR USE.
  126.  
  127. PW16 BSSZ 1 CHANNEL 16 PARAMETER WORD
  128. UHLD BSSZ 4 CHANNEL 16 HOLDING REGISTER
  129. PW36 BSSZ 1 CHANNEL 36 PARAMETER WORD
  130. LHLD BSSZ 4 CHANNEL 36 HOLDING REGISTER
  131.  
  132. * DIRECT LOCATIONS.
  133.  
  134. K VFD 24/I,18/R,18/L16 *K* DISPLAY CONTROL WORD
  135. I BSS 8 KEYBOARD INPUT BUFFER
  136. PARA BSS 30 PARAMETER AREA
  137. BLNK DIS 4,
  138. REGF BSSZ 1 REGISTER IN USE FLAG
  139. CA BSSZ 1 CHANNEL 36 AVAILABLE FLAG
  140.  
  141. * FETS.
  142.  
  143. IN BSS 0
  144. INPUT FILEB IBUF,IBUFL
  145.  
  146. OT BSS 0
  147. OUTPUT FILEB OBUF,OBUFL
  148.  
  149. * SSJ PARAMETER AREA.
  150.  
  151. SSJ= VFD 12/0,24/-0,12/SCCS,12/IRSI
  152. BSSZ SSJL-1
  153. SCRSIM TITLE SCRSIM - MAIN LOOP.
  154. * SCRSIM - STATUS/CONTROL REGISTER SIMULATOR.
  155.  
  156. SCRSIM SB1 1
  157. RJ PRS PRESET
  158. READ IN,R
  159. SA1 IN+2 IN
  160. SA2 A1+B1 OUT
  161. IX6 X1-X2
  162. NZ X6,SCS11 IF FET INPUT, BEGIN ROUTINE
  163. BX6 X6-X6 ZERO FET NAME
  164. SA6 IN
  165. SCS1 SA1 I
  166. ZR X1,SCS11 IF INPUT NOT READY
  167.  
  168. * DISPLAY INPUT COMMAND.
  169.  
  170. MESSAGE I,3 ENTER COMMAND IN JOB DAYFILE
  171. MOVE 3,BLNK,MSGL CLEAR ERROR MESSAGE AREAS
  172. MOVE 3,BLNK,MSGK
  173. MOVE 5,I,PARL DISPLAY COMMAND
  174. MOVE 5,I,PARK
  175. SA2 BLNK
  176. SB2 4
  177. BX6 X2
  178. SCS2 SA3 PARL+B2
  179. SA4 PARK+B2
  180. NZ X3,SCS3 IF NOT ZERO WORD
  181. SA6 A3+ BLANK OUT ZERO WORD
  182. SB2 B2-B1
  183. SA6 A4
  184. NZ B2,SCS2 IF NOT END OF BUFFER
  185.  
  186. * FIND CORRECT COMMAND AND PROCESSOR.
  187.  
  188. SCS3 SA2 I
  189. SA1 TOCP TABLE OF COMMAND PROCESSORS
  190. SCS4 BX6 X1
  191. AX6 18
  192. MX7 -6
  193. BX6 -X7*X6 SHIFT COUNT FOR MASK
  194. SB7 X6
  195. MX0 1
  196. AX0 B7 MASK FOR COMMAND
  197. BX2 X0*X2
  198. BX1 X0*X1
  199. BX6 X2-X1
  200. ZR X6,SCS5 IF CORRECT COMMAND
  201. SA1 A1+B1
  202. SA2 A2
  203. NZ X1,SCS4 IF NOT END OF COMMANDS
  204. MOVE 3,SCSA,MSGL *INCORRECT PARAMETER.*
  205. MOVE 3,SCSA,MSGK
  206. EQ SCS8
  207.  
  208. SCS5 SB6 7
  209. SA2 A2 CHECK FOR SEPARATOR
  210. SB7 B7+B6 SHIFT COUNT FOR COMMAND AND SEPARATOR
  211. LX2 B7
  212. SX3 1R+ CHECK FOR *+* COMMAND
  213. LX3 6
  214. BX3 X2-X3
  215. ZR X3,SCS7 IF *+* ONLY
  216. BX2 -X7*X2
  217. SX6 X2-1R+
  218. NG X6,SCS6 IF ALPHANUMERIC
  219. SX6 X2-1R#
  220. NG X6,SCS7 IF SEPARATOR OR TERMINATOR
  221. SCS6 MOVE 3,SCSA,MSGL *INCORRECT PARAMETER.*
  222. MOVE 3,SCSA,MSGK
  223. EQ SCS8
  224.  
  225. * JUMP TO COMMAND PROCESSOR.
  226.  
  227. SCS7 SA1 A1
  228. SB7 X1 PROCESSOR ADDRESS
  229. SX6 SCS8 SET UP RETURN ADDRESS
  230. SX7 1 SET DISPLAY UPDATE AFTER COMMAND
  231. SA7 SCSC
  232. SA6 B7-B1
  233. JP B7
  234.  
  235. * RETURN FROM PROCESSOR AND CLEAR INPUT AREA.
  236.  
  237. SCS8 MOVE 3,MSGL,SCSB+1
  238. SA1 SCSB+1
  239. NG X1,SCS9 IF NO ERROR MESSAGE
  240. MESSAGE SCSB,3 PUT ERROR MESSAGE IN DAYFILE
  241. SCS9 BX6 X6-X6 CLEAR INPUT AREA
  242. SB2 B0
  243. SB3 7
  244. SCS10 SA6 I+B2
  245. EQ B2,B3,SCS11 IF END OF BUFFER
  246. SB2 B2+B1
  247. EQ SCS10
  248.  
  249. * READ AND DISPLAY S/C REGISTER CONTENTS.
  250.  
  251. SCS11 RECALL
  252. SA1 SCSC CHECK IF TIME TO UPDATE DISPLAY
  253. SX6 X1-1
  254. SA6 A1+
  255. NZ X6,SCS12 IF NOT TIME TO UPDATE
  256. RJ DCR DISPLAY CONTENTS OF REGISTER
  257. SX6 50 RESET DISPLAY UPDATE COUNTER
  258. SA6 SCSC
  259. RECALL
  260. SCS12 SA1 IN CHECK FOR FET INPUT
  261. ZR X1,SCS1 IF NO FET INPUT
  262. READC IN,I,8 TRANSFER FET INPUT TO INPUT AREA
  263. NZ X1,STP IF EOR/EOF, END SIMULATOR
  264. MESSAGE I,2 DISPLAY AT CONTROL POINT
  265. EQ SCS1
  266.  
  267. SCSA DIS 3,INCORRECT COMMAND.
  268. BSSZ 1
  269. SCSB DIS 4, ERROR MESSAGE BUFFER
  270. BSSZ 1
  271. SCSC CON 1 DISPLAY UPDATE COUNTER
  272. SPACE 4,5
  273. ** TABLE OF COMMAND PROCESSORS.
  274. *T 36/ COMMAND,6/ SC,18/ ADDR
  275. *
  276. * SC SHIFT COUNT FOR MASK.
  277. * ADDR PROCESSOR ADDRESS.
  278.  
  279.  
  280. TOCP BSS 0
  281. VFD 36/4LAREA,6/23,18/ARP
  282. VFD 36/4LBYTE,6/23,18/BYP
  283. VFD 36/5LCLEAR,6/29,18/CLP
  284. VFD 36/5LCYCLE,6/29,18/CYP
  285. VFD 36/2LGO,6/11,18/GOP
  286. VFD 36/4LLINE,6/23,18/LIP
  287. VFD 36/4LREAD,6/23,18/REP
  288. VFD 36/3LSET,6/17,18/SEP
  289. VFD 36/4LSTOP,6/23,18/STP
  290. VFD 36/1L+,6/5,18/TOP
  291. BSSZ 1
  292. ARP TITLE PARAMETER PROCESSOR SUBROUTINES.
  293. *** AREA,A,M,Y.
  294. * SET M BITS IN THE HOLDING REGISTER, FROM BIT A TO
  295. * A+M-1, TO THE OCTAL VALUE Y. Y MAY BE UP TO M BITS
  296. * OF OCTAL VALUE. A IS THE STARTING BIT NUMBER (0-203),
  297. * AND M IS THE NUMBER OF BITS (1-204). A AND M ARE
  298. * ASSUMED DECIMAL, BUT MAY HAVE A POSTRADIX OF D OR B.
  299.  
  300. ** ARP - SET AREA TO OCTAL VALUE.
  301. *
  302. * EXIT AREA IN HOLDING REGISTER SET TO GIVEN OCTAL VALUE.
  303. * VALUE DISPLAYED ON *K* DISPLAY.
  304. *
  305. * USES X - 0, 1, 2, 3, 5, 6, 7.
  306. * B - 2, 4, 5, 6, 7.
  307. * A - 0, 1, 2, 3, 5, 6, 7.
  308. *
  309. * CALLS GPV, GOV, DYL.
  310.  
  311.  
  312. DATA 0 RETURN ADDRESS
  313. ARP BSS 0
  314.  
  315. * GET PARAMETERS.
  316.  
  317. SA2 I
  318. LX2 30
  319. SA0 B0
  320. MX0 -6
  321. BX6 -X0*X2
  322. SX7 X6-1R)
  323. ZR X7,ARP15 IF *)*
  324. SX7 X6-1R.
  325. ZR X7,ARP15 IF *.*
  326. SB6 5 CHARACTER COUNTER
  327. RJ GPV GET PARAMETER VALUE
  328. ZR X1,ARP11 IF ERROR
  329. SX7 X6-NBIT
  330. PL X7,ARP12 IF INCORRECT BIT NUMBER
  331. SA6 ARPA SAVE STARTING BIT
  332. ARP1 SX6 X1-1R)
  333. ZR X6,ARP15 IF *)* TERMINATOR
  334. SX6 X1-1R.
  335. ZR X6,ARP15 IF *.* TERMINATOR
  336. SX0 A0
  337. NZ X0,ARP2 IF BOTH PARAMETERS FOUND
  338. SA0 B1
  339. RJ GPV GET PARAMETER VALUE
  340. ZR X1,ARP11 IF ERROR
  341. SA5 ARPA
  342. IX7 X5+X6 END BIT + 1
  343. SX5 205
  344. IX7 X7-X5
  345. PL X7,ARP13 IF NUMBER OF BITS TOO LARGE
  346. SA6 ARPB SAVE NUMBER OF BITS
  347. EQ ARP1
  348.  
  349. ARP2 RJ GOV GET OCTAL VALUE
  350. ZR X2,ARP11 IF ERROR
  351. SX6 B7+
  352. ZR B4,ARP3 IF NO FULL WORD OF VALUE
  353. SX1 60 NUMBER OF BITS IN A WORD
  354. SX2 B4+
  355. IX7 X2*X1
  356. IX6 X7+X6 TOTAL NUMBER OF BITS
  357. ARP3 SA2 ARPB
  358. IX7 X2-X6
  359. NG X7,ARP14 IF TOO MANY BITS GIVEN
  360.  
  361. * INSERT VALUE INTO HOLDING REGISTER.
  362.  
  363. SA1 REGF
  364. SA2 ARPA STARTING BIT
  365. SX6 60
  366. SX7 X2
  367. IX6 X7/X6 HOLDING REGISTER WORD
  368. SX7 60
  369. IX7 X6*X7
  370. IX7 X2-X7
  371. SB5 X7 BIT NUMBER IN WORD
  372. SA7 A2 SAVE BIT NUMBER IN WORD
  373. SX7 UHLD+X6
  374. ZR X1,ARP4 IF CHANNEL 16 REGISTER
  375. SX7 LHLD+X6
  376. ARP4 SA0 X7 STARTING ADDRESS
  377. SA1 A0
  378. SA3 ARPB NUMBER OF BITS
  379. SB7 X3+
  380. SB6 60
  381. SA3 GOVA VALUE
  382. ARP5 SB4 60
  383. SB4 B5-B4
  384. SB4 -B4
  385. GE B7,B4,ARP6 IF ENOUGH BITS TO FILL WORD
  386. SB4 B7+
  387. ARP6 GE B6,B4,ARP7 IF ENOUGH BITS IN VALUE WORD
  388. SB4 B6+
  389. ARP7 SB3 B4-B1 MASK COUNT
  390. MX0 1
  391. AX0 B3
  392. LX2 B4,X0 VALUE WORD MASK
  393. LX0 B5,X2 HOLDING WORD MASK
  394. BX7 X2*X3 GET VALUE
  395. AX3 B4
  396. LX7 B5 VALUE LEFT SHIFTED
  397. BX6 -X0*X1
  398. BX1 X7+X6 MERGE IN VALUE
  399. SB6 B6-B4
  400. NZ B6,ARP8 IF NOT END OF VALUE WORD
  401. SB6 60
  402. SA3 A3+B1 GET NEXT VALUE WORD
  403. ARP8 SB5 B5+B4
  404. SB2 60
  405. SB2 B5-B2
  406. NZ B2,ARP9 IF NOT END OF HOLDING WORD
  407. BX6 X1
  408. SA6 A1+ SAVE WORD
  409. SA1 A1+B1 GET NEXT HOLDING REGISTER WORD
  410. SB5 B0+
  411. ARP9 SB7 B7-B4
  412. NZ B7,ARP5 IF NOT END OF TRANSFER
  413. BX6 X1
  414. SA6 A1 SAVE LAST WORD
  415.  
  416. * DISPLAY ENTIRE AREA.
  417.  
  418. RJ DYL DISPLAY LINE
  419. SA1 ARPB NUMBER OF BITS
  420. SA2 ARPA BIT ORDINAL IN WORD
  421. SB7 X2-60
  422. SB6 X1+
  423. SB7 -B7+B1 NUMBER OF BITS LEFT IN WORD + 1
  424. SB5 B6-B7
  425. ARP10 NG B5,ARP11 IF ENTIRE AREA DISPLAYED
  426. SB6 B5+B1 NUMBER OF BITS LEFT TO DISPLAY
  427. SA0 A0+B1 SET NEXT WORD ADDRESS
  428. RJ DYL DISPLAY LINE
  429. SB5 B6-61
  430. EQ ARP10
  431.  
  432. * RETURN TO MAIN PROCESSOR.
  433.  
  434. ARP11 SA1 ARP-1 GET RETURN ADDRESS
  435. SB7 X1+
  436. JP B7
  437.  
  438. ARP12 MOVE 3,ARPD,MSGL *INCORRECT BIT NUMBER.*
  439. MOVE 3,ARPD,MSGK
  440. EQ ARP11
  441.  
  442. ARP13 MOVE 3,ARPE,MSGL *NUMBER OF BITS TOO LARGE.*
  443. MOVE 3,ARPE,MSGK
  444. EQ ARP11
  445.  
  446. ARP14 MOVE 3,ARPF,MSGL *TOO MANY BITS SPECIFIED.*
  447. MOVE 3,ARPF,MSGK
  448. EQ ARP11
  449.  
  450. ARP15 MOVE 3,ARPC,MSGL *NOT ENOUGH ARGUMENTS.*
  451. MOVE 3,ARPC,MSGK
  452. EQ ARP11
  453.  
  454. ARPA BSSZ 1 STARTING BIT
  455. ARPB BSSZ 1 NUMBER OF BITS
  456. ARPC DIS 3,NOT ENOUGH ARGUMENTS.
  457. BSSZ 1
  458. ARPD DIS 3,INCORRECT BIT NUMBER.
  459. BSSZ 1
  460. ARPE DIS 3,NUMBER OF BITS TOO LARGE.
  461. BSSZ 1
  462. ARPF DIS 3,TOO MANY BITS SPECIFIED.
  463. BSSZ 1
  464. BYP SPACE 4,16
  465. *** BYTE,XX,YYYY.
  466. * SET BYTE XX IN THE HOLDING REGISTER TO THE OCTAL
  467. * VALUE YYYY. YYYY MAY BE UP TO 12 BITS OF OCTAL
  468. * VALUE. XX IS THE BYTE NUMBER (0-16), AND IS
  469. * ASSUMED DECIMAL, BUT MAY HAVE A POSTRADIX OF D OR B.
  470.  
  471. ** BYP - SET BYTE TO OCTAL VALUE.
  472. *
  473. * EXIT BYTE SET IN HOLDING REGISTER.
  474. * VALUE DISPLAYED ON *K* DISPLAY.
  475. *
  476. * USES X - 0, 1, 2, 5, 6, 7.
  477. * B - 2, 6, 7.
  478. * A - 0, 1, 2, 7.
  479. *
  480. * CALLS GPV, GOV, DYL.
  481.  
  482.  
  483. DATA 0 ENTRY/EXIT
  484. BYP BSS 0
  485. SA2 I
  486. SB6 5 CHARACTER COUNTER
  487. LX2 30
  488. MX0 -6
  489. BX6 -X0*X2
  490. SX7 X6-1R)
  491. ZR X7,BYP1 IF *)*
  492. SX7 X6-1R.
  493. ZR X7,BYP1 IF *.*
  494.  
  495. * GET CORRECT BYTE.
  496.  
  497. RJ GPV GET PARAMETER VALUE
  498. ZR X1,BYP5 IF ERROR
  499. SX7 X1-1R)
  500. ZR X7,BYP1 IF *)* TERMINATOR
  501. SX7 X1-1R.
  502. ZR X7,BYP1 IF *.* TERMINATOR
  503. EQ BYP2
  504.  
  505. BYP1 MOVE 3,BYPA,MSGL *NOT ENOUGH ARGUMENTS.*
  506. MOVE 3,BYPA,MSGK
  507. EQ BYP5
  508.  
  509. BYP2 SX7 X6-17
  510. NG X7,BYP3 IF LEGAL BYTE NUMBER
  511. MOVE 3,BYPB,MSGL *INCORRECT BYTE NUMBER.*
  512. MOVE 3,BYPB,MSGK
  513. EQ BYP5
  514.  
  515. BYP3 SA0 UHLD
  516. SA1 REGF
  517. ZR X1,BYP4 IF CHANNEL 16 REGISTER
  518. SA0 LHLD
  519. BYP4 SX7 5
  520. SX5 X6
  521. IX7 X6/X7 WORD NUMBER
  522. SB7 X7
  523. SA0 A0+B7 SET WORD ADDRESS
  524. SX6 5
  525. IX6 X6*X7
  526. IX6 X5-X6 BYTE ORDINAL IN WORD
  527. SB2 X6
  528. RJ GOV GET OCTAL VALUE
  529. ZR X2,BYP5 IF ERROR
  530. NZ B4,BYP6 IF TOO MANY BITS
  531. SB7 B7-13
  532. PL B7,BYP6 IF TOO MANY BITS
  533.  
  534. * INSERT OCTAL VALUE INTO BYTE.
  535.  
  536. SA2 GOVA OCTAL VALUE
  537. SX5 12
  538. SX7 B2
  539. IX7 X7*X5 SHIFT COUNT
  540. SB7 X7
  541. SA1 A0 GET HOLDING WORD
  542. MX0 48
  543. BX6 -X0*X2
  544. LX0 B7 FORM MASK
  545. LX6 B7
  546. BX7 X0*X1
  547. BX7 X6+X7 INSERT VALUE
  548. SA7 A0+
  549. RJ DYL DISPLAY LINE
  550. BYP5 SA1 BYP-1 GET RETURN ADDRESS
  551. SB7 X1+
  552. JP B7
  553.  
  554. BYP6 MOVE 3,BYPC,MSGL *TOO MANY BITS SPECIFIED.*
  555. MOVE 3,BYPC,MSGK
  556. EQ BYP5
  557.  
  558. BYPA DIS 3,NOT ENOUGH ARGUMENTS.
  559. BSSZ 1
  560. BYPB DIS 3,INCORRECT BYTE NUMBER.
  561. BSSZ 1
  562. BYPC DIS 3,TOO MANY BITS SPECIFIED.
  563. BSSZ 1
  564. CLP SPACE 4,15
  565. *** CLEAR,A,B,...,Z.
  566. * CLEAR BITS A,B,...,Z IN THE HOLDING REGISTER, WHERE
  567. * A,B,...,Z ARE BIT NUMBERS (0-203). DECIMAL VALUES
  568. * ARE ASSUMED, BUT EACH MAY HAVE A POSTRADIX OF D OR B.
  569. * IF MORE THAN 30 BIT NUMBERS ARE ENTERED, ONLY THE
  570. * FIRST 30 WILL BE PROCESSED. ALL OTHERS WILL BE
  571. * IGNORED.
  572.  
  573. ** CLP - CLEAR BITS IN HOLDING REGISTERS.
  574. *
  575. * EXIT BITS CLEARED IN HOLDING REGISTER.
  576. * BITS DISPLAYED ON *K* DISPLAY.
  577. *
  578. * USES X - 0, 1, 2, 6.
  579. * B - 6, 7.
  580. * A - 0, 1, 2, 6.
  581. *
  582. * CALLS GPV, CBV.
  583.  
  584.  
  585. DATA 0 RETURN ADDRESS
  586. CLP BSS 0
  587. SA2 I
  588. SB6 B0+
  589. LX2 36
  590. SA0 B0
  591. MX0 -6
  592. BX6 -X0*X2
  593. SX1 X6-1R)
  594. ZR X1,CLP4 IF *)*
  595. SX1 X6-1R.
  596. ZR X1,CLP4 IF *.*
  597. SB6 6 CHARACTER COUNTER
  598.  
  599. * GET BIT NUMBERS.
  600.  
  601. CLP1 RJ GPV GET PARAMETER VALUE
  602. ZR X1,CLP5 IF ERROR
  603. SA6 PARA+A0
  604. SA0 A0+B1 CHECK FOR MAXIMUM NUMBER OF PARAMETERS
  605. SX0 A0
  606. SX6 X1-1R)
  607. ZR X6,CLP3 IF *)*
  608. SX6 X1-1R.
  609. ZR X6,CLP3 IF *.*
  610. SX0 X0-MNOP
  611. ZR X0,CLP2 IF MAXIMUM NUMBER OF PARAMETERS
  612. EQ CLP1
  613.  
  614. CLP2 MOVE 3,CLPA,MSGL *MAXIMUM NUMBER OF ARGUMENTS.*
  615. MOVE 3,CLPA,MSGK
  616. CLP3 SB6 A0+ NUMBER OF BITS SPECIFIED
  617. SA0 UHLD
  618. SA1 REGF
  619. ZR X1,CLP4 IF CHANNEL 16 REGISTER
  620. SA0 LHLD
  621. CLP4 SX0 B1 SET CLEAR BIT FLAG
  622. RJ CBV CHANGE BIT VALUES
  623. CLP5 SA1 CLP-1 GET RETURN ADDRESS
  624. SB7 X1+
  625. JP B7
  626.  
  627. CLPA DIS 3,MAXIMUM NUMBER OF ARGUMENTS.
  628. BSSZ 1
  629. CYP SPACE 4,25
  630. *** CYCLE,X,T,R.
  631. * SET BIT X EVERY T PERIODS A TOTAL OF R TIMES. X IS
  632. * THE BIT NUMBER (0-203) AND R THE NUMBER OF TIMES TO
  633. * SET THE BIT. R MAY NOT EXCEED 4095. T IS THE
  634. * NUMBER OF TIME PERIODS FOR EACH CYCLE, ONE PERIOD
  635. * BEING 16 MILLISECONDS. T=32 IS APPROXIMATELY ONE HALF
  636. * SECOND. THIS COMMAND ASSUMES CONTROL OF THE
  637. * SIMULATOR FOR THE TOTAL TIME PERIOD SPECIFIED, AND
  638. * NO COMMAND WILL BE ACCEPTED EXCEPT *END*. BIT X
  639. * IS SET IN THE HOLDING REGISTER BY THIS COMMAND.
  640. *
  641. * END.
  642. * END *CYCLE* COMMAND PROCESSING BEFORE R HAS BEEN
  643. * REACHED. CONTROL OF THE SIMULATOR IS RETURNED TO
  644. * THE OPERATOR.
  645.  
  646. ** CYP - CYCLE BIT AT GIVEN INTERVAL.
  647. *
  648. * EXIT BIT SET ON *K* DISPLAY.
  649. *
  650. * USES X - 0, 1, 2, 3, 5, 6, 7.
  651. * B - 6, 7.
  652. * A - 0, 1, 2, 3, 5, 6, 7.
  653. *
  654. * CALLS GPV, DYL, DEB, SSR.
  655.  
  656.  
  657. DATA 0 RETURN ADDRESS
  658. CYP BSS 0
  659. SA2 I
  660. SB6 6 CHARACTER COUNT
  661. LX2 36
  662. MX0 -6
  663. BX6 -X0*X2
  664. SX7 X6-1R)
  665. ZR X7,CYP2 IF *)*
  666. SX7 X6-1R.
  667. ZR X7,CYP2 IF *.*
  668. SA0 3
  669. CYP1 RJ GPV GET PARAMETER VALUE
  670. ZR X1,CYP11 IF ERROR
  671. SA0 A0-B1
  672. SX0 A0
  673. SA6 PARA+A0 SAVE PARAMETER
  674. ZR X0,CYP3 IF ALL PARAMETERS FOUND
  675. SX6 X1-1R)
  676. ZR X6,CYP2 IF *)* TERMINATOR
  677. SX6 X1-1R.
  678. ZR X6,CYP2 IF *.* TERMINATOR
  679. EQ CYP1
  680.  
  681. CYP2 MOVE 3,CYPA,MSGL *NOT ENOUGH ARGUMENTS.*
  682. MOVE 3,CYPA,MSGK
  683. EQ CYP11
  684.  
  685. CYP3 SA5 PARA+2 BIT NUMBER
  686. SX7 X5-NBIT
  687. NG X7,CYP4 IF LEGAL BIT NUMBER
  688. MOVE 3,CYPB,MSGL *INCORRECT BIT NUMBER.*
  689. MOVE 3,CYPB,MSGK
  690. EQ CYP11
  691.  
  692. * SET BIT IN HOLDING REGISTER.
  693.  
  694. CYP4 SA0 UHLD
  695. SA1 REGF
  696. ZR X1,CYP5 IF CHANNEL 16 REGISTER
  697. SA0 LHLD
  698. CYP5 SX7 60
  699. SX6 X5+
  700. SA6 CYPI SAVE BIT NUMBER
  701. IX7 X6/X7 WORD NUMBER
  702. SB7 X7+
  703. SA0 A0+B7 SET WORD ADDRESS
  704. SX6 60
  705. IX6 X6*X7
  706. IX6 X5-X6 BIT ORDINAL IN WORD
  707. MX0 59
  708. SB7 X6
  709. LX0 B7
  710. SA1 A0 GET HOLDING WORD
  711. SX7 B1
  712. LX7 B7
  713. BX1 X0*X1
  714. BX6 X7+X1 SET BIT
  715. SA6 A0+
  716. RJ DYL DISPLAY LINE
  717.  
  718. * GET TIME PARAMETERS.
  719.  
  720. SA5 PARA+1 TIME INTERVAL
  721. SX6 X5+
  722. SA6 CYPE SAVE INTERVAL
  723. SA5 A5-B1 NUMBER OF CYCLES
  724. BX7 X5
  725. SX5 X5-4096
  726. PL X5,CYP17 IF NUMBER TOO LARGE
  727.  
  728. * SEND SET BIT TO STATUS AND CONTROL REGISTER.
  729.  
  730. CYP6 SA7 CYPF SAVE NUMBER OF CYCLES
  731. SA1 REGF
  732. SX6 5
  733. IX5 X1*X6
  734. LX1 59
  735. SA2 CYPI
  736. SX7 4000B
  737. BX7 X2+X7 BIT NUMBER AND SET BIT CODE
  738. LX7 12
  739. BX6 X1+X7 SET BIT 59 IF CHANNEL 36
  740. SA6 PW16+X5 SET PARAMETER WORD
  741. SA0 A6+
  742. SA1 CYPE
  743. SX6 X1-32
  744. NG X6,CYP13 IF INTERVAL LESS THAN HALF SECOND
  745. CYP7 RJ SSR SEND SYSTEM REQUEST
  746. RTIME CYPG
  747. SA5 CYPF
  748. SX5 X5-1
  749. ZR X5,CYP10 IF TIME LIMIT UP
  750. SA1 I
  751. SA2 =5LCYCLE
  752. BX6 X1-X2
  753. MX0 30
  754. BX6 X0*X6
  755. ZR X6,CYP8 IF NO INPUT ENTERED
  756. MX0 18
  757. SA2 =3LEND
  758. BX6 X1-X2
  759. BX6 X0*X6
  760. ZR X6,CYP16 IF *END*
  761. MOVE 3,CYPJ,MSGL *CYCLE STILL PROCESSING.*
  762. MOVE 3,CYPJ,MSGK
  763.  
  764. * LOOP FOR TIME INTERVAL.
  765.  
  766. CYP8 RTIME CYPH
  767. SA1 CYPE
  768. SA2 CYPG GET REAL TIME
  769. MX7 -32
  770. AX2 4
  771. SA3 CYPH GET PRESENT TIME
  772. BX2 -X7*X2
  773. AX3 4
  774. BX3 -X7*X3
  775. IX3 X3-X2
  776. IX3 X3-X1
  777. PL X3,CYP9 IF TIME TO RESET BIT
  778. RJ DCR DISPLAY CONTENTS OF REGISTER
  779. RECALL
  780. EQ CYP8
  781.  
  782. CYP9 SA5 CYPF DECREMENT NUMBER OF CYCLES
  783. SX6 X5-1
  784. SA6 A5
  785. EQ CYP7
  786.  
  787. CYP10 MOVE 3,CYPD,MSGL *TIME LIMIT UP.*
  788. MOVE 3,CYPD,MSGK
  789. CYP11 RJ DCR DISPLAY CONTENTS OF REGISTER
  790. SA1 CYP-1 GET RETURN ADDRESS
  791. SB7 X1+
  792. JP B7
  793.  
  794. * PROCESS FUNCTION WITH INTERVAL LESS THAN HALF SECOND.
  795.  
  796. CYP13 SX1 B1 SET LESS THAN HALF SECOND FLAG
  797. LX1 58-0
  798. SA2 CYPE
  799. LX2 36
  800. SA3 CYPF
  801. LX3 24
  802. BX6 X2+X3 TIME INTERVAL AND LIMIT
  803. BX6 X1+X6
  804. SA1 A6 GET PARAMETER WORD
  805. BX7 X1+X6
  806. SA7 A6
  807. RJ SSR SEND SYSTEM REQUEST
  808. CYP14 SA1 A0 GET PARAMETER WORD
  809. LX1 59-58
  810. PL X1,CYP10 IF TIME LIMIT UP
  811. SA1 I
  812. SA2 =5LCYCLE
  813. BX6 X1-X2
  814. MX0 30
  815. BX6 X0*X6
  816. ZR X6,CYP15 IF NO INPUT ENTERED
  817. SA2 =3LEND
  818. BX6 X1-X2
  819. MX0 18
  820. BX6 X0*X6
  821. ZR X6,CYP16 IF *END*
  822. MOVE 3,CYPJ,MSGL *CYCLE STILL PROCESSING.*
  823. MOVE 3,CYPJ,MSGK
  824. CYP15 RECALL
  825. EQ CYP14
  826.  
  827. * PROCESS *END* COMMAND.
  828.  
  829. CYP16 MOVE 5,I,PARL DISPLAY COMMAND
  830. MOVE 5,I,PARK
  831. MOVE 4,BLNK,PARL+1
  832. MOVE 4,BLNK,PARK+1
  833. MESSAGE I,3 ENTER COMMAND IN JOB DAYFILE
  834. MOVE 3,BLNK,MSGL CLEAR ANY ERROR MESSAGE
  835. MOVE 3,BLNK,MSGK
  836. MX0 59 CLEAR HALF SECOND INTERVAL FLAG
  837. LX0 58
  838. SA1 A0
  839. BX6 X0*X1
  840. SA6 A1+
  841. RECALL
  842. EQ CYP11
  843.  
  844. CYP17 MOVE 3,CYPC,MSGL *NUMBER OF CYCLES TOO LARGE.*
  845. MOVE 3,CYPC,MSGK
  846. EQ CYP11
  847.  
  848. CYPA DIS 3,NOT ENOUGH ARGUMENTS.
  849. BSSZ 1
  850. CYPB DIS 3,INCORRECT BIT NUMBER.
  851. BSSZ 1
  852. CYPC DIS 3,NUMBER OF CYCLES TOO LARGE.
  853. BSSZ 1
  854. CYPD DIS 3,TIME LIMIT UP.
  855. BSSZ 1
  856. CYPE BSSZ 1 TIME INTERVAL
  857. CYPF BSSZ 1 NUMBER OF CYCLES
  858. CYPG BSSZ 1 REAL TIME
  859. CYPH BSSZ 1 REAL TIME COMPARE
  860. CYPI BSSZ 1 BIT NUMBER
  861. CYPJ DIS 3,CYCLE STILL PROCESSING.
  862. BSSZ 1
  863. GOP SPACE 4,15
  864. *** GO.
  865. * THIS COMMAND CAUSES THE CONTENTS OF THE HOLDING
  866. * REGISTERS TO BE TRANSFERRED TO THE ACTUAL STATUS
  867. * AND CONTROL REGISTERS OR INTERLOCK REGISTER. NO
  868. * BITS ARE CHANGED IN VALUE IN THE HOLDING REGISTERS
  869. * BY THIS COMMAND.
  870.  
  871. ** GOP - TRANSFER HOLDING REGISTERS TO S/C REGISTERS.
  872. *
  873. * EXIT HOLDING REGISTERS TRANSFERRED TO PROPER STATUS AND
  874. * CONTROL REGISTER.
  875. *
  876. * USES X - 1, 6.
  877. * B - 7.
  878. * A - 1, 6.
  879.  
  880.  
  881. DATA 0 RETURN ADDRESS
  882. GOP BSS 0
  883. SA1 CA
  884. NZ X1,GOP1 IF CHANNEL 36 NOT AVAILABLE
  885.  
  886. * SEND CHANNEL 36 DATA TO *HFM*.
  887.  
  888. SX6 B1 SET CHANNEL 36 FLAG IN PARAMETER WORD
  889. LX6 59-0
  890. SA6 PW36
  891. SYSTEM HFM,R,PW36,0
  892.  
  893. * SEND CHANNEL 16 DATA TO *HFM*.
  894.  
  895. GOP1 SX6 B0+ CLEAR PARAMETER WORD
  896. SA6 PW16
  897. SYSTEM HFM,R,PW16,0
  898. SA1 GOP-1 GET RETURN ADDRESS
  899. SB7 X1+
  900. JP B7
  901. LIP SPACE 4,16
  902. *** LINE,X,Y.
  903. * SET LINE X OF THE HOLDING REGISTER TO THE OCTAL
  904. * VALUE Y. Y MAY BE UP TO 60 BITS OF OCTAL VALUE.
  905. * X IS THE LINE NUMBER (0-3) FROM THE LEFT DISPLAY
  906. * SCREEN, LINE 0 AT THE TOP, AND LINE 3 AT THE BOTTOM.
  907.  
  908. ** LIP - SET HOLDING REGISTER LINE TO OCTAL VALUE.
  909. *
  910. * EXIT SPECIFIED LINE SET TO OCTAL VALUE IN HOLDING REGISTER.
  911. * VALUE DISPLAYED ON *K* DISPLAY.
  912. *
  913. * USES X - 0, 1, 2, 6, 7.
  914. * B - 6, 7.
  915. * A - 0, 1, 2, 6.
  916. *
  917. * CALLS GPV, GOV, DYL.
  918.  
  919.  
  920. DATA 0 RETURN ADDRESS
  921. LIP BSS 0
  922. SA2 I
  923. SB6 5 CHARACTER COUNTER
  924. LX2 30
  925. MX0 -6
  926. BX6 -X0*X2
  927. SX7 X6-1R)
  928. ZR X7,LIP4 IF *)*
  929. SX7 X6-1R.
  930. ZR X7,LIP4 IF *.*
  931.  
  932. * GET LINE NUMBER AND OCTAL VALUE.
  933.  
  934. RJ GPV GET PARAMETER VALUE
  935. ZR X1,LIP2 IF ERROR
  936. SX7 X6-4
  937. PL X7,LIP3 IF INCORRECT LINE NUMBER
  938. SX7 X1-1R)
  939. ZR X7,LIP4 IF *)* TERMINATOR
  940. SX7 X1-1R.
  941. ZR X7,LIP4 IF *.* TERMINATOR
  942. SA1 REGF
  943. SA0 UHLD
  944. ZR X1,LIP1 IF CHANNEL 16 REGISTER
  945. SA0 LHLD
  946. LIP1 SB7 X6
  947. SA0 A0+B7 LINE ADDRESS
  948. RJ GOV GET OCTAL VALUE
  949. ZR X2,LIP2 IF ERROR
  950. NZ B4,LIP5 IF TOO MANY BITS
  951.  
  952. * INSERT VALUE INTO HOLDING REGISTER.
  953.  
  954. SA1 GOVA GET VALUE
  955. BX6 X1
  956. SA6 A0
  957. RJ DYL DISPLAY LINE
  958. LIP2 SA1 LIP-1 GET RETURN ADDRESS
  959. SB7 X1+
  960. JP B7
  961.  
  962. LIP3 MOVE 3,LIPA,MSGL *INCORRECT LINE NUMBER.*
  963. MOVE 3,LIPA,MSGK
  964. EQ LIP2
  965.  
  966. LIP4 MOVE 3,LIPB,MSGL *NOT ENOUGH ARGUMENTS.*
  967. MOVE 3,LIPB,MSGK
  968. EQ LIP2
  969.  
  970. LIP5 MOVE 3,LIPC,MSGL *TOO MANY BITS SPECIFIED.*
  971. MOVE 3,LIPC,MSGK
  972. EQ LIP2
  973.  
  974. LIPA DIS 3,INCORRECT LINE NUMBER.
  975. BSSZ 1
  976. LIPB DIS 3,NOT ENOUGH ARGUMENTS.
  977. BSSZ 1
  978. LIPC DIS 3,TOO MANY BITS SPECIFIED.
  979. BSSZ 1
  980. REP SPACE 4,20
  981. *** READ.
  982. * READ THE ACTUAL CONTENTS OF THE S/C REGISTER (OR
  983. * INTERLOCK REGISTER) ON THE CURRENT CHANNEL INTO THE
  984. * HOLDING REGISTER.
  985.  
  986. ** REP - READ CURRENT CONTENTS OF S/C OR INTERLOCK REGISTER.
  987. *
  988. * EXIT ACTUAL CONTENTS OF S/C REGISTER (OR INTERLOCK REGISTER)
  989. * ON THE CURRENT CHANNEL SET IN HOLDING REGISTER.
  990. *
  991. * USES X - 1, 7.
  992. * B - 6, 7.
  993. * A - 0, 1.
  994. *
  995. * CALLS DYL, RDR.
  996.  
  997.  
  998. DATA 0 RETURN ADDRESS
  999. REP BSS 0
  1000. SX7 UHLD SET HOLDING REGISTER ADDRESS
  1001. SA1 REGF
  1002. ZR X1,REP1 IF CHANNEL 16
  1003. SX7 LHLD SET CHANNEL 36 HOLDING REGISTER ADDRESS
  1004. REP1 RJ RDR READ REGISTER CONTENTS
  1005. SB6 3
  1006. REP2 SA1 RDRB SET LINE ADDRESS
  1007. SA0 X1+B6
  1008. RJ DYL DISPLAY LINE
  1009. SB6 B6-B1
  1010. PL B6,REP2 IF NOT END OF REGISTER
  1011. SA1 REP-1 GET RETURN ADDRESS
  1012. SB7 X1+
  1013. JP B7 RETURN
  1014. SEP SPACE 4,15
  1015. *** SET,A,B,...,Z.
  1016. * SET BITS A,B,...,Z IN THE HOLDING REGISTER, WHERE
  1017. * A,B,...,Z ARE BIT NUMBERS (0-203). DECIMAL VALUES
  1018. * ARE ASSUMED, BUT EACH MAY HAVE A POSTRADIX OF D OR B.
  1019. * IF MORE THAN 30 BIT NUMBERS ARE ENTERED, ONLY THE
  1020. * FIRST 30 WILL BE PROCESSED. ALL OTHERS WILL BE
  1021. * IGNORED.
  1022.  
  1023. ** SEP - SET BITS IN HOLDING REGISTERS.
  1024. *
  1025. * EXIT BITS SET IN HOLDING REGISTER.
  1026. * BITS DISPLAYED ON *K* DISPLAY.
  1027. *
  1028. * USES X - 0, 1, 2, 6.
  1029. * B - 6, 7.
  1030. * A - 0, 1, 2, 6.
  1031. *
  1032. * CALLS GPV, CBV.
  1033.  
  1034.  
  1035. DATA 0 RETURN ADDRESS
  1036. SEP BSS 0
  1037. SA2 I
  1038. SB6 B0+
  1039. LX2 24
  1040. SA0 B0
  1041. MX0 -6
  1042. BX6 -X0*X2
  1043. SX1 X6-1R)
  1044. ZR X1,SEP4 IF *)*
  1045. SX1 X6-1R.
  1046. ZR X1,SEP4 IF *.*
  1047. SB6 4 CHARACTER COUNTER
  1048.  
  1049. * GET BIT NUMBERS.
  1050.  
  1051. SEP1 RJ GPV GET PARAMETER VALUE
  1052. ZR X1,SEP5 IF ERROR
  1053. SA6 PARA+A0
  1054. SA0 A0+B1 CHECK FOR MAXIMUM NUMBER OF PARAMETERS
  1055. SX0 A0
  1056. SX6 X1-1R)
  1057. ZR X6,SEP3 IF *)*
  1058. SX6 X1-1R.
  1059. ZR X6,SEP3 IF *.*
  1060. SX0 X0-MNOP
  1061. ZR X0,SEP2 IF MAXIMUM NUMBER OF PARAMETERS
  1062. EQ SEP1
  1063.  
  1064. SEP2 MOVE 3,SEPA,MSGL *MAXIMUM NUMBER OF ARGUMENTS.*
  1065. MOVE 3,SEPA,MSGK
  1066. SEP3 SB6 A0+ NUMBER OF BITS SPECIFIED
  1067. SA0 UHLD
  1068. SA1 REGF
  1069. ZR X1,SEP4 IF CHANNEL 16 REGISTER
  1070. SA0 LHLD
  1071. SEP4 SX0 B0 SET SET BIT FLAG
  1072. RJ CBV CHANGE BIT VALUES
  1073. SEP5 SA1 SEP-1 GET RETURN ADDRESS
  1074. SB7 X1+
  1075. JP B7
  1076.  
  1077. SEPA DIS 3,MAXIMUM NUMBER OF ARGUMENTS.
  1078. BSSZ 1
  1079. STP SPACE 4,4
  1080. *** STOP.
  1081. * THIS COMMAND CAUSES THE SIMULATOR TO END PROCESSING.
  1082.  
  1083. ** STP - END SIMULATOR.
  1084.  
  1085.  
  1086. DATA 0 RETURN ADDRESS
  1087. STP BSS 0
  1088. MESSAGE STPA *END SIMULATOR.*
  1089. WRITEF OT CAUSE DAYFILE TO PRINT
  1090. ENDRUN
  1091.  
  1092. STPA DIS 3, END SIMULATOR.
  1093. TOP SPACE 4,18
  1094. *** +.
  1095. * THIS COMMAND TOGGLES THE *K* DISPLAY BETWEEN THE
  1096. * CHANNEL 16 AND CHANNEL 36 REGISTER DISPLAYS AND ALSO
  1097. * CHANGES THE REGISTER CURRENTLY BEING WORKED ON IF
  1098. * THE SIMULATOR IS BEING OPERATED ON A CYBER 170 WITH
  1099. * TWO S/C REGISTERS. OTHERWISE, NO ACTION IS TAKEN.
  1100. * THE CHANNEL 16 REGISTER IS ASSUMED WHEN THE SIMULATOR
  1101. * BEGINS. THE REGISTER CURRENTLY DISPLAYED IS THE
  1102. * HOLDING REGISTER WHICH THE OTHER COMMANDS AFFECT.
  1103.  
  1104. ** TOP - TOGGLE REGISTER IN USE.
  1105. *
  1106. * EXIT REGISTER IN USE FLAG TOGGLED.
  1107. * *K* DISPLAY CHANGED TO REFLECT REGISTER BEING USED.
  1108. *
  1109. * USES X - 0, 1, 2, 6, 7.
  1110. * B - 7.
  1111. * A - 1, 2, 6, 7.
  1112.  
  1113.  
  1114. DATA 0 RETURN ADDRESS
  1115. TOP BSS 0
  1116. MX0 42
  1117. SA2 K CLEAR LEFT SCREEN FIELD
  1118. BX2 X0*X2
  1119. SA1 REGF
  1120. ZR X1,TOP1 IF CHANNEL 16 IN USE
  1121.  
  1122. * CHANGE TO CHANNEL 16 DISPLAY FROM CHANNEL 36.
  1123.  
  1124. SX7 L16 SET CHANNEL 16 DISPLAY ADDRESS
  1125. BX7 X2+X7
  1126. SA7 A2
  1127. CONSOLE K TOGGLE DISPLAY
  1128. SX6 B0+ SET CHANNEL 16 REGISTER
  1129. SA6 REGF
  1130. EQ TOP2
  1131.  
  1132. * CHANGE TO CHANNEL 36 DISPLAY IF AVAILABLE.
  1133.  
  1134. TOP1 SA1 CA
  1135. NZ X1,TOP2 IF CHANNEL 36 NOT AVAILABLE
  1136. SX7 L36 SET CHANNEL 36 DISPLAY ADDRESS
  1137. BX7 X2+X7
  1138. SA7 A2
  1139. CONSOLE K TOGGLE DISPLAY
  1140. SX6 B1+ SET CHANNEL 36 REGISTER
  1141. SA6 REGF
  1142. TOP2 SA1 TOP-1 GET RETURN ADDRESS
  1143. SB7 X1+
  1144. JP B7
  1145. CBV TITLE SECONDARY SUBROUTINES.
  1146. ** CBV - CHANGE BIT VALUES.
  1147. *
  1148. * ENTRY (A0) = REGISTER ADDRESS.
  1149. * (X0) = SET/CLEAR BIT FLAG.
  1150. * (B6) = NUMBER OF BITS SPECIFIED.
  1151. * BIT NUMBERS UNPACKED INTO PARA.
  1152. *
  1153. * EXIT SPECIFIED BITS CHANGED IN VALUE.
  1154. * CHANGED BITS DISPLAYED ON *K* DISPLAY.
  1155. *
  1156. * USES X - 1, 6, 7.
  1157. * B - 6, 7.
  1158. * A - 0, 1, 6, 7.
  1159. *
  1160. * CALLS DYL.
  1161.  
  1162.  
  1163. CBV SUBR ENTRY/EXIT
  1164. SX7 X0+ SAVE FLAG
  1165. SA7 CBVC
  1166. NZ B6,CBV1 IF BITS SPECIFIED
  1167. MOVE 3,CBVA,MSGL *NO BITS SPECIFIED.*
  1168. MOVE 3,CBVA,MSGK
  1169. EQ CBVX
  1170.  
  1171. * GET BIT NUMBER.
  1172.  
  1173. CBV1 SX7 PARA ADDRESS OF FIRST PARAMETER
  1174. SA7 CBVD
  1175. SX6 A0+ SAVE REGISTER ADDRESS
  1176. SA6 CBVE
  1177. CBV2 SA1 X7+ BIT NUMBER
  1178. SX7 X1-NBIT
  1179. NG X7,CBV3 IF LEGAL BIT NUMBER
  1180. MOVE 3,CBVB,MSGL *INCORRECT BIT NUMBER.*
  1181. MOVE 3,CBVB,MSGK
  1182. EQ CBVX
  1183.  
  1184. * FIND CORRECT BIT AND SET/CLEAR IT.
  1185.  
  1186. CBV3 SX6 60
  1187. SX7 X1
  1188. IX7 X7/X6 WORD NUMBER
  1189. SX6 60
  1190. IX6 X7*X6
  1191. IX6 X1-X6 BIT ORDINAL IN WORD
  1192. SB7 X7
  1193. SA0 A0+B7 WORD ADDRESS
  1194. SA1 A0
  1195. SB7 X6+
  1196. MX6 59
  1197. LX6 B7 SET UP MASK
  1198. BX7 X6*X1 CLEAR BIT
  1199. SA1 CBVC
  1200. NZ X1,CBV4 IF CLEAR BIT
  1201. SX6 B1+ SET BIT
  1202. LX6 B7
  1203. IX7 X6+X7
  1204. CBV4 SA7 A0 STORE BIT
  1205. RJ DYL DISPLAY LINE
  1206. SB6 B6-B1
  1207. SA1 CBVD SET NEXT PARAMETER ADDRESS
  1208. SX7 X1+B1
  1209. SA7 A1
  1210. SA1 CBVE RESET REGISTER ADDRESS
  1211. SA0 X1
  1212. NZ B6,CBV2 IF NOT END OF PARAMETERS
  1213. EQ CBVX
  1214.  
  1215. CBVA DIS 3,NO BITS SPECIFIED.
  1216. BSSZ 1
  1217. CBVB DIS 3,INCORRECT BIT NUMBER.
  1218. BSSZ 1
  1219. CBVC BSSZ 1 SET/CLEAR FLAG
  1220. CBVD BSSZ 1 PARAMETER ADDRESS
  1221. CBVE BSSZ 1 REGISTER ADDRESS
  1222. CDC SPACE 4,8
  1223. ** CDC - CONVERT TEN BITS TO DISPLAY CODE.
  1224. *
  1225. * ENTRY (X1) = TEN BITS RIGHT JUSTIFIED.
  1226. *
  1227. * EXIT (X6) = DISPLAY CODED WORD.
  1228. *
  1229. * USES X - 0, 1, 4, 6, 7.
  1230. * B - 7.
  1231.  
  1232.  
  1233. CDC SUBR ENTRY/EXIT
  1234. BX4 X4-X4 CLEAR ASSEMBLY
  1235. MX0 -1
  1236. SB7 10
  1237.  
  1238. * CONVERT ONE BIT AT A TIME TO DISPLAY CODE.
  1239.  
  1240. CDC1 BX7 -X0*X1 GET BIT
  1241. LX4 -6
  1242. SX6 X7+1R0 CONVERT BIT TO DISPLAY CODE
  1243. AX1 1
  1244. BX4 X6+X4 ADD TO ASSEMBLY
  1245. SB7 B7-B1
  1246. NZ B7,CDC1 IF NOT TEN BITS
  1247. LX4 -6
  1248. BX6 X4
  1249. EQ CDCX
  1250. GOV SPACE 4,14
  1251. ** GOV - GET OCTAL VALUE.
  1252. *
  1253. * ENTRY (A2) = CHARACTER WORD ADDRESS.
  1254. * (X2) = CHARACTER WORD, NEXT CHARACTER LEFT JUSTIFIED.
  1255. * (B6) = CHARACTER COUNT.
  1256. *
  1257. * EXIT (B4) = NUMBER OF FULL CM WORDS OF VALUE.
  1258. * (B7) = NUMBER OF BITS IN LAST WORD OF VALUE.
  1259. * (X2) = 0 IF ERROR.
  1260. * VALUE STORED IN GOVA - GOVA+3.
  1261. *
  1262. * USES X - 0, 2, 3, 4, 6, 7.
  1263. * B - 4, 5, 6, 7.
  1264. * A - 2, 6, 7.
  1265.  
  1266.  
  1267. GOV SUBR ENTRY/EXIT
  1268. BX6 X6-X6 CLEAR VALUE BUFFER
  1269. SA6 GOVA
  1270. SA6 A6+B1
  1271. SA6 A6+B1
  1272. SA6 A6+B1
  1273. MX0 -6
  1274. BX4 X4-X4 CLEAR ASSEMBLY
  1275. MX0 -6
  1276. SB7 B0 DIGIT COUNTER
  1277. SB4 B0+ WORD COUNTER
  1278. EQ GOV2
  1279.  
  1280. * CHECK NEXT CHARACTER.
  1281.  
  1282. GOV1 SB6 B6+B1
  1283. SB5 10
  1284. SB5 B6-B5
  1285. NZ B5,GOV2 IF NOT END OF WORD
  1286. SA2 A2+B1 GET NEXT WORD
  1287. SB6 B0 RESET COUNTER
  1288. GOV2 LX2 6
  1289. BX6 -X0*X2
  1290. SX7 X6-1R0
  1291. NG X7,GOV5 IF ALPHABETIC CHARACTER
  1292. SX7 X6-1R8
  1293. NG X7,GOV3 IF OCTAL NUMERIC
  1294. SX7 X6-1R+
  1295. NG X7,GOV5 IF 8 OR 9
  1296. SX7 X6-1R
  1297. ZR X7,GOV1 IF SPACE
  1298. SX7 X6-1R#
  1299. PL X7,GOV5 IF INCORRECT CHARACTER
  1300. BX7 X4
  1301. SB5 B7+B4
  1302. ZR B5,GOVX IF DEFAULT VALUE
  1303. SA7 GOVA+B4 SAVE VALUE
  1304. LX3 57
  1305. SB5 B0
  1306. NG X3,GOV6 IF 3 BIT DIGIT
  1307. LX3 1
  1308. SB5 B1
  1309. NG X3,GOV6 IF 2 BIT DIGIT
  1310. SB5 B5+B1
  1311. EQ GOV6
  1312.  
  1313. * ASSEMBLE OCTAL VALUE.
  1314.  
  1315. GOV3 SX6 X6-1R0 CONVERT TO BINARY
  1316. LX4 3
  1317. BX4 X4+X6 ADD TO ASSEMBLY
  1318. NZ B7,GOV4 IF NOT FIRST DIGIT OF WORD
  1319. NZ B4,GOV4 IF NOT FIRST WORD
  1320. SX3 X6+ SAVE FIRST DIGIT
  1321. GOV4 SB7 B7+3
  1322. SB5 B7-60
  1323. NZ B5,GOV1 IF NOT A FULL WORD
  1324. BX7 X4 SAVE VALUE
  1325. SB7 B0
  1326. SA7 GOVA+B4
  1327. SB4 B4+B1
  1328. BX4 X4-X4 CLEAR ASSEMBLY
  1329. EQ GOV1
  1330.  
  1331. GOV5 MOVE 3,GOVB,MSGL *INCORRECT CHARACTER.*
  1332. MOVE 3,GOVB,MSGK
  1333. SX2 B0
  1334. EQ GOVX
  1335.  
  1336. * ADJUST NUMBER OF BITS IN VALUE.
  1337.  
  1338. GOV6 NZ B7,GOV7 IF NOT EXACTLY A FULL LAST WORD
  1339. SB7 60
  1340. SB4 B4-B1
  1341. GOV7 SB7 B7-B5 ADJUST NUMBER OF BITS
  1342. EQ GOVX
  1343.  
  1344. GOVA BSS 4 VALUE
  1345. GOVB DIS 3,INCORRECT CHARACTER.
  1346. BSSZ 1
  1347. GPV SPACE 4,17
  1348. ** GPV - GET PARAMETER VALUE.
  1349. *
  1350. * ENTRY (A2) = CHARACTER WORD ADDRESS.
  1351. * (X2) = CHARACTER WORD, NEXT CHARACTER LEFT JUSTIFIED.
  1352. * (B6) = CHARACTER COUNT.
  1353. *
  1354. * EXIT (X1) = SEPARATOR OR 0 IF ERROR.
  1355. * (X2) = CHARACTER LINE.
  1356. * (A2) = CHARACTER LINE ADDRESS.
  1357. * (B6) = CHARACTER COUNT.
  1358. * (X6) = PARAMETER BINARY VALUE.
  1359. *
  1360. * USES X - 0, 1, 2, 3, 5, 6, 7.
  1361. * B - 4, 5, 6, 7.
  1362. * A - 1, 2, 3, 5, 6.
  1363. *
  1364. * CALLS DXB.
  1365.  
  1366.  
  1367. GPV SUBR ENTRY/EXIT
  1368. SB4 B0+
  1369. BX5 X5-X5 CLEAR ASSEMBLY WORD
  1370. MX0 -6
  1371.  
  1372. * CHECK NEXT CHARACTER.
  1373.  
  1374. GPV1 LX2 6
  1375. BX6 -X0*X2
  1376. SX7 X6-1RB
  1377. ZR X7,GPV3 IF POSTRADIX *B*
  1378. SX7 X6-1RD
  1379. ZR X7,GPV3 IF POSTRADIX *D*
  1380. SX7 X6-1R0
  1381. NG X7,GPV7 IF ALPHABETIC CHARACTER
  1382. SX7 X6-1R+
  1383. NG X7,GPV3 IF NUMERIC
  1384. SX7 X6-1R
  1385. ZR X7,GPV2 IF SPACE
  1386. SX7 X6-1R#
  1387. PL X7,GPV7 IF INCORRECT CHARACTER
  1388. NZ B4,GPV4 IF NOT EMPTY STRING
  1389. SA5 =1L0 SET DEFAULT VALUE
  1390. EQ GPV5
  1391.  
  1392. GPV2 SB6 B6+B1
  1393. SB5 10
  1394. SB5 B6-B5
  1395. NZ B5,GPV1 IF NOT END OF WORD
  1396. SA2 A2+B1 GET NEXT WORD
  1397. SB6 B0 RESET COUNTER
  1398. EQ GPV1
  1399.  
  1400. * ASSEMBLE PARAMETER.
  1401.  
  1402. GPV3 LX5 6 ADD CHARACTER TO ASSEMBLY
  1403. BX5 X6+X5
  1404. SB4 B4+1
  1405. EQ GPV2
  1406.  
  1407. GPV4 LX5 -6 LEFT JUSTIFY NUMBER
  1408. SB4 B4-B1
  1409. NZ B4,GPV4 IF NOT LEFT JUSTIFIED
  1410. GPV5 SA6 GPVA SAVE SEPARATOR
  1411. BX6 X2 SAVE CHARACTER LINE
  1412. SB7 B1 ASSUME DECIMAL
  1413. SA6 GPVB
  1414. RJ DXB DISPLAY CODE TO BINARY
  1415. ZR X4,GPV6 IF NO ERROR
  1416. MOVE 3,GPVC,MSGL *CONVERSION ERROR.*
  1417. MOVE 3,GPVC,MSGK
  1418. SX1 B0
  1419. EQ GPVX
  1420.  
  1421. * SET EXIT CONDITIONS.
  1422.  
  1423. GPV6 SA1 GPVA RESTORE SEPARATOR
  1424. SA3 GPVB RESTORE CHARACTER LINE
  1425. BX2 X3
  1426. SB6 B6+B1
  1427. SB5 B6-10
  1428. NZ B5,GPVX IF NOT END OF WORD
  1429. SA2 A2+B1 GET NEXT WORD
  1430. SB6 B0 RESET COUNTER
  1431. EQ GPVX
  1432.  
  1433. GPV7 MOVE 3,GPVD,MSGL *INCORRECT CHARACTER.*
  1434. MOVE 3,GPVD,MSGK
  1435. SX1 B0
  1436. EQ GPVX
  1437.  
  1438. GPVA BSSZ 1 SEPARATOR
  1439. GPVB BSSZ 1 CHARACTER LINE
  1440. GPVC DIS 3,CONVERSION ERROR.
  1441. BSSZ 1
  1442. GPVD DIS 3,INCORRECT CHARACTER.
  1443. BSSZ 1
  1444. RDR SPACE 4,20
  1445. ** RDR - READ REGISTER CONTENTS.
  1446. *
  1447. * ENTRY (X7) = ADDRESS OF DATA BUFFER.
  1448. * ACTUAL CONTENTS OF S/C REGISTER (OR INTERLOCK REGISTER)
  1449. * READ INTO BUFFER.
  1450. *
  1451. * EXIT (RDRB) = ADDRESS OF DATA BUFFER.
  1452. *
  1453. * USES X - 0, 1, 2, 5, 6, 7.
  1454. * B - 7.
  1455. * A - 0, 1, 6, 7.
  1456. *
  1457. * CALLS SSR.
  1458.  
  1459.  
  1460. RDR SUBR ENTRY/EXIT
  1461. SA7 RDRB SAVE BUFFER ADDRESS
  1462. SX6 B0+ SET READ FUNCTION
  1463. SA6 RDRA
  1464. RDR1 SA1 RDRB SET BUFFER ADDRESS
  1465. SA0 X1+
  1466. SA1 REGF
  1467. ZR X1,RDR2 IF CHANNEL 16
  1468.  
  1469. * READ CHANNEL 36 REGISTER CONTENTS.
  1470.  
  1471. MX7 1 SET CHANNEL 36 FLAG
  1472. LX6 12 MERGE IN FUNCTION REQUEST
  1473. BX7 X6+X7
  1474. SA7 PW36
  1475. RJ SSR SEND SYSTEM REQUEST
  1476. SA1 PW36 GET REPLY
  1477. MX0 -12
  1478. BX6 -X0*X1
  1479. EQ RDR3 SET VALUE IN HOLDING REGISTER
  1480.  
  1481. * READ CHANNEL 16 REGISTER CONTENTS.
  1482.  
  1483. RDR2 LX6 12 SET FUNCTION REQUEST
  1484. SA6 PW16
  1485. RJ SSR SEND SYSTEM REQUEST
  1486. SA1 PW16 GET REPLY
  1487. MX0 -12
  1488. BX6 -X0*X1
  1489.  
  1490. * SET VALUE IN HOLDING REGISTER.
  1491.  
  1492. RDR3 SX7 5
  1493. SA1 RDRA GET BYTE NUMBER
  1494. SX5 X1
  1495. IX7 X1/X7 WORD NUMBER
  1496. SB7 X7
  1497. SA0 A0+B7 SET WORD ADDRESS
  1498. SX1 5
  1499. IX7 X1*X7
  1500. IX1 X5-X7 BYTE ORDINAL IN WORD
  1501. SX5 12 FORM SHIFT COUNT
  1502. IX7 X1*X5
  1503. SB7 X7
  1504. SA1 A0 GET HOLDING WORD
  1505. MX0 48
  1506. BX6 -X0*X6
  1507. LX0 B7 FORM MASK
  1508. LX6 B7
  1509. BX7 X0*X1
  1510. BX7 X6+X7 INSERT VALUE
  1511. SA7 A0
  1512. SA1 RDRA INCREMENT BYTE NUMBER
  1513. SX6 X1+B1
  1514. SA6 A1
  1515. SX7 X6-17
  1516. NG X7,RDR1 IF NOT END OF REGISTER
  1517. EQ RDRX RETURN
  1518.  
  1519. RDRA CON 0 READ FUNCTION CODE
  1520. RDRB CON 0 DATA BUFFER ADDRESS
  1521. SSR SPACE 4,7
  1522. ** SSR - SEND SYSTEM REQUEST FOR CYCLE OR READ.
  1523. *
  1524. * EXIT SYSTEM REQUEST MADE.
  1525. *
  1526. * USES X - 1.
  1527. * A - 1.
  1528. *
  1529. * MACROS SYSTEM.
  1530.  
  1531.  
  1532. SSR SUBR ENTRY/EXIT
  1533. SA1 REGF
  1534. ZR X1,SSR1 IF CHANNEL 16
  1535.  
  1536. * SEND CHANNEL 36 CYCLE REQUEST.
  1537.  
  1538. SYSTEM HFM,R,PW36,100B
  1539. EQ SSRX RETURN
  1540.  
  1541. * SEND CHANNEL 16 CYCLE REQUEST.
  1542.  
  1543. SSR1 SYSTEM HFM,R,PW16,100B
  1544. EQ SSRX RETURN
  1545. TITLE DISPLAY SUBROUTINES.
  1546. DCR SPACE 4,20
  1547. ** DCR - DISPLAY CONTENTS OF S/C REGISTER.
  1548. *
  1549. * EXIT ACTUAL CONTENTS OF S/C REGISTER (OR INTERLOCK REGISTER)
  1550. * ON THE CURRENT CHANNEL DISPLAYED ON K-DISPLAY.
  1551. *
  1552. * USES X - 1, 2, 6.
  1553. * B - 2, 3, 4, 6.
  1554. * A - 2, 6.
  1555. *
  1556. * CALLS DYW.
  1557.  
  1558.  
  1559. DCR3 SA1 DCRB RESTORE PARAMETER WORDS
  1560. SA2 DCRB+1
  1561. BX6 X1
  1562. BX7 X2
  1563. SA6 PW16
  1564. SA7 PW36
  1565.  
  1566. DCR SUBR ENTRY/EXIT
  1567. SA1 PW16 SAVE PARAMETER WORDS
  1568. SA2 PW36
  1569. BX6 X1
  1570. BX7 X2
  1571. SA6 DCRB
  1572. SA7 DCRB+1
  1573. SX7 DCRA SET BUFFER ADDRESS
  1574. RJ RDR READ REGISTER CONTENTS
  1575. SA2 DCRA BUFFER ADDRESS
  1576. SB6 3
  1577. SB3 B0+
  1578. SB4 CH16-1 DISPLAY WORD ADDRESS - 1
  1579. SA1 REGF
  1580. ZR X1,DCR1 IF CHANNEL 16
  1581. SB4 CH36-1 SET CHANNEL 36 DISPLAY WORD ADDRESS - 1
  1582.  
  1583. * DISPLAY CONTENTS ON LEFT SCREEN.
  1584.  
  1585. DCR1 RJ DYW DISPLAY WORD
  1586. SA2 A2+B1 GET NEXT WORD
  1587. SB4 A7+ SAVE LAST ADDRESS
  1588. SB6 B6-B1
  1589. ZR B6,DCR2 IF END OF TRANSFER
  1590. SB3 B0+
  1591. EQ DCR1 DISPLAY NEXT WORD
  1592.  
  1593. DCR2 SB6 B1 SET ONE LINE
  1594. NG B3,DCR3 IF ENTIRE REGISTER DISPLAYED
  1595. SB3 -B1 SET SHORT LINE FLAG
  1596. SB4 B4+5
  1597. EQ DCR1 DISPLAY NEXT WORD
  1598.  
  1599. DCRA BSS 4 S/C REGISTER BUFFER
  1600. DCRB BSS 2 PARAMETER SAVE AREA
  1601. DOC SPACE 4,12
  1602. ** DOC - DISPLAY OCTAL WORD.
  1603. *
  1604. * ENTRY (X2) = WORD TO DISPLAY.
  1605. * (B4) = DISPLAY ADDRESS.
  1606. * (B3) = 0 DISPLAY WHOLE LINE.
  1607. * =-1 DISPLAY SHORTENED LINE.
  1608. *
  1609. * EXIT OCTAL VALUE DISPLAYED.
  1610. *
  1611. * USES X - 0, 1, 2, 3, 5, 6, 7.
  1612. * B - 4, 5, 7.
  1613. * A - 3, 7.
  1614.  
  1615.  
  1616. DOC SUBR ENTRY/EXIT
  1617. MX0 -12
  1618. MX5 -3
  1619. SB4 B4+4
  1620. SB5 5
  1621. ZR B3,DOC1 IF WHOLE LINE
  1622. SB5 2
  1623.  
  1624. * DISPLAY WORD IN BYTES.
  1625.  
  1626. DOC1 BX6 -X0*X2 GET BYTE
  1627. AX2 12
  1628. SB7 4
  1629. SX1 B0+ CLEAR ASSEMBLY
  1630. DOC2 BX7 -X5*X6 GET DIGIT
  1631. SX7 X7+1R0 CONVERT TO DISPLAY CODE
  1632. LX1 -6
  1633. BX1 X1+X7 ADD TO ASSEMBLY
  1634. AX6 3
  1635. SB7 B7-B1
  1636. NZ B7,DOC2 IF NOT ENTIRE BYTE
  1637. LX1 18
  1638. SA3 B4 GET DISPLAY WORD
  1639. MX7 36
  1640. BX3 X7*X3
  1641. BX7 X1+X3 ADD TO DISPLAY WORD
  1642. SA7 A3
  1643. SB4 B4-B1
  1644. SB5 B5-B1
  1645. NZ B5,DOC1 IF NOT ENTIRE LINE DISPLAYED
  1646. EQ DOCX
  1647. DYL SPACE 4,11
  1648. ** DYL - DISPLAY LINE IN HOLDING REGISTER.
  1649. *
  1650. * ENTRY (A0) = WORD ADDRESS.
  1651. *
  1652. * EXIT WORD DISPLAYED AS LINE ON *K* DISPLAY.
  1653. *
  1654. * USES X - 2, 5, 6, 7.
  1655. * B - 3, 4.
  1656. * A - 2.
  1657. *
  1658. * CALLS DYW, DOC.
  1659.  
  1660.  
  1661. DYL SUBR ENTRY/EXIT
  1662. SX7 A0-LHLD
  1663. SX6 LL00
  1664. PL X7,DYL1 IF CHANNEL 36 REGISTER
  1665. SX7 A0-UHLD
  1666. SX6 UL00
  1667.  
  1668. * DISPLAY BINARY VALUE.
  1669.  
  1670. DYL1 SX5 12 DISPLAY WORDS PER LINE
  1671. IX5 X7*X5
  1672. IX6 X6+X5 STARTING DISPLAY ADDRESS
  1673. SB4 X6-1
  1674. SA2 A0 HOLDING REGISTER WORD ADDRESS
  1675. SB3 B0
  1676. SX7 X7-3
  1677. NZ X7,DYL2 IF FULL LINE
  1678. SB3 -B1 SET SHORT LINE FLAG
  1679. SB4 B4+5
  1680. DYL2 RJ DYW DISPLAY WORD
  1681.  
  1682. * DISPLAY OCTAL VALUE.
  1683.  
  1684. SX7 A0-LHLD
  1685. SX6 LOC0
  1686. PL X7,DYL3 IF CHANNEL 36 REGISTER
  1687. SX7 A0-UHLD
  1688. SX6 UOC0
  1689. DYL3 SX5 5 DISPLAY WORDS PER LINE
  1690. IX5 X7*X5
  1691. IX6 X6+X5 STARTING DISPLAY ADDRESS
  1692. SB4 X6
  1693. SA2 A0 HOLDING REGISTER WORD ADDRESS
  1694. SB3 B0
  1695. SX7 X7-3
  1696. NZ X7,DYL4 IF FULL LINE
  1697. SB3 -B1 SET SHORT LINE FLAG
  1698. DYL4 RJ DOC DISPLAY OCTAL WORD
  1699. EQ DYLX
  1700. DYW SPACE 4,15
  1701. ** DYW - DISPLAY WORD.
  1702. *
  1703. * ENTRY (X2) = WORD TO DISPLAY.
  1704. * (B4) = DISPLAY ADDRESS - 1.
  1705. * (B3) = 0 DISPLAY WHOLE LINE.
  1706. * =-1 DISPLAY SHORTENED LINE.
  1707. *
  1708. * EXIT (A7) = LAST DISPLAY ADDRESS.
  1709. * WORD DISPLAYED ON *K* DISPLAY.
  1710. *
  1711. * USES X - 0, 1, 2, 3, 5, 6, 7.
  1712. * B - 3, 4.
  1713. * A - 5, 6, 7.
  1714. *
  1715. * CALLS CDC.
  1716.  
  1717.  
  1718. DYW SUBR ENTRY/EXIT
  1719. ZR B3,DYW1 IF WHOLE WORD
  1720. LX2 36
  1721.  
  1722. * DISPLAY BITS 59 - 54 OF FULL WORD FIRST TIME,
  1723. * BITS 23 - 18 SECOND TIME, OR SHORT WORD FIRST TIME.
  1724.  
  1725. DYW1 MX0 6
  1726. BX1 X0*X2 GET SIX BITS FOR FIRST WORD
  1727. LX1 6
  1728. RJ CDC CONVERT TO DISPLAY CODE
  1729. MX0 -36
  1730. BX6 -X0*X6
  1731. SA5 B4+B1
  1732. BX7 X0*X5
  1733. BX7 X6+X7
  1734. SA7 A5 SAVE FIRST WORD
  1735.  
  1736. * DISPLAY BITS 53 - 45 OF FULL WORD FIRST TIME,
  1737. * BITS 17 - 9 SECOND TIME, OR SHORT WORD FIRST TIME.
  1738.  
  1739. LX2 6
  1740. MX0 9
  1741. BX1 X0*X2 GET NINE BITS FOR SECOND WORD
  1742. LX1 9
  1743. RJ CDC CONVERT TO DISPLAY CODE
  1744. MX0 36
  1745. LX0 -6
  1746. BX3 X0*X6
  1747. LX3 6
  1748. SX5 1R
  1749. LX5 18
  1750. BX3 X3+X5 INSERT BLANK
  1751. MX0 -18
  1752. BX6 -X0*X6
  1753. BX7 X3+X6
  1754. SA7 A7+B1 SAVE SECOND WORD
  1755.  
  1756. * DISPLAY BITS 44 - 36 OF FULL WORD FIRST TIME,
  1757. * BITS 8 - 0 SECOND TIME, OR SHORT WORD FIRST TIME.
  1758.  
  1759. LX2 9
  1760. MX0 9
  1761. BX1 X0*X2 GET NINE BITS FOR THIRD WORD
  1762. LX1 9
  1763. RJ CDC CONVERT TO DISPLAY CODE
  1764. MX0 -54
  1765. BX6 -X0*X6
  1766. SX5 1R
  1767. LX6 6 LEFT JUSTIFY
  1768. BX7 X6+X5 INSERT BLANK
  1769. SA7 A7+B1 SAVE THIRD WORD
  1770. LX2 9
  1771. NZ B3,DYWX IF END OF WORD
  1772.  
  1773. * DISPLAY BITS 35 - 26 OF WORD.
  1774.  
  1775. MX0 10
  1776. BX1 X0*X2 GET TEN BITS FOR FOURTH WORD
  1777. LX1 10
  1778. RJ CDC CONVERT TO DISPLAY CODE
  1779. SA6 A7+B1 SAVE FOURTH WORD
  1780.  
  1781. * DISPLAY BITS 25 - 24.
  1782.  
  1783. LX2 10
  1784. MX0 2
  1785. BX1 X0*X2 GET TWO BITS FOR FIFTH WORD
  1786. LX1 2
  1787. RJ CDC CONVERT TO DISPLAY CODE
  1788. MX0 -12
  1789. BX6 -X0*X6
  1790. LX6 48 LEFT JUSTIFY
  1791. SA5 A6+B1
  1792. MX0 -48
  1793. BX7 -X0*X5 SAVE LOWER FIFTH WORD
  1794. BX7 X6+X7
  1795. SA7 A5 SAVE FIFTH WORD
  1796. LX2 2
  1797. SB4 A7 SET LAST ADDRESS
  1798. SB3 B1+
  1799. EQ DYW1
  1800. TITLE DISPLAY BUFFER LINE NUMBER TABLES.
  1801. * LEFT SCREEN LINE NUMBER TABLE.
  1802.  
  1803.  
  1804. BLNT BSS 0
  1805. LOC 0
  1806. BSS 6
  1807. LHDR BSS 1 LEFT SCREEN HEADER
  1808. BSS 1
  1809. C16H BSS 1 HOLDING REGISTER HEADER
  1810. BSS 3
  1811. UB00 BSS 1 BYTE 0 HEADER
  1812. U04L BSS 1 BYTES 0-4 BINARY
  1813. OC00 BSS 1 BYTES 0-4 OCTAL
  1814. BSS 2
  1815. UB05 BSS 1 BYTE 5 HEADER
  1816. U09L BSS 1 BYTES 5-9 BINARY
  1817. OC05 BSS 1 BYTES 5-9 OCTAL
  1818. BSS 2
  1819. UB10 BSS 1 BYTE 10 HEADER
  1820. U14L BSS 1 BYTES 10-14 BINARY
  1821. OC10 BSS 1 BYTES 10-14 OCTAL
  1822. BSS 2
  1823. UB15 BSS 1 BYTE 15 HEADER
  1824. U16L BSS 1 BYTES 15-16 BINARY
  1825. OC15 BSS 1 BYTES 15-16 OCTAL
  1826. BSS 2
  1827. CNAL BSS 1 CHANNEL 36 NOT AVAILABLE MESSAGE LINE
  1828. BSS 1
  1829. PARM BSS 1 INPUT COMMAND LINE
  1830. MSGE BSS 1 ERROR MESSAGE LINE
  1831. BSS 2
  1832. ACTH BSS 1 S/C REGISTER HEADER
  1833. BSS 1
  1834. AC16 BSS 1 CHANNEL NUMBER LINE
  1835. W113 BSS 1 BYTES 4 - 0 S/C REGISTER
  1836. W114 BSS 1 BYTES 9 - 5 S/C REGISTER
  1837. W115 BSS 1 BYTES 14 - 10 S/C REGISTER
  1838. W116 BSS 1 BYTES 16 - 15 S/C REGISTER
  1839. ELNT EQU *
  1840. ERRNG 48-ELNT IF TOO MANY DISPLAY LINES
  1841. LOC *O
  1842. ORG BLNT
  1843. SPACE 4
  1844. * RIGHT SCREEN LINE NUMBER TABLE.
  1845.  
  1846.  
  1847. BRNT BSS 0
  1848. LOC 0
  1849. BSS 6
  1850. RHDR BSS 1 RIGHT SCREEN HEADER
  1851. BSS 1
  1852. PHDL BSS 1 COMMAND DESCRIPTION HEADER LINE
  1853. BSS 1
  1854. AREL BSS 1 AREA COMMAND
  1855. BSS 1
  1856. BYTL BSS 1 BYTE COMMAND
  1857. BSS 1
  1858. CLRL BSS 1 CLEAR COMMAND
  1859. BSS 1
  1860. CYCL BSS 1 CYCLE COMMAND
  1861. BSS 1
  1862. ENDL BSS 1 END COMMAND
  1863. BSS 1
  1864. LINL BSS 1 LINE COMMAND
  1865. BSS 1
  1866. REAL BSS 1 READ COMMAND
  1867. BSS 1
  1868. SETL BSS 1 SET COMMAND
  1869. BSS 3
  1870. PLUL BSS 1 + COMMAND
  1871. BSS 3
  1872. GOLL BSS 1 GO COMMAND
  1873. BSS 1
  1874. STOL BSS 1 STOP COMMAND
  1875. BSS 5
  1876. DECL BSS 1 DECIMAL BASE ASSUMED ON ARGUMENTS
  1877. SECL BSS 1 EXCLUDING OCTAL VALUES
  1878. VALL BSS 1 OCTAL VALUES LINE
  1879. ERNT EQU *
  1880. ERRNG 48-ERNT IF TOO MANY DISPLAY LINES
  1881. LOC *O
  1882. ORG BRNT
  1883. TITLE DISPLAY BUFFER.
  1884. * *K* DISPLAY LEFT SCREEN.
  1885.  
  1886.  
  1887. L. EQU *
  1888. L16 VFD 12/0,36/0,12/2 DISPLAY CONTROL WORD
  1889.  
  1890. DSL 15,LHDR,(TEMPORARY HOLDING REGISTER CONTENTS)
  1891. DSL 15,LHDR,(TEMPORARY HOLDING REGISTER CONTENTS)
  1892. DSL 8,C16H,(CHANNEL 16 REGISTER - LINES 0-3)
  1893. DSL 8,C16H,(CHANNEL 16 REGISTER - LINES 0-3)
  1894.  
  1895. * BINARY DISPLAY OF CHANNEL 16 HOLDING REGISTER CONTENTS.
  1896.  
  1897. DSL 0,UB00,(BITS 59- 0)
  1898. DSL 55,UB00,(BYTE 00)
  1899. UL00 EQU *
  1900. DSL 0,U04L,(000000000000 000000000000 000000000000 )
  1901. DSL 39,U04L,(000000000000 000000000000)
  1902. DSL 0,UB05,(BITS 119- 60)
  1903. DSL 55,UB05,(BYTE 05)
  1904. DSL 0,U09L,(000000000000 000000000000 000000000000 )
  1905. DSL 39,U09L,(000000000000 000000000000)
  1906. DSL 0,UB10,(BITS 179-120)
  1907. DSL 55,UB10,(BYTE 10)
  1908. DSL 0,U14L,(000000000000 000000000000 000000000000 )
  1909. DSL 39,U14L,(000000000000 000000000000)
  1910. DSL 0,UB15,(BITS 203-180)
  1911. DSL 55,UB15,(BYTE 15)
  1912. DSL 0,U16L,( )
  1913. DSL 39,U16L,(000000000000 000000000000)
  1914.  
  1915. * OCTAL DISPLAY OF CHANNEL 16 HOLDING REGISTER CONTENTS.
  1916.  
  1917. UOC0 EQU *
  1918. DSL 2,OC00,( 0000)
  1919. DSL 15,OC00,( 0000)
  1920. DSL 28,OC00,( 0000)
  1921. DSL 41,OC00,( 0000)
  1922. DSL 54,OC00,( 0000)
  1923. DSL 2,OC05,( 0000)
  1924. DSL 15,OC05,( 0000)
  1925. DSL 28,OC05,( 0000)
  1926. DSL 41,OC05,( 0000)
  1927. DSL 54,OC05,( 0000)
  1928. DSL 2,OC10,( 0000)
  1929. DSL 15,OC10,( 0000)
  1930. DSL 28,OC10,( 0000)
  1931. DSL 41,OC10,( 0000)
  1932. DSL 54,OC10,( 0000)
  1933. DSL 2,OC15,( )
  1934. DSL 15,OC15,( )
  1935. DSL 28,OC15,( )
  1936. DSL 41,OC15,( 0000)
  1937. DSL 54,OC15,( 0000)
  1938.  
  1939. * CHANNEL 36 NOT AVAILABLE MESSAGE AREA.
  1940.  
  1941. CNAW EQU *+1
  1942. DSL 15,CNAL,( )
  1943.  
  1944. * INPUT COMMAND AND ERROR MESSAGE AREA.
  1945.  
  1946. PARL EQU *+1
  1947. DSL 2,PARM,( )
  1948. DSL 48,PARM,( )
  1949. MSGL EQU *+1
  1950. DSL 10,MSGE,( )
  1951. DSL 18,ACTH,(ACTUAL S/C REGISTER CONTENTS)
  1952. DSL 22,AC16,(CHANNEL 16 REGISTER)
  1953.  
  1954. * BINARY DISPLAY OF CHANNEL 16 S/C REGISTER CONTENTS.
  1955.  
  1956. CH16 EQU *
  1957. DSL 0,W113,(000000000000 000000000000 000000000000 )
  1958. DSL 39,W113,(000000000000 000000000000)
  1959. DSL 0,W114,(000000000000 000000000000 000000000000 )
  1960. DSL 39,W114,(000000000000 000000000000)
  1961. DSL 0,W115,(000000000000 000000000000 000000000000 )
  1962. DSL 39,W115,(000000000000 000000000000)
  1963. DSL 0,W116,( )
  1964. DSL 39,W116,(000000000000 000000000000)
  1965. BSSZ 1
  1966. SPACE 4
  1967. M. EQU *
  1968. L36 VFD 12/0,36/0,12/2 DISPLAY CONTROL WORD
  1969.  
  1970. DSL 15,LHDR,(TEMPORARY HOLDING REGISTER CONTENTS)
  1971. DSL 15,LHDR,(TEMPORARY HOLDING REGISTER CONTENTS)
  1972. DSL 8,C16H,(CHANNEL 36 REGISTER - LINES 0-3)
  1973. DSL 8,C16H,(CHANNEL 36 REGISTER - LINES 0-3)
  1974.  
  1975. * BINARY DISPLAY OF CHANNEL 36 HOLDING REGISTER CONTENTS.
  1976.  
  1977. DSL 0,UB00,(BITS 59- 0)
  1978. DSL 55,UB00,(BYTE 00)
  1979. LL00 EQU *
  1980. DSL 0,U04L,(000000000000 000000000000 000000000000 )
  1981. DSL 39,U04L,(000000000000 000000000000)
  1982. DSL 0,UB05,(BITS 119- 60)
  1983. DSL 55,UB05,(BYTE 05)
  1984. DSL 0,U09L,(000000000000 000000000000 000000000000 )
  1985. DSL 39,U09L,(000000000000 000000000000)
  1986. DSL 0,UB10,(BITS 179-120)
  1987. DSL 55,UB10,(BYTE 10)
  1988. DSL 0,U14L,(000000000000 000000000000 000000000000 )
  1989. DSL 39,U14L,(000000000000 000000000000)
  1990. DSL 0,UB15,(BITS 203-180)
  1991. DSL 55,UB15,(BYTE 15)
  1992. DSL 0,U16L,( )
  1993. DSL 39,U16L,(000000000000 000000000000)
  1994.  
  1995. * OCTAL DISPLAY OF CHANNEL 36 HOLDING REGISTER CONTENTS.
  1996.  
  1997. LOC0 EQU *
  1998. DSL 2,OC00,( 0000)
  1999. DSL 15,OC00,( 0000)
  2000. DSL 28,OC00,( 0000)
  2001. DSL 41,OC00,( 0000)
  2002. DSL 54,OC00,( 0000)
  2003. DSL 2,OC05,( 0000)
  2004. DSL 15,OC05,( 0000)
  2005. DSL 28,OC05,( 0000)
  2006. DSL 41,OC05,( 0000)
  2007. DSL 54,OC05,( 0000)
  2008. DSL 2,OC10,( 0000)
  2009. DSL 15,OC10,( 0000)
  2010. DSL 28,OC10,( 0000)
  2011. DSL 41,OC10,( 0000)
  2012. DSL 54,OC10,( 0000)
  2013. DSL 2,OC15,( )
  2014. DSL 15,OC15,( )
  2015. DSL 28,OC15,( )
  2016. DSL 41,OC15,( 0000)
  2017. DSL 54,OC15,( 0000)
  2018.  
  2019. * INPUT COMMAND AND ERROR MESSAGE AREA.
  2020.  
  2021. PARK EQU *+1
  2022. DSL 2,PARM,( )
  2023. DSL 48,PARM,( )
  2024. MSGK EQU *+1
  2025. DSL 10,MSGE,( )
  2026. DSL 18,ACTH,(ACTUAL S/C REGISTER CONTENTS)
  2027. DSL 22,AC16,(CHANNEL 36 REGISTER)
  2028.  
  2029. * BINARY DISPLAY OF CHANNEL 36 S/C REGISTER CONTENTS.
  2030.  
  2031. CH36 EQU *
  2032. DSL 0,W113,(000000000000 000000000000 000000000000 )
  2033. DSL 39,W113,(000000000000 000000000000)
  2034. DSL 0,W114,(000000000000 000000000000 000000000000 )
  2035. DSL 39,W114,(000000000000 000000000000)
  2036. DSL 0,W115,(000000000000 000000000000 000000000000 )
  2037. DSL 39,W115,(000000000000 000000000000)
  2038. DSL 0,W116,( )
  2039. DSL 39,W116,(000000000000 000000000000)
  2040. BSSZ 1
  2041. SPACE 4
  2042. * *K* DISPLAY RIGHT SCREEN.
  2043.  
  2044.  
  2045. R. EQU *
  2046. R VFD 12/0,36/0,12/2 DISPLAY CONTROL WORD
  2047.  
  2048. DSL 23,RHDR,(SIMULATOR COMMANDS)
  2049. DSL 8,PHDL,(COMMAND)
  2050. DSL 34,PHDL,(DESCRIPTION)
  2051. DSL 0,AREL,(AREA,A,M,Y.)
  2052. DSL 24,AREL,(SET M BITS FROM A TO OCTAL VALUE Y)
  2053. DSL 0,BYTL,(BYTE,XX,YYYY.)
  2054. DSL 24,BYTL,(SET BYTE XX TO OCTAL VALUE YYYY)
  2055. DSL 0,CLRL,(CLEAR,A,B,...,Z.)
  2056. DSL 24,CLRL,(CLEAR BITS A,B,...,Z)
  2057. DSL 0,CYCL,(CYCLE,X,T,R.)
  2058. DSL 24,CYCL,(SET BIT X EVERY 16*T MS. R TIMES)
  2059. DSL 0,ENDL,(END.)
  2060. DSL 24,ENDL,(END CYCLE COMMAND BEFORE R REACHED)
  2061. DSL 0,LINL,(LINE,X,Y.)
  2062. DSL 24,LINL,(SET LINE X TO OCTAL VALUE Y)
  2063. DSL 0,REAL,(READ.)
  2064. DSL 24,REAL,(READ S/C REGISTER INTO HOLDING REGISTER)
  2065. DSL 0,SETL,(SET,A,B,...,Z.)
  2066. DSL 24,SETL,(SET BITS A,B,...,Z)
  2067. DSL 0,PLUL,(+.)
  2068. DSL 24,PLUL,(CHANGE REGISTER BEING USED AND K DISPLAY)
  2069. DSL 0,GOLL,(GO.)
  2070. DSL 24,GOLL,(ENTER HOLDING REGISTERS IN S/C REGISTERS)
  2071. DSL 0,STOL,(STOP.)
  2072. DSL 24,STOL,(END THE SIMULATOR)
  2073. DSL 0,DECL,(ALL BIT, BYTE, AND LINE NUMBERS ASSUMED )
  2074. DSL 40,DECL,(DECIMAL.)
  2075. DSL 0,SECL,(TIME VALUES ASSUMED DECIMAL)
  2076. DSL 0,VALL,(Y AND YYYY VALUES MUST BE OCTAL.)
  2077. BSSZ 1
  2078. SPACE 4
  2079. * COMMON DECKS.
  2080.  
  2081. *CALL COMCCIO
  2082. *CALL COMCCOD
  2083. *CALL COMCCPM
  2084. *CALL COMCDXB
  2085. *CALL COMCMVE
  2086. *CALL COMCRDC
  2087. *CALL COMCRDW
  2088. *CALL COMCSYS
  2089.  
  2090.  
  2091. USE LITERALS
  2092. SPACE 4
  2093. * BUFFERS.
  2094.  
  2095.  
  2096. IBUF EQU * FET INPUT BUFFER
  2097. OBUF EQU IBUF+IBUFL OUTPUT BUFFER
  2098. RFL= EQU OBUF+OBUFL+100B
  2099. PRS TITLE PRESET.
  2100. ** PRS - PRESET.
  2101. *
  2102. * EXIT (CA) = 1 IF CHANNEL 36 NOT AVAILABLE.
  2103. * *K* DISPLAY INITIALIZED.
  2104. *
  2105. * USES X - 0, 1, 2, 6, 7.
  2106. * A - 1, 2, 6.
  2107.  
  2108.  
  2109. PRS SUBR ENTRY/EXIT
  2110.  
  2111. * CHECK CYBER 170 BIT AND NUMBER OF PP-S.
  2112.  
  2113. SYSTEM RSB,R,PRSE
  2114. SA1 PRSD CMR WORD *MABL*
  2115. LX1 59-43
  2116. LX2 X1,B1
  2117. PL X1,PRS0 IF CYBER 70 INTERLOCK REGISTER
  2118. NG X2,PRS3 IF NOT CYBER 170 STATUS CONTROL REGISTER
  2119. PRS0 SYSTEM RSB,R,PRSC
  2120. SA1 PRSB CMR WORD *PPUL*
  2121. AX1 24
  2122. MX0 -12
  2123. BX1 -X0*X1 NUMBER OF PP-S
  2124. SX6 11
  2125. IX6 X1-X6
  2126. PL X6,PRS2 IF CHANNEL 36 AVAILABLE
  2127. PRS1 SX6 B1+ SET CHANNEL 36 NOT AVAILABLE
  2128. SA6 CA
  2129. MOVE 3,PRSA,CNAW *CHANNEL 36 NOT AVAILABLE*
  2130.  
  2131. * INITIALIZE *K* DISPLAY.
  2132.  
  2133. PRS2 CONSOLE K INITIALIZE *K* DISPLAY
  2134. EQ PRSX RETURN
  2135.  
  2136. PRS3 MESSAGE PRSF,0,R * NO SCR ON MAINFRAME.*
  2137. ABORT TERMINATE PROGRAM
  2138.  
  2139.  
  2140. PRSA DIS 3,CHANNEL 36 NOT AVAILABLE
  2141. BSSZ 1
  2142. PRSB VFD 1/1,59/0
  2143. PRSC VFD 24/1,18/PPUL,18/PRSB RSB CONTROL WORD
  2144. PRSD VFD 1/1,59/0
  2145. PRSE VFD 24/1,18/MABL,18/PRSD RSB CONTROL WORD
  2146. PRSF DATA C* NO SCR ON MAINFRAME.*
  2147. SPACE 4
  2148. END
cdc/nos2.source/opl871/scrsim.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator