Программирование в среде IS-DOS 1993 г.

Приложения к системным рестартам - структура описателя устройства. Структура вектора символьного устройства. Структура вектора описания системы. Структура тела дискового драйвера.


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 и т.п.) измените эти байты.




СОДЕРЖАНИЕ:


  Оставте Ваш отзыв:

  НИК/ИМЯ
  ПОЧТА (шифруется)
  КОД



Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Реклама - Реклама и объявления.
Тема - Теория журналостроения.
Чемпионат VIRUS-2 - Создание и редактирование вирусов - с чего начинать ?.. Чемпионат недели с участием 32 вирусов.
Тест - бред Чапая.
Тусовка - Как правилно вести себя за праздничным столом?! Анекдоты.

В этот день...   23 ноября