There is definitely no (normal) access to rts/cts from BASIC unless you count BASIC with included/encoded machine language.

The hardware exists in the machine. The uart has the pins and they are wired up to the db25, but there is no code anywhere in the main rom that uses them. No BASIC commands, no telcom, print, etc.

The options I know of are:

* machine language do your own uart setup
HTERM and TBACK are pretty much the only examples of code that actually uses rts/cts, and they are machine language.
http://bitchin100.com/wiki/index.php?title=HTERM

* I think you can read the status of cts by reading INP(187), and possibly set the status of rts but OUT(???) something. But I don't know about accessing the uart register to tell IT to do rts/cts itself. I don't think being able to read the pin and set the pins helps you get to "print with rts/cts".
http://bitchin100.com/wiki/index.php?title=Diagnose_DTR/DSR_and_RTS/CTS_issues

* At power-on the Model 100 rs232 port sets all data & control pins to -5v.
On RUN "COM:98N1E", pins 4 (RTS) and 20 (DTR) go to +5v.
So, you have actually one form of control over the pin by opening and closing the COM port. I don't think this is useful for your printing problem, I just include it for completeness.

* xon/xoff is reliable enough if you keep the speed down to the limits dictated by the time it takes for an in-band xoff round trip, the size of the other sides receive buffer, and how much data is already in flight in that amount of time. For the 100, when receiving, with the screen active/updating, this is only 600 baud. Turn the screen off and it's maybe up to 9600. For sending only, like printing? I guess that number would be determined by the size of the printer's receive buffer and how quickly the 100 can respond to an xoff. There will be some absolutely reliable speed. It's not that xon/xoff just isn't reliable. It's just that since it's in-band, you have a maximum reliable speed limit dictated by the round trip time, processing time, and size of receive buffers. And that maximum bulletproof speed can be much lower than you think.

--
bkw

On 6/10/23 21:20, Charlie Hoey wrote:
It may come to that for cables, but now I'm extra confused. I'm also doing some experimenting with an RK-P400C pen plotter that's got an RS-232C port. There's this bitchin100 article <http://bitchin100.com/wiki/index.php?title=Model_100_Serial_Interface> that says you don't get any hardware flow control in BASIC with RS-232, but is that true for 'saving' out to a com port as well? For example, if i hook up a serial printer and hit F3 and 'save' to com:58n1dnn, is that going to respect flow control?

IThe manual for the plotter has the following wiring diagram:
image.png
I've created a cable following this but it seems to still be ignoring flow control, which on a slow plotter like this one makes it almost unusable. So I'm curious if anybody knows for sure if it's possible to transmit data over RS-232 on an M100 that respects CTS signals in BASIC. Or, if there is an alternative wiring I should try for the M100 specifically so it doesn't keep overflowing print buffers.

Thanks!

On Fri, Jun 9, 2023 at 10:55 PM Gregory McGill <arcadeshop...@gmail.com <mailto:arcadeshop...@gmail.com>> wrote:

    Why not wire dsr from the printer to CTS

    On Fri, Jun 9, 2023, 5:23 PM Charlie Hoey <charlie.h...@gmail.com
    <mailto:charlie.h...@gmail.com>> wrote:

        Apologies for the longish post, didn't have time to write a
        short one!

        *TL;DR* I've been happily serial printing on my 100/102, but my
        200 doesn't work, so I'm in search of a non-hardware solution to
        tying DTS/RTS together on a 200 to let it send RS-232 data.
        --------
        I've been experimenting with RS232 printing on an Apple
        Imagewriter ii, and I noticed that my 100's and 102 will print
        to it just fine, but my two 200's both just time out trying to
        print (by print I mean, save a text file to "com:88n1enn". Same
        deal when just playing around in the terminal, it gets a little
        buggy and I can't even quit without powering on and off, and
        identical behavior on both otherwise healthy 200's.  What gives?

        I dug around the m100 list archives, and there's this thread
        from 2015
        http://lists.bitchin100.com/htdig.cgi/m100-bitchin100.com/2015-January/069836.html 
<http://lists.bitchin100.com/htdig.cgi/m100-bitchin100.com/2015-January/069836.html> that's 
very similar (also this one 
<http://lists.bitchin100.com/htdig.cgi/m100-bitchin100.com/2018-May/077378.html> and this 
one <http://lists.bitchin100.com/htdig.cgi/m100-bitchin100.com/2013-January/065432.html>, 
an old problem). So I hooked my 102 and 200 up to a scope and made a little test harness to look 
around, and long story short, the 200 indeed refuses to send any RS232 data unless RTS/CTS are 
tied together. This doesn't seem to be the case for the 100 and 102, which will happily send data 
out blind.

        Digging through the Technical Reference Manual
        
<https://ia801908.us.archive.org/14/items/Model_200_Technical_Reference_Manual_1986_Tandy/Model_200_Technical_Reference_Manual_1986_Tandy.pdf>,
 the 200 does indeed have a different chip (82C51A) for handling serial IO, and 
perhaps it is pickier about when it allows outbound traffic. The TRM has what amounts 
to a decent data sheet on that chip, and this part caught my eye (bottom of pdf page 
98):

        image.png
        It seems like perhaps it's possible to fix this with software?
        Or, am I way overthinking this whole thing, and there's another
        way to do it that's even easier? I know I can just get a null
        modem cable, but it's kind of a bummer to have to get all new
        cables to use a 200 with printers the 100/102 happily connected to.

        Thanks for reading / any advice.
        -Charlie


--
bkw

Reply via email to