Leaked source code of windows server 2003
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.
 
 
 
 
 
 

208 lines
6.9 KiB

;----------------------------Module-Header------------------------------;
; Module Name: GENCONST.BLT
;
; Constants for general use in BitBLT.
;
; Created: In Windows' distant past (c. 1983)
;
; Copyright (c) 1983 - 1987 Microsoft Corporation
;
; This file is a catchall for constants for use in BitBLT.
;
; This file is part of a set that makes up the Windows BitBLT function
; at driver-level.
;-----------------------------------------------------------------------;
; The following equates are for stuffing into the generated BLT.
; For full 16-bit values, the two bytes are reversed so that they
; come out correctly when stored in memory (i.e. the 8088 stores
; the LSB first).
I_ADD_AL_BYTE_I equ 004h ;ADD al,byte immediate
I_ADD_AX_WORD_I equ 005h ;ADD ax,word immediate
I_ADD_DI_WORD_I equ 0C781h ;ADD di,immediate
I_ADD_SI_WORD_I equ 0C681h ;ADD si,immediate
I_AND_AL_MEM equ 00622h ;AND al,[addr]
I_AND_AL_BYTE_I equ 024h ;AND al,byte immediate
I_CMP_AL_BYTE_I equ 03Ch ;CMP al,byte immediate
I_CMP_AX_WORD_I equ 03Dh ;CMP ax,word immediate
I_CMP_CX_2 equ 0F983h ;CMP cx,2
I_CS_OVERRIDE equ 02Eh ;CS:
I_DEC_SI_DEC_DI equ 04F4Eh ;DEC si
;DEC di
I_ES_OVERRIDE equ 026h ;ES:
I_FS_OVERRIDE equ 064h ;FS:
I_GS_OVERRIDE equ 065h ;GS:
I_INC_SI_INC_DI equ 04746h ;INC si
;INC di
I_JC_P5H equ 00372h ;JC $+5
I_JC_P0DH equ 00B72h ;JC $+0Dh
I_JC_P12H equ 01072h ;JC $+12h
I_JMP_NEAR equ 0E9h ;JMP near
I_JNC equ 073h ;JNC short
I_JNC_P12H equ 01073h ;JNC $+12h
I_JNS_P6 equ 00479H ;JNS $+6
I_JLE_P2 equ 0007EH ;JLE $+2 mslin
I_LEA_AX_SI_DISP16 equ 0848Dh ;lea ax,WordDisp[si]
I_LEA_AX_DI_DISP16 equ 0858Dh ;lea ax,WordDisp[di]
I_LODSB equ 0ACh ;LODSB
I_LOOP equ 0E2h ;LOOP
I_MOV_AH_AL equ 0E08Ah ;MOV ah,al
I_MOV_AH_DEST equ 0258Ah ;MOV ah,[di]
I_MOV_AH_SI_DISP16 equ 0A48Ah ;MOV ah,WordDisp[si]
I_MOV_AL_0FFH equ 0FFB0h ;MOV al,0FFH
I_MOV_AL_AH equ 0C48Ah ;MOV al,ah
I_MOV_AL_DL equ 0C28Ah ;MOV al,dl
I_MOV_AL_DH equ 0C68Ah ;MOV al,dh
I_MOV_AL_DEST equ 0058Ah ;MOV al,[di]
I_MOV_AL_MEM equ 0A0h ;MOV al,[addr]
I_MOV_AL_SI_DISP16 equ 0848Ah ;MOV al,WordDisp[si]
I_MOV_AX_DS equ 0D88Ch ;MOV ax,ds
I_MOV_AX_DI equ 0C78Bh ;MOV ax,di
I_MOV_AX_ES equ 0C08Ch ;MOV ax,es
I_MOV_AX_SI equ 0C68Bh ;MOV ax,si
I_MOV_AX_WORD_I equ 0B8h ;MOV ax,immediate
I_MOV_BL_AL equ 0D88Ah ;MOV bl,al
I_MOV_AL_BYTE_I equ 0B0h ;MOV al,immediate mslin
I_MOV_BL_BYTE_I equ 0B3h ;MOV bl,immediate
I_MOV_BP_WORD_I equ 0BDh ;MOV bp,immediate
I_MOV_BX_WORD_I equ 0BBh ;MOV bx,word immediate
I_MOV_CX_DS equ 0D98Ch ;MOV cx,ds
I_MOV_CX_WORD_I equ 0B9h ;MOV cx,immediate
I_MOV_DH_BX_DISP8 equ 0778Ah ;MOV dh,ByteDisp[si]
I_MOV_DI_AX equ 0F88Bh ;MOV di,ax
I_MOV_DL_AL equ 0D08Ah ;MOV dl,al
I_MOV_DS_AX equ 0D88Eh ;MOV ds,ax
I_MOV_DS_CX equ 0D98Eh ;MOV ds,cx
I_MOV_ES_AX equ 0C08Eh ;MOV es,ax
I_MOV_MEM_AL equ 0A2h ;MOV [addr],al
I_MOV_SI_AX equ 0F08Bh ;MOV si,ax
I_MOVSB equ 0A4h ;MOVSB
I_MOVSW equ 0A5h ;MOVSW
I_MOV_MEM_AX equ 0A2h ;MOV [addr],ax ;mslin
I_MOV_BL_BYTE_I equ 0B3h ;MOV bl, byte immediate
I_NOT_AL equ 0D0F6h ;NOT al
I_NOT_AX equ 0D0F7h ;NOT ax
I_OR_AL_AH equ 0C40Ah ;OR al,ah
I_OR_AH_AL equ 0E00Ah ;OR ah,al
I_POP_BX equ 05Bh ;POP bx
I_POP_SI equ 05Eh ;POP si
I_POP_DI_POP_CX equ 0595Fh ;POP di
;POP cx
I_PUSH_BX equ 053h ;PUSH bx
I_PUSH_SI equ 056h ;PUSH si
I_PUSH_CX_PUSH_DI equ 05751h ;PUSH cx
;PUSH di
I_REP equ 0F3h ;REP
I_RET_NEAR equ 0C3h ;RET near
I_RET_FAR equ 0CBh ;RET far
I_ROL_AL_1 equ 0C0D0h ;ROL al,1
I_ROR_AL_1 equ 0C8D0h ;ROR al,1
I_ROL_AL_N equ 0C0C0h ;ROL al,N -- next byte is N
I_ROR_AL_N equ 0C8C0h ;ROR al,N -- next byte is N
I_SHL_BL_1 equ 0E3D0h ;SHL bl,1
I_SS_OVERRIDE equ 036h ;SS:
I_STOSB equ 0AAh ;STOSB
I_STOSW equ 0ABh ;STOSW
I_XOR_AL_MEM equ 00632h ;XOR al,[addr]
I_XOR_AL_BYTE_I equ 034h ;XOR al,byte immediate
I_XOR_AX_WORD_I equ 035h ;XOR ax,word immediate
I_XOR_BH_BH equ 0FF32h ;XOR BH,BH
I_XOR_MEM_WORD_I equ 03681H ;XOR [addr],word immediate
;mslin added
I_MOV_DX_WORD_I equ 0BAh ;MOV dx,immediate
I_POP_DX equ 05Ah ;POP dx
I_MOV_DX_DS equ 0DA8Ch ;MOV dx,ds
I_MOV_AL_000H equ 000B0h ;MOV al,000H
page
; INCREASE is the flag used to show that the BLT operation will be
; increasing in Y (Y+).
;
; DECREASE is the flag used to show that the BLT operation will be
; decreasing in Y (Y-).
;
; STEPLEFT is the flag used to show that the BLT will be stepping
; left (i.e. start at the right hand corner of the source, stepping
; left, or X-).
;
; STEPRIGHT is the flag used to show that the BLT will be stepping
; right (i.e. start at the left hand corner of the source, stepping
; right, or X+).
INCREASE equ 1 ;Incrementing
DECREASE equ -1 ;Decrementing
STEPLEFT equ 0 ;Stepping to the left
STEPRIGHT equ 1 ;Stepping to the right
page
; gl_the_flags
;
; F0_GAG_CHOKE Set if the source and destination are of different
; color formats. When set, some form of color
; conversion will be required.
;
; Once you see what all is involved with color
; conversion, you'll understand why this flag is
; called this.
;
; F0_COLOR_PAT Set if color pattern fetch code will be used. If
; clear, then mono pattern fetch code will be used.
; Mono/color pattern fetch is always based on the
; destination being mono/color (it is the same).
;
; F0_PAT_PRESENT Set if a pattern is involved in the BLT.
;
; F0_SRC_PRESENT Set if a source is involved in the BLT.
;
; F0_SRC_IS_DEV Set if the source is the physical device. Clear if
; the source is a memory bitmap.
;
; F0_SRC_IS_COLOR Set if the source is color, clear if monochrome.
;
; F0_DEST_IS_DEV Set if the destination is the physical device.
; Clear if the destination is a memory bitmap.
;
; F0_DEST_IS_COLOR
; Set if the destination is color, clear if
; monochrome.
F0_GAG_CHOKE equ 10000000b ;Going mono <==> color
F0_COLOR_PAT equ 01000000b ;Use color pattern fetch code
F0_PAT_PRESENT equ 00100000b ;Pattern is involved in blt
F0_SRC_PRESENT equ 00010000b ;Source is involved in blt
F0_SRC_IS_DEV equ 00001000b ;Source is the device
F0_SRC_IS_COLOR equ 00000100b ;Source is color
F0_DEST_IS_DEV equ 00000010b ;Destination is the device
F0_DEST_IS_COLOR equ 00000001b ;Destination is color
;-----------------------------------------------------------------------;
; Definitions for fbFetch
;-----------------------------------------------------------------------;
FF_NO_LAST_FETCH equ 00000010b ;Final fetch might GP
FF_TWO_INIT_FETCHES equ 00000001b ;Two initial fetches needed
FF_ONE_INIT_FETCH equ 0 ;One initial fetche needed
FF_ONLY_1_DEST_BYTE equ 00000100b ;Only one destination byte
FF_ONLY_1_SRC_BYTE equ 00001000b ;Only one source byte
;-----------------------------------------------------------------------;