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 (CD means CHANGE DIRECTORY) BLAST (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.) ======================================== <> ======================================== 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. ******* We will have a companion disk for each issue published with some bonus programs, if you are the type that does not like to type-in your own basic programs. Each companion disk includes several PD Public Domain Bonus Programs. For $5 each including postage. Order from Computer News, PO Box 680, Casper WY 82602 (307) 265-6483 The Best is yet to come! In future issues. Computer News Vol. 1 No. 1 Page 28 Program and Batch File Listings HIDE.BAT BATCH FILE LISTING NUMBER ONE by Danny C. Mullen @echo off cls echo. echo =============================== echo Copy a file to hidden directory echo and makes a hidden directory if echo it doesn't exist. echo =============================== echo. echo Press CONTROL C to quit now, or pause if exist %1\nul goto skip if "%2"=="" goto usage echo Making directory... md %1 echo Making directory hidden... attrib +h %1 :skip if not exist %1\%2 goto skip1 echo File already exists... echo To prevent overwriting it, echo press CONTROL C to quit now, or pause :skip1 echo Copying %2 to %1... copy %2 %1 goto end :usage echo You didn't name a file......... echo. echo Use the following as an example echo. echo HIDE C:\secret sam.txt echo or echo HIDE C:\secret *.* echo. echo Now you may try again echo. goto end1 :end echo Successfully finished. :end1 rem rem HIDE.BAT - Creates a hidden rem directory (if nonexistent) then rem copies the file(s) to it. Computer News Vol. 1 No. 1 Page 29 BASIC PROGRAM LISTING NUMBER ONE by Fred Blechman Menu Basic 100 REM *************************************************************** 120 REM BASIC MENU 140 REM (C) COPYRIGHT FRED BLECHMAN 1989 160 REM *************************************************************** 180 SCREEN 0:WIDTH 80 '80-COLUMN TEXT SCREEN 200 KEY OFF:CLS 'TURN OFF BOTTOM LINE AND CLEAR SCREEN 220 DEF SEG=0 'SELECT SEGMENT AT BOTTOM OF MEMORY 240 POKE &H417,96: 'SETS KEYBOARD TO CAPS AND NUMBERS 260 DEF SEG 'RETURN SEGMENT TO BEGINNING OF BASIC PROGRAM 280 X$=STRING$(79,205) 'HORIZONTAL DOUBLE-BORDER LINE 300 DATA ORDERVRF,LEDGER12,INVOICE,BONUSREC,SPEEDLET,LABELS,TIMER,PVMAXIM 320 DIM A$(15) 'DIMENSION ARRAY FOR 0-15 LOCATIONS 340 FOR X=1 TO 8:READ A$(X):NEXT 'READ DATA INTO ARRAY 360 PRINT X$ 'HORIZONTAL BORDER LINES 380 PRINT TAB(20)"**** Amway Programs Selection Menu ****" 400 PRINT X$ 'HORIZONTAL BORDER LINES 420 PRINT"Select one of these Programs....." 440 PRINT TAB(7)"1. Order Processing." 460 PRINT TAB(7)"2. 12-Column Ledger." 480 PRINT TAB(7)"3. Customer Invoice." 500 PRINT TAB(7)"4. Monthly Bonus Record." 520 PRINT TAB(7)"5. Speed Letter." 540 PRINT TAB(7)"6. Mailing Labels." 560 PRINT TAB(7)"7. Telephone Call Timer." 580 PRINT TAB(7)"8. PV Maximizer." 600 PRINT TAB(7)"9. End and Return to DOS." 620 PRINT X$ 'HORIZONTAL BORDER LINES 640 PRINT TAB(7)"Type your choice and press ENTER..."; 660 INPUT X:IF X=9 THEN SYSTEM 'RETURN TO DOS 680 IF X<1 OR X>9 THEN BEEP:CLS:GOTO 360 700 RUN A$(X) 'RUN SELECTED PROGRAM SPINOUT.BAS PROGRAM LISTING NUMBER TWO 10 REM ibm pc spinout 20 REM K.R. Sloan, Jr. 30 REM 1 January 1982 40 DIM BALL[14] 50 DIM PADDLE[9] 60 DIM BRICK[20,4] 65 RANDOMIZE(VAL(RIGHT$(TIME$,2))) 70 KEY OFF:PLAY "mb" 80 LOUD=0 90 BRUNO$="l16o2b-o3cl8ddc+16do2fp1" 110 T=8:B=188:L=8:R=308 120 BH=8:BW=(R-L)/20 130 BT=T+(BH*4):BB=BT+(BH*4) 135 CLS 140 LOCATE 7,12: PRINT "Welcome to Spinout"; 150 LOCATE 8,12: PRINT "ArchMach Version 1"; 160 LOCATE 12,1:PRINT "Choose a key to move the paddle right"; 170 R$=INKEY$:IF R$="" GOTO 170 180 LOCATE 12,1:PRINT "Choose a key to move the paddle left "; Computer News Vol. 1 No. 1 Page 30 190 L$=INKEY$:IF L$="" GOTO 190 200 IF R$=L$ GOTO 160 210 LOCATE 12,1:PRINT "Choose a key to serve "; 220 S$=INKEY$:IF S$="" GOTO 220 230 IF (R$=S$)OR(L$=S$) GOTO 160 240 LOCATE 12,1:PRINT "Choose a key to turn noise on/off "; 250 N$=INKEY$:IF N$="" GOTO 250; 260 IF (R$=N$)OR(L$=N$)OR(S$=N$) GOTO 160 270 LOCATE 12,1:INPUT;"How good are you at this game (1-10)";SKILL 275 IF SKILL<1 GOTO 270 276 IF SKILL>10 GOTO 270 280 SKILL=SKILL/10 290 MAXVX=6+(4*SKILL):MAXVY=MAXVX 295 G=SKILL/5 296 DEF SEG=0:EQUIPMENT%=PEEK(&H410) ':POKE &H410,EQUIPMENT%-&H10 297 WIDTH 40:WIDTH 80:SCREEN 0,0,0:SCREEN 1:COLOR 1,5:CLS 300 LINE (0,0)-(319,199),0,BF 310 FOR BY=0 TO 3 320 FOR BX=0 TO 19 330 BRICK[1+BX,1+BY]=10+50*BY 340 LINE (L+2+(BW*BX),BT+2+(BH*BY))-STEP (BW-4,BH-4),2+INT(BY/2),BF 350 NEXT BX,BY 360 SCORE = 0 370 LINE (L,T)-(R,T) 380 LINE -(R,B) 390 LINE -(L,B) 400 LINE -(L,T) 410 X=160:Y=100 420 LASTD$="" 430 FOR I=1 TO 5 440 FOR J=1 TO 5 450 IF ((I-3)*(I-3))+((J-3)*(J-3))<6.25 THEN PSET (X-3+I,Y-3+J) 460 NEXT J,I 470 GET (X-2,Y-2)-(X+2,Y+2),BALL 480 PL=150:PR=170:PY=B-20 490 LINE (PL,PY)-(PR,PY),1,BF 500 GET(PL,PY)-(PR,PY),PADDLE 510 REM main loop 520 IF LOUD=1 THEN PLAY BRUNO$ 530 FOR SHOT=1 TO 4 540 LOCATE 25,1 550 PRINT USING "#####";SCORE; 560 LOCATE 25,8 570 PRINT USING "Ball # ";SHOT; 580 LOCATE 25,18 590 PRINT "K.R.Sloan,Jr. 1Jan82"; 600 IF X>R THEN X=R 610 IF XB THEN Y=B 640 PUT(X-2,Y-2),BALL 650 X=L+RND(X)*(R-L) 660 Y=B-10 670 PUT(X-2,Y-2),BALL 680 VX=6*RND(1)-3 690 VY=-5-2*RND(1) 700 SPIN=0 Computer News Vol. 1 No. 1 Page 31 710 FAST=1+SKILL 720 GOSUB 1410 `MOVE PADDLE 730 IF D$<>S$ GOTO 720 740 OX=X:OY=Y:OBX=BX:OBY=BY 750 OVX=VX:OVY=VY 760 VX=OVX-(SPIN*OVY*.05):VY=OVY+(SPIN*OVX*.05)+G 761 SPIN=SPIN*.9999 770 IF VX>MAXVX THEN VX=MAXVX 771 IF VY>MAXVY THEN VY=MAXVY 780 IF VX<-MAXVX THEN VX=-MAXVX 781 IF VY<-MAXVY THEN VY=-MAXVY 790 X=X+VX:Y=Y+VY 800 BX=INT((X-L)/BW) 810 IF BX>19 THEN BX=19 820 IF BX<0 THEN BX=0 830 BY=INT((Y-BT)/BH) 840 IF BY>3 GOTO 1050 850 IF BY<0 GOTO 1050 860 IF BRICK[1+BX,1+BY]<=0 GOTO 1050 870 IF BY>1 GOTO 890 880 VY=VY*FAST 890 IF (OBX<>BX)THEN VX=-VX 900 IF (OBY<>BY)THEN VY=-VY 910 SCORE=SCORE+BRICK[1+BX,1+BY] 920 SOUND 440,2*LOUD 930 PUT(OX-2,OY-2),BALL,XOR 940 LINE (L+2+(BW*BX),BT+2+(BH*BY)) -STEP (BW-4,BH-4),0,BF 950 PUT(OX-2,OY-2),BALL,XOR 960 BRICK[1+BX,1+BY]=-BRICK[1+BX,1+BY] 970 IF SCORE<6800 GOTO 1050 972 LOCATE 25,1 974 PRINT USING "#####";SCORE; 980 FOR FLASH=1 TO 8 990 COLOR FLASH,.5+RND(FLASH) 1000 PLAY "mfaemb" 1010 NEXT FLASH 1040 GOTO 1340 1050 IF X<=L THEN X=L+L-X:VX=-VX:VY=VY+SPIN:SOUND 600,2*LOUD 1060 IF X>=R THEN X=R+R-X:VX=-VX:VY=VY-SPIN:SOUND 1200,2*LOUD 1070 IF Y<=T THEN Y=T+T-Y:VY=-VY:VX=VX-SPIN:SOUND 880,2*LOUD 1080 IF Y>=B GOTO 1310 1090 IF (YPY) THEN GOTO 1270 1100 IF ((PL-2)SKILL GOTO 1210 1160 BX=INT(RND(1)*19.99):BY=INT(RND(1)*3.99): 1170 IF BRICK[1+BX,1+BY]>0 GOTO 1210 1180 BRICK[1+BX,1+BY]=-BRICK[1+BX,1+BY] 1190 LINE (L+2+(BW*BX),BT+2+(BH*BY)) -STEP (BW-4,BH-4),2+INT(BY/2),BF 1200 SCORE=SCORE-BRICK[1+BX,1+BY] 1210 LOCATE 25,1 1220 PRINT SCORE; 1230 VY=-VY 1240 MISS=(X-(PL+PR)/2)/(PL-PR) Computer News Vol. 1 No. 1 Page 32 1250 VX=VX+VY*MISS*SKILL*5 1260 SPIN=(SPIN*SKILL)+MISS*SKILL 1270 PUT(X-2,Y-2),BALL,XOR 1280 PUT(OX-2,OY-2),BALL,XOR 1290 GOSUB 1410 'move paddle 1300 GOTO 740 1310 REM lost ball 1320 IF LOUD=1 THEN SOUND 200,20 1330 NEXT SHOT 1340 REM End of Game 1341 'DEF SEG=0:POKE &H410,125:WIDTH 40:WIDTH 80:SCREEN 0,0,0 1342 WIDTH 80:SCREEN 0,0,0 1350 LOCATE 12,20 1360 PRINT "Do you want to play another game?"; 1370 D$=INKEY$ 1380 IF D$="y" THEN RUN 1390 IF D$="n" THEN END 1400 GOTO 1370 1410 REM move paddle routine 1420 OPL=PL 1430 D$=INKEY$ 1440 IF D$=N$ THEN LOUD=-1*LOUD+1 1450 IF D$=L$ THEN PL=PL-5:GOTO 1430 1460 IF D$=R$ THEN PL=PL+5:GOTO 1430 1470 IF PL(R-20) THEN PL=R-20 1490 IF OPL=PL THEN RETURN 1500 PR=PL+20 1510 PUT (OPL,PY),PADDLE,XOR 1520 PUT(PL,PY),PADDLE,XOR 1530 RETURN DECIDE.BAS PROGRAM LISTING NUMBER THREE 100 CLS 110 A$=STRING$(80,205) 120 PRINT A$ 130 PRINT TAB(34)"DECIDE #2001" 140 COLOR 23 150 PRINT :PRINT :PRINT TAB(39)"IPCO" 160 COLOR 7 170 PRINT :PRINT :PRINT TAB(25)"PERSONAL COMPUTER OWNERS GROUP" 180 PRINT :PRINT :PRINT TAB(19)"p.o. box 10426, pittsburgh, pennsylvania 15234" 190 PRINT A$ 200 PRINT :PRINT :PRINT :PRINT 210 PRINT TAB(28)"PRESS ANY KEY TO CONTINUE" 220 A$=INKEY$:IF A$="" THEN 220 250 CLEAR 500 260 MD=10 270 DIM L$(MD),F$(MD),V(MD),C(MD,MD),D(MD),Z(MD) 280 E$="END" 290 GOSUB 1530 300 PRINT "I CAN HELP YOU MAKE A DECISION. ALL I NEED TO DO IS ASK SOME QUESTIONS AND THENANALYZE THE INFORMATION YOU GIVE." 310 PRINT:PRINT TAB(10) STRING$(60,205):PRINT Computer News Vol. 1 No. 1 Page 33 320 PRINT "WHICH OF THESE BEST DESCRIBES THE TYPE OF DECISION FACING YOU?" 330 PRINT :PRINT " 1) CHOOSING AN ITEM FROM VARIOUS ALTERNATIVES." 340 PRINT " 2) CHOOSING A COURSE OF ACTION FROM VARIOUS ALTERNATIVES." 350 PRINT " 3) MAKING A `YES' OR `NO' DECISION." 360 PRINT :PRINT"WHICH ONE (1,2, OR 3)?": 370 R$=INKEY$:IF R$="" THEN 370 380 T=VAL(R$):IF T<1 OR T>3 THEN 370 390 PRINT T:GOSUB 1530 400 FOR J=1 TO 9:R$=INKEY$:NEXT:ON T GOTO 410,430,440 410 PRINT"WHAT TYPE OF ITEM MUST YOU DECIDE UPON?" 420 INPUT T$:GOTO 470 430 T$="COURSE OF ACTION":GOTO 470 440 T$="'YES' OR 'NO'" 450 NI=2:L$(1)="DECIDING YES":L$(2)="DECIDING NO" 460 GOTO 690 470 GOSUB 1530:NI=0 480 PRINT"I NEED TO HAVE A LIST OF EACH ";T$;" UNDER CONSIDERATION.":PRINT 500 PRINT"INPUT THEM ONE AT A TIME IN RESPONSE TO EACH QUESTION MARK. THE ORDER IN WHICH YOU INPUT THEM HAS NO SPECIAL SIGNIFICANCE." 520 PRINT :PRINT"TYPE THE WORD `";E$;"' TO INDICATE THAT THE WHOLE LIST HAS BEEN ENTERED.":PRINT 530 IF NI>=MD THEN PRINT "--LIST FULL--":GOTO 570 540 NI=NI+1:INPUT L$(NI) 550 IF L$(NI)<>E$ THEN 530 560 NI=NI-1 570 IF NI>=2 THEN 600 580 PRINT :PRINT"YOU MUST HAVE AT LEAST 2 CHOICES!":PRINT 590 PRINT"TRY AGAIN":GOSUB 1550:GOTO 470 600 GOSUB 1530:PRINT"O.K. HERE'S THE LIST YOU'VE GIVEN ME:":PRINT 610 FOR J=1 TO NI:PRINT" ";J;CHR$(24);") ";L$(J):NEXT:PRINT 620 FOR J=1 TO 9:R$=INKEY$:NEXT:PRINT"IS THIS LIST CORRECT (Y OR N) ?"; 630 R$=INKEY$:IF R$="" THEN 630 640 IF R$="Y" THEN PRINT "YES":GOTO 690 650 IF R$="N" THEN PRINT"NO" 660 IF R$="N" THEN PRINT:PRINT"THE LIST MUST BE RE-ENTERED" 670 IF R$="N" THEN GOSUB 1550:GOSUB 470 680 GOTO 630 690 GOSUB 1530:FOR J=1 TO 9:R$=INKEY$:NEXT 700 PRINT"NOW, THINK OF THE DIFFERENT FACTORS "; 710 IF T<3 THEN PRINT"THAT ARE IMPORTANT TO YOU IN CHOOSING THE BEST ";T$;"." 730 IF T=3 THEN PRINT" THAT ARE IMPORTANT TO YOU IN DECIDING ";T$;"." 740 PRINT :PRINT"INPUT THEM ONE AT A TIME IN RESPONSE TO EACH QUESTION MARK.":PRINT 750 PRINT"TYPE THE WORD`";E$;"' TO TERMINATE THE LIST." 760 PRINT :NF=0 770 IF NF>=MD THEN PRINT"--LIST FULL --":PRINT:GOTO 810 780 NF=NF+1:INPUT F$(NF) 790 IF F$(NF)<>E$ THEN 770 800 NF=NF-1:PRINT 810 IF NF<1 THEN PRINT"YOU MUST HAVE AT LEAST ONE ! REDO IT" 820 IF NF<1 THEN GOSUB 1550:GOTO 690 830 GOSUB 1530: PRINT"HERE'S THE LIST OF FACTORS YOU GAVE ME:":PRINT 840 FOR J=1 TO NF:PRINT " ";J;CHR$(24);") ";F$(J):NEXT:PRINT 850 PRINT"DECIDE WHICH FACTOR ON THE LIST IS THE MOST IMPORTANT AND INPUT Computer News Vol. 1 No. 1 Page 34 IT'S NUMBER. (TYPE 0 IF THE LIST NEEDS TO BE CHANGED." 870 PRINT 880 INPUT A:A=INT(A):IF A=0 THEN 690 890 IF A>NF OR A<0 THEN 830 900 GOSUB 1530:IF NF=1 THEN 1020 910 PRINT"NOW LET'S SUPPOSE WE HAVE A SCALE OF IMPORTANCE RANGING FROM 0 TO 10." 930 PRINT:PRINT" WE'LL GIVE ";F$(A);" A VALUE OF 10 SINCE ";F$(A) 950 PRINT" WAS RATED THE MOST IMPORTANT.":PRINT 960 PRINT"ON THIS SCALE, WHAT VALUE OF IMPORTANCE WOULD THE OTHER FACTORS HAVE?" 980 FOR J=1 TO NF:IF J=A THEN 1010 990 PRINT:PRINT F$(J):INPUT THE (J) 1000 IF V(J)<0 OR V(J)>10 THEN 1010 NEXT 1020 V(A)=10:Q=O:FOR J=1 TO NF:Q=Q+V(J):NEXT:FOR J=1 TO NF 1030 V(J)=V(J)/Q:NEXT:GOSUB 1530 1040 IF T<>3 THEN PRINT"EACH ";T$; 1050 IF T=3 THEN PRINT"DECIDING `YES' OR DECIDING `NO' "; 1060 PRINT " MUST NOW BE COMPAIRED WITH RESPECT TO EACH IMPORTANCE FACTOR." 1080 PRINT "WE'LL CONSIDER EACH FACTOR SEPARATELY AND THEN RATE"; 1090 IF T<>3 THEN PRINT" EACH ";T$" IN TERMS"; 1100 IF T=3 THEN PRINT"DECIDING `YES' OR DECIDING `NO' IN TERMS "; 1110 PRINT " OF THAT FACTOR ONLY.":PRINT 1120 PRINT "LET'S GIVE ";L$(1);" A VALUE OF 10 ON EVERY SCALE. THE OTHER ";T$;" UNDER CONSIDERATION WILL BE ASSIGNED A VALUE HIGHER OR LOWER THAN 10." 1150 PRINT " THIS VALUE DEPENDS ON HOW MUCH YOU THINK IT IS BETTER OR WORSE THAN ";L$(1);"." 1180 PRINT " ********* (HIT ANY KEY TO CONTINUE)" 1190 R$=INKEY$:IF R$="" THEN 1190 1200 FOR J=1 TO NF 1210 PRINT TAB(8);STRING$(25,"-") 1220 PRINT "CONSIDERING ONLY ";F$(J);" AND ASSIGNING 10 TO ";L$(1);" ;" 1240 PRINT "WHAT VALUE WOULD YOU ASSIGN TO "; 1250 FOR K=2 TO NI 1260 PRINT L$(K);:INPUT C(K,J):IF C(K,J)>=0 THEN 1280 1270 PRINT " -- NEGATIVE VALUES NOT LEGAL --":GOTO 1260 1280 NEXT:PRINT:C(1,J)=10:NEXT 1290 FOR J=1 TO NF:Q=0:FOR K=1 TO NI 1300 Q=Q+C(K,J):NEXT:FOR K=1 TO NI 1310 C(K,J)=C(K,J)/Q:NEXT:NEXT 1320 FOR K=1 TO NI:D(K)=0:FOR J=1 TO NF 1330 D(K)=D(K)+C(K,J)*V(J):NEXT:NEXT 1340 MX=0:FOR K=1 TO NI 1350 IF D(K)>MX THEN MX=D(K) 1360 NEXT:FOR K=1 TO NI:D(K)=D(K)*100/MX:NEXT 1370 FOR K=1 TO NI:Z(K)=K:NEXT:NM=NI-1 1380 FOR K=1 TO NI:FOR J=1 TO NM:N1=Z(J):N2=Z(J+1): IF D(N1)>D(N2) THEN 1400 1390 Z(J+1)=N1:Z(J)=N2 1400 NEXT:NEXT:J1=Z(1):J2=Z(2):DF=D(J1)-D(J2):GOSUB 1530 1410 PRINT L$(J1); 1420 PRINT" COMES OUT BEST"; 1430 IF DF<5 THEN PRINT " BUT IT'S VERY CLOSE.":GOTO 1470 1440 IF DF<10 THEN PRINT" BUT IT'S FAIRLY CLOSE.":GOTO 1470 Computer News Vol. 1 No. 1 Page 35 1450 IF DF<20 THEN PRINT" BY A FAIR AMOUNT.":GOTO 1470 1460 PRINT" QUITE DECISIVELY." 1470 PRINT TAB(16)"******* HERE IS THE FINAL LIST IN ORDER ********" 1480 PRINT L$(J1);" HAS BEEN GIVEN A VALUE OF 100 AND THE OTHERS RATED ACCORDINGLY." 1500 PRINT TAB(10) STRING$(60,205) 1510 FOR J=1 TO NI:Q=Z(J):PRINT D(Q),L$(Q):NEXT 1520 END 1530 FOR J=1 TO 400:NEXT 1540 CLS:PRINT TAB(26);"DECIDE":PRINT:RETURN 1550 FOR J=1 TO 1500:NEXT:RETURN BANDIT.BAS PROGRAM LISTING NUMBER FOUR 5 CLS 7 REM MODIFIED FOR THPCUG BY David L. South (317-294-4060) 10 M=25 20 RANDOMIZE INT(VAL(MID$(TIME$,7,2))) 30 PRINT "Sound effects (Y/N) ?" 40 NS$=INKEY$: IF NS$="" GOTO 40 50 WIDTH 80:SCREEN 0,1,0,0:COLOR 7,0,2:CLS 60 KEY OFF:GOSUB 1620:COLOR 7,0:CLS 70 REM 'CONVERTED FOR IBM-PC FROM 101 BASIC COMPUTER GAMES BY DIGITAL 80 REM 'EQUIPMENT CORP. SUBMITTED TO DIGITAL BY ROB HOFFBERG OF ROSLYN N.Y. 90 REM 'AUTHOR UNKNOWN 100 REM 'ENHANCED FOR COLOR AND SOUND BY ARNOLD THOMSEN OF SCOTTSDALE, AZ 110 PRINT "OK ";N$;" Here are the odds:" 120 LOCATE 5,10:PRINT "SYMBOL HOW MANY PAYOUT" 130 LOCATE 6,10:PRINT "111111111111111111111111111111" 140 LOCATE 7,10:PRINT "CHERRY 3 $2.00" 150 LOCATE 8,10:PRINT "CHERRY 2 $1.00 LEFT & MID WINDOWS ONLY!" 160 LOCATE 9,10:PRINT "CHERRY 1 $0.50 LEFT WINDOW ONLY!" 170 LOCATE 11,10:PRINT "PLUM 3 $5.00" 180 LOCATE 12,10:PRINT "ORANGE 3 $7.50" 190 LOCATE 13,10:PRINT "*BAR* 3 $10.00" 200 LOCATE 15,10:COLOR 6: PRINT " LEMONS ALWAYS LOOSE":COLOR 7,0 210 LOCATE 20,5:PRINT "When the message PULL appears, press ENTER to PULL." 220 LOCATE 21,5:PRINT "Or type END to end the session." 230 LOCATE 23,5:PRINT "When you are ready to begin press ENTER.";:INPUT Z9$ 240 L$=CHR$(186) 250 S$=CHR$(205) 260 B$=CHR$(186) 270 DIM W$(4) 280 W$(1)=" CHERRY ":W$(2)=" ":W$(3)=" *BAR* ":W$(4)=" PLUM " 290 REM "WHEEL ONE 300 DIM V$(7) 310 V$(1)=" ORANGE ":V$(2)=" PLUM ":V$(3)=" LEMON ":V$(4)=" *BAR* " 320 V$(7)=" CHERRY ":V$(5)=" CHERRY ":V$(6)=" CHERRY " 330 REM "WHEEL TWO 340 DIM V1$(7) 350 V1$(1)=" *BAR* ":V1$(2)=" LEMON ":V1$(3)=" PLUM " Computer News Vol. 1 No. 1 Page 36 360 V1$(4)=" CHERRY ":V1$(5)=" PLUM ":V1$(6)=" ORANGE ":V1$(7)=" CHERRY" 370 REM "WHEEL THREE 380 DIM V3$(5) 390 V3$(1)=" PLUM ":V3$(2)=" *BAR* ":V3$(3)=" CHERRY ":V3$(4)=" LEMON" 400 V3$(5)=" ORANGE " 410 COLOR 15,0:CLS 420 Y=16:FOR X=1 TO 18:LOCATE X,Y:PRINT S$:NEXT X 430 X=18:FOR Y=17 TO 50:LOCATE X,Y:PRINT B$:NEXT Y 440 Y=51:FOR X=18 TO 1 STEP-1:LOCATE X,Y:PRINT S$:NEXT X 450 X=1:FOR Y=50 TO 17 STEP-1:LOCATE X,Y:PRINT L$:NEXT Y 460 COLOR 4,1 470 FOR X = 2 TO 17 480 LOCATE X,17 490 FOR Z = 1 TO 17:PRINT CHR$(36);CHR$(1);:NEXT Z 500 NEXT X 510 Q$ = "QUALITY" 520 LOCATE 3,30:COLOR 15,1:PRINT Q$ 530 GOSUB 550:GOTO 590 540 REM "ARM 550 LOCATE 14,52:PRINT "/"; 560 Y=52:FOR X=13 TO 8 STEP-1:LOCATE X,Y:PRINT "//";:Y=Y+1:NEXT X 570 FOR X=7 TO 6 STEP-1:LOCATE X,57:PRINT STRING$(3,196):NEXT X 580 FOR X = 1 TO 512:NEXT:RETURN 590 LOCATE 13,28:COLOR 15,1:PRINT "P A Y O U T":LOCATE 14,33 600 X=15:FOR Y=24 TO 42:LOCATE X,Y:PRINT L$:NEXT Y 610 FOR X=15 TO 17:LOCATE X,43:PRINT S$:NEXT X 620 FOR Y=42 TO 24 STEP-1:LOCATE 17,Y:PRINT B$:NEXT Y 630 FOR X=17 TO 15 STEP-1:LOCATE X,23:PRINT S$:NEXT X 640 COLOR 15,0 650 REM "******LEFT WINDOW***** 660 FOR Y=18 TO 26:LOCATE 5,Y:PRINT L$:NEXT Y 670 FOR X=5 TO 7:LOCATE X,27:PRINT S$:NEXT X 680 FOR Y=26 TO 18 STEP-1:LOCATE 7,Y:PRINT B$:NEXT Y 690 FOR X=7 TO 5 STEP-1:LOCATE X,18:PRINT S$:NEXT X 700 REM "*****MID WINDOW***** 710 FOR Y=30 TO 37:LOCATE 5,Y:PRINT L$:NEXT Y 720 FOR X=5 TO 7:LOCATE X,38:PRINT S$:NEXT X 730 FOR Y=37 TO 30 STEP-1:LOCATE 7,Y:PRINT B$:NEXT Y 740 FOR X=7 TO 5 STEP-1:LOCATE X,29:PRINT S$:NEXT X 750 REM "*****RIGHT WINDOW***** 760 FOR Y=41 TO 48:LOCATE 5,Y:PRINT L$:NEXT Y 770 FOR X=5 TO 7:LOCATE X,49:PRINT S$:NEXT X 780 FOR Y=48 TO 41 STEP-1:LOCATE 7,Y:PRINT B$:NEXT Y 790 FOR X=7 TO 5 STEP-1:LOCATE X,40:PRINT S$:NEXT X 800 REM "DO YOU PULL OR END 810 LOCATE 21,24:PRINT "YOU NOW HAVE ";:PRINT USING "$$###.##";M 815 IF M=0 THEN LOCATE 23,12:PRINT "YOU ARE BROKE! AT ";TIME$;" ON ";DATE$:END 820 LOCATE 22,26:PRINT "PULL(ENTER)/END";:INPUT A$ 830 IF A$="END" OR A$="E" THEN END 840 COLOR 0,0:LOCATE 22,26:PRINT "PULL(ENTER)/END? ":GOSUB 550 850 LOCATE 16,24:COLOR 0,0:E$=" ":PRINT E$;E$;E$;E$;" " 860 LOCATE 6,19:PRINT E$;E$:LOCATE 6,30:PRINT E$;E$:LOCATE 6,41:PRINT E$;E$ 870 COLOR 15,1:GOSUB 550 880 REM " * PICK THE WHEELS 890 FOR I=1 TO 2:Z(I)=INT((RND*7)+1):NEXT I Computer News Vol. 1 No. 1 Page 37 900 Z(3)=INT((RND*5)+1) 910 COLOR 7,0 920 REM "***** ROLL ALL WINDOWS AND PICK LEFT ***** 930 FOR X=1 TO 10:FOR Y=1 TO 4:LOCATE 6,19:PRINT W$(Y) 940 LOCATE 6,30:PRINT W$(Y):LOCATE 6,41:PRINT W$(Y):NEXT Y:NEXT X 950 IF V$(Z(1)) = " CHERRY " THEN COLOR 12,0 960 IF V$(Z(1)) = " ORANGE " THEN COLOR 12,6 970 IF V$(Z(1)) = " PLUM " THEN COLOR 9,4 980 IF V$(Z(1)) = " LEMON " THEN COLOR 14,0 990 IF V$(Z(1)) = " *BAR* " THEN COLOR 31,0 1000 LOCATE 6,19:PRINT V$(Z(1)):COLOR 7,0 1010 IF NS$ = "N" OR NS$ = "n" GOTO 1030 ELSE SOUND 200,2 1020 REM " ***** ROLL MID AND RIGHT AND PICK MID ***** 1030 FOR X=1 TO 15:FOR Y=1 TO 4 1040 LOCATE 6,30:PRINT W$(Y):LOCATE 6,41:PRINT W$(Y):NEXT Y:NEXT X 1050 IF V1$(Z(2)) = " CHERRY " THEN COLOR 12,0 1060 IF V1$(Z(2)) = " ORANGE " THEN COLOR 12,6 1070 IF V1$(Z(2)) = " PLUM " THEN COLOR 9,4 1080 IF V1$(Z(2)) = " LEMON " THEN COLOR 14,0 1090 IF V1$(Z(2)) = " *BAR* " THEN COLOR 31,0 1100 LOCATE 6,30:PRINT V1$(Z(2)):COLOR 7,0 1110 IF NS$ = "N" OR NS$ = "n" GOTO 1130 ELSE SOUND 300,2 1120 REM "***** ROLL RIGHT AND PICK RIGHT ***** 1130 FOR X=1 TO 20:FOR Y=1 TO 4 1140 LOCATE 6,41:PRINT W$(Y):NEXT Y:NEXT X 1150 IF V3$(Z(3)) = " CHERRY " THEN COLOR 12,0 1160 IF V3$(Z(3)) = " ORANGE " THEN COLOR 12,6 1170 IF V3$(Z(3)) = " PLUM " THEN COLOR 9,4 1180 IF V3$(Z(3)) = " LEMON " THEN COLOR 14,0 1190 IF V3$(Z(3)) = " *BAR* " THEN COLOR 31,0 1200 LOCATE 6,41:PRINT V3$(Z(3)):COLOR 7,0 1210 COLOR 7,0 1220 IF NS$ = "N" OR NS$ = "n" GOTO 1240 ELSE SOUND 400,2 1225 FOR X= 1 TO 512:NEXT X 'DELAY 1230 REM "DO I HAVE 3 OF A KIND 1240 IF V$(Z(1))<>V1$(Z(2)) THEN 1370 1250 IF V1$(Z(2))<>V3$(Z(3)) THEN 1370 1260 IF V$(Z(1))<>" CHERRY " THEN 1280 1270 LOCATE 16,27:PRINT "YOU WIN $2.00 ":M=M+2:GOSUB 5100:GOTO 800 1280 IF V$(Z(1))<>" PLUM " THEN 1300 1290 LOCATE 16,27:PRINT "YOU WIN $5.00 ":M=M+5:GOSUB 4000:GOTO 800 1300 IF V$(Z(1))<>" ORANGE " THEN 1320 1310 LOCATE 16,27:PRINT "YOU WIN $7.50 ":M=M+7.5:GOSUB 3000:GOTO 800 1320 IF V$(Z(1))<>" *BAR* " THEN 1340 1330 LOCATE 16,27:PRINT "YOU WIN $10.00 ":M=M+10:GOSUB 2000:GOTO 800 1340 REM "LEMONS 1350 LOCATE 16,28:PRINT "LEMONS LOSE!":M=M-.25:GOTO 800 1360 REM 1370 REM "DO I HAVE CHERRIES 1380 IF V$(Z(1))<>" CHERRY " THEN 1460 1390 IF V1$(Z(2))<>" CHERRY " THEN 1440 1400 REM 1410 REM "2 CHERRIES 1420 LOCATE 16,27:PRINT "YOU WIN $1.00 ":M=M+1:GOSUB 5000:GOTO 800 1430 REM 1440 REM " 1 CHERRY 1450 LOCATE 16,27:PRINT "YOU WIN $0.50 ":M=M+.5:GOTO 800 Computer News Vol. 1 No. 1 Page 38 1460 REM 1470 REM " GOT SCHMALTZ 1480 ON Z(3) GOSUB 1500,1510,1520,1530,1540,1550,1560 1490 M=M-.25:GOTO 800 1500 LOCATE 16,25:FG=3:COLOR FG,0:PRINT "TRY BINGO INSTEAD ":RETURN 1510 LOCATE 16,25:FG=6:COLOR FG,0:PRINT "HA HA YOU LOSE ":RETURN 1520 LOCATE 16,25:FG=5:COLOR FG,0:PRINT "ZILCH-O ":RETURN 1530 LOCATE 16,25:FG=4:COLOR FG,0:PRINT "TRY AGAIN SUCKER ":RETURN 1540 LOCATE 16,24:FG=1:COLOR FG,7:PRINT "TRY VEGAS INSTEAD ":RETURN 1550 LOCATE 16,25:FG=2:COLOR FG,0:PRINT "YOU GOT SCHMALTZ ":RETURN 1560 LOCATE 16,25:FG=23:COLOR FG,0:PRINT "BACK TO STAR TREK":RETURN 1570 LOCATE 16,24:COLOR 15,1:PRINT " BYE-BYE " 1580 LOCATE 17,29:PRINT N$ 1590 A$=INKEY$:IF A$="" THEN GOTO 1590 1600 END 1610 END 1620 FOR J=2 TO 22 1630 LOCATE 2,2:PRINT CHR$(201):LOCATE 2,79:PRINT CHR$(187) 1640 LOCATE 23,2:PRINT CHR$(200):LOCATE 23,79:PRINT CHR$(188) 1650 LOCATE J,2:PRINT CHR$(186) 1660 LOCATE J,79:PRINT CHR$(186) 1670 NEXT J 1680 FOR J=3 TO 78 1690 LOCATE 2,J:PRINT CHR$(205) 1700 LOCATE 23,J:PRINT CHR$(205) 1710 NEXT J 1720 COLOR 5 1730 LOCATE 4,4:PRINT "W E L C O M E T O . . ." 1740 LOCATE 8,30:PRINT "I B M ' S C A S I N O" 1750 LOCATE 17,4:PRINT "Today you will lose your money at IBM's famous slot machine." 1760 LOCATE 18,4:PRINT "You have been given a credit line of $25.00. Therefore at 0.25 a pull you" 1770 LOCATE 19,4:PRINT "have a minimum of 100 pulls!" 1780 LOCATE 20,4:PRINT "By the way what is your name";:INPUT N$ 1790 RETURN 2000 IF NS$="N" OR NS$="n" THEN RETURN 'STARS AND STRIPES FOREVER 2010 PLAY "T220 L4 C2 O3 B-AA2 G+ A A..... G+A A2 G+ A " 2020 PLAY "O4 C O3 A. O4 C O3 B-1 G P4 G2 F+ G G2 F+G" 2030 PLAY "B-..... A G A O4 C2.D2. D O3 G.... P4" 2040 PLAY "O4 C2 C2 O3 B- A A2 G+ A A..... G+ A A2 G+ A B- AGE" 2050 PLAY "G1 F P4 F2 F2 EF A-2 GF O4 F.... O3 FGA O4 C" 2060 PLAY "P2 P4 O3 CDA G2 F O4 F8" 2070 RETURN 3000 IF NS$="N" OR NS$="n" THEN RETURN 'ENTERTAINER 3010 A$="O3 D8 D+8 E8 O4 C O3 E8 O4 C O3 E8 O4 C2." 3020 PLAY "T160 L4;XA$; O4 L8 CDD+ECDE4 O3 B O4 DC2." 3030 PLAY "XA$;L8 O3 AGF+A O4 C E4 DC O3 A O4 D2." 3040 PLAY "XA$; O4 L8 CDD+ECDE4 O3 B O4 D" 3050 PLAY "C2.CDECDE4CDCECDE4CDCECDE4 O3 B O4 D4 C2." 3060 RETURN 4000 IF NS$="N" OR NS$="n" THEN RETURN 'I LEFT MY HEART IN SAN FRANCISCO 4005 S1$ = "F2..GAB-GC1CO2B O3 C" 4010 PLAY "T100 O3 L4 DE-G;XS1$;G....B-A.F8D....P8" 4020 PLAY "L4 DE-EL8FE-DE-L4F....G" 4030 PLAY "L8 AGFGA2. AG+ A8 B-.... C 03 A. C8 F2.. G8 F8 E- D E-G" 4040 PLAY "O3;XS1$; A.... AB- O4CD.... P8 DC+DE-2. D O3 B O4 CDC" Computer News Vol. 1 No. 1 Page 39 4050 PLAY "O3 G... P8 GF+G O4 E-... O3 G O4 D2 D2 O3 B-...." 4060 RETURN 5000 IF NS$="N" OR NS$="n" THEN RETURN 'SIDEWALKS 5010 PLAY "T200 L2 O4 G.E.D.C.DC4 O3 A B4 O4 C...":RETURN 5100 IF NS$="N" OR NS$="n" THEN RETURN 'DONNA E MOBILE 5110 PLAY "T200 L4 O4 EEE G8 F8 D2 DDD F8 E8 C2 EDC C8" 5120 PLAY "O3 B8 B2 O4 DC O3 A A8 G8 G2" 5130 RETURN FRANK.BAS PROGRAM LISTING NUMBER FIVE 10 KEY OFF:WIDTH 80:CLS:DEFINT A-Z:CU$=" " 70 Z=0:GOSUB 3000:FOR X=13 TO 15:LOCATE X,1:PRINT STRING$(80,"");:NEXT X 75 GOSUB 1000:DIM H$(NW), H(NW), A$(90), A(90), W$(90), W(90), U$(50), U(50):T$=TIME$:XX=VAL(LEFT$(T$,2))*120+VAL(MID$(T$,4,2))*60+VAL(RIGHT$(T $ ,2)):RANDOMIZE XX 77 RESTORE:FOR I=1 TO NW:READ H$(I):NEXT I 80 FOR X=1 TO NW:IF H(X)=0 THEN 100 ELSE NEXT X 90 FOR X=1 TO NW:H(X)=0:NEXT X:H=INT(RND*NW):GOTO 110 100 FOR T=1 TO 5:H=INT(RND*NW):IF H(H)=0 THEN 110 ELSE NEXT T:H=X 110 H$=H$(H):H(H)=1 120 L=LEN(H$):FOR X=1 TO L:W$(X)=MID$(H$,X,1):W(X)=0:NEXT X 140 LOCATE 14,39-L/2:PRINT STRING$(L+2," ");:LOCATE 14,40-L/2:COLOR 15:PRINT STRING$(L,"-");:COLOR 7 150 FOR X=65 TO 90:A$(X)=CHR$(X):NEXT X 160 LOCATE 16,1:PRINT SPACE$(70):LOCATE 16,1:PRINT"What's your letter?"; 170 LOCATE 18,5:PRINT STRING$(70,""); 180 LOCATE 20,14:FOR X=65 TO 90:PRINT A$(X)" ";:NEXT X 190 CU=22:LOCATE 21,30:PRINT"('/' to guess word)"; 200 IKEY$="":LOCATE 16,CU:PRINT CU$; 210 GOSUB 59990:BEEP 220 IF IKEY$="*" THEN CLS:LOCATE 12,10:PRINT"The word was "H$(H)"!";:TIMEOUT=5:GOSUB 59950:RUN "b:ekg001" 230 IF IKEY$="/" THEN 2000 240 A=ASC(IKEY$):IF A>90 THEN A=A-32 250 IF INSTR("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvw xyz",IKEY$)=0 THEN 200 260 LOCATE 16,CU:PRINT IKEY$; 270 IF A$(A)=" " THEN LOCATE 17,1:PRINT"You've already used "IKEY$"!";:TIMEOUT=2:GOSUB 59950:LOCATE 17,1:PRINT SPACE$(50);:GOTO 200 280 S=0:NC=0:FOR X=1 TO L 290 IF W$(X)=IKEY$ THEN W(X)=1:S=S+1 300 IF W(X)=1 THEN NC=NC+1 310 NEXT X 320 IF NC=L THEN 340 330 IF S<>0 THEN 340 ELSE IF Z>=7 THEN 3800 ELSE LOCATE 17,1:PRINT"The monster gets ";:GOSUB 3000:TIMEOUT=2:GOSUB 59950:LOCATE 17,1:PRINT SPACE$(50);:A$(A)=" ":GOTO 180 340 LOCATE 14,40-L/2:COLOR 15 350 FOR X=1 TO L:IF W(X)=1 THEN PRINT W$(X); ELSE PRINT"-"; 360 NEXT X:COLOR 7:A$(A)=" ":IF NC=L THEN 4000 370 TIMEOUT=2:GOSUB 59950:GOTO 180 1000 ON ERROR GOTO 1050 1010 RESTORE:NW=0 1020 READ X$:NW=NW+1:GOTO 1020 Computer News Vol. 1 No. 1 Page 40 1050 RETURN 2000 LOCATE 16,1:PRINT"What is your guess for the word? ";:INPUT W$:IF W$="*" THEN CLS:LOCATE 12,10:PRINT"The word was "H$(H)"!";:TIMEOUT=5:GOSUB 59950:RUN "b:???0??" 2010 IF W$=H$ THEN 4000 2020 LOCATE 16,1:PRINT SPACE$(70);:LOCATE 16,1:PRINT"Wrong! There goes ";:GOSUB 3000:TIMEOUT=2:GOSUB 59950:GOTO 160 3000 Z=Z+1:ON Z GOTO 3100, 3200,3300,3400,3500,3600,3700,3800 3010 STOP 3100 LOCATE 1,1:PRINT STRING$(80,"");:LOCATE 12,1:PRINT STRING$(80,"");:FOR X=1 TO 12:LOCATE X,1:PRINT"";:LOCATE X,80:PRINT"";:NEXT X:LOCATE 2,28:COLOR 15:PRINT"F R A N K E N S T E I N";:COLOR 7 3110 FOR X=6 TO 12:LOCATE X,10:PRINT STRING$(8,"");:LOCATE X,62:PRINT STRING$(8,"");:NEXT X:LOCATE 5,13:PRINT"";:LOCATE 5,65:PRINT""; 3120 RETURN 3200 PRINT"his body!"; 3210 COLOR 15:LOCATE 6,37:PRINT STRING$(7,"") CHR$(31) STRING$(6,29) STRING$(5,"") CHR$(31) STRING$(4,29) STRING$(3,"") CHR$(31) STRING$(2,29) "";:COLOR 7 3220 RETURN 3300 PRINT"his arm!"; 3310 COLOR 15:LOCATE 6,35:PRINT"" CHR$(31) STRING$(2,29) "" CHR$(31) CHR$(29) "";:COLOR 7 3320 RETURN 3400 PRINT"his other arm!"; 3410 COLOR 15:LOCATE 6,44:PRINT"" CHR$(31) CHR$(29) "" CHR$(31) CHR$(29) "";:COLOR 7 3420 RETURN 3500 PRINT"his leg!"; 3510 COLOR 15:LOCATE 9,39:PRINT"" CHR$(31) CHR$(29) "" CHR$(31) STRING$(2,29) "";:COLOR 7 3520 RETURN 3600 PRINT"his other leg!"; 3610 COLOR 15:LOCATE 9,41:PRINT"" CHR$(31) CHR$(29) "" CHR$(31) CHR$(29) "";:COLOR 7 3620 RETURN 3700 PRINT"his head!"; 3710 COLOR 15:LOCATE 3,39:PRINT"" CHR$(31) STRING$(3,29) "" CHR$(31) STRING$(3,29) "";:COLOR 7 3720 RETURN 3800 LOCATE 16,1:PRINT" The word was " H$ ".";:TIMEOUT=2:GOSUB 59950:PRINT" The MONSTER lives!!!";:TIMEOUT=2:GOSUB 59950 3810 FOR X=1 TO 10 3820 LOCATE 6,35:PRINT" " CHR$(31) STRING$(2,29) " " CHR$(31) CHR$(29) " "; 3830 LOCATE 6,44:PRINT" " CHR$(31) CHR$(29) " " CHR$(31) CHR$(29) " "; 3840 COLOR 15:LOCATE 6,35:PRINT"" CHR$(30) STRING$(2,29) "" CHR$(30) CHR$(29) ""; 3850 LOCATE 6,44:PRINT"" CHR$(30) CHR$(29) "" CHR$(30) CHR$(29) ""; 3860 FOR X1=1 TO 50:NEXT X1 3870 LOCATE 6,35:PRINT" " CHR$(30) STRING$(2,29) " " CHR$(30) CHR$(29) " "; 3880 LOCATE 6,44:PRINT" " CHR$(30) CHR$(29) " " CHR$(30) CHR$(29) " "; 3890 COLOR 15:LOCATE 6,35:PRINT"" CHR$(31) STRING$(2,29) "" CHR$(31) CHR$(29) "";:COLOR 7 3900 COLOR 15:LOCATE 6,44:PRINT"" CHR$(31) CHR$(29) "" CHR$(31) CHR$(29) Computer News Vol. 1 No. 1 Page 41 "";:COLOR 7 3905 NEXT X 3910 LOCATE 16,1:PRINT SPACE$(70):LOCATE 16,1:PRINT" Would you like to play again (";:COLOR 15:PRINT"Y";:COLOR 7:PRINT" or ";:COLOR 15:PRINT"N";:COLOR 7:PRINT")?"; 3920 GOTO 4010 4000 LOCATE 16,1:PRINT"Correct!! Would you like to play again (";:COLOR 15:PRINT"Y";:COLOR 7:PRINT" or ";:COLOR 15:PRINT"N";:COLOR 7:PRINT")?"; 4010 GOSUB 59990:IF INSTR("ynYN",IKEY$)=0 THEN 4010 4020 BEEP:IF IKEY$="y" OR IKEY$="Y" THEN CLS:Z=0:GOSUB 3000:FOR X=13 TO 15:LOCATE X,1:PRINT STRING$(80,"");:NEXT X:GOTO 80 5000 CLS : END 10000 DATA fat,cat,act,can,fast,hat,hand,last,man,ran,have 10010 DATA red,hen,let,get,help,next,pet,men,went,bed,said 10020 DATA big,pig,fir,did,swim,six,dig,win,sit,hit,been 10030 DATA rug,bug,jump,hunt,fun,must,cup,bus,cut,run,of,from 10040 DATA hot,pond,got,hop,not,dog,log,lost,soft,on,was,want 10050 DATA glass,grass,bell,dress,will,still,off,cross,fuss,stuff,roll 10060 DATA milk,truck,ask,back,mask,neck,desk,sick,silk,rock 10070 DATA fish,dish,brush,splash,wish,ship,shop,shed,shut,shelf,wash 10080 DATA rich,witch,lunch,catch,ranch,pitch,such,match,much,stretch, watch 10090 DATA that,this,them,than,then,thin,bath,thick,with,cloth,both 10100 DATA pink,thank,bank,think,trunk,string,sang,long,bring,hung,young 10110 DATA play,day,may,say,stay,train,rain,wait,paint,mail,they 10120 DATA bake,safe,chase,came,cake,gave,late,game,name,made,break 10130 DATA see,need,keep,sleep,me,she,clean,read,teach,piece 10140 DATA try,dry,by,cry,fly,pie,tie,lie,cried,tried,eye 10150 DATA side,line,five,time,like,fine,ride,hide,kite,mine,give 10160 DATA find,kind,mind,hind,blind,right,night,light,fight,might,wind 10170 DATA go,no,slow,show,own,low,boat,road,goat,coat,to,do 10180 DATA cold,nose,old,those,hold,close,told,hope,gold,home,one 10190 DATA new,chew,few,blue,threw,true,grew,suit,flew,fruit,build 10200 DATA use,mule,cute,goose,loose,choose,food,soon,zoo,room,you,school 10210 DATA some,friend,done,does,come,shoe,move,guess,live,head 10220 DATA put,pull,push,full,bush,foot,look,good,book,took,could,should, would 10230 DATA why,wheel,when,whip,which,who,white,whose,while,what 10240 DATA all,draw,ball,crawl,call,fault,fall,caught,saw,taught,shall, gone 10250 DATA brown,house,cow,found,down,sound,how,our,now,out,your,four 10260 DATA toy,noise,joy,point,boy,soil,join,boil,oil,spoil 10270 DATA hear,year,ear,rear,dear,cheer,clear,deer,near,steer,here 10280 DATA hair,care,air,scare,pair,bare,chair,square,fair,share,bear, where 10290 DATA fork,or,for,short,horse,floor,store,tore,shore,more,wore,door 10300 DATA barn,yard,car,arm,farm,are,hard,dark,far,march,part 10310 DATA her,jerk,serve,girl,bird,first,third,curl,turn,hurt,word, work,were 10320 DATA better,never,after,under,coller,color,other,mother,water father 10330 DATA funny,happy,story,hurry,party,any,many,very,ready,pretty 10340 DATA write,knew,know,wrote,lamb,talk,walk,laugh,climb,eight 10350 DATA one,two,three,four,five,six,seven,eight,nine,ten 59950 TIMEOUT$=TIME$:TIME2=VAL(LEFT$(TIMEOUT$,2))*120+VAL(MID$ (TIMEOUT$,4,2))* 6 0+VAL(RIGHT$ (TIMEOUT$,2)) 59960 Computer News Vol. 1 No. 1 Page 42 TIMEOUT$=TIME$:TIME3=VAL(LEFT$(TIMEOUT$,2))*120+VAL(MID$(TIMEOUT$,4,2))* 6 0+VAL(RIGHT$ (TIMEOUT$,2)) 59970 IF TIMEOUT > TIME3 - TIME2 THEN 59960 ELSE RETURN 59990 IKEY$=INKEY$:IF IKEY$="" THEN 59990 ELSE RETURN COMPUTER NEWS PRODUCT GUIDE ============================ PROGRAMS PACK - MS-DOS Version $ 17.95 (Z) BASIC Program Packer by David Goben. MS UTILITIES by David P. Miller $ 30.00 (Z) Transfer files between TRS/LS DOS disks and MS-DOS disks. Format MS disks on a model 4. BOOKS HUNDREDS OF FASCINATING & UNIQUE WAYS TO USE YOUR COMPUTER $ 8.95 (A) by Tina Rathbone. " explore unusual, exciting and unique software packages, gardening, cooking and more." HOW TO UNDERSTAND & BUY COMPUTERS $ 8.95 (A) by Dan Gookin. "Easy to read removes the confusion from computer buying." SOFTWARE BUYING SECRETS $ 8.95 (A) by Wally Wang. "Pick the best software at the best price for you application." 101 COMPUTER BUSINESS IDEAS $ 7.95 (A) by Wally Wang. "If you'd like your computer to work for you-and help you earn money-this is the book to read." FUTURE COMPUTER OPPORTUNITIES $ 8.95 (A) by Jack Dunning. "presenting a fascinating future of computer applications." HOW TO MAKE MONEY WITH COMPUTERS $ 8.95 (A) by Jack Dunning. "Highlights the most profitable computer businesses. BEGINNER'S GUIDE TO DOS $ 8.95 (A) by Dan Gookin. "a basic introduction to the fundamentals of DOS, standard for all IBM/compatibles." DOS SECRETS $ 8.95 (A) by Dan Gookin. "explore those commands and features left unexplained in the DOS manual." MORE DOS SECRETS $ 8.95 (A) by Dan Gookin. "explore an even deeper level of hidden DOS features and commands. Computer News Vol. 1 No. 1 Page 43 HOW TO GET STARTED WITH MODEMS $ 8.95 (A) by Jim Kimble. "...covering everything the beginning modemer needs to know-from purchase and installation". SIMPLE COMPUTER MAINTENANCE & REPAIR $ 2.00 (A) by Wally Wang and Scott Millard. "...understandable, inexpensive and easy maintenance solutions." LIMITED SUPPLY - WHILE SUPPLY LASTS. THE OFFICIAL COMPUTER WIDOW'S $ 7.95 (A) (and Widower's) HANDBOOK by Experts on "Computer Widow/Widower. Enjoyable...Funny...Perfect gift." ROOKIE PROGRAMMING $ 8.95 (A) by Ron Dippold. Introduction to programming for beginners and newcomers. BASIC, C and Pascal." ROOKIE TROUBLE SHOOTING $ 8.95 (A) by Jack Dunning, Scott Millard & Norrel Pugay. "Simple approach to the most common problems." ROOKIE UPGRADING $ 8.95 (A) by Lyle Thorogood & Merlin Johnson. "Beginner's guide to upgrading your PC." WINDOWS SECRETS $ 8.95 (A) by Ron Dippold. "a practical approach for users who want to fully utilize the Windows environment." PC SECRETS $ 8.95 (A) by R. Andrew Rathbone. "continues the DOS secrets books, explores hidden tricks and tips for the PC." LABELS One Wide Labels for Mail or Disks Pressure Sensitive, Quality Guaranteed. 3-1/2 x 15/16 Plain Permanent Mailing Labels 1000 per package $ 4.22 (B) 5000 per Box (One Box) $ 11.95 (B) More than one 5000 pc. box $ 10.95 (B) 3-1/2x 1-7/16 Plain Permanent Mailing Labels 1000 per package $ 5.25 (B) 5000 per box $ 22.95 (B) More than one 5000 pc. box $ 20.66 (B) 4 x 1-7/16 Plain Removable Labels 1000 per package $ 7.45 (B) 5000 per box (One Box) $ 26.95 (B) More than one 5000 pc. box $ 24.95 (B) 4 x 1-7/16 Plain Permanent Mailing Labels 1000 per package $ 5.25 (B) 5000 per box (One Box) $ 22.95 (B) More than one 5000 pc. box $ 20.66 (B) DISKETTES Computer News Vol. 1 No. 1 Page 44 FLOPPY DISKS $ .40 (C) 5-1/4 Double/Single Sided Disks DD. 100% Error Free Lifetime Guarantee with Paper Sleeves, Labels & Read/Write Tabs. American Made - Bulk Platinum Brand by Syncom. FLIPPY DISKS $ .60 (C) 5-1/4 Single Sided DD on both sides. Premium Quality with two notches by factory. American made by Name brand mfg. 100% Error Free. With Paper Sleeves, Labels & R/write Tabs. 3-1/2" DISKS $ .69 (D) Premium Quality DS/DD by Major US mfg. Complete with sleeves and labels, 100% Error Free, Lifetime Warranty. American Made - Bulk Platinum Brand by Syncom. 5-1/4" TYVEK SLEEVES (25 per pk) $ 1.25 (U) COLOR CODED DISK LABELS Five Color 5.25 Write-On Disk Labels 10 labels w/10 read-write tabs per sheet 100 per package $ .50 (U) FLOPPY DISK MAILERS Self-Sealing Mailer package of 10 $ 3.35 (Z) Holds one or two 5-1/4 floppy disks. SELECTOR SWITCHES A-B SWITCH, PARALLEL $ 14.75 (Z) With three female 36 conductor centronics connectors. A-B SWITCH, SERIAL, RS232 $ 12.75 (Z) With three DB25 Female connectors. THREE POSITION SERIAL SWITCH $ 16.95 (Z) w/4 DB25 Female connectors FOUR POSITION SERIAL SWITCH $ 20.95 (Z) w/5 DB25 Female connectors. CABLES REQUIRED BETWEEN AB SWITCH and PRINTER Printer to Selector Switch 6' $ 13.49 (E) Printer to Selector Switch 10' $ 15.95 (E) Printer to Selector Switch 15' $ 18.95 (E) RS232 SERIAL CABLES RS232 Serial Cable 6 ft. $ 8.95 (E) Equal to Radio Shack #26-240, Male - Female RS232 Serial Cable 6 ft. $ 8.95 (E) Equal to Radio Shack #26-249, Male - Male Computer News Vol. 1 No. 1 Page 45 RS232 NULL MODEM Cable 6 ft $ 9.95 (E) Connect two computers together. PRINTER CABLES For PC IBM/Compatible Computers to Parallel Printers. Round 6 ft. Parallel Printer Cable $ 9.05 (E) Round 10 ft. Parallel Printer Cable $ 10.35 (E) Right Angle 6 ft. Printer Cable $ 11.65 (E) Left Angle 6 ft. Printer Cable $ 11.65 (E) DISK CLEANING, DUST COVERS 5-1/4" DISK DRIVE CLEANING KIT $ 4.90 (Z) 3-1/2" DISK DRIVE CLEANING KIT $ 5.25 (Z) UNIVERSAL PRINTER DUST COVERS $ 9.75 (Z) For printers up to 16" wide, anti-static vinyl. INTERNAL HALF HEIGHT DOUBLE SIDED DISK DRIVES Internal Half Height 5-1/4 1.2 meg. $ 89.95 (Z) Internal Half Height 3-1/2 1.44 meg. $ 79.95 (Z) Internal Half Height 5-1/4 360K $ 67.00 (Z) Internal 2 Floppy Drive Cable IBM style $ 2.35 (X) +ADD SHIPPING & HANDLING CHARGES LISTED BELOW TO YOUR ORDER+ $10 Maximum S&H charge for United Parcel Ground Service. Add the shipping and handling charges per item ordered, if it exceeds $10 for shipment in the 48 states then add only $10 to your order for shipping and handling. ---------------------------------------------------------------------- (A) - Add $3 for one book, $4 for three or more shipped in the 48 states. $6 shipped outside. (B) - Add $4 for ea. label package OF 1000 Labels. $5 for 1 box Of labels. $4 per box for 2 or more boxs. (C) - Add $4.00 per order of 5-1/4". floppy or flippy disks. (D) - Add $4.00 per order of 3-1/2" disks. (E) - Add $4 for one or more cables. (S) - Add $6 Shipping & Handling (T) - Add $4 for One Item; $6 for Two or More. (U) - Add .50 cents per package. (V) - Shipping & Handling Included. (W) - Add $1 Shipping & Handling. (X) - Add $2 Shipping & Handling. (Y) - Add $3 Shipping & Handling. (Z) - Add $4 Shipping & Handling. Shipments are made by UPS ground service whenever possible. Please use Computer News Vol. 1 No. 1 Page 46 street address and include phone number when ordering. Consistent with industry standards no refunds are made for opened software, manuals, integrated circuit chips or computer parts. Replacement limited to defective material only. No returns without written authorization. Check or Money Order Payment Only - We do not accept Credit Card orders. C.O.D. add an additional $4.50 per order. APO, FPO, HI, AK, PR, and Canada add an additional $2 per order unless otherwise stated. Wyoming Residents Only add 4% Sales Tax. Prices subject to change without notice. Order from: Computer News, PO Box 680, Casper, WY 82602-0680; (307)265-6483 Monday thru Friday - 8am thru 5pm - Mountain Time Government, School, and Rated Corporation Purchase Orders Welcome ======================================================================== We hope you enjoyed this sample issue of Computer News PC. Computer News PC (c) copyright 1993 by Construction News Publishing is published by monthly. Subscription rates are $24 per year, mailed bulk in the US. $35.50 Canada and Mexico, $42 Surface Mail Overseas. Air Mail Rates are available. Stan Slater, Publisher Ron Gatlin, Associate Publisher Sorry credit card orders are not accepted, send Check or Money order to: Computer News PO Box 680 Casper WY 82602 (307) 265-6483 We also publish Computer News 80 which is devoted to the Tandy/Radio Shack Model I/III/4/4P/4D, Model 100, 102, 200 Notebook computers. We have the worlds larges library of public domain and shareware programs for these computers the TRS-80 computers. We have a large library of Public Domain and Shareware Programs for the IBM-PC MS-DOS and Windows Computers. Download by mail for as little as 98 cents per program. Completely de-arched and de-zipped. Tested and ready to go. TO PRINT THE MAGAZINE The magazine has been paged at 60 lines per page. Set your dotmatrix printer to skip the fold in fan fold paper, or use your laser printer with normally prints 60 lines as its default setting. Computer News Vol. 1 No. 1 Page 47