TomCaT
10.01.2010, 14:49
Прочитав тут (http://zx.pk.ru/showpost.php?p=247267&postcount=635), задумался, как все-таки правильно должен поступать загрузчик, если ему нужно работать с более, чем 255 секторами.
Понятно, если секторов меньше 256, данные в TR-DOS-файловой системе можно объединить в файл <B> соответствующих размеров, и этот файл лего копировать и даже переименовывать, потому что при загрузке и запуске указатель дорожки-сектора 5CF4 уже находится внутри этого единственного файла, и все места данных поэтому легко вычисляются загрузчиком.
Если данных больше 255 секторов - то вынуждена разбивка на несколько файлов, один из которых <B>, содержащий загрузчик. При запуске загрузчика по 5CF4 ему известны все места данных из этого же файла загрузчика. Но как правильно поступать с выяснением мест остальных файлов?
Представляется несколько вариантов:
1. Фиксированный порядок без проверок - загрузчик предполагает определенный порядок следования файлов (часто идущих сразу за <B> файлом, имеющих одинаковое с ним имя, но написанное строчными буквами и с цифрой, указывающей порядок).
+++: крайне прост в реализации, минимальная длина загрузчика, независимость от имен файлов (их можно переименовывать, но сохраняя порядок следования).
---: отсутствие "защиты от дурака", нарушение порядка пользователем при копировании или еще из-за чего нибудь, обычно приводит к сбросам, а теоретически - может привести и к худшим последствиям, вроде порчи дискеты ("дискетная порча" :) ).
2. Фиксированный порядок с проверкой порядка имен файлов перед загрузкой - как в (1), но в любом месте до обращения к дополнительным файлам (чем раньше, тем лучше) загрузчик проверяет порядок их следования. При неправильном порядке выводит предупреждение о невозможности загрузки и подсказку о нужном порядке файлов.
+++: достаточно простая реализация, защита от неправильного порядка файлов.
---: в случае нарушения порядка продолжение загрузки невозможно, необходимость приведения файлов в правильный порядок вызывает неудобства, зависимость от имен всех файлов, кроме <B>.
3. Фиксированный порядок с проверкой порядка файлов перед загрузкой по различным их признакам - как в (2), но загрузчик проводит проверку наличия файлов по различным признакам (проверяются только файлы, следующие за <B>-файлом, по полям имени-типа, полям старт-длина в заголовке, контрольной сумме или хэш коду...). Может проверяться один или несколько признаков, но не только лишь "имя-тип" (как было в (2) ).
Если проверяется 1 признак, загрузчик проверяет только наличие-отсутствие файла, при отсутствии выдает соотв. сообщение (хотя 1 признака явно мало, например, странное выходит сообщение "не найден файл с контрольной суммой такой-то" - ведь имя его не проверяется).
Если проверяется несколько признаков, и имя в том числе, то загрузчик принимает решение о том, нужный ли это файл или какой-то случайно похожий, автоматически - и тогда либо грузит данные, либо выдает сообщение (в котором можно указать и имя файла + требуемые его признаки).
+++: защита от неправильного порядка файлов, независимость от имен файлов.
---: несколько сложный загрузчик, проверки занимают время и требуют "езды по диску", в случае нарушения порядка продолжение загрузки невозможно, необходимость приведения файлов в правильный порядок вызывает неудобства, проверки содержимого и других частей файла, кроме имени, осложняют модификацию файлов.
4. Произвольный порядок с проверкой имен файлов перед загрузкой - как в (2), но загрузчик проверяет не порядок следования определенных имен файлов, а только наличие файлов с данными именами на диске. При успешной проверке расположение файлов запоминается загрузчиком (в таблице, или вписываются в нужные места кода). Загрузчик выдает предупреждение о не найденных файлах.
+++: независимость от порядка файлов.
---: несколько сложный загрузчик, зависимость от имен всех файлов, кроме <B>.
5. Произвольный порядок с поиском файлов по различным признакам - как в (3), но загрузчик сперва проверяет файлы с заданными именами, а затем ищет недостающие файлы с похожими другими признаками по всему диску. Загрузчик может спросить пользователя, принять ли "похожий" на нужный файл как свой, но переименованный. Правда, в этом случае такой вопрос будет задаваться при каждой загрузке. Или загрузчик должен сам переименовать файл или "запомнить" на будущее его новое имя (в обоих вариантах загрузчик должен писать на дискету).
+++: независимость от порядка файлов, независимость от имен файлов.
---: очень сложной и объемистый загрузчик, проверки могут занять много времени и "заелозить" дискету, проверки содержимого и других частей файла, кроме имени, осложняют модификацию файлов.
Так как вариантов не очень много, интересно было бы узнать мнение общественности...
Понятно, если секторов меньше 256, данные в TR-DOS-файловой системе можно объединить в файл <B> соответствующих размеров, и этот файл лего копировать и даже переименовывать, потому что при загрузке и запуске указатель дорожки-сектора 5CF4 уже находится внутри этого единственного файла, и все места данных поэтому легко вычисляются загрузчиком.
Если данных больше 255 секторов - то вынуждена разбивка на несколько файлов, один из которых <B>, содержащий загрузчик. При запуске загрузчика по 5CF4 ему известны все места данных из этого же файла загрузчика. Но как правильно поступать с выяснением мест остальных файлов?
Представляется несколько вариантов:
1. Фиксированный порядок без проверок - загрузчик предполагает определенный порядок следования файлов (часто идущих сразу за <B> файлом, имеющих одинаковое с ним имя, но написанное строчными буквами и с цифрой, указывающей порядок).
+++: крайне прост в реализации, минимальная длина загрузчика, независимость от имен файлов (их можно переименовывать, но сохраняя порядок следования).
---: отсутствие "защиты от дурака", нарушение порядка пользователем при копировании или еще из-за чего нибудь, обычно приводит к сбросам, а теоретически - может привести и к худшим последствиям, вроде порчи дискеты ("дискетная порча" :) ).
2. Фиксированный порядок с проверкой порядка имен файлов перед загрузкой - как в (1), но в любом месте до обращения к дополнительным файлам (чем раньше, тем лучше) загрузчик проверяет порядок их следования. При неправильном порядке выводит предупреждение о невозможности загрузки и подсказку о нужном порядке файлов.
+++: достаточно простая реализация, защита от неправильного порядка файлов.
---: в случае нарушения порядка продолжение загрузки невозможно, необходимость приведения файлов в правильный порядок вызывает неудобства, зависимость от имен всех файлов, кроме <B>.
3. Фиксированный порядок с проверкой порядка файлов перед загрузкой по различным их признакам - как в (2), но загрузчик проводит проверку наличия файлов по различным признакам (проверяются только файлы, следующие за <B>-файлом, по полям имени-типа, полям старт-длина в заголовке, контрольной сумме или хэш коду...). Может проверяться один или несколько признаков, но не только лишь "имя-тип" (как было в (2) ).
Если проверяется 1 признак, загрузчик проверяет только наличие-отсутствие файла, при отсутствии выдает соотв. сообщение (хотя 1 признака явно мало, например, странное выходит сообщение "не найден файл с контрольной суммой такой-то" - ведь имя его не проверяется).
Если проверяется несколько признаков, и имя в том числе, то загрузчик принимает решение о том, нужный ли это файл или какой-то случайно похожий, автоматически - и тогда либо грузит данные, либо выдает сообщение (в котором можно указать и имя файла + требуемые его признаки).
+++: защита от неправильного порядка файлов, независимость от имен файлов.
---: несколько сложный загрузчик, проверки занимают время и требуют "езды по диску", в случае нарушения порядка продолжение загрузки невозможно, необходимость приведения файлов в правильный порядок вызывает неудобства, проверки содержимого и других частей файла, кроме имени, осложняют модификацию файлов.
4. Произвольный порядок с проверкой имен файлов перед загрузкой - как в (2), но загрузчик проверяет не порядок следования определенных имен файлов, а только наличие файлов с данными именами на диске. При успешной проверке расположение файлов запоминается загрузчиком (в таблице, или вписываются в нужные места кода). Загрузчик выдает предупреждение о не найденных файлах.
+++: независимость от порядка файлов.
---: несколько сложный загрузчик, зависимость от имен всех файлов, кроме <B>.
5. Произвольный порядок с поиском файлов по различным признакам - как в (3), но загрузчик сперва проверяет файлы с заданными именами, а затем ищет недостающие файлы с похожими другими признаками по всему диску. Загрузчик может спросить пользователя, принять ли "похожий" на нужный файл как свой, но переименованный. Правда, в этом случае такой вопрос будет задаваться при каждой загрузке. Или загрузчик должен сам переименовать файл или "запомнить" на будущее его новое имя (в обоих вариантах загрузчик должен писать на дискету).
+++: независимость от порядка файлов, независимость от имен файлов.
---: очень сложной и объемистый загрузчик, проверки могут занять много времени и "заелозить" дискету, проверки содержимого и других частей файла, кроме имени, осложняют модификацию файлов.
Так как вариантов не очень много, интересно было бы узнать мнение общественности...