| ??? 07/06/04 20:44 Read: times |
#73679 - another step further Responding to: ???'s previous message |
A similiar way was also known as reti-calling.
If you handle an interrupt and reach a point, which need longer processing time, but without disabling interrupts, simple call a label, which was followed by a single RETI. Then the CPU was marked as interrupt finished, but the program was continued after this call. Then on the end do a simple RET to return to the main. This piece of code has then a higher priority as the main, but lower as all 2 interrupt levels. So it can be named as a software interrupt with a third interrupt level:
org 23h
ljmp int_sio
...
int_sio:
... do something on interrupt level
lcall do_reti
... do something on level above main
ret
do_reti:
reti
Peter |



