??? 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 |