Системное программное обеспечение. Рощин А.В. - 142 стр.

UptoLike

Составители: 

142
rh ends
; Инициализация
rh0 struc ; Заголовок запроса команды 0
rh0_rh db size rh dup(?) ; Фиксированная часть
rh0_nunits db ? ; Число устройств в группе
rho_brk_ofs dw ? ; Смещение конца драйвера
rho_brk_seg dw ? ; Сегмент конца драйвера
rh0_bpb_tbo dw ? ; Смещение указателя массива ВРВ
rh0_bpb_tbs dw ? ; Сегмент указателя массива ВРВ
rh0_drv_ltr db ? ; Первый доступный накопитель
rh0 ends
; Проверка смены носителя
rh1 struc ; ЗЗ для команды 1
rh1_rh db size rh dup(?)
rh1_media db ? ; Дескриптор носителя из DPB
rh1_md_stat db ? ; Возвращаемое драйвером
rh1 ends ; состояние носителя
; Построить блок BPB
rh2 struc ; ЗЗ для команды 2
rh2_rh db size rh dup(?)
rh2_media db ? ; Дескриптор носителя из DРВ
rh2_buf_ofs dw ? ; Смещение DTA
rh2_buf_seg dw ? ; Сегмент DTA
rh2_pbpbo dw ? ; Смещение указателя ВРВ
rh2_pbpbs dw ? ; Сегмент указателя BPB
rh2 ends
; Запись
rh4 struc
rh4_rh db size rh dup(?)
rh4_media db ? ; Дескриптор носителя из DPB
rh4_buf_ofs dw ? ; Смещение DTA
rh4_buf_seg dw ? ; Сегмент DTA
rh4_cont dw ? ; Счетчик передачи
rh4_start dw ? ; Начальный сектор
; Запись
rh8 struc
rh8_rh4 db size rh4 dup(?) ; Совпадает с командой
rh8 ends ; чтения
; Запись с контролем
rh9 struc ; Совпадает с
rh9_rh4 db size rh4 dup(?) ; командой чтения
; Проверка сменяемости диска
rh15 struc ; Состоит
rh15_rh db size rh dup(?) ; только из заголовка
; Основная процедура
begin:
start_address equ $ ; Начальный адрес драйвера
; Этот адрес нужен для последующего определения начала области данных
; Заголовок устройства для DOS
next_dev dd -1 ; Других драйверов нет
                                     142



rh     ends
; Инициализация
rh0    struc ; Заголовок запроса команды 0
rh0_rh       db     size rh dup(?)       ; Фиксированная часть
rh0_nunits db       ?                    ; Число устройств в группе
rho_brk_ofs dw      ?                    ; Смещение конца драйвера
rho_brk_seg dw      ?                    ; Сегмент конца драйвера
rh0_bpb_tbo dw      ?                    ; Смещение указателя массива ВРВ
rh0_bpb_tbs dw      ?                    ; Сегмент указателя массива ВРВ
rh0_drv_ltr db      ?                    ; Первый доступный накопитель
rh0    ends
; Проверка смены носителя
rh1    struc               ; ЗЗ для команды 1
rh1_rh       db     size rh dup(?)
rh1_media db        ?      ; Дескриптор носителя из DPB
rh1_md_stat db      ?      ; Возвращаемое драйвером
rh1    ends                ; состояние носителя
; Построить блок BPB
rh2    struc               ; ЗЗ для команды 2
rh2_rh       db     size rh dup(?)
rh2_media db        ?      ; Дескриптор носителя из DРВ
rh2_buf_ofs dw      ?      ; Смещение DTA
rh2_buf_seg dw      ?      ; Сегмент DTA
rh2_pbpbo dw        ?      ; Смещение указателя ВРВ
rh2_pbpbs dw        ?      ; Сегмент указателя BPB
rh2    ends
; Запись
rh4    struc
rh4_rh       db     size rh dup(?)
rh4_media db        ?      ; Дескриптор носителя из DPB
rh4_buf_ofs dw      ?      ; Смещение DTA
rh4_buf_seg dw      ?      ; Сегмент DTA
rh4_cont     dw     ?      ; Счетчик передачи
rh4_start    dw     ?      ; Начальный сектор
; Запись
rh8    struc
rh8_rh4      db     size rh4 dup(?)      ; Совпадает с командой
rh8    ends                              ; чтения
; Запись с контролем
rh9    struc                             ; Совпадает с
rh9_rh4      db     size rh4 dup(?)      ; командой чтения
; Проверка сменяемости диска
rh15 struc                               ; Состоит
rh15_rh      db     size rh dup(?)       ; только из заголовка
; Основная процедура
begin:
start_address       equ $         ; Начальный адрес драйвера
; Этот адрес нужен для последующего определения начала области данных
; Заголовок устройства для DOS
next_dev     dd     -1            ; Других драйверов нет