Важная информация

User Tag List

Страница 5 из 27 ПерваяПервая 123456789 ... ПоследняяПоследняя
Показано с 41 по 50 из 265

Тема: SteinBlume. CP/M Disk Image Explorer (ex ATM CP/M Explorer)

  1. #41
    Veteran
    Регистрация
    06.02.2009
    Адрес
    Кемерово
    Сообщений
    1,328
    Спасибо Благодарностей отдано 
    58
    Спасибо Благодарностей получено 
    162
    Поблагодарили
    129 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В общем, когда ты просматриваешь каталог, ты в первую очередь должен ориентироваться на те записи, у которых номер экстента = 0, если номер экстента > 0, то такую запись пропускаешь. После этого делаешь второй проход и уже смотришь на остальные записи по совпадению номера юзера и имени файла (атрибуты в расширении игнорируешь).
    ПК8010 "Корвет"+ExtRom+AY, Atari 65XE+SDrive, Дельта-С(52ИС)+AY, Scorpion ZS 1024+SMUC

  2. #42
    Сибирский антропоморфн Аватар для Black Cat / Era CG
    Регистрация
    06.05.2010
    Адрес
    Бердск, НСО
    Сообщений
    4,558
    Спасибо Благодарностей отдано 
    922
    Спасибо Благодарностей получено 
    871
    Поблагодарили
    635 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от marinovsoft Посмотреть сообщение
    Не, не каша.
    А разве не каша?
    Там просто 2 варианта: сделать вид, что ничего не было и пропустить некорректную запись
    или прокричать о том, что образ какой-то покореженный

    Отправил на почту про АБР
    Личка заполнена! И чистить я ее не буду! Пользуйтесь адекватными средствами связи! Спасибо.

    Seamos realistas y hagamos lo imposible!

    Ernesto Che Guevara
    Переехал сюда: SteinBlume (ex ATM CP/M Explorer)
    http://era-cg.su

    Скрытый текст

    Speccy2010 r2 (Спасибо m.d. & xlat),
    Sinclair ZX Spectrum + (Спасибо stepmotor),
    ZX Evolution rev.C + 5'25 FDD Epson SD-700AA + NedoPC PAL-Coder (Спасибо m.d. & xlat)
    [свернуть]

  3. #43
    Banned
    Регистрация
    05.10.2016
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,080
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Первый экстент файла всегда имеет номер в поле EX (офсет 12) равным 0, только при размере CP/M-блока в 1 кб или 2 кб. Если же размер блока 4 кб (также 8 или 16 кб), то если размер файла более 16К, то номер первого экстента будет не 0, а 1. При блоках в 8 кб и размере файла более 32К номер первого экстента будет 2 или 3. И так далее. Поэтому для составления каталога при размере блока более 2 кб, алгоритм поиска записей с номером экстента 0 не годится. Тогда надо искать экстенты, чей номер меньше числа: размер блока разделённого на 2К, т.е в случае блока в 4К это 0 и 1, в случае блока в 8К это 0...3, а в случае блока в 16К это 0...7.

    Вопрос к топик-стартеру. Как Вы высчитываете размер файла? Если при блоках 1 или 2 кб, можно просто просуммировать число лог.секторов в поле RC (офсет 15) всех экстентов файла, то при больших размерах блока, такой алгоритм не годится. В этом случае надо суммировать блоки описанные в области 10...1F каждого экстента. Затем умножить полученное число блоков на число лог.секторов в блоке. Затем отнять число (16*1024/128). И к результату прибавить число из поля RC последнего экстента файла

    Об ошибках. При попытке открыть образ реально рабочей дискеты возникает сообщение "Превышен максимально допустимый номер блока" и приводится смещение 5010. Каталог (при его размещении с 4-й дорожки) в файле ODI занимает адреса 4000...4FFF, т.е ровно 4 кб, как и описывает маска каталога 0CH в DPB. А офсет 5010 попадает на номер первого блока первого экстента в уже 5-м килобайте каталога, хотя его размер всего 4 кб. Таким образом Вы просматриваете каталог вне области реального каталога. Может быть Вы начинаете просмотр каталога не с офсета 4000 (а точнее со смещения число сист.треков * число лог.секторов в треке * 128). Или может Вы ориентируетесь не по числу экстентоа каталога, а по его размеру и неверно высчитали размер каталога, который равен: число экстентов каталога умножить на 32. Не надо считать размер каталога по маске каталога, т.е по числу единичных битов в маске каталога умноженных на размер блока. В некоторых реализациях дат файлов в CP/M, даты хранятся в области за каталогом, а чтобы это не затирали файлы число битов в маске увеличивают, отчего считая размер каталога по маске каталога, Вы получите неверный размер каталога.

    Кстати в блоке 10...1E в BOOT-секторе расположен только DPB. DPH в BOOT-секторе КОРВЕТА и ОРИОНА вообще нет, он только в теле CP/M-BIOS. Вы называете этот блок DPH,DPB ошибочно. Правильнее называть это только DPB. А в полях 8...0F дискеты тоже не DPH, а физические параметры диска. Они не для CP/M (точнее не для BDOS), а для BIOS, чтобы он мог узнать формат (DD/DS или FM/MFM), число сторон и число физических секторов в треке. Но это тоже не называется DPH. А всё вместе это называется ИНФО-блок дискеты.

    В поле размер диска в блоках в DPB дискет КОРВЕТА стоит число 184H, что соответствует 388, отчего дискета используется не на 780К, а только на 778К. Это ошибка, которую я повторил и для ОРИОНА, чтобы была совместимость с КОРВЕТОМ. Впоследствии эту ошибку я исправил и в моих форматёрах сюда записывается 185Н, что даёт возможность использовать весь диск. Убедиться в этом можно запустив команду 'STAT DSK:' или 'POWER DISK'.
    Последний раз редактировалось barsik; 28.02.2017 в 13:26.

  4. #44
    Veteran
    Регистрация
    06.02.2009
    Адрес
    Кемерово
    Сообщений
    1,328
    Спасибо Благодарностей отдано 
    58
    Спасибо Благодарностей получено 
    162
    Поблагодарили
    129 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Тогда вопрос: как достоверно точно отличить настоящую запись от "фантомной"? На примере образа диска выше в теме.
    ПК8010 "Корвет"+ExtRom+AY, Atari 65XE+SDrive, Дельта-С(52ИС)+AY, Scorpion ZS 1024+SMUC

  5. #45
    Сибирский антропоморфн Аватар для Black Cat / Era CG
    Регистрация
    06.05.2010
    Адрес
    Бердск, НСО
    Сообщений
    4,558
    Спасибо Благодарностей отдано 
    922
    Спасибо Благодарностей получено 
    871
    Поблагодарили
    635 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я вот тут наконец-то наткнулся на запрет работать в папках типа Program Files. Просто сам-то я никогда туда утилу не ставил, я ее просто распаковываю и все. В общем надо где-то хранить ini. Хотя с этим все понятно. Щас сделал так. Если вы распакуете утилиту в обычную папку, то ини будет лежать в ней. Если установите в Program Files, то ini будет храниться в APPDATA. А вот где хранить папки sys и xdi_settings?
    Личка заполнена! И чистить я ее не буду! Пользуйтесь адекватными средствами связи! Спасибо.

    Seamos realistas y hagamos lo imposible!

    Ernesto Che Guevara
    Переехал сюда: SteinBlume (ex ATM CP/M Explorer)
    http://era-cg.su

    Скрытый текст

    Speccy2010 r2 (Спасибо m.d. & xlat),
    Sinclair ZX Spectrum + (Спасибо stepmotor),
    ZX Evolution rev.C + 5'25 FDD Epson SD-700AA + NedoPC PAL-Coder (Спасибо m.d. & xlat)
    [свернуть]

  6. #46
    Veteran
    Регистрация
    06.02.2009
    Адрес
    Кемерово
    Сообщений
    1,328
    Спасибо Благодарностей отдано 
    58
    Спасибо Благодарностей получено 
    162
    Поблагодарили
    129 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    %ProgramData%
    ПК8010 "Корвет"+ExtRom+AY, Atari 65XE+SDrive, Дельта-С(52ИС)+AY, Scorpion ZS 1024+SMUC

  7. #46
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  8. #47
    Сибирский антропоморфн Аватар для Black Cat / Era CG
    Регистрация
    06.05.2010
    Адрес
    Бердск, НСО
    Сообщений
    4,558
    Спасибо Благодарностей отдано 
    922
    Спасибо Благодарностей получено 
    871
    Поблагодарили
    635 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от barsik Посмотреть сообщение
    Вопрос к топик-стартеру. Как Вы высчитываете размер файла?
    Вот так: $80*($80*(EX and exm)+RC)
    Как описано тут: http://www.seasip.info/Cpm/format22.html
    RC - Number of records (1 record=128 bytes) used in this extent, low byte. The total number of records used in this extent is
    (EX & exm) * 128 + RC
    На остальное позже отвечу, я сейчас с вашими td0 ковыряюсь немного.

    - - - Добавлено - - -

    Цитата Сообщение от marinovsoft Посмотреть сообщение
    %ProgramData%
    Не знаю. По сути к ней должен быть нормальный доступ пользователя (системки например чтобы в нее копировать), а Program Data скрытая обычно папка.
    Личка заполнена! И чистить я ее не буду! Пользуйтесь адекватными средствами связи! Спасибо.

    Seamos realistas y hagamos lo imposible!

    Ernesto Che Guevara
    Переехал сюда: SteinBlume (ex ATM CP/M Explorer)
    http://era-cg.su

    Скрытый текст

    Speccy2010 r2 (Спасибо m.d. & xlat),
    Sinclair ZX Spectrum + (Спасибо stepmotor),
    ZX Evolution rev.C + 5'25 FDD Epson SD-700AA + NedoPC PAL-Coder (Спасибо m.d. & xlat)
    [свернуть]

  9. #48
    Banned
    Регистрация
    05.10.2016
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,080
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Спасибо за ссылку:
    http://www.seasip.info/Cpm/format22.html

    Из неё наконец узнал, что поле S2 (офсет 14) это старший байт размера экстента RC (причём он используется только при блоках размером от 4К, а для блоков в 2К всегда 0).

    Но на самом деле это неправда, - это не старший байт, точнее это старший байт по модулю 128, - результат от деления числа лог.секторов описанных в этом экстенте на 128. Зная это, легко посчитать размер файла. Просуммировав числа S2*128 + RC рассчитанные для каждого экстента получим размер файла в секторах. Впрочем и использованный мной ранее вариант тоже даёт верный результат при больших блоках, но сложнее для программирования..

    В 80-е годы этой информации не было. В фирменном переводе мануала по CP/M (из Всесоюзного Центра Переводов) про S1 и S2 написано следующее: "Зарезервировано для внутреннего использования в системе".

    Впрочем, при блоках с размером не более 2К это не вызывало проблем. Но теперь мне хоть стало ясно каким образом файл может иметь размер более, чем 512 кб.
    Последний раз редактировалось barsik; 28.02.2017 в 19:02.

  10. #49
    Сибирский антропоморфн Аватар для Black Cat / Era CG
    Регистрация
    06.05.2010
    Адрес
    Бердск, НСО
    Сообщений
    4,558
    Спасибо Благодарностей отдано 
    922
    Спасибо Благодарностей получено 
    871
    Поблагодарили
    635 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    barsik, результаты ковыряния с td0 отправил на почту. Теперь дальше.
    Цитата Сообщение от barsik Посмотреть сообщение
    Спасибо за ссылку:
    http://www.seasip.info/Cpm/format22.html
    Не за что. Я в свое время тоже очень обрадовался этому доку, даже кое-как перевел ее на русский язык.

    Цитата Сообщение от barsik Посмотреть сообщение
    Об ошибках. При попытке открыть образ реально рабочей дискеты возникает сообщение "Превышен максимально допустимый номер блока" и приводится смещение 5010. Каталог (при его размещении с 4-й дорожки) в файле ODI занимает адреса 4000...4FFF, т.е ровно 4 кб, как и описывает маска каталога 0CH в DPB. А офсет 5010 попадает на номер первого блока первого экстента в уже 5-м килобайте каталога, хотя его размер всего 4 кб. Таким образом Вы просматриваете каталог вне области реального каталога. Может быть Вы начинаете просмотр каталога не с офсета 4000 (а точнее со смещения число сист.треков * число лог.секторов в треке * 128). Или может Вы ориентируетесь не по числу экстентоа каталога, а по его размеру и неверно высчитали размер каталога, который равен: число экстентов каталога умножить на 32. Не надо считать размер каталога по маске каталога, т.е по числу единичных битов в маске каталога умноженных на размер блока. В некоторых реализациях дат файлов в CP/M, даты хранятся в области за каталогом, а чтобы это не затирали файлы число битов в маске увеличивают, отчего считая размер каталога по маске каталога, Вы получите неверный размер каталога.
    Пришлите мне, пожалуйста, образ этого диска на почту, я посмотрю. Мне так проще.

    Цитата Сообщение от barsik Посмотреть сообщение
    А в полях 8...0F дискеты тоже не DPH, а физические параметры диска.
    Но ведь их назначение ведь такое же:
    Про 08, 09 - не в курсе - в присланном вами доке написано "не используется (лучше не трогать)". Вот и не трогаю.
    0A len - у вас: "при SD =2 (512), при DD =3 (1024)", я интерпретирую так: Sector size 0=128, 1=256, 2=512, 3=1024 или 128 lsh len (128<<len)
    0B den - у вас: "при SS =0, при DS =1", у меня аналогично: Чсло сторон = den+1
    0C sec - у вас: "sectors pro track (1...11)" и "не используется (лучше не трогать)" (для следующего байта), у меня аналогично (только два байта, что не важно, потому что старший всегда 0)
    0E trk - у вас: "число треков формата (35,40,42,80,82,83)" и "не используется (лучше не трогать)" (для следующего байта), у меня аналогично (также два байта)
    Так что особо не вижу противоречий.

    - - - Добавлено - - -

    Цитата Сообщение от marinovsoft Посмотреть сообщение
    Тогда вопрос: как достоверно точно отличить настоящую запись от "фантомной"? На примере образа диска выше в теме.
    Ну дык она по сути и отличается, почему ошибку и выдает. Пропускать такие записи в каталоге не сложно, в принципе. По сути можно заставить утилиту в данном конкретном случае не выдавать ошибку и прерывать процесс открытия, а делать вид, что ошибочной записи просто не было и пропускать ее.

    - - - Добавлено - - -

    Цитата Сообщение от Black Cat / Era CG Посмотреть сообщение
    А вот где хранить папки sys и xdi_settings?
    Короче, пока что колебаюсь между папками в "Мои документы" (доступнее для пользователя, но обычно завалена разным трешом) и в APPDATA (обычно структуру папок тут никто руками не правит и лежит только то, что надо установленному софту, но докопаться до папки в проводнике сложнее).
    Примечание. Там думаю как-то так сделать. Если утилита лежит в папке, для которой у пользователя есть все права, все остается по-прежнему (инишник, системки, хди-настройки в этой же папке), а если в Program Files, тогда ini в APPDATA, остальное думаю пока.
    Последний раз редактировалось Black Cat / Era CG; 28.02.2017 в 18:51. Причина: орфографическую обшибку поправил
    Личка заполнена! И чистить я ее не буду! Пользуйтесь адекватными средствами связи! Спасибо.

    Seamos realistas y hagamos lo imposible!

    Ernesto Che Guevara
    Переехал сюда: SteinBlume (ex ATM CP/M Explorer)
    http://era-cg.su

    Скрытый текст

    Speccy2010 r2 (Спасибо m.d. & xlat),
    Sinclair ZX Spectrum + (Спасибо stepmotor),
    ZX Evolution rev.C + 5'25 FDD Epson SD-700AA + NedoPC PAL-Coder (Спасибо m.d. & xlat)
    [свернуть]

  11. #50
    Veteran
    Регистрация
    06.02.2009
    Адрес
    Кемерово
    Сообщений
    1,328
    Спасибо Благодарностей отдано 
    58
    Спасибо Благодарностей получено 
    162
    Поблагодарили
    129 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Эта запись не удовлетворяет этому условию:
    EX = Extent counter, low byte - takes values from 0-31
    Нажмите на изображение для увеличения. 

Название:	12345.PNG 
Просмотров:	205 
Размер:	4.1 Кб 
ID:	59898
    Последний раз редактировалось marinovsoft; 28.02.2017 в 17:09.
    ПК8010 "Корвет"+ExtRom+AY, Atari 65XE+SDrive, Дельта-С(52ИС)+AY, Scorpion ZS 1024+SMUC

Страница 5 из 27 ПерваяПервая 123456789 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Explorer
    от abelenki в разделе Игры
    Ответов: 5
    Последнее: 19.06.2015, 16:50
  2. EXPLORER = DESPERADO = SAM ???
    от newart в разделе Музыка
    Ответов: 8
    Последнее: 15.01.2008, 00:33
  3. Ищу explorer.exe [win2000pro]
    от ice'di^triumph в разделе Барахолка (архив)
    Ответов: 6
    Последнее: 01.09.2005, 22:17

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •