source: trunk/src/win32k/kKrnlLib/testcase/baddev.asm

Last change on this file was 7746, checked in by bird, 24 years ago

Some minore tweeking.

File size: 2.8 KB
Line 
1; $Id: baddev.asm,v 1.2 2002-01-08 23:25:59 bird Exp $
2;
3; DevFirst - entrypoint and segment definitions
4;
5; Copyright (c) 2001 knut st. osmundsen
6;
7; Project Odin Software License can be found in LICENSE.TXT
8;
9 .386p
10
11;
12; Include files
13;
14 include devsegdf.inc
15
16CODE16 segment
17 ASSUME CS:CODE16, DS:DATA16, ES:NOTHING, SS:NOTHING
18
19CODE16START db 'CODE16START',0
20 .286p
21;;
22; Stub which pushes parameters onto the stack and call the 16-bit C strategy routine.
23; @returns returns the return value of strategy(...)
24; @author knut st. osmundsen
25_strategyAsm proc far
26 cmp byte ptr es:[bx+2], 0 ; CMDInit
27 je init
28 cmp byte ptr es:[bx+2], 27 ; CMDInitBase
29 je init
30 jmp error
31
32 ;
33 ; Init request packet - fill answer and return successfully.
34 ;
35init:
36 xor ax, ax
37 mov word ptr es:[bx+20], ax
38 mov word ptr es:[bx+18], ax
39 mov byte ptr es:[bx+13], al
40 mov word ptr es:[bx+3], 0100h
41 mov word ptr es:[bx+14], offset CODE16_INITSTART
42 mov word ptr es:[bx+16], offset DATA16_INITSTART
43 retf
44
45 ;
46 ; Whatever other packet - fail.
47 ;
48error:
49 mov word ptr es:[bx+3], 8103h
50 retf
51_strategyAsm endp
52 .386p
53CODE16 ends
54
55CODE16_INIT segment
56CODE16_INITSTART db 'CODE16_INITSTART',0
57CODE16_INIT ends
58
59CODE32 segment
60CODE32START db 'CODE32START',0
61 db 010000h dup(90) ; FILLER
62CODE32 ends
63
64DATA16 segment
65DATA16START label byte ; Note. no start string here!
66_aDevHdrs:
67 DD DATA16_GROUP:_aDevHdrs+30
68 DW 08980H
69 DW _strategyAsm
70 DW 00H
71 DB 'kKrnlHlp'
72 DW 00H
73 DW 00H
74 DW 00H
75 DW 00H
76 DD 03H
77
78 DD 0ffffffffH
79 DW 08980H
80 DW _strategyAsm
81 DW 00H
82 DB 'kKrnlLib'
83 DW 00H
84 DW 00H
85 DW 00H
86 DW 00H
87 DD 03H
88DATA16 ends
89
90DATA16_BSS segment
91DATA16_BSSSTART db 'DATA16_BSSSTART',0
92DATA16_BSS ends
93
94DATA16_CONST segment
95DATA16_CONSTSTART db 'DATA16_CONSTSTART',0
96DATA16_CONST ends
97
98DATA16_GLOBAL segment
99DATA16_GLOBALSTART db 'DATA16_GLOBALSTART',0
100_DATA16Base dd offset FLAT:DATA16:DATA16START
101DATA16_GLOBAL ends
102
103DATA16_INIT segment
104DATA16_INITSTART db 'DATA16_INITSTART',0
105DATA16_INIT ends
106
107DATA32 segment
108DATA32START db 'DATA32START',0
109 db 10h dup(90) ; FILLER
110DATA32 ends
111
112_VFT segment
113 db 0ch dup(90)
114_VFT ends
115
116BSS32 segment
117BSS32START db 'BSS32START',0
118BSS32 ends
119
120CONST32_RO segment
121CONST32_ROSTART db 'CONST32_ROSTART', 0
122CONST32_RO ends
123
124_VFT segment
125_VFTSTART db '_VFTSTART', 0
126_VFT ends
127
128EH_DATA segment
129EH_DATASTART db 'EH_DATASTART', 0
130EH_DATA ends
131
132CALLTAB16 segment para public 'CALLTAB16_DATA' use16
133 db 0d6h dup(90)
134CALLTAB16 ends
135
136LOGDATA_16BIT segment word public 'LOGDATA_16BIT' use16
137ulfpBuffers LABEL DWORD
138usOffBuffers dw offset LOGDATA_16BIT:achBuffers
139usSelBuffers dw seg LOGDATA_16BIT:achBuffers
140achBuffers db 0fffch dup(0)
141LOGDATA_16BIT ends
142
143SYMBOLDB32 segment
144 db 10h dup(90)
145SYMBOLDB32 ends
146
147
148
149END
150
151
Note: See TracBrowser for help on using the repository browser.