Операционная система MS DOS (том 2)



         

Ограничение доступа при загрузке MS-DOS - часть 4


functions LABEL WORD ; Таблица функций

dw initialize dw check_media dw make_bpb dw ioctl_in dw input_data dw nondestruct_in dw input_status dw clear_input dw output_data dw output_verify dw output_status dw clear_output dw ioctl_out dw Device_open dw Device_close dw Removable_media

; Выход из драйвера, если функция не поддерживается

check_media: make_bpb: ioctl_in: nondestruct_in: input_status: clear_input: output_verify: output_status: clear_output: ioctl_out: Removable_media: Device_open: Device_close: output_data: input_data:

or es:word ptr [bx]+3,8103h jmp quit

;=========================================================== quit: or es:word ptr [bx]+3,100h pop bp pop di pop si pop dx pop cx pop bx pop ax pop ds pop es ret

;=========================================================== ; Процедура выводит на экран строку ; символов в формате ASCIIZ

dpc proc near push si dpc_loop: cmp ds:byte ptr [si],0 jz end_dpc mov al,ds:byte ptr [si] @@out_ch al inc si jmp dpc_loop

end_dpc: pop si ret dpc endp

;=========================================================== hello db 13,10,'+­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­+' db 13,10,'¦ *STOP* (C)Frolov A., 1990 ¦' db 13,10,'+­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­+' db 13,10 db 13,10,'Enter password...' db 13,10,0

;=========================================================== initialize:

lea ax,E_O_P ;смещение конца программы в AX mov es:word ptr [bx]+14,ax ;помещаем его в заголовок mov es:word ptr [bx]+16,cs ;

; Стираем экран

mov dh,18h mov dl,80h

xor cx,cx mov bh,7 xor al,al mov ah,6 int 10h

; Устанавливаем курсор в левый верхний угол экрана

mov bh,0 xor dx,dx mov ah,2 int 10h

; Выводим сообщение

mov ax,cs mov ds,ax mov si,offset hello call dpc

; Ожидаем ввода правильного пароля




Содержание  Назад  Вперед