(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) (FILECREATED "30-Oct-2021 19:09:48" {DSK}kaplan>Local>medley3.5>my-medley>sources>IMAGEIO.;7 80279 changes to%: (FNS \NOIMAGE.DSPFONT) previous date%: "25-Sep-2021 20:58:07" {DSK}kaplan>Local>medley3.5>my-medley>sources>IMAGEIO.;5) (* ; " Copyright (c) 1983-1991, 1993-1994, 1999, 2021 by Venue & Xerox Corporation. ") (PRETTYCOMPRINT IMAGEIOCOMS) (RPAQQ IMAGEIOCOMS [(FNS IMAGESTREAMP IMAGESTREAMTYPE IMAGESTREAMTYPEP OPENIMAGESTREAM \GOOD.DASHLST) (INITVARS (IMAGESTREAMTYPES NIL)) (FNS DRAWDASHEDLINE) (FNS DSPBACKCOLOR DSPBOTTOMMARGIN DSPCOLOR DSPCLIPPINGREGION DSPRESET DSPFONT DSPLEFTMARGIN DSPLINEFEED DSPOPERATION DSPRIGHTMARGIN DSPTOPMARGIN DSPSCALE DSPSPACEFACTOR DSPXPOSITION DSPYPOSITION DSPROTATE DSPPUSHSTATE DSPPOPSTATE DSPDEFAULTSTATE DSPSCALE2 DSPTRANSLATE) (FNS DSPNEWPAGE DRAWBETWEEN DRAWCIRCLE DRAWARC DRAWCURVE DRAWELLIPSE DRAWLINE DRAWPOLYGON DRAWPOINT FILLPOLYGON DRAWTO FILLCIRCLE MOVETO RELDRAWTO BITMAPIMAGESIZE SCALEDBITBLT) (FNS \DRAWPOINT.GENERIC \DRAWPOLYGON.GENERIC \DRAWCIRCLE.GENERIC \DRAWELLIPSE.GENERIC) (FNS \IMAGEIOINIT \NOIMAGE.DSPFONT \UNIMPIMAGEOP) [COMS (* ;; "stuff to support the checking and defaulting of arguments in the device independent drawing functions.") (FNS INSURE.BRUSH BRUSHP \POSSIBLECOLOR NEGSHADE) (DECLARE%: DONTCOPY EVAL@COMPILE (RESOURCES SYSTEMBRUSH)) (INITRESOURCES SYSTEMBRUSH) (FNS DASHINGP INSURE.DASHING) (DECLARE%: DONTCOPY (EXPORT (RECORDS BRUSH))) (DECLARE%: DONTCOPY (CONSTANTS (MICASPERPT (FQUOTIENT 635 18] (DECLARE%: DONTCOPY (EXPORT (MACROS IMAGEOP) (RECORDS IMAGEOPS) (GLOBALVARS \NOIMAGEOPS))) (INITRECORDS IMAGEOPS) (SYSRECORDS IMAGEOPS) (DECLARE%: DONTEVAL@LOAD DOCOPY (P (\IMAGEIOINIT))) [COMS (* ;; "Implementation of display stream resident `files.' Done here cause it might matter that the display device get defined early so that its event fn will be evaluated as the last thing before logout") (INITVARS (\COLORDISPLAYSTREAMTYPES '(4DISPLAY 8DISPLAY 24DISPLAY)) (\DISPLAYSTREAMTYPES (CONS 'DISPLAY \COLORDISPLAYSTREAMTYPES))) (FNS \DisplayEventFn \DISPLAYINIT \4DISPLAYINIT \8DISPLAYINIT \24DISPLAYINIT \DISPLAYSTREAMTYPEBPP) (ALISTS (IMAGESTREAMTYPES DISPLAY 4DISPLAY 8DISPLAY 24DISPLAY)) (GLOBALVARS DisplayFDEV \4DISPLAYFDEV \8DISPLAYFDEV \24DISPLAYFDEV) (DECLARE%: DONTEVAL@LOAD DOCOPY (P (\DISPLAYINIT) (\4DISPLAYINIT) (\8DISPLAYINIT) (\24DISPLAYINIT] (DECLARE%: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS (ADDVARS (NLAMA) (NLAML) (LAMA IMAGESTREAMP]) (DEFINEQ (IMAGESTREAMP [LAMBDA NARGS (* ; "Edited 18-Jan-87 17:25 by bvm:") (PROG ([STREAM (AND (IGREATERP NARGS 0) (SELECTQ (ARG NARGS 1) (T \TERM.OFD) (NIL *STANDARD-OUTPUT*) (ARG NARGS 1] STYPE) (OR (type? STREAM STREAM) (RETURN)) (SETQ STYPE (fetch (IMAGEOPS IMAGETYPE) of (fetch (STREAM IMAGEOPS) of STREAM))) (RETURN (AND (COND ((EQ NARGS 2) (for X inside (ARG NARGS 2) always (EQMEMB X STYPE))) (T STYPE)) STREAM]) (IMAGESTREAMTYPE [LAMBDA (STREAM) (* rmk%: "20-AUG-83 17:28") (fetch (IMAGEOPS IMAGETYPE) of (fetch (STREAM IMAGEOPS) of (\STREAMARG STREAM]) (IMAGESTREAMTYPEP [LAMBDA (STREAM STYPE) (* AJB "16-Jul-85 15:31") (* ;;; "Returns T if STREAM is an imagestream of type STYPE") (LET ((S (SELECTQ STREAM ((T NIL) (\GETSTREAM STREAM 'OUTPUT T)) STREAM))) (AND (type? STREAM S) (for X inside STYPE always (EQMEMB X (fetch (IMAGEOPS IMAGETYPE) of (fetch (STREAM IMAGEOPS) of S]) (OPENIMAGESTREAM [LAMBDA (FILE IMAGETYPE OPTIONS) (* ; "Edited 1-Jun-93 12:32 by rmk:") (* ; "Edited 11-Jan-91 16:05 by jds") (* ;; "Opens an IMAGETYPE imagestream, or if NIL, an imagestream of a type that FILE (perhaps from DEFAULTPRINTINGHOST) can print directly. If FILE is an the LPT device, then the type of the corresponding printer is used. If FILE is NIL, then an LPT file on a printer from default printinghost is used, so the file will be printed on closing.") (DECLARE (GLOBALVARS IMAGESTREAMTYPES)) (LET (LPTNAME LPTP (DEFPRINTER (OR (CAR (LISTP DEFAULTPRINTINGHOST)) DEFAULTPRINTINGHOST))) (SETQ FILE (\CONVERT-PATHNAME FILE)) [COND ((AND (NULL FILE) (NEQ IMAGETYPE 'DISPLAY)) (* ;  "YUCK! TAKE THIS OUT WHEN WE FIGURE OUT DISPLAY IMAGESTREAMS BETTER") (SETQ LPTP T) (SETQ FILE '{LPT})) ((STREAMP FILE)) ((EQ (FILENAMEFIELD FILE 'HOST) 'LPT) (SETQ LPTP T) (LET (POS) (* ;; "This should be (FILENAMEFIELD FILE 'NAME) except that FILENAMEFIELD won't accept : as part of the name, thinks it marks a device field. This code is borrowed from PRINTERDEVICE") (AND (SETQ POS (STRPOS "}" FILE)) (SETQ LPTNAME (SUBATOM FILE (ADD1 POS) (SUB1 (OR (STRPOS "." FILE (ADD1 POS)) 0] [COND [(NULL IMAGETYPE) (* ;; "Get the image type from FILE if it is an LPT file, otherwise choose the image type from the first printer on DEFAULTPRINTINGHOST") (* ;; "Assume that it will be printed on the defaultprintinghost if it is an ordinary filename. If defaultprinter is a list, chooses the preferred-file-type if it is specified, otherwise uses the first of the printer type's CANPRINT property. ") (SETQ IMAGETYPE (COND ((PRINTFILETYPE.FROM.EXTENSION FILE)) [(AND (NOT LPTNAME) (CADDR (LISTP DEFPRINTER] [(CAR (MKLIST (PRINTERPROP (PRINTERTYPE (OR LPTNAME DEFPRINTER)) 'CANPRINT] (T (ERROR "Can't determine IMAGETYPE for " FILE] [LPTNAME (OR (EQMEMB IMAGETYPE (PRINTERPROP (PRINTERTYPE LPTNAME) 'CANPRINT)) (ERROR (CONCAT "Printer " LPTNAME " can't print " IMAGETYPE " files"] (LPTP (* ;  "This includes the NIL FILE case, cause of initial coercion") (FOR P INSIDE DEFAULTPRINTINGHOST WHEN (EQMEMB IMAGETYPE (PRINTERPROP (PRINTERTYPE P) 'CANPRINT)) DO (SETQ LPTNAME (PRINTERNAME P)) (SETQ FILE (PACKFILENAME 'HOST 'LPT 'NAME LPTNAME)) (RETURN) FINALLY (ERROR (CONCAT "Can't find a printer on DEFAULTPRINTINGHOST that can print " IMAGETYPE " files"] (LET ((STREAM (APPLY* (OR [CADR (ASSOC 'OPENSTREAM (CDR (ASSOC IMAGETYPE IMAGESTREAMTYPES] (ERROR "No open function for " IMAGETYPE " streams")) [COND ((OR LPTP (STREAMP FILE) (EQ IMAGETYPE 'DISPLAY)) FILE) (T (* ;  "Stick on default extension from PRINTFILETYPES") (PACKFILENAME 'BODY FILE 'EXTENSION (OR [CAR (CADR (ASSOC 'EXTENSION (CDR (ASSOC IMAGETYPE PRINTFILETYPES ] IMAGETYPE] OPTIONS))) (IF LPTNAME THEN (STREAMPROP STREAM 'PRINTERNAME LPTNAME)) STREAM]) (\GOOD.DASHLST [LAMBDA (DASHING BRUSH) (* rrb " 9-Sep-86 16:16") (* ;;; "massage the DASHING parameter to mesh well with the size of the BRUSH") (PROG [(DASHLST (INSURE.DASHING DASHING)) (BRUSHSIZE (COND ((LITATOM BRUSH) (* ;  "handles NULL and function name case.") 1) ((BITMAPP BRUSH) (IQUOTIENT (IPLUS 2 (BITMAPHEIGHT BRUSH) (BITMAPWIDTH BRUSH)) 2)) ((NUMBERP BRUSH) (* ;  "brush can be a number meaning ROUND and it hasn't been coerced yet.") (FIXR BRUSH)) (T (fetch (BRUSH BRUSHSIZE) of BRUSH] [COND ((AND DASHLST (GREATERP BRUSHSIZE 1)) (* ;  "adjust the dashing to take into account the brush size.") [COND ((ODDP (LENGTH DASHLST)) (* ;  "even out the DASHLST because on and off are handled differently.") (SETQ DASHLST (APPEND DASHLST DASHLST] (SETQ DASHLST (bind NOWOFF for NDASH in DASHLST collect (COND (NOWOFF (SETQ NOWOFF NIL) (TIMES NDASH BRUSHSIZE)) ((SETQ NOWOFF T) (* ;  "make the on case be 1 for the first one and brushsize for every one after that.") (ADD1 (TIMES (SUB1 NDASH) BRUSHSIZE] (RETURN DASHLST]) ) (RPAQ? IMAGESTREAMTYPES NIL) (DEFINEQ (DRAWDASHEDLINE [LAMBDA (X1 Y1 X2 Y2 WIDTH OPERATION STREAM COLOR DASHING) (* ; "Edited 26-Jul-90 16:24 by matsuda") [COND ((NOT (EQ WIDTH 0)) (PROG ((DASHON T) DASHTAIL DASHCNT (ADJACENT (IDIFFERENCE X2 X1)) (OPPOSITE (IDIFFERENCE Y2 Y1)) (LENGTHDRAWN 0) DASHLST NEWX NEWY LINELENGTH SINE COSINE) [SETQ LINELENGTH (FIX (SQRT (IPLUS (ITIMES ADJACENT ADJACENT) (ITIMES OPPOSITE OPPOSITE] (* ;  "expand the dashing by the width.") (SETQ DASHLST (bind NOWOFF for NDASH in DASHING collect (TIMES NDASH WIDTH))) (SETQ DASHTAIL DASHLST) (SETQ SINE (FQUOTIENT OPPOSITE LINELENGTH)) (SETQ COSINE (FQUOTIENT ADJACENT LINELENGTH)) (while (ILESSP (PLUS LENGTHDRAWN (CAR DASHTAIL)) LINELENGTH) do (SETQ DASHCNT (CAR DASHTAIL)) (SETQ DASHTAIL (CDR DASHTAIL)) (add LENGTHDRAWN DASHCNT) (SETQ NEWX (FPLUS X1 (FTIMES COSINE DASHCNT))) (SETQ NEWY (FPLUS Y1 (FTIMES SINE DASHCNT))) (* ;; "Old code incorrect: (COND (DASHON (DRAWLINE X1 Y1 NEWX NEWY WIDTH OPERATION STREAM COLOR)) (T (RELMOVETO NEWX NEWY STREAM)))") (if DASHON then (DRAWLINE X1 Y1 NEWX NEWY WIDTH OPERATION STREAM COLOR)) (SETQ DASHON (NOT DASHON)) (SETQ X1 NEWX) (SETQ Y1 NEWY) (COND ((NULL DASHTAIL) (SETQ DASHTAIL DASHLST))) finally (* ; "do last partial segment") (if DASHON then (DRAWLINE X1 Y1 X2 Y2 WIDTH OPERATION STREAM COLOR] (MOVETO X2 Y2 STREAM]) ) (DEFINEQ (DSPBACKCOLOR [LAMBDA (COLOR STREAM) (* rmk%: "12-Sep-84 09:53") (* ;  "Switches background color on stream") (IMAGEOP 'IMBACKCOLOR (SETQ STREAM (\OUTSTREAMARG STREAM)) STREAM COLOR]) (DSPBOTTOMMARGIN [LAMBDA (YPOSITION STREAM) (* rmk%: "26-Jun-84 13:56") (* ;  "Sets the Y position that forces a new page") (IMAGEOP 'IMBOTTOMMARGIN (SETQ STREAM (\OUTSTREAMARG STREAM)) STREAM YPOSITION]) (DSPCOLOR [LAMBDA (COLOR STREAM) (* rmk%: "12-Sep-84 09:53") (* ;  "Switches foreground color on stream") (IMAGEOP 'IMCOLOR (SETQ STREAM (\OUTSTREAMARG STREAM)) STREAM COLOR]) (DSPCLIPPINGREGION [LAMBDA (REGION STREAM) (* bvm%: " 4-Sep-85 20:57") (* ;  "Set the clipping region for an imagestream") (AND REGION (NOT (type? REGION REGION)) (\ILLEGAL.ARG REGION)) (COND (STREAM (* ;  "special check done for NIL to stop default to primary output file.") (IMAGEOP 'IMCLIPPINGREGION (SETQ STREAM (\OUTSTREAMARG STREAM)) STREAM REGION)) (T (\ILLEGAL.ARG STREAM]) (DSPRESET [LAMBDA (STREAM) (* jds "11-Jan-85 16:54") (* ; "resets a display stream") (IMAGEOP 'IMRESET (SETQ STREAM (\OUTSTREAMARG STREAM)) STREAM]) (DSPFONT [LAMBDA (FONT STREAM) (* rmk%: " 2-SEP-83 10:50") (* ;  "sets the font that an image stream uses to print characters.") (IMAGEOP 'IMFONT (SETQ STREAM (\OUTSTREAMARG STREAM)) STREAM FONT]) (DSPLEFTMARGIN [LAMBDA (XPOSITION STREAM) (* rmk%: " 2-SEP-83 10:50") (* ;  "Sets the the position that a carriage return returns to") (IMAGEOP 'IMLEFTMARGIN (SETQ STREAM (\OUTSTREAMARG STREAM)) STREAM XPOSITION]) (DSPLINEFEED [LAMBDA (DELTAY STREAM) (* rmk%: " 2-SEP-83 10:50") (* ; "Sets the Xposition of STREAM") (IMAGEOP 'IMLINEFEED (SETQ STREAM (\OUTSTREAMARG STREAM)) STREAM DELTAY]) (DSPOPERATION [LAMBDA (OPERATION STREAM) (* rmk%: "12-Sep-84 09:56") (* ;  "sets the operation field of a stream") (IMAGEOP 'IMOPERATION (SETQ STREAM (\OUTSTREAMARG STREAM)) STREAM OPERATION]) (DSPRIGHTMARGIN [LAMBDA (XPOSITION STREAM) (* rmk%: " 2-SEP-83 10:51") (* ;  "Sets the right margin that determines when a cr is inserted by print.") (IMAGEOP 'IMRIGHTMARGIN (SETQ STREAM (\OUTSTREAMARG STREAM)) STREAM XPOSITION]) (DSPTOPMARGIN [LAMBDA (YPOSITION STREAM) (* rmk%: "26-Jun-84 13:55") (* ;  "Sets the Y position that a newpage starts at") (IMAGEOP 'IMTOPMARGIN (SETQ STREAM (\OUTSTREAMARG STREAM)) STREAM YPOSITION]) (DSPSCALE [LAMBDA (SCALE STREAM) (* rmk%: "16-Jun-84 14:48") (* ;  "Returns (and eventually will set) the current scale of STREAM.") (IMAGEOP 'IMSCALE (SETQ STREAM (\OUTSTREAMARG STREAM)) STREAM SCALE]) (DSPSPACEFACTOR [LAMBDA (FACTOR STREAM) (* rmk%: "27-Nov-84 18:57") (* ; "Sets the space factor of STREAM") (AND FACTOR (OR (GREATERP FACTOR 0) (\ILLEGAL.ARG FACTOR))) (IMAGEOP 'IMSPACEFACTOR (SETQ STREAM (\OUTSTREAMARG STREAM)) STREAM FACTOR]) (DSPXPOSITION [LAMBDA (XPOSITION STREAM) (* rmk%: " 2-SEP-83 10:51") (* ; "Sets the Xposition of STREAM") (IMAGEOP 'IMXPOSITION (SETQ STREAM (\OUTSTREAMARG STREAM)) STREAM XPOSITION]) (DSPYPOSITION [LAMBDA (YPOSITION STREAM) (* rmk%: " 2-SEP-83 10:51") (* ; "Sets the Yposition of STREAM") (IMAGEOP 'IMYPOSITION (SETQ STREAM (\OUTSTREAMARG STREAM)) STREAM YPOSITION]) (DSPROTATE [LAMBDA (ROTATION STREAM) (* hdj "22-Oct-85 12:15") (* ; "Sets the rotation of STREAM") (IMAGEOP 'IMROTATE (SETQ STREAM (\OUTSTREAMARG STREAM)) STREAM ROTATION]) (DSPPUSHSTATE [LAMBDA (STREAM) (* hdj "25-Nov-85 11:49") (* ;;; "push a new graphics context for STREAM") (IMAGEOP 'IMPUSHSTATE (SETQ STREAM (\OUTSTREAMARG STREAM)) STREAM]) (DSPPOPSTATE [LAMBDA (STREAM) (* hdj "25-Nov-85 11:50") (* ;;; "pop a the graphics context for STREAM") (IMAGEOP 'IMPOPSTATE (SETQ STREAM (\OUTSTREAMARG STREAM)) STREAM]) (DSPDEFAULTSTATE [LAMBDA (STREAM) (* hdj "30-Dec-85 17:39") (* ;;; "push a new graphics context for STREAM") (IMAGEOP 'IMDEFAULTSTATE (SETQ STREAM (\OUTSTREAMARG STREAM)) STREAM]) (DSPSCALE2 [LAMBDA (Sx Sy STREAM) (* hdj " 2-Jan-86 18:38") (* ; "Sets the scaling of STREAM") (IMAGEOP 'IMSCALE2 (SETQ STREAM (\OUTSTREAMARG STREAM)) STREAM Sx Sy]) (DSPTRANSLATE [LAMBDA (Tx Ty STREAM) (* hdj " 2-Jan-86 18:37") (* ; "Sets the translation of STREAM") (IMAGEOP 'IMTRANSLATE (SETQ STREAM (\OUTSTREAMARG STREAM)) STREAM Tx Ty]) ) (DEFINEQ (DSPNEWPAGE [LAMBDA (STREAM) (* jds " 9-Feb-86 17:18") (* ;;; "Start a new page on the image stream STREAM.") (AND (STREAMPROP (SETQ STREAM (\OUTSTREAMARG STREAM)) 'BEFORENEWPAGEFN) (APPLY* (STREAMPROP STREAM 'BEFORENEWPAGEFN) STREAM)) (* ;  "Let the stream's creator get control before and after the page break, if he wants it.") (IMAGEOP 'IMNEWPAGE (SETQ STREAM (\OUTSTREAMARG STREAM)) STREAM) (AND (STREAMPROP STREAM 'AFTERNEWPAGEFN) (APPLY* (STREAMPROP STREAM 'AFTERNEWPAGEFN) STREAM]) (DRAWBETWEEN [LAMBDA (PT1 PT2 WIDTH OPERATION STREAM COLOR DASHING) (* ; "Edited 14-Feb-94 11:06 by nilsson") (* ; "draws a line bewteen two points") (OR (POSITIONP PT1) (ERROR "Point1 not POSITIONP")) (OR (POSITIONP PT2) (ERROR "Point2 not POSITIONP")) (IMAGEOP 'IMDRAWLINE (SETQ STREAM (\OUTSTREAMARG STREAM)) STREAM (fetch XCOORD of PT1) (fetch YCOORD of PT1) (fetch XCOORD of PT2) (fetch YCOORD of PT2) WIDTH OPERATION COLOR DASHING]) (DRAWCIRCLE [LAMBDA (CENTERX CENTERY RADIUS BRUSH DASHING STREAM) (* rrb "30-Oct-85 14:22") (* ; "Generic DRAWCIRCLE") (COND ((LESSP RADIUS 0) (\ILLEGAL.ARG RADIUS)) ((EQP RADIUS 0) NIL) (T (IMAGEOP 'IMDRAWCIRCLE (SETQ STREAM (\OUTSTREAMARG STREAM)) STREAM CENTERX CENTERY RADIUS (INSURE.BRUSH BRUSH STREAM) (INSURE.DASHING DASHING]) (DRAWARC [LAMBDA (CENTERX CENTERY RADIUS STARTANGLE NDEGREES BRUSH DASHING STREAM) (* rrb "31-Oct-85 09:18") (* ;; "Draws an arc of a given brush and dashing. NDEGREES can be either positive (counterclockwise) or negative (clockwise).") (IMAGEOP 'IMDRAWARC (SETQ STREAM (\OUTSTREAMARG STREAM)) STREAM CENTERX CENTERY RADIUS STARTANGLE NDEGREES (INSURE.BRUSH BRUSH STREAM) (INSURE.DASHING DASHING]) (DRAWCURVE [LAMBDA (KNOTS CLOSED BRUSH DASHING STREAM) (* edited%: "31-Mar-86 20:07") (* ;  "draws a spline curve with a given brush.") (LET ((VALIDBRUSH BRUSH)) (if (NOT (BRUSHP BRUSH)) then (SETQ VALIDBRUSH (INSURE.BRUSH BRUSH STREAM))) (IMAGEOP 'IMDRAWCURVE (SETQ STREAM (\OUTSTREAMARG STREAM)) STREAM KNOTS CLOSED VALIDBRUSH (INSURE.DASHING DASHING)) (if (NEQ VALIDBRUSH BRUSH) then (FREERESOURCE SYSTEMBRUSH VALIDBRUSH]) (DRAWELLIPSE [LAMBDA (CENTERX CENTERY SEMIMINORRADIUS SEMIMAJORRADIUS ORIENTATION BRUSH DASHING STREAM) (* rrb "30-Oct-85 14:26") (* ;; "Draws an ellipse. At ORIENTATION 0, the semimajor axis is horizontal, the semiminor axis vertical. Orientation is positive in the counterclockwise direction. The current location in the stream is left at the center of the ellipse.") (DECLARE (LOCALVARS . T)) (IMAGEOP 'IMDRAWELLIPSE (SETQ STREAM (\OUTSTREAMARG STREAM)) STREAM CENTERX CENTERY SEMIMINORRADIUS SEMIMAJORRADIUS ORIENTATION (INSURE.BRUSH BRUSH STREAM) (INSURE.DASHING DASHING]) (DRAWLINE [LAMBDA (X1 Y1 X2 Y2 WIDTH OPERATION STREAM COLOR DASHING) (* ; "Edited 6-Feb-87 15:06 by FS") (* ;; "Some streams allow WIDTH to be a BRUSH, display currently does not") (IMAGEOP 'IMDRAWLINE (SETQ STREAM (\OUTSTREAMARG STREAM)) STREAM X1 Y1 X2 Y2 WIDTH OPERATION COLOR DASHING]) (DRAWPOLYGON [LAMBDA (POINTS CLOSED BRUSH DASHING STREAM) (* ; "Edited 13-Jan-88 21:00 by FS") (* ;; "draws a polygon with a given brush. Change so BRUSH can be just number, and passed through? Then display can you better drawline. Other streams?") (IMAGEOP 'IMDRAWPOLYGON (SETQ STREAM (\OUTSTREAMARG STREAM)) STREAM POINTS CLOSED (INSURE.BRUSH BRUSH STREAM) (INSURE.DASHING DASHING]) (DRAWPOINT [LAMBDA (X Y BRUSH STREAM OPERATION) (* ; "Edited 24-Aug-87 16:25 by FS") (* ;;  "draws a brush point at position X Y. Doc says brush can be a BM (only fn so documented).") (IMAGEOP 'IMDRAWPOINT (SETQ STREAM (\OUTSTREAMARG STREAM)) STREAM X Y (OR (BITMAPP BRUSH) (INSURE.BRUSH BRUSH STREAM)) OPERATION]) (FILLPOLYGON [LAMBDA (POINTS TEXTURE STREAM OPERATION WINDNUMBER) (* rrb " 5-Mar-86 15:39") (* ;  "fills a polygon with a given texture") (COND ((NOT (OR (EQUAL WINDNUMBER 0) (EQUAL WINDNUMBER 1))) (SETQ WINDNUMBER 1))) (IMAGEOP 'IMFILLPOLYGON (SETQ STREAM (\OUTSTREAMARG STREAM)) STREAM POINTS TEXTURE (OR OPERATION (DSPOPERATION NIL STREAM)) WINDNUMBER]) (DRAWTO [LAMBDA (X Y WIDTH OPERATION STREAM COLOR DASHING) (* hdj " 7-Nov-84 14:03") (* ;; "draws a line fro the current position of STREAM to absolute position X,Y.") (IMAGEOP 'IMDRAWLINE (SETQ STREAM (\OUTSTREAMARG STREAM)) STREAM (IMAGEOP 'IMXPOSITION STREAM STREAM) (IMAGEOP 'IMYPOSITION STREAM STREAM) X Y WIDTH OPERATION COLOR DASHING]) (FILLCIRCLE [LAMBDA (CENTERX CENTERY RADIUS TEXTURE STREAM) (* rmk%: " 2-SEP-83 10:54") (IMAGEOP 'IMFILLCIRCLE (SETQ STREAM (\OUTSTREAMARG STREAM)) STREAM CENTERX CENTERY RADIUS TEXTURE]) (MOVETO [LAMBDA (X Y STREAM) (* rmk%: "17-Sep-84 17:59") (* ;  "sets both the X and Y positions in a Stream") (IMAGEOP 'IMMOVETO (SETQ STREAM (\OUTSTREAMARG STREAM)) STREAM X Y]) (RELDRAWTO [LAMBDA (DX DY WIDTH OPERATION STREAM COLOR DASHING) (* ; "Edited 22-Apr-87 12:43 by rrb") (* ;  "Draws a vector from the current position") (PROG (ORIGX ORIGY (STRM (\OUTSTREAMARG STREAM))) (RETURN (COND ((NOT (AND (ZEROP DX) (ZEROP DY))) (* ;  "documented to not draw anything if DX and DY are both 0") (IMAGEOP 'IMDRAWLINE STRM STRM (SETQ ORIGX (IMAGEOP 'IMXPOSITION STRM STRM)) (SETQ ORIGY (IMAGEOP 'IMYPOSITION STRM STRM)) (IPLUS ORIGX DX) (IPLUS ORIGY DY) WIDTH OPERATION COLOR DASHING]) (BITMAPIMAGESIZE [LAMBDA (BITMAP DIMENSION STREAM) (* hdj "19-Dec-84 11:57") (IMAGEOP 'IMBITMAPSIZE STREAM STREAM BITMAP DIMENSION]) (SCALEDBITBLT [LAMBDA (SOURCE SOURCELEFT SOURCEBOTTOM DESTINATION DESTINATIONLEFT DESTINATIONBOTTOM WIDTH HEIGHT SOURCETYPE OPERATION TEXTURE CLIPPINGREGION SCALE) (* ; "Edited 29-Mar-89 18:32 by snow") (* ;; "Changed to pass thru the DESTINATIONLEFT and DESTINATIONBOTTOM arguments as NIL is significantly different than 0. NIL means %"put the bitmap at the current position.%" --was") (IMAGEOP 'IMSCALEDBITBLT DESTINATION SOURCE SOURCELEFT SOURCEBOTTOM DESTINATION DESTINATIONLEFT DESTINATIONBOTTOM WIDTH HEIGHT SOURCETYPE OPERATION TEXTURE CLIPPINGREGION (if CLIPPINGREGION then (fetch (REGION LEFT) of CLIPPINGREGION) else 0) (if CLIPPINGREGION then (fetch (REGION BOTTOM) of CLIPPINGREGION) else 0) (OR SCALE 1]) ) (DEFINEQ (\DRAWPOINT.GENERIC [LAMBDA (STREAM X Y BRUSH OPERATION) (* hdj "19-Nov-86 15:12") (* ;; "generic version of drawpoint that calls drawline. Used as the default.") (DRAWLINE X Y X Y (fetch (BRUSH BRUSHSIZE) of BRUSH) OPERATION STREAM (fetch (BRUSH BRUSHCOLOR) of BRUSH]) (\DRAWPOLYGON.GENERIC [LAMBDA (STREAM POINTS CLOSED BRUSH DASHING) (* ; "Edited 31-Mar-88 18:35 by FS") (* ;; "generic version of drawpolygon that calls drawline. Used as the default.") (if POINTS then (bind (COLOR _ (fetch (BRUSH BRUSHCOLOR) of BRUSH)) for PTAIL on POINTS while (CDR PTAIL) do (DRAWLINE (fetch (POSITION XCOORD) of (CAR PTAIL)) (ffetch (POSITION YCOORD) of (CAR PTAIL)) (fetch (POSITION XCOORD) of (CADR PTAIL)) (ffetch (POSITION YCOORD) of (CADR PTAIL)) BRUSH NIL STREAM COLOR DASHING) finally (COND ((NULL (CDR POINTS)) (* ; "only one point") (DRAWPOINT (fetch (POSITION XCOORD) of (CAR POINTS)) (ffetch (POSITION YCOORD) of (CAR POINTS)) BRUSH STREAM NIL)) ((AND CLOSED (CDDR POINTS)) (* ; "draw the closing line.") (DRAWLINE (fetch (POSITION XCOORD) of (CAR PTAIL)) (ffetch (POSITION YCOORD) of (CAR PTAIL)) (fetch (POSITION XCOORD) of (CAR POINTS)) (ffetch (POSITION YCOORD) of (CAR POINTS)) BRUSH NIL STREAM COLOR DASHING]) (\DRAWCIRCLE.GENERIC [LAMBDA (STREAM CENTERX CENTERY RADIUS BRUSH DASHING) (* ; "Edited 13-Apr-88 14:03 by FS") (* ;; "Approximate ellipse with cubic spline. Generic in the sense that if the stream supports splines, then this code will work (only as good as the approximation).. -FS.") (* ;; "") (* ;; "Could have instead provided Pitteway's algorithm, but would have had to handle dashing, brushes, etc.") (* ;; "") (* ;; "Could also have simply called \DRAWELLIPSE.GENERIC.") (PROG [(R2RAD (FIXR (FTIMES RADIUS (CONSTANT (FQUOTIENT (SQRT 2) 2] (DRAWCURVE (LIST (CREATEPOSITION (IPLUS CENTERX RADIUS) CENTERY) (CREATEPOSITION (IPLUS CENTERX R2RAD) (IPLUS CENTERY R2RAD)) (CREATEPOSITION CENTERX (IPLUS CENTERY RADIUS)) (CREATEPOSITION (IDIFFERENCE CENTERX R2RAD) (IPLUS CENTERY R2RAD)) (CREATEPOSITION (IDIFFERENCE CENTERX RADIUS) CENTERY) (CREATEPOSITION (IDIFFERENCE CENTERX R2RAD) (IDIFFERENCE CENTERY R2RAD)) (CREATEPOSITION CENTERX (IDIFFERENCE CENTERY RADIUS)) (CREATEPOSITION (IPLUS CENTERX R2RAD) (IDIFFERENCE CENTERY R2RAD))) T BRUSH DASHING STREAM]) (\DRAWELLIPSE.GENERIC [LAMBDA (STREAM CENTERX CENTERY SEMIMINORRADIUS SEMIMAJORRADIUS ORIENTATION BRUSH DASHING) (* ; "Edited 13-Apr-88 14:03 by FS") (* ;; "Approximate ellipse with cubic spline. Generic in the sense that if the stream supports splines, then this code will work (only as good as the approximation).. -FS.") (* ;; "not a great approximation for degenerate ellipses (e.g. minorrad. 1, majorrad 200), but seems to be more numerically stable than Pitteway's algorithm (in \DrawEllipse.Display)") (PROG ((SINOR (COND (ORIENTATION (SIN ORIENTATION)) (T 0.0))) (COSOR (COND (ORIENTATION (COS ORIENTATION)) (T 1.0))) (ROOT2DIV2 (CONSTANT (FQUOTIENT (SQRT 2) 2))) MAJORXOFFSET MAJORYOFFSET MINORXOFFSET MINORYOFFSET) (SETQ MAJORXOFFSET (FTIMES COSOR SEMIMAJORRADIUS)) (SETQ MAJORYOFFSET (FTIMES SINOR SEMIMAJORRADIUS)) (SETQ MINORXOFFSET (FTIMES SINOR SEMIMINORRADIUS)) (SETQ MINORYOFFSET (FTIMES COSOR SEMIMINORRADIUS)) (SETQ EXTRAXOFFSET (CL:* ROOT2DIV2 (- MAJORXOFFSET MINORXOFFSET))) (SETQ EXTRAYOFFSET (CL:* ROOT2DIV2 (+ MAJORYOFFSET MINORYOFFSET))) (SETQ VERSOXOFFSET (CL:* ROOT2DIV2 (+ MAJORXOFFSET MINORXOFFSET))) (SETQ VERSOYOFFSET (CL:* ROOT2DIV2 (- MAJORYOFFSET MINORYOFFSET))) (DRAWCURVE (LIST (CREATEPOSITION (+ CENTERX MAJORXOFFSET) (+ CENTERY MAJORYOFFSET)) (CREATEPOSITION (+ CENTERX EXTRAXOFFSET) (+ CENTERY EXTRAYOFFSET)) (CREATEPOSITION (- CENTERX MINORXOFFSET) (+ CENTERY MINORYOFFSET)) (CREATEPOSITION (- CENTERX VERSOXOFFSET) (- CENTERY VERSOYOFFSET)) (CREATEPOSITION (- CENTERX MAJORXOFFSET) (- CENTERY MAJORYOFFSET)) (CREATEPOSITION (- CENTERX EXTRAXOFFSET) (- CENTERY EXTRAYOFFSET)) (CREATEPOSITION (+ CENTERX MINORXOFFSET) (- CENTERY MINORYOFFSET)) (CREATEPOSITION (+ CENTERX VERSOXOFFSET) (+ CENTERY VERSOYOFFSET))) T BRUSH DASHING STREAM) (MOVETO CENTERX CENTERY STREAM]) ) (DEFINEQ (\IMAGEIOINIT [LAMBDA NIL (* rrb "17-Sep-86 15:09") (DECLARE (GLOBALVARS \NOIMAGEOPS)) (* ;  "most of the functions are filled with NILL from the record declaration for IMAGEOPS") (SETQ \NOIMAGEOPS (create IMAGEOPS IMAGETYPE _ NIL IMXPOSITION _ [FUNCTION (LAMBDA (STREAM POS) (LET ((OPOS (POSITION STREAM))) (PROG1 OPOS (COND (POS (SPACES (DIFFERENCE POS OPOS) STREAM))))] IMYPOSITION _ [FUNCTION (LAMBDA (STREAM N) (PROG1 (AND \#DISPLAYLINES (NEQ \CURRENTDISPLAYLINE -1) (DIFFERENCE \#DISPLAYLINES \CURRENTDISPLAYLINE)) [COND (N (\UNIMPIMAGEOP STREAM 'DSPYPOSITION])] IMFONT _ (FUNCTION \NOIMAGE.DSPFONT) IMLEFTMARGIN _ (FUNCTION ZERO) IMRIGHTMARGIN _ [FUNCTION (LAMBDA (STREAM N) (LINELENGTH N STREAM] IMLINEFEED _ [FUNCTION (LAMBDA (STREAM DY) (PROG1 -1 [AND DY (COND ((NEQ DY -1) (ERROR DY "Illegal DSPLINEFEED for terminal" ])] IMSPACEFACTOR _ [FUNCTION (LAMBDA (STREAM) (\UNIMPIMAGEOP STREAM 'DSPSPACEFACTOR] IMFONTCREATE _ [FUNCTION (LAMBDA (STREAM) (\UNIMPIMAGEOP STREAM 'FONTCREATE] IMSTRINGWIDTH _ [FUNCTION (LAMBDA (STREAM STR RDTBL) (NCHARS STR RDTBL RDTBL] IMCHARWIDTH _ [FUNCTION (LAMBDA NIL 1] IMCHARSET _ [FUNCTION (LAMBDA (STREAM CHARSET) (* ;; "If we had another illegal character set value, then we could simply fix it so that the character set didn't match anything, which would cause the character set shift to be put out on the next character") (COND ((\IOMODEP STREAM 'OUTPUT T) (\BOUT STREAM NSCHARSETSHIFT) (COND ((EQ CHARSET T) (\BOUT STREAM NSCHARSETSHIFT) (\BOUT STREAM 0)) (T (\BOUT STREAM CHARSET] IMDRAWPOLYGON _ (FUNCTION NILL) IMDRAWPOINT _ (FUNCTION NILL]) (\NOIMAGE.DSPFONT [LAMBDA (STREAM FONT) (* ; "Edited 30-Oct-2021 19:09 by rmk:") (* ; "Edited 28-Oct-87 20:10 by jds") (* ;; "DSPFONT method for non-image streams: Put out font-change characters.") (* ;; "RMK: Save and restore CHARPOSITION") (LET ((OLDFONT (ffetch (STREAM IMAGEDATA) of STREAM))) (PROG1 OLDFONT [AND (NEQ OLDFONT 0) (LET ([FONTN (OR (SMALLP FONT) (AND (type? FONTCLASS FONT) (fetch (FONTCLASS PRETTYFONT#) of FONT] CHARPOS) (COND ((AND FONTN (NEQ FONTN OLDFONT)) (* ;; "must be an outchar so that if the file is run-coded, the font change characters will come out in charset 0.") (COND ((NEQ FONTN 0) (SETQ CHARPOS (FFETCH (STREAM CHARPOSITION) OF STREAM)) (\OUTCHAR STREAM (CONSTANT (CHCON1 FONTESCAPECHAR))) (\OUTCHAR STREAM FONTN) (FREPLACE (STREAM CHARPOSITION) OF STREAM WITH CHARPOS))) (freplace (STREAM IMAGEDATA) of STREAM with FONTN])]) (\UNIMPIMAGEOP [LAMBDA (STREAM OP) (* rmk%: "26-Jun-84 13:28") (ERROR STREAM (CONCAT "does not support " OP]) ) (* ;; "stuff to support the checking and defaulting of arguments in the device independent drawing functions." ) (DEFINEQ (INSURE.BRUSH [LAMBDA (BRUSH STREAM NOERRORFLG) (* ; "Edited 13-Jan-88 20:59 by FS") (* ;; "returns a full brush if BRUSH is interpretable as a brush") (COND ((BRUSHP BRUSH)) ((NUMBERP BRUSH) (LET ((SYSTEMBRUSH (NEWRESOURCE SYSTEMBRUSH))) (replace (BRUSH BRUSHSHAPE) of SYSTEMBRUSH with 'ROUND) (freplace (BRUSH BRUSHSIZE) of SYSTEMBRUSH with BRUSH) (freplace (BRUSH BRUSHCOLOR) of SYSTEMBRUSH with (DSPCOLOR NIL STREAM)) SYSTEMBRUSH)) ((NULL BRUSH) (* ;  "Defaults to ROUND, 1 screen point and the current stream color") (LET ((SYSTEMBRUSH (NEWRESOURCE SYSTEMBRUSH))) (replace (BRUSH BRUSHSHAPE) of SYSTEMBRUSH with 'ROUND) (freplace (BRUSH BRUSHCOLOR) of SYSTEMBRUSH with (DSPCOLOR NIL STREAM)) (freplace (BRUSH BRUSHSIZE) of SYSTEMBRUSH with (DSPSCALE NIL STREAM)) (* ;  "the default brush should be 1 screen point wide.") SYSTEMBRUSH)) (NOERRORFLG NIL) (T (\ILLEGAL.ARG BRUSH]) (BRUSHP [LAMBDA (BRUSH?) (* rrb "13-Feb-86 17:37") (* ;; "checks if BRUSH? is a legal brush") (DECLARE (GLOBALVARS KNOWN.BRUSHES)) (COND ((LITATOM BRUSH?) (* ;  "the name of a function to be applied at each point.") (AND (\DEFINEDP BRUSH?) BRUSH?)) ([AND (MEMB (CAR (LISTP BRUSH?)) KNOWN.BRUSHES) [NUMBERP (CAR (LISTP (CDR BRUSH?] (OR (NULL (CDDR BRUSH?)) (AND [OR [\POSSIBLECOLOR (CAR (LISTP (CDDR BRUSH?] (NULL (CAR (LISTP (CDDR BRUSH?] (NULL (CDDDR BRUSH?] BRUSH?]) (\POSSIBLECOLOR [LAMBDA (COLOR?) (* ; "Edited 28-Jan-93 13:05 by jds") (* ;; "could COLOR? be a color indicator. True if it is a number in the right range or a LITATOM that could be a name.") (SELECTQ (TYPENAME COLOR?) ((LITATOM NEW-ATOM) COLOR?) ((SMALLP FIXP) (AND (IGEQ COLOR? 0) (ILEQ COLOR? (MASK.1'S 0 24)) COLOR?)) (LISTP (OR (RGBP COLOR?) (HLSP COLOR?))) NIL]) (NEGSHADE [LAMBDA (SHADE) (* ; "Edited 2-Mar-88 20:58 by FS") (* ;; "Keep arithmetic small if possible. This is used in Interpress, possibly other places") (if (NUMBERP SHADE) then (if (< SHADE 0) then SHADE else (- SHADE 65535 1)) else SHADE]) ) (DECLARE%: DONTCOPY EVAL@COMPILE (DECLARE%: EVAL@COMPILE [PUTDEF 'SYSTEMBRUSH 'RESOURCES '(NEW (CREATE BRUSH) FREE (PUSH \SYSTEMBRUSHES (PROG1 . ARGS)) GET (OR (POP \SYSTEMBRUSHES) (NEWRESOURCE SYSTEMBRUSH)) INIT (SETQ \SYSTEMBRUSHES NIL] ) ) (SETQ \SYSTEMBRUSHES NIL) (DEFINEQ (DASHINGP [LAMBDA (DASHING) (* rrb "30-Oct-85 11:33") (* ;; "return DASHING if it is a legal DASHING Note that NIL is a legal dashing and this will return NIL.") (AND (LISTP DASHING) (for X in DASHING always (NUMBERP X)) DASHING]) (INSURE.DASHING [LAMBDA (DASHING NOERRORFLG) (* rrb "30-Oct-85 11:35") (* ;; "checks to make sure DASHING is a legal dashing spec.") (COND (DASHING (COND ((DASHINGP DASHING)) (NOERRORFLG NIL) (T (\ILLEGAL.ARG DASHING]) ) (DECLARE%: DONTCOPY (* "FOLLOWING DEFINITIONS EXPORTED")(DECLARE%: EVAL@COMPILE (RECORD BRUSH (BRUSHSHAPE BRUSHSIZE BRUSHCOLOR) BRUSHSHAPE _ 'ROUND BRUSHSIZE _ 1) ) (* "END EXPORTED DEFINITIONS") ) (DECLARE%: DONTCOPY (DECLARE%: EVAL@COMPILE (RPAQ MICASPERPT (FQUOTIENT 635 18)) (CONSTANTS (MICASPERPT (FQUOTIENT 635 18))) ) ) (DECLARE%: DONTCOPY (* "FOLLOWING DEFINITIONS EXPORTED")(DECLARE%: EVAL@COMPILE (PUTPROPS IMAGEOP MACRO [ARGS (CONS 'SPREADAPPLY* (CONS (COND [(EQ (CAR (LISTP (CAR ARGS))) 'QUOTE) (LIST 'fetch (LIST 'IMAGEOPS (CADAR ARGS)) 'of (LIST 'fetch '(STREAM IMAGEOPS) 'of (CADR ARGS] (T (HELP "IMAGEOP - OPNAME not quoted:" ARGS))) (CDDR ARGS]) ) (DECLARE%: EVAL@COMPILE (DATATYPE IMAGEOPS (IMAGETYPE IMCLOSEFN IMXPOSITION IMYPOSITION IMFONT IMLEFTMARGIN IMRIGHTMARGIN IMLINEFEED IMDRAWLINE IMDRAWCURVE IMDRAWCIRCLE IMDRAWELLIPSE IMFILLCIRCLE IMBLTSHADE IMBITBLT IMNEWPAGE IMMOVETO IMSCALE IMTERPRI IMTOPMARGIN IMBOTTOMMARGIN IMSPACEFACTOR IMFONTCREATE IMOPERATION IMCOLOR IMSTRINGWIDTH IMCHARWIDTH IMCHARWIDTHY IMBACKCOLOR IMBITMAPSIZE IMCLIPPINGREGION IMRESET IMDRAWPOLYGON IMFILLPOLYGON IMSCALEDBITBLT IMWRITEPIXEL IMCHARSET IMROTATE IMDRAWARC IMTRANSLATE IMSCALE2 IMPUSHSTATE IMPOPSTATE IMDEFAULTSTATE IMDRAWPOINT IMBLTCHAR IMXOFFSET IMYOFFSET) IMCLOSEFN _ (FUNCTION NILL) IMTERPRI _ [FUNCTION (LAMBDA (STREAM) (\OUTCHAR STREAM (CHARCODE EOL] IMNEWPAGE _ [FUNCTION (LAMBDA (STREAM) (\OUTCHAR STREAM (CHARCODE ^L] IMOPERATION _ (FUNCTION NILL) IMCOLOR _ (FUNCTION NILL) IMCLIPPINGREGION _ (FUNCTION NILL) IMRESET _ (FUNCTION NILL) IMBACKCOLOR _ (FUNCTION NILL) IMSTRINGWIDTH _ [FUNCTION (LAMBDA (STREAM STR RDTBL) (STRINGWIDTH STR (DSPFONT NIL STREAM) RDTBL RDTBL] IMCHARWIDTH _ [FUNCTION (LAMBDA (STREAM CHARCODE) (CHARWIDTH CHARCODE (DSPFONT NIL STREAM] IMMOVETO _ [FUNCTION (LAMBDA (STREAM X Y) (IMAGEOP 'IMXPOSITION STREAM STREAM X) (IMAGEOP 'IMYPOSITION STREAM STREAM Y] IMBITMAPSIZE _ [FUNCTION (LAMBDA (STREAM BITMAP DIMENSION) (SELECTQ DIMENSION (WIDTH (TIMES (DSPSCALE NIL STREAM) (BITMAPWIDTH BITMAP))) (HEIGHT (TIMES (DSPSCALE NIL STREAM) (BITMAPHEIGHT BITMAP))) (NIL (CONS (TIMES (DSPSCALE NIL STREAM) (BITMAPWIDTH BITMAP)) (TIMES (DSPSCALE NIL STREAM) (BITMAPHEIGHT BITMAP)))) (\ILLEGAL.ARG DIMENSION] IMWRITEPIXEL _ (FUNCTION NILL) IMCHARSET _ (FUNCTION NILL) IMXPOSITION _ (FUNCTION NILL) IMYPOSITION _ (FUNCTION NILL) IMFONT _ (FUNCTION NILL) IMLEFTMARGIN _ (FUNCTION NILL) IMRIGHTMARGIN _ (FUNCTION NILL) IMLINEFEED _ (FUNCTION NILL) IMDRAWLINE _ (FUNCTION NILL) IMDRAWCURVE _ (FUNCTION NILL) IMDRAWCIRCLE _ (FUNCTION NILL) IMDRAWELLIPSE _ (FUNCTION NILL) IMFILLCIRCLE _ (FUNCTION NILL) IMBLTSHADE _ (FUNCTION NILL) IMBITBLT _ (FUNCTION NILL) IMSCALE _ (FUNCTION NILL) IMTOPMARGIN _ (FUNCTION NILL) IMBOTTOMMARGIN _ (FUNCTION NILL) IMSPACEFACTOR _ (FUNCTION NILL) IMFONTCREATE _ (FUNCTION NILL) IMCHARWIDTHY _ (FUNCTION NILL) IMDRAWPOLYGON _ (FUNCTION \DRAWPOLYGON.GENERIC) IMDRAWPOINT _ (FUNCTION \DRAWPOINT.GENERIC) IMFILLPOLYGON _ (FUNCTION NILL) IMSCALEDBITBLT _ (FUNCTION NILL) IMROTATE _ (FUNCTION NILL) IMDRAWARC _ (FUNCTION NILL) IMTRANSLATE _ (FUNCTION NILL) IMPUSHSTATE _ (FUNCTION NILL) IMPOPSTATE _ (FUNCTION NILL) IMSCALE2 _ (FUNCTION NILL) IMDEFAULTSTATE _ (FUNCTION NILL) IMBLTCHAR _ (FUNCTION \MEDW.BLTCHAR) IMXOFFSET _ (FUNCTION \MEDW.XOFFSET) IMYOFFSET _ (FUNCTION \MEDW.YOFFSET)) ) (/DECLAREDATATYPE 'IMAGEOPS '(POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER) '((IMAGEOPS 0 POINTER) (IMAGEOPS 2 POINTER) (IMAGEOPS 4 POINTER) (IMAGEOPS 6 POINTER) (IMAGEOPS 8 POINTER) (IMAGEOPS 10 POINTER) (IMAGEOPS 12 POINTER) (IMAGEOPS 14 POINTER) (IMAGEOPS 16 POINTER) (IMAGEOPS 18 POINTER) (IMAGEOPS 20 POINTER) (IMAGEOPS 22 POINTER) (IMAGEOPS 24 POINTER) (IMAGEOPS 26 POINTER) (IMAGEOPS 28 POINTER) (IMAGEOPS 30 POINTER) (IMAGEOPS 32 POINTER) (IMAGEOPS 34 POINTER) (IMAGEOPS 36 POINTER) (IMAGEOPS 38 POINTER) (IMAGEOPS 40 POINTER) (IMAGEOPS 42 POINTER) (IMAGEOPS 44 POINTER) (IMAGEOPS 46 POINTER) (IMAGEOPS 48 POINTER) (IMAGEOPS 50 POINTER) (IMAGEOPS 52 POINTER) (IMAGEOPS 54 POINTER) (IMAGEOPS 56 POINTER) (IMAGEOPS 58 POINTER) (IMAGEOPS 60 POINTER) (IMAGEOPS 62 POINTER) (IMAGEOPS 64 POINTER) (IMAGEOPS 66 POINTER) (IMAGEOPS 68 POINTER) (IMAGEOPS 70 POINTER) (IMAGEOPS 72 POINTER) (IMAGEOPS 74 POINTER) (IMAGEOPS 76 POINTER) (IMAGEOPS 78 POINTER) (IMAGEOPS 80 POINTER) (IMAGEOPS 82 POINTER) (IMAGEOPS 84 POINTER) (IMAGEOPS 86 POINTER) (IMAGEOPS 88 POINTER) (IMAGEOPS 90 POINTER) (IMAGEOPS 92 POINTER) (IMAGEOPS 94 POINTER)) '96) (DECLARE%: DOEVAL@COMPILE DONTCOPY (GLOBALVARS \NOIMAGEOPS) ) (* "END EXPORTED DEFINITIONS") ) (/DECLAREDATATYPE 'IMAGEOPS '(POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER) '((IMAGEOPS 0 POINTER) (IMAGEOPS 2 POINTER) (IMAGEOPS 4 POINTER) (IMAGEOPS 6 POINTER) (IMAGEOPS 8 POINTER) (IMAGEOPS 10 POINTER) (IMAGEOPS 12 POINTER) (IMAGEOPS 14 POINTER) (IMAGEOPS 16 POINTER) (IMAGEOPS 18 POINTER) (IMAGEOPS 20 POINTER) (IMAGEOPS 22 POINTER) (IMAGEOPS 24 POINTER) (IMAGEOPS 26 POINTER) (IMAGEOPS 28 POINTER) (IMAGEOPS 30 POINTER) (IMAGEOPS 32 POINTER) (IMAGEOPS 34 POINTER) (IMAGEOPS 36 POINTER) (IMAGEOPS 38 POINTER) (IMAGEOPS 40 POINTER) (IMAGEOPS 42 POINTER) (IMAGEOPS 44 POINTER) (IMAGEOPS 46 POINTER) (IMAGEOPS 48 POINTER) (IMAGEOPS 50 POINTER) (IMAGEOPS 52 POINTER) (IMAGEOPS 54 POINTER) (IMAGEOPS 56 POINTER) (IMAGEOPS 58 POINTER) (IMAGEOPS 60 POINTER) (IMAGEOPS 62 POINTER) (IMAGEOPS 64 POINTER) (IMAGEOPS 66 POINTER) (IMAGEOPS 68 POINTER) (IMAGEOPS 70 POINTER) (IMAGEOPS 72 POINTER) (IMAGEOPS 74 POINTER) (IMAGEOPS 76 POINTER) (IMAGEOPS 78 POINTER) (IMAGEOPS 80 POINTER) (IMAGEOPS 82 POINTER) (IMAGEOPS 84 POINTER) (IMAGEOPS 86 POINTER) (IMAGEOPS 88 POINTER) (IMAGEOPS 90 POINTER) (IMAGEOPS 92 POINTER) (IMAGEOPS 94 POINTER)) '96) (ADDTOVAR SYSTEMRECLST (DATATYPE IMAGEOPS (IMAGETYPE IMCLOSEFN IMXPOSITION IMYPOSITION IMFONT IMLEFTMARGIN IMRIGHTMARGIN IMLINEFEED IMDRAWLINE IMDRAWCURVE IMDRAWCIRCLE IMDRAWELLIPSE IMFILLCIRCLE IMBLTSHADE IMBITBLT IMNEWPAGE IMMOVETO IMSCALE IMTERPRI IMTOPMARGIN IMBOTTOMMARGIN IMSPACEFACTOR IMFONTCREATE IMOPERATION IMCOLOR IMSTRINGWIDTH IMCHARWIDTH IMCHARWIDTHY IMBACKCOLOR IMBITMAPSIZE IMCLIPPINGREGION IMRESET IMDRAWPOLYGON IMFILLPOLYGON IMSCALEDBITBLT IMWRITEPIXEL IMCHARSET IMROTATE IMDRAWARC IMTRANSLATE IMSCALE2 IMPUSHSTATE IMPOPSTATE IMDEFAULTSTATE IMDRAWPOINT IMBLTCHAR IMXOFFSET IMYOFFSET)) ) (DECLARE%: DONTEVAL@LOAD DOCOPY (\IMAGEIOINIT) ) (* ;; "Implementation of display stream resident `files.' Done here cause it might matter that the display device get defined early so that its event fn will be evaluated as the last thing before logout" ) (RPAQ? \COLORDISPLAYSTREAMTYPES '(4DISPLAY 8DISPLAY 24DISPLAY)) (RPAQ? \DISPLAYSTREAMTYPES (CONS 'DISPLAY \COLORDISPLAYSTREAMTYPES)) (DEFINEQ (\DisplayEventFn [LAMBDA (FDEV EVENT) (* bvm%: "25-MAY-83 12:32") (SELECTQ EVENT (BEFORELOGOUT (DISPLAYBEFOREEXIT 'LOGOUT)) (AFTERLOGOUT (DISPLAYAFTERENTRY 'LOGOUT)) (BEFOREMAKESYS (DISPLAYBEFOREEXIT 'MAKESYS)) (AFTERMAKESYS (DISPLAYAFTERENTRY 'MAKESYS)) ((BEFORESYSOUT BEFORESAVEVM) (DISPLAYBEFOREEXIT 'SYSOUT)) ((AFTERSYSOUT AFTERSAVEVM) (DISPLAYAFTERENTRY 'SYSOUT)) NIL]) (\DISPLAYINIT [LAMBDA NIL (* ; "Edited 25-Sep-2021 20:57 by rmk:") (* ;; "Initializes global variables for the Display device") (* ;; "Display Streams are referred to only by themselves so they do not need directory operations. Most of the fields in the DisplayDevice are empty to avoid something bad happening.") (DECLARE (GLOBALVARS DisplayFDEV \DISPLAYIMAGEOPS \DisplayDeviceMethods \DisplayDeviceData)) (SETQ \DisplayDeviceMethods (create WSOPS)) (SETQ \DisplayDeviceData (create WSDATA WSDESTINATION _ "Destination" WSREGION _ (create REGION LEFT _ 0 BOTTOM _ 0 WIDTH _ 1024 HEIGHT _ 808))) (MAKE-EXTERNALFORMAT :DISPLAY NIL NIL NIL (FUNCTION \DSPPRINTCHAR) NIL CR.EOLC) (SETQ \DISPLAYIMAGEOPS (create IMAGEOPS IMAGETYPE _ 'DISPLAY IMFONT _ (FUNCTION \DSPFONT.DISPLAY) IMLEFTMARGIN _ (FUNCTION \DSPLEFTMARGIN.DISPLAY) IMRIGHTMARGIN _ (FUNCTION \DSPRIGHTMARGIN.DISPLAY) IMLINEFEED _ (FUNCTION \DSPLINEFEED.DISPLAY) IMXPOSITION _ (FUNCTION \DSPXPOSITION.DISPLAY) IMYPOSITION _ (FUNCTION \DSPYPOSITION.DISPLAY) IMCLOSEFN _ (FUNCTION NILL) IMDRAWCURVE _ (FUNCTION \DRAWCURVE.DISPLAY) IMFILLCIRCLE _ '\FILLCIRCLE.DISPLAY IMDRAWLINE _ (FUNCTION \DRAWLINE.DISPLAY) IMDRAWELLIPSE _ (FUNCTION \DRAWELLIPSE.DISPLAY) IMDRAWCIRCLE _ (FUNCTION \DRAWCIRCLE.DISPLAY) IMFILLPOLYGON _ (FUNCTION POLYSHADE.DISPLAY) IMBITBLT _ (FUNCTION \BITBLT.DISPLAY) IMSCALEDBITBLT _ (FUNCTION \SCALEDBITBLT.DISPLAY) IMBLTSHADE _ (FUNCTION \BLTSHADE.DISPLAY) IMNEWPAGE _ (FUNCTION \NEWPAGE.DISPLAY) IMSCALE _ [FUNCTION (LAMBDA NIL 1] IMSPACEFACTOR _ (FUNCTION NILL) IMFONTCREATE _ 'DISPLAY IMCOLOR _ (FUNCTION NILL) IMBACKCOLOR _ (FUNCTION \BACKCOLOR.DISPLAY) IMOPERATION _ (FUNCTION \DSPOPERATION.DISPLAY) IMSTRINGWIDTH _ (FUNCTION \STRINGWIDTH.DISPLAY) IMCHARWIDTH _ (FUNCTION \CHARWIDTH.DISPLAY) IMCLIPPINGREGION _ (FUNCTION \DSPCLIPPINGREGION.DISPLAY) IMRESET _ (FUNCTION \DSPRESET.DISPLAY) IMDRAWARC _ (FUNCTION \DRAWARC.DISPLAY) IMDRAWPOLYGON _ (FUNCTION \DRAWPOLYGON.DISPLAY) IMDRAWPOINT _ (FUNCTION \DRAWPOINT.DISPLAY) IMBLTCHAR _ (FUNCTION \MEDW.BLTCHAR) IMXOFFSET _ (FUNCTION \MEDW.XOFFSET) IMYOFFSET _ (FUNCTION \MEDW.YOFFSET))) (SETQ DisplayFDEV (create FDEV DEVICENAME _ 'DISPLAY RESETABLE _ NIL RANDOMACCESSP _ NIL PAGEMAPPED _ NIL CLOSEFILE _ (FUNCTION NILL) DELETEFILE _ (FUNCTION NILL) GETFILEINFO _ (FUNCTION NILL) OPENFILE _ [FUNCTION (LAMBDA (NAME ACCESS RECOG OTHERINFO FDEV) NAME] READPAGES _ (FUNCTION \ILLEGAL.DEVICEOP) SETFILEINFO _ (FUNCTION NILL) GENERATEFILES _ (FUNCTION \GENERATENOFILES) TRUNCATEFILE _ (FUNCTION NILL) WRITEPAGES _ (FUNCTION \ILLEGAL.DEVICEOP) GETFILENAME _ [FUNCTION (LAMBDA (NAME RECOG FDEV) NAME] REOPENFILE _ [FUNCTION (LAMBDA (NAME) NAME] EVENTFN _ (FUNCTION \DisplayEventFn) DIRECTORYNAMEP _ (FUNCTION NILL) HOSTNAMEP _ (FUNCTION NILL) BIN _ (FUNCTION \ILLEGAL.DEVICEOP) BOUT _ (FUNCTION \DSPPRINTCHAR) PEEKBIN _ (FUNCTION \ILLEGAL.DEVICEOP) BACKFILEPTR _ (FUNCTION \PAGEDBACKFILEPTR) BLOCKIN _ (FUNCTION \ILLEGAL.DEVICEOP) BLOCKOUT _ (FUNCTION \NONPAGEDBOUTS) WINDOWOPS _ \DisplayDeviceMethods WINDOWDATA _ \DisplayDeviceData DEVICEINFO _ (create DISPLAYSTATE) DEFAULTEXTERNALFORMAT _ :DISPLAY)) (\DEFINEDEVICE 'LFDISPLAY DisplayFDEV]) (\4DISPLAYINIT [LAMBDA NIL (* ; "Edited 25-Sep-2021 18:42 by rmk:") (DECLARE (GLOBALVARS \4DISPLAYIMAGEOPS \4DISPLAYFDEV)) (SETQ \4DISPLAYIMAGEOPS (create IMAGEOPS IMAGETYPE _ '4DISPLAY IMFONT _ (FUNCTION \DSPFONT.DISPLAY) IMLEFTMARGIN _ (FUNCTION \DSPLEFTMARGIN.DISPLAY) IMRIGHTMARGIN _ (FUNCTION \DSPRIGHTMARGIN.DISPLAY) IMLINEFEED _ (FUNCTION \DSPLINEFEED.DISPLAY) IMXPOSITION _ (FUNCTION \DSPXPOSITION.DISPLAY) IMYPOSITION _ (FUNCTION \DSPYPOSITION.DISPLAY) IMCLOSEFN _ (FUNCTION NILL) IMDRAWCURVE _ (FUNCTION \DRAWCURVE.DISPLAY) IMFILLCIRCLE _ '\FILLCIRCLE.DISPLAY IMDRAWLINE _ (FUNCTION \DRAWLINE.DISPLAY) IMDRAWELLIPSE _ (FUNCTION \DRAWELLIPSE.DISPLAY) IMDRAWCIRCLE _ (FUNCTION \DRAWCIRCLE.DISPLAY) IMBITBLT _ (FUNCTION \BITBLT.DISPLAY) IMBLTSHADE _ (FUNCTION \BLTSHADE.DISPLAY) IMNEWPAGE _ (FUNCTION \NEWPAGE.DISPLAY) IMSCALE _ [FUNCTION (LAMBDA NIL 1] IMSPACEFACTOR _ (FUNCTION \DSPSPACEFACTOR.DISPLAY) IMFONTCREATE _ '4DISPLAY IMCOLOR _ (FUNCTION \DSPCOLOR.DISPLAY) IMBACKCOLOR _ (FUNCTION \DSPBACKCOLOR.DISPLAY) IMOPERATION _ (FUNCTION \DSPOPERATION.DISPLAY) IMSTRINGWIDTH _ (FUNCTION \STRINGWIDTH.DISPLAY) IMCHARWIDTH _ (FUNCTION \CHARWIDTH.DISPLAY) IMCLIPPINGREGION _ (FUNCTION \DSPCLIPPINGREGION.DISPLAY) IMRESET _ (FUNCTION \DSPRESET.DISPLAY) IMDRAWARC _ (FUNCTION \DRAWARC.DISPLAY) IMDRAWPOLYGON _ (FUNCTION \DRAWPOLYGON.DISPLAY) IMDRAWPOINT _ (FUNCTION \DRAWPOINT.DISPLAY) IMBLTCHAR _ (FUNCTION \MEDW.BLTCHAR) IMXOFFSET _ (FUNCTION \MEDW.XOFFSET) IMYOFFSET _ (FUNCTION \MEDW.YOFFSET))) (SETQ \4DISPLAYFDEV (create FDEV DEVICENAME _ '4DISPLAY RESETABLE _ NIL RANDOMACCESSP _ NIL PAGEMAPPED _ NIL CLOSEFILE _ (FUNCTION NILL) DELETEFILE _ (FUNCTION NILL) GETFILEINFO _ (FUNCTION NILL) OPENFILE _ [FUNCTION (LAMBDA (NAME ACCESS RECOG OTHERINFO FDEV) NAME] READPAGES _ (FUNCTION \ILLEGAL.DEVICEOP) SETFILEINFO _ (FUNCTION NILL) GENERATEFILES _ (FUNCTION \GENERATENOFILES) TRUNCATEFILE _ (FUNCTION NILL) WRITEPAGES _ (FUNCTION \ILLEGAL.DEVICEOP) GETFILENAME _ [FUNCTION (LAMBDA (NAME RECOG FDEV) NAME] REOPENFILE _ [FUNCTION (LAMBDA (NAME) NAME] EVENTFN _ (FUNCTION NILL) DIRECTORYNAMEP _ (FUNCTION NILL) HOSTNAMEP _ (FUNCTION NILL) BIN _ (FUNCTION \ILLEGAL.DEVICEOP) BOUT _ (FUNCTION \DSPPRINTCHAR) PEEKBIN _ (FUNCTION \ILLEGAL.DEVICEOP) BACKFILEPTR _ (FUNCTION \PAGEDBACKFILEPTR) BLOCKIN _ (FUNCTION \ILLEGAL.DEVICEOP) BLOCKOUT _ (FUNCTION \NONPAGEDBOUTS) DEVICEINFO _ (create DISPLAYSTATE) WINDOWOPS _ NIL DEFAULTEXTERNALFORMAT _ :DISPLAY)) (\DEFINEDEVICE NIL \4DISPLAYFDEV]) (\8DISPLAYINIT [LAMBDA NIL (* ; "Edited 25-Sep-2021 18:43 by rmk:") (DECLARE (GLOBALVARS \8DISPLAYIMAGEOPS \8DISPLAYFDEV)) (SETQ \8DISPLAYIMAGEOPS (create IMAGEOPS IMAGETYPE _ '8DISPLAY IMFONT _ (FUNCTION \DSPFONT.DISPLAY) IMLEFTMARGIN _ (FUNCTION \DSPLEFTMARGIN.DISPLAY) IMRIGHTMARGIN _ (FUNCTION \DSPRIGHTMARGIN.DISPLAY) IMLINEFEED _ (FUNCTION \DSPLINEFEED.DISPLAY) IMXPOSITION _ (FUNCTION \DSPXPOSITION.DISPLAY) IMYPOSITION _ (FUNCTION \DSPYPOSITION.DISPLAY) IMCLOSEFN _ (FUNCTION NILL) IMDRAWCURVE _ (FUNCTION \DRAWCURVE.BIGBM) IMFILLCIRCLE _ (FUNCTION \FILLCIRCLE.BIGBM) IMDRAWLINE _ (FUNCTION \DRAWLINE.DISPLAY) IMDRAWELLIPSE _ (FUNCTION \DRAWELLIPSE.BIGBM) IMDRAWCIRCLE _ (FUNCTION \DRAWCIRCLE.BIGBM) IMBITBLT _ (FUNCTION \BITBLT.DISPLAY) IMBLTSHADE _ (FUNCTION \BLTSHADE.DISPLAY) IMNEWPAGE _ (FUNCTION \NEWPAGE.DISPLAY) IMSCALE _ [FUNCTION (LAMBDA NIL 1] IMSPACEFACTOR _ (FUNCTION \DSPSPACEFACTOR.DISPLAY) IMFONTCREATE _ '8DISPLAY IMCOLOR _ (FUNCTION \DSPCOLOR.DISPLAY) IMBACKCOLOR _ (FUNCTION \DSPBACKCOLOR.DISPLAY) IMOPERATION _ (FUNCTION \DSPOPERATION.DISPLAY) IMSTRINGWIDTH _ (FUNCTION \STRINGWIDTH.DISPLAY) IMCHARWIDTH _ (FUNCTION \CHARWIDTH.DISPLAY) IMCLIPPINGREGION _ (FUNCTION \DSPCLIPPINGREGION.DISPLAY) IMRESET _ (FUNCTION \DSPRESET.DISPLAY) IMDRAWARC _ (FUNCTION \DRAWARC.DISPLAY) IMDRAWPOLYGON _ (FUNCTION \DRAWPOLYGON.DISPLAY) IMDRAWPOINT _ (FUNCTION \DRAWPOINT.DISPLAY) IMBLTCHAR _ (FUNCTION \MEDW.BLTCHAR) IMXOFFSET _ (FUNCTION \MEDW.XOFFSET) IMYOFFSET _ (FUNCTION \MEDW.YOFFSET))) (SETQ \8DISPLAYFDEV (create FDEV DEVICENAME _ '8DISPLAY RESETABLE _ NIL RANDOMACCESSP _ NIL PAGEMAPPED _ NIL CLOSEFILE _ (FUNCTION NILL) DELETEFILE _ (FUNCTION NILL) GETFILEINFO _ (FUNCTION NILL) OPENFILE _ [FUNCTION (LAMBDA (NAME ACCESS RECOG OTHERINFO FDEV) NAME] READPAGES _ (FUNCTION \ILLEGAL.DEVICEOP) SETFILEINFO _ (FUNCTION NILL) GENERATEFILES _ (FUNCTION \GENERATENOFILES) TRUNCATEFILE _ (FUNCTION NILL) WRITEPAGES _ (FUNCTION \ILLEGAL.DEVICEOP) GETFILENAME _ [FUNCTION (LAMBDA (NAME RECOG FDEV) NAME] REOPENFILE _ [FUNCTION (LAMBDA (NAME) NAME] EVENTFN _ (FUNCTION NILL) DIRECTORYNAMEP _ (FUNCTION NILL) HOSTNAMEP _ (FUNCTION NILL) BIN _ (FUNCTION \ILLEGAL.DEVICEOP) BOUT _ (FUNCTION \DSPPRINTCHAR) PEEKBIN _ (FUNCTION \ILLEGAL.DEVICEOP) BACKFILEPTR _ (FUNCTION \PAGEDBACKFILEPTR) BLOCKIN _ (FUNCTION \ILLEGAL.DEVICEOP) BLOCKOUT _ (FUNCTION \NONPAGEDBOUTS) DEVICEINFO _ (create DISPLAYSTATE) WINDOWOPS _ NIL DEFAULTEXTERNALFORMAT _ :DISPLAY)) (\DEFINEDEVICE NIL \8DISPLAYFDEV]) (\24DISPLAYINIT [LAMBDA NIL (* ; "Edited 25-Sep-2021 18:44 by rmk:") (DECLARE (GLOBALVARS \24DISPLAYIMAGEOPS \24DISPLAYFDEV)) (SETQ \24DISPLAYIMAGEOPS (create IMAGEOPS IMAGETYPE _ '24DISPLAY IMFONT _ (FUNCTION \DSPFONT.DISPLAY) IMLEFTMARGIN _ (FUNCTION \DSPLEFTMARGIN.DISPLAY) IMRIGHTMARGIN _ (FUNCTION \DSPRIGHTMARGIN.DISPLAY) IMLINEFEED _ (FUNCTION \DSPLINEFEED.DISPLAY) IMXPOSITION _ (FUNCTION \DSPXPOSITION.DISPLAY) IMYPOSITION _ (FUNCTION \DSPYPOSITION.DISPLAY) IMCLOSEFN _ (FUNCTION NILL) IMDRAWCURVE _ (FUNCTION \DRAWCURVE.DISPLAY) IMFILLCIRCLE _ '\FILLCIRCLE.DISPLAY IMDRAWLINE _ (FUNCTION \DRAWLINE.DISPLAY) IMDRAWELLIPSE _ (FUNCTION \DRAWELLIPSE.DISPLAY) IMDRAWCIRCLE _ (FUNCTION \DRAWCIRCLE.DISPLAY) IMBITBLT _ (FUNCTION \BITBLT.DISPLAY) IMBLTSHADE _ (FUNCTION \BLTSHADE.DISPLAY) IMNEWPAGE _ (FUNCTION \NEWPAGE.DISPLAY) IMSCALE _ [FUNCTION (LAMBDA NIL 1] IMSPACEFACTOR _ (FUNCTION \DSPSPACEFACTOR.DISPLAY) IMFONTCREATE _ '24DISPLAY IMCOLOR _ (FUNCTION \DSPCOLOR.DISPLAY) IMBACKCOLOR _ (FUNCTION \DSPBACKCOLOR.DISPLAY) IMOPERATION _ (FUNCTION \DSPOPERATION.DISPLAY) IMSTRINGWIDTH _ (FUNCTION \STRINGWIDTH.DISPLAY) IMCHARWIDTH _ (FUNCTION \CHARWIDTH.DISPLAY) IMCLIPPINGREGION _ (FUNCTION \DSPCLIPPINGREGION.DISPLAY) IMRESET _ (FUNCTION \DSPRESET.DISPLAY) IMDRAWARC _ (FUNCTION \DRAWARC.DISPLAY) IMDRAWPOLYGON _ (FUNCTION \DRAWPOLYGON.DISPLAY) IMDRAWPOINT _ (FUNCTION \DRAWPOINT.DISPLAY) IMBLTCHAR _ (FUNCTION \MEDW.BLTCHAR) IMXOFFSET _ (FUNCTION \MEDW.XOFFSET) IMYOFFSET _ (FUNCTION \MEDW.YOFFSET))) (SETQ \24DISPLAYFDEV (create FDEV DEVICENAME _ '24DISPLAY RESETABLE _ NIL RANDOMACCESSP _ NIL PAGEMAPPED _ NIL CLOSEFILE _ (FUNCTION NILL) DELETEFILE _ (FUNCTION NILL) GETFILEINFO _ (FUNCTION NILL) OPENFILE _ [FUNCTION (LAMBDA (NAME ACCESS RECOG OTHERINFO FDEV) NAME] READPAGES _ (FUNCTION \ILLEGAL.DEVICEOP) SETFILEINFO _ (FUNCTION NILL) GENERATEFILES _ (FUNCTION \GENERATENOFILES) TRUNCATEFILE _ (FUNCTION NILL) WRITEPAGES _ (FUNCTION \ILLEGAL.DEVICEOP) GETFILENAME _ [FUNCTION (LAMBDA (NAME RECOG FDEV) NAME] REOPENFILE _ [FUNCTION (LAMBDA (NAME) NAME] EVENTFN _ (FUNCTION NILL) DIRECTORYNAMEP _ (FUNCTION NILL) HOSTNAMEP _ (FUNCTION NILL) BIN _ (FUNCTION \ILLEGAL.DEVICEOP) BOUT _ (FUNCTION \DSPPRINTCHAR) PEEKBIN _ (FUNCTION \ILLEGAL.DEVICEOP) BACKFILEPTR _ (FUNCTION \PAGEDBACKFILEPTR) BLOCKIN _ (FUNCTION \ILLEGAL.DEVICEOP) BLOCKOUT _ (FUNCTION \NONPAGEDBOUTS) DEVICEINFO _ (create DISPLAYSTATE) WINDOWOPS _ NIL DEFAULTEXTERNALFORMAT _ :DISPLAY)) (\DEFINEDEVICE NIL \24DISPLAYFDEV]) (\DISPLAYSTREAMTYPEBPP [LAMBDA (DISPLAYSTREAMTYPE) (* kbr%: " 6-Feb-86 18:14") (SELECTQ DISPLAYSTREAMTYPE (DISPLAY 1) (4DISPLAY 4) (8DISPLAY 8) (24DISPLAY 24) (SHOULDNT]) ) (ADDTOVAR IMAGESTREAMTYPES (DISPLAY (OPENSTREAM OPENDISPLAYSTREAM) (FONTCREATE \CREATEDISPLAYFONT) (FONTSAVAILABLE \SEARCHDISPLAYFONTFILES)) (4DISPLAY (OPENSTREAM OPENDISPLAYSTREAM) (FONTCREATE \CREATEDISPLAYFONT) (FONTSAVAILABLE \SEARCHDISPLAYFONTFILES)) (8DISPLAY (OPENSTREAM OPENDISPLAYSTREAM) (FONTCREATE \CREATEDISPLAYFONT) (FONTSAVAILABLE \SEARCHDISPLAYFONTFILES)) (24DISPLAY (OPENSTREAM OPENDISPLAYSTREAM) (FONTCREATE \CREATEDISPLAYFONT) (FONTSAVAILABLE \SEARCHDISPLAYFONTFILES))) (DECLARE%: DOEVAL@COMPILE DONTCOPY (GLOBALVARS DisplayFDEV \4DISPLAYFDEV \8DISPLAYFDEV \24DISPLAYFDEV) ) (DECLARE%: DONTEVAL@LOAD DOCOPY (\DISPLAYINIT) (\4DISPLAYINIT) (\8DISPLAYINIT) (\24DISPLAYINIT) ) (DECLARE%: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS (ADDTOVAR NLAMA ) (ADDTOVAR NLAML ) (ADDTOVAR LAMA IMAGESTREAMP) ) (PUTPROPS IMAGEIO COPYRIGHT ("Venue & Xerox Corporation" 1983 1984 1985 1986 1987 1988 1989 1990 1991 1993 1994 1999 2021)) (DECLARE%: DONTCOPY (FILEMAP (NIL (3343 12100 (IMAGESTREAMP 3353 . 4185) (IMAGESTREAMTYPE 4187 . 4400) (IMAGESTREAMTYPEP 4402 . 5037) (OPENIMAGESTREAM 5039 . 9993) (\GOOD.DASHLST 9995 . 12098)) (12135 14432 (DRAWDASHEDLINE 12145 . 14430)) (14433 21773 (DSPBACKCOLOR 14443 . 14815) (DSPBOTTOMMARGIN 14817 . 15202) (DSPCOLOR 15204 . 15568) (DSPCLIPPINGREGION 15570 . 16275) (DSPRESET 16277 . 16557) (DSPFONT 16559 . 16923) ( DSPLEFTMARGIN 16925 . 17306) (DSPLINEFEED 17308 . 17608) (DSPOPERATION 17610 . 17987) (DSPRIGHTMARGIN 17989 . 18372) (DSPTOPMARGIN 18374 . 18753) (DSPSCALE 18755 . 19122) (DSPSPACEFACTOR 19124 . 19517) ( DSPXPOSITION 19519 . 19824) (DSPYPOSITION 19826 . 20131) (DSPROTATE 20133 . 20428) (DSPPUSHSTATE 20430 . 20676) (DSPPOPSTATE 20678 . 20921) (DSPDEFAULTSTATE 20923 . 21175) (DSPSCALE2 21177 . 21468) ( DSPTRANSLATE 21470 . 21771)) (21774 30575 (DSPNEWPAGE 21784 . 22476) (DRAWBETWEEN 22478 . 23180) ( DRAWCIRCLE 23182 . 23678) (DRAWARC 23680 . 24197) (DRAWCURVE 24199 . 24876) (DRAWELLIPSE 24878 . 25664 ) (DRAWLINE 25666 . 26056) (DRAWPOLYGON 26058 . 26513) (DRAWPOINT 26515 . 26934) (FILLPOLYGON 26936 . 27502) (DRAWTO 27504 . 27922) (FILLCIRCLE 27924 . 28147) (MOVETO 28149 . 28513) (RELDRAWTO 28515 . 29432) (BITMAPIMAGESIZE 29434 . 29605) (SCALEDBITBLT 29607 . 30573)) (30576 37615 (\DRAWPOINT.GENERIC 30586 . 30933) (\DRAWPOLYGON.GENERIC 30935 . 33243) (\DRAWCIRCLE.GENERIC 33245 . 34903) ( \DRAWELLIPSE.GENERIC 34905 . 37613)) (37616 43413 (\IMAGEIOINIT 37626 . 41759) (\NOIMAGE.DSPFONT 41761 . 43247) (\UNIMPIMAGEOP 43249 . 43411)) (43536 46660 (INSURE.BRUSH 43546 . 44920) (BRUSHP 44922 . 45712) (\POSSIBLECOLOR 45714 . 46265) (NEGSHADE 46267 . 46658)) (47216 47900 (DASHINGP 47226 . 47556) (INSURE.DASHING 47558 . 47898)) (58546 79092 (\DisplayEventFn 58556 . 59066) (\DISPLAYINIT 59068 . 64651) (\4DISPLAYINIT 64653 . 69354) (\8DISPLAYINIT 69356 . 74059) (\24DISPLAYINIT 74061 . 78833) ( \DISPLAYSTREAMTYPEBPP 78835 . 79090))))) STOP