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

75 lines
2.8 KiB
PHP

page ,132
;-----------------------------Module-Header-----------------------------;
; Module Name: POINTER.INC
;
; This file contains definitions relating to the pointer shape.
;
; Copyright (c) 1992 Microsoft Corporation
;
; Exported Functions: none
;
; Public Functions: none
;
; Public Data: PTR_ROUND_RIGHT
; PTR_ROUND_LEFT
; General Description:
;
; Constants are defined for the pointer drawing routine describing
; the size of the poinetr shape. Some of these constants are also
; required for memory allocation in EGA/VGA VRAM.
;
; Restrictions:
;
;-----------------------------------------------------------------------;
public PTR_ROUND_RIGHT ;Pointer exclusion needs these
public PTR_ROUND_LEFT
public PTR_WIDTH_BITS
public PTR_HEIGHT
;-----------------------------------------------------------------------;
; The pointer parameters are the size of the pointer as received from
; DeviceSetCursor.
;-----------------------------------------------------------------------;
PTR_HEIGHT equ 32 ;Height of pointer in scanlines
PTR_WIDTH equ 4 ;Width in bytes of pointer
PTR_WIDTH_BITS equ PTR_WIDTH*8 ;Width in bits of pointer
;-----------------------------------------------------------------------;
; The work width/height is the size of a pointer as manipulated by
; the pointer drawing code.
;-----------------------------------------------------------------------;
WORK_WIDTH equ PTR_WIDTH+1 ;Width of mask, work area
uWORK_HEIGHT equ PTR_HEIGHT+0 ;Height of mask, work area
MASK_LENGTH equ WORK_WIDTH*WORK_HEIGHT ;#bytes in mask, work area
CLR_MASK_LENGTH equ WORK_WIDTH*WORK_HEIGHT*BITS_PEL ;#bytes in color mask
.errnz BITS_PEL-4
;-----------------------------------------------------------------------;
; The save area parameters control the size of the buffer used for
; saveing the bits underneath the pointer image. It should be a
; power of two to allow for easy wrap calculations.
;-----------------------------------------------------------------------;
SAVE_BUFFER_WIDTH equ 8 ;Width of the save area
SAVE_BUFFER_HEIGHT equ 32 ;Height of the save area
.errnz PTR_WIDTH GT SAVE_BUFFER_WIDTH
.errnz PTR_HEIGHT GT SAVE_BUFFER_HEIGHT
;-----------------------------------------------------------------------;
; The following values allow us to set rounding for cursor exclusion.
; These values are applied as an AND mask (for rounding left) and as
; an OR mask (for rounding right).
;-----------------------------------------------------------------------;
ROUNDING_SIZE equ 8 ;Round to byte boundaries
.errnz ROUNDING_SIZE and 111b ;Must be at least byte boundary
PTR_ROUND_RIGHT equ ROUNDING_SIZE-1
PTR_ROUND_LEFT equ -ROUNDING_SIZE