Всем спасибо за ответы. RST #10 не собирался использовать, просто для примера написал.

Andrew771, пытаюсь свой велосипед изобрести, так что за пример спасибо.

Из всего вышеперечисленного сделал полезный вывод, что очень часто при вызовах подпрограмм надо сохранять регистры. Почему то раньше мне не приходило это в голову.
Ну и с переменными разобрался.