home *** CD-ROM | disk | FTP | other *** search
-
-
-
- FUNCTIONAL SPECIFICATION AND PROGRAMMERS' REFERENCE
- PRELIMINARY: CONTENTS MAY CHANGE
- Copyright 1988, Commodore-Amiga, Inc.
- January 7, 1988
-
-
- 1. OVERVIEW
-
- The A2024 Monitor is a grayscale display device. It con-
- tains a frame buffer which can accumulate and display video
- data from an Amiga RGB port in several ways.
-
- In its "normal" operation mode, it will "deinterlace" an
- interlaced Amiga display. Thus a four-hundred line inter-
- laced display will be presented non-interlaced, and without
- the corresponding flicker. It can present up to 8 discern-
- able gray scales in normal mode.
-
- In its "extended" modes, the A2024 assembles several frames
- of data from the Amiga into a display larger than the Amiga
- is normally capable of generating. Displays of 1008x800
- pixels of two or four gray levels are supported. PAL sys-
- tems may support slightly taller displays.
-
- The remainder of this document presents more information on
- the characteristics of the device and its use. This prelim-
- inary version will be a little heavier on the "what" rather
- than the "how." A revision with more procedural detail will
- accompany the first beta release of the software provided
- with prototype hardware.
-
-
- 2. A2024 EXTENDED MODES
-
- The two extended modes we support are "15 Hertz" and "10
- Hertz" modes.
-
- In normal operation, the Amiga sends out 60 frames (fields)
- of video data, typically 200 lines high, every second.
-
- In "15 Hertz" mode, four different frames are sent alterna-
- tively, and the A2024 assembles them into a large image.
- This results in a complete update of the A2024 frame buffer
- fifteen times a second. To accomplish this output, the
- Amiga video hardware runs in its "hi-res" mode, presenting
- data equivalent to a four bitplane display. This requires
- using considerable display DMA bandwidth and causes serious
- performance penalties, particularly to memory operations in
-
-
-
- January 7, 1988
-
-
-
-
-
- - 2 -
-
-
- Chip RAM.
-
- In "10 Hertz" mode, the display is presented in six pieces,
- with a complete update ten times a second. This is
- equivalent, from a video bandwidth point of view, to a four
- bitplane "low-res" display. This rate supports uncontested
- access to Chip RAM by the processor.
-
- The communication of operating mode from the Amiga to the
- A2024 is done in the vertical overscan, just before top of
- each (Amiga) frame, by short bursts of color.
-
-
- 3. PROGRAMMERS' MODEL
-
- The graphics programmer need not be concerned with the
- patchwork way that displays are being generated, because the
- system preserves the basic programmers' model.
-
- A Screen (or ViewPort) for display in an A2024 extended mode
- uses a contiguous 1008x800 raster. Normal rendering and
- blitter operations apply. There is nothing new about a
- large RastPort.
-
- We support both Custom Screens and the Workbench Screens in
- A2024 extended modes.
-
- Mapping from RGB color scheme to grayscales is provided, and
- may be accessed via the standard SetRGB4() graphics func-
- tion. For extended modes, the mapping function follows.
- The values R, G, and B may be from 0 to 15, and the output
- is a number from 0 (black) to 3 (white).
-
- The function is:
- Gray Level = (77 * R + 150 * G + 29 * B + 128)/1024
-
- Several features of the Amiga graphics and animation
- hardware do not operate normally, however.
-
- - User Copper Lists will be merged in and executed for
- each (of four or six) panels as they are sent out of
- the Amiga. Normal copper operations, such as loading
- the color table or modifying the display control regis-
- ters could cause visual problems. We cannot envision a
- desirable, supportable purpose of User Copper Lists so
- their use is not presently supported, yet it is not
- prevented.
-
-
-
-
- January 7, 1988
-
-
-
-
-
- - 3 -
-
-
- - Simple Sprite 0 is available and used in its standard
- way. Other sprites, and attached sprites, are not sup-
- ported. Since Intuition uses SimpleSprite 0 for its
- pointer, the functions SetPointer()/ClearPointer()
- operate normally. The color mapping for the sprite is
- the same as earlier described.
-
- - Beam synchonization via WaitTOF(), and QBSBlit() will
- trigger relative to one of the four (15 Hz) or six (10
- Hz) panels. Thus the functions operate, but are not
- suitably synchronized.
-
- WaitBOVP() will return at the completion of the current
- display portion, and so is not suitable for use for
- synchronization in an A2024 extended ViewPort.
-
- - ScrollVPort() is not supported. Although there is
- potential for double buffering of single bitplane
- displays within the A2024 frame buffer, no double
- buffering is supported in extended mode.
-
- - The View/ViewPort positioning in extended mode is res-
- tricted. A2024 extended mode screens may not be
- dragged, but only moved front to back. Normal mode
- screens may be dragged up and down, but extended
- screens will not be made visible unless they are the
- frontmost screen.
-
- - Dual-Playfield support has not been investigated yet.
-
- - System Alerts, although functional, will not slide an
- extended screen down when they are presented, but will
- always appear in a black display by themselves.
-
- - The standard aspect ratio handling (using GfxBase-
- >NormalDPMX and NormalDPMY) cannot describe both normal
- and extended mode ViewPorts. A new function (or exam-
- ple) will provide substitute values on a ViewPort-by-
- ViewPort basis.
-
- 4. JUMPSTART AND MEMORY USAGE
-
- To provide interim support for the A2024 extended mode, new
- versions of three system libraries are provided (Exec,
- Graphics, and Intuition). These libraries are loaded into
- RAM and specially marked to be used after a reboot. The
- system is reset and these libraries are subsequently used.
- This is called the "Jumpstart" operation.
-
-
-
- January 7, 1988
-
-
-
-
-
- - 4 -
-
-
- Of these libraries, Exec must be loaded into Chip memory
- (approx. 16 KBytes), and the others (approx. 125 KBytes)
- are loaded into fast memory, if available.
-
- Large rasters take considerable memory. Each 1008x800 bit-
- plane is 100,800 bytes of Chip memory. In contrast, a
- 640x200 bitplane is 16,000 bytes large.
-
- "Smart Refresh" windows are saved off-screen when obscured.
- Since these windows (including the CLI windows) will prob-
- ably be used in larger sizes, in the worst case they can,
- each, use another 100,800 bytes for each bitplane, when at
- their largest size and completely obscured by other windows.
-
- System Copper Lists are considerably more complicated and
- larger than normal, but this is an insignificant memory con-
- sideration compared to the dominating factors listed above.
-
- It is hard to precisely estimate the total difference in
- memory usage when the A2024 is in use in its extended modes,
- considering, for example, that smart refresh windows will
- probably be larger. We can see that on a system with a
- two-bitplane Workbench (four gray levels) running after
- Jumpstart there will be about 315,000 bytes less user
- memory--about 185,000 bytes of that from chip memory--before
- any smart refresh windows are opened (and obscured).
-
- 5. WORKBENCH ON THE A2024
-
- Via a revised Preferences program, the user will be able to
- specify that the Workbench screen is to be opened in one of
- the extended modes.
-
- It will not be necessary to reset the machine to facilitate
- the requested mode change in the Workbench screen.
-
- Programs which open windows on the workbench screen should
- continue to operate normally. Providing, of course, that
- they do not make use of the unsupported features listed
- above, which would not have been proper on the Workbench
- screen to begin with.
-
- Two areas that programmers must recognize for their work-
- bench programs to operate correctly:
-
- 1) The Workbench Screen may be much larger than normal,
- and it might have only one bitplane. Using GetScreen-
- Data() to determine the dimensions and depth of the WB
-
-
-
- January 7, 1988
-
-
-
-
-
- - 5 -
-
-
- screen is still the preferred method for handling this.
-
- 2) As part of the new support, we will be allowing the
- system font to be chosen from fixed width fonts which
- may be larger than 8 or 9 points (pixels). There is a
- section on fonts below.
-
- 6. EXTENDED MODE CUSTOM SCREENS
-
- Memory permitting, Custom Screens may be opened in an A2024
- extended mode. An example accompanies this document. There
- are two issues: the general method of extending the NewS-
- creen data for OpenScreen() and the information specific to
- the A2024 modes. We will attempt to remain binary compati-
- ble with the example, although both issues are under review.
-
- The function OpenScreen() will fail if an extended mode is
- requested but the system doesn't believe an A2024 monitor is
- attached. A way of detecting the system's belief before
- attempting OpenScreen will be provided.
-
- 7. FONTS
-
- To date, only two fonts may be used as the system default
- font, Topaz 8 and Topaz 9. The Workbench screen always uses
- the current system default font. To run on the Workbench
- screen, or in a Custom Screen which was opened with the
- default font, it is not safe to assume that the font used
- will always be 8 or 9 lines high.
-
- As a rule, IntuiText structures should never use the default
- font (Font = NULL), unless run-time calculation is made for
- suitable position and dimension of them and of objects which
- contain them (such as gadgets). General text layout,
- Boolean Gadget with text labels, Requesters, String Gadgets,
- and Menus should all be calculated with respect to the font
- dimensions of the font that will actually be used.
-
- The FontHeight field in Preferences should not be used to
- determine the default font height, since it is only a
- request. The system may someday allow requests for
- FontHeight that cannot be satisfied. In this case the
- closest available size will be used, but the Preferences
- FontHeight will continue to reflect the user's preference,
- albeit unrealized.
-
- The correct way to determine the characteristics of the font
- depends on the situation. The most typical are:
-
-
-
- January 7, 1988
-
-
-
-
-
- - 6 -
-
-
- - If you are going to render through a RastPort that
- already exists, consult the font information in that
- RastPort.
-
- - If you are going to open a window on the Workbench
- screen, use GetScreenData() to examine the Workbench
- screen RastPort to get font information.
-
- - If you are going to open a custom screen with the
- default font, you can consult GfxBase->DefaultFont to
- see what font will be used when the screen is opened.
-
- - For tricky uses, it is sometimes necessary to realize
- that ALL gadget text rendering is done through the
- Screen->BarLayer->rp RastPort, with the exception of
- editing string gadgets, done through (a copy of) the
- Screen RastPort.
-
- Some special support will be provided to minimize problems
- in the most frequently mishandled areas.
-
- String Gadgets
- Until string gadgets are enhanced to support a font
- specification, they are tricky to handle. Intuition
- will check to be sure that the gadget dimensions are
- large enough to contain the font to be used. If not, a
- smaller Topaz font will be used.
-
- AutoRequests
- AutoRequests require that the programmer specify the
- exact dimensions and layout, although they are often
- rendered in the default font. Intuition will examine
- the Font specification in any text contained in an
- AutoRequest. If it is the default value (NULL), the
- positioning and dimensions of the text within the
- requester--as well as the dimensions of the requester
- itself-- will be taken as advice, and Intuition will
- substitute more suitable values where appropriate.
-
-
-
-
-
-
-
-
-
-
-
-
-
- January 7, 1988
-
-
-
-