]>
wirehaze git hosting - MS-DOS.git/blob - v4.0/src/MEMM/MEMM/INITDEB.ASM
4 ;******************************************************************************
5 title InitDeb
- initialize debugger
6 ;******************************************************************************
8 ; (C) Copyright MICROSOFT Corp. 1986
10 ; Title: MEMM.EXE - MICROSOFT Expanded Memory Manager 386 Driver
12 ; Module: InitDeb - initialize debugger
20 ;******************************************************************************
24 ; DATE REVISION DESCRIPTION
25 ; -------- -------- -------------------------------------------------------
26 ; 06/16/86 Original from VDM MAIN.ASM module
27 ; 06/28/86 0.02 Name changed from MEMM386 to MEMM
28 ; 07/06/86 0.04 Changed assume to DGROUP
30 ;******************************************************************************
32 ; Functional Description:
34 ; This routine is linked in when linking with the kernel debugger.
35 ; InitDeb calls the debugger initialization routine.
37 ;******************************************************************************
38 .lfcond
; list false conditionals
40 ;******************************************************************************
42 ;******************************************************************************
46 ;******************************************************************************
48 ;******************************************************************************
57 MASTER_IMR equ 21h
; mask port for master 8259
60 ; Definition of the packet used in debug initialization. A pointer to
61 ; this structure is passed to Debug_Entry.
64 CSseg dw ?
;Real mode code segment
65 DSseg dw ?
;Real mode data segment
66 CSsel dw ?
;Prot mode code selector
67 DSsel dw ?
;Prot mode data selector
68 SpareSel1 dw ?
;Prot mode alias selector 1
69 SpareSel2 dw ?
;Prot mode alias selector 2
70 GDTalias dw ?
;Prot mode GDT r/w alias
71 ProtIDTaddr dq ?
;Prot mode IDT base & limit
72 RealIDTaddr dq ?
;Real mode IDT base & limit
73 BrkFlag db ?
;TRUE if break to debugger
74 ComFlag db ?
;TRUE if com1, FALSE if com2
78 ;******************************************************************************
79 ; E X T E R N A L R E F E R E N C E S
80 ;******************************************************************************
83 extrn _Debug_Entry
:far ; (debinit.asm)
93 ;******************************************************************************
94 ; S E G M E N T D E F I N I T I O N S
95 ;******************************************************************************
108 assume
cs:LAST
, ds:DGROUP
, es:DGROUP
110 ;******************************************************************************
111 ; InitDeb - initialize kernel debugger
116 ; AL = 00h => dont't break on debug init
117 ; AL = FFh => break on debug init
120 ; Kernel debugger initialized
124 ;******************************************************************************
135 mov di, offset DGROUP
:InitData
141 mov [di].CSsel
, DEBC_GSEL
142 mov [di].DSsel
, DEBD_GSEL
143 mov [di].SpareSel1
, DEBW1_GSEL
144 mov [di].SpareSel2
, DEBW2_GSEL
145 mov [di].GDTalias
, GDTD_GSEL
146 mov [di].BrkFlag
, al ; ? break on entry ?
147 mov [di].ComFlag
, FALSE
; com2
149 sidt [di].RealIDTaddr
156 lgdt qword ptr ds:[GDTD_GSEL
]
160 lea di, [di].ProtIDTaddr