Бейсик ниже переменных не установит. Надо кстати насчет ПЗУ поэксперементировать)))
Вид для печати
Бейсик ниже переменных не установит. Надо кстати насчет ПЗУ поэксперементировать)))
А какое-нибудь "POKE адрес значения CLEAR, нужный адрес"?
Так чтоб после отработки команды и попытки вернутся со стека снималось что-то из пзу (а можно и и озу, допустим строки с REM к о д ы) и прыгало куда надо?
Т.е. интерпритатор сделал наше поке и пытается разобрать следующую команду. Но стек уже в другом месте и возврат идёт куда нам надо.
Так не выйдет? (понимаю что тут нужно хорошо знать ПЗУ, да и всё равно рыть придётся, но мысль вроде занятная :) )
P.S. Как вариант - отлавливать не обработчик команды а прерывание (они ведь никогда не выключаются при бэйсике?). Тогда после поке стека в пзу - следующий-же фрейм начнётся с нужного адреса (если к этому времени система не ресетнётся нафик :) )
В загрузчике SiLN4 есть ксорка с использованием ПЗУ и ретом в конце обработки, надо дизассемблер ПЗУ читать. Скорее всего чтото есть.
---------- Post added at 22:47 ---------- Previous post was at 22:45 ----------
В Бейсике прерывание обрабатываются по IM 1. Тут вряд ли что можно изменить, разве что подмену ПЗУ.
Именно внятно, но по адресу #003c белиберда полная, надо вектор прерывания менять. Это в Бейсик 48. В Бейсике 128 #c300. Вылет гарантирован если там ничего нет. Но там хитрая связка Старт ПЗУ с 0.
Вектор прерывания в бейсике 48 на этот адрес
Так и бог с ним. Обработчик там есть. Пусть отработает и RET. А рет - уже куда нужно (стек-то уже там где надо, заранее выставлен POKE ).
В общем видимо нечего велосипед изобретать, подобный финт ушами использовали с переменной ERR SP (23613/14 IY+3 (#5C3D/3E)) чтоб на свою прогу прыгало прям из бейсика.