82
dd –1 ;последний драйвер
dw 8000h ;символьный
dw offset strat ;адрес основной
;процедуры
dw offset intrp ;адрес процедуры
;обработки прерывания
db 1 ;не используется
db 7 dup(?) ;не используется
;конец device header
rh_ptra label dword ;для хранения адреса
;заголовка запроса
rh_ptro dw ?
rh_ptrs dw ?
cnt_err dw 3 ;число попыток ввода пароля
menter label byte
db 22 dup(80h) ;22 пробела
;кодирование сообщения E N T E R
db 'E'+60h,80h,'n'+60h,80h,'t'+60h,80h
db 'e'+60h,80h,'r'+60h
db 4 dup(80h) ;4 пробела
;кодирование сообщения P A S S W O R D
db 'P'+60h,80h,'A'+60h,80h,'S'+60h,80h
db 'S'+60h,80h,'W'+60h,80h,'O'+60h,80h
db 'R'+60h,80h,'D'+60h
;кодирование перевода строки и конца сообщения
db 10+60h,13+60h,'$'+60h
len_enter equ $-menter ;длина
;сообщения enter
reset label byte
db 22 dup(80h) ;22 пробела
;кодирование сообщения R E L O A D
db 'R'+60h,80h,'e'+60h,80h,'l'+60h,80h,'o'+60h,80h
db 'a'+60h,80h,'d'+60h
db 6 dup(80h) ;6 пробелов
;кодирование сообщения S Y S T E M
db 'S'+60h,80h,'y'+60h,80h,'s'+60h,80h,'t'+60h,80h
db 'e'+60h,80h,'m'+60h
db 84h ;$ конец
len_reset equ $-reset ;длина сообщения Reset
buf label byte ;буфер для приёма пароля
db 20 ;максимальный размер буфера
db ? ;текущий размер
db 20 dup(?) ;символы
password label byte