LMFL#!C(:HOST "SYS" :BACKUP-DATE 2760032726. :SYSTEM-TYPE :LOGICAL :VERSION 1. :TYPE "LISP" :NAME "SERIAL-HOST" :DIRECTORY ("REL3-PUBLIC" "PUBLIC" "KERMIT") :SOURCE-PATTERN "( :DIRECTORY (\"REL3-PUBLIC\") :NAME :WILD :TYPE :WILD :VERSION :NEWEST)" :CHARACTERS T :NOT-BACKED-UP T :CREATION-DATE 2758121988. :AUTHOR "REL3" :LENGTH-IN-BYTES 10310. :LENGTH-IN-BLOCKS 11. :BYTE-SIZE 8.)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   ;;; -*- Mode:Common-Lisp; Package:NET; Base:10 -*-;;;                           RESTRICTED RIGHTS LEGEND;;;Use, duplication, or disclosure by the Government is subject to;;;restrictions as set forth in subdivision (b)(3)(ii) of the Rights in;;;Technical Data and Computer Software clause at 52.227-7013.;;;;;;                     TEXAS INSTRUMENTS INCORPORATED.;;;                              P.O. BOX 2909;;;                           AUSTIN, TEXAS 78769;;;                                 MS 2151;;;;;; Copyright (C) 1987, Texas Instruments Incorporated. All rights reserved.;;; Copyright (C) 1987 Unisys Corporation;;; All Rights Reserved(DEFINE-MEDIUM :SERIAL-STREAM       :CONNECTION-STEPS '((:NETWORK :SERIAL))               :MEDIUM-DESIRABILITY .9               :IMPLEMENTATION-DESIRABILITY .9                 :CONNECT-FUNCTION 'SERIAL-CONNECTION-FUNCTION               :CONNECTION-POSSIBLE-P-FUNCTION 'SERIAL-CONNECTION-POSSIBLE-P-FUNCTION               :SUPERIOR-MEDIUM-LIST '(:BYTE-STREAM))(DEFINE-STREAM-TYPE :ASCII-TRANSLATING-INPUT-CHARACTER-STREAM 'SYS:SERIAL-ASCII-STREAM :SERIAL-STREAM)(DEFINE-STREAM-TYPE :ASCII-TRANSLATING-OUTPUT-CHARACTER-STREAM 'SYS:SERIAL-ASCII-STREAM :SERIAL-STREAM)(DEFINE-STREAM-TYPE :ASCII-TRANSLATING-CHARACTER-STREAM 'SYS:SERIAL-ASCII-STREAM :SERIAL-STREAM)(DEFINE-STREAM-TYPE :INPUT-CHARACTER-STREAM 'SYS:SERIAL-STREAM :SERIAL-STREAM)(DEFINE-STREAM-TYPE :OUTPUT-CHARACTER-STREAM 'SYS:SERIAL-STREAM :SERIAL-STREAM)(DEFINE-STREAM-TYPE :CHARACTER-STREAM 'SYS:SERIAL-STREAM :SERIAL-STREAM)(DEFINE-STREAM-TYPE :INPUT-BINARY-STREAM 'SYS:SERIAL-STREAM :SERIAL-STREAM)(DEFINE-STREAM-TYPE :OUTPUT-BINARY-STREAM 'SYS:SERIAL-STREAM :SERIAL-STREAM)(DEFINE-STREAM-TYPE :BINARY-STREAM 'SYS:SERIAL-STREAM :SERIAL-STREAM)(DEFVAR *SERIAL-HOST* NIL "The currently connected serial host.")(DEFVAR *SCRIPT-WINDOW*(MAKE-INSTANCE 'TV:WINDOW:EDGES  '(94 110 930 480)      ; left,top,right,bottom:SAVE-BITS T:BORDERS 2:LABEL '(:TOP  :CENTERED  :STRING "Script Status Window"  :FONT FONTS:HIGHER-MEDFNB):DEEXPOSED-TYPEOUT-ACTION :PERMIT:MORE-P NIL))(DEFUN SERIAL-CONNECTION-FUNCTION (host logical-contact-name connection &KEY   stream-type   window-size   (timeout (* 10 60))   timeout-after-open   &allow-other-keys &AUX stream)  (DECLARE (IGNORE connection window-size timeout timeout-after-open))  (WHEN (TRANSLATE-LOGICAL-CONTACT-NAME logical-contact-name :SERIAL-STREAM)    (SETQ stream   (MAKE-SERIAL-STREAM :FLAVOR (FIND-STREAM-TYPE stream-type :SERIAL-STREAM)      :XON-XOFF-PROTOCOL (GET-HOST-ATTRIBUTE host :XON-XOFF-PROTOCOL)      :EOT-ENABLE (GET-HOST-ATTRIBUTE host :EOT-ENABLE)      :INPUT-BUFFER-SIZE (GET-HOST-ATTRIBUTE host :INPUT-BUFFER-SIZE)      :OUTPUT-BUFFER-SIZE (GET-HOST-ATTRIBUTE host :OUTPUT-BUFFER-SIZE)      :FORCE-OUTPUT (GET-HOST-ATTRIBUTE HOST host :FORCE-OUTPUT)      :NUMBER-OF-DATA-BITS (GET-HOST-ATTRIBUTE host :NUMBER-OF-DATA-BITS)      :NUMBER-OF-STOP-BITS (GET-HOST-ATTRIBUTE host :NUMBER-OF-STOP-BITS)      :PARITY (GET-HOST-ATTRIBUTE host :PARITY)      :BAUD (GET-HOST-ATTRIBUTE host :BAUD)))    (SETQ *SERIAL-HOST* host)    (SET-IN-INSTANCE (SEND *TERMINAL-IO* :SUPERIOR) 'TELNET:ECHO-FLAG T)    (WHEN (GET-HOST-ATTRIBUTE host :AUTODIAL?)      (UNLESS (TELNET:AUTODIAL :MENU NIL) (RETURN-FROM SERIAL-CONNECTION-FUNCTION stream)))    (WHEN (GET-HOST-ATTRIBUTE host :RUN-SCRIPT?)      (LET* ((vt100-screen *TERMINAL-IO*)     (vt100-frame (send vt100-screen :superior))     (process (SYMEVAL-IN-INSTANCE vt100-frame 'TELNET:TYPEOUT-PROCESS)))(UNWIND-PROTECT    (PROGN      (SEND *SCRIPT-WINDOW* :CLEAR-SCREEN)      (SEND process :ARREST-REASON :SCRIPT)      (SEND *SCRIPT-WINDOW* :SET-SUPERIOR vt100-frame)      (SEND vt100-frame :SET-SELECTION-SUBSTITUTE *SCRIPT-WINDOW*)      (TELNET:RUN-SCRIPT-FROM-FILE(GET-HOST-ATTRIBUTE host :SCRIPT):STREAM SYS:*SERIAL-PORT-OWNER*:DEBUG-STREAM *SCRIPT-WINDOW*:ASCII-TRANSLATE (EQ (FIND-STREAM-TYPE stream-type :SERIAL-STREAM) 'SYS:SERIAL-STREAM))      (PRINT "****** PRESS A KEY TO CONTINUE ******" *SCRIPT-WINDOW*)      (READ-CHAR *SCRIPT-WINDOW*))  (SEND *SCRIPT-WINDOW* :SET-SUPERIOR W:MAIN-SCREEN)  (SEND vt100-frame :SET-SELECTION-SUBSTITUTE vt100-screen)  (SEND process :REVOKE-ARREST-REASON :SCRIPT))))    stream))(DEFUN SERIAL-CONNECTION-POSSIBLE-P-FUNCTION (host-a &OPTIONAL (host-b local-host))  (AND (EQ host-b LOCAL-HOST)       (EQ (GET-HOST-ATTRIBUTE host-a :SYSTEM-TYPE) :SERIAL-PORT)))(DEFVAR *DEFAULT-SERIAL-HOST-NAME*                  "PORT")(DEFVAR *DEFAULT-SERIAL-HOST-NAMESPACE*             "BOOT")(DEFVAR *DEFAULT-SERIAL-HOST-NAMESPACE-ACTION*      T)(DEFVAR *DEFAULT-SERIAL-HOST-BAUD*                  1200)(DEFVAR *DEFAULT-SERIAL-HOST-FORCE-OUTPUT*          T)(DEFVAR *DEFAULT-SERIAL-HOST-NUMBER-OF-DATA-BITS*   8)(DEFVAR *DEFAULT-SERIAL-HOST-NUMBER-OF-STOP-BITS*   2)(DEFVAR *DEFAULT-SERIAL-HOST-PARITY*                :NONE)(DEFVAR *DEFAULT-SERIAL-HOST-XON-XOFF-PROTOCOL*     NIL)(DEFVAR *DEFAULT-SERIAL-HOST-ASCII-CHARACTERS*      NIL)(DEFVAR *DEFAULT-SERIAL-HOST-INPUT-BUFFER-SIZE*     256) (DEFVAR *DEFAULT-SERIAL-HOST-OUTPUT-BUFFER-SIZE*    256)(DEFVAR *DEFAULT-SERIAL-HOST-AUTODIAL-PREFIX*       NIL)(DEFVAR *DEFAULT-SERIAL-HOST-AUTODIAL-NUMBER*       NIL)(DEFVAR *DEFAULT-SERIAL-HOST-AUTODIAL?*             NIL)(DEFVAR *DEFAULT-SERIAL-HOST-SCRIPT*                NIL)(DEFVAR *DEFAULT-SERIAL-HOST-RUN-SCRIPT?*           NIL)(DEFUN DEFINE-SERIAL-HOST-FROM-CVV ()  "Produces a CVV to select serial host attributes, then creates a serialhost object using DEFINE-HOST.  Returns the new host object."  (LET ((name *DEFAULT-SERIAL-HOST-NAME*)(namespace *DEFAULT-SERIAL-HOST-NAMESPACE*)(namespace-action *DEFAULT-SERIAL-HOST-NAMESPACE-ACTION*)(baud *DEFAULT-SERIAL-HOST-BAUD*)(force-output *DEFAULT-SERIAL-HOST-FORCE-OUTPUT*)(number-of-data-bits *DEFAULT-SERIAL-HOST-NUMBER-OF-DATA-BITS*)(number-of-stop-bits *DEFAULT-SERIAL-HOST-NUMBER-OF-STOP-BITS*)(parity *DEFAULT-SERIAL-HOST-PARITY*)(xon-xoff-protocol *DEFAULT-SERIAL-HOST-XON-XOFF-PROTOCOL*)(ascii-characters *DEFAULT-SERIAL-HOST-ASCII-CHARACTERS*)(input-buffer-size *DEFAULT-SERIAL-HOST-INPUT-BUFFER-SIZE*)(output-buffer-size *DEFAULT-SERIAL-HOST-OUTPUT-BUFFER-SIZE*)(autodial-prefix *DEFAULT-SERIAL-HOST-AUTODIAL-PREFIX*)(autodial-number *DEFAULT-SERIAL-HOST-AUTODIAL-NUMBER*)(autodial? *DEFAULT-SERIAL-HOST-AUTODIAL?*)(script *DEFAULT-SERIAL-HOST-SCRIPT*)(run-script? *DEFAULT-SERIAL-HOST-RUN-SCRIPT?*))        (DECLARE (SPECIAL name namespace namespace-action baud force-output number-of-data-bits      number-of-stop-bits parity xon-xoff-protocol ascii-characters      input-buffer-size output-buffer-size autodial-prefix      autodial-number autodial? script run-script?))    (CATCH 'ABORT-CVV      (W:CHOOSE-VARIABLE-VALUES'((name    "Host Name"    :DOCUMENTATION "The name of the host being defined as having this particular configuration of a serial port."    :STRING)  (namespace    "Namespace"    :DOCUMENTATION "The namespace in which to define this host."    :MENU (NAME:LIST-KNOWN-NAMESPACES))  (namespace-action    "Namespace Action"    :DOCUMENTATION "Choose LOCAL to update only the local cache of the specified namespace.Choose GLOBAL to update the local cache and the Name Server of the specified namespace."    :MENU-ALIST (("LOCAL" T) ("GLOBAL" NIL)))  (baud    "Baud rate"    :DOCUMENTATION "Line speed.  (Most asynchronous modems use 1200 or 300)"    :CHOOSE (300 1200 2400 4800 9600 19200))  (force-output    "Force output"    :DOCUMENTATION "YES: send characters immediately.  NO: send characters when buffer is full."    :BOOLEAN)  (number-of-data-bits    "Data Bits"    :DOCUMENTATION "Number of data bits."    :CHOOSE (5 6 7 8))  (number-of-stop-bits    "Stop Bits"    :DOCUMENTATION "Number of stop bits."    :CHOOSE (1 2))  (parity    "Parity"    :DOCUMENTATION "Type of parity to use."    :CHOOSE (:NONE :EVEN :ODD))  (xon-xoff-protocol    "XON-XOFF"    :DOCUMENTATION "YES: use XON-XOFF characters.  NO: don't implement XON-XOFF characters."    :BOOLEAN)  (ascii-characters    "Translate ASCII"    :DOCUMENTATION "YES: Automatically translate between ASCII and Explorer characters.  NO: don't translate."    :BOOLEAN)  (input-buffer-size    "Input Buffer size"    :DOCUMENTATION "Size (in words) to allocate for the input buffers."    :NUMBER)  (output-buffer-size    "Output Buffer size"    :DOCUMENTATION "Size (in words) to allocate for the output buffers."    :NUMBER)  (autodial-prefix    "Autodial Prefix"    :DOCUMENTATION "Character sequence that activates autodial capabilities of autodial modem."    :STRING)  (autodial-number    "Phone Number"    :DOCUMENTATION "Telephone number to dial."    :STRING)  (autodial?    "Autodial?"    :DOCUMENTATION "YES: Automatically autodial upon connection.  NO: don't autodial."    :BOOLEAN)  (script    "Script"    :DOCUMENTATION "The pathname of a file containing a script defined per TELNET:RUN-SCRIPT."    :TYPEP STRING)  (run-script?    "Run Script?"    :DOCUMENTATION "YES: Automatically run the script upon connection.  NO: don't run the script."    :BOOLEAN)):NEAR-MODE '(:POINT 500 400):LABEL "Define Serial Host":MARGIN-CHOICES '(("Abort" (THROW 'ABORT-CVV NIL))  "Do It"))            (NAME:ADD-OBJECT name       :host       :attributes (list :SYSTEM-TYPE :SERIAL-PORT :SERVICES '((:LOGIN :SERIAL-STREAM :TELNET)) :BAUD baud :FORCE-OUTPUT force-output :NUMBER-OF-DATA-BITS number-of-data-bits :NUMBER-OF-STOP-BITS number-of-stop-bits :PARITY parity :XON-XOFF-PROTOCOL xon-xoff-protocol :ASCII-CHARACTERS ascii-characters :INPUT-BUFFER-SIZE input-buffer-size :OUTPUT-BUFFER-SIZE output-buffer-size :AUTODIAL-PREFIX autodial-prefix :AUTODIAL-NUMBER autodial-number :AUTODIAL? autodial? :SCRIPT script :RUN-SCRIPT? run-script?)       :NAMESPACE namespace       :LOCAL namespace-action)      (PARSE-HOST name))))e compilers), and files with types like.XLD, .XFASL, and .QFASL are binary.The Explorer has a 32-bit word size.  It stores text in 8-bit bytes.  It uses amodified ASCII character set that is extended by use of the 8th bit and has mostcontrol characters in non-standard positions.  When transferring textualinformation via Kermit, the non-standard characters are converted to standardASCII unless overridden in Image Mode.  Data in Explorer Lisp object files (.XLD)is stored in 16-bit bytes.  When transferring such files via Kermit, Image Modeis provided to override ASCII translation.  Image Mode is described in section5.6.1.The minimum unit of disk allocation on the Explorer is a page: 256 32-bit words,or 512 16-bit bytes, or 1024 8-bit bytes.  Any file that contains at least onebit of information occupies at least a full page on the disk.  The directoryinformation for a file includes the number of pages occupied on the disk, the