tim@ism780c.UUCP (06/02/87)
I am attempting to use the modem port on my Mac+ from LightspeedC. I open the driver with RAMSDOpen(), set parameters with SerReset(), set it up to ignore hardware handshaking with whatever the call that does that is ( SerHShk() ? ), and do my IO with PBRead() and PBWrite(). All of this seems to work. However, when I finish and do RAMSDClose(), it hangs. The RAMSDClose() does not return until I cycle power on the modem. How do I get it to not do this? -- Tim Smith "Froh wie seine Sonnen fliegen sdcrdcf!ism780c!tim Durch des Himmels praecht'gen Plan, Laufet, Brueder, eure Bahn, Freudig wie ein Held zum Siegen"
tim@ism780c.UUCP (Tim Smith) (06/05/87)
I have found out what was happening. I was doing reads by starting
up an asynchronous read. When it finishes, I pass the data back to
my program, and queue up another read.
Thus, I always have a read pending.
RAMSDClose() waits for IO to complete before closing the driver.
Thus, it hangs. Flicking the modem off and on causes it to send
a couple characters of garbage, which satisfy the read, and then
RASDClose() finishes.
Now I call KillIO() before calling RAMSDClose(), and everything
works.
( by the way, the reason I am using the RAM serial driver rather
than the ROM serial driver ( which are the same on a plus, I think ),
is so that I will also run under the 64k rom. )
--
Religion: just say "no" Tim Smith {seismo,sdcrdcf}!ism780c!tim