=============================================================================== Volume 1 Issue 3 May 1989 ------------------------------------------------------------------------------- _____ _____ ____ ____ ___________ / | / | | | | | | _____ \ / |/ | | | | | | | \__\ / /| /| | | | | | | | / / | / | | | | | | | | / / | / | | | | | | | | ____ / / | / | | | | | | | | |__ \ / / | / | | \ \_______| | | |_________\ \ |___| |/ |___| \____________| |________________\ __ __ ____ ______ _____ ____ | \ || / __ \ --,,-- |,--- //--\\ ||\\ || || || || || \\__ || \\ || || || || |,== ---\\ || \\|| ||__|| || ||___ ___// || \_| \____/ || |____ ___/ The Official Newsletter of: The Motorola Users Group of London =============================================================================== =============================================================================== Spring has Sprung =============================================================================== May 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 APPOINTED POSITIONS MEMBERSHIP CO-ORDINATOR Judy Daviau 500 Osgoode Dr. #122 London N6E 2G9 668-7277 NEWSLETTER EDITOR Sheila Smith 11 Bridle Path . London 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 Oasgoode 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. May 1989 MUG Notes Page 2 Table of Contents Page Item ==== ==== 1.....................List of Officers and Mandate 2 ................... Table of Contents 3.....................General Meeting Minutes (April 89) 4.....................Executive Meeting Minutes(April 89) 5.....................Telecom Comments 6.....................Startup 8.....................Peeks and Pokes 10....................Timebomb 11....................Reviewing Dynastar 17....................A Logical Beginning 20....................Tech Tips 21....................Corporate Structure 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 Bob and Peggy Griffin's (78 Beechmount Cres.) starting at 7:00 P.M. The advanced SIG meets at Judy Daviau's (122-500 Osgoode Dr.) 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! May 1989 MUG Notes Page 3 General Meeting of The Motorola Users Group April 11, 1989 Secretary's Report The general meeting for April was called to order at 6:50pm by Stan Bischop. Sheila called on various members to explain a bit about the articles they contributed to the newsletter. A vote was taken to decide whether or not to pay Diane for the disks that the P.D. Library is stored on as they were her own personal disks and all were in favor of paying her now. Sheila is to write her a cheque for $79.90. Stan showed and explained the insides of a Coco 1 & 3. Many of the members were very interested and we have gotten a lot of good feedback about such demonstartions. Gerry Davis showed some of the programs on P.D. Disks 7 & 8. He showed a program that is a 4 part tutorial on logic operators and basic programming but unfortunately part 4 is missing. Maybe some nice member will volunteer to write a part 4 for us! There was a very lengthy discussion about just what devices will wipe a disk or a tape out. Any electric motors, televisions, telephones etc were named as the culprits. Monitors have no RF input (radio frequency) so they won't affect a disk but the monitor screen will. Gerry Davis asked for questions about terminology. Some of the questions were about the difference between serial and parallel interfaces, dimensioning arrays, logical AND(ing) and Print Using. The meeting adjourned at 8:50 and quite a few of the members went to The Medallion restaurant on Dundas street for coffee and chat afterward. **************************************************** * * * The Next Meeting of the * * * * Motorola Users Group of London * * * * Will be Tuesday June 13 1989 * * * * at the London Public Library * * starting at 6:30 P.M. * * * **************************************************** May 1989 MUG Notes Page 4 Motorola Users Group Executive Meeting April 24, 1989 Secretary's Report The meeting was held at 122-500 Osgoode Drive and was called to order by Stan Bischop at 8:30pm. Those present were: Stan Bischop - President Gerry Davis - Vice President Sheila Smith - Treasurer Judy Daviau - Secretary Wayne Morrison - Electronic System's Manager Gerry Thomas - Public Relations 1) It was decided that May's general meeting will be about printers. We hope to have on hand a few different kinds of printers and Gerry Davis will have on hand some P.D. programs that deal with printer I/O. Gerry will talk a bit about how to get your printer running and Stan will demonstrate preventative maintenance for your printer. 2) It was decided to demo the BBS in July as that is Rainbow's anniversary issue and they have no other topic for that issue. 3) Sheila gave a financial report and after reserving some money for future expences (BBS, room rent, etc.) we have abo ut $300.00 to the good. Gerry Davis is going to look into getting a good price on an 80 track drive for the BBS. 4) Changes will be made to the executive page in the newsletter. Wayne will do these changes. They relate to improper addresses, etc. 5) It was decided to hold the OS-9 SIG meetings at my place (122-500 Osgoode Dr.) for the month of May as well as April as Sheila is moving and her place will not be ready until June. 6) Gerry Thomas is going to look into getting some information on how NASA uses Color Computers. He hopes to be able to get a VHS movie or at least some documentation. He will let us know when he receives an answer. 7) It was decided to reduce the membership rates in three month chunks. If you join in: March ----------------- $40.00 April ----------------- $40.00 May ------------------- $40.00 June ------------------ $30.00 July ------------------ $30.00 August ---------------- $30.00 September ------------- $20.00 October --------------- $20.00 November -------------- $20.00 December -------------- $15.00 plus $40.00 for the new year January --------------- $15.00 plus $40.00 for the new year February -------------- $15.00 plus $40.00 for the new year So if you join after November it will cost you $55.00 and this will cover the rest of the current year plus a full membership for the comming year. It was also decided not to give assoiate memberships. 8) Sheila is to look into getting some information about purchasing some P.D. from Color America. She will try to find out how much it costs and shipping, etc. 9) Sheila will also contact Rainbow magazine to get the papers that we need to get recognition in the magazine. The meeting was adjourned at 10:10pm. May 1989 MUG Notes Page 5 Telecom Comments by W. Morrison This month we will pick up where we left off last time, and forge ahead to have a look at the rest of the system. Last time we looked at the main menu and the message areas and now we will look at how one sends a message, and how the files area works. To leave a message, you must first go to the message menu of the message base where you want to leave one. Then select for enter message. You will then be given the "to:" prompt. If your message is to someone enter his or her name, or if it is to no one specifically, type "All". Then you will be prompted with "subject:". Put in a title and press . The system will then repeat all this back to you to verify that all is O.K. Press "Y" for yes and you will receive a new set of prompts which are, in fact, the instructions for writing your message. The system will allow 24 lines of 72 characters per message. At any time you may correct or change your current line of text by using the left arrow to back space and erase what you have written. Continue until you are done, and then when you are done the last line of your message, press and you will be on a blank line. Press once more and a set of prompts will scroll accross your screen. From here you can edit, delete, continue with more text, abort your message, or save it. This allows you to make corrections after the fact, and when you are finished, press "" for save, and there you are, you have just posted your first message. Private Mail is a slightly special situation. Here you must use a name at the "to:" prompt. Private mail cannot, obviously, be left to all. When you enter a name, the system will check to see if that person is a current user of our BBS. If he or she is not, the system will tell you so. Please note, that if you get a "no such user" message, there are two possibilities, either you spelled that person's name wrong, or indeed there is no such user. If you are sure that the person does use this system, check the user log for the correct spelling of the name before continuing. Other than that, the method for leaving private mail is the same as for leaving a public message on any of the other message bases, and as you have already probably seen, the recipient will usually read your private message upon logging on. One final note on the message area. We have room for approximately one hundred messages on the system. There is no automatic deletion feature in this board, so I would ask that, after you are done reading any private mail, please delete it. In this way my job is made a little easier. I delete any "stale" public messages about once a week. A message with a great significance will, of course have a longer life on the system than a simple "O.K. thanks" type of message, but I try to leave all public messages on the system a minimum of two weeks. At any one time there are usually at least eighty messages active! Well, that's it for this month, and I never did get to the Files area. Oh well, this way I have some material for next time! May 1989 MUG Notes Page 6 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 By: J. Daviau Last month you learned that you can generally tell a directory from a file by looking at whether or not the name was capitalized. In most instances this is true. It does not prove true if the person who created the directory did not create it with a capitalized name. Another way to find out (and a more reliable one) is to use the "DIR E" command. "DIR E" gives you the entire directory listing. This is what you could expect to see by using "DIR E". OS9:dir e Directory of /d0 14:18:36 Owner Last modified Attributes Sector Bytecount Name ----- ------------- ---------- ------ --------- ---------- 0 87/02/16 1648 ----r-wr A 69E3 OS9Boot 0 87/02/16 1649 d-ewrewr 75 5C0 CMDS 0 87/02/16 1654 d-ewrewr 7E 140 SYS 0 86/08/13 1447 ----r-wr 237 C0 startup 0 86/10/22 1606 ----r-wr 239 117 window.t38s 0 86/10/22 1605 ----r-wr 23C 168 window.t80s 0 86/10/22 1628 ----r-wr 23F 2B0 window.glr4 0 87/10/22 1637 ------wr 243 51 patch.drives This type of "DIR" listing can tell us quite a bit about our directories and files. The first column is labeled "Owner" and it holds information on just who owns the file in that line. This comes into play if you are using a terminal to log onto an OS-9 based system (eg: The Mug Line BBS !) Each user on an OS-9 system is given a number and that number is the one you will find in this column. No one else loging on with a terminal can do anything with your file unless you say so. (That's how come no one else can read your private mail.) In the above listing you will notice that all the owners numbers are zero. This indicates that the files are owned by "Super User". Super User is the person who is at the keyboard of the main system. The next column titled "Last modified" contains the date and time that the file was last written to the disk or changed. This is why it is important to enter the date and time when booting OS-9. The 3rd column is the attribute column and the letters in this column control the system security. The attribute columns hows which attributes are on by listing one or more of the following codes. d s e w r e w r | | | | | | | |___> owner read | | | | | | |_________> owner write | | | | | |_______________> owner execute | | | | |_____________________> public read | | | |___________________________> public write | | __________________________________> public execute | |_______________________________________> single user |_____________________________________________> directory May 1989 MUG Notes Page 7 If the letter is there instead of a dash then that attribute is said to be set. If the "D" attribute (directory) is set then that entry is a directory and not a file. This is the best way to find out if someone has made a directory name in all uppercase letters. When 2 or more processes use the same file at the same time, they might try to update that file at the same time. When you open a file in the update mode, OS-9 eliminates the problem by locking the sections of the file. The lock covers any disk sectors containing the bytes last read by each process accessing the file. If one process attempts to access a locked portion of a file, OS-9 puts the process to sleep until the locked area is free. You can manually lock an entire file by activating (setting) its single user bit. The other 6 attributes control whether the file can be read from, written to or executed by either the owner or the public (all other users). If the attribute is SET or ON the the permission to proceed is ON. Owner Read The owner can read from the file. Use this permission to prevent binary files from being used as text files. Owner Write The owner can write to the file or delete it. Set this permission to prevent accidental deletion of important files. Owner Execute The owner can load the file into memory and execute it. To be loaded, the file must contain one or more valid OS-9 memory modules. Public Read Anyone can read and copy the file. Public Write Anyone can write to or delete the file. Public Execute Anyone can execute the file. The next column is titled "Sector" and this number tells what sector of the disk the beginning of the file is stored on. The number is in Hexadecimal as I'm sure you've noticed. The next column is called "Bytecount" and this tells you how big the file is. This figure is also in Hex. The last column contains the name of the module. You can use the "ATTR" command to change a files attributes in the following way. If you have a program on a disk in drive zero called "Sample" and the owner execute is not set and you want to run or load the program (it must be a program and not a text file to do this), you could set it using the following command. OS9:attr /d0/sample e To turn off the owner execute and public read attributes you would enter this: OS9:attr /d0/sample -e -pr So you must first type the attr comand, then the pathname to the file you want to access and then either use PE PW PR E W or R to add these attributes. You would use a minus sign (-) to take these attributes away. If you do not specify any attributes on the line and just type "attr /d0/sample" then the current settings of the attributes will be displayed. The "attr" command will not work to "unset" a "D" attribute on a directory unless the directory is currently empty. If there is anything in the directory you will have to use the "deldir" command to get rid of it. Chow for Now May 1989 MUG Notes Page 8 PEEKS and POKES In response to many members' requests we are listing some Peeks and Pokes for your use. These will be spread over several newsletters as room permits. 0.288 SEC PRINTER LINE DELAY......POKE 151,64:POKE152,0.......... 0.576 SEC. PRINTER LINE DELAY.....POKE 151,128:POKE152,0......... 0050 BAUD RATE....................POKE 149,4:POKE 150,8.......... 0075 BAUD RATE....................POKE 149,2:POKE 150,227........ 0110 BAUD RATE....................POKE 149,1:POKE 150,246........ 0120 BAUD OUTPUT TO PRINTER.......POKE 149,1:POKE150,202......... 0134.5 BAUD RATE..................POKE 149,1:POKE 150,153........ 0150 BAUD RATE....................POKE 149,1:POKE 150,110........ 0300 BAUD OUTPUT TO PRINTER.......POKE 150,180................... 06 MS DISK STEP RATE .............POKE 54989,0:55075,20 (64K).... 06 MS DISK STEP RATE FOR DOS 1.0..POKE 54989,0:55075,20:54566,80. 06 MS DISK STEP RATE FOR DOS 1.0..POKE 55212,65:55213,66 (DS).... 06 MS DISK STEP RATE FOR DOS 1.1..POKE 55232,0:55318,20:54803,80. 06 MS DISK STEP RATE FOR DOS 1.1..POKE 55455,65:55456,66 (DS).... 0600 BAUD OUTPUT TO PRINTER.......POKE 150,87.................... 1.15 SEC. PRINTER LINE DELAY......POKE 151,255:POKE152,255....... 12 MS DISK STEP RATE..............POKE 54989,1:55075,21 (64K).... 1200 BAUD OUTPUT TO PRINTER.......POKE 150,41.................... 1200 BAUD RATE OUTPUT.............POKE 149,0:POKE 150,40......... 1800 BAUD RATE OUTPUT.............POKE 149,0:POKE 150,25......... 2-LINE SCROLL PROTECTION..........POKE &HA34C,&H04:POKE&HA34D,&H4 20 MS DISK STEP RATE..............POKE 54989,2:55075,22 (64K).... 2000 BAUD RATE OUTPUT.............POKE 149,0:POKE 150,23......... 2400 BAUD OUTPUT TO PRINTER.......POKE 150,18.................... 30 MS DISK STEP RATE..............POKE 54989,3:55075,23 (64K).... 3600 BAUD RATE OUTPUT.............POKE 149,0:POKE 150,10......... 4800 BAUD RATE....................POKE 150,7..................... 7200 BAUD RATE....................POKE 150,3..................... 9600 BAUD RATE OUTPUT.............POKE 149,0:POKE 150,1.......... 9600 BAUD RATE....................POKE 150,0..................... ALTERNATE ARTIFACT COLOR SETS.....POKE 51,32..................... ANGLE (0-3) FOR DRAW COMMAND......PEEK 232....................... ARTIFACT ALTERNATE COLOR SETS.....POKE 51,32..................... ARTIFACT ORIGINAL COLOR SET.......POKE 51,0...................... ARTIFACTED STRIPE PATTERN.........POKE 178,XX +LINE(..),PSET,BF.. ARTIFACTED STRIPE PATTERNS PAINT..POKE 178,XX +PAINT( ),,C ...... ASCII CODE OF LAST VARIABLE.......PEEK 55 + PEEK 56.............. ASCII OF INKEY$ PRESSED KEY.......PEEK 135....................... ASCII VALUE OF LAST KEY PRESS.....PEEK 135....................... ASTROBLAST EXTRA MEN..............POKE 6415,XX .................. AUDIO OFF.........................POKE 65315,36.................. AUDIO ON..........................POKE 65315,32.................. AUTO START DISABLE FOR ROM PAK....POKE 65315,54.................. AUTO START ENABLE FOR ROM PAK.....POKE 65315,55.................. BAGITMAN EXTRA MEN................POKE 13971,XX ................. BASIC PROGRAM END ADDRESS.........PEEK 27*256+PEEK28............. BASIC PROGRAM ERASED..............EXEC 44313..................... BASIC PROGRAM ERASED/FILES CLOSED.POKE 2396,255 + [RESET]........ BASIC PROGRAM EXECUTION...........EXEC 44661..................... BASIC PROGRAM START ADDRESS.......PEEK 25*256+PEEK26............. May 1989 MUG Notes Page 9 BAUD RATE = 50..................POKE 149,4:POKE 150,8.......... BAUD RATE = 75..................POKE 149,2:POKE 150,227........ BAUD RATE = 110..................POKE 149,1:POKE 150,246........ BAUD RATE = 120..................POKE 149,1:POKE150,202......... BAUD RATE = 134.5................POKE 149,1:POKE 150,153........ BAUD RATE = 150..................POKE 149,1:POKE 150,110........ BAUD RATE = 300 .................POKE 150,180................... BAUD RATE = 600 .................POKE 150,87.................... BAUD RATE = 1200 .................POKE 150,41.................... BAUD RATE = 1200..................POKE 149,0:POKE 150,40......... BAUD RATE = 1800..................POKE 149,0:POKE 150,25......... BAUD RATE = 2000..................POKE 149,0:POKE 150,23......... BAUD RATE = 2400 .................POKE 150,18.................... BAUD RATE = 3600..................POKE 149,0:POKE 150,10......... BAUD RATE = 4800..................POKE 150,7..................... BAUD RATE = 7200..................POKE 150,3..................... BAUD RATE = 9600..................POKE 149,0:POKE 150,1.......... BAUD RATE = 9600..................POKE 150,0..................... BERSERK EXTRA MEN.................POKE 5872,XX .................. BLACK ON GREEN, LOWERCASE XX=80...POKE38341-38345,18,134,XX,18,18 BLACK ON GREEN, LOWERCASE XX=16...POKE38341-38345,18,134,XX,18,18 BLACK ON ORANGE 32x16 XX=8.......POKE38341-38345,18,134,XX,18,18 BLACK ON ORANGE, LOWERCASE XX=88..POKE38341-38345,18,134,XX,18,18 BLACK ON ORANGE,LOWERCASE XX=24...POKE38341-38345,18,134,XX,18,18 BLACK SCREEN ON GREEN.............POKE 65314,7................... BLANK SCREEN......................POKE 359,61.................... BORDER............................POKE 65314,6................... BOX FILLED WITH STRIPED PATTERN...POKE 178,XX +LINE( ),PSET,BF.. BREAK KEY DISABLE ............CLEAR XX:POKE 248,50:249,98.... BREAK KEY DISABLE (cont)..........POKE 250,28:251,175:252,126.... BREAK KEY DISABLE (cont)..........POKE 253,173:254,165:410,57.... BREAK KEY DISABLE (cont)..........POKE 411,0:412,248:410,126..... BREAK KEY DISABLE (cont)..........for k=1 to 2: next............. BREAK KEY DISABLED................POKE 41598,255................. CAPITAL LETTERS...................POKE 282,255................... CARRIAGE RETURN DELAY.............POKE 151,XX.................... CASSETTE FILE LAST LOADED.........PEEK 474 - 481................. CASSETTE LOAD BASIC PROGRAM.......EXEC 42136..................... CASSETTE MOTOR OFF................POKE 65313,52.................. CASSETTE RELAY OFF................POKE &HFF21,&H34............... CASSETTE RELAY TURNED ON..........POKE &HFF21,&H3C............... CASSETTE SAVE BASIC PROGRAM.......EXEC 42060..................... CASSETTE SYSTEM IF = 6............PEEK 188....................... CENTRE OF CIRCLE X CO. IN PMODE0-3PEEK (203)*256+PEEK (204) ]*2.. CENTRE OF CIRCLE X CO. IN PMODE4..PEEK (203)*256+PEEK (204)...... CENTRE OF CIRCLE Y CO. IN PMODE0-3PEEK (205)*256+PEEK (206) ]*2.. CENTRE OF CIRCLE Y CO. IN PMODE4..PEEK (205)*256+PEEK (206)...... CHARACTER POKED TO TEXT SCREEN....POKE (1024-1535),(33-255)...... CHARACTER(XX) TO GRAPHICS PAGE 3..POKE (4608-6143),XX(33-255).... CHARACTER(XX) TO GRAPHICS PAGE 4..POKE (6144-7679),XX(33-255).... CHARACTER(XX) TO GRAPHICS PAGE 5..POKE (7680-9215),XX(33-255).... CHARACTER(XX) TO GRAPHICS PAGE 6..POKE (9216-10751),XX(33-255)... CHARACTER(XX) TO GRAPHICS PAGE 7..POKE (10752-12287),XX(33-255).. CHARACTER(XX) TO GRAPHICS PAGE 8..POKE (12288-13823),XX(33-255).. CHARACTER(XX)TO GRAPHICS PAGE 1...POKE (1536-3071),XX(33-255).... CHARACTER(XX)TO GRAPHICS PAGE 2...POKE (3072-4607),XX(33-255).... May 1989 MUG Notes Page 10 --- TIMEBOMB Wipes out BBS disk --- With all the discussion lately about "Trojan Horse", "Virus", and Timebomb" programs, I thought the following was especially timely! TORONTO --- March 1987 A program acting as a software timebomb destroyed the data on the hard disk of a Canadian bulletin board system last month, reports the sysop. It's the first known time such a program has struck in Canada. Warren Schmidt of Toronto says he had backup copies of most of the data on the affected disk and was able to restore all but a few days worth of work. The culprit was a destructive program sent to Schmidt's bulletin board, PC Select, two months earlier. Ironically, the damage occurred on the very day he read an article about such programs, known as Trojan Horses, because they often come disguised as gifts. The variety that attacked Schmidt's data is called a timebomb because it sits quietly on a disk until, at a pre-set time, it comes alive and starts to destroy data. Schmidt was doing word processing, when at 8:15 pm Feb. 20, the computer suddenly started erasing files. When the keyboard would not respond, he turned the computer off. When he rebooted the system, he discovered the directory was all scrambled. The entire disk was filled with subdirectories all of the same name and the information in the files was gibberish. After reformatting the disk, and putting his backups on it, the same thing happened again. Inspecting the disk more carefully, Schmidt found 22 hidden files -- all programs not appearing on the directory -- including a Trojan Horse that had been sent to the BBS on Dec. 20 at 8:15 pm -- two months earlier to the minute Checking the board's records, he found the program was sent from a Jack Smith of California. He also found that two other callers -- supposedly from New York and Minnesota -- used almost identical passwords to log onto the BBS around the same time. Schmidt suspects all three were the same person who called several times, putting hidden files and the Trojan on the same disk. Canada Computes Newsletter -- March 1987 Reprodued with permission from Midnight Remote Data Systems May 1989 MUG Notes Page 11 Reviewing DynaStar: A Complete Word Processing Package By Mike Warcholyk Two months ago I told you that I would be reviewing DynaStar in our April newsletter, unfortunately I couldn't make it. What happened was that I put it off very close to the deadline and I then realized that I probably wouldn't make it on time because I had to move to a new place not to mention all the things that go with it as well as having to see a couple of clients a birthday etc. [YOU KNOW THE STORY!!] Anyways...... What I ordered was DynaStar and DynaSpell. With the DynaStar package I received DynaStar the text editor and DynaForm the print formatter. With DynaSpell I received both the 20,000 and 102,000 word dictionaries. I received DynaSpell for only $25.00 U.S. since I purchased DynaStar with it. Normally it goes for $75.00, which I still consider a good price. DynaStar is normally $150.00 U.S. but went for a Christmas sale price of only $99.95. The March '89 Rainbow still had it listed the same price (it was now an after Christmas sale!!), and April had it listed for the same too! But of course this was not the "After Christmas sale" but it was the "Spring Sale". With this indication there is no real way to determine whether or not the price will go back up again or not. One thing which I would like to mention is for you to make sure that you take a look at the article in the April edition of Rainbow on page 26 titled: "Deciding What's Write For You". This article compares the different features of word processors available for the CoCo. The article has a comparison chart for you to quickly see what each word processor has and doesn't have. And I can safely say that I made a rather excellent choice! The article though quite good doesn't go into much detail about the individual word processors so, my article still serves its purpose. In order to make this review as simple as possible I will first discuss DynaStar's features, then I will cover DynaSpell. In effect I will then actually be doing two reviews. So if I can't find the time to do DynaSpell this month then I can carry on to next month. Hopefully I don't put anyone to sleep! DynaStar with DynaForm comes on a nonprotected single sided disk and includes a 36 page manual. The manual which was written using DynaStar is much bigger than it looks because the text is half size. It is neatly laid out and well written with a decent table of contents and index. Even though I didn't expect it though I know many people do is a tutorial on how to use a word processor. I myself found the manual to be enough of a help but for those who need more information there are plenty of good books available at the public library or book store. And since DynaStar is similar to WordStar I would imagine that books and classes for WordStar would be even a bigger help. The disk itself contains everything needed to run DynaStar and more. The root directory contains a directory called 'OLDER_VERSIONS_OF_DYNASTAR' which contains versions of DynaStar that are specifically written for older CoCo's as well as for standard OS-9. The CoCo 3 version of DynaStar is located in the CMDS directory. Another directory called 'EXAMPLES' contains example files showing some of DynaForm's functions. There are a couple of 'Readme' files which list a few changes and updates with this new version of the package, but most of the information in these files are the same as in the book. May 1989 MUG Notes Page 12 The SYS directory contains three files: Epson, df.init and termset. The file 'df.init' is used for DynaForm to read the printer codes that you may need to use with your printer. The file 'Epson' is the equivalent of 'df.init' for the Epson MX-80 with Graftrax, all you would have to do is rename 'Epson' to 'df.init'. The last file in the SYS directory is 'termset' and this one is quite interesting, here is what it does. For DynaStar to work properly it must know what type of terminal or display device it is going to be operating on. So for it to do this it reads the file 'termset' to determine the particular control codes your terminal or display device uses for line delete, cursor positioning etc. So what all this means is that you can easily have DynaStar operate on a video display terminal connected to your /T1 or /T2 ports. You can also change the color numbers which DynaStar uses for its text so you can change the color of your display. But you don't have to touch this file if you don't want to. But you do have to make sure that you do copy it over to your SYS directory. The only exception to this is if you are using windows greater than /W7 then you would have to add a few lines to this file. Last but not least is the CMDS directory. This directory has two versions of DynaForm called 'Df' and 'Df.big' as well as the CoCo 3 version of DynaStar, 'ds'. The only difference between the two programs 'Df' and 'Df.big is that 'Df.big' can handle 800 automatic index/Table of contents entrys instead of only 300 and that it has a bigger macro pool. The reason there are the two is because 'Df' requires less memory to run then 'Df.big'. This was needed for the older CoCo's because many of them did not have the needed memory available because they may have been using O-PAK (a hires 80 or 64? column screen program) or other memory modules loaded which would have affected the operation of DynaForm. When you first start DynaStar you will be in the 'files' menu. This menu consists mainly of utility commands such as specifying a new file to edit, reopening a file, writing a file etc. This menu is the first you will use as well as the last. Here is the complete command list in the menu. I will explain things fully where it is needed. N edit New file O edit Old file W Write file - write file to disk W write and eXit - write file and exit editor (return to OS9 prompt) A Abandon edit buffer without changing file - this is used when you really botch things when you are in edit and you wish to throw away the work you have just done. E reEnter editing mode - used when you want to return to the main editing menu (menu after 'files' menu) D Directory - displays your current working directory H Help on/off - turns help menus on/off, all menus are suppressed except the 'files' menu. This allows you to have most of the screen available for editing. May 1989 MUG Notes Page 13 S execute Shell command - this command is great because it allows you to enter a one line shell command. You can also return to the shell by hitting [enter] after selecting this command. Then after doing whatever, you can return to DynaStar by pressing [ESC]; this takes you back to where you were with everything intact. C Change working directory P Print buffer M More:get next file section - this is for when you want to move on to a new section of the file you are working on which hasn't yet been read into the buffer. This makes it possible for you to edit very large files in sections. L List current macros - this command is used to display currently defined keyboard macros, or to list the contents of a selected macro. ESC Enter/Leave macro learn mode - allows you to redefine any control character to mean any other character or sequence of characters. This allows you to change the control functions on the main editing menu and also allows you to build special commands. This is a very useful and powerful function. One simple example would be to change a two key command sequence to a single key command. Macros are very good for speeding up repetitive work too. For some reason, perhaps because it was forgotten, the following commands were not in the manual, the first was easy to guess but the next two I don't know the purpose of their function. F enter if File - takes you back to edit buffer if you have a file already in it. ] display on/off - I couldn't see its purpose, when I pressed it the screen froze up, when I pressed it again it still was frozen. I then had to toggle to another screen and kill the process. Q Xon/Xoff on/off - I've seen this command before on terminal packages but never worried about it. I can't see its purpose but will try to figure it out anyhow. Upon entering the edit buffer you will see a command menu at the top of the screen (unless you turned the help menu off) and a ruler line. The purpose of the ruler line is to indicate the position of the margins and tabs. All the functions are easy to use by simply holding down the [ctrl] key and pressing the key to execute the desired function. This may seem odd to you at first but it doesn't take long at all to get used to doing it this way because most of the keys are arranged in a geometric pattern on the left side of the keyboard and it reflects the function performed by each command. May 1989 MUG Notes Page 14 Here is how it is set up on the keyboard: /\ _____________/ \_____________ | W / E \ R | | line / char \ screen | | up / up \ up | --------------/----------\----------- | A / S | D \ F | | word / char | char \ word | | left \ left | right/ right | | \ | / | --------------\----------/----------| | Z \ X / C | | line \ char / screen | | down \down/ down | | \ / | --------------\/---------------- All of these keys are either for scrolling up or down by line or by the screen (one screen up or down), or moving the cursor around in a number of different ways ie; [ctrl] [s] moves the cursor one character to the left, [ctrl] [a] moves it one word to the left etc. Other commands include delete/bksp, delete letter, delete right/left word, delete/insert line need no explaining. The command needed for entering macros is located in this menu and there are three supplementary menus which are accessed here. The first is the '^Q supplementary prefix menu', and is accessed by pressing [ctrl] [q]. This command menu is mostly supplementary cursor moves. In order for you to execute these commands all you have to do is to press, for example: [ctrl] [q] (goes to supp. menu) [e], this command takes the cursor to the upper left corner of the screen. The rest of the commands in this menu, as I said before basically move your cursor in many different ways. Some of the exceptions are string functions such as find/replace with the 'again' command if you want to repeat this function. There is also a delete to right of line command as well as the option of turning overtype mode on or off. The next supplementary menu is the 'Block commands menu'. To get to this menu you would type [ctrl] [b]. This supp. menu allows you to manipulate blocks of text. Some of its commands allow you to mark/unmark, copy/move, kill, write and insert blocks of text. I have found this very useful and have used these commands a number of times. The next supplementary menu is called 'Formatting and Tab Commands', and contains commands related to the automatic formatting of text and the setting and clearing of tabs. To get to this menu a [ctrl] [k] invokes this option. In this menu you will find commands that: centre lines, set/remove and kill tabs, adjust paragraphs to conform to currently set margins as well as setting margins, word wrap and justify. One command that is great for programmers is the indent on/off. With it you get auto-indent for writing in structured programming languages like C and Basic09. May 1989 MUG Notes Page 15 The last of these menus is called 'Print Control Commands', and entering a [ctrl] [p] invokes this menu. Its purpose is to insert print control characters in text and to bring up a series of menus summarizing the 'dot' commands for the DynaForm print formatter. The following commands are used by DynaForm to provide special effects when text is printed out: BoldFace, Double Strike and Underline. To send these codes for example, Underline all you would have to do is insert the following 'dot' command before and after where you would want to underline your text. [ctrl][p][b] inserts '.B' this would turn underline mode on. Then to turn if off you would again enter [ctrl][p][b] which again inserts '.B' this turns it off. If your printer auto-linefeeds then you must define these three commands in your 'df.init' file otherwise they won't work. I did this and have had no problems except with the Underline function. This is probably due to my lack of understanding how my printer codes function. What is happening is that DynaForm is looking for a two sequence code for underline but I don't see a two sequence code in my manual, I see a three sequence code. I'm happy I don't really need underline but I plan on contacting FHL about my few little problems. The rest of the dot commands as I said before are sumarized in the Print Control Commands menu and are much too numerous for me to really mention. But I will attempt some of them now since I will explain the second part of the program, DynaForm. The purpose of the DynaForm formatting program is the production of multiple page documents taken from text files prepared by DynaStar. According to the author, the division of labour between DynaStar and DynaForm is that DynaStar takes care of the horizontal formatting, interactively and on the screen, and it largely takes care of the paragraphs too. It prepares a text file which is organized as a series of lines, but this time the lines are already formatted as they will print. All that DynaForm really does is to organize the lines into pages and number them for you. Since this is so, then the largest group of formatting commands in DynaForm is connected with the pagination process. DynaForm provides the following features as taken from the manual: 1) Automatic pagination 2) User specified header and footer lines with optional page numbers. 3) User specified unconditional and conditional page breaks. 4) Adjustable top, bottom, and left margins. 5) Adjustable page size and line spacing. 6) Overprint, boldface, double-strike, and underline. 7) Nested file inclusion to permit chaining of files. 8) User-defined macros with conditional command execution. 9) String substitution facilities to support "mail-merge" features for production of customized form letters. 10) String variable assignment from operator input and external data files. 11) Automatic generation of Index and Table of Contents. May 1989 MUG Notes Page 16 Some of the above features don't really need much explaining, so I won't bother but, a few do. The term conditional refers to whether or not a given event happens or not, and if it does happen then do this and if it doesn't then do this. To give one example of this I will explain feature number three it being 'user specified unconditional and conditional page breaks'. If you set a conditional page break then you are telling the formatter to start a new page if there are less then a certain amount of lines left on the current page. The purpose of this command is to prevent the appearance of "orphan lines" at the top or bottom of the page, and to prevent lists and tables etc. from being broken across a page boundary. This one command shows how useful conditional functions can be. Using mail-merge to make customized form letters is easy, and one function which I find I am doing quite a bit now. Its function is to allow you to write a standard letter and by placing in variable names in places where you would normally put in things like a persons name, address etc. what you would do here is put in something like [first-name] for the persons first name. And what happens is the program would read a data file which you set up previously and get the information and substitute the variable name for the data. Also instead of setting up a data file or in addition to it you could have the program prompt you to insert the information interactively. Many of these commands you wouldn't have to worry about if you didn't want to but, the nice thing is that if you ever do need them then they are there. I also found most of them quite easy to learn so I didn't have to waste too much paper in doing it. As to problems with DynaStar, I found very little to complain about. As I mentioned before I am having a problem getting the underline function to work but this is probably more my problem then the programs. I found the program bug free and it does everything it says it does. The three undocumented functions I find a bonus to the program, especially when I find out what the other two mystery ones do. I would imagine they are something specifically written for the CoCo 3 version and they were somehow just left out of the documentation. One thing that I think this program needs is an Undo command, though, I myself rarely find that I would need it but it would be nice to have anyhow for those who do. I also haven't seen how one would be able to save their macros and default settings to disk but I'm sure it says it in the manual and I just missed it since it would be crazy not to have such a function. I definitely plan on contacting FHL about these little things and I will be sure to let you all know what happened. Finally, in summarizing this review for DynaStar (if you are still awake), I find it to be an excellent word processor for either home or business use. Whether you are a programmer, student or are in a business I certainly think this is the one to get. NOTE:next month I will be finishing off by reviewing DynaSpell. May 1989 MUG Notes Page 17 A Logical Beginning By L.G. Fluhrer 3rd. Looking back I can still remember my first brush with a computer came in highschool via a Honeywell 4000. This monster of a machine came from the ancient age of computer programming and was affectionately called "Baby" by my instructor Mr. Wale. I guess most of us feel the same way about our CoCo. "Baby" had only 16K of memory, a Honda sized printer and a card reader that ate cards faster than Pac Man. But the thing I remember most about "Baby" is the endless list of Compile errors and the dreaded Invalid Run Time Error XXX which almost always occurred five minutes before a project was due. While computers and their external devices have gotten smaller and dare I use the word more personal, those endless list of strange error messages still haunt most new computer users and thus a logical beginning to computer programming is to have a good understanding of error messages. Easy for you to say Len, you have been programming for more than 10 years, I just bought my CoCo yesterday! Yes, but there is a way to make your life easier just by understanding error messages. The first thing to understanding error messages is that there is no error too small. If you recieve an error message in any language from APL - Zbase 99 there is something wrong. Many new programmers and users will often disregard an error only to regret it later. Case in point as a temporary data entry operator I was working for one company that just purchased several thousand $ worth of IBM equipment and some cheap disks from a local store. The manager formated several disks of which the computer repeatedly reported format errors. Despite the warnings he passed these disks on to the accounting department the accounting department was not at all pleased after the loss of several days of work. The manager's reasoning for passing on the disks was that only 61 of the disks were bad pointing to the verified information MS DOS machines print after formating. What this gentlemen failed to realize was that to a new user a bad bit ie; 1 in 360,000 bits in the right place on a disk is enough to make the disk unreadable. In order to recover from such a failure you need two things most new users don't have. One is a Disk Checking program often called a Disk Zapper, Repairer,or Disk File Manager. CoCo users should check back issues of Rainbow for more information. The second is experience enough to operate these programs without destroying the disk further. IE; it is not really a beginner type task. The moral of the story in Radio Shack Basic if DSKINI or in OS-9 FORMAT gives you an error don't uses the disk. This also goes for any other computer from micro to mainframe always beware of format errors as they are almost always fatal. I should mention a bug in Radio Shack Basic that often causes problems to new users. The DSKINI instruction uses a lot of memory so don't have any programs in memory when you are using this command as they will be lost. Also to avoid another more technical bug that exists in Radio Shack Dos you should turn your computer off and back on before using this command. May 1989 MUG Notes Page 18 Radio Shacks SN error also gets to most new users, however it is the easiest to fix once it is spotted. SN (Syntax Error) usually stands for spelling error. Even the pros get this one so just relax and look at the line number with the error in it. Most common mistakes occur when enterring a program out of Rainbow or some other magazine. Watch for 0 -zero vs. O -oh, B -Bee vs 8 eight, 1 -one vs l as in len and also note that a is not the same as @. Those of us using compilers like Basic09 have other problems in addition to watching our typing and spelling. If you are a newcomer to any type of compiler remember you must initialize everything. No you don't have to learn you can use Basic09 default settings. Yes, but don't. Why? The answer is simple, if you define all your variables at the beginning you don't have to search through miles of code to make changes. Consider this example: Lets say that you designed a compiled program to do stats for Little League Baseball. In your baseball program you used x to count the number of players on your team. But you did not bother to tell your compiler how to define x. Since you used a For Next loop to count x Basic09 used its default integer type of x. You program the rest of the program and compile it without problems. Everything works for the first half of baseball season, several months have gone by since you last worked on the program when suddenly you see an offer to buy a new super HiRes monitor. Now that you have the monitor you wish to spruce up the old baseball program by adding titles using a new section in your program to better position them on the screen. You load up your editor and examine the first page of Baseball and quickly page down the program missing the fact that you already have a variable called x. Logically you say to yourself I'll use x for the x screen position and y for the y screen position. You now have a multiple defined error and your program will not work. Depending on your Compile and the language you use you may see anywhere from one to two pages full of errors. CoBoL is like the last once it gets an error it just goes wild giving an error in every line that the two variables are link to and usual to unrelated lines that follow the error so be careful when editing these programs. Many older generation compilers like CoBoL suffer from this so your best bet in correcting these programs is to look at the first error encountered and solve it first. Then look at the rest of the error list one line at a time and say to yourself does this line contain any variables or references to the line I just correct. If it does chances are you can re-compile it and without error. Repeat this step for each error you encounter until you have checked all the errors. PS always have a pencil near by to check off the errors as you correct them. It is much easier even in Basic09 to declare everything you uses at the start of every procedure then to find every variable hidden somewhere five or ten pages down the way. Or worse yet go though an error listing of a Compiler gone wild. PS. variables should be meaningful to you and clearly stated so in the future you can tell between x-number-of- ballplayers and x-screen-position. May 1989 MUG Notes Page 19 Another error that causes problems is the /0 (division by zero) error. For those non math wizs out there first say that you can't legally divide a number by 0 hence the error. IE; PRINT 10/0 is a mathematical No No. Once you know this however, this command can still cause you problems if you get careless. Lets take our Baseball example again and consider this. You want to find the average number of hits per time at bat during a game. To find this you might have a line that looks like the following: Average.Hits.Per.Game := Hits / time.at.bat or in standard Radio Shack Basic 4000 AV = HT / TB While these statements are correct and will work, they will only work if time.at.bat or TB is > 0. So what happens if one of your players miss a game. Division by Zero error right? You got it. The solution to this problem is to check all variables under division signs to make sure their total is not zero. Notice I said total as eg AV=st/(t1-g4*s1+g30) may produce this error as well. The next group of errors a new user comes across I call the out by one error. The reason it is called this is that I'm almost always out by just one position or data item. Here is a list of out by one error messages. IE, OD, OS-9 Errors 211, other conditions include printing at the wrong position on the screen or printer, missing data which is usually the last data on the file or in memory. Solutions: OD - Hint use a extra variable in a for next loop to find out how many data items you actual have by printing the variable you can use this statement directly (no line number) in Color Basic to check number of data items. For x=1to99999:read a:next:print x Note the program must be in memory first. Watch for missing , comas or . periods where comas should be. IE- Use LOF or EOF with an if statement when reading from a file. For more information read your manual that came with your disk drive. 211- same as IE error see your OS-9 Manual As for the other out by one program errors check the type of loop you are using For Next loop evaluate the value at the top of the loop while Repeat until checks the value at the bottom of the loop. The difference in loop structure control how your program handles counters for files and all other types of i/o so if an out by one error occurs check these commands that loop: GOTO, GOSUB, LOOP ENDLOOP, WHILE DO, FOR NEXT, REPEAT UNTIL, PERFORM UNTIL, and IF THEN ELSE. Unfortunately there are just too many errors to cover all at once so until next time have fun with your new "Baby" and remember to error is human to be a programmer is total craziness. May 1989 MUG Notes Page 20 Tech Tips By W. Morrison I have found that one of the easiest, and perhaps most beneficial types of modification that can be done to any CoCo is the addition of LED's when they are used to monitor system conditions. Those of you who have purchased the printer/modem switches that I make will know what I am talking about. With those switches, you not only have a power on indicator, but also a way to moniter whether or not your system is sending data, either to the printer or to the modem. I use this feature all the time. it is a super way to make sure that your system is live. When you are set up for modeming, it is an easy task to tap the space bar a couple of times to make sure that you are sending. If the LED does not flicker, then you have problems. A couple of years ago I picked up a Deluxe RS-232 Pack and started using it with my modem. Almost immediately I missed the LED feature as I could no longer monitor my sending status. As I was sure that there had to be a way around this, I had a closer look at the RS-232 Pack, and sure enough I found a way to adapt an LED to the Pack and get my "status" indicator back. This month, I will talk you through this little project. The parts list is quite simple really, consisting of two things, an LED in the colour of your choice (I personally like the mini-LED's), and a 250 ohm resistor. Open the RS-232 Pack (the one case screw is under the label on the front), and have a look at its layout. For this project, we are going to focus our attention on the end of the Pack where the modem cable connects. Remove the printed circuit board from the case (little screws hold it in place) and turn it over. Now find the solder points where pins 2 and 7 from the DB-25 plug are soldered to the circuit board. These points will be used for this circuit. Solder the resistor to the terminal of the LED beside the flat spot (anode) and the length of wire to the other terminal (cathode). Locate where you want the LED to be in the case and drill a hole of the right diameter through the case. Now lay out the wiring to reach this location and add any additional jumper wire to the LED and resistor assembly as needed to reach the solder points with the circuit board re-installed. Now solder the wire going to the resistor to pin 2 at the plug and the remaining wire to pin 7. When this is done, put everything back together being careful not to have any exposed wires touching anything in the Pack, and the job is complete. Now, set up your system and give it a try. Every time you send anything through your pack the LED should blink. If it fails to light up at all, disassemble it again and reverse the wires going to pins 2 and 7. LED's are funny little creatures. If you hook them up backwards they do not work at all. Thats the whole project. You should now be able to moniter the transmission of data from your keyboard or buffer with no problems. A nice little addition, I'd say. May 1989 MUG Notes Page21 CORPORATE STRUCTURE Chairman of the Board Leaps tall building in a single bound Is more powerful than a locomotive Is faster than a speeding bullet Talks with God President Leaps short buildings with a running start and favorable winds Is almost as powerful as a switch engine Is faster than a speeding Bullet Walks on water in an indoor swimming pool Talks with God is special request is approved Vice-President Barely clears a quonset hut loses tug-of war with a locomotive Can fire a speeding bullet Swims well Is accassionally addressed by God General Manager Makes high marks on the wall when trying to leap building Is run over by locomotive Can sometimes handle guns without inflicting self-injury Dog paddles Talks to animals Manager Runs into buildings Recognizes locomotive two our of three times Is not issued ammunition Can't stay afloat with a life preserver Talks to walls Trainee Falls over doorsteps when trying to enter buildings Says "Look at the cho-cho" Wets himself with a water pistol Plays in mud puddles Mumbles to himself Secretary Lifts buildings and walks under them Kicks locomotives off the tracks Catches speeding bullets in her teeth... and eats them Freezes water with a single glance SHE IS GOD!!!!!