Table of Contents

CONNC

Table Of Contents

  • [00007] CONDENSOR OVERLAY FOR -CONNECT- COMMAND

Source Code

CONNC.txt
  1. CONNC
  2. * /--- FILE TYPE = E
  3. * /--- BLOCK CONNECT 00 000 84/04/12 16.52
  4. IDENT CONNC
  5. LCC OVERLAY(1,1)
  6.  
  7. TITLE CONDENSOR OVERLAY FOR -CONNECT- COMMAND
  8.  
  9. CST
  10.  
  11. CONNC$ OVFILE
  12.  
  13. EJECT
  14.  
  15. * /--- BLOCK CONNECT 00 000 84/04/12 16.53
  16.  
  17. * CONNECT CONTINUE
  18. *
  19. * DISCARDS ANY PENDING NOS OUTPUT AND
  20. * CONTINUES EXECUTION
  21.  
  22.  
  23. * CONNECT HELLO;APPLICATION;FAMILY;USER;PASSWORD
  24. *
  25. * SIMILAR TO LOGIN, BUT PERMITS A SYSTEM
  26. * LESSON TO SPECIFY FAMILY AND USER NAMES
  27. * OTHER THAN THOSE STORED IN PLATO RECORD
  28. *
  29. * APPLICATION = 'N'O'S APPLICATION TO CONNECT TO
  30. * FAMILY = NOS FAMILY NAME
  31. * USER = NOS USER NAME
  32. * PASSWORD = INTERACTIVE PASSWORD
  33.  
  34.  
  35. * CONNECT LOGIN;APPLICATION;PASSWORD
  36. *
  37. * INITIATES CONNECTION BETWEEN A PLATO USER
  38. * AND A NOS APPLICATION
  39. *
  40. * APPLICATION = NOS APPLICATION TO CONNECT TO
  41. * PASSWORD = INTERACTIVE PASSWORD FOR USER
  42. * NUMBER IN PLATO RECORD
  43.  
  44.  
  45. * CONNECT LOGOUT
  46. *
  47. * TERMINATES CONNECTION BETWEEN PLATO USER
  48. * AND NOS APPLICATION.
  49.  
  50.  
  51. * CONNECT NOLOG
  52. *
  53. * SUSPENDS CONNECTION BETWEEN PLATO USER AND
  54. * NOS APPLICATION. APPLICATION MAY CONTINUE
  55. * TO EXECUTE. CONNECTION MAY BE RESTORED VIA
  56. * -CONNECT RECOVER-.
  57.  
  58.  
  59. * CONNECT RECEIVE;BUFFER;LENGTH;RETURNEDLENGTH
  60. *
  61. * RECEIVES OUTPUT FROM NOS APPLICATION. THE
  62. * OUTPUT IS PACKED 7.5 ASCII CHARS / 60 BIT
  63. * CM WORD.
  64. *
  65. * BUFFER = START OF AREA IN STUDENT, LOCAL
  66. * ROUTER, OR CM VARIABLES IN
  67. * WHICH OUTPUT WILL BE RECEIVED
  68. * LENGTH = MAXIMUM CHARS TO RECEIVE
  69. * RETURNEDLENGTH = CHARS ACTUALLY RECEIVED
  70.  
  71. * /--- BLOCK CONNECT 00 000 84/04/12 16.56
  72.  
  73. * CONNECT RECOVER
  74. *
  75. * RESTORES CONNECTION THAT WAS SUSPENDED VIA
  76. * -CONNECT NOLOG-.
  77.  
  78.  
  79. * CONNECT SELECT,CONNECTION
  80. *
  81. * PERMITS A SYSTEM LESSON TO SELECT WHICH OF
  82. * THREE CIDS IN THE STUDENT BANK WILL BE USED
  83. * FOR SUCCESSIVE -CONNECT- COMMANDS. THE
  84. * DEFAULT CID ORDINAL (AND THE ONLY ONE A
  85. * NON-SYSTEM LESSON CAN USE) IS 0.
  86. *
  87. * CONNECTION = CID ORDINAL (0..2)
  88.  
  89.  
  90. * CONNECT SEND;BUFFER;LENGTH
  91. *
  92. * SENDS OUTPUT TO NOS APPLICATION. THE
  93. * OUTPUT IS PACKED 7.5 ASCII CHARS / 60 BIT
  94. * CM WORD.
  95. *
  96. * BUFFER = START OF AREA IN STUDENT, LOCAL
  97. * ROUTER, OR CM VARIABLES FROM
  98. * WHICH OUTPUT WILL BE SENT
  99. * LENGTH = NUMBER OF CHARS TO SEND
  100.  
  101.  
  102. * CONNECT STATUS,STAT
  103. *
  104. * OBTAINS STATUS OF CONNECTION BETWEEN PLATO
  105. * USER AND NOS APPLICATION.
  106. *
  107. * STAT = STATUS OF CONNECTION
  108.  
  109.  
  110. * CONNECT STOP
  111. *
  112. * ABORTS CURRENT TASK.
  113.  
  114.  
  115.  
  116. EJECT
  117. * /--- BLOCK CONNECT 00 000 84/04/12 16.51
  118.  
  119. CONNCOV OVRLAY
  120.  
  121. * /--- BLOCK CONNECT 00 000 84/04/10 03.01
  122.  
  123. RJ =XSYSTEST SYSTEM LESSONS ONLY FOR NOW
  124. RJ =XNXTNAM (X6) = KEYWORD, (X1)= DELIMITER
  125. ZR X6,=XERR2FEW --- IF NO KEYWORD PRESENT
  126. SX7 X1+
  127. SA7 LASTKEY SAVE DELIMITER
  128. SA1 KEYWORDS-2 PRESET (A1) FOR KEYWORD SEARCH
  129. CONNECT1 SA1 A1+2 (X1) = NEXT KEYWORD
  130. ZR X1,=XERRNAME --- IF END OF TABLE REACHED
  131. BX2 X1-X6 COMPARE
  132. NZ X2,CONNECT1 --- IF NO MATCH
  133. SX6 A1-KEYWORDS+1 (X6) = KEYWORD INDEX
  134. SA6 VARBUF+1 SAVE KEYWORD INDEX
  135. SX6 1
  136. SA6 VARBUF INITIALIZE GETVAR COUNT
  137. SA1 A1+1 (X1) = 54/GETVAR INFO,6/SYSLESS
  138. MX0 -6
  139. BX2 -X0*X1 (X1) = 1 SYSLESS, 2 NOT READY
  140. SX3 X2-2 CHECK IF NOT YET IMPLEMENTED
  141. ZR X3,=XERRNAME --- IF NOT YET IMPLEMENTED
  142. BX6 X0*X1 SAVE GETVAR PARAMS
  143. SA6 GETVARS
  144. SX3 X2-1 CHECK IF SYSTEM LESSONS ONLY
  145. NZ X3,CONNECT2 --- IF OK IN ANY LESSON
  146. RJ =XSYSTEST SYSTEM LESSON CHECK
  147. CONNECT2 SA1 GETVARS (X1) = GETVARS LEFT TO DO
  148. LX1 6 POSITION NEXT GETVAR PARAM
  149. MX0 -6
  150. BX2 -X0*X1 (X2) = NEXT GETVAR PARAM
  151. SB2 X2+ (B2) = NEXT GETVAR PARAM
  152. ZR X2,CONNECT6 --- IF DONE WITH GETVARS
  153. BX6 X0*X1 CLEAR CURRENT GETVAR PARAM
  154. SA6 A1+
  155. SA1 LASTKEY (X1) = PREVIOUS DELIMITER
  156. ZR X1,ERR2FEW --- IF END OF LINE REACHED
  157. SX1 X1-KSEMIC CHECK IF SEMI-COLON DELIMITER
  158. NZ X1,=XERRTERM --- BAD TERMINATER
  159. JP *+B2 --- JUMP ON GETVAR/PUTVAR TYPE
  160. + EQ CONNECT3 1 = ANY GETVAR CODE
  161. + EQ CONNECT4 2 = STORABLE GETVAR
  162. + EQ CONNECT5 3 = PUTVAR CODE
  163.  
  164. CONNECT3 RJ =XVARDO2 PROCESS NEXT GETVAR CODE
  165. EQ CONNECT2
  166.  
  167. CONNECT4 RJ =XVARDO2 PROCESS NEXT GETVAR CODE
  168. SA1 VARBUF (X1) = PTR TO CURRENT GETVAR
  169. SA1 VARBUF+X1 (X1) = CURRENT GETVAR CODE
  170. PL X1,CONNECT2 --- OK IF STORABLE
  171. EQ =XERRSTOR --- ERROR IF NOT STORABLE
  172.  
  173. CONNECT5 RJ =XPUTDO2 PROCESS NEXT PUTVAR CODE
  174. EQ CONNECT2
  175.  
  176. CONNECT6 SA1 LASTKEY
  177. ZR X1,=XMRKLAST --- ALL DONE IF END OF LINE
  178. EQ =XERR2MNY --- ERROR IF HANGING *;*
  179.  
  180. GETVARS BSS 1
  181.  
  182. * /--- BLOCK CONNECT 00 000 84/04/03 16.32
  183.  
  184. * THE MACRO BELOW DEFINES A TABLE OF PRIMARY
  185. * -CONNECT- KEYWORDS AND ATTRIBUTES. THERE ARE
  186. * TWO WORDS PER TABLE ENTRY. THE FIRST WORD
  187. * CONTAINS THE KEYWORD, AND THE SECOND WORD CONTAINS
  188. * 54 BITS OF GETVAR CODE PARAMETERS (6 BITS FOR EACH
  189. * OF 9 POSSIBLE GETVAR CODES), AND 6 BITS TO TELL
  190. * WHETHER OR NOT A PARTICULAR KEYWORD IS RESTRICTED
  191. * TO SYSTEM LESSONS AND/OR IS IMPLEMENTED YET.
  192.  
  193. KEYWORD MACRO OPTION,USERSYS,GETVARS
  194.  
  195. * OPTION = PRIMARY KEYWORD OPTION
  196. * USERSYS = *S* IF FOR SYSTEM LESSONS ONLY
  197. * = *N* IF NOT YET IMPLEMENTED
  198. * GETVAR = GETVAR/PUTVAR CODES NEEDED IN THE FORM
  199. * OF A STRING WHERE --
  200. *
  201. * *G* REPRESENTS ANY GETVAR CODE
  202. * *P* REPRESENTS ANY PUTVAR CODE
  203. * *S* REPRESENTS A STORABLE GETVAR CODE
  204.  
  205. DATA 0L_OPTION
  206.  
  207. NOREF .SYS
  208.  
  209. .SYS SET 0
  210.  
  211. .1 IFC EQ,*USERSYS*S*
  212. .SYS SET 1
  213. .1 ENDIF
  214.  
  215. .2 IFC EQ,*USERSYS*N*
  216. .SYS SET 2
  217. .2 ENDIF
  218.  
  219. * PUT THE GETVAR/PUTVAR CODES LIST INTO A MICRO
  220. * AND CHECK THAT ITS LENGTH DOESN'7T EXCEED 9.
  221.  
  222. GETVAR$ MICRO 1,,*_GETVARS*
  223.  
  224. LTH$ MICCNT GETVAR$
  225. ERRNG 9-LTH$ TOO MANY GETVAR/PUTVAR CODES
  226.  
  227. * PRESET EACH POSSIBLE GETVAR/PUTVAR CODE TO
  228. * NULL (NOT PRESENT).
  229.  
  230. ECHO 2,P=(1,2,3,4,5,6,7,8,9)
  231. NOREF .GV_P
  232. .GV_P SET 0
  233.  
  234. * EXTRACT EACH CHARACTER FROM THE STRING AND CHECK
  235. * FOR ANY GETVAR CODE (*G*), STORABLE GETVAR CODE
  236. * (*S*), AND PUTVAR CODE (*P*), AND SET
  237. * .GV1, .GV2, ..., GV9 TO 1, 2 OR 3, RESPECTIVELY.
  238.  
  239. .GV ECHO ,C=(1,2,3,4,5,6,7,8,9)
  240. NOREF .GV_C
  241. CHAR$ MICRO C,1,*"GETVAR$"*
  242. .C IFC EQ,*"CHAR$"**
  243. STOPDUP
  244. .C ELSE
  245. IFC EQ,*"CHAR$"*G*,1
  246. .GV_C SET 1
  247. IFC EQ,*"CHAR$"*S*,1
  248. .GV_C SET 2
  249. IFC EQ,*"CHAR$"*P*,1
  250. .GV_C SET 3
  251. ERRZR .GV_C BAD GETVAR/PUTVAR SPECIFICATION
  252. .C ENDIF
  253.  
  254. .GV ENDD
  255.  
  256. * DEFINE THE SECOND WORD OF THE TABLE ENTRY. THIS
  257. * WORD CONTAINS 6 BITS FOR EACH POSSIBLE GETVAR
  258. * CODE (0 = NOT PRESENT, 1 = ANY GETVAR, 2 =
  259. * STORABLE GETVAR, 3 = PUTVAR). THE WORD ENDS WITH
  260. * 6 BITS FOR THE SYSTEM LESSON FLAG (0 = OK IN ANY
  261. * LESSON, 1 = RESERVED FOR SYSTEM LESSONS).
  262.  
  263. ECHO 1,P=(1,2,3,4,5,6,7,8,9)
  264. VFD 6/.GV_P
  265.  
  266. VFD 6/.SYS
  267.  
  268. ENDM
  269.  
  270. * /--- BLOCK CONNECT 00 000 84/03/28 15.02
  271.  
  272. KEYWORDS KEYWORD CONTINUE,N
  273. KEYWORD HELLO,N,GGGGG
  274. KEYWORD LOGIN,,GGG
  275. KEYWORD LOGOUT
  276. KEYWORD NOLOG,N
  277. KEYWORD RECEIVE,,SGP
  278. KEYWORD RECOVER,N
  279. KEYWORD SELECT,N,G
  280. KEYWORD SEND,,SG
  281. KEYWORD STATUS,,P
  282. KEYWORD STOP,N
  283. DATA 0 MARK END OF TABLE WITH 0 WORD
  284. * /--- BLOCK CONNECT 00 000 84/04/04 14.58
  285.  
  286. ENDOV
  287.  
  288. OVTABLE
  289.  
  290. END CONNC$