PDA

Просмотр полной версии : Эмулятор дисковода - ?



Sonic
16.11.2006, 10:31
Утряс проблемы с количеством железа дома и завожу наконец ZX, судя по всему Москву-128.
Условием было то, что аппарат займет минимальное место и не будет представлять из себя кучу коробок, соединенных проводами.
На первое время конечно придется зацепить 3.5" дисковод. А потом... Интересно, а что скажет уважаемый All относительно эмулятора дисковода?
Можно пойти несколькими путями:

1. Связаться с Максагором и адаптировать vTR-DOS для работы с малым объемом памяти (не обязательно грузить в память весь образ, его можно и читать с карты, пусть даже это будет медленнее, но ведь БУДЕТ!). Возможно потребуется доустановка в комп служебной памяти на манер Disciple/Opus/+D.
2. Взять вот это устройство (http://amiga.org.ru/forum/viewtopic.php?t=1298&postdays=0&postorder=asc&start=0&sid=f932a8e22124b5e072219cf9df5e1277) и адаптировать к ZX.
3. Можно разработать собственный контроллер, включающийся вместо ВГ93, не имеющий ее недостатков, возможно быстрее работающий (за счет "мгновенного" позиционирования), возможно обеспечивающий также режим "прозрачного" доступа к карте (для продвинутых ОС типа IS-DOS).

Вы спросите - а какой смысл разработки для устаревших машин? А смысл - выход на западный рынок с их фирменными машинами. Конечно они в большинстве своем используют +D, но это не представляет технической проблемы, поскольку контроллер, используемый в +D, является предшественником ВГ93 и ВГ93 умеет исполнять абсолютно все его команды. Я прорабатывал этот вопрос ранее, когда загорелся идеей универсального дискового контроллера.

Идеи/мысли/пожелания?

CityAceE
16.11.2006, 10:36
2. Взять вот это устройство и адаптировать к ZX.
По поводу указанного устройства его автор уже говорил на этом форуме, что готов сделать поддержку Спектрума и даже получил необходимую информацию по форматам дискет. Но, к сожалению, он не сообщил чем всё дело закончилось. Тимур, ау! :)

Sonic
16.11.2006, 11:17
Я все-таки думаю что подключать надо не вместо дисковода, а напрямую вместо ВГ. Это проще с точки зрения firmware, а работать будет не со скоростью реальной ВГхи, а значительно быстрее. Загрузчики с фоновой музыкой тоже будут быстрее работать ибо потерь данных можно избежать в принципе. А режим непосредственного доступа к карте можно использовать например в IS-DOS для манипуляции содержимым карточки.
Кстати кто тут делал Chrome/ReSpect, можно и скооперироваться и создать MMC-based машину (что для моих условий просто шикарно ибо места плата клона занимает ну очень мало :v2_cheer: )

CHRV
16.11.2006, 11:22
Я все-таки думаю что подключать надо не вместо дисковода, а напрямую вместо ВГ. Это проще с точки зрения firmware, а работать будет не со скоростью реальной ВГхи, а значительно быстрее. Загрузчики с фоновой музыкой тоже будут быстрее работать ибо потерь данных можно избежать в принципе. А режим непосредственного доступа к карте можно использовать например в IS-DOS для манипуляции содержимым карточки.
Кстати кто тут делал Chrome/ReSpect, можно и скооперироваться и создать MMC-based машину (что для моих условий просто шикарно ибо места плата клона занимает ну очень мало :v2_cheer: )
Паш, напиши Камилю Каримову в личку, чтото он задумывал по поводу эмуляции дискет.

Sonic
16.11.2006, 11:48
А ник у него какой?
Блин жаль времени не было снять с того писюка флопик и один винт... Вот как всегда - отдашь все что валялось годами, а через неделю - ОЙ БЛИН НАДО-ТО КАК...

CHRV
16.11.2006, 12:04
А ник у него какой?
Блин жаль времени не было снять с того писюка флопик и один винт... Вот как всегда - отдашь все что валялось годами, а через неделю - ОЙ БЛИН НАДО-ТО КАК...
Ник = caro
Флопик стоит сейчас максимум 200руб в любой ПЦ-помойке.
Да я думаю у тебя наверняка 3.5 где нить валяется ненужный у друзей!

Mike
16.11.2006, 12:04
Я все-таки думаю что подключать надо не вместо дисковода, а напрямую вместо ВГ. Это проще с точки зрения firmware, а работать будет не со скоростью реальной ВГхи, а значительно быстрее. Загрузчики с фоновой музыкой тоже будут быстрее работать ибо потерь данных можно избежать в принципе. А режим непосредственного доступа к карте можно использовать например в IS-DOS для манипуляции содержимым карточки.
Кстати кто тут делал Chrome/ReSpect, можно и скооперироваться и создать MMC-based машину (что для моих условий просто шикарно ибо места плата клона занимает ну очень мало :v2_cheer: )

+1 :)

GriV
16.11.2006, 12:07
Какое видение конечного результата?
Имеются в виду платы расширений, необходимые комплектующие и самое главное - хотя бы приблизительно - затраты для модернизации.

Sonic
16.11.2006, 12:10
Кстати подумалось мне - а ведь это был бы эволюционный шаг в сторону того самого ZX-Palm... Платка маленькая, на Альтере, MMC поддерживается...

2 Griv:

Видение (1) варианта: плата подключается в слот расширения, содержит ROM необходимого размера и RAM пока неопределенного размера.
Видение (2) варианта: плата подключается в панельку вместо ВГ93, содержит контроллер и память к нему. Кнопок и экранчика можно не делать, вместо этого можно сделать всего одну кнопку (Reset MMC), которая будет устанавливать текущим образ диска с определенным именем (например boot.trd). Остальное управление можно возложить на ПО, использующее режим непосредственного доступа к карте.
Использование такого механизма дает возможность автоматически загружать с MMC все что душа пожелает. boot.trd может быть как обычным TR-DOS диском, так и скажем загрузочным диском IS-DOS. При этом загружаемое ядро IS-DOS может быть настроено так, чтобы использовать в качестве рабочего диска ВСЮ карту в режиме непосредственного доступа через свой драйвер. То бишь:

1. Машина стартует. Контроллер монтирует "boot.trd" в качестве диска A:.
2. Запускается TR-DOS, исполняет Run "boot".
3. Запускается бутсектор IS-DOS.
4. Бутлоадер IS-DOS грузит с образа диска образ ядра IS-DOS, содержащего драйвер MMC.
5. Ядро IS-DOS монтирует всю карту как рабочий диск, используя свой драйвер.
Вуаля, то о чем мы так долго мечтали - загрузка системы с альтернативного носителя без каких-либо вмешательств в ПЗУ машины. Работоспособность 100% на любой машине, хоть фирменном ZX, хоть какой.
При желании можно дополнительно к поддержке MMC ввести поддержку IDE... Хотя кому в XXI веке нужны эти громоздкие жужжащие и греющиеся кирпичи неразумных объемов... :v2_tong2:

CityAceE
16.11.2006, 12:25
Я все-таки думаю что подключать надо не вместо дисковода, а напрямую вместо ВГ.
Так безусловно логичнее и проще, но есть опасения, что часть софта всё-таки откажется работать при таком подключении.

Sonic
16.11.2006, 12:27
Так безусловно логичнее и проще, но есть опасения, что часть софта всё-таки откажется работать при таком подключении.

Из-за чего (при условии что работа ВГ эмулируется на 100%) ?

CityAceE
16.11.2006, 12:32
Из-за чего (при условии что работа ВГ эмулируется на 100%) ?
Как раз из-за того, что не возможно будет сделать 100%-ную эмуляцию ВГ. Ну, а если всё-таки предположить, что удасться создать такой эмулятор, то конечно же данный вариант подключения является идеальным.

Sonic
16.11.2006, 12:41
Как раз из-за того, что не возможно будет сделать 100%-ную эмуляцию ВГ.

Почему невозможно?

P.S. Плз не воспринимай это как голословное отмахивание. Я был бы рад услышать о возможных проблемах с целью придумывания способов обхода таковых. Лично я пока не вижу серьезных сложностей, особенно учитывая тот факт, что набор алгоритмов для работы с ВГ в подавляющем большинстве софта ограничен тем кодом, который имеется в ПЗУ TR-DOS (исключение может составлять лишь софт, использующий возможности непосредственного доступа для некоторых продвинутых клонов ZX).

P.P.S. В условиях сильной ограниченности ресурсов не исключено что первый прототип эмулятора ВГ будет работать с файлсервером (Pegasos, PC) через параллельный порт. ИМХО прикрутить интерфейс MMC - не такая уж большая проблема, гораздо интереснее проработка эмуляции ВГ как таковой. Такое решение сильно сказалось бы на скорости разработки.

NovaStorm
16.11.2006, 12:52
А если делать эмуляцию на уровне портов, убрав не только саму ВГ, но и её обвязку?

CityAceE
16.11.2006, 12:54
Почему невозможно?
Одному только Богу известно какие нестандартные точки входа в ПЗУ TR-DOS использовали наши программисты. Я допускаю, что можно сделать такую эмуляцию при которой будет работать максимальное число программ, но 100%-ной эмуляции добиться вряд ли получится.

А вообще если делать такой девайс, то нужно ещё сделать так, чтобы с карточки можно было загружать файлы типа SNA и Z80.

Sonic
16.11.2006, 13:02
А если делать эмуляцию на уровне портов, убрав не только саму ВГ, но и её обвязку?

Так я об этом и говорю! Если из любого ZX вытащить ВГ93, то обвязка попросту останется "мертвой".
Хотя конечно можно нагрузить контроллер возможностью работать и с реальным флопом используя имеющуюся обвязку - для тех кому это надо. :)

Sonic
16.11.2006, 13:15
Одному только Богу известно какие нестандартные точки входа в ПЗУ TR-DOS использовали наши программисты.


Это известно еще и мне как автору дизассемблера TR-DOS. :v2_finge: Набор этих точек (а точнее стоящих за ними алгоритмов) весьма ограничен. По известным причинам делать с контроллером все, что заблагорассудится, не получается (есть весьма тормозной способ прочитать #1F, прочитать все остальное нельзя вообще). Поскольку для обмена данными требуется читать #FF, для этой цели используются подпрограммы из кода обработки Magic button, алгоритм работы которых прост и известен.


Я допускаю, что можно сделать такую эмуляцию при которой будет работать максимальное число программ, но 100%-ной эмуляции добиться вряд ли получится.


Ну, сразу точно не получится, грабли будут вылезать конечно. Их можно фиксить. Можно предусмотреть функцию обновления фирмвари контроллера с той же карточки :v2_thumb:



А вообще если делать такой девайс, то нужно ещё сделать так, чтобы с карточки можно было загружать файлы типа SNA и Z80.

Это можно, но придется еще и модифицировать ПЗУ для размещения загрузчика. Хотя... Его и так придется модифицировать для размешения: IN A,(C)
RET
INIR
RET
OUTIR
RET
в странице TR-DOS, иначе мы не сможем толком общаться с контроллером из управляющей программы.

ASDT
16.11.2006, 15:10
"Это известно еще и мне как автору дизассемблера TR-DOS"
Я тут уже давно всем надоедаю ... :)
Надо делать Free/Open-TR DOS и тогда можно подключать любой
интерфейс вместо ВГ93 ...

Mike
16.11.2006, 15:24
"Это известно еще и мне как автору дизассемблера TR-DOS"
Я тут уже давно всем надоедаю ... :)
Надо делать Free/Open-TR DOS и тогда можно подключать любой
интерфейс вместо ВГ93 ...

Free/Open-BSDos. :v2_biggr: ZXnix или ZXix.

Sonic
16.11.2006, 15:56
Надо делать Free/Open-TR DOS и тогда можно подключать любой
интерфейс вместо ВГ93 ...

Да блин делали уже 1000 раз. И не пошло, потому что никому не захочется еще раз переламывать все дисковые программы. Да и количество человек не то, и продаж программ уже нет - мотивация отсутствует...
Система обслуживания накопителя должна обеспечивать запуск TR-DOS-софта без каких-либо изменений самого софта. Только тогда проект будет успешен. Пример - vTR-DOS.

captain cobalt
16.11.2006, 16:21
Система обслуживания накопителя должна обеспечивать запуск TR-DOS-софта без каких-либо изменений самого софта. -1
Сколько изменений надо внести в типичный софт?
Больше 100 байт?

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

С точки зрения перспективы необходимо уходить от модели "кажая программа содержит в себе загрузчик". Вместо этого следует перейти на некоторый загрузочный формат, который загружается загрузчиком. Тогда для программы не будет иметь значения, откуда её загрузили. Можно будет свободно разрабатывать новые устройства, и программы будут загружаться с них, достаточно лишь сделать загрузчик.

ASDT
16.11.2006, 16:34
"Да блин делали уже 1000 раз. И не пошло, "
Т.е. некоторые утверждают, что написать совместимый
аналог трдос нельзя ...?

Mike
16.11.2006, 17:14
"Да блин делали уже 1000 раз. И не пошло, "
Т.е. некоторые утверждают, что написать совместимый
аналог трдос нельзя ...?

Да можно и писали много раз, но не кто не поддержал. Не кто не стал ничего писать под эти новые системы. Вообще на нонешнем спеке трудно сделать более-менее полноценную ОСь. Слишком маленькие мощности. На спринтере это было и работало, но там сами, кто написал ОСь её и поддерживали, за редким исключением.

ASDT
16.11.2006, 17:20
"Вообще на нонешнем спеке трудно сделать более-менее полноценную ОСь"
Опять да потому ... Вы совсем не читаете ...?
Аналог трдос, открытый код, допускает заточку под конкретное железо ...

Максагор
16.11.2006, 19:50
А если делать эмуляцию на уровне портов, убрав не только саму ВГ, но и её обвязку?

Это как раз программно и сделано в ПЗУ ATM-turbo 2+, с очень неплохими результатами совместимости, хотя, конечно, не стопроцентными.

tnt23
16.11.2006, 21:58
По поводу указанного устройства его автор уже говорил на этом форуме, что готов сделать поддержку Спектрума и даже получил необходимую информацию по форматам дискет. Но, к сожалению, он не сообщил чем всё дело закончилось. Тимур, ау! :)

Тута я :) Отвлекся малость - то сын родился, то купил себе ZX Spectrum 48K с резиновыми кнопками и ZX Printer, ну и были другие, чуть более коммерческие проекты.

Планирую возобновить занятия эмулятором до конца года.

Sonic
17.11.2006, 09:47
"Да блин делали уже 1000 раз. И не пошло, "
Т.е. некоторые утверждают, что написать совместимый
аналог трдос нельзя ...?

Ограниченно совместимый - можно.
В свое время проблема была в том, что:
а) Системных вызовов TR-DOS #3D13 недостаточно для создания качественных утилит.
б) Они работоспособны только при полностью функционирующей среде SOS (при наличии системных переменных и пр)
Условие (б) соблюдается в игровых программах (и демах я полагаю) весьма редко, поэтому все писали собственные загрузчики, напрямую управляющие ВГ93. Программы защищались уже на дисках.
Этих программ довольно много.

Касаемо открытого исходного кода - а что там открывать... Впрочем я его еще в 90-х годах "открыл" в своей книге. :v2_finge:

Sonic
17.11.2006, 09:51
Это как раз программно и сделано в ПЗУ ATM-turbo 2+, с очень неплохими результатами совместимости, хотя, конечно, не стопроцентными.

Кстати а интересно, с чем связаны проблемы и не 100% совместимость? Или же только недостатком памяти для того, чтобы запихать туда побитовую копию диска со всеми служебными областями?
И еще интересно, а виртуальный диск в vTR-DOS работает на запись? И можно ли потом сохранить измененный образ?

Sonic
17.11.2006, 09:52
Тута я :) Отвлекся малость - то сын родился, то купил себе ZX Spectrum 48K с резиновыми кнопками и ZX Printer, ну и были другие, чуть более коммерческие проекты.

Планирую возобновить занятия эмулятором до конца года.

Ух ты, мои поздравления!!! :v2_cheer: :v2_clapp:
Кстати а есть схема и все остальное (чтобы можно было повторить) ? Или может рассылаешь платы на каких-либо условиях?

Sonic
17.11.2006, 09:57
-1
Сколько изменений надо внести в типичный софт?
Больше 100 байт?

В отечественное ПО позднего производства (> 1996 г) - гораздо больше 100 байт. Программы как правило представляют собой моноблоки либо вообще диск защищен и автостартует.


А сколько их там, этих дисковых программ?

Весьма много.


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

Mike
17.11.2006, 10:16
Тута я :) Отвлекся малость - то сын родился, то купил себе ZX Spectrum 48K с резиновыми кнопками и ZX Printer, ну и были другие, чуть более коммерческие проекты.

Планирую возобновить занятия эмулятором до конца года.

Поздравляю !!! :) :v2_clap2:

tnt23
17.11.2006, 14:37
Ух ты, мои поздравления!!! :v2_cheer: :v2_clapp:
Кстати а есть схема и все остальное (чтобы можно было повторить) ? Или может рассылаешь платы на каких-либо условиях?

Спасибо. Ну для того, чтобы сына родить, схема вряд ли нужна :v2_smile:

Платы не рассылаю - было сделано 4 штуки всего, дальше будет новый дизайн (надеюсь). Прошивка МК не распространяется, но могу прошить чип желающим потестировать.

ASDT
17.11.2006, 15:16
"Касаемо открытого исходного кода - а что там открывать... Впрочем я его еще в 90-х годах "открыл" в своей книге. " Не дизассемблер, а альтернативный вариант ..
Вцелом - не убедил ...