Из журнала Info Guide #10, Рязань, 05.2007 Структура разметки винчестера на компьютере 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.