Кто нибудь знает способы? Правда, забыл зачем мне это надо :)
Вид для печати
Кто нибудь знает способы? Правда, забыл зачем мне это надо :)
Во-первых имеет смысл ТОЛЬКО ДЛЯ ПОЗИЦИОННО-НЕЗАВИСИМОГО КОДА.Цитата:
Сообщение от jim
Зависит от возможности ли использование заранее известного статического
адреса памяти. По этому адресу загоняется POP HL : JP (HL).
делаешь CALL на RET, после этого снимаешь со стека адрес инструкции после CALL
call 82
addr dec sp
dec sp
pop hl ; hl=addr
Ты забыл прерывания запретить :v2_wink2:Цитата:
Сообщение от goodboy
Для этото RST нужно иметь по известному адресу в памяти.Цитата:
Сообщение от goodboy
...на котором возникло прерывание...Цитата:
после этого снимаешь со стека адрес
А за это вообще руки отрывать, обязательно медленно и обязтельно чтоб мучтельно.Цитата:
call 82
за что такая жестокость, только если rom сменится ?Цитата:
Сообщение от fk0
Такими выходками вы ставите железячников в большой тупик :)Цитата:
Сообщение от goodboy
код 201 может быть в знакогенераторе отыскать? его вряд-ли куда-то денут или поменяют...
Да, кстати, команду Call 82 не может заменить команда HALT? Если уж это прерывание портит стек ниже SP, то адрес прерванной им процедуры оно все равно туда положит.
Супер !!! Велеколепное решение !!! А что бы решить проблему с IM 2 и тому подобное можно сделать CALL 56 !!! Я, надеюсь, правильно вспомнил адрес BASIC'овского прерывания ??? ...Цитата:
Сообщение от TomCaT
эхх молодеш
ld hl,#e9e1 ; pop hl : jp (hl)
; ld de,(#4000)
ld (#4000),hl
call #4000
;ld (#4000),de
в hl - адрес возврата
если вдруг резко понадобилось сохранить содержимое памяти
то можно добавить то что за точкой с запятой