Path: utzoo!attcan!uunet!cs.utexas.edu!usc!apple!goofy.apple.com!chesley From: chesley@goofy.apple.com (Harry Chesley) Newsgroups: comp.sys.mac.programmer Subject: Re: Serial driver: Why is CTSHold being set? Message-ID: <8580@goofy.Apple.COM> Date: 6 Jun 90 20:28:38 GMT References: Sender: usenet@Apple.COM Organization: Apple Computer, Inc. Lines: 41 In article rang@cs.wisc.edu (Anton Rang) writes: > What I do: > > 1. Call RAMSDOpen (on port A). According to a recent tech note, it's now better to do just an OpenDriver, rather than RAMSDOpen. RAMSDOpen was needed to load the RAM driver in the original Macs, but now that driver is standard. I don't believe this could cause any problems at this point, but OpenDriver is better for the future. > 2. Call SerReset for the port A input and output drivers. Triple check the parameters to this call. It's quite possible that something is off, and so you're sending at the wrong baud-rate, number of data bits, or something. > Calling SerStatus reports that 'holdCTS' is on. Presumably, this > means that the driver is convinced my modem isn't ready. But (1) my > modem has CTS forced on, and (2) all the communications software I > have works fine. CTS is used for signal flow control. However, I'm quite sure the driver doesn't listen to it unless you explicitly turn it on via SerHShake, so the problem should be earlier than that. If you are trying to talk to a modem, it's possible that the modem isn't listening until some modem signal is asserted (like DTR), though other comm software working suggests that's not it. Don't, however, count on the modem wires going through from the modem to the Mac, as there are as many different cables out there as there are permutations of the wires in the cables (unless you've buzzed your cable out yourself). > P.S. I'd like to wind up with an application which can handle > incoming data while in the background under MultiFinder. > Anyone have any suggestions on the best (or worst) ways > to go about this? I've thought about setting up a big > input buffer and periodically checking how many characters > are in the buffer, using PBRead to extract them, and either > queueing them for later or processing them. Will this work? That's the way I'd do it. You can also set up an asynchronous read.