Суббота, 20.04.2024, 03:07

..



Главная Регистрация Вход
Приветствую Вас, Гость · Браузер: « v»
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Всё об «Электроника БК0010(-01), БК0011(М)»! » Программы | Утилиты | ДОСы » Дисковые Операционные Системы (DOS) » «ANDOS v3.1» » Техническое руководство (Часть 4) («ANDOS v3.1» [ANTECH4.EDP])
Техническое руководство (Часть 4)
-=RUS=-Дата: Вторник, 22.04.2014, 21:57 | Сообщение # 1
Генералиссимус
Группа: Администраторы
Сообщений: 352
Репутация: 1
Статус: Offline

Приложение 1

                    Структура диска  ANDOS

                    1. Распределение диска

     Физически диск состоит из блоков (секторов),  имеющих раз-
мер 512. байт.
     Для размещения  файлов  используется  кластерная структура
диска (кластер - минимальное количество информации,  записывае-
мое на диск.  В ANDOS - 4000 байт).  Кластеры,  содержащие файл
могут располагаться в разных  участках  диска.  В  этом  случае
(когда  файл расположен в нескольких кластерах,  не идущих друг
за другом) файл называется фрагментированным.  Необходимо отме-
тить,  что  последующие  кластеры файла обычно располагаются на
диске дальше предыдущих. Таблица размещения файлов (FAT) связы-
вает кластеры одного файла в цепочку. Кластерная структура поз-
воляет оптимизировать процесс записи после удаления старых фай-
лов,  и позволяет отказаться от сжатия диска ("сборки мусора"),
которое необходимо в операционных системах  с  последовательной
записью файлов (RT-11, MicroDOS, NORTON-БК, NORD, MKDOS).
     Логичская структура диска соответствует стандарту операци-
онной  системы MS-DOS,  применяющейся на IBM-совместимых компь-
ютерах. Однако в отличие от MS-DOS, где размеры каталога, коли-
чество  и  размеры FAT,  а также количество секторов на кластер
могут изменяться, в ANDOS эти параметры жестко зафиксированы:

     ┌──────────────────┬──────────────────────────────┐
     │ Размер каталога: │ 7 блоков (MAX 112 файлов)    │
     │ Размер FAT:      │ 1200 байт (MAX 424 кластера) │
     │ Количество FAT:  │ 2                            │
     │ Размер кластера: │ 4 блока                      │
     └──────────────────┴──────────────────────────────┘

     Дисковое пространство в ANDOS распределяется следующим об-
разом:

              ┌─────────────┬──────────────────┐
              │Номера блоков│    Назначение    │
              ├─────────────┼──────────────────┤
              │ 0           │ Загрузчик        │
              │ 1-2         │ Первая копия FAT │
              │ 3-4         │ Вторая копия FAT │
              │ 5-11.       │ Каталог          │
              │ 12.-15.     │ 2 кластер        │
              │ 16.-19.     │ 3 кластер        │
              │ 20.-23.     │ 4 кластер        │

              .           . . .                .

              │ 1596.-1599. │ 398 кластер      │
              └─────────────┴──────────────────┘

                     2. Формат загрузчика

     Загрузочный сектор (BOOT-сектор) включает в  себя  таблицу
параметров диска и собственно загрузчик.

                2.1. Формат таблицы параметров:

┌───┬───┬───────────────┬─────────────────────────────────────┐
│См.│Дл.│   Значение    │ Назначение                          │
├───┼───┼───────────────┼─────────────────────────────────────┤
│ 0 │ 2 │ ***           │Признак загружаемости дискеты        │
│ 2 │ 2 │ ***           │Команда перехода на загрузчик        │
│ 4 │ 7 │ ASCII/ANDOS  /│Название DOS (OEM ID)                │
│ 13│ 2 │ 512.          │Число байт в секторе                 │
│ 15│ 1 │ 4             │Количество блоков на кластер         │
│ 16│ 2 │ 1             │Число блоков в загрузчике            │
│ 20│ 1 │ 2             │Число FAT                            │
│ 21│ 2 │ 112.          │Максимальное число файлов в каталоге │
│ 23│ 2 │ ***           │Общее число блоков на диске          │
│ 25│ 1 │ 371           │Media Discriptor (байт парам. диска) │
│ 26│ 2 │ 2             │Число блоков в одной FAT             │
│ 30│ 2 │ 10.           │Число секторов (блоков) на дорожке   │
│ 32│ 2 │ ***           │Число головок                        │
│ 34│15.│ 0             │Не используются                      │
│ 53│11.│ 11 пробелов   │Метка тома                           │
│ 66│ 8.│ASCII/FAT12   /│Идентификатор файловой системы       │
│ 76│ 2 │ 0             │Не используется                      │
└───┴───┴───────────────┴─────────────────────────────────────┘
     Необходимо обратить внимание,  что многие словные перемен-
ные  располагаются в таблице по нечетным адресам (это связано с
тем, что в IBM нет принципиальной разницы при обращении к слову
по четному и нечетному адресу).
     Первые два слова таблицы  могут  принимать  два  различных
значения в зависимости от того, является ли диск загрузочным. В
случае если диск загрузочный - первое слово 240 (признак загру-
жаемости дискеты),  второе слово 436 (команда перехода на прог-
рамму загрузки BR BOOT). Если дискета незагружаемая (только та-
кие  дискеты могут обрабатываться на IBM в среде MS-DOS) первые
два слова - 753 и 20220 (псевдокоманды  перехода  на  загрузчик
IBM, проверяемые MS-DOS при обращении к диску).
     Общее число блоков на диске (смещение 23)  устанавливается
при  форматировании  и  зависит от числа дорожек на диске.  Для
80-дорожечного диска это число 1600.
     Число головок (смещение 32) устанавливается при форматиро-
вании и зависит от типа дисковода (односторонний или двусторон-
ний).

                        2.2. Загрузчик

     Загрузчик располагается в нулевом блоке, начиная со смеще-
ния 100. Работа загрузчика подробно описана в начале настоящего
руководства.

                      3. Формат каталога

     Длина элемента каталога равна 32.  байтам (в  одном  блоке
помещается  16.  элементов).  Элемент  каталога имеет следующий
формат (смещения десятичные):

┌────┬────┬───────────────────────────────────────────────────┐
│Смещ│Длин│                    Назначение                     │
├────┼────┼───────────────────────────────────────────────────┤
│ 0  │ 8  │ Имя файла. Первый элемент имени имеет специальное │
│    │    │ назначение: 0 - Элемент никогда не использовался, │
│    │    │ 345 - Файл удален. Любой другой  символ считается │
│    │    │ первой буквой имени файла.                        │
│ 8  │ 3  │ Расширение имени файла.                           │
│ 11 │ 1  │ Атрибуты файла (в ANDOS обычно не используются)   │
│ 12 │ 8  │ Зарезервированы                                   │
│ 20 │ 1  │ Признак подкаталога и одновременно его номер      │
│ 21 │ 1  │ Номер родительского подкаталога                   │
│ 22 │ 2  │ Адрес файла (В MS-DOS время создания файла)       │
│ 24 │ 2  │ Дата создания файла                               │
│ 26 │ 2  │ Номер начального кластера. Первый кластер в обла- │
│    │    │ сти данных имеет номер 2.                         │
│ 28 │ 2  │ Длина файла                                       │
│ 30 │ 2  │ Расширение длины. (Для файлов > 64 Кбайт.)        │
└────┴────┴───────────────────────────────────────────────────┘
     Адрес файла в ANDOS хранится в поле времени MS-DOS. Хране-
ние адреса в зарезервированных ячейках элемента каталога  недо-
пустимо, т.к. MS-DOS при копировании очищает эти ячейки.
     Подкаталоги ANDOS представляют собой  фиктивные  записи  о
файле с нулевыми значениями адреса,  длины и стартового класте-
ра. В байте атрибута у них записана  константа  10,  являющаяся
для MS-DOS  меткой  диска (благодаря этому подкаталоги ANDOS не
показываются на IBM).

                       4. Структура FAT

     ANDOS использует таблицу размещения файлов (FAT)  для  вы-
числения номеров блоков по номеру кластера. Для каждого класте-
ра FAT содержит 12-битный (1.5 байта) элемент.  Первые два эле-
мента  FAT (три байта) соответствуют каталогу.  Первый байт со-
держит Media Discriptor (такой-же,  как и в таблице  параметров
диска - 371), второй и третий байты содержат код 377 .
     Элементы FAT начиная со второго (счет от 0)  соответствуют
области данных.
     Элемент FAT может содержать следующие значения:

      ┌───────────┬───────────────────────────────────┐
      │   Код     │       Значение                    │
      ├───────────┼───────────────────────────────────┤
      │ 0         │ Неиспользуемый кластер.           │
      │ 7777      │ Последний кластер файла           │
      │ 7760-7766 │ Зарезервированный кластер         │
      │ 7767      │ Плохой кластер                    │
      │ XXX       │ Любые другие  цифры означают, что │
      │           │ кластер занят файлом  и указывают │
      │           │ на следующий кластер файла. Номер │
      │           │ первого кластера файла хранится в │
      │           │ каталоге.                         │
      └───────────┴───────────────────────────────────┘

                  4.1. Правила распаковки FAT

     Для того, чтобы распаковать 12-битную ячейку FAT нужно ум-
ножить номер кластера на 1.5 (т.е.  на длину элемента FAT). Це-
лая часть произведения равна смещению в FAT,  по которому нахо-
дится  элемент,  соответствующий  данному кластеру.  Если номер
кластера четный - взять младшие 12. бит, иначе старшие 12. бит.
Для распаковки FAT рекомендуется применять подпрограммы ANDOS -
GETFAT и SETFAT.

                   4.2. Формирование цепочки

     Для того, чтобы найти по FAT цепочку кластеров какого-либо
файла, нужно взять из каталога (с помощью функции DIRFIN) номер
начального кластера файла,  затем распаковать  эту  ячейку  FAT
функцией GETFAT.  Если результат, полученный в R0 отличается от
7777, распаковать той же функцией следующую ячейку  цепочки.  И
так, пока не будет найдена последняя ячейка цепочки - код 7777.

       4.3. Преобразование номера кластера в номер блока

     Для того, чтобы преобразовать номер кластера в номер блока
на диске нужно прибавить 1 к номеру  кластера,  и  получившийся
результат умножить на 4 с помощью двух команд ASL.


 
Всё об «Электроника БК0010(-01), БК0011(М)»! » Программы | Утилиты | ДОСы » Дисковые Операционные Системы (DOS) » «ANDOS v3.1» » Техническое руководство (Часть 4) («ANDOS v3.1» [ANTECH4.EDP])
  • Страница 1 из 1
  • 1
Поиск:

-=RUS=-
ICQ: 320867225
asr-corp@yandex.ru
bk001x@yandex.ru