=============================================================================== Volume 1 Issue 4 June 1989 ------------------------------------------------------------------------------- _____ _____ ____ ____ ___________ / | / | | | | | | _____ \ / |/ | | | | | | | \__\ / /| /| | | | | | | | / / | / | | | | | | | | / / | / | | | | | | | | ____ / / | / | | | | | | | | |__ \ / / | / | | \ \_______| | | |_________\ \ |___| |/ |___| \____________| |________________\ __ __ ____ ______ _____ ____ | \ || / __ \ --,,-- |,--- //--\\ ||\\ || || || || || \\__ || \\ || || || || |,== ---\\ || \\|| ||__|| || ||___ ___// || \_| \____/ || |____ ___/ The Official Newsletter of: The Motorola Users Group of London =============================================================================== =============================================================================== RainbowFest Report =============================================================================== June 1989 MUG Notes Page 1 Motorola Users Group of London 1989 EXECUTIVE PRESIDENT Stan Bischop 500 Osgoode Dr. #122. London N6E 2G9 668-7277 VICE- PRESIDENT Gerry Davis 1053 Frances St. London N5W 2L8 453-8686 SECRETARY Judy Daviau 500 Osgoode Dr. #122 London N6E 2G9 668-7277 TREASURER Sheila Smith 11 Bridle Path London N6Y 2H1 672-4913 APPOINTED POSITIONS MEMBERSHIP CO-ORDINATOR Judy Daviau 500 Osgoode Dr. #122 London N6E 2G9 668-7277 NEWSLETTER EDITOR Sheila Smith 11 Bridle Path London N6Y 2H1 672-4913 P.D.LIBRARIAN Diane Gubbels R.R. #1 Mt.Brydges N7G 3H8 264-1648 PUBLIC RELATIONS Gerry Thomas 232 Oakland Ave. London N5V 4H1 659-1374 B.B.S. SYSOP Wayne Morrison 1089 Chippewa Dr. London N5V 2T8 451-7217 NEWSLETTER PUBLISHER Wayne Morrison 1089 Chippewa Dr. London N5V 2T8 451-7217 TECHNICAL ADVISORS Stan Bischop 500 Osgoode Dr. #122 London N6E 2G9 668-7277 Gerry Davis 1053 Frances St. London N5W 2L8 453-8686 Wayne Morrison 1089 Chippewa Dr. London N5V 2T8 451-7217 MUG Line B.B.S. 24 Hours Daily 300/1200 Baud N-8-1 451-7216 DISCLAIMER The opinions expressed by the authors are not necessarily those of the Motorola Users Group of London, the editors, or the club members. While we try to make sure that all software and hardware projects in this newsletter have been tested and do work, we will not be responsible for any damage to your own personal equipment resulting from using information contained in this newsletter. COPYRIGHT NOTICE Contents of this newsletter are copyrighted 1989 by the Motorola Users Group of London. Reproduction by any means other than for the personal use of members without prior written consent is forbidden. Other non-profit computer clubs may make use of the enclosed material as long as written acknowledgement is made of the source. MANDATE This newsletter is published by and for the Motorola Users Group of London. This club has no affiliation with the Motorola Corporation. This club is a non-profit organization for anyone that may have an interest in Motorola 68XX and 68XXX based microcomputers and the use and exchange of information about these machines. June 1989 MUG Notes Page 2 Table of Contents Page Item ==== ==== 1.....................List of Officers and Mandate 2 ................... Table of Contents 3.....................General Meeting Minutes (May 89) 4.....................Executive Meeting Minutes (May 89) 5.....................Telecom Comments(Exploring the "Files" area) 7.....................Startup(Dealing with OS-9 error messages) 11....................Peeks Pokes & Execs(two more pages) 13....................The Other Side of Midnight 15....................An Interesting Discussion with Rick Adams 16....................Access, Copyright laws 18....................Understanding Error Messages (part 2) 25....................Tech Tips(Scooping Rainbow) SPECIAL INTEREST GROUPS The Motorola Users Group of London sponsors two special interest groups (SIG's for short). The beginners SIG meets on Tuesday nights at Wayne Morrison's (1089 Chippewa Dr.) starting at 7:00 P.M. The advanced SIG meets at Sheila Smith's (11 Bridle Path) Wednesday nights also starting at 7:00 P.M. Whether you have just started out or you are an experienced hacker, there should be something of interest for you! June 1989 MUG Notes Page 3 General Meeting of The Motorola Users Group May 9, 1989 Secretary's Report The general meeting for May was called to order at 7:00pm by Stan Bischop. Sheila announced that the next meeting of MUG would be in Room 3 and she gave her own change of address as follows: Sheila Smith, 11 Bridle Path, London, Ont., N6Y-2H1 (519)672-4913 The above change of address is effective as of June 1, 1989. Sheila briefed the newsletter and called on the various authors to comment on their articles. It was announced that the General SIG would meet at Bob and Peggy Griffin's for the month of July and it will be at Wayne Morrison's for the month of June. It was also announced that the OS-9 SIG would meet at Judy Daviau's again for the month of May and would pick up after that at Sheila Smith's new address for the month of June. Addresses are as follows: Bob & Peggy Griffin, Wayne Morrison, Judy Daviau 78 Beechmount Cres. 1089 Chippewa Dr. 500 Osgoode Dr. 681-3587 451-7217 Unit 122 668-7277 Gerry Davis then showed parts of a video tape that was made by Rick Tower in Chicago during Rainbowfest. The tape was very interesting and it showed many of the savings available to the attendies of the Fest. Thank you, Rick for making the tape and also for letting us view it. Gerry Davis then showed the first 10 minutes or so of the video tape that we hope will be the first of many. We hope to make these documentary tapes and start a MUG Video library with that tape as the first donation. The tapes will be hosted by various club members and will contain accurate and helpful information on many topics. A short break was called at this point. When the meeting resumed, Wayne announced the existance of a new BBS in the area. It uses Fido-Net Mail, which is a continent wide electronic messaging system. It is located in Strathroy and is not a long distance phone call if you are calling from London. The phone number is 264-2826. Please give them a call as it is a free board. Gerry Davis and Stan Bischop then did a demonstration of various printers and Stan showed some practical maintenance and preventative care tips for your printer. Our thanks go out to everyone who brought their printers in to be displayed. Gerrard then demonstrated his new printer, the NX 1000. It is a beautiful machine which does a lovely job on multi-color graphics, as Gerrard showed us. The only hardware needed to effectively run the NX 1000 is a serial to parallel converter, which is available from some advertisers in Rainbow Magazine. You will also need a color screen dump to run off pictures of graphics. Any questions about the printer, hardware or software should be directed to Gerrard either on the MUG Line BBS or via phone. The meeting was adjourned at 8:50 and many of the members met for coffee and snacks at the Medallion Restaurant on Dundas St. after the meeting. June 1989 MUG Notes Page 4 Motorola Users Group Executive Meeting June 5, 1989 Secretary's Report The meeting was held at 11 Bridle Path and was called to order by Stan Bischop at 9:00pm. Those present were: Stan Bischop - President Sheila Smith - Treasurer Judy Daviau - Secretary Wayne Morrison - Electronic System's Manager Gerry Thomas - Public Relations 1) The topic for June's meeting will be Summer Fun. It will include demonstrations of new hardware (The Eagle Keyboard) and various games and the hardware needed to run them. 2) The topic for July's meeting will be our club BBS, The MUG Line.Wayne will demonstrate in detail how to use the BBS effectively and how to find your way around the menus,etc.Questions are eagerly invited. 3) The subject of audio recordings, by members, of the general meeting was brought to the attention of the Executive. It would appear that the members are not aware that they are quite welcome to make audio or video recordings of the general meetings as long as they do not disturb the other members while doing so. Members may feel free to place their recorders at the front of the room, to get clearer recordings, at the discretion of the chairperson for that meeting. It is expected that members will promptly remove their equipment if it becomes a burden to other members and that each member is responsible for her/his own equipment, the operation and the safety thereof. 4) It was also brought to the attention of the Executive that many members were not aware of their right to attend the Executive meetings. Any member in good standing may feel free to attend any Executive meeting provided they understand that while there, they do not have a right to vote on any decisions. The opinions of attending Non-Executive members may or may not be solicited at the discretion of the Chairperson of that meeting. 5) Stan has notified us that he will have many contributions for the club's P.D. Library shortly. He has been organizing the downloads that he got from the RDS BBS in Toronto. 6) Wayne has sent another letter to Ron Bihler, the author of the RIBBS BBS Package that our board runs on. It would appear that the software will not work properly on anything but a standard RS232 Pak and our club does not own one of its own. We are hoping that Ron Bihler has a newer version of RIBBS that does support non standard RS232 communication, and in that event we could return the RS232 and MPI that we are now using to Rick Tower, who has graciously loaned it to us. If such a program is available it would mean that the club need not spend money on an MPI as Stan would loan to the club, indefinately, his Disto Super Controller I, which has an RS232 built in. 7) Sheila Smith is supposed to make some phone calls this week in regards to getting The Super Group up and running again. We will report any progress achieved in that area. 8) Gerry Thomas is going to approach some computer sales organizations and clubs in the hopes of getting a joint computer fair/show going in the future. We will report any progress achieved in that area. 9) It was unanimously decided by the Executive that the "After Meeting Place" be changed from The Medallion Restaurant to The Swiss Chalet, also on Dundas Street. For further details contact any Executive member. 10) The meeting adjourned at 10:40 P.M. June 1989 MUG Notes Page 5 Telecom Comments By W. Morrison Last time we had a good look at our BBS's message area, and this time, finally, we are going to explore our upload and download areas which are called by inputing the iles command at the main menu. When you do type "F" you are presented with another menu, asking you which area you want to go to. Our system has four; 1 For text files, such as our newsletter, membership list, and so on. 2 For standard CoCo software. 3 For OS-9 software, and 4 For OS-K software, to support other OS-9 type software. After you select which "base" you want to access you are presented with another menu asking whether you want to upload or download. This can present a problem, as some people have difficulty remembering which is which. My suggestion is to use a little analogy to help you remember. A BBS serves many users whereas your terminal at home is just for you. Therefore think of the BBS system as being on a higher level than you are. In this way, when you send the BBS information, you are UPloading it. Conversely, when you receive information from a BBS you are DOWNloading something. This may seem a little silly, but, in my early days I used many little tricks like this to try and keep all this new information I was learning in some sort of order. Back to the situation at hand, lets say you have something to upload. Select that option after setting up your system to do an upload and you will be presented with a prompt asking you for a file name. Type in the name of the upload, and when the BBS is ready to receive it, you will see another prompt telling you to begin uploading. At this point start sending. Conversely, if you want to do a download, answer the prompt accordingly and you will be presented with a menu giving you four choices. Here you can List the available files, browse through description files for each download, download a file, or return to the main BBS. The list command lists all files in this base. The browse command will display a description of each file for you to read about that file. In doing so, it asks you a couple of questions. The first one is for a date. If you are looking for a recent file, by typing in a recent date you can skip all the descriptions on older files. It then asks you for a keyword. If for example, you typed in "game" the system would skip all files that did not have game as a keyword. In either case you can just press at either or both questions and the system will carry on. After displaying the description file for each download, the system presents you with three options. You may ownload the file or list the ext file description or uit the browse mode. June 1989 MUG Notes Page 6 When you finally decide to try a download either from the main menu or from the browse option, you will be prompted for type of download. Depending on the file type, you will either have four choices or two. If the file is ASCII you can use either ASCII list, X-on X-off, X-modem,or you can quit this feature. For reasons not fully understood, the X-on X-off protocol is not working at this time, so please do not make that choice. ASCII list will immediately start a scrolling of the file, with no error checking, and X-modem will do an error correcting download to your terminal, if it supports this protocol. In any case, if you have utilized your terminal package properly, you should soon have a copy of the requested file, either in your buffer or on a disk. A machine language or archived file presents you with the last two choices, either X-modem or quit. X-modem here works in exactly the same manner that it does for an ASCII download. The last choice on the menu is to eturn to the BBS. This returns you to the previous menu, from which you can either return to the main menu or leave the BBS. There is one note here, that I feel I must discuss. The software that our board uses has a "safeguard" in it. If the file is not ASCII, then the filename and extension are separated by a "_". On older machines and those using a 32x16 display, this comes through as a "back-arrow". To generate the "_" or underscore, type . To generate the backarrow type . It is not necessary to remember the significance of the this situation, but, it is necessary to remember how to make these emblems. I have not explored any terminal packages as this is definitely beyond the scope of this particular article. There are so many out there, and since they all do things slightly differently, it would be almost impossible. If you are having a problem with your terminal see me, either at a club meeting, or at a Tuesday night SIG meeting, and I'll see what I can do to help you. If you are really stuck, I don't mind taking phone calls most weekday evenings. If there is enough interest, perhaps in the future, I will spend some time writing about the use of some of the more popular terminal packages, and some of their features. June 1989 MUG Notes Page 7 SSSSSS TTTTTTT AAAA RRRRR TTTTTTT U U PPPPPP S T A A R R T U U P P SSSSSS T AAAAAA RRRRR T U U PPPPPP S T A A R R T U U P SSSSSS T A A R R T UUUUUU P An introduction to OS-9 Level II By: J. Daviau This month we are going to try to get rid of all of your 214, 215, 216 and 218 error messages. If you are able to understand and avoid (most of the time!) these error messages then you are well on your way to being very comfortable in the OS-9 enviroment. It is necessary to cover these all together because they are all so closely related to one another and they are also the most common errors for any new user. This may turn into a very long article! We have covered directory structure in previous articles so we will not cover that again here. Instead we will talk about the different kinds of files and directories, the names you are allowed to use for them and we will cover Path Names as well. There are two basic kinds of files on your OS-9 system disk. They are called "Procedure Files" and "Data Files". Procedure files (or procedures) are sometimes referred to as programs, executable modules, shell scripts, commands and executable files. The correct name for any one depends a lot on the internal structure of the procedure, whether or not it has a header, whether or not it is a stand alone procedure or whether it needs to be run in connection with another procedure, etc. Let us, for now, just say that a Procedure File will actually do something. It is like a program or a command. Data Files, on the other hand will not actually do anything by themselves within your system. They are sometimes referred to as data files, text files, patch files, directories, ASCII files, parameter files, documents, help files, etc. The correct name here depends on whether the file is to be used in connection with another procedure, whether it is designed to give assistance to a user, whether or not it was created on a word processor, etc. It is most important to know that a Procedure File is a program that can be executed and it will do something and a Data File is a list of information that will do nothing on it's own. This seems to be a good point to bring up the topic of Execution Directories and Data Directories. If you have used RSDos at all you know that you could type DIR and look at the directory of a disk. There was only one directory to look at on each disk. In OS-9 we have learned that you can have many directories and you can have directories within directories. OS-9 also makes a distinction between where it looks for it's commands and where it looks for it's data. While using DISK Basic if you typed: LOAD"GAME1" then Disk Basic automatically went to disk to get that program. So we could call the entire disk the Data Directory because that's where all the data was kept. But where did it get the disk command LOAD? It got that command from the disk controller. If the disk controller was not plugged in then you would have gotten a syntax error. Without the controller, Basic does not recognize LOAD, but does recognize CLOAD. RS Basic keeps all of its commands in ROM. It's built in, and it's permanent. DISK Basic gets its commands from the controller and they too are permanent within the individual controller. Just as Basic and DISK Basic must get their commands from somewhere, so must OS-9. In OS-9 talk we call this place the Execution Directory. The biggest difference between the two is that in OS-9 you can change the location of this directory and in June 1989 MUG Notes Page 8 Basic and DISK Basic you cannot. The other big difference is that in OS-9 you can add some commands, take away some commands, change the commands, and sometimes you can even loose commands! Anyway, OS-9 will first look in memory for any command that you type. If this command is not found in memory then OS-9 will go to the "Current Execution Directory" to find it. When you first boot OS-9 the current execution directory is "/d0/cmds". This is the directory that all the commands are stored in. So for example, let's say that you have booted OS-9 and you do not have the command "FREE" in memory. (You can see what you have in memory by typing MDIR). You use the "FREE" command to see how much room you have on your disk: free /d0 and find that you don't have enough room to put the file that you want to create on this disk. So you take out your system disk and put in a disk that you believe has more room on it. Just to make sure you do have more room you use the "FREE" command again: free /d0. The drives start humming and all is going well until OS-9 responds with:ERROR 216. This means "Path Name Not Found". It is not trying to tell you that it can't find /d0 but that it can't find the command "FREE". This is because OS-9 looked in memory for the command and when it didn't find it, it then went to its Current Execution Directory to find it but unfortunately you took the disk with the Execution Directory out and didn't tell OS-9. The proper way to tell OS-9 that you want to change the Execution Directory is with the CHX command. The proper syntax for this command is: chx /d0/Directory_Name In this command line you may use /d1 or /d2 or /d3 depending on the number of your drives. The "Directory_Name" is the name of the directory that the commands are in. So now we know that an Execution Directory is the directory that the commands are stored in. Now for the Data Directory. When you type the command "DIR" what you see is a list of what is in the Current Data Directory. This is where OS-9 will go to find any data that you may request. When you boot your system, OS-9's Current Data Directory is set to /d0. Any time you list something, save something, or work with the DATA on disk it will be accessed at the Current Data Directory unless you tell it otherwise. As an example lets say that you want to list the startup file. The command to use would be: list startup OS-9 will first try to find the LIST command. It will look first in memory and if not found it will look in the Current Execution Directory. After it has found LIST it will look for the file called STARTUP. It will look for this file in the Current Data Directory, /d0. If you have changed disks since you booted and haven't told OS-9 about this then you will get an error message again. To tell OS-9 that you are changing the Current Data Directory you use the CHD command. The proper syntax for this is: chd /d0 Again you may use /d1, /d2, etc. So the rules to follow when changing disks are: 1) chx /d?/Directory_Name (chx /d0/cmds) 2) chd /d? (chd /d0) Use whatever drive numbers your system will support. If you wish to insert a disk that has no commands directory on it then you should make sure that you have all the commands loaded into memory that you will need or if you don't have that much memory you will have to switch disks and load and unlink  ´ÿn»Y  (~Ànumbers and some symbols in a file name as long as the name ALWAYS STARTS WITH A LETTER. Here is a list of acceptable characters: All uppercase letters from: A to Z. The underscore character: _ All lowercase letters from: a to z. The period character: . All decimal digits from: 0 to 9. Now that you know about filenames it is a good time to get into Path Names. A pathname is a list of directions for OS-9 to use so it can find the file, procedure or directory that you are looking for. A FULL pathname consists of: /device_name/path_to_the_file/filename. Since examples are generally the best way to demonstrate anything in OS-9 I will use another one here. If you asked OS-9 to get your red sweater you would have to tell it where to find it. For example: Get /my_house/master_bedroom/small_dresser/middle_drawer/red_sweater This is not how you would say it in English but you do say it this way in OS-9! When using a pathname in OS-9 it is very important to put everything in the right order. If you had said: Get /small_dresser/master_bedroom/my_house/middle_drawer/red_sweater then OS-9 would have looked first for the small_dresser and if by chance it did find one it would then have looked for a master_bedroom in the small_dresser. It would not have found one and it would have told you so by displaying a message like OS9:ERROR 216. To find out what this means just type error 216 and then press the ENTER key. The answer is "216 - Path Name Not Found" In other words it couldn't find anything called "small_dresser" or it did find the small_dresser but could not find "master_bedroom" in the small_dresser or it found the master_bedroom in the small_dresser but could not find "my_house" in the master_bedroom, etc. Some where along the way it could not find something that you typed. It could also be that it couldn't find the command "get"! (Anytime that you need to find out where your Current Execution or Data Directory is you should use the commands "pxd" and "pwd" which mean Present Execution Directory and Present Working (data) Directory respectively.) Using a real example, there is a directory file on your system disk called "SYS". In this directory there is a help file called "errmsg". To list this file you would first have to give OS-9 a command to use like LIST. Then you would have to give it a "pathname" like "/d0/sys" and then the "filename" that you want to list, "errmsg". The full command line would look like this: list /d0/sys/errmsg. You may notice that I inserted a "/" between each device/directory/file name. This is so OS-9 can tell where one name stops and another name starts. If there is only one name in the pathname then you need not type any /'s at all. For example: list startup. If you should have to tell OS-9 which disk drive to get the filename from then you would have to use a / as OS-9 expects to see a / before ANY DEVICE NAME you use. This is how it tells that you are referring to a device and not a filename. (Your drives are called /d0, /d1, /d2; your printer is called /p; the screen or display you are using is called /TERM or /w1 or /w2 etc, depending on which window you are using.) And of course if you have to use a device name you would also have to put a / in between the device name and the file name because if you didn't OS-9 would think it was all one name and try to access a device called "d1startup" and there is no such device. June 1989 MUG Notes Page 10 If OS-9 encounters a space it sees that as the end of that particular segment and any information following is a whole new segment. Example: List /d0/my_house/master_bedroom small_dresser/middle_drawer/red_sweater In the above command line OS-9 would see that it had been asked to LIST (/d0/my_house/)master_bedroom. It would error at this point and not even notice the rest because master_bedroom is a directory and you can't list a directory. The error would be 214 or No Permission. This means that you have no permission to list a directory. You would have to use the DIR command instead. The above 2 examples show how you may run into 214 and 216 error messages. Now lets take a look at the 215's. By definition this error means "Bad Path Name". You will encounter these at times if you have not supplied the pathname to a command in the manner that it wants to see it. Example: Rename /d0/my_files/test /d0/my_files/text In the above example it would appear that what we are trying to do is rename the file "test" in the directory called "my_files" on drive zero to "text". The command line itself looks good but the actual command RENAME does not expect to get it's input like that. If we look in our manual in the section called OS-9 Commands, chapter 6, page 84 we will find that the RENAME command expects to get first the pathname leading it to the old file and just the NEW FILE NAME, not the path name to the new file. The proper command line to use would have been: Rename /d0/my_files/test text. If given a command line like the first one OS-9 will respond with an error 215. You will also get similar results if you accidentally try to rename a file on your printer and there are various other ways to get this error. That brings us to Error 218. This one is defined as "File Already Exists". This one is rather self explanatory. If you are using the COPY command when you get this error then you are probably trying to copy a file to a new location where there is already a file with that name. You may also run into this error using the commands SAVE, DSAVE, EDIT, BUILD, COPY, COBBLER, MAKDIR, MERGE, and RENAME. The most confusing one here to run into is with the EDIT command. In some cases you will try to edit your startup file (or some other one) and you will get an error 218 - File Already Exists. So what's wrong? If you use DIR and look at the disk you will notice that there is probably a file called SCRATCH. To understand this it is necessary to explain how EDIT works. When you use EDIT to call the file "startup", for example, it goes out to disk and reads the file called "startup". It then creates a file called "SCRATCH" on the disk and it writes any changes you make to this file. When you exit the EDIT command, it deletes the file called "startup" and renames the file called "SCRATCH" to "startup". If the original file called "startup is being used then OS-9 can not delete it and the file called "SCRATCH" cannot be renamed. (This can happen if you have listed "startup" in another window and paused it.) It will also not be renamed if you do not exit the EDIT command properly (If you exit via the BREAK key or if you use CTRL C). The thing to do here is to delete the file called "startup" and rename "SCRATCH" yourself. That about does it for the 214, 215, 216 and 218 messages. When you do run into these think about changing disks and using the "chx" and "chd" commands properly. Also check out the possibilities of incomplete pathnames, wrong spelling, wrong order in the pathnames, etc. If anyone is having a lot of trouble then try to make it out to an OS-9 SIG meeting and someone will be sure to have time to help you. June 1989 MUG Notes Page 11 PEEKS POKES & EXECS CHECK ROM REVISION................EXEC 41175..................... CIRCLE CENTRE X CO. IN PMODE0-3...PEEK (203)*256+PEEK (204) ]*2.. CIRCLE CENTRE X CO. IN PMODE4.....PEEK (203)*256+PEEK (204)...... CIRCLE CENTRE Y CO. IN PMODE0-3...PEEK (205)*256+PEEK (206) ]*2.. CIRCLE CENTRE Y CO. IN PMODE4.....PEEK (205)*256+PEEK (206)...... CIRCLE RADIUS IN PMODE 0-3........PEEK (207)*256+PEEK (208) ]*2.. CIRCLE RADIUS IN PMODE4...........PEEK (207)*256+PEEK (208)...... CLEAR COCO3 DISPLAY...............POKE974899,16;57404,19;57413,19 CLEAR SCREEN (CLS)................EXEC 43304..................... CLICK--USE GOTO FOR CRICKET SOUND.POKE&HFF21,&H3C:POKE&HFF21,&H34 CLOAD EQUIVALENT..................EXEC 42136..................... CLOADM COMMAND EQUIVALENT.........EXEC 42238..................... CLS EQUIVALENT....................EXEC 43304..................... COCO 2 IF = 126...................PEEK 57797..................... COCO 3 IF = 87....................PEEK 57797..................... COCO 3 MONOCHROME SIGNAL..........POKE 57395,19:57404,19:57413,19 COCO3 COLD START..................POKE 113,0:EXEC 35867.......... COCO3 DISPLAY CLEAR...............POKE974899,16;57404,19;57413,19 COLD START FOR COCO3..............POKE 113,0:EXEC 35867.......... COLD START........................POKE 113,0 [RESET]............ COLD START........................POKE 113,0:EXEC40999........... COLOR BASIC BACK TO E.COLOR BASIC.POKE 298,25:POKE 303,14........ COLOR BASIC FROM E.COLOR BASIC....POKE 298,0:POKE 303,0.......... COLOR SET SELECT..................POKE 65314,3................... COLORPEDE SLOW DOWN...............POKE 7689,0.................... COLORPEDE SPEED UP................POKE 7690,88................... COLORSET 0 IF = 0.................PEEK 193....................... COLORSET 1 IF = 8.................PEEK 193....................... COLORTERM 32K BUFFER..............POKE 36945,126:POKE 36946,208.. COMMA COLUMN WIDTH................PEEK 106....................... COMMA FIELD WIDTH TO PRINTER......POKE 153,XX.................... COMMAND/FUNCTION DISABLE..........POKE 159,0..................... COMPUTER FLAW IF = 0..............PEEK 126....................... CONT STATEMENT NUMBER AFTER BREAK.PEEK (41)*256+PEEK (42)........ COPY COMMAND WILL NEED FEWER SWAPSCLEAR200,3266:POKE 3584,0:NEW.. CSAVE EQUIVALENT..................EXEC 42060..................... CURRENT COMMA COLUMN WIDTH........PEEK 106....................... CURSOR (++) WHEN IN RAM MODE......POKE&HABEE,&H2B:POKE&HABEF,&H2B CURSOR AND INPUT CHAR TO REG. A...EXEC 41393..................... CURSOR FLASHES WAITS FOR KEYSTROKEEXEC 41393..................... CURSOR FLASHING...................POKE 41382,16.................. CURSOR INVISIBLE..................POKE 41385,18:POKE 41386,28.... CURSOR NON-FLASHING...............POKE 41382,0................... CURSOR OFF WITH INKEY$............POKE 42346,193................. CURSOR ON WITH INKEY$.............POKE 42346,177................. CURSOR POSITION (1024-1535).......PEEK (136)*256+PEEK(137)....... CURSOR STOPS FLASHING FOR 3 SEC...POKE 148,0..................... DATA BYTE ADDRESS FOR READ COMMANDPEEK 52, 53.................... DATA LINE NUMBER, CURRENT.........PEEK (49)*256+PEEK (50)........ DELAY PRINTER CARRIAGE RETURN.....POKE 151,XX.................... DIR COMMAND DISABLE...............POKE 383,158................... DIRECTORY OF DISK TO SCREEN.......EXEC 52175..................... DIRECTORY TO PRINTER..............POKE 111,254:DIR0.............. DISABLE KEY...............POKE 41598,255................. DISABLE KEYS.......POKE 41599,255................. June 1989 MUG Notes Page 12 PEEKS POKES & EXECS (contd.) DISABLE ALL FUNCTIONS AND COMMANDSPOKE 159,0..................... DISABLE ALL KEYS..................POKE 359,255................... DISABLE BREAK KEY.................CLEAR XX:POKE 248,50:249,98.... DISABLE BREAK KEY (cont)..........POKE 250,28:251,175:252,126.... DISABLE BREAK KEY (cont)..........POKE 253,173:254,165:410,57.... DISABLE BREAK KEY (cont)..........POKE 411,0:412,248:410,126..... DISABLE BREAK KEY (cont)..........for k= 1 to 2: next............ DISABLE DIR COMMAND...............POKE 383,158................... DISABLE DISK AND E.C.BASIC........POKE 306,178:POKE 307,119...... DISABLE EXEC COMMAND..............POKE 32454,68.................. DISABLE EXTENDED COLOR BASIC......POKE 298,0:POKE 303,0.......... DISABLE LIST COMMAND..............POKE 32392,68.................. DISABLE LIST COMMAND..............POKE 383,158................... DISABLE LIST COMMAND..............POKE 384,PEEK114:POKE385PEEK115 DISABLE POKE COMMAND..............POKE 32384,68.................. DISABLE PRINT.....................POKE 359,255................... DISABLE ROM-PAC AUTOSTART.........POKE 65315,54.................. DISK AND E.C.BASIC DISABLE........POKE 306,178:POKE 307,119...... DISK BASIC PRINTER TRACER OFF.....POKE 360,203:POKE361,74........ DISK BASIC SIGN ON MESSAGE........EXEC 49152..................... DISK DIRECTORY TO PRINTER.........POKE 111,254:DIR0.............. DISK DIRECTORY TO SCREEN..........EXEC 52175..................... DISK DIRECTORY TO SCREEN..........POKE 111,0:DIR................. DISK DRIVE 0 (DOS 1.0)............POKE 55210,1 (64K)............. DISK DRIVE 0 (DOS 1.1) ...........POKE 55453,1 (64K)............. DISK DRIVE 0 ON...................POKE 65344,1................... DISK DRIVE 1 (DOS 1.0) w DR 0.....POKE 55211,65 (64K)............ DISK DRIVE 1 (DOS 1.0)............POKE 55211,2 (64K)............. DISK DRIVE 1 (DOS 1.1) DS w DR 0..POKE 55454,65 (64K)............ DISK DRIVE 1 (DOS 1.1)............POKE 55454,2 (64K)............. DISK DRIVE 1 ON...................POKE 65344,2................... DISK DRIVE 2 (DOS 1.0) DS w DR 0..POKE 55212,65 (64K)............ DISK DRIVE 2 (DOS 1.0) DS w DR 1..POKE 55212,66 (64K)............ DISK DRIVE 2 (DOS 1.0) SS.........POKE 55212,4 (64K)............. DISK DRIVE 2 (DOS 1.1) DS w DR 0..POKE 55455,65 (64K)............ DISK DRIVE 2 (DOS 1.1) DS w DR 1..POKE 55455,66 (64K)............ DISK DRIVE 2 (DOS 1.1) SS.........POKE 55455,4 (64K)............. DISK DRIVE 2 ON...................POKE 65344,12.................. DISK DRIVE 3 (DOS 1.0) DS w DR 1..POKE 55213,66 (64K)............ DISK DRIVE 3 (DOS 1.0) DS w DR 2..POKE 55213,68 (64K)............ DISK DRIVE 3 (DOS 1.0) SS.........POKE 55213,64 (64K)............ DISK DRIVE 3 (DOS 1.1) DS w DR 1..POKE 55456,66 (64K)............ DISK DRIVE 3 (DOS 1.1) DS w DR 2..POKE 55456,68 (64K)............ DISK DRIVE 3 (DOS 1.1) SS.........POKE 55456,64 (64K)............ DISK DRIVE 3 ON...................POKE 65344,44.................. DISK DRIVE MOTOR INSTANT STOP.....POKE 65344,0................... DISK DRIVE MOTOR ON...............POKE 65344,8................... DISK DRIVE NUMBER.................PEEK 235....................... DISK DRIVE SECTOR NUMBER..........PEEK 237....................... DISK DRIVE TRACK NUMBER...........PEEK 236....................... DISK FILE EXTENSION OF LAST FILE..PEEK (2388-2391)............... DISK FILE LAST LOADED.............PEEK (2380-2387)............... DISK I/O ERROR CODES (128=I/O)....PEEK 240....................... DISK SECTOR NUMBER................PEEK 65354..................... DISK STATUS (I/O ERROR IF = 32)...PEEK 65352..................... June 1989 Mug Notes Page 13 The Other Side of MidNight A Guided Tour of the MidNight Remote Data System Second in a series of MidNight Madness Reports by Gerry Thomas Registered users of "MidNight" may enter either their 'UserName' (which may be a 'handle' or 'alias' or 'nickname') or their REAL FULL NAME, as recorded in their application file. An acknowledged registered user will proceed and be admitted to the system, and I will describe what happens shortly. I will now describe what happens to a 'guest' at this point. A 'guest' user has very limited access to the system, for security reasons. Your application will need to be verified (usually within 24 hours) before you can gain greater access. Typing 'guest' at the 'UserName' prompt, will bring up this menu : New User -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- New User + MidNight Remote Data Systems + +-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+ + + + A - MidNight Remote Data Systems Access Application Form + + + + @ - Chat with SysOp ? - Information * - Exit System + + + + + + As an UnVerified NewUser, this is the ONLY menu you will see + + Verification and access approval may take 24 hours + + + New User -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- New User Looking at the menu, I shall describe the various options shown. Each 'guest' will see this menu, and will not be allowed any further into the system until or unless an application is first filled out. Take your time to check out the Information that is available from this menu, by pressing the question mark [?]. That option will send you into the HELP area of the system where you will see three files listed. Be sure to read each file by typing the respective titles. It would be a good idea to do a 'buffer dump' and retain these messages for future reference. These files will explain a little more about MidNight RDS and what is and is not available, as well as help in filling out the actual application form. If you have any further questions and wish to speak with the SysOp, then press option [@] - the 'at' key. If the SysOp is available, you will be notified on screen. If however, he is not available, you will be asked to leave him 'mail' and the mail system is automatically started for you. Please leave your questions, if you are having any problems. June 1989 Mug Notes Page 14 The actual application is really straight forward, and you should have no problem as everything is self-prompting. You will be asked for your real name,address, phone number, and computer type. Next you are asked to pick a 'UserName'. This is a name that the system will know you by and must be between 3 and 8 alpha characters long, with no numbers or spaces or other punctuation. Should you happen to pick a 'UserName' already in use, the system will advise you of such and ask you to pick another. Please pick something unique, appropriate, and polite - remember, you will have to live with it. Finally, you will be prompted for a 'password'. This can be any combination of numbers or letters (upper or lower case, or mixed), but no punctuation. You will be typing your password 'blind' - you won't see it on-screen, so be careful. You will be asked to type it in a second time, again 'blind', so the system knows that you know what you entered. Make sure you remember your password, because it is encoded and even the SysOp cannot de-code it. Everytime you log-in and give your password you will be doing it 'blind' and it is very picky, so if you mix upper and lower case lettering make sure you enter it exactly as it is recorded by the system or it won't let you in (for your own protection, as well as the sytems). Once the application is complete, you will be allowed to log-in, but the system is actually testing the integrity of your file for accuracy. You will see a different, and brief, menu. This menu is only for unvalidated users. You are recognized by the system as a user, but also that you are not yet validated by the SysOp. While you will be allowed to read mail from the SysOp or anyone else on the system who knows that you are a user -- you can only send mail to the SysOp until you are validated. (You can answer mail from another user, you just are not able to originate mail to anyone other that the SysOp). The 'star' symbol [*] is used at all menu levels throughout the system, to exit a given menu, or to leave the system entirely. The 'at' symbol [@] is used at all menu levels throughout the system, to 'page' the SysOp for an on-line 'chat'. The next article will deal with what happens when a registered user logs in to MidNight Remote Data Systems. M M U U RRRRR DDDD EEEEE RRRRR AAA TTTTT MM MM U U R R D D E R R A A T M M M M U U R R D D E R R A A T M M M U U RRRRR D D EEEE RRRRR AAAAAAA T M M U U R R D D E R R A A T M M U U R R D D E R R A A T M M UUUU R R DDDD EEEEE R R A A T M M III DDDDD N N III GGGGG H N TTTTT MM MM I D D NN N I G G H H T M M M M I D D N N N I G H H T M M M I D D N N N I G GGG HHHHHHH T M M I D D N N N I G G H H T M M I D D N NN I G G H H T M M III DDDDD N N III GGGGG H H T Coming This Summer To A Remote Data System Near You ....... June 1989 MUG Notes Page 15 An "interesting" Discussion with Rick Adams, Programmer at RAINBOWfest '89 Chicago (by Gerry Thomas) Rick Adams, a CoCo programmer from California, is the creator of some of the CoCo's best programs, including "Temple of ROM", "Shanghai", and the terminal packages "RickyTerm" and "DelphiTerm". At the RAINBOWfest (April 15,1989) "Community Breakfast", Rick was the "Main Speaker". In the course of creating the terminal package "RickyTerm", Rick displays a rather "interesting" sense of humour. Don Hutchison, of "the Rainbow" and until recently, DataBase Manager of the Delphi CoCo Sig, spent some time looking closely at the programming code in "RickyTerm" and discovered an "interesting" text string. The actual text string in question, reads "****** The CIA terrorist NCA uses encrypted Iranian drugs as ammunition for its crack AK-47 SAM MIG encoded NRO DES Russian socialist propaganda Tempest missile cocaine assassination conspiracies ******". In his own words, Rick now explains what the text is all about. The string is called "NSA Food". "NSA" is this Government Agency, whose business it is to find out everything they can about everything they need to know about. One of the things they like to do, is to park their listening posts next to microwave towers, where a lot of computer traffic goes across, and they like to listen in and see if there is anything "interesting". Now, anything "interesting", usually means things like, people plotting the assassination of the President, or the overthrow of the United States Government, or cracking some CIA code, or smuggling weapons, or drugs or something like that. They don't have the people in the world, to listen to all the traffic that goes over the microwave towers, all the computers, and all the telephone conversations, etc., so they have computers sort through it all, and the computers look constantly for something that looks "interesting". When they find something "interesting", the tapes start rolling and they get a little snatch of it and they see what it looks like. Now, how they know what something "interesting" is, among other things, they have a list of 'keywords' of "interesting" things - like, NSA and cryptographer, and AK-47, assassination, etc. So there are various troublemaking, weird or strange people who like to keep them happy by inserting a lot of "interesting" things, so on a local BBS, you might say "Hi Joe, how's it going. Hey listen, I really wanna sell you that used car, AK-47, cryptographer, cocaine, assassination". And you know, someplace, somewhere, some Government man is coming in and unlocking the computers, and looking over the data and ..... Courtesy MidNight R.D.S. June 1989 MUG Notes Page 16 This article is from the April 13, 1989 issue of Computing Canada. Access, copyright laws can trip high tech firms OTTAWA - Software developers beware. Access to information and copyright laws can trip up unwary businesses, according to lawyers with the Ogilvy, Renault law firm. High tech companies ignorant of the implications of these laws risk loosing their competitive position, their reputation and their markets, warned lawyers at a recent Ottawa seminar on legal issues affecting high tech companies, sponsored by the Canadian Advanced Technology Association. However, they added, a basic understanding of legal issues can help companies gain on their rivals Take access to information laws, for example. Originally enacted to promote open government, in effect they legalize industrial espionage by providing a means of obtaining third party authored documents in government hands. "More than 80 per cent of access to information requests are for information on businesses and government to government programs", said Ottawa lawyer Milos Barutciski. Any Canadian can use the laws which exist both federally and provincially, except in Prince Edward Island, British Columbia, Alberta, Saskatchewan and the Northwest Territories he said. Foreign competitors can also get business information provided a Canadian employee makes the request. "As trade barriers come down between Canada and the United States, you can be sure U.S. corporations will make aggressive use of our laws." Political correspondence is the main target of information seekers, said Barutciski. "Consider a letter your president may write to a minister involved in development or project licensing. The letter spells out various commitments in good faith, which your company ultimately can't live up to. This may prove very embarrassing if made public later on." "This kind of information could be used by other companies competing against you for future financial grants, projects or licences." To prevent this, think defensively, said Barutciski. "Ask yourself, 'Am I filing more than I need to file?'" He said companies have the legal right to keep some information hidden. Government officials won't release documents containing confidential financial details, trade secrets, information concerning ongoing negotiations or information that might result in financial hardship, if revealed. But the onus is on the company seeking to prevent the disclosure to prove disclosure may harm it, he said. Only certain documents, like information filed under the Income Tax Act, are automatically exempt. "You have to justify keeping some documents secret," said Barutciski. "Don't be lackadaisical when told about an access to information request. It's not good enough to say 'This stuff is trade secrets', only when you're embarrassed." June 1989 MUG Notes Page 17 Corporations face better odds in blocking disclosure if they adopt a cooperative approach, he added. "Blasting the poor government official who processes the request is a common but regrettable reaction. You want to get the government departments on side." Try using the courts to keep documents secret only when all else fails. And don't forget to use the access to information laws for your own purposes. Besides making life difficult for competitors, use the law to obtain reports and studies concerning long range government plans advised Barutciski. Recent changes to the Canadian Copyright Act provide another means of intelligence gathering. J. Nelson Landry, a Montreal partner with Ogilvy, Renault, said the potential for reverse engineering rivals products is much more open than it used to be." "There used to be a judicial trend ruling that copying an unpatented object meant you were indirectly copying the drawings specifying the object and therefore were violating the copyright." Landry also said software developers should apply for patent protection on new processes even though they already own the relevant software copyrights. Keeping secrets begins inhouse, he added. "Firms should review how they control the reproduction and circulation of documents so that employees only gain access to confidential information and trade secrets on a need-to-know basis." And departing employees should be asked to sign a form stating they're surrendering extra copies of documents they once worked on, he said. "This is important to put in a contract". I just thought that some of you may find this interesting! ... Stan. June 1989 MUG Notes Page 18 Understanding Error Messages Part 2 By Len Fluhrer (c) April 22, 1989 Welcome to part two of understanding error messages, in this section we are going to tackle the BS error as brought up in our last general meeting. BS alias Bad Subscript Error is one of the most common errors encountered by Basic programmers however, it is very easy to correct once you know how. Question: What are subscripts, and how do I know if they are Bad or not? Subscript: "Things related to or, being a character printed or written directly below one another., being part of a mathematical subindex." 1 The New Webster's Dictionary ". The important thing to remember about the above definition is that we are talking about a list of related items that are in order in the computers memory one right after the other, and these items are subindexed. So what is subindexed, well you have used subindexing almost all of your life, here are a few examples of subscripted (subindexed) lists. Things we need from the store 1. Milk 2. Sugar 3. Ice Cream 4. Butter 5. Bread Robby Robots Part List 1. 4 wheels 2. 2 arms 3. 12 lights 4. A head 5. Body Assembly 6. Circuit Board 10 Speed Bike Assembly List 1. Sprocket 2. Chain 3. Handles 4. Seat 5. Front wheel Assembly 6. Back Wheel Assembly 7. Two tires 8. Handle Bars 9. 5 Bolts 10. Chain Guard June 1989 MUG Notes Page 19 Monthly Sales In Millions for TC Wigget Co Month Dollars 1. Jan 3.2 2. Feb 5.6 3. Mar 8.9 4. Apr 8.9 5. May 7.8 6. Jun 6.7 7. Jul 5.0 8. Aug 4.5 9. Sep 4.0 10.Oct 3.8 11.Nov 3.5 12.Dec 3.2 Note that the numbers down the left hand side of these lists are called subscripts and follow the definition above. One of the major advantages of computers is its ability to handle large lists without forgetting anything however, there is one draw back. The problem is that computers require large amounts of memory to store these lists, memory that is just not available to waste in Basic, so Basic only reserves 10 spaces in memory for dimensional items on power up to conserve memory. If you wish to store larger list(s) you must DIMENSION THE ARRAY(S) for the larger list(s). Question: What Does DIMENSION THE ARRAY mean? Dimension: Is the maximum size of the list you wish to store in memory, and an array is a "meaningful pattern of items in memory". This is the same as saying a list stored in memory. So, if we look at our examples above we can tell how large we need for each array or list. Therefore, the dimension of the store list is 5, Robot Part List is 6, 10 Speed Bike Assemble has 10, and the Sales List has 12. To dimension these lists we must uses the DIM statement in Basic and Basic09. In RS Basic you must always place the DIM after any CLEAR statements in your program or the DIM will be disregarded. Actually what will happen is that Basic will Dimension the array for you but then clear it back to its default value when it reads the CLEAR command. Examples: June 1989 MUG Notes Page 20 10 REM This is the start of store list program 20 REM By Len Fluhrer 3rd. 25 REM RESERVE STRING SPACE 30 CLEAR 2000 40 REM DIMENSION 50 DIM ST$(5) 55 REM ST= NAME OF THE LIST AND 5 SUBSCRIPTED ITEMS IN THE LIST 57 REM SB= SUBSCRIPT COUNT 60 FOR SB=1 TO 5 70 READ ST$(SB) 80 NEXT SB 90 REM PRINT LIST FROM MEMORY 98 FOR SB=1 TO 5 100 PRINT SB;:PRINT ST$(SB) 110 NEXT SB 200 DATA Milk, Sugar, Ice Cream, Butter, Bread 10 REM This is the start of Robot list program 20 REM By Len Fluhrer 3rd. 30 REM RESERVE STRING SPACE 35 CLEAR 1000 40 REM DIMENSION 50 DIM RB$(6) 60 REM RB= NAME OF THE LIST AND 6 SUBSCRIPTED ITEMS 70 REM SB= SUBSCRIPT COUNT 80 FOR SB=1 TO 6 90 READ RB$(SB) 100 NEXT SB 110 REM PRINT LIST OF PARTS FROM MEMORY 120 FOR SB=1 TO 6 130 PRINT SB;". ";RB$(SB) 140 NEXT SB 200 DATA 4 wheels, 2 arms, 12 lights, A head, Body Assembly, Circuit Board 10 REM This is the start of the 10 speed assembly list 20 REM By Len Fluhrer 3rd. 30 REM RESERVE STRING SPACE 40 CLEAR 500 50 REM DIMENSION 60 DIM SP$(10) 70 REM SP= NAME OF THE LIST AND 10 SUBSCRIPTED ITEMS TOTAL 80 REM SB= SUBSCRIPT COUNT 90 FOR SB=1 TO 10 100 READ SP$(SB) 110 NEXT SB June 1989 MUG Notes Page 21 10 REM This is the Monthly Sales Program for TC Wigget Co. 20 DIM MN$(I2),DL(12) 30 REM MN= MONTH OF YEAR 40 REM DL= DOLLARS IN MILLIONS 50 REM ID= INDEX NUMBER IE SUBSCRIPT COUNT 60 FOR ID= 1 TO 12 70 READ MN$(ID) 80 READ DL(ID) 90 NEXT ID 100 REM PRINT REPORT 110 PRINT "Monthly Sales in Millions for TC Wigget Co." 120 PRINT 125 PRINT " Month Dollars" 130 FOR ID= 1 TO 12 140 PRINT ID;". ";MN$(ID);" ";DL(ID) 150 NEXT ID 200 DATA Jan,3.2,Feb,5.6,Mar,8.9,Apr,8.9,May,7.8,Jun,6.7 210 DATA Jul,5.0,Aug,4.5,Sep,4.0,Oct,3.8,Nov,3.5,Dec,3.2 Note: To BASIC09 users your programs will look exactly the same as Basic programs above with the following exceptions 1. replace the variables with more meaningful names and remember to initials and clear all variables before using them 2. All string information in DATA statements must be enclosed in quotes. 3. You must define all variables with the proper type (Integer, Byte, String, or Boolean). BASIC09 Example REM This is a BASIC09 Program it will not work under standard RS Basic REM By Len Fluhrer 3rd. REM Shopping List Program REM This program will print up to 100 items for a shopping list. REM The last data item must be "END". Basic uses moving up to Basic09 take special note that you have to put "" around items in Data statements or an error will result. REM ********************* REM Initialize REM ********************* DIM ITEM(100):string[25] REM ALLOWS A LIST CALLED ITEM WITH 100 INDIVIDUAL ITEMS WITH REM A STRING LENGTH MAX. OF 25 CHARACTERS IN LENGTH. DIM SUBSCRIPT:integer DIM MOREtoPROCESS:boolean DIM CTR:INTEGER REM ********************* REM Set up REM ********************* FOR CTR:= 1 to 100 ITEM(CTR):="" NEXT CTR CTR:=1 SUBSCRIPT:=1 MOREtoPROCESS:="Y" June 1989 MUG Notes Page 22 REM ********************* REM PROGRAM STARTS HERE REM ********************* WHILE MOREtoPROCESS DO READ ITEM(SUBSCRIPT) IF ITEM(SUBSCRIPT)="END" THEN MOREtoPROCESS= "N" ELSE MOREtoPROCESS="Y" ENDIF ENDWHILE PRINT "Things we need from the store" PRINT FOR CTR:= 1 TO ITEM(SUBSCRIPT-1) PRINT CTR;". ";ITEM(SUBSCRIPT) NEXT CTR END DATA "Milk","Butter","Sugar","Tea",Coffee","Ice Cream","Bread", "French Fries","END" Beyond The 1ST Dimension So far we have dealt with items in lists of single dimension or one size but, you can apply all the rules of one dimension to 2, 3, or more dimensions. Two dimensions have two separate list values one for the x axis, and one set for y axis. Three dimensions are used primarily in 3D graphics, robot or rocket guidance systems and business demigraphics, they have x, y, and z axis. If you uses more than 3 Dimensions you have entered the realm of COMPLEX ALGEBRA, these Dimensions can not be shown graphically. I only mention the existence of more then 3 dimension for the sake of completeness. Please try to keep all your dimensions to 1,2, or 3D as they can all be visually shown and thus easier to understand. You may have heard of the Power of Spreadsheet Programs like VIP. Spreadsheets or CALC programs all rely on two dimensional arrays. Example ...A...B...C...D...E...F...G...H...I...J...K...L...M...N...O. 1. 2. 3. 4. 5. 6. 7. The letters across the top are on the x axis while the numbers down the side are on the y axis. The spreadsheet program converts the letters into the numerical values offset form 1. To put that into English it makes A=1 B=2 C=3 and so on, So that Z= 26 and AA=27. You can create your own spreadsheet in Basic but, remember the larger the Dim the more memory you will need and the slower the program will run. June 1989 MUG Notes Page 23 If this spreadsheet was written in Basic you would need to have a Dim statement like DIM VV$(26,26) this would set up your spreadsheet for a maximum of 26 columns labelled A to Z and 26 rows numbered 1-26. A1 is at position x axis = 1 y axis= 1 so to put information in that cell you need to goto VV$(1,1), Cell C5 is the same as VV$(3,5) and last cell in the spreadsheet is VV$(26,26). If you try to locate a cell outside the spreadsheet say position vv$(28,28) you will get the BS error unless the program traps the error. Example of Error Trapping: COCO 1, 2 OR MC 10 1000 IF X<1 OR X>26 THEN ?@0,"INVALID POSITION RE-ENTER" ELSE IF Y<1 OR Y>26 THEN ?@0,"INVALID POSITION RE-ENTER" COCO 3, 40 OR 80 COLUMN SCREEN 1000 IF X<1 OR X>26 THEN LOCATE 0,0:?"INVALID POSITION RE-ENTER" ELSE IF Y<1 OR Y>26 LOCATE 0,0:?"INVALID POSITION RE-ENTER" BASIC09 PROCEDURE SPREADSHEET IF X<1 OR X>26 THEN RUN LOCATE ELSE IF Y<1 OR Y>26 THEN RUN LOCATE ENDIF PROCEDURE LOCATE PARAM COL,ROW:INTEGER PRINT CHR$(2);CHR$(COL+32);CHR$(ROW+32); END If you put error traps in all your programs you can reduce the chances of getting error messages in your programs. While it is almost impossible to see all errors ahead of time error traps do stop a fair amount of human errors. Any program that uses keyboard or joystick entry should have extensive error traps included in the program. The process is known professionally as reliability checks. It was mentioned at our last meeting that that a fix for the BS error was to increase the Dim statement; while this is true I would not take this advice until I was sure that the information was a valid position within the array. For example arrays are used in computerized card games, a legal deck of cards has 52 cards and thus will be dimensioned as DIM CD(52) or CD(4,13) (- 4 suits of 13 card =52 cards). If you encounter a BS error in the card game you could follow the advice at the meeting and raise the Dim to DIM CD(53) - this may stop the BS error but, you will be playing with a strange deck of cards. June 1989 MUG Notes Page 24 And finally here are a couple of hints for solving BS errors in RS Basic. 1. list the line in with the BS error has occurred, look for any variables that have ( ) in them, if there is a variable with in the braces type ? variable to find out its value and check the start of the program to see if this number is greater than what is called for in the DIM statement. Do the same if its a number. 2. Check if the value you have is reasonable for the program you are using ie. card games should have no more than 52 or (4,1 3). 3. Check back through your program for any mention of the variable with ( ) that is larger than the DIM value. 4. Make sure you uses the CLEAR statement before any DIM as they will be reset to the default if the CLEAR is after a DIM. 5. Have error traps included in your program beforehand to trap errors made due to typing and improper entry. If the error gets past the traps check that you are trapping the right information. If you have any questions you can reach me on the BBS or any of our General Meetings, until next month. L.G. Fluhrer 3rd. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * T H E N E X T M E E T I N G O F * * * * _____ _____ ____ ____ ___________ * * / | / | | | | | | _____ \ * * / |/ | | | | | | | \__\ * * / /| /| | | | | | | | * * / / | / | | | | | | | | * * / / | / | | | | | | | | ____ * * / / | / | | | | | | | | |__ \ * * / / | / | | \ \_______| | | |_________\ \ * * |___| |/ |___| \____________| |________________\ * * * * Will Be Held On July 11, 1989 * * 6:30pm to 9:00pm * * London Central Public Library * * Lower Level * * Room #3 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * June 1989 MUG Notes Page 25 Tech Tips by W. Morrison Last month, a fair number of our club members, myself included, attended the 1989 Chicago Rainbowfest. One of the highlights of the weekend had to be having the chance to talk to people like Kevin Darling and Marty Goodman on a "one to one" basis. It was during the course of one of these conversations that I was able to confirm that a "hack" that I had heard about did indeed work. This month I am going to pass this one on to you, and, hopefully, scoop the Rainbow at the same time. Under OS-9 (and perhaps other conditions) there has been one aggravating problem that, until now has defied correction. When using most terminal packages, there has been a problem with random locking up of the window in which the terminal was running. The use of higher baud rates just served to make the problem worse and believe me, there is nothing more irritating than having your system lock up three quarters of the way through a 60K download! We had all heard rumours about various "cures" for this condition, but until recently, nothing that any of us had tried seemed to work. Then Gerry Thomas picked up the thread of an on-going conversation on Delphi referring to a cure. He chased down the entire thread and figured out exactly what was involved. It did not take too long for him to pass the information along to me, and for the last three months or so we have both been running our computers with this fix in place. Please understand that, with a problem like this one, only extensive testing can verify whether or not the modification works. Therefore, until we had some answers, neither of us were too eager to pass this one on, in case it proved to be unsuccessful. At the Rainbowfest, I was able to confirm with Kevin Darling that this "fix" does indeed work, and now it is time to put it in print. One interesting side note, in discussing this with Marty Goodman, who was not aware of this repair, it was agreed that this information should be published in the Rainbow as soon as possible as it is that important. With any luck, considering publishers' lead time, this article should appear before Marty Goodman's does. If this does happen MUG Notes will have scooped the Rainbow! Enough about the background, on with the modification. Needless to say, this is of interest to OS-9 users the most BUT just because the rest of you have no use for it to-day, do not dispose of this one as, it is very likely that somewhere down the road, you too will need this information. Again this time, the parts list is quite small; 1-6 inch piece of insulated fine gauge wire 1-5 inch piece of insulated fine gauge wire 1-1N34A germanium diode (or equivalent). There are two steps to this one. You must modify your Multi Pack Interface, and your CoCo 3. We will start with the Multi Pack. After unplugging and unhooking both your CoCo and the MPI, you will have to open the MPI. Next locate and remove the screws securing the motherboard to the case. Now carefully turn the motherboard over. Remove the shiny silver shield by removing all the little spring clips and put the shield aside. Now locate where pin number 8 on sockets one and four would be soldered to the motherboard and bridge June 1989 MUG Notes Page 26 them by soldering the six inch piece of wire to them. This completes the changes to the Multi Pack. Re-assemble it being careful not to dislodge the slot selector switch knob on the front cover and part one is complete. As a guide to assist you, I will describe where pin 8 will be found on both sockets. With the mother board turned over, determine where sockets one and four should be. On the back side there will be thirty four connections or solder pads under each. With the board upside down, and assuming that you have not rotated the board sideways, the lands for each socket should look like the following; +-------------------------------------------+ | o o o o o o o o o o o o o X o o o | | o o o o o o o o o o o o o o o o o | | | +-------------------------------------------+ Note however, that I have marked the fourth land from the right on the top row with an "X". That is the land for pin 8. Join the pin 8 from slot one to the pin 8 from slot four. The fix to the computer is more complex, but not by much. Remove the case to the CoCo and undo the screws holding its motherboard in place. Also, like before, remove the shiny shield by removing the spring clips and unplug the power connector located in the back corner beside the power transformer. Turn the board over and look for the thirty four solder pads under the expansion port plug. When you have found these, turn the motherboard so that these solder pads face toward you. This time, pin 8 will be on the bottom row, fourth from the left. See the diagram below. +-------------------------------------------+ | o o o o o o o o o o o o o o o o o | | o o o X o o o o o o o o o o o o o | +-------------------------------------------+ Connect the five inch piece of wire to this solder pad and route it to the other side of the motherboard by the back of it. Now solder the diode to the piece of wire, after trimming its leads to about one-half inch on each end, so that the stripe on it is facing the piece of wire. Lastly, solder the other lead to the lead on resistor R2 which is closest to the front of the CoCo. R2, by the way is right in front of the reset button, along with about three other resistors. Now replace everything, and when you are done, the lockup problem should be a thing of the past. Just for your information, StG Computers was selling a commercial version of this fix at Rainbowfest for five dollars. If you follow these instructions, you will accomplish the same thing for under fifty cents. This is not a difficult modification at all. If you run into problems with it, I will be happy to talk to you about it, either at a club meeting, SIG meeting, or on the phone most weekday evenings. It sure went a long way towards curing the bulk of my OS-9 aggravation!