@Part(PROKERMIT,root="KER:KUSER") @PageHeading(Even,Left="Page @ref(page)",Right="@b") @PageHeading(Odd,Left="@b",Right="Page @ref(page)") @Chapter @label(-PROK) @index[P/OS] @Index[DEC Professional] @index[PROFESSIONAL-350] @Begin @i(Program:)@\Stuart Hecht, David Stevens, Robert C. McQueen, Nick Bush,@* Stevens Institute of Technology @i(Documentation:)@\Robert C. McQueen, Stuart Hecht,@* Stevens Institute of Technology @i(Version:)@\1.0 @i(Date: )@\July 1984 @i(Documentation Date: )@\October 1984 @end @i @begin @tabclear()@tabset(3.5inches,4.0inches) Local operation:@\Yes Remote operation:@\Yes Transfers text files:@\Yes Transfers binary files:@\Yes (with limitations) Wildcard send:@\Yes @q<^X/^Y> interruption:@\Yes Filename collision avoidance:@\Unneeded Can time out:@\Yes 8th-bit prefixing:@\Yes Repeat count prefixing:@\Yes Alternate block checks:@\Yes Terminal emulation:@\Yes, uses PRO firmware (VT102) Communication settings:@\Yes; local echo, parity, baud rate Transmit BREAK:@\Yes IBM communication:@\Yes Transaction logging:@\No Session logging (raw download):@\No Raw upload:@\No Act as server:@\Yes Talk to server:@\Yes Advanced commands for servers:@\Yes Local file management:@\Yes; Full P/OS services Handle file attributes:@\No Command/init files:@\No Printer control:@\No @end Pro/Kermit is a program that implements the KERMIT file transfer protocol for the Digital Professional 350 under the P/OS operating system. This section will describe the things you should know about the P/OS file system in order to make effective use of KERMIT, and then it will describe Pro/Kermit. @Section The features of the P/OS file system of greatest interest to KERMIT users are the form of the file specifications. @Subheading

P/OS file specifications are of the form @example(DEVICE:[DIRECTORY]FILENAME.TYPE;VERSION) where DEVICE is name of the disk drive, DIRECTORY is up to 9 alphanumeric characters enclosed in square brackets, FILENAME is up to 9 alphanumeric characters, TYPE is three alphanumeric characters and VERSION is a decimal number. DEVICE, DIRECTORY and VERSION may be omitted. The DEVICE and DIRECTORY names when omitted will default to the user's current (default) disk and a directory. Then VERSION when omitted will default to the highest version of the file. Thus @q is normally sufficient to specify a file. The DEVICE, DIRECTORY, FILENAME and TYPE fields may contain alphabetic or numeric characters. There are no embedded or trailing spaces in these fields. Other characters may not be included within the P/OS environment. The fields of the file specification are set off from one another by the punctuation indicated above. The DEVICE name specifies the device upon which the file is resident. The DEVICE name can be BIGDISK, BIGVOLUME, DISKETTE1, DISKETTE2, or the volume name of a currently inserted diskette. The directory name identifies an area on the device. Pro/Kermit may or may not send the device, directory or generation to the remote Kermit. The exact functioning of Pro/Kermit depends on the setting of the File Naming option in the File Parameters menu. Normally Pro/Kermit will only send the file name and type. The file name is a unique identifier for the file. The type, also called the "extension", is an indicator which, by convention, tells what kind of file being referenced. For instance @Q is the source of an assembler program named FOO; @q might be the relocatable object module produced by assembling @q; @q could be an executable program produced by task building @q, and so on. @index P/OS allows a group of files to be specified in a single file specification by including the special "wildcard" characters,"@q<*>" and "@q<%>". A "@q<*>"" matches any string of characters from the current position to the end of the FILENAME or TYPE fields, including no characters at all. The "@q<%>" will match a single character in either the FILENAME or TYPE fields. Here are some examples: @Begin(Description,spread 0.5,leftmargin +10, indent -10) @q<*.BAS>@\Will match all files of type @q (all PRO/BASIC source files) in the current directory. @q@\Matches files of all types with name @q. @q@\Matches all files with names starting with F. @q<*F*.*>@\Matches all files with names containing an F. @q@\Matches all files with names starting with F, containing an X in the third character position. @q<%.*>@\Matches all files with names are exactly one character long. @End(Description) Wildcard notation is used on many computer systems in similar ways, and it is the mechanism most commonly used to instruct KERMIT to send a group of files. The Pro/Kermit user must bear in mind that other (non-@|P/OS) systems use different wildcard characters; for instance MS-DOS KERMIT uses ? instead of the % as the single character wildcard. When using Pro/Kermit to request a wildcard file group from a KERMIT-86 server, the P/OS "%" must be replaced by MS DOS "?" characters. @Subheading The file system used by P/OS provides for a large number of attributes to be associated with each file. These attributes provide some indication of whether the file is a text file, or is some other type of non-text data. The two major attributes that affect Pro/Kermit are the record type and record attribute. The record type describes how logical records are stored in the file. Records may be of some fixed length (specified by another attribute), or variable length (specified within each record), or stream (implying no real record divisions). The record attributes describe how the breaks between records are to be treated. For example, a record attribute of implied carriage return means that any program reading the file with intentions of printing it out should add a carriage return/line feed sequence between each record. Other attributes include FORTRAN carriage control and print file format. The "standard" method of storing text in a file under P/OS is to store one line of text per record (variable length records), with a carriage return/line feed sequence implied by the end of the record (implied carriage return). This is the method Pro/Kermit uses to store files it receives when using file type text. There is no standard format for storing binary files. Basically, any record format with no record attributes are used for binary files. Since programs which work with binary files under P/OS expect to see some particular format, more infomation is needed for transfer of binary files than for transfer of text files. The current version of Pro/Kermit is not capable of transferring all types binary files which were created on a P/OS system to another system and retrieving them intact, nor is is capable of transferring all types binary files created on a P/OS system to another P/OS, RSX-11M/M+, or VAX/VMS system intact. However, certain formats of binary files can be transferred, and binary files from some other systems may be transferred to a PRO and recovered intact. Binary files which are created on a PRO (or other Files-11 systems) with fixed 512 byte records (a fairly common format) can be transferred using Pro/Kermit. The only required action is to set the file type to "fixed" in the receiving Pro/Kermit. Binary files which have variable length records can be transferred from one PRO to another providing the maximum record length is less than 8192 bytes. This requires that both the sending and receiving Pro/Kermit's be set for file type block. Using two programs supplied with Pro/Kermit, it is possible to transfer almost any type of sequential file between PRO's, or between a PRO and a VAX/VMS or RSX-11M/M+ system. These two programs (PROHEX and PRODEH) will convert the binary files to text (using a variation on Intel hex format). The resulting text file can be transferred like any other, and finally "dehexified" reproducing the original file, with the major attributes intact. Unfortunately, the text files tend to be about twice the size of the original binary files, so the transfers take a bit longer than regular text files. On the plus side, the text versions of the files can be transferred to any system with a Kermit and still retrieved intact. They can also be transferred over 7-bit data paths without any problems. The bootstrap procedure (described below), makes use of hexified versions of the binary files which make up Pro/Kermit. @section Pro/Kermit is different from most of the Kermit implementations in that it is menu driven. P/OS has a menu based command interface with callable routines to display menus. Pro/Kermit utilizes these routines to provide an interface that is compatible with P/OS. Pro/Kermit is run from the menu in which you install it. You select the Kermit application and the press the DO or RETURN key. After you have done so, the Pro/Kermit main menu, figure @ref(Mainmenu), will appear on the screen. After the menu has been displayed you can select the command you wish to execute by positioning the pointer before the command and pressing the RETURN or DO key. At any point you may press the HELP key to get help on the current menu that you are in. Additionally you can position the pointer to an item that can be selected and press the HELP key to receive help on that item. @Section(Pro/Kermit Terminal Emulation) Pro/Kermit provides its own terminal emulation. It does not rely on any other software package to provide the terminal emulator. When in terminal emulation mode Pro/Kermit will respond to the Professional escape sequences. Terminal emulation mode is entered from the Kermit main menu CONNECT command. The following functions keys are currently supported in terminal emulation mode. @Begin(Description,leftmargin +10,indent -10) BREAK@\Send a break to the remote computer system. MAIN SCREEN@\Return to the Pro/Kermit main menu. EXIT@\Return to the Pro/Kermit main menu. HELP@\Print a short help message. F11 (ESC)@\Send an escape (octal 33). F12 (BS)@\Send a backspace character (octal 10). F13 (LF)@\Send a line feed (octal 12). @End(Description) Additionally you can set an escape character specifing the "@b Character" in the Terminal Emulation menu, figure @ref(TERMMENU). The default for the escape character is ^\ (Control backslash). The escape character prefixes the following set of single character commands. If you want to type the escape character at the remote system, then you must type two escape characters. @Begin(Description,leftmargin +10,indent -10) B@\Send a break C@\Close the connection. S@\Type a short status display. ?@\Display a short help message. @End(Description) @Section(Pro/Kermit Commands) This section contains a description of the Pro/Kermit commands. They are described in detail where they differ from the "ideal" KERMIT and briefly where they coincide. @Subheading

@case(device,x9700="@begin(figure,facecode U,leftmargin +4)", imprint10="@begin(figure,facecode U,leftmargin +4)", else="@begin(figure)" ) *********************** Pro/Kermit Version 1.0 **************** * * * Press MAIN SCREEN or EXIT to return to P/OS main menu * * Press HELP for help information * * Press ADDTNL OPTIONS for Remote Kermit commands * * * * -> * * @ux - Logout server Kermit and exit to P/OS * * @ux to host computer * * @ux a file from a server Kermit * * @ux a file from host * * @ux a file to host * * @ux server mode * * Set @ux * * @ux * * @ux

Services * * * * Additional Options available * ************************************************************************ Make a choice and press DO: @Caption(Main menu) @Tag(MAINMENU) @end(Figure) The main menu, as seen in figure @ref(Mainmenu), is the first menu that is displayed. The user can select a function from this menu or from the Remote Kermit commands menus. The remote Kermit command menus are accessed by pressing the ADDTNL OPTIONS key. The commands that are available in the main menu are: @Begin(Description,leftmargin +10,indent -10) BYE@\Generic LOGOUT command and exit to P/OS CONNECT@\Enter the terminal emulation mode. GET@\Get a file from the remote server Kermit. RECEIVE@\Receive a file from the remote system. SEND@\Send a file or a group of files to the remote host. The user will be prompted with a menu of files that can be sent to the remote kermit. The user can press the ADDTNL OPTIONS key and change the directory, or type in a full wildcarded file specification. ENTER@\Enter server mode. Parameters@\Enters the Parameter Setting menu (figure @ref(SETMENU)). STATUS@\Causes the various counters to be displayed. P/OS@\Enters the P/OS Services menu (figure @ref(POSMENU)). @End(Description) Three of the function keys are also valid in the main menu. These function keys are: @Begin(Description,leftmargin +10,indent -10) ADDTNL OPTIONS@\This key will cause the first of two remote Kermit command menus to be displayed. The menu that this displays is show by figure @ref(REMMENU1). EXIT@\This key will cause Pro/Kermit to exit to P/OS. MAIN SCREEN@\This key will also cause Pro/Kermit to exit to P/OS. @End(Description) @Subheading @case(device,x9700="@begin(figure,facecode U,leftmargin +4)", imprint10="@begin(figure,facecode U,leftmargin +4)", else="@begin(figure)" ) *************************** Remote Kermit Commands ********************* * * * Press MAIN SCREEN to return to the main menu * * Press EXIT to return to the previous menu * * Press ADDTNL OPTIONS for additional Remote Kermit commands * * * * -> * * @ux remote file * * @ux of remote files * * @ux usage * * @ux remote file * * @ux working directory * * @ux of Server Kermit * * @ux on commands the Server Kermit supports * * @ux Server Kermit * * @ux using Server Kermit * * Perform a command on Server's @ux * * * * Additional Options available * ************************************************************************ Make a choice and press DO: @Caption(Remote Kermit Commands - Menu #1) @Tag(REMMENU1) @End(Figure) There are two menus that provide access to the remote Kermit commands. The first menu, @ref(REMMENU1), provides the following commands: @Begin(Description,leftmargin +10,indent -10) @b remote file@\Implementing the "REMOTE TYPE" command. You will be prompted to type in the remote file specification to be displayed. @b of remote files@\Implementing the "REMOTE DIRECTORY" command. You will be prompted for the directory name. @b usage@\Implementing the "REMOTE DISK-USAGE" command. You will be prompted for the disk area. @b remote file@\Implementing the "REMOTE DELETE" command. You will be prompted for the remote file specification(s) to be deleted. @b working directory@\Implementing the "REMOTE CWD" command. You will be prompted for the working directory to change to and the password that may be required to access that directory. @b of Server Kermit@\This command implements the "REMOTE STATUS" generic command. @b on commands the Server Kermit supports@\This command implements the "REMOTE HELP" generic command. @b Server Kermit@\This command implements the "REMOTE LOGOUT" generic command. @b using Server Kermit@\This menu item implements the "REMOTE FINISH" generic command. Perform a command on Server's @b@\This command implements the "REMOTE HOST" generic command. The user will be prompted for the command string to send to the host system. @End(Description) The commands that can be found in the second remote commands menu are: @case(device,x9700="@begin(figure,facecode U,leftmargin +4)", imprint10="@begin(figure,facecode U,leftmargin +4)", else="@begin(figure)" ) **************************** Remote Kermit Commands ******************** * * * Press MAIN SCREEN to return to the main menu * * Press EXIT to return to the previous menu * * Press ADDTNL OPTIONS to return to the main menu * * * * * * * * * * -> * * @ux remote files * * @ux remote files * * @ux is logged into the remote system * * * * * * * * * * * * Additional Options available * ************************************************************************ Make a choice and press DO: @Caption(Remote Kermit commands - Menu #2) @tag(REMMENU2) @end(Figure) @Begin(Description,leftmargin +10,indent -10) @b remote files@\Implements the generic "REMOTE COPY" command. Pro/Kermit will prompt for the two remote file specifications and then will send the command to the remote server Kermit for execution. @b remote files@\Implements the generic "REMOTE RENAME" command. Pro/Kermit will prompt for the two remote file specifications and then will send the generic command to the remote server Kermit for execution. @b is logged into the remote system@\Will ask for the information that is to be passed to the remote server Kermit for this command. The information that you have to type in, if any, depends on the server Kermit implementation. @end(Description) @Subheading @case(device,x9700="@begin(figure,facecode U,leftmargin +4)", imprint10="@begin(figure,facecode U,leftmargin +4)", else="@begin(figure)" ) ****************************** Parameter Setting *********************** * * * Press EXIT to return to the previous menu * * Press MAIN SCREEN to return to the Pro/Kermit main menu * * * * * * * * * * -> * * @ux parameters * * @ux parameters * * @ux parameters * * @ux parameters * * @ux characteristics * * @ux emulation * * * * * * * ************************************************************************ Make a choice and press DO: @Caption(Parameter Setting menu) @tag(Setmenu) @end(Figure) The "Setting parameters" menu is entered into from the main menu. This will allow you to choose the type of parameters that you can set. Entering this menu is much the type the "SET" of a generic SET command. @Begin(Description,leftmargin +10,indent -10) @b parameters@\This option will allow you to set general Pro/Kermit parameters. These parameters include the number of retries to attempt when sending packets, eigtht bit quoting, the repeat character and the state of the debugging flag. The "General Parameters" menu, figure @ref(GENMENU), will be displayed to allow you to set these parameters. @b parameters@\Selection this option will cause the "Send Packet Parameters" menu to be displayed. Selecting this option is equivalent to typing the generic "SET SEND" command. The "Send Packet Parameters" menu is show in figure @ref(SENDMENU). @b parameters@\Selecting this option will cause the "Receive Parameters" menu to be displayed. The selection of the option is equivalent to typing the "SET RECEIVE" generic command. The "Receive Parameters" menu is show in figure @ref(RECMENU). @b parameters@\This option will display the "File Parameters" menu. This allows the setting of the file disposition, file type and file specification translation. This menu is show in figure @ref(FILEMENU). @b characteristics@\This option allows changing of some of the communications port (XK0) parameters. These parameters include the transmit and receive speeds, parity and flow control. The "Line Parameters" menu is displayed when this option is selected. This menu is show in figure @ref(LINEMENU). @b emulation@\The "Terminal Emulation Parameters" menu will be displayed when this option is selected. This will allow you to change various terminal emulation parameters like the escape character, local echo and others. The menu is show in figure @ref(TERMMENU). @End(Description) @Subheading @case(device,x9700="@begin(figure,facecode U,leftmargin +4)", imprint10="@begin(figure,facecode U,leftmargin +4)", else="@begin(figure)" ) ****************************** General Parameters ********************** * * * Press EXIT to return to the previous menu. * * Press MAIN SCREEN to return to the Pro/Kermit main menu * * * * * * * * * * -> * * @ux type 1 character(s) * * @ux quoting character ~ (176) * * @ux bit quoting character & (46) * * Retries for @ux packet 5. * * Retries for @ux packets 16. * * @ux (ON/@ux) * * * * * * * ************************************************************************ Make a choice and press DO: @Caption(General Parameters menu) @Tag(GENMENU) @end(Figure) The following describes the general parameters that can be set. These parameters are set from the "General Parameters" menu, figure @ref(GENMENU). @Begin(Description,leftmargin +10,indent -10) @b type@\This will set the new error detection method. This command is similar to the "SET BLOCK-CHECK" generic command. The default value for this option is 1 character checksums. If this option is selected the next menu that will appear is the Block Check Charaters menu as shown in figure @ref(CHKMENU). @b quoting character@\The default for this option is "~" (octal 176). @b bit quoting character@\The default for this option is "&" (octal 46). Retries for @b packet@\This command is similar to the "SET RETRY INITIAL-CONNECTION" generic command. The default for this command is 5. Retries for @b packets@\This command is similar to the "SET RETRY PACKETS" generic command. The default for this command is 16. @b@\This command is the same as the "SET DEBUGGING ON/OFF" commands in the generic Kermit. Selection of this item will toggle the state of the debugging flag. The default is for debugging to be off. @End(Description) @Subheading @case(device,x9700="@begin(figure,facecode U,leftmargin +4)", imprint10="@begin(figure,facecode U,leftmargin +4)", else="@begin(figure)" ) **************************** Send Packet Parameters ******************** * * * Press EXIT to return to the previous menu * * Press MAIN SCREEN to return to the Pro/Kermit main menu * * * * * * * * -> * * @ux ^M (15) * * @ux 80. * * @ux 0. * * @ux @q<^@@> (0) * * @ux 15. Sec. * * @ux ^A (1) * * @ux # (43) * * * * * * * ************************************************************************ Make selection and press DO: @Caption(Send Packet Parameters menu) @Tag(SENDMENU) @end(Figure) This menu implements most of the SET SEND generic Kermit commands. The values will be prompted for on the last line of the screen. To set one of the values you should select the item from the menu, press the DO key and then enter the value terminated by the DO key. @Begin(Description,leftmargin +10,indent -10) @b@\This command performs the function of the generic Kermit command SET SEND END-OF-LINE. The default value for this is a control-M (octal 15). @b@\This command performs the function of the generic Kermit command SET SEND PACKET-LENGTH. The default value is 80 decimal. @b@\This command will set the number of padding characters to send. It is the same as the first part of the generic command SET PADDING. The default is to send no padding characters. @b@\This command will set the padding character that is to be sent. It is the same as the second part of the generic command SET PADDING. The default is to send a null character (0 octal). @b@\This will set the number of seconds to wait for a packet before trying again. It is the same as the generic Kermit command SET SEND TIMEOUT. The default value is 15 seconds. @b@\This command is identical to the SET SEND START-OF-PACKET generic Kermit command. The default for this command is a control-A (1 octal). @b@\This command performs the same function as the SET SEND QUOTE generic command. The default value for this is "#" (43 octal). @End(Description) @Subheading @case(device,x9700="@begin(figure,facecode U,leftmargin +4)", imprint10="@begin(figure,facecode U,leftmargin +4)", else="@begin(figure)" ) ************************** Receive Packet Parameters ******************* * * * Press EXIT to return to the previous menu. * * Press MAIN SCREEN to return to the Pro/Kermit main menu. * * * * * * * * -> * * @ux ^M (15) * * @ux 80. * * @ux 0. * * @ux @q<^@@> (0) * * @ux 15. Sec. * * @ux ^A (1) * * @ux # (43) * * * * * * * ************************************************************************ Make a choice and press DO: @Caption(Receive Packet Parameters menu) @Tag(RECMENU) @end(Figure) This menu implements most of the SET RECEIVE generic Kermit commands. The values will be prompted for on the last line of the screen. To set one of the values you should select the item from the menu, press the DO key and then enter the value terminated by the DO key. @Begin(Description,leftmargin +10,indent -10) @b@\This option implements the generic Kermit command SET RECEIVE END-OF-LINE command. The default for this is a carriage return (control-M, 15 octal). @b@\This option implements the generic Kermit command SET RECEIVE PACKET-LENGTH command. The default value for this parameter is 80. @b@\The generic Kermit command SET RECEIVE PADDING is implmented by this option and the following option, @b. This option implements the first part of the command, the number of padding characters. The default for this option is no padding characters. @b@\This option implements the second part of the SET RECEIVE PADDING generic command. The padding charcter is set by this option. The default for this is a null (0 octal). @b@\This option implements the generic Kermit command SET RECEIVE TIMEOUT. The default for this command is 15 seconds. @b@\This option implements SET RECEIVE START-OF-PACKET generic Kermit command. The default for this command is a control-A (1 octal). @b@\This option implements the SET RECEIVE QUOTE generic command. The default for this option is "#" (43 octal). @End(Description) @Subheading @case(device,x9700="@begin(figure,facecode U,leftmargin +4)", imprint10="@begin(figure,facecode U,leftmargin +4)", else="@begin(figure)" ) ****************************** File Parameters ************************* * * * Press EXIT to return to the previous menu. * * Press MAIN SCREEN to return to the Pro/Kermit main menu * * * * * * * * * * * * -> * * File @ux ASCII * * File @ux Normal * * @ux for incomplete received files Delete * * * * * * * * * * * ************************************************************************ Make a choice and press DO: @Caption(File Parameters menu) @Tag(FILEMENU) @end(Figure) The File Parameters menu, @ref(FILEMENU), implements the SET FILE and SET INCOMPLETE generic Kermit commands. This menu will invoke other menus to set the parameters. @Begin(Description,leftmargin +10,indent -10) File @b@\Selection of this option will invoke the Set File mode menu, as show in figure @ref(FMODMENU). The default value for this item is ASCII. File @b@\This option will invoke the File Specification Handling menu, as show in figure @ref(FSPECMENU). The default for this option is NORMAL. @b for incomplete received files@\Selection of this option is the same as the SET INCOMPLETE generic Kermit command. The menu that is invoked by selection of this option is show in figure @ref(FDISPMENU). The default value is DELETE. @End(Description) @Subheading @case(device,x9700="@begin(figure,facecode U,leftmargin +4)", imprint10="@begin(figure,facecode U,leftmargin +4)", else="@begin(figure)" ) ************************ File Specification Handling ******************* * * * Press EXIT to return to the previous menu * * Press MAIN SCREEN to return to the Pro/Kermit main menu * * * * * * * * * * * * -> * * @ux file specifications * * @ux form file specifications * * @ux file specifications * * * * * * * * * * * ************************************************************************ Make a choice and press DO: @Caption(File Specification Handling menu) @Tag(FSPECMENU) @end(Figure) This command will set the type of translation that must be done on the file sepcification when sending and receiving one. This command is similar to the Kermit-10 and Kermit-32 SET FILE NAMING commands. @Begin(Description,leftmargin +10,indent -10) @b file specifications@\This option will cause Kermit to send the full file specification without any modifications. @b form file specifications@\This will cause Kermit to send only the file name and file type, and perform translations on received file specifications to force them to be only a valid file name and type. @b file specifications@\This option will cause Kermit to send only the file name and type to the remote Kermit. It will not do any translations on the name and type. The device and directory information will be removed before the transfer. Kermit will do not translation on the incoming file specification. @End(Description) @Subheading @case(device,x9700="@begin(figure,facecode U,leftmargin +4)", imprint10="@begin(figure,facecode U,leftmargin +4)", else="@begin(figure)" ) ******************************* File Disposition *********************** * * * Press EXIT to return to the previous menu * * Press MAIN SCREEN to return to the Pro/Kermit main menu * * * * * * * * * * * * * * -> * * @ux incompletely transfered files * * @ux incompletely transfered files * * * * * * * * * * * ************************************************************************ Make a choice and press DO: @Caption(File Disposition menu) @Tag(FDISPMENU) @end(Figure) The File Disposition menu, figure @ref(FDISPMENU), implements the SET INCOMPLETE generic Kermit command. The options that you can select are the values you can specify for the command. @Begin(Description,leftmargin +10,indent -10) @b incompletely transfered files@\This option implements the SET INCOMPLETE KEEP generic command. This specifies that files that are received should always be kept. @b incompletely transfered files@\The SET INCOMPLETE DELETE generic command is implemented by this option. This is the default for the command. @End(Description) @Subheading @case(device,x9700="@begin(figure,facecode U,leftmargin +4)", imprint10="@begin(figure,facecode U,leftmargin +4)", else="@begin(figure)" ) ******************************** Set File mode ************************* * * * Press EXIT to return to previous menu * * Press MAIN SCREEN to return to the Pro/Kermit main menu * * * * * * * * * * * * -> * * @ux * * @ux * * @ux * * @ux * * * * * * * * * ************************************************************************ Make choice and press DO: @Caption(File Mode menu) @Tag(FMODMENU) @end(Figure) The File Mode menu, figure @ref(FMODMENU), implement one of the SET FILE generic Kermit commands. This menu is used to sent the type of file that Kermit is dealing with, for more information on file types, see the section on Text and Binary files. @Begin(Description,leftmargin +10,indent -10) @b@\This is the default for this command. @b@\File type BINARY is for non-text files. Note that binary files which are generated on a P/OS system cannot be transferred to another VMS system without losing file attributes. This means that (for example), an .EXE file cannot be transmitted with Pro/Kermit. (This problem should be resolved in a future verison of Kermit). @b@\ @b@\ @End(Description) @Subheading @case(device,x9700="@begin(figure,facecode U,leftmargin +4)", imprint10="@begin(figure,facecode U,leftmargin +4)", else="@begin(figure)" ) ************************ Terminal Emulation Parameters ***************** * * * Press EXIT to return to the previous menu * * Press MAIN SCREEN to return to the Pro/Kermit main menu * * * * * * * * * * -> * * @ux echo (On/@ux) * * @ux ^Q (21) * * @ux Character ^\ (34) * * @ux (On/@ux) * * Transparent @ux keys (On/@ux) * * @ux<7-Bit> character codes (@ux/Off) * * * * * * * ************************************************************************ Make a selection and press DO: @Caption(Terminal Emulation Parameters menu) @Tag(TERMMENU) @end(Figure) @Begin(Description,leftmargin +10,indent -10) @b echo@\The default is off. @b@\The default character is Control-Q (Octal 21). @b Character@\The default character is Control-\ (Octal 34). @b@\The default is off. Transparent @b keys@\The default is off. @b<7-Bit> character codes@\The default is on. @End(Description) @subsection(Parity menu) @case(device,x9700="@begin(figure,facecode U,leftmargin +4)", imprint10="@begin(figure,facecode U,leftmargin +4)", else="@begin(figure)" ) ********************************** Set Parity ************************** * * * Press EXIT to return to previous menu * * Press MAIN SCREEN to return to the Pro/Kermit main menu * * * * * * * * * * -> * * @ux * * @ux * * @ux * * @ux * * @ux * * * * * * * * * ************************************************************************ Make a selection and press DO: @Caption(Set Parity menu) @Tag(PARMENU) @end(Figure) @index(SET PARITY) Making a selection from the Parity menu, figure @ref(PARMENU), is equivalent to issuing the "SET PARITY" command to a generic Kermit. If you were to select the @b option in this menu, it would be equivalent to issuing the generic command "SET PARITY SPACE", or selecting @b would be equivalent to "SET PARITY NONE". @Begin(Description,leftmargin +10,indent -10) @b@\Selecting this option is equivalent to giving the "SET PARITY EVEN" generic Kermit command. @b@\Selecting this option is equivalent to giving the "SET PARITY NONE" generic Kermit command. This is the default. @b@\Selecting this option is equivalent to the "SET PARITY MARK" generic Kermit command. @b@\Selecting this option is equivalent to the "SET PARITY ODD" generic Kermit command. @b@\Selecting this option is equivalent to the "SET PARITY SPACE" generic Kermit command. @End(Description) @Subheading @case(device,x9700="@begin(figure,facecode U,leftmargin +4)", imprint10="@begin(figure,facecode U,leftmargin +4)", else="@begin(figure)" ) *************************** Set Line Characteristics ******************* * * * Press EXIT to return to previous menu * * Press MAIN SCREEN to return to the Pro/Kermit main menu * * * * * * * * * * -> * * @ux speed (baud) 9600. * * @ux speed (baud) 9600. * * @ux None * * @ux flow control (@ux,DISABLED) * * @ux type No modem, hard-wired line * * * * * * * * * ************************************************************************ Make a choice and press DO: @Caption(Set Line Characteristics menu) @Tag(LINEMENU) @end(Figure) The Set Line Characteristics menu, figure @ref(LINEMENU), will allow you to change the communications port parameters. These parameters currently include the receive and transmit speeds, the flow control (XON/XOFF) processing and the type of parity to use. @Begin(Description,leftmargin +10,indent -10) @b speed (baud)@\This option will allow you to change the speed that the Professional receives characters at over the communications port. The default receive speed is 1200 baud. @b speed (baud)@\Selection of this option will allow you to change the transmit speed of the communications port. The default for the communications port is 1200 baud. @b@\This option allows you to set the type of parity checking that is done for characters received and the type that is added to characters sent. The default is no parity (@b). @b flow control@\The default is @b. @b type@\The default is "No modem, hard-wired line". This parameter should @b be changed even if you are using a modem. @end(Description) @subheading @case(device,x9700="@begin(figure,facecode U,leftmargin +4)", imprint10="@begin(figure,facecode U,leftmargin +4)", else="@begin(figure)" ) ***************************** Line Characteristics ********************* * * * Press EXIT to return to the previous menu * * Press MAIN SCREEN to return to the Pro/Kermit main menu * * * * * * * * * * * * -> * * Set @ux line characteristics * * Set @ux line characteristics * * @ux current line characteristics to defaults * * * * * * * * * * * ************************************************************************ Make a choice and press DO: @Caption(Line Characteristics menu) @Tag(LCHARMENU) @end(Figure) Pro/Kermit will allow you to set the default communications line parameters. The Line Characteristics menu, figure @ref(LCHARMENU), will allow you to modify the default values, the current values or reset the current values from the stored defaults. The default values are kept in a binary file on the Professional. @Begin(Description,leftmargin +10,indent -10) Set @b line characteristics@\Selection of this option will cause the default line characteristics to be modified. The next menu that will be displayed is the Set Line Characteristics menu, figure @REF(LINEMENU). Set @b line characteristics@\Selecting this option will cause the current line characteristics to be modified. The next menu will be the Set Line Characteristics menu, figure @REF(LINEMENU), with the current parameters being displayed. @b current line characteristics to defaults@\Selecting this option will cause the current line characterics to be reset to the defaults. @end(Description) @subheading The modem type should be set to "@b, hard-wired line. It should never be changed to something else. @case(device,x9700="@begin(figure,facecode U,leftmargin +4)", imprint10="@begin(figure,facecode U,leftmargin +4)", else="@begin(figure)" ) ******************************** Set modem type ************************ * * * Press EXIT to return to the previous menu. * * Press MAIN SCREEN to return to the Pro/Kermit main menu * * * * * * * * * * -> * * @ux, hard-wired line * * USFSK- 0..300 baud Bell @ux<103J> * * @ux - 0..300 baud European * * CCITTV.23 @ux - 75/0..300 split * * CCITTV.23 @ux - 75/0..1200 split * * DPSK - 1200 baud Bell @ux<212> * * * * * * * ************************************************************************ Make a choice and press DO: @Caption(Set modem type menu) @Tag(MODEMMENU) @end(Figure) @subheading @case(device,x9700="@begin(figure,facecode U,leftmargin +4)", imprint10="@begin(figure,facecode U,leftmargin +4)", else="@begin(figure)" ) **************************** Block Check Characters ******************** * * * Press EXIT to return to the previous menu * * Press MAIN SCREEN to return to the Pro/Kermit main menu * * * * * * * * * * * * -> * * @ux<1> character checksum * * @ux<2> character checksum * * @ux<3> character CRC-CCITT * * * * * * * * * * * ************************************************************************ Make a choice and press DO: @Caption(Block Check Characters menu) @Tag(CHKMENU) @end(Figure) The Block Check Characters menu, figure @ref(CHKMENU), will allow you to set the check characters that are used in the messages that are sent and received. This menu implements the generic command "SET BLOCK-CHECK". @Begin(Description,leftmargin +8,indent -10) @b<1> character checksum@\This option implements the SET BLOCK-CHECK 1-CHARACTER-CHECKSUM generic command. This is the default for the SET BLOCK-CHECK. @b<2> character checksum@\This option implements the SET BLOCK-CHECK 2-CHARACTER-CHECKSUM generic command. @b<3> character CRC-CCITT@\This option implements the SET BLOCK-CHECK 3-CHARACTER-CRC generic command. @end(Description) @subheading

@case(device,x9700="@begin(figure,facecode U,leftmargin +4)", imprint10="@begin(figure,facecode U,leftmargin +4)", else="@begin(figure)" ) ******************************** P/OS Services ************************* * * * * * Press EXIT or MAIN SCREEN to return to the Pro/Kermit main menu. * * * * * * * * * * -> * * @ux/diskette services * * @ux services * * @ux services * * @ux Message/Status * * P/OS @ux * * * * * * * * * ************************************************************************ Make a choice and press DO: @Caption(P/OS Services menu) @tag(POSMENU) @end(Figure) Pro/Kermit will allow you to enter into any of the normal P/OS services that can be found in the P/OS Main Menu. The P/OS Services menu, figure @ref(POSMENU), lists the different services that are available. The P/OS Services menu will be displayed when you choose the "@b

services" from the Kermit Main menu, figure @ref(MAINMENU). The P/OS services that are available are: @begin(Description,leftmargin +8,indent -10) @b/diskette services@\This will enter the normal disk/diskette services. You can initialize diskettes, install applications, copy diskettes and the other various functions normally found in this menu. @b services@\Provides access to the normal file services on the Professional-350. This will allow you to delete, rename, copy files, purge old versions of a file and the other functions associated with the file services. @b services@\Provides access to the P/OS Print services. This will allow you to print files after you have transfered them. @b messages/status@\Will provide access to the message board and the disk drive status information. P/OS @b@\Displays the Setup menu that you normally get when you have pressed the SET-UP key when in the P/OS Main Menu. This will allow you to change the date/time of the machine, key click and other features. @end(discription) @subheading @case(device,x9700="@begin(figure,facecode U,leftmargin +4)", imprint10="@begin(figure,facecode U,leftmargin +4)", else="@begin(figure)" ) ********************** Pro/Kermit transfer task is active ************** * * * * * Press MAIN SCREEN or EXIT to return to P/OS * * * * * * * * * * * * * * -> * * @ux file transfer task * * @ux transfer status typeout * * * * * * * * * * * ************************************************************************ Make a choice and press DO: @Caption(Active transfer menu) @Tag(ACTMENU) @end(Figure) When Pro/Kermit is asked to perform a function that requires the communications port (XK0:), it will first determine if it is currently in use. (It could be left in use by pressing the MAIN SCREEN key when a transfer is active.) If the port is active, the menu shown in figure @ref(ACTMENU) will be displayed. When this menu is displayed, you have three choices: @begin(enumerate) You can press either the MAIN SCREEN or EXIT key to return to P/OS. You can choose the @b option, which will cause the currently active transfer to be aborted. You can choose the @b option, which will resume typing the transfer information for the currently active transfer. Once the currently active transfer completes the operation that you requested before this menu was displayed will be started. @end(enumerate) @section There are two different ways to install Pro/Kermit. The first and the easiest, is to obtain a version on a floppy disk that can be directly installed on your machine. The more difficult way is to downline load Pro/Kermit from a host system. @Subheading If you have obtained a floppy with Pro/Kermit, you can install it using the Disk/Diskette services from the P/OS main menu. The following steps will allow you to install Pro/Kermit on your machine. @begin(enumerate) You begin the installation by inserting the Pro/Kermit floppy, into either of the floppy drives on the PRO-350. After the floppy has been inserted into the drive select "@b/diskette services" from the P/OS main menu. The "Disk/Diskette Services Menu" should now be displayed on the screen. Select the "@b application" entry from the menu. You will be notified that P/OS is locating the application. P/OS will list the applications that can be installed on your machine the "Application Installation Menu" should be displayed. The application from the floppy should be "Pro/Kermit version 1.0". You should select this application from the menu. The "Application Group Menu" will now be displayed on the screen. You should position the arrow to the group in which you would like Pro/Kermit installed in and press the DO key. The "Application Group/Name Change Form" will now be displayed on the screen. This form will allow you to change the name of the group or the name of the application that you are installing. If you do not want to change the name you can just press DO and the Pro/Kermit installation will start. Otherwise you can modify the names as you wish and the press DO to start the Pro/Kermit installation. If you have enough disk space on your machine Pro/Kermit should successfully install with no problems. Once it is installed you can run it from the menu in which you have installed it. @end(enumerate) @Subheading The following will take about two hours at 1200 baud. Much of the time will be spent waiting for the computer so this will be a good time to read the Pro/Kermit documentation. You will be needed at various times throughout the process so don't stray too far from the computer. Note that this procedure assumes that you do not have any communications program available on your PRO, and therefore do not have any other method of getting the files to your PRO. It is also assumed that you do not have any way to change the default parameters for the communications port. This requires that the bootstrap be done at 1200 baud, eight-bit characters, one stop bit and no parity. The procedure to bootstrap Pro/Kermit to the Professional is as follows: @begin(enumerate) First make sure that the 'Caps Lock' indicator is lighted on the Professional's keyboard. This will prevent any problems with case sensitive input. On the Professional, choose the "@b/diskette services" option from the Professional's Main Menu. Insert a blank diskette in drive one and choose "@b diskette". Select "@b" from the menu and then enter 'KERMIT' for the volume name. Now choose "@b directory" and create two directories. One called 'KERMIT' and one called 'ZZKERMIT' on the floppy (This is done by pressing the ADDITIONAL OPTIONS key, choosing "@b a directory on a different volume" and then selecting the KERMIT volume). When this is done choose "@b new current directory" and select KERMIT on the KERMIT volume (the floppy). Next press MAIN SCREEN to return to the Main Menu and choose "@b" (or a version later than 1.2). In Basic type in the Basic loader program (leave out the REMs so that the program will execute faster). Once this is done type 'SAVE LOAD'. Call and login to the mainframe on which Pro/Kermit resides. If you have PRO/BASIC V1.2 or later and have a 1200 baud line (the default baud rate when PRO/BASIC starts, then you can type in the terminal emulator program given at the end of this document (don't forget to type 'NEW' and also save it using the command 'SAVE PROTERM'). If you do not have version 1.2 or later of PRO/BASIC, you will not be able to use the basic terminal emulator. You will also need to bootstrap Pro/Kermit over the printer port rather than the communications port. This is because earlier versions of PRO/BASIC were not capable of performing I/O to the communications port. Tell the host not to echo characters. If the loader program will be using the printer port then set the line speed on the host to be no more then 1200 baud (reset your terminal if necessary). The commands to do this for a DECsystem-10 are: @example(SET TTY NOECHO) @example(SET TTY SPEED 1200) Next compile and execute PROBOOT.FOR on the host. When this executes it will ask you for a file name. Respond with the name 'PROLOAD.HEX'. This will be used along with LOAD.BAS on the Professional to create the LOAD.TSK program. Once PROBOOT is executing on the mainframe, give control back to the Professional (if you are using a terminal emulator on the PRO) or connect the modem or hard-wired line to the printer port or communications port depending on which you have decided to use. If you have chosen to use the printer port there are a few things you will need to do. You will need a special cable to connect the printer port on the Professional to a modem or hard-wired line. The normal printer cable provides a female RS-232 25 pin D connector which is a DCE (data communications equipment) interface. This is intended to connect to a DTE (data terminal equipment) interface, which is what is provided on a printer. Since the communications port (and most terminals) also provide DTE interfaces, while modems provide DCE interfaces, a null modem must be provided between the printer cable and the modem or hard-wired line. It is also possible to construct a cable which plugs directly into the printer port connector on the back of the Professional which can connect to a modem or hard-wired line. See the technical manual on the Professional for the pin configuration of the printer port connector. The Professional must be told the speed at which the printer port should operate. If you have the PRO/Tool kit you can enter it and type: @example(SET TERM TT2:/SPEED=1200/NOECHO) If you do not have the PRO/Tool kit but you have version 2.0 of P/OS or later you can go into Print Services and choose '@b printer characteristics', set the printer type to 'Other', press Addtnl Option and set the baud rate to the correct value. If you use Print Services to set the baud rate, make sure that you print a file that contains at least a carriage return (but not much more) or else the baud rate will not actually be set. It is only set when a file is printed. If you do not have either the Tool kit or P/OS 2.0, you will have to run the bootstrap process at 4800 baud. This is not very reliable, since the PRO/BASIC program cannot always keep up with the data. Next enter PRO/BASIC and type 'RUN LOAD' on the Professional. This will create a file called LOAD.TSK that will do all the rest of the work. It will first type out around seven lines of the alphabet from A to Y. This tells you that the program is really doing something. When the BASIC program finishes, press the EXIT key to return to the Main Menu. Connect to the main frame host and press a few carriage returns. This will exit from the FORTRAN program (if pressing return does not work, try pressing control-C a few times). Now execute PROBOOT.FOR again. This time when it asks you for a file name, respond with the name 'PROKRM.HEX'. This will be used along with LOAD.TSK on the Professional to load the rest of the files that are needed to run Pro/Kermit. Next enter either PRO/DCL or the PRO/Tool kit and type: @example(Copy/CONTiguous LOAD.TSK LOAD.TSK) This will create an executable task image. At this point you may either leave the modem connected to the printer port (if it was hooked up to it before) or connect the modem to the communications port, (the communications port works slightly better and can operate at any speed your line can handle), it does not matter. If you use the communications port the program will ask you if the port is set correctly. If it is set correctly, then press 'Y' and the Return key; if not, press 'N' and the Return key and then choose the baud rate that your host is using. Now type 'Run LOAD.TSK' from PRO/DCL or the PRO/Tool kit. It will ask you if you are using the communications port or the printer port (or a disk file which you are not). If you have the modem hooked up to the printer port press a '2' and press the Return key, otherwise you have the modem hooked up to the communications port and should press '1' and the Return key. At this point the computer starts to do a lot of work. It will create every file you need. You will see many 'Y' on the screen. Each 'Y' means that a line was read in. Each 'N' means that a line was rejected and must be resent. This happens more often on a noisy line. A 'U' means that LOAD.TSK does not recognize a command sent to it from the host. This should never happen but probably will not cause a problem if it does occur. You will also see about nine file names come up on the screen. These are the files that are being created. When LOAD.TSK finishes, you will have a copy of Pro/Kermit on your floppy diskette. Now press the MAIN SCREEN key to return to the Main Menu. From here follow the instructions to install Pro/Kermit from a floppy. Do not forget that you are still logged in on the host and must log out. This can be done through the CONNECT command in Pro/Kermit or the same way that you used to log in. @end(enumerate) The Basic program for using the printer port on the PRO-350 is as follows: (The program should be typed in with all upper case letters!) @begin(example,free,leftmargin +0) 10 REM LOADER program for Pro/Kermit for printer port 20 HEX$="123456789ABCDEF" 30 OAD=0\FLAG%=0\TOT%=0 40 TOT1%=0\CTR%=0\NM%=-1 100 OPEN "LP:" FOR INPUT AS FILE #2% 110 OPEN "LP:" FOR OUTPUT AS FILE #3% 170 GOTO 200 180 INPUT #2%,A$\ GOTO 210 190 PRINT "N";\ PRINT #3,"N"\ INPUT #2%,A$\ GOTO 210 200 PRINT #3,"Y"\ INPUT #2%,A$ 210 IF A$="" THEN FLAG%=FLAG%+1%\ IF FLAG%>4% THEN 1100 ELSE 180 220 FLAG%=0 230 IF MID$(A$,1%,1%)<>":" THEN A$=MID$(A$,2%,LEN(A$))\ GOTO 210 240 H$=MID$(A$,2%,2%)\ GOSUB 1200\LN%=H\ REM LENGTH OF DATA 250 REM FIND CHECKSUM OF ALL 8-BIT PAIRS 260 CHKSUM%=LN% 270 FOR L1%=4% TO (LN%+5%)*2% STEP 2%\H$=MID$(A$,L1%,2%)\ GOSUB 1200 280 CHKSUM%=CHKSUM%+H 290 NEXT L1% 300 CHKSUM%=CHKSUM%-256%*INT(CHKSUM%/256) 310 IF CHKSUM%<>0% THEN 190 320 IF MID$(A$,2%,6%)="000000" THEN 1100 330 H$=MID$(A$,8%,2%)\ IF H$<>"FC" THEN 380 340 H$=MID$(A$,10%,4%)\ GOSUB 1200\TOT1%=H*256% 350 DIM #1%,ARR%(TOT1%) 360 OPEN "LOAD.TSK" FOR OUTPUT AS FILE #1%, VIRTUAL 370 GOTO 490 380 GOSUB 1200\ IF H<>0 THEN 200\ REM CHECK FIELD TYPE 390 IF TOT1%=0 THEN PRINT "ERR - No length field"\ GOTO 1300 400 H$=MID$(A$,4%,4%)\ GOSUB 1200\OAD1=H\ REM ADDRESS TO LOAD AT 410 REM UNPACK ANY COMPRESSED NULLS 420 L%=0%\ FOR LP=OAD TO OAD1-1\ GOSUB 1000\ NEXT LP 430 OAD=OAD1 440 REM GET DATA AS 8-BIT VALUES & WRITE TO DISK (REPEAT LN% TIMES) 450 FOR L1%=10% TO LN%*2%+9% STEP 2% 460 H$=MID$(A$,L1%,2%)\ GOSUB 1200\L%=H\ GOSUB 1000 470 OAD=OAD+1 480 NEXT L1% 490 PRINT CHR$(CTR%+65%);\CTR%=CTR%+1% 495 IF CTR%>24% THEN CTR%=0%\ PRINT 500 GOTO 200 510 STOP 990 REM WRITE - PUT THE DATA INTO THE TASK FILE 1000 IF NM%=-1 THEN NM%=L%\ RETURN 1010 N=NM%+L%*256 1020 IF N>32767 THEN N=N-65536 1030 NB%=N 1040 ARR%(TOT%)=NB% 1050 NM%=-1\TOT%=TOT%+1% 1060 RETURN 1090 REM FINISHED - CLOSE FILE 1100 PRINT \ PRINT \ PRINT "TASK FILE WRITTEN." 1110 CLOSE 1120 GOTO 1300 1190 REM HEX-DEC 1200 H=0 1210 FOR LP%=1% TO LEN(H$) 1220 H=H*16+POS(HEX$,MID$(H$,LP%,1%),1%) 1230 NEXT LP% 1240 RETURN 1300 END @end(example) The BASIC program for loading Pro/Kermit using the communications port if you have PRO/BASIC V1.2 or later is as follows: @begin(example,free,leftmargin +0) 10 REM LOADER program for Pro/Kermit using the communications port 20 HEX$="123456789ABCDEF" 30 OAD=0\FLAG%=0\TOT%=0 40 TOT1%=0\CTR%=0\NM%=-1 100 OPEN "XK:" AS FILE #2% 110 REM 170 GOTO 200 180 REM 190 PRINT "N";\ PRINT #2,"N"+CHR$(13)+CHR$(10)\ GOTO 210 200 PRINT #2,"Y"+CHR$(13)+CHR$(10) 205 IF POS(Z$,CHR$(13),0)<>0 THEN 208 206 LINPUT #2%,X$\Z$=MID$(Z$+X$,POS(Z$+X$,":",0),LEN(Z$+X$)) 207 GOTO 205 208 A$=MID$(Z$,1,POS(Z$,CHR$(13),0))\Z$=MID$(Z$,LEN(A$)+1,LEN(Z$)) 209 IF POS(A$,":",0)=0 THEN 205 210 IF A$="" THEN FLAG%=FLAG%+1%\ IF FLAG%>4% THEN 1100 ELSE 205 220 FLAG%=0 230 IF MID$(A$,1%,1%)<>":" THEN A$=MID$(A$,2%,LEN(A$))\ GOTO 210 240 H$=MID$(A$,2%,2%)\ GOSUB 1200\LN%=H\ REM LENGTH OF DATA 250 REM FIND CHECKSUM OF ALL 8-BIT PAIRS 260 CHKSUM%=LN% 270 FOR L1%=4% TO (LN%+5%)*2% STEP 2%\H$=MID$(A$,L1%,2%)\ GOSUB 1200 280 CHKSUM%=CHKSUM%+H 290 NEXT L1% 300 CHKSUM%=CHKSUM%-256%*INT(CHKSUM%/256) 310 IF CHKSUM%<>0% THEN 190 320 IF MID$(A$,2%,6%)="000000" THEN 1100 330 H$=MID$(A$,8%,2%)\ IF H$<>"FC" THEN 380 340 H$=MID$(A$,10%,4%)\ GOSUB 1200\TOT1%=H*256% 350 DIM #1%,ARR%(TOT1%) 360 OPEN "LOAD.TSK" FOR OUTPUT AS FILE #1%, VIRTUAL 370 GOTO 490 380 GOSUB 1200\ IF H<>0 THEN 200\ REM CHECK FIELD TYPE 390 IF TOT1%=0 THEN PRINT "ERR - No length field"\ GOTO 1300 400 H$=MID$(A$,4%,4%)\ GOSUB 1200\OAD1=H\ REM ADDRESS TO LOAD AT 410 REM UNPACK ANY COMPRESSED NULLS 420 L%=0%\ FOR LP=OAD TO OAD1-1\ GOSUB 1000\ NEXT LP 430 OAD=OAD1 440 REM GET DATA AS 8-BIT VALUES & WRITE TO DISK (REPEAT LN% TIMES) 450 FOR L1%=10% TO LN%*2%+9% STEP 2% 460 H$=MID$(A$,L1%,2%)\ GOSUB 1200\L%=H\ GOSUB 1000 470 OAD=OAD+1 480 NEXT L1% 490 PRINT CHR$(CTR%+65%);\CTR%=CTR%+1% 495 IF CTR%>24% THEN CTR%=0%\ PRINT 500 GOTO 200 510 STOP 990 REM WRITE - PUT THE DATA INTO THE TASK FILE 1000 IF NM%=-1 THEN NM%=L%\ RETURN 1010 N=NM%+L%*256 1020 IF N>32767 THEN N=N-65536 1030 NB%=N 1040 ARR%(TOT%)=NB% 1050 NM%=-1\TOT%=TOT%+1% 1060 RETURN 1090 REM FINISHED - CLOSE FILE 1100 PRINT \ PRINT \ PRINT "TASK FILE WRITTEN." 1110 CLOSE 1120 GOTO 1300 1190 REM HEX-DEC 1200 H=0 1210 FOR LP%=1% TO LEN(H$) 1220 H=H*16+POS(HEX$,MID$(H$,LP%,1%),1%) 1230 NEXT LP% 1240 RETURN 1300 END @end(example) The terminal emulator program that can be used if you have PRO/BASIC V1.2 or later is: @begin(example,leftmargin +0) 10 REM TERMINAL EMULATOR FOR PRO/BASIC V1.2 OR LATER 20 REM USING THE COMMUNICATIONS PORT 30 REM 40 ESC$=CHR$(27)\CLEAR$=ESC$+"[H"+ESC$+"[J" 50 BIGT$=ESC$+"#3"\BIGB$=ESC$+"#4" 60 SAVE$=ESC$+"7"\UP$=ESC$+"[3A"\REST$=ESC$+"8" 70 INT$=CHR$(171) 80 REM For better performance you can change 90 REM the values of SPC, MAXLIN & BREAK$ 100 SPC=12 110 BREAK$=CHR$(13)+ESC$+" "+CHR$(9)\BRLEN%=LEN(BREAK$) 120 MAXLIN=65 130 CTR=0 140 PRINT CLEAR$ 150 PRINT BIGT$;" type ";INT$;" to send a control-C " 160 PRINT BIGB$;" type ";INT$;" to send a control-C " 170 OPEN 'XK:' AS FILE #1 180 LINPUT #1,A$ 190 IF LEN(A$)=0 THEN 320 200 A=999 210 FOR LP%=1 TO BRLEN% 220 B=POS(A$,MID$(BREAK$,LP%,1%),SPC) 230 IF B<>0 AND BMAXLIN THEN A=1\ GOTO 280 260 IF A=999 THEN PRINT A$;\CTR=CTR+LEN(A$)\ GOTO 320 270 PRINT MID$(A$,1,A-1); 280 PRINT SAVE$;UP$\ PRINT REST$; 290 PRINT MID$(A$,A,1);\A$=MID$(A$,A+1,LEN(A$)) 300 CTR=0 310 GOTO 190 320 CALL INKEY (A$) 330 IF LEN(A$)=0 THEN 180 340 IF A$=INT$ THEN A$=CHR$(3) 350 IF ASCII(A$)=155 THEN A$=CHR$(27) 360 IF ASCII(A$)=143 THEN A$=CHR$(27)+'[' 370 PRINT #1,A$ 380 GOTO 320 390 END @end(example)