home *** CD-ROM | disk | FTP | other *** search
- The following is a concantenation of the messages from Joel Seiferas,
- 70516,1704 concerning the IBM Enhanced Graphics Adapter and its BIOS
- interfaces. Hopefully, this will help until IBM releases "official"
- information.... connie
-
-
- #: 80780 Sub-topic 1 - User Updates/Fixes
- Sb: EGA doc.
- 26-Dec-84 19:01:04
- Fm: Joel Seiferas 70516,1704
- To: EGA owners
-
-
- The IBM Enhanced Graphics Adapter is comes without usage
- instructions, so the following message should be useful to purchasers.
-
- Date: Fri, 21 Dec 84 22:50:00 EST
- From: BrucCowan%UMich-MTS.Mailnet@MIT-MULTICS.ARPA
- Subject: IBM Enhanced Graphics Adaptor Information
-
- Here are some very brief instructions for the BIOS interface for the
- enhanced graphics adaptor. No guarantees about accuracy. Hope they are
- of some use. I haven't figured out most of them. Parenthesized comments
- indicate some things I have found out. I'd like any more information
- anyone comes up with.
-
- EGA extensions to ROM BIOS INT 10H.
-
- (AH)=0 Set mode
- (AL) 0-7 as before (7 is now user selectable)
- D graphics 320x200 on color (5153) monitor
- E graphics 640x200
- F graphics 640x350 on monochrome monitor
- 10 graphics 640x350 on 5154 monitor
- All above have graphics memory at A000:0. If you use one of the
- old modes, the memory appears at the standard address for the
- old adaptors (B000:0 or B800:0).
-
- (AH)=10 Set palette registers
- (AL)=0 Set individual palette register
- BL = palette register to set, BH = value to set
- (AL)=1 Set overscan register
- BH = value to set
- (AL)=2 Set all palette registers and overscan
- ES:DX points to a 17 byte table
- bytes 0-15 are the palette values, respectively
- byte 16 is the overscan value
- (AL)=3 Toggle intensify/blinking bit
- BL - 0 enable intensify
- BL - 1 enable blinking
-
- (AH)=11 Character generator routine
- Note: This call will initiate a mode set.
- (AL)=00 User alpha load
- ES:BP - pointer to user table
- CX - count to store
- DX - character offset into table
- BL - block to load
- BH - number of bytes per character
- (AL)=01 ROM monochrome set
- BL - block to load
- (AL)=02 ROM 8x8 double dot
- BL - block to load
- (AL)=03 Set block specifier
- BL - char gen block specifier
- D3-D2 attr bit 3 one, char gen 0-3
- D1-D0 attr bit 3 zero, char gen 0-3
- Note: When using AL=03, a function call AX=1000H, BX=0712H is
- recommended to set the color planes resulting in 512
- characters and 8 consistent colors.
-
-
- (UA RE T):
-
- #: 80784 Sub-topic 1 - User Updates/Fixes
- Sb: EGA doc. (cont.)
- 26-Dec-84 19:05:23
- Fm: Joel Seiferas 70516,1704
- To: EGA owners (cont.)
-
-
- Note: The following interface (AL=1x) is similar in function to
- (AL=0x) except that:
- - page 0 must be active
- - points (bytes/char) will be recalculated
- - rows will be calculated from the following:
- int (200 or 350) / points - 1
- - CRLEN will be calculated from:
- (rows+1)*CRCOLS*2
- - the CRTC will be reprogrammed as follows:
- R09H = points - 1 max scan line
- R09H only done in mode 7
- R0AH = points - 2 cursor start
- R0BH = 0 cursor end
- R12H = vert disp end
- (rows+1)*points-1
- R14H = points underline loc
- The above register calculations must be close to the original
- table values or undetermined results will occur.
-
- Note: The following interface is designed to be called only
- immediately after a mode set. Failure to adhere to this
- practice may cause undetermined results.
-
- (AL)=10 User alpha load
- ES:BP - pointer to user table
- CX - count to store
- DX - character offset into table
- BL - block to load
- BH - number of bytes per character
- (AL)=11 ROM monochrome set
- BL - block to load
- (AL)=12 ROM 8x8 double dot
- BL - block to load (this gives 43 lines in char mode)
-
- Note: The following interface is designed to be called only
- immediately after a mode set. Failure to adhere to this
- practice may cause undetermined results.
- (AL)=20 User graphics chars INT 01FH (8x8)
- ES:BP - pointer to user table
- (AL)=21 User graphics chars
- ES:BP - pointer to user table
- CX - points (bytes/char)
- BL - row specifier
- BL = 0 user
- DL - rows
- BL = 1 14 (0EH)
- BL = 2 25
- BL = 3 43
- (AL)=22 ROM 8x14 set
- BL - row specifier
- (AL)=23 ROM 8x8 double dot
- BL - row specifier (this seems wrong, use BL=# rows)
-
- (UA RE T):
-
- #: 80785 Sub-topic 1 - User Updates/Fixes
- Sb: EGA doc. (concl.)
- 26-Dec-84 19:07:04
- Fm: Joel Seiferas 70516,1704
- To: EGA owners
-
-
- (AL)=30 Information
- CX - points
- DL - rows
- BH - 0 return current INT 1FH ptr
- ES:BP - ptr to table
- BH - 1 return current INT 44H ptr
- ES:BP - ptr to table
- BH - 2 return ROM 8x14 ptr
- ES:BP - ptr to table
- BH - 3 return ROM double dot
- ES:BP - ptr to table
- BH - 4 return ROM double dot (top)
- ES:BP - ptr to table
- BH - 5 return ROM alpha alternate 9x14
- ES:BP - ptr to table
-
- (AH)=12 Alternate select
- (BL)=10 Return EGA information
- BH = 0 - color mode in effect
- = 1 - monochrome mode in effect
- BL = memory value
- 0 0 - 064K 0 1 - 128K
- 1 0 - 192K 1 1 - 256K
- CH = feature bits
- CL = switch setting
- (BL)=20 Select alternate print screen routine
-
- (AH)=13 Write string
- This is the same as documented in the PC/AT Technical Reference
- BIOS listing (but is new for non ATs).
-
- (UA RE T):
-
-
- #: 80885 Sub-topic 1 - User Updates/Fixes
- Sb: 43-line mode
- 27-Dec-84 06:25:36
- Fm: Joel Seiferas 70516,1704
- To: EGA owners
-
-
- Following the reposted underground EGA documentation from Bruce
- Cowan, I finally managed to look at 43-line mode on the monochrome
- display. Here is the hex for a tiny .com program to change to that
- mode:
-
-
- B80700CD10B411B012B300CD10CD20
-
- ;checksum 1440
-
-
- To use the new mode, one should avoid ANSI.SYS or modify it to allow 43
- lines. Also, a cursor is still needed.
-
- (UA RE T):