home *** CD-ROM | disk | FTP | other *** search
/ HomeWare 14 / HOMEWARE14.bin / prog / pcgpe10.arj / GENOA.TXT < prev    next >
Text File  |  1994-05-10  |  6KB  |  135 lines

  1.  
  2.                   ┌─────────────────────────────────┐
  3.                   │ Programming the Genoa SVGA Chip │
  4.                   └─────────────────────────────────┘
  5.  
  6.                  Written for the PC-GPE by Mark Feldman
  7.             e-mail address : u914097@student.canberra.edu.au
  8.                              myndale@cairo.anu.edu.au
  9.  
  10.                   Please read the file SVGINTRO.TXT
  11.               (Graphics/SVGA/Intro PC-GPE menu option)
  12.  
  13.              ┌───────────────────────────────────────────┐
  14.              │      THIS FILE MAY NOT BE DISTRIBUTED     │
  15.              │ SEPARATE TO THE ENTIRE PC-GPE COLLECTION. │
  16.              └───────────────────────────────────────────┘
  17.  
  18.  
  19. ┌────────────┬───────────────────────────────────────────────────────────────
  20. │ Disclaimer │
  21. └────────────┘
  22.  
  23. I assume no responsibility whatsoever for any effect that this file, the
  24. information contained therein or the use thereof has on you, your sanity,
  25. computer, spouse, children, pets or anything else related to you or your
  26. existance. No warranty is provided nor implied with this information.
  27.  
  28. ┌──────────────┬─────────────────────────────────────────────────────────────
  29. │ Introduction │
  30. └──────────────┘
  31.  
  32. Genoa has produced 2 SVGA cards. The earlier Genoa cards were based on the
  33. Tseng ET3000 chip, the more recents cards are based on the Genoa chip. This
  34. file will deal only with the cards based on the Genoa chip (the GVGA).
  35.  
  36. ┌───────────────────────────┬────────────────────────────────────────────────
  37. │ The Extended Register Set │
  38. └───────────────────────────┘
  39.  
  40. The Genoa uses the same ports as the VGA sequencer register set to access
  41. most of it's extended registers, ie the Index Register port for the Genoa
  42. is 3C4h and Data port is 3C5h.
  43.  
  44. ┌─────────────────────────────────┬──────────────────────────────────────────
  45. │ Identifying the Genoa SVGA Card │
  46. └─────────────────────────────────┘
  47.  
  48. To identify if a Genoa SVGA is present read the byte at address C000:0000.
  49. Let's call this byte SIG_OFFSET. Next read the four bytes at
  50. C000:SIG_OFFSET. These four bytes should have the following values :
  51.  
  52.                 ┌─────────────────────────────────────┐
  53.                 │  Memory Address              Value  │
  54.                 ├─────────────────────────────────────┤
  55.                 │  C000:SIG_OFFSET              77h   │
  56.                 │  C000:SIG_OFFSET + 1          xx    │
  57.                 │  C000:SIG_OFFSET + 2          66h   │
  58.                 │  C000:SIG_OFFSET + 3          99h   │
  59.                 └─────────────────────────────────────┘
  60.  
  61. ┌─────────────────────────────────────────┬──────────────────────────────────
  62. │ Identifying which Genoa Card is Present │
  63. └─────────────────────────────────────────┘
  64.  
  65. The value of the byte at C000:SIG_OFFSET + 1 is the chip identify code. The
  66. values for each of the Genoa cards is as follows
  67.  
  68.               ┌────────────────────────────────────────┐
  69.               │ xx       Card             Chip         │
  70.               ├────────────────────────────────────────┤
  71.               │ 33h      5100/5200        Tseng ET3000 │
  72.               │ 55h      5300/5400        Tseng ET3000 │
  73.               │ 22h      6100             Genoa GVGA   │
  74.               │ 00h      6200/6300        Genoa GVGA   │
  75.               │ 11h      6400/6600        Genoa GVGA   │
  76.               └────────────────────────────────────────┘
  77.  
  78. There is no method for determining the card revision number.
  79.  
  80. ┌──────────────────────────────┬─────────────────────────────────────────────
  81. │ Genoa Graphics Display Modes │
  82. └──────────────────────────────┘
  83.  
  84. All Genoa cards support the following graphics modes :
  85.  
  86.                   ┌───────────────────────────────────┐
  87.                   │ Mode     Resolution       Colors  │
  88.                   ├───────────────────────────────────┤
  89.                   │ 59h      720x512          16      │
  90.                   │ 5Bh      640x350          256     │
  91.                   │ 5Ch      640x480          256     │
  92.                   │ 5Dh      720x512          256     │
  93.                   │ 5Eh      800x600          256     │
  94.                   │ 5Fh      1024x768         16      │
  95.                   │ 6Ah      800x600          16      │
  96.                   │ 6Ch      800x600          256     │
  97.                   │ 73h      640x480          16      │
  98.                   │ 79h      800x600          16      │
  99.                   │ 7Ch      512x512          16      │
  100.                   │ 7Dh      512x512          256     │
  101.                   │ 7Eh      640x400          256     │
  102.                   │ 7Fh      1024x768         4       │
  103.                   └───────────────────────────────────┘
  104.  
  105.  
  106. ┌──────────────────────┬─────────────────────────────────────────────────────
  107. │ Genoa Display Memory │
  108. └──────────────────────┘
  109.  
  110. Two banks can be mapped to the segment A000:0000-FFFFh, one for
  111. reading and one for writing. The banks can be selected by writing to
  112. the Memory Segment Register :
  113.  
  114.           Index : 06h at port 3C4h
  115.           Read/Write at port 3C5h
  116.           ┌───┬───┬───┬───┬───┬───┬───┬───┐
  117.           │ 7 │ 6 │ 5 │ 4 │ 3 │ 2 │ 1 │ 0 │
  118.           └───┴───┴───┴───┴───┴───┴───┴───┘
  119.           MEM ──┘   └───┬───┘   └───┬───┘
  120.                       Write        Read
  121.                       Bank         Bank
  122.  
  123. The following code can be used to set the write bank:
  124.  
  125. Port[$3C4] := $06;
  126. Port[$3C5] := (Port[$3C5] and $C7) or (write_bank_number shl 3);
  127.  
  128. The following code can be used to set the read bank:
  129.  
  130. Port[$3C4] := $06;
  131. Port[$3C5] := (Port[$3C5] and $F8) or read_bank_number;
  132.  
  133. There are 8 banks (numbered 0 -7). Each bank is 64K long, has a 64K
  134. granularity and is mapped to host memory A000:0000-FFFFh.
  135.