CONNC
* /--- FILE TYPE = E
* /--- BLOCK CONNECT 00 000 84/04/12 16.52
IDENT CONNC
LCC OVERLAY(1,1)
TITLE CONDENSOR OVERLAY FOR -CONNECT- COMMAND
CST
CONNC$ OVFILE
EJECT
* /--- BLOCK CONNECT 00 000 84/04/12 16.53
* CONNECT CONTINUE
*
* DISCARDS ANY PENDING NOS OUTPUT AND
* CONTINUES EXECUTION
* CONNECT HELLO;APPLICATION;FAMILY;USER;PASSWORD
*
* SIMILAR TO LOGIN, BUT PERMITS A SYSTEM
* LESSON TO SPECIFY FAMILY AND USER NAMES
* OTHER THAN THOSE STORED IN PLATO RECORD
*
* APPLICATION = 'N'O'S APPLICATION TO CONNECT TO
* FAMILY = NOS FAMILY NAME
* USER = NOS USER NAME
* PASSWORD = INTERACTIVE PASSWORD
* CONNECT LOGIN;APPLICATION;PASSWORD
*
* INITIATES CONNECTION BETWEEN A PLATO USER
* AND A NOS APPLICATION
*
* APPLICATION = NOS APPLICATION TO CONNECT TO
* PASSWORD = INTERACTIVE PASSWORD FOR USER
* NUMBER IN PLATO RECORD
* CONNECT LOGOUT
*
* TERMINATES CONNECTION BETWEEN PLATO USER
* AND NOS APPLICATION.
* CONNECT NOLOG
*
* SUSPENDS CONNECTION BETWEEN PLATO USER AND
* NOS APPLICATION. APPLICATION MAY CONTINUE
* TO EXECUTE. CONNECTION MAY BE RESTORED VIA
* -CONNECT RECOVER-.
* CONNECT RECEIVE;BUFFER;LENGTH;RETURNEDLENGTH
*
* RECEIVES OUTPUT FROM NOS APPLICATION. THE
* OUTPUT IS PACKED 7.5 ASCII CHARS / 60 BIT
* CM WORD.
*
* BUFFER = START OF AREA IN STUDENT, LOCAL
* ROUTER, OR CM VARIABLES IN
* WHICH OUTPUT WILL BE RECEIVED
* LENGTH = MAXIMUM CHARS TO RECEIVE
* RETURNEDLENGTH = CHARS ACTUALLY RECEIVED
* /--- BLOCK CONNECT 00 000 84/04/12 16.56
* CONNECT RECOVER
*
* RESTORES CONNECTION THAT WAS SUSPENDED VIA
* -CONNECT NOLOG-.
* CONNECT SELECT,CONNECTION
*
* PERMITS A SYSTEM LESSON TO SELECT WHICH OF
* THREE CIDS IN THE STUDENT BANK WILL BE USED
* FOR SUCCESSIVE -CONNECT- COMMANDS. THE
* DEFAULT CID ORDINAL (AND THE ONLY ONE A
* NON-SYSTEM LESSON CAN USE) IS 0.
*
* CONNECTION = CID ORDINAL (0..2)
* CONNECT SEND;BUFFER;LENGTH
*
* SENDS OUTPUT TO NOS APPLICATION. THE
* OUTPUT IS PACKED 7.5 ASCII CHARS / 60 BIT
* CM WORD.
*
* BUFFER = START OF AREA IN STUDENT, LOCAL
* ROUTER, OR CM VARIABLES FROM
* WHICH OUTPUT WILL BE SENT
* LENGTH = NUMBER OF CHARS TO SEND
* CONNECT STATUS,STAT
*
* OBTAINS STATUS OF CONNECTION BETWEEN PLATO
* USER AND NOS APPLICATION.
*
* STAT = STATUS OF CONNECTION
* CONNECT STOP
*
* ABORTS CURRENT TASK.
EJECT
* /--- BLOCK CONNECT 00 000 84/04/12 16.51
CONNCOV OVRLAY
* /--- BLOCK CONNECT 00 000 84/04/10 03.01
RJ =XSYSTEST SYSTEM LESSONS ONLY FOR NOW
RJ =XNXTNAM (X6) = KEYWORD, (X1)= DELIMITER
ZR X6,=XERR2FEW --- IF NO KEYWORD PRESENT
SX7 X1+
SA7 LASTKEY SAVE DELIMITER
SA1 KEYWORDS-2 PRESET (A1) FOR KEYWORD SEARCH
CONNECT1 SA1 A1+2 (X1) = NEXT KEYWORD
ZR X1,=XERRNAME --- IF END OF TABLE REACHED
BX2 X1-X6 COMPARE
NZ X2,CONNECT1 --- IF NO MATCH
SX6 A1-KEYWORDS+1 (X6) = KEYWORD INDEX
SA6 VARBUF+1 SAVE KEYWORD INDEX
SX6 1
SA6 VARBUF INITIALIZE GETVAR COUNT
SA1 A1+1 (X1) = 54/GETVAR INFO,6/SYSLESS
MX0 -6
BX2 -X0*X1 (X1) = 1 SYSLESS, 2 NOT READY
SX3 X2-2 CHECK IF NOT YET IMPLEMENTED
ZR X3,=XERRNAME --- IF NOT YET IMPLEMENTED
BX6 X0*X1 SAVE GETVAR PARAMS
SA6 GETVARS
SX3 X2-1 CHECK IF SYSTEM LESSONS ONLY
NZ X3,CONNECT2 --- IF OK IN ANY LESSON
RJ =XSYSTEST SYSTEM LESSON CHECK
CONNECT2 SA1 GETVARS (X1) = GETVARS LEFT TO DO
LX1 6 POSITION NEXT GETVAR PARAM
MX0 -6
BX2 -X0*X1 (X2) = NEXT GETVAR PARAM
SB2 X2+ (B2) = NEXT GETVAR PARAM
ZR X2,CONNECT6 --- IF DONE WITH GETVARS
BX6 X0*X1 CLEAR CURRENT GETVAR PARAM
SA6 A1+
SA1 LASTKEY (X1) = PREVIOUS DELIMITER
ZR X1,ERR2FEW --- IF END OF LINE REACHED
SX1 X1-KSEMIC CHECK IF SEMI-COLON DELIMITER
NZ X1,=XERRTERM --- BAD TERMINATER
JP *+B2 --- JUMP ON GETVAR/PUTVAR TYPE
+ EQ CONNECT3 1 = ANY GETVAR CODE
+ EQ CONNECT4 2 = STORABLE GETVAR
+ EQ CONNECT5 3 = PUTVAR CODE
CONNECT3 RJ =XVARDO2 PROCESS NEXT GETVAR CODE
EQ CONNECT2
CONNECT4 RJ =XVARDO2 PROCESS NEXT GETVAR CODE
SA1 VARBUF (X1) = PTR TO CURRENT GETVAR
SA1 VARBUF+X1 (X1) = CURRENT GETVAR CODE
PL X1,CONNECT2 --- OK IF STORABLE
EQ =XERRSTOR --- ERROR IF NOT STORABLE
CONNECT5 RJ =XPUTDO2 PROCESS NEXT PUTVAR CODE
EQ CONNECT2
CONNECT6 SA1 LASTKEY
ZR X1,=XMRKLAST --- ALL DONE IF END OF LINE
EQ =XERR2MNY --- ERROR IF HANGING *;*
GETVARS BSS 1
* /--- BLOCK CONNECT 00 000 84/04/03 16.32
* THE MACRO BELOW DEFINES A TABLE OF PRIMARY
* -CONNECT- KEYWORDS AND ATTRIBUTES. THERE ARE
* TWO WORDS PER TABLE ENTRY. THE FIRST WORD
* CONTAINS THE KEYWORD, AND THE SECOND WORD CONTAINS
* 54 BITS OF GETVAR CODE PARAMETERS (6 BITS FOR EACH
* OF 9 POSSIBLE GETVAR CODES), AND 6 BITS TO TELL
* WHETHER OR NOT A PARTICULAR KEYWORD IS RESTRICTED
* TO SYSTEM LESSONS AND/OR IS IMPLEMENTED YET.
KEYWORD MACRO OPTION,USERSYS,GETVARS
* OPTION = PRIMARY KEYWORD OPTION
* USERSYS = *S* IF FOR SYSTEM LESSONS ONLY
* = *N* IF NOT YET IMPLEMENTED
* GETVAR = GETVAR/PUTVAR CODES NEEDED IN THE FORM
* OF A STRING WHERE --
*
* *G* REPRESENTS ANY GETVAR CODE
* *P* REPRESENTS ANY PUTVAR CODE
* *S* REPRESENTS A STORABLE GETVAR CODE
DATA 0L_OPTION
NOREF .SYS
.SYS SET 0
.1 IFC EQ,*USERSYS*S*
.SYS SET 1
.1 ENDIF
.2 IFC EQ,*USERSYS*N*
.SYS SET 2
.2 ENDIF
* PUT THE GETVAR/PUTVAR CODES LIST INTO A MICRO
* AND CHECK THAT ITS LENGTH DOESN'7T EXCEED 9.
GETVAR$ MICRO 1,,*_GETVARS*
LTH$ MICCNT GETVAR$
ERRNG 9-LTH$ TOO MANY GETVAR/PUTVAR CODES
* PRESET EACH POSSIBLE GETVAR/PUTVAR CODE TO
* NULL (NOT PRESENT).
ECHO 2,P=(1,2,3,4,5,6,7,8,9)
NOREF .GV_P
.GV_P SET 0
* EXTRACT EACH CHARACTER FROM THE STRING AND CHECK
* FOR ANY GETVAR CODE (*G*), STORABLE GETVAR CODE
* (*S*), AND PUTVAR CODE (*P*), AND SET
* .GV1, .GV2, ..., GV9 TO 1, 2 OR 3, RESPECTIVELY.
.GV ECHO ,C=(1,2,3,4,5,6,7,8,9)
NOREF .GV_C
CHAR$ MICRO C,1,*"GETVAR$"*
.C IFC EQ,*"CHAR$"**
STOPDUP
.C ELSE
IFC EQ,*"CHAR$"*G*,1
.GV_C SET 1
IFC EQ,*"CHAR$"*S*,1
.GV_C SET 2
IFC EQ,*"CHAR$"*P*,1
.GV_C SET 3
ERRZR .GV_C BAD GETVAR/PUTVAR SPECIFICATION
.C ENDIF
.GV ENDD
* DEFINE THE SECOND WORD OF THE TABLE ENTRY. THIS
* WORD CONTAINS 6 BITS FOR EACH POSSIBLE GETVAR
* CODE (0 = NOT PRESENT, 1 = ANY GETVAR, 2 =
* STORABLE GETVAR, 3 = PUTVAR). THE WORD ENDS WITH
* 6 BITS FOR THE SYSTEM LESSON FLAG (0 = OK IN ANY
* LESSON, 1 = RESERVED FOR SYSTEM LESSONS).
ECHO 1,P=(1,2,3,4,5,6,7,8,9)
VFD 6/.GV_P
VFD 6/.SYS
ENDM
* /--- BLOCK CONNECT 00 000 84/03/28 15.02
KEYWORDS KEYWORD CONTINUE,N
KEYWORD HELLO,N,GGGGG
KEYWORD LOGIN,,GGG
KEYWORD LOGOUT
KEYWORD NOLOG,N
KEYWORD RECEIVE,,SGP
KEYWORD RECOVER,N
KEYWORD SELECT,N,G
KEYWORD SEND,,SG
KEYWORD STATUS,,P
KEYWORD STOP,N
DATA 0 MARK END OF TABLE WITH 0 WORD
* /--- BLOCK CONNECT 00 000 84/04/04 14.58
ENDOV
OVTABLE
END CONNC$