RDROYA01@ULKYVX.BITNET.UUCP (05/16/86)
What I have decided to do about the exception processing problem is create a handler that intercepts all bdos calls while a specific program is running in high memory. That program will actually controll the whole system. I intend to do this by resetting the trap #2 vector and testing for D0=0 and D0=PRGM_LD. I will have the program save the old vectors and two flags. If the RESET flag is TRUE, then it will put the original vectors back and cause a warm boot. If the PRGM_LD flag is set (never will be at first), it will put the program in supervisor state and call the CCP to load the program. The privilidge error is the only problem with the CCP call now. If the resident program intercepts the RESET command, then when the CCP returns, it will return to the calling program rather than resetting. It should also be able to grab exit() status this way. What are the potential problems here? RDROYA01@ULKYVX.BITNET
mknox@NGP.UTEXAS.EDU.UUCP (05/17/86)
Why are you trying to call CCP to load the program. If that is your only problem, call BDOS. You will need to set up a BASE page, but that should be the only extra effort. By the way, I do not know if you got my previous reply. If not, here is a synopsis: The manual clearly states that TRAP 0 and 1 should *NOT* be reset on an exit. If they are, then it is likely a BIOS problem. HOWEVER (!) I tried it on a MacIntosh running version 1.2 and it also reset 0 and 1. Either it is a widespread problem with BIOS implementors not reading the manual, or it is in the main system. mknox@ngp.utexas.edu