Inferno
#04
22 июня 2003 |
|
Sofтинка - MEMDISK - файловая система для хранения файлов в областях памяти.
MEMDISK - файловая система для памяти MEMDISK разработан для хранения файлов в областях памяти. Память может быть фрагме- нтирована, поэтому несколько микросхем I2C EEPROM могут быть использованы как один диск. Это также полезно для рамдисков в страничном ОЗУ или файлов, хранимых в EPROM. Структура MEM/0 была первой идеей.В перес- мотренной версии MEM/1 были добавлены ука- затели на родителя.Так что сейчас достато- чно одного указателя для оперирования фай- лом или каталогом и нет необходимости в запоминании указателей на элементы пути. Это упрощает, например,удаление файлов или перемещение в другой каталог. Структура диска содержимое длина описание +0 "MEM",#01 4 имя файловой системы +4 3 символа+#0 4 имя физического диска +8 structure F Є26 дескриптор файла ... structure D Є26 дескриптор каталога ... structure A Є7 дескриптор области данных Первый дескриптор файла (structure F) при- сутствует всегда. Указывает на первый файл или директорию на диске, содержит количес- тво полезного свободного пространства и указатель на цепочку свободной области (structures A). Также может указывать на родительскую директорию - значение 0 озна- чает,что это корень. Таким образом,пустой диск содержит 8-байт- ный заголовок,одну structure F и как мини- мум одну structure A. Структуры Structure F - file descriptor Structure D - directory descriptor Structure A - data area длина содержимое примечания для: байт str.F str.D str.A +0 4 указатель следующий файл only A на следующую или каталог в структуру этом каталоге +4 2 длина этой от 20 до 64 от 1 до структуры 65535 +6 1 номер версии #00 #80 ┌─────┐ +7 1 флаги │ │ +8 4 указатель на каталог,содер- │ │ родительскую жащий данный │обла-│ структуру файл / каталог │ сть │ +12 4 параметр длина │ │ файла │ дан-│ +16 4 указатель на only A первый │ ных │ порождаемую элемент│ │ структуру subdir.│ │ +20 4 дата и время упаковано │ │ +24 Є2 имя с имя имя │ │ #00 в конце файла каталога└─────┘ Все указатели и поля длины лежат в формате little Endian (менее значащий байт первым) Пример - пустой 8kB диск Выбранным для примера устройством является M24C64 - I2C 8kB EEPROM, подключенный к AY-3-8912. База указателя #E0A0, что означает: память подключена к AY (#E0 - bit 0 порта A это SDA, bit 1 это SCL.) и внутренний номер - #A0. Номер соединения #E2 используется на компьютерах TC2068 и означает: bit 4 порта A это SDA, bit 5 это SCL. Внутренний номер для микросхем M24C64 может быть в диапазо- не #A0..#AE (только чётные значения) и ус- танавливается с помощью входов E0, E1 и E2 микросхемы. адрес содержимое описание #0000 4D 45 4D 01 имя файловой системы "MEM/1" #0004 45 45 30 00 физическое имя диска "EE0" (с нулевым кодом в конце) #0008 F 00 00 00 00 нет следующего эле- мента каталога (тут начинается structure F) #000C 19 00 длина элемента (#0027-#000E) #000E / 00 00 элемент без установ- ленных флагов #0010 00 00 00 00 нет родительской структуры #0014 D3 1F 00 00 полная длина свобод- ного места #0018 27 00 A0 E0 указатель на A structure, которая начинается с #0027 #001C B5 44 22 2C дата и время форматирования: 2002-01-02 08:37:42 #0020 45 45 44 48 53 4B 00 имя диска "EEDISK" (с нулём в конце) #0027 A 00 00 00 00 нет следующих струк- тур (structure A начинается здесь) #002A D3 1F длина области (#2000-#002D) #002D / FF FF FF FF FF ... пустая область - #1FD3 байт #1FFF FF последний байт пус- той области памяти ------------------------------------------ (c) 2002-08-28 Jarek Adamski {zxvgs@yarek.com},{http://zxvgs.yarek.com}
Другие статьи номера:
Похожие статьи:
В этот день... 21 ноября