Last change
on this file since 847 was 847, checked in by bird, 26 years ago |
Initial checkin of Win32k. (not tested & pe2lx not up-to-date!)
|
File size:
2.1 KB
|
Line | |
---|
1 | ; $Id: devfirst.asm,v 1.1 1999-09-06 02:19:56 bird Exp $
|
---|
2 | ;
|
---|
3 | ; DevFirst - entrypoint and segment definitions
|
---|
4 | ;
|
---|
5 | ; Copyright (c) 1999 knut st. osmundsen
|
---|
6 | ;
|
---|
7 | ;
|
---|
8 | .386p
|
---|
9 |
|
---|
10 | ;
|
---|
11 | ; Include files
|
---|
12 | ;
|
---|
13 | include devsegdf.inc
|
---|
14 |
|
---|
15 | ;
|
---|
16 | ; Exported symbols
|
---|
17 | ;
|
---|
18 | public CODE16START
|
---|
19 | public DATA16START
|
---|
20 | public DATA16START
|
---|
21 | public DATA16_BSSSTART
|
---|
22 | public DATA16_CONSTSTART
|
---|
23 | public CODE16START
|
---|
24 | public CODE32START
|
---|
25 | public DATA32START
|
---|
26 | public BSS32START
|
---|
27 | public CONST32_ROSTART
|
---|
28 |
|
---|
29 | public _strategyAsm0
|
---|
30 | public _strategyAsm1
|
---|
31 | public _SSToDS_16a
|
---|
32 |
|
---|
33 |
|
---|
34 | ;
|
---|
35 | ; Externs
|
---|
36 | ;
|
---|
37 | extrn _strategy:near
|
---|
38 | extrn CODE16END:byte
|
---|
39 | extrn DATA16END:byte
|
---|
40 | extrn _TKSSBase16:dword
|
---|
41 |
|
---|
42 |
|
---|
43 | CODE16 segment
|
---|
44 | ASSUME CS:CODE16, DS:DATA16, ES:NOTHING, SS:NOTHING
|
---|
45 |
|
---|
46 | CODE16START label byte
|
---|
47 |
|
---|
48 | ;$win32ki entry point
|
---|
49 | _strategyAsm0:
|
---|
50 | push 0
|
---|
51 | jmp _strategyAsm
|
---|
52 |
|
---|
53 | ;$win32k entry point
|
---|
54 | _strategyAsm1:
|
---|
55 | push 1
|
---|
56 | jmp _strategyAsm
|
---|
57 |
|
---|
58 | _strategyAsm proc far
|
---|
59 | push es
|
---|
60 | push bx
|
---|
61 | push ds
|
---|
62 | pop es
|
---|
63 | call _strategy
|
---|
64 | pop bx
|
---|
65 | pop es
|
---|
66 | mov word ptr es:[bx+3], ax
|
---|
67 | add sp, 2
|
---|
68 | ; int 3
|
---|
69 | retf
|
---|
70 | _strategyAsm endp
|
---|
71 |
|
---|
72 |
|
---|
73 | ;extern LIN SSToDS_16a(void NEAR *pStackVar);
|
---|
74 | _SSToDS_16a proc near
|
---|
75 | assume CS:CODE16, DS:DATA16, ES:NOTHING
|
---|
76 | push es
|
---|
77 | jmp far ptr FLAT:_SSToDS_16a_GetFLAT_32
|
---|
78 | _SSToDS_16a_GetFLAT_16::
|
---|
79 | mov edx, ds:_TKSSBase16
|
---|
80 | movzx eax, word ptr ss:[esp + 4]
|
---|
81 | add eax, es:[edx]
|
---|
82 | mov edx, eax
|
---|
83 | shr edx, 16
|
---|
84 | pop es
|
---|
85 | ret
|
---|
86 | _SSToDS_16a endp
|
---|
87 |
|
---|
88 | CODE16 ends
|
---|
89 |
|
---|
90 | CODE32 segment
|
---|
91 | CODE32START label byte
|
---|
92 | ASSUME CS:CODE32
|
---|
93 | _SSToDS_16a_GetFLAT_32:
|
---|
94 | push cs
|
---|
95 | pop es
|
---|
96 | jmp far ptr CODE16:_SSToDS_16a_GetFLAT_16
|
---|
97 |
|
---|
98 | CODE32 ends
|
---|
99 |
|
---|
100 |
|
---|
101 | ;
|
---|
102 | ; all segments have a <segmentname>START label at the start of the segment.
|
---|
103 | ;
|
---|
104 | DATA16 segment
|
---|
105 | DATA16START label byte
|
---|
106 | DATA16 ends
|
---|
107 |
|
---|
108 | DATA16_BSS segment
|
---|
109 | DATA16_BSSSTART label byte
|
---|
110 | DATA16_BSS ends
|
---|
111 |
|
---|
112 | DATA16_CONST segment
|
---|
113 | DATA16_CONSTSTART label byte
|
---|
114 | DATA16_CONST ends
|
---|
115 |
|
---|
116 | DATA32 segment
|
---|
117 | DATA32START label byte
|
---|
118 | DATA32 ends
|
---|
119 |
|
---|
120 | BSS32 segment
|
---|
121 | BSS32START label byte
|
---|
122 | BSS32 ends
|
---|
123 |
|
---|
124 | CONST32_RO segment
|
---|
125 | CONST32_ROSTART label byte
|
---|
126 | CONST32_RO ends
|
---|
127 | END
|
---|
128 |
|
---|
Note:
See
TracBrowser
for help on using the repository browser.