home *** CD-ROM | disk | FTP | other *** search
- { Qinit.doc - documentation for QWIK Qinit ver 4.0, 12-01-87 }
-
- This file will help you figure out how the new IBM PS/2 systems are config-
- ured as well as original equipment. First, it is helpful to have a list of
- all the possible Alphanumeric (A/N or text) modes. QWIK was not designed
- | for the All Points Addressable (APA or graphics) modes. Qinit detects dual
- | monitors and saves both the active and alternate display device codes.
-
- TABLE 1: Hardware Specific Video Mode Characteristics
- Mode Format Segment Display Box MDA CGA EGA MCGA VGA PCjr PCC 3270 HGC MaxPage
- ---- ------ ------- ------- ---- --- --- --- ---- --- ---- --- ---- --- -------
- 0,1 40x25 B800:0 320x200 8x8 x x x x x x 7
- 320x350 8x14 x x 7
- 320x400 8x16 x 7
- 360x400 9x16 x 7
- 2,3 80x25 B800:0 640x200 8x8 x x x 3
- 640x200 8x8 x x 7 *
- 640x350 8x14 x x 7 *
- 640x400 8x16 x 7
- 720x350 9x14 x 0 +
- 720x400 9x16 x 7
- 7 80x25 B000:0 720x350 9x14 x x x x 0
- 720x350 9x14 x x 7 *
- 720x400 9x16 x 7
- 640x200 8x8 x 3
-
- Legend:
- Format - Characters per row by the number of rows in the data area.
- Segment - Address of the first character on page 0 of the display buffer.
- Display - The pixel resolution for the data area excluding the border,
- horizontal by vertical.
- Box - The pixel resolution for each character, horizontal by vertical.
- MDA - Monochrome Display and Printer Adapter
- CGA - Color Graphics Adapter
- EGA - Enhanced Graphics Adapter
- PGC - Professional Graphics Controller
- MCGA - Multi-Color Graphics Array
- VGA - Video Graphics Array
- PCjr - PC Junior
- PCC - PC Convertible
- HGC - Hercules Graphics Cards - HGC, HGC Plus, and InColor Card
- 3270 - All IBM 3270 PC adapters
- MaxPage - 0-based highest page number; e.g. 7 means there are 8 pages.
- MD - 5151 Monochrome Display
- CD - 5153 Color Display
- ECD - 5154 Enhanced Color Display
-
- Notes:
- 1. The 0 and 2 modes suppress color burst only on composite displays (not
- RGB) only for CGA and EGA.
- 2. The PS/2 model 25 and 30 have an integrated MCGA. The model 50 and
- above have an integrated VGA.
- 3. The 8514 High Content Color Display along with the 8514/A adapter
- produces a superset of the VGA for APA, but there is no differences in
- the A/N modes to the VGA when the adapter is in "VGA" mode. See IBM
- documentation for Advanced Function Mode.
- 4. Reduced MaxPage to 3 if EGA only has 64K graphics memory installed for
- modes marked "*". MaxPage of 7 is for 128K or more.
- 5. The PCC can have either an alternate MDA or CGA. The LCD (model 5140)
- can emulate either the MDA or CGA modes, but the MDA mode is 640x200.
- 6. I currently have no information on the PGC.
- 7. To relieve cursor routine programming due to the multiple character box
- sizes, the VGA has a cursor emulation mode. Qinit turns on the mode
- if PS/2 equipment is detected. See CURSOR.DOC for emulation notes.
- | 8. On the 3270 PC, dual monitors are not possible as they use the same
- | physical buffer space. Qinit will determine if more than just page 0
- | is available for color displays. Unless there is a special adapter,
- | there is only page 0.
-
- Display Combination Code (DCC) - The PS/2 video BIOS has a new function
- that simplifies equipment detection called the Read/Write Display
- Combination Code. Using interrupt $10 with AH = $1A00, the call will
- return the Active Display Device in BL and the Alternate Display Device in
- BH. If the function is supported, it also returns $1A to AL. The possible
- Display Device codes (as assigned by IBM) are:
-
- TABLE 2: Display Combination Code
- CODE DESCRIPTION QWIK40 Constant
- ---- -------------------------------- ---------------
- $00 No display NoDisplay
- $01 MDA with 5151 monochrome display MdaMono
- $02 CGA with 5153/4 color display CgaColor
- $03 reserved DCC3
- $04 EGA with 5153/4 color EgaColor
- $05 EGA with 5151 monochrome EgaMono
- $06 PGC with 5175 color PgcColor
- $07 VGA with analog monochrome VgaMono
- $08 VGA with analog color VgaColor
- $09 to $0A - reserved DCC9,DCC10
- $0B MCGA with analog monochrome McgaMono
- $0C MCGA with analog color McgaColor
- $0D to $FE - reserved n/a
- $FF unknown Unknown
-
- Conforming to DCC - No results are obtained for the DCC on anything other
- than PS/2 equipment. However, to be consistent, Qinit was reprogrammed
- to conform to the DCC for ALL equipment. To see if a CGA is in use,
- simply check to see if ActiveDispDev=CgaColor. Qinit only sets the
- parameters for the active display. Although the alternate code is saved,
- it is only for testing purposes. If you change text modes in a running
- program, Qinit should be executed again.
-
- HavePS2 - Qinit sets HavePS2 to true if the DCC is supported. This means
- that the program has detected some kind of PS/2 equipment whether it is a
- standard Model 30, a PS/2 Display Adapter on an IBM XT, or the like. It
- also means that either MCGA or VGA is present, but not necessarily
- active. To know which, just check the DCC.
-
- | Have3270 - If Qinit detects 3270 PC equipment/software, this variable is
- | set to true. In addition, the ActiveDispDev is either MdaMono or
- | CgaColor. Note: There may or may not be graphics capability in either
- | case; Qinit is not meant to detect graphics. ActiveDispDev3270 may be
- | one of the following:
-
- | TABLE 3: 3270 PC Display Combination Code
- | CODE MONITOR ADAPTER QWIK40 Constant
- | ---- -------------- ------------------------- ---------------
- | $00 5151 or 5272 for 5151 or 5272
- | $01 3295 for 3295
- | $02 5151 or 5272 for 5151 or 5272 plus
- | XGA graphics
- | $03 5279 3270 PC G
- | $04 5379 C01 3270 PC GX
- | $05 5379 M01 3270 PC GX
- | $06 Reserved
- | $07 Reserved
- | $FF Unknown, not a 3270 PC Unknown
-
- EGA Switches - By checking the value of this byte, you can determine the
- monitor connected to the EGA, the alternate video system, and the start
- up default. The byte is a copy of how the dip switches are set on the
- card where on=0 and off=1. The primary is the default. When the ECD is
- set for 640x200, it is emulating the CD including the cursor mode.
-
- TABLE 4: EGA dip switch configuration
- SWITCH VALUE PRIMARY SECONDARY
- ------ ----- -------------------- -------------------
- 0000 0 MDA + MD EGA + CD - 40x25
- 0001 1 MDA + MD EGA + CD - 80x25
- 0010 2 MDA + MD EGA + ECD (640x200)
- 0011 3 MDA + MD EGA + ECD (640x350)
- 0100 4 CGA + CD - 40x25 EGA + MD
- 0101 5 CGA + CD - 80x25 EGA + MD
- 0110 6 EGA + CD - 40x25 MDA + MD
- 0111 7 EGA + CD - 80x25 MDA + MD
- 1000 8 EGA + ECD (640x200) MDA + MD
- 1001 9 EGA + ECD (640x350) MDA + MD
- 1010 10 EGA + MD CGA + CD - 40x25
- 1011 11 EGA + MD CGA + CD - 80x25
-
- EGA Information - The byte located at $0040:$0087 has the following
- information when the EGA (or VGA) is present:
-
- TABLE 5: EGA information
- BITS DESCRIPTION
- ---- -------------------------------------------------
- 7 (0) Clear, (1) Keep video data after mode set
- 6,5 (00) 64k, (01) 128k, (10) 192k, (11) 256k, memory
- 4 Reserved
- 3 (0) EGA active, (1) EGA not active
- 2 (0) Disable, (1) Enable wait-for-display
- 1 (0) CD/ECD, (1) MD attached
- 0 (0) Active, (1) Inactive CD emulation
-
- PCC Exceptions - Since the PCC also does not support the DCC, a separate
- code is used. If the 5140 LCD is used in mode 7, the Active Display
- Device is set to MdaMono which is close enough. This set up can be
- verified by testing if MaxPage=3. The alternate display is found by using
- interrupt $10 with AH=$15. The result is saved in AltDispDevPCC. Of
- course the variable is undefined if a PCC is not used. The possible types
- are:
-
- TABLE 6: PC Convertible Alternate Display Adapters
- VARIABLE MODEL DESCRIPTION
- ------------- ----- --------------------
- | AltDispDevPCC = $ 0 No alternate adapter
- = $5140 LCD
- = $5153 CGA type
- = $5151 Monochrome type
-
- | Hercules - Hercules cards are also detected. It is assumed that they are
- | installed as the default display device. When detected, the DCC will be
- | set to MdaMono. The tests for the Hercules cards are the ones
- | recommended by Hercules Computer Technology, which also admits that
- | sometimes the tests will fail during multi-tasking activity. Hercules
- | clones may not be detected by these test, but the DCC will be correct.
-
- | TABLE 7: Hercules Model Code
- | CODE DESCRIPTION QWIK40 Constant
- | ---- -------------------------------- ---------------
- | 0 No Hercules card NoHerc
- | 1 HGC HgcMono
- | 2 HGC Plus HgcPlus
- | 3 Hercules InColor Card HercInColor
-
- | Dual Monitors - Qinit makes an attempt to detect for a second monitor by
- | several means. If no other cards like EGA or VGA are found, the actual
- | video buffers, $B000 or $B800, are checked for a non-destructive
- | write/read. If the buffer exists, an alternate display device is
- | confirmed. However, one test of a Qega+ card connected to a color
- | monitor showed an erratic response to direct test of the mono buffer when
- | no second card was actually installed.
-
- System Identification - To get both the model and submodel, you must use
- interrupt $15 with AH=$C0 which only works on some computers. If the
- carry flag is set on exit, then that interrupt is not supported, because
- there's no submodel number. The alternative is to get the basic computer
- model by directly accessing the byte in memory at $F000:$FFFE. The
- possible values are:
-
- TABLE 8: System Identification Codes
- SysID Sub-Model SYSTEM
- ----- --------- ---------------------------
- $FF n/a IBM PC
- $FE n/a IBM PC XT
- $FD n/a IBM PCjr
- $FC n/a IBM PC AT (6 MHz, 01/10/84)
- $00 IBM PC AT (6 MHz, 06/10/85)
- $01 IBM PC AT (8 MHz, 11/15/85)
- $02 IBM PC XT (286)
- $04 IBM PS/2 model 50
- $05 IBM PS/2 model 60
- $FB $00 IBM PC XT (256/640)
- $FA $00 IBM PS/2 model 30
- $01 IBM PS/2 model 25
- $F9 $00 IBM PC Convertible
- $F8 $00 IBM PS/2 model 80 (16 MHz)
- $01 IBM PS/2 model 80 (20 MHz)
- ? IBM PS/2 model 70
-
-
- The essential variables set by Qinit are:
-
- VARIABLE DESCRIPTION
- ------------ ---------------------------------------------------------
- | Page0seg Segment for the base page, page 0. This value may be
- | changed for multi-tasking environments.
- Qseg Segment for Q writing which is altered when changing
- pages.
- | Qsnow Wait-for-retrace (snow) while Q writing.
- MaxPage Maximum possible 0-based page number.
-
-
- The other variables set or located by Qinit are for your reference to
- help make decisions in your programs:
-
- VARIABLE DESCRIPTION
- ------------ ---------------------------------------------------------
- VideoMode Directly accesses the video mode code.
- | VideoPage Directly accesses the video page number.
- EgaRows 0-based number of rows on the screen for EGA or VGA.
- EgaFontSize 1-based number of horizontal scan lines per character for
- EGA or VGA.
- EgaInfo (Described above)
- EgaSwithces (Described above)
- CRTcolumns 1-based number of columns on the screen for any card.
- | CRTcols Global variable equal to CRTcolumns.
- | CRTrows 1-based number of rows on the screen for any card.
- HavePS2 Detects the presence of some type of IBM PS/2 equipment.
- | Have3270 Detects the presence IBM 3270 PC equipment/software.
- | CardSeg Video buffer address the video "card".
- | CardSnow Requirement for wait-for-retrace for the video "card".
- SystemID Code for the IBM computer in use.
- SubModelID Code for the sub-model of the IBM computer in use.
- | ActiveDispDev Code for the Active Display Device.
- | AltDispDev Code for the Alternate Display Device.
- | AltDispDevPCC Code for the Alternate Display adapter on the PC
- Convertible.
- | ActiveDispDev3270 Code for the Active Display Device on the 3270 PC.
-
- CGA Snow - A recent discovery has shown that CGA cards do not need wait-
- for-retrace in 40 column modes 0 and 1. Qinit was programmed to
- accommodate this. For other hardware, you can change Qsnow to suit your
- needs, but CardSnow should be left unchanged to save what Qinit detected.
-
- References - For more information on the new IBM PS/2 system, you can get
- the "IBM BIOS Interface Technical Reference Manual". Other references
- include:
-
- IBM Personal System/2 Seminar Proceedings:
- Volume 5, Number 2, Displays and Adapters, publication # G360-2678.
- Volume 5, Number 4, Models 50, 60, 80, VGA, BIOS and Programming
- Considerations, publication # G360-2747.
-
- | For more information on the IBM 3270 PC, you can get the the following
- | publications:
- |
- | "3270 PC Application Development Considerations"
- | "IBM 3270 Personal Computer Programming Guide", Pub # SA23-0221
- | "IBM 3270 Personal Computer Control Program Reference", Pub # GA23-0232
-
- As always, the above information is subject to change without notice per
- IBM. IBM is the trademark for International Business Machines Corp. (but
- you already know that!)