Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

88 lines
2.2 KiB

  1. /*++
  2. Copyright (c) 1993 Weitek Corporation
  3. Module Name:
  4. p9000.h
  5. Abstract:
  6. This module contains the definitions specific to the Weitek P9000.
  7. Environment:
  8. Kernel mode
  9. Revision History may be found at the end of this file.
  10. --*/
  11. //
  12. // Offsets of the P9000 registers from the base memory address.
  13. //
  14. #define SYSCONFIG 0x4 // W8720 system configuration register
  15. #define SRCTL 0x0138L // Screen repaint timing register
  16. #define MEMCONF 0x0184L // Memory configuration regester
  17. #define WMIN 0x80220 // Clipping window minimum register
  18. #define WMAX 0x80224 // Clipping window maximum register
  19. #define FOREGROUND 0x80200 // Foreground color register
  20. #define METACORD 0x81218 // Meta-coordinate loading register
  21. #define RASTER 0x80218 // Raster Op register
  22. #define VRTC 0x011CL // Vertical scan counter
  23. //
  24. // Defines for P9000 specific drawing operations.
  25. //
  26. #define REC 0x100 // Or with METACORD when entering rectangles
  27. #define QUAD 0x80008 // Draw a quadrilateral
  28. #define FORE 0xFF00 // Foreground color only write mode
  29. //
  30. // Enumerate the various P9000 memory configuration values.
  31. //
  32. typedef enum
  33. {
  34. P90_MEM_CFG_1,
  35. P90_MEM_CFG_2,
  36. P90_MEM_CFG_3,
  37. P90_MEM_CFG_4,
  38. P90_MEM_CFG_5
  39. } P90_MEM_CFG;
  40. //
  41. // Define bits in the P9000 Screen Repaint Timing Control Reg (SRCTL)
  42. //
  43. #define VSYNC_INTERNAL 0x0100L
  44. #define HSYNC_INTERNAL 0x0080L
  45. #define COMPOSITE_SYNC 0x0040L
  46. #define VIDEO_NORMAL 0x0020L
  47. #define HBLNK_RELOAD 0x0010L
  48. #define DISP_BUFFER_1 0x0008L
  49. #define QSF_SELECT 0x0007L
  50. //
  51. // Masks for P9000 registers.
  52. //
  53. #define P9_COORD_MASK 0x1fff1fffL
  54. //
  55. // Macro used to wait for P9000 vertical retrace.
  56. //
  57. #if 0
  58. #define WAIT_FOR_RETRACE() \
  59. ulStrtScan = P9_RD_REG(P91_VRTC); \
  60. while ((ulCurScan = P9_RD_REG(P91_VRTC)) >= ulStrtScan) \
  61. { \
  62. ulStrtScan = ulCurScan; \
  63. }
  64. #endif
  65. #define WAIT_FOR_RETRACE() /* The above loses sync on p9100... */