home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / c / ucterak.doc < prev    next >
Text File  |  2020-01-01  |  7KB  |  156 lines

  1. KERMIT UCSD is a version of KERMIT which runs under the UCSD psystem.  Due to
  2. the limitations of UCSD Pascal, there are several routines which must be
  3. written in assembly language.  This version was implemented on a Terak 8510A,
  4. which is a PDP 11/2.  Detailed below are the functions of the routines, as
  5. well as information needed for linking.
  6.  
  7.      The command parser is a separate compilation unit, which has the filename
  8. PARSER.
  9.  
  10.      KERMIT uses assembly routines for host computer and keyboard
  11. receiving. The file RCVHANDLR.TEXT contains all the routines for handling
  12. the characters received from the host, KBDHANDLR.TEXT contains all the
  13. routines for handling characters received from the keyboard, and SENDB contains
  14. the routine for sending a continuous break to an IBM mainframe.
  15.  
  16.      To build KERMIT, first assemble PARSER, RCVHANDLR, KBDHANDLR & SENDB.
  17. PARSER must then be linked into a library called PARSELIB.  Then compile
  18. KERMIT then finally enter the following linker sequence:
  19.  
  20.      Host file? KERMIT
  21.      Lib file? PARSELIB
  22.      Lib file? SENDB
  23.      Lib file? RCVHANDLR
  24.      Lib file? KBDHANDLR
  25.      Lib file? <cr>
  26.      Map name? <cr>
  27.      Output file? KERMIT.CODE
  28.  
  29. The order in which the library files are typed in makes a difference (for some
  30. unknown reason), as does the '.CODE' extension on the output file name.
  31.  
  32.      The following declarations are needed for KBDHANDLR and RCVHANDLR
  33.  
  34.         CONST RCVQSIZE = <maximum number of queued characters>
  35.  
  36.         TYPE QUEUE = RECORD    (* These are order-dependent !!! *)
  37.                        QSIZE: INTEGER
  38.                        INP: INTEGER
  39.                        OUTP: INTEGER
  40.                        MAXCHAR: INTEGER
  41.                        DATA: PACKED ARRAY [0..RCVQSIZE] OF CHAR
  42.                      END
  43.         VAR RCVQ: QUEUE     (* must be declared in outermost block *)
  44.  
  45. The routines RCVINIT and KBDINIT must be called at the beginning of the
  46. program in order to set up interrupt vectors and handlers.  They are
  47. declared as
  48.  
  49.      PROCEDURE RCVINIT (VAR Q: QUEUE; SIZE:INTEGER) EXTERNAL
  50.      PROCEDURE KBDINIT (VAR Q: QUEUE; SIZE:INTEGER) EXTERNAL
  51.  
  52. and should be called appropriately.  RCVINIT takes care of setting other
  53. system interrupt priorities so that keyboard and remote input override them.
  54. KBDINIT only deals with the keyboard interupts, since others will be taken
  55. care of by RCVINIT.
  56.  
  57.      The routines RCVFINIT and KBDFINIT should be Mcalled at the end of the
  58. program in order to restore interrupt vectors, handlers and priorities.  They
  59. are declared as
  60.  
  61.      PROCEDURE RCVFINIT; EXTERNAL;
  62.      PROCEDURE KBDFINIT; EXTERNAL;
  63.  
  64. and are called with no parameters.
  65.  
  66. The queue handlers run continuously as interrupt-driven tasks at high
  67. priority.  As characters come in, they advance the queue INP pointer and
  68. keep track of the maximum number of characters in the queues in the MAXCHAR
  69. variables.  Queue overflow is indicated by MAXCHAR > QSIZE.
  70.  
  71.      To send a break the routine SENDBRK is used, which sends a continuous
  72. break and should be declared as
  73.  
  74.      PROCEDURE SENDBRK; EXTERNAL;
  75.  
  76.      KERMIT-UCSD is a version of KERMIT written primarily in UCSD Pascal
  77. Version II.0.  There are four assembly language routines which manage special
  78. keyboard and remote input interrupt handlers, and one more which sends a
  79. continuous break signal.  The program was developed on a TERAK 8510A
  80. microcomputer, which is a PDP-11/2.  With the rewriting of the above five
  81. routines, plus two interrupt handlers, the program should be easily movable
  82. to any UCSD psystem.
  83.  
  84.      KERMIT-UCSD has the following limitations:
  85.  
  86.   1) No wild card designations of file names.
  87.   2) No eight-bit file quoting.
  88.   3) No character repeat counts.
  89.   4) No '?' and <esc> at the end of a command line.
  90.   5) No server communications.
  91.   6) Sending and receiving cannot be done for anything but .TEXT files
  92.      (which contain a two-block header and space compression codes).
  93.   7) Instead of using a clock to time out when waiting for a packet,
  94.      KERMIT-UCSD has a limit on the number of times it will look for
  95.      a response before giving up.
  96.  
  97. The commands recognized by KERMIT-UCSD are listed below.
  98.  
  99.   CONNECT     To make a "virtual terminal" connection to a remote
  100.               system. To break the connection and "escape" back to the
  101.               micro, type the escape sequence (CTRL-] C, that is Control
  102.               rightbracket followed immediately by the letter C.)
  103.  
  104.   EXIT        To return to main psystem command level.
  105.  
  106.   HELP        To get a list of KERMIT commands.  HELP can be followed by
  107.               any command, in which case the help will refer only to that
  108.               command.
  109.  
  110.   RECEIVE     To accept a file from the remote system.
  111.  
  112.   SEND        To send a file or group of files to the remote system.
  113.               Takes a filename as a parameter.
  114.  
  115.   SET         To establish system-dependent parameters.  The SET options
  116.               are as follows:
  117.  
  118.               DEBUG            To set debug mode ON or OFF (default is OFF).
  119.  
  120.               END-OF-LINE      To change the character used at the end of
  121.                                packets to something other than the default
  122.                                of CR.  It must be a digit between 0 and 31.
  123.  
  124.               ESCAPE           To change the escape sequence that lets you
  125.                                return to the PC Kermit from the remote host.
  126.                                The default is CTRL-] c.
  127.  
  128.               FILE-WARNING     ON/OFF, default is OFF.  If ON, Kermit will
  129.                                rename an incoming file so as not to
  130.                                write over a file that currently exists with the
  131.                                same name.
  132.  
  133.               IBM              ON/OFF, default is OFF.  This flaMg should be
  134.                                ON only when transfering files between the PC
  135.                                and an IBM VM/CMS system.  It also causes the
  136.                                parity to be set appropriately and activates
  137.                                local echoing.
  138.  
  139.               LOCAL-ECHO       ON/OFF, default is OFF.  This sets the duplex.
  140.                                It should be ON when using the IBM and OFF for
  141.                                the DEC-20.
  142.  
  143.               PARITY           EVEN, ODD, MARK, SPACE, or NONE.  NONE is the
  144.                                default but if the IBM flag is set, parity is
  145.                                set to MARK.  This flag selects the parity for
  146.                                outgoing and incoming characters during CONNECT
  147.                                and file transfer to match the requirements of
  148.  
  149.   SHOW        To see the values of parameters that can be modified
  150.               via the SET command.  SHOW ALL shows all parameters;  SHOW
  151.               followed by a parameter listed under SET will show the value
  152.               of only that parameter.
  153.  
  154. This version of KERMIT does not have a SET BAUD command because the baud rate
  155. is set by hardware on the TERAK.
  156.