Digital PDFs
Documents
Guest
Register
Log In
AA-Y660A-TK
April 1984
110 pages
Original
10MB
view
download
Document:
PRO/GIDIS Manual
Order Number:
AA-Y660A-TK
Revision:
0
Pages:
110
Original Filename:
http://bitsavers.org/pdf/dec/pdp11/pro3xx/POS/AA-Y660A-TK_PRO_GIDIS_Manual_198404.pdf
OCR Text
PRO/GIDIS Manual Order No. AA-Y660A-TK AD-Y660A-T1 April 1984 This document describes PRO/GIDIS, DIGITAL's General Image Display instruction Set, as implemented for the Professional Developer's Tool Kit. It is a user guide and reference manual for programmers developing graphics applications for the Professional personal computers. DEVELOPMENT SYSTEM: Professional Host Tool Kit V2.0 PRO/Tool Kit V2.0 SOFTWARE VERSION: PRO/GIDIS V2.0 DIGITAL EQUIPMENT CORPORATION Maynard, Massact,useJfs 01754 First Printing, December 1983 Updated, April 1984 The information in this document is subject to change without notice and should not be construed as a commitment by Digital Equipment Corporation. Digital Equipment Corporation assumes no responsibility for any errors that may appear in this document. The software described in this document is furnished under a license and may only be used or copied in accordance with the terms of such license. No responsibility is assumed for the use or reliability of software or equipment that is not supplied by DIGITAL or its affiliated companies. The specifications and drawings, herein, are the property of Digital Equipment Corporation and shall not be reproduced or copied or used in whole or in part as the basis for manufacture or sale of items without written permission. Copyright © 1983, 1984 by Digital Equipment Corporation All Rights Reserved The following are trademarks of Digital Equipment Corporation: CTIBUS DEC DECmate DECsystem-10 DECSYSTEM-20 DECUS DECwriter DIBOL ~D~gDmD MASSBUS PDP P/OS PRO/BASIC PRO/Communications Professional PRO/FMS PRO/RMS PROSE PROSE PLUS Rainbow RSTS RSX Tool Kit UNIBUS VAX VMS VT Work Processor 4/84·15 CONTENTS PREFACE CHAPTER 1 1.1 1.2 1. 2.1 1.2.2 1.3 1.4 1.5 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.6 1.7 1.8 1.9 1.10 1.11 1.11.1 1.11.2 1.12 1.12.1 1.12.2 1.12.3 1.12.4 1.12.5 1.13 1.13.1 1.13.2 1.13.3 1.13.4 1.13.5 1.13.6 1.13.7 1.14 1.15 CHAPTER 2 2.1 2.1.1 2.1.2 iii INTRODUCTION TO PRO/GIDIS OVERVIEW • • • • • • • • • • • • • • • • • • • 1-1 RELATIONSHIP TO OTHER GRAPHICS TOOLS • • • • • • • 1-2 WHEN TO USE PRO/GIDIS ••••••••• • • 1-2 WHEN NOT TO USE PRO/GIDIS • • • • • • • • • 1-3 THE PRO/GIDIS INSTRUCTION SET • • • • • • • • • • 1-4 CONTROL INSTRUCTIONS • • • • • • • • • 1-5 THE VIEWING TRANSFORMATION • ••• • • 1-6 Aspect Ratios •• • • • • • • • • • • • • • 1-7 GIDIS Output Space • • ••• • • • • • • 1-8 Imposed Device Space • • • • • • • • • • • • • 1-10 The Viewport • • • • • • • • • • • • • • • • • 1-11 Hardware Address Space • • • • • • • • • • • • 1-11 The Viewing Transformation • • • • • • • • 1-12 Addressing Pixels • • • • • • • • • • • • • • 1-13 DRAWING INSTRUCTIONS • • • • • • • • • • • • • • 1-13 FILLED FIGURE INSTRUCTIONS • • • • • • • • • • • 1-14 TEXT INSTRUCTIONS ••• ••• • • • 1-15 COLOR ATTRIBUTES • • • • • • • • • • • • 1-15 THE WRITING MODE • • • • • • • • • • • • • • 1-16 LINE AND CURVE ATTRIBUTES • • • • • • • • • • • 1-19 Line Texture • • • • • • • • • • • • • 1-19 Pixel Size • • • • • • • • • • • • • • • • 1-20 FILLED FIGURE ATTRIBUTES • • • • • • • • • • 1-21 Area Texture • • • • • • • • • 1-21 Area Texture Size • • • • • • 1-22 Area Texture Cell Size • • • • • • 1-22 Shading to a Line or Point • • • • • • • • • • 1-22 Filled Figure Examples • • • • • • • • • • • • 1-23 TEXT ATTRIBUTES • • • • • • •• • • • • 1-25 Alphabets • • • • • • • • 1-25 Cell Rendition • • • • • • • • • • • • • • 1-28 Cell Rotation • •• • • • • • • • • • • • 1-28 Cell Oblique • • • • • • • • • • • • • • • 1-29 Cell Unit Size •••••••• 1-29 Cell Display Size • • • • • • • • • • 1-29 Cell Movement • •• ••• • • • • 1-29 AREA OPERATIONS INSTRUCTIONS • • • • • • • • 1-32 REPORT HANDLING INSTRUCTIONS • • • • • • • • • • 1-32 INTERACTING WITH THE PRO/GIDIS INTERPRETER THE PRO/GIDIS INTERFACE ••• Write Special Data (IO.WSD) Read Special Data (IO.RSD) iii . . . . . . 2-1 • • • • 2- 3 . . . . 2-4 2.2 2.2.1 2.2.2 2.3 2.4 CHAPTER 3 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 CHAPTER 4, 4.1 4.2 4.3 4.4 CHAPTER 5 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 5.10 CHAPTER 6 6.1 6.2 6.3 6.4 6.5 6.6 PRO/GIDIS INSTRUCTION SYNTAX Operation Codes •• • • • • • Parameter Blocks • • • . • • • SAMPLE MACRO-II PROGRAM •••• SAMPLE FORTRAN PROGRAM • • • • • ••• • . . • • • • • . • • • • 2-6 • 2-6 2-7 • •• 4\1 <It ,. Q <Ill it 41 e • I) • 2 ... 8 • • • • 2-9 CONTROL INSTRUCTIONS INITIALI ZE • • • • • • ••••. . • • • . 3-1 NEW PICTURE • • •• • • • • • • • • • • • • • 3-6 END PICTURE • • • • •• • • • • • • . • • • . 3-7 FLUSH BUFFERS ••• •••••• . 3-8 SET OUTPUT CURSOR • • • • • • • • • • •. 3-8 SET OUTPUT CURSOR RENDITION .•••• ••• 3-10 SET OUTPUT RUBBER BAND • • . . • • . 3-11 NOP • END LIST . e 9 $ • G • • • • • •• • •• • Ii) • 3 -13 8 ..••.•••• 3-13 VIEWING TRANSFORMATION INSTRUCTIONS SET OUTPUT IDS • . • • • ••••• •••• SET OUTPUT VIEWPORT • • • • • • • • • • • • • SET GrDIS OUTPUT SPACE •••.•••..•..• SET OUTPUT CLIPPING REGION • • . • • • • • • • • • 4-1 4-3 4-4 4-6 GLOBAL ATTRIBUTES INSTRUCTIONS SET PRIMARY COLOR SET SECONDARY COLOR SET-COLOR MAP-ENTRY SET-PLANE-MASK ••••••••••• SET WRITING MODE SET PIXEL SIZE • • • • • SET LINE TEXTURE • • • • • • • • SET AREA TEXTURE • SET AREA TEXTURE SIZE e • ,. • SET AREA CELL SIZE '" til til ell II!l ..... 1\1 .. • • .. • ... • • • • til $ (I til CIl • ... ., . 0 e 5-1 5-2 • 5-3 •• 0» C ~ ~ fl . 5-4 • • • 5-7 . • • 5-7 • • • • • 5-9 5-10 • • • • 5-11 5-12 til <& <I • • • II • DRAWING INSTRUCTIONS SET POSITION • • SET REL POSITION DRAW LINES • • • DRAW REL LINES DRA~il ARCS . DRAW REL ARCS • • . • • • • • .• ••••• • • • • • • . • • • . • • . • • • • . . •••••••••••.•••• •• • •••••.•••... • • • . . • • • • • • • • • iv 6-1 6-2 6- 3 6-5 6-7 6-9 CHAPTER 7 7.1 7.2 CHAPTER 53 8.1 8.2 8.3 8.4 8.5 8.6 8.7 8.8 8.9 8.10 8.11 8.12 8.13 8.14 8.15 CHAPTER 9 9.1 9.2 9.3 CHAPTER 10 10.1 10.2 10.3 10.4 10.5 APPENDIX A A.l A.2 A.3 A.4 APPENDIX B FILLED FIGURE INSTRUCTIONS BEGIN FILLED FIGURE END FILLED FIGURE • • • 7-1 • • 7-2 TEXT INSTRUCTIONS SET ALPHABET • • • •• • • • • • 8-2 CREATE ALPHABET • • • • • • • • • • • • • • • 8-3 LOAD CHARACTER CELL • • • • • • • • • • •• • 8-4 BEGIN DEFINE CHARACTER • • • • • • • • • • . • 8-5 END INE CHARACTER • • • • • • • • • • • • • 8-7 LOAD BY NAME • • • • • • • • • • • • • • • • • • • 8-9 SET CELL RENDITION • • • • •• • • • • 8-10 SET CELL ROTATION • • • • • • • • • 8-11 "SET CELL OBLIQUE • • • • • • • . • • 8-12 SET-CELL-UNIT SIZE • • • • • • • • • • • • • • 8-13 SET-CELL-DISPLAY SIZE • • • • • • • • • • • 8-14 SET CELL MOVEMENT MODE • • • • • • • • • • • 8-15 SET-CELL-EXPLICIT-MOVEMENT •••••• 8-15 DRAW CHARACTERS •••• • • • • • • • • 8-16 DRAW PACKED CHARACTERS • • • • • • • • • • • 8-18 AREA OPERATION INSTRUCTIONS ERASE CLIPPING REGION • • • • • • • • • • • • • • 9-1 PRINT SCREEN • • • • • • • • • • • • • • • • • 9-2 SCROLL CLIPPING REGION . • • • • • • • • • • 9-3 REPORT HANDLING REQUEST_CURRENT_POSITION ••••••• REQUEST STATUS .••••• • • • • REQUEST=CELL_STANDARD • • • . • • • • • • • REQUEST OUTPUT SIZE ••••••• ••• REQUEST-VERSION_NUMBER • .••••••••. 10-1 10-2 10-3 10-4 10-5 PRO/GIDIS INSTRUCTION SUMMARIES INSTRUCTIONS INSTRUCTIONS INSTRUCTIONS REPORT TAGS • A-I GROUPED BY FUNCTION • A-2 IN OPCODE ORDER • • • • • • • • • • A-4 IN ALPHABETIC ORDER • • • • • A-6 ••.• • • • • • • • • • . • • • DEC MULTINATIONAL CHARACTER SET v APPENDIX C ALPHABET DATA STRUCTURE APPENDIX D GLOSSARY INDEX EXAMPLES 1-1 1-2 1-3 1-4 1-5 1-6 1-7 1-8 2-1 2-2 Context for Filled Figure Examples 1-23 A Filled Fi.gure Using DRAW LINES ••• 1-24 A Filled Figure Using DRAW-ARCS ••• 1-24 A Filled Figure Using DRAW ARCS 1-24 A Filled Figure Using DRAW REL ARCS • • • • • • 1-24 A Filled Figure Using DRAW_REL_ARCS 1-25 A Filled Figure Using DRAW LINES • • 1-25 A Filled Figure Using DRAW LINES • • • . • • • • 1-25 Instruction with Fixed-Length Parameter Block 2-7 Instruction with Variable-Length Parameter Block • 2-7 1-1 1-2 1-3 1-4 1-5 1-6 1-7 1-8 1-9 1-10 1-11 1-12 1-13 1-14 2-1 3-1 3-2 8-1 8-2 PRO/GIDIS Sample Output • • • • • • • • • • • • • 1-1 PRO/GIDISInterface, Programs/Video Hardware • 1-3 Isotropic Mapping: Window to Viewport • •• . 1-9 Isotropic Mapping: IDS to HAS • . • • • 1-10 Video Hardware Address Space • • • • • • • • • • 1-11 The Viewing Transformation • • • . • • • 1-12 The Extended Bitmap Option • . • • • • • • . 1-15 The Writing Modes Shown with Line Texture • • • 1-17 The Logical Drawing Pixel • • • • • • . • • • • 1-21 Filled Figure Images • • • • . • . . • • • • 1-23 Alphabet 0 • • • • • • • • • .•• . • • 1-26 Character Cell Rotation • • • . • • • • • • 1-27 Character unit Cell and Display Cell 1-28 Character Cell Movement •• • • •. • • • • 1-30 PRO/GIDIS Data Path • • • • • • •• • • • • • 2-2 INITIALIZE Subsystem Initialization Bit Mask • • • 3-2 SET OUTPUT CURSOR RENDITION mask .••• 3-11 End-Define-Character • • • • •••• • • • 8-9 SET-CELL RENDITION Bit Mask • • • • 8-11 3-1 3-2 3-3 3-4 Control Instructions Summary Chart • • . • • • 3-1 Initialization Subsystems ••• . • • • • 3-2 Initialization Variable States • • • • • • • • 3-3 Types of Rubber Bands • • • • • • • • • • • • • 3-12 FIGURES TABLES vi 4-1 4-2 4-3 5-1 5-2 5-3 6-1 7-1 8-1 8-2 9-1 10-1 Viewing Transformation Instructions Summary Chart 4-1 State Variables Affected by SET OUTPUT IDS • • • 4-2 State Variables Affected by SET-GIDIS OUTPUT SPACE 4-5 Global Attribute Instructions Summary-Chart • 5-1 Color Map Values for the Professional ••• • 5-4 plane Mask Values •• • • • • • • . • 5-5 Drawing Instructions Summary Chart • • • • • • 6-1 Filled Figure Summary Chart • • • • • 7-1 Text Instructions Summary Chart . • • 8-1 Cell Rotation Angles • • . • • • 8-12 Area Operations Summary Chart . • • . • • • • • • 9-1 Report Handling Summary Chart . . • • • • • 10-1 Vll PREFACE WHO SHOULD READ THIS MANUAL You should read this manual if you are developing a graphics application for the Professional 300 Series computer and need information about PRO/GIOIS, the General Image Display Instruction Set that runs on the Professional computer. PRO/GIOIS is one of the tools that can be used in developing graphics applications for the Professional computer. This document is intended for programmers who have had experience with systems programming and graphics applications software. The reader also is expected to be familiar with the Professional 300 Series Tool Kit, and either MACRO-II or FORTRAN. It is recommended that you also read the CORE Graphics Library (CGL) Manual for a more tutorial approach to graphics software development on the Professional computer. SCOPE OF MANUAL This manual describes PRO/GIOIS and is intended to be used as both a reference manual and user guide. It covers applications running on the Professional and also provides programming information about device-independent text and graphics progra~~ing with PRO/GIOIS. ORGANIZATION OF MANUAL The manual has ten chapters and three appendixes. are summarized in the following subsections. The contents Chapter 1 -- Introduction to PRO/GIOIS This chapter is the "user guide" for PRO/GIOIS. It provides an overview of PRO/GIOIS and its relationship to other graphics products, suggests when PRO/GIOIS should and should not be used, summarizes the PRO/GIOIS instruction groups, and discusses each group in detail. Chapter 2 -- Interacting with the PRO/GIOIS Interpreter Describes the software interface to PRO/GIOIS. It describes the Queue I/O (QIO) directives that send instructions to PRO/GIOIS and return GIOIS reports, and provides PRO/GIOIS programming syntax rules and programming examples. ix PREFACE Chapter 3 -- Control Instructions Details the PRO/GIDIS instructions for program start-up, initialization, along with syntax-required instructions. Chapter 4 -- Viewing Transformation Instructions Describes the instructions used for mapping graphics addressable image areas to hardware output devices and the concepts involved in area transformation. Chapter 5 -- Global Attributes Instructions Details the global parameters that govern the appearance of drawing primitives (writing modes, line characteristics, pixel size, area texture, and primary/secondary color). Chapter 6 -- Drawing Instructions Describes the instructions used for drawing lines and curves. Chapter 7 -- Filled Figures Instructions Details those PRO/GIDIS instructions closed figures. that provide shading for Chapter 8 -- Text Instructions Describes the instructions that control text subsystem characteristics (current alphabet, character selection for display, unit and display sizes, cell rotation and rendition, and so forth). Chapter 9 -- Area Operation Instructions Details those instructions that affect the display area and the instruction for dumping screen contents to the Professional's printing device. Chapter 10 -- Report Handling Describes report handling instructions information from the output device. that return state Appendix A -- Instruction Summary Lists the PRO/GIDIS instructions, their opcodes, argument list lengths, and associated parameters. Also features an instruction list sorted into opcode order. x PREFACE Appendix B -- DEC Multinational Character Set Shows the code table for the Professional's alphabet 0, Multinational Character Set. Appendix C Alphabet Data Structure Appendix D Glossary the DEC RELATED DOCUMENTATION Please refer to the other manuals in the Tool Kit Documentation Set for more information on developing applications for the Professional. xi THE PRO/GIDIS INSTRUCTION SET " Filled Figure Instructions These instructions draw solid areas. figures by alphabets and shading specific draw graphics • Text Instructions These instructions character text. control " Area Operation Instructions These instruction perform operations such printing on specific areas. • and to return specific the operation of CONTROL INSTRUCTIONS These are the instructions that PRO/GIDIS interpreter. II scrolling Report Instructions These instructions cause PRO/GIDIS information about the current state. 1.4 as control the INITIALIZE The INITIALIZE instruction restores power-on status to one or more graphics subsystems (addressing, global attributes, text, or all subsystems). • NEW PICTURE The NEW PICTURE instruction c a r s indicate-the start of a new picture. • the view to group of END PICTURE The END PICTURE instruction indicates the end of a picture-drawing instructions. II surface FLUSH BUFFERS The FLUSH BUFFERS instruction forces the execution of pending PRO/GIDIS-instructions. 1-5 CONTROL INSTRUCTIONS • SET OUTPUT CURSOR The SET OUTPUT CURSOR instruction specifies the particular character or -object to be used as the output cursor (a visible object used to mark the current screen output location) • • SET OUTPUT CURSOR RENDITION The SET OUTPUT CURSOR RENDITION instruction specifies whether the cursor blinks or is continuous. • SET OUTPUT RUBBER BAND The SET OUTPUT RUBBER BAND instruction specifies if a rubber band is to be-generated along with the cursor, and where the base of the rubber band is. • NOP The NOP nothing. • instruction performs no operation changes a variable- END LIST The END LIST instruction indicates the length argument list. 1.5 and end of THE VIEWING TRANSFORMATION The graphical world is two-dimensional; we visualize it as a plane. The Cartesian coordinate system provides a convenient way of describing a plane. A coordinate pair specifies a discrete point in the form: X,Y where X is the horizontal axis and Y is the vertical axis. The finite area of a plane that can be specified by coordinate pairs is called an address space. The origin of an address space is (0,0). Coordinate values increase in magnitude to the right and downward. 1-6 THE VIEWING TRANSFORMATION PROjGIDIS deals with three address spaces: • GIDIS Output Space (GOS) GIDIS Output Space is the address GIDIS drawing instructions. • space referenced by the Imposed Device Space (IDS) Imposed Device Space is the user-defined address space that provides a device-independent means of describing the view surface. 1-6.1 THE VIEWING TRANSFORMATION In effect, you change window parameters in order to "view" a different portion and/or scaling of Gidis Output Space. You change viewport parameters in order to "view" the same portion of GOS in a different portion of the view surface. Viewing transformation parameters only affect subsequently received GIDIS instructions. Changing the parameters does not affect images already visible on the view surface. In order to do that, you must change the mapping parameters and redraw the image. 1.5.7 Addressing Pixels Some applications, such as a natural image display, must address individual pixels directly. To accomplish this, set IDS space to width 1920 and height 1200. The picture aspect ratio is 8:5, a ratio that maps to the entire screen. Pixel X (from the left) on row Y is IDS coordinate [X*2, Y*5]. There is a pixel at every X coordinate divisible by two and Y coordinate divisible by five. For example, [100,20], [22,15], and [78,505] all map directly to a pixel. PRO/GrDIS automatically truncates coordinates that map partway between pixels. For example, [101,23], [23,16], and [78,509] map to the same pixels as the first list of coordinates. NOTE An IDS of 960 by 240 does not accomplish the same thing. It would have a picture aspect ratio of 4:1 (the unit aspect ratio is 1:1) which would not match the picture aspect ratio of HAS (8:5). 1.6 DRAWING INSTRUCTIONS Part of the PRO/GIDIS state is a coordinate pair called the current position that corresponds to the current drawing location in GIDIS Output Space. The visual representation of the current position is the cursor. Thus, some of these instructions do not draw anything; they simply change the current position. 1-13 DRAWING INSTRUCTIONS • SET POSITION The SET POSITION instruction specifies the new current position as an absolute location in GIDIS Output Space. • SET REL POSITION The SET REL POSITION instruction specifies the new current position as a point relative to (an offset from) the old current position. • DRAW LINES The DRAW LINES instruction draws one or more starting at the current position. • straight lines DRAW REL LINES Draws one or more straight lines starting at the current position. Coordinates specified are relative to the current position or the previous point. • DRAW ARCS Draws a section of a circle using the current position reference. • a DRAW REL ARCS Draws a section of a circle using an offset from the position as a reference. 1.7 as current FILLED FIGURE INSTRUCTIONS A filled-figure is a closed, shaded figure that can be bordered by either straight lines, circular arcs, or any combination of these. The instructions that begin and end filled figures are: • BEGIN FILLED FIGURE The BEGIN FILLED FIGURE instruction starts definition. • a filled figure END FILLED FIGURE The END FILLED FIGURE instruction ends a filled figure definition and causes the entire figure to be filled in with the current area texture. 1-14 THE WRITING MODE modes, we will call the "current pattern." The exact way in which PRO/GIDIS uses the current pattern to create images depends on the writing mode and the primary and secondary colors. Figure 1-8 shows the same line texture (which includes ON and OFF pixels) drawn over light and dark areas in all visible writing modes. Transpa.rent. Transparent. Erase Ne at.e Figure 1-8: The writing Modes Shown with Line Texture The writing modes are: • TRANSPARENT In transparent mode, no actual drawing is done. Otherwise, all other drawing processes are exercised and the state information (particularly, the current position) is updated. The texture is ignored. Transparent mode for determining the current position after drawing without actually drawing the image. • TRANSPARENT NEGATE This mode is identical to transparent mode. • COMPLEMENT In complement mode, wherever the current pattern contains set (1) bits, PRO/GIDIS performs a bitwise inversion of the pixel 1-17 THE WRITING MODE value (color index). For example, a pixel containing 101 (color map entry 5) changes to 010 (color map entry 2). Wherever the current pattern contains clear (0) bits, no modifications are made. The purpose of complement mode is to make images "stand out" from whatever has already been drawn. If the appropriate color map entries contain complementary colors, the image in the display area is effectively reversed. The original image can be restored by repeating the process. Complement mode is likely to produce seams when filled figures overlap. Since filled figures include their borders, areas with a common border are considered to overlap. • COMPLEMENT NEGATE Complement negate mode is identical to complement mode except that PRO/GIDIS negates the current pattern. Wherever the current pattern contains clear (0) bits, PRO/GIDIS performs a bitwise inversion of the pixel value (color index). Wherever the current pattern contains set (1) bits, no modifications are made. • OVERLAY In overlay mode, wherever the current pattern contains set (1) bits, PRO/GIDIS draws in the current primary color. bits, no Wherever the current pattern contains clear (0) drawing occurs. The purpose of overlay mode is to draw images whatever is already on the view surface. • "on top of" OVERLAY NEGATE Overlay negate mode is identical to overlay mode except that PRO/GIDIS negates the current pattern. Wherever the current pattern contains clear (0) bits, PRO/GIDIS draws in the current primary color. Wherever the current pattern contains set (1) bits, no drawing occurs. • REPLACE In replace mode, wherever the current pattern contains set (1) bits, PRO/GIDIS draws in the primary color. Wherever the current pattern contains clear (0) bits, PRO/GIDIS draws in the secondary color. The purpose of replace mode is to draw images that completely replace whatever is already on the view surface. 1-18 FILLED FIGURE ATTRIBUTES .BYTE • WORD • BYTE .BYTE • WORD . BYTE • WORD . BYTE 6000.,3800.,180 • 3.,23 • 6000.,5532. ,-60 • 0.,32 . • BYTE . WORD .BYTE • BYTE . WORD • WORD . WORD . WORD • WORD • WORD • BYTE = 3, opcode = DRAW REL ARCS length = 0, opcode = END FILLED FIGURE A Filled Figure Using DRAW_REL_ARCS length = 2, opcode 2.,29. 0.,32 • = SET POSITION length = 0, opcode - BEGIN FILLED FIGURE length = 8, opcode - DRAW LINES 0.,31- 8.,25. 1890.,3770 • 890.,1770 • 1890.,1770 • 890.,3770 . i length = 0, opcode = END FILLED FIGURE A Filled Figure Using DRAW_LINES length 2. ,29 • 3090.,3770 • 0.,31- 255.,25 • 3590.,2270 • 4090.,3770 . 2790.,2870 • 4290.,2870 . 3090.,3770 • -32768 . 0.,32 . Example 1-8: 1.13 length 890.,3770 . Example 1-7: = SET POSITION length = 0, opcode - BEGIN FILLED FIGURE length = 3, opcode - DRAW REL ARCS 3.,23. Example 1-6: .BYTE . WORD .BYTE .BYTE . WORD • WORD • WORD • WORD . BYTE length = 2, opcode 2. ,29. 7000.,3790 • 0.,31 • = 2, opcode = SET POSITION length = 0, opcode - BEGIN FILLED FIGURE END LIST terminated, opcodi = DRAW LINES ; length = 0, opcode = END FILLED FIGURE A Filled Figure Using DRAW LINES TEXT ATTRIBUTES The following sections describe the PRO/GIDIS that determine the appearance of text. 1.13.1 state variables Alphabets The SET ALPHABET instruction specifies the current alphabet, which Is used when drawing characters, defining a new character, or erasing an existing alphabet in preparation for establishing a new alphabet. PRO/GIDIS supports up to 16 alphabets. 1-25 TEXT ATTRIBUTES Each alphabet is a list of characters. Alphabet 0 is the DEC Multinational Character Set (shown in Figure 1-11) and cannot be modified. Alphabets 1 through 15 can contain user-defined characters, which are represented as a two-dimensional raster (bit pattern) with a specific storage size (width and height) • •• •• o P A Q a B R b @ p • • II II II II II q: • • # 3 esc: s II II <£ • • $ 4 D T d t- • II 7' Il III % 5 E U e u • • ¥ • • S , I S F V f ' v II II 7' It 11 '" 7 G W 9 IN 111 II $ II If ( 8 H X h )<: • • ):( • II ) 9 I Y 1 ~ II II @ • II '* = J Z j 2 • • a Ii • + ; 1< C k < Ii • « mil" 2 • II •• m F - II II 11 / Figure 1-11: L \. M N ? 0 q ± t~ ~ 1 I :::I m A 11 II II Ii II II II iii -::: o <> J- ...... • • 7' 7' 7' 7' Pi A ~ a 7' a n ~ 0 ~ 7' ;3 7' J..! ~ 6 C 7' E ~ ~ 8 • ~ Q ~ U e » ~ 0 ~ 6 Q !4 I ~ :f 7' .L. Alphabet 0 Characters within alphabets are referenced as a tuple (alphabet, character index). A character index is a value corresponding to the character's position in the alphabet. The first character has a character index of zero. Thus, an alphabet with 26 characters would have index numbers in the range 0 to 25. Character indexes are unsigned, 16-bit integers. You can create a new alphabet of user-defined characters ways: 1. in two Created Alphabets • Use the SET ALPHABET instruction to specify alphabet. • Use the CREATE ALPHABET instruction to clear any existing characters and to allocate storage for the new alphabet. No character definition can take place until CREATE ALPHABET executes. 1-26 the current TEXT ATTRIBUTES • 2. Use the LOAD CHARACTER CELL instruction to add characters to the alphabet. Or use BEGIN DEFINE CHARACTER and END DEFINE CHARACTER instructions. Loaded Alphabets • Create a named region using Manual, Plos Directives). • Use SET ALPHABET • Use LOAD BY NAME PloS facilities (see Tool Kit For example (format described in Chapter 2): = SET ALPHABET .BYTE • WORD 1.,38. 1• ilength = 2, opcode .BYTE • WORD • WORD • WORD • WORD 4.,46. 8• 10 • 96 • ilength = 4, opcode = CREATE ALPHABET iwidth (storage pixels) iheight (storage pixels) iextent iwidth-type o. These instructions erase alphabet 1 and create a new alphabet of 96 characters (numbered 0 through 95) with a storage size of 8 by 10. The width-type parameter must be a for PROIGIDIS on plos 2. a . Figure 1-12: Character Cell Rotation 1-27 TEXT ATTRIBUTES 1.13.2 Cell Rendition The SET CELL RENDITION instruction specifies variations on characters that can be performed without selecting a new alphabet, yet are not related to writing colors or writing modes. The renditions defined for the Professional are backslant and italics. 1.13.3 Cell Rotation The SET CELL ROTATION instruction specifies the angle at which characters are to be drawn, as shown in Figure 1-12. Actual rotation is the nearest possible angle to that requested. Displald SIze LARGER THAN UnIt SIze ~- - - - - - - - - - _I IEk~_ _ _~..JGIt D I sp 1 aid I"'" ~ SIze UnIt S Izera 1E'r------9I r --- - - .,....--;-..- Displald SIze SMALLER THAN UnIt SIze Displald SIze Figure 1-13: Character Unit Cell and Display Cell 1-28 TEXT ATTRIBUTES The SET CELL OBLIQUE instruction specifies the angle between the width and the height of the display cell for a non-rotated character. When the angle is non-zero, display cells are parallelograms, rather than rectangles. The SET CELL UNIT SIZE instruction specifies the actual size of the character pattern. Although you specify cell unit size in GIDIS Output Space coordinates, that size is only an approximation. PRO/GIDIS actually uses the largest integral multiple of the character pattern that is less than or equal to the specified size. 1.13.6 Cell Display Size The SET CELL DISPLAY SIZE instruction specifies the size in GIDIS Output Space coordinates of the rectangle that contains the character pattern. The unit cell and the display cell always are aligned at their upper left corners (see Figure 1-13). If the unit cell is larger than display cell, only a portion of the character is shown. If the unit cell is smaller than the display cell, PRO/GIDIS draws the unused portion of the display cell as if the pattern specified clear bits. Cell movement attributes specify how the current position changes after each character is drawn. The SET CELL MOVEMENT MODE and the SET CELL EXPLICIT MOVEMENT instructions- specify these attributes. 1.13.7.1 Movement mode - There are two ways to specify movement: implied and explicit, as shown in Figure 1-14. • cell Implied movement means that the current position moves a distance equal to the display cell width in the direction of the cell rotation. If the display cell width value is negative, the current position moves in the direction opposite to the cell rotation. 1-29 TEXT ATTRIBUTES Impl1ed Movement ( E:..:p 1 i c i t Movement i s zero) Imp 11 ed Plus E:x:p 11 c1t ( E:><:p 1 i c i t Movement i s not zero) Figure 1-14: Character Cell Movement 1-30 TEXT ATTRIBUTES • Explicit movement means that the current position moves as specified by your program in GIDIS Output Space coordinates. Explicit movement is not affected by the cell rotation. Implied movement can be disabled; explicit movement cannot. Thus, if implied movement is enabled, the cell movement is equal to the sum of the implied and explicit movements. PRO/GIDIS always draws characters in local symmetry. This means that characters with the same unit and display sizes always cover the same number of pixels. Cell movement can exhibit either local or global symmetry. When local symmetry is enabled (the default), all cell movements will be the same number of physical pixels. This means that all spaces will look the same on the screen but the "hard" position and the "soft" position can drift apart. Global symmetry keeps the "soft" position and the "hard" position together but allows I pixel wide gaps between every few characters. (The "soft" position is calculated in GOS coordinates and the "hard" position in physical pixels.) 1.14 AREA OPERATIONS INSTRUCTIONS These instructions perform operations on viewing transformation instructions. • defined by the ERASE CLIPPING REGION Changes entire output clipping region color. • areas to current secondary PRINT SCREEN Prints a portion of the bitmap at the the printer port. • printer connected to SCROLL CLIPPING REGION Moves the data within the output clipping region. 1.15 REPORT HANDLING INSTRUCTIONS Report handling instructions return information about the current PRO/GIDIS state as well as success/failure reports for the immediately preceding PRO/GIDIS instructions. 1-31 REPORT HANDLING INSTRUCTIONS The report path from the PRO/GIDIS interpreter to your program can be viewed as a data stream. It is possible to queue several pending reports. (P/OS 2.0 imposes a buffer limit of 18 words.) Your program sends a request instruction to the interpreter, which creates a report and puts it in the queue. Your program then reads the report queue (with a Read Special Data QIO system directive) in the order in which the requests are made. For an example of a report-reading routine, refer to Chapter 2. A report is a variable length block of words. The first word is a tag specifying the type of report and the number of words in the report. Your program must keep in synchronization with the report queue so that it is not reading a data word and interpreting it as a tag word. Your program also can set up an asynchronous system trap (AST) to be executed when a report is placed in the report queue. The following instructions request reports: PRO/GIDIS reports the X and position. Y PRO/GIDIS returns a success or instruction executed. coordinates failure code of the for current the last PRO/GIDIS returns the standard character parameters (unit width, unit height, display cell width, and display cell height) for the current alphabet at the current rotation angle. • REQUEST_OUTPUT SIZE Reports the parameters of the size, shape and the video hardware used. Reports the version number of GIDIS. 1-32 resolution of PRO/GIOIS INSTRUCTION SYNTAX In PASCAL, this could be: CONST INITIALIZE = Ii SET PRIMARY COLOR = 21; 2.2.2 Parameter Blocks Most PRO/GrOIS instructions parameters. For example, parameters. require a specific SET POSITION needs number exactly of two Some PRO/GIOIS instructions accept a variable number of parameters. The instructions in this category are DRAW LINES, DRAW REL LINES, DRAW ARCS, DRAW REL ARCS, DRAW_CHARACTERS, DRAW-PACKED_CHARACTERS~ and LOAD CHARACTER CELL. A length value in the range 0 to 254 indicates a fixed-length parameter block. For example, if you specify a length value of two, PRO/GIDIS expects two parameter words as shown in example 2-1. .BYTE 2.,29. • WORD • WORD 100 • 350 • Example 2-1: jInstruction data block length = 2 ;Opcode for SET POSITION instruction = 29 ;Horizontal coordinate for current pOSe ;Vertical coordinate for current pOSe iFollowing execution of this instruction, ~the current position is 100,550. Instruction with Fixed-Length Parameter Block A length value of 255 indicates that the parameter block contains a variable number of parameter words terminated by an END LIST instruction word (-32768), as shown in example 2-2. Thus, in a variable-length parameter block, a parameter word cannot contain the value -32768. .BYTE .WORD .WORD .WORD • WORD .WORD Example 2-2: 255.,26.:END-LIST-term.,opcode=DRAW_REL LINES 10. -30. idxl idyl 20. jdx2 +60. idy2 -32768. iEND_LIST instruction opcode word Instruction with Variable-Length Parameter Block Either type of parameter block can be used with any instruction. This technique permits the PRO/GIOIS interpreter to handle erroneous or unsupported opcodes without aborting the program or 2-7 PRO/GIDIS INSTRUCTION SYNTAX misinterpreting subsequent opcodes. If the interpreter does not recognize an instruction, that instruction and any data following are ignored. After counting and discarding the erroneous instruction's data, PRO/GIDIS proceeds to the next sequential instruction. NOTE PRO/GIDIS on p/OS VI.7 sets the status flag to SUCCESS when it fails to recognize an instruction. Version 2.0 and future versions set the status flag to FAILURE in this case and when not enough parameters are given. An instruction with insufficient parameters is not executed at all. An instruction with extra parameters is executed as though the extra arguments do not exist; the extra parameters are skipped and not interpreted as new instructions. For example, a SET POSITION instruction with only one argument is ignored, while a SET POSITION with three arguments uses the first two arguments and discards the third. 2.3 SAMPLE MACRO-II PROGRAM IOSB: OBUF: RBUF: .BLKW .BYTE .BLKW 2• 0.,55. 3• ;Length=O REQUEST_CURRENT_POSITION ;SEND INSTRUCTION TO PRO/GIDIS QIOW$S #IO.WSD,#5,#I,,#IOSB,,<#OBUF,#2,,#SD.GDS) ERROR ; DIRECTIVE FAILED BCS TSTB IOSB ;OPERATION FAILED ERROR BLE ;READ THE REPORT QIOW$S #IO.RSD,#5,#I,,#IOSB,,<#RBUF,#6,,#SD.GDS) ERROR ;BRANCH IF DIRECTIVE FAILED BCS IOSB TSTB ;BRANCH IF OPERATION FAILED ERROR BLE NEW CONTENTS OF RBUF: BYTE AT RBUF 2. (LENGTH) BYTE AT RBUF+I 1. (CURRENT POSITION REPORT TAG) RBUF+2: CURRENT X POSITION RBUF+4: CURRENT Y POSITION ERROR: Error handling routine 2-8 CHAPTER 3 CONTROL INSTRUCTIONS This chapter contains a detailed description of each control instruction. Table 3-1 lists the instructions covered in the chapter. Table 3-1: Control Instructions Summary Chart Opcode/Length Instruction/Arguments 1/1 INITIALIZE 6/0 NEW PICTURE 24/0 END PICTURE 28/0 FLUSH BUFFERS 5/6 SET OUTPUT CURSOR alphabet, index, width, height, offset_x, offset_y 72/1 SET OUTPUT CURSOR RENDITION mask 53/3 SET OUTPUT RUBBER BAND 0/0 NOP 128/0 END LIST 3.1 subsystem-mask-value INITIALIZE The initialize instruction restores PRO/GIDIS characteristics to their power-on default states. Specifically, this instruction sets up PRO/GIDIS device subsystem characteristics such as the 3-1 INITIALIZE color map, the primary color, writing modes, and so forth. Opcode: 1 secondary color, addressing, Length: 1 Format: INITIALIZE subsystem-mask-value subsystem-mask-value is a word that specifies a set of graphics subsystems as shown in Figure 3-1. Status: SUCCESS The INITIALIZE instruction represents device subsystems by specific bits in a mask value passed to PRO/GIDIS with the instruction. For example, a parameter value of 4 (bit 2 set) restores a device's text subsystem's power-on default conditions. The initialize instruction mask bit settings for the various subsystems are shown in Figure 3-1. 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ I I I I I I I I I I I I I I I I I 1--- Addressing +--+--+--+--+--+--+--+--+--t--+--+--+--+--+--+--+ I--- Global Attributes ----- Text ----- (reserved) ------Color Map -------Alphabet storage I-------(reserved) -------(reserved) -------Cursor (Bits 8-15 are reserved) Figure 3-1: INITIALIZE Subsystem Initialization Bit Mask The PRO/GIDIS subsystems that can be selected for are listed in Table 3-2. Table 3-2: initialization Initialization Subsystems Subsystem Description Bit -----------~------------------------------------------ ----------- Addressing Resets the viewing transformation o Global Attributes Reinitializes writing mode, primary color, secondary color, line and area texture, planes selected, and pixel size 1 3-2 INITIALIZE Text Resets the current alphabet, unit size, display size, cell rotation, cell rendition, implicit cell movement flag, and explicit cell movement 2 Color map Reinitializes the color map 4 Alphabet Clears all user-defined alphabets 5 Cursor Resets the output cursor and output rubber band 8 Notes: • You can OR (logical inclusive) mask values together initialize multiple subsystems in one instruction. • A mask of -1 decimal (177777 all subsystems. • The order of initialization is: (1) addressing, (2) global attributes, (3) text, (4) color map, (5) alphabet storage, and (6) cursor. • Regardless of the mask word, the INITIALIZE instruction aborts any blocks begun with BEGIN_FILLED_FIGURE. • Table 3-3 lists all of the state variables affected and their values after initialization. • Some state variables are included in more than one subsystem. octal) explicitly to initializes Example: • BYTE • WORD Table 3-3: 1. ,1 • 1.12.14 • ilength=l,opcode for INITIALIZE iaddressing, global attributes, iand text subsystems mask bits Initialization Variable States Reset State variable ---------------------------------------------------------------Addressing Subsystem default ids width (960) default ids height (600) output ids width output ids height 3-3 INITIALIZE output output output output viewport viewport viewport viewport gidis gidis gidis gidis output output output output output output output output clipping x origin clipping y origin clipping width clipping height x origin y origin width height 0 0 default ids width (960) default ids height (600) space x origin space y origin space width space height 0 0 default ids width (960) default ids height (600) 0 0 default ids width (960) default ids height (600) current position x current position y 0 0 line texture size line texture length area texture width area texture height standard unit width standard unit height logical logical logical logical o (1 hardware pixel) o (1 hardware pixel) o o pixel pixel pixel pixel width height x offset y offset * implied movement cell movement mode flag cell explicit movement dx cell explicit movement dy o cell cell cell cell standard standard standard standard o display size width display size height unit size width unit size height * converted to new GOS coordinates 3-4 display width display height unit width unit height SET OUTPUT CURSOR Opcode: 5 Length: 6 Format: SET OUTPUT CURSOR alphabet, index, width, height, offset-x, offset-y alphabet specifies the alphabet containing the the special cursors indicator (-1). character or index specifies the character or special cursor. width specifies the width of the cursor in GIDIS Output Space coordinates (greater than or equal to zero). height specifies the height of the cursor in GIDIS Output Space coordinates (greater than or equal to zero). offset-x specifies the X offset from the top left corner of the cursor to the current position (range 0 to width) • offset-y specifies the Y offset from the top left corner of the cursor to the current position (range 0 to height) • Status: SUCCESS if the requested character (alphabet, index) is defined, and width and height and coordinates are in range; otherwise FAILURE. Notes: • The width and height (in PRO/GIDIS Output Space) are treated there is no equivalent of a display as a unit cell size; cell. When width and height are adjusted automatically to an integral multiple of the storage size of the character, the x and y offsets are adjusted by the same ratio. An alphabet code of -1 specifies that one of the special For P/OS 2.0 these cursors built-in cursors is to be used. are: -1 o 1 2 3 No cursor Implementation default (same as 1) Tracking Cross (small cross) Crosshairs (full screen width and height) Block (solid rectangle) User-specified width and height are ignored when the tracking cross or crosshairs are used. All other values are reserved. 3-9 SET OUTPUT CURSOR • If the chosen cursor is not predefined (either a special cursor or a character in alphabet 0, your program must first define the character and then execute a SET OUTPUT CURSOR instruction. If the character is redefined after the SET OUTPUT CURSOR, the appearance of the cursor is unchanged untTl another SET OUTPUT CURSOR executes. • SET OUTPUT_CURSOR changes only the graphics mode cursor. However, turning on or off the VTI02 emulator cursor has the side effect of turning on or off the graphics cursor. • Once the SET OUTPUT CURSOR instruction executes, appearance of the cursor changes immediately. the Example: • BYTE • WORD • WORD 6.,5 • • WORD • WORD • WORD . WORD 30 • 30 • 15 . • BYTE • WORD .WORD • WORD • WORD • WORD • WORD 6. ,5 • ilength=6,opcode for SET OUTPUT CURSOR iAlphabet 1 (user-defined alphabet) iCharacter index value i(Assume that Alphabet 1, character-index ;2, is defined as an arrow pointing ;straight upward iWidth of 30 iHeight of 30 :x offset iY offset ;The arrow is the new cursor with the tip being at the current position. 1• 2• O• Example: 3.6 ilength=6,opcode for SET_OUTPUT_CURSOR ;PRO/GIDIS Cursor Alphabet iNo cursor iwidth value of zero (ignored) (ignored) iHeight value of zero iX offset (ignored) iY offset (ignored) -1 • -1O• O• 3• 4• SET OUTPUT CURSOR RENDITION - - The SET OUTPUT CURSOR RENDITION cursor blinks or is continuous. instruction 3-10 determines if the SET OUTPUT CURSOR RENDITION Opcode: 72 Length: 1 Format: SET OUTPUT CURSOR RENDITION mask mask is a word that specifies whether the cursor should blink or be continuous as shown in Figure 3-2. 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ I I I I I I I I I I I I I I I I I +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 1 blinking o continuous I I -- (Reserved) Figure 3-2: SET OUTPUT CURSOR RENDITION mask Status: SUCCESS Example: 3.7 .BYTE 1.,72. .WORD O. ;length=l, opcode for iSET OUTPUT CURSOR RENDITION ;set-to continuous-mode SET OUTPUT RUBBER BAND The SET OUTPUT RUBBER BAND instruction specifies if a rubber band is to be generated along with the output cursor. It also gives the base of the rubber band. Opcode: 53 Length: 3 Format: SET OUTPUT RUBBER BAND type, base_x, base_y type the type of rubber band to use. (see table 3-4) base x the x coordinate (in GOS) of the desired rubber base band base_y the y coordinate (in GOS) of the desired rubber base band Status: SUCCESS if the type is legal; otherwise, FAILURE. Type Code Rubber Band 3-11 SET OUTPUT RUBBER BAND no rubber band default (same as -1) rubber band line rubber band rectangle -1 o 1 2 Table 3-4: Types of Rubber Bands Notes: • The rubber band (if selected) will be cursor is drawn. drawn each time the If the cursor blinks, then the rubber band also blinks. • The rubber band line is drawn from the base position current position. to • The rubber band rectangle is the rectangle with one corner at the base position and the opposite corner at the current position. The rectangle will degenerate to a line or point if the current position and base position are the same in one or both coordinates. • Since both the cursor and the rubber band are drawn in complement mode, if they cover the same points, they will both disappear. It may be preferable to turn the cursor off when a rubber band is on. Example: • BYTE 3.,53 • • WORD . WORD • WORD 1• 50 • 60 • • BYTE • WORD • WORD 2.,29 • 100 • 300 • ;length=3., opcode for iSET OUTPUT RUBBER BAND ;rubDer bana line ; the base is [50,60] ilength=l., opcode for set_position inew current position : is [100,300] ;when the cursor appears there ;will also be a rubber band line from ; [50,60] to [100,300]. 3-12 the NOP 3.8 NOP The NOP instruction performs no operation. Execution of a NOP has no effect on the current state of PRO/GIDIS, other than to set the status flag to SUCCESS. Opcode: 0 Length: 0 Format: NOP Status: SUCCESS Notes: • PRO/GIDIS ignores instruction. any arguments included with a NOP Example: • BYTE o. ,0 • ;length=O,opcode for NOP • BYTE • WORD . WORD 2. ,0 • 1540 • 71 • ilength=2,opcode for NOP iprivate data (ignored by PRO/GIDIS) iprivate data (ignored by PRO/GIDIS) Example: 3.9 END LIST The END LIST instruction indicates the end of a variable argument list. This instruction follows the last argument in the list. Those PRO/GIDIS instructions often used with a variable-length argument list that terminates with an END LIST instruction include the following: DRAW LINES, DRAW REL LINES, DRAW_CHARACTERS, and LOAD CHARACTER CELL. Opcode: 128 Length: 0 Format: END LIST Status: SUCCESS Notes: • PRO/GIDIS ignores any arguments specified instruction. 3-13 with an END LIST SET OUTPUT IDS logical logical logical logical pixel pixel pixel pixel o o o (1 hardware pixel) o (1 hardware pixel) x offset y offset width height cell movement mode flag cell explicit movement dx cell explicit movement dy o o cell cell cell cell standard standard standard standard implicit, local display size width display size height unit size width unit size height display width display height unit width unit height * converted to new GOS coordinates 4.2 SET OUTPUT VIEWPORT The SET OUTPUT VIEWPORT instruction specifies the viewport. Opcode: 13 Length: 4 Format: SET OUTPUT VIEWPORT ulx, uly, width, height The parameters are integer values representing IDS coordinates. ulx specifies the x (horizontal) address of the origin of the viewport. uly specifies the y (vertical) address of the origin viewport. of the width specifies the width greater than zero). of the viewport (value must be height specifies the height greater than zero). of the viewport (value must be Status: SUCCESS if width and height are greater than otherwise. 0, FAILURE Notes: • No drawing is done by the SET_OUTPUT_VIEWPORT instruction. • If the picture aspect ratios of the window and viewport not equal, only a portion of the viewport is used. 4-3 are SET OUTPUT VIEWPORT • Unlike SET OUTPUT IDS and SET_GIDIS_OUTPUT_SPACE, this instruction does not change any of the state variables that depend on the definition of GIDIS Output Space (cell unit size, line texture size, and so forth). The GOS values are preserved. This means that physical sizes will change when you change the viewport. Example: 4.3 See SET GIDIS OUTPUT SPACE description. SET GIDIS OUTPUT SPACE The SET GIDIS OUTPUT SPACE instruction specifies the bounds of the window in GIDIS Output Space. It also sets the output clipping region to coincide with the window and resets all global attributes to their default values as shown in Table 4-3. Opcode: 9 Length: 4 Format: SET GIDIS OUTPUT SPACE ulx, uly, width, height The parameters are integer values representing GIDIS Output Space coordinates. ulx specifies the x (horizontal) address of the origin of the window. uly specifies the y (vertical) address of the origin window. of width specifies the width of the window (value must be than zero). greater height specifies the height of the window (value must be greater than zero). Status: SUCCESS if width FAILURE otherwise and height are greater than the zero, Notes: • No drawing is done when SET_GIDIS_OUTPUT_SPACE executes. • It is recommended that a maximum absolute value of 16384 (2 ulx, uly, to the 14th power) be used for the following: ulx + width, and uly + height. This will allow sufficient off-screen address space for accurate clipping. 4-4 CHAPTER 6 DRAWING INSTRUCTIONS This chapter contains a detailed description of each PRO/GIDIS drawing instruction. Table 6-1 lists the instructions covered in the chapter. Table 6-1: Drawing Instructions Summary Chart Opcode/Length Instruction/Arguments 29/2 SET POSITION x, y 30/~ SET REL POSITION dx, dy 25/N DRAW LINES 26/N DRAW REL LINES ... dx, dy, ... 23/N DRAW ARCS x, y, angle, 27/N DRAW REL ARCS dx, dy, angle, x, y, ... --------------------------------------------------------------------6.1 SET POSITION The SET POSITION instruction specifies a new current position an absolute position in GIDIS Output Space. Opcode: 29 Length: 2 Format: SET POSITION x as x, Y Specifies the new X (horizontal) position in GIDIS output space 6-1 value of the current SET POSITION y Specifies the new Y (vertical) position in GIDIS output space value of the current Status: SUCCESS Notes: • No drawing is done when SET POSITION executes. Example: .BYTE • WORD • WORD 6.2 2.,29. 100. 350 • ;Length=2, opcode for SET POSITION iNew current position jis [100,350] SET REL POSITION The SET REL POSITION instruction specifies a new current position as an offset from the old current position in GIDIS Output Space. Opcode: 30 Length: 2 Format: SET REL POSITION dx, dy dx Specifies an offset from the position in GIDIS output space current X (horizontal) dy Specifies an offset from the position in GIDIS output space current Y (vertical) Status: SUCCESS, provided no arithmetic overflow overflow, FAILURE (position does not change) occurs; on Notes: • No drawing is done when SET POSITION executes. • Global symmetry is preserved; SET REL POSITION [Dx,Dy] is always same as a 'SET POSITION (Current_x + Dx,Current_y + Dy] I . Example: • BYTE • WORD • WORD 2.,30 . 100 • -50 • iCurrent position is [100,350] iLength=2, opcode for SET REL POSITION iRelative position is ; [+100,-50) iNew current position is [200,300] 6-2 DRAW LINES 6.3 DRAW LINES The DRAW LINES instruction draws a series of straight line segments, starting at the current drawing position. The end point of each line segment is specified as absolute coordinate pairs, expressed in GIDIS output space. Opcode: 25 Length: n Format: DRAW LINES xl, yl, x2, y2, ••• xl Specifies the X (horizontal) value of end point in GIDIS output space. yl Specifies the Y (vertical) value of the first line's point in GIDIS output space. x2 Specifies the X (horizontal) value of the end point in GIDIS output space. y2 Specifies the Y (vertical) value of the second line's end point in GIDIS output space. Additional coordinate additional lines. pairs specify the end first second line's end line's points for Status: SUCCESS, provided no filled figure table overflow occurs; on overflow, FAILURE (position does not change) Notes: • The coordinates can be specified either in a counted argument list (with the count supplied with the opcode word, or in an END LIST terminated list with 255 in the opcode word, as described in Chapter 2 of this manual. • If there is an X coordinate with no Y coordinate, the lone coordinate is ignored with no error indication. X • . Xhe DRAW LINES instruction is affected by the following global attributes: writing mode, primary color, plane mask, secondary color, pixel size, line texture, and filled figure flag. (See Note 4.) • The way the coordinate parameters are used depends on the filled figure flag. When the filled figure flag yields FALSE, this instruction draws a straight line from the current position to the specified point. Then, the current position is changed and the specified point becomes the new current position. The next line is drawn from this new position to the location specified by the next parameter 6-3 DRAW LINES pair. • In complement and complement negate mode, common points (last pixel in one line, first pixel in the next) are drawn only once. The first pixel of a line is skipped and the last pixel is drawn. If the first pixel is the last pixel, the pixel is drawn. • When the filled figure flag yields TRUE, this instruction saves the given points in the filled figure table. No drawing is donei however, current position changes and is set to each specified (x, y) point. When the instruction completes, the current drawing position is located at the point indicated by the last parameter pair. When the filled figure table is full, coordinate pairs are ignored, and status is set to FAILURE. • DRAW LINES modifies region. the bitmap only inside the clipping Example: • BYTE • WORD • WORD 2.,25 • 150 • 200 • iNot in a filled figure definition i{filled figure flag is FALSE) iCurrent position is [200,300] iLength=2, opcode for DRAW LINES iDraw a line from [200,300T ito [150,200] iNew current position is [150,200] Example: • BYTE • WORD • WORD • WORD • WORD 4.,25 • 600 • -10 • 300 • +10 • icurrent position is [150,200] inot in a filled figure definition iLength=4, opcode for DRAW LINES ixl iyl ix2 iy2 jDraw lines from [150,200] to [600,-10] ithen from [600,-10] to [300,10] iNew current position is [300,10] iNote that both the -10 and the +10 are iabsolute coordinates. 6-4 DRAW REL LINES Example: .BYTE .WORD .WORD .WORD • WORD .WORD 6.5 5.,26. 100. o. o. 100. 79. iInside a filled-figure definition i (Filled figure flag is TRUE) iCurrent position is [100,100] iLength=5, opcode for DRAW REL LINES idxl idyl idx2 idy2 idx3 iAdds the points [200,100] and [200,200] ito the filled figure table iNew current position is [200,200] isince there is no dy3, dx3 is ignored DRAW ARCS The DRAW ARCS instruction draws a circular arc from the current position- around the specified center. Direction of the arc is determined by the sign of the angle parameter. For example, a DRAW ARCS 105,105,-90 instruction would draw a quarter-circle starting at the current position, using location 105,105 as the center of the arc's circle. Because the angle's sign is negative, the arc drawn would be clockwise from the current position. Opcode: 23 Length: N Format: DRAW ARCS xl, yl, anglel, x2, y2, angle2 ••• xl Specifies the X (horizontal) value of center point in GIDIS output space. the first arc's yl Specifies the Y ( vertical) value of center point in GIDIS output space. the first arc's anglel The angle for the first arc is given in degrees, with a positive value meaning counter-clockwise with respect to the physical screen. x2 Specifies the X (horizontal) value of center point in GIDIS output space. the second arc's y2 Specifies the Y (vertical) value of center point in GIDIS output space. the second arc's angle2 The angle for the second arc is given in degrees, with a positive value meaning counter-clockwise with respect to 6-7 DRAW ARCS the physical screen. Additional coordinate and angle triplets points and angles for additional arcs. specify center Status: SUCCESS provided angle is within a range of -360 to +360 and there is no filled figure table overflow, otherwise FAILURE. Notes: • An angle of zero means no drawing is done; +/- 360 means a full circle. Values greater than 360 (or less than -360) are errors, and no arc is drawn. • If the filled figure flag is TRUE then, instead of drawing the arc, all internally calculated interpolation points are added to the filled figure table. • Each arc starts at the end point of the previous arc. • The current position is left at the end of the last arc. • DRAW ARCS is affected by the following global attributes: writIng mode, primary color, plane mask, secondary color, pixel size, line texture, and filled figure flag. one In p/OS 2.0, the PRO/GIDIS interpreter calculates interpolation point per 10 degrees of arc (or portion), regardless of the size of the circle. • Full quadrant arcs always end at the exact point expected. Fractional quadrant arcs end at the closest available point, which might not be precisely correct. Multiple fractional quadrant arcs are not guaranteed to end at the exact point predicted by your program. For example, a full circle of a 103 degree arc and a 257 degree arc is not guaranteed to leave the current position exactly where it started. • DRAW ARCS region. modifies the bitmap 6-8 only inside the clipping DRAW ARCS Example: .BYTE • WORD • WORD .WORD 3.,23. 400 • 300. 180. :Not in a filled figure definition :(filled figure flag is FALSE) :Current position is [500,300] ;Length=3, opcode for DRAW ARCS :x coordinate of center iY coordinate of center i180 degrees is one-half a circle i (counter-clockwise) :Draws the top half of the circle :centered at [400,300] with radius 100 :Middle of the arc is [400,200] :New current position is [300,300] Example: .BYTE • WORD • WORD .WORD 6.6 3.,23. 400 • 300 • -90. :Inside a filled-figure definition : (Filled figure flag is TRUE) :Current position is [500,300] :Length=3, opcode for DRAW ARCS :Center is [400,300] :90 degrees = 1 quadrant :Adds nine interpolation points : (internally calculated) :to the filled figure table :Last point added is [400,400] :New current position is [400,400] DRAW REL ARCS The DRAW REL ARCS instruction draws a circular arc from the current -position around the center, specified relative to the current position. Length of the arc is specified by an angle in degrees. Direction of the arc is determined by the sign of the angle parameter. Opcode: 27 Length: N Format: DRAW REL ARCS dx, dy, angle, dx, dy, angle, ••• dx Specifies the offset X (horizontal) value center point in GIDIS output space. of the arc's dy Specifies the offset Y (vertical) value center point in GIDIS output space. of the arc's The angle is given in positive value angle degrees, 6-9 with a DRAW REL ARCS meaning clockwise with respect to the physical screen. Status: SUCCESS, provided angle within a range of -360 to +360 and there is no filled figure table overflow or arithmetic overflow, otherwise FAILURE. Notes: Please refer to the notes for DRAW ARCS. Example: • BYTE • WORD . WORD • WORD 3.,27 • -100 • +30 . -90 • iCurrent position is [400,300J iFilled figure flag is FALSE iLength=3,opcode is DRAW REL ARCS ;Center is [-100,+30] ;Relative to current position i90 degrees = one quadrant (clockwise) iDraws one quadrant from [400,300] to ; [330,430] centered at [300,330] ;New current position is [330,430] Example: • BYTE • WORD • WORD • WORD • WORD • WORD • WORD 6.,27 • +35 • -50 • 90 • -35 . +50 • 90 . ;Current position is [330,430] ;Filled figure flag is FALSE iLength=3, opcode is DRAW REL ARCS , ;Center is [+35,-50] i [365,380], 90 degree arc iCurrent position is now [415,415] ;Center is 380,465] ;90 degrees ;draws a lens shaped object with two icircular arcs. 6-10 END FILLED FIGURE • The edges of the filled figure are the mathematically ideal lines through the positions in the filled-figure table, but one "extra" pixel is included to ensure that no gap occurs between two adjacent areas. The edge is not guaranteed to be identical to a line drawn (outside of a filled-figure definition) through the same points due to differences in drawing direction and round-off errors. • The current position is unchanged by the END FILLED FIGURE. Current position is left at the last position given. Note that if table overflow occurred, the last point might not be the last vertex in the filled-figure table. • This instruction modifies region. • If too many positions are specified, only the first 256 vertices are used, and a straight line connects the 256th point with the first point. (256 is the maximum number of vertices in the filled-figure table for p/os 2.0.) the bitmap inside the clipping primary writing Global attributes used in the fill are: color, secondary writing color, writing mode, plane mask, and area size. Unused area texture cell, area cell size, global attributes are: pixel size. • Complement and complement-negate writing modes can give unexpected results when filled figure areas overlap or abut. 7-3 END FILLED FIGURE Example: .BYTE • WORD • WORD .BYTE .BYTE .WORD .WORD .l.oJORD .WORD .BYTE .WORD .WORD .WORD .BYTE 2.,29. 100 • 100 • 0.,31. iLength=2,opcode for SET POSITION iCurrent position is [100,100] iLength=O,opcode for BEGIN FILLED FIGURE iFilled-figure table now has [100~100] 4.,26. iLength=4,opcode for DRAW REL LINES +100. idxl +0. idyl +0. idx2 +100. idy2 iAdds points [200,100] and [200,200] to i the filled-figure table 255.,25. iEND LIST terminated,opcode = DRAW LINES 100. ixl200. ix2 -32768. iEND LIST iAdds point [100,200] to i the filled-figure table 0.,32. iLength=O,opcode for END FILLED FIGURE iThe area defined by [100,100],[200,100], [200,200], [100,200], and [100,100] (a square) is filled with the current area texture (modified by whatever current global attributes are in effect.) 7-4 CHAPTER 8 TEXT INSTRUCTIONS This chapter instruction. chapter. Table 8-1: contains a detailed description of each text Table 8-1 lists the instructions covered in the Text Instructions Summary Chart Opcode/Length Instruction/Arguments 38/1 SET ALPHABET alphabet-number 46/4 CREATE ALPHABET width, height, extent, width-type 34/n LOAD CHARACTER CELL char-index, width,ldO, dl, ••• ,dn 33/4 BEGIN DEFINE CHARACTER char-index, width, nominal-width, nominal-height 36/0 END DEFINE CHARACTER 37/2 LOAD BY NAME 43/1 SET CELL RENDITION cell-rendition 44/1 SET CELL ROTATION dx, dy 65/1 SET_CELL_OBLIQUE dx, dy 45/2 SET CELL UNIT SIZE width, height 40/2 SET CELL DISPLAY SIZE width, height 42/1 SET CELL MOVEMENT MODE flag 41/2 SET CELL EXPLICIT MOVEMENT dx, 8-1 dy TEXT INSTRUCTIONS 35/n DRAW CHARACTERS char-indexl, char-index2, 74/N DRAW PACKED CHARACTERS 2charindex, 8.1 ••• SET ALPHABET The SET ALPHABET instruction selects a specific alphabet to be used as the current alphabet. Any alphabet-related operations, except as noted, act on the currently selected alphabet. Opcode: 38 Length: 1 Format: SET ALPHABET alphabet alphabet is an integer value in a range specifies the current alphabet. of 0 to 15 that Status: SUCCESS if the alphabet number is valid (from 0 FAILURE otherwise. to 15), Notes: • Valid alphabet numbers for the Professional (p/OS 2.0) are 0 through 15. Alphabet 0 is the DEC Multinational Character Set. • Alphabet 0, the DEC Multinational font, is a read-only alphabet and cannot be changed through PRO/GIDIS. Control characters (indices 0 through 31 and 127 through 160 decimal) are not included, and, if requested with DRAW CHARACTERS, appear as an error ("blob" or "checkerboard")- character. Some indices are reserved and appear as a reversed question mark. • The current alphabet can be reset to the power-on default (0) by the PRO/GIDIS INITIALIZE instruction's text subsystem option. • No drawing is done by the SET ALPHABET instruction. Example: • BYTE • WORD 1.,38 • 2• iLength=l, opcode for SET ALPHABET iSelects alphabet #2 as current alphabet 8-2 CREATE ALPHABET 8.2 CREATE ALPHABET CREATE ALPHABET erases the current alphabet and reserves resources for an alphabet with the specified storage size (width by height by extent). Opcode: 46 Length: 4 or 5 Format: CREATE ALPHABET initialize width, height, extent, width-type, width is an integer in the range (0 to 16) that specifies the number of horizontal bits in a character pattern. height is an integer in the range (0 to 16) that specifies the number of vertical bits in a character pattern. extent is an unsigned integer that specifies the number of characters in the alphabet. Character indices can range from 0 to extent - 1. For the Professional, width-type is reserved for future use. this v~--must be '0. initialize initializes all characters in the newly created alphabet. If 0, initialize to blank. If it is not 0, initialize to solid. If not present, then initialize to solid. Status: SUCCESS if width and height are greater than or equal to zero, the width type is zero, the current alphabet number is a valid user definable alphabet (not 0), and there are sufficient resources to create the alphabet: FAILURE otherwise. Notes: • Character indices are l6-bit numbers and do not necessarily correspond to DEC Multinational codes (except for alphabet 0) • • For the Professional, all characters in an alphabet have same storage size. • To reclaim alphabet space, CREATE ALPHABET 0,0,0,0 erases the existing alphabet and returns all of the alphabet's resources. 8-3 the CREATE ALPHABET Since alphabet storage uses dynamic • REQUEST STATUS instruction to obtain memory, use the status of the any CREATE ALPHABET instruction. Example: • BYTE • WORD • WORD • WORD • WORD 8.3 4.,46 • 10 • 16 • 32 • o• ;Current alphabet is alphabet number 2 ;Length=4, opcode for CREATE ALPHABET ;width ;height ;extent ;width-type (Note: MUST BE ZERO) ;Erases alphabet 2 and creates an empty alphabet with the specified characteristics LOAD CHARACTER CELL The LOAD CHARACTER CELL instruction loads a character cell from the raster data given as parameters. This instruction acts on the currently selected alphabet. Opcode: 34 Length: variable Format: LOAD_CHARACTER_CELL char-index, width, dO, dI, ••• ,dn char-index The index of the character cell to be loaded. This value must be in a range of 0 to extent - 1, where extent is the total character count for the alphabet. width The width value must be in a range of 0 to the width value given with the CREATE ALPHABET instruction that established the alphabet. Tpjos 2.0 does not use this value. However, it still must be in the appropriate range.) dO, dI, ••• Zero to 16 words of data to be loaded into the character cell. The top character cell row is loaded from the first data word (dO), the second row from the second data word (dI), and so forth. Status: SUCCESS if character index is in a range of 0 to extent - 1, and width is in a range of 0 to alphabet width; otherwise, FAILURE. 8-4 LOAD CHARACTER CELL Notes: • The leftmost pixel in a row comes from the low-order the appropriate data word. bit in • Characters cannot be loaded into any alphabet with an value of zero. extent • This command should not be used within a character definition block. (See the BEGIN DEFINE CHARACTER instruction.) Example: .BYTE • WORD .WORD .WORD .WORD .WORD .WORD 894 6.,34. 9• 4. ~BlOll ~BIOIO ~BIOOO -BOOOI ;Alphabet 2 has width of 4, height of 5, and extent of 10 iLength=6, opcode for LOAD CHARACTER CELL iCharacter index (last cell in alphabet) i \Alidth jPattern: OFF ON ON ON OFF ON OFF ON (Note the OFF OFF OFF ON bit reversal) ON OFF OFF OFF OFF OFF OFF OFF iLast row not given, cleared automatically BEGIN DEFINE CHARACTER The BEGIN DEFINE CHARACTER instruction starts a character definition block in which all commands draw into the binary storage raster associated with the given character instead of drawing into the entire screen. This command is paired with the END DEFINE CHARACTER command. Opcode: 33 Length: 4 Format: BEGIN DEFINE CHARACTER char-index, width, nom_width, nom=heightchar-index The index of the character cell to be loaded. This value must be in a range of 0 to extent - 1, where extent is the total character count for the alphabet. width The width value must be in a range of 0 to the width value given with the CREATE ALPHABET instruction that established the alphabet. Tp/os 2.0 does not use this value. However, it still must be in the appropriate range.) nomwidth The nominal width specifies the desired width of 8-5 the BEGIN DEFINE CHARACTER character. nomheight The nominal height specifies the the character. desired height of Status: SUCCESS if current alphabet is not equal to 0 and Char index is less than or equal to alphabet extend (current alphabet) and there are sufficient resources to define this character; otherwise FAILURE. Notes: • If the character definition contains a circle, then that character will contain a circle when drawn with unit cell width and height proportional to the nominal width and height. In other words, characters can be drawn with arbitrary scaling in X and Y. command implicitly saves the entire PRO/GIDIS state • • This That state will be restored by the END DEFINE CHARACTER command. The following state will be imposed in place of the active state. output ids width output ids height output viewport x origin output viewport y origin output viewport width output viewport height GIDIS output space x origin GIDIS output space y origin GIDIS output space width GIDIS output space height output clipping x origin output clipping y origin output clipping width output clipping height current position x current position y area texture width area texture height line texture size logical pixel x offset logical pixel y offset logical pixel width logical pixel height cell unit size width cell unit size height cell display size width cell display size height 8-6 Nominal Width Nominal Height 0 0 Nominal Width Nominal Height 0 0 Nominal Width Nominal Height 0 0 Nominal Width Nominal Height 0 0 Nominal Width Nominal Height GOS Equiv. of 'line texture length' o o I hardware pixel I hardware pixel Nominal width Nominal Height Nominal Width Nominal Height BEGIN DEFINE CHARACTER cell movement mode flag cell explicit movement dx cell explicit movement dy primary color secondary color character cell plane mask writing mode implicit, local 0 0 1 0 all ' 0 ' s 1 overlay • BEGIN DEFINE CHARACTER commands can not be nested. • Any INITIALIZE command will abort the character definition mode. • The following commands are illegal inside a character definition block: BEGIN- DEFINE- CHARACTER LOAD CHARACTER CELL CREATE ALPHABET LOAD BY NAME • If BEGIN DEFINE CHARACTER fails, GrDIS may skip all further commands-until an END DEFINE CHARACTER. In particular, REQUEST STATUS may not succeed, and your program may hang. So insure that all BEGIN DEFINE CHARACTER commands be followed by an END DEFINE CHARACTER. • Do not allow the VTI02 simulator to do a full screen scroll while defining a character. See the END DEFINE CHARACTER example. Example: See END DEFINE CHARACTER example. 8.5 END DEFINE CHARACTER The END DEFINE CHARACTER instruction terminates the character definition block and makes that character available and restores previous conditions. Opcode: 36 Length: a Format: END DEFINE CHARACTER Status: SUCCESS if character definition flag is TRUE; otherwise, FAILURE. 8-7 END DEFINE CHARACTER Example: .BYTE 4.,33. • BYTE • WORD .WORD • WORD 3• 9. 90. 225 • .BYTE • WORD O. • 2,29. • BYTE .255.,25 • 40 • • WORD 200 • • WORD 80 • • WORD 100 • • WORD 40 • • WORD O• • WORD O• • WORD 100 • • WORD -32768 • • WORD .BYTE 0.,36. iassume current alphabet is 1, storage isize of alphabet 1 is 9 by 9. ilength = 4, i opcode=BEGIN DEFINE CHARACTER idefining character 3 iwidth inominal width inominal height inow ready to draw into the characters istorage area JIDS is 90 X 235 • ilength = 2, opcode=SET POSITION i [0,100] is moddle of left hand side • iend-list terminated, opcode=DRAW_LINES i i [40,200] i i[80,100]· i i [40,0] i [0,100] iend list iEND_DEFINE_CHARACTER Figure 8-1 illustrates some examples of the character defined in the example above. 8-8 END DEFINE CHARACTER Figure 8-1: 8.6 End Define Character LOAD BY NAME The LOAD BY NAME instruction makes an alphabet that is defined in a named-region available to users. The argument is a pair of 16 bit words which contain a region name in RAD50. Other software must explicitly create the region, either by the CRRG$ directive or by defining the alphabet in a MACRO program and using the INSTALL command on the native tool kit. In either case the region must have the format shown in Appendix C. If no such alphabet (region) can be found then an alphabet containing no characters will be loaded. Opcode: 37 Length: 2 Format: LOAD BY NAME name_O, name_l name ° , name50.1 are arguments that contain a region name in RAD Status: SUCCESS if the two word argument specifies a valid region, the region has the proper format, the current alphabet number is valid for a user definable alphabet (not 0) AND there are sufficient resources to load the alphabet, FAILURE otherwise. 8-9 LOAD BY NAME Notes: • Gidis does not create a region. The user should create a region and make sure it has the proper format. Use the RSX directive CRRG$ and load it algorithmically or build a common library and install it using the INSTALL command on the native tool kit. In either case the region must have the format shown in Appendix C. Example: .BYTE 2.,37. ilength=2, opcode=LOAD BY NAME .RAD50 "BOLD "ilet MACRO-II compute tJie nD50 for BOLD Example: .BYTE .WORD • WORD 8.7 2.,37. 050500+001750+000001 045400+001200+000010 ;RAD50 for MYALPH ;MYA ;LPH SET CELL RENDITION The SET CELL RENDITION instruction specifies the renditions to be added to characters written following execution of this instruction. Renditions are variations on characters that could be performed without selecting a new alphabet, yet are not related to writing colors or writing modes. Renditions defined for the Professional are: backslant and italics. Opcode: 43 Length: 1 Format: SET CELL RENDITION mask-value mask-value A mask representing one or more of the cell renditions. The mask value corresponds to one or more rendition bits set. (See Figure 8-2). Status: SUCCESS if the requested rendition is implementation, FAILURE otherwise. supported by the This instruction specifies a bit-mask value indicating which renditions are to be added. Certain mask bits are reserved for future PRO/GIDIS enhancements. Figure 8-2 illustrates the defined rendition bits that can be selected. 8-10 SET CELL RENDITION 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 a +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ I I I I I I I I I I I I I I I I I +--+--+--+--+--+--+--+--+--+--+--t--+--+--+--+--+ I -- Back Slant I -- Italics I -- (Reserved) ~ Figure 8-2: SET CELL RENDITION Bit Mask Notes: • Setting both backslant and italics (mask value -BOOOll) is an error. In this case, rendition is undefined. • Italics and backslant (reverse italics) are generated by oblique angles of -23 and +23 degrees, respectively. Requesting italic or backslant rendition overrides any specific oblique angle requested previously. Requesting an oblique angle after an italic rendition request nullifies the italic request. Example: .BYTE .WORD 8.8 1.,43. 2. iLength=l, opcode for SET CELL RENDITION iRequests italics rendition SET CELL ROTATION The SET CELL ROTATION instruction defines the angle of rotation at which the character is to be displayed. The character is rotated about the current position (upper left corner of the display cell) to the available rotation angle nearest to the angle specified. Table 8-2 shows the angles available. Opcode: 44 Length: 1 Format: SET CELL ROTATION angle angle The requested angle in degrees. A positive angle indicates counter-clockwise from normal text. Status: SUCCESS 8-11 value SET CELL ROTATION Notes: • No drawing takes place when the SET CELL ROTATION instruction executes. Example: .BYTE • WORD 1.,44. -90 • Requested Table 8-2: ;Length=l, opcode for SET_CELL_ROTATION ;Text to go down the screen Actual o o 45 90 135 180 225 270 315 51 90 129 180 232 270 309 Cell Rotation Angles An obliqued character cell is slanted away from a true rectanglular orientation. The SET CELL OBLIQUE instruction specifies the angle from vertical of the side of the display cell. A positive angle parameter results in a back-slanted character; a negative angle yields a forward, italic-type slant. Oblique angles always are set for unrotated characters. The oblique angle rotates with the specified rotation. Opcode: 65 Length: I Format: SET_CELL_OBLIQUE angle angle The requested angle in degrees. A positive angle value indicates a backward slant; a negative angle indicates a forward slant. status: SUCCESS Notes: • No drawing takes place when SET_CELL_OBLIQUE executes • • PRO/GIDIS (p/OS 2.0) uses an approximation algorithm to oblique text which is accurate for small angles (less than ten degrees), less accurate for medium angles (up to 25 degrees), and inaccurate for large angles. Increasing the 8-12 argument value will always increase the text oblique. Example: • BYTE • WORD 8.10 1.,65 • -23 • iLength=l, opcode for SET CELL OBLIQUE iRegular italics (slanting right) SET CELL UNIT SIZE The SET CELL UNIT SIZE instruction specifies the actual size of character(s) displayedi the size is specified in GIDIS output space. The stored character pattern is mapped completely to the unit size. Opcode: 45 Length: 2 Format: SET CELL UNIT SIZE width, height width A width value in GIDIS output space. greater than zero. The width height A height value in GIDIS output space. greater than zero. The height must be Status: SUCCESS if width FAILURE otherwise and height are greater must than be zero, For PRO/GIDIS, the unit size is restricted to an integral multiple of the character pattern (storage size). PRO/GIDIS uses the largest available size that is not larger than the size specified. If no available size is small enough, the smallest available is used. Refer to the SET CELL DISPLAY SIZE to define the size of the area in which the cell unTt is displayed. Notes: requested unit size does not change when the current • The alphabet changes, but the adjustment described above is recalculated. • The unit cell and the display their upper-left corners. cell always are aligned • No drawing is done when the SET CELL UNIT SIZE executes. at Example: • BYTE • WORD 1.,45 • 10 • iLength=l, opcode for SET CELL UNIT SIZE iWidth 8-13 SET CELL UNIT SIZE • WORD 8.11 30 • ;Height SET CELL DISPLAY SIZE SET CELL DISPLAY SIZE defines a character's display cell, the rectanguTar area of the display modified when a character is drawn. Opcode: 40 Length: 2 Format: SET CELL DISPLAY SIZE width, height width A width value in GIDIS output space. height A height value in GIDIS output space. Status: SUCCESS Notes: • The origin of the display cell is always the upper left corner of the cell and is aligned with the unit cell at that corner. • The unit cell can be larger than the display cell; if so, the character is clipped to the display cell. If the unit cell is smaller than the display cell, then all of the character is drawn and the rest of the display cell is treated as if the character pattern specified OFF. • Negative values in width or height produce a mirroring in X and Y, respectively. This mirroring or reflection always is done about the origin {the upper-left corner of the cell}. Implied movement always goes across the display cell, so implied movement for a display cell mirrored in X is in the opposite direction from the rotation angle. • No drawing is done when the SET CELL DISPLAY SIZE executes. • If either the width or the height is zero, no character is drawn. portion of Example: • BYTE • WORD • WORD 2.,40 • 12 • 28 • ;Length=2, opcode=SET_CELL_DISPLAY_SIZE iWidth ;Height 8-14 a SET CELL MOVEMENT MODE 8.12 - SET CELL MOVEMENT MODE - The SET CELL MOVEMENT MODE instruction specifies the manner in which the current position moves after each character is drawn by a DRAW CHARACTERS instruction. Opcode: 42 Length: 1 Format: SET CELL MOVEMENT MODE flag specifies one of the following movement modes: flag o 1 2 3 Explicit cell movement, local symmetry Explicit cell movement, global symmetry Explicit and implied movement, local symmetry Explicit and implied movement, global symmetry (All other values are reserved.) Status: SUCCESS if Flag is 0 to 3, FAILURE otherwise. Notes: • When using local symmetry, the current position after a DRAW CHARACTERS instruction could be different from that calculated by your program. It is suggested that all such DRAW CHARACTERS instructions be followed with a SET POSITION instruction or a REQUEST POSITION instruction unTess the exact end of the string is the desired position for the next instruction. using global symmetry, the current position is exactly • When that value that would be calculated by your program. However, character spacing may not round-off errors. • always be even due to No drawing occurs when the SET CELL MOVEMENT MODE instruction executes. Example: • BYTE • WORD 8.13 1.,42 • o. iLength=l, opcode=SET_CELL_MOVEMENT_MODE iExplicit local symmetry mode SET CELL EXPLICIT MOVEMENT The SET CELL EXPLICIT MOVEMENT instruction specifies the relative distance that the current position is to move after a character is drawn. The relative distance is specified in GIDIS output space. 8-15 SET CELL EXPLICIT MOVEMENT Opcode: 41 Length: 2 Format: SET CELL EXPLICIT MOVEMENT dx, dy dx Specifies the horizontal distance in GIDIS to move the current position. dy Specifies the vertical distance in GIDIS output space move the current position. output space to Status: SUCCESS The explicit value is the total movement when the cell movement mode is 0 or 1. The value represents the inter-character spacing when the mode is 2 or 3. (Refer to the preceding SET CELL MOVEMENT MODE description for details on implied movement~) The default mode is 2, default explicit movement is [0,0] • Notes: the SET CELL EXPLICIT MOVEMENT • No drawing occurs when instruction executes. • When using local symmetry, the curr'ent position after a DRAW CHARACTERS instruction could be different from that calculated by your program. It is suggested that all DRAW CHARACTERS instructions be followed with a SET POSITION instruction or a REQUEST POSITION instruction unless the exact end of the string is the desired position for the next instruction. • The explicit movement is used exactly as specified. not adjusted according to the rotation angle. It is Example: .BYTE • WORD . WORD 8.14 2.,4l. 12 • O• iLength=2,SET CELL EXPLICIT MOVEMENT ;dy ,·dx DRAW CHARACTERS The DRAW CHARACTERS instruction displays each of the characters specified by each character index in the parameter list. The characters are taken from the currently selected alphabet. 8-16 DRAW CHARACTERS Opcode: 35 Length: n Format: DRAW CHARACTERS char-index char-index, an unsigned 16-bit word Status: SUCCESS if the current alphabet number is the last character-index is valid in FAILURE otherwise. valid and if the alphabet, Characters can be specified either in a counted argument list (with the count supplied with the opcode word) or in an END LIST terminated list with 255 in the opcode word. The rules for variable-length argument lists for PRO/GIDIS are described in Chapter 2 of this manual. Notes: • The current position is updated after each character display, according to the cell movement controls. (See the descriptions of the SET CELL MOVEMENT MODE and SET CELL EXPLICIT MOVEMENT instructions~) • This instruction uses implied and explicit cell movement, unit and display size, cell rotation, rendition mask, current alphabet, and writing mode. • DRAW CHARACTERS modifies the bitmap (only inside the clipping region) and the current position. Example: .BYTE 3.,35. • WORD .WORD .WORD 65. 66. 67. jCurrent alphabet = 0 (DEC Multinational) ;Unit size, display size, etc. are set up properly iLength=3, opcode for DRAW CHARACTERS ;Counted form 'A I 'B' 'C' 8-17 DRAW CHARACTERS Example: .BYTE • WORD • WORD • WORD • WORD .WORD 8.15 ~Current alphabet = 1 (user-defined) iunit size, display size, etc. are set up properly 255.,35. ;END_LIST Term.,opcode = DRAW CHARACTERS O• 13 • 7• 45 . -32768. ,END LIST iDisplays 4 characters from alphabet 1, which are user-defined characters DRAW PACKED CHARACTERS Opcode: 74 Length: N Format: DRAW PACKED CHARACTERS 2charindex, .0' 2charindex is two 8 bit quantities which are indexes to write. used Status: SUCCESS if the current alphabet number is the last character-index is valid in FAILURE otherwise. as character valid and if the alphabet, Notes: The arguments are taken as pairs of characters. Each word has 2 byte characters to draw. This command can be used for characters whose indexes are in the range 0-254. The value 255 explicitly performs no operation. If you want to draw an odd number of characters, use 255 as the filler. See the DRAW CHARACTER command for a description of how characters are actually drawn. • The low order byte is used first byte. and then the high Example: .BYTE .BYTE iassume current alphabet is 0 ;length=3 words,opcode for ;DRAW_PACKED_CHARACTERS 116.,101. J ' t ' , 'e' 3.,74. 8-18 order DRAW PACKED CHARACTERS .BYTE .BYTE 115.,116. i'S', 't' 49.,255. ; '1', no character .BYTE 255.,74. Example: .ASCII "TEST" .BYTE '2,255. .WORD -32768. ;current alphabet 0 jend-list-term,opcode=l iDRAW_PACKED_CHARACTERS itest i '2', no character Example: • BYTE • WORD 1. ,38 • 1• ,length=l, opcode=set-alphabet jalphabet 1 • BYTE ;length=2, opcode=DRAW PACKED CHARACTERS O. ,1idraw characters 0,1 255., 254 • ; and 254 from alphabet 1. 2.,74 • i .BYTE • BYTE 8-19 PRINT SCREEN corresponds to the upper left vertical coordinate (y) of the data to be printed. The value is given in GOS coordinates. status: SUCCESS Notes: • In a single plane system, a pixel value of a is mapped to a skip (leaves paper white) and a 1 is mapped to a strike (prints on the paper). On multi-plane systems, the monochrome value of the color map is tested. If 0, the point is skipped (white), if not zero, the point prints. • If the printer port does not have an LA50 or LAIOO connected, nothing occurs. Example: .BYTE • WORD .WORD .WORD • WORD .WORD • v-JORD 9.3 6.,141. ;Length=6, opcode for PRINT SCREEN iUpper left bitmap corner 100 • is [100,100] 100. 400. iData to be printed is 400 units wide by 200 units high 200 • ;Begin printing at current printhead o. O. location SCROLL CLIPPING REGION The SCROLL CLIPPING REGION instruction moves data within the output clipping region, according to the direction and distance specified by the instruction's accompanying parameters. The vacated display area is reset to the current secondary color, ignoring area texture and writing mode. Opcode: 52 Length: 2 Format: SCROLL CLIPPING_REGION dx, dy dx The GIDIS output space distance to move the data horizontally. If dx is positive, the data is shifted right to left; if negative, the shift is to the right. dy The GIDIS output space distance to move the data vertically. If dy is positive, the data is shifted toward the top of the screen; if negative, the shift is toward the bottom of the screen. 9-3 SCROLL CLIPPING REGION Notes: • PRO GIDIS will copy the data in the currently selected planes directly to the desired position. Planes not selected are not scrolled or otherwise changed. Hardware assist is used when possible so the appearance of the screen may be different during the scroll operations. Scrolls that include everything on the screen, except the 32 pixel wide bands on either side, might scroll those bands in addition to the clipping region. (See Figure 1-5 for a picture of the screen showing the 32 pixel wide bands). • The data scrolled out is not saved -- you cannot scroll out a portion of an image and then scroll it back in. Solid secondary color always scrolls in. • Shaded areas within the clipping region will not necessarily be aligned with shaded areas outside the clipping region after this command. • Scroll Clipping region does not work in PIOS 1.7 except when the clipping region is set to the entire screen, and the plane mask includes all planes present. It works correctly in plOS 2.0 for all combinations of plane mask and clipping region. Example: • BYTE • WORD • WORD 2.,52 • -100 • O• iLength=O, opcode=SCROLL CLIPPING REGION idx - ;dy ;Slides data to the right 100 units Example: 2.,52 • • BYTE • WORD • WORD -15 • ;Scroll data down ;15 units • BYTE .WORD .WORD 2.,52 • -30 +30 ;Move data in the clipping region ;30 units left and 20 units up. o• Example: 9-4 CHAPTER 10 REPORT HANDLING This chapter contains a detailed description of each of the report handling instructions. Table 10-1 lists the instructions and report tags covered in the chapter. Table 10-1: Opcode/Length Report Handling Summary Chart Instruction Data Record Tag Name 55/0 REQUEST_CURRENT_POSITION CURRENT POSITION REPORT x, y 58/0 REQUEST_STATUS STATUS REPORT code CELL STANDARD REPORT uw, uh, dw, dh VERSION NUMBER REPORT dev_code, version number OUTPUT SIZE REPORT ulx, uly, screen width, screen-height, total width, total-height, resolution x, resolution-y, total_plane_mas~ -----~------------------------------------------------ --------------- 10.1 REQUEST_CURRENT_POSITION The REQUEST_CURRENT_POSITION instruction 10-1 reports the absolute location of the current position. The current position is the display location at which the next character, line, or arc would be drawn. Opcode: 55 Length: 0 Format: REQUEST CURRENT POSITION Status: SUCCESS The reported information takes the following form: CURRENT POSITION_REPORT, x, Y The X and Y values reported are the coordinates of the current position. PRO/GIDIS output space Notes: • The current position is not necessarily the same as the last position given to SET POSITION or DRAW LINES; DRAW CHARACTERS and DRAW_ARCS instructions also move the current position. • The REQUEST_CURRENT_POSITION instruction is most useful following a DRAW ARCS or a DRAW CHARACTERS (local symmetry), since your program cannot determIne precisely where PRO/GIDIS leaves the current position after these instructions. Example: • BYTE 0.,55 • ~Lgth=O, opcode=REQUEST_CURRENT_POSITION ;This instruction causes the following report to be placed in the report queue if there is sufficient room. Byte Byte Word Word 2. (Data words following) 1. (Current POSe Rpt. Tag) x (PRO/GIDIS coordinates y for current position) iThe report can be read using a QIO with the function code IO.RSD. Refer to Chapter 2 for more information. 10.2 REQUEST_STATUS REQUEST STATUS reports the success or failure of a PRO/GIDIS instruction. All PRO/GIDIS instructions set the status variable. 10-2 REQUEST_STATUS Opcode: 58 Length: 0 Format: REQUEST_STATUS Status: SUCCESS Status is reported in the following format: STATUS_REPORT, status where the low-order bit of the variable status indicating SUCCESS or 0 indicating FAILURE. is either 0 or 1 Notes: • No other codes are defined. reserved for future use.) (Codes other than • FAILURE status is not saved. If your program needs information about the success or failure of every instruction, you must place a REQUEST_STATUS instruction after each PRO/GIDIS instruction. • Testing is recommended only following instructions, such as CREATE ALPHABET. major 1 are PRO/GIDIS Example: .BYTE 0.,58. iassumes previous instruction failed iLgth=O, opcode=REQUEST_STATUS Byte 1. (Data words following) Byte 4. (Current Stat. Rpt. Tag) i Word 0 (FAILURE status) iFor additional examples, refer to ;Chapter 2. The REQUEST_CELL_STANDARD instruction reports cell and display cell sizes. Opcode: 54 Length: 0 Status: SUCCESS The report takes the following form: 10-3 the current unit CELL STANDARD_REPORT, unit-wd, unit-ht, display-wd, display-ht where unit-wd and unit-ht are the unit cell width and height of the standard size character in GIDIS space. Display-wd and display-ht are the display cell width and height. Notes: • This instruction takes into account the storage size of the current alphabet and the character rotation currently in effect. The standard size for alphabet 0 (DEC Multinational) is not necessarily the same as the standard size for alphabet 1. • Rounding could take place converting from device coordinates to GIDIS space. If your program requests 'n' times the size of the standard, the characters actually formed might not be precisely In' times the standard. Example: .BYTE 0.,54. iLgth=O, opcode=REQUEST_CELL_STANDARD 4• 5. 9. 20. 8. 20. Byte Byte Word Word , Word ; Word . (Data words following) (Cell Standard Rpt. Tag) (Unit width) (Unit height) (Display width) (Display height) i iFor additional examples, refer to iChapter 2. 10.4 REQUEST_OUTPUT_SIZE The REQUEST OUTPUT SIZE command device currently used. Opcode: 57 reports Length: 0 Status: SUCCESS 10-4 the parameter of the The report takes the following form: OUTPUT_SIZE_REPORT, ulx, uly, screen width, screen height, total width, total height, resolution_x, resolution_y~ Total_plane_maskwhere • • • • • [ulx, uly] is the upper left corner (in Output IDS) of the total device executable space; Screen width and Screen height are the width and height- (in Output losT of the visible area of the output device; Total width and Total height are the width and height (in Output IDS) of the total device executable space; Resolution x and Resolution y a r e the number of addressable units (pixels)- in the total device executable space; Total plane mask is the plane mask that contains a 1 for every plane accessible. Example: • BYTE • WORD .WORD .WORD .WORD .WORD .WORD .WORD • WORD • BYTE • BYTE • WORD • BYTE 10.5 0.,57 • a• 1024 600 1024 600 1024 240 7• 9• 2• -32 . 9• ;Assume IDS is 960 by 600 ilength=O,opcode for REQUEST OUTPUT SIZE itotal upper left is [-32,0];IDS width and height of visible area iIDS width and height of total area ,number of pixels in total device width ;number of pixels in total device height itotal plane mask ;9 words following output size report tag iOUTPUT SIZE REPORT TAG ;1DS coordinate of idata words following REQUEST_VERSION_NUMBER The REQUEST_VERS10N_NUMBER instruction reports the version number of PRO/GIDIS. 10-5 Opcode: 71 Length: 0 Format: REQUEST_VERSION_NUMBER Status: SUCCESS The reported information takes the following form: VERSION_NUMBER_REPORT, device_code, version where • • device code is 21 for the PRO/VIDEO GIDIS. version is the version number. Notes: • These numbers should be used with all error reports. Example: BYTE 0.,71. iLgth=O, opcode=VERSION NUMBER REPORT ;byte 2. data words following ,VERSION NUMBER REPORT ;byte 7.-tag ,word 21. device code ;word 25. version number 10-6 APPENDIX A PRO/GIDIS INSTRUCTION SUMMARIES This chapter contains a PRO/GIDIS instruction summary in three different orders: by function, in ascending opcode order, and in alphabetic order. The opcode and parameter block length values are shown as a word value as well as separate byte values. A.I INSTRUCTIONS GROUPED BY FUNCTION Opcode Instruction and Arguments Length Opcode Word 0 257 1286 1536 6144 7168 13571 18433 -32768 NOP INITIALIZE mask SET OUTPUT CURSOR aD c, w, h, ox, oy NEW PICTURE END PICTURE FLUSH BUFFERS SET_OUTPUT_RUBBER BAND type, x, y SET OUTPUT CURSOR RENDITION mask END LIST - control control control control control control control control control 2 4 1028 2308 3074 3332 SET OUTPUT CLIPPING REGION x, y, w, h SET GIDIS OUTPUT SPACE x, y, w, h SET=OUTPUT_IDS w~ h SET OUTPUT VIEWPORT x, y, w, h transform transform transform transform 2 770 2 1 3586 3841 4102 attributes SET_AREA_TEXTURE_SIZE w, h attributes SET AREA TEXTURE a, c attributes SET-SECONDARY COLOR color .. SET=COLOR_MAP=ENTRY m, color, r, g, b, mono SET LINE TEXTURE length, pattern, size attributes attributes SET-PIXEL SIZE w, h, ox, oy attributes SET-PLANE-MASK mask attributes SET-PRIMARY COLOR color 0 0 1 5 24 28 53 72 128 1 6 0 0 0 3 1 0 4 4 9 12 13 4 3 14 15 16 17 19 20 21 6 Function 6 3 4 1 1 4355 4868 5121 5377 - - A-I INSTRUCTIONS GROUPED BY FUNCTION 22 69 23 25 26 27 29 30 31 32 33 34 35 36 37 38 40 41 42 43 44 45 46 65 74 1 2 5633 17666 SET WRITING MODE mode SET_AREA_CELL_SIZE w, h attributes attributes 3 3 2 2 5891 6400+N 6656+N 6915 7426 7682 DRAW_ARCs x, y, angle DRAW LINES x, y, ••• DRAW-REL LINES dx, dy, ••• DRAW=REL_ARCS dx, dy, angle SET POSITION x, Y SET REL_POSITION dx, dy drawing drawing drawing drawing drawing drawing o o 7936 8192 BEGIN FILLED FIGURE END FILLED FIGURE - filled figures filled figures 2 8450 BEGIN_DEFINE_CHARACTER c, w, nw, nh 8704+N LOAD_CHARACTER_CELL c, w, dO, ••• dIS 8960+N DRAW CHARACTERS c, ••• 9216 END DEFINE CHARACTER 9474 LOAD_BY_NAME name_O, name_1 9729 SET ALPHABET a SET-CELL DISPLAY SIZE w, h 10242 SET-CELL-EXPLICIT MOVEMENT dx, dy 10498 SET-CELL-MOVEMENT-MODE flag 10753 SET-CELL-RENDITION flags 11009 SET-CELL-ROTATION angle 11265 SET-CELL-UNIT SIZE w, h 11522 11780 CREATE ALPHABET w, h, extent, type 16641 SET CELL OBLIQUE angle 18944+N DRAW_PACKED_CHARACTERS 2charindex, text text text text text (RAD50) text text text text text text text text text text N N N N o 2 1 2 2 1 1 1 2 4 1 N 48 52 141 o 2 6 12288 13314 -29434 ERASE- CLIPPING- REGION SCROLL CLIPPING REGION dx, dy PRINT_SCREEN x,-y, w, h, hx, hy area area area 54 55 57 58 71 o o o o o 13824 14080 14592 14848 18176 REQUEST_CELL_STANDARD REQUEST_CURRENT_POSITION REQUEST OUTPUT SIZE REQUEST-STATUS-REQUEST VERSION_NUMBER reports reports reports reports reports A.2 INSTRUCTIONS IN OPCODE ORDER Opcode Instruction and Arguments Length Opcode Word 000 1 1 257 3 2 770 NOP INITIALIZE mask SET AREA TEXTURE SIZE w, h A-2 Function control control attributes INSTRUCTIONS IN OPCODE ORDER 4 5 6 9 12 13 14 15 16 17 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 40 41 42 43 44 45 46 48 52 53 54 55 57 58 65 69 71 72 74 128 141 4 6 o 4 2 4 2 1 6 3 4 1 1 1 3 o N N 3 o 2 2 o o 4 N N o 2 1 2 2 1 1 1 2 4 o 2 3 o o o o 1 2 o 1 N ° 6 1028 SET OUTPUT CLIPPING REGION x, y, w, h 1286 SET_OUTPUT_CURSOR a, c, w, h, ox, oy 1536 NEW PICTURE 2308 SET GIDIS OUTPUT SPACE x, y, w, h 3074 SET-OUTPUT IDS w~ h 3332 SET=OUTPUT-VIEWPORT x, y, w, h 3586 SET AREA TEXTURE a, c SET-SECONDARY COLOR color 3841 4102 SET COLOR MAP ENTRY m, color, r, g, b, 4355 SET-LINE TEXTURE length, pattern, size 4868 SET-PIXEL SIZE w, h, ox, oy SET-PLANE-MASK mask 5121 SET-PRIMARY COLOR color 5377 5633 SET WRITING MODE mode 5891 DRAW_ARCS x, y, angle 6144 END PICTURE 6400+N DRAW LINES x, y, •.• 6656+N DRAW-REL LINES dx, dy, 6915 DRAW-REL-ARCS dx, dy, angle 7168 FLUSH BUFFER 7426 SET POSITION x, Y SET-REL POSITION dx, dy 7682 7936 BEGIN FILLED FIGURE 8192 END FILLED FIGURE 8452 BEGIN DEFINE CHARACTER c, w, nw, nh 8704+N LOAD CHARACTER CELL c, w, dO, ••• dIS 8960+N DRAW-CHARACTERS c, ••• 9216 END DEFINE CHARACTER 9474 LOAD_BY_NAME name_O, name_1 9729 SET ALPHABET a SET-CELL DISPLAY SIZE w, h 10242 SET-CELL-EXPLICIT MOVEMENT dx, dy 10498 SET-CELL-MOVEMENT-MODE flag 10753 SET-CELL-RENDITION flags 11009 SET-CELL-ROTATION angle 11265 SET-CELL-UNIT SIZE w, h 11522 11780 CREATE ALPHABET w, hi extent, type 12288 ERASE CLIPPING REGION SCROLL CLIPPING REGION dx, dy 13314 SET OUTPUT RUBBER BAND type, x, y 13571 13824 REQUEST_CELL_STANDARD 14080 REQUEST_CURRENT_POSITION 14592 REQUEST_OUTPUT_SIZE 14848 REQUEST STATUS 16641 SET CELL OBLIQUE angle SET-AREA-CELL SIZE w, h 17666 REQUEST VERSION NUMBER 18176 SET OUTPUT CURSOR RENDITION mask 18433 18944+N DRAW PACKED CHARACTERS 2charindex, -32768 END LIST -29434 PRINT SCREEN x, y, w, h, hx, hy A-3 transform control control transform transform transform attributes attributes mono " attributes attributes attributes attributes attributes drawing control drawing drawing drawing control drawing drawing filled figures filled figures text text text text text text text text text text text text text area area control reports reports reports reports text attributes report control text control area INSTRUCTIONS IN ALPHABETIC ORDER A.3 INSTRUCTIONS IN ALPHABETIC ORDER Opcode Instruction and Arguments Length Opcode Word Function 33 31 text filled figures text drawing text drawing text drawing drawing text filled figures control control area control control text text control control area reports reports reports reports report area text attributes attributes attributes text text text text text text text mono " transform attributes transform control 46 23 35 25 74 27 26 36 32 128 24 48 28 1 4 o 4 3 N N N 3 N o o o a a o 1 37 34 6 2 N 141 54 55 57 58 71 52 38 69 14 3 40 41 42 65 43 44 45 16 6 o o o 9 o o o o o 2 1 2 2 2 2 2 1 1 1 1 2 6 4 17 3 4 5 4 6 8452 BEGIN_DEFINE CHARACTER c, w, nh, nw 7936 BEGIN FILLED FIGURE 11780 CREATE ALPHABET w, h, extent, type 5891 DRAW ARCS x, y, angle 8960+N DRAW_CHARACTERS c, ••• 6400+N DRAW LINES x, y, ••• 18944+N DRAW-PACKED CHARACTERS 2charindex, DRAW-REL ARCS dx, dy, angle 6915 6656+N DRAW-REL-LINES dx, dy, 9216 END- DEFINE- CHARACTER 8192 END FILLED FIGURE -32768 END-LIST 6144 END PICTURE ERASE CLIPPING REGION 12288 FLUSH-BUFFER 7168 INITIALIZE mask 257 LOAD BY NAME name 0, name 1 9474 LOAD CHARACTER CELL c, w,-dO, ••. dl5 8704+N 1536 NEW PICTURE NOP o -29434 PRINT SCREEN x, y, w, h, hx, hy REQUEST_CELL_STANDARD 13824 REQUEST CURRENT POSITION 14080 REQUEST=OUTPUT_SIZE 14592 14848 REQUEST STATUS 18176 REQUEST VERSION NUMBER SCROLL CLIPPING-REGION dx, dy 13314 SET ALPHABET a 9729 SET_AREA_CELL_SIZE w, h 17666 SET_AREA_TEXTURE a, c 3586 SET_AREA_TEXTURE_SIZE w, h 770 SET CELL DISPLAY SIZE w, h 10242 SET-CELL-EXPLICIT MOVEMENT dx, dy 10498 SET-CELL-MOVEMENT-MODE flag 10753 SET-CELL-OBLIQUE angle 16641 SET-CELL-RENDITION flags 11009 SET-CELL-ROTATION angle 11265 SET-CELL-UNIT SIZE w, h 11522 SET-COLOR MAP-ENTRY m, color, r, g, b, 4102 SET GIDIS-OUTPUT SPACE x, y, w, h 2308 SET LINE TEXTURE length, pattern, size 4355 SET-OUTPUT CLIPPING REGION x, y, w, h 1028 1286 SET-OUTPUT=CURSOR a~ c, w, h, ox, oy A-4 INSTRUCTIONS IN ALPHABETIC ORDER 72 12 53 13 1 2 3 4 19 4 20 29 21 30 15 22 1 2 1 2 1 1 18433 3074 13571 3332 4868 5121 7426 5377 7682 3841 5633 SET OUTPUT CURSOR RENDITION mask SET=OUTPUT=IDS w,-h SET_OUTPUT_RUBBER_BAND type, x, y SET OUTPUT VIEWPORT x, y, w, h SET-PIXEL SIZE w, h, ox, oy SET-PLANE-MASK mask SET-POSITION x, y SET-PRIMARY COLOR color SET-REL POSITION dx, dy SET-SECONDARY COLOR color SET-WRITING MODE mode A-5 control transform control transform attributes attributes drawing attributes drawing attributes attributes REPORT TAGS A.4 REPORT TAGS Opcode Report Tag Length Opcode Word 1 2 2 9 258 521 4 5 1 7 2 1025 1284 1794 4 Arguments CURRENT POSITION REPORT x, Y OUTPUT SIZE REPORT ulx, uly, screen width, Screen-height, total width, total-height, resolution x, resolution-y, total plane mask STATUS REPORT code CELL STANDARD REPORT uw, uh, dw, dh VERSION NUMBER REPORT code, version A-6 Function report tags report tags report tags report tags report tags DEC MULTINATIONAL CHARACTER SET DEC MultlnallOnal Character Set (C 1 and GR COdeS) 8 10 9 1 1 1 0 11 0 0 1 1 1 200 128 80 DCS 220 144 90 201 129 81 PU1 221 145 91 202 130 82 PU2 203 131 83 STS IND 204 132 84 CCH 148 NEL 205 133 85 MW 225 149 95 SSA 206 134 86 SPA 226 150 96 ESA 207 135 87 EPA 227 151 97 HTS 210 136 88 HTJ ~ 240 160 AO 0 i 241 161 Al 222 146 92 4: 242 162 A2 2 223 147 93 £ 243 163 A3 3 224 + 94 ¥ 261 177 Bl A 262 178 82 A 302 194 C2 A 303 195 C3 0 A 304 196 C4 0 324 212 04 263 179 B3 A •• 301 193 Cl N , 0 , A , a , 321 20'9 01 322 210 02 323 211 03 a BITS b6 b5 b4 b3 b2 bl I-- 1 340 224 EO 360 240 FO 0 0 0 0 0 361 241 Fl 0 0 0 1 1 362 242 F2 0 0 1 0 2 363 243 F3 0 0 1 1 3 341 225 El n ,0 ROW a 342 226 E2 a 343 227 E3 0 344 228 E4 0 364 244 F4 0 1 0 0 4 0 365 245 F5 0 1 0 1 5 0 366 246 F6 0 1 1 0 6 7 II ..a , II -.. f.J, 265 181 B5 A 305 197 C5 0 325 213 05 a 345 229 E5 246 166 A6 ~ 266 182 86 .E 306 198 C6 •• 0 326 214 06 ae 346 230 E6 267 183 B7 ~ 307 199 C7 <E 327 215 07 (f 347 231 E7 at 367 247 F7 0 1 1 1 0 330 216 08 350 232 E8 f/1 370 248 F8 1 0 0 0 8 371 249 F9 1 0 0 1 9 372 250 FA 1 0' 1 0 10 373 251 FB 1 0 1 1 11 374 252 FC 1 1 0 0 12 375 253 FD 1 1 0 1 13 376 254 FE 1 1 1 0 14 377 255 FF 1 1 1 1 15 . 247 167 A7 230 152 98 :n: 250 168 A8 211 137 89 231 153 99 © 251 169 A9 1 VTS 212 138 8A 232 154 9A 252 170 AA Q PLD 213 139 8B CSI 233 155 9B PLU 214 140 8C ST RI 215 141 80 SS2 SS3 E 271 185 89 E 272 186 BII E » 273 187 BB 234 156 9C 254 172 AC 114 274 188 BC OSC 235 157 90 255 173 AO 112 275 189 BO 216 142 8E PM 236 158 9E 256 174 AE 217 143 8F APC 237 159 9F 257 175 AF i.. , 270 184 B8 253 171 A8 « 320' 208 00 b7 1 0 245 165 A5 § @ 300 192 CO A 264 180 B4 244 164 A4 1 260 176 80 , b8 1 1 0 COLUMN 1 1 0 0 , 15 1 1 1 0 14 1 1 0 1 0 13 1 0 0 12 , A, •• E , I , I 276 190' BE II 277 191 BF •• I I 310 200 C8 , 311 201 C9 U 312 202 CA U , e 351 233 E9 332 218 OA ~ 352 234 EA 333 219 DB U 314 204 CC •• U 334 220 OC 315 205 CO •• 335 221 00 Y 316 206 CE 317 207 CF 336 222 OE J3 337 223 OF 1__ GR CODES r - C1 CODES-----<·~,...• - - - - - - ( D E C SUPPLEMENTAL GRAPHICS) B-3 , 331 217 09 313 203 CB II ,e ..e , I , I II I .. I 353 235 EB 354 236 EC 355 237 EO , U , U II U .. ..Y U 356 238 EE 357 239 EF ~ ., - APPENDIX C ALPHABET DATA STRUCTURE This Appendix describes the Alphabet Data Structure the LOAD BY NAME instruction. required by Key: name address 'name' <name> contents of word at address 'name' 1. Header information (word wide) Header information must start at the beginning of the region. Word 0 in the region is al$mag. name description al $mag al-$str al-$siz al-$tot magic number -- must be 16473 (decimal) structure version number -- 102 (decimal) size of header (bytes) -total size of this entire data structure (bytes) (PRO/GIDIS 2.0 -- This must be <= 8KB) flags -- reserved al $wid maximum width (bits) ( <al $wid> + 7 ) / 8 bytes) (Must-be 0 to 16, inclusive. If this width is 0 to 8, then the font information is stored in byte wide cells. If 9 to 16, the font information is stored in word-wide cells. al $nom nominal width (bits). Used as the 'alphabet width' for scaling. (Must be equal to <al_$wid>. height (bits) (0 to 16, inclusive) index of first character represented in this alphabet extent of alphabet -- the number of characters represented i this alphabet. There is no specific limit, al_$hgt al $fst al-$ext C-1 ALPHABET DATA STRUCTURE al_$ptr al $wdt al $fnt al=$orp al $orw 2. but the entire structure must fit in 1 APR (8KB). offset from al_$mag to pointer table. Pointer table MUS1 PRESENT. offset from al_$mag to actual width table. Not used, reservec offset from al $mag to start of font data. MUST BE PRESENT. offset from <aT $fnt) to out of range character font data (optional -- if -1 then PRO/GIDIS substitutes its own out of range character) actual width of out=of_rangecharacter - reserved Pointer table (word wide) <al_$pnt) offset from <al $fnt) to the font information for the character with index <al $fst) <al_$pnt) + 2 offset from <al $fnt) to the font information for the character with index <al $fst) + 1 <al_$ptr) + 2 * ( <al $ext) - 1) offset from <al $fnt> to the font information for the last character in the alphabet If the 'offset' value is -1, then treat the character it were out of range. 3. as if Font information (byte or word wide table, starts on 64 byte boundary) This data starts at <al$fnt). All pointers to this block are relative to the start of this block. Font information is stored for byte wide cells as: left portion right portion +---------------------) ( +1) . .(+n). 7 7 6 6 5 5 4 4 3 3 2 2 1 1 0 0 top scan line next to top scan 7 6 5 4 3 2 1 0 bottom scan line +--- pointer in <al_$ptr) C-2 ALPHABET DATA STRUCTURE Font information is stored for word wide cells as: right portion of character +--) 15 14 13 12 11 10 (+2) 15 14 13 12 11 10 9 9 8 8 7 7 6 6 5 5 4 4 3 3 2 2 1 1 0 0 (+2n)15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 ... +--- pointer in <al_$ptr) J left portion top scan line next to top scant lin bottom scan line . . ,. Word wide cells MUST BE ON WORD BOUNDARIES. We recommend the font table be set up with all word wide cells before any byte wide cells, especially with an odd height. PRO/GIDIS will only support alphabets with total sizes less than 1 APR's worth (8KB). Although the header is the only entity required to be in a fixed place, we strongly recommend that the font information be last and on a 64 byte boundary, so that future implementations could use 1 APR to map the header information and 1 APR to map the font data. Our suggested ordering: • header (at the start of the partition) • pointer table and actual width table (in either order) • font table (on a 64 byte boundary) (word wide cells byte wide cells) C-3 then APPENDIX D GLOSSARY The words in this glossary are used throughout this manual. These definitions are not absolute and might differ somewhat in other contexts. Where possible, the most common computer industry usage is the basis of the definition. ALPHABET An alphabet is a collection of characters. The component characters are numbered O,l, ••• n-l, where n is the extent of the alphabet. ALPHABET ATTRIBUTE An attribute that applies supports storage width attributes. PRO/GIDIS to an entire alphabet. and height as its only alphabet ANISOTROPIC Not isotropic. In an anisotropic coordinate space, one unit the X direction is not equal to one unit in the Y direction. in AREA TEXTURE A binary pattern used to shade areas. In PRO/GIDIS this is selected from a normal character alphabet. Area texture includes size parameters (specified independently) to determine the appearance of the pattern. ASPECT RATIO The ratio of the width of an object to its height. Objects whose aspect ratio are important in graphics include video displays, rectangular extents (picture aspect ratio), and addressing spaces. D-l GLOSSARY ATTRIBUTE A particular property that applies to a display element (output primitive), such as character height, line texture, and so forth. BITMAP The rectangular array of pixels (picture elements) that is displayed on the Professional's video screen. Also known as raster or frame buffer. The Professional has a bitmap 960 pixels wide by 240 pixels high, and either one or three planes deep. CHARACTER A character is a two-dimensional pattern made up of two "colors" or pixel states. A character is an element in an alphabet and is specified by an identifying tuple (alphabet number, character number). CHARACTER CELL (See display cell or unit cell.) CLIPPING The drawing of only those parts of display inside a given extent (the clipping region). elements that lie COLOR A "real color" is a particular shade of light described in terms of its red, green, blue, and monochrome components. The color map can contain up to eight different real colors at one time. A "logical color" is a value that represents an index into the color map. PRO/GIDIS draws images by storing either the primary or secondary logical color in pixels. COLOR MAP A table with entries that contain the values of the red, green and blue intensities of a particular color. This table is used to convert logical color to real color. CURRENT POSITION The position from which lines, arcs, and drawn. D-2 characters are to be GLOSSARY CURSOR A visual representation of the current position. DISPLAY CELL In text processing, the display cell is that area of the screen that a character should take up. The character pattern itself resides within a unit celli any portion of the display cell not covered by the unit cell is treated as though the pattern is OFF for that area. If the unit cell is larger than the display cell, the unit cell is clipped at the display cell borders. DISPLAY ELEMENT A basic graphic element that can be used to construct a display image. (also known as a graphic primitive). The display elements for PRO/GIDIS are: lines, characters, filled figures, and arcs. FILLED FIGURE A GIDIS display element consisting of a polygon which with a two-color pattern. is filled GIDIS OUTPUT SPACE (GOS) An application-specified coordinate space used by all drawing and report operations in PRO/GIDIS. A location within the PRO/GIDIS output space maps to a location within the viewport on the screen. GLOBAL SYMMETRY Preservation of GIDIS Output Space relationships at the expense of Hardware Address Space relationships. For example, suppose that a ten-unit distance in GOS maps to 7.5 units in HAS. With global symmetry, repeatedly moving ten GOS units results in a move of seven HAS units, then eight has units, then seven, and so forth. Local symmetry always would move seven HAS units each time. PRO/GIDIS, version 1.7, supports global symmetry for the SET REL POSITION, DRAW REL LINES, DRAW REL ARC and for cell movement after DRAW CHARACTERS or DRAW PACKED CHARACTERS instructions. HARDWARE ADDRESS SPACE (HAS) A coordinate space (possibly anisotropic) used by the graphic hardware device. GIDIS hides this space from your program, and addresses the hardware through an Imposed Device Space or GIDIS Output Space. D-3 GLOSSARY IMPOSED DEVICE SPACE (IDS) A coordinate space imposed on the hardware by your program. An Imposed Device Space requests PRO/GIDIS to simulate the requested device in terms of aspect ratio and addressing space. IDS is used only to set the viewport. All other coordinates and sizes are in GIDIS Output Space. ISOTROPIC In an isotropic coordinate space one unit in the X equal to one unit in the Y direction. direction is LINE TEXTURE A linear pattern used to help distinguish lines. Examples are solid, dashed, dotted, and so forth. PRO/GIDIS supports a two-color (binary) up to 16 units in length. LOCAL SYMMETRY Preservation of Hardware Address Space relationships at the expense of GIDIS Output Space relationships. For example, assume a ten-unit distance in GIDIS output space maps to 7.5 units in hardware coordinate space. Local symmetry always would move seven hardware units each time. With global symmetry, repeatedly moving ten GIDIS output space units results in a move of seven hardware units, then eight hardware units, then seven, and so forth. PRO/GIDIS supports local symmetry for unit cells, display cells, and cell movement (implicit and explicit). ORIGIN The origin of an address space is the point [0,0]. In PRO/GIDIS, the origin of IDS space is always the upper left corner of the screen. The origin of GIDIS output space is set by your program. The origin of a character cell (either display cell or unit cell) is the point in the cell placed over the current position. This is also the point about which the cell rotates. For P/OS, VI.7, the character cell origin always is the upper left corner. OUTPUT SPACE (See GIDIS output space.) D-4 GLOSSARY PICTURE ASPECT RATIO The ratio of the width of a picture to the height. This is normally expressed as two small numbers, such as 4:3. The picture aspect ratio on the Professional 350 monitor is 8:5. In this context, "picture" means a rectangular extent in an address space. PIXEL (PICTURE ELEMENT) The smallest element of a display surface that can be assigned color or intensity. a PIXEL ASPECT RATIO The ratio of the width of a pixel to the height. The width is the horizontal distance between adjacent pixels and the height is the vertical distance. Pixel aspect ratio is normally expressed as two small numbers, e.g. 1:2. The pixel aspect ratio on the Professional 350 monitor is 1:2.5 or 2:5. PLANE A plane is a portion of a bitmap that contains one bit for each pixel. The Professional 350 has either one plane (without EBO) or three planes (with E80). PRIMARY COLOR The primary color is that logical indicate the presence of an image. color generally used to RUBBER BAND There are two types of rubber band available in PRO/GIDrSi the rubber band line and the rubber band rectangle. The line stretches from the base position to the current position. The rectangle has one corner at the base position and the opposite corner at the current position. The rectangle will degenerate to a line or point if the current position and base position are the same in one or both coordinates. SECONDARY COLOR The secondary color is that logical indicate the absence of an image. STANDARD DISPLAY SIZE D-5 color generally used to GLOSSARY The standard display size is normally equal to the standard unit size. However, for alphabet 0, rotation 0, the standard display size is slightly smaller (horizontally) than the standard unit size. This is for increased compatibility with the VT12S. STANDARD UNIT SIZE The standard unit size depends on the alphabet width and height and the rotation angle. It is the size in GIDIS Output Space coordinates of the character displayed when one bit of the character pattern maps to exactly one pixel in the bitmap. INDEX -AAddress space in Viewing Transformation, 1-6 Alphabet and REQUEST CELL STANDARD, 10-4 creating, 1=26 definition, D-l description, 1-25 reset state, 3-5 to 3-6 user-defined, 1-26 Alphabet attribute definition, D-l Anisotropic definition, D-l Arcs drawing, 6-7, 6-9 Area cell size setting, 5-12 Area operation description, 1-31 purpose, 1-5 Area texture affected by SET GIDIS OUTPUT SPACE, 4-5 affected by SET OUTPUT IDS, 4-2 definition, D-ldescription, 1-21 reset state, 3-4 to 3-5 setting, 5-10 taken from line texture, 5-10 Area texture cell size description, 1-22 Area texture size description, 1-22 setting, 5-11 Aspect ratio definition, D-l description, 1-7 Attribute definition, D-2 -BBackslant see cell rendition BEGIN DEFINE CHARACTER reference description, 8-5 BEGIN FILLED FIGURE aborted by-initialization, 3-3 general description, 1-14 reference description, 7-1 Bitmap and NEW PICTURE, 3-7 definition, D-2 description, 1-15 -CCartesian Coordinate System use of, 1-6 Cell display size affected by SET GIDIS OUTPUT SPACE, 4-6 affected by SET OUTPUT IDS, 4-3 description, 1-29 reset state, 3-4 to 3-5 Cell movement affected by SET GIDIS OUTPUT SPACE, 4-6 affected by SET OUTPUT IDS, 4-3 description, 1-29 reset state, 3-4 to 3-5 Cell oblique description, 1-29 reset state, 3-5 Cell rendition description, 1-28 reset state, 3-5 Cell rotation description, 1-28 reset state, 3-5 Cell unit size affected by SET GIDIS OUTPUT SPACE, 4-6 affected by SET OUTPUT IDS, 4-3 description, 1-29 reset state, 3-4 to 3-5 CGL relationship to PRO/GIDIS, 1-2 when to use, 1-3 Character definition, D-2 Index-l INDEX Character cell definition, D-2 Character rotation and REQUEST CELL STANDARD, 10-4 Clipping definition, D-2 Clipping region affected by SET GIDIS OUTPUT SPACE, 4-5 affected by SET OUTPUT IDS, 4-2 and window, I-II description, 1-9 erasing, 9-1 in viewing transformation, 1-7 reset state, 3-4 setting, 4-6 Color attributes, 1-15 definition, D-2 Color map and complement mode, 1-18 definition, D-2 description, 1-16 interaction with plane mask, 5-6 reset state, 3-6 setting, 5-3 values, 5-4 Complement mode description, 1-17 effect on filled figure, 1-22, 7-3 effect on line texture, 1-20 effect on lines, 6-4 effect on pixel size, 5-8 Complement negate mode description, 1-18 effect on filled figure, 7-3 effect on lines, 6-4 Control instruction purpose, 1-4 CORE Graphics Library see CGL CREATE ALPHABET in aTphabet creation, 1-26 reference description, 8-3 Current pattern description, 1-17 Current position affected by SET GIDIS OUTPUT_SPACE, 4-5 Current position (Cont.) affected by SET OUTPUT IDS, 4-2 after DRAW ARCS~ 6-8 definition-; 0-2 description, 1-13 reporting, 1-32, 10-1 reset state, 3-4 setting, 6-1 to 6-2 Cursor affected by SET GIDIS_OUTPUT_SPACE, 4-5 affected by SET OUTPUT IDS, 4-2 definition, 0-3purpose of, 1-13 reset state, 3-6 selecting built-in, 3-9 setting. 3-8 Curve attribute description, 1-19 -D- DEC Multinational Character Set as alphabet 0, 1-26 Display cell definition, 0-3 reporting, 10-3 Display element definition, D-3 DRAW ARCS and REQUEST CURRENT POSITION, 10-2 general description, 1-14 reference description, 6-7 DRAW CHARACTERS and END LIST, 3-13 and REQUEST CURRENT POSITION, 10-2 general description, 1-15 invalid in filled figure, 7-2 parameter block, 2-7 reference description, 8-16 DRAW LINES and END LIST, 3-13 general-description, 1-14 parameter block, 2-7 reference description, 6-3 DRAW PACKED CHARACTERS reference-description, 8-18 DRAW REL ARCS general description, 1-14 Index-2 INDEX DRAW REI. ARCS (Cant.) reference description, 6-9 DRAW REI. LINES and END LIST, 3-13 general-description, 1-14 parameter block, 2-7 reference description, 6-5 Drawing instruction general description, 1-13 purpose, 1-4 $DSW variable values of, 2-4 to 2-5 -EEBO description, 1-16 END DEFINE CHARACTER reference description, 8-7 END FILLED FIGURE general description, 1-14 reference description, 7-2 END LIST and DRAW LINES, 6-3 function-of, 2-7 general description, 1-6 reference description, 3-13 END PICTURE general description, 1-5 reference description, 3-7 use of, 3-6 Erase mode description, 1-19 Erase negate mode description, 1-19 ERASE CLIPPING REGION general description, 1-31 reference description, 9-1 Error in instruction stream, 2-8 Explicit movement description, 1-31 Extended Bitmap Option see EBO Extent and picture aspect ratio, 1-8 description, 1-7 -FFilled figure and DRAW LINES, 6-3 defining-; 7-1 definition, D-3 effect on DRAW ARCS, 6-8 ending, 7-2 in complement mode, 1-18 instructions, 1-14 purpose, 1-5 shading to line or point, 1-22 Filled figure attribute description, 1-21 F'LUSH BUFFERS and-END PICTURE, 3-7 general-description, 1-5 reference description, 3-8 FORTRAN-77 PRO/GIDIS instruction names in, 2-6 sample program, 2-9 symbol name restrictions, 2-3 use of with PRO/GIDIS, 2-1 -GGIDIS Output Space see GOS GIGI and ReGIS, 1-2 Global attribute affected by SET GIDIS OUTPUT SPACE, 4-5 and SET-OUTPUT IDS, 4-1 purpose-; 1-4 Global symmetry and SET REL POSITION, 6-2 definition,-D-3 GOS affected by SET_OUTPUT_IDS, 4-2 bounds of, 1-8 definition, D-3 description, 1-8 in viewing transformation, 1-6A reset state, 3-4 setting, 4-4 unit aspect ratio, 1-8 Index-3 INDEX -H- Italic see cell rendition Hardware Address Space see HAS HAS definition, D-3 general description, 1-11 in viewing transformation, 1-7 unit aspect ratio, 1-8 -1- I/O Status Block values of, 2-4, 2-6 IDS definition, D-4 description, 1-10 in viewing transformation, 1-6A reset state, 3-3 setting, 4-1 unit aspect ratio, 1-8, 1-10 Implied movement description, 1-29 Imposed Device Space see IDS INITIALIZE and RIS, 2-3 effect on filled figure, 7-2 general description, 1-5 reference description, 3-1 Instruction syntax description, 2-6, 2-8 IO.RSD function code format, 2-5 in QIO, 2-1 use of, 1-32, 2-4, 2-6 IO.WLB function code and VTI02 Emulator, 2-1 IO.WSD function code format, 2-4 in QIO, 2-1 use of, 2-3 to 2-4 IO.WVB function code and VTI02 Emulator, 2-1 Isotropic definition, D-4 Isotropic mapping description, 1-8 IDS to HAS, 1-10 window to viewport, 1-9 -L- Line drawing, 6-3, 6-5 Line attribute description, 1-19 Line texture affected by SET GIDIS OUTPUT SPACE, 4-5 affected by SET OUTPUT IDS, 4-2 definition, D-4description, 1-19 to 1-20 reset state, 3-4 to 3-5 setting, 5-9 LOAD BY NAME reference description, 8-9 LOAD CHARACTER CELL and END LIST~ 3-13 in alphabet creation, 1-27 parameter block, 2-7 reference description, 8-4 Local symmetry definition, D-4 -MMACRO-II PRO/GIDIS instruction names in, 2-6 sample program, 2-8 use of with PRO/GIDIS, 2-1 -NNEW PICTURE general description, 1-5 reference description, 3-6 NOP general description, 1-6 reference description, 3-13 -0- Opcode function of, 2-6 Opcode word format, 2-6 Index-4 INDEX Origin definition, D-4 Output space definition, D-4 Overflow avoiding, 1-8 Overlay mode description, 1-18 Overlay negate mode description, 1-18 010 (Cant.) FORTRAN-77 routine, 2-1 QIOW see QIO Queue I/O Request see Qro -R- -pParameter block fixed length, 2-7 format, 2-7 variable length, 2-7 PASCAL PRO/GIDIS instruction names in, 2-7 Picture aspect ratio definition, D-5 description, 1-8 Pixel addressing individual, 1-13 definition, D-5 Pixel aspect ratio definition, D-S Pixel size description, 1-20 setting, 5-7 Plane definition, D-5 description, 1-15 Plane mask reset state, 3-5 setting, 5-4 Primary color definition, D-5 description, 1-16 reset state, 3-5 setting, 5-1 PRINT SCREEN general description, 1-31 reference description, 9-2 -0OlO access to PRO/GIDIS, 2-1, 2-9 expansion forms, 2-3 Read Special Data see IO.RSD ReGIS relationship to PRO/GIDIS, 1-2 when to use, 1-4 Remote Graphics Instruction Set see ReGIS Replace mode description, 1-18 effect on line texture, 1-20 effect on pixel size, 5-8 Replace negate mode description, 1-19 Report format, 1-32 Report handling description, 1-31 Report instruction purpose, 1-5 REQUEST CELL STANDARD and IO.RSD-; 2-4 general description, 1-32 reference description, 10-3 REQUEST CURRENT POSITION a.nd IO.RSD, 2=4 general description, 1-32 reference description, 10-1 REQUEST OUTPUT SIZE general description, 1-32 reference description, 10-4 REQUEST STATUS and IO.RSD, 2-4 general description, 1-32 reference description, 10-2 REQUEST VERSION NUMBER general description, 1-32 reference description, 10-5 Reset to Initial State (RIS) use of, 2-3 RIS (Reset) escape sequence use of, 2-3 Index-5 INDEX Rubber band definition, D-5 -SScreen printing, 9-2 SCROLL CLIPPING REGION general description, 1-31 reference description, 9-3 Scrolling by VTI02 Emulator, 2-3 SD.GDS parameter use of, 2-4 to 2-5 Secondary color definition, D-5 description, 1-16 reset state, 3-5 setting, 5-2 Secondary color and NEW_PICTURE, 3-6 SET ALPHABET general description, 1-25 in alphabet creation, 1-26 reference description, 8-2 SET AREA CELL SIZE general description, 1-22 reference description, 5-12 SET AREA TEXTURE effect-on area cell size, 5-12 general description, 1-21 reference description, 5-10 SET AREA TEXTURE SIZE general description, 1-22 reference description, 5-11 SET CELL DISPLAY SIZE general description, 1-29 reference description, 8-14 SET CELL EXPLICIT MOVEMENT general description, 1-29 reference description, 8-15 SET CELL MOVEMENT MODE general description, 1-29 reference description, 8-15 SET CELL OBLIQUE general description, 1-29 reference description, 8-12 SET CELL RENDITION general description, 1-28 reference description, 8-10 SET CELL ROTATION general description, 1-28 reference description, 8-11 SET CELL UNIT SIZE general description, 1-29 reference description, 8-13 SET COLOR MAP ENTRY general-description, 1-16 reference description, 5-3 SET GIDIS OUTPUT SPACE effect on clipping region, 1-9 invalid in filled figure, 7-2 purpose, 1-8 reference description, 4-4 SET LINE TEXTURE general description, 1-19 reference description, 5-9 SET OUTPUT CLIPPING REGION general description, 1-9 reference description, 4-6 SET OUTPUT CURSOR general description, 1-6 reference description, 3-8 SET OUTPUT CURSOR RENDITION general description, 1-6, 3-10 SET OUTPUT IDS general aescription, 1-10 invalid in filled figure, 7-2 reference description, 4-1 SET OUTPUT RUBBER BAND general description, 1-6, 3-11 SET OUTPUT VIEWPORT general description, 1-11 invalid in filled figure, 7-2 reference description, 4-3 SET PIXEL SIZE effect on line texture, 1-20 general description, 1-20 reference description, 5-7 SET PLANE MASK and VTI02 Emulator, 2-3 general description, 1-16 reference description, 5-4 SET POSITION general description, 1-14 invalid in filled figure, 7-2 reference description, 6-1 SET PRIMARY COLOR general description, 1-16 reference description, 5-1 Index-6 INDEX SET REL POSITION general description, 1-14 invalid in filled figure, 7-2 reference description, 6-2 SET SECONDARY COLOR general description, 1-16 reference description, 5-2 SET WRITING MODE reference-description, 5-7 Standard display size definition, D-5 reporting, 1-32 Standard unit size definition, D-6 reporting, 1-32 Status in error condition, 2-8 reporting, 1-32, 10-2 SYSLIB as source of QIO routine, 2-1 module QIOSYM, 2-3 -TTerminal emulator see VT102 Emulator see VT125 Emulator Text instruction, 1-15 Text attribute description, 1-25 Text instruction purpose, 1-5 Transparent mode description, 1-17 Transparent negate mode description, 1-17 -uunit aspect ratio description, 1-7 of GOS, 1-8 of HAS, 1-8 of IDS, 1-8 unit cell definition, 0-7 reporting, 10-3 -VVideo monitor color, 1-12 monochrome, I-II Viewing transformation definition, D-7 description, 1-6, 1-13 process, 1-12 purpose, 1-4 Viewport affected by SET OUTPUT_IDS, 4-2 definition, 0-7description, 1-11 in viewing transformation, 1-7 reset state, 3-4 setting, 4-3 VTI02 Emulator interaction with PRO/GIDIS, 2-2 to 2-3 use of planes, 5-5 use of with PRO/GIOIS, 2-1 VT125 Emulator use of, 1-4 VT125 terminal and ReGIS, 1-2 -wWindow and clipping region, 1-11 definition, D-7 description, 1-8 in Viewing Transformation, 1-7 write Special Data see IO.WSD Writing mode see also individual modes description, 1-16, 1-19 interaction with plane mask, 5-5 reset state, 3-5 setting, 5-7 Index-7 PRO/GIGIS Manual Order No. AA-Y660A-TK AD- Y660A-T1 READER'S COMMENTS NOTE This form IS for document comments only DIGITAL will use comments submitted on this form at the company's discretion. If you require a written reply and are eligible to receive one under Software Performance Report (SPR) serVice, submit your comments on an SPR form. Did you lind this manual understandable, usable, and well-organized? Please make suggestions for improvement. III :5 CJl c o r;; Did you find errors in this manual? If so, specify the error and the page number. :; u <l> III '" <l> CL Please Indicate the type of reader that you most nearly represent. Assembly language programmer Higher-level language programmer Occasional programmer (experienced) User with little programming experience Student programmer Other (please specify) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ o o o o o o Name ________________________ Date - - - - - - Organization _________________________________~ Slreel ____________________________________________ City __________________ State ________ ZiP Code - - - - - or Country I I I I I Do '.jot Tear - Fold Here and Tape __________________________________________ 1 ~a aama 1111 BUSINESS REPLY MAIL FIRST CLASS PERMIT NO. 33 MAYNARD MASS. POSTAGE WILL BE PAID BY ADDRESSEE Professional 300 Series Publications DIGITAL EQUIPMENT CORPORATION 146 MAIN STREET MAYNARD, MASSACHUSETTS 01754 No Po"'~ i Necessary If Mailed In the United States I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I - - - - Do Not Tear - Fold H e r e - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - I I I I I u c Update Notice Number 1 PRO/GIDIS Manual AD-Y660A-T1 April 1984 Insert this page in the PRO/GIDIS Manual to maintain an up-to-date record of changes to the manual. NEW AND CHANGED INFORMATION This update reflects software changes and additions made in P/OS Version 2.0. Also included are additional corrections to the documentation. Copyright © 1984 Digital Equipment Corporation INSTRUCTIONS Add the following pages to the PRO/GIDIS Manual as replacements for or additions to current pages. The technical changes made on replacement pages are indicated in the outside margin by change bars. Text deleted on replacement pages are indicated in the outside margin by bullets. Changes of an editorial nature are not marked. OLD PAGE Title page/copyright page iii through ix 1-5, 1-6 1-13,1-14 1-17,1-18 1-25 through 1-32 NEW PAGE Title page/copyright page iii through xi 1-5 through 1-6.1 1-13, 1-14 1-17,1-18 1-25 through 1-32 2-7, 2-8 3-1 through 3-4 3-9 through 2 4-3, 4-4 6-1 tllrough 6-4 7-4 Grlapter 8 9-3, 9-4 Chapter 10 Appendix A 8-3, 8-4 Appendix C Index Reader's Comments/Mailer 2-7, 2-8 3-1 through 3-4 3-9 through 3-13 4-3,4-4 6-1 through 6-4 7-3, 7-4 Chapter 8 9-3, 9-4 Chapter 10 Appendix A B-3, Blank Appendix C/Appendix D Index Reader's Comments/Mailer
Home
Privacy and Data
Site structure and layout ©2025 Majenko Technologies