|
nedoPC.orgElectronics hobbyists community established in 2002 |
|
Author |
Message |
b2m
Devil
Joined: 26 May 2003 06:57 Posts: 863
|
И ещё интересно. Софт ожидает, что после старта во втором окне страница номер 1. И это сразу после сброса. Что-то я нигде не встречал упоминания о том, что в KonamiSCC так должно быть. А нет, нашёл: http://bifi.msxnet.org/msxnet/tech/megaroms, оказывается это для всех мапперов так должно быть. Надо эмуль подправить. P.S. Подправил.
_________________Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
|
04 May 2018 11:16 |
|
|
PVV
Doomed
Joined: 12 Feb 2016 13:39 Posts: 463
|
Что бы уйти от вариантов под какой вариант схемы какое ПО, берем вот этот архив, там файл MMCDISK1.ROM, он на 512КБ. Судя по описанию в текстовом файле это прошивка для схемы версии 1. Схемы в этом архиве, то же, есть. По составу этот файл содержит помимо прошивки некий образ 'дискеты' с системным ПО. Далее, в тексте есть указание, что все это работает на основном слоте, а не расширенном. соотв. я делаю такую вставку в конфиге: отключаю ром для msxdos2 и в таком варианте после трех перезагрузок заставки MSX проскакивает текст от SD и вылетает в Disk BASIC собственно теперь вопрос как сам SD интерфейс прицепить по адресу 6FF0 и 6FF1? видимо нужно SlotB разбить как MemMap? только как так? а как быть с памятью 7000-bfff ? это же 3я и 4я банки? да и карта в середине второй банки и еще откуда схема выборки 6FEx-6FFx ? А4 в 1, а это только 6FFx (AFFx)!
|
04 May 2018 12:30 |
|
|
PVV
Doomed
Joined: 12 Feb 2016 13:39 Posts: 463
|
Вот это оперативность! Спасибо! Теперь этот ром запускается с первой попытки и по включению и по сбросу. Теперь бы понять как карту прикрутить...
|
04 May 2018 12:38 |
|
|
b2m
Devil
Joined: 26 May 2003 06:57 Posts: 863
|
Мыслишь правильно. Только нужно учитывать, что MemMap не умеет с точностью до байта, границы должны быть кратны 100h. Для более мелкого деления я сделал MemMap2. Без паники! rom-mapper поддерживает смещение, т.е. можно писать MMslotB[7000] А я версию 2.2 смотрел. А ты оказывается первую прикручиваешь. Тады ой.
_________________Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
|
04 May 2018 14:15 |
|
|
PVV
Doomed
Joined: 12 Feb 2016 13:39 Posts: 463
|
тогда так: ? мне вот только непонятно, а как реальный чип исключает из своего адресного пространства эту область для SD? , или если выбрать страницу за пределами 512КБ, те записать число больше 0х3F, то /OE ROM не сработает?... видимо так... точно, а я А4 и не заметил во второй версии...
|
04 May 2018 14:45 |
|
|
PVV
Doomed
Joined: 12 Feb 2016 13:39 Posts: 463
|
Если здесь записать так то запускается РОМ диск зашитый в прошивке, у нас страниц то много и маску надо расширить, ПЗУ 512КБ... а если это так, тогда не надо ли сделать что то типа а mm.page , будет то, что пишется по адресу 7000. И не надо ли где то писать .wo , иначе при записи по адресам переключения страниц память будет портится?
|
04 May 2018 23:40 |
|
|
Alekcandr
Doomed
Joined: 01 Oct 2007 10:30 Posts: 665 Location: Ukraine
|
Действительно не понятно. Как я понял кодом 3Fh мы включаем звуковой чип в окне 9800...9FFFh. Все остальное по прежнему доступно как ПЗУ. Надо видимо эмулятор или FPGA курить. Существующие схемы на рассыпухе не раскрываю полностью тему.
_________________Эмулятор OrionEXT:
http://www.orion-ext.narod.ru
|
05 May 2018 00:14 |
|
|
PVV
Doomed
Joined: 12 Feb 2016 13:39 Posts: 463
|
3F это маска страниц в окне, те 0x3F=63, при счете страниц от 0 делаем +1, таким образом 8КБ*64=512КБ. Как вот здесь http://bifi.msxnet.org/msxnet/tech/megaroms сказано: и учитывая, что с чипа konamiSCC идет на ПЗУ сигнал /OE, получается, что при выборе страниц выше 3F сигнал /OE остается в 1, и ПЗУ не активирует свой выход, вот и получили возможность работать со своим устройством, в нашем случае SD. и не то, что не раскрывают, а получается, что ни одна из существующих и мною увиденных схем не реализует ни один из РОМ мапперов! Все схемы на 74ls670 не поддерживают такой момент как при включении питания инициализация в каждом банке своим кодом: те то, что b2m вчера добавил в эмулятор... и вариант на 155РУ2, который я встречал, аналогично, не поддерживает этот момент. Получается, что самый правильный вариант можно сделать, фактически, только на рассыпухе с тм2 с предуcтановкой ее по сбросу /set_ом и /reset_ом(ну или инверторы по входу и выходу на определенных ножках к защелкам). А если еще добавить проверку на превышение страниц 3F, для деактивации /OE, то вообще тот еще огород получится.
|
05 May 2018 01:30 |
|
|
PVV
Doomed
Joined: 12 Feb 2016 13:39 Posts: 463
|
Сделал конфиг, который 'почти' работает, хотя карты и не видит. На первый взгляд аппаратное не соответствие схемы SD интерфейса в эмуляторе и том, что ожидает программа. В программе после любой посылки cmd идет завершающий FF, а только потом вычитка, что ответила карты, и получается, что этот 'лишний' FF выбирает из карты ее ответ, и когда программа читает сам ответ, то ответ уже был вычитан на предыдущем шаге и читается только ff. (Если поставить точку останова на 61Е2, то к этому моменту карта уже ответила 01 по адресу 6FFD, это начало. ) Я в паре мест за NOP_ил передачу этого завершающего FF, и карта стала видится, но проблема в том, как написан этот код, там нет единой функции передачи или приема, равно как нет единой функции передачи cmd или вычитки ответа, все просто линейно в коде идет , похоже, что и вычитка 512 байт из карты сделана вызовом 4 раза одной функции в которой 128 раз повторяется 11и байтный код чтения одного байта из карты... и все это править в HEX, просто жесть.
|
06 May 2018 00:28 |
|
|
Alekcandr
Doomed
Joined: 01 Oct 2007 10:30 Posts: 665 Location: Ukraine
|
Я вот тоже сунулся в код. Есть лоадер для IDA. Проблема в том, что этот лоадер хорош для простых игровых картриджей, где исполняемый код и данные, как правило, строго разделены и нет бешеных переключений маппера SCC. Да еще маппер SCC за уши притянут для msx-dos2. В общем, под уныл и подумал да ну этого корейца Ждем b2m.
_________________Эмулятор OrionEXT:
http://www.orion-ext.narod.ru
|
06 May 2018 03:39 |
|
|
PVV
Doomed
Joined: 12 Feb 2016 13:39 Posts: 463
|
Каким образом вообще пишутся программы, работающие с мапперами? Контролируется размер кода кратно выбранной странице и программно переключаются страницы или просто пишется большой код, а затем прогоняется через некий упаковщик-маппер, который уже распределяет код по страницам?
|
06 May 2018 11:45 |
|
|
b2m
Devil
Joined: 26 May 2003 06:57 Posts: 863
|
Вполне возможно, что моя реализация эмуляции SD-карты далека от реальности. До сих пор всё работало, но это не означает, что работало как надо. Можно попробовать добавить "лишние" FF после принятия команды. Лишь бы всё остальное, что работало до сих пор, не сломалось. А такое может быть запросто.
_________________Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
|
07 May 2018 01:48 |
|
|
PVV
Doomed
Joined: 12 Feb 2016 13:39 Posts: 463
|
Я уже не первый раз сталкиваюсь с описанием, что после того как SD карта получила cmd, она должна этот cmd обработать, выдавая FF пока идет эта обработка, и только после того, как она подумает, она выдает ответ. Вот здесь, на этой картинке, есть такое описание те карта на первый пакет clk выдает FF, а на второй уже ответ. Да и во всех боевых программах стоит цикл ожидания ответа с таймаутом, после любого cmd и лишний ff там повредить не должен. Я могу проверить работу SDOS с msx SD интерфейсом на любой из поддерживаемых платформ с этим дополнительным FF, а это тот же код, что и в исходном Вашем (b2m's) варианте xsd. Однако я в коде увидел, что используется cmd18, а это групповая вычитка секторов, а не только cmd17, возможно и запись есть такая, я это не встретил еще. Так вот, cmd18 поддерживается? Сейчас эмулятор ответ на нее выдает 04, те не поддерживает- это после моих правок в hex коде, возможно я сделал что то не так...
|
07 May 2018 09:30 |
|
|
b2m
Devil
Joined: 26 May 2003 06:57 Posts: 863
|
Я тоже это знаю, но я не знал, что это может быть обязательным. Ну, это-то понятно. Отлично. Как найду время, поправлю эмулятор. К сожалению - нет. Надо будет почитать, как это работает, видимо придётся добавлять.
_________________Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
|
07 May 2018 23:31 |
|
|
PVV
Doomed
Joined: 12 Feb 2016 13:39 Posts: 463
|
Вот документ, весьма неплохо описывающий работу протокола SD и во второй его половине побитовая растактовка для разных cmd, и там есть параметры Ncr, Nwr и тд, так вот они должны быть минимально от 2х тактов CLK (стр. 59), те практически 8 бит это обязательный минимум. Возможно, что бы не менять уже прижившийся код, можно добавить еще один тип SD интерфейса к имеющимся sdcard.data и sdcard.data8, какой нибудь - sdcard.data2, в котором будет этот дополнительный FF... В этом же документе сказано, что два байта CRC вычитывать надо обязательно после чтения данных.
|
08 May 2018 02:50 |
|
|
Who is online |
Users browsing this forum: No registered users and 10 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
|
|