home *** CD-ROM | disk | FTP | other *** search
/ APDL Public Domain 1 / APDL_PD1A.iso / comms / a_l / kermit / Kermit_man < prev    next >
Encoding:
Text File  |  1989-03-16  |  51.8 KB  |  1,439 lines

  1.  
  2.  
  3.                    Arc-Kermit - Documentation
  4.                   ============================
  5.  
  6.  
  7.  
  8. 1.  Introduction
  9. ----------------
  10.  
  11. This documentation briefly describes Archimedes  C-Kermit,  which 
  12. was  derived from QL-Kermit version 2.   It incorporates most  of 
  13. the features of that program,  with some general and some  Acorn-
  14. specific additions, and some minor changes.
  15.  
  16. As with the earlier documentation,  it is assumed that the reader 
  17. is  reasonably  familiar with Kermit concepts and how  to  use  a 
  18. "standard" Kermit program.
  19.  
  20. This version of Arc-Kermit (referred to from here on as  'Arc-K') 
  21. comprises  about  150K bytes of C and Basic  (assembler)  source, 
  22. compiling  to  about  100K bytes of object code  (good  old  RISC 
  23. architecture!).   It is believed that the object will run on  all 
  24. machines from the A305 upwards,  although a larger  configuration 
  25. will ease compilation or development work considerably.
  26.  
  27. Refer  to  the  Building Arc-Kermit section  for  information  on 
  28. building Arc-K from source.
  29.  
  30.  
  31.  
  32. 2.  Capabilities at a Glance
  33. ----------------------------
  34.  
  35.           Local operation                         Yes
  36.           Remote operation                        Yes1
  37.           Transfer text files                     Yes
  38.           Transfer binary files                   Yes
  39.           Wildcard send                           Yes
  40.           ^X/^Z interruption                      Yes
  41.           Filename collision avoidance            Yes
  42.           Can time out                            Yes
  43.           8th-bit prefixing                       Yes
  44.           Repeat count prefixing                  No
  45.           Alternate block checks                  No
  46.           Terminal emulation                      Yes
  47.           Communications settings                 Yes
  48.           Transmit BREAK                          No
  49.           IBM mainframe communication             No
  50.           Transaction logging                     No
  51.           Session logging                         No
  52.           Raw transmit                            No
  53.           Act as server                           Yes
  54.           Talk to server                          Yes
  55.           Advanced server functions               Yes
  56.           Advanced commands for servers           Yes
  57.           Local file management                   Yes
  58.           Handle file attributes                  No
  59.           Command files                           Yes
  60.           Command macros                          No
  61.           XON/XOFF flow control                   No
  62.           Split baud rates                        Yes
  63.  
  64.  
  65. I  have  not  implemented  some of  these  features  for  various 
  66. reasons:   (a) they are not relevant to my intended use of Arc-K;  
  67. (b)  they  would  be impossible to implement  on  the  Archimedes 
  68. hardware (e.g. transmit BREAK);  (c) they may be implemented at a 
  69. later date.
  70.  
  71. Note:   At present Arc-K has only been tested transferring  files 
  72. to and from a BBC running Lancs-Kermit (version 1.45),  therefore 
  73. the  only  extensively  tested  features  are  those  which   are 
  74. exercised by this configuration.   I cannot guarantee that  other 
  75. facilities work well enough, if at all.
  76.  
  77.  
  78.  
  79. 3.  Using the program
  80. ---------------------
  81.  
  82. Assuming  that the binary version of Arc-K has been  obtained  or 
  83. built,  it  can be run in the standard way;   the simplest is  to 
  84. name  the  object  file  "kermit" and put  it  into  the  library 
  85. directory (usually $.Library), from where it can be run simply by 
  86. the command "kermit".
  87.  
  88. Before  running  Kermit,  the utility module must  be  installed.  
  89. This  only  needs  to be done once,  using  the  LOAD  or  RMLOAD 
  90. commands.  If this module is not installed, Kermit will refuse to 
  91. start up, giving an error message.
  92.  
  93. It  is  also recommended that the RS423 fix  module  (the  latest 
  94. version - 1.24) is installed.  Leave this out only if you wish to 
  95. extensively test the error correction features of Kermit!
  96.  
  97.  
  98. When invoking Kermit from Arthur, the following control arguments 
  99. are accepted on the command line:
  100.  
  101.  -n       Don't execute the default startup file.
  102.  
  103.  -c file  Take and execute commands from the given 'file'.  If -n 
  104.           is not given, i.e. if the default startup file is to be 
  105.           executed as well,  this file will be executed after the 
  106.           default one.
  107.  
  108.  -q       Don't enter the interactive command parser,  i.e.  exit 
  109.           as soon as any startup file and command file have  been 
  110.           executed.  -c will normally be used with this option.
  111.  
  112.  -r       Start up in remote mode (see DETACH in §4) by default.
  113.  
  114.  
  115. Assuming   that  the  modules  are   installed   correctly,   the 
  116. [Archimedes or remote terminal] screen will clear and the version 
  117. is displayed.   At this point, unless the -n flag has been given, 
  118. Kermit will execute a startup file which will typically contain a 
  119. series  of  SET  commands to configure  Arc-K  for  the  intended 
  120. application.     As   supplied   the   file   searched   for   is 
  121. "%.KermitInit";   it can be altered to look for a different  file 
  122. by  changing  the symbol DFTAKE in the header file  kermit.h  and 
  123. recompiling.
  124.  
  125. When  this  startup file has ended,  or if  none  is  found,  any 
  126. command file specified with -c will be executed.
  127.  
  128. After  executing  these files,  unless the -q argument  has  been 
  129. given,  the prompt "Arc> " will be displayed.   (Fairly) standard 
  130. Kermit commands can now be entered;  these are listed in the next 
  131. section.   The following control keys can be used to control  and 
  132. edit  command  lines.   When running in local  mode,  either  the 
  133. function  keys  or the alternatives can  be  used,  according  to 
  134. personal   preferences;    it  will  be  necessary  to  use   the 
  135. alternatives if Arc-K is being run in remote mode.
  136.  
  137.  
  138.    F1     (HELP)   When  pressed  at the beginning  of  a  field, 
  139.           indicate what this field needs to be completed with, or 
  140.           display a list of options.  Alternative:  ?
  141.  
  142.    F2     (DELETE WORD)  Delete the "word" (back to the  previous 
  143.           space) before the cursor.  Alternative:  ^W
  144.  
  145.    F3     (DELETE  LINE)  Abandon the current  command  entirely.  
  146.           Alternative:  ^U
  147.  
  148.    F4     (COMPLETE/DEFAULT)   If pressed at the beginning  of  a 
  149.           field,  supply  and display the default value for  that 
  150.           field  (if  any).   If  pressed  in  the  middle  of  a 
  151.           'keyword'  field,  complete the field if what has  been 
  152.           typed  already is valid and unambiguous.   If these  do 
  153.           not apply, the key is ignored.  Alternative:  ESC
  154.  
  155.    F5     (DELETE CHARACTER)  Delete the character to the left of 
  156.           the cursor.  Alternative:  DELETE, BACKSPACE or ^H
  157.  
  158.    ^R     (REDISPLAY)  Replay the current command line  (e.g.  if 
  159.           the  screen has been corrupted by another job's  output 
  160.           or line noise).
  161.  
  162.  
  163. The Arc-K "panic" key is:
  164.  
  165.  
  166.   BREAK   This  causes Arc-K to interrupt whatever it  is  doing, 
  167.           and to return to local command mode.   If a transfer is 
  168.           in progress,  no error packet or other indication  will 
  169.           be  sent although an attempt will be made to  clean  up 
  170.           the Arc environment (screen,  keyboard) as best as  can 
  171.           be  done.   It  should only be necessary  to  use  this 
  172.           interrupt for very serious problems.  Note that if Arc-
  173.           K is in remote mode,  pressing this key will return  to 
  174.           local  -  this is the only keyboard key  recognised  in 
  175.           remote mode.
  176.  
  177.  
  178. Commands may be entered in either upper or lower case (or  indeed 
  179. any mixture of the two).   If ? needs to be entered literally, it 
  180. can be escaped with \ (backslash),  which will also escape itself 
  181. or any top-bit-set character.
  182.  
  183.  
  184. During  non-server file transfer in  local  mode,  the  following 
  185. control keys are recognised:
  186.  
  187.  
  188.    ^X     (INTERRUPT FILE)  If sending,  end transmission of  the 
  189.           current  file  and send an EOF packet  with  a  Discard 
  190.           request.   After  this has been sent and  acknowledged, 
  191.           the next file in the current batch will be started,  or 
  192.           if no more remain an EOT will be sent.
  193.  
  194.           If  receiving,  request the remote system to abort  the 
  195.           transmission of the current file and continue with  the 
  196.           next one (if it is sending multiple files).
  197.  
  198.    ^Z     (INTERRUPT BATCH)  If sending,  end transmission of the 
  199.           current  file  and send an EOF packet  with  a  Discard 
  200.           request, followed by an EOT packet to end the batch.
  201.  
  202.           If  receiving,  request the remote system to abort  the 
  203.           transmission of the current file and not send any  more 
  204.           (if it is sending multiple files).
  205.  
  206.   RETURN  (FORCE TIMEOUT)  If pressed while Arc-K is waiting  for 
  207.           a packet to be received, the wait will be abandoned and 
  208.           a timeout simulated,  thus forcing the previous  packet 
  209.           or  acknowledgment to be resent.   This is  useful  for 
  210.           manually  unjamming  the  deadlock  caused  by  a  lost 
  211.           packet,  if for some reason the timeout facility is not 
  212.           being or cannot be used.
  213.  
  214.    ^E     (FATAL  ERROR)   If for some reason the  remote  system 
  215.           does not support ^X/^Z interruption,these control  keys 
  216.           will have no effect in stopping the transfer.   In this 
  217.           case pressing ^E will cause an Error packet to be  sent 
  218.           with  an  appropriate message - this should  cause  any 
  219.           remote system to stop.
  220.  
  221.  
  222.  
  223. 4.  Commands
  224. ------------
  225.  
  226.  
  227. The commands available in Arc-K are listed here,  with the syntax 
  228. and  a  description for each.   Note that a command  or  required 
  229. keyword  need not be typed in full - only enough characters  need 
  230. be typed to make what is meant unambiguous.
  231.  
  232. UPPERCASE is to be typed literally;  lowercase indicates variable 
  233. parameters;   [brackets] indicate optional parameters.   Possible 
  234. options are separated by ','s.
  235.  
  236. LOCAL and REMOTE,  although logically sub-commands, are described 
  237. here as if each option were a complete command.
  238.  
  239.  
  240. ATTACH
  241.  
  242. This command is valid only in remote mode, and causes the command 
  243. input  source to revert to the Archimedes keyboard.   See  DETACH 
  244. for more detail.
  245.  
  246.  
  247. BYE
  248.  
  249. This command has been superseded by REMOTE BYE.
  250.  
  251.  
  252. CONNECT
  253.  
  254. This  enters terminal emulation on the currently selected  serial 
  255. line.   The screen will clear and the cursor reappears in the top 
  256. left  corner.   Terminal  emulation is extremely  dumb,  with  no 
  257. support for any special features of the Archimedes screen or  any 
  258. standard video terminal.  The special keys recognised are:
  259.  
  260.  
  261.    F2     (EXIT)    This returns to Kermit command mode.
  262.  
  263.    F3     (NULL)    This sends the ASCII code 0.
  264.  
  265.    F5     (DEL)     This sends the ASCII code 127.
  266.  
  267.   RETURN  (EOL)     Sends  the  currently  defined  end  of  line 
  268.                     sequence, as set by SET ENTER.
  269.  
  270.  
  271. All  other keys are sent to the serial line.   If the  LOCAL-ECHO 
  272. option  has been set to ON,  the key press is also echoed to  the 
  273. screen.   RETURN is always echoed as a newline regardless of  the 
  274. setting of the end of line sequence.
  275.  
  276.  
  277. DETACH
  278.  
  279. This command is valid only in local mode,  and causes all further 
  280. Kermit  input  to be taken from the currently  set  communication 
  281. line.   There  should  be a machine running  Kermit  (or  another 
  282. terminal  program)  at  the other end of that  line  before  this 
  283. command  is  issued.   The  prompt "Arc> " will  appear  on  that 
  284. system,  and  Kermit  will  run in remote mode just  as  if  that 
  285. machine were being used as a terminal to a mainframe system.   No 
  286. further  activity will take place on the Archimedes screen  until 
  287. the ATTACH command is used to reconnect.
  288.  
  289. All file transfer will also take place over the same serial line, 
  290. however  no  progress or error messages will be issued  once  the 
  291. transfer is started.  Server mode is also available.
  292.  
  293. The  user  environment is modified slightly as a  consequence  of 
  294. running in remote mode:
  295.  
  296.  
  297.    1)     The keyboard function keys are no longer available  for 
  298.           line editing, help prompting and other facilities.  The 
  299.           alternatives,   which   should  be  available  on   any 
  300.           terminal, can be used.
  301.  
  302.    2)     File transfer interruption is not  available;   however 
  303.           an interrupt will of course be accepted from the  other 
  304.           system.
  305.  
  306.    3)     Only  one  serial port is  available,  which  obviously 
  307.           cannot  be connected to a  server.   Therefore  certain 
  308.           commands  are not available;   they are  CONNECT,  GET, 
  309.           STOP and all the REMOTE sub-commands.
  310.  
  311.    4)     The transfer progress display is not available.
  312.  
  313.  
  314. Note  that  other  SET commands can be used to  change  the  line 
  315. speed, parity, etc.
  316.  
  317. Note  also that,  if communications with the other system is  not 
  318. set  up  correctly or fails,  then there is no way  of  returning 
  319. control to the Archimedes keyboard other than by using the  BREAK 
  320. key.
  321.  
  322.  
  323. DO command-line
  324.  
  325. This command has been superseded by REMOTE HOST.
  326.  
  327.  
  328. EXIT or QUIT
  329.  
  330. Exits the Kermit program.
  331.  
  332.  
  333. FINISH
  334.  
  335. This command has been superseded by REMOTE FINISH.
  336.  
  337.  
  338. GET remote-file [local-file]
  339.  
  340. Asks the remote server to send a file.  'remote-file' is the file 
  341. to  be  sent,  in the filename syntax appropriate to  the  remote 
  342. system.   'local-file'  is  the Archimedes filename to  store  it 
  343. under;   if omitted,  the name that the remote sends in the File-
  344. Header  packet  will  be  translated  to  a  suitable  Archimedes 
  345. filename  (see  SET FILE NAME in §5).   If  'local-file'  is  not 
  346. given,  or  if  it  is given but it includes  no  ADFS  directory 
  347. specification, the file will be stored in the current directory.
  348.  
  349. Note  that  if  the server sends multiple files as  a  result  of 
  350. including  wildcards in 'remote-file',  then 'local-file'  should 
  351. not normally be given.   If the file overwrite warning is set  to 
  352. OVERWRITE, the file will be repeatedly overwritten;  if it is set 
  353. to RENAME no data will be lost but the file names will have to be 
  354. sorted out.   Arc-K knows nothing about the syntax of a  wildcard 
  355. name on the remote system, and so cannot check for this situation 
  356. before  the transfer is started.   However,  it may be  sometimes 
  357. useful to take advantage of this:  for example, to list the files 
  358. on  a  (parallel!)  printer  give  the  appropriate  device  name 
  359. ("PRINTER:") as the destination.
  360.  
  361.  
  362. HELP
  363.  
  364. Displays  a  summary of the control keys  available  in  command, 
  365. transfer and terminal modes.
  366.  
  367.  
  368. LOCAL CWD [directory]
  369.  
  370. Sets the current directory, where 'directory' is in Arthur format 
  371. and can include filing system, drive or volume name prefixes.  If 
  372. it is omitted,  & (the user root directory on the current  drive) 
  373. is assumed.
  374.  
  375.  
  376. LOCAL DIRECTORY [directory]
  377.  
  378. Displays  a  list of the files in  the  specified  directory,  in 
  379. roughly the same format as would be sent by REMOTE DIRECTORY (see 
  380. later).   If the 'directory' parameter is omitted, @ (the current 
  381. directory) is assumed.
  382.  
  383.  
  384. LOCAL HOST command-line
  385.  
  386. Sends  the  given 'command-line' to Arthur's CLI  for  execution.  
  387. Note  that built-in commands or those contained in  modules  will 
  388. cause  no  problem,  but running another application  will  abort 
  389. Kermit.  See REMOTE HOST in §6.
  390.  
  391.  
  392. LOCAL SPACE [device]
  393.  
  394. This  reports the medium name,  the amount of space free and  the 
  395. largest  contiguous free space available either on the  specified 
  396. device, or the current drive by default.
  397.  
  398.  
  399. RECEIVE [local-file]
  400.  
  401. Waits  for a file to be sent from a remote  non-server.   'local-
  402. file' is the filename that it will be stored under;   if omitted, 
  403. the name that the remote sends in the File-Header packet will  be 
  404. used  (as  for GET).   The remarks under GET  regarding  multiple 
  405. files also apply here.
  406.  
  407.  
  408. REMOTE BYE
  409.  
  410. Sends  a command to a remote server requesting it to  end  server 
  411. operation,  and  usually  (depending  on  the  particular  server 
  412. system)  to  terminate  the Kermit program  and/or  log  out  the 
  413. job/user running it.
  414.  
  415.  
  416. REMOTE COPY original-file new-file
  417.  
  418. Requests the remote server to copy a file or group of files.   In 
  419. this command,  as with all other commands that manipulate  remote 
  420. files, the file names are in the syntax of the remote system.
  421.  
  422.  
  423. REMOTE CWD [new-directory]
  424.  
  425. Requests the remote server to change its current directory,  i.e. 
  426. the  default  location  for files whose names do  not  include  a 
  427. directory specification.   If 'new-directory' is omitted,  either 
  428. set a system default, or simply reply with the current directory.
  429.  
  430.  
  431. REMOTE DELETE file
  432.  
  433. Tells  the remote server to delete a file.   Whether  'file'  may 
  434. include wildcards or not is determined by the remote system.
  435.  
  436.  
  437. REMOTE DIRECTORY [directory,selection-args]
  438.  
  439. Requests  the remote server to send a directory listing.   If  no 
  440. argument is given,  the current directory is listed.   The server 
  441. may  also accept arguments for selective listing,  or to  control 
  442. the listing format.
  443.  
  444.  
  445. REMOTE FINISH
  446.  
  447. Sends  a command to a remote server requesting it to exit  server 
  448. operation,  and  usually  (depending  on  the  particular  server 
  449. system) to return to Kermit command mode.
  450.  
  451.  
  452. REMOTE HELP [topic]
  453.  
  454. Asks  the  remote server to send help on  its  operation,  Kermit 
  455. commands or remote system information.   A topic may be given for 
  456. specific information.
  457.  
  458.  
  459. REMOTE HOST command-line
  460.  
  461. This  sends  the specified 'command-line' to be executed  by  the 
  462. remote server's operating system, and displays the results on the 
  463. Archimedes screen.
  464.  
  465.  
  466. REMOTE KERMIT command-line
  467.  
  468. This  sends  the specified 'command-line' to be executed  by  the 
  469. remote  Kermit's command processor,  just as if it was  typed  at 
  470. Kermit command level.  Usually this will be a SET command.
  471.  
  472.  
  473. REMOTE RENAME old-file new-file
  474.  
  475. Requests the server to rename a file or group of files.
  476.  
  477.  
  478. REMOTE SPACE [area]
  479.  
  480. Asks the server for a disc usage report.   If the 'area' argument 
  481. is  not  given,  space  on  the current disc  or  drive  will  be 
  482. reported.
  483.  
  484.  
  485. REMOTE STATUS
  486.  
  487. Asks  the  server  for a status report.   This  may  include  the 
  488. current state, and statistics of the last file transfer.
  489.  
  490.  
  491. REMOTE TYPE file
  492.  
  493. Requests that the remote server sends the given file or group  of 
  494. files  in  the same way as GET,  except that the  files  will  be 
  495. displayed  on the Archimedes screen rather than being  stored  on 
  496. disc.
  497.  
  498.  
  499. REMOTE WHO [selection-args]
  500.  
  501. Asks  the  server (if it is running on a timesharing  system)  to 
  502. list the users currently logged in.   The optional argument gives 
  503. user names to list, or listing options.
  504.  
  505.  
  506. SEND local-file [remote-file]
  507.  
  508. Sends  a  file  to a remote Kermit,  whether  a  server  or  not.  
  509. 'local-file' is the Archimedes file to be  sent.   'remote-file', 
  510. if  given,  is  the  name that will be sent  in  the  File-Header 
  511. packet;  if omitted, the (possibly translated) local name will be 
  512. used.   If 'local-file' includes no ADFS directory specification, 
  513. the file will be taken from the current directory.
  514.  
  515. Wildcards can be used in the local name to send a group of files.  
  516. If a wildcard name is given,  all those files matching it will be 
  517. transmitted  as a batch.   Note that the remote name  should  not 
  518. normally be given if a wildcard is specified, and Arc-K will give 
  519. a  warning  if this is done.   See the remarks under  GET  above, 
  520. which will probably apply to the receiving system.
  521.  
  522. For   compatibility  with  other  Kermit   implementations,   the 
  523. construction  of a wildcard name does not follow the  Acorn  ADFS 
  524. standard,  but uses a syntax similar to that of the Unix2  shell.  
  525. It recognises the following special characters and combinations:
  526.  
  527.  
  528.    *      Matches any number of characters,  including none.  For 
  529.           example,  "*" matches all files and "a*_c" would  match 
  530.           "accept_c", "accept_new_c" and of course "a_c".
  531.  
  532.    #      Matches  any  single  character.   For  example,  "###" 
  533.           matches all 3-character filenames,  while "s##_*" would 
  534.           match "sbr_c",  "sbr_h" and "set_obj", but not "swit_c" 
  535.           or "set".
  536.  
  537.   [ccc]   Matches  a single character,  which is one of the  ones 
  538.           enclosed between the []s.  The c's can be either single 
  539.           characters, or a range of characters specified as c1-c2 
  540.           which   includes  any  character  between  c1  and   c2 
  541.           (inclusive)  in  the  ASCII  collating  sequence.   For 
  542.           example,  "*_[ch]"  would match all C source or  header 
  543.           files,  while "[a-m]*" would match all files  beginning 
  544.           with a letter in the first half of the alphabet.
  545.  
  546.  
  547. As shown in the examples, these special characters can be used in 
  548. any combination within the same wildcard name.   Matching is case 
  549. sensitive.
  550.  
  551. No  facility  is provided to "escape" the special  characters  so 
  552. that  they are treated normally - people who are in the habit  of 
  553. creating  filenames with strange characters in them  deserve  all 
  554. the trouble they get.
  555.  
  556.  
  557. SERVER
  558.  
  559. This command causes Arc-K to enter server mode,  on the currently 
  560. selected serial line.   Commands will now be accepted in  packets 
  561. from the remote system until a BYE or FINISH request is received.  
  562. See §6 for a description of the facilities available.
  563.  
  564. Note  that if Arc-K is in local mode when this command is  given, 
  565. no further input will be accepted from the keyboard until  server 
  566. mode  ends.   Similar remarks to those given under  DETACH  apply 
  567. here.   Also note that, as with DETACH, if communication with the 
  568. other end is not set up correctly or is lost then it will not  be 
  569. possible to regain control of Arc-K other than by using the BREAK 
  570. key.
  571.  
  572.  
  573. SET parameter option
  574. SET sub-section parameter option
  575.  
  576. Controls  various options of the Kermit program.   See  the  next 
  577. section.
  578.  
  579.  
  580. SHOW [what]
  581.  
  582. Displays  the  current Kermit settings  and  parameters.   'what' 
  583. indicates what is to be shown, it may be:
  584.  
  585.  
  586.   ALL               Everything except VERSION.
  587.   COMMUNICATION     Settings  relating  to the  serial  port  and 
  588.                     terminal emulation.
  589.   FILE              Settings relating to file transfer.
  590.   PREFIX            The current quote characters.
  591.   SYSTEM            Settings which don't fit in anywhere else.
  592.   TRANSFER          Protocol parameters, timeouts, etc.
  593.   VERSION           The current Arc-K version.
  594.  
  595.  
  596. If 'what' is omitted, ALL is assumed.
  597.  
  598.  
  599. STOP
  600.  
  601. This  command  causes  a single Error packet to be  sent  to  the 
  602. remote  system,  which should cause any transfer in  progress  to 
  603. fail with a fatal error.
  604.  
  605. It  is useful for recovering from a fatal crash or  communication 
  606. problem, when the remote system thinks that the transfer is still 
  607. in progress (and so is listening for packets) although Arc-K  may 
  608. have returned to command mode.
  609.  
  610.  
  611. TAKE filename
  612.  
  613. Read and execute Kermit commands from a file.   No specific  file 
  614. type is required;  lines may be terminated by CR or LF (or both).
  615.  
  616. If the TAKE-ECHO option is set to ON,  command lines read from  a 
  617. TAKE  file  will  be listed on the screen  prior  to  them  being 
  618. executed.   They will be preceded  by  "TAKE-n>",  where n is the 
  619. TAKE file nesting level,  to distinguish them from commands typed 
  620. at the keyboard.
  621.  
  622. The  TAKE command can be used within a TAKE file,  thus  allowing 
  623. them  to be nested to a maximum of 10  levels.   However,  if  an 
  624. invalid  command  is read,  or if an error occurs during  a  file 
  625. transfer, the entire stack of TAKE files will be abandoned if the 
  626. TAKE-ABORT  option  is  set to ON.   (This  does  not  include  a 
  627. transfer  interruption initiated by ^X or ^Z;   however  it  does 
  628. include  a fatal error initiated by ^E,  or the use of  the  STOP 
  629. command  (what  would  this  command be  doing  in  a  TAKE  file 
  630. anyway?)).  This can be disabled by setting the TAKE-ABORT option 
  631. to OFF.
  632.  
  633.  
  634. * command-line
  635.  
  636. Issues an Arthur command, equivalent to LOCAL HOST as above.  The 
  637. space after the * is required.
  638.  
  639.  
  640.  
  641. 5.  The SET command
  642. -------------------
  643.  
  644.  
  645. The  options that can be controlled by the SET command are  given 
  646. below.   Some of these options can also be controlled by  generic 
  647. commands received in server mode - see the next section.
  648.  
  649. When  a  character is required,  it is specified  by  ASCII  code 
  650. (except in the case of CONTROL-QUOTE and  EIGHT-BIT-QUOTE,  where 
  651. it is given literally).
  652.  
  653. Wherever  a  number  is required,  it can be given  in  any  form 
  654. acceptable to OS_ReadUnsigned.   This means that hexadecimal  can 
  655. be specified with a leading &,  or a base can be specified  using 
  656. the  "b_nn" notation.   The default base is 10  (decimal).   Note 
  657. that SHOW always displays numbers in decimal.
  658.  
  659. Note  that  SEND,  RECEIVE and FILE are  logically  sub-sections, 
  660. although  they  are  described here as if  each  variant  were  a 
  661. separate option.
  662.  
  663.  
  664. BAUD speed [TRANSMIT,RECEIVE]
  665. SPEED speed [TRANSMIT,RECEIVE]
  666.  
  667. Set  the  baud rate to be used on the  communication  line.   The 
  668. valid rates are those listed in the Archimedes manual  (75,  150, 
  669. 300,  1200,  2400,  9600, 19200).  The transmit or receive speeds 
  670. can be set independently by using the optional argument;   if  it 
  671. is omitted, then both speeds are set.
  672.  
  673. The setting on entry is for the current speed to be retained  (as 
  674. set by the *FX7 or *FX8 commands,  or the CONFIGURE BAUD option), 
  675. and the speed will be displayed as "Not set" in this case.
  676.  
  677.  
  678. CONTROL-QUOTE char
  679.  
  680. Sets  the character that Arc-K will prefix control characters  in 
  681. packets  that it sends with,  and indicate to the  remote  system 
  682. that it will do so.  This is normally '#', but can be changed for 
  683. special applications.   Note that Arc-K,  when receiving packets, 
  684. always uses the quote character the remote has asked it to.
  685.  
  686.  
  687. DEBUGGING OFF,ON,FULL
  688.  
  689. Sets  the  debugging  level.   OFF is  the  initial  setting,  no 
  690. information  is  displayed.   ON causes messages  regarding  file 
  691. manipulation and packet read failures to be displayed.   FULL  in 
  692. addition displays information regarding the switcher  state,  and 
  693. the contents of all incoming and outgoing packets.
  694.  
  695. Note  that even if Arc-K is being used in remote or server  mode, 
  696. debug  information  will always be displayed  on  the  Archimedes 
  697. screen.
  698.  
  699. Also  note  that the debug information will  interfere  with  the 
  700. transfer  status  display,  if it  is  enabled.   DISPLAY  should 
  701. normally be set to OFF if DEBUGGING is set to ON or FULL;   if it 
  702. is ON a warning message will be displayed.
  703.  
  704.  
  705. DELAY time
  706.  
  707. Sets the wait,  in seconds, between a SEND command being accepted 
  708. and the file transfer starting.   If in remote (non-server) mode, 
  709. this  gives time to escape from the other system's terminal  mode 
  710. and type the RECEIVE command.  The initial setting is 5 seconds.
  711.  
  712. If Arc-K is in local mode the wait can be interrupted by pressing 
  713. any key;  the transfer will start immediately.
  714.  
  715.  
  716. DEVICE options
  717.  
  718. This QL-specific sub-section has been superseded by the LOCAL CWD 
  719. command, and it will give an appropriate warning message.
  720.  
  721.  
  722. DISPLAY OFF,ON
  723.  
  724. Controls  whether  a progress display is shown while  local  mode 
  725. transfer is in progress.   If it is set to OFF,  no output  other 
  726. than interrupt or error messages will be displayed during a  file 
  727. transfer, and generic command output will use the full screen.
  728.  
  729. If  the display is set to ON,  status will be shown in the  upper 
  730. part of the display and generic command output in the lower part.
  731.  
  732. The  display is not available in remote mode,  or if  the  screen 
  733. mode in use is not at least 80 columns wide.   If either of these 
  734. apply,  a warning will be given and DISPLAY will be automatically 
  735. set to OFF (the transfer will proceed normally).
  736.  
  737. It   is   recommended  that  DEBUGGING  and   DISPLAY   are   not 
  738. simultaneously selected.
  739.  
  740. The initial setting is ON.
  741.  
  742.  
  743. DUPLEX option
  744.  
  745. This  option is implemented as LOCAL-ECHO,  and is  retained  for 
  746. historical  compatibility.   It will give an appropriate  warning 
  747. message.
  748.  
  749.  
  750. EIGHT-BIT-QUOTE char
  751.  
  752. Sets the character that Arc-K will use for 8th-bit quoting, if it 
  753. is  necessary  and  the  remote system agrees  to  use  the  same 
  754. character.  This is normally  '&', but can be changed for special 
  755. applications.
  756.  
  757.  
  758. ENTER CR,LF,CRLF,LFCR
  759.  
  760. Sets  the  character(s)  that will  be  transmitted  in  terminal 
  761. emulation  mode when the RETURN key is pressed.   CR is  Carriage 
  762. Return (ASCII 13);   LF is Line Feed (ASCII 10).  If it is set to 
  763. CRLF  or  LFCR  then  two  characters  will  be  transmitted   in 
  764. succession.  The initial setting is CR.
  765.  
  766.  
  767. FILE INCOMPLETE DELETE,KEEP
  768.  
  769. Controls what happens to a partially received file if a  transfer 
  770. is abandoned (by a ^X or ^Z interrupt) or fails (due to an  error 
  771. or a ^E interrupt).   If set to DELETE,  the file is deleted;  if 
  772. set to KEEP,  the partial file is retained.   The initial setting 
  773. is DELETE.
  774.  
  775.  
  776. FILE NAME NORMAL,REVERSED,UNTRANSLATED
  777.  
  778. Controls  whether  file  names sent or  received  in  File-Header 
  779. packets are translated from or to a standard Kermit format before 
  780. use.   If set to UNTRANSLATED, when sending the name sent will be 
  781. identical  to the name the Archimedes file was opened  with  (not 
  782. necessarily that given on the command line);   for  receive,  the 
  783. name  contained  in the packet will be used  for  the  Archimedes 
  784. file.
  785.  
  786. If set to NORMAL,  the Archimedes filename will be translated  to 
  787. or  from  the  "standard"  Kermit format  (as  described  in  the 
  788. Protocol Manual).  The conversions applied for sending are:
  789.  
  790.   (a)     Any Archimedes device prefix is stripped off.
  791.  
  792.   (b)     Any  special directory name at the start (one  of  '@', 
  793.           '$',  '%',  '^',  '&'  or  '\' followed by  a  '.')  is 
  794.           stripped off.
  795.  
  796.   (c)     The last '_',  if present, is changed to a '.' (this is 
  797.           done to make the send and receive translations inverses 
  798.           of each other).
  799.  
  800.   (d)     The  last two components (separated by '.'s)  only  are 
  801.           retained.
  802.  
  803.   (e)     Any letters are converted to upper case.
  804.  
  805.  
  806. The conversions applied on receiving are:
  807.  
  808.   (a)     The  last two components (separated by '.'s)  only  are 
  809.           retained.
  810.  
  811.   (b)     If present, the last '.' is changed to a '_'.
  812.  
  813.   (c)     Any letters are converted to lower case.
  814.  
  815.   (d)     The  name  is  trimmed  to  the  ADFS  maximum  of   10 
  816.           characters.
  817.  
  818.  
  819. If  set to REVERSED a slightly different translation is  applied, 
  820. which will be useful for applications,  e.g.  language compilers, 
  821. which  use the directory part of a filename in place of  a  "file 
  822. extension" as used on many other systems.  It is mostly identical 
  823. to above, except that:
  824.  
  825.   (a)     No translation of '_' to '.' or vice versa is done.
  826.  
  827.   (b)     If  the result has two components,  they  are  reversed 
  828.           (still separated by a '.').
  829.  
  830.  
  831. Some examples of send translation (omitting UNTRANSLATED) are:
  832.  
  833.    Original                   Normal             Reversed
  834.  
  835.   path.c.file                 C.FILE              FILE.C
  836.   c.file                      C.FILE              FILE.C
  837.   file                        FILE                FILE
  838.   :0.$.file                   FILE                FILE
  839.   path.file_c                 FILE.C              FILE_C
  840.   file_c                      FILE.C              FILE_C
  841.  
  842.  
  843. Some examples of receive translation (omitting UNTRANSLATED) are:
  844.  
  845.    Original                   Normal             Reversed
  846.  
  847.     FILE.C                    file_c              c.file
  848.     FILE                      file                file
  849.     VERYLONGNAME              verylongna          verylongna
  850.     VERYLONGNAME.EXT          verylongna          ext.verylongna
  851.  
  852.  
  853. Note  that  ADFS does not automatically create  directories  when 
  854. creating  files,  i.e.  if  "c.file"  is to be  stored  then  the 
  855. directory  "c"  must already exist (a "Not found" error  will  be 
  856. given if it does not).  When using NORMAL translation, any '.' is 
  857. changed to an '_' to avoid this problem.
  858.  
  859. Also  note that,  if a remote name is given in the SEND  command, 
  860. this  will  be sent verbatim in the packet,  even  if  NORMAL  or 
  861. REVERSED mode is set.   Similarly,  if a local name is given  for 
  862. GET or RECEIVE, this will not be translated.
  863.  
  864. The initial mode is NORMAL.
  865.  
  866.  
  867. FILE SUFFIX [string]
  868.  
  869. This facility is no longer supported.
  870.  
  871.  
  872. FILE TYPE ASCII,BINARY [CR,LF,CRLF,LFCR]
  873.  
  874. Controls whether end-of-line translation is applied to file  data 
  875. sent  or  received  during a transfer.   If  set  to  BINARY,  no 
  876. translation is done;   this allows object files,  etc. to be sent 
  877. and received exactly as they appear in the filestore.
  878.  
  879. If set to ASCII, the further options are available to set the end 
  880. of  line sequence (these options are not available if  BINARY  is 
  881. set).  End-of-line translation is done as follows:
  882.  
  883.  
  884.           For sending,  CRLF is equivalent to CR and LFCR to  LF.  
  885.           A  CR or LF (respectively) in the file is sent  in  the 
  886.           packet as the prefix sequence "#M#J", assuming that the 
  887.           control-quote in use is '#'.  The "other" character (LF 
  888.           or CR respectively) will be ignored.
  889.  
  890.           For receiving, the encoded "other" character is ignored 
  891.           and the encoded CR or LF is written to the file as  CR, 
  892.           LF, CRLF or LFCR respectively.
  893.  
  894.  
  895. This has the effect (assuming that the option is set correctly at 
  896. both  ends of the link) of allowing a printable text file on  the 
  897. sending  system to become a printable text file on the  receiving 
  898. system,  regardless  of  the  means by  which  the  other  system 
  899. represents end of line.  The four end-of-line options allow files 
  900. used by almost any Archimedes application to be transferred.
  901.  
  902. If the end-of-line option is omitted when setting ASCII mode, the 
  903. option last given will be used.  If none has been used before, CR 
  904. is assumed.
  905.  
  906. Note  that  the FILE TYPE setting has no bearing on  whether  the 
  907. 8th-bit of a byte is sent, with quoting or otherwise.  It affects 
  908. end of line translation only.
  909.  
  910. The initial setting is ASCII CR.
  911.  
  912.  
  913. FILE WARNING OVERWRITE,RENAME
  914.  
  915. This option controls the action that Arc-K takes when a file that 
  916. it intends to create (when receiving) already exists.   If it  is 
  917. set to OVERWRITE,  the existing file will be lost and no  warning 
  918. given.   If  it  is  set to RENAME,  the existing  file  will  be 
  919. retained  and  the new file created under a unique name  made  by 
  920. adding a numeric suffix to the original name.
  921.  
  922. The initial setting is RENAME.
  923.  
  924.  
  925. LINE port
  926.  
  927. Sets the serial port to be used for data transfer.   At  present, 
  928. only  line '1' (the built-in serial port) is  supported.   Future 
  929. versions may support the multiple port podules available.
  930.  
  931.  
  932. LOCAL-ECHO OFF,ON
  933.  
  934. Controls whether keys pressed in terminal mode are echoed to  the 
  935. screen by Arc-K,  or by the remote computer.   Note that if it is 
  936. set  to  ON,  the  RETURN  key is  always  echoed  as  a  newline 
  937. regardless of the setting of the ENTER action.
  938.  
  939. The initial setting is OFF.
  940.  
  941.  
  942. PADDING [amount [character]]
  943.  
  944. Controls whether padding is inserted after a transmitted  packet, 
  945. to   allow  for  communication  line  delays  or  remote   system 
  946. requirements.   'amount' is the number of pad characters that are 
  947. to be transmitted;   the default is 0 (no padding).   'character' 
  948. is the character to be used;   the default is NUL (ASCII 0).   If 
  949. 'amount' and 'character' are omitted, no padding will be done.
  950.  
  951. Note  that  the  amount of padding and  the  character  used  are 
  952. subject  to negotiation in the Send-Init  packet  exchange.   The 
  953. algorithms used are explained later.
  954.  
  955.  
  956. PARITY NONE,ODD,EVEN,MARK,SPACE
  957.  
  958. Selects  the  parity  setting  that will be  used  by  Arc-K  for 
  959. transmission,  and checked on reception.   The initial setting is 
  960. NONE.
  961.  
  962. The parity setting interacts with whether 8th-bit quoting will be 
  963. specified or requested in the Send-Init packet exchange.  See the 
  964. notes later regarding this exchange.
  965.  
  966.  
  967. RECEIVE END-OF-LINE code
  968.  
  969. Specifies  the end-of-line character that Arc-K will request  the 
  970. remote system to terminate a packet with;  the initial setting is 
  971. Carriage  Return (ASCII 13).   Arc-K does not require any end  of 
  972. packet  marker,  so this option is redundant.   It  also  appears 
  973. pointless  to allow this character to be specified in  the  Send-
  974. Init exchange, since if a different terminator to the default was 
  975. required the Send-Init packet or its acknowledgement could not be 
  976. received!
  977.  
  978.  
  979. RECEIVE MARKER code
  980.  
  981. Specifies the character that Arc-K will look for to indicate  the 
  982. start of an incoming packet.   The initial setting is SOH  (ASCII 
  983. 1).
  984.  
  985.  
  986. RECEIVE PACKET-LENGTH length
  987.  
  988. Specifies  the maximum packet length that Arc-K will request  the 
  989. remote system to send.  The initial setting is the maximum of 94.  
  990. A sensible minimum is about 30,  but this is not enforced by Arc-
  991. K.
  992.  
  993.  
  994. RECEIVE TIMEOUT time
  995.  
  996. Specifies  the  time,  in seconds,  that Arc-K will wait  for  an 
  997. incoming packet (if the timer is enabled).   The initial  setting 
  998. is 20.  The timeout used is subject to Send-Init negotiation.
  999.  
  1000.  
  1001. RETRIES number
  1002.  
  1003. Sets the number of times that Arc-K will retransmit a packet when 
  1004. the expected reply is not received successfully.   This  includes 
  1005. packet read timeouts (if the timer is enabled),  timeouts  forced 
  1006. by  pressing  RETURN,  packets received with a  bad  checksum  or 
  1007. unexpected  reception of a previously received packet.   If  this 
  1008. limit is exceeded,  the transaction will be aborted.   Note  that 
  1009. the  retry  limit  applies to the  reception  of  one  particular 
  1010. packet, and not the total number of retries in a transaction.
  1011.  
  1012. The initial setting is 5.
  1013.  
  1014.  
  1015. SEND END-OF-LINE code
  1016.  
  1017. Specifies  the end-of-line character that Arc-K will terminate  a 
  1018. packet with;   the initial setting is Carriage Return (ASCII 13).  
  1019. The remarks under the corresponding RECEIVE option regarding  the 
  1020. specification  of this parameter in the Send-Init  exchange  also 
  1021. apply here.
  1022.  
  1023.  
  1024. SEND MARKER code
  1025.  
  1026. Specifies the character that Arc-K will transmit to indicate  the 
  1027. start of a packet.  The initial setting is SOH (ASCII 1).
  1028.  
  1029.  
  1030. SEND PACKET-LENGTH length
  1031.  
  1032. Specifies  the maximum packet length that Arc-K will send to  the 
  1033. remote  system.   The initial setting is the maximum  of  94.   A 
  1034. sensible minimum is about 30,  but this is not enforced by Arc-K.  
  1035. This length is subject to Send-Init negotiation.
  1036.  
  1037.  
  1038. SEND TIMEOUT time
  1039.  
  1040. Specifies the time,  in seconds,  that Arc-K will ask the  remote 
  1041. system  to  wait  for an incoming packet,  if it  has  a  timeout 
  1042. facility.  The initial setting is 20.
  1043.  
  1044.  
  1045. SERVER-WAKEUP OFF,ON
  1046.  
  1047. Controls  whether  the Arc-K server sends  periodic  NAK  packets 
  1048. while waiting for a command packet in server mode.  If set to ON, 
  1049. they  will be sent every 60 seconds;   this ensures that even  if 
  1050. Arc-K  is  serving  a system that cannot time  out  or  otherwise 
  1051. recover,   the   loss  of  a  command  packet  will   not   cause 
  1052. communications to stop indefinitely.
  1053.  
  1054. If set to OFF,  no wakeups will be sent;   it may be necessary to 
  1055. select  this if the other system cannot clear its  input  buffer.  
  1056. See the Protocol Manual for more information.
  1057.  
  1058. The initial setting is OFF.
  1059.  
  1060.  
  1061. TAKE-ABORT OFF,ON
  1062.  
  1063. Controls  whether  TAKE  files are abandoned when  a  command  or 
  1064. transfer error occurs.   If it is set to ON,  the entire stack of 
  1065. TAKE  files  (i.e.  the one containing the  command  causing  the 
  1066. error,  as  well as any that called it) is abandoned and  control 
  1067. returns  to the keyboard prompt.   If set to OFF,  the  error  is 
  1068. ignored and execution continues with the next command in the TAKE 
  1069. file.    See  the  description  of  the  TAKE  command  for  more 
  1070. information.
  1071.  
  1072. The initial setting is ON. 
  1073.  
  1074.  
  1075. TAKE-ECHO OFF,ON
  1076.  
  1077. Controls  whether command lines read from a TAKE file are  echoed 
  1078. on the screen before execution.   If set to ON,  they are  listed 
  1079. with a "prompt" identifying their source and the current level of 
  1080. TAKE file nesting.  See the TAKE command for more information.
  1081.  
  1082. The initial setting is ON.
  1083.  
  1084.  
  1085. TIMER OFF,ON
  1086.  
  1087. Controls whether Arc-K will time out if a packet being waited for 
  1088. is not received within the specified or negotiated time.   If set 
  1089. to OFF, Arc-K will never time out and will wait indefinitely if a 
  1090. packet  does not arrive (except that a timeout can be  simulated, 
  1091. if in local non-server mode,  by pressing RETURN).  If set to ON, 
  1092. timeout  processing  will be  performed  normally.   The  initial 
  1093. setting is ON.
  1094.  
  1095. Note  that this option,  and the SEND/RECEIVE  timeout  settings, 
  1096. have  no  bearing  on the time that a server  will  wait  for  an 
  1097. initial command packet.  See the SERVER-WAKEUP option.
  1098.  
  1099.  
  1100.  
  1101. 6.  Server mode functions available
  1102. -----------------------------------
  1103.  
  1104.  
  1105. When  Arc-K is running in server mode,  the following  facilities 
  1106. are available.   They are described in terms of the commands used 
  1107. to initiate them on a "typical" Kermit system.
  1108.  
  1109.  
  1110. BYE
  1111.  
  1112. This  causes  Arc-K to exit server mode,  and also  to  terminate 
  1113. itself.  A brief message will be sent to acknowledge this.
  1114.  
  1115.  
  1116. FINISH
  1117.  
  1118. This  causes  Arc-K to exit server mode,  and  return  to  Kermit 
  1119. command level in either local or remote mode depending on what it 
  1120. was when the SERVER command was issued.   A message will be  sent 
  1121. to indicate what command mode Arc-K is returning to.
  1122.  
  1123.  
  1124. GET remote-file [local-file]
  1125.  
  1126. This causes Arc-K to send a file or group of files.  The name may 
  1127. include wildcards as described under the SEND command in  section 
  1128. 4.
  1129.  
  1130.  
  1131. REMOTE CWD [directory]
  1132.  
  1133. This   generic  command  sets  the  current  directory  to   that 
  1134. specified;   the  default is the standard one of $.   Although  a 
  1135. password will probably be asked for, none is required.
  1136.  
  1137.  
  1138. REMOTE DELETE remote-file
  1139.  
  1140. This   causes  the  specified  file  to  be  deleted   from   the 
  1141. Archimedes's filestore.  No translation or wildcard processing is 
  1142. done on the file name (the name may not include  wildcards).   An 
  1143. error is returned if the file does not exist.
  1144.  
  1145.  
  1146. REMOTE DIRECTORY [directory]
  1147.  
  1148. A listing of the specified directory,  or if it is not given  the 
  1149. current directory,  will be sent.   The listing includes the file 
  1150. name,  a directory flag,  size in bytes and the Arthur file  type 
  1151. (if the file is stamped).
  1152.  
  1153.  
  1154. REMOTE HELP
  1155.  
  1156. This sends a list of the currently supported server commands.
  1157.  
  1158.  
  1159. REMOTE HOST
  1160.  
  1161. This  executes  an Arthur command line and reports  the  results.  
  1162. Operation is mostly as expected, but with some points to watch:
  1163.  
  1164.   1)      Attempting  to  start another  application  will  abort 
  1165.           Kermit,  with no error indication.  There appears to be 
  1166.           a  bug in Arthur 1.2's handling of  application  starts 
  1167.           rejected via the upcall vector or module service  call, 
  1168.           so this situation cannot be detected before  execution.  
  1169.           Built-in commands are mostly acceptable.
  1170.  
  1171.   2)      Kermit will also be aborted if application workspace is 
  1172.           corrupted, for example by using COPY with the Q (quick) 
  1173.           option.
  1174.  
  1175.   3)      The command output is actually redirected to a file, so 
  1176.           attempting  to give another  redirection  specification 
  1177.           will fail with a syntax error.
  1178.  
  1179.   4)      The  results  are not sent back until the  command  has 
  1180.           finished  executing.   If  it takes a  long  time,  the 
  1181.           client Kermit may time out and the subsequent  transfer 
  1182.           will  fail with a protocol error.   Arc-K  attempts  to 
  1183.           avoid this by clearing its input buffer after executing 
  1184.           the command and before sending the results back.
  1185.  
  1186.   5)      No input can be given to the command.   Arc-K  attempts 
  1187.           to trap input requests by redirecting input from NULL:, 
  1188.           but  some commands (for example Wipe) bypass  this  and 
  1189.           read the keyboard directly.
  1190.  
  1191. When  using this request,  a directory $.Tmp must be present  and 
  1192. writeable on the current drive.
  1193.  
  1194.  
  1195. REMOTE SPACE [device]
  1196.  
  1197. This  reports the medium name,  the amount of space free and  the 
  1198. largest  contiguous free space available either on the  specified 
  1199. device,  or  the  current  drive (drive  containing  the  current 
  1200. directory) by default.
  1201.  
  1202.  
  1203. REMOTE STATUS
  1204.  
  1205. This replies with the current Arc-K version,  the serial port  in 
  1206. use, and the current settings of the transfer file type.
  1207.  
  1208.  
  1209. REMOTE TYPE remote-file
  1210.  
  1211. This is similar to GET, except that the files will be sent with X 
  1212. packet headers thus causing them to be displayed on the receiving 
  1213. system's  screen  instead of being  stored  as  files.   Wildcard 
  1214. processing is performed on the file name.
  1215.  
  1216.  
  1217. SEND local-file [remote-file]
  1218.  
  1219. This  causes the Arc-K server to accept a file or group of  files 
  1220. and  to  store them in its filestore.   All the  receive  options 
  1221. (name translation, overwrite warning, etc.) apply to the received 
  1222. files.
  1223.  
  1224.  
  1225.  
  1226. 7.  Notes on Send-Init parameter negotiation
  1227. --------------------------------------------
  1228.  
  1229.  
  1230. Certain  parameters  relating to the file transfer that  is  just 
  1231. about to start are negotiated between the two sides in the  Send-
  1232. Init  packet exchange.   The algorithms Arc-K uses to derive  the 
  1233. parameters  eventually  used in the file transfer  are  described 
  1234. here.   Note that "send" and "receive" here refer to packets  and 
  1235. not  necessarily  file  data.   Also  observe  that  some  Kermit 
  1236. implementations  may well ignore the parameters requested in  the 
  1237. exchange,  and  either use their own settings or some  compromise 
  1238. (as Arc-K does in some cases).
  1239.  
  1240.  
  1241. (a)  Packet length
  1242.  
  1243. Arc-K  asks the remote system to send it packets no  longer  than 
  1244. the RECEIVE PACKET-LENGTH setting,  but will not fail if for some 
  1245. reason this request is ignored.  Initially the packet length that 
  1246. it sends is that specified by SEND PACKET-LENGTH;  however if the 
  1247. remote system requests it to send a shorter packet, Arc-K will do 
  1248. that.   The  eventual  length used is the minimum  of  the  Arc-K 
  1249. setting and the remote request.
  1250.  
  1251.  
  1252. (b)  Timeout
  1253.  
  1254. Arc-K requests the remote system to time out (if it is capable of 
  1255. doing so) after the SEND TIMEOUT interval.   The initial  timeout 
  1256. Arc-K uses is that set by RECEIVE TIMEOUT;   if the remote system 
  1257. specifies that Arc-K should use a longer interval, it will do so.  
  1258. The  eventual  receive timeout used is the maximum of  the  Arc-K 
  1259. setting and the remote request.
  1260.  
  1261.  
  1262. (c)  Padding amount
  1263.  
  1264. Arc-K does not require padding on receive,  and always  specifies 
  1265. that  no padding should be sent to it.   Initially the amount  of 
  1266. padding sent,  and the character used,  are those set by PADDING;  
  1267. after the exchange, if a greater number of padding characters are 
  1268. requested by the remote,  that number will be used.   The padding 
  1269. character sent is always that specified in the packet.
  1270.  
  1271.  
  1272. (d)  End of line
  1273.  
  1274. Arc-K sends the first packets with the terminator defined by SEND 
  1275. END-OF-LINE,  and  then  uses that requested by  the  remote,  if 
  1276. given.   Arc-K does not require a terminator on incoming packets, 
  1277. but requests that set by RECEIVE END-OF-LINE for completeness.
  1278.  
  1279.  
  1280. (e)  Control quote
  1281.  
  1282. The quote characters are not used until the Send-Init exchange is 
  1283. over,  therefore  no  initial setting is  relevant.   Arc-K  will 
  1284. inform  the  remote  system  that it will  send  data  using  the 
  1285. character set by CONTROL-QUOTE;   for receiving data it will  use 
  1286. the quote character the remote specifies.
  1287.  
  1288.  
  1289. (f) 8th-bit quote
  1290.  
  1291. The   current  parity  setting  interacts  with   8th-bit   quote 
  1292. negotiation as follows:
  1293.  
  1294. If the parity setting is NONE, Arc-K need not do 8th-bit quoting, 
  1295. but  will do so if the remote requires it.   In  this  case,  the 
  1296. quote  character  used is that specified by  the  remote,  if  it 
  1297. requires  8th-bit  prefixing  to be done.  If the remote need not 
  1298. do  8th-bit  quoting  either,  then it will  not  be  done.   The 
  1299. character  specified  by EIGHT-BIT-QUOTE is  irrelevant  in  this 
  1300. case.
  1301.  
  1302. If   the  parity  setting  is  one  which  permits   only   7-bit 
  1303. transmission,  Arc-K  will  specify that it needs to  do  8th-bit 
  1304. prefixing.   The  quote character used will depend on which  side 
  1305. initiates the exchange:
  1306.  
  1307. If Arc-K sends the Send-Init packet, it will request that 8th-bit 
  1308. quoting is to be done using the character currently set.   If the 
  1309. remote  replies that it will use the same character,  or it  will 
  1310. optionally   do  so,   that  character  will  be  used  for   the 
  1311. transaction.
  1312.  
  1313. In   the  case  where  Arc-K  reads  the  Send-Init  packet   and 
  1314. acknowledges with its own parameters, if the remote has specified 
  1315. optional  quoting then Arc-K will indicate that it must  use  the 
  1316. set character.   If the remote specifies a quote character,  thus 
  1317. indicating that it must prefix, then Arc-K will use the character 
  1318. specified too.
  1319.  
  1320.  
  1321. (g)  Other parameters
  1322.  
  1323. Arc-K supports only checksum type 1,  and assumes that the remote 
  1324. will agree.   Repeat count prefixing is not supported;   nor  are 
  1325. any exotic features such as file attributes,  sliding windows  or 
  1326. long packets.
  1327.  
  1328.  
  1329. Note  that,  if  any parameters are not specified by  the  remote 
  1330. system (i.e.  if it sends a short parameter packet),  Arc-K  will 
  1331. continue to use the initial settings as they were at the start of 
  1332. the transaction.
  1333.  
  1334.  
  1335.  
  1336. 8.  Building Arc-Kermit from source
  1337. ----------------------------------
  1338.  
  1339.  
  1340. To  build  Arc-K  from  source  requires  the  Acornsoft  ANSI  C 
  1341. development  system.    Obviously,   the  more  memory  and  disc 
  1342. available  the  less tedious recompilation  will  be.   A  "make" 
  1343. utility, if available, simplifies the task of maintenance.
  1344.  
  1345.  
  1346. The source files required are: 
  1347.  
  1348.  
  1349.             Name           Size (K)               Contents 
  1350.  
  1351.           main.c              10        Main program and global data 
  1352.           command.c           15        Command processor 
  1353.           display.c           8         Transfer status display
  1354.           function.c          14        Protocol support routines 
  1355.           switcher.c          18        Protocol state switcher 
  1356.           user_1.c            15        User commands 
  1357.           user_2.c            12        The SET command 
  1358.           terminal.c          1.5       Terminal emulation 
  1359.           subr_1.c            9         General subroutines 
  1360.           subr_2.c            15        Arthur-specific subroutines 
  1361.           subr_3.c            2         Output formatting subroutines
  1362.           generic.c           7         Server generic commands 
  1363.  
  1364.           kermit.h            14        General definitions 
  1365.           command.h           1         Command processor definitions 
  1366.           user.h              4         User command & option definitions 
  1367.  
  1368.           makefile            1         Dependency definition file
  1369.  
  1370.           module_bas          3.5       Source for utility module
  1371.  
  1372.  
  1373. Various  include files,  supplied with the C compiler,  are  also 
  1374. required.
  1375.  
  1376.  
  1377. These source files compile to the following files:
  1378.  
  1379.  
  1380.             Name           Size (K)               Contents 
  1381.  
  1382.           kermit              101       Main program
  1383.           module              0.5       Serial i/o utility module
  1384.  
  1385.  
  1386. Note that the file names given here are "standard" form,  not the 
  1387. Arthur  forms,  so that main.c will actually be stored as  c.main 
  1388. (except that the C compiler cc,  and the linker startup ld,  will 
  1389. accept standard forms).
  1390.  
  1391. No  particular compiler control arguments are required,  and  the 
  1392. only  additional  library  required  is  ArthurLib.   A  complete 
  1393. recompilation takes about 2 minutes (from hard disc).
  1394.  
  1395. The Kermit main program reduces to 54K if the shared C library is 
  1396. used.
  1397.  
  1398.  
  1399. For interest's sake,  Arc-K was developed on an A440 under Arthur 
  1400. 1.2.   As  well  as the C compiler and  linker,  the  only  other 
  1401. software  used was First Word Plus for editing (much better  than 
  1402. Twin),  plus an Archimedes implementation of Make3.  A very basic 
  1403. receive-only version of Kermit (written in Basic) was used to get 
  1404. the original source files onto the system.
  1405.  
  1406.  
  1407.  
  1408. 9.  Acknowledgments
  1409. -------------------
  1410.  
  1411.  
  1412. Thanks are yet again due to: 
  1413.  
  1414. Robert Coughlan,  once of Liverpool University,  for writing  the 
  1415. original  version  of  QL-Kermit  and  making  it  available  via 
  1416. Lancaster.
  1417.  
  1418. The  Lancaster Kermit Distribution Service,  and especially  Alan 
  1419. Phillips whose excellent implementation of BBC-Kermit inspired me 
  1420. to  provide  it with something to talk to  (that  was  QL-Kermit, 
  1421. on which this version is heavily based).
  1422.  
  1423. The  writers  of the original C-Kermit,  from which many  of  the 
  1424. algorithms used in Arc-K are taken;  also the original developers 
  1425. of the Kermit protocol.
  1426.  
  1427. Acorn,   for  at  last  building  the  best  affordable  computer 
  1428. available.  Let's fix the serial port bug next time, lads...
  1429.  
  1430. Also  Norman & Mycroft,  the implementers of an excellent ANSI  C 
  1431. for this wonderful machine.   But no thanks to the writer of  the 
  1432. ANSI C manual,  which leaves out more useful information than  it 
  1433. contains.
  1434.  
  1435. The writers of PD-Make, which made the development of Arc-K much 
  1436. easier.  Now if only someone would write a decent source debugger 
  1437. at a reasonable price...
  1438.  
  1439.