💾 Archived View for uscoffings.net › retro-computing › systems › Tandy › oldskool › cnpc.txt captured on 2023-09-28 at 18:56:54.
⬅️ Previous capture (2023-07-10)
-=-=-=-=-=-=-
COMPUTER NEWS PC MAY/JUNE 1993 VOLUME 1 NUMBER 1 (C) Copyright 1993 CONTENTS THE BRAINS OF THE OUTFIT by David P. Miller FRED'S TWENTY-FIVE MISTRESSES by Ev Blechman STARTING UP A PC by Danny C. Mullen BASIC ANATOMY I by Fred Blechman HIDE.BAT A BATCH PROGRAM by Danny C. Mullen BASIC PROGRAMMING by Charles Weaver DOS UPGRADES - SHOULD WE by David Goben BUZZWORDS A glossary of terms used. by David Miller AN OLD FRIEND AND NEW PC USER WRITES by Willi E. B. Wald PROGRAM LISTINGS CNPC PRODUCT GUIDE CLASSIFIED ADVERTISEMENTS --------------------------------------------- EDITORIAL COMMENT Hello and welcome to our premier issue of Computer News PC. Many have asked why we name our magazines Computer News. Perhaps it is because we come from an era when old something new or we learn something new, the standard comment was "That's news to me." I guess it just stuck. But even though we have some very good and we hope interesting articles in this premier issue it feels a little strange writing this first editorial column. Where are we at and where are we going? There is so much in the IBM/clone world to cover, so much that has never been covered or so much that was only covered briefly that our heads are still spinning from what this or that program will do, or would have done if we really had the time to sit down and study the six pounds of manuals that came with the computer. Or had the time to sit down and read the manual that came with the program. 486 pages of manual for just one program, Computer News Vol. 1 No. 1 Page 1 written by some fool that thinks that we already know everything there is to know about these computers! What I really want to say is where we go from here is going to depend a great deal on you the reader. What do you need and what do you want explained? Please do not expect us to answer your individual letters, we barely have time to see that all the material and orders are being shipped as they should be. But if you will write telling us what you would like to see covered in CNPC we will do our best to get the answers into print for you. Please do write, it is very important to us and to you too, to help give us some direction. And most of all thank you for your support. ---------------------- The Brains of the Outfit A Short History of Microprocessors by David P. Miller Before starting to cover the subject indicated above, let me say that I am pleased and honored to be included in this inaugural issue of Computer News PC. While I consider myself fairly knowledgeable, I am not the 'expert' or 'guru' some claim to be; my mistakes are many (and sometimes legend...) Having said that, please note that if an error of fact appears in my column it is because I have received inaccurate information that I believe to be true. You will find me open to suggestion and quick to admit my mistakes when they are pointed out. Now back to the subject; As most of us are aware, the 'PC' has a long history that includes many diverse versions of the Central Processing Unit (CPU). This chip is the heart, or more accurately brain of any computer. Back in the days when 'PC' meant 'Printed Circuit', Intel produced a chip it named the '4004' and was heralded as the first 'computer on a chip'. While this CPU was not actually used in a computer, it was the predecessor of the '8008', which was followed by the '8080'. At this point, the lineage split into two branches. One, the Z-80, was produced by Zilog and surpassed the 8080's capabilities by providing more registers and commands that could be executed. The other, produced by Intel, was the 8088, introduced in June, 1979. Unlike the Z-80, which main- tained the '8-bit' structure that limited the CPU to a maximum of 64K of directly addressable memory, the 8088 was provided with sufficient address lines to 'see' 1,024K of memory without resorting to electronic 'tricks' such as the extended memory of the TRS-80 Model 4 uses (these 'tricks' are still used to gain access to even more memory, called 'virtual memory'). The 8088 was also able to handle data internally in two-character chunks, effectively doubling the speed of the chip, and ran at a maximum clock speed of 8mhz; twice that of most 8-bit CPU's of the time. While the full 1,024K of memory was addressable simply by loading address values in the 8088's registers, the usable space was still limited to 64K at any given moment. This was not a handicap, however since any 64K in the addressable space could be 'seen' when the program needed it. (Note: the 640K 'limit' on program size is a limitation imposed upon the Operating System's designers by the original 'PC' computer manufacturer.) At the same time 8088-based machines were available, a 'clone' manufacturer began making computers using a more powerful version of the chip; the 8086. This CPU provided a 16-bit data bus, meaning that it could retrieve information from memory 16 bits (two characters) at a time instead of one, speeding up all communication with the rest of the computer. While the 80186 would seem to be the next in the line of CPU's, it was only an 8086 with internal Direct Memory Access circuits and a timer built in. Computer News Vol. 1 No. 1 Page 2 In February of 1982, Intel introduced the 80286; the next 'new' CPU in the line. The 80286 provided an additional address line called 'A20' that allowed direct access to 16 Megabytes of memory and virtual access to 1 Gigabyte (see glossary), and ran at clock speeds up to 12mhz. It is important to note that other manufacturers were making 'compatible' chips at the same time; some of which were better and faster than those produced by Intel. However, since the naming scheme has held since Intel began the 8088-compatible line of CPU's, this discussion will only mention Intels' name for each chip. The next chip in the line was the 80386. With significantly higher clock speeds of up to 33mhz and a full 32-bit data bus (able to move four characters of data at a time), the 80386 was much faster than the 80286. It also provided direct access to up to 4 Gigabytes of memory and 64 Terabytes. The 80386 also provided a 'virtual mode' having nothing to do with virtual memory regardless of the similarity in names. The 80386 'virtual mode' allowed the CPU to section memory in such a way as to make each section emulate a 640K 8086 computer system; letting the CPU run multiple sessions (different programs) at the same time. The 80386 also had the ability to 'swap' any section of memory into the address space of any other, allowing enormous flexibility in programming. The 80386 was renamed the 80386DX when Intel introduced the 80386SX in June, 1988. With a 16-bit data bus such as the 80286 used, this CPU could only address a maximum of 64 Megabytes, the same amount as that visible to the 80286. However, the less effective design allowed for a lower market price. The 80386SX was designed to 'kill' the 80286; it performed its' intended task admirably. In April, 1989 Intel introduced the 80486DX chip, with a full 32-bit data path, higher maximum clock speed (50mhz),an internal 8K memory cache, and more efficient internal design than the 80386. However, at an initial market price of $950.00, the CPU did not hold its' own against the increasingly less expensive 80386, so Intel introduced the 80486SX at $258.00 in April, 1991. By this time, however, the public had 'caught on' to Intel's method of crippling part of a chip to bring the price down, with the ultimate goal of destroying the marketability of a previous model. The 80486SX did not sell well, since a full-blown 80486DX would have to be purchased if a math coprocessor was desired. To avoid embarrassment, Intel quickly dropped the 'SX/DX' discussion and instead brought out the 80486DX2. This CPU is referred to as a 'clock doubler', and runs twice as fast internally as the rest of the system. With the internal memory cache and the fact that an 80486 is capable of executing an instruction in only one clock cycle instead of the several cycles taken by all previous processors, an impressive increase in performance can be seen on 80486DX2-equipped machines. The Next Step: Pentium Intel is currently bringing to market the next in it's line of CPU's. Named the Pentium, it is able to execute two instructions in a single clock cycle; will contain a built-in floating point math co-processor much faster than the 80486's; will contain a 16K internal memory cache; has an internal 64-bit data bus able to move 8 characters at one time, and may provide a 64-bit external bus for communication with the rest of the computer. In Summary The CPU in your computer has a long and varied family tree. Like many people, this tree has some branches better forgotten about. But overall, the sheer raw power provided by the currently-used generation of 8088 compatible CPU's gives home users computer capabilities undreamed of only a few decades ago. In future issues, I'll discuss upgrade options; what you may need (or NOT Computer News Vol. 1 No. 1 Page 3 need), why you need them (or don't), and how to install such upgrades if you choose to. Also to be covered is information intended to help you make purchasing decisions best suited to your needs and budget. Unlike such articles found in the 'glossy' magazines, this information will not be presented by an author or magazine 'owned' by hardware or software manufacturers or retailers. Instead, the discussions presented will be for the sole purpose of assisting you in selecting equipment that will fill your needs without wasting your money. Until then, happy computing! -David P. Miller -------------------------- Fred's Twenty-Five Mistresses by Ev Blechman My husband, Fred, has had twenty-five mistresses. At least, that's all I know about. Of course, they say the wife is the last to know - but not in my case. It happened! Not one, not two, not three, not four, but twenty-five times! And the sad thing is that I found out about the first one the moment he carried HER across our threshold. It was a cold January morning in 1978. Fred and I had only been married two months when he brought HER right to our doorstep. She was well disguised, but I was immediately intimidated by her because she weighed less than I did! Fred carried her over the threshold with no explanation and then, just like the ravenous beauty that pops out of the cake at a bachelor's last gig, SHE popped out of her carefully designed outer garments. Physically, my contours were much more curvy than hers. She was small, definitely angular, but solid. I should have deduced that from her outer garments. While I try to maintain a good California tan and a sunny disposition, she appeared in chic grey with black and silver accessories, and had a distinctive cool and precise manner. The delicate way in which Fred handled - and fondled - her should have warned me of the constant confrontations which were to become part of our future, and which I've endured now for fifteen years. I admit to a slight scowl as I noticed Fred handling her so gingerly, and carefully, like a thing of great fragility. I didn't take his pulse, but it must have been racing as he picked her up, turned her over, inspected her closely, and gently ran his hands all over her frame. She arrived, reminiscent of a bride and her trousseau, with various accessories. Fred immediately took charge, attaching the accessories in the right places. I couldn't help taking note of his excited manner, his joy, the wondrous expression of anticipation of glorious hours that he would spend with her.....and I was jealous. Because I was Fred's new bride, there was a strong obligation on Fred's time; I expected it to be spent with me! When we got married he said "Stick with me, Babe. We'll get rich building our Amway business together." I won out for a short while. Then came the long, lonely hours waiting for him to leave HER side. I never knew when I would see the light go out in the guest room where he had made a home for her. Many times, late into the night, I would reach out to touch him, only to find that he was not there. However, he was always at my side when I woke up in the morning - but dead to the world! I was beside myself. I had overheard Fred tell a friend on the telephone that he was teaching her to do just about anything he wanted. No wonder he appeared so haggard as he dragged himself into bed in the wee hours of the morning. I quickly discovered a marked distinction between us. I didn't have all the answers, she did. And my Fred was trying to find them! I built up quite a Computer News Vol. 1 No. 1 Page 4 resentment over this third party who was spending twenty-four hours a day in our new-bride paradise. Something had to be done. I'd had it. Fred was being "wenched" away from me. One night I stomped my way towards the guest room and flung open the door. Just as I suspected, there was Fred, hovering over her as he had day after day for the last six months. She remained still - not a move. But I heard her humming to him. My presence was completely ignored. I hurled out of the room, slammed the door behind me and waited for some response. None. They were totally engrossed doing their thing together. Hours later Fred came into our bedroom and announced he'd done all he could with her, and that he'd need to get another more powerful "model". I said nothing as my fury built up. He had made up his mind and my silence was mistaken for acquiescence. He got three more. All from the same family! As time went by, Fred had twenty-five of these - you guessed it - microcomputers under our roof (although, thank goodness, not all at the same time!) Instead of being restricted to just the guest room, Fred used a total of three bedrooms, and spent more and more time running from one bedroom to the other. Over a period of time, some left as new ones arrived. Just imagine how you would feel if you saw your home was invaded first by a TRS-80 Model I, then three Model IIIs, two Model 4s, two Model 4Ps, two Sinclair ZX-81s, a Timex Sinclair 1500, a Timex Sinclair 2068, a Radio Shack MC10, a Coleco ADAM, an Apple IIc, a Sanyo MBC 555s, a Sinclair QL, two Sinclair Spectrums, an IBM PC/XT Clone, a 286 clone, a booksize PC/XT, a Toshiba 1000 laptop, a Laser PC4 notebook, and a Microgold 286 portable. (Know any wife who would learn the names of her husband's twenty-five mistresses?) At this point in time, there are only twelve micros left, and like a family, they share some of the bedrooms, the play room, and the office. It took a while to convince me that I would be able to accept and eventually love, if not all, one or two of Fred's "mistresses." Believe it or not, I can't wait to get my hands on one every day when I do paperwork for our Amway business - with the $49 "AMBIZ-PAK" of eight programs Fred wrote while I thought he was "fooling around." Maybe a wife IS the last one to know....... -Ev Blechman About the Author: Ev Blechman is a former professional dancer and movie script writer. She and Fred are Amway Emerald Direct Distributors. ---------------------------------------------- STARTING UP A PC by Danny C. Mullen OK, now you have a PC or compatible system on your desk and you've got it put together and have powered it up a few times, right? What you may or may not have figured out is that these machines running the popular DOS systems look for 2 files automatically when starting their power-up sequences: CONFIG.SYS and AUTOEXEC.BAT in that order. Actually, it also looks for 2 other files, normally hidden, called IO.SYS and MSDOS.SYS if you're using MS-DOS. These two files are always loaded automatically, but don't go into the CONFIG.SYS file. They must always be located in the root directory of any disk you use to boot-up the computer, since they control the hardware at the lowest level, and contain the actual operating system. The file named CONFIG.SYS, contains a list of files to run that manipulate or setup hardware or special software you want to run. These can include driver programs that activate a mouse, setup RAM disks, activate different memory schemes, and a myriad of other possibilities. Computer News Vol. 1 No. 1 Page 5 The AUTOEXEC.BAT file usually contains a list of programs to run automatically to further setup your machine for use. Some examples are virus scan programs, print spoolers, and DOS shell programs. You will undoubtedly find many situations where these driver programs and the others can be put in either the CONFIG.SYS or AUTOEXEC.BAT files depending on the manufacturer's design or instructions. Sometimes they must be in the specific one the documentation states. Even more, however, some programs have two versions; one may have to go in CONFIG.SYS and/or the other might only go in AUTOEXEC.BAT. There is no hard and fast rule, except follow the manufacturers instructions. One other must for these two files is that they must be in the ROOT directory of the drive you are booting from in order for the machine to find them. PCs running the popular DOS operating systems today have a Directory and sub-directory scheme that's both a blessing and a curse. You will have ONLY ONE ROOT directory per disk that all other directories/sub-directories branch from. Floppy and hard disks can be organized this way, but usually your hard disks are where this is most important. EXAMPLE: C: ROOT of drive C Directory A of drive C Sub-directory B of directory A Sub-directory C of directory A Directory D of drive C A and D are directories of the root, while B and C are sub-directories of A. There is no limit to the sub-directories possible, except for disk capacity. Sub- directories can have sub-directories until you get lost in a maze. Most of the DOSs used today have a built-in command called TREE that will display this structure the same as in the above example. Why sub-directories? Well there is a limit to the amount of files the root directory can hold. So we should organize the disk into these sub-directories where we can keep related files and information together. Also be aware that each sub-directory does use a small amount of disk space for each one you make even if there are no files stored in them. By the way, sub-directory names are limited to eight characters with an optional extension; the same goes for actual filenames within those sub-directories. EXAMPLE: WORDPROC WORDPROC.NVL Another note in this area: most DOSs commonly used must be given a PATH to follow in order to find files Computer News Vol. 1 No. 1 Page 6 in these sub-directories unless you are actually logged into the same directory. By logging into a directory or subdirectory, I mean issuing the following command: CHDIR or CD (both are equivalent) EXAMPLE: CD\WORDPROC CD\WORDPROC\DATA Say for example you had a game name BLAST.EXE in sub-directory C above. To start it from the command line you could type the following commands: CD\A\C <ENTER>(CD means CHANGE DIRECTORY) BLAST <ENTER> (The backwards \ slashes represent the path - i.e. C is a sub-directory of A, which is a direct branch off the ROOT.) But, if you had a line similar to the following in your AUTOEXEC.BAT file, DOS retains this in memory after the machine has booted and will search, in order left to right, all the paths listed until it found BLAST.EXE or exhausted the list. EXAMPLE: (file above would be found here) PATH=C:\A;C:\A\B;C:\A\C;C:\B (search starts here) (ends here if not found) Looking at the above as an example, it follows that if you have certain files or programs that are used regularly, change the PATH statement so that the directory is near the beginning of the list. Your computer will find it sooner because it won't have to search the entire PATH. For example, if BLAST (above) was one program I used often, I would change the above example PATH statement to the following: PATH=C:\A\C;C:\A;C:\A\B;C:\B Now the file would be found sooner since the particular directory is searched first in the PATH. ======================================== << EXAMPLE CONFIG.SYS FILE >> (MS-DOS 6.0) ======================================== DEVICE==C:\DOS\HIMEM.SYS DEVICE==C:\DOS\EMM386.EXE I==E000-F7FF NOEMS DOS==HIGH,UMB DEVICEHIGH==C:\DOS\DBLSPAC E.SYS /MOVE Computer News Vol. 1 No. 1 Page 7 REM DEVICEHIGH==C:\ HYPERDKX.E XE c:2048 cw:512 HS DEVICEHIGH==C:\ANSI.SYS DEVICEHIGH==C:\DOS\SETVER. EXE FILES== 30 BUFFERS== 10 STACKS==0,0 FCBS==1 LASTDRIVE==D SHELL==C:\DOS\COMMAND.CO M C:\DOS\ /E:256 /p (Please note that the above lines are all one line divided by an empty line. There are no spaces at the end of one line and the next line where there are two or more lines represented.) ======================================== << EXAMPLE AUTOEXEC.BAT FILE >>(MS-DOS 6.0) ======================================== C:\DOS\SMARTDRV.EXE D REM LOADHIGH C:\DMP.COM /DC: /MX:10 LOADHIGH C:\DOS\MOUSE .COM LOADHIGH C:\DOS \DOSKEY .COM /bufsize==256 PATH C:\DOS;C:\HDM;C:\WINDOWS;C: \ POWERC;C:\MASM\BIN; C:\MASM\BINB;C:\BORLAND C\B IN;C:\PV;C:\SA;C:\SA1 VERIFY==OFF PROMPT $p$g (Note: The path statement above continues on a second line, which is OK provided it doesn't exceed 127 characters in total length. HINT - use shorter names when naming directories or subdirectories.) ======================================== <<EXAMPLE TREE LISTING>> ======================================== Directory PATH listing Volume Serial Number is 17EF-3230 C:. BORLANDC BGI BIN Computer News Vol. 1 No. 1 Page 8 CLASSLIB EXAMPLES INCLUDE LIB SOURCE CRTL CLIB EMU IOSTREAM MATH RTLINC WINLIB INDEP DOC EXAMPLES CHELP CLIOLE CMDLG DDEML DRAGDROP SOUNDER TRUETYPE DOS FTREE HDM WS5 03660464.C SA1 (as you can see, it gets rather involved at times, but your directories don't have to be as complex) What I've covered in this article is only a small part involved in the typical DOS machines of today. You can delve further into the above areas by studying the DOS manuals and third party books for tricks or tips to optimize your system to your needs. -Danny C. Mullen (About the author, Mr. Mullen is in the US Army full time, looking forward to retirement in 1995. Currently stationed at Fort Polk, LA and is about to be transferred in June to Fort Hood, Texas. From the mud of Louisiana to the sands of Texas, with the same bugs and heat. He is also the author of PRICON a shareware utility for printer setup and a number of public domain programs both for the TRS-80 Model 4 computers and for IBM/clone computers. All of which are available from the MS Library or the Model 4 Library of the FILE CABINET. ---------------------------- BASIC Anatomy I A Menu - Program Number One by Fred Blechman The dictionary defines "anatomy" as the the art or science of dissection, Computer News Vol. 1 No. 1 Page 9 and is derived from the Greek word meaning "a cutting up." Just about anything can be cut up to separate its component parts, thus allowing some analysis of function. That's what we will be doing in this series on "BASIC Anatomy" - cutting up BASIC programs line-by- line to see how they work. I must assume you have at least a rudimentary knowledge of BASIC, and are familiar with some of the most-used commands, such as RUN, LOAD, and PRINT. Hopefully, you also are at least familiar with a FOR-NEXT loop - but I'll explain that briefly anyway when we get to it. The BASIC I'll be using is very generic, and should be applicable to most microcomputers. Specifically, I'll use the BASICA or GWBASIC used on IBM PCs or compatibles, and will specify those statements peculiar to the IBM PC. MENU.BAS (Program Listing Number one.) The subject of our BASIC Anatomy lesson today, class, will be a short program (Listing 1) I wrote years ago to use with my $50 package of programs for Amway Product Distributors. The "AMBIZ-PAK" consists of eight BASIC programs, plus this MENU.BAS program. Instead of having to remember filenames when using any of the application programs, all the user does - after getting into BASIC - is type RUN"MENU" and press the ENTER key. A "menu" of the programs names appears on the screen, each with a number. The user simply types a number, presses ENTER, and the computer loads and runs the selected program. Each of the application programs, when they end, return to MENU.BAS . If the user wants to get out of BASIC and back to DOS, Number 9 is selected. All very simple and friendly. If you have several BASIC programs that you normally use, even though some are only used occasionally, you can generate a MENU.BAS just like this, with your own program names and filenames. Here's how it works, line-by-line: Lines 100-160: The REM means that anything following is a REMark for the user. The computer does nothing but display this in a LISTing. Generally, REMarks are to remind the programmer what he did, and why. The apostrophe (') can also be used instead of REM. The use of the asterisk (*) for borders is quite common, and gives some style to program LISTings. The important thing here is to identify the program, author and date, as well as any revision dates. Line 180: SCREEN 0 is used with graphics displays on the IBM PC to identify a text screen that allows 16 text colors. (No colors are used in this particular program.) Since SCREEN 0 can save either 40 or 80 characters on a line, the statement WIDTH 80 specifies 80 characters. Notice that a colon (:) separates the two statements and allows them to be put on one numbered program line instead of two. Most BASICs allow a "multi-statement line." The apostrophe is used here before the remarks instead of REM. Any remarks can be omitted from the program; they are simply there for Computer News Vol. 1 No. 1 Page 10 explanation. If you are typing in this program, you can omit all program remarks. Line 200: IBM PC BASICs have a line of legends at the bottom of the screen showing some function key commands. This takes up a screen line and can be confusing, so KEY OFF deletes that line. CLS clears the screen. Lines 220-260: Here's a neat trick if you have an IBM PC or compatible. It will convert your keyboard to all capitals and numbers automatically. This is useful if you have a program that expects capital letters, and will be confused by, or not recognize, lower-case letters. It also allows the numeric keypad on the right side of the keyboard to use numbers instead of arrows. While both these functions (caps and numbers) can be commanded from the keyboard with the CAPS LOCK and NUM LOCK keys, this saves the user from having to remember to do that if the program requires it. The IBM PC uses different SEGments of memory to store built-in instructions and application programs. A BASIC program starts at a segment somewhere above the bottom of memory. DEF SEG==0 moves the memory address pointer to the beginning of memory. The POKE &H417,96 statement changes the value at memory location 417 (hexadecimal) to decimal 96 from its default of 128. This tells the computer to provide caps and numbers. The details of "why" are not important here. DEF SEG in Line 260 returns the address pointer to the beginning of the BASIC program. Now if you should want to use lower-case letters or the cursor keys, you would use the CAPS LOCK and NUM LOCK keys to revert them back - or, while in BASIC at the Ok prompt, type DEF SEG==0:POKE &H417,128:DEF SEG and press ENTER. Line 280: STRING$(79,205) sets the string variable X$ equal to 79 continuous double borderline symbols. The first number in parentheses is the number of characters, the second number is the ASCII code for the character (#205 in this example.) From this point on, X$ can be used to draw the border. Line 290: This is a DATA statement, and contains the filenames for all the programs you will have on your menu. The .BAS extension is not required, since BASIC assumes this as the default in a BASIC program filename. This information will be used with the READ statement in Line 340. Stick with me. Line 320: Each of the filenames in DATA will be held in an "array", a series of locations in memory designated, in this example, as A$(X), usually called "A-string sub X". BASIC generally allows only up to 10 array locations without other instructions, since memory has to be set aside for array space. The DIM A$(15) sets aside 16 locations (0 is included), although this program will not use them all. It's shown here in case you have more than 10 items in your menu. Line 340: This multi-statement line uses a FOR-NEXT loop to READ the DATA into the A$-array. The FOR sets X equal to 1, READs the first DATA item from Line 300 (it finds the DATA wherever it is in the program), and plugs this into array location A$(1). Computer News Vol. 1 No. 1 Page 11 The NEXT advances the X-count by one (since no other increment is specified) to a value of 2. This is then used for the next DATA filename to be put in A$(2), since X is now 2. This continues, plugging the data into the array until the value of 8 is exceeded, when the program falls through to the next program line. Lines 360-400: The screen title, with double borderlines above and below, are printed at the top of the screen. Lines 420-620: The selection instructions and each program number and name are printed on the screen, followed by another double borderline. The TAB(7) indents each line 7 spaces. Line 640-680: Here the computer asks you to type the number of your choice, and then waits for your input with INPUT X. If you respond with a 9, you are sent back to DOS with the SYSTEM command. If you respond with a number less than 1 or greater than 9, this is an error, so the computer BEEPs and sends you back to Line 360 to try again. Line 700: If you have selected numbers 1 thru 8, this number was assigned as the value of X by INPUT X in Line 660. This is now the value of X in Line 700. The filename in this location in the A$-array is then used with the RUN command to load and run this program. While this is a relatively simple program. MENU.BAS illustrates the use of a number of common statements. With some imagination you can add all kinds of bells and whistles, but this does the job very well as it is. Have fun! -Fred Blechman (About the author, aside from being Ev Blechman's husband, he has written articles for many Computer Magazines and computer books and is now retired.) ----------------------------- Hide.Bat (See Batch File Number One) by Danny C. Mullen What is a batch file, you say? Simply a list of commands written in plain english (thank goodness) that DOS will execute line by line. While the concept is easy, and simple batch files are easy to make, there is the potential to create very sophisticated ones that are hard to interpret (unless you wrote it). While the intent of batch files is to make a list of commands or files to run, there are a few commands that DOS has to help you build the more complex types. Batch files can ease your work by enclosing a sequence of commands or files to run in one file (the batch file). Therefore if you need to constantly or occasionally run the same commands, just run the batch file instead of typing all those commands again. It can really save those keystrokes. Let's see an example of a simple batch file: (let's call it DZ.BAT) Computer News Vol. 1 No. 1 Page 12 copy c:\word\smith.txt b:\wordbak b: cd\wordbak dir c: That's it, a 5 line batch file. The first line copies a file from a certain directory on drive c to a certain directory on drive b. The second line switches to drive b. Line three changes to the directory where you copied the file. The next line shows the files in that directory, and then the last line switches us back to drive c. This example could be of benefit if we had been working on a file named smith.txt earlier and wanted to back it up to a safety disk, and also verify that it had been copied to drive b. In order to make this batch file, you would start a text editor or word processor program. DOS 5 and higher has a good editor named, appropriately, EDIT which works fine. When using a word processor, ensure you can save files in pure ASCII format, since certain formatting commands used by them could disrupt the batch file's execution. Type in the lines as above, and then save the file with the name DZ.BAT. The BAT ending allows you to quickly identify it as a batch file, and it's a good habit to follow. You also shouldn't name a batch file with the same name as a built-in DOS file (i.e. FORMAT.BAT vs FORMAT.COM) since DOS will execute files with .COM and .EXE ending first. Your batch file wouldn't get a chance! After saving the DZ.BAT file to disk, exit the editor or word processor and go to the DOS prompt. Type in DZ.BAT and your file will execute. Now the same goes for batch files as any other command; that is if it can't find the program to run, or files to copy or has other errors, then you'll receive appropriate error notices on the screen. You may have to check your batch files for misspelled words or commands, or ensure that directories and files actually exist. I've written a batch file (see the listing for HIDE.BAT) that will create a subdirectory on a disk (if it doesn't already exist), make that subdirectory hidden from normal viewing, and then copy a file to it. Something like this would help get little-used files out of other crowded directories or serve as a backup in the event of accidental erasure of the main file. It can also keep prying eyes from your private files. This is not a hacker proof method of hiding files or directories, but it is fairly quick and easy. I refer you to your DOS manual for further, in-depth coverage of batch file techniques. However, I will now guide you through HIDE.BAT: (I won't cover lines with similar content) @echo off Ensures lines aren't printed to the screen twice. The @ keeps the first line from actually printing on the screen. cls Clears the screen. echo. Computer News Vol. 1 No. 1 Page 13 Adding the dot prints a blank line. echo ====== Prints following characters to the screen good for a menu or notice as here. pause Suspends execution until a key is pressed and also prints PRESS ANY KEY TO CONTINUE. By pressing CONTROL C at this point, the batch file will quit running, though it will verify this by asking for confirmation. if exist %1 Checks for existence of a file. (I didn't use this in the file). The %1 (there exists %0 - %9) substitutes the first parameter on the command line to this position in the batch line. The %0 holds the name of the batch file itself (i.e. HIDE.BAT). if exist %1\nul By adding a \nul checks for existence of a directory. Here it jumps over the directory-making command if the subdirectory already exists. goto skip Makes execution jump to a line with the name indicated. if "%2"===="" Checks to see if we entered a filename on the command line. If no entry, goes to usage line to show you the syntax. md %1 md (make directory) using the first parameter from the command line. attrib +h %1 Makes the directory hidden by setting its attribute to hidden (+h). :skip Names a point in the file that you can jump to using the goto command. The colons in front of a word designate a label. if not exist %1\%2 Tests to see if the file already exists in the directory and warns you if it does so as to prevent overwriting it. copy %2 %1 Copies the file (%2) to the directory we want (%1). Computer News Vol. 1 No. 1 Page 14 rem Remark lines that let you document your batch file. Notice that I put these REM at the end since DOS must scan and interpret each line in batch files whether they are commands or remarks. This can allow faster execution by putting remarks at the end. That's all there is to it. While a bit more complex than the first example, I hope you can see what I've done to make a handy little batch file that also does some rudimentary error checking, and may actually provide some benefit to you. There is a book called ADVANCED BATCH FILE PROGRAMMING by Dan Gookin, published by WINCREST/McGRAW-HILL that can give you in depth coverage of this topic. Enjoy. -Danny C. Mullen ------------------------- BASIC PROGRAMMING Part 1 by Charles Weaver This is the first in a series of articles on programming in BASIC. The series was originally published in PC Today magazine starting in February, 1992. By the end of the series, you should be able to write at least simple programs. With more practice, you may well end up surprising yourself. In this article we cover the necessary preliminaries. Starting with the next one, we will get down to business. To start with, we consider what a program, pro- gramming and computers really are while trying to anticipate and answer some of your questions. A program is really nothing more than a complete set of detailed instructions to tell your computer how to do what you want done. Many of us have had some experience with programming people rather than computers, perhaps by giving someone a recipe. Since the recipe is a set of instructions, it is a kind of program. The difference lies in for whom or what the program is intended. Sounds simple enough but why not do so in the English language? After all, English is good enough for us mere mortals? Yes, it is. But you are much smarter than your computer; you can figure out what people mean, often in spite of what they actually say. The recipe, for example, may call for pre-heating the oven but it would rarely say to turn the oven on first. If a computer program were to omit that step, it would not be done. With the chef, we can make some reasonable assumptions; with the computer, there is no such thing. The computer, as you will see, takes everything literally and often leaves us wanting to say "You know what I mean!". Thus, a vague or ambiguous human language, English or any other, just won't do. Nor will a vague or ambiguous program, regardless of the language in which it may be written. And, without a program, the computer is just a box; it can't do anything. Programs make your computer a very useful household appliance and business tool all in one. Why would anyone other than a programmer want to write a program? The primary reason is having a need to accomplish a particular task. In such cases it usually makes sense to check first to see if the needed program already exists. Why reinvent the wheel? If there is no such program, you might wonder why. Often this means that either there is a better way than doing it with a program or you are among a very few people who have such a need. In many cases, the "better way" may be a hardware (as opposed to a Computer News Vol. 1 No. 1 Page 15 software) solution. For example, if all you need to do is type a short letter, a typewriter will do just fine. If, however, you need to do a lot of letters, or you use correction fluid by the gallon, a word processing system (hardware and software) may be the way to go. Today, you have a choice. While a typewriter may be easier to use and cheaper to buy, it is also rather limited in what it can do. With a typewriter, and "hardware" solutions in general, your skills and knowledge of how to use it become the "software". A word processor, on the other hand, is usually more complicated to use and more expensive but the results may be worth it. Still, how much sense would it make to spend the money for one and take the time to learn how to use it if all you wanted was to type that one short letter? One of the beauties of a program is that you can use it again and again for similar, if not identical, chores. If you need to do some calculations, you also have several choices: pencil and paper, a calculator or spreadsheet software, among others. A spreadsheet program like Lotus 1-2-3 has far more capabilities than most people will ever need to do many kinds of calculations. Such commercial software packages often endow the novice with the abilities of a pro. Still, if your needs are specialized enough, and no one has already done so, writing your own program may be justified. Usually, the choice here would be based on the volume and complexity of the calculations involved. If you want to play chess, the traditional board and pieces, plus an opponent, is the easy way. Without an opponent, a so-called "chess computer" may be the answer but it is a single purpose solution; it plays chess - period. It does, however, allow you to yell at your opponent and still sleep indoors that night. Writing your own chess program would be overkill no matter how often you used it. I like both chess and contract bridge but I often lack an opponent (or three in the case of bridge). To remedy this, I bought software for both games. At no time did I ever consider writing my own. With so many others out there who enjoy these and other games, such software is readily available in several varieties and at very reasonable prices. There is, of course, the exceptional reason to write a program you just want to. You may be curious or just want to see how it's done. Fair enough. In this case it really doesn't matter if there are better methods or existing software available. Nor does it matter if you will only use your program once. This is probably the reason you are reading this article. As you become better at programming, the option to write your own program also becomes more popular. Make no mistake about it, writing a =real= program, much like writing a book, is a lot of work. Since I have done both, I know how fitting the analogy is. Real programs, like real books, may run hundreds of pages in length. In both cases, the author usually begins knowing what to write. The trick is in how to write it. In a program or a book there are a lot of ways to say the same thing and choosing among them is a common problem. Just like eating an elephant, it can be done if we proceed one bite (byte?) at a time. Eventually, we will finish the job. Fortunately, programs of only a page or two in length will often get the job done. Over the next few months these articles will give you what you need to get started and actually write some programs. From there on, it is a matter of learning and PRACTICE!, PRACTICE!, PRACTICE!. Given enough of both, you can go about as far as you want. Surely you will progress from the stage of a wannabe programmer to at least programming literate. To Computer News Vol. 1 No. 1 Page 16 reach the guru level takes years of experience and often starts at a university. For those who have no intention of seeking that level, a different approach is needed. While this series of articles will not create any gurus, it may be responsible for a few computer widow(er)s. OK, so you want to write a program. Why a BASIC program? Again, there are several reasons. First of all, you probably already have BASIC since it comes on the DOS disk of many PCs sold today and often at no extra charge. Simplicity is another reason. BASIC, you see, is an acronym (and that is why it is properly spelled in all caps) which stands for Beginner's All-purpose Symbolic Instruction Code. For now at least, you are the beginner and this language was meant for you. While there are hundreds of other programming languages available, BASIC is one of the easiest to learn. Created in 1964 by two Dartmouth professor's, BASIC has been substantially improved over the years until becoming the much more capable dialects (versions) of today. If there is a "standard" version of BASIC, it would have to be Microsoft BASIC, the one that comes with most PCs today. It does, however, have two different names. IBM calls it BASICA (advanced) and the compatibles usually call it GW-BASIC. For our purposes, they are the same. The latest version is called QBasic and began shipping with DOS 5.0. If that's what you have, come along for the ride. As you will see when we get to it, QBasic is very similar to the others. There are also some graduate versions (like Quickbasic, etc.) which have some advantages over the plain vanilla varieties. If or when you outgrow plain vanilla, you might wish to consider one of them. There is at least one more reason for using BASIC. Your PC does not understand any "higher level" (English-like) language, including BASIC! It knows only its own native machine language which consists solely of 0s and 1s (zeros and ones). Since it would be a real nuisance for people to use such a language, we need an intermediate language that fits between our native tongue and that of the PC. BASIC fits the bill and is, as mentioned earlier, among the easiest to learn. We begin then with a tie; your PC doesn't understand BASIC and you may not either - yet. A PC is, however, a very fast learner. Given the required program, which we have been calling BASIC, it will instantly become an expert. In this case, the program is actually called an interpreter and, similar to its human counterpart, it translates BASIC program statements to machine language. The computer then executes, or carries out, these translated instructions to accomplish the task at hand. As the primary function of what we have been referring to as BASIC or GW-BASIC (Gee Whiz BASIC), it translates and then executes one statement at a time until it runs out of statements or encounters an error. Thus, each time a given statement is encountered, it must be translated again. A more efficient way would be to translate the entire program, store the results and then =execute= (run) them. This is the function of another kind of program called a =compiler=. Think of it this way; the human interpreter translates spoken language while a compiler is the equivalent of translating a written document and returning the complete translation in permanent form. So long as the original (source) document does not change, there is no need to change the translated (object) version. A compiler may be more efficient but it is usually available only as an extra cost option. Its primary advantage is more speed. Since the computer doesn't have to stop after executing each statement to interpret the next one, the executable file it creates runs much faster. If you Computer News Vol. 1 No. 1 Page 17 need the greater speed for things like graphics, which are notoriously slow in interpreted BASIC, it may be worth it. Depending on the circumstances you have, a compiled program may run ten times faster. Just remember that speed is relative. Compared to us, the slowest PC is still fast enough to blow our socks off. Interpreter or compiler, so long as either of them can figure out the intention of a BASIC program statement, it will work. Neither of them, however, tries to second guess the meaning of a statement. Thus, you must follow the rules religiously. Being close just isn't good enough. The reason for this is actually quite simple. The computer, be it a PC or a supercomputer, can be thought of as a lightening fast idiot. Typically deaf, dumb and blind its only redeeming social value may be its speed. Its only other fundamental abilities are addition and knowing that zero and one are not the same. (And people are intimidated but such a machine?) Still, if we combine the speed of a computer with the ingenuity of a program(mer), the result can be MAGIC. We must now prepare for the articles to follow by making a few assumptions, telling you what you are in for, what's in it for you and just touching the surface of programming itself. The assumptions are necessary because we simply can't deal with all the possible combinations of software/hardware/DOS, etc. available out there. Thus we restrict ourselves to GW-BASIC, the primary dialect, to start with and a minimum of hardware. You will also need just enough knowledge of your DOS to get into and out of BASIC itself and, perhaps a few other minor (DOS) tricks. What are you in for? As we go further into programming it will become increasingly obvious that having a concern for details is important. If you follow along with the rest of us, this will naturally develop as we go. This concern for details lies at the heart of the problem of "civilians" trying to talk to programmers. Programmers, unlike most people, must be very detail oriented. Unfortunately, this has resulted in many programmers being labeled as weird, or worse. Both the effects and the labels can be hard to shake. I still find myself trying to figure out what a person means by their question and what level of detail is appropriate in my answer. You will also learn that l-o-g-i-c is not a four letter word. It is among your most powerful allies, especially when dealing with a completely obedient slave - the PC. And here you will learn how frustrating complete obedience really is. Many of us have dreamed of having such a slave and how great it would be but, in this case, the computer slave is an idiot. Taking everything quite literally, it does exactly as it is told. If it does something wrong, that means you told it something wrong. After all, it is not smart enough to do right or wrong (or to know the difference). Thus, you must be careful to give it instructions which are absolutely clear, correct and complete. We call this paying attention to details and being logical. The care and patience needed to deal with a small child would also be quite helpful. Another detail to which you will learn to pay attention is timing. In programming as in comedy, timing can be everything. You must not only do the right things but at the right time(s) and the articles to follow will make this quite clear. If you don't get the timing right, your program could well turn into a comedy - but you may not be laughing. So what's in this for you? If you are beginning to wonder about whether or not you should continue, don't worry. This is truly a case of the ends Computer News Vol. 1 No. 1 Page 18 justifying the means. If you are willing to put up with the idiosyncracies of your PC and programming, you can expect to be justly rewarded in the end. To me, one of the greatest rewards is the satisfaction of solving the ultimate puzzle. When you have successfully explained to a machine (with the IQ of a flower pot) how to accomplish a given task, you have, indeed, solved a challenging puzzle. In doing so, you will experience another of the rewards - that of going one-on-one with your PC. Lots of people develop an attachment for a car or a favorite piece of clothing. Is it so unnatural then to have a "relationship" with your PC? Even if it is (affectionately) called an idiot? Most people never really get to experience such a thing. And, obviously, when you finish a program, you will have accomplished some useful work (the task itself). Regardless of the kinds of programs you do, you will gain a much better appreciation of your PC. For example, it is difficult to appreciate fully what an automatic transmission does for you until you have driven a manual. With a PC or a car, if you started with purchased software (the automatic equivalent), you may now be taking it for granted. Your first experience at programming (or clutch work) will give you a new perspective. It is also only fair to warn you that, in spite of some frustrations with programming, it is a powerful drug that can easily become addictive. For this reason, I apologize to your family. After more than 20 years of programming I have come to recognize that the frustration is actually just a cleverly disguised personal challenge from my computer to me. My wife, however, has other words for it. No matter, programming is still my hobby though no longer my profession. When it was, I spent much of my time writing the software others wanted. The PC has now made it possible for me to write what I want, thus making it more fun than work. Before getting into the nuts and bolts of programming, we should look at the big picture. Basically, a program does three things: input, process and output. Keeping these three distinct functions in mind will often prove helpful and serve as a map to follow as we travel the uncharted waters. For example, the reference above to the importance of timing. Before a program can process something, it must have something to process - the input. Thus, the input function should come first. Likewise, the output function should follow processing. Since these steps can also be combined, we are left with many more possibilities than you may think. This natural order of things will soon become second nature as it pops up time and again. The primary thing that most programs do not do is completely replace the person. Contrary to the fears of many, people skills and judgement are still necessary ingredients. A major problem with this lies in the belief known as "Deus ex computer", the Latin for "God from the computer". The opposite disease is "The computer made a mistake.". Both can be fatal. It is never wise to assume that a program works right unless you have verified it to your own satisfaction. Both people and companies make this same mistake. In fact, a few years ago, a company found itself in bankruptcy because of this. When the auditors looked into the affairs of the firm they found that essentially all of the firm's accounting was being done with a large, complicated spreadsheet. The spreadsheet they built from the commercial software, not the commercial software itself, contained over 1000 errors but it had been assumed to be correct. Without proper accounting, the business failed. Computer News Vol. 1 No. 1 Page 19 How about the second condition? Can a computer "make a mistake"? Not likely! Granted, there are relatively rare instances of hardware failure that could result in various problems. Typically though, such failures result in nothing being produced or conditions (smoke and sparks?) which should be obvious. It is much more likely that the programmer, or the person using the program, made a mistake. If you design your programs properly, you can make them "bullet proof" but it requires more work on your part to do so. You can also dress up a program as much as you like and this too takes time. If you do it, the results will look professional, even if they are not. However, a monkey in silk is still a monkey. Better to be sure you have the program right before you start looking for a wardrobe. And, finally, some confessions. Lots of people think that you have to have a heavy duty background in mathematics and other equally unpleasant stuff to do any programming. True or false? It's some of each. Such a background certainly would not hurt but you may be surprised at how far you may be able to go without it. People with music backgrounds, for example, often do well in programming though no one seems to know why. For our purposes, your desire and curiosity are more important than your background. If you read this magazine regularly, it implies that you can handle programming. The question is, =will= you? -Charles Weaver (About the author) Mr. Weaver is an engineer with Ford Motor Company and an adjunct professor in the Operations Research and Information Systems Department at Eastern Michigan University. He resides in a suburb of Detroit. ---------------------- DOS UPGRADES: Should We? by David Goben There has been a lot of rumbling in the PC industry about DOS upgrades. If it isn't MS-DOS, it's DR DOS. Why are there so many upgrades so close together, and should you bother upgrading? Last year MS-DOS 5.0 (and DR DOS 6) came out. This year it is MS-DOS 6.0 (and DR DOS 7). The reason why these upgrades have arrived is because of demands from users for better utilities, features, and support. Each new upgrade usually addresses bugs in the older version, providing easier usage of programs, and supporting I/O devices and hardware, such as multimedia and memory, that were not previously available. However, just because extended support is provided, that does not mean that you should just race out and buy the upgrade. Before upgrading your DOS, you should determine if you =need= to upgrade your Disk Operating System (DOS). Check with these following general rules: MS-DOS 1.x: If you have a floppy-based system with disk capacities of 180K or less, and 640K or less of memory. MS-DOS 2.11: If you have a floppy only system, and the disk capacity of the drives does not exceed 360K, and you have 640K or less, or have a low-capacity hard disk. Computer News Vol. 1 No. 1 Page 20 MS-DOS 3.x: If you have one of the above systems, but need the power of XCOPY, or have 720K disks, or have high density disks, or have a high capacity hard disk. MS-DOS 5.0: If you have 1meg of memory or more, huge hard disk, high density disk drives. MS-DOS 6.0: If you have More than 1meg of memory, and have a near-full hard disk. Of course there are other reasons, but I have greatly generalized. As a matter of review, let us take a look at the evolution of MS-DOS. Tim Patterson wrote the original version called Q-DOS, for Quick & Dirty Operating System (Microsoft claims it was called 86-DOS, but we know better. =That= is what they called it when they bought the rights to it), in mid-1980. Microsoft obtained a license to the DOS to develop 8086-based software. In October, 1980, IBM approached Microsoft (and others) about writing an operating system for a new computer. In July 1981 Microsoft bought the rights to Q-DOS and renamed it MS-DOS (Bill Gates was reluctant to do so, but at the insistent urgings of his father, who loaned him the money to do so, he bought those rights). IBM in turn offered this DOS as PC-DOS 1.0 by license from Microsoft. Version 1.1 introduced the EXE2BIN utilities, and added date and time stamping of files. Also, enhancements were added to the commands COPY, DEBUG, DISKCOMP, DISKCOPY, FORMAT, LINK, and MODE. In March 1983 MS-DOS 2 was released. It incorporated many UNIX-like features, such as hierarchial file structures (subdirectories), hard disk support, file handles, I/O redirection, pipes, filters, background printing, volume labels, more file attributes, installable device drivers, user-defined configurations, disk butters, display device driver, dynamic allocation, custom shells, and many other features. New utilities supplied with this version were: ASSIGN, BACKUP, BREAK, CHDIR, CLS, CTTY, FDISK, FIND, GRAPHICS, MKDIR, MORE, PATH, PROMPT, PRINT, RECOVER, RESTORE, RMDIR, SET, SORT, TREEE, VER, VERIFY, and VOL. For many reasons, this version was the most revolutionary. In August 1984 MS-DOS 3 was released with the introduction of the 80286 PC/AT machines. It includes direct control of the print spooler by applications, extended international support, extended error reporting, support for file record locking and sharing, support for networks, support for larger hard disks. Version 3.2 was released to support 3-1/2" disks. New utilities and commands introduced with MS-DOS 3 were: ATTRIB, COUNTRY, GRAFTABL, KEYBxx, LABEL, LASTDRIVE, SELECT, SHARE, and VDISK. Enhanced were: BACKUP, DATE, DISKCOMP, DISKCOPY, FORMAT, GRAPHICS, PRINT, and RESTORE. MS-DOS 4 was originally released in Europe and Asia, and dealt primarily with international support. MS-DOS 5 was released in Mid-1992. It was the first version of MS-DOS that I really liked, because it was moving away from the much-hated CP/M type operations. The "standard" BASIC interpreter was dropped, and replaced by QBASIC, which is a toned-down version of QuickBASIC, which is a fantastic BASIC compiler. QBASIC allows you to load and run programs, but you cannot create executable stand-alone files like QuickBASIC. Not since MS-DOS 2 has there been such a major overhaul of the operating system and utilities. A help command was added, built-in help was also Computer News Vol. 1 No. 1 Page 21 added to the programs and commands. A powerful editor was added (actually using the QBASIC editor but restricting it to text editing). A DOSSHELL utility was provided to make selecting files easier for those who do not want to mess with DOS commands. If you have 1meg of memory or more, you can really go to town by loading many routines into high memory, and in extended memory. A disk caching system, SMARTDRIVE, was introduced that is worth its weight in gold (if you have more than 1meg of memory). One feature I really liked is that you can now display disk directories in sorted order by specifying an /O parameter with DIR. I also really like the DOSKEY utility, which allows me to recall previous DOS commands, and edit them. MS-DOS 6 was introduced in April 1993. This version provided a lot of improvements to MS-DOS 5, but was not earth shattering. It does include MEMMAKER, that is useful to systems with 1meg of memory or more, a powerful UNDELETE command to recover deleted files, a powerful anti-virus utility was included, a disk space doubler (automatic file compression and decompression), and a powerful, and very fast disk backup utility. Included gems are DELTREE, to quickly delete subdirectory trees, MSD, to display a diagnostic of the computer -- this tells me exactly what is inside the computer, and their ratings, DISKOPT, to optimize the files on the disk, storing them in consecutive order, and a few other features. All-in-all, unless you have a specific need for features listed in a version of MS-DOS that is higher than your own, there is no real reason to upgrade. For example, MS-DOS 5 and 6 are a waste of money on an IBM/XT HD with 640K, 2 floppies, and a hard disk. Also, the newer versions of DOS obviously focus on the newer technology, which means that as each new version comes out, older features or support will eventually fall by the way-side. Personally, I still find myself using MS-DOS 2.11 on one machine, and 3.2 on another. One of the main reasons I upgraded to MS-DOS 6 was because most of my applications are window-oriented, and I had the beef in the computer to take full advantage of the the features offered by the DOS. Should you consider any upgrades? If you have an IBM/XT compatible, the most that you would ever need is MS-DOS 3.x. If You have an IBM/AT compatible with at least 1meg of memory, then you may consider MS-DOS 5 or 6. If you have a 386 or 387, with more than 1meg of memory, then MS-DOS 5 or 6 is worth considering. A final rule of thumb might be the following comparison chart of consideration for upgrades: IBM/PC: MS-DOS 2.x IBM/XT: MS-DOS 3.x IBM/AT: MS-DOS 5 3/486: MS-DOS 5 MS-DOS 6 should only be considered an option if you require any of the features previously described for that version. MS-DOS 6 is basically MS-DOS 5 with additional utilities. CONCLUSION: I hope that I have clarified some of the mysteries about the MS-DOS "legend", and gave you insight into the system. I hope also that after reading this, you will at least stop and consider your options and requirements before racing out for an upgrade. If you have any further questions about DOS versions or commands, please address them to Computer News PC. -David Goben Computer News Vol. 1 No. 1 Page 23 We encourage each contributor to provide a glossary of terms used in his article that can be printed in this section.- CNPC "Buzzwords" A glossary of terms used in this issue. by David P. Miller ANSI Codes A character code designed by the American National Standards Institute for use in computers. The ANSI code defines the meaning of all 256 possible values used in a computer. Also sometimes referred to as the "PC Character Set". See: ASCII Codes, BYTE, CHARACTER CODES. ASCII Codes American Standard Codes for Information Interchange. Because the most common use of digital information at the time this code was developed consisted of communications equipment using only 7 bits, the code only defined character codes 0-127. See: ANSI Codes, BYTE, CHARACTER CODES. BINARY A system of numbering using only the digits "0" and "1"; number base 2. Each succeeding position to the left is worth 2 times the value of the position to the immediate right, times the number contained in the position. Thus, "101" in binary would be 1*(2*(2*1))+1. See: BIT, BYTE, NUMBER BASE. BIT Short for "BInary digiT". A term denoting one of the numbers "0" or "1" used in the Binary Numbering System. See: BINARY, BYTE, NUMBER BASE. BYTE An arbitrary term denoting the smallest number of bits used to represent meaningful data in a computer: 8 bits. Although different numbers of bits were used by communications equipment prior to the use of the term, it was first applied to computers and thus always means '8 bits'. A byte contains possible values of 0 to 255, and each value is assigned a character code that is converted by the computer to characters such as "A", "0", and "%" for display and printing. See: BIT, CHARACTER CODES, KILOBYTE, MEGABYTE, GIGABYTE, TERABYTE. CHARACTER CODES A byte may represent a number from 0-255. Each value is assigned a character that will be converted for input, display, or printing when sent to the appropriate device. Up to 256 characters are available for use by a computer. See: ANSI Codes, ASCII Codes, BYTE. CHIP An integrated circuit in a package that can be inserted in a receiving socket or directly soldered into a circuit board. Integrated circuits consist of microscopic transistors, resistors, capacitors, and sometimes other electronic components. See: CPU. Computer News Vol. 1 No. 1 Page 23 CPU An acronym for "Central Processing Unit"; the 'chip' providing all calculations and control in a computer. Frequently referred to as the 'heart' of 'brain' of a computer. See: CHIP. DECIMAL A system of numbering using the digits "0" through "9"; number base 10. Each succeeding position to the left is worth 10 times the value of the position to the immediate right, times the number contained in the position. Thus, "123" in decimal would be 1*(10*(10*1))+2*(10*1)+3. See: NUMBER BASE GIGABYTE 1,024 Megabytes, or 1,048,576 Kilobytes, or 1,073,741,824 bytes. An arbitrary term used to denote memory or storage size in computers. Nearest decimal equivalent is "Billion". See: BYTE, KILOBYTE, MEGABYTE, TERABYTE. HEXIDECIMAL A system of numbering using the digits "0" through "9" and proceeding through the arbitrarily assigned numbers "A" through "F" for values of 10 through 15; number base 16. Each succeeding position to the left is worth 16 times the value of the position to the immediate right, times the number contained in the position. Thus, "123" in hexidecimal would be 1*(16*(16*1))+2*(16*1)+3. See: NUMBER BASE KILOBYTE 1,024 bytes. Although 'Kilo-' is generally accepted to mean '1,000', it is taken to mean 1,024 in computers because of the use of binary and hexidecimal numbering systems. See: BYTE, MEGABYTE, GIGABYTE, TERABYTE. MEGABYTE 1,024 Kilobytes, or 1,048,576 bytes. Although 'Mega-' is generally accepted to mean '1,000,000', it is taken to mean 1024*1024 in computers because of the use of binary and hexidecimal numbering systems. See: BYTE, KILOBYTE, GIGABYTE, TERABYTE. NUMBER BASE A reference to the maximum value that can be contained within a numeric position, and the value of each succeeding numeric position to the left when a value is "carried". The rightmost position of an integer in each numeric position can contain the maximum number of values in the number base, starting with "0". The number base designates when a "carry" will occur to the next position to the left. The value of each succeeding position to the left is calculated by counting the distance from the right of the number (starting with "0" for the first position), raising the number base to the power of the position thus obtained, and multiplying by the digit held in the position for which the value is to be determined. Thus, the value of the "1" in the decimal number 54,321 can be obtained by raising 10 (the number base) to the power "4" (the Computer News Vol. 1 No. 1 Page 24 position, starting with 0), times "5" (the value held in the position) or (10*10*10*10)*5. See: BINARY, OCTAL, DECIMAL, HEXIDECIMAL. OCTAL A system of numbering using the digits "0" through "7"; number base 8. Each succeeding position to the left is worth 8 times the value of the position to the immediate right, times the number contained in the position. Thus, "123" in octal would be 1*(8*(8*1))+2*(8*1)+3. See: NUMBER BASE TERABYTE 1,024 Gigabytes, or 1,048,576 Megabytes, or 1,073,741,824 Kilobytes, or 1,099,511,627,776 bytes. An arbitrary term used to denote memory or storage size in computers. Nearest decimal equivalent is "Trillion". See: BYTE, KILOBYTE, MEGABYTE, GIGABYTE. LETTERS TO THE EDITOR An old friend and new PC/clone user writes. Hello again! Please accept me as one of the charter subscribers to your new undertaking; I wish you for all our sakes every success. As for my own "modest" wishes, I have a list longer than my arm. At the very top: absolutely NO WINDOW-DROSS; purge that word from your vocabulary or I will very quickly become a NON-subscriber. And DO keep GWBASIC very much alive. If you must, bring us the OCCASIONAL QBASIC pgm if it is of great merit. I am looking to you for a large supply of GWBASIC pgms from P.D. authors. As for transfering between TRS-DOS and MS-DOS, I have SX4. What I am looking for is a serial link via null-modem that will connect the two different systems and NOT time out! Of course, a reliable and affordable emulator pgm would really be great. HYPERSOFT for a while was advertising sucha pgm; but it was not inexpensive and I do not know how "bullet-proof" the model III emulator is. For two hundred bucks I can buy a golden oldie IBM computer. I came mighty close to doing just that; in old issues of COMPUTE! magazine is a CRC type PROOFREADER BASIC pgm and all of their BASIC pgms are published with this one's two-letter checksums. My problem was that under version 3.20 and 3.22 of GWBASIC it would not work. Then I got hold of 3.23, the very last and not very common version of GWBASIC, and it seems to work. I only got it on the weekend and have not had time to key in a whole program. Also, for the profreader pgm itself they did NOT show the checksums! But if ever a pgm was proofread repeatedly it is that one. The last two times did not yield a single error. I am sure that originally it was written for IBM's BASICA, but I have no access to a true IBM machine, that is why I nearly bought an oldie. But I am married and would like to remain so; buying a fourth computer might have changed that. Only last month I had to get a new SVGA monitor: four C-notes. My better half was not amused. On this month's VISA bill there were again a hundred worth of computer related expenses and I did not buy any expensive pgms. Computer News Vol. 1 No. 1 Page 25 Henry [Herrdergen] wrote me a short note about you and about the CodeWorks pgms in model IV that I had shared with him, also that you got him all the issues except #30. As you probably know, the major pgm in that last issue is a large database in GWBASIC only; too large for TRS-80 BASIC. My kids have been good to me: for Christmas they gave me the "bibles" for both QBASIC and GWBASIC. Despite all the help, I have to concede that real programing is beyond my reach. I can modify some ideas that would serve me better or find some way to achieve a result in a quicker way, but that is about it. Despite the current trend away from BASIC or to have it bastardized into something foreign like QBASIC without line numbers, I still like to key in printed listings, particularly those with checksums. If you ever get hold of and sell older issues of COMPUTE! with the PC listings please let me have a crack at it. Also, if you have the GWBASIC disks for CodeWorks I am interesed, too. They were placed in the public domain when they quit and I already paid for the model IV versions when I was a subscriber. Have any of your GURUS come up with a universal, CRC-based checksum program that they would donate as FREE-WARE? Would you even consider a bulletproof checksum pgm if one were available, one that does not require linenumbers and gives a two-byte checksum? On one of my share-ware disks is an offer from a firm in Florida to do custom programming in BASIC for a reasonable fee. If there is sufficient interest, and the price is not too steep, you could pass the hat and we could benefit a lot of computer-hobbyists. Another feature that I miss is scrolling a GWBASIC version. According to BASIC Programming INSIDE & OUT (the "bible"), some clone manufacturers have done what LSI did with the model IV BASIC: in the LIST mode either the arrow keys or Ctrl-X and Ctrl-Y will scroll single lines. However, that book was written in Germany and I have yet to encounter such modified GW-BASIC here or a patching pgm that would do the job. If you ever come across such "advanced" version please share it with us. I have learned how to alter the function-key assignments permanently and simply on version 3.20 , but until I get more familiar with the COMPUTE! proofreader (sometimes I get a cursor and sometimes not) I am not going to mess around with the innards of GWBASIC.EXE ver.3.23! To avoid any mix-up between the versions 3.20 is GWBASIC, 3.22 is KBASIC and 3.23 is LBASIC in my computer. What bothers me a lot is that no text-processor will give a visible End-of-Line symbol (CR/LF) as we take for granted on TRS-80 pgms. I have WordPerfect 5.1 but find it intimidating, an almost 5 Mega-byte monster. VARSITY-SCRIPSIT can be coaxed into showing one, but in ASCII-mode will NOT accept a TOF (0CH). However, it will accept >300k ASCII files into memory; I have one Meg RAM, puny by today's standards. As far as MICROSOFT goes, for us hobbyists it is almost a lost cause.MS-DOS 6 still does not have a decent DISKCOPY and with all the bells and whistles in their QBASIC no thought has been given to a widely distributed checksum program. Try as I might, there is not a single solitary advantage for a user of WINDOWs that I could possibly see. The people who killed 80-MICRO have come out with DOS-RESOURCE and their tips have been of great help in giving me effective CONFIG.SYS and AUTO)XEC.BAT files; but I also took from other sources to give me start-up in upper case, a loud beep whenever Caps-, Num- or Scroll- Lock are being toggled (I had really wanted to make CapsLock a two-key operation) and and a permanent date/time display that can be toggled on or off. Am not sure wether to Computer News Vol. 1 No. 1 Page 26 bother with MS-DOS 6, I definitely want NO part of their HD-compression scheme; my 42 MEG HDrive is not even half full. I am still used to having everything on floppies and with 1.2M and 1.44M drives, wow for an old 180K hand. As you perhaps recall, I opted for a new computer because my model IV would not respond to SUPER-SCRIPSIT. It had always acted oddly when it was powered up with my DMP-120 printer and I had regarded that as a very minor flaw. Only when I got hold of an internal TANDY test disk did I realize the severity of the problem. Part of the new computer package was a CITIZEN 200GX printer. Hooking that one up to my TRS-80 and LLISTing a simple BASIC pgm made it glaringly obvious that more than a little is wrong with my 80. So far, even with this new elaborate computer, my goal of perfectly micro-spaced proportional printing has not quite been reached. Now even I do not expect miracles from a nine pin dot-matrix-printer; but I am truly appalled how indifferent both WordPerfect and the printer's manufacturer are to achieving the best print quality from a dot-matrix-printer. To get proportinally spaced printing I bought an enhancement package: PowerPak from ATECH. While a distinct improvement, it is far from type-set quality. I also bought a special book from W.P. about writing your own printer drivers; so far have not tackled it. A cursory glance shows no mention of micro-spacing. This note to you (I hesitate to call it a letter) is written on my text-editor with PRINTMAN because you like to get an ASCII file and I am not all that familiar with W.P. to extract an ASCII file without the 3 to 5K header. I assume substance over form? Now a few legal questions. As consumers, I take it as a given that our "legal" system ALWAYS favours large and rich corporations over the ripped-off individual. Now as a concrete example: despite my best efforts, I can't get the "Big Clock" type-in pgm to run. Assuming you have the same magazine can I hire you to key it in for me, debug it and send me the file for a small fee without me having to send to you the whole magazine? The publisher of the magazine so far has not done it. #2. In PC-WORLD there is a small QBASIC utility pgm, DRIVINFO.BAS, which gives extensive information on the floppy in the drive selected. If I want to check another floppy, I have to use several key strokes, end up at the edit screen and have to use F5 (RUN) to start over again. Being the knuckle-heads that we are, can you publish my problem, including the code, with a view of having a more astute reader improve the pgm so that only a single key-press is necessary to re-run it? These are real problems to me and your help in resolving them would be very much appreciated! Now for a laugh: MICROSOFT sent me some sales literature and a 1.44Meg floppy, extolling the virtues of WINDOW and WINDOW software at bargain prices if I buy a whole bundle. The floppy will only run under WINDOW. Being a curious guy, I use DRIVINFO to see what DOS has been used to write that floppy: IBM 3.3! I nearly fell off my chair laugh- ing. I had fully expected to see MSDOS 6. Well, enough for today. Live long and prosper, and don't let the bastards grind you down. Keep STREETBASIC humming in all of its dialects, -Willi E. B. Wald These and many other questions will be answered in future issues, Mr. Computer News Vol. 1 No. 1 Page 27 Wald's letter certainly has hit on many of the plights of the IBM/Clone user who does not have or can afford the very latest computer, program or other goodie, as many of the computer magazines on the magazine rack expect you to have. --------------------------- Please if you think Computer News PC is on the right track in supporting the older IBM/PC computers - tell a friend - we need all the subscribers we can get and we appreciate your support. --------------------------- PUBLIC DOMAIN PROGRAMS PRINTED IN THIS ISSUE type in as printed from the Program Listing Section. Spinout.Bas Program listing number two on page 20 is a very interestering IBM version of the classic "Breakout" game that has been played by many on the Atari. Decide.Bas Program listing number three. A clever program to help you make decisions, written in GWBASIC. (gee-wiz basic). Bandit.Bas Program listing number four. The one armed bandit (slot machine) game in GWBASIC. Frank.Bas Program listing number five. A very surprising game with an animated monster that is built by your guessing the right word. ------------------------- Write and tell us if you like the type-in games or what kind of programs you would rather see in this section.