XEROX GKS 2 4 1 GKS 1 4 By: Frank Shih (Shih.PA @ Xerox.ARPA) Files: GKS.DCOM, GKSEXTERN.DCOM, GKSINTERN.DCOM, GKSMATRIX.DCOM GKS provides an alternative functional interface to the InterLisp Device Independent Graphics (DIG) utilities. It is maintains a very high degree of compatability with the draft proposal for the ANSI Graphical Kernel System, and is compatible with and is implemented on top of DIG. It is based on the Draft Proposed American National Standard Graphical Kernel System, "Information Processing Systems Computer Graphics Graphical Kernel System, X3H3/83-25r3", which defines in fairly exhaustive detail the GKS paradigm, and how to use the GKS functional interface. Since users of this package are expected to be familiar with GKS, that information is not repeated here. BACKGROUND INFORMATION There is currently no standard way to perform graphical operations in Lisp. In the larger context of computer standards, there are however several emerging standards which attempt to address, to a greater or lesser degree, issues relating to imaging, communicating, and storing graphic and textual information. This package represents both a binding to Lisp of the proposed GKS standard, and an implementation of that binding in InterLisp. COMPATIBILITY Issues concerning a graphic standard include portability of application programs, presentation of a uniform conceptual model for graphics, provision for a wide range of capabilities, device independence, and error handling. Portability issues are unaddressed in the absence of an accepted standard. The remaining issues are addressed either in DIG or in this implementation of GKS. The current implementation is compatible with GKS subset level MA, and supports the GKS notions of uniform output primitives and attributes, multiple abstract workstations, coordinate transformations, operating state, and error-handling. Device independence is accomplished through DIG. It is expected that DIG will eventually implement many of the features of GKS. LIMITATIONS ANSI/ISO GKS implies a multiple-value-return, usually represented by a call-by-reference model for parameter passing, which is not supported in InterLisp. Those function bindings which imply call-by-reference are implemented with macros. Bundled attributes are not fully supported. Colour representation is not supported. LISP BINDING OF GKS FUNCTIONS A list of functions with their implementation levels, page numbers, Lisp binding names, and ANSI names are given below: MA 80 GKS.ACTIVWORK ACTIVATE-WORKSTATION MA 81 GKS.CLEARWORK CLEAR-WORKSTATION MA 78 GKS.CLOSEGKS CLOSE-GKS MA 79 GKS.CLOSEWORK CLOSE-WORKSTATION MA 80 GKS.DEACTWORK DEACTIVATE-WORKSTATION MA 84 GKS.ESCAPE ESCAPE MA 87 GKS.FILLAREA FILL-AREA MA 148 GKS.INQCLIP INQUIRE-CLIPPING-INDICATOR MA 177 NIL INQUIRE-COLOUR-FACILITIES MA 162 NIL INQUIRE-COLOUR-REPRESENTATION MA 146 GKS.INQINDV INQUIRE-CURRENT-INDIVIDUAL-ATTRIBUTE-VALUES MA 147 GKS.INQNNUM INQUIRE-CURRENT-NORMALIZATION-TRANSFORMATION-NUMBER MA 146 NIL INQUIRE-CURRENT-PRIMITIVE-ATTRIBUTE-VALUES MA 175 GKS.INQFILL INQUIRE-FILL-AREA-FACILITIES MA 143 GKS.INQLEVEL INQUIRE-LEVEL-OF-GKS MA 161 NIL INQUIRE-LIST-OF-COLOUR-INDICES MA 169 GKS.INQSIZE INQUIRE-MAXIMUM-DISPLAY-SURFACE-SIZE MA 180 GKS.INQLWST INQUIRE-MAXIMUM-LENGTH-OF-WORKSTATION-STATE-TABLES MA 148 GKS.INQNORM INQUIRE-NORMALIZATION-TRANSFORMATION MA 171 GKS.INQPLIN INQUIRE-POLYLINE-FACILITIES MA 172 GKS.INQPMRK INQUIRE-POLYMARKER-FACILITIES MA 156 GKS.INQTBOX INQUIRE-TEXT-EXTENT MA 173 NIL INQUIRE-TEXT-FACILITIES MA 151 GKS.INQWKCN INQUIRE-WORKSTATION-CONNECTION-AND-TYPE MA 162 GKS.INQWKTR INQUIRE-WORKSTATION-TRANSFORMATION MA 78 GKS.BEGINGKS OPEN-GKS MA 78 GKS.BEGINWORK OPEN-WORKSTATION MA 86 GKS.POLYLINE POLYLINE MA 86 GKS.POLYMARK POLYMARKER MA 109 GKS.SETTRNNUM SELECT-NORMALIZATION-TRANSFORMATION MA 97 GKS.SETTPTSIZ SET-CHARACTER-HEIGHT MA 98 GKS.SETTUPDIR SET-CHARACTER-UP-VECTOR MA 109 GKS.SETCLIP SET-CLIPPING-INDICATOR MA 107 NIL SET-COLOUR-REPRESENTATION MA 100 GKS.SETFCOLOR SET-FILL-AREA-COLOUR-INDEX MA 99 GKS.SETFINNER SET-FILL-AREA-INTERIOR-STYLE MA 92 GKS.SETLSTYLE SET-LINETYPE MA 94 GKS.SETMSTYLE SET-MARKER-TYPE MA 93 GKS.SETLCOLOR SET-POLYLINE-COLOUR-INDEX MA 95 GKS.SETMCOLOR SET-POLYMARKER-COLOUR-INDEX MA 98 GKS.SETTALIGN SET-TEXT-ALIGNMENT MA 97 GKS.SETTCOLOR SET-TEXT-COLOUR-INDEX MA 108 GKS.SETVWPORT SET-VIEWPORT MA 108 GKS.SETWINDOW SET-WINDOW MA 110 GKS.SETWKVIEW SET-WORKSTATION-VIEWPORT MA 109 GKS.SETWKWIND SET-WORKSTATION-WINDOW MA 86 GKS.TEXT TEXT MA 82 GKS.UPDATWORK UPDATE-WORKSTATION (LIST ((PAGE NIL (FOLIOINFO (ARABIC) STARTINGPAGE# 1) (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD CENTERED) CHARLOOKS (SUPERSCRIPT 0 SIZE 10 FAMILY MODERN OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF SLOPE REGULAR WEIGHT MEDIUM) FORMATINFO (ARABIC)) (174 36 288 36) NIL) (HEADING NIL (HEADINGTYPE RUNNINGHEAD) (84 744 444 36) NIL) (TEXT NIL NIL (84 96 456 600) NIL))) (PAGE NIL (FOLIOINFO (ARABIC) STARTINGPAGE# NIL) (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD CENTERED) CHARLOOKS (SUPERSCRIPT 0 SIZE 10 FAMILY MODERN OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF SLOPE REGULAR WEIGHT MEDIUM) FORMATINFO (ARABIC)) (174 36 288 36) NIL) (HEADING NIL (HEADINGTYPE RUNNINGHEAD) (84 744 444 36) NIL) (TEXT NIL NIL (84 96 456 600) NIL))) (PAGE NIL (FOLIOINFO (ARABIC) STARTINGPAGE# NIL) (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD CENTERED) CHARLOOKS (SUPERSCRIPT 0 SIZE 10 FAMILY MODERN OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF SLOPE REGULAR WEIGHT MEDIUM) FORMATINFO (ARABIC)) (174 36 288 36) NIL) (HEADING NIL (HEADINGTYPE RUNNINGHEAD) (84 744 444 36) NIL) (TEXT NIL NIL (84 96 456 600) NIL)))))(( ((8(8D PAGEHEADING RUNNINGHEADTERMINALMODERN MODERN MODERN MODERNLOGO HRULE.GETFNMODERN  HRULE.GETFNMODERN  HRULE.GETFNMODERN  HRULE.GETFNMODERN  HRULE.GETFNMODERN '@ Fx/,$,1!$548FNE7/9?M?68.2B=#+#%>/21457'*46-0'%31-Pz