LMFL#!C(:HOST "SYS" :BACKUP-DATE 2760031891. :SYSTEM-TYPE :LOGICAL :VERSION 9. :TYPE "LISP" :NAME "TI820" :DIRECTORY ("REL3-SOURCE" "PRINTER") :SOURCE-PATTERN "( :DIRECTORY (\"REL3-SOURCE\") :NAME :WILD :TYPE :WILD :VERSION :NEWEST)" :VERSION-LIMIT 0. :CHARACTERS T :NOT-BACKED-UP T :CREATION-DATE 2758743754. :AUTHOR "REL3" :LENGTH-IN-BYTES 4037. :LENGTH-IN-BLOCKS 4. :BYTE-SIZE 8.)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 ;;; -*- Mode: common-LISP; Package: PRINTER; 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) 1984,1987 Texas Instruments Incorporated. All rights reserved.;;; This file defines print device, TI820(DEFPROP TI820 () DOTS-PER-INCH) (DEFFLAVOR TI820-MIXIN   ((SO #o16); selects expanded printing    (DC4 #o24); cancels expanded printing    (SI #o17); selects compresed printing    (DC2 #o22); cancels compressed printing    (DC1 #o21); enables the printer    (DC3 #o23); disables the printer    (ETX #o3); ask printer if ready    (ACK #o4); response from printer if ready)   ()  (:REQUIRED-FLAVORS BASIC-PRINTER)  :SETTABLE-INSTANCE-VARIABLES  (:DEFAULT-INIT-PLIST :FFPAD 0 :LFPAD 0 :CHAR-PITCH 10)) (DEFMETHOD (TI820-MIXIN :ESC-COMMAND) (COMMAND-CHAR &OPTIONAL N1 N2)  "Send <ESC> <command-char> <n1> <n2>, where <n1> and <n2> are optional"  (SEND SELF :TYO-RAW ESC)  (SEND SELF :TYO-RAW COMMAND-CHAR)  (IF N1    (SEND SELF :TYO-RAW N1))  (IF N2    (SEND SELF :TYO-RAW N2))) (DEFMETHOD (TI820-MIXIN :EXTENDED-COMMAND) (COMMAND-CHAR &REST CHAR-LIST)  "Send <ESC> <command-char> <char-list> ... <NUL>"  (SEND SELF :TYO-RAW ESC)  (SEND SELF :TYO-RAW COMMAND-CHAR)  (LOOP FOR CHAR IN CHAR-LIST DO (SEND SELF :TYO-RAW CHAR) FINALLY (SEND SELF :TYO-RAW NUL))) (DEFMETHOD (TI820-MIXIN :SET-FORM-LENGTH) (NO-OF-LINES)  (SEND SELF :ESC-COMMAND #\C NO-OF-LINES)) (DEFMETHOD (TI820-MIXIN :SET-VTABS) (&REST POSITIONS)  (let ((vtabs (FORMAT () "~{~3,48D;~}" POSITIONS))(vtabs-list ()))    (do ((i 0 (1+ i)))((= i (length vtabs)))      (setf vtabs-list (append vtabs-list (list (aref vtabs i)))))   (LEXPR-SEND SELF :EXTENDED-COMMAND #\[ vtabs-list)))   ;old way =>(global:LISTARRAy (FORMAT () "~{~3,48D;~}" POSITIONS)) (DEFMETHOD (TI820-MIXIN :SET-HTABS) (&REST POSITIONS)  (let ((htabs (FORMAT () "~{~3,48D;~}" POSITIONS))(htabs-list ()))    (do ((i 0 (1+ i)))((= i (length htabs)))      (setq htabs-list (append htabs-list (list (aref htabs i)))))  (LEXPR-SEND SELF :EXTENDED-COMMAND #\[ htabs-list)))    ;old-way =>(LISTARRAY (FORMAT () "~{~2,48D;~}" POSITIONS)) (DEFMETHOD (TI820-MIXIN :SET-CHAR-PITCH) (CHARS-PER-INCH)  (COND    ((< CHARS-PER-INCH 16) (SEND SELF :CANCEL-COMPRESSED-PRINT) (SETQ CHAR-PITCH 10))    (T (SEND SELF :SELECT-COMPRESSED-PRINT) (SETQ CHAR-PITCH 16)))  (SETQ CHARS-PER-LINE (* 8 CHAR-PITCH))) (DEFMETHOD (TI820-MIXIN :SET-LINE-SPACING) (LINES-PER-INCH)  (SEND SELF :ESC-COMMAND (SELECTOR LINES-PER-INCH = (6 #\-) (3 #\=) (OTHERWISE #\-)))) (DEFMETHOD (TI820-MIXIN :SELECT-COMPRESSED-PRINT) ()  (SEND SELF :ESC-COMMAND #\<)) (DEFMETHOD (TI820-MIXIN :CANCEL-COMPRESSED-PRINT) ()  (SEND SELF :ESC-COMMAND #\>)) (DEFMETHOD (TI820-MIXIN :SETUP-NORMAL-MODE) ()  "Sets up the printer's cpi, lpi, and tabs."  (SEND SELF :CANCEL-COMPRESSED-PRINT)  (SEND SELF :SET-CHAR-PITCH CHAR-PITCH)  (SEND SELF :SET-LINE-SPACING LINE-SPACING)  (SEND SELF :SET-HTABS 1 8 16 24 32 40 48 56 64 72 80 88 96 104 112 120))           (DEFFLAVOR TI820   ()   (TI820-MIXIN    BASIC-PRINTER)) (DEFMETHOD (TI820 :TAB) (&AUX TAB-COUNT)  (SEND SELF :TYO-RAW HTAB)  (SETQ TAB-COUNT (- 8 (REM CHAR-COUNT 8)))  (WHEN (> (SETQ CHAR-COUNT (+ CHAR-COUNT TAB-COUNT)) CHARS-PER-LINE)    (IF (>= (SETQ LINE-COUNT (1+ LINE-COUNT)) LINES-PER-PAGE)      (SEND SELF :START-NEW-PAGE)      (SETQ CHAR-COUNT 0)))) (DEFMETHOD (TI820 :SCREEN-IMAGE-FILE-P) (FILENAME)  (LET ((FILE-TYPE (SEND FILENAME :TYPE)))    (OR (EQUALP "TI820" FILE-TYPE) (EQUALP "820" FILE-TYPE)))) (COMPILE-FLAVOR-METHODS TI820) TQ *LEFT-MARGIN-VAR* 5)) ;set default left margin.  (SELEC