Ну вот эт другое дело .... Щас сделаю )))
---------- Post added at 22:31 ---------- Previous post was at 22:23 ----------
Пробовал с FF - то же самое.
Вид для печати
Ну вот эт другое дело .... Щас сделаю )))
---------- Post added at 22:31 ---------- Previous post was at 22:23 ----------
Пробовал с FF - то же самое.
у меня трассировка медленная - я втыкаюсь в клавиатурный порт и пишусь в текстовом редакторе. Могу запуститься по известному критерию и вывести содержимое нужных регистров, но не всю трассировку вывести. А как можно делать трассировкуиз эмуляторов?
Есть ещё один момент: я не инициализирую I при включении питания и сбросе. Это плохо?
Дровишки из лесу :) оно так для контроллера прерываний :)
а вот для нашего случая адрес берут из FF и (FF+1)
Сорри что немного ввел в заблуждение.
Короче не вдаваясь в лишние подробности для примера :
LD A,#C0
LD I,A
IM2
будет исполнятся примерно так :
PUSH PC
LD PC,(#C0FF) ( 256*RAM[#C100]+RAM[#C0FF])
А так если сделать?Код:IM_2: LDI ZL,0XFF ;Здесь обрабатывается IM2. В регистр косвенной адресации заношу:
IN ZH,I ; 0xFE – в младший регистр, I – в старший регистр.
CPI ZH,0X40
И посмотреть бы код LOAD_PC_Z[12].
Test-48 дает такой трейсинг :
http://zx.pk.ru/attachment.php?attac...1&d=1322861299
http://zx.pk.ru/attachment.php?attac...1&d=1322861454
http://zx.pk.ru/attachment.php?attac...1&d=1322861467
http://zx.pk.ru/attachment.php?attac...1&d=1322862186
А вот ниже самое интересное:v2_dizzy_roll:
http://zx.pk.ru/attachment.php?attac...1&d=1322862240
Ничего не понял. В одном месте читаю:
Команда RET I.
Код - ED 4D. Эта команда аналогична команде RET (возврат после вызова подпрограммы), но выполняет двойную функцию:
· возврат из подпрограммы, обслуживающей маскируемое прерывание;
· разрешение маскированного прерывания (ведь во время работы обслуживающей программы оно запрещалось, иначе новое прерывание могло бы прервать обработку прерывания и т.д.).
В другом: пользователь должен сам разрешать прерывания через EI, так как RETI этого не делает. Так как же на самом деле?