home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / cdccyber / cdcker.mss < prev    next >
Text File  |  2020-01-01  |  18KB  |  439 lines

  1. @part(170KERMIT,root="USER")
  2. @Chapter<CYBER 170 KERMIT>
  3. @label<-k170>
  4. @Index[CDC]
  5. @Index[NOS]
  6. @Index[NOS/BE]
  7. @Index[CYBER]
  8. @begin<description,leftmargin +12,indent -12,spread 0>
  9. @i(Authors:)@\Jim Knutson, University of Texas
  10.  
  11. @i(Version:)@\2.2
  12.  
  13. @i(Date:)@\September 1984
  14. @end<description>
  15.  
  16. Cyber Kermit was written for a Cyber 170/750 in
  17. FTN5, CDC's FORTRAN 77 compiler.  It should run on any NOS or
  18. NOS/BE system with only minor changes to the I/O routines.  This
  19. is a necessary evil since every Cyber site seems to run a
  20. different front end.  
  21.  
  22. @Section<Cyber File Systems>
  23.  
  24. The features of a Cyber file system of greatest interest to
  25. KERMIT users are storage class, file structure, file
  26. specifications and character sets.
  27.  
  28. @Subheading<Cyber Storage Classes>
  29.  
  30. The NOS and NOS/BE operating systems use the concept of local and
  31. permanent file storage.  This means that files that are to be
  32. kept around after a job is finished must be moved to permanent
  33. storage first.  Jobs that wish to use a file from permanent
  34. storage must copy to local storage first before using it
  35. (actually, direct access permanent files help alleviate this
  36. problem).  Most Kermit users will only want to use local files.
  37.  
  38. @Subheading<Cyber File Structure>
  39.  
  40. Many Cyber files use internal structure information much like VMS
  41. files.  These internal structures are mainly used in executable
  42. binary files or certain CRM record types.  The internal structure of
  43. files is not currently supported by Cyber Kermit.  Cyber
  44. executable binaries, and multi-record files are not
  45. transferable using Kermit.
  46.  
  47. @Subheading<Cyber File Specification>
  48.  
  49. A Cyber file name consists of from 1 to seven alphanumeric
  50. characters.  NOS systems allow the first character to be numeric
  51. but most Cyber processors do not support this.  Cyber Kermit 
  52. allows the first character to be a digit on NOS systems.  Special
  53. characters are not allowed in the file name.  File names beginning
  54. with ZZ or SCR should be avoided, since these are commonly used
  55. scratch file names.  The Cyber Kermit command processor does not
  56. support wild cards at this time.
  57.  
  58. @Subheading<Cyber Character Sets>
  59.  
  60. Until the recent Cyber 800 Series mainframes, the character set
  61. used by most Cyber systems was a six bit Display Code character
  62. set.  The six bit character sets supported by Cyber Kermit are the
  63. 63 character, 64 character and UT 64 character sets.  These
  64. character sets not only differ in their ordering but also in the
  65. characters they use.  Some use the underscore and percent sign,
  66. others do not.  ASCII characters received by Cyber Kermit are
  67. translated to the appropriate display code when possible.  A
  68. character that can not be translated will be set to a blank.
  69. Users of the 64 character set may have 
  70. problems with colons at the end of a line being truncated or
  71. lines with sequential colons being split into two or more lines since
  72. the character value of a colon is 00B (half of an End-Of-Line).
  73.  
  74. There are also several ASCII character sets in use on the various
  75. Cyber systems.  One set, called 6/12, uses 6 bit display code
  76. characters with certain characters set aside as flags to indicate
  77. case (upper/lower) or control characters.  Cyber Kermit does not
  78. support the 6/12 character set.  Another ASCII character set is
  79. the 8/12 character set.  This stores ASCII characters as 8 bits
  80. in a 12 bit byte.  The exception to this is that an EOL (End-Of-Line)
  81. is indicated by the usual CDC convention of at least twelve bits
  82. of 0 (0000B) in the low order bits of the word.  NUL characters
  83. are represented as 4000B to prevent interpretation as an
  84. EOL sequence.  Cyber Kermit also support UT 8/12 ASCII.
  85. The difference between this and NOS 8/12 ASCII is UT 8/12 ASCII
  86. uses the NEL character (205B) from the 256 character ASCII set to
  87. represent an End-Of-Line.
  88.  
  89. @Section<Program Operation>
  90.  
  91. Cyber Kermit's prompt is "Kermit-170>".  It must be run
  92. interactively and without any parameters.  Commands can then be
  93. typed in like this:
  94. @begin<example>
  95. .@ux[kermit]
  96. Kermit-170>@ux[send foobar]
  97.  
  98.   [file foobar sent]
  99.  
  100. Kermit-170>@ux[status]
  101.  
  102.   [performance statistics are printed]
  103.  
  104. Kermit-170>@ux[receive]
  105.  
  106.   [files are received]
  107.  
  108. Kermit-170>@ux[exit]
  109. .
  110. @End<example>
  111.  
  112. @index<Help>
  113. Cyber Kermit mimics the DEC-20 style
  114. command parser in that a question mark followed by a carriage
  115. return may be placed anywhere on the command line.  This will
  116. display the options available at that point.  Unfortunately, the
  117. entire command will have to be retyped afterwards.
  118.  
  119. Command keywords may be abbreviated to their shortest unique
  120. combination.  This comes in very handy since Cyber Kermit does
  121. not support command completion.
  122.  
  123. Cyber Kermit may only be run as a remote Kermit.
  124. It must be watched during transfer if the local
  125. Kermit has no timeout since it has no timeout capabilities.
  126.  
  127. A Cyber filename is restricted to 7 alphanumeric characters with the first
  128. character being an alpha.  Kermit will use the first 7 valid characters
  129. of any file being sent to the Cyber.  If a file under that name already
  130. exists, an Error packet stating so will be sent back and Cyber Kermit will
  131. abort the transfer.
  132.  
  133. @index<Parity>
  134. If you are having trouble transferring files with Kermit, it may
  135. be due to the parity.  Cyber Kermit has no way of determining the
  136. parity of the connection so it just guesses that it will be NONE.
  137. If you are having problems getting the first packet to transfer,
  138. then this is probably the problem.  If you are running with a
  139. parity other than NONE, then you must use the SET PARITY command
  140. every time you enter Cyber Kermit.
  141.  
  142. @Section<Cyber Kermit Commands>
  143. The following is a list of Cyber Kermit commands and their description.
  144. @begin<description>
  145. @Index<!>
  146. ! @i<command>@\Execute a Cyber control command and then return to
  147. Kermit.
  148.  
  149. @Index<EXIT>@index<QUIT>@Index<Control-C>
  150. EXIT, QUIT@\Exit from Kermit-170.  You may also stop Kermit-170 in the midst of
  151. a transfer or during server operations by aborting the program (CTRL-C or
  152. CTRL-G ABORT); the program traps them and puts your terminal back to normal
  153. before halting.
  154.  
  155. @Index<HELP>
  156. HELP [@i<topic>]@\Give Help.  There's a general help text, plus
  157. separate help texts for each Kermit-170 command.
  158.  
  159. @Index<PUSH>
  160. PUSH@\Exit to control command level saving the current Kermit
  161. environment.  The environment will be restored when Kermit is
  162. reentered. 
  163.  
  164. @index<RECEIVE>
  165. RECEIVE@\Receive a file or group of files from the other host.
  166. If the name in the header packet is not a legal Cyber file name,
  167. the first 7 legal characters will be used.
  168. @blankspace<1 line>
  169. If the file already exits as a local file, Kermit will abort the transfer.
  170. If an error occurs during transfer, the file being received will be
  171. removed from the local file list to allow the transfer to be retried.
  172. You should escape back to your local Kermit after entering RECEIVE
  173. mode and give the SEND command.
  174.  
  175. @index<SEND>
  176. SEND @i<filename>@\Send a file to the other host.  The name of the file is 
  177. passed to the other host in a file header packet, so that the file can be
  178. stored there with the same name.
  179. You should escape back to your local Kermit and give the RECEIVE
  180. command.  If you don't do this fast enough the "send-init" packet may
  181. arrive prematurely.  To prevent this, use SET DELAY or hit the RETURN key
  182. on your microcomputer if it does not timeout.
  183.  
  184. @Index<SERVER>@Index<Control-C>
  185. SERVER@\Act as a server for another Kermit.  Whatever options were
  186. previously SET will be used.  The server may be shut down from the local
  187. Kermit by using the BYE or FINISH commands, or by
  188. connecting back to the Cyber, and typing Control-C or Control-G ABORT.
  189.  
  190. @Index<SET>
  191. SET @i{keyword value}@\Establish system-dependent parameters.  You can examine 
  192. their values with the
  193. SHOW command.  Numeric values may be decimal, octal (postfixed with a B),
  194. or hexadecimal (postfixed by an H).  The following may be SET:
  195. @Begin(Description,leftmargin +8,indent -8)
  196. @index<Character Set>
  197. DATA-MODE @i<ctype>@\Set the character code to use for files
  198. received by Kermit-170.  Allowable values for @i<ctype> are:
  199. ASCII, DISPLAY-CODE, IMAGE-ASCII, NOS-ASCII.  The interpretation
  200. of these is dependent on the system.  DISPLAY-CODE will be the
  201. six bit character set in use at the site (63 or 64).  ASCII will
  202. be NOS 8/12 ASCII for all sites except the University of Texas.
  203. NOS-ASCII is used to describe NOS 8/12 ASCII at UT while ASCII
  204. describes UT 8/12 ASCII.  The default character set in use when
  205. Kermit starts up is DISPLAY-CODE.  Automatic character set
  206. recognition is used for sending files unless IMAGE-ASCII is set. 
  207.  
  208. @index<Debugging>
  209. DEBUG @i<option>@\Show packet traffic explicitly.  Options are:
  210. @Begin(Description,leftmargin +8,indent -8)
  211. ALL@\Set all debug options.
  212.  
  213. LOG-FILE @i<filename>@\Log states and packets to the specified file.  The 
  214. default log-file is file KERMLOG.
  215.  
  216. OFF@\Don't display debugging information (this is the default).  If
  217. debugging was in effect, turn it off and close any log file.
  218.  
  219. PACKETS@\Display each incoming and outgoing packet (lengthy).
  220.  
  221. STATES@\Show kermit state transitions and packet numbers (brief).
  222. @End(Description)
  223.  
  224. DELAY @i<decimal-number>@\How many seconds to wait before sending the first 
  225. packet.  This gives you time to "escape" back and issue a RECEIVE command.
  226.  
  227. @index<Duplex>
  228. DUPLEX @i<keyword>@\Changes the method of echoing characters when being 
  229. prompted for commands.
  230. The choices are FULL and HALF.  Full means the Cyber will echo the
  231. characters you type.  Half means the local systems echoes them.  Full is
  232. the default, and is used by most hosts.
  233.  
  234. INIT-RETRY @i<decimal-number>@\Set the maximum number of retries allowed for 
  235. the initial connection before giving up.
  236.  
  237. @index<Parity>
  238. PARITY @i<keyword>@\Allows you to adjust the parity on characters
  239. sent or received by Kermit-170 to
  240. another system's requirements.  The possibilities are NONE, EVEN, ODD,
  241. SPACE, or MARK.  If NONE, then the 8th bit can be used for data when 
  242. sending and receiving binary files.  If other than NONE, the 8th bit
  243. on outgoing characters will be set to achieve the desired parity, and the 
  244. 8th bit on incoming characters will be discarded.  The default is NONE.
  245.  
  246. RECEIVE @i{parameter value}@\These commands allow you to specify
  247. to the other Kermit what the packets it sends should look like,
  248. or to inform this Kermit what to expect.  @i<Value> may be
  249. specified as a decimal number, an octal number (B suffix), or a
  250. hexadecimal number (H suffix).  Characters values are specified
  251. as the numeric equivalent of the ASCII character.
  252. @Begin(Description,leftmargin +8,indent -8)
  253. END-OF-LINE @i<value>@\The octal value of the ASCII character to
  254. be used as a line terminator 
  255. or packets, if one is required by the other system.  Carriage return
  256. (15B) is the default.
  257.  
  258. PACKET-LENGTH @i<value>@\Maximum packet length to send, decimal
  259. number, between 20 and 94, 
  260. 94 by default.
  261.  
  262. PAD-CHARACTER @i<value>@\Character to use for padding.  Default is NUL.
  263.  
  264. PAD-LENGTH @i<value>@\How much padding to send before a packet.  Default is 
  265. no padding.
  266.  
  267. QUOTE-CHARACTER @i<value>@\What printable character to use for quoting of 
  268. control characters.
  269.  
  270. SYNC-CHARACTER @i<value>@\The control character that marks the beginning of 
  271. the packet.  Normally SOH (Control-A, ASCII 1).  There should be no reason 
  272. to change this.
  273.  
  274. TIME-OUT @i<value>@\How many seconds the other Kermit should wait for a packet 
  275. before asking for retransmission.
  276. @End(Description)
  277.  
  278. @index<Performance Tuning>
  279. RDELAY @i<millisec>@\Set up a delay of @i<millisec> seconds
  280. before each TTY read.  This can be used for performance tuning by
  281. causing enough delay that data will be ready when the read is
  282. issued.  If data is not ready when the read is issued, the job
  283. will be swapped out.  The delay should be specified as a multiple
  284. of 100.  The default delay is 100 milliseconds.
  285.  
  286. RETRY @i<value>@\Set the maximum number of retries for a given packet before 
  287. giving up.
  288.  
  289. SEND @i{parameter value}@\These commands allow you to specify how outgoing
  290. packets should look, in case the other Kermit has nonstandard requirements.
  291. @Begin(Description,leftmargin +8,indent -8)
  292. END-OF-LINE @i<value>@\The octal value of the ASCII character to be used as a 
  293. line terminator for packets, if one is required by the other system.  Carriage
  294. return (15B) by default.
  295.  
  296. PACKET-LENGTH @i<value>@\Maximum packet length to send, decimal number, 
  297. between 20 and 94, 94 by default.
  298.  
  299. PAD-CHARACTER @i<value>@\Character to use for padding.  Default is NUL.
  300.  
  301. PAD-LENGTH @i<value>@\How much padding to send before a packet.  Default is 
  302. no padding.
  303.  
  304. QUOTE-CHARACTER @i<value>@\What printable character to use for quoting of 
  305. control characters.  The default is "#" (43B).  there should be no reason 
  306. to change this.
  307.  
  308. SYNC-CHARACTER @i<value>@\The control character that marks the beginning of 
  309. the packet.  Normally SOH (Control-A, ASCII 1).  There should be no reason 
  310. to change this.
  311.  
  312. TIME-OUT @i<value>@\How many seconds the other Kermit should wants before 
  313. being asked for retransmission.  Unfortunately, the Cyber has no way of 
  314. timing out so this parameter is ignored.
  315. @End(Description)
  316. @End(Description)
  317.  
  318. @index<SHOW>
  319. SHOW@\Display current SET parameters, version of Kermit-170, and other
  320. information.
  321.  
  322. @index<STATUS>
  323. STATUS@\Give statistics about the most recent file transfer.
  324. @End(Description)
  325.  
  326. @Section<Installation>
  327.  
  328. Cyber Kermit is distributed in two forms.  If you received it from
  329. Columbia University, the sources are in UPDATE source format.  If
  330. you received it from the University of Texas, it will be in UPDATE
  331. program library format.  Other formats may be written by the
  332. University of Texas upon request.  
  333.  
  334. The Cyber Kermit source comes in two files.  One file (KERMUPL)
  335. will contain the FTN5 source code for Kermit itself.  The other
  336. file (AZLBUPL) contains the COMPASS I/O and low level support
  337. routines supplied by the University of Arizona.  Many of these
  338. routines are FORTRAN interface routines to the COMPASS system
  339. macros.  These should run as is on NOS/BE systems and most should
  340. run as is on NOS systems.  The routines that are needed from AZLIB
  341. (the library produced from AZLBUPL) are: CPU.BTZ, CPU.MFS, CPU.VFN, CLOSE,
  342. CPU.MVC, CPU.SCS, CPU.SXT, CPU.TXS,
  343. OPEN, READ, WRITER, READC, READW, WRITEW, ENDRUN, RECALL, RTIME,
  344. MOVECH, XSCS, XSXT, XTXS, XVFN, RETFILE, XCON, 
  345. EXCST, and MACREL.  These routines should be assembled and placed
  346. in the file AZLIB and tested to make sure they work on your system.
  347. The normal command sequence for this would be:
  348. @begin<example>
  349. .@i<UPDATE,P=AZLBUPL,F.>
  350. .@i<COMPASS,I.>
  351. .@i<LIBGEN,P=AZLIB.>
  352. @end<example>
  353.  
  354. The next thing to do is start building Kermit.  There are several
  355. things to do first, though.  Cyber Kermit uses conditional
  356. compilation for the different operating systems and site dependent
  357. routines.  Modify the parameter definitions in common deck COMCKER
  358. to reflect your operating system and site.  Note that the site
  359. definition is only usefull if you need to have site specific
  360. routines or code.  Currently, the only site specific routines are used to
  361. change the duplex from FULL to HALF and back again (ECHOPLX used at
  362. UA, BELLC used at UT).  Site specific code is used at UT due to our
  363. strange character sets, and for setting ASCII mode for I/O in
  364. subroutine FOPEN.  The display code character set parameter must
  365. also be modified in common deck COMCKER to reflect the appropriate
  366. character set (63, 64) in use at your site.
  367.  
  368. NOS sites will probably have to modify subroutine RDELAY to
  369. accomodate the different format returned by the RTIME macro.
  370. If a NOS site would send it's mods back to the University of Texas,
  371. then this could be conditionally compiled and other NOS sites would
  372. no longer have to worry about this.
  373.  
  374. Once the duplex changing (not neccessary at half duplex sites, but
  375. be sure to change the default duplex in subroutine BLOCK DATA to
  376. HALFDUP) and the code for setting ASCII I/O has been set up
  377. debugging can take place.  Decide on which version of Cyber Kermit
  378. you wish to run (OVCAP or SEGLOAD).  Most sites are running the
  379. OVCAP version and installing it in the system nucleus.  To build
  380. the OVCAP version place the following lines in file UPDMODS:
  381. @begin<example>
  382. *IDENT,moddeck
  383. *DEFINE,OVCAP
  384. @end<example>
  385. and run the commands:
  386. @begin<example>
  387. .@i<UPDATE,P=KERMUPL,F,I=UPDMODS.>
  388. .@i<FTN5,I,OPT=2.>                      COMPILE KERMIT SOURCE
  389. .@i<FTN5,I,OPT=2,B=LIBREL.>             COMPILE LIBRARY SOURCE
  390. .@I<LIBGEN,P=KERMLIB.>                  BUILD KERMIT LIBRARY
  391. .@I<LDSET,MAP=SBEX.>
  392. .@I<LOAD,LGO.>                          LOAD KERMIT, KERMLIB AND AZLIB
  393. .@I<NOGO,KERMIT.>
  394. @end<example>
  395.  
  396. To build the segload version, place the following segload
  397. directives into file KERMSEG:
  398. @begin<example>
  399.         TREE    KERMIT-(SET,HLPCMD,EXECMD,SERVER-(RECEIVE,SEND))
  400. SET     INCLUDE SHOW,STATUS,MATCH,SETVAL
  401. RECEIVE INCLUDE RINIT,RFIEL,RDATA
  402. SEND    INCLUDE SINIT,SFILE,SDATA,SEOF,SBREAK
  403. KERMIT  GLOBAL  PROTO,PACKET,DEBUG,MESSAGE,FILEIO,FILEIOC
  404.         END     KERMIT
  405. @end<example>
  406. and run the commands:
  407. @begin<example>
  408. .@i<UPDATE,P=KERMUPL,F.>
  409. .@i<FTN5,I,OPT=2.>                      COMPILE KERMIT SOURCE
  410. .@i<LDSET,LIB=AZLIB>
  411. .@I<LDSET,MAP=SBEX.>
  412. .@I<SEGLOAD,I=KERMSEG,B=KERMIT.>        LOAD KERMIT, AZLIB
  413. .@I<LOAD,LGO.>
  414. .@I<NOGO.>
  415. @end<example>
  416.  
  417. To aid in debugging of the OVCAP version, remove the line:
  418. @begin<example>
  419.           LDSET    OMIT=SYSERR.
  420. @end<example>
  421. from the COMPASS main program.  This was put there to remove
  422. uneeded (hopefully) code and reduce field length.
  423.  
  424. Be sure to read the implementation notes in the program source.
  425. These notes are likely to be the more upto date.  
  426.  
  427. Planned further enhancements to Kermit-170 being done at the University
  428. of Texas include:
  429. @begin<example>
  430.  
  431. - Addition of new server functions: directory, type, delete, etc.
  432. - Two and Three character checksums.
  433. - 8th-bit quoting, to allow transfer of binary files with systems that
  434.   can't use the parity bit for data.
  435. - Repeat processing for data compression.
  436. - Badly needed performance tuning.  Currently we have been experiencing
  437.   700-900 baud effective data throughput on a 2400 baud line.
  438. @end<example>
  439.