9. ПРИЛОЖЕНИЯ К СИСТЕМНЫМ РЕСТАРТАМ
ПРИЛОЖЕНИЕ 1. Структура описателя устройства:
0-ой БЛОК: ( 0-ой сектор на 0-ой дорожке )
смеще- длина комментарии
ние
О 2 Резерв
2 8 Имя устройства
10 3 Признак iS-DOS: "DSK"
13 5 Резерв
18 2 Размер устройства (в блоках по 256 байт)
20 2 Номер 0-го блока главного каталога
22 1 Количество цилиндров на устройстве
23 1 Тип диска. Биты(0/1):
0 - 40/80 дорожек
1 - 1/2 стороны
24 1 Размер сектора: 1/2/4: 256/512/1024 байт
25 1 Количество секторов на дорожке
26 1 Резерв
27 1 Контрольная сумма описателя ????_dos.sys
28 2 Резерв
30 2 Дата
32 32 Описатель ????_dos.sys
64 16 Таблица номеров секторов на дорожке
1-ый БЛОК: Бит-карта устройства.
1 бит/блок: 0-свободен/1-занят
ПРИЛОЖЕНИЕ 2. Структура вектора символьного устройства
ввода (СУВВ) / g_kedv(#ll) DOS.SYS /
смещ имя длина комментарий
ение
-20 COUNT 4 Счетчик прерываний
-16 RIM2 2 Адрес процедуры (АП) обработки IM 2
-14 AC0UN 2 Адрес счетчика прерываний COUNT
-12 TIMER 2 АП, вызываемой (если не 0) при (C0UNT)=0
-10 CRKEY 1 Номер канала текущего СУВВ
-9 TTYIN 3 Переход на процедуру (ПП) ввода символа
с клавиатуры
-6 KWAIT 3 ПП ожидания состояния клавиатуры
с ненажатыми клавишами / kwait(8) /
-3 KTEST 3 ПП проверки на нажатие какой-либо клавиши
/ ktest(9) /
0 KCSR 1 Байт состояния СУВВ (клавиатуры)
биты (0/1):
0 - строчные/ПРОПИСНЫЕ
1 - latin/русские
2 - текст/псевдографика
3 - запрет kwait(l)(сбрасывается сам)
1 MCSR 1 Маска разрешений смены соответствующих
битов KCSR (1: разрешен)
2 KLAST 1 Код последней нажатой клавиши
3 REPD 1 Интервал между первыми двумя одинаковыми
клавишами (значение по умолчанию 29)
4 REPP 1 Интервал между последующими одинаковыми
клавишами (значение по умолчанию 1)
5 IKEYB 2 Адрес процедуры опроса клавиатуры
Байты 0(8) лежат в соответствующем канале устройства
(см. ПРИЛОЖЕНИЕ 7)
ПРИЛОЖЕНИЕ 3. Структура вектора описания системы
/ g_cnfg(#10) DOS.SYS /
смещ имя длина комментарий
ение
-6 1 Размер эл.диска по умолчанию (обычно 29)
-5 AB0DY 2 Адрес тела эл.диска
-3 CRDEV 1 Номер канала устройства Т: (текущего)
-2 QUDEV 1 Номер канала устройства Q: (быстрого)
-1 SYDEV 1 Номер канала устройства S: (системного)
0 CNFG 1 Текущее количество компонент ОС
1 Stop 2 Адрес вершины ОС (то же, что BTCHN)
3 Utop 2 Адрес вершины программы пользователя
5 ADCAT 2 Адрес начала электронного диска
7 SZCAT 1 Размер электронного диска в
блоках (1 блок - 260 байт)
8 APWR 16 Адреса загрузки 8-ми компонент ОС
24 QNM0D 8 Текущее количество модифицированных
блоков на 8-ми блочных устройствах
32 DGCHN 2 Адрес начала области каналов (ОК)
34 BTCHN 2 Адрес конца ОК
36 PTCHN 2 Указатель текущего заполнения ОК
38 ERDEV 2 Адрес программы обработки ошибок
блочных устройств
40 QVST 2 Адрес процедуры запроса для блочных
устройств (см. ПРИЛОЖЕНИЕ 6.)
55 $ANLZ - CALL ANLZ - процедура обработки RST 16
62 EMPTY - RET
ПРИЛОЖЕНИЕ 4. Структура тела дискового драйвера
(S:SYSTEMINIsys_driv.blk)
смещ имя длина комментарии
ение
О INSTL 2 Адрес процедуры (АП) инсталляции
(если 0, то не нужна)
2 BREAD 2 АП чтения / dread(#D)/
4 BWRIT 2 АП записи / write(#E)/
6 ВIN IT 2 АП инициализации / binit(#F)/
8 SCCSR 1 Регистр состояния
9 DRCSR 1 Регистр состояния (см.ПРИЛОЖЕНИЕ 6.)
10 0FIM2 2 Смещение от начала драйвера до кода IM2
(если 0, то при выходе IM 2
принудительно не устанавливается
12 TPSYS 1 тип TR-DOS'a (0/1)
13 QRDWR 1 Число попыток чтения/записи
14 TMBUF 2 Адрес буфера драйвера
20 2 Номер тек. сектора в буфере драйвера
30 1 Тип дисковода. Биты(0/1):
0 - 40/80 дорожек
1 - 1/2 стороны
31 TMWT 1 Задержка начала чтения сектора
32 HTIME 1 Время перемещения головок дисковода
33 1 Тип диска. Биты(0/1):
0 - 40/80 дорожек
1 - 1/2 стороны
34 1 Размер сектора:
1/2/4: 256/512/1024 байт
35 1 Количество секторов на дорожке
36 16 Таблица номеров секторов на дорожке
Байты 8..15(8) хранятся в канале и в векторе бл.
стройства (см. ПРИЛОЖЕНИЯ 6,7)
Байты 33..51 описывают диск и соответствуют байтам
3..25 и 64..79 в 0-ом блоке описателя устройства.
binit(#F) сам настраивает драйвер на iSDOS-диск.
Для настройки драйвера на нестандартную дискету
(TR-D0S, MS-DOS и т.п.) измените эти байты.