108 lines
4.7 KiB
PHP
108 lines
4.7 KiB
PHP
;---------------------------Module-Header------------------------------;
|
||
; Module Name: display.inc
|
||
;
|
||
; Copyright (c) 1992 Microsoft Corporation
|
||
;-----------------------------------------------------------------------;
|
||
|
||
NUMBER_PLANES equ 4 ;4 plane format
|
||
|
||
|
||
|
||
; The color structure is how this driver stores its physical
|
||
; colors in memory. The color consists of four bytes (dword),
|
||
; one byte for each of three planes of color, and a fourth
|
||
; byte which is a combination of one bit from each plane, plus
|
||
; other special information.
|
||
;
|
||
; C3Bit will have to be expanded as needed for the fourth plane.
|
||
|
||
|
||
phys_color struc
|
||
pcol_C0 db ? ;Plane C0
|
||
pcol_C1 db ? ;Plane C1
|
||
pcol_C2 db ? ;Plane C2
|
||
pcol_C3 db ? ;Plane C3/Monochrome/Special information
|
||
phys_color ends
|
||
|
||
|
||
; Definitions for the pcol_C3 byte of the physical color
|
||
;
|
||
; Some of these definitions have limitations as to when they
|
||
; are valid. They are as follows:
|
||
;
|
||
; C0_BIT color device, phys color, solid brushes if SOLID_COLOR
|
||
; C1_BIT color device, phys color, solid brushes if SOLID_COLOR
|
||
; C2_BIT color device, phys color, solid brushes if SOLID_COLOR
|
||
; C3_BIT color device, phys color, solid brushes if SOLID_COLOR
|
||
; MONO_BIT mono device, phys color
|
||
; ONES_OR_ZEROS color device, phys color, solid brushes if SOLID_COLOR
|
||
; GREY_SCALE color device, dithered solid and hatched brushes
|
||
; SOLID_BRUSH color device, solid brush qualifier
|
||
;
|
||
; There may be brushes where the accelerators could have been set,
|
||
; but wasn't. That's life.
|
||
|
||
|
||
SPECIAL equ pcol_C3 ;Special information is here
|
||
C0_BIT equ 00000001b ; C0 color
|
||
C1_BIT equ 00000010b ; C1 color
|
||
C2_BIT equ 00000100b ; C2 color
|
||
C3_BIT equ 00001000b ; C3 color
|
||
MONO_BIT equ 00010000b ; Monochrome bit
|
||
ONES_OR_ZEROS equ 00100000b ; Color is really all 1's or all 0's
|
||
GREY_SCALE equ 01000000b ; Indicates a real grey scale brush
|
||
SOLID_BRUSH equ 10000000b ; Indicates a solid color brush
|
||
|
||
.errnz (size phys_color) - 4 ;Must be a double word
|
||
|
||
|
||
|
||
; The brush structure is OEM dependant, and can contain whatever
|
||
; information that is needed to realize the given brush.
|
||
;
|
||
; For this implementation, the brush will consist of an 8x8
|
||
; pattern for each of the planes, and another 8x8 pattern
|
||
; for monochrome devices and for monochrome to color conversion
|
||
; (for something like a hatched brush, this would contain the
|
||
; monochrome mask used to create the brush).
|
||
;
|
||
; The style will also be stored in the brush and is used to
|
||
; catch hollow brushes and exit early.
|
||
;
|
||
; A flag specific to the EGA is also stored in the brush. This
|
||
; flag indicates that the brush is a solid brush and that the
|
||
; color for each plane is a solid color (all 1's or all 0's).
|
||
; Patterns which are solid in each plane can be handle as a
|
||
; special case in Bitblt when the raster op is P or Pn.
|
||
|
||
|
||
SIZE_PATTERN equ 8 ;Size of an 8 by 8 pattern in bytes
|
||
|
||
|
||
oem_brush_def struc
|
||
oem_brush_C0 db SIZE_PATTERN dup (?) ;C0 plane
|
||
oem_brush_C1 db SIZE_PATTERN dup (?) ;C1 plane
|
||
oem_brush_C2 db SIZE_PATTERN dup (?) ;C2 plane
|
||
oem_brush_C3 db SIZE_PATTERN dup (?) ;C3 plane
|
||
oem_brush_mono db 32 dup (?) ;Mono portion
|
||
oem_brush_style dw 0 ;Style of the brush
|
||
oem_brush_accel db 0 ;Accellerator for solids
|
||
oem_brush_fg db 0 ;current foreground (text) color
|
||
oem_brush_bg db 0 ;current background color
|
||
oem_brush_rwidth db 0 ;pre expanded width
|
||
oem_brush_yshft db 0 ;
|
||
oem_brush_spar2 db 0 ;just a fill byte for now
|
||
oem_brush_width dd 0 ;Width of brush
|
||
oem_brush_height dd 0 ;Height of brush
|
||
oem_brush_pmono dd 0 ;pointer to mono pattern
|
||
oem_brush_def ends ; (same as "Special" above)
|
||
|
||
; Brush styles defined by GDI
|
||
|
||
BS_SOLID equ 0
|
||
BS_HOLLOW equ 1
|
||
BS_HATCHED equ 2
|
||
BS_PATTERN equ 3
|
||
BS_MONO_PATTERN equ 4
|
||
BS_COLOR_PATTERN equ 5
|
||
|