Это попытка сделать ZX Spectrum на максимально простой аппаратной реализации, доступной к сборке любым радиолюбителем.
Вид для печати
это , в принципе, уже сделано, и более проще и изящно.
ULA нет...
Вот если бы сделать
один корпус ULA (любой клон)
один корпус AY
один корпус ВГ93
один корпус Z80 (для спортивного интереса)
вот эти задачки были бы интересны, о чем кодермастер и говорил...
---------- Post added at 18:59 ---------- Previous post was at 18:53 ----------
вот было бы неплохо ULA
классическую на 40 выводах с разводкой под фирменный 48к и 128к
и ULA Amstrad 100 выводов.
Копировать один в один необязательно, что должен делать этот черный ящик и так знают, он на рассыпухе и так вскрыт, делай реализуй на матрице ну или на проце, если сможешь без обвеса уложиться...
goodboy - радиолюбитель припаяет всё!
AVR - LPT 5 Проводков:)
я умею паять любые микросхемы и у меня есть программатор и паяльная станция
я самый обычный радиолюбитель, можно сказать даже посредственный.
---------- Post added at 19:53 ---------- Previous post was at 19:51 ----------
здесь предпринимателей много, сразу начнут продавать прошитые на любой скус по сходной цене
Lisitsin, вы здесь? За толпой доброжелателей не разглядеть. :)
Попробуйте тест в приложении. Загружается и запускается так же.
Я здесь ...
Нашёл ряд ошибок в формировании S флага после инструкций CP8. Тест сейчас загружу.
Тест короткий? Сразу вижу сею картинку: (вложение)
СР исправил, но буква "n" в РОВОСОРе всё равно кривляется.
Есть ещё кое какой нюанс с (HL): на границе 3fff-4000 читает оба байта из ROM, а на границе ffff-0000 читает оба байта из RAM. Не знаю насколько это смертельно.
[QUOTE=Higgins;373536]
Как я понял, это для Higgins_alu_hl?
Тогда во вложении.
Господа, уже около 600 топиков, а дела не движутся. Хотелось бы обсуждать уже железку, а не эмуляцию кода и не среди всего двух человек. Наверное есть для этого личка. Любой зашедший в эту тему со стороны (я то слежу с первого топика) ничего не увидит кроме диалога.
Снова кладем в память одно, а читаем из нее другое:
Очень похоже на прежние проблемы.Цитата:
#48AC ADD A, #FF ; AF = #FEB9
#48AE PUSH AF
#48AF POP IY
#48B1 LD (#48DB), IY ; сохраняем
...
#48BA LD HL, #48AD
#48BD ADD A, (HL) ; AF = #FEB9 тоже, что очень хорошо
...
#48C1 LD IY, (#48DB)
#48C5 LD A, IYH ; A = #FF вместо сохраненного #FE
На мой вкус, работать через личку и не удобно, и не правильно. Можно просто договориться, что Lisitsin сделает отдельную тему для анонсов по этой железке. Когда и если до них дойдет дело. :)
Отлично !!! Работаю.
поддерживаю BYTEMAN
Нашёл ошибки в эмуляции команд LD (nn), IX, LD (nn), IY. После исправления трейсинг изменился в лучшую сторону (вложение), но проблемы с игрушками всё равно остаются. Запускаю zexall.
Последние результаты:
Собрал тут композитный видеокодер (схема во вложении), но что-то плохо он работает (http://www.youtube.com/watch?v=XxrYCxRu_c0). В динамике вообще теряется.
Интересное подключение кварца Q1. И зачем транзистор VT1 нужен? Эта схема работала когда ставишь генератор на ЛН1 с соответствующим кварцем и подаёшь на вывод 6 D1.
Вот и я говорю. Плохо что-то она работает. В даташите пишут, что размах синхронизации должен быть почти от пола и почти до потолка, а там меньше вольта получается.
http://www.youtube.com/watch?v=4ywDLit-Jh0 - в цвете
Lisitsin, отсутствует красный и голубой, зеленый. По идее регулируется на входе палкодера, подстроечными резисторами.
Так должно выглядеть ftp://ftp.worldofspectrum.org/pub/si...bowIslands.gif
Имеем следующее:
1) Видимо правильно работающие инструкции ALU и
2) Ошибку ZEXALL на этих инструкциях.
Остается подозревать код счета контрольной суммы в ZEXALL. Попробую найти подходящее условие для трейсинга.
Это ценная информация. Давайте разберемся с ALU и затем посмотрим на этот глюк внимательнее.
* * *
UPDATE: Условие такое. Тресинг начинаем после того, как управление пятый раз пройдет по адресу PC=#9A0B. Это значит, начинаем трейсинг с пятого теста. В самом трейсинге в моменты прохождения управления через PC=#9C41 выводим содержимое четырех смежных ячеек: #9D5F, #9D60, #9D61 и #9D62. В них хранится текущая контрольная сумма.
Начало такое:
По всей видимости с контрольной суммой порядок, и при всём этом пятый тест проваливается:
Сравнение контрольных сумм дает ошибку. При этом сама контрольная сумма правильная -- 1DFD7864. На вашем скриншоте тест выдает эту сумму, а ожидает по какой-то причине 06C7AA8E.
Попробую узнать, откуда может взяться неправильная эталонная сумма.
* * *
Эталоны лежат в памяти начиная с #8105 для первого теста и далее для каждого теста со смещением #5F:
Тест 1: #8105
Тест 2: #8164
Тест 3: #81C3
Тест 4: #8222
Тест 5: #8281
Тест 6: #82E0
Нам нужен шестой тест. В моем снапшоте по адресу #82E0 я вижу ожидаемое 1D FD 78 64.
Код сверки с эталонной суммой можно поймать по адресу #9D0F. В этот момент в HL должен быть адрес эталонной суммы.
Вопрос в том, чему у вас равно значение HL при проходе через #9D0F для нашего шестого теста. И если это значение правильное (#82E0), то что лежит по этому адресу. А если там лежит 1D FD 78 64, то почему "CP (HL)" в коде сверки не дает взведенный ZF.
Для шестого теста по проходу через #9d0f вывожу PC:HL:[82E3]:[82E2]:[82E1]:[82e0]:
Первая строка:
Это значит, что к моменту проверки мы приходим с правильным адресом эталонной суммы, но сама эталонная сумма неправильная. Посмотрю, откуда она там такая берется.Цитата:
9d0f 82e0 8e aa c7 06
* * *
Эталоны сумм лежат на месте сразу после загрузки. Никаких распаковываний или перемещений. Каким образом у вас загружается код так, что эталон получается настолько непохожим -- загадка.
* * *
Так. :) Еще раз: берем версию теста, которую я давал здесь:
http://zx.pk.ru/showthread.php?p=369566#post369566
Судя по скриншотам, вы грузите оригинальную версию. :)
упс !!! что-то не похоже. Распаковывалась как zexall. Скачал zexfix, пробую
:v2_conf2:Вот что переутомление делает ...
Скачал и запустил zexfix. А выгдядит начало прямо как zexall.
Шесть тестов прошло, седьмой валится. Тестируется дальше