EWENTERM - A USER MANUAL (or perhaps it should be called a Clayton's User Manual!) Written by Ewen McNeill (12/4/1991). CONTENTS: . The law and you. . What does it do? . How do I use it? . Hey, this is good.... . Other stuff. THE LAW AND YOU. This is the legal bit. Sorry to anyone who doesn't like legal bits, but that's life. Read it anyway, you might like the deal... Every instruction of this code was written by me, Ewen McNeill, at great danger to my personally being. As you might understand, I want to put a few restrictions on it. Not many, just a few. This software is not quite released into public domain. Almost, but not quite. You are free to make as many copies as you like of it (but don't complain if you don't have any room for anything else when you have 2000 copies....). You may GIVE those copies to who ever you choose (don't complain if they give them right back....), but you may not SELL them. This software is FREE. It must stay free. However, I realise that this might create some problems. Reasonable disk copying charges may be made (media cost + 50%), and bulletin boards which charge for access may have it available for downloading. But you may not sell it. In any form. If you really think money belongs in the issue, see a little further down. The other condition is that you may modify the code as you like (but don't complain if it is then broken, formats your disk, kills you cat, or whatever). You may use any part of the code in your own programs, providing that you acknowledge who wrote it, and providing that you don't charge anything for those portions of the code (ie, using it in a package that is sold commerically will be frowned on). To summerise, do whatever you like, but don't charge any money. WHAT DOES IT DO? This program was written when I became annoyed with the capabilities of the |TERMINAL RSX in the ROM of the original Serial Interface. Originally it was merely designed to go a little faster, so that characters weren't lost from screen output. Later, when it became clear that 95% (or more) of the bulletin boards I called made use of Ansi screen control codes, I decided to add some support in for those. Currently the major points of this program are: - no missed characters in screen output up to 2400 bps. - some support for Ansi screen control. - still pretty small (5K). - you can use function keys The Ansi support, which appears to be the "selling" point of the program (I have had requests.... ), was added originally for my personal convienence. It supports most of the common codes, but does not support any Insert/Delete codes. It should work with most common boards. It certainly does work with the Opus Full Screen Editor, the PC-Board one, and a couple of others which are less common. If you want to know how something is done, I suggest you look at the source code which is provided. It should be pretty easy to follow the comments and so on. Most of the things are separated out into different files, although the SCREEN and ANSITERM files overlap quite a lot. HOW DO I USE IT? Well, firstly you require an Amstrad CPC 464/664/6128 (the Plus models should work, but I have never tested it), with an Amstrad standard serial interface. This means that the IO addresses must be standard. Even this can be changed if you know what you are doing. This program is not terrible hard to use. The basic idea is to install it in memory with the Basic loader, and then call it in a similar way to the Serial rom, |TERMINAL. The Basic loader is setup to load in the binary code, initialise the RSX's and also initialise the DART chip. There are some comments in the code, which should help you figure out what each bit does. This basic loader is called "DISC.BAS". If the setup of the DART/baud rate generator is not suitable you will have to write something yourself. In the original Serial Rom, the |SETSIO command can be used very successfully. I have, however, been using the OUT commands in the Basic loader for a while now, because I have been disabling the Serial Rom, by software. The binary code comes in two parts. The first part, CHARS.BIN, contains the character set that the program uses. This character set is laid out in a strange way, for reasons of speed. Basically it is page aligned, so that the whole character can be read by incrementing the upper byte of the pointer. If you can't figure it out from that, don't worry. The second part of the binary code is the one that does the damage. It contains the RSX's, and all that other stuff to get it working. When you run the Basic program you should be presented with announcement that the program is installed. From here there are two commands. But before you use these commands you should be sure to setup the serial interface to the right speed and parity. The Basic loader, as configured, sets it up for 2400/2400, 8N1. This should be okay for most things. |TERM will go into the terminal mode. For reasons associated with the writing of the program it clears the screen, into mode 2. You are now connected to the serial port, in the same was as |TERMINAL would have, but with the advantages outlined above. If you wish to exit from the terminal, type CTRL-ESC, or SHIFT-ESC. For reasons connected with local use, ESC by itself sends out the ESC code (27) to the serial port. The only other command that I can think of which is of use, is CTRL-COPY. This will attempt to dump the current screen to the printer. It doesn't always work perfectly, but it should be pretty close. If you don't have a printer connected, or it is offline, you should hear a beep. If you do, the screen will be output. Note, you can use the function keys 0 to 9, to send out your own strings. The key tokens above this are ignored, for my own reasons. Utopia (which I use) setups CTRL+function key to do things. I kept on sending out those by mistake. And I sometimes define my own SHIFT+function keys which I also didn't want to send out. You can remove this trap pretty easily in the source. |SETUP will allow you to change some basic features of the program. Each option can be changed by press Y, or N. Typing return will leave it the way it is. Pressing ESC should escape from the setup. Note, the options you entered before pressing ESC _are_ saved. The two echos are sometimes useful. Use local echo when what you are connected to is not echoing back what you type. Use remote echo to simulate this when you are "chatting" with someone else directly. In this case, one of you should have both echos on, and the other none. Failure to observe this rule could result in a mess. Simply escape from the terminal mode and set it up again. The two add LF to CR options, are useful when you are "chatting" to someone. It means that you return key will act logically. Again, one of you should have both options set on, and the other none. Destructive delete is in the same category (although it has other uses). It means that the BS codes (8) are translated into 8 32 8, which will over-space what ever it goes back over. This, along with the entry in the translation table which translates the DEL key to 8, will give a good "chat" feel. The two tab expansions fall into a similar category. They expand the TAB character to the nearest tab stop on the screen. If you understand them, feel free to change it, but otherwise don't mess with it. A word about the translation tables. This program employs two page aligned tables for changing the output of certain codes into other ones. I am not sure where they are in memory currently, but they are pretty easy to find with something like the Utopia |MEDIT. Simply look for a table with each Hex value in order. Note, a 0 in the table will cause the character to be ignored. And another little word. If you want to mess around with the Basic loader, feel free. Just remember that the program needs 4K of buffer below where the program is loaded, and above the HIMEM, and about 2K above itself. The bottom part of the memory contains a character based picture of the screen, and the top part contains the IO buffers. Both of these are occasionally worth looking at to trace down a problem. Again, the Utopia |MEDIT is useful, or something like that. The file is assembled with Maxam 1.5 here. It may work with something else, but some work will be needed. It may not even work with Maxam itself without some work. Sorry folks, but that's the way the bytes go together. HEY, THIS IS GOOD.... I'm glad you like it. As I said in the legal section, it is free software. If you feel that you really _must_ pay something for it (unlikely!), donated it to GreenPeace (my favourite charity). If you can think of any improvements that could be made, let me know (see below for addresses). If you think you can make the improvements, go ahead. If anything wonderful happens, let me know, I love to see my software being used. Now the addresses: Fidonet: Ewen McNeill, at 3:771/150 (Andrew's Folly) Internet: ewen@actrix.gen.nz Snailmail: 58 Fraser Avenue, Johnsonville, Wellington New Zealand. I won't give you a phone number, mostly because it would cost heaps of money to ring New Zealand. If you really must know.... tough! OTHER STUFF Well, I hope this manual hasn't been too bad. It was written in just one night, to get the software ready to go off around the world. I think it covers the basic stuff. More details can be found by looking at the source. Thanks for suggestions must go to lots of people. I don't think I could safely name names, and know that no one was forgotten, so to all those people who made suggestions a big THANKS! What's next? I am not quite sure. I am well into my final year at Secondary school (with big exams at the end), so I doubt that much programming will be done. I have some quite interesting plans for future versions. Certainly there will be more Ansi support, and some file transfer protocols. Other things will be added as they are needed. Plus there is a special bonus with a future version. In fact, it will be so different that the name will change. If I ever get around to programming that version it should be pretty amazing. Please remember that any feedback is more than welcomed. Netmail messages from England will probably take about 2 weeks to make the journey, so don't expect a really fast reply. Snail mail takes about the same time, Airmail. I will try to reply to all electronic mail that gets sent, and do my best to answer other mail as it happens. One last little thing. A what else have I done. I have been programming in machine code on the Amstrad for about 2 years now, off and on (lots of off, and a little on....). I have written programs to display BBC pictures on the Amstrad, Mac Paint pictures. I have also written lots of other little utilites to do various things, mostly for compatability reasons. Currently in the wings is a idea that a few of us are playing around with, about a image format for Amstrad pictures. Nothing really solid has been written, but one of these days something may happen. Ewen McNeill, 12th April 1991.