841 lines
23 KiB
PHP
841 lines
23 KiB
PHP
|
ifndef _MINIVDD_H_
|
||
|
_MINIVDD_H_ EQU 1
|
||
|
ifndef Not_VxD
|
||
|
ifdef MINIVDD
|
||
|
ifdef NEC_98
|
||
|
Begin_Service_Table VDD
|
||
|
VDD_Service VDD_Get_Version
|
||
|
VDD_Service VDD_PIF_State
|
||
|
VDD_Service VDD_Get_GrabRtn
|
||
|
VDD_Service VDD_Hide_Cursor
|
||
|
VDD_Service VDD_Set_VMType
|
||
|
VDD_Service VDD_Get_ModTime
|
||
|
VDD_Service VDD_Set_HCurTrk
|
||
|
VDD_Service VDD_Msg_ClrScrn
|
||
|
VDD_Service VDD_Msg_ForColor
|
||
|
VDD_Service VDD_Msg_BakColor
|
||
|
VDD_Service VDD_Msg_TextOut
|
||
|
VDD_Service VDD_Msg_SetCursPos
|
||
|
VDD_Service VDD_Query_Access
|
||
|
VDD_Service VDD_Check_Update_Soon
|
||
|
VDD_Service VDD_Get_Mini_Dispatch_Table
|
||
|
VDD_Service VDD_Register_Virtual_Port
|
||
|
VDD_Service VDD_Get_VM_Info
|
||
|
VDD_Service VDD_Get_Special_VM_IDs
|
||
|
VDD_Service VDD_Register_Extra_Screen_Selector
|
||
|
VDD_Service VDD_Takeover_VGA_Port
|
||
|
VDD_Service VDD_Get_DISPLAYINFO
|
||
|
VDD_Service VDD_Do_Physical_IO
|
||
|
VDD_Service VDD_Register_Mini_VDD
|
||
|
VDD_Service VDD_Install_IO_Handler
|
||
|
VDD_Service VDD_Install_Mult_IO_Handlers
|
||
|
VDD_Service VDD_Enable_Local_Trapping
|
||
|
VDD_Service VDD_Disable_Local_Trapping
|
||
|
VDD_Service VDD_Trap_Suspend
|
||
|
VDD_Service Test_Vid_VM_Handle
|
||
|
VDD_Service VDD_Set_Core_Graphics
|
||
|
VDD_Service VDD_Load_AccBIOS
|
||
|
VDD_Service VDD_Map_AccBIOS
|
||
|
VDD_Service VDD_Map_VRAM
|
||
|
VDD_Service VDD_EnableDevice
|
||
|
End_Service_Table VDD
|
||
|
else
|
||
|
Begin_Service_Table VDD
|
||
|
VDD_Service VDD_Get_Version
|
||
|
VDD_Service VDD_PIF_State
|
||
|
VDD_Service VDD_Get_GrabRtn
|
||
|
VDD_Service VDD_Hide_Cursor
|
||
|
VDD_Service VDD_Set_VMType
|
||
|
VDD_Service VDD_Get_ModTime
|
||
|
VDD_Service VDD_Set_HCurTrk
|
||
|
VDD_Service VDD_Msg_ClrScrn
|
||
|
VDD_Service VDD_Msg_ForColor
|
||
|
VDD_Service VDD_Msg_BakColor
|
||
|
VDD_Service VDD_Msg_TextOut
|
||
|
VDD_Service VDD_Msg_SetCursPos
|
||
|
VDD_Service VDD_Query_Access
|
||
|
VDD_Service VDD_Check_Update_Soon
|
||
|
VDD_Service VDD_Get_Mini_Dispatch_Table
|
||
|
VDD_Service VDD_Register_Virtual_Port
|
||
|
VDD_Service VDD_Get_VM_Info
|
||
|
VDD_Service VDD_Get_Special_VM_IDs
|
||
|
VDD_Service VDD_Register_Extra_Screen_Selector
|
||
|
VDD_Service VDD_Takeover_VGA_Port
|
||
|
VDD_Service VDD_Get_DISPLAYINFO
|
||
|
VDD_Service VDD_Do_Physical_IO
|
||
|
VDD_Service VDD_Set_Sleep_Flag_Addr
|
||
|
VDD_Service VDD_EnableDevice
|
||
|
End_Service_Table VDD
|
||
|
endif
|
||
|
endif
|
||
|
VDD_VerNum EQU 0400H
|
||
|
VDD_MinVerNum EQU 030AH
|
||
|
ifdef NEC_98
|
||
|
bVidTextMd EQU 4
|
||
|
fVidTextMd EQU (1 SHL 4)
|
||
|
bVidNTModeFF EQU 0
|
||
|
fVidNTModeFF EQU (1 SHL 0)
|
||
|
bVidNTModeFFC16 EQU 1
|
||
|
fVidNTModeFFC16 EQU (1 SHL 1)
|
||
|
bVidNTDispRW EQU 2
|
||
|
fVidNTDispRW EQU (1 SHL 2)
|
||
|
bVidNTPal EQU 3
|
||
|
fVidNTPal EQU (1 SHL 3)
|
||
|
bVidNTGDC EQU 5
|
||
|
fVidNTGDC EQU (1 SHL 5)
|
||
|
bVidNTGDCTON EQU 6
|
||
|
fVidNTGDCTON EQU (1 SHL 6)
|
||
|
bVidNTGDCGON EQU 7
|
||
|
fVidNTGDCGON EQU (1 SHL 7)
|
||
|
bVidNTFont EQU 8
|
||
|
fVidNTFont EQU (1 SHL 8)
|
||
|
bVidCRTC EQU 9
|
||
|
fVidCRTC EQU (1 SHL 9)
|
||
|
bVidDispDataXfer EQU 10
|
||
|
fVidDispDataXfer EQU (1 SHL 10)
|
||
|
bVidXFERPlane0 EQU 11
|
||
|
fVidXFERPlane0 EQU (1 SHL 11)
|
||
|
bVidXFERPlane1 EQU 12
|
||
|
fVidXFERPlane1 EQU (1 SHL 12)
|
||
|
bVidXFERPlane2 EQU 13
|
||
|
fVidXFERPlane2 EQU (1 SHL 13)
|
||
|
bVidXFERPlane3 EQU 14
|
||
|
fVidXFERPlane3 EQU (1 SHL 14)
|
||
|
mVidXFERPlane EQU (fVidXFERPlane0+fVidXFERPlane1+fVidXFERPlane2+fVidXFERPlane3)
|
||
|
mVidNTH98 EQU (fVidNTModeFF+fVidNTModeFFC16+fVidNTDispRW+fVidNTPal+fVidNTGDC+fVidNTGDCTON+fVidNTGDCGON)
|
||
|
else
|
||
|
fVidTxtEmulate EQU 0001H
|
||
|
fVidNoTrpTxt EQU 0002H
|
||
|
fVidNoTrpLRGrfx EQU 0004H
|
||
|
fVidNoTrpHRGrfx EQU 0008H
|
||
|
fVidTextMd EQU 0010H
|
||
|
fVidLowRsGrfxMd EQU 0020H
|
||
|
fVidHghRsGrfxMd EQU 0040H
|
||
|
fVidRetainAllo EQU 0080H
|
||
|
endif
|
||
|
ifdef NEC_98
|
||
|
REGISTER_DISPLAY_DRIVER EQU 0
|
||
|
PRE_HIRES_TO_VGA EQU 1
|
||
|
SAVE_REGISTERS EQU 2
|
||
|
RESTORE_REGISTERS EQU 3
|
||
|
ENABLE_TRAPS EQU 4
|
||
|
DISABLE_TRAPS EQU 5
|
||
|
DISPLAY_DRIVER_DISABLING EQU 6
|
||
|
ENABLE_ACCELERATER EQU 7
|
||
|
DISABLE_ACCELERATER EQU 8
|
||
|
CHECK_UPDATE EQU 9
|
||
|
CHECK_WINDOWED EQU 10
|
||
|
ACC_VBE_PM EQU 11
|
||
|
ACC_VBE_DDC EQU 12
|
||
|
ACC_INT_10 EQU 13
|
||
|
ACC_GET_CAPABILITIES EQU 14
|
||
|
ACC_GET_EXT_MODE_INFO EQU 15
|
||
|
ACC_GET_FLAT_SELECTOR EQU 16
|
||
|
ACC_ENABLE_BIOS EQU 17
|
||
|
ACC_DISABLE_BIOS EQU 18
|
||
|
ACC_SET_PALETTE EQU 19
|
||
|
ACC_GET_PALETTE EQU 20
|
||
|
ACC_SET_CURSOR EQU 21
|
||
|
ACC_SHOW_CURSOR EQU 22
|
||
|
ACC_HIDE_CURSOR EQU 23
|
||
|
ACC_SET_CURSOR_POS EQU 24
|
||
|
ACC_GET_CURSOR_POS EQU 25
|
||
|
CM_POWERSTATE_HIBERNATE EQU 00000010H
|
||
|
CM_POWERSTATE_VDD_VALID EQU <(CM_POWERSTATE_BITS OR CM_POWERSTATE_HIBERNATE)>
|
||
|
NBR_MINI_VDD_FUNCTIONS_40 EQU 26
|
||
|
GET_NUM_UNITS EQU 26
|
||
|
SET_ADAPTER_POWER_STATE EQU 27
|
||
|
GET_ADAPTER_POWER_STATE_CAPS EQU 28
|
||
|
SET_MONITOR_POWER_STATE EQU 29
|
||
|
GET_MONITOR_POWER_STATE_CAPS EQU 30
|
||
|
GET_MONITOR_INFO EQU 31
|
||
|
I2C_OPEN EQU 32
|
||
|
I2C_ACCESS EQU 33
|
||
|
GPIO_OPEN EQU 34
|
||
|
GPIO_ACCESS EQU 35
|
||
|
COPYPROTECTION_ACCESS EQU 36
|
||
|
NBR_MINI_VDD_FUNCTIONS_41 EQU 37
|
||
|
ifdef MAINVDD
|
||
|
NBR_MINI_VDD_FUNCTIONS EQU NBR_MINI_VDD_FUNCTIONS_41
|
||
|
else
|
||
|
NBR_MINI_VDD_FUNCTIONS EQU NBR_MINI_VDD_FUNCTIONS_40
|
||
|
endif
|
||
|
else
|
||
|
REGISTER_DISPLAY_DRIVER EQU 0
|
||
|
GET_VDD_BANK EQU 1
|
||
|
SET_VDD_BANK EQU 2
|
||
|
RESET_BANK EQU 3
|
||
|
PRE_HIRES_TO_VGA EQU 4
|
||
|
POST_HIRES_TO_VGA EQU 5
|
||
|
PRE_VGA_TO_HIRES EQU 6
|
||
|
POST_VGA_TO_HIRES EQU 7
|
||
|
SAVE_REGISTERS EQU 8
|
||
|
RESTORE_REGISTERS EQU 9
|
||
|
MODIFY_REGISTER_STATE EQU 10
|
||
|
ACCESS_VGA_MEMORY_MODE EQU 11
|
||
|
ACCESS_LINEAR_MEMORY_MODE EQU 12
|
||
|
ENABLE_TRAPS EQU 13
|
||
|
DISABLE_TRAPS EQU 14
|
||
|
MAKE_HARDWARE_NOT_BUSY EQU 15
|
||
|
VIRTUALIZE_CRTC_IN EQU 16
|
||
|
VIRTUALIZE_CRTC_OUT EQU 17
|
||
|
VIRTUALIZE_SEQUENCER_IN EQU 18
|
||
|
VIRTUALIZE_SEQUENCER_OUT EQU 19
|
||
|
VIRTUALIZE_GCR_IN EQU 20
|
||
|
VIRTUALIZE_GCR_OUT EQU 21
|
||
|
SET_LATCH_BANK EQU 22
|
||
|
RESET_LATCH_BANK EQU 23
|
||
|
SAVE_LATCHES EQU 24
|
||
|
RESTORE_LATCHES EQU 25
|
||
|
DISPLAY_DRIVER_DISABLING EQU 26
|
||
|
SELECT_PLANE EQU 27
|
||
|
PRE_CRTC_MODE_CHANGE EQU 28
|
||
|
POST_CRTC_MODE_CHANGE EQU 29
|
||
|
VIRTUALIZE_DAC_OUT EQU 30
|
||
|
VIRTUALIZE_DAC_IN EQU 31
|
||
|
GET_CURRENT_BANK_WRITE EQU 32
|
||
|
GET_CURRENT_BANK_READ EQU 33
|
||
|
SET_BANK EQU 34
|
||
|
CHECK_HIRES_MODE EQU 35
|
||
|
GET_TOTAL_VRAM_SIZE EQU 36
|
||
|
GET_BANK_SIZE EQU 37
|
||
|
SET_HIRES_MODE EQU 38
|
||
|
PRE_HIRES_SAVE_RESTORE EQU 39
|
||
|
POST_HIRES_SAVE_RESTORE EQU 40
|
||
|
VESA_SUPPORT EQU 41
|
||
|
GET_CHIP_ID EQU 42
|
||
|
CHECK_SCREEN_SWITCH_OK EQU 43
|
||
|
VIRTUALIZE_BLTER_IO EQU 44
|
||
|
SAVE_MESSAGE_MODE_STATE EQU 45
|
||
|
SAVE_FORCED_PLANAR_STATE EQU 46
|
||
|
VESA_CALL_POST_PROCESSING EQU 47
|
||
|
PRE_INT_10_MODE_SET EQU 48
|
||
|
NBR_MINI_VDD_FUNCTIONS_40 EQU 49
|
||
|
CM_POWERSTATE_HIBERNATE EQU 00000010H
|
||
|
CM_POWERSTATE_VDD_VALID EQU <(CM_POWERSTATE_BITS OR CM_POWERSTATE_HIBERNATE)>
|
||
|
GET_NUM_UNITS EQU 49
|
||
|
TURN_VGA_OFF EQU 50
|
||
|
TURN_VGA_ON EQU 51
|
||
|
SET_ADAPTER_POWER_STATE EQU 52
|
||
|
GET_ADAPTER_POWER_STATE_CAPS EQU 53
|
||
|
SET_MONITOR_POWER_STATE EQU 54
|
||
|
GET_MONITOR_POWER_STATE_CAPS EQU 55
|
||
|
GET_MONITOR_INFO EQU 56
|
||
|
I2C_OPEN EQU 57
|
||
|
I2C_ACCESS EQU 58
|
||
|
GPIO_OPEN EQU 59
|
||
|
GPIO_ACCESS EQU 60
|
||
|
COPYPROTECTION_ACCESS EQU 61
|
||
|
NBR_MINI_VDD_FUNCTIONS_41 EQU 62
|
||
|
ifdef MAINVDD
|
||
|
NBR_MINI_VDD_FUNCTIONS EQU NBR_MINI_VDD_FUNCTIONS_41
|
||
|
else
|
||
|
NBR_MINI_VDD_FUNCTIONS EQU NBR_MINI_VDD_FUNCTIONS_40
|
||
|
endif
|
||
|
endif
|
||
|
endif
|
||
|
VDD_QUERY_VERSION EQU 0
|
||
|
MINIVDD_SVC_BASE_OFFSET EQU 80H
|
||
|
VDD_DRIVER_REGISTER EQU (0+MINIVDD_SVC_BASE_OFFSET)
|
||
|
VDD_DRIVER_UNREGISTER EQU (1+MINIVDD_SVC_BASE_OFFSET)
|
||
|
VDD_SAVE_DRIVER_STATE EQU (2+MINIVDD_SVC_BASE_OFFSET)
|
||
|
VDD_REGISTER_DISPLAY_DRIVER_INFO EQU (3+MINIVDD_SVC_BASE_OFFSET)
|
||
|
VDD_REGISTER_SSB_FLAGS EQU (4+MINIVDD_SVC_BASE_OFFSET)
|
||
|
VDD_GET_DISPLAY_CONFIG EQU (5+MINIVDD_SVC_BASE_OFFSET)
|
||
|
VDD_PRE_MODE_CHANGE EQU (6+MINIVDD_SVC_BASE_OFFSET)
|
||
|
VDD_POST_MODE_CHANGE EQU (7+MINIVDD_SVC_BASE_OFFSET)
|
||
|
VDD_SET_USER_FLAGS EQU (8+MINIVDD_SVC_BASE_OFFSET)
|
||
|
VDD_SET_BUSY_FLAG_ADDR EQU (9+MINIVDD_SVC_BASE_OFFSET)
|
||
|
VDD_PC98_RESERVED EQU (10+MINIVDD_SVC_BASE_OFFSET)
|
||
|
VDD_VBE_PM EQU (10+MINIVDD_SVC_BASE_OFFSET)
|
||
|
VDD_ENABLE EQU (11+MINIVDD_SVC_BASE_OFFSET)
|
||
|
VDD_GETMEMBASE EQU (12+MINIVDD_SVC_BASE_OFFSET)
|
||
|
VDD_OPEN EQU (13+MINIVDD_SVC_BASE_OFFSET)
|
||
|
VDD_CLOSE EQU (14+MINIVDD_SVC_BASE_OFFSET)
|
||
|
VDD_OPEN_KEY EQU (15+MINIVDD_SVC_BASE_OFFSET)
|
||
|
VDD_SET_POWER_STATE EQU (16+MINIVDD_SVC_BASE_OFFSET)
|
||
|
VDD_GET_POWER_STATE_CAPS EQU (17+MINIVDD_SVC_BASE_OFFSET)
|
||
|
VDD_GET_DISPLAY_CONFIG2 EQU 8085H
|
||
|
ENABLE_IO EQU 00000001H
|
||
|
ENABLE_MEM EQU 00000002H
|
||
|
ENABLE_VGA EQU 00000030H
|
||
|
ENABLE_ROM EQU 00000080H
|
||
|
ENABLE_ALL EQU 000000FFH
|
||
|
ENABLE_NONE EQU 00000000H
|
||
|
ENABLE_VALID EQU 000000FFH
|
||
|
ENABLE_ERROR EQU 0FFFFFFFFH
|
||
|
VDD_OPEN_EXIST EQU 00000001H
|
||
|
VDD_OPEN_ENUM EQU 00000002H
|
||
|
VDD_OPEN_LOCK EQU 00000000H
|
||
|
VDD_OPEN_TEST EQU VDD_OPEN_EXIST
|
||
|
VDD_OPEN_KEY_WRITE EQU 00000001H
|
||
|
VDD_OPEN_KEY_READ EQU 00000002H
|
||
|
VDD_OPEN_KEY_USER EQU 00000010H
|
||
|
VDD_OPEN_KEY_GLOBAL EQU 00000020H
|
||
|
VDD_IOCTL_SET_NOTIFY EQU 10000001H
|
||
|
VDD_IOCTL_GET_DDHAL EQU 10000002H
|
||
|
VDD_IOCTL_COPY_PROTECTION EQU 10000003H
|
||
|
VDD_IOCTL_I2C_OPEN EQU 10000004H
|
||
|
VDD_IOCTL_I2C_ACCESS EQU 10000005H
|
||
|
|
||
|
tagVDD_IOCTL_SET_NOTIFY_INPUT STRUC
|
||
|
NotifyMask DD ?
|
||
|
NotifyType DD ?
|
||
|
NotifyProc DD ?
|
||
|
NotifyData DD ?
|
||
|
tagVDD_IOCTL_SET_NOTIFY_INPUT ENDS
|
||
|
VDD_NOTIFY_START_MODE_CHANGE EQU 00000001H
|
||
|
VDD_NOTIFY_END_MODE_CHANGE EQU 00000002H
|
||
|
VDD_NOTIFY_ENABLE EQU 00000004H
|
||
|
VDD_NOTIFY_DISABLE EQU 00000008H
|
||
|
VDD_NOTIFY_TYPE_CALLBACK EQU 1
|
||
|
BYTE_LENGTHED EQU 1
|
||
|
WORD_LENGTHED EQU 2
|
||
|
GOING_TO_WINDOWS_MODE EQU 1
|
||
|
GOING_TO_VGA_MODE EQU 2
|
||
|
DISPLAY_DRIVER_DISABLED EQU 4
|
||
|
IN_WINDOWS_HIRES_MODE EQU 8
|
||
|
BLOCK_INT10 EQU 16
|
||
|
|
||
|
DISPLAYINFO STRUC
|
||
|
diHdrSize DW ?
|
||
|
diInfoFlags DW ?
|
||
|
diDevNodeHandle DD ?
|
||
|
diDriverName DB 16 DUP (?)
|
||
|
diXRes DW ?
|
||
|
diYRes DW ?
|
||
|
diDPI DW ?
|
||
|
diPlanes DB ?
|
||
|
diBpp DB ?
|
||
|
diRefreshRateMax DW ?
|
||
|
diRefreshRateMin DW ?
|
||
|
diLowHorz DW ?
|
||
|
diHighHorz DW ?
|
||
|
diLowVert DW ?
|
||
|
diHighVert DW ?
|
||
|
diMonitorDevNodeHandle DD ?
|
||
|
diHorzSyncPolarity DB ?
|
||
|
diVertSyncPolarity DB ?
|
||
|
diUnitNumber DD ?
|
||
|
diDisplayFlags DD ?
|
||
|
diXDesktopPos DD ?
|
||
|
diYDesktopPos DD ?
|
||
|
diXDesktopSize DD ?
|
||
|
diYDesktopSize DD ?
|
||
|
DISPLAYINFO ENDS
|
||
|
DISPLAYINFO_SIZE equ diRefreshRateMax+2-diHdrSize
|
||
|
DISPLAYINFO_SIZE1 equ diBpp+1-diHdrSize
|
||
|
DISPLAYINFO_SIZE2 equ diVertSyncPolarity+1-diHdrSize
|
||
|
DISPLAYINFO_SIZE3 equ diMemorySize+4-diHdrSize
|
||
|
|
||
|
RETURNED_DATA_IS_STALE EQU 0001H
|
||
|
MINIVDD_FAILED_TO_LOAD EQU 0002H
|
||
|
MINIVDD_CHIP_ID_DIDNT_MATCH EQU 0004H
|
||
|
REGISTRY_BPP_NOT_VALID EQU 0008H
|
||
|
REGISTRY_RESOLUTION_NOT_VALID EQU 0010H
|
||
|
REGISTRY_DPI_NOT_VALID EQU 0020H
|
||
|
MONITOR_DEVNODE_NOT_ACTIVE EQU 0040H
|
||
|
MONITOR_INFO_NOT_VALID EQU 0080H
|
||
|
MONITOR_INFO_DISABLED_BY_USER EQU 0100H
|
||
|
REFRESH_RATE_MAX_ONLY EQU 0200H
|
||
|
CARD_VDD_LOADED_OK EQU 0400H
|
||
|
DEVICE_IS_NOT_VGA EQU 0800H
|
||
|
NoTrace_VIRTUALIZE_CRTC_IN EQU 1
|
||
|
NoTrace_VIRTUALIZE_CRTC_OUT EQU 1
|
||
|
NoTrace_VIRTUALIZE_SEQUENCER_IN EQU 1
|
||
|
NoTrace_VIRTUALIZE_SEQUENCER_OUT EQU 1
|
||
|
NoTrace_VIRTUALIZE_GCR_IN EQU 1
|
||
|
NoTrace_VIRTUALIZE_GCR_OUT EQU 1
|
||
|
NoTrace_VIRTUALIZE_DAC_OUT EQU 1
|
||
|
NoTrace_VIRTUALIZE_DAC_IN EQU 1
|
||
|
NoTrace_CHECK_HIRES_MODE EQU 1
|
||
|
|
||
|
ifdef NEC_98
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
vFlg_Machine_Std equ 00000001b
|
||
|
vFlg_Machine_Multi equ 00000010b
|
||
|
vFlg_Machine_Mate equ 00000100b
|
||
|
vFlg_Machine_H98 equ 00001000b
|
||
|
vFlg_CRT_New equ 00010000b
|
||
|
vFlg_CRT_NonInter equ 00100000b
|
||
|
vFlg_GDC_5MHz equ 01000000b
|
||
|
vFlg_GDC_Emulate equ 10000000b
|
||
|
vFlg_Acc_Internal equ 0000000100000000b
|
||
|
vFlg_Acc_External equ 0000001000000000b
|
||
|
vFlg_Acc_PCI equ 0000010000000000b
|
||
|
vFlg_Acc_ML equ 0000100000000000b
|
||
|
vFlg_Acc_PVD equ 0001000000000000b
|
||
|
vFlg_Mode_NH equ 0010000000000000b
|
||
|
vFlg_Mode_H equ 0100000000000000b
|
||
|
vFlg_Initialized equ 1000000000000000b
|
||
|
vFlg_Opt_MFR equ 000000010000000000000000b
|
||
|
vFlg_Opt_NewMFR equ 000000100000000000000000b
|
||
|
vFlg_Opt_VDP equ 000001000000000000000000b
|
||
|
vFlg_Opt_NewVDP equ 000010000000000000000000b
|
||
|
|
||
|
vFlg_Local equ 000000000100000010000000b
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
MaxMiniVDD equ 16
|
||
|
MaxMiniTrap equ 32
|
||
|
MaxMultiTrap equ 3
|
||
|
MaxMultiFunc equ MaxMiniVDD
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
LT_Enable equ 00000001b
|
||
|
LT_Enable_bit equ 0
|
||
|
LT_Initialized equ 10000000b
|
||
|
LT_Initialized_bit equ 7
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
Vids_struct struc
|
||
|
|
||
|
|
||
|
|
||
|
Vids_SFlags dd ?
|
||
|
Vids_CB_Offset dd ?
|
||
|
Vids_Msg_Pseudo_VM dd ?
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
VDD_TGDC_Draw_Off dd ?
|
||
|
VDD_TGDC_Sync_Off dd ?
|
||
|
VDD_TGDC_Sync_On dd ?
|
||
|
VDD_TGDC_FIFO_Empty dd ?
|
||
|
VDD_GGDC_Draw_Off dd ?
|
||
|
VDD_GGDC_Sync_Off dd ?
|
||
|
VDD_GGDC_Sync_On dd ?
|
||
|
VDD_GGDC_FIFO_Empty dd ?
|
||
|
VDD_GGDC_MOD_Emulate dd ?
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
H98_FLORA_Change dd ?
|
||
|
H98_Clear_Text dd ?
|
||
|
H98_Rest_GCs dd ?
|
||
|
H98_Rest_etc dd ?
|
||
|
H98_Save_ModeFF dd ?
|
||
|
|
||
|
Vids_struct ends
|
||
|
|
||
|
|
||
|
Vid_SFlags equ <Vids.Vids_SFlags>
|
||
|
VDD_CB_Offset equ <Vids.Vids_CB_Offset>
|
||
|
VDD_Msg_Pseudo_VM equ <Vids.Vids_Msg_Pseudo_VM>
|
||
|
|
||
|
TGDC_Draw_Off equ <Vids.VDD_TGDC_Draw_Off>
|
||
|
GGDC_Draw_Off equ <Vids.VDD_GGDC_Draw_Off>
|
||
|
TGDC_Sync_On equ <Vids.VDD_TGDC_Sync_On>
|
||
|
TGDC_Sync_Off equ <Vids.VDD_TGDC_Sync_Off>
|
||
|
TGDC_FIFO_Empty equ <Vids.VDD_TGDC_FIFO_Empty>
|
||
|
GGDC_FIFO_Empty equ <Vids.VDD_GGDC_FIFO_Empty>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
MiniFuncStruct STRUC
|
||
|
MF_ProcAddr dd ?
|
||
|
|
||
|
|
||
|
|
||
|
MiniFuncStruct ENDS
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
MiniVDD_Proc_Struct STRUC
|
||
|
Proc_Address dd ?
|
||
|
Proc_Order dw ?
|
||
|
Proc_MiniID db ?
|
||
|
Proc_Flags db ?
|
||
|
MiniVDD_Proc_Struct ENDS
|
||
|
.errnz (size MiniVDD_Proc_Struct) mod 4
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
MiniVDD_GTrap_Struct STRUC
|
||
|
GTrap_ProcAddr dd ?
|
||
|
GTrap_PortAddr dw ?
|
||
|
GTrap_NumMini dw ?
|
||
|
GTrap_ProcTable db ((size MiniVDD_Proc_Struct) * MaxMultiTrap) dup (?)
|
||
|
MiniVDD_GTrap_Struct ENDS
|
||
|
|
||
|
MiniVDD_LTrap_Struct STRUC
|
||
|
LTrap_ProcAddr dd ?
|
||
|
LTrap_Status db ?
|
||
|
LTrap_Flags db MaxMultiTrap dup (?)
|
||
|
MiniVDD_LTrap_Struct ENDS
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
EndMiniFunc_ MACRO n
|
||
|
ifdef MiniFunc&n
|
||
|
dd OFFSET32 MiniFunc&n
|
||
|
else
|
||
|
dd 0
|
||
|
endif
|
||
|
ENDM
|
||
|
|
||
|
MiniFunc_ MACRO FuncID, FuncName
|
||
|
MiniFunc&FuncID equ <FuncName>
|
||
|
ENDM
|
||
|
|
||
|
BeginMiniFunc MACRO TableName
|
||
|
public TableName
|
||
|
TableName label near
|
||
|
ENDM
|
||
|
|
||
|
if 1
|
||
|
EndMiniFunc MACRO TableName
|
||
|
x = 0
|
||
|
REPT NBR_MINI_VDD_FUNCTIONS_41
|
||
|
EndMiniFunc_ %x
|
||
|
x = x + 1
|
||
|
ENDM
|
||
|
ENDM
|
||
|
else
|
||
|
EndMiniFunc MACRO TableName
|
||
|
x = 0
|
||
|
REPT NBR_MINI_VDD_FUNCTIONS
|
||
|
EndMiniFunc_ %x
|
||
|
x = x + 1
|
||
|
ENDM
|
||
|
ENDM
|
||
|
endif
|
||
|
|
||
|
MiniFunc MACRO FuncID, FuncName
|
||
|
MiniFunc_ %(FuncID), <FuncName>
|
||
|
ENDM
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
MiniVDDCall MACRO FuncID, SetCarry
|
||
|
local MiniCall_Loop
|
||
|
local MiniCall_Exit
|
||
|
|
||
|
push ecx
|
||
|
push esi
|
||
|
lea esi, [MiniVDD_Func_Table][(size MiniVDD_Proc_Struct) * MaxMultiFunc * FuncID]
|
||
|
mov ecx, [MiniVDD_NumMini]
|
||
|
MiniCall_Loop:
|
||
|
cmp dword ptr [esi.Proc_Address], 0
|
||
|
jz MiniCall_Exit
|
||
|
pushad
|
||
|
ifnb <SetCarry>
|
||
|
stc
|
||
|
endif
|
||
|
call dword ptr [esi.Proc_Address]
|
||
|
popad
|
||
|
jc MiniCall_Exit
|
||
|
add esi, size MiniVDD_Proc_Struct
|
||
|
loop MiniCall_Loop
|
||
|
MiniCall_Exit:
|
||
|
pop esi
|
||
|
pop ecx
|
||
|
ENDM
|
||
|
|
||
|
|
||
|
|
||
|
MiniVDDCall2 MACRO FuncID, SetCarry
|
||
|
local MiniCall_Exit
|
||
|
local MiniCall_Proc
|
||
|
|
||
|
push ecx
|
||
|
push esi
|
||
|
lea esi, [MiniVDD_Func_Table][(size MiniVDD_Proc_Struct) * MaxMultiFunc * FuncID]
|
||
|
MiniCall_Proc:
|
||
|
cmp dword ptr [esi.Proc_Address], 0
|
||
|
jz MiniCall_Exit
|
||
|
pushad
|
||
|
ifnb <SetCarry>
|
||
|
stc
|
||
|
endif
|
||
|
call dword ptr [esi.Proc_Address]
|
||
|
popad
|
||
|
MiniCall_Exit:
|
||
|
pop esi
|
||
|
pop ecx
|
||
|
ENDM
|
||
|
|
||
|
|
||
|
|
||
|
MiniVDDCall3 MACRO FuncID, MiniID, SetCarry
|
||
|
local MiniCall_Exit
|
||
|
local MiniCall_Loop
|
||
|
local MiniCall_Proc
|
||
|
|
||
|
push ecx
|
||
|
push esi
|
||
|
lea esi, [MiniVDD_Func_Table][(size MiniVDD_Proc_Struct) * MaxMultiFunc * FuncID]
|
||
|
movzx ecx, MiniID
|
||
|
MiniCall_Loop:
|
||
|
cmp ecx, 0
|
||
|
jz MiniCall_Proc
|
||
|
add esi, size MiniVDD_Proc_Struct
|
||
|
dec ecx
|
||
|
jmp MiniCall_Loop
|
||
|
MiniCall_Proc:
|
||
|
cmp dword ptr [esi.Proc_Address], 0
|
||
|
jz MiniCall_Exit
|
||
|
pushad
|
||
|
ifnb <SetCarry>
|
||
|
stc
|
||
|
endif
|
||
|
call dword ptr [esi.Proc_Address]
|
||
|
popad
|
||
|
MiniCall_Exit:
|
||
|
pop esi
|
||
|
pop ecx
|
||
|
ENDM
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
MiniVDDFunc MACRO TmpReg, FuncID
|
||
|
mov TmpReg, [MiniVDD_Func_Table.Proc_Address][(size MiniVDD_Proc_Struct) * MaxMultiFunc * FuncID]
|
||
|
ENDM
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
ExecModeLL macro Num
|
||
|
ExecMode_L&Num:
|
||
|
endm
|
||
|
|
||
|
ExecModeLE macro Num
|
||
|
ExecMode_E&Num:
|
||
|
endm
|
||
|
|
||
|
ExecModeJE macro Num
|
||
|
jmp ExecMode_E&Num
|
||
|
endm
|
||
|
|
||
|
ExecModeJZ macro Num
|
||
|
jz ExecMode_L&Num
|
||
|
endm
|
||
|
|
||
|
ExecModeJNZ macro Num
|
||
|
jnz ExecMode_L&Num
|
||
|
endm
|
||
|
|
||
|
ExecModeJEZ macro Num
|
||
|
jz ExecMode_E&Num
|
||
|
endm
|
||
|
|
||
|
ExecModeJENZ macro Num
|
||
|
jnz ExecMode_E&Num
|
||
|
endm
|
||
|
|
||
|
|
||
|
ExecModeTest macro ModeFlag, CB_Reg
|
||
|
if ModeFlag and vFlg_Local
|
||
|
ifidni <CB_Reg>, <Vid>
|
||
|
push ebx
|
||
|
mov ebx, [Vid_VM_Handle]
|
||
|
add ebx, [VDD_CB_Offset]
|
||
|
test [ebx.VDD_SFlags], ModeFlag
|
||
|
pop ebx
|
||
|
else
|
||
|
ifidni <CB_Reg>, <Cur>
|
||
|
push ebx
|
||
|
VMMCall Get_Cur_VM_Handle
|
||
|
add ebx, [VDD_CB_Offset]
|
||
|
test [ebx.VDD_SFlags], ModeFlag
|
||
|
pop ebx
|
||
|
else
|
||
|
ifb <CB_Reg>
|
||
|
push ebx
|
||
|
add ebx, [VDD_CB_Offset]
|
||
|
test [ebx.VDD_SFlags], ModeFlag
|
||
|
pop ebx
|
||
|
else
|
||
|
test [CB_Reg.VDD_SFlags], ModeFlag
|
||
|
endif
|
||
|
endif
|
||
|
endif
|
||
|
else
|
||
|
test [Vid_SFlags], ModeFlag
|
||
|
endif
|
||
|
endm
|
||
|
|
||
|
|
||
|
ExecModeChk macro HdrFlag, JmpFlag, JmpLabel, ModeFlag, CB_Reg
|
||
|
ifidni <HdrFlag>, <Jmp>
|
||
|
.erre FlgExecMode
|
||
|
ExecModeJE %EndExecMode
|
||
|
endif
|
||
|
ExecModeLL %NumExecMode
|
||
|
NumExecMode = NumExecMode + 1
|
||
|
FlgExecMode = 1
|
||
|
ifnb <ModeFlag>
|
||
|
ExecModeTest <ModeFlag>, <CB_Reg>
|
||
|
ifidni <JmpLabel>, <End>
|
||
|
ifidni <JmpFlag>, <Not>
|
||
|
ExecModeJENZ %EndExecMode
|
||
|
else
|
||
|
ExecModeJEZ %EndExecMode
|
||
|
endif
|
||
|
else
|
||
|
ifidni <JmpFlag>, <Not>
|
||
|
ExecModeJNZ %NumExecMode
|
||
|
else
|
||
|
ExecModeJZ %NumExecMode
|
||
|
endif
|
||
|
endif
|
||
|
endif
|
||
|
endm
|
||
|
|
||
|
ExecModeEnd macro
|
||
|
ExecModeLL %NumExecMode
|
||
|
ExecModeLE %EndExecMode
|
||
|
NumExecMode = NumExecMode + 1
|
||
|
EndExecMode = EndExecMode + 1
|
||
|
FlgExecMode = 0
|
||
|
endm
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
ExecModeJmp macro JmpLabel, ModeFlag, CB_Reg
|
||
|
ExecModeTest %ModeFlag, <CB_Reg>
|
||
|
jnz JmpLabel
|
||
|
endm
|
||
|
|
||
|
ExecModeJmpNot macro JmpLabel, ModeFlag, CB_Reg
|
||
|
ExecModeTest %ModeFlag, <CB_Reg>
|
||
|
jz JmpLabel
|
||
|
endm
|
||
|
|
||
|
ExecMode macro ModeFlag, CB_Reg
|
||
|
ExecModeChk Top, Equ, Next, %ModeFlag, CB_Reg
|
||
|
endm
|
||
|
|
||
|
ExecModeNot macro ModeFlag, CB_Reg
|
||
|
ExecModeChk Top, Not, Next, %ModeFlag, CB_Reg
|
||
|
endm
|
||
|
|
||
|
ExecModeOnly macro ModeFlag, CB_Reg
|
||
|
ExecModeChk Top, Equ, End, %ModeFlag, CB_Reg
|
||
|
endm
|
||
|
|
||
|
ExecModeOnlyNot macro ModeFlag, CB_Reg
|
||
|
ExecModeChk Top, Not, End, %ModeFlag, CB_Reg
|
||
|
endm
|
||
|
|
||
|
ExecModeElse macro ModeFlag, CB_Reg
|
||
|
ExecModeChk Jmp, Equ, Next, %ModeFlag, CB_Reg
|
||
|
endm
|
||
|
|
||
|
ExecModeElseNot macro ModeFlag, CB_Reg
|
||
|
ExecModeChk Jmp, Not, Next, %ModeFlag, CB_Reg
|
||
|
endm
|
||
|
|
||
|
ExecModeThru macro ModeFlag, CB_Reg
|
||
|
ExecModeChk Thru, Equ, Next, %ModeFlag, CB_Reg
|
||
|
endm
|
||
|
|
||
|
ExecModeThruNot macro ModeFlag, CB_Reg
|
||
|
ExecModeChk Thru, Not, Next, %ModeFlag, CB_Reg
|
||
|
endm
|
||
|
|
||
|
NumExecMode = 1
|
||
|
EndExecMode = 1
|
||
|
FlgExecMode = 0
|
||
|
|
||
|
else
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
ifdef MAINVDD
|
||
|
externdef MiniVDDDispatchTable:dword
|
||
|
endif
|
||
|
|
||
|
|
||
|
MiniVDDDispatch macro FunctionCode, HandlerAddr
|
||
|
mov [edi+(FunctionCode*4)],OFFSET32 MiniVDD_&HandlerAddr
|
||
|
endm
|
||
|
|
||
|
|
||
|
CardVDDDispatch macro FunctionCode, HandlerAddr
|
||
|
mov [edi+(FunctionCode*4)],OFFSET32 CardVDD_&HandlerAddr
|
||
|
endm
|
||
|
|
||
|
|
||
|
MiniVDDCall macro FunctionCode, SaveFlags
|
||
|
local MiniVDDCallExit, MiniVDDCallLeave
|
||
|
|
||
|
ifdef MAXDEBUG
|
||
|
ifndef NoTrace_&FunctionCode&
|
||
|
Trace_Out "MiniVDDCall: &FunctionCode&"
|
||
|
endif
|
||
|
endif
|
||
|
push edi
|
||
|
ifnb <SaveFlags>
|
||
|
pushfd
|
||
|
endif
|
||
|
mov edi,OFFSET32 MiniVDDDispatchTable
|
||
|
cmp dword ptr [edi+(FunctionCode*4)],0
|
||
|
je MiniVDDCallLeave
|
||
|
ifnb <SaveFlags>
|
||
|
popfd
|
||
|
endif
|
||
|
call dword ptr [edi+(FunctionCode*4)]
|
||
|
ifnb <SaveFlags>
|
||
|
jmp MiniVDDCallExit
|
||
|
endif
|
||
|
|
||
|
MiniVDDCallLeave:
|
||
|
ifnb <SaveFlags>
|
||
|
popfd
|
||
|
endif
|
||
|
|
||
|
MiniVDDCallExit:
|
||
|
pop edi
|
||
|
endm
|
||
|
endif
|
||
|
|
||
|
endif
|