Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/18/84; site 3comvax.UUCP Path: utzoo!watmath!clyde!burl!ulysses!gamma!epsilon!zeta!sabre!petrus!bellcore!decvax!decwrl!glacier!oliveb!3comvax!mykes From: mykes@3comvax.UUCP (Mike Schwartz) Newsgroups: net.micro.amiga Subject: Re: Speed of output to RAW: Message-ID: <302@3comvax.UUCP> Date: Thu, 26-Dec-85 17:20:50 EST Article-I.D.: 3comvax.302 Posted: Thu Dec 26 17:20:50 1985 Date-Received: Sat, 28-Dec-85 01:39:50 EST References: <839@caip.RUTGERS.EDU> Organization: 3Com Corp; Mountain View, CA Lines: 60 > From: Louis A. Mamakos > > You can improve the performence of the RAW: device by making larger requests > (i.e. more than 1 character) to it. I did this to MicroEMACS, and noticed a > very large improvement in performence. I've played around a bit with the > AmgiaTERM program, and I believe that you could substitute the console.device > handler to get the ANSI terminal emulation capabilites without significant > degradation in performence. > > Louis A. Mamakos WA3YMH Internet: louie@TRANTOR.UMD.EDU > University of Maryland, Computer Science Center - Systems Programming I will be posting the source to a program called dumbterm tomorrow. I will describe how it works here: The Amigaterm program posted here was a nice illustration of how nicely amiga programs can be written. However, it had a couple of bugs, and did not provide any ANSI capabilities at all. To modify the program to do the ANSI stuff would have taken a long time, and would have duplicated the work done by two of the Amiga device drivers - CON: and RAW:. CON: (console.device) is not desirable for a terminal program because it is a syncrhonous device. What I mean is that there is no way to test for ONE character ready at a time, and any read from it requires the user to hit return for A WHOLE LINE at a time. It does provide some additional editing features, like backspace and ctrl-x (line rubout), too. The RAW: device, on the other hand, does provide the ability to read and check for ready status one keystroke at a time. It provides the same ANSI capabilities as CON:, and sends ANSI sequences for the function keys and arrow keys. Openning either of these devices and doing asyncrhonous IO calls to them are possible, and is probably the BEST way to do IO to them. However, AmigaDos itself provides file IO calls that are real easy to use - Open, WaitForChar, Read, Write, and Close. DISCLAIMER: Someone at Amiga reading this is probably thinking "OFF WITH HIS HEAD!". WaitForChar is not a real good way to check for a keyboard key ready, BUT IT DOES WORK, and what do you want for free? Also, AmigaDos does not really provide a friendly way to get at an IDCMP for these devices. Anyhow, serial IO IS done via the asynchronous IO calls to the serial device, as is done in AmigaTerm, becuase AmigaDos does not provide WaitForChar capabilities for any device other than Raw: and Con: (I can't imagine why, though, as this would be a great feature. Actually, writes to the serial port and screen are done synchronously, because they require little time compared to the transmission time at any serial rate. It would be relatively simple to add xmodem (thanks to the Amigaterm source) and other types of communication features, but I will leave it up to you (readers, that is). What dumbterm is, is a small terminal program that works REAL NICE with UNIX over a modem (but that's all it does). It also illustrates all I discussed here. Until tonite, when I post the source... /mykes