shawn@marilyn.UUCP (Shawn P. Stanley) (05/20/90)
Ack! I need help here. I'm trying to help someone link their software with my software across GS/OS and ProDOS 8. Their application is a ProDOS 8 application, and mine runs under ProDOS 16 and GS/OS. The problem is that they're using a modem card that adheres to the Super Serial Card standard, and thus as far as *I* know, there isn't a way to turn off SSC interrupts between applications. (Is there?) What happens is, when an online user is exiting the ProDOS 8 application and entering the GS/OS application (or vice-versa) and hits a key (or line noise occurs), an unclaimed interrupt condition occurs and crashes the system. I grab an interrupt vector for use during SSC handling under GS/OS, and I've tried to implement a tool which will continue to accept characters until the ProDOS 8 application tells it to shut up and hand over control. The problem is that during the switch from GS/OS to ProDOS 8 (and vice-versa), the interrupt vector is reset, which means my tool no longer has control over handling the interrupts. Is there a vector that won't be reset, which I can use for such interrupts? Is there a way to turn off SSC interrupts without dropping the online user? An answer to either one will help greatly. I haven't been able to find an answer in any documentation I have, so maybe an Apple person can help me find an answer if nobody else can. (By the way, the only SSC interrupts I'm processing are receive-ints.) If you reply by E-mail, note the address down below. (I don't have the ability to fix my domain under news yet.) -- Shawn P. Stanley shawn@marilyn.marilyn.mn.org bungia!marilyn!shawn {rosevax,crash}!orbit!marilyn!shawn
GRAY@ADMIN.HumberC.ON.CA (Kelly Gray) (06/07/90)
> Is there a vector that won't be reset, which I can use for such > interrupts? Is there a way to turn off SSC interrupts without dropping > the online user? An answer to either one will help greatly. I haven't > been able to find an answer in any documentation I have, so maybe an > Apple person can help me find an answer if nobody else can. According to the databook I have on the 6551 ACIA chip (The one used in the SSC) the interrupts can be turned off by writing 1s into bits 1 & 3 of the Command Register. Be careful not to change bit 0 of the command register though, since that will change the DTR setting, and could force the modem to hang up the phone. The ACIA Command register on the SSC is located at $C08A+$n0 where n is the slot number the SSC is in. In Assembler, the following code should do the job, assuming that the X register has been loaded with $n0. LDA $C08A,X ;read current command value ORA #$0A ;set bits 1 & 3 AND #$F0 ;optional, clear bit 2 STA $C08A,X ;set new value back in the command register You may also want to make sure that bit 2 is a zero when you disable the interrupts, since setting bits 2 and 3 high at the same time will transmit a BREAK, possibly causing problems. <o_o> Kelly Gray (GRAY@ADMIN.HUMBERC.ON.CA)