The system has many different display modes that you can specify for each viewport. under 1.3, the eight constants that control the modes are DUALPF, PFBA, HIRES, SUPERHIRES, LACE, HAM, SPRITES, and EXTRA_HALFBRITE. Some, but not all of the modes can be combined in a ViewPort. HIRES and LACE combine to make a high-resolution, interlaced ViewPort, but HIRES and SUPERHIRES conflict, and cannot be combined. Under 1.3, you set these flags directly in the Modes field during initialization of the viewport. under release 2, there are many more display modes possible than in 1.3 so a new system of flags and structures is used to set the mode. With Release 2, you set the display mode for a ViewPort by using the videocontrol() function as described in the section on "monitors, modes and the display database" later in this chapter. The dualpf and pfba modes are related. dualpf tells the system to treat the raster specified by this viewport as the first of two independent and separately controllable playfields. It also modifies the manner in which the pixel colors are selected for this raster (see the above table). When pfba is specified, it indicates that the second playfield has video priority over the first one. Playfield relative priorities can be controlled when the playfield is split into two overlapping regions. Single-playfield and dual-playfield modes are discussed below in "advanced topics." hires tells the system that the raster specified by this viewport is to be displayed with (nominally) 640 horizontal pixels, rather than the 320 horizontal pixels of Lores mode. superhires tells the system that the raster specified by this viewport is to be displayed with (nominally) 1280 horizontal pixels. This can be used with 31 kHz scan rates to provide the VGA and Productivity modes available in Release 2. SUPERHIRES modes require both the ECS and Release 2. See the section on "determining chip versions" earlier in this chapter for an explanation of how to find out if the ECS is present. lace tells the system that the raster specified by this viewport is to be displayed in interlaced mode. If the ViewPort is non-interlaced and the view is interlaced, the viewport will be displayed at its specified height and will look only slightly different than it would look when displayed in a non-interlaced View (this is handled by the system automatically). See "interlaced mode vs. non-interlaced mode" below for more information. ham tells the system to use "hold-and-modify" mode, a special mode that lets you display up to 4,096 colors on screen at the same time. It is described in the "advanced topics" section. sprites tells the system that you are using sprites in this display (either vsprites or simple sprites). the system will load color registers for the sprites. Note that since the mouse pointer is a sprite, omitting this mode will prevent the mouse pointer from being displayed when this ViewPort is frontmost. See the "graphics sprites, bobs and animation" chapter for more information about sprites. extra_halfbrite tells the system to use the extra-half-brite mode, a special mode that allows you to display up to 64 colors on screen at the same time. It is described in the "advanced topics" section. If you peruse the <graphics/view.h> include file you will see another flag, extended_mode. never set this flag yourself; it is used by the Release 2 system to control more advanced mode features. Be sure to read the section on "monitors, modes and the display database" for additional information about the viewport mode and how it has changed in the Release 2 version of the operating system. single-playfield mode vs. dual-playfield mode low-resolution mode vs. high-resolution mode interlaced mode vs. non-interlaced mode