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} 
 




Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Реклама - ATRcORP из Даугавпилса желает переписываться со спектрумистами Латвии и не только.
Юмор - Анекдоты.
Реклама - Реклама и объявления ...

В этот день...   21 сентября