По адресу 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)