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.
 
 
 
 
 
 

315 lines
9.7 KiB

; Equates and Strucs.
;------------------------------------------------------------------------------
; D425 For OS2 compatibiltiy box, /L option status query 01/14/88 J.K.
; D493 New INIT request structure for error message 02/25/88 J.K.
; P4934 Change ANSI 2F function number to 1Ah 05/20/88 F.G.
;------------------------------------------------------------------------------
; DEVICE Header DS:[SI] -- to locate the next CON header
; NEXT device header ES:[DI]
HP EQU DS:[SI]
NHD EQU ES:[DI]
; CON data structure CS:[BX]
CONPTR EQU CS:[BX]
; STATES
BUF_DATA STRUC
DEV_HDRO DW -1 ; device driver header offset
DEV_HDRS DW -1
CON_STRAO DW -1 ; dos CON strategy offset
CON_STRAS DW -1
CON_INTRO DW -1 ; dos CON strategy offset
CON_INTRS DW -1
BUF_DATA ENDS
; INIT Structures and equates
IFNDEF TRUE
TRUE EQU -1
ENDIF
IFNDEF FALSE
FALSE EQU 0
ENDIF
BRKADR EQU 6Ch ; Break vector address
CR EQU 13 ; carriage return
BACKSP EQU 8 ; backspace
ESC_CHAR EQU 1BH
ASNMAX EQU 400 ; (increased) SIZE OF KEY ASSIGNMENT BUFFER
ROM_BIOS EQU 40h ; Segment of ROM_BIOS data area
EQUIP_FLAG EQU 10h ; equipment flag. (for LCD)
KBD_FLAG_3 EQU 96h ; offset of KBD_FLAG_3 in data area
NUM_ROWS EQU 84h ; offset of number of rows in data area
EXT16_FLAG EQU 00010000b ; mask for Extended INT16 bit
INIT_VID_MASK EQU 0FFCFh ; mask for equipment list
LCD_COLOR_MODE EQU 20h ; LCD as color
LCD_MONO_MODE EQU 30h ; LCD as MONOchrome
UNKNOWN_CMD EQU 8103H ; unknown command status byte
RC_EOL EQU -1 ; parser return code for EOL
RC_NO_ERROR EQU 0 ; parser return code for not in switch list
INVALID_PARM EQU 10 ; PARSE Invalid parameter message number
SSTRING EQU 3 ; PARSE Too many parameters message
FUNC_CALL EQU 1BH ; VGA functionality call
ALT_SELECT EQU 12H ; EGA alternate select call
EGA_INFO EQU 10H ; EGA return information subcall
ALT_PRT_SC EQU 20H ; select alternate print screen subcall
MONOCHROME EQU 1 ; monochrome attached to EGA
COLOR EQU 0 ; some color attached to EGA
PS2_MONO EQU 7 ; display adapter types...
PS2_COLOR EQU 8
MOD30_MONO EQU 0BH
MOD30_COLOR EQU 0CH
LCD_MODEL EQU 0F9H ; Convertible model byte value
GET_SYS_ID EQU 0C0H ; INT15H call for system identification
GET_STATUS EQU 43H ; read system status (Convertible)
MONO_ADDRESS EQU 0B000H ; base address for monochrome
COLOR_ADDRESS EQU 0B800H ; base address for CGA
UNOCCUPIED EQU -1 ; value in VIDEO_MODE_TABLE if space unused
LCD_ACTIVE EQU 00000001B ; LCD adapter is present
MONO_ACTIVE EQU 00000010B ; monochrome adapter is present
CGA_ACTIVE EQU 00000100B ; CGA adapter is present
MCGA_ACTIVE EQU 00001000B ; MCGA is present
E5151_ACTIVE EQU 00010000B ; EGA with monochrome is present
E5153_ACTIVE EQU 00100000B ; EGA with color display is present
E5154_ACTIVE EQU 01000000B ; EGA with enhanced color display is present
VGA_ACTIVE EQU 10000000B ; VGA is present
INT10_LOW EQU (4*10H) ; interrupt 10 vector location
INT10_HI EQU (4*10H)+2
INT2F_LOW EQU (4*2FH) ; interrupt 2F vector location
INT2F_HI EQU (4*2FH)+2
ONE EQU 1
THREE EQU 3
EIGHT EQU 8
NINE EQU 9
FOURTEEN EQU 14
REQ_CRSR_POS EQU 3 ; function call to return cursor position
MODE7 EQU 7
MODE13 EQU 13
MODE15 EQU 15
MODE19 EQU 19
; Request Header Structure (INIT)
INIT_REQ_HDR STRUC ; INIT Request header structure
DB 13 DUP(?) ; standard request header
NUM_UNITS DB ? ; number of units (N/A)
END_ADDRESS_O DW ? ; ending address of resident code
END_ADDRESS_S DW ?
ARG_PTR DD ? ; ptr. to remaining arguments
DRIVE_NUM DB ? ; drive number (N/A)
CONFIG_ERRMSG DW 0 ; Flag to control "Error in CONFIG.SYS.." msg.
INIT_REQ_HDR ENDS
; Information Block Structure
; (for functionality call)
INFO_BLOCK STRUC ; information block for functionality call
STATIC_ADDRESS DD ? ; address of static functionality table
DB 33 DUP(?) ; don't care
ACTIVE_DISPLAY DB ? ; active display code
ALT_DISPLAY DB ? ; alternate display code
DB 3 DUP(?) ; don't care
CURRENT_SCANS DB ? ; current number of scan lines
DB 2 DUP(?) ; don't care
MISC_INFO DB ? ; miscellaneous state information
DB 18 DUP(?) ; don't care
INFO_BLOCK ENDS
; Video table entry structure
MODE_TABLE STRUC
V_MODE DB -1 ; video mode
D_MODE DB -1 ; display mode
RESERVED_BYTE DB 0 ; reserved
COLORS DW -1 ; colors
SCR_WIDTH DW -1 ; screen width (pels)
SCR_LENGTH DW -1 ; screen length (pels)
SCR_COLS DW -1 ; number columns
SCR_ROWS DW -1 ; number rows
MODE_TABLE ENDS
; Structure of Static Block
; (for functionality call
STATIC_BLOCK STRUC ; format of static functionality table
DB 7 DUP(?) ; don't care
SCAN_TEXT DB ? ; available scan lines in text modes
STATIC_BLOCK ENDS
; Structure of System ID call return block
SYS_ID STRUC ; format of return system config data
DW ? ; don't care
MODEL_BYTE DB ? ; model byte
SYS_ID ENDS
; INT2f Strucs and Equates
MULT_ANSI EQU 1Ah ; ANSI multiplex number
INSTALL_CHECK EQU 0 ; install check for ANSI
IOCTL_2F EQU 1 ; 2F interface to IOCTL
DA_INFO_2F EQU 2h ; J.K. Information passing to ANSI.
; Subfunction code for IOCTL_2F
GET_SUBFUNC EQU 7FH ; WGR Same structure as GET_IOCTL(ANSI)
;Info Struture for DA_INFO_2F. (DS:DX point to this packet)
;J.K. Note: For DOS 4.00, DA_INFO_PACKET is used by DISPLAY.SYS to signal ANSI.SYS that
;DISPLAY.SYS is calling/finishing INT 10h SET MODE call. ANSI.SYS needs this
;infomration since it also hooks INT 10h vector.
;For this DA_SETMODE_FLAG purpose, DA_INFO_LEVEL and DA_INFO_DIRECTION should always be
;set to 0. This can be extended for another information passing scheme between
;DISPLAY.SYS and ANSI.SYS in the future version.
;For DA_SETMODE_FLAG, DISPLAY.SYS should be extremely careful that when it calls
;with DA_SETMODE_FLAG =1, then it should calls with DA_SETMODE_FLAG=0
;when it finished INT 10h function call. Otherwise, the system goes .....
;D425. At the request of OS2 compatibility box, when the user ask to ANSI
; with DA_INFO_LEVEL=1, then ANSI sets DA_OPTION_L_STATE based on /L option
; status.
DA_INFO_PACKET STRUC
DA_INFO_LEVEL DB 0 ; 0=used for SET_MODE_FLAG 1=for L_STATE
DA_SETMODE_FLAG DB 0 ; 1: DISPLAY.SYS is calling INT 10h call, SET MODE. 0=finished.
DA_L_STATE DB 0 ; 1 = /L active, 0 = /L inactive
DA_INFO_PACKET ENDS
; GENERIC IOCTL Strucs and Equates
DISPLAY_TYPE EQU 3 ; MAJ_FUNC type for display
GET_FUNC EQU 7FH ; MIN_FUNC for get subfunction
SET_FUNC EQU 5FH ; MIN_FUNC for set subfunction
REQ_VID_MODE EQU 0FH ; request video mode INT10h function call
DONE EQU 0100H ; set done bit for IOCTL status
CMD_ERROR EQU 8000H ; set error bit for IOCTL status
INVALID_FUNC EQU 1 ; invalid function
NOT_SUPPORTED EQU 10 ; return code non-supported ioctl function
NOT_AVAILABLE EQU 12 ; return code for font not available
TEXT_MODE EQU 1 ; text mode = 1 in request packet
GRAPHICS_MODE EQU 2 ; graphics mode = 2
DEFAULT_LENGTH EQU 25 ; normal screen length
OFF EQU 0000H
ON EQU 0001H
INT_BIT EQU 00100000b ; mask for int. bit from functionality call
FOUND EQU 1 ; flag value for FOUND
NOT_FOUND EQU 0 ; flag value for not FOUND
SET_MODE EQU 0 ; set mode INT10H function number
DISPLAY_CHECK EQU 0AD00H ; install check for DISPLAY.SYS
CHECK_ACTIVE EQU 0AD02H ; active code page check for DISPLAY.SY
INSTALLED EQU 0FFH ; present in AL if installed
LOAD_8X8 EQU 1112H ; register value for 8x8 ROM load
SET_BLOCK_0 EQU 1103H ; activate block = 0.
CHECK_FOR_FONT EQU 0AD10H ; check for 8x8 RAM font - DISPLAY.SYS
SELECT_SCAN EQU 30H ; subfunction to set scan lines (VGA)
SET_INTENSIFY EQU 0 ; value to enable intensify.
SET_BLINK EQU 1 ; value to enable blink.
BLINK_TOGGLE EQU 1003H ; INT10 call to toggle int/blink bit.
CURSOR_FLAG EQU 87H ; cursor flag byte in ROM_BIOS
SET_CURSOR_CALL EQU 1 ; INT10 function call to set cursor typ
VIDEO_MASK EQU 7FH ; turn of clear buffer bit of mode value
MULT_ANSI EQU 1Ah ; ANSI multiplex number ;AC003
INSTALL_CHECK EQU 0 ; install check for ANSI
IOCTL_2F EQU 1 ; 2F interface to IOCTL
NOT_CY EQU 0FFFEH ; turn carry bit off
CY EQU 1 ; turn carry bit off
INVALID_FLAGS EQU 0FFFEH ; test for invalid flags in control word
TURN_OFF EQU 0FEH ; values to turn off and on cursor..
TURN_ON EQU NOT TURN_OFF ; emulation
SUB_SIZE EQU 11 ; sublist size
LEFT_ASCIIZ EQU 00010000B ; left-aligned asciiz string
UNLIMITED EQU 0 ; unlimited message size.
CMDLEN = 0 ;LENGTH OF THIS COMMAND
UNIT = 1 ;SUB UNIT SPECIFIER
CMD = 2 ;COMMAND CODE
STATUS = 3 ;STATUS
MEDIA = 13 ;MEDIA DESCRIPTOR
TRANS = 14 ;TRANSFER ADDRESS
COUNT = 18 ;COUNT OF BLOCKS OR CHARACTERS
START = 20 ;FIRST BLOCK TO TRANSFER
; REQUEST PACKET STRUCTURE (Generic IOCTL)
REQ_PCKT STRUC
INFO_LEVEL DB ? ; information level (should be 0)
DB ? ; reserved
DATA_LENGTH DW ? ; length of remaining data
RP_FLAGS DW ? ; control flags
RP_MODE DB ? ; display mode
RESERVED2 DB ? ; reserved
RP_COLORS DW ? ; # of colors
RP_WIDTH DW ? ; screen width
RP_LENGTH DW ? ; screen length
RP_COLS DW ? ; columns
RP_ROWS DW ? ; rows
REQ_PCKT ENDS
; Scan Lines available structure
SCAN_LINE_STR STRUC
NUM_LINES DW ? ; number of scan lines
REP_1BH DB ? ; representation in 1Bh call
REP_12H DB ? ; representation in 12h call
SCAN_LINE_STR ENDS
; SUBLIST struc
SUB_STRUC STRUC
DB 2 DUP(?)
SUB_PTR_O DW ?
SUB_PTR_S DW ?
SUB_STRUC ENDS
; RESULT BUFFER struc
RESULT_STRUC STRUC
RESULT_TYPE DB ?
DB ?
RES_SYN_PTR DW ?
RES_PTR DD ?
RESULT_STRUC ENDS
BREAK MACRO subtitle
SUBTTL subtitle
PAGE ,132
ENDM
AsmVars Macro varlist
IRP var,<varlist>
AsmVar var
ENDM
ENDM
AsmVar Macro var
IFNDEF var
var = FALSE
ENDIF
ENDM