📄 paradise.txt
字号:
element command queue. 0: 8 free, 1: 7 free ... 8: No free slots
5 Command Buffer Enabled if set. If disabled the Command Buffer
Locations field follows the Drawing Engine Busy field.
6 Command Buffer Overflow. Set if the buffer has overflowed since it
was last enabled.
7 Drawing Engine Busy if set.
8 Drawing Engine not Busy Interrupt. Write 1 to arm the interrupt
9 Drawing Engine not Busy Interrupt Status. Set if an interrupt is
pending
10 Vertical Retrace Interrupt.
Note: On the '33 this register is used to check if the engine is ready.
Some applications check for bit 0-3 = 0 and some for bits 0-3,7 = 0.
2DF0h (R/W): Local Bus (WD90c24,26, 31 (via the '56), 33)
bit 0-1 Enable Dual Display. 0,1: Disable both, 2: Enable MDA - disable CGA,
3: disable CGA - enable MDA
2 Enable BOFF if clear, disable if set (should be set)
3 VGA Data Path is 16bit if set
4 If set the RAMDAC IOR/IOW cycle is 18 clocks long, if clear (the
default) it is only 9 clocks long
5 If set enables Local Bus Interface, if clear disables it
6 If set use Local Bus RAMDAC, if clear use external RAMDAC
7 If set use Local Bus BIOS, if clear use external BIOS
2DF1h (R/W): (WD90c24,26, 31 (via the '56), 33)
bit 0-1 Memory Read/Write Low Duration.
0: 2 clocks, 1: 3 clocks, 2: 4 clocks, 3: 5 clocks
2-3 Memory Read/Write High Duration.
0: 2 clocks, 1: 3 clocks, 2: 4 clocks, 3: 5 clocks
4-5 IO Read/Write High/Low Duration
0: 2 clocks, 1: 3 clocks, 2: 4 clocks, 3: 5 clocks
6 Enable Wait State. 1 if set, none if clear
2DF2h (R/W): High Address (WD90c24,26, 31 (via the '56), 33)
bit 0-7 High Address A24-31 decode compare
46E8h (R/W): Global Enable Register (AT only)
bit 0-2 BIOS ROM page select (8 pages of 4K each).
3 Adapter VGA enabled if set
4 If set the VGA is in Setup mode, where 102h and 46E8h
are the only ports responding.
Wake Up port at 102h responds only if this bit set.
Note: This register is also addressed at 56E8h, 66E8h and 76E8h.
Register only readable if 3d4h index 2Eh bit 7 set
For MicroChannel and motherboard systems 3C3hj is used instead
Bank Switching:
Bank switching happens by adding the bank register to bit 12-19
of the address, resulting in the window starting on a 4k boundary.
Two different bank registers can be used either as Read/Write
banks (WD90C1x) or as two different windows each 32k/64k big.
Memory:
$C000:$09 string BIOS date
$C000:$35 1 byte BIOS version
$C000:$7D 4 bytes $3ED414756 ('VGA=')
ID Paradise/WD Super VGA Chip set:
old:=rdinx($3CE,$F);
setinx($3CE,$F,$17); {Lock registers}
if not testinx2($3CE,9,$7F) then
begin
modinx($3CE,$F,$17,5); {Unlock again}
if testinx2($3CE,9,$7F) then
begin
old2:=rdinx(base,$29);
modinx(base,$29,$8F,$85); {Unlock WD90Cxx registers}
if not testinx(base,$2B) then 'Paradise PVGA1A'
else begin
wrinx($3C4,6,$48);
if not testinx2($3C4,7,$F0) then 'Western Digital WD90C00'
else if not testinx($3C4,$10) then
begin
if testinx2(base,$31,$68) then 'Western Digital WD90C22'
else if testinx2(base,$31,$90) then 'Western Digital WD90C20A'
else 'Western Digital WD90C20';
wrinx($3d4,$34,$A6);
if (rdinx($3d4,$32) and $20)<>0 then wrinx($3d4,$34,0);
end
else if testinx2($3C4,$14,$F) then
begin
SubVers:=(rdinx(base,$36) shl 8)+rdinx(base,$37);
case SubVers of
$3234:'Western Digital WD90C24'
$3236:'Western Digital WD90C26'
$3330:'Western Digital WD90C30'
$3331:'Western Digital WD90C31'
$3333:'Western Digital WD90C33'
else UNK(Paradise);'
end
else if not testinx2($3C4,$10,4) then 'Western Digital WD90C10'
else 'Western Digital WD90C11';
end;
wrinx($3d4,$29,old2);
end;
wrinx($3CE,$F,old);
Video Modes:
14h T 132 25 16 WD90c33
21h T 132 44 16 WD90c33
41h T 80 34 16
47h T 132 28 16
54h T 132 43 16 (7/8x9)
55h T 132 25 16 (7/8x16)
56h T 132 43 4 (7/8x9)
57h T 132 25 4 (7/8x16)
58h G 800 600 16 PL4
59h G 800 600 2 odd/even **** See note Not on newer boards?
5Ah G 1024 768 2 odd/even **** See note Not on newer boards?
5Bh G 1024 768 4 packed **** See note Not on newer boards?
5Ch G 800 600 256 P8 WD90C11/3x Only
5Dh G 1024 768 16 PL4
5Eh G 640 400 256 P8
5Fh G 640 480 256 P8
60h G 1024 768 256 P8 WD90c3x only
61h G 640 400 32k P15 WD90c31+ only
62h G 640 480 32k P15 WD90c3x only
63h G 800 600 32k P15 WD90c3x only
64h G 1280 1024 16 PL4 WD90c31+ only
66h T 80 50 16 (8x8)
67h T 80 43 16 (8x8)
68h G 320 200 32k P15 WD90c31 only
69h T 132 50 16 (8x8)
6Ah G 800 600 16 PL4
6Ch G 1280 960 16 PL4
6Eh G 640 480 16m P24 WD90c33
71h G 640 400 64k P16 WD90c33
72h G 640 480 16m P24 WD90c31 only (2048 bytes per line)
72h G 640 480 64k P16 WD90c33
73h G 800 600 64k P16 WD90c33
Mode 5Bh 1024x768 4 color.
2 bit per pixel packed mode.
Pixels start in bit 6-7.
Mode 59h 800x600 2 color and
Mode 5Ah 1024x768 2 color.
One bit per pixel odd/even mode
Pixels 0-7 are in plane 0, 8-15 in plane 1.
Bios extensions:
----------10007E-----------------------------
INT 10 - VIDEO - Paradise VGA, AT&T VDC800 - Set Special Mode
AX = 007Eh
BX = horizontal dimension of the desired mode
CX = vertical dimension of the desired mode
Both BX,CX in dots for graph modes, chars for alpha modes
DX = Number of colors desired (0000h for monochrome)
Return: BH = 7Eh if successful (Paradise VGA)
AL = 7Eh if successful (AT&T VDC800)
----------10007F-----------------------------
INT 10 - VIDEO - Paradise .... Extended Mode Set
AX = 007Fh
BH = 00h set VGA operation
BH = 01h set non-VGA operation
color modes (0,1,2,3,4,5,6) will set non-VGA CGA operation
monochrome mode 7 will set non-VGA MDA/Hercules operation
BH = 02h Query mode status
Return: BL = 00h if operating in VGA mode, 01h if non-VGA
mode
CH = total video RAM size in 64k byte units
CL = video RAM used by the current mode
BH = 03h Lock current mode. Allows current mode (VGA or non-VGA) to
survive re-boot.
BH = 04h Set non-VGA MDA/Hercules Mode
BH = 05h Set non-VGA CGA Mode
BH = 06h Set VGA Mono Mode
BH = 07h Set VGA Color Mode
BH = 09h..0Fh Write Paradise Register
BL = New value of PR register
BH = 19h..1Fh Read Paradise Register
Return: BL = Value of register
BH: (Read) BH: (Write) Register
19h 09h PR0A Port 3CEh index 09h
1Ah 0Ah PR0B Port 3CEh index 0Ah
1Bh 0Bh PR1 Port 3CEh index 0Bh
1Ch 0Ch PR2 Port 3CEh index 0Ch
1Dh 0Dh PR3 Port 3CEh index 0Dh
1Eh 0Eh PR4 Port 3CEh index 0Eh
1Fh --- PR5 Port 3CEh index 0Fh
BH = 20h Emulate EGA with Analog Monitor (WD90Cxx Chips Only)
BL=EGA Switches in Bit 0-3
BH = 29h..30h Read Paradise Register (WD90Cxx Chips Only)
Return: BL = Value of register
BH: Register:
29h PR10 Port 3d4h index 29h
2Ah PR11 Port 3d4h index 2Ah
2Bh PR12 Port 3d4h index 2Bh
2Ch PR13 Port 3d4h index 2Ch
2Dh PR14 Port 3d4h index 2Dh
2Eh PR15 Port 3d4h index 2Eh
2Fh PR16 Port 3d4h index 2Fh
30h PR17 Port 3d4h index 30h
BH = 60h
BH = 61h
BH = A5h
BH = A6h
Note: The functions 60h, 61h, A5h and A6h are supported by the 5/14/93 ROM for
the Dell 486D
Return: AL = 7Fh If successful (AT&T VDC600)
BH = 7Fh If valid call (Paradise/Western Digital)
----------106E00-----------------------------
INT 10 - Paradise VGA internal - Get ???
AX = 6E00h
Return: BX = 5744h ('WD') if supported
DH:AH:AL = last three ASCII digits of ROM serial number
CL = ???
CH = ???
----------106E04-----------------------------
INT 10 - Paradise VGA internal - Get Screen Size and ???
AX = 6E04h
Return: BX = screen width (columns)
CX = screen height (lines)
AH = ??? (05h or FFh)
AL = ??? (04h or video mode)
----------106E05-----------------------------
INT 10 - Paradise VGA internal - Set Mode
AX = 6E05h
BL = mode
Note: like AH=00h, AL=BL.
DIP Switch/jumper settings:
VGA Plus, VGA Plus 16, VGA Professional:
Switch 1 Monitor Type. ON: Multi frequency, OFF: Standard VGA
2 VGA Mode Switching Style. ON: PS/2 Style - All modes available on
all monitors, OFF: PC/AT Style - color on color, mono on mono
3 Not used - Set to OFF
4 (Not VGA Plus) 8bit vs 16bit AutoSense. ON: Auto sense 8/16bit
BIOS access, OFF: Force 8bit BIOS access
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -