;;;-*- Mode:LISP; Package:TIGER; Base:10; READTABLE:CL -*- ;;; Copyright Lisp Machine, Inc. 1985 ;;; See filename "COPYRIGHT.TEXT" for ;;; licensing and release information. ;;; Printer stuff for plain ASCII text printers ;;; This is for printers with no special features at all. ;;; To define a new printer type, copy this file into a new file named after your printer type. ;;; Then add methods for the features of your printer. ;;; See the file TIGER; TOSHIBA.LISP for examples. ;;; When you are done, edit the file TIGER; TIGER-SYSTEM.LISP to add your new file. ;;; Note that this file is in BASE 10 and READTABE CL for Common-Lisp. ;;; Most of the other files in the tiger system are BASE 8 READTABLE T. (def-tiger-props :vanilla ;; an instance of this flavor gets created to handle output ;; to the printer. The :SET-DESTINATION method gets sent to it ;; with serial stream expecting ASCII characters. That is, ;; with a stream presumably connected physically to the printer. ;; Or at least you can think of it as that. However, the stream ;; should be used in the manner of a uni-directional pipe only. ;; no handshaking is allowed on it (because it might be a buffer ;; of some sort instead). If there is handshaking of some sort to ;; do that it should be handled by another stream, specified by the ;; tiger-serial-handshake-type property, which can be ;; :hardware (meaning now handshake is attemped by the ;; software, and presumably the hardware is wired with ;; data-terminal-ready etc) :software, meaning the usual #\control-Q ;; #\control-S kind of thing, or :default. Which means :hardware. ;; However, if the TIGER-SERIAL-STREAM-HANDSHAKE-TYPE-PROPERTY ;; is a list, then we have an escape to the general device ;; mechanism. :HARDWARE means the same (on a LAMBDA) as ;; ("SDU-SERIAL-B:" si:sdu-serial-stream :baud-rate 9600.) ;; The CAR of the list is a device pathname, and the CDR is ;; taken as arguments to MAKE-INSTANCE, a stream for this device. tiger-stream-flavor vanilla-stream TIGER-SERIAL-HANDSHAKE-TYPE :default ;; specify that we dont handle screen dumps. Unless we do, ;; in which case dont specify anything about this property. si:print-bit-array nil tiger-font-type vanilla-font font-directory nil) ;; another kind of vanilla printer is the HP laserjet. Which see. (defflavor vanilla-stream () (basic-printer-stream-mixin) (:default-init-plist :name :vanilla)) ;;; The below is a method for setting up your printer for normal printing. ;;; This one has no effect. Depending on your printer, you may have to redefine this. (defmethod (vanilla-stream :setup-normal) () (send destination :string-out ""))