Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!husc6!yale!decvax!tektronix!uw-beaver!cornell!rochester!pt.cs.cmu.edu!spice.cs.cmu.edu!mjp From: mjp@spice.cs.cmu.edu (Michael Portuesi) Newsgroups: net.micro.amiga Subject: Re: terminal emulation Message-ID: <1040@spice.cs.cmu.edu> Date: Sun, 20-Jul-86 00:28:49 EDT Article-I.D.: spice.1040 Posted: Sun Jul 20 00:28:49 1986 Date-Received: Thu, 24-Jul-86 06:04:51 EDT Reply-To: mjp@spice.cs.cmu.edu (Michael Portuesi) Distribution: net Organization: Carnegie-Mellon University, CS/RI Lines: 86 Keywords: Okay, folks. I'm going to present all of you with an idea that I'm surprised no one has thought of before. I would follow through on this idea myself, but since I am too poor to afford an Amiga to develop software on I'll probably never get it done. If you like this idea, please steal it. It amazes me how many people are offering terminal software that emulates only a small number of terminals, such as vt-100, vt-52, Televideo, Hazeltine, etc. That's like offering a text editor that has four different sets of key bindings and allows you to choose one of them to use. Emacs wasn't written around that philosophy, and I don't think a terminal program should, either. After all, a computer is much more intelligent than the terminal it is trying to emulate. First off, design a terminal emulator that has a large number of "primitives" for manipulating the display. Give them names like "clear-to-end-of-line", "insert-line", "scroll-region", "cursor-up", "clear-screen", etc. Then provide a way in which a user can bind control-character sequences to these functions. Preferably, you want to offer both an interactive mode and a simple programming language to define these bindings. The programming language has to be able to allow the user to specify the order and format in which the screen manipulation commands accept their parameters, in order to accomodate the wide variety of terminals. This way, users can define their OWN terminal types. Offer a few dozen or so common terminal types with the package, including some very powerful terminal definitions, so that I can use something more powerful than vt-52 mode with a system that supports more, such as Unix(tm). Now, don't stop there. Make the keyboard totally redefinable. Allow me to set up a keyboard macro and bind it to any key sequence on the keyboard, not just the function keys. Allow me to take my favorite key macros, give them bindings, and place them in a pull-down menu (updated on the fly, of course--does Intuition allow you to do something like that?). That way, I can do things on the remote host as easily as selecting things off a menu with a standard Amiga application. Next, allow me to bind keyboard macros to mouse movement and button clicks. This way, I can bind ^B, ^F, ^N, and ^P to the movement of the mouse, set-mark to the left-hand button and have a mouse-based Emacs. An arrangement can be worked out where the mouse pointer is used for system activity when it is needed, e.g. on the menu strip or in requestor boxes. Next, offer as many file transfer protocols as can be supported. XMODEM Christiansen (sp?), XMODEM CRC, Compuserve "B", Kermit, dumb file transfer, and others I haven't thought of can be easily included. Why not provide a "hook" function so that programmers can write code for their own protocols in the event one of them isn't included? Next, allow me to select things such as key click, screen colors, font (You'll have to allow this one. some terminals have their own funky character sets), and interlace mode so I can have a 50-line display (If I can brave the flicker). I realize preferences allows you to set some of these things, but I don't believe all settings hold for custom screens. Allow me to save all of the above customizations in an init file, so I only have to bother with it once. Better yet, allow me to bind particular init files to entries in the auto-dial database (yes, the program should have one of those too) so that the program automatically adapts itself to whatever host I connect to. I'm sure there's more things I could add to the specs above, but that should be a good start. If someone were to create a program of this power, I guarantee it would sell like hotcakes. The Amiga is a next-generation computer. Is it too much to ask for next-generation software as well? -- +----------------------------------------------------------------------------+ | Mike Portuesi | | Carnegie-Mellon University Computer Science Department | | | | ARPA: mp1u@td.cc.cmu.edu | | UUCP: {harvard | seismo | ucbvax}!spice.cs.cmu.edu!mjp | | | | "Little things remind me of you...Cheap cologne and that damn song too!" | | --The Flirts, "Jukebox" | +----------------------------------------------------------------------------+