Virtual Worlds
#01
31 декабря 1999 |
|
Техпомощь - Dos Review 3: материал по формату дисковых операционных систем CP/M, ASC SOUND MASTER, RT11, СМ ЭВМ РАФОС.
┌────────────────────────────┐ │ ░▒▓▓█ DOS REVIEW #02 █▓▓▒░ │ └────────────────────────────┘ Теперь можно поговорить о наиболее старой, распространен- ной и проблематичной системе CP/M. В том или ином виде она использовалась на огромном коли- честве компьютеров. Многие зарубежные и отечественные производители ПК пытались использовать эту систему на своих компьютерах. Пытались де- лать это и на СПЕКТРУМ'е. Но тогда были чудесные времена, когда формат MS-DOS, а равно и ее возможности, были лишь слад- кой мечтой. Сама фирма IBM использовала эту систему при по- мощи восьмидюймовых дисководов. Тем не менее, старая восьмиразрядная система, каза- лось бы, должна прекрасно подхо- дить для многих простых компь- ютеров. В некотором роде это правильно. Но правильнее ска- зать, что ее возможности по осовместивниванию ( =:( ) - ред. ) разных компьютеров весьма скромны. Система эта создавалась для работы с текстовыми термина- лами. У нее нет средств работы с графикой! Да и с большим коли- чеством памяти могут возникнуть проблемы. Осталась только элементарная совместимость по общей памяти, тексту и формату диска. Но и тут совместимость мизерная. На СПЕКТРУМЕ весьма затруднительно вывести 80 символов в строке. Но самым интересным оказался вопрос дискового формата. Все дело в том, что на восьмидюймо- вых дисках было 77 дорожек и на каждой размещались 26 секторов по 128 байт. Вроде бы, проблема разрешима и диски можно прочитать. Однако, почитаем соответствующую литера- туру. Весьма часто можно видеть ссылку на такую книгу: Уейт М. Ангермейер Дж. Операционная система CP/M. Пер. с англ. М: Радио и связь, 1986. Но при детальном осмотре ока- залось, что это явно пособие в работе, но не по программирова- нию в этой системе. Такой же оказалась книга: Н. В. Макарова и др. Работаем на персональном компьютере РОБОТРОН 1715 Л: Машиностроение, 1989. Похоже, что эта книга писалась во времена, когда под словом КОМПЬЮТЕР понималась: Большая Очень Умная, Дорогая и Сложная Машина с Большим Экраном Типа Калькулятора Для Бухгалтера. Еще можно упомянуть подробную и научную, но устаревшую и уда- ленную от практики книгу: Дейтел Г. М. Введение в операционные системы. Пер. с англ. под ред. В.С. Штаркмана. М: Мир, 1987 В 2 т. Несколько устаревшая, на мой взгляд, но весьма полезная для создателей ОС книга. Но описы- ваемые там методы весьма сложны, и на практике описывается как раз старая CP/M под восмидюймо- вик. В результате стнет понятно, что в этой системе разные машины используют практически любой возможный формат разбивки диска. Только на РОБОТРОН'е стандартно их три. Немного отличаются мето- ды сегментации. В результате су- ществуют две модели компьютера КОРВЕТ, не совместимых между со- бой ( Когда-то мне об этом пове- дала учительница информатики из нашей школы ). Но с КОРВЕТ'ом как со школьным компьютером и так почти покончено, ибо су- ществует масса несовместимых между собой школьных агрегатов. А ведь постановка CP/M на КОРВЕТ называлась одной из самых удач- ных. Называлась теми, кто ее присобачивал к компьютеру ОРИОН- 128, на котором не только дис- ков, но контроллеров с портами существует пяток версий. То же самое можно сказать и о других компьютерах. Поэтому трудновато будет запустить на РОБОТРОН'е и даже на КОРВЕТ'e игру от PROFI или ATM-TURBO. Но оказывается, что некоторая совместимость есть, формат дис- ков, описываемый ниже, хотя и является наиболее применительным для КОРВЕТ'а, вполне читаем и на других компах, несмотря на то, что их операционки называются вроде по разному: CP/M (-80) и MICRODOS, к тому же разных вер- сий. Стало понятно, что читать диски от разных компов можно, но как их различать - неизвестно. Вот и приходится с трудом разбираться что к чему. К сожа- лению, я никогда вживую не видел ATM-TURBO. Поэтому про него я ничего пока не буду говорить, а попытаюсь сначала его поглядеть. Про КОРВЕТ и ОРИОН немало гово- рилось в журналах РАДИО и РА- ДИОЛЮБИТЕЛЬ. Я также пытался изучить диск от PROFI, но с ним у меня получилась печальная ис- тория. Я попросил сделать копию этого единственного диска при помощи NEXTCOPY. В результате исходник испортился, а на мой диск скопировались пара дорожек, содержащих каталог. И при помощи его я и узнал общие принципы хранения информации на таком диске. Разбивка была, как и на КОР- ВЕТ'е и других машинах, на 5 секторов по 1024 байта. И такой формат следует признать общим. Описатели каталога состояли из 32 байтов, из которых 16 послед- них явно описывали блоки на ко- торых были расположены байты. И только много позже я узнал некоторые подробности. К этой поре я уже походил в библиотеку и поставил себе эмулятор этой системы: MYZ80 v 1.0 by Simeon Cran. Он, правда, использовал виртуальный диск, который не совсем похож на реальные. Но некоторые интересные вещи я от- туда извлек. Потом я подробно изучил документацию к КОРВЕТ'у и еще много чего выяснил. Все осложняет наличие самых разнообразных единиц измерения: от записей по 128 байт, до экстентов и блоков по 16КБ и 4КБ. И похоже, что все размеры отличаются в зависимости от вер- сии. Но общие принципы не меняются. Где-то на диске расположен ката- лог: у PROFI - на второй дорож- ке, у РОБОТРОН'а - на третей. На файл уделяется по 32 байта, но в старых системах было и по 33. Описатель содержит в себе цепочку байтов - последователь- ность блоков, в которых поме- щается файл. Таким образом, на диске эмулятора можно было соз- давать файлы до 32768 ( 16384 ) байт длиной. Но для систем с жесткими дисками максимальная упоминаемая длина достигала 8МБ. Также ограничивается и размер диска: около 256МБ. Но и эту проблему можно преодолеть увели- чением размера блоков. Также упоминается возможность созда- вать цепочки из нескольких описателей для одного файла, всего до 16. А отдельные куски больших файлов получили название экстентов. На следующий описа- тель раньше указывал 33-ий байт. Позже за это стал отвечать байт с другим номером. Каталоги в этой системе не поддерживаются. Но существует одна примечательная возможность. Дело в том, что раньше на одну машину приходилось по множеству пользователей. А даже гибких и, тем более, жестких дисков было мало. Надо было решать вопрос о разделении данных на дисках. Поэтому было решено разбить диск на несколько USER-областей, все- го до 16, но теоретически до 255. Каталог был общим, но в описателе каждого файла содержа- лась пометка принадлежности фай- ла к определенной области. Таким образом, на одном жестком диске существовало несколько логичес- ких, как и в MS-DOS. Но диск при этом рассматривался как единое целое и процедуры загрузки, за- писи и удаления файлов, а также чистящие утилиты, не определяли принадлежность файла к опреде- ленной области и разделение было чисто внешним. Теперь можно рассмотреть опи- сатель файла более подробно: 0-ой байт: он как раз и содер- жит номер USER-области, к кото- рой принадлежит файл. Используя его можно организовать не очень развесистую, но весьма обширную структуру каталогов. Все системы ограничивают число областей до 15, но при помощи небольшой пе- ределки эту цифру можно увели- чить до 255. Если файл удален, то нулевой его байт равен #E5. Байты 1-8 содержат имя файла, а байты 9-11 - его расширение. У КОРВЕТ'а старшие биты этих бай- тов содержат атрибуты: 9-ый - только чтение, 10-ый - системный файл. Байты 13-15 содержат системную информацию. На старых системах и на эмуляторе использовался толь- ко байт 15. Он содержал длину файла в записях по 128 байт каж- дая. Остаток сектора может быть заполнен кодом #E5. У КОРВЕТ'а байт 12 - номер текущего экстен- та, номер того 16-ти килобайтно- го блока файла, которому соот- ветствует текущий описатель. Байт 13 у него указывает коли- чество байтов в последней записи файла, общее число которых также содержатся в байте 15. Байты 16-31 содержат карту размещения файла. Она состоит из восьми пар байт, каждая из кото- рых содержит значения блока, на котором содержится часть файла. В эмуляторе размер блока равен 4096 байт, на РОБОТРОН'е и КОР- ВЕТ'е - 2048 байт. В принципе, данной информации уже достаточно для чтения и за- писи файлов. Тем не менее, на старых системах на диске также размещалась битовая карта на 243 байта. Каждый ее бит отвечал за кластер из 8 секторов ( 8*128=1024 ). При записи файла устанавливался первый найденный сброшенный бит и в описатель заносился номер соответствующего блока. Однако, для записи нового фай- ла достаточно просканировать ка- талог, хотя эту операцию не сов- сем удобно реализовать програм- мно, к тому же надо пропускать удаленные файлы. Лучше сначала создать таблицу свободных блоков в памяти и сделать это при пер- вом же прочтении диска, а затем, используя и корректируя ее в па- мяти, перезаписывать только измененный каталог. Поэтому я не нашел больше никакого упоминания о подобной таблице размещения в более поздних моделях компьюте- ров. Тем не менее, нельзя не ска- зать, что данная система исполь- зует самый оригинальный способ сегментирования. Прочие системы размещают информацию о сегментах либо в общей таблице, и тогда каталог так или иначе ссылается на один из ее пунктов. Другие содержат ее на отдельных секто- рах для каждого файла, и в ката- логе делается ссылка на такие сектора. Но при копировании ра- зумно было бы рассматривать та- кие сектора, как сегменты файла. IS-DOS в этом смысле весьма ори- гинальна и использует и таблицу и сектора, а также позволяет создавать вообще не сегментиро- вание секторы. Ее авторы, по ви- димому, изучали CP/M, но приня- тый на ней способ сегментации так и оказался уникальным. В документации на КОРВЕТ стандартным также являлся самый первый сектор на диске - его 128 байт содержат размеры всех об- ластей на диске: и размер секто- ров в байтах, количество их на дорожках - и если эта информация вместе с форматом каталога яв- ляется более-менее стандартной, то можно постараться и написать универсальную читалку-писалку на диски всех систем, претендующих на CP/M совместимость. В нем содержится: ┌───────┬───────────────┬─────────────────────────────────────┐ │Байты │Стандартно │Назначение │ ├───────┼───────────────┼─────────────────────────────────────┤ │0-1 │0 или #BE80 │Адрес загрузки ОС │ │ │ │ │ │2-3 │0 или #BF00 │Адрес запуска ОС │ │ │ │ │ │4-5 │0 или #0D │Количество секторов под ОС │ │ │ │ │ │6 │0 │Размер диаметра НГМД (133мм) │ │ │ │ │ │8 │0 │96 дорожек на дюйм (1 - 48 дор.) │ │ │ │ │ │9 │1 │Данные вектора перевода секторов │ │ │ │(0 - не используется) │ │ │ │ │ │10 │3 │Размер сектора: │ │ │ │(0 - 128 байт │ │ │ │ 1 - 256 │ │ │ │ 2 - 512 │ │ │ │ 3 - 1024) │ │ │ │ │ │11 │1 │Двухсторонний НГМД (четные дорожки │ │ │ │сверху, 0 - односторонний) │ │ │ │ │ │12-13 │5 │Количество секторов на дорожке │ │ │ │ │ │14-16 │0080 │Количество дорожек на одной стороне │ │ │ │(TPD, TPD'=2TPD) │ │ │ │ │ │16-17 │40 │Количество логических записей по 128 │ │ │ │байт на дорожке (SPT) │ │ │ │ │ │18 │4 │Фактор сдвига ( =LOG2(BLS/128) ) │ │ │ │ │ │19 │15 │Маска расположения блока данных │ │ │ │( =BLS/128-1 ) │ │ │ │ │ │20 │0 │Маска размера блока │ │ │ │( =BLS/1024-1-DSM/256 ) │ │ │ │ │ │21-22 │#187 │Количество блоков данных на диске │ │ │ │( DSM=SPT*(TPD'-OFF)*128/BLS-1 ) │ │ │ │ │ │23-24 │#7F │Число элементов оглавления минус 1 │ │ │ │( DRM ) │ │ │ │ │ │25-26 │2 │Количество блоков под оглавление │ │ │ │( =32*DRM/BLS) │ │ │ │ │ │27-28 │#0020 │Размер вектора контроля оглавления │ │ │ │(Контрольная сумма каталога ?) │ │ │ │ │ │29-30 │3 │Количество дорожек под операционную │ │ │ │систему, включая нулевую (OFF) │ │ │ │ │ │31 │#E7(#F1) │Контрольная сумма этого сектора │ │ │ │ │ │32-128 │0 │Резерв для вектора перевода секторов │ └───────┴───────────────┴─────────────────────────────────────┘ Осталось не выясненным, где хранится BLS - размер блока дан- ных ( 2048/4096 ) как таковой. Но его можно рассчитать из 19-го байта - маски блока данных. Прошло время, и мне встрети- лись также диски от других CP/M/MICRODOS совместимых сис- тем: Вектор-06Ц, АТМ и Скор- пионовские. Под Вектор-06Ц у меня был эму- лятор с внешней программой MST, работающей с егошними дисками. Но, к сожалению, наиболлее глюч- но она работает в процессе фор- матирования дисков - много везде плохих дорожек, а в других сис- темах диск форматируется нор- мально. Посему точно ничего ска- зать не берусь, но каталог вроде стандартный. Под АТМ диски я форматировал Honey Commander'ом V 1.0, како- вая версия еще работала на любом 128'ом. Диск - как в TR-DOS 16 секторов по 256 байт, блоки вро- де по 4096, но НИКАКОГО признака для их определения, кроме байтов #E5 в наальных секторах. Рабо- тать с ними, в общем, возможно. Установленые седьмые биты первых двух букв расширения файла соот- ветствуют атрибутам READ ONLY и SYSTEM, что для вышеупомянутого командера означает HIDDEN: файл с такии битом просто так в ката- логе уже не показывается. Также как и в КОРВЕТ'е используются байты 12 и 15 описателя файла. Под Скорп CP/M адаптировал гн. MOA аж в 1992. Плохо это, или нет, да только образчик такого диска у меня пока один, под наз- ванием SEXDEMO - есть на нем ка- кие-то картинки и музоны, пара исполняемых файлов... Только вот Скорпа-то у меня нетуть, под эмулем прут каки-то READING ERRORS 8-!, а при детальном ос- мотре файлов в них обнаружились то ли разрывы, то ли дырки, за- битые нулями. Да и структура ка- талога заметно отличалась от стандартной: в табличке описания местонахожления блоков файла на диске было заметно, что на каж- дый блок уделяется не по паре байт, а по одному байту. Это и понято: при размере блока 4096 байт на диске их поместится око- ло 150. Но эти разрывы в катало- ге, заполненые нулями, застав- ляют меня подождать других об- разцов или информации. Таким образом, CP/M совмести- мость компьютера абсолютно ниче- го не говорит о разбивке его диска. Но в целом, приведенной информации должно хватить для работы хотябы со стандартными КОРВЕТ'овскими дисками. ASC SOUND MASTER А еще, говорят, есть такой хи- трый ASM - музыкальный редактор. Не говорю о его музыкальных воз- можностях, но вспомнил я, что с некоторых версий он ваще-то об- ладает еще и своим, известным только автору, дисковым форма- том. Ну и, конечно, я не нашел причины, чтобы на асмовских дис- ках полазать. Собсно гря, мне нужды до такого дела нетуть. Да вот компилировать музоны не всегда нужно под адрес 49152. Мудрые кодеры, надо думать, на- писали бы свой компилятор - ведь немало их под ST понаписали. А вот лазить по хитрому диску ник- то не захотел - написали реком- пилер под другой адрес. Я тоже особо возится не стал, так что может в нижеследующем описании шо не так - не проверял пока особо-то. Короче разбивка диска такая. Нулевая дорожка совсем хитрая: первые 8 секторов по 512 байт, а последний - на 1024 байта. Ну а остальные - нормально, 10 секто- ров по 512 байт. На нулевой дорожке распола- гается каталог. Сколько секторов он может занимать я не знаю, при мне последний сектор всегда пус- товал. На запись в каталоге приходит- ся по 16 байт. Нулевая запись - первые 16 байт диска - особые. Там содержится строка: " ADS 1.00 (C) ASC " - по ней легко определить принадлежность диска к отряду "музыкальных". У остальных записях о файлах: Байты 0-7 - имя. Байты 8-10 - расширение. Оно может быть PAT, SAM, IMG, а мо- жет и еще какое. Следующий байт, под номером 11, вместе с младшим полубайтом 12-го байта содержат номер пер- вого блока ( кластера ) файла. Об этом см. ниже. Остальные биты 12-го байта - признак состояния файла, а имен- но если там содержится число 1 - это нормальный файл; 5 - защищеный от удаления или записи файл; 0 - удаленый файл. Потом байты 13-14 записи - длина файла в байтах. Байт 15 - всегда #00!!! Теперь пару слов о сегмента- ции. Структура диска удивительно похожа на диск MS-DOS. Куски файла могут занимать произволь- ное место на диске, а в записи о файле указывается ссылка на пер- вый кусок. Только на данном фор- мате диска размер куска равен одному сектору и поэтому его но- мер можно называть номером клас- тера, номером блока или смеще- нием до абсоютного сектора. На- хождение разбросанных по диску таких вот кусков осуществляется при поможи таблицы аналогичной FAT 12 бит. Две копии этой таб- лицы размером по 5 секторов ко- торые находятся на первой дорож- ке. Когда нужно прочитать файл, номер первого куска которого за- писан в каталоге, читают вначале этот первый кусок, а затем опре- деляют, что содержится в таблице в ячейке с номером равным номеру первого куска файла. А там со- держится номер второго куска. Теперь его читают и повторяют процесс с третим. И так до тех пор, пока в таблице будет не но- мер следующего куска, а признак конца файла. При записи, в таблице ищут ячейки, содержащие признак незанятого места на диске, и записывают туда номер следующего найденого пустого места, а на сектор, соответствующий номеру ячейки таблицы, записывают нуж- ную часть файла. Проблема в том, что ячейки имеют размер 12 бит = 1.5 байта, поэтому приходится извлекать нужную половинку из трех байт командами сдвига. Первая ячейка таблицы всегда содержит число #AC - медиа- дискриптор для MS-DOS; #000 - признак пустого места на диске; #FFF - признак конца файла - последняя ячейка, которая содер- жит номер куска данного файла - последнего куска. Словом, объяснить на словах это трудно, ежели кому надо разбираться - изучайте на прак- тике, а краткое описание я за- кончил. RT11 Были еще у меня разные диски. На многих я долго и упорно ко- пался. Но, видать, без всякой информации трудно понять что- либо сразу. Прежде всего, попались мне в руки диски от ДВК. Но они были совершенно нечитаемые несмотря на то, что об их совместимости со стандартными форматами раз- бивки упоминалось не раз. Чуть больше повезло мне с дис- ками от УКНЦ. Читались они прос- то прекрасно, углядывалось имя диска, загрузчик... Но не было никакого намека на присутствие каталога. В дальнейшем у меня появился доступ к этим машинам и специалист по ним. Но в докумен- тах на них я не нашел никакой пользительной информации на нуж- ную тему и, даже отформатировав диск и записав на него известные файлы, с известным каталогом, я не нашел его на диске, как тако- вого. Была только какая-то таб- лица, структурой напоминавшая то ли каталог, то ли таблицу разме- щения файлов, которой кстати быть не должно, т. к. по полу- ченной информации структура дис- ка напоминает СПЕКТРУМ'ский. По- том, у меня еще завелся эмулятор ОС RT-11, совместимой с форматом FODOS на УКНЦ, да еще и конвер- тилка с дисков такого формата. Но, опять же, ни дока, ни ката- лога, а только чушь всякая. В общем, вопрос тут остался откры- тым и пока есть еще кое-какие надежды. Целый год я надеждами этими жил, а потом опять пошел в библиотеку. Перерыл целую кучу книжек. Вначале выяснилось, что, в общем-то, все идет от этой са- мой RT-11, а от нее "откопирова- лись" всякие там РАФОС, РАФОС 2, ФОДОС, ФОДОС 2, ОС ДВК и чего-то там еще - в общем, все то, что использовалось на старых машинах СМ и серии "Электроника". На них, как и, впрочем, на MS-DOS и на CP/M, более важной казалась программная совместимоть. В результате - опять секреты, а может - стыдно кому за содранное с иностранных образцов. Словом про диски от сиих совместимых ОС сказано мало. Са- мую подробную информацию я нашел в справочнике: Операционная система СМ ЭВМ РАФОС Составители: А.И. Валиков, Г.В. Вигородчик, А.Ю. Воробьев, А.А. Лукин под общ. ред. В.П. Семина. М:Финансы и статистика, 1984 г. - 207 с. Оказывается, система РАФОС мо- жет еще работать с дисками ДОС СМ и ЕС ЭВМ. Скорее всего, это тоже влияет на хитрый формат каталога. Почему его нигде не видно? Да дело в том, что все символьные строки упакованы в хитрый ( и, похоже, старющий ) такой код - RADIX-50. Практичес- ки это небольшая компрессия: три буквы - в два байта. Но набор букв, между прочим, состоит не из 32 символов - по пять бит на букву, да еще бит в паре байт остается, а раскодируется все простым тебе сдвигом - для ката- лога, вроде, достаточно. Но нет, тут используется набор из 40 символов: букв, цифр и три спецзнака. Вроде нужно 6 бит на символ - в два байта не втис- нуться. Но это - если работать сдвигами, а если умножением - то получится: 40*40*40 = 64 000 - вполне двухбайтное число. И получаем: Код_Первой_Буквы*1600 + +Код_Второй_Буквы*40 + +Код_Третей_Буквы = более #FFFF ни как ни получится, если код буквы лежит в диапазоне от 0 до 39! У "пробела" код - ноль, у букв A-Z - коды от 1 до 26. Далее идут спецсимволы: "точка в кру- жочке", по нашему "$" - код 27, "точка" - код 28, "/" - код 29 - этим символом замещают символы, не имеющие аналогов в коде RADIX-50. Ну а цифры "0"-"9" - коды 30-39. Кодиование и декодирование осуществляется операциями умно- жения и деления. Ну а дальше - проще. Весь диск разбит на блоки по 512 байт, на УКНЦ это - размер сектора и нумеруются эти блоки от нуля и до некоторога максиму- ма - общего числа блоков. Число это зависит от количества доро- жек и секторов на них: 10 или 9 Блок 0 - загрузочный сектор. Начинается он с кода #A0, есть и другие примечательные байты, но как по ним определять количесво сторон, дорожек и секторов - по- ка неизвестно. Блок 1 - содержит: в конце - имя пользователя, диска и опрерационной системы, а в нача- ле - таблица замещения дефектных блоков. Как в ней кодируются эти плохие бдоки - нигде не написа- но, кроме того, там присутсвуют кое-какие всегда постоянные бай- ты. Блоки 2-5 - сама система или пусто - если диск не загрузоч- ный. Начиная с блока 6 находится каталог. Он состоит из одного или нескольких сегментов - каж- дый по 1024 байта - 2 блока. Ко- личество сегментов может зада- ваться при инициализации диска. Принято, что вся информация в каталоге двухбайтная - всего 512 слов ( пар байт ) в сегменте. Первые пять слов - служебные: Слово 1 - число сегментов в каталоге. Слово 2 - номер следующего сегмента: сегменты образуют спи- сок, последний сегмент имеет но- мер ноль. Слово 3 - количество занятых сегментов, изменяется только в первом сегменте. Слово 4 - число дополнительных байт в каждой записи о файле. Система использует 14 байт - 7 слов на файл, но специальные программы могут иметь свои сег- менты со своей длиной описателя файла. Слово 5 - номер начального блока первого файла данного сегмента. Стандартная запись о файле - 7 слов: Слово 1 - тип записи в файле: #0100 - временный файл, при нем используесся слово шесть #0200 - удаленый файл - пустое место на диске #0400 - нормальный файл #8400 - READ ONLY #0800 - конец сегмента, но не каталога, конец каталога определяется если сегмент этот - последний исполь- зованый. Не обязательно используется весь сегмент до конца, переход на но- вый сегмент, возможно с другой длиной описателя файла, может произойти в любом месте. Слова 2, 3, 4 - имя и расшире- ние в коде RADIX-50 - 6 и 3 сим- вола. Слово 5 - длина файла или пус- того места. Слово 6 - для временного файла в младшем байте номер канала связанной с этим файлом задачи, номер которой - в старшем байте. Слово 7 - дата создания файла: биты 0-4 - год-1972 (т.е.1972 - 2004) биты 5-9 - день (1-31) биты 10-14 - месяц (1-12) Могут быть и дополнительные байты. Положение файла на диске приходится определять сложением длин файлов начиная с первого файла данного сегмента и по файл, идущий перед заданным, плюс пятое слово данного сегмен- та. Похоже на мотание ленты в магнитофоне по счетчику, в про- чем данная ОС ведет свое летоис- числение с ленточных времен. Напосдедок добавлю, что в ОС РА- ФОС возможны виртуальные диско- воды-файлы, структура которых повторяет разбивку диска.
Другие статьи номера:
Похожие статьи:
В этот день... 21 ноября