Сообщение от
VELESOFT
Where can I find code for return from trdos ?
Код:
x2869 LD A,(HL) ;берем код команды
CP C ;он совпал с требуемым?
JR NZ,x287F ;если нет, то берем код следующей команды
POP AF ;восстановление AF
INC HL ;берем адрес, по которому находится адрес подпрограммы
LD E,(HL) ;берем адрес подпрограммы
INC HL
LD D,(HL)
LD HL,YOUR_EXTRA_CODE_ADDR
PUSH HL ;кладем его на стек
PUSH DE ;кладем на стек адрес подпрограммы
LD HL,(#5D02) ;восстановление HL и DE
LD DE,(#5D04)
RET ;переход к подпрограмме
x287F CP #FF ;достигнут конец таблицы?
JR NZ,x2887 ;если нет, то берем адрес номера следующей подпрограммы
POP AF ;снятие AF со стека (этого можно было не делать)
JP YOUR_EXTRA_CODE_ADDR
x2887 INC HL ;пропуск двух байтов адреса подпрограммы
INC HL
INC HL
JR x2869 ;повтор
;SOMEWHERE IN TRDOS FREE SPACE
YOUR_EXTRA_CODE_ADDR
DI ;Do what you need here...
HALT
JP x01D3