mirror of https://github.com/lianthony/NT4.0
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.
163 lines
4.0 KiB
163 lines
4.0 KiB
TABLE_MASK EQU 004H
|
|
RPL_MASK EQU 003H
|
|
RPL_CLR EQU 0fffcH
|
|
RPL_RING0 EQU 000H
|
|
RPL_RING1 EQU 001H
|
|
RPL_RING2 EQU 002H
|
|
RPL_RING3 EQU 003H
|
|
D_PRES EQU 80H
|
|
D_NOTPRES EQU 0
|
|
D_DPL0 EQU 0
|
|
D_DPL1 EQU 20H
|
|
D_DPL2 EQU 40H
|
|
D_DPL3 EQU 60H
|
|
D_PRIV EQU D_DPL3
|
|
D_SEG EQU 10H
|
|
D_CTRL EQU 0
|
|
D_TSS_BUSY_BIT EQU 2H
|
|
D_GATE EQU 4H
|
|
D_32 EQU 8H
|
|
D_TSS EQU 1H
|
|
D_LDT EQU 2H
|
|
D_TSS_BUSY EQU (D_TSS+D_TSS_BUSY_BIT)
|
|
D_CALLGATE EQU (D_GATE+0 )
|
|
D_TASKGATE EQU (D_GATE+1 )
|
|
D_INTGATE EQU (D_GATE+2 )
|
|
D_TRAPGATE EQU (D_GATE+3 )
|
|
D_TSS32 EQU (D_TSS+D_32)
|
|
D_TSSBUSY32 EQU (D_TSS_BUSY+D_32)
|
|
D_CALLGATE32 EQU (D_CALLGATE+D_32)
|
|
D_INTGATE32 EQU (D_INTGATE+D_32)
|
|
D_TRAPGATE32 EQU (D_TRAPGATE+D_32)
|
|
D_TYPEMASK EQU 0fH
|
|
D_WCMASK EQU 01fH
|
|
D_MINGATE EQU D_CALLGATE
|
|
D_MAXGATE EQU D_TRAPGATE32
|
|
D_TSSBUSY_CLR EQU ( NOT D_TSS_BUSY_BIT)
|
|
D_CODE EQU 8H
|
|
D_DATA EQU 0
|
|
D_CONFORM EQU 4H
|
|
D_EXPDN EQU 4H
|
|
D_RX EQU 2H
|
|
D_X EQU 0
|
|
D_W EQU 2H
|
|
D_R EQU 0
|
|
D_ACCESSED EQU 1H
|
|
D_GRAN4K EQU 80H
|
|
D_COPER32 EQU 40H
|
|
D_DBIG EQU D_COPER32
|
|
D_PAD EQU 20H
|
|
D_UVIRT EQU 10H
|
|
D_EXTLIMIT EQU 0fH
|
|
D_1MEG EQU 100000H
|
|
D_GRANMASK EQU 0fffffH
|
|
D_DATA0 EQU (D_PRES+D_DPL0+D_SEG+D_DATA+D_W)
|
|
D_CODE0 EQU (D_PRES+D_DPL0+D_SEG+D_CODE+D_RX)
|
|
D_TRAP0 EQU (D_PRES+D_DPL0+D_CTRL+D_TRAPGATE)
|
|
D_INT0 EQU (D_PRES+D_DPL0+D_CTRL+D_INTGATE)
|
|
D_TASK0 EQU (D_PRES+D_DPL0+D_CTRL+D_TASKGATE)
|
|
D_TSS0 EQU (D_PRES+D_DPL0+D_CTRL+D_TSS)
|
|
D_LDT0 EQU (D_PRES+D_DPL0+D_CTRL+D_LDT)
|
|
D_TRAP032 EQU (D_PRES+D_DPL0+D_CTRL+D_TRAPGATE32)
|
|
D_INT032 EQU (D_PRES+D_DPL0+D_CTRL+D_INTGATE32)
|
|
D_TSS032 EQU (D_PRES+D_DPL0+D_CTRL+D_TSS32)
|
|
D_DATA1 EQU (D_PRES+D_DPL1+D_SEG+D_DATA+D_W)
|
|
D_CODE1 EQU (D_PRES+D_DPL1+D_SEG+D_CODE+D_RX)
|
|
D_DATA2 EQU (D_PRES+D_DPL2+D_SEG+D_DATA+D_W)
|
|
D_CODE2 EQU (D_PRES+D_DPL2+D_SEG+D_CODE+D_RX)
|
|
D_DATA3 EQU (D_PRES+D_DPL3+D_SEG+D_DATA+D_W)
|
|
D_CODE3 EQU (D_PRES+D_DPL3+D_SEG+D_CODE+D_RX)
|
|
D_INT3 EQU (D_PRES+D_DPL3+D_CTRL+D_INTGATE)
|
|
D_TRAP3 EQU (D_PRES+D_DPL3+D_CTRL+D_TRAPGATE)
|
|
D_GATE3 EQU (D_PRES+D_DPL3+D_CTRL+D_CALLGATE)
|
|
D_INT332 EQU (D_PRES+D_DPL3+D_CTRL+D_INTGATE32)
|
|
D_GATE332 EQU (D_PRES+D_DPL3+D_CTRL+D_CALLGATE32)
|
|
D_TRAP332 EQU (D_PRES+D_DPL3+D_CTRL+D_TRAPGATE32)
|
|
|
|
desctab STRUC
|
|
d_limit DW ?
|
|
d_loaddr DW ?
|
|
d_hiaddr DB ?
|
|
d_access DB ?
|
|
d_attr DB ?
|
|
d_extaddr DB ?
|
|
desctab ENDS
|
|
|
|
|
|
desc32 STRUC
|
|
d32_low DD ?
|
|
d32_high DD ?
|
|
desc32 ENDS
|
|
|
|
d_flink EQU d_loaddr
|
|
d_blink EQU d_limit
|
|
|
|
gate STRUC
|
|
g_handler DD ?
|
|
g_parms DB ?
|
|
g_access DB ?
|
|
g_extoffset DW ?
|
|
gate ENDS
|
|
|
|
g_lowoffset EQU WORD PTR g_handler
|
|
g_sel EQU WORD PTR g_handler + 2
|
|
|
|
|
|
|
|
lidt_s STRUC
|
|
lidt_limit DW ?
|
|
lidt_base DD ?
|
|
lidt_s ENDS
|
|
|
|
|
|
tss_s STRUC
|
|
tss_backlink DW ?
|
|
tss_reservdbl DW ?
|
|
tss_esp0 DD ?
|
|
tss_ss0 DW ?
|
|
tss_reservdss0 DW ?
|
|
tss_esp1 DD ?
|
|
tss_ss1 DW ?
|
|
tss_reservdss1 DW ?
|
|
tss_esp2 DD ?
|
|
tss_ss2 DW ?
|
|
tss_reservdss2 DW ?
|
|
tss_cr3 DD ?
|
|
tss_eip DD ?
|
|
tss_eflags DD ?
|
|
tss_eax DD ?
|
|
tss_ecx DD ?
|
|
tss_edx DD ?
|
|
tss_ebx DD ?
|
|
tss_esp DD ?
|
|
tss_ebp DD ?
|
|
tss_esi DD ?
|
|
tss_edi DD ?
|
|
tss_es DW ?
|
|
tss_reservdes DW ?
|
|
tss_cs DW ?
|
|
tss_reservdcs DW ?
|
|
tss_ss DW ?
|
|
tss_reservdss DW ?
|
|
tss_ds DW ?
|
|
tss_reservdds DW ?
|
|
tss_fs DW ?
|
|
tss_reservdfs DW ?
|
|
tss_gs DW ?
|
|
tss_reservdgs DW ?
|
|
tss_ldt DW ?
|
|
tss_reservdldt DW ?
|
|
tss_tflags DW ?
|
|
tss_iomap DW ?
|
|
tss_s ENDS
|
|
|
|
TSS_DEBUGTRAP EQU 001H
|
|
tss_sp1 equ word ptr tss_esp1
|
|
tss_sp2 equ word ptr tss_esp2
|
|
tss_sp0 equ word ptr tss_esp0
|
|
tss_ip equ word ptr tss_eip
|
|
tss_bx equ word ptr tss_ebx
|
|
tss_sp equ word ptr tss_esp
|
|
tss_flags equ word ptr tss_eflags
|
|
tss_cs0 equ word ptr tss_cs
|
|
|