PDA

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



Helbr
27.03.2019, 14:24
Первый вариант.
Я собрал на макетке вместе с дисплеем на ILI9341, там же расположен слот карты памяти.
68597

Отлаживал на пентагоне 128.
Удалось запустить чтение и запись на SD карту на контроллере Atmega64a. Работает с TRD образами. У Atmega64 осталось много свободных ног. Если не наворачивать дополнительный функционал, то можно и на arduino перенастроить.

Вывод дебага идет через USART.
Для удобства смены образа на SD карте должен быть создан файл IMAGES.CFG (https://bitbucket.org/rudolff/z80controller/src/arduino/Docs/IMAGES.CFG) достаточного размера до 512 байт.
Формат простой: имена файлов разделенные переводами строки, 1-я строка - дисковод A:, 2-я - B:, 3-я - C: .
Для пустого дисковода указывается "-".
На 4-й не пустой строке путь до папки с TRD файлами: "/" - для корня. Если указана папка, то без слэша в конце: "/TRD".
Диск D: - управляющий. Для него доступны команды CAT и LIST. От имени файла показываются только первые 8 символов, это ограничение tr-dos.
Для смены образа нужно выбрать дисковод куда будет смонтирован образ, по умолчанию уже выбран дисковод A:, он обозначен стрелочкой при выводе каталога диска D:.

68729

Выбор дисковода:


LOAD "d:B"CODE
или
*"d:"
LOAD "B"CODE


Выбор образа:


LOAD "d:DIZZY.TR"CODE
или
*"d:"
LOAD "DIZZY.TR"CODE


После выполнения команды конфиг записывается на карту.

Переделал на arduino nano.
Частично, не использую загрузчик arduino, отключил его через фьюзы и заливаю прошивку через ISP.
687116873168713

Схема на arduino nano: https://easyeda.com/vitalian1980/fdcduino

Исходники в ветке arduino для Atmel Studio: https://bitbucket.org/rudolff/z80controller/src/arduino/

Исходники для Arduino IDE: https://bitbucket.org/rudolff/fdcduino/src/master/

Так как использую petitfs, то нет возможности выделить место под образ и конфиг, поэтому работает только с TRD образами. Для конвертации SCL образов я использую scl2trd из пакета fuse-utils (https://sourceforge.net/projects/fuse-emulator/files/fuse-utils/). Добавил путь к этой утилите в переменную окружения PATH. Для пакетной конвертации создал batch скрипт (https://bitbucket.org/rudolff/z80controller/src/arduino/Docs/convert_scl.bat).

Вот картинка (https://bitbucket.org/rudolff/z80controller/raw/fd241f3d960fc055f50a98d66770b39763f91c81/Docs/pentagon_128-4-modified.png) поясняющая что из обвязки нужно оставить.

Похожий проект на Stm32 (https://zx-pk.ru/threads/28827-vg93em-emulyator-m-s-kr1818vg93-na-mk-stm32f205r(b-c-)t.html)
По мне немного перебор, так как на Stm32 можно целый спекки эмулировать (https://habr.com/ru/post/412325/), но если он максимально точно эмулирует ВГ93, то почему бы и нет. Stm-ку сейчас наверно проще достать чем ВГ93.

zebest
27.03.2019, 14:27
но можно и на arduino перенастроить.
с этого и начинать надо было.
но на ардуинке есть такой\похожий проект, вполне неплохо работает и собирается на коленке проводочкамЕ. Да, и уже не один. Но всемда рады новомуу)
хотя да, на ардуинке это только может у меня??
Елси все же под Ардуино будет проект, то желательно по такой схеме, чтобы два раза не вставать
https://github.com/EvgeniyRU/ZX_FDD_Emulator/blob/master/Connection_diagram.png

Helbr
27.03.2019, 15:24
О том проекте я всю тему (https://zx-pk.ru/threads/26328-planiruyu-sdelat-fdd-emulyator-na-atmega8.html) прочитал :) Круто очень круто.

У него есть минусы и плюсы:

+ Это отдельное устройство, включается в разъем дисковода.
+ Может работать в паре с обычным дисководом.
- Эмулирует только один дисковод без возможности выбора из tr-dos.
- На данный момент поддерживает только чтение.
- Жестко привязан к таймингам сигналов. Нет возможности для ускорения.


Как раз в той теме кто-то упомянул про эмулятор контроллера дисковода, и я заинтересовался, можно ли такой сделать.

Мое устройство это замена ВГ93, кроме того можно еще пяток микрух с платы убрать: дешифратор портов - ИД4, порт FF - АП11, задающий генератор, в общем почти всю обвязку ВГшки.

Подключаются: шина данных D0-D7, адреса A5, A6, A7, сигнал выбора портов 1F, 3F, 5F, 7F, FF - INEN, Чтение - RD, Запись - WR и WAIT.

Минусы:

Требутся вмешательство в плату. Но кого это пугало? И если микрухи на панельках, то вставить в панельку не микруху а проводок не проблема.
На данный момент не адаприрована под ардуино.
Поддерживает только tr-dos формат образов 640кБ.


Плюсы:

Уже работает чтение и запись.
Есть возможность поиграть с таймингами, увеличить скорость.
Можно подключить все 4 виртуальных диска и переключаться между ними.

zx_
27.03.2019, 15:30
Helbr, вот бы - вг93 из панельки вынул, и в эту же панельку вставил платку эмулятор с сиди карточкой

zebest
27.03.2019, 15:39
эмулятор контроллера дисковода, и я заинтересовался, можно ли такой сделать.

Мое устройство это замена ВГ93
тогда не так. У тебя получается "контроллер дисковода +сам дисковод". Занятно, особенно если будет адаптировано к ардуине и можно цеплять на более-менее стандартный разъем, куда Ольшая часть этих сигналов уже выведена. Есичто - то можно и на ардуинку пожирнее, если обычной не хватит.

Helbr
27.03.2019, 16:00
Helbr, вот бы - вг93 из панельки вынул, и в эту же панельку вставил платку эмулятор с сиди карточкой
Практически так и сделано, только 2 проводка идут к ИД4. Можно типа ардуино нано развести и мини SD слот, но может не влезть. Или плату-переходник на ардуино нано. В этой конструции мне не нравится дополнительный дисплей с кнопками или необходимость переставлять карту в комп чтобы образы дисков переставить. Хорошо бы допилить загрузочное меню самого спека. Можно общаться через незадействованные порты 9F, BF, DF для получения каталога карты, а из tr-dos выпилить команду FORMAT, а на ее место вставить функции получения списка и выбора текущего образа.

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

В общем получается DivMMC :)

zx_
27.03.2019, 16:05
zebest, вот как здесь турбосаунд сделан - в панельку АУ вставил и все
https://zx-pk.ru/threads/10510-emulyator-ay-8910-na-atmega/page41.html
также и вг93
и никаких дисплеев!

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

Helbr
27.03.2019, 16:29
В tr-dos все файлы в одной директории лежат, и ограничение есть на 256 файлов. Запутаться можно. А так, если в ПЗУ найти константы, то можно и 256 дорожек x 256 секторов выставить. Размер сектора я бы увеличивать не стал.

goodboy
27.03.2019, 16:37
ограничение есть на 256 файлов.
скорее на 128.
заголовки файлов хранятся в первых восьми секторах
8*256=2048
2048/16=128

CityAceE
27.03.2019, 17:01
В tr-dos все файлы в одной директории лежат, и ограничение есть на 256 файлов. Запутаться можно. А так, если в ПЗУ найти константы, то можно и 256 дорожек x 256 секторов выставить. Размер сектора я бы увеличивать не стал.И как же тут не вспомнить DirSys :)

Отправлено с моего SM-G955F через Tapatalk

Helbr
27.03.2019, 18:09
Придумал как сделать монтирование образов с минимумом внешних прибамбасов :)))

Берем один диск, скажем D: и эмулируем на нем виртуальную файловую систему tr-dos отражающую реальную систему FAT с фильтрацией по расширению, показываем только образы и только 8 букв имени.
Как это должно выглядеть:

Переходим в диск d: *"d:"
Получаем список файлов:CAT
Выводится список: "Dizzy.a", "Dizzy.b", "Dizzy.c"
Монтируем файл к диску a: LOAD "Dizzy.a".


Когда спектрум читает файл, он обращается к определенному сектору, и по номеру сектора мы можем восстановить имя файла.
Тут возможны варианты. Можно ли задавать любое расширение и насколько они равнозначны в tr-dos?
Или лучше добавить специальные файлы "A", "B", "C"?
Вызывая попарно монтируем образ:

LOAD "A"
LOAD "Dizzy"

Второй вариант чуть сложнее но поддерживат больше образов в каталоге так как их не надо по 3 раза выводить.

Думаю что это реализуемо.

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


И как же тут не вспомнить DirSys :)

Отправлено с моего SM-G955F через Tapatalk

Не знал о такой системе. Интересно: как же она работает?

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

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

andykarpov
27.03.2019, 18:16
Елси все же под Ардуино будет проект, то желательно по такой схеме, чтобы два раза не вставать
https://github.com/EvgeniyRU/ZX_FDD_Emulator/blob/master/Connection_diagram.png

Тут же не эмуль дисковода, а дисковода с контроллером вместе, насколько я понимаю, вместе в ВГ93 - это круть, конечно же!

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


1F, 3F, 5F, 7F, FF - INEN
Может махонькую CPLD-шку для этих портов придумать?

zx_
27.03.2019, 18:28
Helbr, директории - пофиг, есть же TRDN , к примеру
https://zx-pk.ru/threads/2952-tr-dos-navigator-(trdn).html

да и лучше размером дискет , и еще количеством дисководов

goodboy
27.03.2019, 18:35
и еще количеством дисководов
а что делать (с основной массой софта) где загрузчик жёстко заточен на диск "A" ?

Eltaron
27.03.2019, 18:55
В общем получается DivMMC :)
DivMMC для мира, где у большинства реалов нет краевого разъема. Так что неплохая идея. Жаль, что ROM менять нужно.

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


Второй вариант чуть сложнее но поддерживат больше образов в каталоге так как их не надо по 3 раза выводить.

Раз всё равно ROM курочить, то можно и

LOAD "Dizzy" a
В обработчике LOAD анализировать строку и прибавлять номер диска (A: - 0, B: - 1 etc) к номеру читаемого сектора.

Helbr
27.03.2019, 20:04
Раз всё равно ROM курочить, то можно и

LOAD "Dizzy" a
Как раз и не нужно. Стандартные команды. Просто по другому отработают. Обновят конфиг на карте, потом после переключения на другой диск будет другой образ читаться. В таком варианте вполне можно уложиться в форм-фактор Ардуино нано.

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


а что делать (с основной массой софта) где загрузчик жёстко заточен на диск "A" ?

Управляющий диск тоже можно сделать конфигурируемым, допустим 2 раза подряд набрать LOAD "A" и дефолтный управляющий диск теперь A.

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



Может махонькую CPLD-шку для этих портов придумать?

Не силен я в CPLD-шках и FPGA-шках. И не нравится мне что на них так цены завышены. Вот avr-ка за 100 рублей самое оно для таких поделок. Можно и stm32 заюзать, но это overkill :)

Eltaron
27.03.2019, 20:08
Как раз и не нужно. Стандартные команды. Просто по другому отработают.
А, мини-вариант для тех, у кого нет программатора. Ну да, так и по директориям ходить можно. LOAD "DIR", LOAD ".."
И ничто же не мешает написать свой boot.$b, который будет уметь работать со всеми этими выкрутасами, не заставляя пользователя фигачить команды в командную строку. Грузиться он будет тоже, конечно, с AVR-ки.

krt17
27.03.2019, 20:57
Отличная работа, не припомню эмулей вгшки тут.
В идеале конечно формировать каталог из папки с директориями и scl,hobeta файлами, не забыть про UP. Файлы директорий сделать по 1 сектору типа CODE. Загрузка сектора директории должна формировать новый диск. Как то так. Хотя хозяин барин, топикстартер и сам сообразит как удобнее.
Жаль что я бездельник, и хорошо что остались не бездельники.

EvgenRU
27.03.2019, 22:25
Отличная работа, не припомню эмулей вгшки тут.
А как же Speccy 2007 ? Там вроде в атмеге32 тоже эмулятор ВГшки сделан + контроллер клавиатуры, исходники вроде открыты, но там WAIT очень жесткий, из-за чего он мне не нравится :)

krotan
27.03.2019, 23:43
Думаю, это правильнее назвать не эмулятор ВГшки, а эмулятор ТРдоса. Также как и в Speccy2007 и в ПрофПЗУ скорпиона...

goodboy
28.03.2019, 12:58
в некоторых программах встречается проверка на наличие дискеты в дисководе.
https://vtrd.in/gamez/r/RUFR_REA.zip
интересно как это отработает у тебя ?

Helbr
28.03.2019, 13:42
в некоторых программах встречается проверка на наличие дискеты в дисководе.
https://vtrd.in/gamez/r/RUFR_REA.zip
интересно как это отработает у тебя ?

Надо попробовать. Я в прошлые выходные пол дня потратил разбираясь почему у меня команда LIST дальше позиционирования на нулевую дорожку не заходит. А оказалось что нужно чтобы индексный бит в регистре статуса менялся после команд первого типа. Это исправил и и заработало. Сделал так что можно оставить какой-либо дисковод пустым. Когда флешка не вставлена, tr-dos тоже показывает No Disc.

goodboy
28.03.2019, 13:54
и заодно проверь работу демок где параллельно с чтением играет музыка
https://zxaaa.ru/get.php?id=1236&f=DEMO/unreal.zip&ncr&t=1553770538&c=ae4c1f60511e0687bca846c62feecad5635b6971e2611380 58ce9375822c6624
https://zxaaa.ru/get.php?id=4321&f=DEMO/insult.zip&ncr&t=1553770473&c=ae1ef2689f369412742c0fc5cc91a5fbdc32a16598960fff a62d037fc920fcf6
..........
ещё вспомнилось что некоторые программы (например DCU) позволяют отформатировать дискету на чуть большую ёмкость ( +несколько доп.дорожек), так что кол-во дорожек в trdos явно не константа и наверно можно будет применять образ размером побольше

Eltaron
28.03.2019, 15:30
Думаю, это правильнее назвать не эмулятор ВГшки, а эмулятор ТРдоса. Также как и в Speccy2007 и в ПрофПЗУ скорпиона...
Трдос - это DOS, прошивка ПЗУ. Но именно она-то меняться и не будет. В заголовке темы верно написано - эмулятор бетадиска.

Helbr
28.03.2019, 16:34
и заодно проверь работу демок где параллельно с чтением играет музыка

Попробую, может подтормаживать когда блок данных с карты читает. Я сейчас синхронно читаю во время прерывания и WAIT задерживаю. Надо будет на асинхрон переделать если заметны тормоза будут.

Helbr
28.03.2019, 23:25
RUF&READY тормозил на заставке, почему-то постоянно дергает сброс контроллера.
А демки хитрые, не хотят у меня работать.

Helbr
29.03.2019, 10:49
goodboy
Сегодня получилось запустить insult. Но эффект забавный получился, когда показывают пацана, то проигрывает 3 ноты и следующая сцена.
А Unreal пока не хочет запускаться, надо дебажить.

goodboy
29.03.2019, 11:13
понятно. ну таких программ с десяток наберётся.
вот ещё вспомнил
https://zxaaa.ru/get.php?id=2769&f=DEMO3/powerup2.zip&ncr&t=1553847293&c=ff116ed0cb36d51862c72d9e7cefff28d62c35246c288cd7 fd5f0a79ae7094bc
так графика синхронно с загрузкой выводится

SoftLight
29.03.2019, 13:37
Сегодня получилось запустить insult. Но эффект забавный получился, когда показывают пацана, то проигрывает 3 ноты и следующая сцена.
А Unreal пока не хочет запускаться, надо дебажить.
Не надо ничего дебажить, достаточно в настройках Beta128 снять галочки с No Delays и Trap tr-dos r/w . А эффект точно так-же выглядит во всех железных эмулях где есть tr-dos: zx-evo, reverse, speccy2010.

goodboy
29.03.2019, 13:50
SoftLight тут речь о деме Unreal, а не про эмуль

SoftLight
29.03.2019, 16:39
А да промазал. Ну Unreal от KSA вообще мало где работает - там когда звездочки на первой сцене летают и идет загрузка в большинстве fpga-эмулей начинает тормозиться музыка и через некоторое время сброс. Слетает подстройка времени выполнения кода под инт из-за того, что команды ВГ слишком быстро выполнятся.

Helbr
30.03.2019, 10:28
Helbr, по этой теме ЛИСицын так и не доделал:(
Можно было бы поСоветоваться...

Да, непонятная проблема. Вызывает force interrupt, вроде все правильно обрабатываю. Power up 2 демку запустил, вчера ещё игры НЛО, НЛО-2 запускал. Непонятно почему так много игр и демок работают только с диска A:. Скорее всего просто не заморачивались, у большинства был один дисковод.

Helbr
02.04.2019, 10:06
Добавил возможность смены диска.
Диск D: отображает файлы на SD карте.
Чтобы поменять образ нужно запросить диск и образ:


LOAD"A"CODE
LOAD"DIZZY.TR"CODE


https://youtu.be/LPu1QvEsJ1w

solegstar
02.04.2019, 12:30
Добавил возможность смены диска.
Диск D: отображает файлы на SD карте.
Чтобы поменять образ нужно запросить диск и образ:


LOAD"A"CODE
LOAD"DIZZY.TR"CODE

Возможно ли с помощью команд из бейсика сделать тоже самое?
Т.е.
10 RANDOMIZE USR 15619:REM:LOAD"A"CODE
20 RANDOMIZE USR 15619:REM:LOAD"DIZZY.TR"CODE
И если да, то не будет ли проблем с такими загрузчиками в Вашем варианте выбора диска-образа? Ведь такие блоки бывают в бейсик-загрузчиках. Я понимаю, что это работает только на диске Д, но всё же. Не будет ли на такие команды реагировать диск А.
И еще: Менялась ли сама прошивка TR-DOS?

Helbr
02.04.2019, 13:54
Возможно ли с помощью команд из бейсика сделать тоже самое?
Т.е.
10 RANDOMIZE USR 15619:REM:LOAD"A"CODE
20 RANDOMIZE USR 15619:REM:LOAD"DIZZY.TR"CODE
И если да, то не будет ли проблем с такими загрузчиками в Вашем варианте выбора диска-образа? Ведь такие блоки бывают в бейсик-загрузчиках. Я понимаю, что это работает только на диске Д, но всё же. Не будет ли на такие команды реагировать диск А.
И еще: Менялась ли сама прошивка TR-DOS?
Прошивка не менялась, стандартная.
А из Бейсика не пробовал. Думаю что должно нормально работать. Команды ВГ93 выполняются для выбранного в данный момент дисковода.

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

Из доработок, хочу на Ардуино нано портировать. Памяти пока хватает. И было бы неплохо уменьшить сигнал wait по максимуму.
В этой демке при загрузке с диска заметны артефакты в виде горизонтальных полос. С 6:13

https://youtu.be/YtbtUXNrzqU?t=370

Evgeny Muchkin
06.04.2019, 14:05
Даже не артефакты, а в несколько раз медленнее грузит.

Helbr
08.04.2019, 11:16
Даже не артефакты, а в несколько раз медленнее грузит.

Да, еще оптимизировать и оптимизировать прошивку. Ну хоть как-то работает и то хорошо. Странно, пакмания вроде грузится, а в конце сбрасывается в 48 basic. 2 диска попробовал.

goodboy
08.04.2019, 11:32
пакмания вроде грузится, а в конце сбрасывается в 48 basic. 2 диска попробовал.
тут https://vtrd.in/games.php?t=p
12 версий, которая глючит ?

Helbr
09.04.2019, 08:18
Я все не проверял. Два не работает, а третий заработал. На компе в fuse все работают. Память в Пентагоне тестировал, нормальная.
Убрал дебаг в последовательный порт в релизе и стало грузиться заметно быстрее. Хочу привязать к реальным таймингам. В power up 2 видеовставка в конце мигом пролетает.

iceoflame
09.04.2019, 16:15
Helbr, Уточняющий вопрос, можно сие чудо подключить без обвязки контроллера, например к первому ленинграду? Потому, как я понял это замена ВГ93+Дисковода, но при этом обвязка контроллера используется.

Helbr
09.04.2019, 19:14
Helbr, Уточняющий вопрос, можно сие чудо подключить без обвязки контроллера, например к первому ленинграду? Потому, как я понял это замена ВГ93+Дисковода, но при этом обвязка контроллера используется.

Ну часть обвязки все же понадобится, нужен селектор адреса, триггер для переключения basic/tr-dos и ПЗУ с tr-dos. А все что между дисководом и ВГ93 не нужно.

CLR
09.04.2019, 22:04
Интересно, я тоже собираюсь в недалеком будущем из академического интереса собрать Ленинград48 (со всеми переделками и патчами), было бы занятно на макетном поле в углу платы поставить ардуинку в качестве бетадиска )

А более удобный селектор образов, типа как в проекте от EvgeniyRU планируется?

Helbr
09.04.2019, 23:44
Сначала хотел на отдельный экран выводить информацию и отдельными кнопками переключать образ. Но у спектрума же есть и экран и кнопки. А у ардунки и выводов свободных не осталось, один tx я и тот для дебага использую. В общем-то поменять образ не вынимая карту можно. Выбранный образ сохраняется в конфиге на карте, так что если используешь один диск, то не надо его каждый раз монтировать. Один недостаток, нельзя поменять диск по запросу программы. Я столкнулся с этим при попытке записать бут. Но это редкий случай.

SoftLight
10.04.2019, 08:24
Ну часть обвязки все же понадобится, нужен селектор адреса, триггер для переключения basic/tr-dos и ПЗУ с tr-dos. А все что между дисководом и ВГ93 не нужно.

Проект очень интересный, именно эмулятора вг-шки ещё не было. Но мне кажется не очень много народу будет пытаться подпаиваться к своей схеме компьютера. У многих ведь ни контроллера дисковода нет ни его обвязки. Вот еслиб все тоже самое но только развести платку с ардуинкой и её обвесом для системного разъёма!

Helbr
10.04.2019, 09:28
Вот еслиб все тоже самое но только развести платку с ардуинкой и её обвесом для системного разъёма!

А у меня на Пентагоне нет системного разъема. Нет дискет и двух дисководов - один в ПК, другой в Спектрум. И искать и покупать их не хочется. Поэтому я решил придумать им какую-то замену. SD карту намного проще и быстрее переставить в ПК и записать. А для системного разъема есть такие проекты как divMMC, PicoDivSD.

CLR
10.04.2019, 10:11
Вообще да, законченный эмулятор бета-диска под ZX-BUS даже имел бы некоторую коммерческую ценность.

Тут же как: чем проект более прост для подключения далекими от электроники пользователями, тем он будет популярнее. Поэтому и просят в разъём для ВГ и и.д.

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

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

zx_
10.04.2019, 10:29
SD карту к сферическому спектруму можно подключить пятью способами или больше
если кто не умеет пользоваться гуглом - накидаю ссылок, проще всего от Перра Путника, одна микросхема и подключай куда хочешь , к ленинграду первому самое то

пс - вот , как раз в стиле лениград 1
http://piters.tripod.com/cfif1.gif

http://piters.tripod.com/cfinit.html

а трдос и эмулятор вг93 это тема пентагонщиков жешь

CLR
10.04.2019, 13:47
Но смысл подключать сферическую сд карту к сферическому спектруму? Так можно к спектруму и Oculus rift какой-нибудь подключить, дальше то что с этим делать? Софт то у нас в-основном под tr-dos.

CityAceE
10.04.2019, 14:11
Но смысл подключать сферическую сд карту к сферическому спектруму?
Было бы идеально TR-DOS адаптировать под это дело.

Eltaron
10.04.2019, 14:25
трдос и эмулятор вг93 это тема пентагонщиков жешь
Точно, то ли дело ни с чем не совместимый способ прикрутить карту!
Ну серьёзно, повесить CF напрямую на шины? Зачем это здесь, какая связь с темой кроме того, что паяльник нужен и там, и там?


Вот бы придумать ловкий способ переключать образы, хотя бы аппаратной кнопкой чтобы «вставлялся» образ менеджера файлов примитивного, который лазит по сд-карте и директориям.
Раз свободная нога есть, то не проблема же. Кнопку на неё можно повесить. А выбирать между кнопкой и TX съемной перемычкой, все равно отладочный TX в релизной версии будет не нужен.
Пока кнопка нажата, обращения к диску A перехватываются контроллером и в ответ посылается диск, на котором только специально написанный BOOT.

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

zx_
10.04.2019, 14:29
в смысле что? игрушки и софт работают
которые под трдос не заточены
там по ссылке у Путника и образ готовой флешки с двумя тысячами игрушек
эт я iceoflame писал , кста

а эта тема про пентагон трдос и SD )

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

Eltaron, опять вы ерундой болтаете
и со своими кнопками
с кнопками уже есть эмуляторы дисковода

Eltaron
10.04.2019, 14:35
там по ссылке у Путника и образ готовой флешки с двумя тысячами игрушек
а эта тема про пентагон трдос и SD )

И образ ROM, который надо зашить, чтоб всё это заработало.
Не, это интересный проект картриджа для геймеров, но это даже близко не аналог проекта топикстартера.

И нет там SD карты, лол.


Eltaron, опять вы ерундой болтаете
и со своими кнопками
с кнопками уже есть эмуляторы дисковода
Можно без кнопки, тупо RESET отлавливать и секунду после него по запросу к A возвращать не выбранный диск, а бут. Но это в версии для системного разъема.
Ну и мало ли что там есть. Собираемого на коленке за 15 минут стоимостью в 100 рублей так и нет.

CLR
10.04.2019, 17:35
а эта тема про пентагон трдос и SD )

Причём тут вообще пентагон? У меня, например, профи и там тоже трдос. Тема про эмуляцию контроллера бетадиска безотносительно клона, к которому он подключён. А судя по объёму мелкосхем на любом контроллере бетадиска, весьма соблазнительно было бы использовать заместо него мелкую и недорогую ардуинку.

zx_
10.04.2019, 17:51
CLR, але, в танке
автор темы делает вг в пентагон

ардуинку в профик, гы,

CLR
10.04.2019, 18:15
Цитата от автора «Как раз в той теме кто-то упомянул про эмулятор контроллера дисковода, и я заинтересовался, можно ли такой сделать.

Мое устройство это замена ВГ93, кроме того можно еще пяток микрух с платы убрать: дешифратор портов - ИД4, порт FF - АП11, задающий генератор, в общем почти всю обвязку ВГшки.»

Я это понимаю как замена всего контроллера бетадиска для любого клона, не только пентагона и «пентагонщиков». Да и собственно название топика как бы намекает для тех, кто в танке.

Где и кто собирался ардуинку в профик, может уже пора научиться читать, але? )

А вот на макетное поле Ленинграда девайс просто просится, он там впишется не выходя за габариты платы, что с классическим контроллером бетадиска недостижимо.

Helbr
10.04.2019, 20:00
А вот на макетное поле Ленинграда девайс просто просится, он там впишется не выходя за габариты платы, что с классическим контроллером бетадиска недостижимо.
Не знаю, хватит ли там на макетном поле места.
Вот картинка (https://bitbucket.org/rudolff/z80controller/raw/fd241f3d960fc055f50a98d66770b39763f91c81/Docs/pentagon_128-4-modified.png) поясняющая что из обвязки нужно оставить.
Кроме того там в ленинграде упрощенная схема дешифрации портов, нужно предусмотреть чтобы ничего не конфликтовало.

CLR
10.04.2019, 20:46
Ну, если творчески переработать и оптимизировать, то почему не? Если в код контроллера ничего из логики больше не залезет, то так и придётся действовать.

goodboy
10.04.2019, 20:51
clr, а что мешает использовать допустим divIDE ?
эмуляция trdos (esxdos) там есть

CLR
10.04.2019, 20:57
clr, а что мешает использовать допустим divIDE ?

Не знаю, не имел опыта работы с ним. Немного читал, не особо понял как и что это? И насколько совместимо. Также, насколько это компактное решение (я сторонник здорового минимализма) :)

iceoflame
12.06.2019, 06:54
SD карту к сферическому спектруму можно подключить пятью способами или больше
если кто не умеет пользоваться гуглом - накидаю ссылок, проще всего от Перра Путника, одна микросхема и подключай куда хочешь , к ленинграду первому самое то

пс - вот , как раз в стиле лениград 1
http://piters.tripod.com/cfif1.gif

http://piters.tripod.com/cfinit.html

а трдос и эмулятор вг93 это тема пентагонщиков жешь

Почему на все машины, ставят натуральный ВГ93? Потому что под тр-дос много загрузчиков с защитой, которая работает только с живой ВГ.

Lapu-Leen
12.07.2019, 23:52
Данный девайс можно использовать с Пентагон -48к? Вместо INEN будет сигнал CSP?

HighLander
04.10.2019, 09:07
Переделал на arduino nano.
Частично, не использую загрузчик arduino, отключил его через фьюзы и заливаю прошивку через ISP.


т.е через бутлоадер не залить? Сложно переделать под бутлоадер? Есть арудинка, нет программатора. :(

SoftLight
04.10.2019, 10:40
Интересный проект, надо собирать))

nemo
04.02.2020, 15:34
Очень интересный проект. Дешево и в тоже время сердито. Но необходимо отвязаться от пентагона. Нужна "универсальная" реализация для тех кто захочет подключить к другим вариантам в качестве замены бетадиска.

fifan
08.02.2020, 14:10
А beta disk подключается только к Пентагону? Судя по тому где расположена эта тема, то - да. Если бы я случайно не нашёл эту тему, то и не знал, что существует такой замечательный девайс. Всё же перенесите тему в соответствующую раздел.

nemo
08.02.2020, 18:57
А beta disk подключается только к Пентагону?
конкретно это девайс затачивался под пентагон с другими моделями могут быть проблемы при подключении.

fifan
10.02.2020, 07:16
Проблемы по софту или харду?

nemo
10.02.2020, 09:21
Проблемы по софту или харду?

Софтово думаю все в порядке. ВГ он и в африке ВГ. А вот дешифрация получится ли. Например мне непонятно C36 аналог /RS или это нечто другое? Это если дешифрацию делать по типу пентагона. Если делать по другой схеме то что делать с /INEN? В общем возможны варианты. Хотя думаю все это решаемо но мне квалификации не хватает 25 лет дают о себе знать.

fifan
10.02.2020, 11:34
Уговорили - пусть тема здесь лежит. Ещё раз повторяю, что девайс мне очень нравится, жаль что он только для Пентагона.

nemo
10.02.2020, 11:44
Уговорили - пусть тема здесь лежит.
У меня бродит мысль попробовать прицепить его к ленину-3 после того как соберу ленина. Но без помощи мне не обойтись, надеюсь местные спецы подскажут. Тогда наверное и будет смысл вывести тему из "тени".

nemo
12.02.2020, 12:44
В схеме
https://easyeda.com/editor#id=07806c4c1c0648c1b904bc3ac40180cd
ошибка
шины А5 и А6. С одной стороны помечено А5 с другой она же А6, аналогично и А6.

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

valerium
03.05.2020, 10:00
Доброго дня всем.
Helbr, отличная идея, давно искал что-то, реализующее работу с trdos, но без громоздкого контроллера. Пытаюсь адаптировать данную схему под Ленинград, перетряхнул схемы пентагонов - осталось несколько непоняток.
1. в схеме подключения ардуино есть сборка из диодов и транзистора, как там написано, это логическое OR в инверсной логике для /INEN и /WAIT. Это сделано для того, чтоб не тратить корпус ЛИ1 или в данном случае для чего-то нужен открытый эммиттер ? В пентагонах /WAIT не используется, просто подтянут к единице, туда вроде можно выход обычного вентиля подать. Или все хитрее ?
2. в Ленинграде /WAIT используется и подается с выхода ТМ2, я туда врезал ЛИ1 и на ее второй вход хочу подать /WAIT из схемы.
3. перепутаны ли на схеме
https://easyeda.com/editor-mobile/#id=07806c4c1c0648c1b904bc3ac40180cd
A6 и A5 ? или такая кроссировка предусмотрена софтом ? (в исходник еще не смотрел).

valerium
05.05.2020, 00:25
Helbr, респект !
Заработало на первом ленинграде. Пока 48-ом. Кусок контроллера пришлось собрать (6 DIP-корпусов), сигнал /WAIT внутри ленинграда скоммутировал через один вентиль ЛИ1 (вход- к 5D9, выход - на Z80), на второй вход которого подавал /WAIT из эмулятора.
С ардуино формировал /WAIT через еще один ЛЛ1 (прилепил еще 1 корпус, лень было за транзистором бегать), включив входами на ардуинские ноги D2 (куда приходит /INEN) и RX.
Сигналы A5 и A6 на исходной схеме действительно перепутаны. Ориентироваться надо по наименованиям сигналов возле ардуинки (нога D5 - сигнал A6, нога D4 - сигнал A5).
Использовал ардуино нано, прошивал не пересобирая авторский .hex.
Тестирую...

HighLander
13.05.2020, 21:25
Использовал ардуино нано, прошивал не пересобирая авторский .hex.
Тестирую...

Прошивал через загрузчик ардуино?

valerium
14.05.2020, 18:29
Нет, через isp программатором usbasp, утилиткой avrdude

Вот в каком виде у меня это заработало:
https://yadi.sk/i/yVwals9iaahJpQ
Ну плюс ардуино по схеме Виталия, только вместо диодов и транзистора у меня здесь D7.1.

/wait на ленинграде во многих случаях можно отрезать от тм2, которая растягивает циклы обращения к озу - если быстродействие озу позволяет.
ну и подавать на него выход D7.1 из вышеприведенной схемы.

nemo
04.06.2020, 09:58
/wait на ленинграде во многих случаях можно отрезать от тм2

Не подскажешь /wait на ленине3 так же? Режем d22.1 нога 6 и кидаем /wait c доработки? Если не подавать /wait по этой схеме в trdos войдет (без самого эмулятора)? Эх затолкать бы эту логику в mega8, выводов хватает, логика элементарна в общем, знаний тонкостей схем zx не хватает :(. Попробовал тупо в лоб повторить логику на 8мHz при похожем подключении но не взлетело. А так миниатюрный и не дорогой эмулятор BDI бы получился на двух mega. Видно не судьба осилить :( Буду собирать видно по аналогии, на простой логике, в ущерб размерам, но для ленина3.

valerium
04.06.2020, 12:08
Вечером у компа буду - поишу схему третьего Ленина, сравню.
Без /wait этот кусок контроллера работает только как дешифратор и триггер, переключающий банки пзу. Так что "войдет" (хоть вообще без атмеги), заставку покажет, по сути это будет просто переключалка пзу и не более. На все будет говорить 'no disk'. А читает ли хотя бы каталог без вейта - не знаю.
Собственно, вся хирургия переделки с сохранением вейта только вот в чем: в разрыв линии, идущей к /wait на z80 просто включаем один элемент И (ли1), выходом на проц, разумеется, а на второй вход этого элемента даем вейт с атмеги.

Логику проше собрать на CPLD - я тут к этому прикоснулся, весьма понравилось. В планах есть переделать всю россыпь на EPM3032 (200р в России, 70-120р в Китае) - они стыкуются с 5-вольтовой схемой без вопросов. Шьются ширпотреб-усб-бластером из того же китая. Более того, на али есть много серии max7000s - это тру-5в-логика, цены те же (100-150р), корпуса plcc для макетки или tqfp для релиза - как получу, расскажу.

nemo
04.06.2020, 13:06
поишу схему третьего Ленина
Схема тут
https://yadi.sk/i/YVSwFBCHwQqTtA

получается что /wait резать аналогично.

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


ширпотреб-усб-бластером
это уже два проггера на эмулятор если его нет, что удорожает конструкцию особенно для тех кому собрать раз и забыть....
В идеале все в maga128 бы пихнуть, все бы в один корпус влезло, паять сносно. Но тут без автора никак ИМХО, а он тут и не появляется....


P.S. пожалуй теперь тему можно и перенести в соответствующий раздел раз уж появилось какое то решение подключения не только к пентагону.

valerium
04.06.2020, 18:18
для начала просто отрежь d22-1 от d18-24, и d18-24 подтяни резистором в единицу (вариант: подключить к ногам busrq или nmi, где уже вечная единица).
и если твоя память прекрасно справится и без растягивания циклов чтения, то ты получишь плюсом несколько процентов быстродействия, а авр-флоп просто подключишь потом напрямую на 24ю ногу процессора.
в пентагонах ведь она вполне справляется.

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


ps у нас он в розницу 380р стоил, думаю, что себя еще окупит.

nemo
25.06.2020, 11:14
для начала просто отрежь d22-1 от d18-24

не не взлетело. Стартует и даже выполняет простейшую прогу но при загрузке с tape вылет или зависон. Память буржуйская.

valerium
28.06.2020, 21:44
Да, просто отрезать /WAIT недостаточно. Еще нужно дорабатывать CLK у процессора.

https://zx-pk.ru/threads/16935-tajmingi-leningrad-1.html?p=608801&viewfull=1#post608801

В одном случае вроде как достаточно его тактировать инверсным H0, в другом - чуть более сложная доработка от Kirill Frolov, описана в той же ветке.
Надо будет попробовать...

П321
29.06.2020, 00:05
Я свой Composit-128 переделывал в безвайтовый по этой теме https://zx-pk.ru/threads/16312-leningrad-2010-sborka-naladka-rasshirenie.html
Процесс описан ближе к концу темы только нужно внимательно читать и пробовать разные варианты.У меня в конце концов всё получилось.Теперь точно работает и с таймингами Spectrum-48 и с Пентагоновскими.
А этот эмулятор я тоже планирую прикрутить к Ленинграду так что вопрос к Valerium-у : правильно ли я понял что прошивать нужно файлы Z80controller.hex и Z80controller.eep ? Использовать буду Arduino Pro Mini 5v. Фьюзы там трогать не надо ?

nemo
29.06.2020, 13:18
правильно ли я понял что прошивать нужно файлы Z80controller.hex и Z80controller.eep ? Использовать буду Arduino Pro Mini 5v. Фьюзы там трогать не надо ?

Да, первый файл сама прошивка, второй прошивка внутренней ПЗУ (обычно например настройки по умолчанию). Фьюзы думаю трогать не стоит. Автор затачивал под Arduino не думаю что он менял фьюзы да и не упоминает об этом.

valerium
29.06.2020, 18:31
я прошивал только hex. не знаю, оттуда ли качал, но тогда там .eep и выложено не было.
а вот по фьюзам у автора как раз там же в проекте картинка выложена, они отличаются от дефолтных.
попробуйте с Виталием связаться (Helbr), если это критично. мне он довольно быстро отвечал.

картинку нашел:
https://bitbucket.org/rudolff/z80controller/raw/43fbc986104a762219f073554ed18e9578257ef7/Docs/Atmega328_Fuses.png

П321
29.06.2020, 19:59
Да вот нашёл я картинку в архиве который качал из 1-го сообщения правда там указана Мега64 а вроде как речь шла про Arduino Nano (Mega328) и я собираюсь делать на Arduino Pro Mini 5v(Mega328). А если загрузчик Arduino не используется то видимо эти фьюзы и надо менять. Вот поэтому я и хотел уточнить. Ну да вобщем-то как дело дойдёт до прошивки думаю разберусь. У меня ещё другая проблема - смогу ли прошить ПЗУ (AT49F010) на старой материнке потому как программатора нет.

Вот теперь вижу что это для 328 Меги. У меня в архиве для 64-й.

valerium
29.06.2020, 22:21
Этот файл неслучайно носит имя Atmega328_fuses.png и имеет отношение именно к реализации на nano (или другой атмеге 328).

У меня в качестве ПЗУ Спека используются 29F020, которых у меня несколько и шьются они в их родной материнке (старая интеграшка от hp vectra vei7) родным же досовым тулом phbios . В нее засунута ZIF-панелька под ПЗУ, которое меняется на ходу (с одной запустился, другую вставил и прошил - да, варварство, но бесплатный выход из ситуации). Раньше дергал и без ZIF, заранее неглубоко вставляя стартовую ПЗУху, чтоб легко сдернуть. Пока еще ни одной ПЗУхи не испортил.
Разумеется, от 29F020 используется только четверть (64К).
BTW, эта же материнка из-за ее железного LPT оказалась полезной как программатор для ПЛИС Xilinx (программатор из четырех буферов на 74hc125 из IMPACT-а работает без вопросов).

nemo
30.06.2020, 08:43
valerium, Eсли возможно выложи картинку своих фьюзов с рабочего экземпляра ну или в 16-ричном виде (lov, higt) хуже не будет, в 16-ричном даже предпочтительнее.

П321
30.06.2020, 10:59
valerium, Eсли возможно выложи картинку своих фьюзов с рабочего экземпляра ну или в 16-ричном виде (lov, higt) хуже не будет, в 16-ричном даже предпочтительнее.
И ещё сами файлы прошивки(hex и eep) которые конкретно были прошиты в Мегу328.

valerium
30.06.2020, 19:35
Парни, да все ровно так, как на этой картинке, я не обманываю )))
Low = 0xF7, High = 0xD9, Ext = 0xFF, ну и разумется Lock = 0xFF.
вот скрин:
https://yadi.sk/i/m2R13r172-_pqA

В проекте выложен только .hex длиной 50332
Брал из этого релиза: https://bitbucket.org/rudolff/z80controller/commits/43fbc986104a762219f073554ed18e9578257ef7 (самый поздний, от 04.05.2019)
Вот прямая ссылка на файл:
https://bitbucket.org/rudolff/z80controller/raw/43fbc986104a762219f073554ed18e9578257ef7/Z80controller/Release/Z80controller.hex

П321
30.06.2020, 23:46
Вот именно это мне и было нужно. Собственно про фьюзы я по предыдущей картинке уже понял а вот файл прошивки в том архиве который я качал вроде как с того же сайта у меня отличается и по размеру и по содержимому. Видимо я не разобрался как там найти последнюю версию поэтому и попросил конкретный файл прошивки. Теперь всё окончательно ясно и со схемой и с прошивкой. Все детали уже куплены так что как будет время буду ваять.
Большое спасибо!
______________________________
Всё же разобрался что именно нужно было скачивать.

П321
08.07.2020, 17:58
Ну вот вроде запустил.Огромное спасибо автору за разработку!
Только теперь появились вопросы про файл конфигурации и вообще про логику работы.
Подключал к Композиту128(практически Ленинград1) доработанный в безвайтовый. Карточка у меня microSD 8Gb отформатирована FAT32. Закинул в корень файл конфигурации из архива и 3 образа с соответствующими именами. Запускаю TR-DOS(5.04T) и выбираю диск D. По команде CAT или LIST вижу только файлы A ,B , C . Файл А со стрелочкой. Если теперь проверить диски А В С то там будут смонтированные образы. Пробовал добавить ещё образы и дописывать их в файл конфигурации - ничего не меняется. Пробовал сделать формат диска - процесс проходит успешно но на диске всё остаётся. После выключения и включения диски А В С пустые нужно зайти на диск D и выйти то тогда на остальных дисках всё на месте. Или так и должно быть ? Смотрел видео из темы и там всё немного по другому. Программы нормально запускаются.
Что я делаю не так ? Может кто-нибудь подскажет мне более доходчиво как нужно записывать флешку и правильно создавать файл конфигурации?
Жду советов.
Заранее спасибо.

valerium
09.07.2020, 16:05
Отлично, а у меня теперь у тебе есть вопросы )
У тебя 64к пзу с бейсиком 128 и trdos ? в менюшке бейсике 128 есть пункт выбора трдос, как у пентагонов ? как организовано пзу (по банкам) и как подключено для выбора dos ?

Ну и про безвайтовую доработку - сейчас у тебя /wait со схемы эмулятора теперь приходит прям на вход /wait процессора ?
И можешь именно свои дооаботки показать по переделке тактирования без wait ? В указанной выше ветки много всего написано, но нет уверенности, что собрав все диффы я получу правильную схему.
Спасибо )


Кстати, насчет пустых дисков при выключении - а покажи пример конфига, как там у тебя образы упомянуты? У меня диски a,b,c остаются всегда, а если по ресету триггер сразу включать в состояние трдос, то сразу и автозапуск boot с диска A выполняется. Может с конфигом что не так или с именами ?

П321
09.07.2020, 18:22
Вобщем вроде как разобрался с файлом конфигурации но непонятки ещё остались. Если в 4-й строке указать на корень то работает а если указать на папку то при работе на диске D всё хорошо но при переходе на остальные диски они пустые. Да и запись не работает хотя как я понимаю должна. Может быть товарищ Helbr что-нибудь подскажет?
Конфиг сохраняется нормально и сразу после включения диски уже смонтированы.

ПЗУ нормально прошил утилиткой Uniflash1.47. Правда микросхемы у меня б/у и на одной из двух не захотел прошиваться boot блок но это не страшно.
Подключал так:
22- GND
24- /RDROM
29- сигнал выбора 48/128
31- +5V
3- /DOS
2и30- в твоём случае выбор четвертинки
Остальные ноги вроде и так понятно.
Прошивку составлял на основе пентагоновской. Если начинать от нулевого адреса то вот так:
16K - FF (или Giuk ну или что-то подобное)
16К - TR-DOS
16K - BASIC128
16K - BASIC48
Если собирать совсем по кусочкам то вроде как BASIC48 нужен специально для 128-й машины.

По переделки WAIT-а чтобы сказать абсолютно точно нужно уже вызванивать по плате а сейчас точно не получится (сдохла лампа над столом куплю новую на днях).Что я помню опишу:
1 на CLK проца идёт H0 через инвертор и нога подтянута к +5 резистором 470 Ом
2 сделал укорачивание сигнала WRBUF (из той темы) хотя на другой плате с этой доработкой не работало вообще
3 сигнал RAS идёт на память через резистор примерно 100 Ом (подбирал по стабильности)
4 и вот этот момент у меня на двух платах по разному "Только сигнал /CAS по упрощенной схеме сделан: /CAS_NEW=/H0
Напомню, что старые сигналы /WAIT и /RAS отключаются от Z80. Но /RAS подается на память К565РУ5."
5 ну и конечно WAIT у проца отрезан и подтянут к +5 резистором 10К
Вобщем я это делал до того как добавлял схему медленной памяти и пентагоновские тайминги. Память на одной плате ру5Г а на другой и Г и В(две точки).
Да конечно геморойно и нет одного точного варианта но у меня в конце концов получилось. Если никак не пойдёт то попозже постараюсь вызвонить среди МГТФ-а свой вариант.

WAIT с контроллера я просто подключал к процессору(там больше ничего кроме резистора подтяжки и нет).

Так что если не пойдёт то спрашивай буду рисовать.

Посмотрел я свою плату.
1 На 6н.(CLK) процессора подаём инвертированный H0 и резистор 470 Ом на +5в.
2 Сигнал /RAS на 4-е ноги РУ5 идёт через резистор 100 Ом.
3 На 15-е ноги РУ5 вместо /CAS идёт инвертированный H0. Если схема 48К то точно нужно менять а если доработано до 128К то скорей всего уже так и есть.
4 Укорочен сигнал WRBUF. Для этого отрезать от 1-D13 сигнал H0. Подать на элемент ЛИ1 H0(3D3) и TI(5,11D2). С выхода этого элемента сигнал H0&TI подать на 1-D13.

П321
14.07.2020, 18:36
Продолжаю доводить до ума конструкцию. Немного переделал схему.
https://ibb.co/rsLqzHH
Работать через GLUK оказалось достаточно удобно. Пробовал убирать из схемы R1 C1 R3 и сброс в GLUK остаётся стабильным. Кто может подсказать эти элементы нужны только для входа в GLUK по сбросу или они ещё на что-то влияют (работа в TR-DOS, чтение, запись) ?
И ещё вопросы к автору и кто пробовал этот контроллер. Какую версию TR-DOS лучше использовать ? Я пробовал 5.03 5.04Т 5.05. С 5.03 и 5.04Т нормально работает GLUK BOOT (очень удобно) но запись нормально не работает. Версия 5.05 через GLUK диски не видит (только через TR-DOS). Форматирование диска происходит как для одностороннего но файлы все сохраняются. Правда почему-то получилось скопировать диск через GLUK. Работает ли вообще полноценная запись или это у меня тут чего-то не хватает?
Valerium получилось ли сделать безвайтовый режим?

valerium
14.07.2020, 21:08
Продолжаю доводить до ума конструкцию. Немного переделал схему.
https://ibb.co/rsLqzHH
Работать через GLUK оказалось достаточно удобно. Пробовал убирать из схемы R1 C1 R3 и сброс в GLUK остаётся стабильным.

я эти элементы скопипастил из оригинальной схемы пентагона и тоже толком не понял, что ими вытягивали.
учитывая, что у меня не сильно стабильно работало все целиком (дело идет к тому, что это чудный флюс ТТ так и не отмывается до конца, а он неслабо проводящий), я так и не выяснил их необходимости. и, планируя очередной вариант слепить на ПЛИС, тоже хотел попробовать их выкинуть, т к в случае с ПЛИС придется несколько ног задействовать под эти rc-цепочки (или это иначе делается ?).
с флюсом - перешел пока на NR-255, нейтральный и непроводящий, но липкий, как все канифольное, в отличие от чудо-ТТ.


Valerium получилось ли сделать безвайтовый режим?
тоже еще не пробовал. у меня уже есть другой тестовый ленин со свободным макетным полем и не копаный. на нем и поиграюсь - но позже.
сейчас жара +36 и вообще ничто не располагает к сидению с паяльником.

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

из версий дос - пробовал только 5.04Т и у меня там по команде 8 вполне неплохо запускался встроенный conver commander, хотя управление у него еще то.. и периодически он (не доказано) завешивает атмегу так, что помогает только выключение-включение.
а что ты делаешь с глюком и в чем его польза ?

П321
14.07.2020, 23:21
Я пользуюсь спирто-канифольным флюсом да и стараюсь пайки сразу промывать. Про форматирование это я просто для проверки. Думал что будет работать как с реальным дисководом но вот оказалось что нет. Да запись нужна разве что если игрушка с сохранениями. Про GLUK до этого просто слышал а раз поставил такую ПЗУ то решил посмотреть что это такое. Мне показалось достаточно удобно. Доступ к трём смонтированным дискам несколькими нажатиями клавиш или мышкой. Жалко конечно что нельзя файлы разложить по разным папкам хотя есть идеи как можно немного изменить логику выбора образов но я не программист а Helbr-у наверное это уже не очень интересно. Впрочем проект и так замечательный за что ему огромное спасибо!

nemo
15.07.2020, 08:44
еще я не совсем понял, зачем вообще нужно форматирование псевдодискеты, задача этой штуки - читать закачанные из интернет-хранилищ образы, зачем их вообще менять ?


Ну а свою нетленку сохранить например. Что то сбросить по magic.

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


а Helbr-у наверное это уже не очень интересно

Может постучать в личку раз в ветку не заглядывает? может все же поможет страждующим, интерес то к проекту есть. К стати ИМХО он бы мог стать и большему количеству народа интересен если расположить ветку в соответствующий раздел.

П321 можно готовый образ ROM попросить? Я правда свой собрал но не уверен в работоспособности. К стати под GLUK нужны какие либо схемные переделки?

P.S. Когда же я со своей ленью договорюсь и сяду за паяльник. Вот все же есть, а лень уговорить не могу :(....

П321
15.07.2020, 10:58
NEMO, образ можно собрать на своё усмортение. Сейчас у меня прошит вот этот но вариант не последний. А насчёт лени то это нормальное явление. Да и не лень это вовсе а просто отсутствие нужного настроения.
73064

nemo
15.07.2020, 11:40
образ можно собрать на своё усмортение

Это понятно, но не всегда уверен в исходниках да и накосячить можно по первому то разу, а потом гадать кто виноват и что делать. Спасибо архивчик забрал.

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

valerium
15.07.2020, 12:50
Немного переделал схему.
https://ibb.co/rsLqzHH

сейчас рассмотрел детально схему - у тебя триггер трдоса сбрасывается /reset-ом в trdos, а не в бейсик, правильно ?
а как сбрасывается регистр конфигурации для выбора пзу с GLUK и как попадаешь в бейсик128?
или бейсик128 просто не нужен, поэтому его и не включаешь ?

П321
15.07.2020, 13:18
В схемотехнике я не силён поэтому просто повторил схему псевдо TR-DOS со сбросом в GLUK. ( http://sblive.narod.ru/ZX-Spectrum/PseudoTR-DOS/PseudoTR-DOS.htm )
А в стандартное меню 128 попадаю из GLUK-а.

valerium
15.07.2020, 22:27
повторил схему псевдо TR-DOS со сбросом в GLUK. ( http://sblive.narod.ru/ZX-Spectrum/PseudoTR-DOS/PseudoTR-DOS.htm )
А в стандартное меню 128 попадаю из GLUK-а.
ок, ясно, просто в схеме указана только одна линия управления страницами пзу - это /DOSEN.
Поэтому на 48й машине оно будет просто при включении сбрасываться в трдос. При живом дисководе это было очень удобно )
А вот вторая линия (/ROM2 или /ROMCS2), которая как раз корректируется доработкой сброса в глюк, осталась за схемой. Ну да ладно, я попробую сделать сброс в классический бейсик128, как на пентагоне. Из него уже стартовать трдос.

Насчет RC-цепочек на входах триггера - есть мысль, что задержки на его переключение важны при работе magic button. А без него и не потребуются. Кто на живом пентагоне использовал magic - вспомните, есть ли там какие-то капризы с подбором кондеров задержки ?

П321
20.07.2020, 13:18
Продолжаю тестировать устройство.
Подключено к Ленинграду с доработками до 128К и Пентагоновскими таймингами. При работе в режиме Spectrum запись вобщем работает нормально. Через TR-DOS Navigator и через встроенный в GLUK копировщик работает без ошибок. Программа TR-Copy работать отказалась. В режиме Pentagon копирование тоже идёт но при записи переодически выдаёт сообщение об ошибке записи и если выбрать повтор то процесс доходит до конца.
Пробовал запускать DCU8.07 и в любом режиме в случайных местах при чтении выдаёт ошибки.
Пара игрушек вообще нормально не грузятся. Карточка у меня MicroSD 8Gb 4Class. Пробовал через старый контроллер но с эмулятором дисковода (https://www.avray.ru/ru/zx-spectrum-floppy-emulator-on-arduino/) с той же карточки всё работает. Valerium, может сможете проверить у себя эти игрушки?

73105

Вот такие пока результаты. Может кто ещё собрал этот контроллер? Может быть есть какие-нибудь соображения?
В целом система работает стабильно.

nemo
21.07.2020, 11:00
Несколько вопросов по работоспособности.
Пробовал по magic запись?
Работают ли игры с отгрузкой (вроде есть такая версия elite)?
Вообще можно ли создать образ TRD и просто писать на него (раз форматирование не катит)?

Вот есть у меня вроде все для сборки только вот себя бы заставить.....

П321
23.07.2020, 13:10
Кнопкой Magic пользоваться не планировал но ради интереса допаял - работает. Правда опять же только в режиме Spectrum-а. Толи это прошивку контроллера нужно доводить или с моими доработками что-то не так хотя демки работают нормально.
Игры с отгрузкой не проверял потому как нет у меня какой-нибудь игрушки которая точно и корректно это делает.
Насчёт форматирования это действительно не очень нужно. Можно просто использовать пустой образ или удалить все файлы. Файлы удаляются и копируются нормально.
Вот есть такой вопрос. Можно ли изменить метку диска уже существующего TRD образа и если можно то как? Я собираю TRD образы в Total Commander-е и вот интересует простой способ изменить метку диска.

Black Cat / Era CG
23.07.2020, 13:20
Можно ли изменить метку диска уже существующего TRD образа и если можно то как?
На спеке это можно сделать во многих коммандерах, а на пк в хекс-редакторе например. Метка там лежит в 9 секторе 0 дороги, по смещению 08F5 от начала диска. Длина 8 символов, но можно чуть больше ;)

П321
23.07.2020, 15:20
Большое спасибо за подсказку. Теперь можно немного навести порядок. На PC мне это делать удобней.

П321
15.09.2020, 20:03
Запаял я контроллер нормально на плату. Вроде всё нормально влезло и даже работает как задумано. Плата эта была начата ещё в начале 90-х и не доведённая до ума так и лежала вместе с корпусом "Веста ИК-30". И вот очень уж хотелось сделать в компактном корпусе максимум функционала. Я уж думал что ограничусь 128К памяти, музыкалкой да РС клавиатурой но вот появилась такая замечательная разработка (ещё раз огромное спасибо тов. Helbr-у) и я понял что это самое оно. В конце концов вот что получилось:
128К памяти
Правильные тайминги Spectrum48
Тайминги Pentagon-а (переключается кнопкой)
РС клавиатура и мышка (Kempston mouse)
Музыкальный сопроцессор (эмулятор)
TR-DOS на MicroSD карточке вместо дисководов
Gluk Reset Service
Кое какие мелкие огрехи конечно есть но в целом нормально. Конечно там получилась паутина из МГТФ-а и микросхемы в два этажа но зато всё влезло в корпус.
Выглядит это как-то так
https://i.ibb.co/hf4RCQr/image.jpg (https://ibb.co/hf4RCQr)

nemo
25.11.2020, 22:32
Low = 0xF7, High = 0xD9, Ext = 0xFF, ну и разумется Lock = 0xFF.

Ты точно уверен насчет "Ext = 0xFF, ну и разумется Lock = 0xFF"?

Сдается мне я убил mega328p (я делаю на голом контроллере) попытавшись записать в него Ext = 0xFF. После этого он отказался выходить на связь.

П321
25.11.2020, 23:01
Лично я прошивал именно так (использовал Arduino Pro Mini). Собрал два экземпляра и оба работают.

nemo
26.11.2020, 09:53
У меня это привело к залочке меги. Теперь на связь не выходит. Вроде разницы то между дуиной и просто мегой никакой, однако вот так. Хорошо что LOW и Higt биты и прошивку я залил до этой попытки. Теперь мега не выходит на связь но работает :). Я бы сказал "фьюзы шить LOW и HIGT другие НЕ ТРОГАЕМ во избежании", это касается миниум новой mega328p. Однако и я теперь с TRDOS Спасибо всем и главное Helbr за столь нужную разработку.

valerium
26.11.2020, 11:04
У меня это привело к залочке меги. Теперь на связь не выходит.
А какой был источник тактового сигнала до "залочки" и какой был low byte ?
Сдается мне, что ext как раз и не менялся (изначально он и был FF) и сюда отношения не имеет

Sava
26.11.2020, 11:15
У меня это привело к залочке меги.
Програматор minipro tl-866 может разлочить фьюзы.

nemo
26.11.2020, 15:18
Сдается мне, что ext как раз и не менялся

не у меня он точно не равен FF потому то я на него и полез (bdi не работал думал из за этого но причина оказалась в другом). Источник естественно от usbas.

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

можно и фьюз доктором но не буду "работает - не трожь"

valerium
26.11.2020, 18:50
не у меня он точно не равен FF потому то я на него и полез (bdi не работал думал из за этого но причина оказалась в другом). Источник естественно от usbas.
а все-таки что было в low byte? и был ли кварц до изменения фьюзов ?

nemo
26.11.2020, 22:29
Перед залочкой LOW был 0xF7 я его прочитал из камня, изменил EXT FF и попытался записать, запись зависла. После этого камень на связь не вышел. Кварц стоял на 16 как и сейчас.

Что то мне не удается изменить образ.
Находимся на диске D
команды
LOAD "d:B"CODE
или
*"d:"
LOAD "B"CODE

ответ NO FILE(s).

Если прописано в image образы монтируются.

Работает но только в 48к. Хуже что image пишется не правильно. Ощущение, что запись прерывается в произвольный момент.

nemo
30.11.2020, 11:56
может сможете проверить у себя эти игрушки

У меня схема как у вас - не работают. Но заметил что если перегонять scl в trd в SN и скопировать образ не закрытый в SN то не грузиться. Может тут собака порылась?

П321,valerium у вас наблюдаются косяки с записью конфиг файла (особенно при подключении образа на диск C) или это у меня так косячит? А "глюк" и правда удобно, только когда перегрузишь с клавы в него попадаешь с программой в памяти (понимаю что так и задумано), приходиться перегружать через выключение.

П321
30.11.2020, 15:36
У меня что-то похожее было при запуске этой конструкции но вот что именно было уже точно не скажу. Точно помню что сначала по ошибке сигнал WAIT не подал на процессор и работало криво. И ещё пытался монтировать образы не из корня а из папки но не получилось. Кажется в файле image запись менялась правильно но образ не монтировался. А вот отдельно с диском С у меня проблем точно нет. У меня только некорректно работает запись при пентагоновских таймингах. Так что проверьте как там у вас сделан сигнал WAIT и к чему вообще подключаете(у меня Ленинград-1 безвайтовый).

nemo
01.12.2020, 09:15
С wait должно быть все нормально. Подан через ЛИ1. Вот неконтакт возможен, надо попробовать соединить с SD шлейфом без разъема....

valerium
01.12.2020, 09:57
П321,valerium у вас наблюдаются косяки с записью конфиг файла (особенно при подключении образа на диск C) или это у меня так косячит?
Я толком с корректировкой и записью конфига и не баловался, обычно просто три образа trd кидал на флешку, и конфиг правил там же на PC.
Приведи цепочку команд, которая косячит, проделаю тест 1-в-1

nemo
01.12.2020, 12:07
Когда конфиг правишь на PC да вопросов нет. Особой системы я не заметил но как то так:
Уходим в TRDOS (не важно 128 или 48)
*"d:"
LIST
LOAD "A" CODE
OK.
LOAD "ОБРАЗ1" CODE
OK.
LIST
LOAD "B" CODE
OK.
LOAD "ОБРАЗ2" CODE
OK.
LIST
LOAD "C" CODE
OK.
LOAD "ОБРАЗ3" CODE
OK.
LIST
LOAD "ОБРАЗ4" CODE
NO DISK.
(все конфиг файл корявый)

Происходит не всегда но чаще именно при такой последовательности команд. Бывает NO DISK уже и на В но реже. Раз было сразу на A.

Helbr
01.03.2021, 15:30
В схеме
https://easyeda.com/editor#id=07806c4c1c0648c1b904bc3ac40180cd
ошибка
шины А5 и А6. С одной стороны помечено А5 с другой она же А6, аналогично и А6.

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

Точно, поправил. Чет давно сюда не заходил

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


Эх затолкать бы эту логику в mega8, выводов хватает, логика элементарна в общем, знаний тонкостей схем zx не хватает :(. Попробовал тупо в лоб повторить логику на 8мHz при похожем подключении но не взлетело. А так миниатюрный и не дорогой эмулятор BDI бы получился на двух mega. Видно не судьба осилить :( Буду собирать видно по аналогии, на простой логике, в ущерб размерам, но для ленина3.

Atmega по быстродействию не вытягивает, нужно что-то типа программируемой логической матрицы, может PAL16R8

nemo
01.03.2021, 15:41
Чет давно сюда не заходил

Это точно. Надо бы почаще заглядывать тут пошла кое -какая движуха :).


что-то типа программируемой логической матрицы

Ну вообще мы тут уже на логике приспособились....

Вот есть тут проблемка с загрузкой некоторых программ (выше по ветке) И часто не могу загрузить релизы из ветки "TRDOS релизы игр" форума. Поправить бы.....

Helbr
01.03.2021, 15:42
WAIT должен подключаться по схеме "монтажное И" если есть несколько инициаторов этого сигнала.
http://easyelectronics.ru/montazhnoe-i.html

Поэтому все инициаторы сигнала WAIT должны быть с открытым коллектором, или между выходом и входом WAIT должен быть дополнительный диод, в качестве которого в моей схеме используется эмиттерный переход транзистора. Транзистор еще дополнительно усиливает сигнал.

nemo
01.03.2021, 16:54
От этого зависит глюк с загрузкой некоторых программ?

Helbr
01.03.2021, 17:23
От этого зависит глюк с загрузкой некоторых программ?

Сложно сказать, могут быть загрузчики, которые точно на тайминги завязаны, а с SD картой мы не можем их правильно выдержать - контроллер карты может выполнять дополнительные действия, в драйвере petitfs тоже много мест с программными задержками, и получение данных занимает время. Я пытался эмулировать расположение секторов, но многие диски не грузились. Может стоит взять контроллер пожирнее, чтобы хватало 4к памяти на всю дорожку и все заработает. Или на ассемблере переписать процедуру прерывания и поднять частоту чтобы отказаться от WAIT.

valerium
01.03.2021, 17:31
День добрый всем.
Я тут поразвивал немножко этот проект на основе исходников автора, в частности доделал "интерфейс" в виде дисплея 1602 и энкодера. Все это пришлось перетащить на атмегу 644, т.к. надо было еще ног под дисплей и энкодер, а также больше ОЗУ, чтоб сортировать файллист, полученный с карты.
Логика вместо горсти корпусов собрана на epm3032, но она ничуть не поменялась относительно ранее рассмотренной схемы. На стенде пока отладил выборку диска (a,b,c) и соответствующего ему файла trd, сохраняется все после выбора в тот же images.cfg, а вариант выбора файла со служебного диска D командами трдоса остался неизменным.
Сейчас жду плату с завода и буду паять опытный образец.

А теперь, собственно, вот я о чем: если есть интерес и если автор не возражает, могу это выложить сюда. Хотя лучше было бы создать отдельную тему вне "пентагона", т.к решение уже годится для практически любого спека, а тут его не особо видят.

Helbr, как вы относитесь к этим идеям ?

upd: указанную здесь (https://zx-pk.ru/threads/30269-emulyator-kontrollera-diskovoda-beta-disk-na-avr.html?p=1091800&viewfull=1#post1091800) проблему тоже изучал и связана она с разными длинами имен файлов
(меняем длинное имя на короткое, например), вносимых в начало или середину images.cfg. Там обработка не строковая, а бинарная и есть баг со сдвижкой "хвоста" списка после вставляемого в середину имени.
Поскольку это сильно влияло на сохранение списка образов из энкодерного меню, я это немного пофиксил, сейчас проблем нет со списком, если хватает длины файла images.cfg (надо оставлять место в конце). Использованный там petitfs не умеет дописывать существующий файл, удлиняя его, т е если был ранее файл 50 байт, а записали в него больше, то он сохранит только первые 50 байт из данных для записи, остальное потеряет. И если images.cfg построен впритык (только три имени образа или еще меньше), а пересоздаваемый из меню список должен быть длиннее, то из-за обрезки файла в исходную длину у нас часть images.cfg будет потеряна.

Helbr
01.03.2021, 18:36
День добрый всем.
Я тут поразвивал немножко этот проект на основе исходников автора, в частности доделал "интерфейс" в виде дисплея 1602 и энкодера. Все это пришлось перетащить на атмегу 644, т.к. надо было еще ног под дисплей и энкодер, а также больше ОЗУ, чтоб сортировать файллист, полученный с карты.
Логика вместо горсти корпусов собрана на epm3032, но она ничуть не поменялась относительно ранее рассмотренной схемы. На стенде пока отладил выборку диска (a,b,c) и соответствующего ему файла trd, сохраняется все после выбора в тот же images.cfg, а вариант выбора файла со служебного диска D командами трдоса остался неизменным.
Сейчас жду плату с завода и буду паять опытный образец.

А теперь, собственно, вот я о чем: если есть интерес и если автор не возражает, могу это выложить сюда. Хотя лучше было бы создать отдельную тему вне "пентагона", т.к решение уже годится для практически любого спека, а тут его не особо видят.

Helbr, как вы относитесь к этим идеям ?

Я, конечно, обеими руками "за".
И за перенос темы в общий раздел и за развитие проекта.
Как я понял, тут еще 3 человека собрали этот контроллер и не на пентагонах, что меня как автора порадовало.

И если будет несколько вариантов, то и желающих собрать тот или иной вариант прибавится. Кому-то приглянется вариант максимум, кому-то минимум.

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

Было много вопросов по поводу прошивки из среды разработки ардуино. Считаю что этому нет никаких особых препятствий, можно переименовать основной файл в FDCdu.ino и отладить сборку.
Хорошо бы еще как-то освободить вывод RX чтобы можно было полноценно взаимодействовать с ПК. Например чтобы закинуть файлик не перетыкая карту памяти.

nemo
01.03.2021, 19:18
Может стоит взять контроллер пожирнее

у меня плата заточена под 328 :(

Helbr
02.03.2021, 00:01
Добавил в первый пост ссылку на проект для Arduino IDE: https://bitbucket.org/rudolff/fdcduino/src/master/

Проект компилируется, но на железе еще не пробовал.

nemo
02.03.2021, 10:00
На arduino-1.8.13 компилиться но с кучей предупреждений.

sketch\wd1793.cpp: In function 'void printError(char*, uint8_t)':
sketch\wd1793.cpp:173:22: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
print("FR_DISK_ERR");
^
sketch\wd1793.cpp:176:23: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
print("FR_NOT_READY");
^
sketch\wd1793.cpp:179:21: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
print("FR_NO_FILE");
^
sketch\wd1793.cpp:182:24: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
print("FR_NOT_OPENED");
^
sketch\wd1793.cpp:185:25: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
print("FR_NOT_ENABLED");
^
sketch\wd1793.cpp:188:27: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
print("FR_NO_FILESYSTEM");
^
sketch\wd1793.cpp: In function 'void WD1793_FlushBuffer()':
sketch\wd1793.cpp:200:37: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
printError("Writing error: ", res);
^
sketch\wd1793.cpp:205:47: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
printError("Writing error on finish: ", res);
^
sketch\wd1793.cpp: In function 'void SetDiskPosition(uint16_t)':
sketch\wd1793.cpp:236:37: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
printError("Reading error: ", res);
^
sketch\wd1793.cpp: In function 'void WD1793_Reset(uint8_t)':
sketch\wd1793.cpp:258:34: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
printError("Error mount: ", res);
^
sketch\wd1793.cpp:263:44: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
printError("Error open IMAGES.CFG: ", res);
^
sketch\wd1793.cpp:266:20: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
print("Open File");
^
sketch\wd1793.cpp:271:34: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
printError("Error open: ", res);
^
sketch\wd1793.cpp:281:28: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
printError("pf_read", res);
^
sketch\wd1793.cpp:323:19: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
print("Open File");
^
sketch\wd1793.cpp:327:33: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
printError("Error open: ", res);
^
sketch\wd1793.cpp: In function 'void WD1793_UpdateConfig()':
sketch\wd1793.cpp:348:30: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
print("Mount FileSystem... ");
^
sketch\wd1793.cpp:351:34: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
printError("Error mount: ", res);
^
sketch\wd1793.cpp:357:44: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
printError("Error open IMAGES.CFG: ", res);
^
sketch\wd1793.cpp:363:28: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
printError("pf_read", res);
^
sketch\wd1793.cpp:410:41: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
printError("Error write config: ", res);
^
sketch\wd1793.cpp:414:51: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
printError("Error on finish write config: ", res);
^
sketch\wd1793.cpp: In function 'void WD1793_ReadDir(uint16_t)':
sketch\wd1793.cpp:439:28: warning: invalid conversion from 'uint8_t* {aka unsigned char*}' to 'char*' [-fpermissive]
strncpy(buf + bufIndex + 1, " <--", 4);
~~~~~~~~~~~~~~~^~~
In file included from sketch\wd1793.cpp:14:0:
e:\�����\arduino-1.8.13\hardware\tools\avr\avr\include\string.h:449 :14: note: initializing argument 1 of 'char* strncpy(char*, const char*, size_t)'
extern char *strncpy(char *, const char *, size_t);
^~~~~~~
sketch\wd1793.cpp:456:37: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
printError("Error open dir: ", res);
^
sketch\wd1793.cpp:473:18: warning: invalid conversion from 'uint8_t* {aka unsigned char*}' to 'char*' [-fpermissive]
strncpy(buf + bufIndex, finfo.fname, MIN(len, 8));
~~~~^~~~~~~~~~
In file included from sketch\wd1793.cpp:14:0:
e:\�����\arduino-1.8.13\hardware\tools\avr\avr\include\string.h:449 :14: note: initializing argument 1 of 'char* strncpy(char*, const char*, size_t)'
extern char *strncpy(char *, const char *, size_t);
^~~~~~~
sketch\wd1793.cpp: In function 'uint8_t WD1793_GetFilesCount()':
sketch\wd1793.cpp:504:37: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
printError("Error open dir: ", res);
^
sketch\wd1793.cpp: In function 'void WD1793_LookUpFile(uint8_t)':
sketch\wd1793.cpp:566:37: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
printError("Error open dir: ", res);
^
sketch\wd1793.cpp: In function 'void WD1793_CmdReadingSector()':
sketch\wd1793.cpp:676:39: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
printError("Reading error: ", res);
^
Скетч использует 12834 байт (39%) памяти устройства. Всего доступно 32256 байт.
Глобальные переменные используют 1238 байт (60%) динамической памяти, оставляя 810 байт для локальных переменных. Максимум: 2048 байт.
Последовательный порт не выбран.

valerium
02.03.2021, 10:35
На arduino-1.8.13 компилиться но с кучей предупреждений.


А работает ? И самое главное - через загрузчик заливаться будет ?
Ворнинги вообще не критичные, преобразование uint8_t * к char * (корректно совершенно) и в основном в дебаговых сообщениях. Они и в атмел студио почти в том же составе отображаются.

зы: А вот моя переделка вряд ли компильнется в ардуино, хотя те библиотеки, которые я прикручивал, в ардуино бы и не потребовались - там свое все есть. Можно будет у ардуины перевесить дисплей на TWI (у меня он в параллельном режиме подключен).
Я сегодня-завтра допишу несколько ошибочных обработчиков (сообщения на дисплей на no card/no filesystem и подобное), пройдусь комментами и выложу. И наверное лучше в репозиторий на гите (с сохранением ссылок на авторский проект). Здесь будет ссылка на репозиторий.

nemo
02.03.2021, 12:40
А работает ?

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

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


А вот моя переделка вряд ли компильнется в ардуино

Ну для arduino может и не надо дисплеев. Поправить ошибки главное.

Helbr
02.03.2021, 13:14
И самое главное - через загрузчик заливаться будет ?
Должно заливаться

valerium
05.03.2021, 23:41
Выложил свою "версию 2" с интерактивным меню на LCD
https://github.com/valerium-labs/FDCemu_v2

Если кратко, то
1. Схема универсальна для любого спека, не только для Пентагона (дешифраторы адресов, портов ВГ93 и триггер выбора TRDOS в ней реализованы на CPLD или либо могут быть выполнены на мелкой логике). CPLD-решение построено графически в виде BDF.
2. Позволяет интерактивно выбирать для одного из трех "приводов" (A,B,C) образ файла в формате TRD из <=256 файлов на SD-карте с файловой системой FAT (ограничение <=256 связано с буфером ОЗУ контроллера, где выполняется сортировка этого списка для вывода на LCD). Имена файлов .TRD поддерживаются только короткие. Четвертый привод D остается управляющим и с его помощью можно пролистать каталог SD-карты командами TRDOS, а также выбрать образ для нужного привода - эта часть осталась неизменной.
3. Управляется энкодером через импровизированное меню (выбор привода - выбор файла - запрос сохранения - сохранение), по сути просто прописывает в одну из трех строк IMAGES.CFG выбранное и подтвержденное имя TRD-образа, а затем инициализирует "ВГ93". В ждущем режиме дисплей отображает статус выбранного "привода".

Отлаживал на макете, плату для живого варианта еще не получил и не запускал. Когда ее опробую, тоже выложу.
Примерно вот как это выглядит:
7485374854
7485574856

valerium
19.03.2021, 23:10
Приехали платы, собрал v2 на CPLD и туда же засунул живой длинный AY (а если точнее, то ямаху). Платы сделал c краевым разъемом, а в спеках у меня везде запаян слот с ZX-BUS.
Получился вот такой вот конструктивчик:
74980
74981
74982

ну и еще пара фоток на гитхабе, и там же герберы платы, если кому понравится.
https://github.com/valerium-labs/FDCemu_v2

Теперь о сюрпризах. Мне весьма нравится дешевейший 30-позиционный энкодер, который ставится в ардуиновских модулях KY-040.
30 кликов и 30 импульсов ("одноимпульсный"). Собственно, прошивка написана под него и именно им приятно листать большой список файлов (1клик - 1 сдвиг на 1 файл).
А из всего того, что удалось найти продающимся в серии EC11 (отдельный энкодер, а не модуль для ардуино), оно было 2-импульсное и с меньшим числом положений. Крутить уже не так удобно, из-за двух импульсов на клик попадать еще сложнее, по идее надо дорабатывать код.

Вопрос: а знает ли кто-нибудь полную модель этого энкодера 30/30 из модуля KY-040 ? Чтоб ссылаться на него в BOM и других доках ?
Или может он там тоже каждый раз разный ?

IREK
31.03.2021, 17:40
Подскажите пожалуйста, это устройство (схема из 1го поста) можно подключить к Дельте 48 52мс?

valerium
31.03.2021, 22:51
Подскажите пожалуйста, это устройство (схема из 1го поста) можно подключить к Дельте 48 52мс?
Схема из первого поста включает в себя только эмулятор ВГ93 и флопа. Подразумевается, что дешифратор адресов и триггер трдоса уже есть в контроллере флопа (в пентагоне, например). Если подключать к дельте без контроллера флопа, то собирать надо всю вышеуказанную обвязку. Например по схеме из 75 поста (https://zx-pk.ru/threads/30269-emulyator-kontrollera-diskovoda-beta-disk-na-avr.html?p=1063028&viewfull=1#post1063028) или из 94 поста (https://zx-pk.ru/threads/30269-emulyator-kontrollera-diskovoda-beta-disk-na-avr.html?p=1072625&viewfull=1#post1072625).

IREK
01.04.2021, 18:47
ПЗУ нужно перепрошить?

valerium
01.04.2021, 22:35
Не перепрошить, а добавить. Если исходно есть только один банк на 16к для бейсика-48, то надо ПЗУ на 32к (27256), куда прошить два банка для бейсика и ТРДОСа. Триггер ТРДОСа переключает их по старшей адресной линии.

IREK
14.04.2021, 23:04
Кто собирал по этой схеме скиньте пожалуйста фото монтажа.
75231

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


Не перепрошить, а добавить. Если исходно есть только один банк на 16к для бейсика-48, то надо ПЗУ на 32к (27256), куда прошить два банка для бейсика и ТРДОСа. Триггер ТРДОСа переключает их по старшей адресной линии.
Напаять сверху еще один прошитый бэйсиком и ТРДОС, вывод выбора МС куда соединить?

П321
14.04.2021, 23:29
Я собирал но в конце концов немного изменил. Паял просто на картонке так что на монтаж смотреть бесполезно.
Элементы R3 C3 можно не ставить это только для моего случая.

Sandro
15.04.2021, 13:05
Ворнинги вообще не критичные, преобразование uint8_t * к char * (корректно совершенно) и в основном в дебаговых сообщениях. Они и в атмел студио почти в том же составе отображаются.


Откуда там uint8_t? Строковые константы имеют тип const char *, вот он и должен быть у аргументов функций print()/printError(). Компилятор ругается на передачу строковых констант в функцию, которая не обещает сохранять константность аргументов.

valerium
15.04.2021, 14:35
Напаять сверху еще один прошитый бэйсиком и ТРДОС, вывод выбора МС куда соединить?
Если напаять бейсик+трдос, то старую микросхему надо как-то отключить (/cs или /oe в единицу), а в новой выбирать банк по ноге A14 (выв 27 - при активном /DOSEN должен выбираться банк с трдосом, т е трдос лучше шить в нижнюю половину адресов.
А если напаять сверху только 16к с трдосом, то надо будет еще схему выборки соорудить. Обычно у наших спеков или /oe или /cs всегда в активном уровне (на земле), вот по этой ноге и можно будет выбирать. На одну подавая /DOSEN, на другую его же инвертированный.
Но проще с единым ПЗУ.

IREK
15.04.2021, 19:02
Значит сигнал /DOSEN нужен для переключения Basic48/TR-DOS. Зачем нужен /OUTIORQ?

goodboy
15.04.2021, 19:32
изучай теорию https://vtrd.in/book/BDI.ZIP

valerium
15.04.2021, 21:07
Значит сигнал /DOSEN нужен для переключения Basic48/TR-DOS. Зачем нужен /OUTIORQ?

Контроллер флопа "врезается" в линию /IORQ от процессора между процессором и другими устройствами ввода-вывода для того, чтобы во время работы контроллера запрещать их работу. А /OUTIORQ - это "отфильтрованный" контроллером сигнал "/IORQ", который равен процессорному /IORQ при неактивном контроллере и единице при активном.

nemo
16.04.2021, 13:07
Элементы R3 C3 можно не ставить это только для моего случая.

А на что они влияют?

П321
16.04.2021, 14:13
Это для нормальной записи в режиме пентагона.

valerium
16.04.2021, 15:39
Это для нормальной записи в режиме пентагона.
Кстати, а как выглядит "ненормальная запись" ?
Эти элементы есть в схеме пентагона для формирования какой-то задержки, я их тоже оттуда копировал, но потом убирал и разницы не обнаруживал. И в CPLD-версии их нет - и не требуются (на ленине с времянками пентагона)

П321
16.04.2021, 16:56
Выглядит это как запись на плохую дискету. После записи половины дискеты начинаются сообщения о невозможности записи и попробовать ещё или отменить. Если постоянно отвечать повтор то в конце концов диск будет полностью записан. Честно говоря даже не знал что в схеме пентагона подобная цепочка есть. Подбирал методом научного тыка. А в режиме стандартных таймингов всё нормально и без доработок.

IREK
17.04.2021, 00:08
Какую прошивку нужно зашить для TR-DOS (один ПЗУ для Basic48 и TR-DOS)? Можно ли вместо Basic48 зашить OpenSE Basic и будет ли все это работать вместе с TR-DOS?

valerium
17.04.2021, 06:51
Какую прошивку нужно зашить для TR-DOS (один ПЗУ для Basic48 и TR-DOS)? Можно ли вместо Basic48 зашить OpenSE Basic и будет ли все это работать вместе с TR-DOS?
Я так и не нашел в ветке, какой клон спека будет использоваться с этой штукой.
Прошивать надо стандартный бейсик48 (1982) и тр-дос, наверное, любых версий.
5.03, 5.04(т), 5.05 стандартно работали, может и более глубокие переделки 6.хх заработают.
А OpenSE бейсик вообще является самостоятельной прошивкой или он как 128й использует подпрограммы из бейсика48 ? В обоих случаях трдос по стандартным адресам в нем не найдет нужных процедур и все загнется.
Короче, вариант трдос 5.03 (банк 0) и бейсик48 (банк1) однозначно не подведет.

IREK
18.04.2021, 00:07
Значит тр-дос нужно зашить с нулевого адреса, а бэйсик48 с 16384? Комп будет стартовать с тр-доса?

valerium
18.04.2021, 03:37
Значит тр-дос нужно зашить с нулевого адреса, а бэйсик48 с 16384? Комп будет стартовать с тр-доса?

Эти банки в одних адресах. Просто их можно переключать, что и делает триггер трдоса. Комп будет стартовать с того банка, который будет активен после сброса. Можно слегка меняя схему сброса этого триггера сделать как угодно.

IREK
18.04.2021, 07:11
Откуда скачать прошивки? Как разделить на банки?

valerium
19.04.2021, 01:12
Откуда скачать прошивки? Как разделить на банки?
Да везде навалом. В составе любого эмулятора все отдельными кирпичами лежит. И гугл сразу сто аариантов даст...
http://zx-spectrum.narod.ru/rom.htm

IREK
19.04.2021, 06:23
Искал в формате НЕХ, поэтому не нашел, оказывается можно конвертировать из .bin, сегодня попробую. Одну часть, например Basic48, думаю смогу прошить, но как прошить Tr-dos с переключением по банкам для меня остаётся загадкой.

valerium
19.04.2021, 08:15
Искал в формате НЕХ, поэтому не нашел, оказывается можно конвертировать из .bin, сегодня попробую. Одну часть, например Basic48, думаю смогу прошить, но как прошить Tr-dos с переключением по банкам для меня остаётся загадкой.

В чем сложность-то ? берем два bin-а по 16к, это трдос и бейсик48, слепляем их (именно в таком порядке) в один файл 32к, прошиваем в микросхему 32кб. Все.
Сделав отвод с ноги 27 (лучше подтянутый в единичку через 10к) подаем туда /dosen с контроллера.
Если непонятно, как это работает, то лучше почитать учебник по bdi, тут выше давали ссылку.

IREK
19.04.2021, 08:34
Как слепить два .bin файла ? Еще у меня программатор работает только с последовательным терминалом, т.е. с НЕХ файлом. Может у кого то есть возможность прочитать дамп ПЗУшки прошитой TR-DOS И Basic48?

Serg6845
19.04.2021, 09:23
Как слепить два .bin файла ?

copy /b file1.bin + file2.bin output.bin


Еще у меня программатор работает только с последовательным терминалом, т.е. с НЕХ файлом. Может у кого то есть возможность прочитать дамп ПЗУшки прошитой TR-DOS И Basic48?

basic (http://sksb3.no-ip.org:8085/zx48.rom)
trdos 5.03 (http://sksb3.no-ip.org:8085/trdos503.rom)

сконвертить потом в HEX можно например софтиной от программатора winpic800 (https://www.winpic800.com/?page_id=488%20&lang=en)
выбираем в настройках 24256, file-open-открываем .bin, file-save as-сохраняем .hex

valerium
19.04.2021, 10:42
copy /b file1.bin + file2.bin output.bin

Поправочка: пробелов возле плюса быть не должно, это важно.
То есть:
copy /b file1.bin+file2.bin output.bin

IREK
19.04.2021, 12:19
где нужно набрать copy /b file1.bin+file2.bin output.bin ?

SoftLight
19.04.2021, 12:56
где нужно набрать copy /b file1.bin+file2.bin output.bin ?
в командной строке любой windows или ms-dos
в windows нажать win+R там ввести cmd.exe
мануал (https://docs.microsoft.com/ru-ru/windows-server/administration/windows-commands/copy)

Serg6845
19.04.2021, 13:20
Поправочка: пробелов возле плюса быть не должно, это важно.
То есть:
copy /b file1.bin+file2.bin output.bin

оффтопик: специально проверил под вин7, винхр и полуосью - пофиг на пробелы от слова совсем...

gdv2002
28.04.2021, 16:19
Скажите, а как подружить эту схему

https://pic.maxiol.com/thumbs2/1619615858.1373551171..gif (https://pic.maxiol.com/?v=1619615858.1373551171..gif&dp=2)

с Ленинградом НЭТИ?

https://pic.maxiol.com/thumbs2/1619587839.1441366178.256ay.png (https://pic.maxiol.com/?v=1619587839.1441366178.256ay.png&dp=2)

Serg6845
28.04.2021, 21:16
Скажите, а как подружить эту схему
с Ленинградом НЭТИ?


/WAIT Z80 оторвать от схемы, подать через элемент ЛИ1 (на входы ЛИ1 - то что шло на /WAIT изначально и выход /WAIT этой схемы)
/IORQ Z80 оторвать от схемы и подать через элемент ЛЛ1, на второй вход - /IORQGE этой схемы
/DOSEN - на 1 ногу ПЗУ, ПЗУ прошить - нижняя половина - 2 раза трдос, верхняя половина - то что сейчас есть
остальные сигналы - по названиям
по моему так

gdv2002
29.04.2021, 06:52
Дополнительные микры вводить не охота, в схеме есть 1 свободный элемент ЛЛ1, два - ЛЕ1, один - ЛА3 и один - ТМ2, если на /WAIT или /IORQ задействовать последовательно связку двух ЛЕ1 или ЛЕ1 и ЛА3, не будет больших задержек?

Serg6845
29.04.2021, 09:09
Дополнительные микры вводить не охота, в схеме есть 1 свободный элемент ЛЛ1, два - ЛЕ1, один - ЛА3 и один - ТМ2, если на /WAIT или /IORQ задействовать последовательно связку двух ЛЕ1 или ЛЕ1 и ЛА3, не будет больших задержек?

критичных быть не должно.
да, забыл еще важный момент - 12 ногу ЛА2 оторвать от +5 и подать на нее сигнал /DOSEN (A14 ПЗУ).

gdv2002
29.04.2021, 11:10
и подать на нее сигнал /DOSEN (A14 ПЗУ)

Наверное по моей схеме /EDOS?

Serg6845
29.04.2021, 11:25
Наверное по моей схеме /EDOS?
да, он, ошибся.

nemo
29.04.2021, 13:34
ногу ЛА2 оторвать

На 3 ленине у меня вроде как и без этого работает. Правда уже малехо подзабыл с ремонтом. Пора вспоминать что я там навертел....

gdv2002
29.04.2021, 14:05
Вот схема эмулятора для НЭТИевского варианта

https://pic.maxiol.com/thumbs2/1619694986.1441366178.dip28.jpg (https://pic.maxiol.com/?v=1619694986.1441366178.dip28.jpg&dp=2)

На Ардуинке пометил номера ног, при использовании Атмеги в ДИП-корпусе.

Необходимые доработки внес в схему и плату Ленинграл-256 НЭТИ.
https://zx-pk.ru/threads/33168-leningrad-256-neti.html

Serg6845
29.04.2021, 21:20
На 3 ленине у меня вроде как и без этого работает. Правда уже малехо подзабыл с ремонтом. Пора вспоминать что я там навертел....

на 48к это не нужно. на 128к - я этот кусок схемы взял со 128 пентагона.

nemo
30.04.2021, 08:23
на 48к это не нужно.

У меня память расширена до 256.

nemo
30.04.2021, 13:01
сейчас проблем нет со списком

А можно указать "пароли и явки" где что и на что изменено?


Использованный там petitfs не умеет дописывать существующий файл

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

valerium
30.04.2021, 23:52
А можно указать "пароли и явки" где что и на что изменено?

Функция WD1793_UpdateConfig() в файле wd1793.c
Помню уже смутно, но вроде ее целиком можно просто взять из версии 2.
Исходную версию не правил, правил уже только перепиленную под 644


Т.е. создаем файл, набиваем с десяток другой пустых строк с верху пишем что нам надо и в этом случае глюк наблюдаться не должен?
Набиваем _в_конце_ побольше пустых строк. Чтоб в случае, если все упомянутые в конфиге имена образов разом стали длинее, то им бы хватило места в этом файле.
Библа petitfs при записи в файл не умеет увеличивать его длину. То есть если файл исходно был 50 байт длиной, то хоть сколько в него выполняй дозапись, он все обрежет на эти 50 байт.

nemo
01.05.2021, 09:30
взять из версии 2

Это версия какая? Вроде от автора под arduino только рабочая и не проверенная под arduino ide.


правил уже только перепиленную под 644

не думаю что она в этой части сильно перепилена. Вероятно функцию можно из исходика взять без изменений или с минимальными изменениями.

valerium
01.05.2021, 09:38
Это версия какая? Вроде от автора под arduino только рабочая и не проверенная под arduino ide.

вот эта (https://zx-pk.ru/threads/30269-emulyator-kontrollera-diskovoda-beta-disk-na-avr.html?p=1109326&viewfull=1#post1109326)
исходники на гитхабе

nemo
06.05.2021, 13:20
А работает ?

Нет. Автор видно поправил, сейчас компилится без предупреждений однако после входа в trdos любая команда вводит спек в ступор без каких либо сообщений и промпта с курсором. На экране только заставка trdos.

nemo
26.10.2021, 09:42
Заглохла тема :(.

gdv2002
27.10.2021, 09:54
А подключал кто этот эмулятор к компам с шиной НЭМО-bus, ZX-bus, конкретно к КАЙ?

nemo
27.10.2021, 10:13
Конкретно к каю вроде нет (есть возможность стать первым). Но ИМХО ничему не противоречит. На zx-bus вроде все нужные сигналы присутствуют. К тому же если есть контроллер FDI то можно обойтись просто заменой ВГ эмулятором.

valerium
27.10.2021, 11:26
А подключал кто этот эмулятор к компам с шиной НЭМО-bus, ZX-bus, конкретно к КАЙ?
Дешифратор и "триггер трдоса", исходно обкатанные на пентагоне, ровно такие же, как в большинстве контроллеров bdi. Так что запустить или адаптировать можно. Из особенностей только то, что требуется растягивать циклы wait-ом (он должен корректно быть выведен на шину) и то, что нет собственной пзу, то есть по одному логическому сигналу (равному триггеру трдоса) надо выбирать половинку пзу либо с досом, либо с бейсиком. То есть это пзу таким уже должно быть. Либо навешивать еще одно.

ps. совместимость у этого варианта ВГфлопа не сильно высокая, достаточно много всего не работает, но вполне можно из 3-5 скачанных версий нужной софтины найти такую, загрузчик которой заработает. Но справедливости ради - и у esxdos в divmmc она далека от 100%.

valerium
09.11.2021, 23:21
Покупаю ардуину-нано и её обвязку согласно этой схеме


Нет, данная схема дана для Пентагона, где есть контроллер BDI и все нарисованное втыкается вместо ВГ93 (он же WD1793, он же MB8877 - это все почти братья).



(WD-socket - это шина спектрума (aka ноги Z80), так ведь?)


Это имелся в виду сокет WD1793. Там есть специфические сигналы помимо шины Z80



Закидую в ардуину эти исходники https://bitbucket.org/rudolff/fdcduino/src/master/
А через какой софт, кстати? Ни разу дуинами не баловался.
в начале 00-ых AVR ещё через LPT шил, но там препод заранее всё приготовил, и фьюзы прописаны, шоб не угробить.

avrdude (+avrdudess), khazama - их много. Через программатор для AVR (как минимум чтобы фьюзы исправить).



И на этом всё? SD-карты каких объёмов оно читает? 2гига распознает? Как подготовить SD-карту ?(хотя до этого этапа ещё очень далеко)

Форматнуть в FAT32. положить TRD-файлы. поправить конфиг, в котором пишется, какой образ к какой букве дисковода мапится.
Когда надоесть править конфиг на ПЦ, можно кое-что доработать - я немного допиливал эту версию, она позволяла листать файлы на LCD-дисплее при помощи энкодера и выбирать нужный. Про нее было тут (https://zx-pk.ru/threads/30269-emulyator-kontrollera-diskovoda-beta-disk-na-avr.html?p=1107257&viewfull=1#post1107257)




/INEN эт что за сигнал ? Где он на плате ленина расположен?
На плате ленина его и нету. Это сигнал контроллера BDI пентагоновский и именование его именно из схемы пентагона. Чтоб его получить на ленине, надо собрать еще кусочек схемы. Чтоб не повторяться, предлагаю пролистать тему примерно начиная отсюда (https://zx-pk.ru/threads/30269-emulyator-kontrollera-diskovoda-beta-disk-na-avr/page8.html)

ALKO
09.11.2021, 23:28
Нет, данная схема дана для Пентагона, где есть контроллер BDI
Чорд... у меня нет контроллера. А там помимо ВГ-шки ещё и жменя логики, и ПЗУ шить. Всё-таки вариант с DivMMC попроще, на мой взгляд.

valerium
09.11.2021, 23:41
Чорд... у меня нет контроллера. А там помимо ВГ-шки ещё и жменя логики, и ПЗУ шить. Всё-таки вариант с DivMMC попроще, на мой взгляд.
Да не нужен целый контроллер, просто в Пенте он есть от рожденья. Здесь было уже полдюжины вариантов этой обвязки для лениноподобных клонов, которая представляет собой примерно четвертуху этого контроллера. Я поначалу дважды паял его на мелкоте, потом просто засунул это в мелкую ПЛИСку. В итоге можно собрать все на ардуине + SD-модуле + ПЛИС навроде epm3032. Это тоже есть в теме.
Но вот если есть только ПЗУ без ТРДОСа и добыть его негде, то может divmmc и попроще получится. Но в обоих случаях потребуется некоторая часть хирургии внутри ленина.

vitecd
17.12.2021, 02:07
Запаял я контроллер нормально на плату. Вроде всё нормально влезло и даже работает как задумано. Плата эта была начата ещё в начале 90-х и не доведённая до ума так и лежала вместе с корпусом "Веста ИК-30". И вот очень уж хотелось сделать в компактном корпусе максимум функционала. Я уж думал что ограничусь 128К памяти, музыкалкой да РС клавиатурой но вот появилась такая замечательная разработка (ещё раз огромное спасибо тов. Helbr-у) и я понял что это самое оно. В конце концов вот что получилось:
128К памяти
Правильные тайминги Spectrum48
Тайминги Pentagon-а (переключается кнопкой)
РС клавиатура и мышка (Kempston mouse)
Музыкальный сопроцессор (эмулятор)
TR-DOS на MicroSD карточке вместо дисководов
Gluk Reset Service
Кое какие мелкие огрехи конечно есть но в целом нормально. Конечно там получилась паутина из МГТФ-а и микросхемы в два этажа но зато всё влезло в корпус.
Выглядит это как-то так
https://i.ibb.co/hf4RCQr/image.jpg (https://ibb.co/hf4RCQr)

фигасе франкенштейн )) не глючит? ))

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


Почему на все машины, ставят натуральный ВГ93? Потому что под тр-дос много загрузчиков с защитой, которая работает только с живой ВГ.

а можно примеры? я бы покопался в отладочке...

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


Ленинградом НЭТИ
ох тыж йо майо )) даже не слышал о таком звере )) мы в НЭТИ в соответствующие года, другое ляпили )))

goodboy
17.12.2021, 09:45
"Почему на все машины, ставят натуральный ВГ93?
Потому что под тр-дос много загрузчиков с защитой, которая работает только с живой ВГ."


а можно примеры? я бы покопался в отладочке...
скорее всего речь идёт об `искажении` некоторых синхробайтов при чтении дорожки целиком.
в межсекторный промежуток можно записать свои данные
и потом их проверять или использовать как ключ для расшифровки данных.
при обычном (посекторном) копировании они потеряются.

nemo
17.12.2021, 10:16
а можно примеры? я бы покопался в отладочке...



Дык так тут есть и так где покапаться. Много довольно не грузиться и без каких либо защит. Да и файл конфигурационный бьется. Это вроде поправили частично но т.к. arduino исходник нерабочий я поправить не смог....

nemo
23.12.2021, 09:07
Кто нибудь пробовал запускать с эмулятора EliteLegend. У меня не стартует. Если кто пожелает попробовать прикладываю сконверченый из SCL TRD.
76729

goodboy
23.12.2021, 10:45
У меня не стартует
работа с trdos там стандартная #3D13

Имеется Ленин 3 доработанный до 256к
возможен сбой при работе с портами GS

nemo
23.12.2021, 12:20
возможен сбой при работе с портами GS

Вот потому и прошу других попробовать что бы понять у меня косяк или не только.

goodboy
23.12.2021, 12:28
а сам проверку на GS в коде отключить не можешь ?

nemo
23.12.2021, 12:50
а сам проверку на GS в коде отключить не можешь ?

К сожалению нет не настолько силен. :confused:

П321
23.12.2021, 16:07
На Ленинграде-1 с данным эмулятором нормально запускается.

nemo
24.12.2021, 08:47
нормально запускается.

Фигово значит у меня где то косяк :( будем искать.....

OldSpeccer
08.03.2025, 18:49
Сорри за некропостинг.
В общем, повторил я этот контроллер, все работает отлично, но Глюк по сбросу таки не запускается. Образец-доработанный Ленинград-1.
Вариант под Ардуино-IDE не рабочий, но hex прошился и работает на ура. Спасибо автору - отличная штука, легковесная и дешевая получается,
и главное - BDI, но при этом никаких ВГ93.

IREK
11.03.2025, 11:19
Всем привет.
OldSpeccer, по какой схеме собрали?

IREK
12.03.2025, 10:08
Эмулятор работает на запись? Или только чтение?

П321
12.03.2025, 10:51
Да запись работает.
И Глюк тоже прекрасно работает и через р.с. очень удобно монтировать диски.

IREK
12.03.2025, 11:02
У меня Дельта С 48к, значит нужно собирать вот по такой схеме?

П321
12.03.2025, 12:46
Вот конкретно про Дельту ничего подсказать не могу (никогда не сталкивался) а именно этот вариант схемы выкладывал я.
У меня работает на Ленинграде-1 доработанном до 128К и пентагоновских таймингов. Заработало конечно не сразу но в конце концов всё получилось. Сама схема достаточно компактная и у меня всё прекрасно поместилось в корпус Веста ИК30.

IREK
12.03.2025, 14:03
Дельта С 48к мало чем отличается от Ленинград-1.
П321, в вашей схеме 6 корпусов а на 1м 7, интересно какую собрать ?

П321
15.03.2025, 15:37
Не совсем понял про какую ещё схему вы говорите но в целом система проверенная и рабочая. Да я собственно "свою" схему сам не сочинял а просто соединил в одно целое разные фрагменты. Просто внимательно разберитесь куда подключать в вашем случае и паяйте. Вообще разработка мне очень понравилась и сейчас она у меня отлично работает.

IREK
15.03.2025, 21:23
Имел ввиду схему с магик кнопкой или без. Valerium писал что у него на 48к запустилась схема обычная т. е. без кнопки, я тоже буду так собирать.
Спасибо!

OldSpeccer
25.03.2025, 17:45
IREK,
собирал вот по этой схеме https://ibb.co/rsLqzHH
Да, запись работает отлично, MAGIC не собран. Но в глюк не сбрасывается, возможно потому что DD3 у меня из серии НСТ, и надо бы подбирать RC цепочки.
Поигрался немного, безрезультатно, в итоге забил и оставил как есть. Ленинград у меня сильно похож на тот, что у П321, переключаемый между ZX/Pentagon
таймингами, правда переключение попроще. Работает одинаково устойчиво в обоих режимах.

П321
06.07.2025, 23:12
OldSpeccer, а не могли бы Вы поделиться вашими схемными вариантами. Планирую переделывать классический Ленинград в наиболее удобную машинку для игрушек и вот собираюсь с мыслями.

OldSpeccer
25.07.2025, 19:23
OldSpeccer, а не могли бы Вы поделиться вашими схемными вариантами. Планирую переделывать классический Ленинград в наиболее удобную машинку для игрушек и вот собираюсь с мыслями.

Я вас умоляю "схемные варианты"... Просто я забил на сложный и ненужный передискретизатор бордюра, то есть его не стал собирать вообще. Ну а переключение трех параметров сделал на трех тумблерах: тактов на ИНТ 69888/71890, ИНТ Спектрум/Пентагон, медленная память вкл/выкл. И в принципе все, остальное в точности как у вас.