[MSX] SD для MSX, схемы и программы

MSX-совместимые компьютеры

Moderator: Shaos

PVV
Doomed
Posts: 463
Joined: 12 Feb 2016 13:39

[MSX] SD для MSX, схемы и программы

Post by PVV »

Обсуждение схемных и программных решений для подключения и использования SD карты к ПК семейства MSX предлагаю вести в этой теме.

На данный момент в качестве аппаратной реализации SD интерфейса используется такой вариант, а в качестве программной поддержки используется Nextor (viewtopic.php?f=96&t=18820&start=150#p151934), с маппером страниц по 16КБ размещенным в портах 0xb2 и 0xb0(SD_data).
Однако маппер в портах решение не стандартное, и для исключение возможных конфликтов с различным оборудованием предпочтительнее этот маппер разместить в памяти. Размещение в памяти подразумевает необходимость дешифратора адресного пространства, который нужно делать или на микросхеме программируемой логики или на 3-5 корпусах мелкой логики, что при 6-7 корпусах для самого SD интерфейса уже как то не очень красиво выглядит. Просматривая в очередной раз код Nextor, взгляд упал на маппер ASCII8, который этим некстором поддерживается и появилась такая идея, а что если собрать Nextor под страницы по 8КБ, в адрасах 0x4000-0x5fff, а область 0x6000-0x7fff отдать под маппер (к примеру 0x6000-0x6fff) и сам SD интерфейс (0x7000-0x7fff)? Для декодирования такой расклад памяти не потребует много корпусов мелкой логики, и все будет размещаться в одном слоте, как идея?
Alekcandr
Doomed
Posts: 665
Joined: 01 Oct 2007 10:30
Location: Ukraine

Re: SD для MSX, схемы и программы

Post by Alekcandr »

Идея хорошая. Жаль только что с MSX-DOS2 такой ход не пройдет.
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru
PVV
Doomed
Posts: 463
Joined: 12 Feb 2016 13:39

Re: SD для MSX, схемы и программы

Post by PVV »

Так Nextor, по сути и есть dos2.
PVV
Doomed
Posts: 463
Joined: 12 Feb 2016 13:39

Re: SD для MSX, схемы и программы

Post by PVV »

Попробовал реализовать идею с использованием регистра 74hc595. Все получилось очень даже красиво. Проверял с BeerSD, изменений в коде минимум, только убрал запись FF в SPI перед чтением и все! Во вложении схема, проект Протеуса и исходники BeerSD.
Получается, что такую схему можно использовать во всех проектах реализованных на ПЛИС с SD. Это и 3я версия SD интерфейса этого проекта и Z-контроллер в ZX, те везде, где сдвиг в SPI начинается и по записи и по чтению (для z80 можно использовать INIR/OTIR), а не так, как это было в используемых мною проектах, когда для чтения байта из SPI надо было записать прежде FF в SPI и уже затем читать. Единственный минус этого интерфейса - отсутствие его поддержки в emu.

Дальше займусь прикручиванием этого интерфейса к Nextor.
You do not have the required permissions to view the files attached to this post.
Alekcandr
Doomed
Posts: 665
Joined: 01 Oct 2007 10:30
Location: Ukraine

Re: SD для MSX, схемы и программы

Post by Alekcandr »

PVV wrote:Единственный минус этого интерфейса - отсутствие его поддержки в emu.
Как-то в давнишние времена (когда эмуляция захлестнула весь мир) мной был успешно перепилен blueMSX в ОРИОН-128 (ОРИОН-PRO). Рабочие название у того эмулятора было OrionEXT. Это я к чему, blueMSX написан на простом и понятном CИ, и в него не сложно впилить любой аддон.
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru
PVV
Doomed
Posts: 463
Joined: 12 Feb 2016 13:39

Re: SD для MSX, схемы и программы

Post by PVV »

Поразбирался немного с Nextor в части сборки прошивки под страницу в 8КБ и увидел возможность остаться в страницах по 16КБ без ущерба для нашего дела :).
Суть такова, в каждой 16КБ странице, в конце, записан код переключающий эти самые страницы, и этот код размещается в 0x3FE0-0x3FFF ( тк выборка этих страниц CS1, то в ОЗУ это 0x7FE0-0x7FFF). Фактически же, сам код занимает только половину этого места, те 0x3FE0-0x3FEF, а область 0x3FF0-0x3FFF остается во всех страницах свободной. Используя это можно сделать адрес переключения маппера любой из 0x7FE0-0x7FEF (это в адресах ОЗУ), а адреса SD интерфейса 0x7FF0-0x7FFF. Реализацию такой карты памяти легко сделать всего на двух корпусах - ЛА2 и ИД7. 16 байт, по которым адресуется SD интерфейс, позволяют использовать команду блочной пересылки ldi, имеющуюся у z80, что дает почти максимально возможную скорость обмена с картой. 'Почти', тк байт 16, а не 512, и 32 раза приходится перезагружать HL значением 0x7FF0.
Во вложении проект из Протеуса, для варианта с ИР24(_1) и с ИР9(_2), и исходник драйвера, в котором чтение сделано с использованием ldi.
Вся схема получается на 10 корпусах, из которых 2 корпуса это ПЗУ на 64КБ. Если поставить одну ПЗУ на 128КБ, то получится вообще 9 корпусов...
You do not have the required permissions to view the files attached to this post.
Alekcandr
Doomed
Posts: 665
Joined: 01 Oct 2007 10:30
Location: Ukraine

Re: SD для MSX, схемы и программы

Post by Alekcandr »

Интересно. Я смотрю при наличии исходников (Nextor) DOS можно накатать на любой маппер.

Надо будет потестить. Правда у меня началась полоса FPGA (не прошло и три года). Приехала платка с 5 Циклоном (5CEFA2F23). Много воды (циклонов) уплыло за три года. Пока разбираюсь (даже проект от Grant's не взлетает). Задача построить MSX1, а потом и контроллер SD.

Ваш контроллер SD буду строить в FPGA исключительно методом схемного ввода :rotate:
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru
PVV
Doomed
Posts: 463
Joined: 12 Feb 2016 13:39

Re: SD для MSX, схемы и программы

Post by PVV »

Недавно пришла мысль, а что, если в качестве ножек для подключения SD карты использовать ножки уже имеющиеся в ПК? Применительно к msx, это ножки чтения и записи на магнитофон, ножка выхода звука с ВВ55 и ножка управления светодиодом CAPS... Можно и ножку управления мотором задействовать.
Припаяв к соответствующим ножкам такую
SD_adapter.png
платку, и вставив в слот плату с 16КБ ПЗУшкой с кодом BeerSD, получим работу с SD!
Нужно лишь развязать, отключить(отрезать), выход операционника на вход AY канала чтения с магнитофона, что бы не мешался карточке.
Во вложении эта реализация с файлами конфигурации для emu. Константой DRV_TYPE при сборке определяется под какой интерфейс делать файл. Применительно к описанному выше - 2 . Различие в скорости заметно, но я не скажу, что катастрофично.

upd: обновил архив, добавил 4й тип DRV_TYPE на портах джойстика.
You do not have the required permissions to view the files attached to this post.
Last edited by PVV on 11 Dec 2019 02:49, edited 1 time in total.
PVV
Doomed
Posts: 463
Joined: 12 Feb 2016 13:39

Re: SD для MSX, схемы и программы

Post by PVV »

Зацепила меня возможность простейшего подключения SD к ПК, решил я проверить, какую же скорость этот интерфейс может показать в приложении hdspeed
Nextor_n8vem.png
пересобрав, соответственно nextor под этот вариант подключения.

Кстати говоря, BeerIDE можно очень просто адаптировать к nextor.
Берем три бита с порта ВВ55 под старшие адреса ПЗУ, получив маппер, и подключаем SD на оставшиеся ножки, все! :rotate:
You do not have the required permissions to view the files attached to this post.
Alekcandr
Doomed
Posts: 665
Joined: 01 Oct 2007 10:30
Location: Ukraine

Re: SD для MSX, схемы и программы

Post by Alekcandr »

Интересненько. Но по мне это перебор. Никто свой оригинальный MSX перепиливать не будет (оно так можно и свой уникальный ASIC чип подпалить, которого нигде уже не достать). Можно было бы эту идею минимизировать до двух проводов (с МК), но опять. Во вход/выход магнитофона много битов не задуть/выдуть (фильтр).

А вот через джой этот финт ушами можно было бы провернуть. А ах да. Это уже было сделано (какой то японец запилил, много лет назад). Все придумано до нас :mrgreen:
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru
Alekcandr
Doomed
Posts: 665
Joined: 01 Oct 2007 10:30
Location: Ukraine

Re: SD для MSX, схемы и программы

Post by Alekcandr »

Не по теме.

Если у кого вдруг появится зуд, чего бы такое подключить по последовательным интерфейсам. Джой у MSX съест все. Бо это некий HID девайс из 80г.
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru
PVV
Doomed
Posts: 463
Joined: 12 Feb 2016 13:39

Re: SD для MSX, схемы и программы

Post by PVV »

Alekcandr wrote:А вот через джой этот финт ушами можно было бы провернуть. А ах да. Это уже было сделано (какой то японец запилил, много лет назад). Все придумано до нас :mrgreen:
Все новое это хорошо забытое старое... ПО с поддержкой SD от японца есть?
Джойстик это вообще красота! и питание там есть и входы-выходы... сделал и под него сборку, обновил архив выше.
на портах AY:
PA7 - miso
PB0 - mosi
PB1 - clk
PB2 - CS
PB6 - выставляю=0, те джойстик1.

Не захотела, правда, эта конфигурация сходу работать... пока разобрался, что к чему... пришлось запрещать прерывания на время доступа к карте, иначе в прерываниях идут обращения к портам AY и карта не определяется и не работает.
Alekcandr
Doomed
Posts: 665
Joined: 01 Oct 2007 10:30
Location: Ukraine

Re: SD для MSX, схемы и программы

Post by Alekcandr »

PVV wrote:ПО с поддержкой SD от японца есть?
Вот ссылка. Честно не разбирался что там к чему.
PVV wrote:Не захотела, правда, эта конфигурация сходу работать... пока разобрался, что к чему... пришлось запрещать прерывания на время доступа к карте, иначе в прерываниях идут обращения к портам AY и карта не определяется и не работает.
Есть такое дело. Порт джойстика весит на прерывании и постоянно опрашивается.
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru