;;; -*- Mode: Common-Lisp; Package: User; Base: 10.; Patch-File: T -*-
;;; Written 01/04/88 17:03:57 by sparacin,
;;; Reason: Comments out calls to LED-PANE which were taken out of VT100 in release 4.  LER  03/03/88
;;; Reason: Added stripping off of the parity bit here.  Adding it here corrects two problems.  1) Removes
;;; the garbage characters displayed when using the serial port to connect to an ULTRIX host via a micom
;;; selector.  2) Allows a connection to a mips machine over ip (without it you just get
;;; the two characters {} displayed).  This should not impact any other operations unless the remote host
;;; sends an escape character followed by an 8 bit character.
;;; while running on Texas from band LOD1
;;; With IO 3.47, PATHNAME 3.17, FILE 3.16, SYSTEM 3.114, METER 3.7, SERIAL 3.2, CHAOSNET 3.25,
;;;  ETHERNET 3.4, GC 3.25, IMAGEN 3.0, MAIL-DAEMON 3.8, NETWORK-SUPPORT 3.21, PROFILE 3.7,
;;;  SUGGESTIONS 3.7, UCL 3.4, ZWEI 3.45, STREAMER-TAPE 3.20, DEBUG-TOOLS 3.7, FONT-EDITOR 3.2,
;;;  GLOSSARY 3.1, INPUT-EDITOR 3.0, MAIL-READER 3.23, NAMESPACE-EDITOR 3.7, NVRAM 3.6,
;;;  TELNET 3.8, TV 3.34, NAMESPACE 3.15, COMPILER 3.35, PRINTER 3.10, SYSLOG 3.1,
;;;  VT100 3.15, IP 2.77, Experimental BUG 1.0, DECNET 1.29, VISIDOC 1.0, GRAPHICS-WINDOW 3.0,
;;;  GED 3.0, TREE 3.0, WINIFRED 3.0, Experimental KERMIT 3.0,  microcode 234, Band Name: Rel 3.2 Graphics EII 1/4+ks

#!C
; From file PROCESS-ESCAPE-SEQUENCE.LISP#> VT100; Goofy:
#10R TELNET#:
(COMPILER-LET ((*PACKAGE* (FIND-PACKAGE "TELNET"))
                          (SI:*LISP-MODE* :COMMON-LISP)
                          (*READTABLE* SYS:COMMON-LISP-READTABLE)
                          (SI:*READER-SYMBOL-SUBSTITUTIONS* SYS::*COMMON-LISP-SYMBOL-SUBSTITUTIONS*))
  (COMPILER#:PATCH-SOURCE-FILE "SYS: VT100; PROCESS-ESCAPE-SEQUENCE.#"


(DEFMETHOD (VT100-ESCAPE-SEQUENCE-MIXIN :TEST-FOR-ESCAPE-SEQUENCE) (CH)
  (COND
    (LARGE-CHARACTERS			   ;Test for the large size character set
     (COND
       ((OR (= CH ESC) (= CH CR) (= CH LF))
	(SEND VT100-PANE :SET-CURRENT-FONT SAVE-FONT)
	(SETQ LARGE-CHARACTERS ())))))
  (MULTIPLE-VALUE-BIND (CURRENT-X CURRENT-Y)
      (SEND VT100-PANE :READ-CURSORPOS :CHARACTER)
      ;   (cond ((and (>= current-y bottom-of-scroll)	;Is this the bottom of scroll region?
      ;		(<= current-y (+ bottom-of-scroll 1)) ; Done just once per line
      ;		(= current-x 0.))	   
      ;	   (setf (tv:sheet-end-page-flag vt100-pane) 0.)
      ;	   (sheet-scroll-up vt100-pane new-line)))
    (COND
      ((OR (< CH ENQ) (= CH VT)) NIL)
      (ESCAPE-FLAG			   ; Yes, we got an esc
       (SETF ch (LDB #o0007 ch))                        ;Strip off the parity bit if it is set. 
       (SEND SELF :PROCESS-ESCAPE-SEQUENCE CH))
      ((= CH ESC)			   ; Is it 'ESC'
       (SETQ ESCAPE-FLAG T))
      (T				   ; The char isn't in an escape sequence
       (SEND SELF :PROCESS-CHARACTER CH CURRENT-X CURRENT-Y))))) 

))

#!C
; From file VT100-CHANGES.LISP#> PUBLIC.KERMIT; MR-X:
#8R TELNET#:
(COMPILER-LET ((*PACKAGE* (FIND-PACKAGE "TELNET"))
                          (SI:*LISP-MODE* :COMMON-LISP)
                          (*READTABLE* SYS:COMMON-LISP-READTABLE)
                          (SI:*READER-SYMBOL-SUBSTITUTIONS* SYS::*COMMON-LISP-SYMBOL-SUBSTITUTIONS*))
  (COMPILER#:PATCH-SOURCE-FILE "SYS: PUBLIC.KERMIT; VT100-CHANGES.#"


(DEFMETHOD (VT100-FRAME :AFTER :INIT) (&REST IGNORE)
  (SETQ VT100-PANE (SEND SELF :GET-PANE 'VT100-PANE))
  (WINDOW-BACKGROUND-COLOR VT100-PANE VT100-DEFAULT-SCREEN-COLOR)
  ;(SETQ LED-PANE (SEND SELF :GET-PANE 'LED-PANE))
  (SETQ AUX-KEYPAD-PANE (SEND SELF :GET-PANE 'KEYPAD))
  (SETQ TELNET-PANE VT100-PANE)
  (SEND SELF :SELECT-PANE VT100-PANE)
  (SETQ VT100-WINDOW SELF)
  (SETQ VT100-SCREEN VT100-PANE)
  ;(SETQ LED-SCREEN LED-PANE)
  (SETQ TERMINAL-STREAM VT100-PANE)
  (SETQ OUTPUT-BUFFER ())
  ;; we don't want buffering
  (SEND SELF :INITIAL-SETUP)
  (SETF (TV:SHEET-TRUNCATE-LINE-OUT-FLAG VT100-PANE) 1)   ;TURN ON TRUNCATION
  (SEND typeout-process :SET-PRIORITY 10.))

))
