nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 09:00



Reply to topic  [ 182 posts ]  Go to page 1, 2, 3, 4, 5 ... 13  Next
MSX в proteus 
Author Message
Doomed

Joined: 12 Feb 2016 13:39
Posts: 463
Reply with quote
Что бы не оффтопить тут решил сделать самостоятельную тему.
Проект не закончен, все в работе.
Attachment:
MSXtestR.PNG
MSXtestR.PNG [ 114.3 KiB | Viewed 25719 times ]

на данный момент уже можно запускать некоторые программы из картриджа.
v9938.dll работает только в текстовом режиме и Graphic mode I без спрайтов, так что с играми пока рано баловаться.
И, что самое важное! нашел две ошибки в x80_v11.dll :econfused: в командах с префиксом ED, исправил их и сделал x80_v12.dll.
i8255.dll в этой схеме, тоже правленная, были нюансы в последовательности отработки CS, RD и WR.

Я с MSX никогда дело не имел, для меня все это совершенно непонятно, вот разбираюсь...
Мне на данный момент интересно отработать работу мапперов памяти, которых существует масса, и понять на каком варианте остановиться при реализации в железе.
Основные варианты, как я понял:
- через регистр 0xFFFF, и так можно расшириться только на 4 блока в 64К, те 256К в одном слоте;
- и через порты 0xFC-0xFF, так можно расшириться до 256*16К=4МБ.
Что из этого предпочтительней и более популярно в использовании?
у меня есть два чипа памяти 44с256, вот на них хочу сделать 256К RAM, а с маперами пока не определился.
Если кто найдет программы, которые пойдут на этой версии v9938, то я бы их с удовольствием потестировал...


Attachments:
msx.zip [534.97 KiB]
Downloaded 614 times


Last edited by PVV on 30 Mar 2018 08:55, edited 1 time in total.

29 Mar 2018 01:35
Profile
Doomed

Joined: 01 Oct 2007 10:30
Posts: 665
Location: Ukraine
Reply with quote
PVV wrote:
Мне на данный момент интересно отработать работу мапперов памяти, которых существует масса, и понять на каком варианте остановиться при реализации в железе.
Основные варианты, как я понял:
- через регистр 0xFFFF, и так можно расшириться только на 4 блока в 64К, те 256К в одном слоте;
- и через порты 0xFC-0xFF, так можно расшириться до 256*16К=4МБ.
Что из этого предпочтительней и более популярно в использовании?

Ага, мапперов существует масса. Только это не совсем мапперы, точнее так:
Регистр FFFF - это регистр расширения слота. Каждый из четырех слотов можно расширить, и получить еще четыре расширенных слота. Обычно расширяют 3 слот (последний).
Порты 0xFC-0xFF - это как раз и есть стандартный маппер памяти.

По хорошему надо делать и регистр FFFF, и порты FC...FF. Я у себя пока эти модули не делал. Информацию и схемы по это вопросу легко найти в интернете. Существует с десяток реализаций, поэтому ссылки приводить не буду. А мои схемы пока не готовы.

Да есть очень толковая книга по архитектуре MSX.

_________________
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru


29 Mar 2018 02:59
Profile
Doomed

Joined: 01 Oct 2007 10:30
Posts: 665
Location: Ukraine
Reply with quote
Ага. Ром/картридж начал выбираться по /SLTSL1 у мя. Но тест-рам вываливается толи в бейсик толи еще куда с ошибкой. Просьба. Выкладывайте продвижение проекта, с сам проектом в протеусе.

_________________
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru


29 Mar 2018 10:47
Profile
Doomed

Joined: 12 Feb 2016 13:39
Posts: 463
Reply with quote
Alekcandr wrote:
Но тест-рам вываливается толи в бейсик толи еще куда с ошибкой.

Что за ошибка? в строке 200? это как раз проблема в x80.dll, ее надо заменить на 12ю версию, она в архиве есть, как и сам файл проекта из протеуса. Номер версии используемых dll пишется в 'консольном'(где всякие варнинги и прочее) выводе протеуса.


29 Mar 2018 10:58
Profile
Doomed

Joined: 01 Oct 2007 10:30
Posts: 665
Location: Ukraine
Reply with quote
PVV wrote:
Alekcandr wrote:
Но тест-рам вываливается толи в бейсик толи еще куда с ошибкой.

Что за ошибка? в строке 200? это как раз проблема в x80.dll, ее надо заменить на 12ю версию, она в архиве есть, как и сам файл проекта из протеуса. Номер версии используемых dll пишется в 'консольном'(где всякие варнинги и прочее) выводе протеуса.


Тут видимо все достаточно чувствительно. У меня протеус 8.6 SP2 (билд 23525). И окошко как-то у вас по другому выглядит (дисплея). Не видно обратного хода луча по кадрам и строкам.
Таки полный комплект нид, я то могу приделать чего ни будь. Но это не то.

_________________
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru


29 Mar 2018 11:59
Profile
Doomed

Joined: 12 Feb 2016 13:39
Posts: 463
Reply with quote
Alekcandr wrote:
Тут видимо все достаточно чувствительно. У меня протеус 8.6 SP2 (билд 23525). И окошко как-то у вас по другому выглядит (дисплея). Не видно обратного хода луча по кадрам и строкам.
Таки полный комплект нид, я то могу приделать чего ни будь. Но это не то.

Я использую 8.5 SP0, до 8.6 не обновлялся еще.
Сделайте скриншот с тем, как это выглядит.
Attachment:
Снимок-7.png
Снимок-7.png [ 60.83 KiB | Viewed 25623 times ]

у меня вот так сейчас все выглядит, но v9938.dll еще дорабатываю, с цветностью не все гладко, как доделаю, выложу.
Касательно полного комплекта, так он и так полный, в архиве в первом посте этой темы, все dll_ки и проект протеуса там есть.


Last edited by PVV on 30 Mar 2018 08:56, edited 1 time in total.



30 Mar 2018 02:35
Profile
Doomed

Joined: 01 Oct 2007 10:30
Posts: 665
Location: Ukraine
Reply with quote
Докладываю. С x80.dll мой косяк был. Обновил dll в свойствах до v1.2. Теперь тест рам запускается. Но всплыла еще проблемка, отвалилась клавиатура и на нажатие кнопок не реагирует.
Запускаю все это из проекта выложенного еще в предыдущей теме.

PVV wrote:
Касательно полного комплекта, так он и так полный, в архиве в первом посте этой темы, все dll_ки и проект протеуса там есть.
В первом посте этой темы в zip архиве нет проекта протеуса. Есть только вот это msx.pdsprj.pdf.

Посмотрел pdf. В схеме на выходы U18 навешены диоды. Интересно зачем? Ведь у 74145 выходы с открытым коллектором или этот функционал не реализован в модели микросхемы.

_________________
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru


30 Mar 2018 07:31
Profile
Doomed

Joined: 12 Feb 2016 13:39
Posts: 463
Reply with quote
Alekcandr wrote:
PVV wrote:
Касательно полного комплекта, так он и так полный, в архиве в первом посте этой темы, все dll_ки и проект протеуса там есть.
В первом посте этой темы в zip архиве нет проекта протеуса. Есть только вот это msx.pdsprj.pdf.

точно, мой косяк, перевыложил все с новыми dll. Теперь с цветами все ОК!
Alekcandr wrote:
Посмотрел pdf. В схеме на выходы U18 навешены диоды. Интересно зачем? Ведь у 74145 выходы с открытым коллектором или этот функционал не реализован в модели микросхемы.

да, 74145 в протеусе не реализует ОК, пришлось ее 'доработать' простым способом :).

Еще, добавлю, в этом проекте используется bios(msx.bin) из b2m, а не с zx-pk, у него раскладка клавиатуры другая, но он быстрей стартует (быстрей проскакивает стартовая заставка).


30 Mar 2018 09:00
Profile
Doomed

Joined: 01 Oct 2007 10:30
Posts: 665
Location: Ukraine
Reply with quote
Попробовал свежачек :)

Клавиатура работает.

С цветами получилось где-то около правды :) Предположу, что это связано с тем, что модель dispRGB имеет цифровые входы RGB. А нам нужен аналоговый.

Увидел маппер памяти. Жаль, что в протеусе нет модели 74670. Вот моя реализация маппера, пока не проверена.
Еще о маппере памяти. Стандарт MSX1.0 ничего не знает об этом маппере. Тут два варианта либо править биос (сделать предустановку регистров FC…FF), либо ставить уже биос MSX2.0.

PVV wrote:
Еще, добавлю, в этом проекте используется bios(msx.bin) из b2m, а не с zx-pk, у него раскладка клавиатуры другая, но он быстрей стартует (быстрей проскакивает стартовая заставка).
С раскладной понятно, я ее спецом под нашу ямаху собирал и конвертор PS/2 я сейчас от caro использую. А вот почему биос с эмулятора b2m быстрей? Не понятно. Все биос-ы MSX1.0 одинаковые за исключение мелких правок, на скорость это точно не должно влиять. Хотя я подозреваю, в каком месте его хакнули, но это надо его вскрыть в IDA :)

_________________
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru


31 Mar 2018 00:10
Profile
Doomed

Joined: 12 Feb 2016 13:39
Posts: 463
Reply with quote
Alekcandr wrote:
С цветами получилось где-то около правды :) Предположу, что это связано с тем, что модель dispRGB имеет цифровые входы RGB. А нам нужен аналоговый.

предположение правильное :esmile:
Alekcandr wrote:
Увидел маппер памяти. Жаль, что в протеусе нет модели 74670. Вот моя реализация маппера, пока не проверена.

да, в протеусе нет симуляции 74670, скоро сделаю к ней dll, а пока сделал ее на рассыпухе.

Alekcandr wrote:
Еще о маппере памяти. Стандарт MSX1.0 ничего не знает об этом маппере. Тут два варианта либо править биос (сделать предустановку регистров FC…FF), либо ставить уже биос MSX2.0.

по отсутствию обращения к портам fc-ff я догадывался, что здесь что то не так, теперь понятно что. И, что меня сбило с толку, тест памяти этот маппер не видит...
Решил сделать расширение памяти через субслот, а тест памяти упорно говорит, что у меня 64К, тогда как в схеме 128К. Дополнительную память не обнаруживает, только слот3.2, а слот3.3 не видит.
Для чего z80 тормозится по WAIT? убрал торможение, все работает, и симуляция быстрей идет, оставил пока так.
Attachment:
MSXtestR_FFFF.PNG
MSXtestR_FFFF.PNG [ 127.67 KiB | Viewed 25518 times ]

Попытался подключить ром от msx2, а на дисплее только черный экран... :( в vdp проходит только одна запись в регистр и все. msx2 с tms9918 будет работать или надо уже 9938? и еще, что там с часами для msx, они обязательны? равно как и субром обязательно присутствие?


Attachments:
msx_FFFF.zip [356.35 KiB]
Downloaded 478 times
31 Mar 2018 14:38
Profile
Doomed

Joined: 01 Oct 2007 10:30
Posts: 665
Location: Ukraine
Reply with quote
С этим тест-рам не все так просто, толи он сам себе на уме, толи он на биос подвязывается. Для работы тест-рам нужно рам минимум 64кБ. Без биос-а MSX2 не будет видеть видео-рам больше 16кБ.

PVV wrote:
Решил сделать расширение памяти через субслот
Что слоты, что саб-слоты полностью равнозначны. Есть исключения для некоторых подключаемых железок, но это больше редкость, чем правило.

PVV wrote:
а тест памяти упорно говорит, что у меня 64К, тогда как в схеме 128К.
Памяти будет 64кБ, а вот маппер с 128кБ должен увидеть.

PVV wrote:
Дополнительную память не обнаруживает, только слот3.2, а слот3.3 не видит.
Без разницы в каком слоте память, должен видеть.

PVV wrote:
Для чего z80 тормозится по WAIT? убрал торможение, все работает, и симуляция быстрей идет, оставил пока так.
Ну, видимо ноги растут с тех времен, когда память была медленная, еще писали что звуковые чипы подглючивали (но это не точно). Пускай без вайт-а. Поплывут времянки для магнитофона, но на этом этапе это не важно.

С MSX2 я погорячился :) Забыл написать, что без часов MSX2 не заведется. По остальным вопросам чуть позже отвечу.

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

_________________
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru


01 Apr 2018 00:22
Profile
Doomed

Joined: 12 Feb 2016 13:39
Posts: 463
Reply with quote
Alekcandr wrote:
PVV wrote:
Дополнительную память не обнаруживает, только слот3.2, а слот3.3 не видит.
Без разницы в каком слоте память, должен видеть.

я память подключал в разных комбинациях и 3.0,3.1 и в просто слот1, слот2, все равно говорит 64К в слоте 3.0 или слоте1, те что первое опросил и увидел и все.
Alekcandr wrote:
PVV wrote:
Для чего z80 тормозится по WAIT? убрал торможение, все работает, и симуляция быстрей идет, оставил пока так.
Ну, видимо ноги растут с тех времен, когда память была медленная, еще писали что звуковые чипы подглючивали (но это не точно). Пускай без вайт-а. Поплывут времянки для магнитофона, но на этом этапе это не важно.

буду DRAM когда подключать(сделаю dll), посмотрю что будет с времянками.
Alekcandr wrote:
С MSX2 я погорячился :) Забыл написать, что без часов MSX2 не заведется. По остальным вопросам чуть позже отвечу.

мне то и нужно понимание минимальных требований для запуска msx2.
Alekcandr wrote:
И надо таки в биос-е MSX1 предустановку маппера рам сделать. Иначе все это бессмысленно проверять. Тогда этим и займусь, сегодня выложу тут.

править биос смысла нет, проще нужные dll написать для запуска с оригинальным биосом.
С часами там все достаточно просто, а вот 9938 это уже серьезней...


01 Apr 2018 01:53
Profile
Doomed

Joined: 01 Oct 2007 10:30
Posts: 665
Location: Ukraine
Reply with quote
PVV wrote:
я память подключал в разных комбинациях и 3.0,3.1 и в просто слот1, слот2, все равно говорит 64К в слоте 3.0 или слоте1, те что первое опросил и увидел и все.
Ну, так биос проходит последовательно по всем слотам в поиске памяти, какую первую найдет такую и будет в дальнейшем использовать (в первом приближении). Еще возможны варианты сегментации памяти. Когда допустим 16кБ в первом слоте, а 16кб во втором слоте (но это не точно. были там какие-то глюки. надо экспериментальным путем проверить)

PVV wrote:
править биос смысла нет, проще нужные dll написать для запуска с оригинальным биосом.
Не не не. У меня биос оригинальнее некуда :) Настраивать маппер задача биос-а, и только его.

_________________
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru


01 Apr 2018 02:25
Profile
Doomed

Joined: 01 Oct 2007 10:30
Posts: 665
Location: Ukraine
Reply with quote
И что есть оригинальный биос? Если взять конкретную машинку Sony HB-10. Да в ней зашит свой оригинальный биос. Но время не стояло на месте. Позже в биос-е нашли ошибки. И уже в новые машинки прошивали свой оригинальный биос с учетом исправленных ошибок. А вот возьмем, например YIS-503IIR. В его биос-е есть грубое отхождение от стандарта msx. Вот такая команда [xor a: out (0a8h),a] инициализации начального запуска. А должно быть [ld a,082h: out (0abh),a]. И нечего все работало, потому что не было у машинки ВВ55, а была ASIC микруха.

Это я к чему. Мой биос строго придерживается стандарта msx. К тому же в нем исправлены все найденные ошибки.

Пока разбирался, толи глюк словил у msx1 c с маппером памяти, толи нет. Маппер не инициализирован, а бейсик кажет наличие 32кБ. Хотя где msx1, а где маппер памяти. Не было у msx1 этого маппера в стандарте. Это потом уже такие чудные машинки появились - msx1.5.

Кстати наша ямаха YIS-503IIR и есть такой msx1.5 :)

Слепил биос спецом под msx1.5 (msx1 + маппер памяти).

Image

По поводу MSX2. Вечером постараюсь на вопросы ответить. Самому интересно. У меня конечно модульная конструкция MSX, тасуй модули как хочешь. Но не все я попробовал :)

_________________
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru


01 Apr 2018 03:51
Profile
Doomed

Joined: 01 Oct 2007 10:30
Posts: 665
Location: Ukraine
Reply with quote
PVV wrote:
Попытался подключить ром от msx2, а на дисплее только черный экран... в vdp проходит только одна запись в регистр и все.
Да наблюдается черный экран. Заглянул в биос. Биос зациклился в потугах достучаться до часов.

PVV wrote:
msx2 с tms9918 будет работать или надо уже 9938?
Не будет работать. По факту получаем зеленый экран. И опять вечный цикл в биосе. Даже если это пропатчить (гипотетически). Станет вопрос ребром по быстродействию VDP. V9938/58 грубо говоря по времени доступа в два раза быстрее. И тут придется много переписывать, а оно нам надо? А еще 9A, 9B регистры отзеркалятся. В общем фигня получится :)

PVV wrote:
и еще, что там с часами для msx, они обязательны?
Уже ответил. Не понятно, с какого перепугу так биос написан, что без часов он тупо зависает. Надо биос патчить, отучать от часов.

PVV wrote:
равно как и субром обязательно присутствие
Саб-ром обязателен. Там по сути все фичи MSX2 и реализованы. И новый маин-ром (старый с косметическими изменениями) постоянно переплетается с саб-ром-ом.

_________________
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru


01 Apr 2018 09:11
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 182 posts ]  Go to page 1, 2, 3, 4, 5 ... 13  Next

Who is online

Users browsing this forum: No registered users and 9 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.