This implementation of KERMIT is composed of seven modules: main program is the top level program KRMCMD provides a user command interface modeled after, but not nearly as comprehensive as, the TOPS-20 COMND facility. KRMGUTS contains the routines and data structures that actually implement the KERMIT protocol. ERR_CODES defines the error codes used to identify error and status conditions KRMRPT provides a uniform error reporting and status display facility KRMIO supports the special eight-bit file and serial port I/O facilities needed by KRMGUTS WINDOWLIB provides a rudimentary text window facility, wherein the screen is partitioned into a number of rectangular regions (windows), in which text may be displayed. The modules reside in six files, as follows: File Modules -------- ------------ KRMMAIN main program KRMGUTS KRMGUTS KRMCMD KRMCMD KRMIO KRMIO KRMWNDW WINDOWLIB KRMRPT ERR_CODES KRMRPT The heirarchical relation among the modules is as follows: KRMMAIN KRMCMD KRMGUTS KRMIO KRMRPT/ERR_CODES KRMWNDW The modules in the left column comprise the user interface, whereas the modules in the right column implement the Kermit protocol. The modules KRMRPT and ERR_CODES, which provide the error and status reporting mechanism, are used by all modules above them. The functions performed by each of the modules is described below. KRMGUTS is the module that does all the work - it actually implements the Kermit protocol. The other modules just interface it to the operating system's file and serial port I/O, and provide a way for the user to type commands to KRMGUTS.