Структура разметки винчестера
на компьютере Scorpion
Влад Сотников (Vega)
В системе MS-DOS программы для Спектру─
ма, разумеется,работать без определённой и
очень трудоемкой адаптации не могут. Тре─
бовалось создать на жестком диске систему
TR-DOS. Авторы Теневого Монитора подошли к
решению этой проблемы довольно оригиналь─
но: на винчестере создается последователь─
ность TR-DOS образов дисков, и каждый из
этих образов можно "подсоединить" к носи─
телю A, B, C или D, и операционная система
TR-DOS будет работать с этим образом, не
подозревая,что это не реальный диск. Отсю─
да идет терминология:диск физический (гиб─
кий флоппи-диск) и диск эмулированный (HDD
образ).
Файловая структура винчестера
Структурная организация размещения на
винчестере информации выглядит следующим
образом.
1. Создастся глобальный подраздел, нося─
щий всегда название MFS (MOA FileSystem?).
Теневой Монитор будет работать только с
ним. Кроме этого подраздела на жестком ди─
ске могут находиться подразделы других
операционных систем. Таким образом, один
винчестер можно использовать как на Спек─
труме, так и на других компьютерах.
2. Внутри глобального подраздела создаю─
тся так называемые локальные подразделы.
Они могут быть следующих видов:
- TR-DOS. Этот подраздел содержит в се─
бе последовательность TR-DOS образов дис─
ков (от 1 до 51).
- MicroDos. Как писал автор Теневого
Монитора,этот подраздел зарезервирован для
совместимости с ПК, использующими эту ОС,
и программная поддержка этого подраздела
планировалась написаться в дальнейшем. Но
до настоящего времени так ничего написано
и не было.
- IS-DOS. Подраздел для ОС с одноимён─
ным названием.
- BAD. С помощью этого подраздела на
винчестере покрывается область, имеющая
сбойные сектора.
Способы работы с этой структурой вин─
честера через меню Теневого Монитора и
подпрограмму RST 8 довольно разнообразны.
Здесь же я приведу описание того, как эта
структура выглядит "изнутри".
Структура описания подразделов
Список глобальных подразделов находится
в 0-м относительном секторе (0 цилиндр, 0
головка, 1 сектор) по адресу #01BE и зани─
мает 16 байт, где:
+0 - У MOA 0.
+1 - головка |
+2 - сектор | начала
+3 - цилиндр (?) | подраздела.
+4 - у MOA #53 - MFS.
+5 - ?
+6 - ?
+7 - ?
+8 |
+9 | относительный адрес
+10 | подраздела.
+11 |
+12 |
+13 | Длина подраздела
+14 | (в секторах).
+15 |
Всего таких описателей может быть 4.
Четвёртый байт #53 - признак подраздела
MFS. Смысл 5,6 и 7 байта мне так разгадать
и не удалось. Также я не совсем уверен в
значении 3-го байта.Тем не менее,2-й и 3-й
байты указывают местоположение списка ло─
кальных подразделов.
Он занимает 2 сектора (1024 байта).Опи─
сание каждого подраздела занимает 16 байт
и выглядит следующим образом.
+0 - тип подраздела:
1 - TR-DOS.
2 - MicroDos.
3 - Is-DOS.
4 - BAD.
+1 |
+2 | относительный адрес
+3 | подраздела.
+4 |
+6 |
+7 | Длина подраздела
+8 | (в секторах).
+9 |
+10 - имя подраздела (6 символов).
С помощью 4-байтного относительного ад─
реса мы можем обратиться к началу любого
локального подраздела.
Внутренняя структура подразделов
Подразделы MicroDos и BAD внутренней
структуры не имеют. Подраздел IS-DOS такую
структуру имеет, но определяется она цели─
ком и полностью только этой операционной
системой.
Структура подраздела TR-DOS
Теперь рассмотрим подраздел TR-DOS. Он
является одним из центральных подразделов
на винчестере, поскольку большинство прог─
рамм работают именно с этой операционной
системой. Поэтому его мы рассмотрим наибо─
лее подробно. Структура подраздела такова:
в первых двух секторах находится описание
TR-DOS образов дисков. Описание абсолютно
аналогично по своей структуре описанию ло─
кальных дисков. Каждый диск описан 16 бай─
тами, где +0 - всегда 1 (TR-DOS), +1 - ад─
рес образа диска плюс 1, +6 - длина диска
(всегда 1,5,0,0 - поскольку длина TR-DOS
образа строго фиксирована: 1280+1 512-бай─
тных секторов), +10 - имя диска. Стандарт─
ное имя - "Disk??", где "??" - порядковый
номер диска,но его можно безболезненно для
Теневого Монитора менять.
Обратите внимание,что к адресу диска на
винчестере необходимо прибавлять 1 сектор.
Дело в том,что перед каждым диском непоня─
тно зачем существует 512-байтная область,
заполненная нулями.
Хочу также обратить внимание на макси─
мально допустимое количество образов дис─
ков в TR-DOS подразделе. Мне доводилось
встречать мнение,что их может быть больше,
чем 51. Объясняю, в чём здесь заблуждение:
дело в том,что Теневой Монитор для обраще─
ния к дискам внутри подраздела использует
16-разрядный регистр. Относительно начала
подраздела адрес 51-го диска будет #FF33,
а адрес 52-го диска был бы #010434. Именно
поэтому максимальное количество дисков в
подразделе - 51.