cdc:nos2.source:opl871:stimula
Table of Contents
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
- IDENT STIMULA,TABLES
- ABS
- ENTRY STIMULA
- ENTRY RFL=
- ENTRY SSJ=
- SST
- SYSCOM B1 DEFINE (B1) = 1
- QUAL$ EQU 1 DEFINE INTERNAL QUALIFICATION
- *COMMENT STIMULA - INTERACTIVE STIMULATOR.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- TITLE STIMULA - INTERACTIVE TERMINAL STIMULATOR.
- SPACE 4,10
- *** STIMULA - LOW SPEED INTERACTIVE TERMINAL STIMULATOR.
- * G. R. MANSFIELD. 72/08/10.
- * R. A. JAPS. 78/05/10.
- SPACE 4,10
- *** THE COMMAND.
- *
- * STIMULA(I=LFN)
- *
- * *STIMULA* IS USED FOR INTERNAL STIMULATION OF *IAF*.
- * REFER TO THE EXTERNAL DOCUMENTATION OF *1TS* FOR
- * FURTHER INFORMATION ON THE TYPES OF STIMULATION POSSIBLE.
- *
- * I SESSION FILE NAME. IF SPECIFIED, LFN MUST BE LOCAL
- * TO THE CONTROL POINT.
- SPACE 4,10
- *** SESSION FILE FORMAT.
- *
- * A SESSION FILE IS AN INDIRECT ACCESS PERMANENT FILE THAT
- * CONTAINS THE INTERACTIVE JOB LOAD THAT IS TO BE ANALYZED
- * BY THE STIMULATOR. A SESSION FILE CONSISTS OF A GROUP OF
- * RECORDS, EACH RECORD IS A SESSION AND CONTAINS A
- * INTERACTIVE JOB. NOTE THE FOLLOWING REQUIREMENTS -
- *
- * 1. EACH SESSION RECORD BEGINS WITH THE ENTRY *ANSWERBAC*.
- *
- * 2. AFTER *ANSWERBAC*, ENTER FAMILY NAME, USER NAME, AND
- * PASSWORD TO BE USED FOR LOGIN.
- *
- * 3. ENTER EACH SESSION ENTRY ON A SEPARATE COMMAND.
- *
- * 4. END EACH SESSION WITH A *BYE* SO THAT LOGIN OF THE NEXT
- * SESSION IS PERFORMED CORRECTLY.
- SPACE 4,10
- *** TASK USAGE.
- *
- * A *TASK* IS DEFINED AS A PREDEFINED SET OF INTERACTIVE
- * COMMANDS TO WHICH IS ATTACHED A FREQUENCY OF USE
- * PARAMETER. TASKS ARE DEFINED IN THE SESSION FILE
- * AS A SEPARATE RECORD FOLLOWING THE SESSION RECORDS.
- * TASK DEFINITIONS ARE PERMITTED AFTER THE SESSION
- * DEFINITIONS ONLY. TASKS SHOULD BE DEFINED IN INDESCENDING
- * ORDER OF USE. NOTE THE FOLLOWING REQUIREMENTS -
- *
- * 1. THE FIRST COMMAND SHOULD BE OF THE FORMAT -
- *
- * $TASK NNN
- *
- * WHERE
- * $ (DOLLAR SIGN) DENOTES BEGINNING OF A NEW TASK
- * DEFINITION.
- * TASK 1 TO 6 CHARACTER ALPHANUMERIC TASK NAME.
- * NNN DENOTES A DESIRED TASK USAGE PERCENTAGE. THE TOTAL
- * PERCENTAGES MUST EQUAL 100.
- *
- * 2. TO CALL A TASK, INSERT A DISPLAY CODE 70 CHARACTER
- * INTO THE INTERACTIVE SCRIPT. MULTIPLE SCRIPT CALLS
- * ARE PERMITTED PER INPUT COMMAND BUT MUST BE
- * TERMINATED BY A *CR*.
- *
- * 3. THE LAST CHARACTER OF A TASK MUST BE A DISPLAY CODE
- * 71. THIS WILL RETURN CONTROL TO THE CALLING SCRIPT.
- *
- * 4. THE NEXT BEST TASK IS DETERMINED BY THE FOLLOWING
- * ALGORITHM -
- *
- * WHERE
- * NBT = TI / (TATI * DP)
- *
- * NBT NEXT BEST TASK
- * TI TOTAL INITIATIONS OF TASK
- * TATI TOTAL OF ALL TASK INITIATIONS
- * DP DESIRED PERCENTAGE OF TASK
- *
- * THE TASK WITH THE MINIMUM NBT VALUE IS DEFINED TO BE THE
- * NEXT BEST TASK.
- SPACE 4,10
- *** OPTIONAL THINK TIME SPECIFICATION.
- *
- * A RANDOM THINK TIME MAY BE ENTERED WITH A SCRIPT COMMAND.
- * THE FORMAT IS -
- *
- * *XXX OR **
- *
- * WHERE
- * * DENOTES SPECIAL CHARACTER (DISPLAY CODE 75).
- *
- * XXX OCTAL THINK TIME. MAXIMUM VALUE ALLOWED IS 177B.
- *
- * ** RETURN TO INITIAL THINK TIME.
- SPACE 4,10
- *** DYNAMIC LOGIN SPECIFICATION.
- *
- * A SCRIPT RECORD MAY BE GENERATED WITH A UNIQUE USER NAME
- * AND PASSWORD WHICH WILL BE DYNAMICALLY TRANSLATED INTO A
- * UNIQUE USER NAME, PASSWORD AT RUN TIME. THE FORMAT IS AS
- * FOLLOWS -
- *
- * X*** OR X***,Y***
- *
- * WHERE
- * X 1 TO 4 ALPHANUMERIC CHARACTERS FOR USER NAME
- *
- * * DENOTES SPECIAL CHARACTER *VL* (12/8/6,1 PUNCH)
- *
- * Y 1 TO 4 CHARACTERS FOR PASSWORD
- *
- * THE * CHARACTER WILL BE TRANSLATED INTO THE STIMULATOR
- * TERMINAL NUMBER AT RUN TIME. THE GENERATED USER NAMES AND
- * PASSWORDS WILL THEN BE VALIDATED THROUGH THE NORMAL LOGIN
- * PROCEDURES. (THE GENERATED USER NAMES AND PASSWORDS MUST
- * BE ENTERED INTO THE VALIDATION FILE.)
- *
- * EXAMPLE -
- *
- * P***,L*** WILL BE TRANSLATED INTO
- * P000,L000 FOR THE FIRST TERMINAL,
- * P001,L001 FOR THE SECOND TERMINAL.
- SPACE 4,10
- *** STIMULATOR OUTPUT.
- *
- * IF OUTPUT RECOVERY IS SELECTED, ALL OUTPUT DATA IS WRITTEN TO
- * A FILE NAMED *STIMOUT*. THIS FILE IS PROCESSED BY *DEMUX*.
- * REFER TO *DEMUX* DOCUMENTATION FOR FURTHER INFORMATION.
- SPACE 4,10
- *** K-DISPLAY DIRECTIVES.
- *
- * K-DISPLAY DIRECTIVES ARE ENTERED IN THE FORM -
- * D1=P1,D2=P2,...DN=PN
- * WHERE D1, D2, AND DN ARE THE K-DISPLAY IDENTIFIERS
- * AND P1, P2, AND PN ARE THE PARAMETERS.
- *
- * THERE ARE THREE K-DISPLAYS FOR THE STIMULATOR. THE
- * INITIAL K-DISPLAY PROCESSES SESSION FILE PARAMETERS.
- * IF THE SESSION FILE WAS SPECIFIED ON THE COMMAND
- * THIS DISPLAY WILL NOT BE DISPLAYED. THE SECOND DISPLAY
- * PROCESSES THE STIMULATION PARAMETERS. THE THIRD DISPLAY
- * IS OPTIONAL AND IS USED TO ENTER MIXED MODE INPUT
- * FOR A SPECIFIED SCRIPT.
- SPACE 4,10
- *** K-DISPLAY INPUT - SESSION FILE PARAMETERS.
- *
- * F INDIRECT PERMANENT FILE NAME OF SESSION FILE.
- *
- * UI USER INDEX WHERE THE SESSION FILE IS FOUND.
- *
- * N FILE NUMBER OF THE MULTI-FILE SESSION FILE FROM
- * WHICH DATA IS READ. LEGAL RANGE IS 1 THRU 377777.
- *
- * GO. INDICATES ALL SESSION FILE PARAMETERS HAVE
- * BEEN ENTERED. THE STIMULATOR WILL ADVANCE
- * TO THE SESSION PARAMETER K-DISPLAY.
- SPACE 4,10
- *** K-DISPLAY INPUT - SESSION PARAMETERS.
- *
- * NT NUMBER OF TERMINALS TO STIMULATE. THE MAXIMUM
- * VALUE IS DETERMINED BY THE EST ENTRY FOR THE
- * STIMULATED MULTIPLEXOR.
- *
- * LS LINE SPEED OF TERMINALS.
- * RANGE IS 1 - 1000 CPS.
- * DEFAULT IS 15 CPS.
- *
- * IS INPUT TYPING SPEED.
- * RANGE IS 1 - 1000 CPS.
- * DEFAULT IS 15 CPS.
- *
- * TT THINK TIME. THIS IS THE NUMBER OF SECONDS DELAYED
- * AFTER THE END OF OUTPUT BEFORE THE TERMINAL WILL
- * INPUT THE NEXT LINE.
- * RANGE IS 0 - 127 SECONDS.
- * DEFAULT IS 10 SECONDS.
- *
- * TI THINK TIME INCREMENT. THIS VALUE IS USED TO
- * PRODUCE A RANDOM THINK TIME.
- * RANGE IS 0-64.
- * DEFAULT IS 8.
- *
- * AC ACTIVATION DELAY. THIS PARAMETER IS USED TO
- * SPECIFY THE NUMBER OF TERMINALS THAT ARE TO BE
- * LOGGED ON EVERY X SECONDS. (X IS SPECIFIED BY
- * THE *AD* DIRECTIVE.)
- * RANGE IS 0-100 TERMINALS.
- * DEFAULT IS 4 TERMINALS.
- *
- * AD ACTIVATION DELAY. DELAY TIME UNTIL NEXT LOGIN
- * IS ALLOWED.
- * RANGE IS 0-127 SECONDS.
- * DEFAULT IS 10 SECONDS.
- *
- * RC REPEAT COUNT. SPECIFIES THE NUMBER OF TIMES THE
- * SESSION WILL BE REPEATED FOR EACH TERMINAL.
- * RANGE IS 0 - 31.
- * DEFAULT IS 0.
- *
- * LD LOGOUT DELAY. THIS SPECIFIES THE NUMBER OF
- * SECONDS TO DELAY AFTER LOGOUT IS COMPLETED
- * BEFORE INITIATING THE NEXT LOGIN.
- * RANGE 0 - 127 SECONDS.
- * DEFAULT IS 0 SECONDS.
- *
- * RO RECOVER OUTPUT. SPECIFIES STIMULATOR OUTPUT
- * IS TO BE RECOVERED ON *STIMOUT* FILE.
- * ON = RECOVER OUTPUT (DEFAULT)
- * OFF = NO OUTPUT RECOVERED
- *
- * LF LOOP ON SESSION FILE.
- * NO = LOOPING WILL OCCUR ON THE SCRIPT ASSIGNED
- * ASSIGNED TO THE TERMINAL.
- * YES = THE NEXT SCRIPT ON THE SESSION FILE WILL
- * BE THE NEXT SCRIPT TO BE EXECUTED.
- *
- * GO. ALL PARAMETERS HAVE BEEN ENTERED.
- * START STIMULATION.
- *
- * MIXED. ALL SESSION PARAMETERS HAVE BEEN ENTERED.
- * PROCEED TO MIXED MODE K-DISPLAY.
- SPACE 4,10
- *** K-DISPLAY INPUT - MIXED MODE.
- *
- * CF MATRIX CHANGE FILE. THIS INDIRECT ACCESS PERMANENT
- * FILE CONTAINS MIXED MODE INPUT DIRECTIVES TO
- * BE PROCESSED. IT RESIDES UNDER THE USER INDEX
- * SPECIFIED BY THE *UI* DIRECTIVE.
- *
- * + PAGE MATRIX DISPLAY FORWARD.
- *
- * - PAGE MATRIX DISPLAY BACKWORD.
- *
- * MX MIXED MODE PARAMETERS.
- * MX=S1-S2,NT,LS,IS,TT,LD,RC.
- * MX=S1,NT,LS,IS,TT,LD,RC.
- * WHERE -
- * S1 = FIRST SCRIPT TO BE CHANGED.
- * S2 = LAST SCRIPT TO BE CHANGED. (OPTIONAL -
- * DEFAULTS TO S1).
- * NT = NUMBER OF TERMINALS TO ASSIGN TO SCRIPT.
- * LS = LINE SPEED FOR TERMINALS ASSIGNED TO SCRIPT.
- * IS = INPUT SPEED FOR TERMINALS ASSIGNED TO SCRIPT.
- * TT = THINK TIME FOR TERMINALS ASSIGNED TO SCRIPTS.
- * LD = LOGOUT DELAY FOR TERMINALS ASSIGNED TO SCRIPT.
- * RC = REPEAT COUNT FOR TERMINALS ASSIGNED TO SCRIPT.
- * NULL PARAMETERS WILL KEEP THE CURRENT VALUE.
- *
- * EXAMPLE -
- * MX=2-4,3,30,30,,,1.
- * THREE TERMINALS WILL BE ASSIGNED TO SCRIPTS TWO, THREE,
- * AND FOUR. THE LINE SPEED AND INPUT SPEED FOR THESE
- * TERMINALS WILL BE 30 CPS. THE THINK TIME AND LOGOUT
- * DELAY WILL NOT BE CHANGED FORM THE CURRENT VALUE. THE
- * TERMINALS WILL HAVE A REPEAT COUNT OF ONE.
- *
- * GO. MIXED MODE PARAMETERS HAVE BEEN ENTERED.
- * PROCEED WITH STIMULATION.
- SPACE 4,10
- *** DAYFILE MESSAGES.
- *
- * * ERROR IN STIMULATOR ARGUMENTS.*
- * AN ERROR WAS ENCOUNTERED ON THE COMMAND.
- * CORRECT AND RETRY.
- *
- * * STIMULATION COMPLETED.*
- * INFORMATIVE MESSAGE INDICATING WHEN STIMULATION
- * WAS COMPLETE.
- *
- * * NUMBER OF LINE REGULATIONS = NNNNNNNNNN*
- * INFORMATIVE MESSAGE INDICATING THE NUMBER OF
- * LINE REGULATIONS THAT WERE ENCOUNTERED
- * DURING THE STIMULATION.
- SPACE 4,10
- *** ACCOUNT DAYFILE MESSAGES.
- *
- *
- * *SIAD, STIMULATOR.*
- * ACCOUNT FILE DUMPED BY STIMULATOR.
- SPACE 4,10
- *** K-DISPLAY MESSAGES.
- *
- * *INCORRECT OPTION.*
- * K-DISPLAY INPUT WAS NOT RECOGNIZED.
- *
- * *FORMAT ERROR.*
- * K-DISPLAY INPUT WAS NOT IN CORRECT FORMAT.
- *
- * *IMPROPER NUMERIC PARAMETER.*
- * NUMERIC PARAMETER IS OUT OF RANGE OR IN BAD FORMAT.
- *
- * *EMPTY SESSION FILE.*
- * NO DATA WAS FOUND ON THE SPECIFIED SESSION FILE.
- *
- * *INCORRECT DATA.*
- * AN INCORRECT CHARACTER WAS FOUND IN THE SESSION TEXT.
- *
- * *INCORRECT TASK PERCENTAGE.*
- * THE DESIRED TASK PERCENTAGE SPECIFIED FOR A TASK
- * CANNOT EXCEED 100.
- *
- * *TASK PERCENTAGE UNEQUAL TO 100*
- * THE DESIRED TASK PERCENTAGES FOR ALL TASKS MUST
- * ADD UP TO 100.
- *
- * *SCRIPTS CANNOT FOLLOW TASK DEFINITIONS.*
- * THE FORMAT OF THE SESSION FILE IS INCORRECT.
- * SCRIPTS CANNOT FOLLOW TASK SCRIPTS.
- *
- * *FILE NAME NOT SET.*
- * NO FILE NAME WAS SPECIFIED WITH THE *F* OR *CF*
- * PARAMETERS.
- *
- * *INCORRECT FILE NUMBER.*
- * THE VALUE ASSOCIATED WITH THE *N* DIRECTIVE CANNOT
- * EXCEED 377777B.
- *
- * *INCORRECT USER INDEX.*
- * THE SPECIFIED USER INDEX WAS GREATER THAN 377777B.
- *
- * *ASSIGNED TTYS GREATER THAN (NT).*
- * THE NUMBER OF TERMINALS THAT ARE ASSIGNED TO SCRIPTS
- * IS GREATER THAN THE NUMBER OF TERMINALS BEING
- * STIMULATED. REDUCE THE NUMBER OF TERMINALS THAT
- * ARE ASSIGNED.
- *
- * * NO TTYS ASSIGNED.*
- * THERE ARE NO TTYS TO ANY SCRIPTS. ENTER ASSIGNED
- * TTYS USING *MX* DIRECTIVE.
- *
- * *FILE ERROR.*
- * THE CHANGE FILE SPECIFIED COULD NOT BE ATTACHED.
- *
- * *FILE NOT FOUND.*
- * THE SPECIFIED CHANGE FILE COULD NOT BE FOUND.
- SPACE 4,10
- * COMMON DECKS.
- *CALL COMCMAC
- *CALL COMCDCM
- *CALL COMCMTM
- *CALL COMCDCP
- *CALL COMSPFM
- *CALL COMSSFM
- LIST X
- *CALL COMSSTM
- LIST -X
- SPACE 4,10
- **** INSTALLATION SYMBOL DEFINITIONS.
- IBUFL EQU 6001B BUFFER LENGTH
- ****
- SPACE 4,10
- * LOCAL SYMBOL DEFINITIONS.
- FETL EQU 8 OUTPUT FET LENGTH
- KBUFL EQU 8 KEYBOARD BUFFER LENGTH
- MEMLL EQU 1000B MANAGED-TABLES AREA LENGTH
- MMSC EQU 7 STARTING COLUMN OF MIXED MODE DISPLAY LINE
- SDISN EQU 10 NUMBER OF SCRIPTS PER PAGE
- SSJ= EQU 0 DEFINE *SSJ=* ENTRY POINT
- SPACE 4,10
- TITLE MACRO DEFINITIONS.
- ASCO SPACE 4,10
- ** ASCO - GENERATE MULTIPLEXER OUTPUT FOR *ASCII* CODE.
- *
- *NAME ASCO CH,EQU
- *
- * ENTRY *NAME* = NAME FOR ASSIGNMENT OF CODE.
- * *CH* = *ASCII* CHARACTER VALUE IN HEXIDECIMAL.
- * *EQU* = ASSIGNMENT PSEUDO OP.
- PURGMAC ASCO
- MACRO ASCO,A,C,D
- PAR 0#_C,0
- A D 4000B+2*0#_C+.1
- ASCO ENDM
- OTASC SPACE 4,10
- ** OTASC - GENERATE *ASCII* OUTPUT TRANSLATION TABLE ENTRY.
- *
- * OTASC DC,E1,E2,ADDR
- *
- * ENTRY *DC* = HEX VALUE FOR DISPLAY CODE.
- * *E1* = HEX VALUE FOR ESCAPE 1 (76XX).
- * *E2* = HEX VALUE FOR ESCAPE 2 (74XX).
- * *ADDR* = ADDRESS OF SPECIAL PROCESSING SUBROUTINE. IF
- * NEGATIVE, = COMPLEMENT OF SHIFT QUANTITY USED
- * FOR THIS ESCAPE CHARACTER.
- PURGMAC OTASC
- NOREF .2,.3,.4
- MACRO OTASC,A,B,C,D,E
- IFC NE,*B**
- .2 ASCO B,SET
- ELSE 1
- .2 SET 0
- IFC NE,*C**
- .3 ASCO C,SET
- ELSE 1
- .3 SET 0
- IFC NE,*D**
- .4 ASCO D,SET
- ELSE 1
- .4 SET 0
- VFD 12/.2,12/.3,12/.4,6/,18/E
- OTASC ENDM
- PACK SPACE 4,20
- ** PACK - GENERATE CODE TO PACK TEXT INTO BUFFER.
- *
- * PACK BIAS,POS,COUNT
- *
- * ENTRY (X6) = TEXT TO PACK RIGHT JUSTIFIED.
- * (B7) = STARTING ADDRESS OF BUFFER.
- * *BIAS* = THE DISPLAY COLUMN POSITION OF THE FIRST
- * CHARACTER OF TEXT FROM THE *KDL* MACRO
- * (NUMBERED FROM ONE).
- * *POS* = THE DISPLAY COLUMN POSITION OF THE LAST
- * CHARACTER OF TEXT FROM (X6)
- * (NUMBERED FROM ONE).
- * *COUNT* = LENGTH OF TEXT TO STORE IN CHARACTERS.
- * MUST BE GREATER THAN 0 AND LESS THAN 11.
- *
- * USES X - 2, 3, 6, 7.
- * A - 2, 7.
- PURGMAC PACK
- PACK MACRO BIAS,POS,COUNT
- LOCAL X,Y,Z,LCOUNT,RCOUNT
- MACREF PACK
- X SET POS-BIAS+4
- Y SET X/10 WORD OFFSET INTO BUFFER
- X SET X-Y*10 CHAR POSITION OF RIGHTMOST CHAR IN WORD
- (NUMBERED FROM LEFT WITH FIRST CHAR ZERO)
- Z SET 9-X NUMBER OF CHAR POSITIONS TO SHIFT IN WORD
- LCOUNT SET COUNT-X-1 NUMBER OF CHARS IN PREVIOUS WORD
- RCOUNT SET COUNT-LCOUNT
- SA2 B7+Y FIRST OR ONLY WORD TO CHANGE
- .A IFGT LCOUNT,0
- LX6 6*Z CHANGE FIRST OF TWO WORDS
- MX3 6*RCOUNT
- BX7 X3*X6
- BX2 -X3*X2
- BX7 X2+X7
- SA7 A2
- SA2 A2-B1 GET PREVIOUS WORD TO CHANGE
- MX3 -6*LCOUNT
- .A ELSE
- MX3 -6*COUNT ONLY ONE WORD TO CHANGE
- .B IFNE Z,0
- LX6 6*Z
- LX3 6*Z
- .B ENDIF
- .A ENDIF
- BX7 -X3*X6 CHANGE SECOND OR ONLY WORD
- BX2 X3*X2
- BX7 X2+X7
- SA7 A2
- PACK ENDM
- PARAM SPACE 4,10
- ** PARAM - GENERATE PARAMETER TABLE ENTRY.
- *
- *PN PARAM PROC,DEFAULT
- *
- * ENTRY *PN* = PARAMETER NAME.
- * *PROC* = PARAMETER PROCESSOR.
- * *DEFAULT* = DEFAULT VALUE.
- * OUTPUT
- *
- *T 42/ PARAM,18/ PROC ADDRESS
- *T, 42/ DEFAULT,18/ DISPLAY ADDRESS
- PURGMAC PARAM
- MACRO PARAM,A,B,C
- CON 0L;A+B
- CON 0L;C+DS;A
- PARAM ENDM
- PAR SPACE 4,10
- ** PAR - GENERATE CHARACTER PARITY BIT.
- *
- * PAR CH,OE
- *
- * ENTRY *CH* = CHARACTER VALUE.
- * *OE* = ODD/EVEN (0=EVEN, 1=ODD)
- *
- * EXIT *.1* = PARITY.
- PURGMAC PAR
- NOREF .1
- PAR MACRO A,B
- P MICRO A+1,1, 011010011001011010010110011010011001011001101001011010011
- ,00101101001011001101001011010011001011001101001100101101001011001101001
- .1 SET "P"&;B
- PAR ENDM
- TITLE MANAGED TABLES.
- ORG 110B
- TABLES BSS 0
- SPACE 4,10
- ** WHEN THE STIMULATOR IS INITIATED, *TSCR*, *TTER*, *TSTX*,
- * AND *TASK* ARE MOVED TO LOW MEMORY.
- TSCR SPACE 4,10
- ** TSCR - SCRATCH TABLE.
- *
- * THIS TABLE IS USED TO CONTAIN CODE, FETS, AND BUFFERS THAT
- * WILL BE USED ONCE THE STIMULATION HAS BEEN INITIATED. THE
- * CODE IS RESPONSIBLE FOR RECOVERING OUTPUT AND SELECTING THE
- * NEXT BEST TASK TO PROCESS. IF OUTPUT IS NOT TO BE
- * RECOVERED, THIS TABLE REMAINS EMPTY.
- TSCR TABLE
- TTER SPACE 4,50
- ** TTER - TERMINAL TABLE.
- *
- * *TTER* IS GENERATED FOR *1TS* TO BE USED FOR CONTROL OF THE
- * STIMULATION RUN.
- *
- *T O 3/F ,3/B ,18/OADDR ,5/RC ,7/TT ,12/CT ,12/CK
- *T, .
- *T, .
- *T, .
- *T,NT-1 3/F ,3/B ,18/OADDR ,5/RC ,7/TT ,12/CT ,12/CK
- *T,NT 12/LS ,12/IS ,12/LD ,12/TT ,12/OTT
- *T, .
- *T, .
- *T, .
- *T,NT*2-1 12/LS ,12/IS ,12/LD ,12/ TT ,12/OTT
- *T,NT*2 1/L, 2/R, 3/B, 18/OADDR ,6/ACCT, 18/TADDR, 12/R
- *T, .
- *T, .
- *T, .
- *T,NT*3-1 1/L, 2/R, 3/B, 18/OADDR ,6/ACCT, 18/TADDR, 12/R
- *T,NT*3 60/ USED BY *1TS* FOR OUTPUT RECOVERY
- *T, .
- *T, .
- *T, .
- *T,NT*4-1 60/ USED BY *1TS* FOR OUTPUT RECOVERY
- *T,NT*4 3/F ,3/LB ,18/LADDR ,12/IN ,12/ ,12/ CNT
- *T, .
- *T, .
- *T, .
- *T,NT*5-1 3/F ,3/LB ,18/LADDR ,12/IN ,12/ ,12/ CNT
- *
- * NT NUMBER OF TERMINALS (NUMBER OF ENTRIES IN TABLE)
- *
- * F FLAGS
- * BIT 59 - OFF LINE
- * BIT 58 - DISABLED
- * BIT 57 - CHARACTER ENCOUNTERED
- * B CURRENT BYTE OF OUTPUT DATA WORD
- * OADDR ADDRESS OF CURRENT OUTPUT DATA WORD
- * RC REPEAT COUNT
- * TT THINK TIME DELAY IN SECONDS
- * CT CHARACTER TIME IN MILLESECONDS
- * CK TIMING CLOCK
- *
- * LS LINE SPEED (CHARACTER TIME IN MILLESECONDS)
- * IS INPUT SPEED (CHARACTER TIME IN MILLESECONDS)
- * LD LOGOUT DELAY IN SECONDS
- * TT THINK TIME IN SECONDS
- * OTT OPTIONAL THINK TIME IN SECONDS
- *
- * L FIRST LINE FEED ENCOUNTERED. (FIRST LINE FEED
- * WILL BE USED AS AN INITIATE INPUT PROMPT FOR
- * AUTOMATIC CODE SET DETECTION BY *CCP*.)
- * R RESERVED FIELD
- * ACCT SPECIAL ACCOUNT NUMBER FLAG
- * TADDR ADDRESS FOR CURRENT TASK TABLE ENTRY
- *
- * LB BYTE OF OUTPUT WORD FOR LAST OUTPUT LINE
- * LADDR ADDRESS OF OUTPUT DATA WORD FOR LAST OUTPUT
- * IN CHARACTER COUNTER
- * CNT NUMBER OF TIMES TERMINAL ENCOUNTERED LINE REGULATION
- TTER TABLE 2
- TSTX SPACE 4,30
- ** TSTX - SESSION TEXT.
- *
- * ENTRY - N WORDS PER SESSION.
- *
- * A SESSION CONSISTS OF 5 BYTES OF SESSION TEXT PER WORD.
- * EACH SESSION IS LINKED TO THE NEXT SESSION BY A CONTROL WORD.
- *
- * BYTE FORMAT.
- *
- * BITS 8 - 11 OUTPUT CONTROL CODE
- * BITS 0 - 7 OUTPUT CHARACTER
- *
- * OUTPUT CONTROL CODE (IN BINARY).
- *
- * 100 0 NORMAL OUTPUT
- * 010 0 END OF OUTPUT LINE
- * 001 0 END OF SESSION
- *
- *
- * SESSION LINK.
- *
- * BITS 18 - 59 0
- * BITS 0 - 17 INDEX OF NEXT SESSION
- TSTX TABLE
- TASK SPACE 4,20
- ** TASK - TASK TABLE.
- *
- * THIS TABLE IS USED FOR SELECTION OF THE NEXT BEST TASK.
- *
- *T 42/ TASK NAME ,18/ TASK ADDRESS
- *T, 36/ ,12/ CCALS ,12/ TCALS
- *T, 60/ DESIRED PERCENTAGE (FLOATING POINT)
- *T, 60/ ACTUAL PERCENTAGE (FLOATING POINT)
- *
- * CCALS COMPLETED TASK CALLS
- * TCALS TOTAL TASK CALLS
- TASK TABLE
- TSPT SPACE 4,20
- ** TSPT - SESSION POINTERS.
- *
- *T 12/TT ,12/LS ,12/TTY ,6/RC ,18/INDEX
- *T, 12/IS ,12/LD ,36/
- *
- * TT THINK TIME
- * LS LINE SPEED
- * TTY TERMINALS ASSIGNED
- * RC REPEAT COUNT
- * INDEX INDEX IN *TSTX* OF SESSION
- *
- * IS INPUT SPEED IN CHARACTERS/SECOND
- * LD LOGOUT DELAY IN SECONDS
- TSPT TABLE 1
- TABLES HERE
- TITLE FET DEFINITIONS.
- FETS SPACE 4,10
- * FET DEFINITIONS.
- I BSS 0 SESSION FILE FET
- I RFILEB IBUF,IBUFL,(FET=12),(EPR)
- ORG I
- CON 1
- ORG I+CFPW
- CON IBUF
- ORG I+12
- UI CON 0 USER INDEX
- FN CON 0 FILE NAME
- SPACE 4
- O BSS 0 OUTPUT FILE FET
- OUTPUT FILEB IBUF,IBUFL
- TITLE PARAMETERS.
- SFP SPACE 4,10
- * SFP - SESSION FILE PARAMETERS.
- SFP BSS 0
- F PARAM SSF SESSION FILE NAME
- UI PARAM SUI,0B USER INDEX
- N PARAM SFC,1 NUMBER OF FILE FOR SESSION
- CON 0 END OF TABLE
- STP SPACE 4,10
- * STP - STIMULATION PARAMETERS.
- STP BSS 0
- NT PARAM SNT NUMBER OF TERMINALS
- STPA BSS 0
- AC PARAM SAC,4 ACTIVATION COUNT
- IS PARAM SIS,15 INPUT SPEED IN CHARACTERS/SECOND
- LD PARAM SLD,0 LOGOUT DELAY
- LS PARAM SLS,15 LINE SPEED IN CHARACTERS/SECOND
- TT PARAM STT,10 THINK TIME DELAY IN SECONDS
- TI PARAM TTI,8 THINK TIME INCREMENT
- RC PARAM SRC,0 REPEAT COUNT
- AD PARAM SAD,10 ACTIVATION DELAY
- RO PARAM SRO,ON RECOVER OUTPUT
- LF PARAM SLF,NO LOOP ON FILE OPTION
- CON 0 END OF TABLE
- MTP SPACE 4,10
- * MTP - MIXED MODE PARAMETERS.
- MTP BSS 0
- MX PARAM MIN,0
- CF PARAM SCF,0
- *+ PARAM PLS,0
- VFD 6/1H+,30/0,24/PLS
- VFD 12/0L0,24/0,24/DSMX
- *- PARAM MNS,0
- VFD 6/1H-,30/0,24/MNS
- VFD 12/0L0,24/0,24/DSMX
- CON 0 END OF TABLE
- TITLE WORKING STORAGE.
- DATA SPACE 4,10
- * SESSION PARAMETER VALUES.
- NT CON 0 NUMBER OF TERMINALS
- MNT CON 0 MAXIMUM NUMBER OF TERMINALS
- TM CON 0 THINK TIME MASK
- AD CON 0 ACTIVATION DELAY
- AC CON 0 ACTIVATION COUNT
- IS CON 0 INPUT SPEED
- RO CON 0 RECOVER OUTPUT FLAG
- LS CON 0 LINE SPEED
- TT CON 0 THINK TIME DELAY
- RC CON 0 REPEAT COUNT
- LD CON 0 LOGOUT DELAY
- CF CON 0 MATRIX CHANGE FILE NAME
- TY CON 0 TERMINALS ASSIGNED
- LP CON 0 LOOP FLAG
- MODE CON 0 STIMULATION MODE FLAG
- NPS CON 0 NETWORK MODE FLAG
- TITLE MAIN PROGRAM.
- ** STIMULA - MAIN PROGRAM.
- STIMULA SB1 1 (B1) = 1
- * PROCESS K-DISPLAY INPUT.
- RJ PRS PRESET PROGRAM
- BX0 X0-X0 CLEAR ERROR MESSAGE
- RJ TSF TRANSLATE SESSION FILE
- RETURN I RETURN SCRIPT FILE
- RJ ITT INITIALIZE TERMINAL TABLE
- RJ RSP REQUEST SESSION PARAMETERS
- RJ OPR OUTPUT PARAMETERS
- RJ RMP REQUEST MIXED PARAMETER INPUT
- CONSOLE =0
- MESSAGE (=0),2
- * BUILD TABLES FOR STIMULATION (*TTER* AND *TASK*).
- SA1 MNT EXPAND *TTER* TO 5 WORDS/TERMINAL
- SX2 3
- IX1 X1*X2
- ALLOC TTER,X1
- RJ WMD WRITE MATRIX TO OUTPUT
- RJ SSA SET SESSION ADDRESSES
- RJ STA SET TASK ADDRESSES
- SA1 RO CHECK OUTPUT RECOVERY FLAG
- BX6 X6-X6 CLEAR *TSCR*
- SA6 L.TSCR
- * MOVE OUTPUT RECOVERY CODE.
- ZR X1,STI1 IF NO RECOVER OUTPUT
- RJ IOR INITIALIZE OUTPUT RECOVERY
- EREXIT /RCO/RCO5
- * CLEAR THIRD AND FOURTH WORDS OF *TTER* ENTRIES.
- STI1 SA1 MNT
- LX1 1
- BX6 X6-X6 CLEAR RECOVERY AREA
- SB2 X1
- SA2 F.TTER
- SA6 X2+B2
- STI2 EQ B2,B1,BSM IF BEGIN STIMULATION
- SB2 B2-B1
- SA6 A6+B1
- EQ STI2 LOOP
- STIA VFD 18/0L1TS,24/0,18/TCWD
- TITLE BEGIN STIMULATION.
- BSM SPACE 4,30
- ** BSM - BEGIN STIMULATION.
- *
- * EXIT TO *BSM1* TO MOVE TABLES.
- * (RACW) = *1TS* CONTROL WORD.
- *
- * USES X - ALL.
- * A - 1, 2, 3, 4, 6.
- * B - 2, 4, 6.
- *
- * CALLS MTD.
- *
- * MACROS MOVE.
- *
- * NOTES *BSM* MOVES ALL CODE, POINTERS AND TABLES NEEDED
- * DURING THE STIMULATION TO LOW MEMORY. THIS
- * INCLUDES THE FOLLOWING TABLES - *TSCR*, *TTER*,
- * *TSTX*, AND *TASK*. *BSM* WILL FIRST MOVE THE
- * TABLE MOVE LOOP TO HIGH MEMORY. THE MOVE LOOP
- * IS THEN EXECUTED TO MOVE THE TABLES AND CALL THE
- * STIMULATION DRIVER.
- * THE DRIVER IS RESPONSIBLE FOR STARTING THE OUTPUT
- * RECOVERY ROUTINE IN THE CPU.
- BSM BSS 0 ENTRY
- SA1 F.TSCR SET CONTROL WORD ADDRESS
- SA5 STIA
- SA2 L.TSCR
- BX6 X5 STORE *1TS* CALL
- IX7 X1+X2
- SA6 BSMA+BSMB
- * GENERATE *1TS* CONTROL WORD.
- SA1 AC SET ACTIVATION COUNT
- SB2 B1+B1
- LX1 36
- SA2 MNT SET TOTAL NUMBER OF TERMINALS
- LX2 48
- BX1 X1+X2
- SA2 TM SET THINK TIME MASK
- LX2 24
- BX1 X1+X2
- SA3 AD SET ACTIVATION DELAY
- LX3 12
- BX1 X1+X3
- SA4 L.TSCR COMPUTE STORAGE REQUIRED
- SA2 L.TTER
- IX4 X4+X2
- SA3 L.TSTX
- IX5 X4+X3
- SA4 L.TASK
- IX5 X5+X4
- SX5 X5+10
- SX4 X5+77B+STMO
- AX4 6
- BX6 X1+X4
- AX5 3 SET MOVE DOWN WORD COUNT
- SA6 RACW
- * PREPARE TO MOVE TABLES DOWN.
- RJ MTD MOVE TABLES DOWN
- RJ ICT INITIALIZE CONTROL TABLE
- SA3 F.TEND RELOCATE *SPC* REQUEST
- SA1 BSMC
- SA2 BSMA+BSM2 RELOCATE MOVE DOWN PROGRAM
- SB4 X5
- SB6 X3
- IX5 X1+X3
- LX3 15
- IX6 X2+X3
- SA6 A2
- MOVE BSMAL,BSMA,B6
- SA2 F.TSCR SET MOVE DIFFERENTIAL
- SB3 X2-STMO
- SB2 B1+B1
- SA1 X2 FIRST WORD
- SA2 A1+B1 NEXT WORD
- JP B6+BSM1 ENTER MOVE LOOP
- * TABLE MOVE DOWN LOOP.
- BSMA BSS 0
- LOC 0
- BSM1 SA3 A1+B2
- SA4 A2+B2
- BX6 X1
- LX7 X2
- SA6 A1-B3
- SA7 A2-B3
- SA1 A3+B2
- SA2 A4+B2
- BX6 X3
- LX7 X4
- SA6 A3-B3
- SA7 A4-B3
- SA3 A1+B2
- SA4 A2+B2
- BX6 X1
- LX7 X2
- SA6 A1-B3
- SA7 A2-B3
- SB4 B4-B1
- SA1 A3+B2
- SA2 A4+B2
- BX6 X3
- LX7 X4
- SA6 A3-B3
- BSM2 SA7 A4-B3
- NZ B4,BSM1 LOOP TO END OF TRANSFER
- BX6 X5 STORE *SPC* REQUEST
- SA6 B1
- + JP B6+*
- BSMB CON 0 *1TS* REQUEST WORD
- CON 0 PADDING FOR P-COUNTER AT END OF FL
- * (REQUIRED FOR CYBER 74, 170)
- LOC *O
- BSMAL EQU *-BSMA
- FLFF EQU BSMAL FIELD LENGTH FUDGE FACTOR
- BSMC VFD 18/0LSPC,3/2,39/BSMB
- TITLE INITIALIZE STIMULATION TABLES.
- IOR SPACE 4,20
- ** IOR - INITIALIZE OUTPUT RECOVERY.
- *
- * EXIT OUTPUT FETS FOR STIMULATION SETUP.
- * RECOVERY ROUTINES RELOCATED.
- *
- * USES X - 0, 1, 2, 3, 5, 6, 7.
- * A - 1, 2, 5, 6, 7.
- * B - 2, 3, 4, 5.
- *
- * MACROS ALLOC, MOVE.
- *
- * NOTES *IOR* IS RESPONSIBLE FOR BUILDING THE *TSCR*
- * TABLE. THIS TABLE CONTAINS THE ROUTINES, FETS,
- * AND BUFFERS NEEDED TO RECOVER STIMULATION OUTPUT.
- * *IOR* SETS THE CEJ/MEJ FLAG INTO THE RECOVER OUTPUT
- * ROUTINES BEFORE THEY ARE MOVED. THIS IS NEEDED SO
- * THAT *COMCSYS* IS INITIALIZED CORRECTLY FOR OUTPUT
- * RECOVERY.
- IOR SUBR ENTRY/EXIT
- SA2 XJPR SAVE CEJ/MEJ FLAG
- BX6 X2
- SA6 RCOA+XJPR-STMO
- ALLOC TSCR,RCOAL ALLOCATE SPACE FOR RECOVERY CODE
- SX3 X2
- MOVE X1,RCOA,X3
- SA5 RAPP ALLOCATE SPACE FOR FETS AND BUFFERS
- SX2 FETL+IBUFL
- IX5 X5*X2
- ALLOC TSCR,X5
- SA1 F.TSCR SET FWA OF FETS
- SB2 X1+RCOAL
- SB4 X1-STMO (B4) = RELOCATION DIFFERENTIAL
- SA2 RAPP SET FIRST WORD OF BUFFERS
- SX3 FETL
- IX3 X2*X3
- SB3 X2
- SB5 X3+B2
- SX5 B5-B4 (X5) = RELOCATED BUFFER ADDRESS
- SB5 B0 SET INDEX INTO CONTROL TABLE
- IOR1 SA1 TCWD+B5 SET FWA OF FET INTO CONTROL TABLE
- LX1 42
- SX2 B2-B4
- BX6 X1+X2
- LX6 18
- SA6 A1
- * BUILD NEW FET.
- SA2 IORA+1 SET FIRST
- MX0 42
- BX7 X0*X2
- BX7 X5+X7
- SA7 A2
- BX6 X5 SET IN AND OUT POINTERS
- SA6 A7+B1
- SA6 A6+B1
- SX5 X5+IBUFL SET LIMIT
- SA1 A6+B1
- BX1 X0*X1
- BX6 X1+X5
- SA6 A1
- MOVE FETL,IORA,B2 SET FET
- RETURN B2,R
- NZ B5,IOR2 IF NOT FIRST FET
- SA1 IORB SET *SCR* FILE NAME
- BX6 X1
- EQ IOR3 SET FILE NAME
- IOR2 SA1 IORA UPDATE FET NAME
- SX3 B1+
- LX3 36-0
- IX6 X1+X3
- IOR3 SA6 IORA
- SB2 B2+FETL SET NEXT FET ADDRESS
- SB5 B5+B1
- LT B5,B3,IOR1 IF MORE TO PROCESS
- EQ IORX RETURN
- IORA BSS 0
- STIMOUT FILEB IBUF,IBUFL,(FET=FETL)
- IORB VFD 42/0LSCR0,18/3
- ICT SPACE 4,20
- ** ICT - INITIALIZE CONTROL TABLE.
- *
- * EXIT CONTROL TABLE BUILT.
- *
- * USES X - 1, 2, 3, 4, 6.
- * A - 1, 2, 3, 6.
- * B - 3, 4.
- ICT SUBR ENTRY/EXIT
- SX6 TCWD SET ACTIVATION INDICATOR
- LX6 48
- SA6 RAMD
- SA1 F.TSCR SET MOVE DIFFERENTIAL
- SX3 X1-STMO
- SA1 F.TTER
- IX1 X1-X3
- SA3 RAPP
- SB3 X3
- SA2 MNT
- IX2 X1+X2
- SA3 TCWD-1
- SB4 B0 SET TERMINAL BIAS
- ICT1 SA3 A3+B1 GET NEXT ENTRY
- BX6 X3+X1
- SX4 B4 SET TERMINAL NUMBER BIAS
- LX4 48
- BX6 X4+X6
- SA6 A3
- SB3 B3-B1
- LX3 24
- ZR B3,ICTX IF END OF *TCWD*
- SA4 MODE
- MX0 -12
- ZR X4,ICT2 IF INTERNAL STIMULATION MODE
- MX0 -6
- ICT2 BX3 -X0*X3
- IX3 X3+X4 ADD BIAS
- IX1 X1+X3 ADVANCE TERMINAL TABLE ADDRESS
- SB4 B4+X3 ADVANCE TERMINAL NUMBER BIAS
- IX4 X2-X1
- PL X4,ICT1 IF NOT END OF TABLE
- EQ ICTX RETURN
- ITT SPACE 4,20
- ** ITT - INITIALIZE TERMINAL TABLE.
- *
- * USES X - 1, 6.
- * A - 1, 6.
- * B - 2.
- *
- * MACROS ALLOC.
- ITT SUBR ENTRY/EXIT
- SA1 MNT SET TERMINAL TABLE ENTRIES
- IX1 X1+X1 2 WORDS PER TERMINAL
- ALLOC TTER,X1
- MX6 1 SET TERMINAL OFF LINE
- SB2 X1
- SA6 X2
- ITT1 EQ B2,B1,ITTX IF END OF TABLE
- SB2 B2-B1
- SA6 A6+B1
- EQ ITT1 LOOP
- SSA SPACE 4,20
- ** SSA - SET SESSION ADDRESSES.
- *
- * ENTRY *TSPT* SET UP.
- *
- * EXIT (RADDR) = RELOCATION ADDRESS.
- * (RASC) = SCRIPT POINTERS.
- * SCRIPTS ASSIGNED TO TERMINALS.
- * *TTER* SETUP.
- * UNUSED TERMINALS SET OFF LINE.
- *
- * USES X - ALL.
- * A - 1, 2, 3, 4, 5, 6, 7.
- * B - 2, 3, 4, 5, 6.
- *
- * NOTES *SSA* PERFORMS THE FOLLOWING FUNCTIONS -
- * 1. BUILDS *RASC*.
- * 2. ASSIGNS SCRIPT TO TERMINALS.
- * 3. SETS UNUSED TERMINALS OFF LINE.
- SSA SUBR ENTRY/EXIT
- SA2 RO
- SA1 L.TTER SET BASE SESSION ADDRESS
- ZR X2,SSA1 IF NO OUTPUT RECOVERY
- SA2 RAPP
- SX3 8+IBUFL
- IX2 X2*X3
- IX1 X1+X2
- SX1 X1+RCOAL
- SSA1 SX3 X1+STMO+2 RELOCATE INDICES TO ADDRESSES
- BX6 X3
- SA6 RADDR
- SA1 MNT SET TERMINAL TABLE ENTRIES
- SB3 X1
- LX1 2
- SB6 X1
- SA1 NT ENTERED TERMINAL COUNT
- SB2 X1 TERMINAL COUNT
- * SET SCRIPT POINTERS IN *RA*.
- SA2 F.TTER
- SA5 F.TSPT ADDRESS OF SESSION POINTERS
- SA1 LTSTX POINTER TO END OF SESSION SCRIPTS
- IX6 X1+X3
- LX6 24 LAST(18)-FIRST(24)
- IX7 X6+X3
- LX7 12
- SA1 LP SET SESSION FILE LOOP OPTION
- LX1 59
- BX7 X1+X7
- SA7 RASC
- * ASSIGN SCRIPTS TO TERMINALS.
- SA1 X2 FIRST TERMINAL ENTRY
- SSA2 SB4 B0
- SA4 L.TSPT
- SB5 X4 LENGTH OF SESSION POINTERS
- SSA3 SA2 X5+B4 GET FIRST WORD OF *TSPT* ENTRY
- MX0 -12
- LX0 24
- BX3 -X0*X2
- NZ X3,SSA4 IF TTYS ASSIGNED
- SB4 B4+B1
- EQ SSA5 ADVANCE TO NEXT *TSPT* ENTRY
- SSA4 BX6 X0*X2 DECREMENT TTY COUNT
- LX3 36
- SX3 X3-1
- LX3 24
- BX6 X3+X6
- SA6 A2
- SA3 RADDR
- MX6 0
- MX7 6
- BX1 X7*X1 CLEAR ADDR,RC,TT,CHAR-TIME FROM *TTER*
- IX4 X2+X3
- LX4 36
- MX7 6 SET REPEAT COUNT
- BX3 X7*X4
- LX3 37
- IX6 X6+X3
- MX7 -7 SET THINK TIME
- LX7 24
- BX3 -X7*X4
- BX7 X3 SAVE THINK TIME
- AX7 24
- SA7 TT
- IX6 X6+X3
- MX7 -12 SET LINE SPEED
- LX7 12
- BX3 -X7*X4
- AX3 12
- SX7 1000
- IX7 X7/X3
- SA7 LS SAVE LINE SPEED
- LX7 12
- IX6 X6+X7
- MX7 -18
- LX7 36
- BX4 -X7*X4
- IX6 X6+X4 SET ADDRESS
- SA4 AD SET ACTIVATION DELAY
- IX6 X6+X4
- IX6 X1+X6
- SA6 A1 SET NEW *TTER* ENTRY FOR SCRIPT
- MX0 24 SET REGULATION WORD
- BX6 X0*X6
- SA6 A1+B6
- SB4 B4+B1 GET SECOND WORD OF *TSPT* ENTRY
- SA2 X5+B4
- MX7 -12
- SA4 LS GET LINE SPEED
- BX6 X4
- LX2 12
- BX4 -X7*X2 GET INPUT SPEED
- SX7 1000
- IX4 X7/X4 FORM INPUT SPEED CHARACTER TIME (MS)
- LX6 12
- IX6 X6+X4
- MX7 -12
- LX2 12
- BX2 -X7*X2 GET LOGOUT DELAY
- LX6 12
- IX6 X6+X2
- SA4 TT GET THINK TIME
- BX4 -X7*X4
- LX6 12
- IX7 X6+X4
- LX7 12
- SA7 A1+B3 REPLACE *TTER-1* ENTRY
- SA1 A1+B1
- SB2 B2-B1 DECREMENT TOTAL TTY COUNT
- ZR B2,SSA6 IF ALL ON-LINE TERMINALS DONE
- SSA5 SB4 B4+B1
- SB5 B5-2 DECREMENT *TSPT* COUNTER
- ZR B5,SSA2 IF LAST SCRIPT
- EQ SSA3 LOOP
- * SET REMAINING TERMINALS OFF LINE.
- SSA6 SA2 NT ENTERED TERMINAL COUNT (ON-LINR)
- SB2 X2
- SB2 B3-B2 DISABLED TERMINAL COUNT (OFF-LINE)
- ZR B2,SSAX IF ALL TTY-S TO BE ON-LINE
- SX3 B1
- LX3 58
- SA4 RADDR DUMMY ADDRESS FOR DISABLED TTY-S
- LX4 36
- BX3 X3+X4
- SA1 A1
- BX6 X1
- SSA7 BX6 X6+X3 SET DISABLE BIT
- SA6 A1
- SA7 A1+B3 *TTER-1* ENTRY
- SA1 A1+B1
- BX6 X1
- SB2 B2-B1
- ZR B2,SSAX IF ALL TTY-S DONE
- EQ SSA7 LOOP
- STA SPACE 4,15
- ** STA - SET TASK ADDRESSES.
- *
- * ENTRY (RADD) = RELOCATION ADDRESS.
- *
- * EXIT TASK ADDRESS IN *TASK* TABLE RELOCATED.
- * (RATK) = FWA OF TASK TABLE.
- *
- * USES X - 1, 2, 5, 6, 7.
- * A - 1, 2, 5, 6, 7.
- * B - 2, 3, 4.
- STA SUBR ENTRY/EXIT
- SB0 0
- SA1 L.TASK
- ZR X1,STAX IF NO TASKS
- SB2 X1-1 LENGTH OF *TASK TABLE*
- SB3 4 4 WORDS PER ENTRY IN *TASK TABLE*
- SB4 B0
- SA5 RADDR RELOCATION ADDRESS
- SA1 L.TSTX END OF TASKS POINTER
- SX1 X1+B1 BUMP POINTER TO *TASK TABLE*
- IX7 X1+X5 GENERATE ADDRESS TO *TASK TABLE*
- SA7 RATK
- MX7 -18
- SA1 F.TASK FWA *TASK TABLE*
- STA1 SA2 X1+B4 RELOCATE TABLE ADDRESS
- IX6 X2+X5
- SA6 A2
- SB2 B2-B3 DECREMENT *TASK TABLE* WORD COUNTER
- SB4 B4+B3 BUMP POINTER TO NEXT TASK ENTRY
- ZR B2,STAX IF ALL TASK ENTRIES MODIFIED
- EQ STA1 GET NEXT ENTRY
- TITLE OUTPUT RECOVERY ROUTINES.
- RCO SPACE 4,10
- RCOA BSS 0
- QUAL RCO
- SPACE 4,10
- ** THE FOLLOWING CODE IS MOVED INTO *TSCR* IF OUTPUT IS
- * TO BE RECOVERED DURING THE STIMULATION. THIS CODE WILL
- * BE STARTED BY THE STIMULATION DRIVER ONCE THE STIMULATION
- * IS INITIATED.
- RCO SPACE 4,20
- ** RCO - RECOVER OUTPUT.
- *
- * ENTRY (X0) = CEJ/MEJ FLAG.
- * STIMULATION INITIATED.
- *
- * EXIT STIMULATION COMPLETE.
- * POST PROCESSING COMPLETE.
- *
- * USES X - 1, 2, 3, 4, 5, 6, 7.
- * A - 1, 2, 3, 4, 5, 6, 7.
- * B - 3, 4.
- *
- * CALLS COF, DAD, GBT, OTD, PES.
- *
- * MACROS ENDRUN, MESSAGE, RECALL, RETURN, SETQP,
- * SETPR, WRITE.
- LOC STMO
- RCO BSS 0 ENTRY
- RJ DAD DUMP ACCOUNT DAYFILE
- * STIMULATION LOOP - PROCESS TASK CALLS AND RECOVER OUTPUT.
- RCO1 RECALL
- SA1 RANT
- NZ X1,RCO2 IF NO REQUEST FOR NEXT TASK
- RJ GBT GET BEST TASK
- RCO2 SB3 B0
- SA1 RAPP
- SB4 X1-1
- RCO3 SA5 TCWD+B4
- NG X5,RCO4 IF COMPLETE
- SB3 B1
- LX5 42
- SA3 X5+2 IN
- SA4 X5+3 OUT
- SX2 X3+B1
- IX6 X4-X2 (OUT-IN+1)
- LX3 X6,B1 2*(OUT-IN+1)
- SX7 IBUFL
- AX6 60 SIGN OF (OUT-IN+1)
- BX4 X6-X7 INVERT BUFFER IF IN+1 .GE OUT
- IX6 X4-X3 BUFFER SIZE - 2*(OUT-IN+1)
- NG X6,RCO4 IF BUFFER THRESHOLD NOT REACHED
- SA1 X5 GET FIRST WORD OF FET
- LX1 59-0
- PL X1,RCO4 IF COMPLETE BIT NOT SET
- RCOE WRITE X5 WRITE *STIMOUT* DATA
- RCOEL EQU * ENSURE PROPER CODE MODIFICATION
- * WRITE X5,R (ONE DRIVER PRESENT)
- RCO4 SB4 B4-1
- PL B4,RCO3 IF NOT END OF TABLE
- NZ B3,RCO1 IF STIMULATION NOT COMPLETE
- * PROCESS END OF STIMULATION - CREATE *STIMOUT* FILE
- * AND WRITE TASK DATA TO *OUTPUT*.
- RCO5 MESSAGE RCOA * STIMULATION COMPLETE.*
- MESSAGE RCOB,2 * MERGING STIMOUT DATA.*
- SETPR 30B REDUCE CPU PRIORITY
- RJ COF COMPLETE OUTPUT FILE
- SA2 TCWD SET ADDRESS OF FIRST FET
- LX2 42
- SX2 X2
- SA1 RCOD SET FILE NAME
- BX6 X1
- SA6 X2
- RETURN X2,R
- RJ PES PROCESS END OF STIMULATION
- RJ OTD OUTPUT TASK DATA
- MESSAGE RCOC,2
- ENDRUN
- SPACE 4,10
- ERRNG 65B-* OVERFLOW INTO RESERVED AREA
- BSS CCDR-* AVOID RESERVED AREA
- SPACE 4,10
- RCOA DATA C* STIMULATION COMPLETE.*
- RCOB DATA C* MERGING STIMOUT DATA.*
- RCOC DATA C* *
- RCOD VFD 42/4LSCR0,18/1
- COF SPACE 4,20
- ** COF - COMPLETE OUTPUT FILES.
- *
- * ENTRY STIMULATION COMPLETE.
- *
- * EXIT OUTPUT DATA WRITTEN TO *STIMOUT*.
- *
- * USES X - 0, 1, 2, 5, 6.
- * A - 1, 2, 5, 6.
- * B - 2, 3.
- *
- * MACROS RECALL, RETURN, REWIND, WRITE, WRITER.
- COF SUBR ENTRY/EXIT
- SA1 RAPP SET NUMBER OF FILES
- SB3 X1
- SB2 B0
- * FLUSH BUFFERS.
- COF1 SA5 TCWD+B2 SET FET ADDRESS
- LX5 42
- SA1 X5 SAVE CURRENT FILE NAME
- BX6 X1
- SA6 COFB
- RECALL X5
- WRITER X5,R
- ZR B2,COF4 IF *STIMOUT* FILE
- REWIND X5,R
- * COPY FILE TO *STIMOUT*.
- COF2 READ X5,R
- SA1 COFA CHANGE FILE NAME TO *STIMOUT*
- SA2 X5 CHECK FET STATUS
- BX6 X1
- SA6 X5
- LX2 59-4
- NG X2,COF3 IF EOR/EOF ENCOUNTERED
- LX2 59-9-59+4
- NG X2,COF3 IF EOI ENCOUNTERED
- WRITE X5,R
- SA1 COFB RESTORE FILE NAME
- BX6 X1
- SA6 X5
- EQ COF2 CONTINUE FILE COPY
- COF3 WRITER X5,R
- SA1 COFB RESET FILE NAME
- BX6 X1
- SA6 X5
- RETURN X5,R
- COF4 SB2 B2+1 ADVANCE CONTROL TABLE INDEX
- NE B2,B3,COF1 IF MORE FILES TO COPY
- EQ COFX RETURN
- COFA VFD 42/7LSTIMOUT,18/1
- COFB CON 0 CURRENT FILE NAME
- DAD SPACE 4,10
- ** DAD - DUMP ACCOUNT DAYFILE.
- *
- * ENTRY (TCWD) = FET ADDRESS OF SCRATCH FILE.
- *
- * EXIT ACCOUNT DAYFILE DUMPED.
- *
- * USES X - 3, 4, 5, 6, 7.
- * A - 3, 4, 5, 6, 7.
- *
- * MACROS DAYFILE, RETURN.
- DAD SUBR ENTRY/EXIT
- SA5 TCWD
- SA3 DADA SET ACCOUNT MESSAGE IN BUFFER
- SA4 A3+B1
- BX6 X3
- BX7 X4
- LX5 42
- SA3 X5+B1 SET FIRST
- SA6 X3
- SA7 X3+B1
- DAYFILE X5,ACCOUNT
- RETURN X2
- EQ DADX RETURN
- DADA DATA C*SIAD, STIMULATOR.*
- GBT SPACE 4,20
- ** GBT - GET BEST TASK.
- *
- * ENTRY (RATK) = FWA OF TASK POINTERS.
- * (X2) = FWA OF FET.
- *
- * EXIT (RANT) = ADDRESS OF NEXT BEST TASK TO EXECUTE.
- *
- * USES X - 0, 1, 2, 6, 7.
- * A - 1, 2, 6, 7.
- * B - 3, 7.
- GBT SUBR ENTRY/EXIT
- SA1 RATK
- ZR X1,GBTX IF NO TASKS
- BX6 X6-X6
- SA6 GBTB *BEST TASK* ADDRESS
- SX6 10000 DUMMY VALUE FOR HIGH F-VAL
- PX7 X6
- NX7 X7
- SA7 GBTA *BEST TASK* F-VALUE
- MX7 -12
- SB3 3
- SB7 B0
- MX6 0
- * COMPUTE TOTAL NUMBER OF TASK CALLS.
- GBT1 SA2 X1+B7 GET FIRST WORD OF TASK ENTRY
- ZR X2,GBT2 IF END OF TABLE
- SB7 B7+B1
- SA2 X1+B7 GET NUMBER OF CALLS FOR THIS TASK
- BX2 -X7*X2
- IX6 X6+X2 UPDATE TOTAL NUMBER OF TASK CALLS
- SB7 B7+B3
- EQ GBT1 LOOP FOR ALL TASKS
- GBT2 PX0 X6 CONVERT TOTAL CALLS TO FLOATING POINT
- NX0 X0
- SB7 B0+
- SA1 RATK
- * DETERMINE NEXT BEST TASK.
- GBT3 SA2 X1+B7 GET FIRST WORD OF TASK ENTRY
- ZR X2,GBT6 IF END OF TABLE
- MX7 -12
- SB7 B7+B1
- SA2 X1+B7 GET NUMBER OF CALLS FOR THIS TASK
- BX2 -X7*X2
- PX7 X2
- NX7 X7
- SB7 B7+B1
- SA2 X1+B7 GET DESIRED PERCENTAGE FOR TASK
- SB7 B7+B1
- MX6 0
- ZR X0,GBT4 IF NO TASK CALLED YET
- FX6 X7/X0 COMPUTE ACTUAL PERCENTAGE FOR TASK
- GBT4 SA6 X1+B7 SAVE ACTUAL PERCENTAGE
- FX6 X6/X2 (ACTUAL PERCENTAGE) / (DESIRED PERCENTAGE)
- SA2 GBTA COMPARE CURRENT TASK WITH NEXT BEST TASK
- FX2 X6-X2
- PL X2,GBT5 IF CURRENT TASK NOT NEXT BEST TASK
- NX6 X6 SET CURRENT TASK AS NEXT BEST TASK
- SA6 GBTA
- SB6 B7-B3
- SX6 X1+B6
- SA6 GBTB
- GBT5 SB7 B7+B1
- EQ GBT3 LOOP FOR ALL TASKS
- GBT6 SA1 GBTB SET NEXT BEST TASK
- BX6 X1
- SA6 RANT
- EQ GBTX RETURN
- GBTA CON 0 BEST TASK F-VALUE
- GBTB CON 0 BEST TASK ADDRESS
- OTD SPACE 4,20
- ** OTD - OUTPUT TASK DATA.
- *
- * ENTRY STIMULATION COMPLETE.
- * (TCWD) = FET ADDRESS OF SCRATCH FILE.
- *
- * EXIT TASK INFORMATION WRITTEN TO OUTPUT.
- *
- * USES X - 0, 1, 2, 3, 5, 6, 7.
- * A - 1, 2, 3, 5, 6, 7.
- * B - 2.
- *
- * CALLS CDD, CFD.
- *
- * MACROS REWIND, WRITER, WRITEW.
- OTD SUBR ENTRY/EXIT
- SA5 RATK
- ZR X5,OTDX IF NO TASKS
- SA2 TCWD SET FET ADDRESS
- LX2 42
- SX2 X2
- REWIND X2,R
- * OUTPUT PAGE HEADER.
- SA1 OTDA SET OUTPUT FILE NAME
- BX6 X1
- SA6 X2
- WRITEW X2,TSKO,TSKOL WRITE TASK HEADER
- * OUTPUT TASK INFORMATION.
- OTD1 SA2 X5 GET FIRST WORD OF TASK ENTRY
- ZR X2,OTD2 IF END OF *TASK TABLE
- SA1 BLNK
- MX0 -12
- MX7 36
- BX6 X7*X2
- BX6 X6+X1
- LX6 54
- SA6 WBUF
- SA2 X5+B1 GET SECOND WORD OF TASK ENTRY
- BX1 -X0*X2 GET *CALLS*
- SA3 CALLS
- IX7 X1+X3
- SA7 A3
- RJ CDD CONVERT INTEGER *CALLS* TO DISPLAY CODE
- LX6 18
- SA6 WBUF+1
- SA2 X5+B1 GET SECOND WORD OF TASK ENTRY
- AX2 12
- BX1 -X0*X2 GET *COMPLETES*
- SA3 COMPLET
- IX7 X1+X3
- SA7 A3
- RJ CDD CONVERT *COMPLETES* TO DISPLAY CODE
- LX6 24
- SA6 WBUF+2
- SA2 X5+2 GET THIRD WORD OF TASK ENTRY
- SA3 DESIRED
- FX7 X2+X3
- SA7 A3
- SA1 THO
- FX1 X1*X2
- UX1 B2,X1
- LX1 B2,X1
- RJ CFD CONVERT TO FLOATING DISPLAY CODE
- LX6 12
- SA6 WBUF+3
- SA2 X5+3 SET ACTUAL PERCENTAGE
- SA3 ACTUAL
- FX7 X2+X3
- SA7 A3
- SA1 HTHO
- FX1 X1*X2
- UX1 B2,X1
- LX1 B2,X1
- RJ CFD
- MX7 48
- LX6 12
- BX6 X7*X6 ENSURE ZERO BYTE TERMINATOR
- SA6 WBUF+4
- SA2 TCWD
- LX2 42
- WRITEW X2,WBUF,WBUFL
- SX5 X5+4 ADVANCE TASK TABLE POINTER
- EQ OTD1 LOOP FOR NEXT TASK
- * OUTPUT *TOTAL* TASK INFORMATION.
- OTD2 SA1 TSK2 SET *TOTALS*
- BX6 X1
- SA6 WBUF
- SA1 CALLS GET *TOTAL CALLS*
- RJ CDD
- LX6 18
- SA6 WBUF+1
- SA1 COMPLET GET *TOTAL COMPLETES*
- RJ CDD
- SA1 DESIRED GET *TOTAL DESIRED PERCENTAGE*
- SA2 THO
- LX6 24
- SA6 WBUF+2
- FX1 X1*X2
- UX1 B2,X1
- LX1 B2,X1
- RJ CFD
- SA1 ACTUAL GET *TOTAL ACTUAL PERCENTAGE*
- SA2 HTHO
- LX6 12
- SA6 WBUF+3
- FX1 X1*X2
- UX1 B2,X1
- LX1 B2,X1
- RJ CFD
- MX7 48
- LX6 12
- BX6 X7*X6
- MX0 -12
- SA6 WBUF+4
- SA1 RASC SET NUMBER OF DEFAULT TASK CALLS
- BX1 -X0*X1
- RJ CDD CONVERT *DEFAULTS* TO DISPLAY CODE
- LX6 18
- MX7 42
- BX6 X7*X6
- SA6 TBUF+3
- SA5 TCWD
- LX5 42
- WRITEW X5,WBUF,WBUFL
- WRITEW X5,TBUF,TBUFL
- WRITER X5,R
- EQ OTDX RETURN
- OTDA VFD 42/6LOUTPUT,18/1
- CALLS DATA 0
- COMPLET DATA 0
- DESIRED DATA 0.0
- ACTUAL DATA 0.0
- THO DATA 1000.
- HTHO DATA 100000.
- TSKO DATA C*1 TASK CALLS COMPLETE DESIRED ACTUAL*
- TSKOL EQU *-TSKO LENGTH OF *TSKO*
- TBUF BSS 0
- DATA C* *
- DATA C* DEFAULT TASK CALLS= *
- TBUFL EQU *-TBUF LENGTH OF *TBUF*
- TSK2 DATA C* TOTALS *
- BLNK DATA 4R
- PES SPACE 4,20
- ** PES - PROCESS END OF STIMULATION.
- *
- * EXIT ACCOUNT DAYFILE DUMPED.
- * NUMBER OF LINE REGULATIONS REPORTED.
- *
- * USES X - 0, 1, 2, 3, 6.
- * A - 2, 3, 6.
- *
- * CALLS CDD, DAD.
- *
- * MACROS MESSAGE.
- PES SUBR ENTRY/EXIT
- RJ DAD DUMP ACCOUNT DAYFILE
- SA2 RAPP
- MX0 -12
- BX1 X1-X1
- PES1 SX2 X2-1 COUNT TOTAL LINE REGULATIONS
- SA3 TCWD+X2
- LX3 24
- BX3 -X0*X3
- IX1 X1+X3
- NZ X2,PES1 IF NOT END OF TABLE
- ZR X1,PESX IF NO LINE REGULATIONS
- RJ CDD
- BX6 X4
- SA6 PESA+3
- MESSAGE PESA * NUMBER OF LINE REGULATIONS = NNNNNNNN*
- EQ PESX RETURN
- PESA DATA C* NUMBER OF LINE REGULATIONS = *
- SPACE 4,10
- * COMMON DECKS.
- *CALL COMCCDD
- *CALL COMCCFD
- *CALL COMCCIO
- *CALL COMCCPM
- *CALL COMCSFM
- *CALL COMCSYS
- *CALL COMCWTW
- SPACE 4,10
- WBUF BSS 0
- SPACE 4,10
- LOC *O
- QUAL
- WBUFL EQU 5 LENGTH OF *WBUF*
- RCOAL EQU *+WBUFL-RCOA LENGTH OF RECOVERY ROUTINE
- TITLE K-DISPLAY INPUT PROCESSOR ROUTINES.
- ABT SPACE 4,10
- ** ABT - ABORT JOB.
- *
- * ENTRY (X0) = ERROR MESSAGE ADDRESS.
- *
- * EXIT PROGRAM ABORTED.
- *
- * MACROS ABORT, MESSAGE.
- ABT BSS 0 ENTRY
- MESSAGE X0
- ABORT
- KBI SPACE 4,20
- ** KBI - PROCESS KEYBOARD INPUT.
- *
- * ENTRY (X6) = ADDRESS OF PARAMETER CONTROL TABLE.
- * (X3) = DISPLAY BUFFER ADDRESS.
- * (X7) = DISPLAY BUFFER END ADDRESS.
- * (X0) = ERROR MESSAGE ADDRESS, IF ANY.
- *
- * EXIT INPUT PROCESSED.
- *
- * USES X - ALL.
- * A - 0, 1, 2, 4, 5, 6, 7.
- * B - 6, 7.
- *
- * CALLS SFN, UPC.
- *
- * MACROS CONSOLE, RECALL.
- KBI SUBR ENTRY/EXIT
- SA1 KBIA ENTER DISPLAY BUFFER ADDRESS
- SA6 A1+B1 SET PARAMETER TABLE ADDRESS
- BX6 X1+X3
- SA7 A6+B1 SET END OF DISPLAY BUFFER
- SA6 A7+B1
- SA0 X7
- CONSOLE A6
- SX7 A0+
- SA7 KBIA+3 DISPLAY BUFFER END ADDRESS
- NZ X0,KMS IF MESSAGE REQUESTED
- KBI1 SX6 B0+
- SB6 KBUF
- SB7 KBUF+KBUFL
- KBI2 SA6 B6 CLEAR KEYBOARD BUFFER
- SB6 B6+B1
- LT B6,B7,KBI2 IF MORE TO CLEAR
- KBI3 RECALL
- SA5 KBUF CHECK KEYBOARD
- ZR X5,KBI3 IF NOT READY
- SA1 KBIB SET COORDINATES
- SA2 KBIA+2
- BX7 X1
- MX0 -6
- SA7 X2
- KBI4 BX6 -X0*X5 LOCATE LAST WORD
- LX7 X5 COPY INPUT
- SA7 A7+B1
- SA0 A7+B1
- ZR X6,KBI5 IF LAST WORD OF INPUT
- SA5 A5+B1
- EQ KBI4 LOOP TO END OF INPUT
- KBI5 BX1 X5 SPACE FILL NAME
- RJ SFN
- SX7 1R. ADD PERIOD
- SA6 A5
- LX7 54
- SA7 A6+B1
- SA6 A0-B1
- SA5 KBUF UNPACK COMMAND
- SX7 A0
- SB7 IBUF
- SA7 KBIA+3
- RJ UPC
- SA5 B7-B1 FIRST ENTRY WORD (MINUS 1)
- NZ X6,KFE IF ERROR DETECTED
- SA6 A0 CLEAR ERROR MESSAGE
- SA6 KBUF CLEAR KEYBOARD BUFFER
- * IDENTIFY NEXT OPTION.
- KBI6 SA1 KBIA+1 SET PARAMETER TABLE ADDRESS
- SA5 A5+B1 NEXT KEYBOARD WORD
- SX2 1R+
- BX6 X5-X2
- ZR X6,KBI7 IF *+* TO ADVANCE MATRIX DISPLAY
- SX2 1R-
- BX6 X5-X2
- NZ X6,KBI8 IF NOT *-* TO BACKUP MATRIX DISPLAY
- KBI7 LX5 54 LEFT ADJUST AS PER NON-SEPARATOR INPUT
- SX2 1R=
- BX5 X2+X5
- KBI8 MX0 42
- SX2 1R=
- SA4 X1 FIRST ENTRY
- NZ X5,KBI9 IF NOT END OF KEYBOARD INPUT
- SA1 KBID CHECK *GO* FLAG
- NZ X1,KBI3 IF NOT SET
- EQ KBIX RETURN
- KBI9 BX3 X0*X4
- IX6 X3+X2
- BX7 X6-X5
- ZR X7,KBI11 IF MATCH FOUND
- SA4 A4+2
- NZ X4,KBI9 IF NOT TO END OF TABLE
- SA1 =0LGO CHECK WORD
- SX0 =C*INCORRECT OPTION.*
- BX6 X1-X5
- ZR X6,KBI10 IF *GO*
- SA1 =0LMIXED
- BX6 X1-X5
- NZ X6,KMS IF NOT *MIXED*
- SX7 B1 SET MIXED MODE FLAG
- SA7 MIX
- KBI10 SA6 KBID CLEAR WAIT
- EQ KBI6 PROCESS NEXT ENTRY
- KBI11 SB7 X4 SET PROCESSOR ADDRESS
- SA5 A5+B1 SET VALUE
- SB6 B6-B1
- JP B7 PROCESS OPTION
- KBIA VFD 24/KBUF,18/0,18/0
- CON 0 PARAMETER TABLE ADDRESS
- CON 0 END OF DISPLAY BUFFER
- CON 0
- KBIB BSS 0
- KDL 1,I,( )
- KBIC BSS 0
- KDL 1,M,( )
- KBID CON 1 GO FLAG
- KBR SPACE 4,10
- ** KEYBOARD RETURN.
- KBR SA5 A5 STORE VALUE FOR DISPLAY
- SA1 A4+B1
- MX0 42
- BX6 X0*X5
- SA6 X1
- NZ X6,KBI6 IF NOT BLANK ARGUMENT
- SA1 =1L
- BX6 X1
- SA6 A6
- NZ X5,KBI6 IF MORE ARGUMENTS
- SA1 KBID CHECK *GO* FLAG
- NZ X1,KBI3 IF NOT SET
- EQ KBIX RETURN
- KFE SPACE 4,10
- ** KFE - ISSUE FORMAT ERROR MESSAGE.
- KFE SX0 =C*FORMAT ERROR.*
- KMS SPACE 4,10
- ** KMS - PROCESS KEYBOARD MESSAGE.
- KMS SA2 KBIC SET COORDINATES
- SA3 KBIA+3
- SA1 X0
- BX6 X2
- SA6 X3
- MX0 -6
- KMS1 LX6 X1 COPY MESSAGE
- BX7 -X0*X1
- SA6 A6+B1
- SA1 A1+B1
- NZ X7,KMS1
- SA7 A6+B1
- SA7 KBUF CLEAR KEYBOARD BUFFER
- EQ KBI1 PROCESS NEXT INPUT
- KNF SPACE 4,10
- ** KNF - IMPROPER NUMERIC PARAMETER.
- KNF SX0 =C*IMPROPER NUMERIC PARAMETER.*
- EQ KMS PROCESS KEYBOARD MESSAGE
- PSP SPACE 4,20
- ** PSP - PRESET PARAMETERS.
- *
- * ENTRY (A5) = ADDRESS OF PARAMETER BLOCK.
- * (X5) = 1ST WORD OF 1ST PARAMETER.
- * SEE *PARAM* MACRO FOR FORMATS.
- *
- * EXIT EACH PROCESSING ROUTINE IS EXECUTED UPON ITS DEFAULT
- * VALUE.
- *
- * USES X - 0, 1, 2, 5, 6, 7.
- * A - 1, 2, 5, 6 ,7.
- * B - NONE.
- PSP SUBR ENTRY/EXIT
- SA1 PSPA CHANGE KEYBOARD RETURN
- SA2 KBR
- BX6 X1
- LX7 X2
- SA6 A2
- SA7 A1
- PSP1 SB7 X5 SET PROCESSOR
- SA5 A5+B1 SET DEFAULT
- MX0 42
- BX6 X0*X5
- NZ X6,PSP2 IF NOT BLANK DEFAULT
- SX6 1R
- LX6 54
- PSP2 SA6 X5
- BX5 X0*X5
- JP B7 PROCESS PARAMETER
- PSP3 SA5 A5+B1 NEXT TABLE ENTRY
- NZ X5,PSP1 LOOP TO END OF TABLE
- SX6 B1
- SA1 PSPA RESET KEYBOARD RETURN
- SA2 KBR
- SA6 KBID SET GO FLAG TO WAIT
- BX6 X1
- LX7 X2
- SA6 A2
- SA7 A1
- EQ PSPX RETURN
- PSPA EQ PSP3
- TOV SPACE 4,20
- ** TOV - PROCESS TABLE OVERFLOW.
- *
- * ENTRY MORE FIELD LENGTH NEEDED BY MANAGED TABLES.
- * (B6) = RETURN ADDRESS.
- *
- * EXIT FL INCREASED.
- * (F.TEND) = NEW FL.
- *
- * USES X - 1, 3, 6, 7.
- * A - 1, 6, 7.
- *
- * MACROS MEMORY.
- TOV BSS 0 ENTRY
- SX3 -B5
- SA1 F.TEND GET OLD FL
- AX3 6
- SX3 X3+B1
- LX3 6
- IX6 X1+X3 UPDATE AVAILABLE MEMORY
- SA6 A1
- SX7 X6+FLFF
- BX1 X7
- LX7 30
- SA7 TOVA
- MEMORY ,A7,RECALL,X1
- JP B6 RETURN TO CONTINUE PROCESSING
- TOVA CON 0 STATUS WORD FOR FL REQUEST
- TITLE REQUEST FILE PARAMETERS.
- RSF SPACE 4,20
- ** RSF - REQUEST SESSION FILE.
- *
- * ENTRY (X0) = ERROR MESSAGE.
- *
- * EXIT SESSION FILE ATTACHED AND REWOUND.
- *
- * USES X - ALL.
- * A - 1, 4, 5, 6.
- *
- * CALLS KBI, PSP.
- *
- * MACORS GET, REWIND, SETUI, SKIPFF.
- RSF SUBR ENTRY/EXIT
- BX6 X0 SAVE ERROR MESSAGE
- SA5 SFP PRESET PARAMETERS
- SA6 RSFA
- RJ PSP
- SA1 RSFA SET ERROR MESSAGE
- BX0 X1
- RSF1 SX6 SFP SET PARAMETER CONTROL TABLE
- SX3 FBUF SET DISPLAY BUFFER ADDRESS
- SX7 FBUFE SET END OF DISPLAY BUFFER
- RJ KBI PROCESS KEYBOARD INPUT
- SA1 I CHECK FILE NAME
- AX1 1
- SX0 =C*FILE NAME NOT SET.*
- ZR X1,RSF1 IF NOT SET
- SA1 RSFB
- NZ X1,RSF2 IF FILE SPECIFIED ON COMMAND
- SA1 UI SET USER INDEX
- SETUI X1
- GET I
- SA1 I CHECK STATUS
- SX2 X1-2000B
- PL X2,RSF3 IF FILE ERROR OCCURED
- RSF2 REWIND I
- SA4 FN CHECK FILE NUMBER
- ZR X4,RSFX IF FIRST FILE
- SKIPFF I,X4
- EQ RSFX RETURN
- RSF3 SA5 IBUF
- MX3 12
- MX4 12
- RSF4 BX7 X3*X5 EDIT MESSAGE
- ZR X7,RSF5 IF END OF MESAGE
- AX4 12
- LX3 -12
- PL X3,RSF4
- SA5 A5+B1
- MX4 12
- EQ RSF4 LOOP
- RSF5 BX6 X4*X5
- SX0 IBUF ISSUE ERROR
- SA6 A5
- EQ RSF1 RETRY
- RSFA CON 0 ERROR MESSAGE ADDRESS
- RSFB CON 0 FILE NAME FROM COMMAND
- SFC SPACE 4,20
- ** SFC - SET FILE COUNT.
- *
- * ENTRY (A5) = ADDRESS OF UNPACKED PARAMETER.
- * (X5) = PARAMETER.
- *
- * EXIT TO *KBR*, IF NO ERROR.
- * TO *KFE*, IF ERROR.
- * (FN) = FILE COUNT.
- *
- * USES X - 0, 6, 7.
- * A - 7.
- * B - 7.
- *
- * CALLS DXB.
- SFC BSS 0 ENTRY
- SB7 B1 SET DECIMAL BASE
- RJ DXB CONVERT VALUE
- SX7 X6-1
- SX0 =C*INCORRECT FILE NUMBER.*
- AX6 17
- NZ X6,KMS IF VALUE OUT OF RANGE
- NG X7,KMS
- SA7 FN
- EQ KBR RETURN
- SSF SPACE 4,20
- ** SSF - SET SESSION FILE NAME.
- *
- * ENTRY (A5) = ADDRESS OF UNPACKED PARAMETER.
- * (X5) = PARAMETER.
- *
- * EXIT TO *KBR*, IF NO ERROR.
- * TO *KFE*, IF ERROR.
- * (I) = FILE NAME.
- *
- * USES X - 2, 6, 7.
- * A - 6.
- SSF BSS 0 ENTRY
- SX2 B1 STORE FILE NAME
- SX7 X5
- BX6 X2+X5
- NZ X7,KFE IF SEPARATOR USED
- SA6 I
- EQ KBR RETURN
- SUI SPACE 4,20
- ** SUI - SET USER INDEX.
- *
- * ENTRY (A5) = ADDRESS OF UNPACKED PARAMETER.
- * (X5) = PARAMETER.
- *
- * EXIT TO *KBR*, IF NO ERROR.
- * TO *KMS*, IF ERROR.
- * (UI) = USER INDEX.
- *
- * USES X - 0, 6, 7.
- * A - 7.
- * B - 7.
- *
- * CALLS DXB.
- SUI BSS 0 ENTRY
- SB7 B0 SET OCTAL BASE
- RJ DXB CONVERT VALUE
- BX7 X6
- SX0 =C*INCORRECT USER INDEX.*
- AX6 17
- NZ X6,KMS IF VALUE OUT OF RANGE
- SA7 UI
- EQ KBR RETURN
- TITLE REQUEST SESSION PARAMETERS.
- RSP SPACE 4,20
- ** RSP - REQUEST SESSION PARAMETERS.
- *
- * EXIT SESSION PARAMETERS PROCESSED.
- *
- * USES X - 0, 3, 5, 6, 7.
- * A - 3.
- *
- * CALLS KBI, PSP.
- RSP SUBR ENTRY/EXIT
- SX6 1 RESET GO
- SA5 STPA PRESET PARAMETERS
- SA6 KBID
- RJ PSP
- BX0 X0-X0 CLEAR ERROR MESSAGE
- SX6 STP SET PARAMETER CONTROL TABLE
- SA3 RSPA SET DISPLAY BUFFER ADDRESS
- SX7 DBUFE SET END OF DISPLAY BUFFER
- RJ KBI PROCESS KEYBOARD INPUT
- EQ RSPX RETURN
- RSPA VFD 24/0,18/PBUF,18/DBUF
- SAC SPACE 4,10
- ** SAC - SET ACTIVATION COUNT.
- *
- * ENTRY (A5) = ADDRESS OF UNPACKED PARAMETER.
- * (X5) = PARAMETER.
- * (MODE) = STIMULATION MODE FLAG.
- *
- * EXIT TO *KBR*, IF NO ERROR.
- * TO *KNF*, IF ERROR.
- * (AC) = ACTIVATION COUNT.
- *
- * USES X - 1, 7.
- * A - 1, 6.
- * B - 7.
- *
- * CALLS DXB.
- SAC BSS 0 ENTRY
- SB7 B1 SET DECIMAL BASE
- RJ DXB
- NZ X4,KNF IF ERRORS
- ZR X6,KNF IF TOO FEW
- SA1 MODE
- NZ X1,SAC1 IF INTERNAL STIMULATION
- SX1 100B
- IX7 X1-X6
- NG X7,KNF IF MORE THAN 100 TERMINALS
- SAC1 SA6 AC
- EQ KBR RETURN
- SAD SPACE 4,20
- ** SAD - SET ACTIVATION DELAY.
- *
- * ENTRY (A5) = ADDRESS OF UNPACKED PARAMETER.
- * (X5) = PARAMETER.
- *
- * EXIT TO *KBR*, IF NO ERROR.
- * TO *KNF*, IF ERROR.
- * (AD) = ACTIVATION DELAY.
- *
- * USES X - 6, 7.
- * A - 7.
- * B - 7.
- *
- * CALLS DXB.
- SAD BSS 0 ENTRY
- SB7 B1 SET DECIMAL BASE
- RJ DXB
- NZ X4,KNF IF ERRORS
- ZR X6,KNF IF TOO SHORT A DELAY
- BX7 X6
- AX6 7
- NZ X6,KNF
- SA7 AD SET ACTIVATION DELAY
- EQ KBR RETURN
- SLS SPACE 4,20
- ** SLS - SET LINE SPEED.
- *
- * ENTRY (A5) = ADDRESS OF UNPACKED PARAMETER.
- * (X5) = PARAMETER.
- *
- * EXIT TO *KBR*, IF NO ERROR.
- * TO *KNF*, IF ERROR.
- * (LS) = LINE SPEED.
- *
- * USES X - 2, 7.
- * A - 6.
- * B - 7.
- *
- * CALLS DXB.
- SLS BSS 0 ENTRY
- SB7 B1 SET DECIMAL BASE
- RJ DXB
- NZ X4,KNF IF ERRORS
- SX2 1000 SET MILLISECONDS
- ZR X6,KNF IF ZERO VALUE
- SA6 LS SAVE LINE SPEED
- IX7 X2/X6
- ZR X7,KNF IF TOO HIGH
- EQ KBR RETURN
- SIS SPACE 4,20
- ** SIS - SET INPUT SPEED.
- *
- * ENTRY (A5) = ADDRESS OF UNPACKED PARAMETER.
- * (X5) = PARAMETER.
- *
- * EXIT TO *KBR*, IF NO ERROR.
- * TO *KNF*, IF ERROR.
- * (IS) = INPUT SPEED.
- *
- * USES X - 2, 7.
- * A - 6.
- * B - 7.
- *
- * CALLS DXB.
- SIS BSS 0 ENTRY
- SB7 B1 SET DECIMAL BASE
- RJ DXB
- NZ X4,KNF IF ERRORS
- SX2 1000 SET MILLISECONDS
- ZR X6,KNF IF ZERO VALUE
- SA6 IS SAVE INPUT SPEED
- IX7 X2/X6
- ZR X7,KNF IF TOO HIGH
- EQ KBR RETURN
- SLD SPACE 4,10
- ** SLD - SET LOGOUT DELAY.
- *
- * ENTRY (A5) = ADDRESS OF UNPACKED PARAMETER.
- * (X5) = PARAMETER.
- *
- * EXIT TO *KBR*, IF NO ERROR.
- * TO *KNF*, IF ERROR.
- * (LD) = LOGOUT DELAY.
- *
- * USES X - 6.
- * A - 6.
- * B - 7.
- *
- * CALLS DXB.
- SLD BSS 0 ENTRY
- SB7 B1 SET DECIMAL BASE
- RJ DXB
- NZ X4,KNF IF ERRORS
- SA6 LD SAVE LOGOUT DELAY
- AX6 12
- NZ X6,KNF IF .GT. 4095
- EQ KBR RETURN
- SNT SPACE 4,20
- ** SNT - SET NUMBER OF TERMINALS.
- *
- * ENTRY (A5) = ADDRESS OF UNPACKED PARAMETER.
- * (X5) = PARAMETER.
- *
- * EXIT TO *KBR*, IF NO ERROR.
- * TO *KNF*, IF ERROR.
- * (NT) = NUMBER OF TERMINALS.
- *
- * USES X - 1, 2, 3, 6.
- * A - 1, 2, 6.
- * B - 2, 3.
- *
- * CALLS DXB.
- SNT BSS 0 ENTRY
- SB7 B1 SET DECIMAL BASE
- RJ DXB
- NZ X4,KNF IF ERRORS
- SA1 MNT
- IX7 X1-X6
- SB2 X6
- NG X7,KNF IF TOO MANY TERMINALS
- ZR X6,KNF IF TOO FEW
- SA6 NT
- SA2 F.TTER
- SX3 B1
- SB3 X1
- LX3 58
- SA1 X2
- SNT1 BX6 -X3*X1 CLEAR DISABLE BIT
- SA6 A1
- SB2 B2-B1
- SB3 B3-B1
- SA1 A1+B1
- NZ B2,SNT1 IF MORE TERMINALS
- SNT2 ZR B3,KBR IF END OF TABLE
- BX6 X3+X1 SET DISABLE BIT
- SA6 A1
- SB3 B3-B1
- SA1 A1+B1
- EQ SNT2 LOOP TO END OF TABLE
- SRC SPACE 4,20
- ** SRC - SET REPEAT COUNT.
- *
- * ENTRY (A5) = ADDRESS OF UNPACKED PARAMETER.
- * (X5) = PARAMETER.
- *
- * EXIT TO *KBR*, IF NO ERROR.
- * TO *KNF*, IF ERROR.
- * (RC) = REPEAT COUNT.
- *
- * USES X - 6, 7.
- * A - 6.
- * B - 7.
- *
- * CALLS DXB.
- SRC BSS 0 ENTRY
- SB7 B1 SET DECIMAL BASE
- RJ DXB
- NZ X4,KNF IF ERRORS
- SA6 RC SAVE REPEAT COUNT
- BX7 X6
- AX6 5
- NZ X6,KNF IF .GT 31
- EQ KBR RETURN
- SRO SPACE 4,20
- ** SRO - SET RECOVER OUTPUT.
- *
- * ENTRY (A5) = ADDRESS OF UNPACKED PARAMETER.
- * (X5) = PARAMETER.
- *
- * EXIT TO *KBR*, IF NO ERROR.
- * TO *KFE*, IF ERROR.
- * (RO) = RECOVER OUTPUT STATUS.
- *
- * USES X - 1, 2, 6, 7.
- * A - 1, 2, 6.
- SRO BSS 0 ENTRY
- SA1 =0LOFF
- SA2 =0LON
- BX6 X1-X5
- BX7 X2-X5
- ZR X6,SRO1 IF OFF
- NZ X7,KFE IF NOT ON
- SX6 1
- SRO1 SA6 RO SET RECOVER OUTPUT FLAG
- EQ KBR RETURN
- STT SPACE 4,20
- ** STT - SET THINK TIME.
- *
- * ENTRY (A5) = ADDRESS OF UNPACKED PARAMETER.
- * (X5) = PARAMETER.
- *
- * EXIT TO *KBR*, IF NO ERROR.
- * TO *KNF*, IF ERROR.
- * (TT) = THINK TIME.
- *
- * USES X - 6, 7.
- * A - 6.
- * B - 7.
- *
- * CALLS DXB.
- STT BSS 0 ENTRY
- SB7 B1 SET DECIMAL BASE
- RJ DXB
- NZ X4,KNF IF ERRORS
- SA6 TT SAVE THINK TIME
- BX7 X6
- AX6 7
- NZ X6,KNF IF .GT 127
- EQ KBR RETURN
- SLF SPACE 4,20
- ** SLF - SET LOOP FLAG.
- *
- * ENTRY (A5) = ADDRESS OF UNPACKED PARAMETER.
- * (X5) = PARAMETER.
- *
- * EXIT TO *KBR*, IF NO ERROR.
- * TO *KMS*, IF ERROR.
- * (LP) = LOOP FLAG.
- *
- * USES X - 1, 2, 6, 7.
- * A - 1, 2, 6.
- SLF BSS 0 ENTRY
- SA1 =0LYES
- SA2 =0LNO
- BX6 X1-X5
- BX7 X2-X5
- ZR X6,SLF1 IF LOOP ON SESSION FILE
- NZ X7,KFE IF ERROR
- SX6 B1+
- SLF1 SA6 LP SET OPTION
- EQ KBR RETURN
- TTI SPACE 4,20
- ** TTI - SET THINK TIME INCREMENT.
- *
- * ENTRY (A5) = ADDRESS OF UNPACKED PARAMETER.
- * (X5) = PARAMETER.
- *
- * EXIT TO *KBR*, IF NO ERROR.
- * TO *KNF*, IF ERROR.
- * (TI) = THINK TIME INCREMENT.
- *
- * USES X - 6, 7.
- * A - 6.
- * B - 2, 3.
- *
- * CALLS DXB.
- TTI BSS 0 ENTRY
- SB7 B1 SET DECIMAL BASE
- RJ DXB
- NZ X4,KNF IF ERRORS
- CX7 X6 CHECK BIT COUNT
- SB3 X6
- SB2 X7
- GT B2,B1,KNF IF MORE THAN 1 BIT
- LE B3,B1,TTI1 IF VALUE = 0 OR 1
- SX6 X6-1
- BX7 X6
- AX7 6
- NZ X7,KNF IF .GT 64
- TTI1 SA6 TM STORE TIME MASK
- EQ KBR RETURN
- TITLE PROCESS MIXED MODE PARAMETERS.
- RMP SPACE 4,20
- ** RMP - REQUEST MIXED MODE INPUT.
- *
- * ENTRY (MIX) = MIXED MODE FLAG.
- *
- * EXIT MIXED MODE INPUT PROCESSED.
- * *TSPT* UPDATED.
- *
- * USES X - 0, 1, 3, 6, 7.
- * A - 1, 3, 6.
- *
- * CALLS CTC, DMX, KBI, MXD.
- RMP SUBR ENTRY/EXIT
- RJ MXD INITIALIZE *TSPT*
- SA1 MIX
- ZR X1,RMPX IF NO MIXED INPUT REQUESTED
- SA1 F.TSPT SET INDEX INTO *TSPT*
- BX6 X1
- SA6 LINE
- RJ DMX DISPLAY MATRIX
- BX0 X0-X0 CLEAR MESSAGE ADDRESS
- RMP1 SX6 B1+ SET WAIT FOR *GO*
- SA6 KBID
- SX6 MTP
- SA3 MSPA
- SX7 LDISPE
- RJ KBI PROCESS KEYBOARD INPUT
- RJ CTC CHECK TERMINAL COUNT
- SX0 =C* ASSIGNED TTYS GREATER THAN (NT).*
- NG X3,RMP1 IF TOO MANY TTYS ASSIGNED
- SX0 =C* NO TTYS ASSIGNED.*
- ZR X7,RMP1 IF NO TTYS ASSIGNED
- SA7 NT UPDATE NUMBER OF TTYS ASSIGNED
- EQ RMPX RETURN
- MXD SPACE 4,10
- ** MXD - MIXED PARAMETER INITIAL SETUP.
- *
- * ENTRY (TT) = THINK TIME.
- * (LS) = LINE SPEED.
- * (RC) = REPEAT COUNT.
- * (IS) = INPUT SPEED.
- * (LD) = LOGOUT DELAY.
- * (NT) = NUMBER OF TERMINALS.
- *
- * EXIT SESSION POINTER TABLE INITIALIZED.
- *
- * USES X - 1, 2, 3, 4, 5, 6, 7.
- * A - 1, 2, 3, 4, 5, 6, 7.
- * B - 2, 4, 6.
- MXD SUBR ENTRY/EXIT
- * BUILD *TSPT* ENTRY.
- SB6 0
- SA4 L.TSPT SET *TSPT* LENGTH
- SB4 X4
- SA1 TT SET FIRST WORD OF *TSPT*
- LX1 12
- SA2 LS
- BX3 X1+X2
- LX3 36
- SA1 RC
- LX1 18
- BX6 X3+X1
- MX1 -18
- SA2 IS BUILD SECOND WORD OF *TSPT* ENTRY
- LX2 12
- SA5 LD
- BX5 X2+X5
- LX5 36
- SA4 F.TSPT
- * BUILD *TSPT* TABLE.
- MXD1 SA3 X4+B6 GET *TSPT* ENTRY
- BX3 -X1*X3
- IX7 X6+X3
- SA7 A3
- SB6 B6+1
- SA3 X4+B6 SET *TSPT* WORD-2
- BX7 X5
- SA7 A3
- SB6 B6+1
- NE B6,B4,MXD1 IF MORE ENTRIES
- * SET TERMINAL COUNT.
- SB6 0
- SA1 NT TERMINAL COUNT
- SB2 X1
- SA2 =100000000B GET INCREMENT VALUE
- MXD2 SA3 X4+B6 UPDATE TTY COUNT FOR THIS TERMINAL
- IX6 X3+X2
- SA6 A3
- SB2 B2-1 DECREMENT TTY COUNT
- ZR B2,MXDX IF ALL TTYS ACCOUNTED FOR
- SB6 B6+2
- NE B6,B4,MXD2 IF NOT END OF *TSPT* TABLE
- SB6 0
- EQ MXD2 LOOP
- DMX SPACE 4,20
- ** DMX - DISPLAY MATRIX.
- *
- * ENTRY (LINE) = CURRENT INDEX INTO *TSPT*.
- * (NT) = NUMBER OF TERMINALS ALLOWED.
- *
- * EXIT K-DISPLAY MATRIX SETUP.
- *
- * USES X - 0, 1, 2, 3, 6, 7.
- * A - 1, 2, 3, 6, 7.
- * B - 6, 7.
- *
- * CALLS CDD, CLR, CTC, SDL.
- DMX SUBR ENTRY/EXIT
- RJ CLR CLEAR MATRIX DISPLAY
- SA1 LINE SET INDEX INTO *TSPT*
- BX6 X1
- SA6 DMXA
- SX7 X1+SDISN*2
- SA1 =0LMORE
- SA2 F.TSPT
- SA3 L.TSPT
- IX2 X2+X3
- IX3 X7-X2
- NG X3,DMX1 IF NOT END OF *TSPT* BEFORE END OF DISPLAY
- BX7 X2
- SA1 =1L
- DMX1 SA7 DMXB
- BX6 X1
- SA6 MORE STORE *MORE* OR * * IN DISPLAY BUFFER
- SB7 SDIS (B7) = CURRENT DISPLAY BUFFER ADDRESS
- DMX2 SA1 DMXA
- SB6 X1+
- RJ SDL SET DISPLAY LINE
- SA1 DMXA UPDATE *TSPT* INDEX
- SA2 DMXB
- SX6 X1+2
- SA6 A1
- IX2 X6-X2
- NG X2,DMX2 IF NOT END OF DISPLAY
- * SET SUMMARY INFORMATION AT BOTTOM OF DISPLAY.
- RJ CTC CHECK TERMINAL COUNT
- BX1 X7
- RJ CDD
- BX6 X4 DISPLAY NUMBER OF TTYS ASSIGNED
- SA6 ASIGN
- SA1 NT DISPLAY NUMBER OF TTYS ALLOWED
- RJ CDD
- BX6 X4
- SA6 PERMIT
- EQ DMXX RETURN
- DMXA CON 0 CURRENT INDEX INTO *TSPT*
- DMXB CON 0 LIMIT ADDRESS OF *TSPT* FOR DISPLAY
- SCF SPACE 4,20
- ** SCF - SET CHANGE FILE.
- *
- * ENTRY (A5) = ADDRESS OF UNPACKED PARAMETER.
- * (X5) = PARAMETER.
- *
- * EXIT TO *KBR*, IF NO ERROR.
- * TO *KMS*, IF ERROR.
- * MATRIX CHANGE FILE READ AND PROCESSED.
- *
- * USES X - 0, 1, 2, 5, 6, 7.
- * A - 1, 2, 5, 6.
- * B - 6, 7.
- *
- * CALLS DMX, MXP, UPC.
- *
- * MACROS GET, READ, READC, REWIND, SETUI.
- SCF BSS 0 ENTRY
- SA5 A5 GET VALUE FOR DISPLAY
- SA1 A4+B1 SET FILE NAME IN DISPLAY
- MX0 42
- BX6 X0*X5
- SA6 X1
- SX2 B1
- SX7 X5
- BX6 X2+X5
- NZ X7,KFE IF SEPARATOR USED
- SA6 I STORE FILE NAME IN FET
- AX6 1
- * GET CHANGE FILE.
- SX0 =C* FILE NAME NOT SET.*
- ZR X6,KMS IF FILE NAME NOT SPECIFIED
- SA1 UI
- SETUI X1 SET USER INDEX
- GET I GET PF FOR MATRIX CHANGES
- SA1 I CHECK FILE STATUS
- SX2 X1-2000B
- PL X2,SCF2 IF FILE ERROR OCCURRED
- * PROCESS CHANGE FILE.
- REWIND I
- READ I READ RECORD INTO CIO BUFFER
- SCF1 READC I,KBUF,KBUFL READ FILE ENTRY INTO WORKING BUFFER
- NZ X1,KBI3 IF END OF RECORD
- SA5 KBUF FWA OF COMMAND
- SB7 ZBUF ADDRESS OF FIRST PARAMETER
- RJ UPC UNPACK COMMAND ( MX=,,,,.)
- SA5 B7 ADDRESS OF FIRST PARAMETER
- SA5 A5+B1
- SB6 B6-1 DECREMENT PARAMETER COUNT
- RJ MXP PROCESS INPUT
- RJ DMX SETUP MIXED MATRIX DISPLAY
- EQ SCF1 GO PROCESS NEXT ENTRY
- * PROCESS FILE ERROR.
- SCF2 SX0 =C* FILE ERROR.*
- SA2 I
- LX2 59-11
- PL X2,KMS IF NOT SET
- SX0 =C* FILE NOT FOUND.*
- EQ KMS ISSUE K-DISPLAY MESSAGE
- ZBUF BSSZ 10
- MXP SPACE 4,20
- ** MXP - MIXED INPUT PROCESSOR.
- *
- * ENTRY (A5) = FWA OF MIXED MODE INPUT.
- *
- * EXIT MIXED MODE INPUT PROCESSED.
- *
- * CALLS DMX, MXP.
- MIN RJ MXP MIXED MODE PROCESSOR
- RJ DMX DISPLAY UPDATED MATRIX
- EQ KBI1 PROCESS MORE INPUT
- MXP SPACE 4,20
- ** MXP - MIXED MODE PROCESSOR.
- *
- * ENTRY (A5) = FWA OF MIXED MODE INPUT.
- *
- * EXIT *TSPT* UPDATED WITH PROCESSED INPUT.
- * TO *KNF* IF ERROR IN INPUT.
- *
- * USES X - 0, 1, 2, 3, 4, 5, 6.
- * A - 1, 3, 4, 5, 6.
- * B - 2, 3, 6, 7.
- *
- * CALLS DXB, MMP.
- MXP SUBR ENTRY/EXIT
- SB7 B1
- ZR B6,MXPX IF NO PARAMETER
- MX0 42
- SA5 A5 PROCESS FIRST SCRIPT NUMBER
- BX5 X0*X5
- RJ DXB
- NZ X4,KNF IF ERRORS
- ZR X6,KNF IF ZERO ENTRY
- SA6 FSCR
- SB6 B6-B1
- ZR B6,MXPX IF NO MORE PARAMETERS
- SA5 A5
- MX0 42
- SX2 X5-1R-
- NZ X2,MXP1 IF ONLY ONE SCRIPT SPECIFIED
- SA5 A5+B1 PROCESS SECOND SCRIPT NUMBER
- BX5 X0*X5
- RJ DXB
- NZ X4,KNF IF ERRORS
- SB6 B6-B1
- ZR B6,MXPX IF NO MORE PARAMETERS
- MXP1 SA6 LSCR
- SA1 FSCR VALIDATE SCRIPT ENTRIES
- SA2 SRCNT
- IX1 X6-X1
- IX2 X2-X6
- NG X1,KNF IF FIRST SCRIPT .GT. LAST SCRIPT
- NG X2,KNF IF LAST SCRIPT TO LARGE
- RJ MMP MIXED MODE PROCESSOR
- * UPDATE *TSPT* TABLE WITH PROCESSED INFORMATION.
- SA2 FSCR SET NUMBER OF SCRIPTS TO UPDATE
- SA3 LSCR
- IX3 X3-X2
- SB3 X3+B1
- SB2 X2-1 POINTER TO FIRST *TSPT* ENTRY
- SB2 B2+B2
- SA4 F.TSPT FWA *TSPT*
- MXP2 SA5 X4+B2 GET NEXT *TSPT* ENTRY
- LX5 12
- MX3 48
- SA1 TT
- NG X1,MXP3 IF NULL TT
- BX5 X3*X5 SET NEW THINK TIME
- BX5 X5+X1
- MXP3 LX5 12
- SA1 LS
- NG X1,MXP4 IF NULL LS
- BX5 X3*X5 SET NEW LINE SPEED
- BX5 X5+X1
- MXP4 LX5 12
- SA1 TY
- NG X1,MXP5 IF NULL TTYS
- BX5 X3*X5 SET NEW NUMBER OF TERMINALS
- BX5 X5+X1
- MXP5 LX5 6
- SA1 RC
- NG X1,MXP6 IF NULL RC
- MX3 54
- BX5 X3*X5 SET NEW REPEAT COUNT
- BX5 X5+X1
- MXP6 LX5 18
- BX6 X5
- SA6 A5 REPLACE *TSPT* ENTRY
- SB2 B2+B1
- SA5 X4+B2 SET SECOND WORD OF *TSPT* ENTRY
- LX5 12
- MX3 48
- SA1 IS
- NG X1,MXP7 IF NULL *IS*
- BX5 X3*X5 SET NEW INPUT SPEED
- BX5 X5+X1
- MXP7 LX5 12
- SA1 LD
- NG X1,MXP8 IF NULL *LD*
- BX5 X3*X5 SET NEW LOGOUT DELAY
- BX5 X5+X1
- MXP8 LX5 36
- BX6 X5
- SA6 A5 REPLACE SECOND WORD OF *TSPT* ENTRY
- SB2 B2+B1
- SB3 B3-1
- NE B3,MXP2 IF MORE ENTRIES TO CHANGE
- EQ MXPX RETURN
- LSCR CON 0 LAST SCRIPT
- FSCR CON 0 FIRST SCRIPT
- RADDR CON 0 RELOCATON ADDRESS
- LINE CON 0 INDEX INTO *TSPT*
- MIX CON 0 MIXED MODE FLAG
- MSPA VFD 24/0,18/RDISP,18/LDISP
- MMP SPACE 4,20
- ** MMP - MIXED MODE PROCESSOR.
- *
- * ENTRY (B6) = NUMBER OF ARGUMENTS.
- * (A5) = FWA OF ARGUMENTS TO PROCESS.
- *
- * USES X - 0, 1, 2, 5, 6.
- * A - 1, 5, 6.
- * B - 5, 6, 7.
- *
- * CALLS DXB.
- MMP SUBR ENTRY/EXIT
- BX6 X6-X6
- SA6 MMPA
- SX1 B6-TARGL-1
- PL X1,KNF IF TOO MANY CHARACTERS
- SB7 B1 ASSUME DECIMAL CONVERSION
- SB5 TARGL PRESET VALUES
- MX6 1
- MMP1 SA1 TARG-1+B5
- AX1 18
- SA6 X1
- SB5 B5-1
- PL B5,MMP1 IF MORE TO SET
- * PROCESS ARGUMENTS.
- MMP2 ZR B6,MMPX IF NO MORE INPUT
- SA5 A5+B1
- ZR X5,MMP4 IF NULL ENTRY
- RJ DXB
- NZ X4,KNF IF ERROR
- SA1 MMPA
- SA1 TARG+X1
- PL X1,MMP3 IF ZERO VALUE ALLOWED
- ZR X6,KNF IF ZERO VALUE ENTERED
- MMP3 MX0 -18
- BX2 -X0*X1
- IX2 X2-X6
- NG X2,KNF IF ENTRY TOO LARGE
- AX1 18 STORE VALUE
- SA6 X1
- MMP4 SB6 B6-B1
- SA1 MMPA ADVANCE INDEX
- SX6 X1+B1
- SA6 A1
- EQ MMP2 LOOP FOR ALL PARAMETERS
- MMPA CON 0
- TARG SPACE 4,20
- ** TARG - TABLE OF ARGUMENTS.
- *
- *T 1/Z, 23/ 0, 18/ ADDR , 18/ VALUE
- *
- * Z IF SET, ZERO NOT ALLOWED.
- * ADDR ADDRESS TO STORE VALUE.
- * VALUE MAXIMUM VALUE ALLOWED FOR PARAMETER.
- TARG BSS 0
- LOC 0
- VFD 1/0,23/0,18/TY,18/0
- VFD 1/1,23/0,18/LS,18/1000
- VFD 1/1,23/0,18/IS,18/1000
- VFD 1/0,23/0,18/TT,18/177
- VFD 1/0,23/0,18/LD,18/4095
- VFD 1/0,23/0,18/RC,18/31
- LOC *O
- TARGL EQU *-TARG NUMBER OF PARAMETERS
- CLR SPACE 4,20
- ** CLR - CLEAR MATRIX DISPLAY.
- *
- * EXIT MATRIX DISPLAY CLEARED.
- *
- * USES X - 0, 1, 2, 6, 7.
- * A - 1, 6, 7.
- * B - 5, 6, 7.
- CLR SUBR ENTRY/EXIT
- SB7 SDISN NUMBER OF DISPLAY LINES TO CLEAR
- SB6 SDIS CURRENT ADDRESS OF BUFFER
- SA1 =10H
- BX6 X1
- MX0 -36
- BX2 -X0*X1
- CLR1 SB5 SDISL-1 WORDS PER DISPLAY LINE
- CLR2 SA6 B6+B5
- SB5 B5-B1
- NZ B5,CLR2 IF NOT END OF LINE
- SA1 B6+B5 SAVE CONTROL BYTES
- BX1 X0*X1
- BX7 X1+X2
- SA7 A1
- SB6 B6+SDISL START OF NEXT LINE
- SB7 B7-1
- NZ B7,CLR1 IF NOT END OF DISPLAY
- EQ CLRX RETURN
- MNS SPACE 4,20
- ** MNS - PAGE MATRIX DISPLAY BACKWARDS.
- *
- * ENTRY (LINE) = CURRENT INDEX INTO *TSPT*.
- *
- * EXIT (LINE) = UPDATED INDEX INTO *TSPT*.
- * TO *KBI3*.
- *
- * USES X - 1, 2, 6.
- * A - 1, 2, 6.
- *
- * CALLS DMX.
- MNS BSS 0 ENTRY
- SA1 LINE
- SA2 F.TSPT
- SX6 X1-SDISN*2
- IX1 X2-X6
- NG X1,MNS1 IF NOT BEGINNING OF *TSPT*
- SX6 X2+ POSITION TO BEGINNING OF *TSPT*
- MNS1 SA6 A1+
- RJ DMX UPDATE MATRIX DISPLAY
- EQ KBI3 PROCESS KEYBOARD INPUT
- PLS SPACE 4,10
- ** PLS - PAGE MATRIX DISPLAY FORWARD.
- *
- * ENTRY (LINE) = CURRENT INDEX INTO *TSPT*.
- *
- * EXIT (LINE) = UPDATED INDEX INTO *TSPT*.
- *
- * USES X - 1, 2, 3, 6.
- * A - 1, 2, 3, 6.
- *
- * CALLS DMX.
- PLS BSS 0 ENTRY
- SA1 LINE
- SX6 X1+SDISN*2
- SA2 F.TSPT
- SA3 L.TSPT
- IX3 X2+X3
- IX1 X6-X3
- NG X1,PLS1 IF NOT PAST END OF *TSPT* TABLE
- SX6 X2+ RESET TO BEGINNING OF *TSPT*
- PLS1 SA6 A1+
- RJ DMX UPDATE MATRIX DISPLAY
- EQ KBI1 PROCESS KEYBOARD INPUT
- SDL SPACE 4,20
- ** SDL - SET DISPLAY LINE.
- *
- * ENTRY (B6) = ADDRESS OF CURRENT *TSPT* ENTRY.
- * (B7) = ASSEMBLY BUFFER ADDRESS.
- *
- * EXIT (B7) = UPDATED BUFFER ADDRESS.
- *
- * USES X - ALL.
- * A - 1, 2, 3, 5, 6, 7.
- * B - 6, 7.
- *
- * CALLS CDD
- SDL SUBR ENTRY/EXIT
- SA1 F.TSPT SET SCRIPT NUMBER
- SX2 B6
- IX2 X2-X1
- AX2 1
- SX1 X2+B1
- RJ CDD
- MX0 -12
- PACK MMSC,11,5 SET SCRIPT NUMBER
- SA5 B6 FIRST WORD OF *TSPT* ENTRY
- AX5 24 SET NUMBER OF TTY-S
- BX1 -X0*X5
- RJ CDD
- PACK MMSC,20,6 SET NUMBER OF TTYS
- AX5 12 SET LINE SPEED
- BX1 -X0*X5
- RJ CDD
- PACK MMSC,28,6 SET LINE SPEED
- AX5 12 SET THINK TIME
- BX1 -X0*X5
- RJ CDD
- PACK MMSC,43,6 SET THINK TIME
- MX2 -6 SET REPEAT COUNT
- SA5 A5
- AX5 18
- BX1 -X2*X5
- RJ CDD
- PACK MMSC,58,6 SET REPEAT COUNT
- SA5 B6+B1 SECOND WORD OF *TSPT* ENTRY
- LX5 12
- BX1 -X0*X5 SET INPUT SPEED
- RJ CDD
- PACK MMSC,36,6 SET INPUT SPEED
- LX5 12 SET LOGOUT DELAY
- BX1 -X0*X5
- RJ CDD
- PACK MMSC,51,6 SET LOGOUT DELAY
- SB7 B7+SDISL POINT TO NEXT BUFFER ADDRESS
- SB6 B6+B1
- EQ SDLX RETURN
- TITLE TRANSLATE SESSION FILE.
- SFE SPACE 4,20
- ** SFE - SESSION FILE ERROR.
- *
- * ENTRY (X0) = DIAGNOSTIC.
- *
- * EXIT NEW SESSION FILE ATTACHED.
- * TO *TSF1*.
- *
- * USES X - 6.
- * A - 6.
- *
- * CALLS RSF.
- SFE BSS 0 ENTRY
- RJ RSF REQUEST SESSION FILE
- SX6 B0 CLEAR POINTERS
- SA6 L.TSPT
- SA6 L.TSTX
- SA6 L.TASK
- SA6 TASKF
- EQ TSF2 RETRY
- TSF SPACE 4,20
- ** TSF - TRANSLATE SESSION FILE.
- *
- * EXIT *TSTX*, *TASK*, AND *TSTP* TABLES BUILT.
- *
- * USES X - ALL.
- * A - 1, 2, 3, 4, 5, 6, 7.
- * B - 2, 3, 4, 5, 6, 7.
- *
- * CALLS DXB, RSF.
- *
- * MACROS ADDWRD, MESSAGE, READ, READO.
- *
- * NOTES EACH RECORD ON THE SESSION FILE IS TRANSLATED
- * AND STORED IN *TSTX*. THE SESSION POINTERS (*TSTP*)
- * AND TASK POINTERS (*TASK*) ARE ALSO BUILT.
- TSF SUBR ENTRY/EXIT
- BX6 X6-X6 CLEAR TEXT
- SA6 SRCNT CLEAR SESSION RECORD COUNTER
- MX7 0 CLEAR POINTERS
- SA5 I CHECK FILE NAME
- SA6 L.TSTX
- SA7 L.TSPT
- SA7 L.TASK
- SA7 TASKF
- SA7 2 CLEAR *NEXT TASK* WORD
- SA7 3 CLEAR FWA *TASK TABLE*
- SX7 100
- SA7 PCENT SET PERCENTAGE LIMITS
- AX5 1
- NZ X5,TSF2 IF FILE NAME SPECIFIED
- BX0 X0-X0
- TSF1 RJ RSF REQUEST SESSION FILE
- TSF2 MESSAGE (=C* TRANSLATING SESSION FILE.*),1
- READ I
- BX7 X7-X7
- SA7 WORD INITIALIZE SESSION RECORD WORD COUNTER
- TSF3 READO I
- SA2 L.TSTX CHECK SESSION TEXT
- ZR X1,TSF5 IF NOT END OF RECORD
- SA1 TASKF
- ZR X1,TSF4 IF NO TASKS IN SCRIPT
- BX6 X6-X6
- ADDWRD TASK,X6 ZERO WORD TERMINATOR FOR TASK TABLE
- SA1 PCENT
- NZ X1,TSF22 IF TOTAL PERCENTAGE OF TASKS NOT 100
- SA2 L.TSTX
- TSF4 NZ X2,TSFX RETURN IF ANY TEXT PROCESSED
- SX0 =C*EMPTY SESSION FILE.*
- BX7 X7-X7 CLEAR COMMAND PARAMETER
- SA7 RSFB
- EQ TSF1 REPORT ERROR
- TSF5 BX0 X6 SET INPUT WORD
- MX5 0 CLEAR SESSION WORD
- SB3 48
- SB4 12 CLEAR SHIFT
- ZR X0,TSF18 IF NO DATA IN WORD,I.E. AFTER $TASK NNN
- MX7 6
- BX7 X7*X0 MASK LEADING CHAR OF 1ST WORD IN RECORD
- LX7 6
- SA1 =0R$
- BX1 X7-X1
- ZR X1,TSF6 IF CHAR IS $, I.E. TASK
- SA1 TASKF
- NZ X1,TSF23 IF TASK FLAG SET, SCRIPT CANNOT FOLLOW
- ADDWRD TSPT,X2 ENTER SESSION POINTER
- BX2 X2-X2
- ADDWRD TSPT,X2
- SA1 TSFA
- MX7 30
- BX1 X0-X1
- BX1 X7*X1
- NZ X1,TFS10 IF NOT *CSET* DIRECTIVE
- SA1 NPS
- ZR X1,TFS10 IF NOT NETWORK MODE
- SB3 24 SET SHIFT COUNT
- SA5 TSFB
- EQ TSF18 PROCESS NEXT WORD FROM SCRIPT
- * GENERATE TASK TABLE ENTRY.
- TSF6 SA1 TASKF
- NZ X1,TSF7 IF NOT FIRST TASK ENCOUNTERED
- SA7 TASKF SET TASK FLAG
- TSF7 MX7 6
- BX1 -X7*X0 MASK OFF $ FROM TASK NAME
- LX1 6
- MX7 36
- BX1 X7*X1 GET 6-CHARACTER TASK NAME
- BX1 X1+X2 ADD TSTX POINTER ADDRESS IN 1ST WORD
- ADDWRD TASK,X1 TASK NAME AND POINTER IN TASK TABLE
- MX1 0
- ADDWRD TASK,X1 ZERO WORD FOR 2ND WORD IN TASK TABLE
- MX7 -18
- BX5 -X7*X0 GET *DESIRED PERCENTAGE* ENTRY
- LX5 42
- SB2 3 MAX CHARACTERS FOR PERCENTAGE
- MX7 6
- SA4 =1L
- TSF8 BX1 X5*X7 ISOLATE UPPER CHARACTER
- IX2 X4-X1
- NZ X2,TSF9 IF CHARACTER NOT BLANK (55)
- SB2 B2-B1
- ZR B2,TSF21 IF NO MORE CHARACTERS TO CHECK
- LX5 6 MOVE NEXT CHARACTER IN POSITION
- EQ TSF8 LOOP
- TSF9 MX7 18
- BX5 X5*X7
- SB7 B1 SET DECIMAL BASE
- RJ DXB
- NZ X4,TSF21 IF ERRORS IN CONVERSION
- SA2 PCENT
- IX7 X2-X6
- SA7 A2 UPDATE TASK PERCNTAGE
- SX2 100 SET PERCENTAGE LIMIT
- IX2 X2-X6
- NG X2,TSF21 IF GREATER THAN 100
- PX6 X6 INTEGER TO FLOATING POINT
- NX1 X6 NORMALIZE
- ADDWRD TASK,X1 *DESIRED PERCENTAGE* IN 3RD WORD
- MX1 0
- ADDWRD TASK,X1 ACTUAL PERCENTAGE IN FOURTH WORD
- EQ TSF3 PROCESS NEXT TASK
- TFS10 MX4 -12 SET TRANSLATION REGISTERS
- SB2 10
- BX2 -X4*X0 SET END OF LINE FLAG
- MX7 -6
- SB5 X2
- * TRANSLATE SESSION/TASK TEXT.
- TSF11 LX0 6 NEXT CHARACTER
- BX2 -X7*X0
- SA1 TASO+X2 LOCATE TRANSLATION
- SB7 X1 CHECK TRANSLATION
- SB2 B2-B1
- BX0 X7*X0
- SB6 B6+B1 COUNT CHARACTER
- SX3 B4-13
- PL X3,TSF12 IF SPECIAL CHARACTER
- NZ B7,TSF19 IF SPECIAL PROCESSING
- TSF12 LX3 X1,B4 SHIFT TO CHARACTER
- BX2 -X4*X3 EXTRACT CHARACTER
- SX6 .ESC
- BX6 X2-X6 CHECK FOR *ESC*
- ZR X6,TSF13 IF *ESC*
- SX6 .ETX
- BX6 X2-X6
- NZ X6,TSF14 IF NOT *ETX*
- TSF13 SX6 B1 SET FLAG NOT TO SAVE *CR* AFTER *ESC/ETX*
- SA6 ESC
- TSF14 SB4 12 CLEAR SHIFT
- ZR X2,TSF20 IF NULL CHARACTER
- SA3 ESC CHECK *ESC* FLAG
- SX6 X3-2
- NZ X6,TSF15 IF *CR* DOES NOT FOLLOW *ESC*
- SA6 ESC
- EQ TSF16 CONTINUE
- TSF15 LX3 X2,B3 MERGE OUTPUT
- BX5 X5+X3
- SB3 B3-12
- TSF16 PL B3,TSF17 IF SESSION WORD NOT FULL
- SB3 48
- ADDWRD TSTX,X5
- SA5 WORD
- SX7 X5+B1 INCREMENT SESSION RECORD WORD COUNTER
- SA7 A5
- MX7 -6
- BX5 X5-X5
- MX4 -12
- TSF17 SA1 XOFF
- NZ X1,PXO IF SET TAPE OFF
- NZ B2,TSF11 IF NOT END OF INPUT WORD
- TSF18 READO I READ NEXT WORD
- BX0 X6
- ZR X1,TFS10 IF NOT END OF RECORD
- EQ EOS PROCESS END OF SESSION
- TSF19 NG B7,*+1 IF SHIFT COUNT
- JP B7 PROCESS SPECIAL FORM
- SB4 -B7 SET SHIFT
- EQ TSF17 COMPLETE END OF LINE
- * PROCESS INCORRECT SESSION FILE.
- TSF20 SX0 =C*INCORRECT DATA.*
- EQ SFE PROCESS SESSION FILE ERROR
- TSF21 SX0 =C*INCORRECT TASK PERCENTAGE.*
- EQ SFE PROCESS SESSION FILE ERROR
- TSF22 SX0 =C*TASK PERCENTAGE UNEQUAL TO 100.*
- EQ SFE PROCESS SESSION FILE ERROR
- TSF23 SX0 =C*SCRIPTS CANNOT FOLLOW TASK DEFINITIONS.*
- EQ SFE PROCESS SESSION FILE ERROR
- TSFA VFD 60/5L+CSET CHARACTER SET DETECTION DIRECTIVE
- TSFB VFD 12/4123B,12/.ELCR,36/0
- PCL SPACE 4,10
- ** PCL - PROCESS COLON.
- PCL BSS 0
- NZ B5,TSF12 IF LINE NOT TERMINATED
- NZ X0,TSF12 IF THE WORD CONTAINS CHARACTERS
- CRT SPACE 4,10
- ** CRT - CARRIAGE RETURN.
- CRT BSS 0
- SA3 NPS SET XOFF MODE
- BX6 X3
- SA6 XOFF
- SA3 ESC
- ZR X3,CRT1 IF FLAG NOT SET
- SX6 2 SET FLAG TO NOT SAVE *CR*
- SA6 ESC
- CRT1 SX2 B4-12 CHECK SHIFT STATUS
- NZ X2,TSF12 IF SHIFT COUNT
- EOL SPACE 4,10
- ** EOL - END OF LINE.
- EOL BSS 0
- SA4 NPS SET CARRIAGE RETURN
- SX2 .ELCR
- ZR X4,EOL1 IF NOT NETWORK MODE
- SX2 4033B
- EOL1 SB2 B0 CLEAR CHARACTER COUNT
- ZR B5,TSF14 IF WORD TERMINATED
- BX0 X2
- EOL2 READO I SKIP WORDS TO END OF LINE
- MX4 -12
- BX7 -X4*X6
- NZ X7,EOL2 IF NOT END OF LINE
- BX2 X0
- EQ TSF14 PROCESS NEXT LINE
- ESC CON 0 ESCAPE CHARACTER FLAG
- LTSTX CON 0 LWA OF LAST SCRIPT
- PCENT CON 0 TASK PERCENTAGE
- TASKF CON 0 TASK FLAG
- PXO SPACE 4,10
- ** PXO - PROCESS XOFF.
- PXO BSS 0
- SX2 .ELXO SET XOFF CODE (DC3)
- SX6 B0 CLEAR XOFF MODE
- SA6 XOFF
- SB2 B0 CLEAR CHARACTER COUNT
- SB4 12 CLEAR SHIFT
- EQ TSF14 PROCESS NEXT LINE OF SCRIPT
- EOS SPACE 4,10
- ** EOS - PROCESS END OF SESSION.
- EOS BSS 0
- SB3 B3+12 SET PREVIOUS BYTE
- NZ X5,EOS1 IF NOT NEW TEXT WORD
- SA1 F.TSTX SET PREVIOUS WORD
- SA2 L.TSTX
- SX6 X2-1
- SA6 A2 BACK UP POINTER LENGTH
- SA5 WORD
- SX7 X5-1 DECREMENT SESSION RECORD WORD COUNTER
- SA7 A5
- SB3 B0
- IX6 X1+X6
- SA5 X6
- EOS1 MX0 48 SET END OF SESSION CHARACTER
- LX0 X0,B3
- BX5 X0*X5
- SX1 .ESCR
- SA2 NPS
- ZR X2,EOS2 IF NOT NETWORK MODE
- SX1 .ESXO
- EOS2 LX1 X1,B3
- BX5 X1+X5
- ADDWRD TSTX,X5
- SA5 WORD
- SX7 X5+B1 INCREMENT SESSION RECORD WORD COUNTER
- ADDWRD TSTX,X7 STORE COUNTER AT END OF SESSION TEXT
- SA5 SRCNT INCREMENT SESSION RECORD COUNTER
- SX7 X5+B1
- SA7 A5
- SA1 TASKF
- NZ X1,TSF2 IF NO SCRIPT SESSION
- SA2 L.TSTX SAVE LWA+1 OF LAST SESSION
- BX6 X2
- SA6 LTSTX
- EQ TSF2 PROCESS NEXT RECORD
- WORD CON 0 SESSION RECORD WORD COUNTER
- SRCNT CON 0 SESSION RECORD COUNTER
- XOFF DATA 0 XOFF MODE FLAG
- TITLE SUBROUTINES.
- CTC SPACE 4,20
- ** CTC - CHECK ASSIGNED TERMINAL COUNT.
- *
- * ENTRY *TSPT* INITIALIZED.
- * (NT) = MAXIMUM NUMBER OF TERMINALS ALLOWED.
- *
- * EXIT (X3) .LT. 0, IF NUMBER OF TTYS ASSIGNED .GT. (N)
- * (X7) = NUMBER OF TERMINALS ASSIGNED.
- *
- * USES X - 0, 3, 4, 7.
- * A - 3, 4.
- * B - 4.
- CTC SUBR ENTRY/EXIT
- BX7 X7-X7 CLEAR ACCUMULATOR
- MX0 -12
- SA3 L.TSPT
- SA4 F.TSPT
- SB4 X3-2
- CTC1 SA3 X4+B4 GET NEXT *TSPT* ENTRY
- AX3 24
- BX3 -X0*X3
- IX7 X7+X3
- SB4 B4-2
- PL B4,CTC1 IF NOT END OF TABLE
- SA3 NT
- IX3 X3-X7
- EQ CTCX RETURN
- OPR SPACE 4,20
- ** OPR - OUTPUT PARAMETERS.
- *
- * ENTRY K-DISPLAY PROCESSING COMPLETE.
- *
- * EXIT STIMULATOR PARAMETERS WRITTEN TO OUTPUT.
- *
- * USES X - 1, 3, 6.
- * A - 1, 3, 6.
- * B - 2.
- *
- * MACROS WRITEW, WRITER.
- OPR SUBR ENTRY/EXIT
- SB2 DLFL-4
- SA1 OPAD-1 INITIALIZE POINTER
- OPR1 SA1 A1+B1 ADDRESS OF VALUE
- ZR X1,OPR2 IF LAST ADDRESS
- SA3 X1 GET VALUE
- BX6 X3
- SB2 B2+4
- SA6 B2
- EQ OPR1 LOOP
- OPR2 WRITEW O,DLCH,DLLL
- WRITER O,R
- EQ OPRX RETURN
- WMD SPACE 4,20
- ** WMD - WRITE MATRIX DISPLAY TO OUTPUT.
- *
- * EXIT MATRIX WRITTEN TO OUTPUT.
- *
- * USES X - 1, 2, 6, 7.
- * A - 1, 2, 6, 7.
- * B - 6, 7.
- *
- * CALLS SDL.
- *
- * MACRO WRITER, WRITEW.
- WMD SUBR ENTRY/EXIT
- SA1 F.TSPT SET FWA OF *TSPT*
- BX6 X1
- SA6 WMDA
- SA2 L.TSPT
- IX7 X1+X2
- SA7 WMDB
- * WRITE PAGE HEADER.
- WMD1 WRITEW O,HBUF,HBUFL
- SX6 LINP-8 SET NUMBER OF LINES PER PAGE
- SA6 WMDC
- * WRITE MATRIX TO OUTPUT.
- WMD2 SA1 WMDA GET NEXT *TSPT* ENTRY TO LIST
- SB6 X1
- SB7 WMDD
- RJ SDL SET DISPLAY LINE
- WRITEW O,WMDD,WMDDL
- SA1 WMDA ADVANCE TO NEXT ENTRY
- SX6 X1+2
- SA2 WMDB
- SA6 A1
- IX2 X6-X2
- PL X2,WMD3 IF END OF *TSPT*
- SA1 WMDC CHECK FOR END OF PAGE
- SX6 X1-1
- SA6 A1
- NZ X6,WMD2 IF NOT END OF PAGE
- EQ WMD1 START NEW PAGE
- WMD3 WRITER O,R
- EQ WMDX RETURN
- WMDA CON 0 CURRENT INDEX INTO *TSPT*
- WMDB CON 0 LAST ADDRESS OF *TSPT*
- WMDC CON 0 NUMBER OF LINES LEFT ON PAGE
- WMDD DATA 4H ASSEMBLY BUFFER
- DATA 48L
- WMDDL EQU *-WMDD LENGTH OF ASSMBLY BUFFER
- HBUF DATA L*1 *
- DATA L* *
- DATA L* *
- DATA L* STIMULATION PARAMETER MATRIX*
- DATA L* SCRIPT TTYS LS IS TT LD
- , RC*
- HBUFL EQU *-HBUF BUFFER LENGTH
- SPACE 4,10
- * COMMON DECKS.
- *CALL COMCCDD
- *CALL COMCCIO
- *CALL COMCCPM
- *CALL COMCDXB
- *CALL COMCMTP
- *CALL COMCMVE
- *CALL COMCPFM
- *CALL COMCRDO
- *CALL COMCRDC
- *CALL COMCRDW
- *CALL COMCSFM
- *CALL COMCSFN
- *CALL COMCSYS
- *CALL COMCUPC
- *CALL COMCWTW
- TITLE K-DISPLAY BUFFERS - FILE PARAMETER DISPLAY.
- FBUF SPACE 4,10
- * FBUF - FILE REQUEST BUFFER.
- FBUF VFD 12/0,36/0,12/2 DISPLAY BUFFER
- KDL 29,T,(STIMULA)
- KDL 3,H,(PARAMETER DESCRIPTION)
- DSF EQU *+1
- KDL 1,,( F = SESSFL1)
- KDL 20,K,(SESSION FILE NAME (1-7 CHARACTERS).)
- DSUI EQU *+1
- KDL 1,,( UI = 377777)
- KDL 20,K,(USER INDEX (0-377777B).)
- DSN EQU *+1
- KDL 1,,( N = )
- KDL 20,K,(NUMBER OF FILE ON SESSION FILE (0-377777B).)
- KDL 2,16,(ENTER K.GO TO BEGIN PROCESSING OF SESSION FILE.)
- FBUFE BSS 17
- TITLE K-DISPLAY BUFFERS - SESSION PARAMETER DISPLAY.
- DBUF SPACE 4,10
- * DBUF - DISPLAY BUFFER.
- DBUF VFD 12/0,36/0,12/2 DISPLAY BUFFER
- KDL 29,T,(STIMULA)
- KDL 3,H,(PARAMETER DESCRIPTION)
- DSNT EQU *+1
- KDL 1,,( NT = 310B)
- KDL 15,K,(NUMBER OF TERMINALS TO STIMULATE (1-1000).)
- .DSNT EQU *-1
- DSLS EQU *+1
- KDL 1,,( LS = 15)
- KDL 15,K,(LINE SPEED IN CHARACTERS/SECOND (1-1000).)
- DSIS EQU *+1
- KDL 1,,( IS = 15)
- KDL 15,H,(INPUT SPEED IN CHARACTERS/SECOND (1-1000).)
- DSTT EQU *+1
- KDL 1,,( TT = 10)
- KDL 15,K,(THINK TIME DELAY IN SECONDS (0-127).)
- DSTI EQU *+1
- KDL 1,,( TI = 8)
- KDL 15,K,(RANDOM THINK TIME INCREMENT (A POWER OF 2 0-64).)
- KDL 15,H,(THINK TIME WILL VARY BETWEEN TT AND TT+TI.)
- DSAC EQU *+1
- KDL 1,,( AC = 4)
- KDL 15,K,(NUMBER OF TERMINALS ACTIVATED EVERY AD SECS(1-64)
- ,.)
- DSAD EQU *+1
- KDL 1,,( AD = 10)
- KDL 15,K,(ACTIVATION DELAY IN SECONDS (1-127).)
- DSRC EQU *+1
- KDL 1,,( RC = 0)
- KDL 15,H,(NUMBER OF TIMES TO REPEAT STIMULATION (0-31).)
- DSLD EQU *+1
- KDL 1,,( LD = 0)
- KDL 15,K,(LOGOUT DELAY (0-4095).)
- DSRO EQU *+1
- KDL 1,,( RO = ON)
- KDL 15,K,(OUTPUT RECOVERY (ON OR OFF).)
- DSLF EQU *+1
- KDL 1,,( LF = NO)
- KDL 15,K,(LOOP ON SESSION FILE (YES OR NO).)
- DSMX EQU *+1
- KDL 1,,( )
- DBUFE BSS 17
- EJECT
- PBUF SPACE 4,10
- * PBUF - DISPLAY BUFFER FOR SPECIAL PARAMETERS.
- PBUF VFD 12/0,36/0,12/2 DISPLAY BUFFER
- KDL 24,T,(K DISPLAY COMMANDS)
- KDL 1,K,( )
- KDL 4,,(GO)
- KDL 16,K,(BEGIN STIMULATION.)
- KDL 4,,(MIXED)
- KDL 16,K,(DISPLAY PARAMETER MATRIX AND ENTER MIXED MODE)
- KDL 16,K,(PARAMETER ASSIGNMENT.)
- CON 0
- TITLE K-DISPLAY BUFFERS - MIXED MODE DISPLAY.
- * LDISP - LEFT DISPLAY BUFFER FOR MATRIX
- LDISP VFD 12/0,36/0,12/0 LEFT DISPLAY BUFFER
- LDIS BSS 0
- KDL 19,T,(STIMULATION PARAMETER MATRIX)
- ASIGN EQU *+4
- KDL 11,K,( NUMBER OF TTYS ASSIGNED )
- PERMIT EQU *+4
- KDL 11,H,( MAXIMUM TTYS PERMITTED )
- DSCF EQU *+1
- KDL 6,,( CF = )
- KDL 26,H,(MATRIX CHANGE FILE (1-7 CHARACTERS).)
- KDL MMSC,H,(SCRIPT TTYS LS IS TT LD
- , RC)
- SDIS BSS 0
- DUP SDISN,1
- KDL MMSC,K,(
- , )
- SMAT EQU *-SDIS
- SDISL EQU SMAT/SDISN LENGTH OF SINGLE SCRIPT LINE
- ERRNZ SDISL-WMDDL TWO BUFFERS MUST BE THE SAME LENGTH
- MORE EQU *+1
- KDL MMSC,K,( )
- LDISPE BSS 17
- EJECT
- RDISP SPACE 4,10
- * RDISP - RIGHT DISPLAY BUFFER FOR MATRIX
- RDISP VFD 12/0,36/0,12/0 RIGHT DISPLAY BUFFER
- KDL 1,T,(K DISPLAY COMMANDS)
- KDL 3,,(GO)
- KDL 12,K,(BEGIN STIMULATION.)
- KDL 3,,(+)
- KDL 12,K,(PAGE DISPLAY FORWARD.)
- KDL 3,,(-)
- KDL 12,H,(PAGE DISPLAY BACKWARD.)
- KDL 1,H,(MIXED MODE PARAMETERS)
- KDL 3,K,(MX=SCRIPT,TTYS,LS,IS,TT,LD,RC.)
- KDL 6,,(SCRIPT)
- KDL 15,K,(SCRIPTS WHICH THE PARAMTERS WILL AFFECT.)
- KDL 15,K,(SCRIPT(N) OR SCRIPT(N)-SCRIPT(N+X).)
- KDL 6,,(TTYS)
- KDL 15,K,(NUMBER OF TTYS ASSIGNED TO SCRIPTS.)
- KDL 6,,(LS)
- KDL 15,K,(LINE SPEED ASSIGNED TO SCRIPTS.)
- KDL 6,,(IS)
- KDL 15,K,(INPUT SPEED ASSIGNED TO SCRIPTS.)
- KDL 6,,(TT)
- KDL 15,K,(THINK TIME ASSIGNED TO SCRIPTS.)
- KDL 6,,(LD)
- KDL 15,K,(LOGOUT DELAY ASSIGNED TO SCRIPTS.)
- KDL 6,,(RC)
- KDL 15,K,(REPEAT COUNT ASSIGNED TO SCRIPTS.)
- KDL 6,K,(NULL PARAMETER WILL KEEP CURRENT VALUE.)
- KDL 3,K,(CF=XXX CHANGE MATRIX VIA PREDEFINED PARAMETERS.)
- KDL 6,K,(XXX = PERMANENT FILE CONTAINING CHANGE DIRECTIVES
- ,IN FORMAT)
- KDL 15,K,(MX=SCRIPT,TTYS,LS,IS,TT,LD,RC.)
- CON 0
- TITLE TRANSLATION TABLES.
- TASO SPACE 4,10
- * TASO - TABLE OF *ASCII* OUTPUT CHARACTERS.
- TASO BSS 0
- LOC 0
- * 76 74
- 00 OTASC 3A,60,,PCL CL GV
- 01 OTASC 41,61,40 A A AT
- 02 OTASC 42,62,5E B B CF
- 03 OTASC 43,63 C C
- 04 OTASC 44,64,3A D D CL
- 05 OTASC 45,65,11 E E DC1
- 06 OTASC 46,66,13 F F DC3
- 07 OTASC 47,67 G G
- 10 OTASC 48,68,0D H H CR (NO EOL PROCESSING)
- 11 OTASC 49,69,0A I I LF
- 12 OTASC 4A,6A,0D J J NL
- 13 OTASC 4B,6B,21 K K EX
- 14 OTASC 4C,6C,40 L L AT
- 15 OTASC 4D,6D,5E M M CF
- 16 OTASC 4E,6E N N
- 17 OTASC 4F,6F O O
- 20 OTASC 50,70 P P
- 21 OTASC 51,71 Q Q
- 22 OTASC 52,72 R R
- 23 OTASC 53,73 S S
- 24 OTASC 54,74 T T
- 25 OTASC 55,75 U U
- 26 OTASC 56,76 V V
- 27 OTASC 57,77 W W
- 30 OTASC 58,78 X X
- 31 OTASC 59,79 Y Y
- 32 OTASC 5A,7A Z Z
- 33 OTASC 30,7B 0 LB
- 34 OTASC 31,7C 1 VL
- 35 OTASC 32,7D 2 RB
- 36 OTASC 33,7E 3 TL
- 37 OTASC 34,7F 4 DEL
- 40 OTASC 35,, 5 NUL
- 41 OTASC 36,01 6 SOH
- 42 OTASC 37,02 7 STX
- 43 OTASC 38,03 8 ETX
- 44 OTASC 39,04 9 EOT
- 45 OTASC 2B,05 + ENQ
- 46 OTASC 2D,06 - ACK
- 47 OTASC 2A,07 * BEL
- 50 OTASC 2F,08 / BS
- 51 OTASC 28,09 ( HT
- 52 OTASC 29,0A ) LF
- 53 OTASC 24,0B $ VT
- 54 OTASC 3D,0C = FF
- 55 OTASC 20,0D SP CR (NO EOL PROCESSING)
- 56 OTASC 2C,0E , SO
- 57 OTASC 2E,0F . SI
- 60 OTASC 23,10 NB DLE
- 61 OTASC 5B,11 OB DC1
- 62 OTASC 5D,12 CB DC2
- 63 OTASC 25,13 PC DC3
- 64 OTASC 22,14 DQ DC4
- 65 OTASC 5F,15 UL NAK
- 66 OTASC 0D,16,,CRT CR SYN (CR = END OF THE LINE)
- 67 OTASC 26,17 AM ETB
- 70 OTASC 27,18 AP CAN
- 71 OTASC 3F,19 QM EM
- 72 OTASC 3C,1A LT SUB
- 73 OTASC 3E,1B GT ESC
- 74 OTASC ,1C,,-36 ESCAPE 2 - FS
- 75 OTASC 5C,1D RVS GS
- 76 OTASC ,1E,,-24 ESCAPE 1 - RS
- 77 OTASC 3B,1F SC US
- LOC *O
- TITLE BUFFER DEFINITIONS.
- SPACE 4,10
- * OUTPUT RECORD.
- DLCH DATA C*1STIMULATOR PARAMETERS- *
- DATA H* SESSION FILE NAME- F= *
- DLFL CON 0 SESSION FILE NAME
- DATA H* USER INDEX- UI= *
- DLUI CON 0 USER INDEX
- DATA H* NUMBER OF THE FILE- N= *
- DLNB CON 0 FILE NUMBER
- DATA H* NUMBER OF TERMINALS- NT= *
- DLNT CON 0 NUMBER OF TERMINALS
- DATA H* LINE SPEED- LS= *
- DLLS CON 0 LINE SPEED
- DATA H* INPUT SPEED- IS= *
- DLIS CON 0 INPUT SPEED
- DATA H* THINK TIME- TT= *
- DLTT CON 0 THINK TIME
- DATA H* RANDOM THINK TIME- TI= *
- DLTI CON 0 RANDOM THINK TIME
- DATA H* ACTIVATION COUNT- AC= *
- DLAC CON 0 ACTIVATION COUNT
- DATA H* ACTIVATION DELAY- AD= *
- DLAD CON 0 ACTIVATION DELAY
- DATA H* REPEAT COUNT- RC= *
- DLRC CON 0 REPEAT COUNT
- DATA H* LOGOUT DELAY- LD= *
- DLLD CON 0 LOGOUT DELAY
- DATA H* OUTPUT RECOVERY- RO= *
- DLRO CON 0 OUTPUT RECOVERY
- DATA H* LOOP ON SESSION FILE- LF= *
- DLLF CON 0 LOOP ON SESSION FILE
- DATA H* MATRIX CHANGE FILE- CF= *
- DLCF CON 0 MATRIX CHANGE FILE NAME
- DLLL EQU *-DLCH
- SPACE 4,10
- * REPLACE ADDRESSES.
- OPAD CON DSF
- CON DSUI
- CON DSN
- CON DSNT
- CON DSLS
- CON DSIS
- CON DSTT
- CON DSTI
- CON DSAC
- CON DSAD
- CON DSRC
- CON DSLD
- CON DSRO
- CON DSLF
- CON DSCF
- CON 0 END OF TABLE
- SPACE 4,10
- * BUFFERS.
- USE //
- IBUF BSS 0
- KBUF EQU IBUF+IBUFL
- MEML EQU KBUF+KBUFL
- RFL= EQU MEML+MEMLL RESERVE TABLE SPACE
- TITLE PRESET ROUTINE.
- PRS SPACE 4,20
- ** PRS - PRESET PROGRAM.
- ORG IBUF
- PRS SUBR ENTRY/EXIT
- SX3 PRSD
- RJ PRK PRESET *K* DISPLAY
- SA1 ACTR SET ARGUMENT COUNT
- SX6 A0-FLFF SET END OF MANAGED TABLES
- SB4 X1+
- SA6 F.TEND
- SB5 PRSB SET ARGUMENT TABLE
- SA4 ARGR FIRST ARGUMENT
- RJ ARG PROCESS ARGUMENTS
- ZR X1,PRS1 IF NO ERRORS
- SX0 =C* ERROR IN STIMULATOR ARGUMENTS.*
- EQ ABT ABORT JOB
- PRS1 BX6 X6-X6
- SA6 RAPP
- SYSTEM SPC,,PRSA CALL *1TS* TO INITIALIZE *TCWD*
- PRS2 SA1 RAPP
- ZR X1,PRS2 IF REQUEST NOT COMPLETE
- SB3 X1+
- NE B3,B1,PRS3 IF MORE THAN ONE DRIVER
- SA1 PRSC SET WRITE WITH RECALL
- SA3 A1+B1
- BX6 X1
- BX7 X3
- SA6 RCOA+/RCO/RCOE-STMO
- SA7 A6+B1
- PRS3 SA3 MODE DETERMINE NUMBER OF TERMINALS
- MX0 -12
- ZR X3,PRS4 IF CALLING *1TS*
- MX0 -6
- PRS4 BX6 X6-X6
- MX7 0
- PRS5 SA1 TCWD+X7 GET NEXT ENTRY
- ZR B3,PRS6 IF END OF TABLE
- SB3 B3-B1
- LX1 24
- BX1 -X0*X1
- IX6 X1+X6
- IX6 X6+X3 ADJUST TERMINAL COUNT
- SX7 X7+B1
- EQ PRS5 LOOP FOR ALL ENTRIES
- PRS6 SA1 TARG SET MAXIMUM VALUE FOR *TY*
- BX7 X1+X6
- SA7 A1
- SA6 NT
- SA6 MNT
- BX1 X6 CONVERT NUMBER OF TERMINALS
- RJ COD
- SX3 1RB&1R
- SB3 B2-54
- LX2 X3,-B3
- BX6 X4-X2
- MX3 48
- BX7 X3*X6
- SA7 DSNT
- SB3 B3+12
- SX3 2R &2R).
- LX2 X3,-B3
- BX6 X7-X2
- SA6 .DSNT
- RETURN IORA,R RETURN *STIMOUT*
- SA1 CSMR
- NG X1,PRS8 IF 64 CHARACTER SET
- SA1 TASO STORE COLON IN PERCENT LOCATION
- SA2 TASO+63B PERCENT
- MX6 12
- BX4 X6*X1
- BX3 -X6*X2
- BX6 X4+X3
- SA6 A2
- PRS8 SA1 I CHECK SESSION FILE
- AX1 1
- ZR X1,PRSX IF NOT SET
- BX6 X1
- SA6 RSFB
- REWIND I
- EQ PRSX RETURN
- PRSA VFD 18/0L1TS,42/0
- * VFD 18/0L1TE,42/0
- PRSB SPACE 4,10
- ** PRSB - TABLE OF COMMAND ARGUMENT OPTIONS.
- PRSB BSS 0
- I ARG I,I
- CON 0
- SPACE 4,10
- PRSC BSS 0
- QUAL RCO
- LOC RCOE
- WRITE X5,R
- PRSCL EQU * ENSURE PROPER CODE MODIFICATION
- ERRNZ RCOEL-PRSCL MACRO CODE NOT SAME LENGTH
- LOC *O
- QUAL
- ERRNZ *-PRSC-2 CHECK INSTRUCTION MODIFICATION
- SPACE 4
- PRSD KDL * GENERATE *KDL* SUBSTITUTION TABLE
- SPACE 4
- PRK HERE REMOTE BLOCK FROM *COMCDCP*
- SPACE 4
- * COMMON DECKS.
- *CALL COMCARG
- *CALL COMCCOD
- SPACE 4
- END
cdc/nos2.source/opl871/stimula.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator