2025-04-27 07:49:33 -04:00

108 lines
4.7 KiB
PHP
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

;---------------------------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