Has anyone successfully created an Interrupt Service Routine in a PB DOS
Program? I have been toying around with it for a few days and cannot get
it to work. I do know that the ISR Sub is executing because the Int gets
reset just fine, and if I REM out that portion of the code the Int does
not get reset. But the program crashes imediately afterward when it
executes the ! IRET statement as far as I can tell. If I make an Int
handler in Turbo C, and then link the OBJ to the PBDOS program it works
just fine, but if I Write the ISR routine in PBDOS, it hangs on the exit
of the routine. I even made a routine with nothing in it but the ! IRET
statement and it still crashes. If I leave the ! IRET statement out, then
the whole system hangs as expected...
I know that in the ISR code you cannot do anything that will genereate
another interrupt (such as using alot of the BASIC keywords), and that ASM
statements are the best way to do it. This isn't a major project, just an
experiment more or less. But I was just wondering if it can be done and if
anyone has written one with any success.
Scott
------------------
Program? I have been toying around with it for a few days and cannot get
it to work. I do know that the ISR Sub is executing because the Int gets
reset just fine, and if I REM out that portion of the code the Int does
not get reset. But the program crashes imediately afterward when it
executes the ! IRET statement as far as I can tell. If I make an Int
handler in Turbo C, and then link the OBJ to the PBDOS program it works
just fine, but if I Write the ISR routine in PBDOS, it hangs on the exit
of the routine. I even made a routine with nothing in it but the ! IRET
statement and it still crashes. If I leave the ! IRET statement out, then
the whole system hangs as expected...
I know that in the ISR code you cannot do anything that will genereate
another interrupt (such as using alot of the BASIC keywords), and that ASM
statements are the best way to do it. This isn't a major project, just an
experiment more or less. But I was just wondering if it can be done and if
anyone has written one with any success.
Scott
------------------
Comment