The trouble with this is that LocalTalk does not use the same byte framing conventions as RS-232. The most non-marketese name I could find for the format LocalTalk uses is “FM0”; its only compatibility with RS-232 is electrical.
An RS-232 byte frame involves a logical zero called the start bit, 5-8 data bits, an optional parity bit, and 1, 1.42 or 2 logical one bits called the stop bits, all transitions happening no more often than one bit period apart. (The 1.42 stop bits option is because some of the old mechanical teletypes originally were not able to reset between bytes any faster than that; a lot of old chips fudge that as 1.5 bits because the logic is simpler.) The options are always the same from one byte to the next and must be agreed upon in advance. Significant features are that every byte transferred has 25-80% framing overhead (25% in the usual Mac serial case — 8 data bits, no parity bit, 1 stop bit, abbreviated 8N1) and that the longest possible logical zero is the number of data bits plus one or two (9 bit periods for 8N1). A logical zero that lasts longer than this time is interpreted as a break in the wire, which goes all the way back to current-loop teletype equipment.
FM0, on the other hand, doesn’t really have any concept of a byte frame. Each transmission happens on a packet basis. The first transition on the wire marks the beginning of the first byte’s first bit. Transitions happen once per bit period for a data 1 and twice per bit period for a data 0. A bit period with no transitions at all must be outside of the packet. Significant features are that framing overhead is amortized over an entire packet rather than being per-byte, and that the transmission medium must be able to handle a maximum frequency of twice the bit clock frequency.
Obviously, steering an FM0-formatted LocalTalk packet into anything that is expecting plain RS232 simply is not going to work.
An RS-232 byte frame involves a logical zero called the start bit, 5-8 data bits, an optional parity bit, and 1, 1.42 or 2 logical one bits called the stop bits, all transitions happening no more often than one bit period apart. (The 1.42 stop bits option is because some of the old mechanical teletypes originally were not able to reset between bytes any faster than that; a lot of old chips fudge that as 1.5 bits because the logic is simpler.) The options are always the same from one byte to the next and must be agreed upon in advance. Significant features are that every byte transferred has 25-80% framing overhead (25% in the usual Mac serial case — 8 data bits, no parity bit, 1 stop bit, abbreviated 8N1) and that the longest possible logical zero is the number of data bits plus one or two (9 bit periods for 8N1). A logical zero that lasts longer than this time is interpreted as a break in the wire, which goes all the way back to current-loop teletype equipment.
FM0, on the other hand, doesn’t really have any concept of a byte frame. Each transmission happens on a packet basis. The first transition on the wire marks the beginning of the first byte’s first bit. Transitions happen once per bit period for a data 1 and twice per bit period for a data 0. A bit period with no transitions at all must be outside of the packet. Significant features are that framing overhead is amortized over an entire packet rather than being per-byte, and that the transmission medium must be able to handle a maximum frequency of twice the bit clock frequency.
Obviously, steering an FM0-formatted LocalTalk packet into anything that is expecting plain RS232 simply is not going to work.