По адресу 0020 стоят команды RST 3 / JMP 005F
По адресу 0020 стоят команды RST 3 / JMP 005F
Я вижу что RST 3. Не понял, почему по адресу 003Fh сразу не поставили этот JMP на 005F.
---------- Post added at 22:58 ---------- Previous post was at 22:42 ----------
Попробовал EMU. Ставлю в отладчике начальный адрес 0х0000. Нажимаю F8. Отладчик прыгает на 0х005F. Но должен же сначала показать по шагам установку стека и т.д. Может, я чего не так делаю?
То b2m:
Спасибо за разъяснение. Честное слово, считал что справа отображается только текущее состояние регистров и не более. Адрес на 0000h пытался устанавливать через Ctrl + G![]()
Ctrl+G это чтобы быстро переместиться в области кода/дампаНу ты понял...
Переключаться между тремя областями можно клавишей Tab
Помогите пожалуйста разобраться. Прохожу в пошаговом режиме монитор 0. Очень быстро попадаю в замкнутый цикл. При чем, получается что внутри этого цикла нет возврата RET из двух прерываний: сначала из RST 6, потом из RST 2. Вот листинг моего "дизассемблирования".
После попадания отладчика эмулятора от b2m на этот RST 4, понял, что сейчас уйду на второй кругКод:.org 0000 ;Стартовый адрес lxi sp, c3ee ;Вершина стека mvi a, 11 ;В аккумулятор запись числа 11 hex jmp 003b ;Безусловный переход на адрес 003b ei ;Разрешить прерывания по входу INT sta 9000 ;Вывод аккумулятора на индикатор с адресом 9000 rst 4 ;Переход на 0020 rst 3 ;Переход на 0018 push h ;Запись HL в стек push psw ;Запись аккумулятора и регистра флагов в стек lxi h, 6650 ;Запись в HL числа 6650 hex jmp 0056 ;Безусловный переход на адрес 0056 dcx h ;Уменьшение HL на единицу mov a, l ;Запись L в аккумулятор ora h ;Операция ИЛИ между H и аккумулятором jnz 0056 ;Если результат не ноль то вернуться на 0056 pop psw ;Иначе, восстановить psw из стека pop h ;И восстановить HL из стека ret ;Возврат из обработки rst 3 (адрес возврата 0021) jmp 005f ;Безусловный переход на 005f in a0 ;Ввод в аккумулятор байта от ВУ с адресом A0 adi 00 ;Сложение аккумулятора с числом 00 hex jz 005f ;Если результат равен 0, то переход на адрес 005f cpi 80 ;Иначе, сравнение аккумулятора с числом 80 hex jz 006e ;Если равенство, переход на адрес 006e ani 0f ;Иначе, операция И между аккумулятором и числом 0f ret ;Возврат из обработки rst 4 (адрес возврата 0040) adi f3 ;Сложение аккумулятора с числом f3 mvi h, 00 ;Запись в H числа 00 hex mov l, a ;Запись в L из аккумулятора mov l, m ;Запись в L из памяти с адресом из HL (адрес 00f3, значение 91) pchl ;Запись в адресный счетчик из HL (переход на адрес 0091) rst 6 ;Переход на 0030 push psw ;Запись аккумулятора и регистра флагов в стек rst 2 ;Переход на 0010 push d ;Запись DE в стек xra a ;Операция ИЛИ-НЕ аккумулятора с аккумулятором mov d, a ;Запись аккумулятора в D rst 4 ; WTF ?Допускаю, что где-то спутал код команды с числовой константой. Только непонятно, где именно.
Спасибо. Значит в этом круге "ЮТ-88" банально ожидает нажатия на любую клавишу. Нагородили же.
Да нормально там все, вот более удобочитаемый код
Все подпрограммы описаны в FAQ http://zx-pk.ru/showpost.php?p=785281&postcount=21Код:RST2_KEY_GET_CODE: push d xra a mov d,a rst 4 rlc jmp SHOW_A RST3_WAIT_1S: push h push psw lxi h,06650H jmp WAIT RST4_KEY_WAIT_PRESS: rst 3 jmp KEY_SCAN nop ... RST6_INP_2BYTE: push psw rst 2 mov d,a rst 2 mov e,a pop psw ret ... KEY_SCAN: in 0A0H adi 000H jz KEY_SCAN cpi 080H jz STEP_BACK ani 00FH ret
Последний раз редактировалось Alex_LG; 13.10.2015 в 13:16.
Всем привет.
Собираю ЮТ-88. Нарисовал схему в Altium Designer, там же и развел ее. Подготовил файлы для производства на завод.
https://yadi.sk/i/0dfpK-kbkYDGS
ссылка на pdf схемы.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)