home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Collection of Hack-Phreak Scene Programs
/
cleanhpvac.zip
/
cleanhpvac
/
VGADOC4B.ZIP
/
PCJR.TXT
< prev
next >
Wrap
Text File
|
1995-09-29
|
5KB
|
141 lines
IBM PC Jr graphics system:
3D4h (W): Index register.
The value written to this register selects which of the data
registers will be accessed at 3D5h.
3D4h index 00h (W): Horizontal Total Register
Bit 0-7 Number of characters (-1) in a scan line incl. retrace.
3D4h index 01h (W): Horizontal Displayed Register
Bit 0-7 Number of characters (-1) displayed during a scan line.
3D4h index 02h (W): Horizontal Sync Position Register
Bit 0-7 Number of characters displayed before Horizontal Sync pulse starts.
3D4h index 03h (W): Horizontal Sync Width Register
Bit 0-7 Number of character clocks during a Horizontal Sync pulse.
3D4h index 04h (W): Vertical Total Register
Bit 0-6 Number of character rows in a frame. This is adjusted by the number
of scanlines in a character (index 9) and the Vertical Adjust (index
5).
3D4h index 05h (W): Vertical Total Adjust Register
Bit 0-3 Number of scanlines added to the Vertical Total time.
3D4h index 06h (W): Vertical Displayed Register
Bit 0-6 Number of character rows displayed per frame.
3D4h index 07h (W): Vertical SyncPosition Register
Bit 0-6 Number of character rows displayed before the Vertical Sync pulse
starts.
3D4h index 08h (W): Interlace Mode Register
3D4h index 09h (W): Maximum Scan Line Register
Bit 0-3 Number of scanlines (-1) in a character row.
3D4h index 0Ah (W): Cursor Start Register
Bit 0-4 The scanline (starting from 0) within the character where the
cursor starts.
5-6 Cursor Attributes:
0,2: Cursor is blinking at the blink rate.
1: Cursor is turned off.
3: Cursor is blinking at half the blink rate.
The default blink rate is 1/16 of the frame rate (8 frames on, 8
off).
3D4h index 0Bh (W): Cursor End Register
Bit 0-4 The scanline (starting from 0) within the character where the
cursor ends. If the start position (index 0Ah) is larger than this
value, no cursor is shown.
3D4h index 0Ch (W): Start Address High Register
Bit 0-5 The upper 6 bits of the address of the start of the display.
The lower 8 bits are in index 0Dh.
3D4h index 0Dh (W): Start Address Low Register
Bit 0-7 The lower 8 bits of the address of the start of the display.
The upper 6 bits are in index 0Ch.
3D4h index 0Eh (W): Cursor Location High Register
Bit 0-5 The upper 6 bits of the address of the start of the cursor.
The lower 8 bits are in index 0Fh.
3D4h index 0Fh (W): Cursor Location Low Register
Bit 0-7 The lower 8 bits of the address of the start of the cursor.
The upper 6 bits are in index 0Eh.
3DAh (R):
bit 0 Display Active.
1 Light Pen Trigger.
2 Light Pen Switch.
3 Vertical Retrace active if set
4 Video Dots.
3DAh (W): VGA registers
The indexed VGA (Video Gate Array) registers are accessed by reading 3DAh,
then writing the index to 3DAh and finally writing the data to 3DAh
3DAh index 00h (W): Mode Control 1 Register
bit 0 ?
1 ?
2 ?
3 ?
4 ?
3DAh index 01h (W): Palette Mask Register
bit 0-3 Palette mask. Guess: 1 in 2color modes, 3 in 4 color modes and 15
in 16color & text modes ? (ANDed with the pixel?)
3DAh index 02h (W): Border Color Register
bit 0-3 Border color in IRGB format (bit0 is Blue)
3DAh index 03h (W): Mode Control 2 Register
bit 1 Enable Blink if set, disable if clear
3 Set in 640x200 2color mode, clear in all other modes
3DAh index 04h (W): Reset Register
bit 0 ?
1 ?
3DAh index 10h-1Fh (W): Palette Array Entry 0-15
bit 0-3 Palette entry in IRGB format. Bit 0 is blue and bit 3 is intensity.
The text & 16color modes use all 16 entries, the 4 color modes use
entries 0-3 and the 2 color modes only use entries 0-1.
3DFh (R/W):
bit 0-2 Identifies the page of main memory being displayed in units of 16K.
0: 0K, 1: 16K...7: 112K. In 32K modes (bits 6-7 = 2) only 0,2,4 and
6 are valid, as the next page will also be used.
3-5 Identifies the page of main memory that can be read/written at B8000h
in units of 16K. 0: 0K, 1: 16K...7: 112K. In 32K modes (bits 6-7 = 2)
only 0,2,4 and 6 are valid, as the next page will also be used.
6-7 Display mode. 0: Text, 1: 16K graphics mode (4,5,6,8)
2: 32K graphics mode (9,Ah)
Video modes (set via INT 10h with AX=mode#):
00h T 40 25 mono
01h T 40 25 color
02h T 80 25 mono
03h T 80 25 color
04h G 320 200 4 color
05h G 320 200 4 mono
06h G 640 200 2 color
08h G 160 200 16 color
09h G 320 200 16 color
0Ah G 640 200 4 color
The text modes are similar to MDA/Hercules/CGA/EGA/VGA text modes.
The graphics modes resemble CGA modes. The pixels are packed 2/4/8 in each
byte with the lowest pixel in the highest bits. The display memory is split 2
or 4 ways, with modes 5-8 having even scanlines in the first 8K and odd lines
in the next 8K, and modes 9,0Ah split into 4 banks based on the two lowest
bits of the scanline number (Scanline 0,4,8.. are in the first 8K, line 1,5,9
.. in the 2nd 8K, line 2,6,10 in the 3rd and line 3,7,11 in the last 8K bank).