Path: utzoo!utgpu!news-server.csri.toronto.edu!bonnie.concordia.ca!nstn.ns.ca!news.cs.indiana.edu!att!ucbvax!APOLLO.COM!eichin From: eichin@APOLLO.COM (Mark Eichin) Newsgroups: comp.os.cpm Subject: Re: Is my machine too SLOW for 2400bps modems? Message-ID: <9102082220.AA05088@xuucp.ch.apollo.hp.com> Date: 8 Feb 91 21:36:33 GMT References: <316@fxrs.intel.com> Sender: daemon@ucbvax.BERKELEY.EDU Organization: The Internet Lines: 29 >>now it seems that 2400 baud is too fast. Is this true? How do I fix it? Is Well, I run a custom port of TurboDOS on my Model 4P, and using a simple CP/M style comm program (it makes the TurboDOS "call 0050h" calls instead of the BDOS ones) it has *no* problems with newlines. (The RS232 driver in the OS is interrupt driven feeding a 128 or 256 byte (I forget which) ring buffer, which helps a bit.) It does lose when there is a large amount of text (ie a full 24x80 screen with mostly 60 columns per line...) but upping the buffer size would probably solve that. (this is at 2400 baud; I've *never* had loss at 1200.) There was a standalone comm program that used the same driver... it would run at 19.2Kbaud without losing data! No OS overhead at all - the disk had a bootloader which read in the terminal program, which talked to everything directly. There is one important trick, which I suspect MM CP/M doesn't do. The Model 4 video controller has a register which tells it what address (in the 2K block) should appear at the top of the screen. In order to scroll, my driver puts blanks in the 80 characters *after* the last line, then adds 80 to the register (24x80 = 1920, 25x80=2000, 2K = 2048, so there is room...) *poof* instant scroll (or at least, one that requires touching 80 bytes, not 2000...) _Mark_ ps. Both the TurboDOS port and the comm program were done by myself and Jon Luning when we worked for DOKAD Inc, a CP/M consulting firm that I think is gone now (the president had health problems and didn't have time to continue to run it, and the technical staff all graduated and went off to college...) I apologize for not being able to distribute the code; I'm certainly willing to discuss details of the code for anyone who wants to try using the same techniques. _Mark_