cdc:nos2.source:opl871:1ts
Table of Contents
1TS
Table Of Contents
- [00007] 1TS - INTERNAL STIMULATION DRIVER.
- [00009] INTERNAL STIMULATION DRIVER.
- [00103] DIRECT CELLS AND ASSEMBLY CONSTANTS.
- [00138] MACRO DEFINITIONS.
- [00140] RETURN - RETURN TO MANAGER TO ADVANCE TERMINAL PROCESSING.
- [00156] TTADD - GENERATE TERMINAL TABLE ADDRESS.
- [00204] MAIN PROGRAM.
- [00206] STM - MAIN PROGRAM.
- [00334] DPP - DROP PPU.
- [00355] TERMINATION ROUTINES.
- [00357] TDR - TERMINATE DRIVER.
- [00421] ESD - END STIMOUT DATA.
- [00451] STIMULATOR SERVICE.
- [00493] SSL - STIMULATOR SERVICE LOOP.
- [00532] UPLINE DATA PROCESSING ROUTINES.
- [00534] LGI - PROCESS LOGIN.
- [00590] REJ - REJECT CHARACTER.
- [00616] TTD - THINK TIME DELAY.
- [00662] WTC - WRITE CHARACTER.
- [00795] TSCH - TABLE OF SPECIAL CHARACTERS.
- [00818] EOL - PROCESS END OF LINE.
- [00907] EOS - PROCESS END OF SCRIPT.
- [01001] PET - PROCESS END OF TASK.
- [01065] SNT - SET NEXT TASK.
- [01164] OTT - OPTIONAL THINK TIME.
- [01209] TANV - TABLE OF ASCII NUMERIC VALUES.
- [01225] SAN - SET ACCOUNT NUMBER.
- [01278] DOWNLINE DATA PROCESSING ROUTINES.
- [01280] RTC - READ TERMINAL CHARACTER.
- [01338] HNU - HANG UP.
- [01398] INI - INITIATE INPUT.
- [01450] COMMON SUBROUTINES.
- [01452] ETM - ENTER TIME.
- [01473] SAA - SET ABSOLUTE ADDRESSES.
- [01539] SDC - STORE DATA CHARACTER.
- [01576] SDW - STORE DATA WORD.
- [01630] INITIALIZATION.
- [01632] PRS - PRESET PROGRAM.
- [01724] TOCA - TABLE OF OUTPUT CONTROL ADDRESSES.
- [01740] ABT - ABORT JOB.
- [01749] CTS - CHECK *IAF* STATUS.
- [01802] ICT - INTIALIZE CONTROL TABLE.
- [01831] IOR - INITIALIZE OUTPUT RECOVERY.
- [01872] ISC - INITIALIZE STIMULATOR CHANNELS.
- [01898] RQS - REQUEST STORAGE.
- [01944] SCP - START CENTRAL PROGRAM.
- [01996] SAD - SET ADDRESSES.
Source Code
- 1TS.txt
- IDENT 1TS,STM
- PERIPH
- BASE MIXED
- SST
- *COMMENT 1TS - INTERNAL STIMULATION DRIVER.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- TITLE 1TS - INTERNAL STIMULATION DRIVER.
- SPACE 4,10
- *** 1TS - INTERNAL STIMULATION DRIVER.
- * G. R. MANSFIELD. 72/08/10.
- * R. A. JAPS. 77/12/05.
- SPACE 4,10
- *** *1TS* IS A STIMULATION DRIVER WHICH IS CALLED BY *STIMULA*
- * TO STIMULATE LOW SPEED INTERACTIVE TERMINALS FOR *IAF*.
- SPACE 4,10
- *** INPUT REGISTER FORMAT.
- *
- *T IR 18/ *1TS* ,24/ 0 ,18/ADDR
- *
- * ADDR ADDRESS OF CONTROL TABLE ENTRY FOR STIMULATION.
- * ADDR IS ZERO FOR STIMULATION INITIALIZATION.
- *
- * REFER TO *STIMULA* FOR TABLE FORMATS.
- SPACE 4,10
- *** DAYFILE MESSAGES.
- *
- * * IAF ABORT.*
- * STIMULATION WAS ABORTED BECAUSE *IAF* WAS NOT
- * COMMUNICATING WITH THE STIMULATOR.
- *
- * * OUT OF SYNCH.*
- * THE STIMULATION WAS ABORTED BECAUSE *1TS* WAS OUT OF
- * SYNCH WITH *IAF*.
- *
- * * LOST STIMOUT DATA.*
- * *1TS* WAS NOT ABLE TO RECOVER ALL OUTPUT BECAUSE THE
- * CM BUFFERS WERE FULL.
- *
- * *XXXXXX.XXX SEC. 1TS CYCLE TIME.*
- * INFORMATIVE MESSAGE STATING THE MAXIMUM CYCLE TIME
- * FOR *1TS*.
- *
- * * INVALID OPTIONAL THINK TIME.*
- * STIMULATION WAS ABORTED BECAUSE OF AN INVALID OPTIONAL
- * THINK TIME SPECIFICATION IN THE SCRIPTS. CORRECT
- * SCRIPTS AND RETRY.
- *
- * * ERROR IN SPECIAL ACCOUNT NUMBER.*
- * STIMULATION WAS ABORTED BECAUSE AN ERROR IN THE
- * SCRIPTS WAS ENCOUNTERED WHILE PROCESSING THE SPECIAL
- * ACCOUNT NUMBER FLAGS.
- *
- * * STIMULATION INITIATED.*
- * INFORMATIVE MESSAGE STATING THAT THE STIMULATION HAS
- * STARTED.
- *
- * * IAF NOT ACTIVE.*
- * STIMULATION WAS ABORTED BECAUSE *IAF* WAS NOT AT
- * CONTROL POINT 1. BRING UP *IAF* AND RETRY.
- *
- * * MEMORY REQUEST ERROR.*
- * AN INTERNAL ERROR INDICATING THAT *STIMULA* HAS NOT
- * REQUESTED ENOUGH FL FOR THE STIMULATION.
- *
- * * INPUT REQUESTED PAST END OF SCRIPT - NNNN.*
- * AN INPUT REQUEST WAS RECEIVED EVEN THOUGH END OF
- * SCRIPT HAD BEEN REACHED ON TERMINAL *NNNN*. THIS
- * IS A FATAL ERROR.
- SPACE 4,10
- *** INSTALLATION NOTES.
- *
- * THE STIMULATION DRIVER INTERFACES WITH *STIMULA*.
- * *1TS* IS A STIMULATION DRIVER THAT COMMUNICATES
- * WITH *1TN* VIA CHANNEL (INTERNAL STIMUALTION).
- *
- * **************
- * * *
- * * 1TS *
- * * *
- * **************
- * I
- * CHANNEL I
- * I
- * **************
- * * *
- * * 1TN *
- * * *
- * **************
- SPACE 4
- ** COMMON DECKS.
- *CALL COMSACC
- *CALL COMSPIM
- *CALL COMPMAC
- *CALL COMPCHI
- *CALL COMSREM
- *CALL COMSSCD
- *CALL COMSSSD
- LIST X
- *CALL COMSSTM
- LIST -X
- TITLE DIRECT CELLS AND ASSEMBLY CONSTANTS.
- DIRECT SPACE 4,10
- **** DIRECT LOCATION ASSIGNMENTS.
- DP EQU 20 - 24 DATA POINTER
- TT EQU DP+2 THINK TIME
- RT EQU DP+3 DATA RATE
- CK EQU DP+4 CLOCK
- OC EQU 25 OUTPUT CHARACTER
- IC EQU 26 INPUT CHARACTER
- AT EQU 30 ACTIVE TERMINAL COUNT
- LS EQU 31 LAST SECOND COUNT
- MT EQU 32 1TS MAX CYCLE TIME
- LM EQU 33 LAST MILLISECOND COUNT
- MC EQU 34 MILLISECOND COUNT
- NT EQU 35 NUMBER OF TERMINALS
- TC EQU 36 TERMINAL COUNT
- LC EQU 37 NUMBER OF TERMINALS TO LOGIN
- OT EQU 40 OUTPUT TERMINAL NUMBER
- IT EQU 41 INPUT TERMINAL NUMBER
- TW EQU 42 - 47 WORD TWO OF *TTER* ENTRY
- LI EQU TW+0 LINE SPEED
- IS EQU TW+1 INPUT SPEED
- LD EQU TW+2 LOGOUT DELAY
- TI EQU TW+3 INITIAL THINK TIME
- TO EQU TW+4 OPTIONAL THINK TIME
- SC EQU 47 SECOND COUNT
- IN EQU 60 - 64 IN POINTER
- ****
- SPACE 4,10
- ** ASSEMBLY CONSTANTS.
- CH EQU 15 STIMULATOR CHANNEL
- TITLE MACRO DEFINITIONS.
- RETURN SPACE 4
- ** RETURN - RETURN TO MANAGER TO ADVANCE TERMINAL PROCESSING.
- *
- * RETURN EXIT,ADDR
- *
- * ENTRY *EXIT* = MANAGER EXIT NUMBER.
- * *ADDR* = MANAGER RETURN ADDRESS.
- * IF *ADDR* IS NULL, RETURN TO NEXT PROGRAM ADDRESS.
- PURGMAC RETURN
- RETURN MACRO N,A
- LDC A *+4
- LJM N STT
- ENDM
- TTADD SPACE 4
- ** TTADD - GENERATE TERMINAL TABLE ADDRESS.
- *
- * TTADD TER,W
- *
- * ENTRY *TER* = DIRECT LOCATION CONTAINING TERMINAL NUMBER.
- * W = 0, ADDRESS OF FIRST WORD OF ENTRY.
- * = 1, ADDRESS OF SECOND WORD OF ENTRY.
- * = 2, ADDRESS OF THIRD WORD OF ENTRY.
- * = 3, ADDRESS OF FOURTH WORD OF ENTRY.
- * = 4, ADDRESS OF FIFTH WORD OF ENTRY.
- *
- * EXIT (A) = DESIRED ADDRESS.
- TTADD MACRO T,W
- LOCAL L
- LDD RA
- SHN 6
- ADD T
- QUAL
- L ADC **
- QUAL *
- IFC EQ,$W$0$
- TTE0 RMT
- CON L
- TTE0 RMT
- ENDIF
- IFC EQ,$W$1$
- TTE1 RMT
- CON L
- TTE1 RMT
- ENDIF
- IFC EQ,$W$2$
- TTE2 RMT
- CON L
- TTE2 RMT
- ENDIF
- IFC EQ,$W$3$
- TTE3 RMT
- CON L
- TTE3 RMT
- ENDIF
- IFC EQ,$W$4$
- TTE4 RMT
- CON L
- TTE4 RMT
- ENDIF
- ENDM
- TITLE MAIN PROGRAM.
- STM SPACE 4
- ** STM - MAIN PROGRAM.
- ORG PPFW
- STM RJM PRS PRESET PROGRAM
- ACN CH
- * UPDATE CLOCKS.
- STM1 LDC RTCL READ REAL TIME CLOCK
- CRD CM
- LDD CM+4 SET ELAPSED MILLISECOND COUNT
- SBM STMD
- PJN STM2 IF CLOCK NOT RECYCLED
- ADC 10000B IF CLOCK RECYCLED
- STM2 STD MC SET MILLISECOND COUNT SINCE LAST CYCLE
- SBD MT CHECK CYCLE TIME
- MJN STM4 IF MAXIMUM NOT EXCEEDED
- RAD MT SET NEW MAXIMUM
- STM4 LDD MC
- RAD LM ADD LAST MILLISECOND
- SBK 1000D
- PJN STM5 IF SECOND ELAPSED
- LDN 0
- UJN STM6 TOGGLE SECOND STATUS
- STM5 STD LM SAVE LAST MILLISECOND
- AOD LS UPDATE LAST SECOND
- LDN 1
- STM6 STD SC SET SECOND COUNT STATUS
- LDD CM+4 CURRENT TIME
- STM STMD
- LDD NT SET TERMINAL COUNT
- STD TC
- LDD MA STORE CLOCK
- CWD AT
- LDN 2 SET ON LINE CONTROL
- STM LCIC
- * CHECK FOR END OF STIMULATION.
- STM7 PAUSE
- LDD CM+1
- STM STMF SAVE ERROR STATUS
- RJM SAA SET ABSOLUTE ADDRESSES
- LDC **
- STMF EQU *-1 (ERROR STATUS)
- NJN STM11 IF ERROR FLAG SET
- LDN 0
- * LDN 1 (INTERNAL ERROR ENCOUNTERED)
- STMA EQU *-1
- NJN STM11 IF INTERNAL ERROR ENCOUNTERED
- IJM STM10,CH IF DRIVER ABORTED
- FJM STM8,CH IF DRIVER READY
- LDN 77 DELAY
- SBN 1
- NJN *-1 IF DELAY NOT EXPIRED
- UJN STM7 RETRY
- STM8 IAN CH+40 INPUT SYNC CODE
- LPC 7777 TRUNCATE TO 12 BITS
- LMC 7777 CHECK FOR SYNC CODE
- NJN STM9 IF NOT SYNC CODE
- RJM SSL ENTER STIMULATOR SERVICE LOOP
- LDD AT CHECK ACTIVE TERMINAL COUNT
- ZJN STM11 IF NONE ACTIVE
- LJM STM1 LOOP
- * PROCESS OUT OF SYNC CONDITION.
- STM9 LDC MSGB SET MESSAGE ADDRESS
- UJN STM12 TERMINATE STIMULATION RUN
- * PROCESS *IAF* ABORT.
- STM10 LDC MSGA * IAF ABORTED.*
- UJN STM12 TERMINATE STIMULATION RUN
- * PROCESS END OF STIMULATION.
- STM11 RJM TDR TERMINATE DRIVER
- LDC 0
- * LDC MSGE * INVALID OPTIONAL THINK TIME.*
- * LDC MSGB * OUT OF SYNCH.*
- * LDC MSGF * ERROR IN SPECIAL ACCOUNT NUMBER.*
- * LDC MSGG * INPUT REQUESTED PAST END OF SCRIPT...*
- STMB EQU *-1
- ZJN STM13 IF NO ERROR MESSAGE
- * TERMINATE STIMULATION RUN.
- *
- * ENTRY (A) = MESSAGE ADDRESS.
- STM12 RJM DFM
- STM13 LDN ZERL CONVERT MAXIMUM CYCLE TIME
- CRD CM
- LDD MT
- ZJN STM14 IF NO TIME ACCUMULATED
- STD CM+4
- LDD MA
- CWD CM
- MONITOR RDCM REQUEST DATA CONVERSION
- LDD MA SET UP MESSAGE
- CRM MSGD,ON *XXXXXX.XXX SEC. 1TS CYCLE TIME.*
- LDC MSGD
- RJM DFM
- STM14 RJM ESD END STIMOUT DATA
- LDD IR+3 SET CONTROL TABLE ENTRY COMPLETE
- SHN 6
- ADD RA
- SHN 6
- ADD IR+4
- CRD CM
- LDC 4000
- STD CM
- LDC 0
- STMC EQU *-1 (TOTAL TIMES IN REGULATION)
- STD CM+1
- LDD IR+3
- SHN 6
- ADD RA
- SHN 6
- ADD IR+4
- CWD CM
- UJN DPP DROP PPU
- STMD CON 0 PREVIOUS TIME
- DPP SPACE 4
- ** DPP - DROP PPU.
- DPP MONITOR DPPM DROP PPU
- LJM PPR EXIT TO PP RESIDENT
- SPACE 4,10
- ** STIMULATION COMPLETION MESSAGES.
- MSGA DATA C* IAF ABORT.*
- MSGB DATA C* OUT OF SYNCH.*
- MSGC DATA C* LOST STIMOUT DATA.*
- MSGD DATA C*XXXXXX.XXX SEC. 1TS CYCLE TIME.*
- MSGE DATA C* INVALID OPTIONAL THINK TIME.*
- MSGF DATA C* ERROR IN SPECIAL ACCOUNT NUMBER.*
- MSGG DATA H* INPUT REQUESTED PAST END OF SCRIPT -*
- MSGH DATA C*NNNN.*
- SPACE 4,10
- ** COMMON DECKS.
- *CALL COMPC2D
- TITLE TERMINATION ROUTINES.
- TDR SPACE 4,15
- ** TDR - TERMINATE DRIVER.
- *
- * ENTRY STIMULATION ENDED.
- * (NT) = NUMBER OF TERMINALS.
- *
- * EXIT ALL TERMINALS SET OFF LINE.
- * TO *STM10*, IF OUT OF SYNCH OR *1TN* NOT RESPONDING.
- *
- * USES T1 - T4.
- *
- * MACROS PAUSE, TTADD.
- TDR SUBR ENTRY/EXIT
- LDN 20
- STD T4
- LDN 0
- STD T3
- TDR1 IJM STM10,CH IF DRIVER ABORTED
- PAUSE
- EJM TDR1,CH WAIT FOR DRIVER
- IAN CH+40 INPUT SYNC CODE
- LPC 7777 TRUNCATE TO 12 BITS
- LMC 7777
- ZJN TDR2 IF IN SYNCH
- LJM STM10 IF DRIVER ABORTED
- TDR2 STD T1
- STD T2 CLEAR ACTIVE COUNT
- TDR3 TTADD T1,0 READ TERMINAL TABLE ENTRY
- CRD DP
- LDD DP CHECK STATUS
- SHN 21-13
- MJN TDR5 IF OFF LINE
- LDD T2
- NJN TDR6 IF ONE ALREADY PROCESSED
- AOD T3
- SBN 20
- NJN TDR4 DELAY LOG OFF
- STD T3
- LDC 4000 SET OFF LINE
- STD DP
- TTADD T1,0
- CWD DP
- TDR4 LDD TH SET TERMINAL LOGGED OFF
- STD T2
- UJN TDR6 OUTPUT CHARACTER
- TDR5 LDN 0 SET OFF LINE
- TDR6 OAN CH+40
- FJM *,CH
- IAN CH+40 ACCEPT DRIVER INPUT
- AOD T1 ADVANCE TERMINAL NUMBER
- LMD NT
- NJP TDR3 IF MORE TERMINALS
- LDD T2
- ZJN TDR8 IF NO TERMINALS LOGGED OFF
- TDR7 LJM TDR1 LOOP
- TDR8 SOD T4
- NJN TDR7 IF FINAL PASS INCOMPLETE
- DCN CH+40
- LJM TDRX RETURN
- ESD SPACE 4,15
- ** ESD - END STIMOUT DATA.
- *
- * ENTRY STIMULATION COMPLETE.
- * (NT) = NUMBER OF TERMINALS.
- *
- * EXIT DATA WORD IN *TTER* FLUSHED TO FET BUFFER.
- *
- * USES T1, T7, CM - CM+4.
- *
- * CALLS SDW.
- *
- * MACROS TTADD.
- ESD SUBR ENTRY/EXIT
- LDN 1 (NO OUTPUT RECOVERY)
- * LDN 0 (OUTPUT RECOVERY)
- ESDA EQU *-1
- NJN ESDX IF NO OUTPUT RECOVERY
- STD T1 ZERO DUMMY CHARACTER
- STD T7 TERMINAL NUMBER
- ESD1 TTADD T7,3 READ TERMINAL TABLE ENTRY
- CRD CM
- LDD CM
- ZJN ESD2 IF NO ENTRY IN DATA WORD
- RJM SDW STORE DATA WORD
- ESD2 AOD T7 ADVANCE TERMINAL NUMBER
- LMD NT
- NJN ESD1 IF MORE TERMINALS
- UJN ESDX RETURN
- TITLE STIMULATOR SERVICE.
- OFL SPACE 4,10
- * RETURNS FOR TERMINAL IDLE AND OFF LINE.
- OFL STM TOCA,OT SET ENTRY ADDRESS
- OFL1 LDN 0 SET OFF LINE STATUS
- STD OC
- UJN STT1 STORE TERMINAL TABLE ENTRY
- OFL2 LDN 0 SET OFF LINE STATUS
- STD OC
- UJN NOP RETURN FOR NO OPERATION
- ONL SPACE 4,10
- * RETURNS FOR TERMINAL IDLE AND ON LINE.
- ONL STM TOCA,OT SET ENTRY ADDRESS
- ONL1 LDD TH SET ON LINE STATUS
- STD OC
- UJN STT1 STORE TERMINAL TABLE ENTRY
- ONL2 LDD TH SET ON LINE STATUS
- ONL3 STD OC
- UJN NOP RETURN FOR NO OPERATION
- STT SPACE 4,10
- * RETURNS FOR STORE TERMINAL TABLE ENTRY.
- STT STM TOCA,OT SET ENTRY ADDRESS
- STT1 TTADD OT,0 STORE TERMINAL TABLE ENTRY
- CWD DP
- * UJN NOP RETURN FOR NO OPERATION
- NOP SPACE 4,10
- * RETURN FOR NO OPERATION.
- NOP AOD OT ADVANCE OUTPUT TERMINAL
- LMD NT
- NJN SSL4 IF LIMIT NOT REACHED
- STD OT
- * UJN SSL4 PROCESS NEXT TERMINAL
- SSL SPACE 4,10
- ** SSL - STIMULATOR SERVICE LOOP.
- *
- * ENTRY (NT) = NUMBER OF TERMINALS BEING STIMULATED.
- * (TC) = TERMINAL COUNT.
- *
- * EXIT ALL TERMINALS SERVICED.
- *
- * USES IC, IT, TC, T1.
- *
- * CALLS RTC.
- *
- * NOTES UPLINE DATA PROCESSORS RETURN TO THE SERVICE
- * LOOP AT *SSL4*.
- *
- * *SSL* IS RESPONSIBLE FOR SENDING AND RECEIVING
- * DATA FROM THE STIMULATOR CHANNEL.
- SSL4 IAN CH+40 INPUT CHARACTER
- STD IC
- SOD TC DECREMENT TERMINAL COUNT
- NJN SSL1 IF NOT END OF TERMINALS
- * UJN SSLX
- SSL SUBR ENTRY/EXIT
- SSL1 LDD OC OUTPUT CHARACTER
- OAN CH+40
- FJM *,CH
- LDD IC CHECK PREVIOUS INPUT CHARACTER
- SHN 6
- PJN SSL2 IF NO INPUT DATA
- RJM RTC READ TERMINAL CHARACTER
- SSL2 AOD IT ADVANCE INPUT TERMINAL
- LMD NT
- NJN SSL3 IF LIMIT NOT REACHED
- STD IT
- SSL3 LDM TOCA,OT
- STD T1
- LJM 0,T1 ENTER OUTPUT ROUTINE
- TITLE UPLINE DATA PROCESSING ROUTINES.
- LGI SPACE 4,20
- ** LGI - PROCESS LOGIN.
- *
- * ENTRY (LC) = LOGIN COUNT.
- * (SC) = SECOND COUNT.
- * (OT) = OUTPUT TERMINAL.
- * (LCIC) = ON LINE CONTROL.
- *
- * EXIT TERMINAL SET ON LINE.
- *
- * USES LC, OC, CM - CM+4, DP - DP+4.
- *
- * MACROS RETURN, TTADD.
- *
- * NOTES *LGI* IS RESPONSIBLE FOR THE RATE AT WHICH
- * TERMINALS ARE BROUGHT ON LINE.
- LGI LDD LC CHECK LOGIN COUNT
- NJN LGI1 IF LOGIN ALLOWED
- LJM OFL2 SET OFF LINE STATUS
- LGI1 TTADD OT,0 READ TERMINAL TABLE ENTRY
- CRD DP
- SOD LC DECREMENT LOGIN COUNT
- RETURN OFL
- LGIA LDD SC CHECK SECOND COUNT
- NJN LGI2 IF SECOND ELAPSED
- LJM OFL2 SET OFF LINE STATUS
- LGI2 TTADD OT,0 READ TERMINAL TABLE ENTRY
- CRD DP
- SOD CK DECREMENT CLOCK
- ZJN LGI3 IF START TIME REACHED
- MJN LGI3 IF START TIME REACHED
- LJM OFL1 SET OFF LINE STATUS
- LGI3 AOD LC ADJUST LOGIN COUNT
- LDD DP CLEAR OFF LINE
- LPN 77 KEEP UPPER 6 BITS OF SCRIPT ADDRESS
- STD DP
- RETURN OFL
- LGIB LDM LCIC CHECK ON LINE CONTROL
- NJN LGI4 IF OKAY TO BRING ON LINE
- LJM OFL2 SET OFF LINE STATUS
- LGI4 SOM LCIC DECREMENT ON LINE CONTROL
- TTADD OT,0
- CRD DP
- RETURN ONL
- LGI5 LDC 5000 SEND LEGAL CHARACTER
- LJM ONL3 SET ON LINE STATUS
- LCIC CON 0 ON LINE CONTROL
- LGID CON 0 NUMBER OF ACTIVE TERMINALS
- REJ SPACE 4,10
- ** REJ - REJECT CHARACTER.
- *
- * EXIT (OC) = 1400.
- *
- * USES OC, DP - DP+4.
- *
- * MACROS RETURN, TTADD.
- REJ BSS 0 ENTRY
- TTADD OT,0 READ TERMINAL TABLE ENTRY
- CRD DP
- LDD CK CHECK CLOCK
- SBD MC
- MJN REJ1 IF CHARACTER DELAY ELAPSED
- STD CK
- LDC 1400 SET OUTPUT CHARACTER REJECT
- STD OC
- LJM STT1 UPDATE TERMINAL STATUS
- REJ1 ADD RT RESET CLOCK
- PJN REJ2
- LDD RT
- REJ2 STD CK
- RETURN ONL,ONL2
- TTD SPACE 4,15
- ** TTD - THINK TIME DELAY.
- *
- * ENTRY (OT) = OUTPUT TERMINAL NUMBER.
- *
- * EXIT THINK TIME DELAY EXPIRED.
- * INPUT SPEED SET FOR UPLINE DATA.
- * TO *WTC*.
- *
- * USES DP - DP+4, TW - TW+4.
- *
- * MACROS RETURN, TTADD.
- *
- * NOTES *TTD* IS RESPONSIBLE FOR GENERATING AND
- * PROCESSING A THINK TIME DELAY BEFORE SENDING
- * UPLINE DATA.
- TTD BSS 0 ENTRY
- TTADD OT,0 READ TERMINAL TABLE ENTRY
- CRD DP
- LDD TT SET THINK TIME
- LPC 177
- STD CK
- IAN. 14 SELECT RANDOM INCREMENT
- TTDA LPN **
- RAD CK
- ZJN TTD2 IF NO DELAY
- AOD CK
- RETURN ONL
- LDD SC CHECK SECOND COUNT
- NJN TTD1 IF SECOND ELAPSED
- LJM ONL2 RETURN ON LINE STATUS
- TTD1 TTADD OT,0 READ TERMINAL TABLE ENTRY
- CRD DP
- SOD CK DECREMENT CLOCK
- ZJN TTD2 IF THINK TIME ELAPSED
- LJM ONL1 RETURN ON LINE STATUS
- TTD2 TTADD OT,1 READ TERMINAL TABLE ENTRY
- CRD TW
- LDD IS SET INPUT SPEED
- STD CK
- STD RT
- RETURN ONL,WTC
- WTC SPACE 4,25
- ** WTC - WRITE CHARACTER.
- *
- * ENTRY INPUT SPEED SET IN *TTER*.
- * (OT) = OUTPUT TERMINAL.
- * (MC) = MILLESECOND TIME CLOCK.
- *
- * EXIT (OC) = OUTPUT CHARACTER.
- * TO *STT1* IF CHARACTER TO OUTPUT.
- * TO *OTT1* TO PROCESS OPTIONAL THINK TIME.
- * TO *ONL1* IF OPTIONAL THINK TIME PROCESSED.
- *
- * USES T0 - T6, DP - DP+4, TW - TW+4.
- *
- * CALLS GNT, OTT, SAN, SDC.
- *
- * MACROS TTADD.
- *
- * NOTES *WTC* IS RESPONSIBLE FOR THE FOLLOWING -
- * 1. PROCESSING INPUT SPEED FOR UPLINE DATA.
- * 2. GETTING THE NEXT CHARACTER OF UPLINE DATA
- * FROM THE SESSION SCRIPT IN CM.
- * 3. PROCESS ANY SPECIAL CHARACTERS RELATED TO
- * TASKS, OPTIONAL THINK TIME, OR DYNAMIC
- * USER NUMBERS.
- WTC BSS 0 ENTRY
- TTADD OT,0 READ TERMINAL TABLE ENTRY
- CRD DP
- * CHECK IF INPUT THINK TIME EXPIRED.
- LDD CK CHECK CLOCK
- SBD MC
- MJN WTC1 IF CHARACTER DELAY ELAPSED
- STD CK
- LJM ONL1 RETURN ON LINE STATUS
- WTC1 ADD RT SET NEW RATE
- PJN WTC2
- LDD RT
- WTC2 STD CK
- * SAVE CURRENT SCRIPT ADDRESS FOR POSSIBLE LINE
- * REGULATION PROCESSING.
- LDD DP
- SHN 21-11
- PJN WTC3 IF NOT BEGINNING OF LINE
- TTADD OT,4 SAVE CURRENT ADDRESS OF SCRIPT
- CRD T1
- LDD DP
- STD T1
- LDD DP+1
- STD T1+1
- LDN 0
- STD T1+2
- TTADD OT,4
- CWD T1
- * GET NEXT CHARACTER FROM SCRIPT SESSION.
- WTC3 LDD DP SET BYTE NUMBER
- SHN 14
- LPN 7
- STD T5
- LDD DP
- LPN 77
- SHN 6
- ADD RA
- SHN 6
- ADD DP+1
- CRD T0
- LDD HN ADVANCE BYTE
- RAD DP
- SHN -6
- LPN 7
- LMN 5
- NJN WTC4 IF NOT END OF WORD
- AOD DP+1 ADVANCE WORD
- SHN -14
- ADD DP
- LPC 1077 RESET BYTE
- STD DP
- WTC4 TTADD OT,0
- CWD DP
- TTADD OT,1
- CRD TW
- * CHECK CHARACTERS FOR SPECIAL PROCESSING.
- LDI T5 CHECK FOR SPECIAL CHARACTER
- SHN -11
- ZJN WTC7 IF NOT SPECIAL CHARACTER
- LDN 0 CLEAR INDEX
- STD T6
- WTC5 LDM TSCH,T6 CHECK FOR SPECIAL CHARACTER
- ZJN WTC7 IF END OF TABLE
- LMI T5
- ZJN WTC6 IF SPECIAL CHARACTER
- LDN 2 ADVANCE TABLE INDEX
- RAD T6
- UJN WTC5 LOOP
- WTC6 LDM TSCH+1,T6 GET PROCESSOR ADDRESS
- STD T6
- LJM 0,T6 PROCESS SPECIAL CHARACTER
- WTC7 LDD TO
- ZJN WTC8 IF NOT IN OPTIONAL THINK TIME MODE
- LJM OTT1 PROCESS OPTIONAL THINK TIME
- WTC8 LDI T5 SET CHARACTER
- LMD TH STORE OUTPUT CHARACTER
- STD OC
- LDD DP CLEAR FIRST OUTPUT FLAG
- LPC 6777
- STD DP
- LDD TO CHECK OPTIONAL THINK TIME ENTRY
- ZJN WTC9 IF NOT OPTIONAL THINK TIME ENTRY
- LDC ONL1&STT1
- WTC9 LMC STT1
- STM WTCA
- LDD OT SET TERMINAL NUMBER
- STD T7
- LDD OC STORE DATA CHARACTER
- LPC 377
- RJM SDC
- LJM *
- * LJM STT1 (NO OPTIONAL THINK TIME)
- * LJM ONL1 (OPTIONAL THINK TIME PRESENT)
- WTCA EQU *-1
- TSCH SPACE 4,10
- ** TSCH - TABLE OF SPECIAL CHARACTERS.
- *
- *T 12/ CHAR
- *T, 12/ ADDR
- *
- * CHAR SPECIAL CHARACTER (ASCII)
- * ADDR ADDRESS OF PROCESSOR
- TSCH BSS 0
- CON .ELCR,EOL END OF LINE
- CON .ELXO,EOL END NOF LINE
- CON .ESC,EOL ESCAPE
- CON .ETX,EOL END OF TEXT
- CON .AUTO,WTC7 SOURCE LINE INPUT
- CON .BTSK,SNT BEGIN TASK
- CON .ETSK,PET END TASK
- CON .SACN,SAN DYNAMIC LOGIN
- CON .OPTT,OTT OPTIONAL THINK TIME
- CON .ESCR,EOS END OF SCRIPT
- CON .ESXO,EOS END OF SCRIPT
- CON 0,0 END OF TABLE
- EOL SPACE 4,20
- ** EOL - PROCESS END OF LINE.
- *
- * ENTRY (OT) = OUTPUT TERMINAL NUMBER.
- * (TO) = OPTIONAL THINK TIME.
- * (DP - DP+4) = TERMINAL STATUS.
- *
- * EXIT TERMINAL STATUS UPDATED IN *TTER*.
- * (OC) = OUTPUT CHARACTER.
- * TO *STT1* IF NO ERROR.
- * TO *ONL1* IF ERROR ENCOUNTERED.
- *
- * USES CK, DP, RT, TO, TT, CM - CM+4.
- *
- * CALLS ETM, SDC.
- *
- * MACROS TTADD.
- EOL BSS 0 ENTRY
- LDD TO
- NJN EOL1 IF OPTIONAL THINK TIME
- LJM EOL5 IF NORMAL PROCESSING
- EOL1 LMC 6000 CHECK FLAG FOR \\
- ZJN EOL3 IF RESET TO INITIAL THINK TIME
- LDD TO CHECK OPTIONAL THINK TIME
- LPC 1777
- STD T6
- ADC -200
- PJN EOL4 IF ENTRY TOO LARGE
- EOL2 LDD TT CURRENT RC,TT VALUES IN TERMINAL TABLE
- LPC 7600 KEEP RC VALUE
- ADD T6 INSERT NEW TT VALUE
- STD TT
- STD RT
- STD CK
- LDN 0
- STD TO CLEAR OPTIONAL THINK TIME
- TTADD OT,1
- CWD TW
- LJM ONL1 RETURN ON LINE
- EOL3 LDD TI SET INITIAL THINK TIME
- STD T6
- UJN EOL2 INSERT THINK TIME
- EOL4 LDC MSGE SET INTERNAL ERROR STATUS
- STM STMB
- LDC LDNI+1
- STM STMA
- LJM ONL1 RETURN ON LINE
- * PROCESS END OF LINE (CARRIAGE RETURN, ECS, ETX).
- EOL5 BSS 0 ENTRY
- LDC ONL2 SET ON LINE
- STM TOCA,OT
- LDD LI RESET LINE SPEED FOR OUTPUT
- STD RT
- LDI T5 STORE OUTPUT CHARACTER
- LPC 377
- LMC 5000
- STD OC
- TTADD OT,2
- CRD CM
- LDD CM+4
- ZJN EOL6 IF NOT SOURCE LINE INPUT
- LDC TTD SET THINK TIME DELAY PROCESSOR
- STM TOCA,OT
- LDD DP SET FIRST OUTPUT CHARACTER ENCOUNTERED
- LPC 6777
- LMC 1000
- STD DP
- EOL6 LDD CM+2 CLEAR USER NUMBER FLAG
- LPN 77
- STD CM+2
- LDN 0
- STD CK
- STD CM+4 CLEAR SOURCE LINE INPUT FLAG
- TTADD OT,2
- CWD CM
- LDD OT SET TERMINAL NUMBER
- STD T7
- LDD OC STORE DATA CHARACTER
- LPC 377
- RJM SDC
- RJM ETM ENTER TIME
- LJM STT1 RETURN TERMINAL STATUS
- EOS SPACE 4,20
- ** EOS - PROCESS END OF SCRIPT.
- *
- * ENTRY (DP - DP+4) = TERMINAL STATUS.
- * (RBUF - RBUF+4) = *RA+0* WORD.
- *
- * EXIT TERMINAL STATUS AND SCRIPT ADDRESS UPDATED.
- * TO *EOL5* IF LAST SESSION.
- * TO *EOL* IF NEW SESSION TO BE STIMULATED.
- *
- * USES T6, T7, CM - CM+4, DP - DP+4.
- EOS BSS 0 ENTRY
- LDD DP+2
- LPC 7600
- NJN EOS1 REPEAT COUNT PRESENT
- LDD DP SET END OF SESSION
- LPN 77
- LMC 6000
- STD DP
- LJM EOL5 PROCESS END OF LINE
- EOS1 LDM RBUF CHECK LOOP FLAG
- SHN 21-13
- PJN EOS2 IF NEXT RECORD TO BE USED
- LJM EOS5 IF REPEAT ON SESSION RECORD
- * LOOP ON FILE - SET ADDRESS OF NEXT SESSION RECORD.
- EOS2 LDN 0
- STD T7
- LDD DP
- SHN -6
- ZJN EOS3 IF THE 1ST BYTE OF A NEW WORD
- AOD T7
- EOS3 AOD T7
- LDD DP
- LPN 77
- SHN 14
- ADD DP+1
- ADD T7
- STD DP+1
- SHN -14
- STD DP
- SBM RBUF
- SHN 14
- ADD DP+1
- SBM RBUF+1
- ZJN EOS4 IF LAST SESSION - LOOP TO FIRST SESSION
- LJM EOS9 IF SESSION TO CONTINUE TO NEXT SCRIPT
- EOS4 LDM RBUF+3 SET FWA OF FIRST SCRIPT
- STD DP+1
- LDM RBUF+2
- LJM EOS8 DECREMENT REPEAT COUNT
- * LOOP ON SESSION - SET ADDRESS OF CURRENT SESSION RECORD.
- EOS5 LDD DP
- SHN -6
- ZJN EOS6 IF THE FIRST BYTE OF A NEW WORD
- LDN 1
- EOS6 STD T6 ADDRESS OF NEXT SESSION RECORD
- LDD DP
- LPN 77
- STD DP
- SHN 6
- ADD RA
- SHN 6
- ADD DP+1
- ADD T6 FORM POINTER TO START OF CURRENT RECORD
- CRD CM
- LDD DP+1 BACK UP POINTER TO START OF RECORD
- SBD CM+4
- ADD T6
- STD DP+1
- PJN EOS7 IF POSITIVE
- ADC 10000B IF NEGATIVE, ADD THE CARRY
- STD DP+1
- SOD DP DECREMENT DUE TO THE CARRY
- EOS7 LDD DP
- SBD CM+3
- EOS8 STD DP
- * DECREMENT REPEAT COUNT.
- EOS9 LDD DP+2 CHECK FOR UNLIMITED REPEAT COUNT
- LPC 7600 MASK REPEAT COUNT
- LMC 7600
- ZJN EOS10 IF RC=31 (MAXIMUM, DO NOT DECREMENT)
- LDC -200 DECREMENT REPEAT COUNT BY 1
- RAD DP+2
- EOS10 LJM EOL PROCESS END OF LINE
- PET SPACE 4,20
- ** PET - PROCESS END OF TASK.
- *
- * ENTRY (OT) = OUTPUT TERMINAL NUMBER.
- *
- * EXIT SCRIPT ADDRESS RESET IN *TTER*.
- * TASK COMPLETION COUNTER ADVANCED.
- *
- * USES CM - CM+4, DP - DP+4, T0 - T0+4.
- *
- * MACROS TTADD.
- *
- * NOTES IF NO TASK ENTRY ADDRESS IS PRESENT IN *TTER*, THEN
- * THE SPECIAL CHARACTER, *.ETSK*, WILL BE PROCESSED AS
- * A CHARACTER OF DATA.
- *
- * *END OF TASK* PROCESSING WILL RESET THE DYNAMIC
- * LOGIN FIELD IN *TTER*.
- PET BSS 0 ENTRY
- TTADD OT,2 READ THIRD WORD OF *TTER* ENTRY
- CRD CM
- LDD CM+2 READ SECOND WORD OF *TASK* ENTRY
- LPN 77
- STD CM+2
- ADD CM+3
- NJN PET1 IF TASK ENTRY ADDRESS PRESENT
- LJM WTC7 NO SPECIAL PROCESSING REQUIRED
- PET1 LDD CM+2
- SHN 6
- ADD RA
- SHN 6
- ADD CM+3
- ADN 1
- CRD T0
- AOD T3 INCREMENT TASK COMPLETED COUNTER
- LDD CM+2 WRITE SECOND WORD OF *TASK* ENTRY
- SHN 6
- ADD RA
- SHN 6
- ADD CM+3
- ADN 1
- CWD T0
- TTADD OT,0 READ TERMINAL STATUS
- CRD DP
- LDD DP SET OLD SCRIPT ADDRESS
- LMD CM
- LPC 7000
- LMD CM
- STD DP
- LDD CM+1
- STD DP+1
- TTADD OT,0 SET SCRIPT ADDRESS
- CWD DP REPLACE *TTER* WITH OLD SCRIPT ADDR
- LDD CM+2 CLEAR TASK ENTRY ADDRESS
- SCN 77
- STD CM+2
- LDN 0
- STD CM+3
- TTADD OT,2
- CWD CM
- LJM WTC3 PROCESS NEXT CHARACTER
- SNT SPACE 4,20
- ** SNT - SET NEXT TASK.
- *
- * ENTRY (OT) = OUTPUT TERMINAL NUMBER.
- *
- * EXIT NEXT BEST TASK SET IN *TTER*.
- * TO *WTC3*.
- *
- * USES T6, T7, CM - CM+4, DP - DP+4.
- *
- * MACROS TTADD.
- SNT BSS 0 ENTRY
- TTADD OT,0 READ TERMINAL STATUS
- CRD CM
- TTADD OT,2 READ TASK ADDRESS
- CRD DP
- LDD CM SAVE CURRENT SCRIPT ADDRESS
- LPC 777
- STD DP
- LDD CM+1
- STD DP+1
- LDD RA GET NEXT BEST TASK
- SHN 6
- ADN RANT
- CRD CM
- LDD CM+3
- SHN 14
- ADD CM+4
- NJN GNT1 IF TASK SET
- LDD RA ADVANCE NO TASK COUNTER
- SHN 6
- ADN RASC
- CRD CM
- AOD CM+4
- LDD RA GET DEFAULT TASK ADDRESS
- SHN 6
- ADN RASC
- CWD CM
- ADN RATK SET DEFAULT TASK
- CRD CM
- STM GNTA SET DEFAULT TASK FLAG
- LDD CM+3
- SHN 14
- ADD CM+4 LOAD ADDRESS OF TASK TABLE
- NJN GNT1 IF TASK TABLE EXISTS
- LJM WTC7 CONTINUE CHARACTER PROCESSING
- GNT1 LDD CM+4 SAVE FWA OF TASK
- STD T7
- LDD CM+3 GET FWA OF TASK TEXT
- LPN 77
- STD T6
- SHN 6
- ADD RA
- SHN 6
- ADD CM+4
- CRD CM
- ADN 1
- CRD T0 READ SECOND WORD OF TASK ENTRY
- LDD DP+2
- LPC 7700
- ADD T6
- STD DP+2
- LDD T7
- STD DP+3
- TTADD OT,2 SAVE OLD SCRIPT ADDRESS
- CWD DP
- TTADD OT,0 READ TERMINAL STATUS
- CRD DP
- LDD DP SET TASK ADDRESS
- LPC 7000
- ADD CM+3
- STD DP
- LDD CM+4
- STD DP+1
- TTADD OT,0
- CWD DP
- LDC **
- GNTA EQU *-1 (DEFAULT TASK FLAG)
- NJN GNT2 IF DEFAULT TASK SELECTED
- LDN ZERL CLEAR TASK ADDRESS
- CRD CM
- LDD RA
- SHN 6
- ADN RANT
- CWD CM
- GNT2 AOD T4 INCREMENT *TASK CALLED*
- LDD T6 UPDATE SECOND WORD OF *TASK* ENTRY
- SHN 6
- ADD RA
- SHN 6
- ADD T7
- ADN 1
- CWD T0
- LDN 0 CLEAR DEFAULT TASK FLAG
- STM GNTA
- LJM WTC3 PROCESS NEXT CHARACTER
- OTT SPACE 4,10
- ** OTT - OPTIONAL THINK TIME.
- *
- * ENTRY ((T5)) = OUTPUT CHARACTER.
- * (TO) = OPTIONAL THINK TIME.
- *
- * EXIT (TO) = OPTIONAL THINK TIME.
- * TO *WTC3*.
- *
- * USES TO, T6.
- *
- * MACROS TTADD.
- *
- * NOTE OPTIONAL THINK TIME IS SET INTO *TTER* WHEN
- * END OF LINE IS PROCESSED.
- OTT BSS 0 ENTRY
- LDD TO
- ZJN OTT4 IF NOT RESET REQUEST
- LDC 6000 SET FLAG TO RESET INITIAL THINK TIME
- STD TO
- UJN OTT5 UPDATE *TTER*
- OTT1 BSS 0 ENTRY
- LDN 0
- STD T6
- OTT2 LDM TANV,T6 GET ASCII NUMBER FROM TABLE
- ZJN OTT5 IF END OF TABLE - IGNORE CHARACTER
- LMI T5
- ZJN OTT3 IF MATCH
- AOD T6
- UJN OTT2 UPDATE *TTER*
- OTT3 LDD TO SET OPTIONAL THINK TIME
- LPC 777
- SHN 3
- LMD T6
- OTT4 LMC 4000B SET FLAG (IN CASE OF LEADING 0 CHARS)
- STD TO
- UJN OTT5
- OTT5 TTADD OT,1
- CWD TW REPLACE *TTER-1* ENTRY
- LJM WTC3 PROCESS NEXT CHARACTER
- TANV SPACE 4,10
- ** TANV - TABLE OF ASCII NUMERIC VALUES.
- TANV BSS 0
- LOC 0
- CON .ZER 0
- CON .ONE 1
- CON .TWO 2
- CON .THR 3
- CON .FOR 4
- CON .FIV 5
- CON .SIX 6
- CON .SEV 7
- CON 0 END OF TABLE
- LOC *O
- SAN SPACE 4,10
- ** SAN - SET ACCOUNT NUMBER.
- *
- * ENTRY ((T5)) = OUTPUT CHARACTER.
- * (OT) = OUTPUT TERMINAL.
- *
- * EXIT ((T5)) = NEXT OUTPUT CHARACTER.
- * ACCOUNT FLAG IN *TTER* UPDATED.
- * TO *WTC3*.
- *
- * USES T5, T6, CM - CM+4.
- *
- * MACROS TTADD.
- SAN BSS 0 ENTRY
- LDM SDWA SET TERMINAL NUMBER
- ADD OT
- STD T6
- TTADD OT,2 READ TERMINAL TABLE ENTRY
- CRD CM
- LDD CM+2 GET ACCOUNT NUMBER POINTER
- SHN 14
- LPN 7
- NJN SAN1 IF FIRST CHARACTER PROCESSED
- LDD T6 SET FIRST CHARACTER OF TERMINAL NUMBER
- SHN 14
- UJN SAN3 REPLACE SPECIAL CHARACTER
- SAN1 SBN 1
- NJN SAN2 IF SECOND CHARACTER PROCESSED
- LDD T6 SET SECOND CHARACTER OF TERMINAL NUMBER
- SHN 17
- UJN SAN3 REPLACE SPECIAL CHARACTER
- SAN2 SBN 1
- NJN SAN4 IF THIRD CHARACTER PROCESSED - FLAG ERROR
- LDD T6 SET THIRD CHARACTER OF TERMINAL NUMBER
- SAN3 LPC 7 ISOLATE LOWER 3-BITS
- STD T6
- LDM TANV,T6 CONVERT NUMBER TO ASCII CHARACTER
- STI T5 SAVE OUTPUT CHARACTER
- LDD CM+2
- ADC 100 INCREMENT ACCOUNT NUMBER POINTER BY 1
- STD CM+2
- TTADD OT,2 WRITE TERMINAL TABLE ENTRY
- CWD CM
- LJM WTC7 PROCESS NEXT CHARACTER
- SAN4 LDC MSGF SET INTERNAL ERROR STATUS
- STM STM12
- LDC LDNI+1
- STM STMA
- LJM WTC3 PROCESS NEXT CHARACTER
- TITLE DOWNLINE DATA PROCESSING ROUTINES.
- RTC SPACE 4,25
- ** RTC - READ TERMINAL CHARACTER.
- *
- * ENTRY (IC) = INPUT CHARACTER.
- *
- * EXIT TO *HNU* IF (IC) = 6000.
- * TO *INI* IF (IC) = 6400.
- *
- * USES T7, DP - DP+4.
- *
- * CALLS ETM, SDC.
- RTC SUBR ENTRY/EXIT
- LDD IC
- LPC 6777
- LMC 1000
- LMC 7000
- ZJN RTCX IF PHONE LINE ENABLE
- LMC .IISE&7000
- NJN RTC1 IF NOT HANG UP
- LJM HNU HANG UP
- RTC1 LMC .IISI&.IISE
- NJN RTC2 IF NOT BEGIN INPUT
- LJM INI INITIATE INPUT
- RTC2 LDM TOCA,IT CHECK ROUTINE
- LMC LGI5
- ZJN RTCX RETURN IF LOGIN IN PROCESS
- LDC REJ SET REJECT
- RTC3 STM TOCA,IT
- RTC4 LDD IT SET TERMINAL NUMBER
- STD T7
- TTADD IT,0
- CRD DP
- LDD DP
- SHN 21-11
- MJN RTC5 IF NOT POSSIBLY THE SECOND CHARACTER
- LDD IC CHARACTER
- LPC 4376
- LMC 4024
- ZJN RTC6 IF ECHO *LF* - DO NOT PUT OUT TIME
- LMC 4032&4024
- ZJN RTC6 IF *CR* SENT
- LMC 4000&4032
- ZJN RTC5 IF NULL CHARACTER SENT FOR CARRIAGE DELAY
- LMC 4376&4000
- ZJN RTC5 IF DELETE CHARACTER SENT IN TAPE MODE
- LDC 1000
- RAD DP
- TTADD IT,0
- CWD DP SET FIRST CHARACTER FLAG
- RJM ETM ENTER TIME
- RTC5 LDD IC STORE DATA CHARACTER
- LPC 377
- RJM SDC
- RTC6 LJM RTCX RETURN
- HNU SPACE 4,25
- ** HNU - HANG UP.
- *
- * ENTRY (IT) = INPUT TERMINAL.
- * (NT) = NUMBER OF TERMINALS.
- * (AT) = ACTIVE TERMINAL COUNT.
- *
- * EXIT IF REPEAT COUNT NOT PRESENT, TERMINAL SET OFF LINE
- * (AT) = ACTIVE TERMINAL COUNT.
- * (LC) = LOGIN CONTROL.
- *
- * USES AT, DP - DP+4, TW - TW+4.
- *
- * MACROS TTADD.
- *
- * NOTES IF A REPEAT COUNT IS PRESENT, *HNU* WILL
- * INITIALIZE THE *TTER* ENTRY FOR THE NEXT SESSION
- * TO BE PROCESSED. THIS INCLUDES SETTING THE THINK
- * TIME, AND LOGIN DELAY. *PSO* HAS ALREADY SET
- * THE SESSION ADDRESS IN *TTER*.
- * IF NO REPEAT COUNT IS PRESENT, THE TERMINAL IS
- * SET OFF LINE.
- HNU BSS 0 ENTRY
- TTADD IT,0 READ TERMINAL TABLE ENTRY
- CRD DP
- LDD DP SET OFF LINE
- LPC 3777
- LMC 4000
- STD DP
- TTADD IT,1
- CRD TW
- LDD TT REPLACE INITIAL THINK TIME
- LPC 7600
- ADD TI
- STD TT
- TTADD IT,0
- CWD DP
- LDD DP CHECK SESSION STATUS
- SHN 21-12
- MJN HNU1 IF END OF SESSIONS
- LDD LD
- STD CK SET *LOGOUT DELAY* AS *LOGIN DELAY*
- TTADD IT,0
- CWD DP REPLACE TERMINAL TABLE ENTRY
- TTADD IT,2 CLEAR LINE FEED
- CRD CM
- LDD CM
- LPC 3777
- STD CM
- TTADD IT,2
- CWD CM
- LDC LGI SET LOGIN
- STM TOCA,IT
- LJM RTCX RETURN
- HNU1 SOD AT DECREMENT ACTIVE TERMINAL COUNT
- LDC OFL2 SET OFF LINE
- LJM RTC3 RETURN
- INI SPACE 4,25
- ** INI - INITIATE INPUT.
- *
- * ENTRY UPLINE DATA TO BE INITIATED.
- * (IT) = INPUT TERMINAL.
- *
- * EXIT OUTPUT PROCESSOR SET IN *TOCA*.
- * INPUT TYPING SPEED SET IF LOGIN IN PROCESS.
- *
- * USES DP - DP+4.
- *
- * CALLS HNU.
- *
- * MACROS TTADD.
- INI BSS 0 ENTRY
- TTADD IT,0
- CRD DP
- LDD DP
- SHN -12
- LMN 3
- ZJP INI2 IF END OF SCRIPT HAS BEEN REACHED
- LDM TOCA,IT
- LMC LGI5
- NJN INI1 IF LOGIN NOT IN PROCESS
- TTADD IT,1
- CRD TW
- LDD IS SET INPUT TYPING SPEED FOR DATA RATE
- STD RT
- STD CK
- TTADD IT,0
- CWD DP
- LDC WTC SET WRITE CHARACTER
- STM TOCA,IT
- LJM RTCX
- INI1 LDC TTD SET THINK TIME
- STM TOCA,IT
- LJM RTCX RETURN
- INI2 LDC MSGG SET INTERNAL ERROR STATUS
- STM STMB
- LDC LDNI+1
- STM STMA
- LDD IT SET TERMINAL NUMBER IN MESSAGE
- SHN -6
- RJM C2D CONVERT DIGITS
- STM MSGH
- LDD IT
- RJM C2D CONVERT DIGITS
- STM MSGH+1
- LJM HNU HANG UP PHONE
- TITLE COMMON SUBROUTINES.
- ETM SPACE 4,10
- ** ETM - ENTER TIME.
- *
- * ENTRY (LS) = LAST SECOND CLOCK.
- * (LM) = LAST MILLESECOND CLOCK.
- *
- * EXIT TIME STAMP SET ON DATA.
- *
- * CALLS SDC.
- ETM SUBR ENTRY/EXIT
- LDD LS ENTER LAST SECOND CLOCK
- LPC 1777
- LMC 6000 SET TIME FLAG FOR *DEMUX*
- RJM SDC STORE TIME BYTE
- LDD LM ENTER MILLISECONDS
- LPC 1777
- LMC 4000 SET TIME FLAG
- RJM SDC STORE MS TIME BYTE
- UJN ETMX RETURN
- SAA SPACE 4,10
- ** SAA - SET ABSOLUTE ADDRESSES.
- *
- * EXIT ABSOLUTE ADDRESSES SET IN *SDW*.
- *
- * USES T1 - T2, CM - CM+4.
- SAA SUBR ENTRY/EXIT
- LDC **
- SAAA EQU *-1 (FET ADDRESS)
- SHN 6
- LMC ** (FET ADDRESS)
- SAAB EQU *-1
- ZJN SAAX IF NO OUTPUT RECOVERED
- ADD RA SET IN POINTER ADDRESS
- SHN 6
- ADN 2
- STD T2
- STM .INA+1
- SHN -14
- STD T1
- ADC LDCI
- STM .INA
- LDD T1
- SHN 14
- LMD T2
- CRD IN READ IN
- * PSN (AFTER FIRST ENTRY)
- SAAC EQU *-1
- SBN 1
- CRD CM READ FIRST
- LDD CM+3
- LPN 37
- SHN 14
- ADD CM+4
- SBN 1 ADJUST FOR IN ADVANCEMENT
- STM .FT1+1
- SHN -14
- ADC LDCI
- STM .FT1
- LDD T1 READ LIMIT
- SHN 14
- LMD T2
- ADN 2
- CRD CM
- LDD CM+3
- LPN 37
- SHN 6
- ADD RA
- SHN 6
- ADD CM+4
- SBN 1
- STM .LM1+1
- SHN -14
- ADC LMCI
- STM .LM1
- LDD RA SET RA
- SHN 6
- STM .RA1+1
- SHN -14
- ADC ADCI
- STM .RA1
- LDC PSNI DISABLE READ OF IN
- STM SAAC
- LJM SAAX RETURN
- SDC SPACE 4,20
- ** SDC - STORE DATA CHARACTER.
- *
- * ENTRY (A) = CHARACTER.
- * (T7) = TERMINAL NUMBER.
- *
- * EXIT DATA WORD IN *TTER* UPDATED WITH CHARACTER.
- *
- * USES T1, CM - CM+4.
- *
- * CALLS SDW.
- *
- * NOTES *SDC* USES THE DATA WORD (FOURTH WORD OF
- * THE *TTER* ENTRY) AS A TEMPORARY BUFFER FOR
- * OUTPUT. ONCE THIS WORD IS FULL, *SDC* IS CALLED
- * TO ENTER IT INTO THE OUTPUT BUFFER.
- SDC SUBR ENTRY/EXIT
- STD T1 SAVE CHARACTER
- LDN 1 (NO OUTPUT RECOVERY)
- * LDN 0 (OUTPUT RECOVERY)
- SDCA EQU *-1
- NJN SDCX IF NO OUTPUT RECOVERY
- TTADD T7,3 READ TERMINAL TABLE ENTRY
- CRD CM
- AOD CM
- LMN 4
- ZJN SDC1 IF END OF WORD PACK
- LDD T1
- STM CM,CM
- TTADD T7,3 WRITE TERMINAL TABLE ENTRY
- CWD CM
- LDD T1
- NJN SDC2 IF NOT END OF SESSION
- SDC1 RJM SDW
- SDC2 UJN SDCX RETURN
- SDW SPACE 4,20
- ** SDW - STORE DATA WORD.
- *
- * ENTRY (T7) = TERMINAL NUMBER.
- * (T1) = CHARACTER.
- * (IN - IN+4) = ADDRESS TO IN POINTER.
- *
- * EXIT DATA WORD WRITTEN TO FET BUFFER.
- * IN POINTER UPDATED IN FET.
- *
- * USES IN+3, IN+4, CM - CM+4.
- *
- * CALLS DFM.
- SDW SUBR ENTRY/EXIT
- LDD T7 ENTER TERMINAL NUMBER
- ADC **
- SDWA EQU *-1 (TERMINAL BIAS)
- STD CM
- LDD T1 ENTER CHARACTER
- STD CM+4
- LDD IN+3 STORE DATA WORD
- SHN 14
- ADD IN+4
- .RA1 ADC **
- CWD CM
- .LM1 LMC ** CHECK IN
- NJN SDW1 IF IN .NE LIMIT-1
- .FT1 LDC ** RESET IN = FIRST
- STD IN+4
- SHN -14
- STD IN+3
- SDW1 AOD IN+4 ADVANCE IN
- SHN -14
- ZJN SDW2
- AOD IN+3
- SDW2 BSS 0
- .INA LDC ** UPDATE IN
- CWD IN
- ADN 1
- CRD CM READ OUT
- LDD IN+3
- SBD CM+3 IN-OUT
- SHN 14
- ADD IN+4
- SBD CM+4
- NJN SDW3 IF IN IS NOT EQUAL TO OUT
- LDC MSGC OVERFLOW MESSAGE
- RJM DFM
- SDW3 LDN ZERL
- CRD CM
- TTADD T7,3 CLEAR DATA WORD ENTRY
- CWD CM CLEAR ACCUMULATOR WORD
- LJM SDWX RETURN
- TITLE INITIALIZATION.
- PRS SPACE 4,20
- ** PRS - PRESET PROGRAM.
- PRS3 LDN 0 CLEAR TERMINAL NUMBER
- STD T1
- LDD NT SET ACTIVE TERMINAL COUNT
- STD AT
- PRS4 LDC LGI ENTRY ADDRESS = LOGIN
- STM TOCA,T1
- TTADD T1,0
- CRD CM
- LDD CM CHECK DISABLED STATUS
- SHN 21-12
- PJN PRS5 IF TERMINAL ACTIVE
- SOD AT DECREMENT ACTIVE TERMINAL COUNT
- LDC OFL2 SET ENTRY ADDRESS OFF LINE
- STM TOCA,T1
- PRS5 AOD T1 ADVANCE TERMINAL NUMBER
- LMD NT
- NJN PRS4 IF NOT END OF TABLE
- LDC RTCL READ REAL TIME CLOCK
- CRD CM
- LDD CM+4 SET LAST MILLISECOND COUNT
- STM STMD SET PREVIOUS TIME
- LDD RA READ *RA*
- SHN 6
- CRM RBUF,ON
- * UJN PRSX RETURN
- PRS SUBR ENTRY/EXIT
- PAUSE NE
- LDK NCPL CHECK *STIMULA* CONTROL POINT
- CRD CM
- LDD CM+1
- SHN 7
- LMD CP
- ZJN PRS0 IF *STIMULA* AT LAST CONTROL POINT
- LDC =C+ *STM* MUST BE AT LAST CP.+
- LJM ABT ABORT
- PRS0 RJM CTS CHECK *IAF* STATUS
- LDD IR+3
- LPN 37
- STD IR+3
- ADD IR+4
- NJN PRS1 IF STIMULATION TO BE INITIATIED
- RJM ICT INITIALIZE CONTROL TABLE
- LJM DPP DROP PPU
- PRS1 RJM ISC INITIALIZE STIMULATOR CHANNELS
- LDD RA READ CONTROL WORD
- SHN 6
- ADN RACW
- CRD CM
- LDD CM SET NUMBER OF *TTER* ENTRIES
- STM SADA
- LDD CM+1 SET ACTIVATE COUNT
- STD LC
- LDD CM+2 SET THINK TIME INCREMENT MASK
- LPN 77
- RAM TTDA
- LDD CM+4 SAVE REQUIRED FL
- STM SCPA
- LDD IR+3 READ CONTROL TABLE ENTRY
- LPN 37
- SHN 6
- ADD RA
- SHN 6
- ADD IR+4
- CRD TW
- RJM SCP START CENTRAL PROGRAM
- RJM IOR INITIALIZE OUTPUT RECOVERY
- LDD TW+3 SET BASE TERMINAL TABLE ADDRESS
- LPN 37
- STD T3
- LDD TW+4
- STD T4
- RJM SAD SET TERMINAL TABLE ADDRESSES
- LDN 0 CLEAR OUTPUT CHARACTER
- STD OC
- STD IC CLEAR INPUT CHARACTER
- STD MT MAXIMUM CYCLE TIME
- STD LM LAST MILLISECOND CLOCK
- STD LS LAST SECOND CLOCK
- LDD NT INPUT TERMINAL = N-1
- SBN 1
- STD IT
- ZJN PRS2 IF ONLY ONE TERMINAL
- LDN 1
- PRS2 STD OT SET OUTPUT TERMINAL NUMBER
- LJM PRS3 INITIALIZE *TOCA*
- TOCA SPACE 4,10
- ** TOCA - TABLE OF OUTPUT CONTROL ADDRESSES.
- *
- * ENTRY 1 WORD.
- *
- * ADDRESS OF CURRENT OUTPUT ROUTINE.
- USE //
- RBUF EQU 6000 *RA* BUFFER
- TOCA EQU RBUF+5 OUTPUT PROCESSOR BUFFER
- IBUF EQU TOCA+100 INPUT BUFFER
- OBUF EQU IBUF+100 OUTPUT BUFFER
- TBUF EQU OBUF+100 TRACE BUFFER
- ERRNG 7776-TBUF-100*5 BUFFER OVERFLOW
- ERRNG TOCA-PRSX-2 OVERFLOW INTO BUFFER
- ABT SPACE 4,10
- ** ABT - ABORT JOB.
- *
- * ENTRY (A) = ERROR MESSAGE.
- ABT RJM DFM ISSUE DAYFILE MESSAGE
- MONITOR ABTM ABORT JOB
- LJM PPR EXIT TO PP RESIDENT
- CTS SPACE 4,15
- ** CTS - CHECK *IAF* STATUS.
- *
- * ENTRY NONE.
- *
- * EXIT (NT) = NUMBER OF TERMINALS.
- * (DP) = STIMULATOR CHANNEL.
- * TO *ABT* IF *IAF* NOT ACTIVE.
- *
- * USES T1, T2, CM - CM+4.
- *
- * MACROS SFA.
- CTS5 LDC =C* IAF NOT ACTIVE.*
- LJM ABT
- CTS SUBR ENTRY/EXIT
- LDN PPUL SET PPU COUNT
- CRD CM
- LDD CM+2
- STD T1
- LMN 10D
- ZJN CTS1 IF ONLY 10 PPUS
- LDN 20D
- STD T1 SET 20 PPUS
- CTS1 LDN PPCP SET START OF PPU COMMUNICATIONS AREA
- CRD CM
- LDD CM+4
- STD T2
- CTS2 SOD T1 DECREMENT PPU COUNT
- ZJN CTS5 IF END OF PPU
- LDN 10 ADVANCE INPUT REGISTER ADDRESS
- RAD T2
- CRD CM READ INPUT REGISTER
- LDD CM+1 CHECK NAME
- SCN 77
- SHN 6
- LMD CM
- LMC 3RN1T
- NJN CTS2 IF NOT *1TN*
- CTS3 SFA EST,CM+2 READ STIMULATOR EST ENTRY
- ADK EQDE
- CRD CM
- LDD CM+1 SET CHANNEL NUMBER
- LPN 37
- STD DP
- LDD CM+4 SET PORT COUNT
- LPC 777
- NJN CTS4 IF PORTS SPECIFIED
- LDD TH SET DEFAULT PORT COUNT
- CTS4 STD NT
- LJM CTSX RETURN
- ICT SPACE 4,20
- ** ICT - INTIALIZE CONTROL TABLE.
- *
- * ENTRY (NT) = NUMBER OF TERMINALS.
- *
- * EXIT CONTROL TABLE BUILT STARTING AT (RA+5).
- *
- * USES CM - CM+4, T1 - T5.
- ICT SUBR ENTRY/EXIT
- LDN ZERL RETURN NUMBER OF TERMINALS
- CRD CM
- CRD T1
- LDD NT
- STD CM+1
- LDD RA
- SHN 6
- ADN TCWD
- CWD CM
- ADN 1 SET END OF TABLE
- CWD T1
- LDN 1 SET NUMBER OF *TCWD* ENTRIES
- STD T1+4
- LDD RA
- SHN 6
- ADN RAPP
- CWD T1
- UJN ICTX RETURN
- IOR SPACE 4,10
- ** IOR - INITIALIZE OUTPUT RECOVERY.
- *
- * ENTRY (TW - TW+4) = CONTROL TABLE ENTRY.
- *
- * EXIT FET ADDRESS SET IN *SAA*
- *
- * USES T1, T2.
- IOR SUBR ENTRY/EXIT
- LDD TW+3 SET ADDRESS OF IN
- SCN 77
- STM SAAA
- SHN 6
- LMD TW+2
- STM SAAB
- ZJN IORX IF NO OUTPUT RECOVERED
- LDC IORA SET MODIFICATION TABLE
- STD T1
- IOR1 LDI T1 SET ADDRESS
- ZJN IOR2 IF END OF TABLE
- STD T2
- AOD T1
- LDI T1
- STI T2
- AOD T1
- UJN IOR1 LOOP TO END OF TABLE
- IOR2 LDD TW SET TERMINAL BIAS
- LPC 3777
- STM SDWA
- LJM IORX RETURN
- IORA BSS 0
- CON SDCA
- LDN 0
- CON ESDA
- LDN 0
- CON 0 END OF TABLE
- ISC SPACE 4,20
- ** ISC - INITIALIZE STIMULATOR CHANNELS.
- *
- * ENTRY (DP) = CHANNEL NUMBER.
- *
- * EXIT CHANNEL INSTRUCTIONS MODIFIED.
- *
- * USES T1, T2.
- *
- * MACROS CHTL.
- ISC SUBR ENTRY/EXIT
- LDC TCHS SET FWA OF CHANNEL TABLE
- STD T1
- ISC1 LDI T1
- STD T2
- LDD DP
- CHTL *
- SBN CH
- ZJN ISCX RETURN IF ALL INSTRUCTIONS MODIFIED
- RAI T2 MODIFY INSTRUCTION
- AOD T1
- UJN ISC1 LOOP FOR ALL INSTRUCTIONS
- TCHS CHTB
- RQS SPACE 4,20
- ** RQS - REQUEST STORAGE.
- *
- * ENTRY (A) = STORAGE REQUEST.
- *
- * EXIT STIMULATOR FIELD LENGTH ADJUSTED.
- * TO *ABT* IF ERROR.
- *
- * USES T1, T2, CM - CM+4.
- *
- * MACROS MONITOR, PAUSE.
- RQS3 LDC =C*MEMORY REQUEST ERROR.*
- LJM ABT
- RQS SUBR ENTRY/EXIT
- STD T1 SAVE REQUEST
- LDD IR+3 CHECK OUTPUT RECOVERY
- SCN 77
- ADD IR+2
- ZJN RQS1 IF NOT SET
- LDD NT
- RQS1 ADD NT COMPUTE LAST WORD TO BE WRITTEN
- ADD NT
- ADD NT
- STD T2
- LDD IR+3
- LPN 37
- SHN 14
- ADD IR+4
- ADD T2
- ADN 77
- SHN -6
- SBD T1
- ZJN RQS2 IF ENOUGH ROOM
- PJN RQS3 IF NOT ENOUGH ROOM FOR WRITES
- RQS2 LDD T1 REQUEST STORAGE
- STD CM+1
- LDN 0 SET CM REQUEST
- STD CM+2
- MONITOR RSTM
- LDD FL CHECK FIELD LENGTH
- LMD T1
- NJN RQS2 IF REQUEST REJECTED
- LJM RQSX RETURN
- SCP SPACE 4,20
- ** SCP - START CENTRAL PROGRAM.
- *
- * ENTRY (SCPA) = FL REQUIRED FOR STIMULATION.
- * (TW - TW+4) = CONTROL WORD FROM *TCWD*.
- *
- * EXIT FL SET.
- * CPU PROGRAM STARTED IF OUTPUT TO BE RECOVERED.
- * REMAINING COPIES OF STIMULATION DRIVER CALLED.
- * TO *DPP* IF ERROR FLAG SET AT CONTROL POINT.
- *
- * USES CM - CM+4, T1 - T1+4.
- *
- * CALLS DFM, RQS.
- *
- * MACROS CHTE, MONITOR, PAUSE.
- *
- * NOTES *SCP* IS RESPONSIBLE FOR STARTING THE CPU
- * IF OUTPUT IS TO BE RECOVERED.
- SCP SUBR ENTRY/EXIT
- LDD IR+3
- SHN 14
- LMD IR+4
- LMN TCWD
- NJN SCPX IF NOT FIRST COPY OF *1TS*
- LDN 0
- STD CM+1
- MONITOR DCPM CLEAR CPU STATUS
- LDC * (REQUIRED FL)
- SCPA EQU *-1
- RJM RQS REQUEST STORAGE
- LDC =C* STIMULATION INITIATED.*
- RJM DFM
- * START CPU IF OUTPUT IS TO BE RECOVERED.
- LDD TW+3
- SCN 77
- ADD TW+2
- ZJN SCP1 IF CENTRAL PROGRAM NOT NEEDED
- LDD CP READ EXCHANGE PACKAGE
- CRD CM
- LDC STMO SET (P)
- STD CM+1
- SHN -14
- STD CM
- LDD CP
- CWD CM
- MONITOR RCPM REQUEST CPU
- SCP1 LJM SCPX RETURN
- SAD SPACE 4,10
- ** SAD - SET ADDRESSES.
- *
- * ENTRY (T3 - T4) = BASE ADDRESS FOR *TTER*.
- *
- * EXIT TABLE ADDRESS SET.
- *
- * USES T1, T2, T3, T4, T5.
- SAD SUBR ENTRY/EXIT
- LDC SADB
- STD T1
- SAD1 LDI T1 SET NEXT TABLE ADDRESS
- ZJN SADX IF NO MORE TABLES
- STD T2
- SAD2 LDI T2
- NJN SAD3 IF NOT END OF TABLE
- LDC * (NUMBER OF *TTER* ENTRIES)
- SADA EQU *-1
- RAD T4
- SHN -14
- RAD T3
- AOD T1
- UJN SAD1 PROCESS NEXT TABLE
- SAD3 STD T5
- LDD T3 SET TABLE ENTRY ADDRESS
- RAI T5
- LDD T4
- RAM 1,T5
- AOD T2
- UJN SAD2 LOOP
- SADB BSS 0
- CON TTE0 *TTER* WORD 0 ADDRESS
- CON TTE1 *TTER* WORD 1 ADDRESSES
- CON TTE2 *TTER* WORD 2 ADDRESSES
- CON TTE3 *TTER* WORD 3 ADDRESSES
- CON TTE4 *TTER* WORD 4 ADDRESSES
- CON 0 END OF TABLE
- SPACE 4,10
- ** INITIALIZATION TABLES.
- TTE0 BSS 0
- TTE0 HERE
- CON 0
- TTE1 BSS 0
- TTE1 HERE
- CON 0
- TTE2 BSS 0
- TTE2 HERE
- CON 0
- TTE3 BSS 0
- TTE3 HERE
- CON 0
- TTE4 BSS 0
- TTE4 HERE
- CON 0
- SPACE 4
- END
cdc/nos2.source/opl871/1ts.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator