Цитата Сообщение от predatoralpha Посмотреть сообщение
ld hl, (clrscr_dest)
ld (hl), a
В ячейке clrscr_dest хранится адрес, который предыдущей строкой увеличивается.

Нет на 8080 команды ld ((clrscr_dest)), A

А вот на PDP-11 есть.

---------- Post added at 14:31 ---------- Previous post was at 14:30 ----------

Цитата Сообщение от predatoralpha Посмотреть сообщение
А вот здесь у тебя неверный код, вроде
while(c--);
dec bc
ld a, b
or c
jp nz, l5
У тебя код не постдекрементный, а преддекрементный. Т.е. для случая while(--c), а не while(c--).
Да, я пока одну версию операторов написал. Сегодня поправлю, а то забуду.

---------- Post added at 14:34 ---------- Previous post was at 14:31 ----------

Цитата Сообщение от Error404 Посмотреть сообщение
Ну и если будет такое копирование, всякий выигрыш теряется (что про времени выполнения, что по размеру кода). Тогда уж сразу надо делать на стеке.
Чисто арифметически выигрыш есть. Копируем мы переменную один раз на входе, один на выходе. Причем, копирование всех переменных можно делать за один присест.

А обращаться к переменной мы будем много раз, может быть что 1000 раз.

---------- Post added at 14:35 ---------- Previous post was at 14:34 ----------

Цитата Сообщение от predatoralpha Посмотреть сообщение
Проблема нереентабельности по прерываниям, как по мне, несущественная. Обработчик обычно пишется на ассемблере, если какие-то сишные функции и будут вызываться - то обычно это не те, что выполняются вне прерывания. Этот факт нужно отразить в документации, и принять его "как есть".
Можно продублировать функцию вызываемую из прерывания и из основного кода.

---------- Post added at 14:37 ---------- Previous post was at 14:35 ----------

Цитата Сообщение от predatoralpha Посмотреть сообщение
Более серьёзная проблема, как по мне - это передача ссылки на локальную переменную в некую функцию. Если создаются копии локальных переменных в стеке, то ссылка на локальную переменную "повиснет". А если ещё добавить, что вызываемая функция эту ссылку может сохранить в глобальной переменной, и другая вызываемая функция (из базовой функции) эту ссылку может оттуда поднять...
Это компромисс между
1) Программой, которая умеет рекурсию.
2) И программой, которая работает в 3 раза быстрее.