Драйвер fdrawcmd.sys и SAMdisk

Все, что не подходит под определение "старого софта и железа", обсуждается здесь
Аватара пользователя
Andrey_Ak
Advanced Member
Сообщения: 1451
Зарегистрирован: 29.09.2009,20:04
Откуда: Kazakhstan, Almaty
Контактная информация:

Вклад в сообщество

Драйвер fdrawcmd.sys и SAMdisk

Сообщение Andrey_Ak » 04.03.2019,16:10

Добрый вечер!

Пытаюсь разобраться с драйвером fdrawcmd.sys и утилитой SAMdisk

Вот например, делаю дамп диска от Искра 1030.11 с параметрами:
40 цилиндров (дорожек) * 2 головки * 9 секторов * 512 байт на сектор

Делаю командой: SAMdisk a: image.dsk -c40 -s9
- Получается образ размером 195.711 кб.

Этот-же образ могу записать на дискету командой: SAMdisk image.dsk a:
- Образ назад пишется, и дискета на реальной машине успешно загружается...

Первые два вопроса:

- Очень медленно снимает образ, почему так? Раза в три-четыре медленнее обычной записи дискеты на реальной машине...

- Как сделать нормальный формат образа, который бы понимали остальные программы?
Пытаюсь конвертировать в другие форматы отсюда согласно справке:
https://simonowen.com/samdisk/formats/
Так в TD0 не хочет,
в RAW не понимают другие программы...




Andrey_Ak WEB: www.tis.kz ICQ: 345-005-908 Mail: admin@tis.kz Fido: 2:5083/1 Radio: UN7GKQ

shattered
Advanced Member
Сообщения: 1131
Зарегистрирован: 17.02.2008,02:38

Сообщение shattered » 04.03.2019,16:31

какие другие программы не понимают raw, и какой формат они понимают?

Аватара пользователя
Andrey_Ak
Advanced Member
Сообщения: 1451
Зарегистрирован: 29.09.2009,20:04
Откуда: Kazakhstan, Almaty
Контактная информация:

Вклад в сообщество

Сообщение Andrey_Ak » 04.03.2019,16:37

Например программа WinImage понимает форматы IMA, IMG, VFD, IMZ,
эти-же форматы понимает эмулятор "86Box", которых нет в SAMdisk...

А в SAMdisk есть похожий формат - RAW, который если переименовать
в любой из IMA, IMG, VFD, IMZ то данный образ видеться в WinImage,
и так-же видеться в эмуляторе "86Box" по команде DIR, но вот грузится с
такого образа не хочет....

---

Вообщем получилось только так:

Снятие образа: SAMdisk a: image.dsk -c40 --double-step
(Причем команда SAMdisk a: image.dsk -c40 -s9 --double-step не понравилась, почему?)
- Выходной файл получился размером 390.991 кб
Конвертация: SAMdisk a: image.dsk image.raw
- Выходной файл получился размером 368.640 кб (Какой и должен быть)
Потом переименование image.raw в image.img
- И тогда этот файл image.img уже нормально работает в эмуляторе...

Получается только такой алгоритм должен быть для снятия образов с DOS дискет ?

---

А назад на дискету успешно записывается уже готовый файл командой: SAMdisk image.img a:
но грузится с этой дискеты уже не хочет....
Так-же не хочет грузится если записывать первый полученный образ: SAMdisk image.dsk a:

---

Рабочие образы IMG, TD0 так-же успешно пишет на дискеты, но дискеты эти на реальной машине не загружаются..
Andrey_Ak WEB: www.tis.kz ICQ: 345-005-908 Mail: admin@tis.kz Fido: 2:5083/1 Radio: UN7GKQ

Аватара пользователя
uav1606
Advanced Member
Сообщения: 5969
Зарегистрирован: 16.01.2008,22:04
Откуда: Енакиево
Контактная информация:

Вклад в сообщество

Сообщение uav1606 » 04.03.2019,20:40

Чтобы образы RAW нормально виделись WinImage, нужно, чтобы у них был более-менее стандартный бут-сектор а-ля DOS. Если он нестандартный, то она ничего не увидит. Некоторые эмуляторы тоже привередливые - им нужна сигнатура 55h AAh в бут-секторе, иначе грузиться не хотят.

Аватара пользователя
Andrey_Ak
Advanced Member
Сообщения: 1451
Зарегистрирован: 29.09.2009,20:04
Откуда: Kazakhstan, Almaty
Контактная информация:

Вклад в сообщество

Сообщение Andrey_Ak » 05.03.2019,04:30

Так дело не в этом, есть стандартные загрузочные образы IMA
формата 40 цилиндров (дорожек) * 2 головки * 9 секторов * 512 байт на сектор
с DOS (АДОС) или другой подобной системой.
Эти образы прекрасно видит WinImage и эмулятор 86Box, в эмуляторе
с этих образов загрузка идет... Если эти образы записать на дискеты
на старой машине через досовскую версию WinImage, то эти дискеты
без проблем загружаются на старых машинах...
Данные образы имеют размер 386.640 кб. Заголовок начинается на "ы,"

Так-же есть загрузочные образы формата TD0 (TeleDisk), с той-же DOS,
такого-же формата 40 цилиндров (дорожек) * 2 головки * 9 секторов * 512 байт на сектор
эти образы так-же прекрасно понимает эмулятор и загрузка с них идет..
Если эти образы записать на дискеты на старой машине через TeleDisk,
то эти дискеты без проблем загружаются на старых машинах....
Данные образы имеют разный размер. Заголовок начинается на "TD"

Так вот, если я пытаюсь записать именно эти образы, про которые говорил выше
IMA или TD0 на дискету, под Win с помощью SAMdisk, то запись
идет и вроде как все хорошо, но на реальной машине такие дискеты не загружаются..

---

Если я снимаю образы с загрузочных дискет с такой-же DOS, с помощью
SAMdisk командой SAMdisk a: image.dsk -c40 -s9 то получается
образ размером 195.711 кб.
Заголовок начинается на "EXTENDED CPC DSK File Disk-Info SAMdisk180518"

Данный получившийся образ, могу записать обратно на дискету командой: SAMdisk image.dsk a:
и эта дискета нормально запишется и будет загружаться на старых машинах...

---

Полученные образы размером 195.711 кб. с заголовком на "EXTENDED CPC DSK File Disk-Info SAMdisk180518"
эмулятор 86Box и WinImage не понимают...

Эти образы я могу переделать в RAW формат командой: SAMdisk a: image.dsk image.raw
затем переименовав полученный image.raw в image.img подключаю этот образ в эмулятор,
но загрузка с него не идет, хотя по команде DIR содержимое образа читается нормально,
и этот-же полученный образ image.img видит WinImage...

--- --- ----

Я хочу научиться пользоваться SAMdisk, разобраться с ней, чтоб
можно было с помощью ее читать все возможные форматы дискет в стандартные
образы, которые будут понимать другие программы и эмуляторы, и так-же
записывать на дискеты обратно эти полученные образы и так-же другие образы
полученные с помощью других программ...

Ну или может есть другая какая-то оболочка для драйвера fdrawcmd.sys
с помощью которой все это можно делать?
(Скажем для дискет ДВК и подобных написана отличная программа "Кошка"...)
Нужно научиться работать с остальными всеми форматами дискет...
Andrey_Ak WEB: www.tis.kz ICQ: 345-005-908 Mail: admin@tis.kz Fido: 2:5083/1 Radio: UN7GKQ

Аватара пользователя
alecv
Advanced Member
Сообщения: 6993
Зарегистрирован: 05.10.2004,11:13
Откуда: Санкт-Петербург
Контактная информация:

Вклад в сообщество

Сообщение alecv » 05.03.2019,07:41

У программы есть исходники
https://github.com/simonowen/samdisk
разбирайся-нехочу.

Аватара пользователя
Andrey_Ak
Advanced Member
Сообщения: 1451
Зарегистрирован: 29.09.2009,20:04
Откуда: Kazakhstan, Almaty
Контактная информация:

Вклад в сообщество

Сообщение Andrey_Ak » 05.03.2019,08:04

Я не программист, чтобы в исходниках искать как работать с программой...
Andrey_Ak WEB: www.tis.kz ICQ: 345-005-908 Mail: admin@tis.kz Fido: 2:5083/1 Radio: UN7GKQ

Сергей С
Member
Сообщения: 177
Зарегистрирован: 05.01.2017,16:51

Вклад в сообщество

Сообщение Сергей С » 05.03.2019,18:30

Andrey_Ak писал(а):затем переименовав полученный image.raw в image.img подключаю этот образ в эмулятор,
но загрузка с него не идет, хотя по команде DIR содержимое образа читается нормально,
Если к содержимому файлов диска претензий нет, а лишь на загрузку - стоит узнать о том как происходит этот процесс.
Возможно система даёт подсказку и что-то сообщает на экран монитора при попытке загрузки с дискеты?

Аватара пользователя
Andrey_Ak
Advanced Member
Сообщения: 1451
Зарегистрирован: 29.09.2009,20:04
Откуда: Kazakhstan, Almaty
Контактная информация:

Вклад в сообщество

Сообщение Andrey_Ak » 06.03.2019,04:16

Сергей С писал(а):Если к содержимому файлов диска претензий нет, а лишь на загрузку - стоит узнать о том как происходит этот процесс.
Возможно система даёт подсказку и что-то сообщает на экран монитора при попытке загрузки с дискеты?
Да ничего не сообщает, эмулятор начинает читать дискету, потом прекращает и висит...

Вот если так снать образ, то эмулятор грузиться:
1) SAMdisk a: image.dsk -c40 --double-step (SAMdisk a: image.dsk -c40 -s9 --double-step так не понимает команду)
2) SAMdisk image.dsk image.raw
3) rename image.raw image.img
- Но если обратно записать image.dsk на дискету, то на реальной
машине загрузка не идет, начинает читать дискету и потом вешается...

А вот если так снять образ, то эмулятор не загружается:
1) SAMdisk a: image.dsk -c40 -s9
2) SAMdisk image.dsk image.raw
- При конвертации дает предупреждение:
Warning: source disk missing 702 sectors from regular format
Wrote 40 cyls, 2 heads, 9 sectors, 512 bytes/sector = 368640 bytes

3) rename image.raw image.img
- Но если обратно записать image.dsk на дискету, то на реальной машине загрузка идет..



Andrey_Ak WEB: www.tis.kz ICQ: 345-005-908 Mail: admin@tis.kz Fido: 2:5083/1 Radio: UN7GKQ

Сергей С
Member
Сообщения: 177
Зарегистрирован: 05.01.2017,16:51

Вклад в сообщество

Сообщение Сергей С » 06.03.2019,10:08

Так "научиться пользоваться программой" вы научились, по инструкции, на примерах, а что происходит при этом не знаете, что находится в получаемых файлах не проверяете, возможно знаете для чего специально указываете опцию -s9 или -d .
Я не программист, чтобы в исходниках искать как работать с программой...

А там такого и нет, там описаны производимые действия, а итог всех или части этих действий вы уже сами интерпритируете, комментарии в коде могут подсказывать что/зачем.
Автору программы уже 5 раз сообщали о проблемах самой программы, и все они решены. Вы можете поступить так же.
2) SAMdisk a: image.dsk image.raw
Я вчера попробовал данную программу, и такая команда не работает, вероятно здесь остались лишние "a:". Слышали о "проблеме Copy - Paste" ?
В первом варианте Вы считали данные с дискеты, в этом образе image1.dsk отсутствует информация о том что при записи считанной информации на дискету применяется особый формат -> не грузится с реальной дискеты. Далее конвертация и эмулятор получил корректные данные содержимого всех секторов, а в настройках эмуляции вы указали соответсвующий тип эмуляции -> система грузится.
Во втором варианте Вы считали данные с дискеты, в этом образе image2.dsk присутствует информация о типе форматирования при записи считанной информации на дискету -> грузится с реальной дискеты. Далее конвертация и эмулятор получил НЕкорректные данные содержимого всех секторов, а в настройках эмуляции вы указали соответсвующий тип эмуляции -> система НЕ грузится.

PS: Сегодня сравнил image1.raw и image2.raw, первые 36 секторов совпали(правда использовался другой привод и носитель), а остальные данные в image2.raw оказались забиты байтом 00h. Этих первых сеторов оказалось достаточным для хранения загрузочного сектора, таблицы FAT12 и содержимого корневого каталага выдаваемого по команде dir и ещё немного данных. Об этом не в справке, ни в инструкции ничегошеньки не написано/сказано, вы хотели научиться пользоваться, а не чему-то другому. В армии чему учат, автоматом пользоваться, махлу или/и Родину защищать?
- Очень медленно снимает образ, почему так?
Читаем ChangeLog.txt к программе:
"Version 3.8.11 (2018-05-18)
---------------------------
...
- reduced default step-rate to improve compatibility with old drives"
Можете игнорить и ставить максимум чтения --step-rate 15, зачем, ну типа оверклок же, проверить секундомером рекомендую, и спросить потом не у разработчика, а тут. Здесь вероятно же лучше знают самого разработчика или нет?
Пытаюсь конвертировать в другие форматы отсюда согласно справке:
https://simonowen.com/samdisk/formats/
Так в TD0 не хочет,
Читайте внимательно: формат TDO для -> "The following containers types are supported for input:"
В "The following types are supported for output of new or modified disk images, as determined by file extension:" его нет. Заявку на поддержку этого (проприетарного?) формата пишем разработчику сюда, 10 заяв отработано.
Andrey_Ak писал(а):Нужно научиться работать с остальными всеми форматами дискет...
Боюсь спросить, но всё же. Где сейчас это востребовано? Куда курс держите, кто направил.


Аватара пользователя
Andrey_Ak
Advanced Member
Сообщения: 1451
Зарегистрирован: 29.09.2009,20:04
Откуда: Kazakhstan, Almaty
Контактная информация:

Вклад в сообщество

Сообщение Andrey_Ak » 06.03.2019,10:24

Сергей С писал(а):Боюсь спросить, но всё же. Где сейчас это востребовано? Куда курс держите, кто направил.
Есть разные образы загрузочных дискет, для разных компьютеров..
Эти образы нормально понимают соответствующие эмуляторы и программы работы с образами..

Хочу с помощью SAMdisk писать эти образы на дискеты на современном ПК с дисководом 5.25",
и так-же читать такие дискеты в образы, и чтоб образы работали в эмуляторах...

Начал с теста на обычных образах DOS 360кб. Потом хочу отработать остальные форматы...
Сергей С писал(а):- reduced default step-rate to improve compatibility with old drives"
Можете игнорить и ставить максимум чтения --step-rate 15, зачем, ну типа оверклок же, проверить секундомером рекомендую, и спросить потом не у разработчика, а тут. Здесь вероятно же лучше знают самого разработчика или нет?
- Подробнее можете объяснить что за параметр и как его лучше настроить?

Про этот параметр я прочитал только: "To read a 40-track disk in an 80-track drive:" ну и попробовал его использовать...
Andrey_Ak WEB: www.tis.kz ICQ: 345-005-908 Mail: admin@tis.kz Fido: 2:5083/1 Radio: UN7GKQ

Ответить