(FILECREATED " 3-Sep-85 11:03:48" {DSK}<LISPFILES>MATT>FX80STREAMPATCH.;18 4133
changes to: (FNS \DUMPPAGEBUFFER1.FX80)
(VARS FX80STREAMPATCHCOMS)
(PROPS (FX80STREAMPATCH FILETYPE))
previous date: " 3-Jun-85 12:59:56" {DSK}<LISPFILES>MATT>FX80STREAMPATCH.;15)
(* Copyright (c) 1985 by Matt Heffron. All rights reserved.)
(PRETTYCOMPRINT FX80STREAMPATCHCOMS)
(RPAQQ FX80STREAMPATCHCOMS ((FILES (FROM VALUEOF LISPUSERSDIRECTORIES)
FX80STREAM)
(ADVISE BITMAPCREATE-IN-OPENFX80STREAM CREATEREGION-IN-OPENFX80STREAM
TEDIT.HARDCOPY)
(VARS FX80STREAMHEIGHT FX80STREAMWIDTH)
(FNS \DUMPPAGEBUFFER1.FX80)
(P (MOVD (QUOTE \DUMPPAGEBUFFER1.FX80)
(QUOTE \DUMPPAGEBUFFER.FX80)))
(PROP FILETYPE FX80STREAMPATCH)))
(FILESLOAD (FROM VALUEOF LISPUSERSDIRECTORIES)
FX80STREAM)
(PUTPROPS BITMAPCREATE-IN-OPENFX80STREAM READVICE [(OPENFX80STREAM . BITMAPCREATE)
(BEFORE NIL (PROGN (SETQ WIDTH FX80STREAMWIDTH)
(SETQ HEIGHT FX80STREAMHEIGHT])
(PUTPROPS CREATEREGION-IN-OPENFX80STREAM READVICE [(OPENFX80STREAM . CREATEREGION)
(BEFORE NIL (PROGN (SETQ WIDTH FX80STREAMWIDTH)
(SETQ HEIGHT FX80STREAMHEIGHT])
(PUTPROPS TEDIT.HARDCOPY READVICE [NIL (AROUND NIL (COND ((EQ (PRINTERTYPE SERVER)
(QUOTE FX80))
(TEDIT.FORMAT.HARDCOPY STREAM
(OR FILE
(QUOTE
{RS232}TEDIT.FX80))
T BREAKPAGETITLE
SERVER PRINTOPTIONS
(QUOTE FX80)))
(T *])
(READVISE BITMAPCREATE-IN-OPENFX80STREAM CREATEREGION-IN-OPENFX80STREAM TEDIT.HARDCOPY)
(RPAQQ FX80STREAMHEIGHT 792)
(RPAQQ FX80STREAMWIDTH 972)
(DEFINEQ
(\DUMPPAGEBUFFER1.FX80
[LAMBDA (BITMAP FX80STREAM)
(CLISP: INTEGER FAST) (* mth: " 3-Sep-85 11:02")
(DECLARE (LOCALVARS . T)
(GLOBALVARS BITMASKARRAY))
(LET* ((WIDTH (BITMAPWIDTH BITMAP))
(HEIGHT (BITMAPHEIGHT BITMAP))
(SUBSTREAM (FETCHFIELD (QUOTE (STREAM 12 POINTER))
FX80STREAM) (* (fetch (STREAM F1) of FX80STREAM) is where FX80
streams keep the SUBSTREAM)
)
(WIDTHSUB1 WIDTH-1)
(HEIGHTSUB1 HEIGHT-1)
(ByteRow (ARRAY WIDTH (QUOTE BYTE)
0 0))
(BM.BASE BITMAP:BITMAPBASE)
(ROWOFFSET BITMAP:BITMAPRASTERWIDTH)
RowWidth WorkWidth)
(BOUT SUBSTREAM (CHARCODE ESC))
(BOUT SUBSTREAM (CHARCODE "O")) (* Cancel skip over perforation.)
(\FX80.PRINTERMODE (QUOTE UniDirectionalOn)
SUBSTREAM)
(\FX80.PRINTERMODE (QUOTE EightSpacingOn)
SUBSTREAM)
(for RowGroup from 0 to HEIGHTSUB1 by 8 bind (RGBase ← 0)
do (RowWidth←0)
(WorkWidth←0)
(for Column from 0 to WIDTHSUB1 bind BMask ByteVal ColBitMask
do (BMask←128)
(ByteVal←0)
(ColBitMask←(\WORDELT BITMASKARRAY (LOGAND 15 Column)))
(for Row from 0 to 7 as WordOffset from (LRSH Column 4)+RGBase by ROWOFFSET
do (if (LOGAND ColBitMask (\GETBASE BM.BASE WordOffset))
~=0
then ByteVal←(BITSET ByteVal BMask))
(BMask←(LRSH BMask 1)))
(\BYTESETA ByteRow WorkWidth ByteVal)
(WorkWidth←WorkWidth+1)
(if ByteVal~=0
then RowWidth←WorkWidth))
(RGBase←RGBase+(LSH ROWOFFSET 3))
[if RowWidth gt 0
then (\FX80.GRAPHICSMODE RowWidth SUBSTREAM)
(for Column from 0 to RowWidth-1 do (BOUT SUBSTREAM (\BYTELT ByteRow Column]
(BOUT SUBSTREAM (CHARCODE CR))
(BOUT SUBSTREAM (CHARCODE LF)))
(\FX80.PRINTERMODE (QUOTE UniDirectionalOff)
SUBSTREAM)
NIL])
)
(MOVD (QUOTE \DUMPPAGEBUFFER1.FX80)
(QUOTE \DUMPPAGEBUFFER.FX80))
(PUTPROPS FX80STREAMPATCH FILETYPE CLISP)
(PUTPROPS FX80STREAMPATCH COPYRIGHT ("Matt Heffron" 1985))
(DECLARE: DONTCOPY
(FILEMAP (NIL (1729 3933 (\DUMPPAGEBUFFER1.FX80 1739 . 3931)))))
STOP