⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 paradise.txt

📁 比较详尽的VGA端口寄存器的文档
💻 TXT
📖 第 1 页 / 共 5 页
字号:
          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 + -