Вход

Просмотр полной версии : вам нужен плагин для работы с образами +3 dos?



elf/2
02.10.2006, 16:50
собственно собираем подписи...

если Вам нужен/не нужен плагин к FAR'у для работы с +3 dos образами (.dsk), то проголосуйте пожалуйста.

ng_dead
02.10.2006, 17:14
подобная штука, конечно, вещь не первой необходимости... но полезная.
тем более как я понял этот плагин прокатит не только для Спековских дисков +3DOS, но и для CPCшных. Так что "спасиба" скажут не только спек-юзеры...

bugsy
02.10.2006, 17:19
я рад что ты предложил!!!

elf/2
02.10.2006, 18:57
этот плагин прокатит не только для Спековских дисков +3DOS, но и для CPCшных
только теоретически, т.к. если я правильно понимаю то на CPC другой dos и скорее всего другая раскладка файловой/дисковой инфы


и хотелось бы чтобы можно было при помощи плугина от тр-дос кидать в +3 и обратно
существует ли какой-нибудь формат аналогичный HoBeta для хранения ОДНОГО файла без потери заголовка? если нет, то плагин под очень серьезным вопросом...

ng_dead
03.10.2006, 10:56
только теоретически, т.к. если я правильно понимаю то на CPC другой dos и скорее всего другая раскладка файловой/дисковой инфы
на СРС действительно другой дос, но писан тойже конторой Locomotive Software.
файловая система обоих совместима с cp\m. соответственно, между собой они совместимы.

позднее...
что и требовалось доказать:) эмуль СРС прекрасно глотает dsk-файлы +3DOS и показывает каталог диска...

elf/2
03.10.2006, 12:36
Просьба! Если на первый взгляд покажется что не возможно, то пожалуйста не забрасывай эту идею, возможно попозже инфа подойдет и все будет окей. Мне кажется должно получится и инфа должна быть.
жду инфу :) пока что и где на диске лежит - не понятно. но уже есть куча вопросов:
1. большая часть дисков на WOS с той или иной системой защиты (SpeedLock, ThreeInchLoader...). С ними вообще ничего сделать не получиться
2. как я понял, поддерживается 11 битовых аттрибутов для файла. что с ними делать?
3. файл может иметь заголовок в 128 байт. Куда его?


Там есть библиотека для эмулятора
библиотека позволяет читать/писать на уровне сектора. плагин работает на более высоком уровне


эмуль СРС прекрасно глотает dsk-файлы +3DOS и показывает каталог диска..
уже не плохо. я правда не очень понимаю что такое CPC :)

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

ну и до кучи пока не представляю как можно "прозрачно" кидать файлы между trdos'ом и +3dos'ом

Grand
06.10.2006, 02:29
Извиняюсь за то, что далее речь пойдет совсем не о Спектруме, но хочется "развернуть" что я имел ввиду проголосовав за "душа просит чего-то другого".

У меня файлы .DSK ассоциируются с образами дисков ДВК (УКНЦ). И очень хотелось бы, чтобы для FAR'а был плагин именно для таких образов (т.е. с поддержкой системы RT-11 и совместимых с ней). Конечно, подобные программы на IBM PC существовали, но они были написаны еще в первой половине 1990-х, а главное - мне не попадалось ни одной, где бы было предусмотрено все необходимое.

Если elf/2 или кто-то еще захочет ознакомиться с файловой системой RT-11 (она не сложнее TR-DOS'овской), то рекомендую мое описание: http://era-cg.su/grands/doc/dvk/blk_dev.htm Я готов дать любые консультации по этому вопросу.

elf/2
06.10.2006, 11:17
У меня файлы .DSK ассоциируются с образами дисков ДВК (УКНЦ). И очень хотелось бы, чтобы для FAR'а был плагин именно для таких образов
теоретически это возможно, но приоритет у подобного проекта для меня будет минимальным.

к сожалению это значит что от меня подобного плагина в обозримом будущем не будет :(

CHRV
06.10.2006, 11:34
теоретически это возможно, но приоритет у подобного проекта для меня будет минимальным.

к сожалению это значит что от меня подобного плагина в обозримом будущем не будет :(
Как владелец УКНЦ, так же поддерживаю такое начинание... Но в принципе понимаю что врядли чето будет!

Error404
06.10.2006, 18:27
А для CP/M существуют такие плагины?

Alexandr Medvedev
09.10.2006, 13:01
А для CP/M существуют такие плагины?Нет не существуют. Есть небольшая сложность: в CP/M нет идентификатора по которому можно определить принадлежность диска к этой ОС.

Error404
29.12.2006, 16:47
Нет не существуют. Есть небольшая сложность: в CP/M нет идентификатора по которому можно определить принадлежность диска к этой ОС.

Пришлось написать свою утилитку для работы с образами дискет CP/M (проверено на эмуляторе Ориона) - wcx плагин для TotalCommander / Far. Если кому-то интересно, исходники (и сам плагин) можно взять отсюда:
http://orion-z.hoter.ru/

Alexandr Medvedev
09.01.2007, 14:54
Пришлось написать свою утилитку для работы с образами дискет CP/M (проверено на эмуляторе Ориона)Вот только эта утилита не работает со спектрумовскими образами CP/M.

Error404
09.01.2007, 16:48
Вот только эта утилита не работает со спектрумовскими образами CP/M.

А где можно посмотреть что из себя представляет такой образ?
Точно помню, что, к примеру, на Профи был такой же формат как на Корвете (т.е. и на Орионе/Специалисте), только без boot-sector. Просто записывали на диск от Профи стандартный бут и работали. Возможно, сам формат файла - не простая последовательная посекторная копия всей дискеты, а с какой-нибудь упаковкой или дополнительной информацией?

Alexandr Medvedev
10.01.2007, 12:13
А где можно посмотреть что из себя представляет такой образ?На Spectrum насколько мне известно есть 2 версии CP/M
Для ATM смотри здесь http://atmturbo.nedopc.com/
Для Профи прямо здесь пример диска.
Точно помню, что, к примеру, на Профи был такой же формат как на Корвете (т.е. и на Орионе/Специалисте), только без boot-sector.На самом деле boot идёт сразу после каталога, только в нём нет ни заголовка ни сигнатуры, в этом вся сложность. Плагин то написать я и сам могу, но вот однозначно определить файл невозможно.
Просто записывали на диск от Профи стандартный бут и работали. Возможно, сам формат файла - не простая последовательная посекторная копия всей дискеты, а с какой-нибудь упаковкой или дополнительной информацией?Есть разные форматы, я специально для примера откинул все заголовки и оставил только сами сектора.
Расширение я специально поменял на .odi .

Error404
10.01.2007, 17:08
На Spectrum насколько мне известно есть 2 версии CP/M
Для ATM смотри здесь http://atmturbo.nedopc.com/
Для Профи прямо здесь пример диска.На самом деле boot идёт сразу после каталога, только в нём нет ни заголовка ни сигнатуры, в этом вся сложность. Плагин то написать я и сам могу, но вот однозначно определить файл невозможно.Есть разные форматы, я специально для примера откинул все заголовки и оставил только сами сектора.
Расширение я специально поменял на .odi .

Я пока по-другому сделал. Теперь у меня сначала на каждом архиве (образе диска) анализируется наличие Disk Parameter Block в загрузочном секторе (1 сектор дорожки 0). В корветовской (и в клонированной с нее орионовской CP/M) DPB имеет контрольную сумму и проверить его наличие не сложно. Если DPB присутствует, то все настройки берутся из него. Если отсутствует, то DPB берется из INI в зависимости от расширения файла образа диска, затем по этому DPB вычисляется нужный (и сверяется со входным) размер файла образа. Если совпало - работает с образом диска по DPB из INI.
--
В ini DPB настраивается по правилами CP/M 2.2. Я уже настроил соответствующие DPB для для спектрумовского CP/M формата *.TRD (образ диска 655360 байт, т.е. 16 x 256b sectors, double density, 80 tracks, 4k catalog, 2 system tracks, 16k extents) и для образов CP/М от MSX (образ диска 368640 байт, т.е. 9 x 512b sectors, double density, 40 tracks, (или 1х80 ???) 4k catalog, 2 system tracks, 32k extents). Со всеми уже настроенными образами (ODI, TRD, DSK, ну и с другими - если настроить) плагин работает одновременно без каких либо дополнительных переключений как под TotalCommander, так и под Far (что и не удивительно - работает то farwcx :smile: ).
--
Так что вот так вот. Посмотрю описание форматов по Вашим ссылкам, но что-то уже энтузиазм гаснет (поддержать хоть что-то спектрумовское было делом принципа :v2_finge: :smile: ), тем более, как мне показалось, *.TRD - формат достаточно распространенный - довольно много CP/M софта в Сети валяется именно в нем, как оказалось.
--
Плагин и исходники если кому-то интересно (пока кроме Вас никто не комментил :v2_conf2: ) там же - на страничке (адрес в подписи) в секции "Файло".

Error404
10.01.2007, 19:31
На Spectrum насколько мне известно есть 2 версии CP/M
Для ATM смотри здесь http://atmturbo.nedopc.com/
Для Профи прямо здесь пример диска.

Работают оба формата - только строчку для Профи в инишку добавил. :v2_cheer:



Расширение я специально поменял на .odi .

Пришлось поменять расширение на PRO, т.к. на ODI у меня уже был настроен формат "Орион без DPB" (похожий, но 4 системные дорожки, а на Профи - 0 системных дорожек, как оказалось - видимо, остаточная память меня обманывала)

goodboy
12.02.2007, 22:33
понятные диски для +3 можно пересчитать по пальцам, всё остальное свой формат, каждая фирма делала по своему

Addison
15.06.2008, 17:39
Цель - создать плагин для быстрого копирования файлов из TR-DOS в +3DOS.

Важно отметить направление переноса из TR-DOS в +3DOS.
Если по сути, то необходимо копировать файлы с образов trd в образы dsk. Это несколько упрощает задачу. Ранее отмечалось, что на WOS полно образов, но они записаны в разных форматах, за которыми трудно угнаться.
Исходя из выше сказанного, гоняться за ними и не нужно, нужно просто обеспечить перенос из trd в dsk стандартного формата, который создает, например, RealSpectrum эмулятор.
Плагин нужен, для упрощения работ по созданию базы игр в формате dsk с дальнейшего перенос их на реальные дискеты 3.5" для юзанья их на реальном Spectrum+3.
Сейчас эта дорожка гораздо длиннее и труднее, файлы копируются при помощи RealSpectrum эмулятор при помощи стандартных команд +3DOS.
При этом возникает куча проблем, которые в свое время описывал Н.Родионов.
Если появится возможность перегонять файлы с образов trd задача значительно упростится, так как можно будет использовать коллекции разных городов, где полно крякнутых игр, которые практически не защищены и в них уже решены проблемы связанные с адаптацией под дисковую систему (рамтор и т.п.).

Образ стандартного формата с игрой "Пакмания" (5 файлов, 1B, 1$ и 3С) в приложении. Образ проверен на RealSpectrum эмулятор и на реальном Spectrum+3.
Также в приложении дисковый менеджер, который, возможно, прольет свет на структуру образа dsk.

P.S. не помешает работа плагина с реальным диском 3,5" в формате +3dos.
Тестирование плагина готов взять на себя.:v2_smoke:

AAA
15.06.2008, 18:55
В опрсе нет ответа:
ААА не понимает что это. :v2_conf2:

Addison
15.06.2008, 19:05
ААА не понимает что это.
Что тут понимать?
есть плагин для Far xTRD, добавляешь и всем известный менеджер начинает работать с образами trd.

А этот опрос про тоже, но для образов dsk...

AAA
15.06.2008, 19:14
А этот опрос про тоже но для образов dsk...
А там демки есть ?

А их с помощью оно перевести в трд можно ?

Addison
15.06.2008, 19:21
А там демки есть ?

А их с помощью оно перевести в трд можно ?

Демки? Не знаю, может и есть, хотя в dsk в основном фирменный софт...
Если демка будет на стандартном диске без всяких защит то можно.
Только для начала нужно программера угорить повторить сей шедевр(Плагин X) в варианте dsk.

AAA
15.06.2008, 19:54
Демки? Не знаю, может и есть, хотя в dsk в основном фирменный софт...
Если демка будет на стандартном диске без всяких защит то можно.
Только для начала нужно программера угорить повторить сей шедевр(Плагин X) в варианте dsk.

Если да, то я уже сказал да, только реад онли, большиство сказала врать. Но я все равно не знаю, что это значит, вообщем да.

elf/2
16.06.2008, 11:55
мне лень :( если только Саша Медведев возьмется...

особенно учитывая комментарий goodboy'я про собственные форматы +3 дисков

Addison
16.06.2008, 17:19
особенно учитывая комментарий goodboy'я про собственные форматы +3 дисков
Да какие собственные? Формат один, как в RealSpectrum эмулятор.

elf/2
16.06.2008, 17:41
Да какие собственные? Формат один, как в RealSpectrum эмулятор.
понятно что на уровне секторов/треков формат один - .dsk, а вот то что твориться уровнем выше у каждой конторы которая выпускала коммерческий софт свое, они там всякий защит типа Alcatraz +3, Speedlock +3, Three Inch Loader навтыкали. я в свое время на .dsk файлы с WOS'а посмотрел и понял что там практически с каждым образом надо индивидуально работать...

Addison
16.06.2008, 19:21
индивидуально работать...
А как в RealSpectrum эмулятор сделано? Он все образы читает...
Защита тут не при чем. Как реальный Спек все эти диски читал?
Хотя повторюсь, не глядите вы на эти образы на WOS. Кому они нужны, тот их и так запустит с эмулятора. Плагин нужен для другого! Для того чтобы на образ dsk стандартного формата!!! с образов scl, trd, tap, tpz перегонять файлы. А не наоборот.


P.S. у некоторых trd дисков тоже есть защита и у tap тоже и что? Что все эти защищенные вещи смотрятся плагином? Если их защитили, то и плагин рассчитанный для просмотра стандартных дисков будет показывать тоже, что видно и на реальном Спеке! Этого достаточно, по-моему тебя просто народ сбил с толку.:v2_wacko:

goodboy
16.06.2008, 23:14
Для того чтобы на образ dsk стандартного формата!!! с образов scl, trd, tap, tpz перегонять файлы. А не наоборот.

а зачем ??? сильно сомневаюсь что у тебя (в отличие от меня) есть +3

Addison
16.06.2008, 23:27
а зачем ??? сильно сомневаюсь что у тебя (в отличие от меня) есть +3
есть сходи вот сюда почитай
http://zx.pk.ru/showpost.php?p=138167&postcount=15

goodboy
16.06.2008, 23:34
извини за резкий ответ - извиняюсь

elf/2
17.06.2008, 11:26
А как в RealSpectrum эмулятор сделано? Он все образы читает...
Защита тут не при чем. Как реальный Спек все эти диски читал?
эмулятору достаточно сектора понимать, а что там дальше уже +3dos разбирает.


Плагин нужен для другого! Для того чтобы на образ dsk стандартного формата!!! с образов scl, trd, tap, tpz перегонять файлы. А не наоборот.
я понял что тебе конкретно плагин нужен именно для этого, но как я писал выше мне такой плагин делать лениво. а полноценный - не получается :(

так что если Саша не возьмется, то - исходники остальных плагинов открыты...

Addison
17.06.2008, 11:53
а полноценный - не получается
Что значит полноценный????:v2_wacko:
При чем тут защита диска?
Я, честно, не понимаю!
Вы просто сам смысл плагина подмываете.
Для чего нужен менеджер файлов? чтобы работать с ними...
Зачем работать с защищенным диском, на котором 5 файлов одной программы?
Это просто глупо, для этого плагин не нужен. Это всеравно , что взять сейчас образ trd, побить ему загрузочный сектор и говорить, что вы это не учли в своем плагине.:v2_laugh:

Для моей задачи плагин абсолютно оправдан.
Я создам образ не 180, а 720 кб, и напихаю в него при помощи Вашего плагина кучу игр, как это делается в TR-DOS.:v2_smoke:

Слёзно прошу :v2_cry: напишите, простенький плагин, чтобы читал диск стандартный и расширенного формат 720 кб. Если вы уж хоитите всех зайцев догнать, то неплохо было бы обеспечить чтение/запись реальных дисков не фирменных, а просто формаченных дискет 3.5".
Как оказывается +3 не только у меня, думаю наберется человек 5, а если еще и проторить дорожку, обеспечив хотябы с пару тройку десятков ходовых игр, на +3 потянутся люди и ваш плагин еще не раз добрым именем помянут!:v2_clap2:
У вас есть реальная возможность сделать что-то , чего нет и что сейчас реально нужно, пусть даже 2-3 людям, для умершей платформы это и так много.:v2_yahoo:

elf/2
17.06.2008, 13:24
к сожалению, мне жалко убить примерно неделю своего времени, на написание плагина нужного 2-3 людям. не знаю что движет другими авторами, но мне не интересно/лень делать что-то не нужное мне самому :(

если бы желающих было хотя бы на порядок больше, и кто-нибудь нашел бы нормальное описание внутренней раскладки файловой системы/.dsk файлов, плюс хотя бы пяток разных (но реальных) образов для тестирования, возможно лень была бы побеждена (да и то не факт)

Addison
17.06.2008, 13:42
плагина нужного 2-3 людям
вообще-то опорос показал, что их гораздо больше - 24

Ну если леть, то что тут. Мне не лень, просто мне нужно убить не две недели, а два месяца, так как я плагинов никаких никогда не писал. Проще через tap перегнать.

elf/2
17.06.2008, 15:19
вообще-то опорос показал, что их гораздо больше - 24
опрос показал что участникам в основном все-равно, ибо никто из "нуждающихся" не помог с поиском информации о потрошках .dsk файлов и +3dos'ной ФС.


Мне не лень, просто мне нужно убить не две недели, а два месяца, так как я плагинов никаких никогда не писал.
мне тоже так казалось когда я xtrd'у начал писать :) а потом оказалось что за неделю вполне работоспособное что-то пишется.

Addison
17.06.2008, 15:23
опрос показал что участникам в основном все-равно, ибо никто из "нуждающихся" не помог с поиском информации о потрошках .dsk файлов и +3dos'ной ФС.
Я тебе выложил файловый менеджер, там структура ясна. Кнопка адвенсед....
Нас уже 25 :)

kyv
17.06.2008, 20:55
Клон-Trunin, а ты пробывал копирывать +3 dsk образы с помощью Real Spectrum Emulator на реал? вообще интересно - работают -ли они на реале. TRD точно работают .

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

elf/2
18.06.2008, 11:48
Я тебе выложил файловый менеджер, там структура ясна. Кнопка адвенсед....
издеваешься? чтобы начать хотя бы думать о написании плагина, нужно полное описание структуры образа и ФАЙЛОВОЙ СИСТЕМЫ. т.е. по такому-то смещению лежит поле такой-то длины и означает оно то-то

kyv
18.06.2008, 13:06
вообще-то опорос показал, что их гораздо больше - 24

Ну если леть, то что тут. Мне не лень, просто мне нужно убить не две недели, а два месяца, так как я плагинов никаких никогда не писал. Проще через tap перегнать.

Кло н, если так уж необходимо,потрать 2 месяца и напиши плагин сам(если сможешь) ,а то ведь будешь агитировать ещё лет 5 и результата 0 , если что ,я голосовал 'ЗА"

Addison
18.06.2008, 14:51
потрать 2 месяца и напиши плагин сам(если сможешь)
За это время я переганю через tap.

kyv
18.06.2008, 14:53
Ты перегонишь то,что тебе необходимо,а как же другие пользователи?

Addison
18.06.2008, 16:03
Ты перегонишь то,что тебе необходимо,а как же другие пользователи?
Они перегонят, то что им нужно по моей методике, которую я скоро изложу и досконально проверю.
А потом лентяи напишут уже никому ненужный плагин:), когда народ на +3 платформу подвалит...

Кстати, на реальном Cпеке игры идут, я уже пару перегнал. Щас упор в преодолении защиты. На трд дисках игры тоже защищены, но эти защиты описаны! И думаю, что здесь мне тоже что-то подскажут, если сам не доганю...

goodboy
18.06.2008, 21:17
ох и неймётся-же тебе. решил вместо Синклера поставить Алана Сагара. :mad:

Shadow Maker
19.06.2008, 04:39
Так, всё, прекращайте плакать про неизвестный формат. Нашелся в гугле по первой же ссылке. elf/2, прошу, пользуйся. Конвертор сделать с твоими знаниями в области плагиностроения проблем по идее составить не должно. Формат простой в принципе, не сложнее теледиска. Попутно он сможет фигачить и CPC версии DSK, у них формат я так понял одинаковый.

elf/2
20.06.2008, 11:13
Так, всё, прекращайте плакать про неизвестный формат. Нашелся в гугле по первой же ссылке. elf/2, прошу, пользуйся.
спасибо конечно :), но товарищу Клону не нужны сектора в фаровской панели, он хочет там файлы видеть. а для этого нужна "раскладка" файловой системы

Addison
20.06.2008, 11:31
а для этого нужна "раскладка" файловой системы
Ты открой один образ с файлами любым просмотрощиком кода и тебе возможно сразу все станет понятно. Образ я в треде давал, там 5-ть файлов записано, достаточно, чтобы понять раскладку. Я не думаю, что там что-то сильно отличается от trd. Возможны, конечно, нюансы, но тогда их по ходу и будем разбирать. Описания файловой системы нету, по крайней мере, я не нашел. Возможно, там и работы чуток, просто xtrd планигин чуть переделать!

elf/2
20.06.2008, 12:24
Ты открой один образ с файлами любым просмотрощиком кода и тебе возможно сразу все станет понятно. Образ я в треде давал, там 5-ть файлов записано, достаточно, чтобы понять раскладку. Я не думаю, что там что-то сильно отличается от trd. Возможны, конечно, нюансы, но тогда их по ходу и будем разбирать. Описания файловой системы нету, по крайней мере, я не нашел. Возможно, там и работы чуток, просто xtrd планигин чуть переделать!
ты издеваешься? при чем тут сравнение c trd? сравнивать надо tr-dos и +3dos, а они на первый взгляд совсем не похожи.

а если того образа достаточно чтобы понять раскладку, то welcome :) надеюсь ее увидеть в одном из твоих ближайших постов

Addison
20.06.2008, 12:28
то welcome
не хочешь не делай, я думаю если бы тебе самому нужно было бы ты уже позавчера сделал.
А я туда особо лезть не хочу, так как есть другой путь, который для меня проще.

scl^mc
21.06.2008, 01:05
А я туда особо лезть не хочу, так как есть другой путь, который для меня проще.
хм... ну и не лезь тогда? :rolleyes:

Addison
21.06.2008, 11:28
ну и не лезь тогда?
ну и не лезу, зачем эта фраза?
Я уже спокойно научился через tap перегонять, мне этот плагин уже по большому счету не нужен.

Faster
09.07.2010, 12:55
Вот полное описание +3dos. Там же есть описание как File attributes and headers, так и Disk format and specification. Голосую +1 за xDSK плагин.

vinxru
08.04.2011, 10:46
Плагин то написан, или мне это сделать?

elf/2
08.04.2011, 11:29
Плагин то написан, или мне это сделать?
нет, пиши ты

vinxru
08.04.2011, 16:26
Сделал набросок читалки. Файлы будут выглядят так:

DISK.10-18.bas
DIZZY4.BAS.10-151.bas
DIZZY4.DAT.24137.bin
DIZZY4.LDR.24500.bin
DIZZY4.MUS.32768.bin
DIZZY4.SCR.16384.bin

Вся полезная информация из 128-байтного заголовка файла включается в расширение файла (тип файла, адрес загрузки, имя переменной, стартовая строка и offsetToProg), а сам заголовок уничтожается. В заголовке вроде ничего полезного нет.

struct Plus3DOSFileHeader {
unsigned char id[9]; // PLUS3DOS\x1A
unsigned char issueNumber, versionNumber;
unsigned int fileLength;
unsigned char type; // Тип данных: 0=basic, 1=numarrray, 2=strarray, 3=code
unsigned short internalLength;
union {
struct {
unsigned short startLine;
unsigned short offsetToProg;
} type0;
struct {
unsigned char null2;
unsigned char name;
unsigned short null3;
} type1or2;
struct {
unsigned short address;
unsigned short null3;
} type3;
};
unsigned char null1[105];
unsigned char crc;
};

P.S. Сделаю еще авто преобразование из TAP в DSK.

Vadim
09.04.2011, 11:57
Сделал набросок читалки. Файлы будут выглядят так:
А можно просто сделать плагин, что бы файлы из образа dsk можно было бы скопировать на ПЦ? Ведь это ж обычные файлы CP/M (объем кратен 128 байт) или ПЦ. Сейчас я юзаю для этих целей утилитку CPSFS0.85. Но она не понимает образы 720К и это создает определённые сложности.

vinxru
10.04.2011, 03:03
Только что произвел автоматический перегон из TAP в DSK 720K. Игра запустилась.

Так же, содержимое DSK можно сохранять на диск и загружать с диска.

Addison
10.04.2011, 10:59
Только что произвел автоматический перегон из TAP в DSK 720K. Игра запустилась.
Ты хочешь сказать, что перекинутая игра на диск грузится?
У нее же загрузчик ТАП?

Так было на TR-DOS когда на ТАП была записана игра с TR-DOS, она там грузилась, а если обратно на диск, то соответсвенно загрузчик уже был дисковый...

vinxru
10.04.2011, 14:18
Грузятся, если используется программа на Бэйсике (использующая команду LOAD). И в команде LOAD указано имя файла, и имя файла может быть именем файла 3DOS.

Если имя не указано, то необходимо добавить имя. Я то же попробую этот момент автоматизировать.

Ну и игра совместима с Spectrum 128. Например версия Saboteur 2 для 48К глючит (есть рабочая версия для 128К). И игра не должна пытаться с помощью LOAD загрузить данные в дополнительные страницы памяти (как в игре Lode Runner 128K).

Addison
10.04.2011, 15:43
vinxru, а ну это только простые незащищенные загрузчики...
В +3 дос синтаксис тап совпадает с диском, надо указывать только устройство, по умолчанию там диск...

Автоматизировать это необязательно, так как простых загрузчиков практически нет.


Лучше сделать, чтобы плагин работал с реальными дисками, так как после перегонски с тап, нужно будет еще образ загнать на диск и хорошо, если это можно будет делать по файлам. Сейчас можно перегнать только весь образ утилитой, которую я в этом разделе постил.
Еще неплохо, если будет работать с дисководом ноутбука через усб. А то обычных дисководов и компов уже почти ни у кого нет...

vinxru
10.04.2011, 18:27
А может ли ваша утилита работать с USB-дисководами? Собираюсь купить дисковод, но боюсь что это будет зря.

Addison
10.04.2011, 19:42
А может ли ваша утилита работать с USB-дисководами?
в том то и дело, что нет.
Я не пробовал, но кто пробовал, сказали капут...
видимо драйвер написан только для обычного дисковода.

Поэтому на данный момент возможно перекинуть только на ПЦ, нотербук не прокатывает.

Vadim
10.04.2011, 20:57
Лучше сделать, чтобы плагин работал с реальными дисками,
Клонидзе как всегда тупит... Я даже не знаю как подобрать слова... Есть куча утилит которые читают реальные диски и переводят их в образы (и обратно).
Так вот, потом, желательно что бы был бы плагин для фара или ещё для чего, что бы можно было бы легко файлы из образа копировать на ПЦ и обратно. Причём, что бы он понимал бы все корректные для +3 и CPC форматы. Всё! Более ничего не нужно. Для портирования "файлов" трдос в +3, нужен другой плагин. Он должен приклеивать 128-и байтный заголовок к файлу, в котором будут служебные данные. Но это уже другой плагин! Необходим плагин, который позволит обмениваться файлами между образами +3 и файловой системой ПЦ!! Файлы по формату совпадают. И экспорт в ПЦ и обратно импорт в +3ДОС файл не изменит. 100% совместимость. Это и нужно в данный момент. Конверсия из трдос в +3дос это совершенно другой вопрос.

vinxru
10.04.2011, 21:15
Пока утилита будет в виде отдельной программы.

Запускаешь программу, через меню выбираешь DSK файл (или создаешь новый). Программа отображает список файлов на диске. Далее перетаскиваешь файлы в окно программы (или из окна). Всё как в WinRAR.

В дополнение к сказанному:

1) Переименование файлов, изменение типа файла, параметров бейсика, атрибутов.
2) Программа будет автоматически предлагать добавить или убрать 128-байтный заголовок от файла.
3) При попытке перетащить TAP файл в окно программы, программа предложит добавить его в виде отдельных файлов.
4) Будет дефрагментация файловой системы
5) Бут будет представлен в виде отдельного файла.
6) Будет просмотр бейсик программ, изображений, шестнадцатеричного кода, дизассемблер.

Addison
10.04.2011, 21:59
А файлы из trd и scl планируются к перетаскиванию?

vinxru
11.04.2011, 21:33
Пока нет.

Сделал просмотрщик SCREEN$ файлов (с поддержкой мигания), BASIC-файлов, Z80-дизассемблер. Теперь займусь интерфейсом, операциями с файловой системой (переименование, удаление файлов, дефрагментация, изменение переменных файловой системы (например размера каталога или размера кластера)).

Addison
11.04.2011, 21:53
Теперь займусь
давай, продвигай платформу +3Дос.

Nuts_
12.04.2011, 22:23
долго разбирался почему эта тема начинается в 2006 году и продолжилась в 2011 :)

Grand мне RT11 нужен был году так в 2000ом :) разобрался сам :)
кстати ссылка битая я бы не отказался для истории
http://grands.land.ru/docs/blk_dev.htm думаю это тоже самое


Vadim, их этой кучи утилит хоть одна работает с usb-дисководами ? Мне так для справки,
может у кого то есть такой опыт.

погуглил http://simonowen.com/fdrawcmd/
вполне неплохая вещь для писания подобных программ
однако с USB флопарями не работает

Vadim
15.04.2011, 09:16
Vadim, их этой кучи утилит хоть одна работает с usb-дисководами ? Мне так для справки,
может у кого то есть такой опыт.

Я не проверял. Дома есть внешний usb-дисковод, как будет время проверю. Для меня актуальна задача обмена файлами из образа +3 в файловую систему ПЦ. Пишу под эмулем ЦПМ, в ассемблере M80. Файл исполняемый получается не в образе, а на файловой системе ПЦ. Для помещения в образ беру утилиту CPCFS085 и файл-образ диска на 180К. ручками импортирую нужный файл (утилита ключей не поддерживает и за-автоматизировать процесс не получается).
Для перевода игр из TAP неплохо бы сделать соотв. плагин, что бы зашли в tap файл, выбрали файлики и перенесли в +3 образ. Имена придется конечно привести к стандарту +3, но стартовый адрес и подобное сохранятся, а это упрощает адаптацию.
Не так давно хотел написать утилиту для Q-DOS что бы упростить перенос файлов из TRDOS в +3, там это сделать легко. У меня в системе есть псевдодрайвер, для работы с дискетами tr-dos как с fat12. Ставим дискету tr-dos в дисковод A:, но обращаемся к нему по другой букве, на которую он подключился при запуске. И он видит файлы так, как будто там файловая система FAT12. Причем стартовые адреса и др. параметры сохранены. Написать утилиту для копирования в +3 с приклеиванием 128-и байтного заголовка не проблема. Но всё не могу никак собраться и написать.

Nuts_
15.04.2011, 12:13
Для помещения в образ беру утилиту CPCFS085 и файл-образ диска на 180К. ручками импортирую нужный файл (утилита ключей не поддерживает и за-автоматизировать процесс не получается).


посмотрел здесь
http://www.426.ch/cgi-bin/moin.cgi/CPCFS?action=AttachFile&do=get&target=cpcfs085.zip

в документации написано:

Either call CPCFS in interactive mode:

CPCFS

or in batch mode:

CPCFS [<image>] <commands>...

и список команд
и исходники тоже есть
там же ссылка на это
http://cpctech.cpc-live.com/download/cpcxfs.zip
боле новая версия

кстати в тему у q-dos profidos и прочих СиПиэМ под Профи формат диска боелее менее одинаков ведь?
Начинал свою карьеру в этой области написанием конвертера cpm под профи в tr-dos :)

Vadim
18.04.2011, 08:18
кстати в тему у q-dos profidos и прочих СиПиэМ под Профи формат диска боелее менее одинаков ведь?

Да, как и на любом ЦПМ. Существуют 2 формата. Физический и логический. На профи логический формат немного отличается от Роботрона 1715. На роботроне 4 логических дорожки являются системными, на профи 0. У корвета 2 системные дорожки. В остальном лог.формат совпадает. Физический формат профи имеет отличие, на 0 цилиндре, 0-й стороны сектор 5 заменен на сектор 9 (для запуска из трдос).

---------- Post added at 10:18 ---------- Previous post was at 10:17 ----------


боле новая версия
с ней больше проблем. Забыл уже что там не так, но я вернулся к версии 085.

vinxru
18.04.2011, 08:56
У меня срочные неотложные дела появились, поэтому я последние дни не занимался программой и еще неделю не буду. Но потом программу обязательно сделаю.

Grand
18.04.2011, 12:54
Grand ... ссылка битая я бы не отказался для истории http://grands.land.ru/docs/blk_dev.htm думаю это тоже самоеПо прошествии времени адреса изменились... Я уже исправил ссылку в своем сообщении.
http://era-cg.su/grands/doc/dvk/blk_dev.htm - это "онлайн"-версия, а
http://era-cg.su/grands/doc/dvk/blk_dev.zip - версия для печати.


Ныне уже вышел плагин, поддерживающий файловую систему RT11 (и совместимых с ней) в файлах DSK, но не для FAR'а, а для Total Commander'а.
http://www.zx.pk.ru/showthread.php?t=11015


Извиняюсь за то, что опять не по теме... :)

SoftLight
18.04.2011, 14:22
По прошествии времени адреса изменились... Я уже исправил ссылку в своем сообщении.
http://grands.land.ru/docs/blk_dev.htm - это "онлайн"-версия, а
http://grands.land.ru/docs/blk_dev.zip - версия для печати.

Извиняюсь за то, что опять не по теме... :)

Удивительное рядом, но вторая ссылка (с zip) работает только, если по ней пройти со страницы из первой ссылки (html). А если тупо пройти по ней с форума, то получаем 'Ошибка 404. Документ не найден.'. Ну это так - к сведению для скачивающих.

Grand
19.04.2011, 12:13
Удивительное рядом, но вторая ссылка (с zip) работает только, если по ней пройти со страницы из первой ссылки (html). А если тупо пройти по ней с форума, то получаем 'Ошибка 404. Документ не найден.'. Ну это так - к сведению для скачивающих.Да, такая проблема происходит и у меня с браузерами Internet Explorer 6 и Firefox 2, а вот с Opera 9 - всё как надо. Не знаю, чем это объяснить. :-/

vinxru
27.04.2011, 08:54
Продолжаю разработку. Через несколько дней выложу первую версию.

Купил себе материнскую плату с FDD и дисковод. Так что попробую засунуть в свою
программу утилиту форматирования, сливания и заливанию образов на флопики

Addison
04.05.2011, 19:04
vinxru, ты нас радуешь не по-детски!
Буду тебя крутить, чтобы замутил командер, который сможет работать с реальным диском и файлами на нем.
Но пока делай, как сам запланировал, не буду тебя с толку сбивать.

vinxru
06.05.2011, 02:12
Я тут заболел, а потом монитор у меня дома умер, а потом я решил обзор ZX Spectum +3 написать (http://emulate-su.livejournal.com/384304.html), а потом блок питания у +3 сломался, так что разработка немного затормозилась.

Но сегодня руки дошли до программы, сделал создание образов с произвольным кол-вом дорожек, секторов, головок, размером корневого каталога, размером кластера и т.п. Проверял на эмуляторе, +3DOS спокойно работает с диском в 255 дорожек или 25 секторов. Главное, что бы размер диска не превышал 720 Кб.

Нафиг надо не знаю, но пусть будет.

Мне осталось интерфейс доделать и разобраться к некоторыми переменными в образе, и выложу версию.

Например, я так и не понял. Есть образы в которых каталог располагается на 0 дорожке 0 стороны и +3DOS понимает такие образы.

Пока я решил эту проблемку так. Пытаюсь загрузить диск 3-мя способами:

1) Расширенное описание диска в t0h0s1. Каталог там, где указано в расширенном описании диска.
2) Каталог в t1h0s1
3) Каталог в t0h0s1

Если срабатывают несколько способов, то предлагается меню с выбором способа.

Еще не могу понять с размером кластера (блока). Эта ФС хранит файлы более 16 кластеров в длину в виде нескольких файлов. Вроде бы размер кластера задается в заголовке диска и может быть произвольным. Но размер каждого файла указывается в 128 байтных блоках и под хранение размера выделено всего 8 бит. То есть, при размере кластера более 1 Кб, я не могу сохранить размер файла.

Так же в документации на файловую систему написано, что если размер файла 80h блоков, значит использованы все 16 кластеров. Это условие верно, только если размер кластера равен 80h*128/16 = 1 Кб.

(Если кластеров больше 255, то используются 16-битные номера кластеров. Файл тогда может быть максимум 8 кластеров и мы приходим к размеру кластера 80h*128/8 = 2 Кб)

Так же косяк с размером сектора. В образе диска есть поле указывающее размер сектора, но оно не заполнено. Мне остается делать версию программы поддерживающую только 512 байтные сектора.

P.S. Купил монитор со SCART-разьемом, надеялся подключать Spectrum. Но SCART не поддерживает RGB! Есть входы YPbPr, при подключении к ним цвета есть, но монитор включает черезстрочный режим 480i и экран жутко дрожит. При подключении через Video вход изображение не дрожит, но без цвета не прикольно. Буду искать PAL/NTSC кодер.

Vadim
06.05.2011, 06:30
Отвечаю. В общем, описание +3 предполагает, что человек знаком с ФС CP/M. Т.е. её особенности там не описываются, поэтому стоит поискать описание форматов диска в описаниях CP/M. Правда нормального, понятного тому кто читает первый раз про неё я не нашёл. Поэтому попробую сейчас объяснить сам:

>Еще не могу понять с размером кластера (блока). Эта ФС хранит файлы более 16 кластеров в длину в виде нескольких файлов. Вроде бы размер кластера задается в заголовке диска и может быть произвольным.

Размер кластера может быть 2 в степени n записей (по 128 байт). Где 0<n<7 (вроде бы, под рукой описания нет, а точно я не помню пишу по памяти). При n=4 получаем размер блока (кластер в CP/M называется блок) получается 2048 байт (16 записей по 128). Вся поверхность диска разбивается на блоки. Если получается что количество блоков более 255, то номера блоков в описателе файла задаются 16-и битными значениями, иначе - 8-и битными. Описатель файла содержит 32 байта.
Смещение, длина Описание
+0 1 Код области пользователя 0-15
+1 8 Имя файла
+9 3 Расширение
+12 1 Номер экстента
+15 1 Кол-во записей (1-7F)в последнем экстенте или 80h если экстент заполнен
+16 16 Область где хранятся номер блоков занимаемых файлом

Для примера примем, что размер блока равен 2К, то получается, что один описатель файла будет хранить один экстент. Если файл занимает скажем 70К, то всего получится 4 полных экстента и 1 неполный. Номер экстента указывается в 12-м байте описателя.

Далее, если предположить, что размер блока равен уже 4К, что произойдёт? Один описатель файла будет содержать уже 2 экстента. Первый экстент будет в первых 4-х словах, второй в следующих. И кол-во записей в последнем экстенте указывает именно на него.

vinxru
06.05.2011, 10:55
Все равно не понял, про "+15 1 Кол-во записей" :)

а) Заполненный эксетент 80h
б) Заполненный эксетент 16 блоков по 512 байт = 8192 байта / 128 = 40h

Решил поставить эксперимент.

1) Создал образ с размером блока в 512 байт. Сохранил 3 файла,
с размерами: 200, 6192 и 32000 байт. Команда CAT выводит, что все
файлы нулевого размера и на диске свободно 0 байт. Первые два файла
загружаются нормально. При попытке загрузить последний файл выдается
ошибка "Wrong file type". Вот что записано в образе:

00 46 49 4C 45 31 20 20 20 20 20 20 00 00 00 02 .FILE1..........
04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 46 49 4C 45 32 20 20 20 20 20 20 00 00 00 37 .FILE2..........
05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 00 00 ................
00 46 49 4C 45 33 20 20 20 20 20 20 01 00 00 7B .FILE3.........{
13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 ................
E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ееееееееееееееее
E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ееееееееееееееее

Размер первого файла 2*128 = 256 байт. Размер второго файла 37h*128 =
7040 байт. Третий файл записан некорректно. Он должен занимать 64 блока
и 4 записи в каталоге. А блок всего один. Номера блоков явно из нулевого
экстента. Номер экстента равен 1, а нулевого экстента нет. Размер экстента
указан 7Bh*128 = 15744 байт, но это 31 блок.

Потом я записал с помощью своей программы файл размером 40 Кб. Команда
CAT так же пишет 0 байт, а при попытке загрузить файл выводится ошибка
"End of file foudned"

00 45 4C 49 54 45 20 20 │ 20 44 41 54 00 00 00 40 .ELITE...DAT...@
04 05 06 07 08 09 0A 0B │ 0C 0D 0E 0F 10 11 12 13 ................
00 45 4C 49 54 45 20 20 │ 20 44 41 54 01 00 00 40 .ELITE...DAT...@
14 15 16 17 18 19 1A 1B │ 1C 1D 1E 1F 20 21 22 23 .............!"#
00 45 4C 49 54 45 20 20 │ 20 44 41 54 02 00 00 40 .ELITE...DAT...@
24 25 26 27 28 29 2A 2B │ 2C 2D 2E 2F 30 31 32 33 $%&'()*+,-./0123
00 45 4C 49 54 45 20 20 │ 20 44 41 54 03 00 00 40 .ELITE...DAT...@
34 35 36 37 38 39 3A 3B │ 3C 3D 3E 3F 40 41 42 43 456789:;<=>?@ABC
00 45 4C 49 54 45 20 20 │ 20 44 41 54 04 00 00 40 .ELITE...DAT...@
44 45 46 47 48 49 4A 4B │ 4C 4D 4E 4F 50 51 52 53 DEFGHIJKLMNOPQRS
E5 E5 E5 E5 E5 E5 E5 E5 │ E5 E5 E5 E5 E5 E5 E5 E5 ееееееееееееееее
E5 E5 E5 E5 E5 E5 E5 E5 │ E5 E5 E5 E5 E5 E5 E5 E5 ееееееееееееееее

Короче, размер кластера в 256 байт не поддерживается в +3DOS.
В крайнем случае можно работать с файлами до 8 Кб.

---------- Post added at 10:55 ---------- Previous post was at 10:22 ----------

Эксперимент 2. Размер кластера 4096 байт.

Записал своей программой два файла: 6192 и 40801 байт.

00 45 4C 49 54 45 20 20 20 53 43 52 00 00 00 40 _ELITE___SCR___@
04 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ________________
00 45 4C 49 54 45 20 20 20 44 41 54 00 00 00 40 _ELITE___DAT___@
06 07 08 09 0A 0B 0C 0D 0E 0F 00 00 00 00 00 00 ________________

В итоге, первый файл загружается, второй нет. Команда CAT выводит
корректные размеры файлов (выровненные на 4 Кб), видимо она считает кластеры.
Попробовал записать в "+15 1 Кол-во записей" нули. CAT работает, а вот LOAD перестал.

Сохранил по команде SAVE файл размером 40 Кб. В отличии от моего, этот
файл загрузился по команде LOAD.

00 45 4C 49 54 45 20 20 │ 20 44 41 54 00 00 00 40 _ELITE___DAT___@
04 05 06 07 08 09 0A 0B │ 0C 0D 00 00 00 00 00 00 ________________
00 58 20 20 20 20 20 20 │ 20 20 20 20 02 00 00 3A _X_____________:
0E 0F 10 11 12 13 14 15 │ 16 17 00 00 00 00 00 00 ________________

Наверное экстент рассчитывается по формуле:

экстент = номер_записи_в_каталоге*(ра мер_блока/1024) + (длина+16383)/16384

Vadim
06.05.2011, 13:18
Все равно не понял, про "+15 1 Кол-во записей"

Кол-во записей в последнем экстенте. Если при размере блока 2К, файл имеет размер 16К, то это один описатель файла и ровно 1 экстент. 15-й байт будет 80h.



Решил поставить эксперимент.
+3DOS неверно интерпретирует размеры блока менее 1К. Нигде не говорится что она может с ними корректно работать. Т.е. она понимает какие-то частные случаи из формата CP/M и не более того. Так что стоит эксперименты делать в других системах.


Короче, размер кластера в 256 байт не поддерживается в +3DOS.
В крайнем случае можно работать с файлами до 8 Кб.

Да да. И не стоит заморачиваться. Нужна поддержка стандартных дискет 180К и 720К.

Наверное экстент рассчитывается по формуле:

экстент = номер_записи_в_каталоге*(ра мер_блока/1024) + (длина+16383)/16384
Я посмотрю доки на выходных и дам точную формулу.

vinxru
06.05.2011, 14:10
Я вот так сделал, надеюсь правильно.

``// needWrite128 - Размер файла в 128 байтных блоках
``// bi, be - Массив номеров блоков (кластеров)
``// dirSector, dirEntry - Место в каталоге для записи
``// entrySize128 - Размер в 128 байтных блоках полностью заполненного элемента каталога
``// needDirectoryEntries - Необходимое количество элементов каталога

``for(int i=0; i<needDirectoryItems; i++) {
````Directory& d = getSector(dirSector)[dirEntry];

````// Заполняем каталог
````memset(&d, 0, 32);
````memcpy(d.name, name, 11);
````if(mode2) {
``````for(int n=0; bi<be && n<8; n++)
````````d.allocation2[n] = *bi++;
````} else {
``````for(int n=0; bi<be && n<16; n++)
````````d.allocation1[n] = *bi++;
````}

````// Расчитываем длину и экстент
````d.extentCounter = (entrySize128/128)*i;
````int writeNow128 = min(entrySize128, needWrite128);
````if(writeNow128>0) {
``````d.extentCounter += (writeNow128-1)>>7;
``````d.recordCount = writeNow128&0x7F;
``````if(d.recordCount==0) d.recordCount=0x80;
``````needWrite128 -= writeNow128;
````}

````// Следующая запись каталога
````dirEntry++;
````if(dirEntry==16) dirEntry=0, dirSector++; // 16 это sectorSize/sizeof(Directory)
``}

UPD 22-05-2011: Я каждый день помню о программе. Но писать её на маленьком ноутбуке в командировке оказалось не удобно :(

Nuts_
07.05.2011, 20:32
кажется мне что все размеры экстентов и блоков брались портирователями cpm по принципу "а мне вот такой нраится"
недаром в программе 22disk
используются 100ни (!) описателей под разные виды сp/m от разных компов
может стоит сделать подержку таких описателей (они там в текстовом виде хранятсья)
http://www.gaby.de/newdisks.def

BEGIN SIN1 Sinclair ZX Spectrum+3 DOS - DSDD 3.5"
DENSITY MFM ,LOW CYLINDERS 80 SIDES 2 SECTORS 9,512 SKEW 2
SIDE1 0 1,2,3,4,5,6,7,8,9
SIDE2 1 1,2,3,4,5,6,7,8,9
ORDER SIDES LABEL AMS1
BSH 4 BLM 15 EXM 0 DSM 356 DRM 255 AL0 0F0H AL1 0 OFS 1
END

BEGIN SIN2 Sinclair ZX Spectrum+3 CP/M 3.0 - SSDD 3.5"
DENSITY MFM ,LOW CYLINDERS 80 SIDES 1 SECTORS 9,512
SIDE1 0 1,2,3,4,5,6,7,8,9
BSH 3 BLM 7 EXM 0 DSM 175 DRM 63 AL0 0C0H AL1 0 OFS 1
END