3 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 248
1

Не грузится драйвер

13.04.2016, 13:25. Показов 585. Ответов 1
Метки нет (Все метки)

Здравствуйте.

Написал (ПО ПРИМЕРУ) драйвер консоли, предназначенный для замены стандартного драйвера, но этот драйвер не загружается. После загрузки драйвера, при нажатии на любую клавишу кроме нуля должен издаваться очень короткий писк спикера (но это не важно так как драйвер даже не инициализируется).

А теперь по порядку:
1)У меня загрузочная DOS флешка с Volkov Commandedr-ом.
2)Код драйвера:
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
code segment para public
console proc far
assume cs:code, ds:code, es:code
rh struc
rh_len db ?
rh_init db ?
rh_cmd db ?
rh_status dw ?
rh_res1 dd  ?
rh_res2 dd  ?
rh ends
 
rh0 struc
rh0_rh db size rh dup(?)
rh0_numunit db ?
rh0_brk_ofs dw ?
rh0_brk_seg dw ?
rh0_bpb_pno dw ?
rh0_bpb_pns dw ?
rh0_drv_itr db ?
rh0 ends
 
rh4 struc
rh4_rh db size rh dup(?)
rh4_media db ?
rh4_buf_ofs dw ?
rh4_buf_seg dw ?
rh4_count dw ?
rh4_start dw ?
rh4 ends
 
rh5 struc
rh5_rh db size rh dup(?)
rh5_return db ?
rh5 ends
 
rh7 struc
rh7_len db ?
rh7_unit db ?
rh7_cmd db ?
rh7_status dw ?
rh7_res1 dd  ?
rh7_res2 dd  ?
rh7 ends
 
rh8 struc
rh8_rh db size rh dup(?)
rh8_media db ?
rh8_bus_ofs dw ?
rh8_buf_seg dw ?
rh8_count dw ?
rh8_start dw ?
rh8 ends
 
rh9 struc
rh9_rh db size rh dup(?)
rh9_media db ?
rh9_buf_ofs dw ?
rh9_bus_seg dw ?
rh9_count dw ?
rh9_start dw ?
rh9 ends
 
start:
next_dev dd -1
attribute dw 8003h
strategy dw dev_strategy
interrupt dw dev_interrupt
dev_name db 'CON     '
rh_ofs dw ?
rh_seg dw ?
sav db 0
 
dev_strategy:
mov cs:rh_seg,es
mov cs:rh_ofs,bx
ret
 
dev_interrupt:
cld
push ds
push es
push ax
push bx
push cx
push dx
push di
push si
mov ax,cs:rh_seg
mov es,ax
mov bx,cs:rh_ofs
mov al,es:[bx].rh_cmd
rol al,1
lea di,cmdtab
xor ah,ah
add di,ax
jmp word ptr[di]
cmdtab dw initialization
dw media_check
dw get_bpb
dw ioctl_input
dw input
dw nd_input
dw input_status
dw input_clear
dw output
dw output_veryfy
dw output_status
dw output_clear
dw ioctl_out
dw open
dw close
dw removable
dw output_busy
 
tone proc near
mov ah,0
push ax
mov al,0b6h
out 43h,al
mov dx,0
mov ax,14000
pop cx
inc cx
div cx
out 42h,al
xchg ah,al
out 42h,al
in al,61h
or al,3
out 61h,al
mov cx,15000
tone1:
loop tone1
in al,61h
and al,0fch
out 61h,al
ret
tone endp
 
initialization:
call initialization
lea ax,initialization
mov es:[bx].rh0_brk_ofs,ax
mov es:[bx].rh0_brk_seg,cs
jmp done
 
media_check:
jmp done
 
get_bpb:
jmp done
 
ioctl_input:
jmp unkn
 
input:
mov cx,es:[bx].rh4_count
mov di,es:[bx].rh4_buf_ofs
mov ax,es:[bx].rh4_buf_seg
mov es,ax
 
read1:
xor ax,ax
xchg al,sav
or al,al
jnz read3
 
read2:
xor ah,ah
int 16h
or ax,ax
jz read2
or al,al
jnz read3
mov sav,ah
 
read3:
mov es:[di],al
inc di
push cx
call tone
pop cx
loop read1
mov es,cs:rh_seg
mov bx,cs:rh_ofs
jmp done
 
nd_input:
mov al,sav
or al,al
jnz nd1
mov ah,16h
int 16h
jz busy
 
nd1:
mov es:[bx].rh5_return,al
jmp done
 
input_status:
jmp done
 
input_clear:
mov sav,0
 
ic1:
mov ah,1
int 16h
jz done
xor ah,ah
int 16h
jmp ic1
 
output:
mov cx,es:[bx].rh8_count
mov di,es:[bx].rh8_bus_ofs
mov ax,es:[bx].rh8_buf_seg
mov es,ax
xor bx,bx
 
out1:
mov al,es:[di]
inc di
mov ah,0eh
int 10h
loop out1
mov es,cs:rh_seg
mov bx,cs:rh_ofs
jmp done
 
output_veryfy:
jmp output
 
output_status:
jmp done
 
;input_status:
;jmp done
 
output_clear:
jmp done
 
ioctl_out:
jmp unkn
 
open:
jmp done
 
close:
jmp done
 
removable:
jmp unkn
 
output_busy:
jmp unkn
 
unkn:
or es:[bx].rh_status,8003h
jmp done
 
busy:
or es:[bx].rh_status,200h
 
done:
or es:[bx].rh_status,100h
pop si
pop di
pop dx
pop cx
pop bx
pop ax
pop es
pop ds
ret
 
initial proc near
lea dx,cs:msg1
mov ah,9
int 21h
ret
initial endp
 
msg1 db 'Console driver',0dh,0ah,'$'
console endp
code ends
end start
3)Скомпилировал драйвер, получил EXE-файл.

4)Воспользовался утилитой exe2bin.com и получил свой драйвер в виде BIN-файла.

5)В корне лежат:
-папка BOOT/DRIVERS/ (тут и лежит мой драйвер "CDRIVER.BIN")
-файл CONFIG.SYS (в который я добавил строчку DEVICE=BOOT\DRIVERS\CDRIVER.BIN)

6)Так вот DOS просто зависает, хотя должно появиться сообщение:
Assembler
1
msg1 db 'Console driver',0dh,0ah,'$'
Не понимаю, что я сделал не правильно.

P.S.

Синтаксических ошибок нету.

Тут я не забыл дополнить пробелами до восьми символов:
Assembler
1
dev_name db 'CON     '
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.04.2016, 13:25
Ответы с готовыми решениями:

Не грузится скомпилированный драйвер геймпада в Windows CE
Друзья! Помогите пожалуйста! есть проблема, которая остановила развитие проекта =(( Есть...

Не грузится Windows ХР в нормальном режиме. Драйвер видео не работает.
Переустановил Win XP SP3, все драйвера нормально ставятся, видео тоже, а потом во время загрузки...

Windows 8 не грузится или грузится оооочень долго (черный экран)
Здравствуйте. В продолжение этой темы. Скопирую оттуда текст, дабы не повторяться. После...

С оперативкой ноутбук не грузится, без неё - грузится
После чистки ноутбука, перестал запускаться он. Нажимаю на кнопку включения, он вроде бы...

1
3388 / 1808 / 487
Регистрация: 28.02.2015
Сообщений: 3,677
14.04.2016, 08:52 2
Цитата Сообщение от MorfixProton Посмотреть сообщение
Синтаксических ошибок нету.

Assembler
1
2
initialization:
call initialization
Как быстро стек кончится?
2
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.04.2016, 08:52

Диск грузится периодически грузится на 100%
Добрый день, столкнулся с такой проблемой, периодически диск загружается на 100% из-за этого вся...

Иногда грузится процессор непонятно чем, как посмотреть чем грузится?
Скорее всего вы скажете что мой вопрос тупой. Но порой у всех бывают такие случаи, когда в простое...

Проблемы с Сетью: что-то грузится долго, что-то не грузится вовсе
Приветствую. Столкнулся со следующей проблемой: сёрфинг в Сети фактически стал невозможен....

Комп при включении грузится потом отключается, грузится отключается
Комп при включении грузится потом отключается, грузится отключается. Мне говорили что возможно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru