День добрый.
Сегодня дело дошло до запуска основного ROM для Орион-ПРО, но что-то пошло не так и работает некорректно.
К железу: процессор Z80 "железный", как и память основная. Остальное всё "спрятано" в FPGA.
Проблема: при старте есть операции CALL, и там я вижу 2 записи - по адресам 0x0000 и 0xFFFF.
Вопрос: Откуда взялся SP=0???
ROM брал из архива OrionZEmu, файл ROM1-321.BIN, находится по адресу 0x0000.
Вот дизасм того места, вместе с кодом до него:
Вот то, что я вижу на анализаторе в это время:Код:ROM:0000 ; Segment type: Pure code ROM:0000 segment ROM ROM:0000 ROM:0000 loc_0: ; CODE XREF: ROM:0E59p ROM:0000 ; ROM:0E5Ap ... ROM:0000 jp loc_15B ROM:015B ; --------------------------------------------------------------------------- ROM:015B ROM:015B loc_15B: ; CODE XREF: ROM:loc_0j ROM:015B ld hl, 0A000h ROM:015E ROM:015E loc_15E: ; CODE XREF: ROM:0161j ROM:015E dec hl ROM:015F ld a, h ROM:0160 or l ROM:0161 jr nz, loc_15E ROM:0163 ld a, 98h ; 'Ш' ROM:0165 out (3), a ROM:0167 ld a, 92h ; 'Т' ROM:0169 out (1Dh), a ROM:016B ld a, 16h ROM:016D out (3Bh), a ROM:016F ld a, 56h ; 'V' ROM:0171 out (3Bh), a ROM:0173 ld a, 96h ; 'Ц' ROM:0175 out (3Bh), a ROM:0177 ld a, 80h ; 'А' ROM:0179 out (7), a ROM:017B out (0Bh), a ROM:017D ld a, 50h ; 'P' ROM:017F out (0Ah), a ROM:0181 call sub_19A2
Сигналы, начиная с ZCLK, - сигналы на "ногах" самого Z80 (после преобразователя уровней, потому что анализатор внутри FPGA). Собственно, начало записи в память находится после пунктирной вертикальной линии.
PS: Из памяти потом читается в обратном порядке (0xFFFF, 0x0000), первое чтение вернуло ранее записанный результат (0x84). Так что преобразователи уровней тут точно не при чём - их работа стабильна "как часы", в частности переключение направления шины данных.
Тестовая прошивка не использовала CALL, а только различные переходы, потому таких проблем не было.
PPS: Тест на работу системы в целом проверен ещё и на самом "базовом" тесте, который есть и в брошурке к ПРОшке. Запуск успешен, прямоугольники по экрану бегают без помех.
Сброс процессора - стабильный, без дёрганий. Кнопку держал секунд 10 точно. Её выход ещё дебаунсером "устаканивается", что бы не было дребезга.
PPPS: Ещё однин запуск - и стартовое содержимое SP уже другое - 0x2c5e. Может процессор палёный?





"Байт-48"
Ответить с цитированием
Размещение рекламы на форуме способствует его дальнейшему развитию 
