User Tools

Site Tools


cdc:nos2.source:opl871:stimula

STIMULA

Table Of Contents

  • [00011] STIMULA - INTERACTIVE TERMINAL STIMULATOR.
  • [00013] LOW SPEED INTERACTIVE TERMINAL STIMULATOR.
  • [00372] MACRO DEFINITIONS.
  • [00374] ASCO - GENERATE MULTIPLEXER OUTPUT FOR *ASCII* CODE.
  • [00390] OTASC - GENERATE *ASCII* OUTPUT TRANSLATION TABLE ENTRY.
  • [00421] PACK - GENERATE CODE TO PACK TEXT INTO BUFFER.
  • [00475] PARAM - GENERATE PARAMETER TABLE ENTRY.
  • [00495] PAR - GENERATE CHARACTER PARITY BIT.
  • [00513] MANAGED TABLES.
  • [00520] TSCR - SCRATCH TABLE.
  • [00531] TTER - TERMINAL TABLE.
  • [00596] TSTX - SESSION TEXT.
  • [00623] TASK - TASK TABLE.
  • [00638] TSPT - SESSION POINTERS.
  • [00655] FET DEFINITIONS.
  • [00672] PARAMETERS.
  • [00718] WORKING STORAGE.
  • [00739] MAIN PROGRAM.
  • [00740] MAIN PROGRAM.
  • [00791] BEGIN STIMULATION.
  • [00793] BSM - BEGIN STIMULATION.
  • [00919] INITIALIZE STIMULATION TABLES.
  • [00921] IOR - INITIALIZE OUTPUT RECOVERY.
  • [01006] ICT - INITIALIZE CONTROL TABLE.
  • [01050] ITT - INITIALIZE TERMINAL TABLE.
  • [01072] SSA - SET SESSION ADDRESSES.
  • [01234] STA - SET TASK ADDRESSES.
  • [01267] OUTPUT RECOVERY ROUTINES.
  • [01277] RCO - RECOVER OUTPUT.
  • [01360] COF - COMPLETE OUTPUT FILES.
  • [01419] DAD - DUMP ACCOUNT DAYFILE.
  • [01447] GBT - GET BEST TASK.
  • [01526] OTD - OUTPUT TASK DATA.
  • [01678] PES - PROCESS END OF STIMULATION.
  • [01730] K-DISPLAY INPUT PROCESSOR ROUTINES.
  • [01732] ABT - ABORT JOB.
  • [01745] KBI - PROCESS KEYBOARD INPUT.
  • [01886] KFE - ISSUE FORMAT ERROR MESSAGE.
  • [01891] KMS - PROCESS KEYBOARD MESSAGE.
  • [01909] KNF - IMPROPER NUMERIC PARAMETER.
  • [01915] PSP - PRESET PARAMETERS.
  • [01961] TOV - PROCESS TABLE OVERFLOW.
  • [01991] REQUEST FILE PARAMETERS.
  • [01993] RSF - REQUEST SESSION FILE.
  • [02056] SFC - SET FILE COUNT.
  • [02083] SSF - SET SESSION FILE NAME.
  • [02104] SUI - SET USER INDEX.
  • [02129] REQUEST SESSION PARAMETERS.
  • [02131] RSP - REQUEST SESSION PARAMETERS.
  • [02155] SAC - SET ACTIVATION COUNT.
  • [02185] SAD - SET ACTIVATION DELAY.
  • [02212] SLS - SET LINE SPEED.
  • [02239] SIS - SET INPUT SPEED.
  • [02266] SLD - SET LOGOUT DELAY.
  • [02291] SNT - SET NUMBER OF TERMINALS.
  • [02335] SRC - SET REPEAT COUNT.
  • [02361] SRO - SET RECOVER OUTPUT.
  • [02385] STT - SET THINK TIME.
  • [02411] SLF - SET LOOP FLAG.
  • [02435] TTI - SET THINK TIME INCREMENT.
  • [02466] PROCESS MIXED MODE PARAMETERS.
  • [02468] RMP - REQUEST MIXED MODE INPUT.
  • [02504] MXD - MIXED PARAMETER INITIAL SETUP.
  • [02572] DMX - DISPLAY MATRIX.
  • [02630] SCF - SET CHANGE FILE.
  • [02699] MXP - MIXED INPUT PROCESSOR.
  • [02713] MXP - MIXED MODE PROCESSOR.
  • [02822] MMP - MIXED MODE PROCESSOR.
  • [02873] TARG - TABLE OF ARGUMENTS.
  • [02893] CLR - CLEAR MATRIX DISPLAY.
  • [02922] MNS - PAGE MATRIX DISPLAY BACKWARDS.
  • [02946] PLS - PAGE MATRIX DISPLAY FORWARD.
  • [02971] SDL - SET DISPLAY LINE.
  • [03025] TRANSLATE SESSION FILE.
  • [03027] SFE - SESSION FILE ERROR.
  • [03049] TSF - TRANSLATE SESSION FILE.
  • [03256] PCL - PROCESS COLON.
  • [03263] CRT - CARRIAGE RETURN.
  • [03277] EOL - END OF LINE.
  • [03300] PXO - PROCESS XOFF.
  • [03311] EOS - PROCESS END OF SESSION.
  • [03353] SUBROUTINES.
  • [03355] CTC - CHECK ASSIGNED TERMINAL COUNT.
  • [03384] OPR - OUTPUT PARAMETERS.
  • [03412] WMD - WRITE MATRIX DISPLAY TO OUTPUT.
  • [03494] K-DISPLAY BUFFERS - FILE PARAMETER DISPLAY.
  • [03515] K-DISPLAY BUFFERS - SESSION PARAMETER DISPLAY.
  • [03579] K-DISPLAY BUFFERS - MIXED MODE DISPLAY.
  • [03641] TRANSLATION TABLES.
  • [03724] BUFFER DEFINITIONS.
  • [03790] PRESET ROUTINE.
  • [03792] PRS - PRESET PROGRAM.
  • [03879] PRSB - TABLE OF COMMAND ARGUMENT OPTIONS.

Source Code

STIMULA.txt
  1. IDENT STIMULA,TABLES
  2. ABS
  3. ENTRY STIMULA
  4. ENTRY RFL=
  5. ENTRY SSJ=
  6. SST
  7. SYSCOM B1 DEFINE (B1) = 1
  8. QUAL$ EQU 1 DEFINE INTERNAL QUALIFICATION
  9. *COMMENT STIMULA - INTERACTIVE STIMULATOR.
  10. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  11. TITLE STIMULA - INTERACTIVE TERMINAL STIMULATOR.
  12. SPACE 4,10
  13. *** STIMULA - LOW SPEED INTERACTIVE TERMINAL STIMULATOR.
  14. * G. R. MANSFIELD. 72/08/10.
  15. * R. A. JAPS. 78/05/10.
  16. SPACE 4,10
  17. *** THE COMMAND.
  18. *
  19. * STIMULA(I=LFN)
  20. *
  21. * *STIMULA* IS USED FOR INTERNAL STIMULATION OF *IAF*.
  22. * REFER TO THE EXTERNAL DOCUMENTATION OF *1TS* FOR
  23. * FURTHER INFORMATION ON THE TYPES OF STIMULATION POSSIBLE.
  24. *
  25. * I SESSION FILE NAME. IF SPECIFIED, LFN MUST BE LOCAL
  26. * TO THE CONTROL POINT.
  27. SPACE 4,10
  28. *** SESSION FILE FORMAT.
  29. *
  30. * A SESSION FILE IS AN INDIRECT ACCESS PERMANENT FILE THAT
  31. * CONTAINS THE INTERACTIVE JOB LOAD THAT IS TO BE ANALYZED
  32. * BY THE STIMULATOR. A SESSION FILE CONSISTS OF A GROUP OF
  33. * RECORDS, EACH RECORD IS A SESSION AND CONTAINS A
  34. * INTERACTIVE JOB. NOTE THE FOLLOWING REQUIREMENTS -
  35. *
  36. * 1. EACH SESSION RECORD BEGINS WITH THE ENTRY *ANSWERBAC*.
  37. *
  38. * 2. AFTER *ANSWERBAC*, ENTER FAMILY NAME, USER NAME, AND
  39. * PASSWORD TO BE USED FOR LOGIN.
  40. *
  41. * 3. ENTER EACH SESSION ENTRY ON A SEPARATE COMMAND.
  42. *
  43. * 4. END EACH SESSION WITH A *BYE* SO THAT LOGIN OF THE NEXT
  44. * SESSION IS PERFORMED CORRECTLY.
  45. SPACE 4,10
  46. *** TASK USAGE.
  47. *
  48. * A *TASK* IS DEFINED AS A PREDEFINED SET OF INTERACTIVE
  49. * COMMANDS TO WHICH IS ATTACHED A FREQUENCY OF USE
  50. * PARAMETER. TASKS ARE DEFINED IN THE SESSION FILE
  51. * AS A SEPARATE RECORD FOLLOWING THE SESSION RECORDS.
  52. * TASK DEFINITIONS ARE PERMITTED AFTER THE SESSION
  53. * DEFINITIONS ONLY. TASKS SHOULD BE DEFINED IN INDESCENDING
  54. * ORDER OF USE. NOTE THE FOLLOWING REQUIREMENTS -
  55. *
  56. * 1. THE FIRST COMMAND SHOULD BE OF THE FORMAT -
  57. *
  58. * $TASK NNN
  59. *
  60. * WHERE
  61. * $ (DOLLAR SIGN) DENOTES BEGINNING OF A NEW TASK
  62. * DEFINITION.
  63. * TASK 1 TO 6 CHARACTER ALPHANUMERIC TASK NAME.
  64. * NNN DENOTES A DESIRED TASK USAGE PERCENTAGE. THE TOTAL
  65. * PERCENTAGES MUST EQUAL 100.
  66. *
  67. * 2. TO CALL A TASK, INSERT A DISPLAY CODE 70 CHARACTER
  68. * INTO THE INTERACTIVE SCRIPT. MULTIPLE SCRIPT CALLS
  69. * ARE PERMITTED PER INPUT COMMAND BUT MUST BE
  70. * TERMINATED BY A *CR*.
  71. *
  72. * 3. THE LAST CHARACTER OF A TASK MUST BE A DISPLAY CODE
  73. * 71. THIS WILL RETURN CONTROL TO THE CALLING SCRIPT.
  74. *
  75. * 4. THE NEXT BEST TASK IS DETERMINED BY THE FOLLOWING
  76. * ALGORITHM -
  77. *
  78. * WHERE
  79. * NBT = TI / (TATI * DP)
  80. *
  81. * NBT NEXT BEST TASK
  82. * TI TOTAL INITIATIONS OF TASK
  83. * TATI TOTAL OF ALL TASK INITIATIONS
  84. * DP DESIRED PERCENTAGE OF TASK
  85. *
  86. * THE TASK WITH THE MINIMUM NBT VALUE IS DEFINED TO BE THE
  87. * NEXT BEST TASK.
  88. SPACE 4,10
  89. *** OPTIONAL THINK TIME SPECIFICATION.
  90. *
  91. * A RANDOM THINK TIME MAY BE ENTERED WITH A SCRIPT COMMAND.
  92. * THE FORMAT IS -
  93. *
  94. * *XXX OR **
  95. *
  96. * WHERE
  97. * * DENOTES SPECIAL CHARACTER (DISPLAY CODE 75).
  98. *
  99. * XXX OCTAL THINK TIME. MAXIMUM VALUE ALLOWED IS 177B.
  100. *
  101. * ** RETURN TO INITIAL THINK TIME.
  102. SPACE 4,10
  103. *** DYNAMIC LOGIN SPECIFICATION.
  104. *
  105. * A SCRIPT RECORD MAY BE GENERATED WITH A UNIQUE USER NAME
  106. * AND PASSWORD WHICH WILL BE DYNAMICALLY TRANSLATED INTO A
  107. * UNIQUE USER NAME, PASSWORD AT RUN TIME. THE FORMAT IS AS
  108. * FOLLOWS -
  109. *
  110. * X*** OR X***,Y***
  111. *
  112. * WHERE
  113. * X 1 TO 4 ALPHANUMERIC CHARACTERS FOR USER NAME
  114. *
  115. * * DENOTES SPECIAL CHARACTER *VL* (12/8/6,1 PUNCH)
  116. *
  117. * Y 1 TO 4 CHARACTERS FOR PASSWORD
  118. *
  119. * THE * CHARACTER WILL BE TRANSLATED INTO THE STIMULATOR
  120. * TERMINAL NUMBER AT RUN TIME. THE GENERATED USER NAMES AND
  121. * PASSWORDS WILL THEN BE VALIDATED THROUGH THE NORMAL LOGIN
  122. * PROCEDURES. (THE GENERATED USER NAMES AND PASSWORDS MUST
  123. * BE ENTERED INTO THE VALIDATION FILE.)
  124. *
  125. * EXAMPLE -
  126. *
  127. * P***,L*** WILL BE TRANSLATED INTO
  128. * P000,L000 FOR THE FIRST TERMINAL,
  129. * P001,L001 FOR THE SECOND TERMINAL.
  130. SPACE 4,10
  131. *** STIMULATOR OUTPUT.
  132. *
  133. * IF OUTPUT RECOVERY IS SELECTED, ALL OUTPUT DATA IS WRITTEN TO
  134. * A FILE NAMED *STIMOUT*. THIS FILE IS PROCESSED BY *DEMUX*.
  135. * REFER TO *DEMUX* DOCUMENTATION FOR FURTHER INFORMATION.
  136. SPACE 4,10
  137. *** K-DISPLAY DIRECTIVES.
  138. *
  139. * K-DISPLAY DIRECTIVES ARE ENTERED IN THE FORM -
  140. * D1=P1,D2=P2,...DN=PN
  141. * WHERE D1, D2, AND DN ARE THE K-DISPLAY IDENTIFIERS
  142. * AND P1, P2, AND PN ARE THE PARAMETERS.
  143. *
  144. * THERE ARE THREE K-DISPLAYS FOR THE STIMULATOR. THE
  145. * INITIAL K-DISPLAY PROCESSES SESSION FILE PARAMETERS.
  146. * IF THE SESSION FILE WAS SPECIFIED ON THE COMMAND
  147. * THIS DISPLAY WILL NOT BE DISPLAYED. THE SECOND DISPLAY
  148. * PROCESSES THE STIMULATION PARAMETERS. THE THIRD DISPLAY
  149. * IS OPTIONAL AND IS USED TO ENTER MIXED MODE INPUT
  150. * FOR A SPECIFIED SCRIPT.
  151. SPACE 4,10
  152. *** K-DISPLAY INPUT - SESSION FILE PARAMETERS.
  153. *
  154. * F INDIRECT PERMANENT FILE NAME OF SESSION FILE.
  155. *
  156. * UI USER INDEX WHERE THE SESSION FILE IS FOUND.
  157. *
  158. * N FILE NUMBER OF THE MULTI-FILE SESSION FILE FROM
  159. * WHICH DATA IS READ. LEGAL RANGE IS 1 THRU 377777.
  160. *
  161. * GO. INDICATES ALL SESSION FILE PARAMETERS HAVE
  162. * BEEN ENTERED. THE STIMULATOR WILL ADVANCE
  163. * TO THE SESSION PARAMETER K-DISPLAY.
  164. SPACE 4,10
  165. *** K-DISPLAY INPUT - SESSION PARAMETERS.
  166. *
  167. * NT NUMBER OF TERMINALS TO STIMULATE. THE MAXIMUM
  168. * VALUE IS DETERMINED BY THE EST ENTRY FOR THE
  169. * STIMULATED MULTIPLEXOR.
  170. *
  171. * LS LINE SPEED OF TERMINALS.
  172. * RANGE IS 1 - 1000 CPS.
  173. * DEFAULT IS 15 CPS.
  174. *
  175. * IS INPUT TYPING SPEED.
  176. * RANGE IS 1 - 1000 CPS.
  177. * DEFAULT IS 15 CPS.
  178. *
  179. * TT THINK TIME. THIS IS THE NUMBER OF SECONDS DELAYED
  180. * AFTER THE END OF OUTPUT BEFORE THE TERMINAL WILL
  181. * INPUT THE NEXT LINE.
  182. * RANGE IS 0 - 127 SECONDS.
  183. * DEFAULT IS 10 SECONDS.
  184. *
  185. * TI THINK TIME INCREMENT. THIS VALUE IS USED TO
  186. * PRODUCE A RANDOM THINK TIME.
  187. * RANGE IS 0-64.
  188. * DEFAULT IS 8.
  189. *
  190. * AC ACTIVATION DELAY. THIS PARAMETER IS USED TO
  191. * SPECIFY THE NUMBER OF TERMINALS THAT ARE TO BE
  192. * LOGGED ON EVERY X SECONDS. (X IS SPECIFIED BY
  193. * THE *AD* DIRECTIVE.)
  194. * RANGE IS 0-100 TERMINALS.
  195. * DEFAULT IS 4 TERMINALS.
  196. *
  197. * AD ACTIVATION DELAY. DELAY TIME UNTIL NEXT LOGIN
  198. * IS ALLOWED.
  199. * RANGE IS 0-127 SECONDS.
  200. * DEFAULT IS 10 SECONDS.
  201. *
  202. * RC REPEAT COUNT. SPECIFIES THE NUMBER OF TIMES THE
  203. * SESSION WILL BE REPEATED FOR EACH TERMINAL.
  204. * RANGE IS 0 - 31.
  205. * DEFAULT IS 0.
  206. *
  207. * LD LOGOUT DELAY. THIS SPECIFIES THE NUMBER OF
  208. * SECONDS TO DELAY AFTER LOGOUT IS COMPLETED
  209. * BEFORE INITIATING THE NEXT LOGIN.
  210. * RANGE 0 - 127 SECONDS.
  211. * DEFAULT IS 0 SECONDS.
  212. *
  213. * RO RECOVER OUTPUT. SPECIFIES STIMULATOR OUTPUT
  214. * IS TO BE RECOVERED ON *STIMOUT* FILE.
  215. * ON = RECOVER OUTPUT (DEFAULT)
  216. * OFF = NO OUTPUT RECOVERED
  217. *
  218. * LF LOOP ON SESSION FILE.
  219. * NO = LOOPING WILL OCCUR ON THE SCRIPT ASSIGNED
  220. * ASSIGNED TO THE TERMINAL.
  221. * YES = THE NEXT SCRIPT ON THE SESSION FILE WILL
  222. * BE THE NEXT SCRIPT TO BE EXECUTED.
  223. *
  224. * GO. ALL PARAMETERS HAVE BEEN ENTERED.
  225. * START STIMULATION.
  226. *
  227. * MIXED. ALL SESSION PARAMETERS HAVE BEEN ENTERED.
  228. * PROCEED TO MIXED MODE K-DISPLAY.
  229. SPACE 4,10
  230. *** K-DISPLAY INPUT - MIXED MODE.
  231. *
  232. * CF MATRIX CHANGE FILE. THIS INDIRECT ACCESS PERMANENT
  233. * FILE CONTAINS MIXED MODE INPUT DIRECTIVES TO
  234. * BE PROCESSED. IT RESIDES UNDER THE USER INDEX
  235. * SPECIFIED BY THE *UI* DIRECTIVE.
  236. *
  237. * + PAGE MATRIX DISPLAY FORWARD.
  238. *
  239. * - PAGE MATRIX DISPLAY BACKWORD.
  240. *
  241. * MX MIXED MODE PARAMETERS.
  242. * MX=S1-S2,NT,LS,IS,TT,LD,RC.
  243. * MX=S1,NT,LS,IS,TT,LD,RC.
  244. * WHERE -
  245. * S1 = FIRST SCRIPT TO BE CHANGED.
  246. * S2 = LAST SCRIPT TO BE CHANGED. (OPTIONAL -
  247. * DEFAULTS TO S1).
  248. * NT = NUMBER OF TERMINALS TO ASSIGN TO SCRIPT.
  249. * LS = LINE SPEED FOR TERMINALS ASSIGNED TO SCRIPT.
  250. * IS = INPUT SPEED FOR TERMINALS ASSIGNED TO SCRIPT.
  251. * TT = THINK TIME FOR TERMINALS ASSIGNED TO SCRIPTS.
  252. * LD = LOGOUT DELAY FOR TERMINALS ASSIGNED TO SCRIPT.
  253. * RC = REPEAT COUNT FOR TERMINALS ASSIGNED TO SCRIPT.
  254. * NULL PARAMETERS WILL KEEP THE CURRENT VALUE.
  255. *
  256. * EXAMPLE -
  257. * MX=2-4,3,30,30,,,1.
  258. * THREE TERMINALS WILL BE ASSIGNED TO SCRIPTS TWO, THREE,
  259. * AND FOUR. THE LINE SPEED AND INPUT SPEED FOR THESE
  260. * TERMINALS WILL BE 30 CPS. THE THINK TIME AND LOGOUT
  261. * DELAY WILL NOT BE CHANGED FORM THE CURRENT VALUE. THE
  262. * TERMINALS WILL HAVE A REPEAT COUNT OF ONE.
  263. *
  264. * GO. MIXED MODE PARAMETERS HAVE BEEN ENTERED.
  265. * PROCEED WITH STIMULATION.
  266. SPACE 4,10
  267. *** DAYFILE MESSAGES.
  268. *
  269. * * ERROR IN STIMULATOR ARGUMENTS.*
  270. * AN ERROR WAS ENCOUNTERED ON THE COMMAND.
  271. * CORRECT AND RETRY.
  272. *
  273. * * STIMULATION COMPLETED.*
  274. * INFORMATIVE MESSAGE INDICATING WHEN STIMULATION
  275. * WAS COMPLETE.
  276. *
  277. * * NUMBER OF LINE REGULATIONS = NNNNNNNNNN*
  278. * INFORMATIVE MESSAGE INDICATING THE NUMBER OF
  279. * LINE REGULATIONS THAT WERE ENCOUNTERED
  280. * DURING THE STIMULATION.
  281. SPACE 4,10
  282. *** ACCOUNT DAYFILE MESSAGES.
  283. *
  284. *
  285. * *SIAD, STIMULATOR.*
  286. * ACCOUNT FILE DUMPED BY STIMULATOR.
  287. SPACE 4,10
  288. *** K-DISPLAY MESSAGES.
  289. *
  290. * *INCORRECT OPTION.*
  291. * K-DISPLAY INPUT WAS NOT RECOGNIZED.
  292. *
  293. * *FORMAT ERROR.*
  294. * K-DISPLAY INPUT WAS NOT IN CORRECT FORMAT.
  295. *
  296. * *IMPROPER NUMERIC PARAMETER.*
  297. * NUMERIC PARAMETER IS OUT OF RANGE OR IN BAD FORMAT.
  298. *
  299. * *EMPTY SESSION FILE.*
  300. * NO DATA WAS FOUND ON THE SPECIFIED SESSION FILE.
  301. *
  302. * *INCORRECT DATA.*
  303. * AN INCORRECT CHARACTER WAS FOUND IN THE SESSION TEXT.
  304. *
  305. * *INCORRECT TASK PERCENTAGE.*
  306. * THE DESIRED TASK PERCENTAGE SPECIFIED FOR A TASK
  307. * CANNOT EXCEED 100.
  308. *
  309. * *TASK PERCENTAGE UNEQUAL TO 100*
  310. * THE DESIRED TASK PERCENTAGES FOR ALL TASKS MUST
  311. * ADD UP TO 100.
  312. *
  313. * *SCRIPTS CANNOT FOLLOW TASK DEFINITIONS.*
  314. * THE FORMAT OF THE SESSION FILE IS INCORRECT.
  315. * SCRIPTS CANNOT FOLLOW TASK SCRIPTS.
  316. *
  317. * *FILE NAME NOT SET.*
  318. * NO FILE NAME WAS SPECIFIED WITH THE *F* OR *CF*
  319. * PARAMETERS.
  320. *
  321. * *INCORRECT FILE NUMBER.*
  322. * THE VALUE ASSOCIATED WITH THE *N* DIRECTIVE CANNOT
  323. * EXCEED 377777B.
  324. *
  325. * *INCORRECT USER INDEX.*
  326. * THE SPECIFIED USER INDEX WAS GREATER THAN 377777B.
  327. *
  328. * *ASSIGNED TTYS GREATER THAN (NT).*
  329. * THE NUMBER OF TERMINALS THAT ARE ASSIGNED TO SCRIPTS
  330. * IS GREATER THAN THE NUMBER OF TERMINALS BEING
  331. * STIMULATED. REDUCE THE NUMBER OF TERMINALS THAT
  332. * ARE ASSIGNED.
  333. *
  334. * * NO TTYS ASSIGNED.*
  335. * THERE ARE NO TTYS TO ANY SCRIPTS. ENTER ASSIGNED
  336. * TTYS USING *MX* DIRECTIVE.
  337. *
  338. * *FILE ERROR.*
  339. * THE CHANGE FILE SPECIFIED COULD NOT BE ATTACHED.
  340. *
  341. * *FILE NOT FOUND.*
  342. * THE SPECIFIED CHANGE FILE COULD NOT BE FOUND.
  343. SPACE 4,10
  344. * COMMON DECKS.
  345.  
  346.  
  347. *CALL COMCMAC
  348. *CALL COMCDCM
  349. *CALL COMCMTM
  350. *CALL COMCDCP
  351. *CALL COMSPFM
  352. *CALL COMSSFM
  353. LIST X
  354. *CALL COMSSTM
  355. LIST -X
  356. SPACE 4,10
  357. **** INSTALLATION SYMBOL DEFINITIONS.
  358.  
  359.  
  360. IBUFL EQU 6001B BUFFER LENGTH
  361. ****
  362. SPACE 4,10
  363. * LOCAL SYMBOL DEFINITIONS.
  364.  
  365. FETL EQU 8 OUTPUT FET LENGTH
  366. KBUFL EQU 8 KEYBOARD BUFFER LENGTH
  367. MEMLL EQU 1000B MANAGED-TABLES AREA LENGTH
  368. MMSC EQU 7 STARTING COLUMN OF MIXED MODE DISPLAY LINE
  369. SDISN EQU 10 NUMBER OF SCRIPTS PER PAGE
  370. SSJ= EQU 0 DEFINE *SSJ=* ENTRY POINT
  371. SPACE 4,10
  372. TITLE MACRO DEFINITIONS.
  373. ASCO SPACE 4,10
  374. ** ASCO - GENERATE MULTIPLEXER OUTPUT FOR *ASCII* CODE.
  375. *
  376. *NAME ASCO CH,EQU
  377. *
  378. * ENTRY *NAME* = NAME FOR ASSIGNMENT OF CODE.
  379. * *CH* = *ASCII* CHARACTER VALUE IN HEXIDECIMAL.
  380. * *EQU* = ASSIGNMENT PSEUDO OP.
  381.  
  382.  
  383. PURGMAC ASCO
  384.  
  385. MACRO ASCO,A,C,D
  386. PAR 0#_C,0
  387. A D 4000B+2*0#_C+.1
  388. ASCO ENDM
  389. OTASC SPACE 4,10
  390. ** OTASC - GENERATE *ASCII* OUTPUT TRANSLATION TABLE ENTRY.
  391. *
  392. * OTASC DC,E1,E2,ADDR
  393. *
  394. * ENTRY *DC* = HEX VALUE FOR DISPLAY CODE.
  395. * *E1* = HEX VALUE FOR ESCAPE 1 (76XX).
  396. * *E2* = HEX VALUE FOR ESCAPE 2 (74XX).
  397. * *ADDR* = ADDRESS OF SPECIAL PROCESSING SUBROUTINE. IF
  398. * NEGATIVE, = COMPLEMENT OF SHIFT QUANTITY USED
  399. * FOR THIS ESCAPE CHARACTER.
  400.  
  401.  
  402. PURGMAC OTASC
  403. NOREF .2,.3,.4
  404.  
  405. MACRO OTASC,A,B,C,D,E
  406. IFC NE,*B**
  407. .2 ASCO B,SET
  408. ELSE 1
  409. .2 SET 0
  410. IFC NE,*C**
  411. .3 ASCO C,SET
  412. ELSE 1
  413. .3 SET 0
  414. IFC NE,*D**
  415. .4 ASCO D,SET
  416. ELSE 1
  417. .4 SET 0
  418. VFD 12/.2,12/.3,12/.4,6/,18/E
  419. OTASC ENDM
  420. PACK SPACE 4,20
  421. ** PACK - GENERATE CODE TO PACK TEXT INTO BUFFER.
  422. *
  423. * PACK BIAS,POS,COUNT
  424. *
  425. * ENTRY (X6) = TEXT TO PACK RIGHT JUSTIFIED.
  426. * (B7) = STARTING ADDRESS OF BUFFER.
  427. * *BIAS* = THE DISPLAY COLUMN POSITION OF THE FIRST
  428. * CHARACTER OF TEXT FROM THE *KDL* MACRO
  429. * (NUMBERED FROM ONE).
  430. * *POS* = THE DISPLAY COLUMN POSITION OF THE LAST
  431. * CHARACTER OF TEXT FROM (X6)
  432. * (NUMBERED FROM ONE).
  433. * *COUNT* = LENGTH OF TEXT TO STORE IN CHARACTERS.
  434. * MUST BE GREATER THAN 0 AND LESS THAN 11.
  435. *
  436. * USES X - 2, 3, 6, 7.
  437. * A - 2, 7.
  438.  
  439.  
  440. PURGMAC PACK
  441.  
  442. PACK MACRO BIAS,POS,COUNT
  443. LOCAL X,Y,Z,LCOUNT,RCOUNT
  444. MACREF PACK
  445. X SET POS-BIAS+4
  446. Y SET X/10 WORD OFFSET INTO BUFFER
  447. X SET X-Y*10 CHAR POSITION OF RIGHTMOST CHAR IN WORD
  448. (NUMBERED FROM LEFT WITH FIRST CHAR ZERO)
  449. Z SET 9-X NUMBER OF CHAR POSITIONS TO SHIFT IN WORD
  450. LCOUNT SET COUNT-X-1 NUMBER OF CHARS IN PREVIOUS WORD
  451. RCOUNT SET COUNT-LCOUNT
  452. SA2 B7+Y FIRST OR ONLY WORD TO CHANGE
  453. .A IFGT LCOUNT,0
  454. LX6 6*Z CHANGE FIRST OF TWO WORDS
  455. MX3 6*RCOUNT
  456. BX7 X3*X6
  457. BX2 -X3*X2
  458. BX7 X2+X7
  459. SA7 A2
  460. SA2 A2-B1 GET PREVIOUS WORD TO CHANGE
  461. MX3 -6*LCOUNT
  462. .A ELSE
  463. MX3 -6*COUNT ONLY ONE WORD TO CHANGE
  464. .B IFNE Z,0
  465. LX6 6*Z
  466. LX3 6*Z
  467. .B ENDIF
  468. .A ENDIF
  469. BX7 -X3*X6 CHANGE SECOND OR ONLY WORD
  470. BX2 X3*X2
  471. BX7 X2+X7
  472. SA7 A2
  473. PACK ENDM
  474. PARAM SPACE 4,10
  475. ** PARAM - GENERATE PARAMETER TABLE ENTRY.
  476. *
  477. *PN PARAM PROC,DEFAULT
  478. *
  479. * ENTRY *PN* = PARAMETER NAME.
  480. * *PROC* = PARAMETER PROCESSOR.
  481. * *DEFAULT* = DEFAULT VALUE.
  482. * OUTPUT
  483. *
  484. *T 42/ PARAM,18/ PROC ADDRESS
  485. *T, 42/ DEFAULT,18/ DISPLAY ADDRESS
  486.  
  487.  
  488. PURGMAC PARAM
  489.  
  490. MACRO PARAM,A,B,C
  491. CON 0L;A+B
  492. CON 0L;C+DS;A
  493. PARAM ENDM
  494. PAR SPACE 4,10
  495. ** PAR - GENERATE CHARACTER PARITY BIT.
  496. *
  497. * PAR CH,OE
  498. *
  499. * ENTRY *CH* = CHARACTER VALUE.
  500. * *OE* = ODD/EVEN (0=EVEN, 1=ODD)
  501. *
  502. * EXIT *.1* = PARITY.
  503.  
  504.  
  505. PURGMAC PAR
  506.  
  507. NOREF .1
  508. PAR MACRO A,B
  509. P MICRO A+1,1, 011010011001011010010110011010011001011001101001011010011
  510. ,00101101001011001101001011010011001011001101001100101101001011001101001
  511. .1 SET "P"&;B
  512. PAR ENDM
  513. TITLE MANAGED TABLES.
  514. ORG 110B
  515. TABLES BSS 0
  516. SPACE 4,10
  517. ** WHEN THE STIMULATOR IS INITIATED, *TSCR*, *TTER*, *TSTX*,
  518. * AND *TASK* ARE MOVED TO LOW MEMORY.
  519. TSCR SPACE 4,10
  520. ** TSCR - SCRATCH TABLE.
  521. *
  522. * THIS TABLE IS USED TO CONTAIN CODE, FETS, AND BUFFERS THAT
  523. * WILL BE USED ONCE THE STIMULATION HAS BEEN INITIATED. THE
  524. * CODE IS RESPONSIBLE FOR RECOVERING OUTPUT AND SELECTING THE
  525. * NEXT BEST TASK TO PROCESS. IF OUTPUT IS NOT TO BE
  526. * RECOVERED, THIS TABLE REMAINS EMPTY.
  527.  
  528.  
  529. TSCR TABLE
  530. TTER SPACE 4,50
  531. ** TTER - TERMINAL TABLE.
  532. *
  533. * *TTER* IS GENERATED FOR *1TS* TO BE USED FOR CONTROL OF THE
  534. * STIMULATION RUN.
  535. *
  536. *T O 3/F ,3/B ,18/OADDR ,5/RC ,7/TT ,12/CT ,12/CK
  537. *T, .
  538. *T, .
  539. *T, .
  540. *T,NT-1 3/F ,3/B ,18/OADDR ,5/RC ,7/TT ,12/CT ,12/CK
  541. *T,NT 12/LS ,12/IS ,12/LD ,12/TT ,12/OTT
  542. *T, .
  543. *T, .
  544. *T, .
  545. *T,NT*2-1 12/LS ,12/IS ,12/LD ,12/ TT ,12/OTT
  546. *T,NT*2 1/L, 2/R, 3/B, 18/OADDR ,6/ACCT, 18/TADDR, 12/R
  547. *T, .
  548. *T, .
  549. *T, .
  550. *T,NT*3-1 1/L, 2/R, 3/B, 18/OADDR ,6/ACCT, 18/TADDR, 12/R
  551. *T,NT*3 60/ USED BY *1TS* FOR OUTPUT RECOVERY
  552. *T, .
  553. *T, .
  554. *T, .
  555. *T,NT*4-1 60/ USED BY *1TS* FOR OUTPUT RECOVERY
  556. *T,NT*4 3/F ,3/LB ,18/LADDR ,12/IN ,12/ ,12/ CNT
  557. *T, .
  558. *T, .
  559. *T, .
  560. *T,NT*5-1 3/F ,3/LB ,18/LADDR ,12/IN ,12/ ,12/ CNT
  561. *
  562. * NT NUMBER OF TERMINALS (NUMBER OF ENTRIES IN TABLE)
  563. *
  564. * F FLAGS
  565. * BIT 59 - OFF LINE
  566. * BIT 58 - DISABLED
  567. * BIT 57 - CHARACTER ENCOUNTERED
  568. * B CURRENT BYTE OF OUTPUT DATA WORD
  569. * OADDR ADDRESS OF CURRENT OUTPUT DATA WORD
  570. * RC REPEAT COUNT
  571. * TT THINK TIME DELAY IN SECONDS
  572. * CT CHARACTER TIME IN MILLESECONDS
  573. * CK TIMING CLOCK
  574. *
  575. * LS LINE SPEED (CHARACTER TIME IN MILLESECONDS)
  576. * IS INPUT SPEED (CHARACTER TIME IN MILLESECONDS)
  577. * LD LOGOUT DELAY IN SECONDS
  578. * TT THINK TIME IN SECONDS
  579. * OTT OPTIONAL THINK TIME IN SECONDS
  580. *
  581. * L FIRST LINE FEED ENCOUNTERED. (FIRST LINE FEED
  582. * WILL BE USED AS AN INITIATE INPUT PROMPT FOR
  583. * AUTOMATIC CODE SET DETECTION BY *CCP*.)
  584. * R RESERVED FIELD
  585. * ACCT SPECIAL ACCOUNT NUMBER FLAG
  586. * TADDR ADDRESS FOR CURRENT TASK TABLE ENTRY
  587. *
  588. * LB BYTE OF OUTPUT WORD FOR LAST OUTPUT LINE
  589. * LADDR ADDRESS OF OUTPUT DATA WORD FOR LAST OUTPUT
  590. * IN CHARACTER COUNTER
  591. * CNT NUMBER OF TIMES TERMINAL ENCOUNTERED LINE REGULATION
  592.  
  593.  
  594. TTER TABLE 2
  595. TSTX SPACE 4,30
  596. ** TSTX - SESSION TEXT.
  597. *
  598. * ENTRY - N WORDS PER SESSION.
  599. *
  600. * A SESSION CONSISTS OF 5 BYTES OF SESSION TEXT PER WORD.
  601. * EACH SESSION IS LINKED TO THE NEXT SESSION BY A CONTROL WORD.
  602. *
  603. * BYTE FORMAT.
  604. *
  605. * BITS 8 - 11 OUTPUT CONTROL CODE
  606. * BITS 0 - 7 OUTPUT CHARACTER
  607. *
  608. * OUTPUT CONTROL CODE (IN BINARY).
  609. *
  610. * 100 0 NORMAL OUTPUT
  611. * 010 0 END OF OUTPUT LINE
  612. * 001 0 END OF SESSION
  613. *
  614. *
  615. * SESSION LINK.
  616. *
  617. * BITS 18 - 59 0
  618. * BITS 0 - 17 INDEX OF NEXT SESSION
  619.  
  620.  
  621. TSTX TABLE
  622. TASK SPACE 4,20
  623. ** TASK - TASK TABLE.
  624. *
  625. * THIS TABLE IS USED FOR SELECTION OF THE NEXT BEST TASK.
  626. *
  627. *T 42/ TASK NAME ,18/ TASK ADDRESS
  628. *T, 36/ ,12/ CCALS ,12/ TCALS
  629. *T, 60/ DESIRED PERCENTAGE (FLOATING POINT)
  630. *T, 60/ ACTUAL PERCENTAGE (FLOATING POINT)
  631. *
  632. * CCALS COMPLETED TASK CALLS
  633. * TCALS TOTAL TASK CALLS
  634.  
  635.  
  636. TASK TABLE
  637. TSPT SPACE 4,20
  638. ** TSPT - SESSION POINTERS.
  639. *
  640. *T 12/TT ,12/LS ,12/TTY ,6/RC ,18/INDEX
  641. *T, 12/IS ,12/LD ,36/
  642. *
  643. * TT THINK TIME
  644. * LS LINE SPEED
  645. * TTY TERMINALS ASSIGNED
  646. * RC REPEAT COUNT
  647. * INDEX INDEX IN *TSTX* OF SESSION
  648. *
  649. * IS INPUT SPEED IN CHARACTERS/SECOND
  650. * LD LOGOUT DELAY IN SECONDS
  651.  
  652.  
  653. TSPT TABLE 1
  654. TABLES HERE
  655. TITLE FET DEFINITIONS.
  656. FETS SPACE 4,10
  657. * FET DEFINITIONS.
  658.  
  659.  
  660. I BSS 0 SESSION FILE FET
  661. I RFILEB IBUF,IBUFL,(FET=12),(EPR)
  662. ORG I
  663. CON 1
  664. ORG I+CFPW
  665. CON IBUF
  666. ORG I+12
  667. UI CON 0 USER INDEX
  668. FN CON 0 FILE NAME
  669. SPACE 4
  670. O BSS 0 OUTPUT FILE FET
  671. OUTPUT FILEB IBUF,IBUFL
  672. TITLE PARAMETERS.
  673. SFP SPACE 4,10
  674. * SFP - SESSION FILE PARAMETERS.
  675.  
  676.  
  677. SFP BSS 0
  678.  
  679. F PARAM SSF SESSION FILE NAME
  680. UI PARAM SUI,0B USER INDEX
  681. N PARAM SFC,1 NUMBER OF FILE FOR SESSION
  682. CON 0 END OF TABLE
  683. STP SPACE 4,10
  684. * STP - STIMULATION PARAMETERS.
  685.  
  686.  
  687. STP BSS 0
  688.  
  689. NT PARAM SNT NUMBER OF TERMINALS
  690.  
  691. STPA BSS 0
  692.  
  693. AC PARAM SAC,4 ACTIVATION COUNT
  694. IS PARAM SIS,15 INPUT SPEED IN CHARACTERS/SECOND
  695. LD PARAM SLD,0 LOGOUT DELAY
  696. LS PARAM SLS,15 LINE SPEED IN CHARACTERS/SECOND
  697. TT PARAM STT,10 THINK TIME DELAY IN SECONDS
  698. TI PARAM TTI,8 THINK TIME INCREMENT
  699. RC PARAM SRC,0 REPEAT COUNT
  700. AD PARAM SAD,10 ACTIVATION DELAY
  701. RO PARAM SRO,ON RECOVER OUTPUT
  702. LF PARAM SLF,NO LOOP ON FILE OPTION
  703. CON 0 END OF TABLE
  704. MTP SPACE 4,10
  705. * MTP - MIXED MODE PARAMETERS.
  706.  
  707.  
  708. MTP BSS 0
  709. MX PARAM MIN,0
  710. CF PARAM SCF,0
  711. *+ PARAM PLS,0
  712. VFD 6/1H+,30/0,24/PLS
  713. VFD 12/0L0,24/0,24/DSMX
  714. *- PARAM MNS,0
  715. VFD 6/1H-,30/0,24/MNS
  716. VFD 12/0L0,24/0,24/DSMX
  717. CON 0 END OF TABLE
  718. TITLE WORKING STORAGE.
  719. DATA SPACE 4,10
  720. * SESSION PARAMETER VALUES.
  721.  
  722.  
  723. NT CON 0 NUMBER OF TERMINALS
  724. MNT CON 0 MAXIMUM NUMBER OF TERMINALS
  725. TM CON 0 THINK TIME MASK
  726. AD CON 0 ACTIVATION DELAY
  727. AC CON 0 ACTIVATION COUNT
  728. IS CON 0 INPUT SPEED
  729. RO CON 0 RECOVER OUTPUT FLAG
  730. LS CON 0 LINE SPEED
  731. TT CON 0 THINK TIME DELAY
  732. RC CON 0 REPEAT COUNT
  733. LD CON 0 LOGOUT DELAY
  734. CF CON 0 MATRIX CHANGE FILE NAME
  735. TY CON 0 TERMINALS ASSIGNED
  736. LP CON 0 LOOP FLAG
  737. MODE CON 0 STIMULATION MODE FLAG
  738. NPS CON 0 NETWORK MODE FLAG
  739. TITLE MAIN PROGRAM.
  740. ** STIMULA - MAIN PROGRAM.
  741.  
  742.  
  743. STIMULA SB1 1 (B1) = 1
  744.  
  745. * PROCESS K-DISPLAY INPUT.
  746.  
  747. RJ PRS PRESET PROGRAM
  748. BX0 X0-X0 CLEAR ERROR MESSAGE
  749. RJ TSF TRANSLATE SESSION FILE
  750. RETURN I RETURN SCRIPT FILE
  751. RJ ITT INITIALIZE TERMINAL TABLE
  752. RJ RSP REQUEST SESSION PARAMETERS
  753. RJ OPR OUTPUT PARAMETERS
  754. RJ RMP REQUEST MIXED PARAMETER INPUT
  755. CONSOLE =0
  756. MESSAGE (=0),2
  757.  
  758. * BUILD TABLES FOR STIMULATION (*TTER* AND *TASK*).
  759.  
  760. SA1 MNT EXPAND *TTER* TO 5 WORDS/TERMINAL
  761. SX2 3
  762. IX1 X1*X2
  763. ALLOC TTER,X1
  764. RJ WMD WRITE MATRIX TO OUTPUT
  765. RJ SSA SET SESSION ADDRESSES
  766. RJ STA SET TASK ADDRESSES
  767. SA1 RO CHECK OUTPUT RECOVERY FLAG
  768. BX6 X6-X6 CLEAR *TSCR*
  769. SA6 L.TSCR
  770.  
  771. * MOVE OUTPUT RECOVERY CODE.
  772.  
  773. ZR X1,STI1 IF NO RECOVER OUTPUT
  774. RJ IOR INITIALIZE OUTPUT RECOVERY
  775. EREXIT /RCO/RCO5
  776.  
  777. * CLEAR THIRD AND FOURTH WORDS OF *TTER* ENTRIES.
  778.  
  779. STI1 SA1 MNT
  780. LX1 1
  781. BX6 X6-X6 CLEAR RECOVERY AREA
  782. SB2 X1
  783. SA2 F.TTER
  784. SA6 X2+B2
  785. STI2 EQ B2,B1,BSM IF BEGIN STIMULATION
  786. SB2 B2-B1
  787. SA6 A6+B1
  788. EQ STI2 LOOP
  789.  
  790. STIA VFD 18/0L1TS,24/0,18/TCWD
  791. TITLE BEGIN STIMULATION.
  792. BSM SPACE 4,30
  793. ** BSM - BEGIN STIMULATION.
  794. *
  795. * EXIT TO *BSM1* TO MOVE TABLES.
  796. * (RACW) = *1TS* CONTROL WORD.
  797. *
  798. * USES X - ALL.
  799. * A - 1, 2, 3, 4, 6.
  800. * B - 2, 4, 6.
  801. *
  802. * CALLS MTD.
  803. *
  804. * MACROS MOVE.
  805. *
  806. * NOTES *BSM* MOVES ALL CODE, POINTERS AND TABLES NEEDED
  807. * DURING THE STIMULATION TO LOW MEMORY. THIS
  808. * INCLUDES THE FOLLOWING TABLES - *TSCR*, *TTER*,
  809. * *TSTX*, AND *TASK*. *BSM* WILL FIRST MOVE THE
  810. * TABLE MOVE LOOP TO HIGH MEMORY. THE MOVE LOOP
  811. * IS THEN EXECUTED TO MOVE THE TABLES AND CALL THE
  812. * STIMULATION DRIVER.
  813. * THE DRIVER IS RESPONSIBLE FOR STARTING THE OUTPUT
  814. * RECOVERY ROUTINE IN THE CPU.
  815.  
  816.  
  817. BSM BSS 0 ENTRY
  818. SA1 F.TSCR SET CONTROL WORD ADDRESS
  819. SA5 STIA
  820. SA2 L.TSCR
  821. BX6 X5 STORE *1TS* CALL
  822. IX7 X1+X2
  823. SA6 BSMA+BSMB
  824.  
  825. * GENERATE *1TS* CONTROL WORD.
  826.  
  827. SA1 AC SET ACTIVATION COUNT
  828. SB2 B1+B1
  829. LX1 36
  830. SA2 MNT SET TOTAL NUMBER OF TERMINALS
  831. LX2 48
  832. BX1 X1+X2
  833. SA2 TM SET THINK TIME MASK
  834. LX2 24
  835. BX1 X1+X2
  836. SA3 AD SET ACTIVATION DELAY
  837. LX3 12
  838. BX1 X1+X3
  839. SA4 L.TSCR COMPUTE STORAGE REQUIRED
  840. SA2 L.TTER
  841. IX4 X4+X2
  842. SA3 L.TSTX
  843. IX5 X4+X3
  844. SA4 L.TASK
  845. IX5 X5+X4
  846. SX5 X5+10
  847. SX4 X5+77B+STMO
  848. AX4 6
  849. BX6 X1+X4
  850. AX5 3 SET MOVE DOWN WORD COUNT
  851. SA6 RACW
  852.  
  853. * PREPARE TO MOVE TABLES DOWN.
  854.  
  855. RJ MTD MOVE TABLES DOWN
  856. RJ ICT INITIALIZE CONTROL TABLE
  857. SA3 F.TEND RELOCATE *SPC* REQUEST
  858. SA1 BSMC
  859. SA2 BSMA+BSM2 RELOCATE MOVE DOWN PROGRAM
  860. SB4 X5
  861. SB6 X3
  862. IX5 X1+X3
  863. LX3 15
  864. IX6 X2+X3
  865. SA6 A2
  866. MOVE BSMAL,BSMA,B6
  867. SA2 F.TSCR SET MOVE DIFFERENTIAL
  868. SB3 X2-STMO
  869. SB2 B1+B1
  870. SA1 X2 FIRST WORD
  871. SA2 A1+B1 NEXT WORD
  872. JP B6+BSM1 ENTER MOVE LOOP
  873.  
  874. * TABLE MOVE DOWN LOOP.
  875.  
  876. BSMA BSS 0
  877.  
  878. LOC 0
  879. BSM1 SA3 A1+B2
  880. SA4 A2+B2
  881. BX6 X1
  882. LX7 X2
  883. SA6 A1-B3
  884. SA7 A2-B3
  885. SA1 A3+B2
  886. SA2 A4+B2
  887. BX6 X3
  888. LX7 X4
  889. SA6 A3-B3
  890. SA7 A4-B3
  891. SA3 A1+B2
  892. SA4 A2+B2
  893. BX6 X1
  894. LX7 X2
  895. SA6 A1-B3
  896. SA7 A2-B3
  897. SB4 B4-B1
  898. SA1 A3+B2
  899. SA2 A4+B2
  900. BX6 X3
  901. LX7 X4
  902. SA6 A3-B3
  903. BSM2 SA7 A4-B3
  904. NZ B4,BSM1 LOOP TO END OF TRANSFER
  905. BX6 X5 STORE *SPC* REQUEST
  906. SA6 B1
  907. + JP B6+*
  908.  
  909.  
  910. BSMB CON 0 *1TS* REQUEST WORD
  911. CON 0 PADDING FOR P-COUNTER AT END OF FL
  912. * (REQUIRED FOR CYBER 74, 170)
  913.  
  914. LOC *O
  915. BSMAL EQU *-BSMA
  916. FLFF EQU BSMAL FIELD LENGTH FUDGE FACTOR
  917.  
  918. BSMC VFD 18/0LSPC,3/2,39/BSMB
  919. TITLE INITIALIZE STIMULATION TABLES.
  920. IOR SPACE 4,20
  921. ** IOR - INITIALIZE OUTPUT RECOVERY.
  922. *
  923. * EXIT OUTPUT FETS FOR STIMULATION SETUP.
  924. * RECOVERY ROUTINES RELOCATED.
  925. *
  926. * USES X - 0, 1, 2, 3, 5, 6, 7.
  927. * A - 1, 2, 5, 6, 7.
  928. * B - 2, 3, 4, 5.
  929. *
  930. * MACROS ALLOC, MOVE.
  931. *
  932. * NOTES *IOR* IS RESPONSIBLE FOR BUILDING THE *TSCR*
  933. * TABLE. THIS TABLE CONTAINS THE ROUTINES, FETS,
  934. * AND BUFFERS NEEDED TO RECOVER STIMULATION OUTPUT.
  935. * *IOR* SETS THE CEJ/MEJ FLAG INTO THE RECOVER OUTPUT
  936. * ROUTINES BEFORE THEY ARE MOVED. THIS IS NEEDED SO
  937. * THAT *COMCSYS* IS INITIALIZED CORRECTLY FOR OUTPUT
  938. * RECOVERY.
  939.  
  940.  
  941. IOR SUBR ENTRY/EXIT
  942. SA2 XJPR SAVE CEJ/MEJ FLAG
  943. BX6 X2
  944. SA6 RCOA+XJPR-STMO
  945. ALLOC TSCR,RCOAL ALLOCATE SPACE FOR RECOVERY CODE
  946. SX3 X2
  947. MOVE X1,RCOA,X3
  948. SA5 RAPP ALLOCATE SPACE FOR FETS AND BUFFERS
  949. SX2 FETL+IBUFL
  950. IX5 X5*X2
  951. ALLOC TSCR,X5
  952. SA1 F.TSCR SET FWA OF FETS
  953. SB2 X1+RCOAL
  954. SB4 X1-STMO (B4) = RELOCATION DIFFERENTIAL
  955. SA2 RAPP SET FIRST WORD OF BUFFERS
  956. SX3 FETL
  957. IX3 X2*X3
  958. SB3 X2
  959. SB5 X3+B2
  960. SX5 B5-B4 (X5) = RELOCATED BUFFER ADDRESS
  961. SB5 B0 SET INDEX INTO CONTROL TABLE
  962. IOR1 SA1 TCWD+B5 SET FWA OF FET INTO CONTROL TABLE
  963. LX1 42
  964. SX2 B2-B4
  965. BX6 X1+X2
  966. LX6 18
  967. SA6 A1
  968.  
  969. * BUILD NEW FET.
  970.  
  971. SA2 IORA+1 SET FIRST
  972. MX0 42
  973. BX7 X0*X2
  974. BX7 X5+X7
  975. SA7 A2
  976. BX6 X5 SET IN AND OUT POINTERS
  977. SA6 A7+B1
  978. SA6 A6+B1
  979. SX5 X5+IBUFL SET LIMIT
  980. SA1 A6+B1
  981. BX1 X0*X1
  982. BX6 X1+X5
  983. SA6 A1
  984. MOVE FETL,IORA,B2 SET FET
  985. RETURN B2,R
  986. NZ B5,IOR2 IF NOT FIRST FET
  987. SA1 IORB SET *SCR* FILE NAME
  988. BX6 X1
  989. EQ IOR3 SET FILE NAME
  990.  
  991. IOR2 SA1 IORA UPDATE FET NAME
  992. SX3 B1+
  993. LX3 36-0
  994. IX6 X1+X3
  995. IOR3 SA6 IORA
  996. SB2 B2+FETL SET NEXT FET ADDRESS
  997. SB5 B5+B1
  998. LT B5,B3,IOR1 IF MORE TO PROCESS
  999. EQ IORX RETURN
  1000.  
  1001. IORA BSS 0
  1002. STIMOUT FILEB IBUF,IBUFL,(FET=FETL)
  1003.  
  1004. IORB VFD 42/0LSCR0,18/3
  1005. ICT SPACE 4,20
  1006. ** ICT - INITIALIZE CONTROL TABLE.
  1007. *
  1008. * EXIT CONTROL TABLE BUILT.
  1009. *
  1010. * USES X - 1, 2, 3, 4, 6.
  1011. * A - 1, 2, 3, 6.
  1012. * B - 3, 4.
  1013.  
  1014.  
  1015. ICT SUBR ENTRY/EXIT
  1016. SX6 TCWD SET ACTIVATION INDICATOR
  1017. LX6 48
  1018. SA6 RAMD
  1019. SA1 F.TSCR SET MOVE DIFFERENTIAL
  1020. SX3 X1-STMO
  1021. SA1 F.TTER
  1022. IX1 X1-X3
  1023. SA3 RAPP
  1024. SB3 X3
  1025. SA2 MNT
  1026. IX2 X1+X2
  1027. SA3 TCWD-1
  1028. SB4 B0 SET TERMINAL BIAS
  1029. ICT1 SA3 A3+B1 GET NEXT ENTRY
  1030. BX6 X3+X1
  1031. SX4 B4 SET TERMINAL NUMBER BIAS
  1032. LX4 48
  1033. BX6 X4+X6
  1034. SA6 A3
  1035. SB3 B3-B1
  1036. LX3 24
  1037. ZR B3,ICTX IF END OF *TCWD*
  1038. SA4 MODE
  1039. MX0 -12
  1040. ZR X4,ICT2 IF INTERNAL STIMULATION MODE
  1041. MX0 -6
  1042. ICT2 BX3 -X0*X3
  1043. IX3 X3+X4 ADD BIAS
  1044. IX1 X1+X3 ADVANCE TERMINAL TABLE ADDRESS
  1045. SB4 B4+X3 ADVANCE TERMINAL NUMBER BIAS
  1046. IX4 X2-X1
  1047. PL X4,ICT1 IF NOT END OF TABLE
  1048. EQ ICTX RETURN
  1049. ITT SPACE 4,20
  1050. ** ITT - INITIALIZE TERMINAL TABLE.
  1051. *
  1052. * USES X - 1, 6.
  1053. * A - 1, 6.
  1054. * B - 2.
  1055. *
  1056. * MACROS ALLOC.
  1057.  
  1058.  
  1059. ITT SUBR ENTRY/EXIT
  1060. SA1 MNT SET TERMINAL TABLE ENTRIES
  1061. IX1 X1+X1 2 WORDS PER TERMINAL
  1062. ALLOC TTER,X1
  1063. MX6 1 SET TERMINAL OFF LINE
  1064. SB2 X1
  1065. SA6 X2
  1066. ITT1 EQ B2,B1,ITTX IF END OF TABLE
  1067.  
  1068. SB2 B2-B1
  1069. SA6 A6+B1
  1070. EQ ITT1 LOOP
  1071. SSA SPACE 4,20
  1072. ** SSA - SET SESSION ADDRESSES.
  1073. *
  1074. * ENTRY *TSPT* SET UP.
  1075. *
  1076. * EXIT (RADDR) = RELOCATION ADDRESS.
  1077. * (RASC) = SCRIPT POINTERS.
  1078. * SCRIPTS ASSIGNED TO TERMINALS.
  1079. * *TTER* SETUP.
  1080. * UNUSED TERMINALS SET OFF LINE.
  1081. *
  1082. * USES X - ALL.
  1083. * A - 1, 2, 3, 4, 5, 6, 7.
  1084. * B - 2, 3, 4, 5, 6.
  1085. *
  1086. * NOTES *SSA* PERFORMS THE FOLLOWING FUNCTIONS -
  1087. * 1. BUILDS *RASC*.
  1088. * 2. ASSIGNS SCRIPT TO TERMINALS.
  1089. * 3. SETS UNUSED TERMINALS OFF LINE.
  1090.  
  1091.  
  1092. SSA SUBR ENTRY/EXIT
  1093. SA2 RO
  1094. SA1 L.TTER SET BASE SESSION ADDRESS
  1095. ZR X2,SSA1 IF NO OUTPUT RECOVERY
  1096. SA2 RAPP
  1097. SX3 8+IBUFL
  1098. IX2 X2*X3
  1099. IX1 X1+X2
  1100. SX1 X1+RCOAL
  1101. SSA1 SX3 X1+STMO+2 RELOCATE INDICES TO ADDRESSES
  1102. BX6 X3
  1103. SA6 RADDR
  1104. SA1 MNT SET TERMINAL TABLE ENTRIES
  1105. SB3 X1
  1106. LX1 2
  1107. SB6 X1
  1108. SA1 NT ENTERED TERMINAL COUNT
  1109. SB2 X1 TERMINAL COUNT
  1110.  
  1111. * SET SCRIPT POINTERS IN *RA*.
  1112.  
  1113. SA2 F.TTER
  1114. SA5 F.TSPT ADDRESS OF SESSION POINTERS
  1115. SA1 LTSTX POINTER TO END OF SESSION SCRIPTS
  1116. IX6 X1+X3
  1117. LX6 24 LAST(18)-FIRST(24)
  1118. IX7 X6+X3
  1119. LX7 12
  1120. SA1 LP SET SESSION FILE LOOP OPTION
  1121. LX1 59
  1122. BX7 X1+X7
  1123. SA7 RASC
  1124.  
  1125. * ASSIGN SCRIPTS TO TERMINALS.
  1126.  
  1127. SA1 X2 FIRST TERMINAL ENTRY
  1128. SSA2 SB4 B0
  1129. SA4 L.TSPT
  1130. SB5 X4 LENGTH OF SESSION POINTERS
  1131. SSA3 SA2 X5+B4 GET FIRST WORD OF *TSPT* ENTRY
  1132. MX0 -12
  1133. LX0 24
  1134. BX3 -X0*X2
  1135. NZ X3,SSA4 IF TTYS ASSIGNED
  1136. SB4 B4+B1
  1137. EQ SSA5 ADVANCE TO NEXT *TSPT* ENTRY
  1138.  
  1139. SSA4 BX6 X0*X2 DECREMENT TTY COUNT
  1140. LX3 36
  1141. SX3 X3-1
  1142. LX3 24
  1143. BX6 X3+X6
  1144. SA6 A2
  1145. SA3 RADDR
  1146. MX6 0
  1147. MX7 6
  1148. BX1 X7*X1 CLEAR ADDR,RC,TT,CHAR-TIME FROM *TTER*
  1149. IX4 X2+X3
  1150. LX4 36
  1151. MX7 6 SET REPEAT COUNT
  1152. BX3 X7*X4
  1153. LX3 37
  1154. IX6 X6+X3
  1155. MX7 -7 SET THINK TIME
  1156. LX7 24
  1157. BX3 -X7*X4
  1158. BX7 X3 SAVE THINK TIME
  1159. AX7 24
  1160. SA7 TT
  1161. IX6 X6+X3
  1162. MX7 -12 SET LINE SPEED
  1163. LX7 12
  1164. BX3 -X7*X4
  1165. AX3 12
  1166. SX7 1000
  1167. IX7 X7/X3
  1168. SA7 LS SAVE LINE SPEED
  1169. LX7 12
  1170. IX6 X6+X7
  1171. MX7 -18
  1172. LX7 36
  1173. BX4 -X7*X4
  1174. IX6 X6+X4 SET ADDRESS
  1175. SA4 AD SET ACTIVATION DELAY
  1176. IX6 X6+X4
  1177. IX6 X1+X6
  1178. SA6 A1 SET NEW *TTER* ENTRY FOR SCRIPT
  1179. MX0 24 SET REGULATION WORD
  1180. BX6 X0*X6
  1181. SA6 A1+B6
  1182. SB4 B4+B1 GET SECOND WORD OF *TSPT* ENTRY
  1183. SA2 X5+B4
  1184. MX7 -12
  1185. SA4 LS GET LINE SPEED
  1186. BX6 X4
  1187. LX2 12
  1188. BX4 -X7*X2 GET INPUT SPEED
  1189. SX7 1000
  1190. IX4 X7/X4 FORM INPUT SPEED CHARACTER TIME (MS)
  1191. LX6 12
  1192. IX6 X6+X4
  1193. MX7 -12
  1194. LX2 12
  1195. BX2 -X7*X2 GET LOGOUT DELAY
  1196. LX6 12
  1197. IX6 X6+X2
  1198. SA4 TT GET THINK TIME
  1199. BX4 -X7*X4
  1200. LX6 12
  1201. IX7 X6+X4
  1202. LX7 12
  1203. SA7 A1+B3 REPLACE *TTER-1* ENTRY
  1204. SA1 A1+B1
  1205. SB2 B2-B1 DECREMENT TOTAL TTY COUNT
  1206. ZR B2,SSA6 IF ALL ON-LINE TERMINALS DONE
  1207. SSA5 SB4 B4+B1
  1208. SB5 B5-2 DECREMENT *TSPT* COUNTER
  1209. ZR B5,SSA2 IF LAST SCRIPT
  1210. EQ SSA3 LOOP
  1211.  
  1212. * SET REMAINING TERMINALS OFF LINE.
  1213.  
  1214. SSA6 SA2 NT ENTERED TERMINAL COUNT (ON-LINR)
  1215. SB2 X2
  1216. SB2 B3-B2 DISABLED TERMINAL COUNT (OFF-LINE)
  1217. ZR B2,SSAX IF ALL TTY-S TO BE ON-LINE
  1218. SX3 B1
  1219. LX3 58
  1220. SA4 RADDR DUMMY ADDRESS FOR DISABLED TTY-S
  1221. LX4 36
  1222. BX3 X3+X4
  1223. SA1 A1
  1224. BX6 X1
  1225. SSA7 BX6 X6+X3 SET DISABLE BIT
  1226. SA6 A1
  1227. SA7 A1+B3 *TTER-1* ENTRY
  1228. SA1 A1+B1
  1229. BX6 X1
  1230. SB2 B2-B1
  1231. ZR B2,SSAX IF ALL TTY-S DONE
  1232. EQ SSA7 LOOP
  1233. STA SPACE 4,15
  1234. ** STA - SET TASK ADDRESSES.
  1235. *
  1236. * ENTRY (RADD) = RELOCATION ADDRESS.
  1237. *
  1238. * EXIT TASK ADDRESS IN *TASK* TABLE RELOCATED.
  1239. * (RATK) = FWA OF TASK TABLE.
  1240. *
  1241. * USES X - 1, 2, 5, 6, 7.
  1242. * A - 1, 2, 5, 6, 7.
  1243. * B - 2, 3, 4.
  1244.  
  1245.  
  1246. STA SUBR ENTRY/EXIT
  1247. SB0 0
  1248. SA1 L.TASK
  1249. ZR X1,STAX IF NO TASKS
  1250. SB2 X1-1 LENGTH OF *TASK TABLE*
  1251. SB3 4 4 WORDS PER ENTRY IN *TASK TABLE*
  1252. SB4 B0
  1253. SA5 RADDR RELOCATION ADDRESS
  1254. SA1 L.TSTX END OF TASKS POINTER
  1255. SX1 X1+B1 BUMP POINTER TO *TASK TABLE*
  1256. IX7 X1+X5 GENERATE ADDRESS TO *TASK TABLE*
  1257. SA7 RATK
  1258. MX7 -18
  1259. SA1 F.TASK FWA *TASK TABLE*
  1260. STA1 SA2 X1+B4 RELOCATE TABLE ADDRESS
  1261. IX6 X2+X5
  1262. SA6 A2
  1263. SB2 B2-B3 DECREMENT *TASK TABLE* WORD COUNTER
  1264. SB4 B4+B3 BUMP POINTER TO NEXT TASK ENTRY
  1265. ZR B2,STAX IF ALL TASK ENTRIES MODIFIED
  1266. EQ STA1 GET NEXT ENTRY
  1267. TITLE OUTPUT RECOVERY ROUTINES.
  1268. RCO SPACE 4,10
  1269. RCOA BSS 0
  1270. QUAL RCO
  1271. SPACE 4,10
  1272. ** THE FOLLOWING CODE IS MOVED INTO *TSCR* IF OUTPUT IS
  1273. * TO BE RECOVERED DURING THE STIMULATION. THIS CODE WILL
  1274. * BE STARTED BY THE STIMULATION DRIVER ONCE THE STIMULATION
  1275. * IS INITIATED.
  1276. RCO SPACE 4,20
  1277. ** RCO - RECOVER OUTPUT.
  1278. *
  1279. * ENTRY (X0) = CEJ/MEJ FLAG.
  1280. * STIMULATION INITIATED.
  1281. *
  1282. * EXIT STIMULATION COMPLETE.
  1283. * POST PROCESSING COMPLETE.
  1284. *
  1285. * USES X - 1, 2, 3, 4, 5, 6, 7.
  1286. * A - 1, 2, 3, 4, 5, 6, 7.
  1287. * B - 3, 4.
  1288. *
  1289. * CALLS COF, DAD, GBT, OTD, PES.
  1290. *
  1291. * MACROS ENDRUN, MESSAGE, RECALL, RETURN, SETQP,
  1292. * SETPR, WRITE.
  1293.  
  1294.  
  1295. LOC STMO
  1296.  
  1297. RCO BSS 0 ENTRY
  1298. RJ DAD DUMP ACCOUNT DAYFILE
  1299.  
  1300. * STIMULATION LOOP - PROCESS TASK CALLS AND RECOVER OUTPUT.
  1301.  
  1302. RCO1 RECALL
  1303. SA1 RANT
  1304. NZ X1,RCO2 IF NO REQUEST FOR NEXT TASK
  1305. RJ GBT GET BEST TASK
  1306. RCO2 SB3 B0
  1307. SA1 RAPP
  1308. SB4 X1-1
  1309. RCO3 SA5 TCWD+B4
  1310. NG X5,RCO4 IF COMPLETE
  1311. SB3 B1
  1312. LX5 42
  1313. SA3 X5+2 IN
  1314. SA4 X5+3 OUT
  1315. SX2 X3+B1
  1316. IX6 X4-X2 (OUT-IN+1)
  1317. LX3 X6,B1 2*(OUT-IN+1)
  1318. SX7 IBUFL
  1319. AX6 60 SIGN OF (OUT-IN+1)
  1320. BX4 X6-X7 INVERT BUFFER IF IN+1 .GE OUT
  1321. IX6 X4-X3 BUFFER SIZE - 2*(OUT-IN+1)
  1322. NG X6,RCO4 IF BUFFER THRESHOLD NOT REACHED
  1323. SA1 X5 GET FIRST WORD OF FET
  1324. LX1 59-0
  1325. PL X1,RCO4 IF COMPLETE BIT NOT SET
  1326. RCOE WRITE X5 WRITE *STIMOUT* DATA
  1327. RCOEL EQU * ENSURE PROPER CODE MODIFICATION
  1328. * WRITE X5,R (ONE DRIVER PRESENT)
  1329. RCO4 SB4 B4-1
  1330. PL B4,RCO3 IF NOT END OF TABLE
  1331. NZ B3,RCO1 IF STIMULATION NOT COMPLETE
  1332.  
  1333. * PROCESS END OF STIMULATION - CREATE *STIMOUT* FILE
  1334. * AND WRITE TASK DATA TO *OUTPUT*.
  1335.  
  1336. RCO5 MESSAGE RCOA * STIMULATION COMPLETE.*
  1337. MESSAGE RCOB,2 * MERGING STIMOUT DATA.*
  1338. SETPR 30B REDUCE CPU PRIORITY
  1339. RJ COF COMPLETE OUTPUT FILE
  1340. SA2 TCWD SET ADDRESS OF FIRST FET
  1341. LX2 42
  1342. SX2 X2
  1343. SA1 RCOD SET FILE NAME
  1344. BX6 X1
  1345. SA6 X2
  1346. RETURN X2,R
  1347. RJ PES PROCESS END OF STIMULATION
  1348. RJ OTD OUTPUT TASK DATA
  1349. MESSAGE RCOC,2
  1350. ENDRUN
  1351. SPACE 4,10
  1352. ERRNG 65B-* OVERFLOW INTO RESERVED AREA
  1353. BSS CCDR-* AVOID RESERVED AREA
  1354. SPACE 4,10
  1355. RCOA DATA C* STIMULATION COMPLETE.*
  1356. RCOB DATA C* MERGING STIMOUT DATA.*
  1357. RCOC DATA C* *
  1358. RCOD VFD 42/4LSCR0,18/1
  1359. COF SPACE 4,20
  1360. ** COF - COMPLETE OUTPUT FILES.
  1361. *
  1362. * ENTRY STIMULATION COMPLETE.
  1363. *
  1364. * EXIT OUTPUT DATA WRITTEN TO *STIMOUT*.
  1365. *
  1366. * USES X - 0, 1, 2, 5, 6.
  1367. * A - 1, 2, 5, 6.
  1368. * B - 2, 3.
  1369. *
  1370. * MACROS RECALL, RETURN, REWIND, WRITE, WRITER.
  1371.  
  1372.  
  1373. COF SUBR ENTRY/EXIT
  1374. SA1 RAPP SET NUMBER OF FILES
  1375. SB3 X1
  1376. SB2 B0
  1377.  
  1378. * FLUSH BUFFERS.
  1379.  
  1380. COF1 SA5 TCWD+B2 SET FET ADDRESS
  1381. LX5 42
  1382. SA1 X5 SAVE CURRENT FILE NAME
  1383. BX6 X1
  1384. SA6 COFB
  1385. RECALL X5
  1386. WRITER X5,R
  1387. ZR B2,COF4 IF *STIMOUT* FILE
  1388. REWIND X5,R
  1389.  
  1390. * COPY FILE TO *STIMOUT*.
  1391.  
  1392. COF2 READ X5,R
  1393. SA1 COFA CHANGE FILE NAME TO *STIMOUT*
  1394. SA2 X5 CHECK FET STATUS
  1395. BX6 X1
  1396. SA6 X5
  1397. LX2 59-4
  1398. NG X2,COF3 IF EOR/EOF ENCOUNTERED
  1399. LX2 59-9-59+4
  1400. NG X2,COF3 IF EOI ENCOUNTERED
  1401. WRITE X5,R
  1402. SA1 COFB RESTORE FILE NAME
  1403. BX6 X1
  1404. SA6 X5
  1405. EQ COF2 CONTINUE FILE COPY
  1406.  
  1407. COF3 WRITER X5,R
  1408. SA1 COFB RESET FILE NAME
  1409. BX6 X1
  1410. SA6 X5
  1411. RETURN X5,R
  1412. COF4 SB2 B2+1 ADVANCE CONTROL TABLE INDEX
  1413. NE B2,B3,COF1 IF MORE FILES TO COPY
  1414. EQ COFX RETURN
  1415.  
  1416. COFA VFD 42/7LSTIMOUT,18/1
  1417. COFB CON 0 CURRENT FILE NAME
  1418. DAD SPACE 4,10
  1419. ** DAD - DUMP ACCOUNT DAYFILE.
  1420. *
  1421. * ENTRY (TCWD) = FET ADDRESS OF SCRATCH FILE.
  1422. *
  1423. * EXIT ACCOUNT DAYFILE DUMPED.
  1424. *
  1425. * USES X - 3, 4, 5, 6, 7.
  1426. * A - 3, 4, 5, 6, 7.
  1427. *
  1428. * MACROS DAYFILE, RETURN.
  1429.  
  1430.  
  1431. DAD SUBR ENTRY/EXIT
  1432. SA5 TCWD
  1433. SA3 DADA SET ACCOUNT MESSAGE IN BUFFER
  1434. SA4 A3+B1
  1435. BX6 X3
  1436. BX7 X4
  1437. LX5 42
  1438. SA3 X5+B1 SET FIRST
  1439. SA6 X3
  1440. SA7 X3+B1
  1441. DAYFILE X5,ACCOUNT
  1442. RETURN X2
  1443. EQ DADX RETURN
  1444.  
  1445. DADA DATA C*SIAD, STIMULATOR.*
  1446. GBT SPACE 4,20
  1447. ** GBT - GET BEST TASK.
  1448. *
  1449. * ENTRY (RATK) = FWA OF TASK POINTERS.
  1450. * (X2) = FWA OF FET.
  1451. *
  1452. * EXIT (RANT) = ADDRESS OF NEXT BEST TASK TO EXECUTE.
  1453. *
  1454. * USES X - 0, 1, 2, 6, 7.
  1455. * A - 1, 2, 6, 7.
  1456. * B - 3, 7.
  1457.  
  1458.  
  1459. GBT SUBR ENTRY/EXIT
  1460. SA1 RATK
  1461. ZR X1,GBTX IF NO TASKS
  1462. BX6 X6-X6
  1463. SA6 GBTB *BEST TASK* ADDRESS
  1464. SX6 10000 DUMMY VALUE FOR HIGH F-VAL
  1465. PX7 X6
  1466. NX7 X7
  1467. SA7 GBTA *BEST TASK* F-VALUE
  1468. MX7 -12
  1469. SB3 3
  1470. SB7 B0
  1471. MX6 0
  1472.  
  1473. * COMPUTE TOTAL NUMBER OF TASK CALLS.
  1474.  
  1475. GBT1 SA2 X1+B7 GET FIRST WORD OF TASK ENTRY
  1476. ZR X2,GBT2 IF END OF TABLE
  1477. SB7 B7+B1
  1478. SA2 X1+B7 GET NUMBER OF CALLS FOR THIS TASK
  1479. BX2 -X7*X2
  1480. IX6 X6+X2 UPDATE TOTAL NUMBER OF TASK CALLS
  1481. SB7 B7+B3
  1482. EQ GBT1 LOOP FOR ALL TASKS
  1483.  
  1484. GBT2 PX0 X6 CONVERT TOTAL CALLS TO FLOATING POINT
  1485. NX0 X0
  1486. SB7 B0+
  1487. SA1 RATK
  1488.  
  1489. * DETERMINE NEXT BEST TASK.
  1490.  
  1491. GBT3 SA2 X1+B7 GET FIRST WORD OF TASK ENTRY
  1492. ZR X2,GBT6 IF END OF TABLE
  1493. MX7 -12
  1494. SB7 B7+B1
  1495. SA2 X1+B7 GET NUMBER OF CALLS FOR THIS TASK
  1496. BX2 -X7*X2
  1497. PX7 X2
  1498. NX7 X7
  1499. SB7 B7+B1
  1500. SA2 X1+B7 GET DESIRED PERCENTAGE FOR TASK
  1501. SB7 B7+B1
  1502. MX6 0
  1503. ZR X0,GBT4 IF NO TASK CALLED YET
  1504. FX6 X7/X0 COMPUTE ACTUAL PERCENTAGE FOR TASK
  1505. GBT4 SA6 X1+B7 SAVE ACTUAL PERCENTAGE
  1506. FX6 X6/X2 (ACTUAL PERCENTAGE) / (DESIRED PERCENTAGE)
  1507. SA2 GBTA COMPARE CURRENT TASK WITH NEXT BEST TASK
  1508. FX2 X6-X2
  1509. PL X2,GBT5 IF CURRENT TASK NOT NEXT BEST TASK
  1510. NX6 X6 SET CURRENT TASK AS NEXT BEST TASK
  1511. SA6 GBTA
  1512. SB6 B7-B3
  1513. SX6 X1+B6
  1514. SA6 GBTB
  1515. GBT5 SB7 B7+B1
  1516. EQ GBT3 LOOP FOR ALL TASKS
  1517.  
  1518. GBT6 SA1 GBTB SET NEXT BEST TASK
  1519. BX6 X1
  1520. SA6 RANT
  1521. EQ GBTX RETURN
  1522.  
  1523. GBTA CON 0 BEST TASK F-VALUE
  1524. GBTB CON 0 BEST TASK ADDRESS
  1525. OTD SPACE 4,20
  1526. ** OTD - OUTPUT TASK DATA.
  1527. *
  1528. * ENTRY STIMULATION COMPLETE.
  1529. * (TCWD) = FET ADDRESS OF SCRATCH FILE.
  1530. *
  1531. * EXIT TASK INFORMATION WRITTEN TO OUTPUT.
  1532. *
  1533. * USES X - 0, 1, 2, 3, 5, 6, 7.
  1534. * A - 1, 2, 3, 5, 6, 7.
  1535. * B - 2.
  1536. *
  1537. * CALLS CDD, CFD.
  1538. *
  1539. * MACROS REWIND, WRITER, WRITEW.
  1540.  
  1541.  
  1542. OTD SUBR ENTRY/EXIT
  1543. SA5 RATK
  1544. ZR X5,OTDX IF NO TASKS
  1545. SA2 TCWD SET FET ADDRESS
  1546. LX2 42
  1547. SX2 X2
  1548. REWIND X2,R
  1549.  
  1550. * OUTPUT PAGE HEADER.
  1551.  
  1552. SA1 OTDA SET OUTPUT FILE NAME
  1553. BX6 X1
  1554. SA6 X2
  1555. WRITEW X2,TSKO,TSKOL WRITE TASK HEADER
  1556.  
  1557. * OUTPUT TASK INFORMATION.
  1558.  
  1559. OTD1 SA2 X5 GET FIRST WORD OF TASK ENTRY
  1560. ZR X2,OTD2 IF END OF *TASK TABLE
  1561. SA1 BLNK
  1562. MX0 -12
  1563. MX7 36
  1564. BX6 X7*X2
  1565. BX6 X6+X1
  1566. LX6 54
  1567. SA6 WBUF
  1568. SA2 X5+B1 GET SECOND WORD OF TASK ENTRY
  1569. BX1 -X0*X2 GET *CALLS*
  1570. SA3 CALLS
  1571. IX7 X1+X3
  1572. SA7 A3
  1573. RJ CDD CONVERT INTEGER *CALLS* TO DISPLAY CODE
  1574. LX6 18
  1575. SA6 WBUF+1
  1576. SA2 X5+B1 GET SECOND WORD OF TASK ENTRY
  1577. AX2 12
  1578. BX1 -X0*X2 GET *COMPLETES*
  1579. SA3 COMPLET
  1580. IX7 X1+X3
  1581. SA7 A3
  1582. RJ CDD CONVERT *COMPLETES* TO DISPLAY CODE
  1583. LX6 24
  1584. SA6 WBUF+2
  1585. SA2 X5+2 GET THIRD WORD OF TASK ENTRY
  1586. SA3 DESIRED
  1587. FX7 X2+X3
  1588. SA7 A3
  1589. SA1 THO
  1590. FX1 X1*X2
  1591. UX1 B2,X1
  1592. LX1 B2,X1
  1593. RJ CFD CONVERT TO FLOATING DISPLAY CODE
  1594. LX6 12
  1595. SA6 WBUF+3
  1596. SA2 X5+3 SET ACTUAL PERCENTAGE
  1597. SA3 ACTUAL
  1598. FX7 X2+X3
  1599. SA7 A3
  1600. SA1 HTHO
  1601. FX1 X1*X2
  1602. UX1 B2,X1
  1603. LX1 B2,X1
  1604. RJ CFD
  1605. MX7 48
  1606. LX6 12
  1607. BX6 X7*X6 ENSURE ZERO BYTE TERMINATOR
  1608. SA6 WBUF+4
  1609. SA2 TCWD
  1610. LX2 42
  1611. WRITEW X2,WBUF,WBUFL
  1612. SX5 X5+4 ADVANCE TASK TABLE POINTER
  1613. EQ OTD1 LOOP FOR NEXT TASK
  1614.  
  1615. * OUTPUT *TOTAL* TASK INFORMATION.
  1616.  
  1617. OTD2 SA1 TSK2 SET *TOTALS*
  1618. BX6 X1
  1619. SA6 WBUF
  1620. SA1 CALLS GET *TOTAL CALLS*
  1621. RJ CDD
  1622. LX6 18
  1623. SA6 WBUF+1
  1624. SA1 COMPLET GET *TOTAL COMPLETES*
  1625. RJ CDD
  1626. SA1 DESIRED GET *TOTAL DESIRED PERCENTAGE*
  1627. SA2 THO
  1628. LX6 24
  1629. SA6 WBUF+2
  1630. FX1 X1*X2
  1631. UX1 B2,X1
  1632. LX1 B2,X1
  1633. RJ CFD
  1634. SA1 ACTUAL GET *TOTAL ACTUAL PERCENTAGE*
  1635. SA2 HTHO
  1636. LX6 12
  1637. SA6 WBUF+3
  1638. FX1 X1*X2
  1639. UX1 B2,X1
  1640. LX1 B2,X1
  1641. RJ CFD
  1642. MX7 48
  1643. LX6 12
  1644. BX6 X7*X6
  1645. MX0 -12
  1646. SA6 WBUF+4
  1647. SA1 RASC SET NUMBER OF DEFAULT TASK CALLS
  1648. BX1 -X0*X1
  1649. RJ CDD CONVERT *DEFAULTS* TO DISPLAY CODE
  1650. LX6 18
  1651. MX7 42
  1652. BX6 X7*X6
  1653. SA6 TBUF+3
  1654. SA5 TCWD
  1655. LX5 42
  1656. WRITEW X5,WBUF,WBUFL
  1657. WRITEW X5,TBUF,TBUFL
  1658. WRITER X5,R
  1659. EQ OTDX RETURN
  1660.  
  1661. OTDA VFD 42/6LOUTPUT,18/1
  1662.  
  1663. CALLS DATA 0
  1664. COMPLET DATA 0
  1665. DESIRED DATA 0.0
  1666. ACTUAL DATA 0.0
  1667. THO DATA 1000.
  1668. HTHO DATA 100000.
  1669. TSKO DATA C*1 TASK CALLS COMPLETE DESIRED ACTUAL*
  1670. TSKOL EQU *-TSKO LENGTH OF *TSKO*
  1671. TBUF BSS 0
  1672. DATA C* *
  1673. DATA C* DEFAULT TASK CALLS= *
  1674. TBUFL EQU *-TBUF LENGTH OF *TBUF*
  1675. TSK2 DATA C* TOTALS *
  1676. BLNK DATA 4R
  1677. PES SPACE 4,20
  1678. ** PES - PROCESS END OF STIMULATION.
  1679. *
  1680. * EXIT ACCOUNT DAYFILE DUMPED.
  1681. * NUMBER OF LINE REGULATIONS REPORTED.
  1682. *
  1683. * USES X - 0, 1, 2, 3, 6.
  1684. * A - 2, 3, 6.
  1685. *
  1686. * CALLS CDD, DAD.
  1687. *
  1688. * MACROS MESSAGE.
  1689.  
  1690.  
  1691. PES SUBR ENTRY/EXIT
  1692. RJ DAD DUMP ACCOUNT DAYFILE
  1693. SA2 RAPP
  1694. MX0 -12
  1695. BX1 X1-X1
  1696. PES1 SX2 X2-1 COUNT TOTAL LINE REGULATIONS
  1697. SA3 TCWD+X2
  1698. LX3 24
  1699. BX3 -X0*X3
  1700. IX1 X1+X3
  1701. NZ X2,PES1 IF NOT END OF TABLE
  1702. ZR X1,PESX IF NO LINE REGULATIONS
  1703. RJ CDD
  1704. BX6 X4
  1705. SA6 PESA+3
  1706. MESSAGE PESA * NUMBER OF LINE REGULATIONS = NNNNNNNN*
  1707. EQ PESX RETURN
  1708.  
  1709. PESA DATA C* NUMBER OF LINE REGULATIONS = *
  1710. SPACE 4,10
  1711. * COMMON DECKS.
  1712.  
  1713.  
  1714. *CALL COMCCDD
  1715. *CALL COMCCFD
  1716. *CALL COMCCIO
  1717. *CALL COMCCPM
  1718. *CALL COMCSFM
  1719. *CALL COMCSYS
  1720. *CALL COMCWTW
  1721. SPACE 4,10
  1722. WBUF BSS 0
  1723. SPACE 4,10
  1724. LOC *O
  1725. QUAL
  1726.  
  1727.  
  1728. WBUFL EQU 5 LENGTH OF *WBUF*
  1729. RCOAL EQU *+WBUFL-RCOA LENGTH OF RECOVERY ROUTINE
  1730. TITLE K-DISPLAY INPUT PROCESSOR ROUTINES.
  1731. ABT SPACE 4,10
  1732. ** ABT - ABORT JOB.
  1733. *
  1734. * ENTRY (X0) = ERROR MESSAGE ADDRESS.
  1735. *
  1736. * EXIT PROGRAM ABORTED.
  1737. *
  1738. * MACROS ABORT, MESSAGE.
  1739.  
  1740.  
  1741. ABT BSS 0 ENTRY
  1742. MESSAGE X0
  1743. ABORT
  1744. KBI SPACE 4,20
  1745. ** KBI - PROCESS KEYBOARD INPUT.
  1746. *
  1747. * ENTRY (X6) = ADDRESS OF PARAMETER CONTROL TABLE.
  1748. * (X3) = DISPLAY BUFFER ADDRESS.
  1749. * (X7) = DISPLAY BUFFER END ADDRESS.
  1750. * (X0) = ERROR MESSAGE ADDRESS, IF ANY.
  1751. *
  1752. * EXIT INPUT PROCESSED.
  1753. *
  1754. * USES X - ALL.
  1755. * A - 0, 1, 2, 4, 5, 6, 7.
  1756. * B - 6, 7.
  1757. *
  1758. * CALLS SFN, UPC.
  1759. *
  1760. * MACROS CONSOLE, RECALL.
  1761.  
  1762.  
  1763. KBI SUBR ENTRY/EXIT
  1764. SA1 KBIA ENTER DISPLAY BUFFER ADDRESS
  1765. SA6 A1+B1 SET PARAMETER TABLE ADDRESS
  1766. BX6 X1+X3
  1767. SA7 A6+B1 SET END OF DISPLAY BUFFER
  1768. SA6 A7+B1
  1769. SA0 X7
  1770. CONSOLE A6
  1771. SX7 A0+
  1772. SA7 KBIA+3 DISPLAY BUFFER END ADDRESS
  1773. NZ X0,KMS IF MESSAGE REQUESTED
  1774. KBI1 SX6 B0+
  1775. SB6 KBUF
  1776. SB7 KBUF+KBUFL
  1777. KBI2 SA6 B6 CLEAR KEYBOARD BUFFER
  1778. SB6 B6+B1
  1779. LT B6,B7,KBI2 IF MORE TO CLEAR
  1780. KBI3 RECALL
  1781. SA5 KBUF CHECK KEYBOARD
  1782. ZR X5,KBI3 IF NOT READY
  1783. SA1 KBIB SET COORDINATES
  1784. SA2 KBIA+2
  1785. BX7 X1
  1786. MX0 -6
  1787. SA7 X2
  1788. KBI4 BX6 -X0*X5 LOCATE LAST WORD
  1789. LX7 X5 COPY INPUT
  1790. SA7 A7+B1
  1791. SA0 A7+B1
  1792. ZR X6,KBI5 IF LAST WORD OF INPUT
  1793. SA5 A5+B1
  1794. EQ KBI4 LOOP TO END OF INPUT
  1795.  
  1796. KBI5 BX1 X5 SPACE FILL NAME
  1797. RJ SFN
  1798. SX7 1R. ADD PERIOD
  1799. SA6 A5
  1800. LX7 54
  1801. SA7 A6+B1
  1802. SA6 A0-B1
  1803. SA5 KBUF UNPACK COMMAND
  1804. SX7 A0
  1805. SB7 IBUF
  1806. SA7 KBIA+3
  1807. RJ UPC
  1808. SA5 B7-B1 FIRST ENTRY WORD (MINUS 1)
  1809. NZ X6,KFE IF ERROR DETECTED
  1810. SA6 A0 CLEAR ERROR MESSAGE
  1811. SA6 KBUF CLEAR KEYBOARD BUFFER
  1812.  
  1813. * IDENTIFY NEXT OPTION.
  1814.  
  1815. KBI6 SA1 KBIA+1 SET PARAMETER TABLE ADDRESS
  1816. SA5 A5+B1 NEXT KEYBOARD WORD
  1817. SX2 1R+
  1818. BX6 X5-X2
  1819. ZR X6,KBI7 IF *+* TO ADVANCE MATRIX DISPLAY
  1820. SX2 1R-
  1821. BX6 X5-X2
  1822. NZ X6,KBI8 IF NOT *-* TO BACKUP MATRIX DISPLAY
  1823. KBI7 LX5 54 LEFT ADJUST AS PER NON-SEPARATOR INPUT
  1824. SX2 1R=
  1825. BX5 X2+X5
  1826. KBI8 MX0 42
  1827. SX2 1R=
  1828. SA4 X1 FIRST ENTRY
  1829. NZ X5,KBI9 IF NOT END OF KEYBOARD INPUT
  1830. SA1 KBID CHECK *GO* FLAG
  1831. NZ X1,KBI3 IF NOT SET
  1832. EQ KBIX RETURN
  1833.  
  1834. KBI9 BX3 X0*X4
  1835. IX6 X3+X2
  1836. BX7 X6-X5
  1837. ZR X7,KBI11 IF MATCH FOUND
  1838. SA4 A4+2
  1839. NZ X4,KBI9 IF NOT TO END OF TABLE
  1840. SA1 =0LGO CHECK WORD
  1841. SX0 =C*INCORRECT OPTION.*
  1842. BX6 X1-X5
  1843. ZR X6,KBI10 IF *GO*
  1844. SA1 =0LMIXED
  1845. BX6 X1-X5
  1846. NZ X6,KMS IF NOT *MIXED*
  1847. SX7 B1 SET MIXED MODE FLAG
  1848. SA7 MIX
  1849. KBI10 SA6 KBID CLEAR WAIT
  1850. EQ KBI6 PROCESS NEXT ENTRY
  1851.  
  1852. KBI11 SB7 X4 SET PROCESSOR ADDRESS
  1853. SA5 A5+B1 SET VALUE
  1854. SB6 B6-B1
  1855. JP B7 PROCESS OPTION
  1856.  
  1857. KBIA VFD 24/KBUF,18/0,18/0
  1858. CON 0 PARAMETER TABLE ADDRESS
  1859. CON 0 END OF DISPLAY BUFFER
  1860. CON 0
  1861.  
  1862. KBIB BSS 0
  1863. KDL 1,I,( )
  1864. KBIC BSS 0
  1865. KDL 1,M,( )
  1866.  
  1867. KBID CON 1 GO FLAG
  1868. KBR SPACE 4,10
  1869. ** KEYBOARD RETURN.
  1870.  
  1871.  
  1872. KBR SA5 A5 STORE VALUE FOR DISPLAY
  1873. SA1 A4+B1
  1874. MX0 42
  1875. BX6 X0*X5
  1876. SA6 X1
  1877. NZ X6,KBI6 IF NOT BLANK ARGUMENT
  1878. SA1 =1L
  1879. BX6 X1
  1880. SA6 A6
  1881. NZ X5,KBI6 IF MORE ARGUMENTS
  1882. SA1 KBID CHECK *GO* FLAG
  1883. NZ X1,KBI3 IF NOT SET
  1884. EQ KBIX RETURN
  1885. KFE SPACE 4,10
  1886. ** KFE - ISSUE FORMAT ERROR MESSAGE.
  1887.  
  1888.  
  1889. KFE SX0 =C*FORMAT ERROR.*
  1890. KMS SPACE 4,10
  1891. ** KMS - PROCESS KEYBOARD MESSAGE.
  1892.  
  1893.  
  1894. KMS SA2 KBIC SET COORDINATES
  1895. SA3 KBIA+3
  1896. SA1 X0
  1897. BX6 X2
  1898. SA6 X3
  1899. MX0 -6
  1900. KMS1 LX6 X1 COPY MESSAGE
  1901. BX7 -X0*X1
  1902. SA6 A6+B1
  1903. SA1 A1+B1
  1904. NZ X7,KMS1
  1905. SA7 A6+B1
  1906. SA7 KBUF CLEAR KEYBOARD BUFFER
  1907. EQ KBI1 PROCESS NEXT INPUT
  1908. KNF SPACE 4,10
  1909. ** KNF - IMPROPER NUMERIC PARAMETER.
  1910.  
  1911.  
  1912. KNF SX0 =C*IMPROPER NUMERIC PARAMETER.*
  1913. EQ KMS PROCESS KEYBOARD MESSAGE
  1914. PSP SPACE 4,20
  1915. ** PSP - PRESET PARAMETERS.
  1916. *
  1917. * ENTRY (A5) = ADDRESS OF PARAMETER BLOCK.
  1918. * (X5) = 1ST WORD OF 1ST PARAMETER.
  1919. * SEE *PARAM* MACRO FOR FORMATS.
  1920. *
  1921. * EXIT EACH PROCESSING ROUTINE IS EXECUTED UPON ITS DEFAULT
  1922. * VALUE.
  1923. *
  1924. * USES X - 0, 1, 2, 5, 6, 7.
  1925. * A - 1, 2, 5, 6 ,7.
  1926. * B - NONE.
  1927.  
  1928.  
  1929. PSP SUBR ENTRY/EXIT
  1930. SA1 PSPA CHANGE KEYBOARD RETURN
  1931. SA2 KBR
  1932. BX6 X1
  1933. LX7 X2
  1934. SA6 A2
  1935. SA7 A1
  1936. PSP1 SB7 X5 SET PROCESSOR
  1937. SA5 A5+B1 SET DEFAULT
  1938. MX0 42
  1939. BX6 X0*X5
  1940. NZ X6,PSP2 IF NOT BLANK DEFAULT
  1941. SX6 1R
  1942. LX6 54
  1943. PSP2 SA6 X5
  1944. BX5 X0*X5
  1945. JP B7 PROCESS PARAMETER
  1946.  
  1947. PSP3 SA5 A5+B1 NEXT TABLE ENTRY
  1948. NZ X5,PSP1 LOOP TO END OF TABLE
  1949. SX6 B1
  1950. SA1 PSPA RESET KEYBOARD RETURN
  1951. SA2 KBR
  1952. SA6 KBID SET GO FLAG TO WAIT
  1953. BX6 X1
  1954. LX7 X2
  1955. SA6 A2
  1956. SA7 A1
  1957. EQ PSPX RETURN
  1958.  
  1959. PSPA EQ PSP3
  1960. TOV SPACE 4,20
  1961. ** TOV - PROCESS TABLE OVERFLOW.
  1962. *
  1963. * ENTRY MORE FIELD LENGTH NEEDED BY MANAGED TABLES.
  1964. * (B6) = RETURN ADDRESS.
  1965. *
  1966. * EXIT FL INCREASED.
  1967. * (F.TEND) = NEW FL.
  1968. *
  1969. * USES X - 1, 3, 6, 7.
  1970. * A - 1, 6, 7.
  1971. *
  1972. * MACROS MEMORY.
  1973.  
  1974.  
  1975. TOV BSS 0 ENTRY
  1976. SX3 -B5
  1977. SA1 F.TEND GET OLD FL
  1978. AX3 6
  1979. SX3 X3+B1
  1980. LX3 6
  1981. IX6 X1+X3 UPDATE AVAILABLE MEMORY
  1982. SA6 A1
  1983. SX7 X6+FLFF
  1984. BX1 X7
  1985. LX7 30
  1986. SA7 TOVA
  1987. MEMORY ,A7,RECALL,X1
  1988. JP B6 RETURN TO CONTINUE PROCESSING
  1989.  
  1990. TOVA CON 0 STATUS WORD FOR FL REQUEST
  1991. TITLE REQUEST FILE PARAMETERS.
  1992. RSF SPACE 4,20
  1993. ** RSF - REQUEST SESSION FILE.
  1994. *
  1995. * ENTRY (X0) = ERROR MESSAGE.
  1996. *
  1997. * EXIT SESSION FILE ATTACHED AND REWOUND.
  1998. *
  1999. * USES X - ALL.
  2000. * A - 1, 4, 5, 6.
  2001. *
  2002. * CALLS KBI, PSP.
  2003. *
  2004. * MACORS GET, REWIND, SETUI, SKIPFF.
  2005.  
  2006.  
  2007. RSF SUBR ENTRY/EXIT
  2008. BX6 X0 SAVE ERROR MESSAGE
  2009. SA5 SFP PRESET PARAMETERS
  2010. SA6 RSFA
  2011. RJ PSP
  2012. SA1 RSFA SET ERROR MESSAGE
  2013. BX0 X1
  2014. RSF1 SX6 SFP SET PARAMETER CONTROL TABLE
  2015. SX3 FBUF SET DISPLAY BUFFER ADDRESS
  2016. SX7 FBUFE SET END OF DISPLAY BUFFER
  2017. RJ KBI PROCESS KEYBOARD INPUT
  2018. SA1 I CHECK FILE NAME
  2019. AX1 1
  2020. SX0 =C*FILE NAME NOT SET.*
  2021. ZR X1,RSF1 IF NOT SET
  2022. SA1 RSFB
  2023. NZ X1,RSF2 IF FILE SPECIFIED ON COMMAND
  2024. SA1 UI SET USER INDEX
  2025. SETUI X1
  2026. GET I
  2027. SA1 I CHECK STATUS
  2028. SX2 X1-2000B
  2029. PL X2,RSF3 IF FILE ERROR OCCURED
  2030. RSF2 REWIND I
  2031. SA4 FN CHECK FILE NUMBER
  2032. ZR X4,RSFX IF FIRST FILE
  2033. SKIPFF I,X4
  2034. EQ RSFX RETURN
  2035.  
  2036. RSF3 SA5 IBUF
  2037. MX3 12
  2038. MX4 12
  2039. RSF4 BX7 X3*X5 EDIT MESSAGE
  2040. ZR X7,RSF5 IF END OF MESAGE
  2041. AX4 12
  2042. LX3 -12
  2043. PL X3,RSF4
  2044. SA5 A5+B1
  2045. MX4 12
  2046. EQ RSF4 LOOP
  2047.  
  2048. RSF5 BX6 X4*X5
  2049. SX0 IBUF ISSUE ERROR
  2050. SA6 A5
  2051. EQ RSF1 RETRY
  2052.  
  2053. RSFA CON 0 ERROR MESSAGE ADDRESS
  2054. RSFB CON 0 FILE NAME FROM COMMAND
  2055. SFC SPACE 4,20
  2056. ** SFC - SET FILE COUNT.
  2057. *
  2058. * ENTRY (A5) = ADDRESS OF UNPACKED PARAMETER.
  2059. * (X5) = PARAMETER.
  2060. *
  2061. * EXIT TO *KBR*, IF NO ERROR.
  2062. * TO *KFE*, IF ERROR.
  2063. * (FN) = FILE COUNT.
  2064. *
  2065. * USES X - 0, 6, 7.
  2066. * A - 7.
  2067. * B - 7.
  2068. *
  2069. * CALLS DXB.
  2070.  
  2071.  
  2072. SFC BSS 0 ENTRY
  2073. SB7 B1 SET DECIMAL BASE
  2074. RJ DXB CONVERT VALUE
  2075. SX7 X6-1
  2076. SX0 =C*INCORRECT FILE NUMBER.*
  2077. AX6 17
  2078. NZ X6,KMS IF VALUE OUT OF RANGE
  2079. NG X7,KMS
  2080. SA7 FN
  2081. EQ KBR RETURN
  2082. SSF SPACE 4,20
  2083. ** SSF - SET SESSION FILE NAME.
  2084. *
  2085. * ENTRY (A5) = ADDRESS OF UNPACKED PARAMETER.
  2086. * (X5) = PARAMETER.
  2087. *
  2088. * EXIT TO *KBR*, IF NO ERROR.
  2089. * TO *KFE*, IF ERROR.
  2090. * (I) = FILE NAME.
  2091. *
  2092. * USES X - 2, 6, 7.
  2093. * A - 6.
  2094.  
  2095.  
  2096. SSF BSS 0 ENTRY
  2097. SX2 B1 STORE FILE NAME
  2098. SX7 X5
  2099. BX6 X2+X5
  2100. NZ X7,KFE IF SEPARATOR USED
  2101. SA6 I
  2102. EQ KBR RETURN
  2103. SUI SPACE 4,20
  2104. ** SUI - SET USER INDEX.
  2105. *
  2106. * ENTRY (A5) = ADDRESS OF UNPACKED PARAMETER.
  2107. * (X5) = PARAMETER.
  2108. *
  2109. * EXIT TO *KBR*, IF NO ERROR.
  2110. * TO *KMS*, IF ERROR.
  2111. * (UI) = USER INDEX.
  2112. *
  2113. * USES X - 0, 6, 7.
  2114. * A - 7.
  2115. * B - 7.
  2116. *
  2117. * CALLS DXB.
  2118.  
  2119.  
  2120. SUI BSS 0 ENTRY
  2121. SB7 B0 SET OCTAL BASE
  2122. RJ DXB CONVERT VALUE
  2123. BX7 X6
  2124. SX0 =C*INCORRECT USER INDEX.*
  2125. AX6 17
  2126. NZ X6,KMS IF VALUE OUT OF RANGE
  2127. SA7 UI
  2128. EQ KBR RETURN
  2129. TITLE REQUEST SESSION PARAMETERS.
  2130. RSP SPACE 4,20
  2131. ** RSP - REQUEST SESSION PARAMETERS.
  2132. *
  2133. * EXIT SESSION PARAMETERS PROCESSED.
  2134. *
  2135. * USES X - 0, 3, 5, 6, 7.
  2136. * A - 3.
  2137. *
  2138. * CALLS KBI, PSP.
  2139.  
  2140.  
  2141. RSP SUBR ENTRY/EXIT
  2142. SX6 1 RESET GO
  2143. SA5 STPA PRESET PARAMETERS
  2144. SA6 KBID
  2145. RJ PSP
  2146. BX0 X0-X0 CLEAR ERROR MESSAGE
  2147. SX6 STP SET PARAMETER CONTROL TABLE
  2148. SA3 RSPA SET DISPLAY BUFFER ADDRESS
  2149. SX7 DBUFE SET END OF DISPLAY BUFFER
  2150. RJ KBI PROCESS KEYBOARD INPUT
  2151. EQ RSPX RETURN
  2152.  
  2153. RSPA VFD 24/0,18/PBUF,18/DBUF
  2154. SAC SPACE 4,10
  2155. ** SAC - SET ACTIVATION COUNT.
  2156. *
  2157. * ENTRY (A5) = ADDRESS OF UNPACKED PARAMETER.
  2158. * (X5) = PARAMETER.
  2159. * (MODE) = STIMULATION MODE FLAG.
  2160. *
  2161. * EXIT TO *KBR*, IF NO ERROR.
  2162. * TO *KNF*, IF ERROR.
  2163. * (AC) = ACTIVATION COUNT.
  2164. *
  2165. * USES X - 1, 7.
  2166. * A - 1, 6.
  2167. * B - 7.
  2168. *
  2169. * CALLS DXB.
  2170.  
  2171.  
  2172. SAC BSS 0 ENTRY
  2173. SB7 B1 SET DECIMAL BASE
  2174. RJ DXB
  2175. NZ X4,KNF IF ERRORS
  2176. ZR X6,KNF IF TOO FEW
  2177. SA1 MODE
  2178. NZ X1,SAC1 IF INTERNAL STIMULATION
  2179. SX1 100B
  2180. IX7 X1-X6
  2181. NG X7,KNF IF MORE THAN 100 TERMINALS
  2182. SAC1 SA6 AC
  2183. EQ KBR RETURN
  2184. SAD SPACE 4,20
  2185. ** SAD - SET ACTIVATION DELAY.
  2186. *
  2187. * ENTRY (A5) = ADDRESS OF UNPACKED PARAMETER.
  2188. * (X5) = PARAMETER.
  2189. *
  2190. * EXIT TO *KBR*, IF NO ERROR.
  2191. * TO *KNF*, IF ERROR.
  2192. * (AD) = ACTIVATION DELAY.
  2193. *
  2194. * USES X - 6, 7.
  2195. * A - 7.
  2196. * B - 7.
  2197. *
  2198. * CALLS DXB.
  2199.  
  2200.  
  2201. SAD BSS 0 ENTRY
  2202. SB7 B1 SET DECIMAL BASE
  2203. RJ DXB
  2204. NZ X4,KNF IF ERRORS
  2205. ZR X6,KNF IF TOO SHORT A DELAY
  2206. BX7 X6
  2207. AX6 7
  2208. NZ X6,KNF
  2209. SA7 AD SET ACTIVATION DELAY
  2210. EQ KBR RETURN
  2211. SLS SPACE 4,20
  2212. ** SLS - SET LINE SPEED.
  2213. *
  2214. * ENTRY (A5) = ADDRESS OF UNPACKED PARAMETER.
  2215. * (X5) = PARAMETER.
  2216. *
  2217. * EXIT TO *KBR*, IF NO ERROR.
  2218. * TO *KNF*, IF ERROR.
  2219. * (LS) = LINE SPEED.
  2220. *
  2221. * USES X - 2, 7.
  2222. * A - 6.
  2223. * B - 7.
  2224. *
  2225. * CALLS DXB.
  2226.  
  2227.  
  2228. SLS BSS 0 ENTRY
  2229. SB7 B1 SET DECIMAL BASE
  2230. RJ DXB
  2231. NZ X4,KNF IF ERRORS
  2232. SX2 1000 SET MILLISECONDS
  2233. ZR X6,KNF IF ZERO VALUE
  2234. SA6 LS SAVE LINE SPEED
  2235. IX7 X2/X6
  2236. ZR X7,KNF IF TOO HIGH
  2237. EQ KBR RETURN
  2238. SIS SPACE 4,20
  2239. ** SIS - SET INPUT SPEED.
  2240. *
  2241. * ENTRY (A5) = ADDRESS OF UNPACKED PARAMETER.
  2242. * (X5) = PARAMETER.
  2243. *
  2244. * EXIT TO *KBR*, IF NO ERROR.
  2245. * TO *KNF*, IF ERROR.
  2246. * (IS) = INPUT SPEED.
  2247. *
  2248. * USES X - 2, 7.
  2249. * A - 6.
  2250. * B - 7.
  2251. *
  2252. * CALLS DXB.
  2253.  
  2254.  
  2255. SIS BSS 0 ENTRY
  2256. SB7 B1 SET DECIMAL BASE
  2257. RJ DXB
  2258. NZ X4,KNF IF ERRORS
  2259. SX2 1000 SET MILLISECONDS
  2260. ZR X6,KNF IF ZERO VALUE
  2261. SA6 IS SAVE INPUT SPEED
  2262. IX7 X2/X6
  2263. ZR X7,KNF IF TOO HIGH
  2264. EQ KBR RETURN
  2265. SLD SPACE 4,10
  2266. ** SLD - SET LOGOUT DELAY.
  2267. *
  2268. * ENTRY (A5) = ADDRESS OF UNPACKED PARAMETER.
  2269. * (X5) = PARAMETER.
  2270. *
  2271. * EXIT TO *KBR*, IF NO ERROR.
  2272. * TO *KNF*, IF ERROR.
  2273. * (LD) = LOGOUT DELAY.
  2274. *
  2275. * USES X - 6.
  2276. * A - 6.
  2277. * B - 7.
  2278. *
  2279. * CALLS DXB.
  2280.  
  2281.  
  2282. SLD BSS 0 ENTRY
  2283. SB7 B1 SET DECIMAL BASE
  2284. RJ DXB
  2285. NZ X4,KNF IF ERRORS
  2286. SA6 LD SAVE LOGOUT DELAY
  2287. AX6 12
  2288. NZ X6,KNF IF .GT. 4095
  2289. EQ KBR RETURN
  2290. SNT SPACE 4,20
  2291. ** SNT - SET NUMBER OF TERMINALS.
  2292. *
  2293. * ENTRY (A5) = ADDRESS OF UNPACKED PARAMETER.
  2294. * (X5) = PARAMETER.
  2295. *
  2296. * EXIT TO *KBR*, IF NO ERROR.
  2297. * TO *KNF*, IF ERROR.
  2298. * (NT) = NUMBER OF TERMINALS.
  2299. *
  2300. * USES X - 1, 2, 3, 6.
  2301. * A - 1, 2, 6.
  2302. * B - 2, 3.
  2303. *
  2304. * CALLS DXB.
  2305.  
  2306.  
  2307. SNT BSS 0 ENTRY
  2308. SB7 B1 SET DECIMAL BASE
  2309. RJ DXB
  2310. NZ X4,KNF IF ERRORS
  2311. SA1 MNT
  2312. IX7 X1-X6
  2313. SB2 X6
  2314. NG X7,KNF IF TOO MANY TERMINALS
  2315. ZR X6,KNF IF TOO FEW
  2316. SA6 NT
  2317. SA2 F.TTER
  2318. SX3 B1
  2319. SB3 X1
  2320. LX3 58
  2321. SA1 X2
  2322. SNT1 BX6 -X3*X1 CLEAR DISABLE BIT
  2323. SA6 A1
  2324. SB2 B2-B1
  2325. SB3 B3-B1
  2326. SA1 A1+B1
  2327. NZ B2,SNT1 IF MORE TERMINALS
  2328. SNT2 ZR B3,KBR IF END OF TABLE
  2329. BX6 X3+X1 SET DISABLE BIT
  2330. SA6 A1
  2331. SB3 B3-B1
  2332. SA1 A1+B1
  2333. EQ SNT2 LOOP TO END OF TABLE
  2334. SRC SPACE 4,20
  2335. ** SRC - SET REPEAT COUNT.
  2336. *
  2337. * ENTRY (A5) = ADDRESS OF UNPACKED PARAMETER.
  2338. * (X5) = PARAMETER.
  2339. *
  2340. * EXIT TO *KBR*, IF NO ERROR.
  2341. * TO *KNF*, IF ERROR.
  2342. * (RC) = REPEAT COUNT.
  2343. *
  2344. * USES X - 6, 7.
  2345. * A - 6.
  2346. * B - 7.
  2347. *
  2348. * CALLS DXB.
  2349.  
  2350.  
  2351. SRC BSS 0 ENTRY
  2352. SB7 B1 SET DECIMAL BASE
  2353. RJ DXB
  2354. NZ X4,KNF IF ERRORS
  2355. SA6 RC SAVE REPEAT COUNT
  2356. BX7 X6
  2357. AX6 5
  2358. NZ X6,KNF IF .GT 31
  2359. EQ KBR RETURN
  2360. SRO SPACE 4,20
  2361. ** SRO - SET RECOVER OUTPUT.
  2362. *
  2363. * ENTRY (A5) = ADDRESS OF UNPACKED PARAMETER.
  2364. * (X5) = PARAMETER.
  2365. *
  2366. * EXIT TO *KBR*, IF NO ERROR.
  2367. * TO *KFE*, IF ERROR.
  2368. * (RO) = RECOVER OUTPUT STATUS.
  2369. *
  2370. * USES X - 1, 2, 6, 7.
  2371. * A - 1, 2, 6.
  2372.  
  2373.  
  2374. SRO BSS 0 ENTRY
  2375. SA1 =0LOFF
  2376. SA2 =0LON
  2377. BX6 X1-X5
  2378. BX7 X2-X5
  2379. ZR X6,SRO1 IF OFF
  2380. NZ X7,KFE IF NOT ON
  2381. SX6 1
  2382. SRO1 SA6 RO SET RECOVER OUTPUT FLAG
  2383. EQ KBR RETURN
  2384. STT SPACE 4,20
  2385. ** STT - SET THINK TIME.
  2386. *
  2387. * ENTRY (A5) = ADDRESS OF UNPACKED PARAMETER.
  2388. * (X5) = PARAMETER.
  2389. *
  2390. * EXIT TO *KBR*, IF NO ERROR.
  2391. * TO *KNF*, IF ERROR.
  2392. * (TT) = THINK TIME.
  2393. *
  2394. * USES X - 6, 7.
  2395. * A - 6.
  2396. * B - 7.
  2397. *
  2398. * CALLS DXB.
  2399.  
  2400.  
  2401. STT BSS 0 ENTRY
  2402. SB7 B1 SET DECIMAL BASE
  2403. RJ DXB
  2404. NZ X4,KNF IF ERRORS
  2405. SA6 TT SAVE THINK TIME
  2406. BX7 X6
  2407. AX6 7
  2408. NZ X6,KNF IF .GT 127
  2409. EQ KBR RETURN
  2410. SLF SPACE 4,20
  2411. ** SLF - SET LOOP FLAG.
  2412. *
  2413. * ENTRY (A5) = ADDRESS OF UNPACKED PARAMETER.
  2414. * (X5) = PARAMETER.
  2415. *
  2416. * EXIT TO *KBR*, IF NO ERROR.
  2417. * TO *KMS*, IF ERROR.
  2418. * (LP) = LOOP FLAG.
  2419. *
  2420. * USES X - 1, 2, 6, 7.
  2421. * A - 1, 2, 6.
  2422.  
  2423.  
  2424. SLF BSS 0 ENTRY
  2425. SA1 =0LYES
  2426. SA2 =0LNO
  2427. BX6 X1-X5
  2428. BX7 X2-X5
  2429. ZR X6,SLF1 IF LOOP ON SESSION FILE
  2430. NZ X7,KFE IF ERROR
  2431. SX6 B1+
  2432. SLF1 SA6 LP SET OPTION
  2433. EQ KBR RETURN
  2434. TTI SPACE 4,20
  2435. ** TTI - SET THINK TIME INCREMENT.
  2436. *
  2437. * ENTRY (A5) = ADDRESS OF UNPACKED PARAMETER.
  2438. * (X5) = PARAMETER.
  2439. *
  2440. * EXIT TO *KBR*, IF NO ERROR.
  2441. * TO *KNF*, IF ERROR.
  2442. * (TI) = THINK TIME INCREMENT.
  2443. *
  2444. * USES X - 6, 7.
  2445. * A - 6.
  2446. * B - 2, 3.
  2447. *
  2448. * CALLS DXB.
  2449.  
  2450.  
  2451. TTI BSS 0 ENTRY
  2452. SB7 B1 SET DECIMAL BASE
  2453. RJ DXB
  2454. NZ X4,KNF IF ERRORS
  2455. CX7 X6 CHECK BIT COUNT
  2456. SB3 X6
  2457. SB2 X7
  2458. GT B2,B1,KNF IF MORE THAN 1 BIT
  2459. LE B3,B1,TTI1 IF VALUE = 0 OR 1
  2460. SX6 X6-1
  2461. BX7 X6
  2462. AX7 6
  2463. NZ X7,KNF IF .GT 64
  2464. TTI1 SA6 TM STORE TIME MASK
  2465. EQ KBR RETURN
  2466. TITLE PROCESS MIXED MODE PARAMETERS.
  2467. RMP SPACE 4,20
  2468. ** RMP - REQUEST MIXED MODE INPUT.
  2469. *
  2470. * ENTRY (MIX) = MIXED MODE FLAG.
  2471. *
  2472. * EXIT MIXED MODE INPUT PROCESSED.
  2473. * *TSPT* UPDATED.
  2474. *
  2475. * USES X - 0, 1, 3, 6, 7.
  2476. * A - 1, 3, 6.
  2477. *
  2478. * CALLS CTC, DMX, KBI, MXD.
  2479.  
  2480.  
  2481. RMP SUBR ENTRY/EXIT
  2482. RJ MXD INITIALIZE *TSPT*
  2483. SA1 MIX
  2484. ZR X1,RMPX IF NO MIXED INPUT REQUESTED
  2485. SA1 F.TSPT SET INDEX INTO *TSPT*
  2486. BX6 X1
  2487. SA6 LINE
  2488. RJ DMX DISPLAY MATRIX
  2489. BX0 X0-X0 CLEAR MESSAGE ADDRESS
  2490. RMP1 SX6 B1+ SET WAIT FOR *GO*
  2491. SA6 KBID
  2492. SX6 MTP
  2493. SA3 MSPA
  2494. SX7 LDISPE
  2495. RJ KBI PROCESS KEYBOARD INPUT
  2496. RJ CTC CHECK TERMINAL COUNT
  2497. SX0 =C* ASSIGNED TTYS GREATER THAN (NT).*
  2498. NG X3,RMP1 IF TOO MANY TTYS ASSIGNED
  2499. SX0 =C* NO TTYS ASSIGNED.*
  2500. ZR X7,RMP1 IF NO TTYS ASSIGNED
  2501. SA7 NT UPDATE NUMBER OF TTYS ASSIGNED
  2502. EQ RMPX RETURN
  2503. MXD SPACE 4,10
  2504. ** MXD - MIXED PARAMETER INITIAL SETUP.
  2505. *
  2506. * ENTRY (TT) = THINK TIME.
  2507. * (LS) = LINE SPEED.
  2508. * (RC) = REPEAT COUNT.
  2509. * (IS) = INPUT SPEED.
  2510. * (LD) = LOGOUT DELAY.
  2511. * (NT) = NUMBER OF TERMINALS.
  2512. *
  2513. * EXIT SESSION POINTER TABLE INITIALIZED.
  2514. *
  2515. * USES X - 1, 2, 3, 4, 5, 6, 7.
  2516. * A - 1, 2, 3, 4, 5, 6, 7.
  2517. * B - 2, 4, 6.
  2518.  
  2519.  
  2520. MXD SUBR ENTRY/EXIT
  2521.  
  2522. * BUILD *TSPT* ENTRY.
  2523.  
  2524. SB6 0
  2525. SA4 L.TSPT SET *TSPT* LENGTH
  2526. SB4 X4
  2527. SA1 TT SET FIRST WORD OF *TSPT*
  2528. LX1 12
  2529. SA2 LS
  2530. BX3 X1+X2
  2531. LX3 36
  2532. SA1 RC
  2533. LX1 18
  2534. BX6 X3+X1
  2535. MX1 -18
  2536. SA2 IS BUILD SECOND WORD OF *TSPT* ENTRY
  2537. LX2 12
  2538. SA5 LD
  2539. BX5 X2+X5
  2540. LX5 36
  2541. SA4 F.TSPT
  2542.  
  2543. * BUILD *TSPT* TABLE.
  2544.  
  2545. MXD1 SA3 X4+B6 GET *TSPT* ENTRY
  2546. BX3 -X1*X3
  2547. IX7 X6+X3
  2548. SA7 A3
  2549. SB6 B6+1
  2550. SA3 X4+B6 SET *TSPT* WORD-2
  2551. BX7 X5
  2552. SA7 A3
  2553. SB6 B6+1
  2554. NE B6,B4,MXD1 IF MORE ENTRIES
  2555.  
  2556. * SET TERMINAL COUNT.
  2557.  
  2558. SB6 0
  2559. SA1 NT TERMINAL COUNT
  2560. SB2 X1
  2561. SA2 =100000000B GET INCREMENT VALUE
  2562. MXD2 SA3 X4+B6 UPDATE TTY COUNT FOR THIS TERMINAL
  2563. IX6 X3+X2
  2564. SA6 A3
  2565. SB2 B2-1 DECREMENT TTY COUNT
  2566. ZR B2,MXDX IF ALL TTYS ACCOUNTED FOR
  2567. SB6 B6+2
  2568. NE B6,B4,MXD2 IF NOT END OF *TSPT* TABLE
  2569. SB6 0
  2570. EQ MXD2 LOOP
  2571. DMX SPACE 4,20
  2572. ** DMX - DISPLAY MATRIX.
  2573. *
  2574. * ENTRY (LINE) = CURRENT INDEX INTO *TSPT*.
  2575. * (NT) = NUMBER OF TERMINALS ALLOWED.
  2576. *
  2577. * EXIT K-DISPLAY MATRIX SETUP.
  2578. *
  2579. * USES X - 0, 1, 2, 3, 6, 7.
  2580. * A - 1, 2, 3, 6, 7.
  2581. * B - 6, 7.
  2582. *
  2583. * CALLS CDD, CLR, CTC, SDL.
  2584.  
  2585.  
  2586. DMX SUBR ENTRY/EXIT
  2587. RJ CLR CLEAR MATRIX DISPLAY
  2588. SA1 LINE SET INDEX INTO *TSPT*
  2589. BX6 X1
  2590. SA6 DMXA
  2591. SX7 X1+SDISN*2
  2592. SA1 =0LMORE
  2593. SA2 F.TSPT
  2594. SA3 L.TSPT
  2595. IX2 X2+X3
  2596. IX3 X7-X2
  2597. NG X3,DMX1 IF NOT END OF *TSPT* BEFORE END OF DISPLAY
  2598. BX7 X2
  2599. SA1 =1L
  2600. DMX1 SA7 DMXB
  2601. BX6 X1
  2602. SA6 MORE STORE *MORE* OR * * IN DISPLAY BUFFER
  2603. SB7 SDIS (B7) = CURRENT DISPLAY BUFFER ADDRESS
  2604. DMX2 SA1 DMXA
  2605. SB6 X1+
  2606. RJ SDL SET DISPLAY LINE
  2607. SA1 DMXA UPDATE *TSPT* INDEX
  2608. SA2 DMXB
  2609. SX6 X1+2
  2610. SA6 A1
  2611. IX2 X6-X2
  2612. NG X2,DMX2 IF NOT END OF DISPLAY
  2613.  
  2614. * SET SUMMARY INFORMATION AT BOTTOM OF DISPLAY.
  2615.  
  2616. RJ CTC CHECK TERMINAL COUNT
  2617. BX1 X7
  2618. RJ CDD
  2619. BX6 X4 DISPLAY NUMBER OF TTYS ASSIGNED
  2620. SA6 ASIGN
  2621. SA1 NT DISPLAY NUMBER OF TTYS ALLOWED
  2622. RJ CDD
  2623. BX6 X4
  2624. SA6 PERMIT
  2625. EQ DMXX RETURN
  2626.  
  2627. DMXA CON 0 CURRENT INDEX INTO *TSPT*
  2628. DMXB CON 0 LIMIT ADDRESS OF *TSPT* FOR DISPLAY
  2629. SCF SPACE 4,20
  2630. ** SCF - SET CHANGE FILE.
  2631. *
  2632. * ENTRY (A5) = ADDRESS OF UNPACKED PARAMETER.
  2633. * (X5) = PARAMETER.
  2634. *
  2635. * EXIT TO *KBR*, IF NO ERROR.
  2636. * TO *KMS*, IF ERROR.
  2637. * MATRIX CHANGE FILE READ AND PROCESSED.
  2638. *
  2639. * USES X - 0, 1, 2, 5, 6, 7.
  2640. * A - 1, 2, 5, 6.
  2641. * B - 6, 7.
  2642. *
  2643. * CALLS DMX, MXP, UPC.
  2644. *
  2645. * MACROS GET, READ, READC, REWIND, SETUI.
  2646.  
  2647.  
  2648. SCF BSS 0 ENTRY
  2649. SA5 A5 GET VALUE FOR DISPLAY
  2650. SA1 A4+B1 SET FILE NAME IN DISPLAY
  2651. MX0 42
  2652. BX6 X0*X5
  2653. SA6 X1
  2654. SX2 B1
  2655. SX7 X5
  2656. BX6 X2+X5
  2657. NZ X7,KFE IF SEPARATOR USED
  2658. SA6 I STORE FILE NAME IN FET
  2659. AX6 1
  2660.  
  2661. * GET CHANGE FILE.
  2662.  
  2663. SX0 =C* FILE NAME NOT SET.*
  2664. ZR X6,KMS IF FILE NAME NOT SPECIFIED
  2665. SA1 UI
  2666. SETUI X1 SET USER INDEX
  2667. GET I GET PF FOR MATRIX CHANGES
  2668. SA1 I CHECK FILE STATUS
  2669. SX2 X1-2000B
  2670. PL X2,SCF2 IF FILE ERROR OCCURRED
  2671.  
  2672. * PROCESS CHANGE FILE.
  2673.  
  2674. REWIND I
  2675. READ I READ RECORD INTO CIO BUFFER
  2676. SCF1 READC I,KBUF,KBUFL READ FILE ENTRY INTO WORKING BUFFER
  2677. NZ X1,KBI3 IF END OF RECORD
  2678. SA5 KBUF FWA OF COMMAND
  2679. SB7 ZBUF ADDRESS OF FIRST PARAMETER
  2680. RJ UPC UNPACK COMMAND ( MX=,,,,.)
  2681. SA5 B7 ADDRESS OF FIRST PARAMETER
  2682. SA5 A5+B1
  2683. SB6 B6-1 DECREMENT PARAMETER COUNT
  2684. RJ MXP PROCESS INPUT
  2685. RJ DMX SETUP MIXED MATRIX DISPLAY
  2686. EQ SCF1 GO PROCESS NEXT ENTRY
  2687.  
  2688. * PROCESS FILE ERROR.
  2689.  
  2690. SCF2 SX0 =C* FILE ERROR.*
  2691. SA2 I
  2692. LX2 59-11
  2693. PL X2,KMS IF NOT SET
  2694. SX0 =C* FILE NOT FOUND.*
  2695. EQ KMS ISSUE K-DISPLAY MESSAGE
  2696.  
  2697. ZBUF BSSZ 10
  2698. MXP SPACE 4,20
  2699. ** MXP - MIXED INPUT PROCESSOR.
  2700. *
  2701. * ENTRY (A5) = FWA OF MIXED MODE INPUT.
  2702. *
  2703. * EXIT MIXED MODE INPUT PROCESSED.
  2704. *
  2705. * CALLS DMX, MXP.
  2706.  
  2707.  
  2708. MIN RJ MXP MIXED MODE PROCESSOR
  2709. RJ DMX DISPLAY UPDATED MATRIX
  2710. EQ KBI1 PROCESS MORE INPUT
  2711.  
  2712. MXP SPACE 4,20
  2713. ** MXP - MIXED MODE PROCESSOR.
  2714. *
  2715. * ENTRY (A5) = FWA OF MIXED MODE INPUT.
  2716. *
  2717. * EXIT *TSPT* UPDATED WITH PROCESSED INPUT.
  2718. * TO *KNF* IF ERROR IN INPUT.
  2719. *
  2720. * USES X - 0, 1, 2, 3, 4, 5, 6.
  2721. * A - 1, 3, 4, 5, 6.
  2722. * B - 2, 3, 6, 7.
  2723. *
  2724. * CALLS DXB, MMP.
  2725.  
  2726.  
  2727. MXP SUBR ENTRY/EXIT
  2728. SB7 B1
  2729. ZR B6,MXPX IF NO PARAMETER
  2730. MX0 42
  2731. SA5 A5 PROCESS FIRST SCRIPT NUMBER
  2732. BX5 X0*X5
  2733. RJ DXB
  2734. NZ X4,KNF IF ERRORS
  2735. ZR X6,KNF IF ZERO ENTRY
  2736. SA6 FSCR
  2737. SB6 B6-B1
  2738. ZR B6,MXPX IF NO MORE PARAMETERS
  2739. SA5 A5
  2740. MX0 42
  2741. SX2 X5-1R-
  2742. NZ X2,MXP1 IF ONLY ONE SCRIPT SPECIFIED
  2743. SA5 A5+B1 PROCESS SECOND SCRIPT NUMBER
  2744. BX5 X0*X5
  2745. RJ DXB
  2746. NZ X4,KNF IF ERRORS
  2747. SB6 B6-B1
  2748. ZR B6,MXPX IF NO MORE PARAMETERS
  2749. MXP1 SA6 LSCR
  2750. SA1 FSCR VALIDATE SCRIPT ENTRIES
  2751. SA2 SRCNT
  2752. IX1 X6-X1
  2753. IX2 X2-X6
  2754. NG X1,KNF IF FIRST SCRIPT .GT. LAST SCRIPT
  2755. NG X2,KNF IF LAST SCRIPT TO LARGE
  2756. RJ MMP MIXED MODE PROCESSOR
  2757.  
  2758. * UPDATE *TSPT* TABLE WITH PROCESSED INFORMATION.
  2759.  
  2760. SA2 FSCR SET NUMBER OF SCRIPTS TO UPDATE
  2761. SA3 LSCR
  2762. IX3 X3-X2
  2763. SB3 X3+B1
  2764. SB2 X2-1 POINTER TO FIRST *TSPT* ENTRY
  2765. SB2 B2+B2
  2766. SA4 F.TSPT FWA *TSPT*
  2767. MXP2 SA5 X4+B2 GET NEXT *TSPT* ENTRY
  2768. LX5 12
  2769. MX3 48
  2770. SA1 TT
  2771. NG X1,MXP3 IF NULL TT
  2772. BX5 X3*X5 SET NEW THINK TIME
  2773. BX5 X5+X1
  2774. MXP3 LX5 12
  2775. SA1 LS
  2776. NG X1,MXP4 IF NULL LS
  2777. BX5 X3*X5 SET NEW LINE SPEED
  2778. BX5 X5+X1
  2779. MXP4 LX5 12
  2780. SA1 TY
  2781. NG X1,MXP5 IF NULL TTYS
  2782. BX5 X3*X5 SET NEW NUMBER OF TERMINALS
  2783. BX5 X5+X1
  2784. MXP5 LX5 6
  2785. SA1 RC
  2786. NG X1,MXP6 IF NULL RC
  2787. MX3 54
  2788. BX5 X3*X5 SET NEW REPEAT COUNT
  2789. BX5 X5+X1
  2790. MXP6 LX5 18
  2791. BX6 X5
  2792. SA6 A5 REPLACE *TSPT* ENTRY
  2793. SB2 B2+B1
  2794. SA5 X4+B2 SET SECOND WORD OF *TSPT* ENTRY
  2795. LX5 12
  2796. MX3 48
  2797. SA1 IS
  2798. NG X1,MXP7 IF NULL *IS*
  2799. BX5 X3*X5 SET NEW INPUT SPEED
  2800. BX5 X5+X1
  2801. MXP7 LX5 12
  2802. SA1 LD
  2803. NG X1,MXP8 IF NULL *LD*
  2804. BX5 X3*X5 SET NEW LOGOUT DELAY
  2805. BX5 X5+X1
  2806. MXP8 LX5 36
  2807. BX6 X5
  2808. SA6 A5 REPLACE SECOND WORD OF *TSPT* ENTRY
  2809. SB2 B2+B1
  2810. SB3 B3-1
  2811. NE B3,MXP2 IF MORE ENTRIES TO CHANGE
  2812. EQ MXPX RETURN
  2813.  
  2814.  
  2815. LSCR CON 0 LAST SCRIPT
  2816. FSCR CON 0 FIRST SCRIPT
  2817. RADDR CON 0 RELOCATON ADDRESS
  2818. LINE CON 0 INDEX INTO *TSPT*
  2819. MIX CON 0 MIXED MODE FLAG
  2820. MSPA VFD 24/0,18/RDISP,18/LDISP
  2821. MMP SPACE 4,20
  2822. ** MMP - MIXED MODE PROCESSOR.
  2823. *
  2824. * ENTRY (B6) = NUMBER OF ARGUMENTS.
  2825. * (A5) = FWA OF ARGUMENTS TO PROCESS.
  2826. *
  2827. * USES X - 0, 1, 2, 5, 6.
  2828. * A - 1, 5, 6.
  2829. * B - 5, 6, 7.
  2830. *
  2831. * CALLS DXB.
  2832.  
  2833.  
  2834. MMP SUBR ENTRY/EXIT
  2835. BX6 X6-X6
  2836. SA6 MMPA
  2837. SX1 B6-TARGL-1
  2838. PL X1,KNF IF TOO MANY CHARACTERS
  2839. SB7 B1 ASSUME DECIMAL CONVERSION
  2840. SB5 TARGL PRESET VALUES
  2841. MX6 1
  2842. MMP1 SA1 TARG-1+B5
  2843. AX1 18
  2844. SA6 X1
  2845. SB5 B5-1
  2846. PL B5,MMP1 IF MORE TO SET
  2847.  
  2848. * PROCESS ARGUMENTS.
  2849.  
  2850. MMP2 ZR B6,MMPX IF NO MORE INPUT
  2851. SA5 A5+B1
  2852. ZR X5,MMP4 IF NULL ENTRY
  2853. RJ DXB
  2854. NZ X4,KNF IF ERROR
  2855. SA1 MMPA
  2856. SA1 TARG+X1
  2857. PL X1,MMP3 IF ZERO VALUE ALLOWED
  2858. ZR X6,KNF IF ZERO VALUE ENTERED
  2859. MMP3 MX0 -18
  2860. BX2 -X0*X1
  2861. IX2 X2-X6
  2862. NG X2,KNF IF ENTRY TOO LARGE
  2863. AX1 18 STORE VALUE
  2864. SA6 X1
  2865. MMP4 SB6 B6-B1
  2866. SA1 MMPA ADVANCE INDEX
  2867. SX6 X1+B1
  2868. SA6 A1
  2869. EQ MMP2 LOOP FOR ALL PARAMETERS
  2870.  
  2871. MMPA CON 0
  2872. TARG SPACE 4,20
  2873. ** TARG - TABLE OF ARGUMENTS.
  2874. *
  2875. *T 1/Z, 23/ 0, 18/ ADDR , 18/ VALUE
  2876. *
  2877. * Z IF SET, ZERO NOT ALLOWED.
  2878. * ADDR ADDRESS TO STORE VALUE.
  2879. * VALUE MAXIMUM VALUE ALLOWED FOR PARAMETER.
  2880.  
  2881.  
  2882. TARG BSS 0
  2883. LOC 0
  2884. VFD 1/0,23/0,18/TY,18/0
  2885. VFD 1/1,23/0,18/LS,18/1000
  2886. VFD 1/1,23/0,18/IS,18/1000
  2887. VFD 1/0,23/0,18/TT,18/177
  2888. VFD 1/0,23/0,18/LD,18/4095
  2889. VFD 1/0,23/0,18/RC,18/31
  2890. LOC *O
  2891. TARGL EQU *-TARG NUMBER OF PARAMETERS
  2892. CLR SPACE 4,20
  2893. ** CLR - CLEAR MATRIX DISPLAY.
  2894. *
  2895. * EXIT MATRIX DISPLAY CLEARED.
  2896. *
  2897. * USES X - 0, 1, 2, 6, 7.
  2898. * A - 1, 6, 7.
  2899. * B - 5, 6, 7.
  2900.  
  2901.  
  2902. CLR SUBR ENTRY/EXIT
  2903. SB7 SDISN NUMBER OF DISPLAY LINES TO CLEAR
  2904. SB6 SDIS CURRENT ADDRESS OF BUFFER
  2905. SA1 =10H
  2906. BX6 X1
  2907. MX0 -36
  2908. BX2 -X0*X1
  2909. CLR1 SB5 SDISL-1 WORDS PER DISPLAY LINE
  2910. CLR2 SA6 B6+B5
  2911. SB5 B5-B1
  2912. NZ B5,CLR2 IF NOT END OF LINE
  2913. SA1 B6+B5 SAVE CONTROL BYTES
  2914. BX1 X0*X1
  2915. BX7 X1+X2
  2916. SA7 A1
  2917. SB6 B6+SDISL START OF NEXT LINE
  2918. SB7 B7-1
  2919. NZ B7,CLR1 IF NOT END OF DISPLAY
  2920. EQ CLRX RETURN
  2921. MNS SPACE 4,20
  2922. ** MNS - PAGE MATRIX DISPLAY BACKWARDS.
  2923. *
  2924. * ENTRY (LINE) = CURRENT INDEX INTO *TSPT*.
  2925. *
  2926. * EXIT (LINE) = UPDATED INDEX INTO *TSPT*.
  2927. * TO *KBI3*.
  2928. *
  2929. * USES X - 1, 2, 6.
  2930. * A - 1, 2, 6.
  2931. *
  2932. * CALLS DMX.
  2933.  
  2934.  
  2935. MNS BSS 0 ENTRY
  2936. SA1 LINE
  2937. SA2 F.TSPT
  2938. SX6 X1-SDISN*2
  2939. IX1 X2-X6
  2940. NG X1,MNS1 IF NOT BEGINNING OF *TSPT*
  2941. SX6 X2+ POSITION TO BEGINNING OF *TSPT*
  2942. MNS1 SA6 A1+
  2943. RJ DMX UPDATE MATRIX DISPLAY
  2944. EQ KBI3 PROCESS KEYBOARD INPUT
  2945. PLS SPACE 4,10
  2946. ** PLS - PAGE MATRIX DISPLAY FORWARD.
  2947. *
  2948. * ENTRY (LINE) = CURRENT INDEX INTO *TSPT*.
  2949. *
  2950. * EXIT (LINE) = UPDATED INDEX INTO *TSPT*.
  2951. *
  2952. * USES X - 1, 2, 3, 6.
  2953. * A - 1, 2, 3, 6.
  2954. *
  2955. * CALLS DMX.
  2956.  
  2957.  
  2958. PLS BSS 0 ENTRY
  2959. SA1 LINE
  2960. SX6 X1+SDISN*2
  2961. SA2 F.TSPT
  2962. SA3 L.TSPT
  2963. IX3 X2+X3
  2964. IX1 X6-X3
  2965. NG X1,PLS1 IF NOT PAST END OF *TSPT* TABLE
  2966. SX6 X2+ RESET TO BEGINNING OF *TSPT*
  2967. PLS1 SA6 A1+
  2968. RJ DMX UPDATE MATRIX DISPLAY
  2969. EQ KBI1 PROCESS KEYBOARD INPUT
  2970. SDL SPACE 4,20
  2971. ** SDL - SET DISPLAY LINE.
  2972. *
  2973. * ENTRY (B6) = ADDRESS OF CURRENT *TSPT* ENTRY.
  2974. * (B7) = ASSEMBLY BUFFER ADDRESS.
  2975. *
  2976. * EXIT (B7) = UPDATED BUFFER ADDRESS.
  2977. *
  2978. * USES X - ALL.
  2979. * A - 1, 2, 3, 5, 6, 7.
  2980. * B - 6, 7.
  2981. *
  2982. * CALLS CDD
  2983.  
  2984.  
  2985. SDL SUBR ENTRY/EXIT
  2986. SA1 F.TSPT SET SCRIPT NUMBER
  2987. SX2 B6
  2988. IX2 X2-X1
  2989. AX2 1
  2990. SX1 X2+B1
  2991. RJ CDD
  2992. MX0 -12
  2993. PACK MMSC,11,5 SET SCRIPT NUMBER
  2994. SA5 B6 FIRST WORD OF *TSPT* ENTRY
  2995. AX5 24 SET NUMBER OF TTY-S
  2996. BX1 -X0*X5
  2997. RJ CDD
  2998. PACK MMSC,20,6 SET NUMBER OF TTYS
  2999. AX5 12 SET LINE SPEED
  3000. BX1 -X0*X5
  3001. RJ CDD
  3002. PACK MMSC,28,6 SET LINE SPEED
  3003. AX5 12 SET THINK TIME
  3004. BX1 -X0*X5
  3005. RJ CDD
  3006. PACK MMSC,43,6 SET THINK TIME
  3007. MX2 -6 SET REPEAT COUNT
  3008. SA5 A5
  3009. AX5 18
  3010. BX1 -X2*X5
  3011. RJ CDD
  3012. PACK MMSC,58,6 SET REPEAT COUNT
  3013. SA5 B6+B1 SECOND WORD OF *TSPT* ENTRY
  3014. LX5 12
  3015. BX1 -X0*X5 SET INPUT SPEED
  3016. RJ CDD
  3017. PACK MMSC,36,6 SET INPUT SPEED
  3018. LX5 12 SET LOGOUT DELAY
  3019. BX1 -X0*X5
  3020. RJ CDD
  3021. PACK MMSC,51,6 SET LOGOUT DELAY
  3022. SB7 B7+SDISL POINT TO NEXT BUFFER ADDRESS
  3023. SB6 B6+B1
  3024. EQ SDLX RETURN
  3025. TITLE TRANSLATE SESSION FILE.
  3026. SFE SPACE 4,20
  3027. ** SFE - SESSION FILE ERROR.
  3028. *
  3029. * ENTRY (X0) = DIAGNOSTIC.
  3030. *
  3031. * EXIT NEW SESSION FILE ATTACHED.
  3032. * TO *TSF1*.
  3033. *
  3034. * USES X - 6.
  3035. * A - 6.
  3036. *
  3037. * CALLS RSF.
  3038.  
  3039.  
  3040. SFE BSS 0 ENTRY
  3041. RJ RSF REQUEST SESSION FILE
  3042. SX6 B0 CLEAR POINTERS
  3043. SA6 L.TSPT
  3044. SA6 L.TSTX
  3045. SA6 L.TASK
  3046. SA6 TASKF
  3047. EQ TSF2 RETRY
  3048. TSF SPACE 4,20
  3049. ** TSF - TRANSLATE SESSION FILE.
  3050. *
  3051. * EXIT *TSTX*, *TASK*, AND *TSTP* TABLES BUILT.
  3052. *
  3053. * USES X - ALL.
  3054. * A - 1, 2, 3, 4, 5, 6, 7.
  3055. * B - 2, 3, 4, 5, 6, 7.
  3056. *
  3057. * CALLS DXB, RSF.
  3058. *
  3059. * MACROS ADDWRD, MESSAGE, READ, READO.
  3060. *
  3061. * NOTES EACH RECORD ON THE SESSION FILE IS TRANSLATED
  3062. * AND STORED IN *TSTX*. THE SESSION POINTERS (*TSTP*)
  3063. * AND TASK POINTERS (*TASK*) ARE ALSO BUILT.
  3064.  
  3065.  
  3066. TSF SUBR ENTRY/EXIT
  3067. BX6 X6-X6 CLEAR TEXT
  3068. SA6 SRCNT CLEAR SESSION RECORD COUNTER
  3069. MX7 0 CLEAR POINTERS
  3070. SA5 I CHECK FILE NAME
  3071. SA6 L.TSTX
  3072. SA7 L.TSPT
  3073. SA7 L.TASK
  3074. SA7 TASKF
  3075. SA7 2 CLEAR *NEXT TASK* WORD
  3076. SA7 3 CLEAR FWA *TASK TABLE*
  3077. SX7 100
  3078. SA7 PCENT SET PERCENTAGE LIMITS
  3079. AX5 1
  3080. NZ X5,TSF2 IF FILE NAME SPECIFIED
  3081. BX0 X0-X0
  3082. TSF1 RJ RSF REQUEST SESSION FILE
  3083. TSF2 MESSAGE (=C* TRANSLATING SESSION FILE.*),1
  3084. READ I
  3085. BX7 X7-X7
  3086. SA7 WORD INITIALIZE SESSION RECORD WORD COUNTER
  3087. TSF3 READO I
  3088. SA2 L.TSTX CHECK SESSION TEXT
  3089. ZR X1,TSF5 IF NOT END OF RECORD
  3090. SA1 TASKF
  3091. ZR X1,TSF4 IF NO TASKS IN SCRIPT
  3092. BX6 X6-X6
  3093. ADDWRD TASK,X6 ZERO WORD TERMINATOR FOR TASK TABLE
  3094. SA1 PCENT
  3095. NZ X1,TSF22 IF TOTAL PERCENTAGE OF TASKS NOT 100
  3096. SA2 L.TSTX
  3097. TSF4 NZ X2,TSFX RETURN IF ANY TEXT PROCESSED
  3098. SX0 =C*EMPTY SESSION FILE.*
  3099. BX7 X7-X7 CLEAR COMMAND PARAMETER
  3100. SA7 RSFB
  3101. EQ TSF1 REPORT ERROR
  3102.  
  3103. TSF5 BX0 X6 SET INPUT WORD
  3104. MX5 0 CLEAR SESSION WORD
  3105. SB3 48
  3106. SB4 12 CLEAR SHIFT
  3107. ZR X0,TSF18 IF NO DATA IN WORD,I.E. AFTER $TASK NNN
  3108. MX7 6
  3109. BX7 X7*X0 MASK LEADING CHAR OF 1ST WORD IN RECORD
  3110. LX7 6
  3111. SA1 =0R$
  3112. BX1 X7-X1
  3113. ZR X1,TSF6 IF CHAR IS $, I.E. TASK
  3114. SA1 TASKF
  3115. NZ X1,TSF23 IF TASK FLAG SET, SCRIPT CANNOT FOLLOW
  3116. ADDWRD TSPT,X2 ENTER SESSION POINTER
  3117. BX2 X2-X2
  3118. ADDWRD TSPT,X2
  3119. SA1 TSFA
  3120. MX7 30
  3121. BX1 X0-X1
  3122. BX1 X7*X1
  3123. NZ X1,TFS10 IF NOT *CSET* DIRECTIVE
  3124. SA1 NPS
  3125. ZR X1,TFS10 IF NOT NETWORK MODE
  3126. SB3 24 SET SHIFT COUNT
  3127. SA5 TSFB
  3128. EQ TSF18 PROCESS NEXT WORD FROM SCRIPT
  3129.  
  3130. * GENERATE TASK TABLE ENTRY.
  3131.  
  3132. TSF6 SA1 TASKF
  3133. NZ X1,TSF7 IF NOT FIRST TASK ENCOUNTERED
  3134. SA7 TASKF SET TASK FLAG
  3135. TSF7 MX7 6
  3136. BX1 -X7*X0 MASK OFF $ FROM TASK NAME
  3137. LX1 6
  3138. MX7 36
  3139. BX1 X7*X1 GET 6-CHARACTER TASK NAME
  3140. BX1 X1+X2 ADD TSTX POINTER ADDRESS IN 1ST WORD
  3141. ADDWRD TASK,X1 TASK NAME AND POINTER IN TASK TABLE
  3142. MX1 0
  3143. ADDWRD TASK,X1 ZERO WORD FOR 2ND WORD IN TASK TABLE
  3144. MX7 -18
  3145. BX5 -X7*X0 GET *DESIRED PERCENTAGE* ENTRY
  3146. LX5 42
  3147. SB2 3 MAX CHARACTERS FOR PERCENTAGE
  3148. MX7 6
  3149. SA4 =1L
  3150. TSF8 BX1 X5*X7 ISOLATE UPPER CHARACTER
  3151. IX2 X4-X1
  3152. NZ X2,TSF9 IF CHARACTER NOT BLANK (55)
  3153. SB2 B2-B1
  3154. ZR B2,TSF21 IF NO MORE CHARACTERS TO CHECK
  3155. LX5 6 MOVE NEXT CHARACTER IN POSITION
  3156. EQ TSF8 LOOP
  3157.  
  3158. TSF9 MX7 18
  3159. BX5 X5*X7
  3160. SB7 B1 SET DECIMAL BASE
  3161. RJ DXB
  3162. NZ X4,TSF21 IF ERRORS IN CONVERSION
  3163. SA2 PCENT
  3164. IX7 X2-X6
  3165. SA7 A2 UPDATE TASK PERCNTAGE
  3166. SX2 100 SET PERCENTAGE LIMIT
  3167. IX2 X2-X6
  3168. NG X2,TSF21 IF GREATER THAN 100
  3169. PX6 X6 INTEGER TO FLOATING POINT
  3170. NX1 X6 NORMALIZE
  3171. ADDWRD TASK,X1 *DESIRED PERCENTAGE* IN 3RD WORD
  3172. MX1 0
  3173. ADDWRD TASK,X1 ACTUAL PERCENTAGE IN FOURTH WORD
  3174. EQ TSF3 PROCESS NEXT TASK
  3175.  
  3176. TFS10 MX4 -12 SET TRANSLATION REGISTERS
  3177. SB2 10
  3178. BX2 -X4*X0 SET END OF LINE FLAG
  3179. MX7 -6
  3180. SB5 X2
  3181.  
  3182. * TRANSLATE SESSION/TASK TEXT.
  3183.  
  3184. TSF11 LX0 6 NEXT CHARACTER
  3185. BX2 -X7*X0
  3186. SA1 TASO+X2 LOCATE TRANSLATION
  3187. SB7 X1 CHECK TRANSLATION
  3188. SB2 B2-B1
  3189. BX0 X7*X0
  3190. SB6 B6+B1 COUNT CHARACTER
  3191. SX3 B4-13
  3192. PL X3,TSF12 IF SPECIAL CHARACTER
  3193. NZ B7,TSF19 IF SPECIAL PROCESSING
  3194. TSF12 LX3 X1,B4 SHIFT TO CHARACTER
  3195. BX2 -X4*X3 EXTRACT CHARACTER
  3196. SX6 .ESC
  3197. BX6 X2-X6 CHECK FOR *ESC*
  3198. ZR X6,TSF13 IF *ESC*
  3199. SX6 .ETX
  3200. BX6 X2-X6
  3201. NZ X6,TSF14 IF NOT *ETX*
  3202. TSF13 SX6 B1 SET FLAG NOT TO SAVE *CR* AFTER *ESC/ETX*
  3203. SA6 ESC
  3204. TSF14 SB4 12 CLEAR SHIFT
  3205. ZR X2,TSF20 IF NULL CHARACTER
  3206. SA3 ESC CHECK *ESC* FLAG
  3207. SX6 X3-2
  3208. NZ X6,TSF15 IF *CR* DOES NOT FOLLOW *ESC*
  3209. SA6 ESC
  3210. EQ TSF16 CONTINUE
  3211.  
  3212. TSF15 LX3 X2,B3 MERGE OUTPUT
  3213. BX5 X5+X3
  3214. SB3 B3-12
  3215. TSF16 PL B3,TSF17 IF SESSION WORD NOT FULL
  3216. SB3 48
  3217. ADDWRD TSTX,X5
  3218. SA5 WORD
  3219. SX7 X5+B1 INCREMENT SESSION RECORD WORD COUNTER
  3220. SA7 A5
  3221. MX7 -6
  3222. BX5 X5-X5
  3223. MX4 -12
  3224. TSF17 SA1 XOFF
  3225. NZ X1,PXO IF SET TAPE OFF
  3226. NZ B2,TSF11 IF NOT END OF INPUT WORD
  3227. TSF18 READO I READ NEXT WORD
  3228. BX0 X6
  3229. ZR X1,TFS10 IF NOT END OF RECORD
  3230. EQ EOS PROCESS END OF SESSION
  3231.  
  3232. TSF19 NG B7,*+1 IF SHIFT COUNT
  3233. JP B7 PROCESS SPECIAL FORM
  3234.  
  3235. SB4 -B7 SET SHIFT
  3236. EQ TSF17 COMPLETE END OF LINE
  3237.  
  3238. * PROCESS INCORRECT SESSION FILE.
  3239.  
  3240. TSF20 SX0 =C*INCORRECT DATA.*
  3241. EQ SFE PROCESS SESSION FILE ERROR
  3242.  
  3243. TSF21 SX0 =C*INCORRECT TASK PERCENTAGE.*
  3244. EQ SFE PROCESS SESSION FILE ERROR
  3245.  
  3246. TSF22 SX0 =C*TASK PERCENTAGE UNEQUAL TO 100.*
  3247. EQ SFE PROCESS SESSION FILE ERROR
  3248.  
  3249. TSF23 SX0 =C*SCRIPTS CANNOT FOLLOW TASK DEFINITIONS.*
  3250. EQ SFE PROCESS SESSION FILE ERROR
  3251.  
  3252.  
  3253. TSFA VFD 60/5L+CSET CHARACTER SET DETECTION DIRECTIVE
  3254. TSFB VFD 12/4123B,12/.ELCR,36/0
  3255. PCL SPACE 4,10
  3256. ** PCL - PROCESS COLON.
  3257.  
  3258.  
  3259. PCL BSS 0
  3260. NZ B5,TSF12 IF LINE NOT TERMINATED
  3261. NZ X0,TSF12 IF THE WORD CONTAINS CHARACTERS
  3262. CRT SPACE 4,10
  3263. ** CRT - CARRIAGE RETURN.
  3264.  
  3265.  
  3266. CRT BSS 0
  3267. SA3 NPS SET XOFF MODE
  3268. BX6 X3
  3269. SA6 XOFF
  3270. SA3 ESC
  3271. ZR X3,CRT1 IF FLAG NOT SET
  3272. SX6 2 SET FLAG TO NOT SAVE *CR*
  3273. SA6 ESC
  3274. CRT1 SX2 B4-12 CHECK SHIFT STATUS
  3275. NZ X2,TSF12 IF SHIFT COUNT
  3276. EOL SPACE 4,10
  3277. ** EOL - END OF LINE.
  3278.  
  3279.  
  3280. EOL BSS 0
  3281. SA4 NPS SET CARRIAGE RETURN
  3282. SX2 .ELCR
  3283. ZR X4,EOL1 IF NOT NETWORK MODE
  3284. SX2 4033B
  3285. EOL1 SB2 B0 CLEAR CHARACTER COUNT
  3286. ZR B5,TSF14 IF WORD TERMINATED
  3287. BX0 X2
  3288. EOL2 READO I SKIP WORDS TO END OF LINE
  3289. MX4 -12
  3290. BX7 -X4*X6
  3291. NZ X7,EOL2 IF NOT END OF LINE
  3292. BX2 X0
  3293. EQ TSF14 PROCESS NEXT LINE
  3294.  
  3295. ESC CON 0 ESCAPE CHARACTER FLAG
  3296. LTSTX CON 0 LWA OF LAST SCRIPT
  3297. PCENT CON 0 TASK PERCENTAGE
  3298. TASKF CON 0 TASK FLAG
  3299. PXO SPACE 4,10
  3300. ** PXO - PROCESS XOFF.
  3301.  
  3302.  
  3303. PXO BSS 0
  3304. SX2 .ELXO SET XOFF CODE (DC3)
  3305. SX6 B0 CLEAR XOFF MODE
  3306. SA6 XOFF
  3307. SB2 B0 CLEAR CHARACTER COUNT
  3308. SB4 12 CLEAR SHIFT
  3309. EQ TSF14 PROCESS NEXT LINE OF SCRIPT
  3310. EOS SPACE 4,10
  3311. ** EOS - PROCESS END OF SESSION.
  3312.  
  3313.  
  3314. EOS BSS 0
  3315. SB3 B3+12 SET PREVIOUS BYTE
  3316. NZ X5,EOS1 IF NOT NEW TEXT WORD
  3317. SA1 F.TSTX SET PREVIOUS WORD
  3318. SA2 L.TSTX
  3319. SX6 X2-1
  3320. SA6 A2 BACK UP POINTER LENGTH
  3321. SA5 WORD
  3322. SX7 X5-1 DECREMENT SESSION RECORD WORD COUNTER
  3323. SA7 A5
  3324. SB3 B0
  3325. IX6 X1+X6
  3326. SA5 X6
  3327. EOS1 MX0 48 SET END OF SESSION CHARACTER
  3328. LX0 X0,B3
  3329. BX5 X0*X5
  3330. SX1 .ESCR
  3331. SA2 NPS
  3332. ZR X2,EOS2 IF NOT NETWORK MODE
  3333. SX1 .ESXO
  3334. EOS2 LX1 X1,B3
  3335. BX5 X1+X5
  3336. ADDWRD TSTX,X5
  3337. SA5 WORD
  3338. SX7 X5+B1 INCREMENT SESSION RECORD WORD COUNTER
  3339. ADDWRD TSTX,X7 STORE COUNTER AT END OF SESSION TEXT
  3340. SA5 SRCNT INCREMENT SESSION RECORD COUNTER
  3341. SX7 X5+B1
  3342. SA7 A5
  3343. SA1 TASKF
  3344. NZ X1,TSF2 IF NO SCRIPT SESSION
  3345. SA2 L.TSTX SAVE LWA+1 OF LAST SESSION
  3346. BX6 X2
  3347. SA6 LTSTX
  3348. EQ TSF2 PROCESS NEXT RECORD
  3349.  
  3350. WORD CON 0 SESSION RECORD WORD COUNTER
  3351. SRCNT CON 0 SESSION RECORD COUNTER
  3352. XOFF DATA 0 XOFF MODE FLAG
  3353. TITLE SUBROUTINES.
  3354. CTC SPACE 4,20
  3355. ** CTC - CHECK ASSIGNED TERMINAL COUNT.
  3356. *
  3357. * ENTRY *TSPT* INITIALIZED.
  3358. * (NT) = MAXIMUM NUMBER OF TERMINALS ALLOWED.
  3359. *
  3360. * EXIT (X3) .LT. 0, IF NUMBER OF TTYS ASSIGNED .GT. (N)
  3361. * (X7) = NUMBER OF TERMINALS ASSIGNED.
  3362. *
  3363. * USES X - 0, 3, 4, 7.
  3364. * A - 3, 4.
  3365. * B - 4.
  3366.  
  3367.  
  3368. CTC SUBR ENTRY/EXIT
  3369. BX7 X7-X7 CLEAR ACCUMULATOR
  3370. MX0 -12
  3371. SA3 L.TSPT
  3372. SA4 F.TSPT
  3373. SB4 X3-2
  3374. CTC1 SA3 X4+B4 GET NEXT *TSPT* ENTRY
  3375. AX3 24
  3376. BX3 -X0*X3
  3377. IX7 X7+X3
  3378. SB4 B4-2
  3379. PL B4,CTC1 IF NOT END OF TABLE
  3380. SA3 NT
  3381. IX3 X3-X7
  3382. EQ CTCX RETURN
  3383. OPR SPACE 4,20
  3384. ** OPR - OUTPUT PARAMETERS.
  3385. *
  3386. * ENTRY K-DISPLAY PROCESSING COMPLETE.
  3387. *
  3388. * EXIT STIMULATOR PARAMETERS WRITTEN TO OUTPUT.
  3389. *
  3390. * USES X - 1, 3, 6.
  3391. * A - 1, 3, 6.
  3392. * B - 2.
  3393. *
  3394. * MACROS WRITEW, WRITER.
  3395.  
  3396.  
  3397. OPR SUBR ENTRY/EXIT
  3398. SB2 DLFL-4
  3399. SA1 OPAD-1 INITIALIZE POINTER
  3400. OPR1 SA1 A1+B1 ADDRESS OF VALUE
  3401. ZR X1,OPR2 IF LAST ADDRESS
  3402. SA3 X1 GET VALUE
  3403. BX6 X3
  3404. SB2 B2+4
  3405. SA6 B2
  3406. EQ OPR1 LOOP
  3407.  
  3408. OPR2 WRITEW O,DLCH,DLLL
  3409. WRITER O,R
  3410. EQ OPRX RETURN
  3411. WMD SPACE 4,20
  3412. ** WMD - WRITE MATRIX DISPLAY TO OUTPUT.
  3413. *
  3414. * EXIT MATRIX WRITTEN TO OUTPUT.
  3415. *
  3416. * USES X - 1, 2, 6, 7.
  3417. * A - 1, 2, 6, 7.
  3418. * B - 6, 7.
  3419. *
  3420. * CALLS SDL.
  3421. *
  3422. * MACRO WRITER, WRITEW.
  3423.  
  3424.  
  3425. WMD SUBR ENTRY/EXIT
  3426. SA1 F.TSPT SET FWA OF *TSPT*
  3427. BX6 X1
  3428. SA6 WMDA
  3429. SA2 L.TSPT
  3430. IX7 X1+X2
  3431. SA7 WMDB
  3432.  
  3433. * WRITE PAGE HEADER.
  3434.  
  3435. WMD1 WRITEW O,HBUF,HBUFL
  3436. SX6 LINP-8 SET NUMBER OF LINES PER PAGE
  3437. SA6 WMDC
  3438.  
  3439. * WRITE MATRIX TO OUTPUT.
  3440.  
  3441. WMD2 SA1 WMDA GET NEXT *TSPT* ENTRY TO LIST
  3442. SB6 X1
  3443. SB7 WMDD
  3444. RJ SDL SET DISPLAY LINE
  3445. WRITEW O,WMDD,WMDDL
  3446. SA1 WMDA ADVANCE TO NEXT ENTRY
  3447. SX6 X1+2
  3448. SA2 WMDB
  3449. SA6 A1
  3450. IX2 X6-X2
  3451. PL X2,WMD3 IF END OF *TSPT*
  3452. SA1 WMDC CHECK FOR END OF PAGE
  3453. SX6 X1-1
  3454. SA6 A1
  3455. NZ X6,WMD2 IF NOT END OF PAGE
  3456. EQ WMD1 START NEW PAGE
  3457.  
  3458. WMD3 WRITER O,R
  3459. EQ WMDX RETURN
  3460.  
  3461. WMDA CON 0 CURRENT INDEX INTO *TSPT*
  3462. WMDB CON 0 LAST ADDRESS OF *TSPT*
  3463. WMDC CON 0 NUMBER OF LINES LEFT ON PAGE
  3464. WMDD DATA 4H ASSEMBLY BUFFER
  3465. DATA 48L
  3466. WMDDL EQU *-WMDD LENGTH OF ASSMBLY BUFFER
  3467.  
  3468. HBUF DATA L*1 *
  3469. DATA L* *
  3470. DATA L* *
  3471. DATA L* STIMULATION PARAMETER MATRIX*
  3472. DATA L* SCRIPT TTYS LS IS TT LD
  3473. , RC*
  3474. HBUFL EQU *-HBUF BUFFER LENGTH
  3475. SPACE 4,10
  3476. * COMMON DECKS.
  3477.  
  3478.  
  3479. *CALL COMCCDD
  3480. *CALL COMCCIO
  3481. *CALL COMCCPM
  3482. *CALL COMCDXB
  3483. *CALL COMCMTP
  3484. *CALL COMCMVE
  3485. *CALL COMCPFM
  3486. *CALL COMCRDO
  3487. *CALL COMCRDC
  3488. *CALL COMCRDW
  3489. *CALL COMCSFM
  3490. *CALL COMCSFN
  3491. *CALL COMCSYS
  3492. *CALL COMCUPC
  3493. *CALL COMCWTW
  3494. TITLE K-DISPLAY BUFFERS - FILE PARAMETER DISPLAY.
  3495. FBUF SPACE 4,10
  3496. * FBUF - FILE REQUEST BUFFER.
  3497.  
  3498.  
  3499. FBUF VFD 12/0,36/0,12/2 DISPLAY BUFFER
  3500.  
  3501. KDL 29,T,(STIMULA)
  3502. KDL 3,H,(PARAMETER DESCRIPTION)
  3503. DSF EQU *+1
  3504. KDL 1,,( F = SESSFL1)
  3505. KDL 20,K,(SESSION FILE NAME (1-7 CHARACTERS).)
  3506. DSUI EQU *+1
  3507. KDL 1,,( UI = 377777)
  3508. KDL 20,K,(USER INDEX (0-377777B).)
  3509. DSN EQU *+1
  3510. KDL 1,,( N = )
  3511. KDL 20,K,(NUMBER OF FILE ON SESSION FILE (0-377777B).)
  3512. KDL 2,16,(ENTER K.GO TO BEGIN PROCESSING OF SESSION FILE.)
  3513.  
  3514. FBUFE BSS 17
  3515. TITLE K-DISPLAY BUFFERS - SESSION PARAMETER DISPLAY.
  3516. DBUF SPACE 4,10
  3517. * DBUF - DISPLAY BUFFER.
  3518.  
  3519. DBUF VFD 12/0,36/0,12/2 DISPLAY BUFFER
  3520.  
  3521. KDL 29,T,(STIMULA)
  3522. KDL 3,H,(PARAMETER DESCRIPTION)
  3523. DSNT EQU *+1
  3524. KDL 1,,( NT = 310B)
  3525. KDL 15,K,(NUMBER OF TERMINALS TO STIMULATE (1-1000).)
  3526. .DSNT EQU *-1
  3527. DSLS EQU *+1
  3528. KDL 1,,( LS = 15)
  3529. KDL 15,K,(LINE SPEED IN CHARACTERS/SECOND (1-1000).)
  3530. DSIS EQU *+1
  3531. KDL 1,,( IS = 15)
  3532. KDL 15,H,(INPUT SPEED IN CHARACTERS/SECOND (1-1000).)
  3533. DSTT EQU *+1
  3534. KDL 1,,( TT = 10)
  3535. KDL 15,K,(THINK TIME DELAY IN SECONDS (0-127).)
  3536. DSTI EQU *+1
  3537. KDL 1,,( TI = 8)
  3538. KDL 15,K,(RANDOM THINK TIME INCREMENT (A POWER OF 2 0-64).)
  3539. KDL 15,H,(THINK TIME WILL VARY BETWEEN TT AND TT+TI.)
  3540. DSAC EQU *+1
  3541. KDL 1,,( AC = 4)
  3542. KDL 15,K,(NUMBER OF TERMINALS ACTIVATED EVERY AD SECS(1-64)
  3543. ,.)
  3544. DSAD EQU *+1
  3545. KDL 1,,( AD = 10)
  3546. KDL 15,K,(ACTIVATION DELAY IN SECONDS (1-127).)
  3547. DSRC EQU *+1
  3548. KDL 1,,( RC = 0)
  3549. KDL 15,H,(NUMBER OF TIMES TO REPEAT STIMULATION (0-31).)
  3550. DSLD EQU *+1
  3551. KDL 1,,( LD = 0)
  3552. KDL 15,K,(LOGOUT DELAY (0-4095).)
  3553. DSRO EQU *+1
  3554. KDL 1,,( RO = ON)
  3555. KDL 15,K,(OUTPUT RECOVERY (ON OR OFF).)
  3556. DSLF EQU *+1
  3557. KDL 1,,( LF = NO)
  3558. KDL 15,K,(LOOP ON SESSION FILE (YES OR NO).)
  3559. DSMX EQU *+1
  3560. KDL 1,,( )
  3561.  
  3562. DBUFE BSS 17
  3563. EJECT
  3564. PBUF SPACE 4,10
  3565. * PBUF - DISPLAY BUFFER FOR SPECIAL PARAMETERS.
  3566.  
  3567.  
  3568. PBUF VFD 12/0,36/0,12/2 DISPLAY BUFFER
  3569.  
  3570. KDL 24,T,(K DISPLAY COMMANDS)
  3571. KDL 1,K,( )
  3572. KDL 4,,(GO)
  3573. KDL 16,K,(BEGIN STIMULATION.)
  3574. KDL 4,,(MIXED)
  3575. KDL 16,K,(DISPLAY PARAMETER MATRIX AND ENTER MIXED MODE)
  3576. KDL 16,K,(PARAMETER ASSIGNMENT.)
  3577.  
  3578. CON 0
  3579. TITLE K-DISPLAY BUFFERS - MIXED MODE DISPLAY.
  3580. * LDISP - LEFT DISPLAY BUFFER FOR MATRIX
  3581.  
  3582.  
  3583. LDISP VFD 12/0,36/0,12/0 LEFT DISPLAY BUFFER
  3584. LDIS BSS 0
  3585. KDL 19,T,(STIMULATION PARAMETER MATRIX)
  3586. ASIGN EQU *+4
  3587. KDL 11,K,( NUMBER OF TTYS ASSIGNED )
  3588. PERMIT EQU *+4
  3589. KDL 11,H,( MAXIMUM TTYS PERMITTED )
  3590. DSCF EQU *+1
  3591. KDL 6,,( CF = )
  3592. KDL 26,H,(MATRIX CHANGE FILE (1-7 CHARACTERS).)
  3593. KDL MMSC,H,(SCRIPT TTYS LS IS TT LD
  3594. , RC)
  3595. SDIS BSS 0
  3596. DUP SDISN,1
  3597. KDL MMSC,K,(
  3598. , )
  3599. SMAT EQU *-SDIS
  3600. SDISL EQU SMAT/SDISN LENGTH OF SINGLE SCRIPT LINE
  3601. ERRNZ SDISL-WMDDL TWO BUFFERS MUST BE THE SAME LENGTH
  3602. MORE EQU *+1
  3603. KDL MMSC,K,( )
  3604. LDISPE BSS 17
  3605. EJECT
  3606. RDISP SPACE 4,10
  3607. * RDISP - RIGHT DISPLAY BUFFER FOR MATRIX
  3608.  
  3609.  
  3610. RDISP VFD 12/0,36/0,12/0 RIGHT DISPLAY BUFFER
  3611. KDL 1,T,(K DISPLAY COMMANDS)
  3612. KDL 3,,(GO)
  3613. KDL 12,K,(BEGIN STIMULATION.)
  3614. KDL 3,,(+)
  3615. KDL 12,K,(PAGE DISPLAY FORWARD.)
  3616. KDL 3,,(-)
  3617. KDL 12,H,(PAGE DISPLAY BACKWARD.)
  3618. KDL 1,H,(MIXED MODE PARAMETERS)
  3619. KDL 3,K,(MX=SCRIPT,TTYS,LS,IS,TT,LD,RC.)
  3620. KDL 6,,(SCRIPT)
  3621. KDL 15,K,(SCRIPTS WHICH THE PARAMTERS WILL AFFECT.)
  3622. KDL 15,K,(SCRIPT(N) OR SCRIPT(N)-SCRIPT(N+X).)
  3623. KDL 6,,(TTYS)
  3624. KDL 15,K,(NUMBER OF TTYS ASSIGNED TO SCRIPTS.)
  3625. KDL 6,,(LS)
  3626. KDL 15,K,(LINE SPEED ASSIGNED TO SCRIPTS.)
  3627. KDL 6,,(IS)
  3628. KDL 15,K,(INPUT SPEED ASSIGNED TO SCRIPTS.)
  3629. KDL 6,,(TT)
  3630. KDL 15,K,(THINK TIME ASSIGNED TO SCRIPTS.)
  3631. KDL 6,,(LD)
  3632. KDL 15,K,(LOGOUT DELAY ASSIGNED TO SCRIPTS.)
  3633. KDL 6,,(RC)
  3634. KDL 15,K,(REPEAT COUNT ASSIGNED TO SCRIPTS.)
  3635. KDL 6,K,(NULL PARAMETER WILL KEEP CURRENT VALUE.)
  3636. KDL 3,K,(CF=XXX CHANGE MATRIX VIA PREDEFINED PARAMETERS.)
  3637. KDL 6,K,(XXX = PERMANENT FILE CONTAINING CHANGE DIRECTIVES
  3638. ,IN FORMAT)
  3639. KDL 15,K,(MX=SCRIPT,TTYS,LS,IS,TT,LD,RC.)
  3640. CON 0
  3641. TITLE TRANSLATION TABLES.
  3642. TASO SPACE 4,10
  3643. * TASO - TABLE OF *ASCII* OUTPUT CHARACTERS.
  3644.  
  3645.  
  3646. TASO BSS 0
  3647. LOC 0
  3648.  
  3649. * 76 74
  3650.  
  3651. 00 OTASC 3A,60,,PCL CL GV
  3652. 01 OTASC 41,61,40 A A AT
  3653. 02 OTASC 42,62,5E B B CF
  3654. 03 OTASC 43,63 C C
  3655. 04 OTASC 44,64,3A D D CL
  3656. 05 OTASC 45,65,11 E E DC1
  3657. 06 OTASC 46,66,13 F F DC3
  3658. 07 OTASC 47,67 G G
  3659.  
  3660. 10 OTASC 48,68,0D H H CR (NO EOL PROCESSING)
  3661. 11 OTASC 49,69,0A I I LF
  3662. 12 OTASC 4A,6A,0D J J NL
  3663. 13 OTASC 4B,6B,21 K K EX
  3664. 14 OTASC 4C,6C,40 L L AT
  3665. 15 OTASC 4D,6D,5E M M CF
  3666. 16 OTASC 4E,6E N N
  3667. 17 OTASC 4F,6F O O
  3668.  
  3669. 20 OTASC 50,70 P P
  3670. 21 OTASC 51,71 Q Q
  3671. 22 OTASC 52,72 R R
  3672. 23 OTASC 53,73 S S
  3673. 24 OTASC 54,74 T T
  3674. 25 OTASC 55,75 U U
  3675. 26 OTASC 56,76 V V
  3676. 27 OTASC 57,77 W W
  3677.  
  3678. 30 OTASC 58,78 X X
  3679. 31 OTASC 59,79 Y Y
  3680. 32 OTASC 5A,7A Z Z
  3681. 33 OTASC 30,7B 0 LB
  3682. 34 OTASC 31,7C 1 VL
  3683. 35 OTASC 32,7D 2 RB
  3684. 36 OTASC 33,7E 3 TL
  3685. 37 OTASC 34,7F 4 DEL
  3686.  
  3687. 40 OTASC 35,, 5 NUL
  3688. 41 OTASC 36,01 6 SOH
  3689. 42 OTASC 37,02 7 STX
  3690. 43 OTASC 38,03 8 ETX
  3691. 44 OTASC 39,04 9 EOT
  3692. 45 OTASC 2B,05 + ENQ
  3693. 46 OTASC 2D,06 - ACK
  3694. 47 OTASC 2A,07 * BEL
  3695.  
  3696. 50 OTASC 2F,08 / BS
  3697. 51 OTASC 28,09 ( HT
  3698. 52 OTASC 29,0A ) LF
  3699. 53 OTASC 24,0B $ VT
  3700. 54 OTASC 3D,0C = FF
  3701. 55 OTASC 20,0D SP CR (NO EOL PROCESSING)
  3702. 56 OTASC 2C,0E , SO
  3703. 57 OTASC 2E,0F . SI
  3704.  
  3705. 60 OTASC 23,10 NB DLE
  3706. 61 OTASC 5B,11 OB DC1
  3707. 62 OTASC 5D,12 CB DC2
  3708. 63 OTASC 25,13 PC DC3
  3709. 64 OTASC 22,14 DQ DC4
  3710. 65 OTASC 5F,15 UL NAK
  3711. 66 OTASC 0D,16,,CRT CR SYN (CR = END OF THE LINE)
  3712. 67 OTASC 26,17 AM ETB
  3713.  
  3714. 70 OTASC 27,18 AP CAN
  3715. 71 OTASC 3F,19 QM EM
  3716. 72 OTASC 3C,1A LT SUB
  3717. 73 OTASC 3E,1B GT ESC
  3718. 74 OTASC ,1C,,-36 ESCAPE 2 - FS
  3719. 75 OTASC 5C,1D RVS GS
  3720. 76 OTASC ,1E,,-24 ESCAPE 1 - RS
  3721. 77 OTASC 3B,1F SC US
  3722.  
  3723. LOC *O
  3724. TITLE BUFFER DEFINITIONS.
  3725. SPACE 4,10
  3726. * OUTPUT RECORD.
  3727.  
  3728. DLCH DATA C*1STIMULATOR PARAMETERS- *
  3729. DATA H* SESSION FILE NAME- F= *
  3730. DLFL CON 0 SESSION FILE NAME
  3731. DATA H* USER INDEX- UI= *
  3732. DLUI CON 0 USER INDEX
  3733. DATA H* NUMBER OF THE FILE- N= *
  3734. DLNB CON 0 FILE NUMBER
  3735. DATA H* NUMBER OF TERMINALS- NT= *
  3736. DLNT CON 0 NUMBER OF TERMINALS
  3737. DATA H* LINE SPEED- LS= *
  3738. DLLS CON 0 LINE SPEED
  3739. DATA H* INPUT SPEED- IS= *
  3740. DLIS CON 0 INPUT SPEED
  3741. DATA H* THINK TIME- TT= *
  3742. DLTT CON 0 THINK TIME
  3743. DATA H* RANDOM THINK TIME- TI= *
  3744. DLTI CON 0 RANDOM THINK TIME
  3745. DATA H* ACTIVATION COUNT- AC= *
  3746. DLAC CON 0 ACTIVATION COUNT
  3747. DATA H* ACTIVATION DELAY- AD= *
  3748. DLAD CON 0 ACTIVATION DELAY
  3749. DATA H* REPEAT COUNT- RC= *
  3750. DLRC CON 0 REPEAT COUNT
  3751. DATA H* LOGOUT DELAY- LD= *
  3752. DLLD CON 0 LOGOUT DELAY
  3753. DATA H* OUTPUT RECOVERY- RO= *
  3754. DLRO CON 0 OUTPUT RECOVERY
  3755. DATA H* LOOP ON SESSION FILE- LF= *
  3756. DLLF CON 0 LOOP ON SESSION FILE
  3757. DATA H* MATRIX CHANGE FILE- CF= *
  3758. DLCF CON 0 MATRIX CHANGE FILE NAME
  3759. DLLL EQU *-DLCH
  3760. SPACE 4,10
  3761. * REPLACE ADDRESSES.
  3762.  
  3763.  
  3764. OPAD CON DSF
  3765. CON DSUI
  3766. CON DSN
  3767. CON DSNT
  3768. CON DSLS
  3769. CON DSIS
  3770. CON DSTT
  3771. CON DSTI
  3772. CON DSAC
  3773. CON DSAD
  3774. CON DSRC
  3775. CON DSLD
  3776. CON DSRO
  3777. CON DSLF
  3778. CON DSCF
  3779. CON 0 END OF TABLE
  3780. SPACE 4,10
  3781. * BUFFERS.
  3782.  
  3783.  
  3784. USE //
  3785.  
  3786. IBUF BSS 0
  3787. KBUF EQU IBUF+IBUFL
  3788. MEML EQU KBUF+KBUFL
  3789. RFL= EQU MEML+MEMLL RESERVE TABLE SPACE
  3790. TITLE PRESET ROUTINE.
  3791. PRS SPACE 4,20
  3792. ** PRS - PRESET PROGRAM.
  3793.  
  3794.  
  3795. ORG IBUF
  3796. PRS SUBR ENTRY/EXIT
  3797. SX3 PRSD
  3798. RJ PRK PRESET *K* DISPLAY
  3799. SA1 ACTR SET ARGUMENT COUNT
  3800. SX6 A0-FLFF SET END OF MANAGED TABLES
  3801. SB4 X1+
  3802. SA6 F.TEND
  3803. SB5 PRSB SET ARGUMENT TABLE
  3804. SA4 ARGR FIRST ARGUMENT
  3805. RJ ARG PROCESS ARGUMENTS
  3806. ZR X1,PRS1 IF NO ERRORS
  3807. SX0 =C* ERROR IN STIMULATOR ARGUMENTS.*
  3808. EQ ABT ABORT JOB
  3809.  
  3810. PRS1 BX6 X6-X6
  3811. SA6 RAPP
  3812. SYSTEM SPC,,PRSA CALL *1TS* TO INITIALIZE *TCWD*
  3813. PRS2 SA1 RAPP
  3814. ZR X1,PRS2 IF REQUEST NOT COMPLETE
  3815. SB3 X1+
  3816. NE B3,B1,PRS3 IF MORE THAN ONE DRIVER
  3817. SA1 PRSC SET WRITE WITH RECALL
  3818. SA3 A1+B1
  3819. BX6 X1
  3820. BX7 X3
  3821. SA6 RCOA+/RCO/RCOE-STMO
  3822. SA7 A6+B1
  3823. PRS3 SA3 MODE DETERMINE NUMBER OF TERMINALS
  3824. MX0 -12
  3825. ZR X3,PRS4 IF CALLING *1TS*
  3826. MX0 -6
  3827. PRS4 BX6 X6-X6
  3828. MX7 0
  3829. PRS5 SA1 TCWD+X7 GET NEXT ENTRY
  3830. ZR B3,PRS6 IF END OF TABLE
  3831. SB3 B3-B1
  3832. LX1 24
  3833. BX1 -X0*X1
  3834. IX6 X1+X6
  3835. IX6 X6+X3 ADJUST TERMINAL COUNT
  3836. SX7 X7+B1
  3837. EQ PRS5 LOOP FOR ALL ENTRIES
  3838.  
  3839. PRS6 SA1 TARG SET MAXIMUM VALUE FOR *TY*
  3840. BX7 X1+X6
  3841. SA7 A1
  3842. SA6 NT
  3843. SA6 MNT
  3844. BX1 X6 CONVERT NUMBER OF TERMINALS
  3845. RJ COD
  3846. SX3 1RB&1R
  3847. SB3 B2-54
  3848. LX2 X3,-B3
  3849. BX6 X4-X2
  3850. MX3 48
  3851. BX7 X3*X6
  3852. SA7 DSNT
  3853. SB3 B3+12
  3854. SX3 2R &2R).
  3855. LX2 X3,-B3
  3856. BX6 X7-X2
  3857. SA6 .DSNT
  3858. RETURN IORA,R RETURN *STIMOUT*
  3859. SA1 CSMR
  3860. NG X1,PRS8 IF 64 CHARACTER SET
  3861. SA1 TASO STORE COLON IN PERCENT LOCATION
  3862. SA2 TASO+63B PERCENT
  3863. MX6 12
  3864. BX4 X6*X1
  3865. BX3 -X6*X2
  3866. BX6 X4+X3
  3867. SA6 A2
  3868. PRS8 SA1 I CHECK SESSION FILE
  3869. AX1 1
  3870. ZR X1,PRSX IF NOT SET
  3871. BX6 X1
  3872. SA6 RSFB
  3873. REWIND I
  3874. EQ PRSX RETURN
  3875.  
  3876. PRSA VFD 18/0L1TS,42/0
  3877. * VFD 18/0L1TE,42/0
  3878. PRSB SPACE 4,10
  3879. ** PRSB - TABLE OF COMMAND ARGUMENT OPTIONS.
  3880.  
  3881.  
  3882. PRSB BSS 0
  3883. I ARG I,I
  3884. CON 0
  3885. SPACE 4,10
  3886. PRSC BSS 0
  3887. QUAL RCO
  3888. LOC RCOE
  3889. WRITE X5,R
  3890. PRSCL EQU * ENSURE PROPER CODE MODIFICATION
  3891. ERRNZ RCOEL-PRSCL MACRO CODE NOT SAME LENGTH
  3892. LOC *O
  3893. QUAL
  3894. ERRNZ *-PRSC-2 CHECK INSTRUCTION MODIFICATION
  3895. SPACE 4
  3896. PRSD KDL * GENERATE *KDL* SUBSTITUTION TABLE
  3897. SPACE 4
  3898. PRK HERE REMOTE BLOCK FROM *COMCDCP*
  3899. SPACE 4
  3900. * COMMON DECKS.
  3901.  
  3902. *CALL COMCARG
  3903. *CALL COMCCOD
  3904. SPACE 4
  3905. END
cdc/nos2.source/opl871/stimula.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator