 |
nedoPC.orgElectronics hobbyists community established in 2002 |
 |
Author |
Message |
PVV
Doomed
Joined: 12 Feb 2016 13:39 Posts: 461
|

Что бы не оффтопить тут решил сделать самостоятельную тему. Проект не закончен, все в работе. на данный момент уже можно запускать некоторые программы из картриджа. v9938.dll работает только в текстовом режиме и Graphic mode I без спрайтов, так что с играми пока рано баловаться. И, что самое важное! нашел две ошибки в x80_v11.dll  в командах с префиксом ED, исправил их и сделал x80_v12.dll. i8255.dll в этой схеме, тоже правленная, были нюансы в последовательности отработки CS, RD и WR. Я с MSX никогда дело не имел, для меня все это совершенно непонятно, вот разбираюсь... Мне на данный момент интересно отработать работу мапперов памяти, которых существует масса, и понять на каком варианте остановиться при реализации в железе. Основные варианты, как я понял: - через регистр 0xFFFF, и так можно расшириться только на 4 блока в 64К, те 256К в одном слоте; - и через порты 0xFC-0xFF, так можно расшириться до 256*16К=4МБ. Что из этого предпочтительней и более популярно в использовании? у меня есть два чипа памяти 44с256, вот на них хочу сделать 256К RAM, а с маперами пока не определился. Если кто найдет программы, которые пойдут на этой версии v9938, то я бы их с удовольствием потестировал...
Last edited by PVV on 30 Mar 2018 08:55, edited 1 time in total.
|
29 Mar 2018 01:35 |
|
 |
Alekcandr
Devil
Joined: 01 Oct 2007 10:30 Posts: 666 Location: Ukraine
|
Ага, мапперов существует масса. Только это не совсем мапперы, точнее так: Регистр FFFF - это регистр расширения слота. Каждый из четырех слотов можно расширить, и получить еще четыре расширенных слота. Обычно расширяют 3 слот (последний). Порты 0xFC-0xFF - это как раз и есть стандартный маппер памяти. По хорошему надо делать и регистр FFFF, и порты FC...FF. Я у себя пока эти модули не делал. Информацию и схемы по это вопросу легко найти в интернете. Существует с десяток реализаций, поэтому ссылки приводить не буду. А мои схемы пока не готовы. Да есть очень толковая книга по архитектуре MSX.
_________________Эмулятор OrionEXT:
http://www.orion-ext.narod.ru
|
29 Mar 2018 02:59 |
|
 |
Alekcandr
Devil
Joined: 01 Oct 2007 10:30 Posts: 666 Location: Ukraine
|
Ага. Ром/картридж начал выбираться по /SLTSL1 у мя. Но тест-рам вываливается толи в бейсик толи еще куда с ошибкой. Просьба. Выкладывайте продвижение проекта, с сам проектом в протеусе.
_________________Эмулятор OrionEXT:
http://www.orion-ext.narod.ru
|
29 Mar 2018 10:47 |
|
 |
PVV
Doomed
Joined: 12 Feb 2016 13:39 Posts: 461
|
Что за ошибка? в строке 200? это как раз проблема в x80.dll, ее надо заменить на 12ю версию, она в архиве есть, как и сам файл проекта из протеуса. Номер версии используемых dll пишется в 'консольном'(где всякие варнинги и прочее) выводе протеуса.
|
29 Mar 2018 10:58 |
|
 |
Alekcandr
Devil
Joined: 01 Oct 2007 10:30 Posts: 666 Location: Ukraine
|
Тут видимо все достаточно чувствительно. У меня протеус 8.6 SP2 (билд 23525). И окошко как-то у вас по другому выглядит (дисплея). Не видно обратного хода луча по кадрам и строкам. Таки полный комплект нид, я то могу приделать чего ни будь. Но это не то.
_________________Эмулятор OrionEXT:
http://www.orion-ext.narod.ru
|
29 Mar 2018 11:59 |
|
 |
PVV
Doomed
Joined: 12 Feb 2016 13:39 Posts: 461
|
Я использую 8.5 SP0, до 8.6 не обновлялся еще. Сделайте скриншот с тем, как это выглядит. у меня вот так сейчас все выглядит, но v9938.dll еще дорабатываю, с цветностью не все гладко, как доделаю, выложу. Касательно полного комплекта, так он и так полный, в архиве в первом посте этой темы, все dll_ки и проект протеуса там есть.
Last edited by PVV on 30 Mar 2018 08:56, edited 1 time in total.
|
30 Mar 2018 02:35 |
|
 |
Alekcandr
Devil
Joined: 01 Oct 2007 10:30 Posts: 666 Location: Ukraine
|
Докладываю. С x80.dll мой косяк был. Обновил dll в свойствах до v1.2. Теперь тест рам запускается. Но всплыла еще проблемка, отвалилась клавиатура и на нажатие кнопок не реагирует. Запускаю все это из проекта выложенного еще в предыдущей теме. В первом посте этой темы в zip архиве нет проекта протеуса. Есть только вот это msx.pdsprj.pdf. Посмотрел pdf. В схеме на выходы U18 навешены диоды. Интересно зачем? Ведь у 74145 выходы с открытым коллектором или этот функционал не реализован в модели микросхемы.
_________________Эмулятор OrionEXT:
http://www.orion-ext.narod.ru
|
30 Mar 2018 07:31 |
|
 |
PVV
Doomed
Joined: 12 Feb 2016 13:39 Posts: 461
|
точно, мой косяк, перевыложил все с новыми dll. Теперь с цветами все ОК! да, 74145 в протеусе не реализует ОК, пришлось ее 'доработать' простым способом  . Еще, добавлю, в этом проекте используется bios(msx.bin) из b2m, а не с zx-pk, у него раскладка клавиатуры другая, но он быстрей стартует (быстрей проскакивает стартовая заставка).
|
30 Mar 2018 09:00 |
|
 |
Alekcandr
Devil
Joined: 01 Oct 2007 10:30 Posts: 666 Location: Ukraine
|
Попробовал свежачек Клавиатура работает. С цветами получилось где-то около правды  Предположу, что это связано с тем, что модель dispRGB имеет цифровые входы RGB. А нам нужен аналоговый. Увидел маппер памяти. Жаль, что в протеусе нет модели 74670. Вот моя реализация маппера, пока не проверена. Еще о маппере памяти. Стандарт MSX1.0 ничего не знает об этом маппере. Тут два варианта либо править биос (сделать предустановку регистров FC…FF), либо ставить уже биос MSX2.0. С раскладной понятно, я ее спецом под нашу ямаху собирал и конвертор PS/2 я сейчас от caro использую. А вот почему биос с эмулятора b2m быстрей? Не понятно. Все биос-ы MSX1.0 одинаковые за исключение мелких правок, на скорость это точно не должно влиять. Хотя я подозреваю, в каком месте его хакнули, но это надо его вскрыть в IDA 
_________________Эмулятор OrionEXT:
http://www.orion-ext.narod.ru
|
31 Mar 2018 00:10 |
|
 |
PVV
Doomed
Joined: 12 Feb 2016 13:39 Posts: 461
|
предположение правильное да, в протеусе нет симуляции 74670, скоро сделаю к ней dll, а пока сделал ее на рассыпухе. по отсутствию обращения к портам fc-ff я догадывался, что здесь что то не так, теперь понятно что. И, что меня сбило с толку, тест памяти этот маппер не видит... Решил сделать расширение памяти через субслот, а тест памяти упорно говорит, что у меня 64К, тогда как в схеме 128К. Дополнительную память не обнаруживает, только слот3.2, а слот3.3 не видит. Для чего z80 тормозится по WAIT? убрал торможение, все работает, и симуляция быстрей идет, оставил пока так. Попытался подключить ром от msx2, а на дисплее только черный экран...  в vdp проходит только одна запись в регистр и все. msx2 с tms9918 будет работать или надо уже 9938? и еще, что там с часами для msx, они обязательны? равно как и субром обязательно присутствие?
|
31 Mar 2018 14:38 |
|
 |
Alekcandr
Devil
Joined: 01 Oct 2007 10:30 Posts: 666 Location: Ukraine
|
С этим тест-рам не все так просто, толи он сам себе на уме, толи он на биос подвязывается. Для работы тест-рам нужно рам минимум 64кБ. Без биос-а MSX2 не будет видеть видео-рам больше 16кБ. Что слоты, что саб-слоты полностью равнозначны. Есть исключения для некоторых подключаемых железок, но это больше редкость, чем правило. Памяти будет 64кБ, а вот маппер с 128кБ должен увидеть. Без разницы в каком слоте память, должен видеть. Ну, видимо ноги растут с тех времен, когда память была медленная, еще писали что звуковые чипы подглючивали (но это не точно). Пускай без вайт-а. Поплывут времянки для магнитофона, но на этом этапе это не важно. С MSX2 я погорячился  Забыл написать, что без часов MSX2 не заведется. По остальным вопросам чуть позже отвечу. И надо таки в биос-е MSX1 предустановку маппера рам сделать. Иначе все это бессмысленно проверять. Тогда этим и займусь, сегодня выложу тут.
_________________Эмулятор OrionEXT:
http://www.orion-ext.narod.ru
|
01 Apr 2018 00:22 |
|
 |
PVV
Doomed
Joined: 12 Feb 2016 13:39 Posts: 461
|
я память подключал в разных комбинациях и 3.0,3.1 и в просто слот1, слот2, все равно говорит 64К в слоте 3.0 или слоте1, те что первое опросил и увидел и все. буду DRAM когда подключать(сделаю dll), посмотрю что будет с времянками. мне то и нужно понимание минимальных требований для запуска msx2. править биос смысла нет, проще нужные dll написать для запуска с оригинальным биосом. С часами там все достаточно просто, а вот 9938 это уже серьезней...
|
01 Apr 2018 01:53 |
|
 |
Alekcandr
Devil
Joined: 01 Oct 2007 10:30 Posts: 666 Location: Ukraine
|
Ну, так биос проходит последовательно по всем слотам в поиске памяти, какую первую найдет такую и будет в дальнейшем использовать (в первом приближении). Еще возможны варианты сегментации памяти. Когда допустим 16кБ в первом слоте, а 16кб во втором слоте (но это не точно. были там какие-то глюки. надо экспериментальным путем проверить) Не не не. У меня биос оригинальнее некуда  Настраивать маппер задача биос-а, и только его.
_________________Эмулятор OrionEXT:
http://www.orion-ext.narod.ru
|
01 Apr 2018 02:25 |
|
 |
Alekcandr
Devil
Joined: 01 Oct 2007 10:30 Posts: 666 Location: Ukraine
|

И что есть оригинальный биос? Если взять конкретную машинку 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 + маппер памяти).  По поводу MSX2. Вечером постараюсь на вопросы ответить. Самому интересно. У меня конечно модульная конструкция MSX, тасуй модули как хочешь. Но не все я попробовал 
_________________Эмулятор OrionEXT:
http://www.orion-ext.narod.ru
|
01 Apr 2018 03:51 |
|
 |
Alekcandr
Devil
Joined: 01 Oct 2007 10:30 Posts: 666 Location: Ukraine
|
Да наблюдается черный экран. Заглянул в биос. Биос зациклился в потугах достучаться до часов. Не будет работать. По факту получаем зеленый экран. И опять вечный цикл в биосе. Даже если это пропатчить (гипотетически). Станет вопрос ребром по быстродействию VDP. V9938/58 грубо говоря по времени доступа в два раза быстрее. И тут придется много переписывать, а оно нам надо? А еще 9A, 9B регистры отзеркалятся. В общем фигня получится  Уже ответил. Не понятно, с какого перепугу так биос написан, что без часов он тупо зависает. Надо биос патчить, отучать от часов. Саб-ром обязателен. Там по сути все фичи MSX2 и реализованы. И новый маин-ром (старый с косметическими изменениями) постоянно переплетается с саб-ром-ом.
_________________Эмулятор OrionEXT:
http://www.orion-ext.narod.ru
|
01 Apr 2018 09:11 |
|
|
Who is online |
Users browsing this forum: No registered users and 1 guest |
|
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
|
|