💾 Archived View for uscoffings.net › retro-computing › systems › Tandy › oldskool › cnpc.txt captured on 2023-07-10 at 15:09:32.

View Raw

More Information

-=-=-=-=-=-=-

          COMPUTER NEWS PC

MAY/JUNE 1993        VOLUME 1 NUMBER 1   (C) Copyright 1993

     CONTENTS

THE BRAINS OF THE OUTFIT
 by David P. Miller

FRED'S TWENTY-FIVE MISTRESSES
 by Ev Blechman

STARTING UP A PC
 by Danny C. Mullen

BASIC ANATOMY I
 by Fred Blechman

HIDE.BAT A BATCH PROGRAM
 by Danny C. Mullen

BASIC PROGRAMMING
 by Charles Weaver

DOS UPGRADES - SHOULD WE
 by David Goben

BUZZWORDS
A glossary of terms used.
 by David Miller

AN OLD FRIEND AND 
NEW PC USER WRITES
 by Willi E. B. Wald

PROGRAM LISTINGS

CNPC PRODUCT GUIDE

CLASSIFIED ADVERTISEMENTS

---------------------------------------------


EDITORIAL COMMENT
     Hello and welcome to our premier issue of Computer News PC. Many have
asked why we name our magazines Computer News. Perhaps it is because we come
from an era when old something new or we learn something new, the standard
comment was "That's news to me." I guess it just stuck. But even though we
have some very good and we hope interesting articles in this premier issue it
feels a little strange writing this first editorial column. Where are we at
and where are we going? There is so much in the IBM/clone world to cover, so
much that has never been covered or so much that was only covered briefly that
our heads are still spinning from what this or that program will do, or would
have done if we really had the time to sit down and study the six pounds of
manuals that came with the computer. Or had the time to sit down and read the
manual that came with the program. 486 pages of manual for just one program,


Computer News Vol. 1 No. 1     Page 1
written by some fool that thinks that we already know everything there is to
know about these computers!
     What I really want to say is where we go from here is going to depend a
great deal on you the reader. What do you need and what do you want explained?
Please do not expect us to answer your individual letters, we barely have time
to see that all the material and orders are being shipped as they should be.
But if you will write telling us what you would like to see covered in CNPC we
will do our best to get the answers into print for you. Please do write, it is
very important to us and to you too, to help give us some direction. And most
of all thank you for your support.
----------------------


The Brains of the Outfit
A Short History of Microprocessors
by David P. Miller

     Before starting to cover the subject indicated above, let me say that I
am pleased and honored to be included in this inaugural issue of Computer News
PC. While I consider myself fairly knowledgeable, I am not the 'expert' or
'guru' some claim to be; my mistakes are many (and sometimes legend...) Having
said that, please note that if an error of fact appears in my column it is
because I have received inaccurate information that I believe to be true. You
will find me open to suggestion and quick to admit my mistakes when they are
pointed out. Now back to the subject; As most of us are aware, the 'PC' has a
long history that includes many diverse versions of the Central Processing
Unit (CPU). This chip is the heart, or more accurately brain of any computer.
Back in the days when 'PC' meant 'Printed Circuit', Intel produced a chip it
named the '4004' and was heralded as the first 'computer on a chip'. While
this CPU was not actually used in a computer, it was the predecessor of the
'8008', which was followed by the '8080'. At this point, the lineage split
into two branches. One, the Z-80, was produced by Zilog and surpassed the
8080's capabilities by providing more registers and commands that could be
executed. The other, produced by Intel, was the 8088, introduced in June,
1979.
     Unlike the Z-80, which main- tained the '8-bit' structure that limited
the CPU to a maximum of 64K of directly addressable memory, the 8088 was
provided with sufficient address lines to 'see' 1,024K of memory without
resorting to electronic 'tricks' such as the extended memory of the TRS-80
Model 4 uses (these 'tricks' are still used to gain access to even more
memory, called 'virtual memory'). The 8088 was also able to handle data
internally in two-character chunks, effectively doubling the speed of the
chip, and ran at a maximum clock speed of 8mhz; twice that of most 8-bit CPU's
of the time.
     While the full 1,024K of memory was addressable simply by loading address
values in the 8088's registers, the usable space was still limited to 64K at
any given moment. This was not a handicap, however since any 64K in the
addressable space could be 'seen' when the program needed it. (Note: the 640K
'limit' on program size is a limitation imposed upon the Operating
System's designers by the original 'PC' computer manufacturer.) At the same
time 8088-based machines were available, a 'clone' manufacturer began making
computers using a more powerful version of the chip; the 8086. This CPU
provided a 16-bit data bus, meaning that it could retrieve information from
memory 16 bits (two characters) at a time instead of one, speeding up all
communication with the rest of the computer.
     While the 80186 would seem to be the next in the line of CPU's, it was
only an 8086 with internal Direct Memory Access circuits and a timer built in.


Computer News Vol. 1 No. 1     Page 2
In February of 1982, Intel introduced the 80286; the next 'new' CPU in the
line. The 80286 provided an additional address line called 'A20' that allowed
direct access to 16 Megabytes of memory and virtual access to 1 Gigabyte (see
glossary), and ran at clock speeds up to 12mhz.  It is important to note that
other manufacturers were making 'compatible' chips at the same time; some of
which were better and faster than those produced by Intel. However, since the
naming scheme has held since Intel began the 8088-compatible line of CPU's,
this discussion will only mention Intels' name for each chip. The next chip in
the line was the 80386. With significantly higher clock speeds of up to 33mhz
and a full 32-bit data bus (able to move four characters of data at a time),
the 80386 was much faster than the 80286. It also provided direct access to up
to 4 Gigabytes of memory and 64 Terabytes. The 80386 also provided a
'virtual mode' having nothing to do with virtual memory regardless of the
similarity in names. The 80386 'virtual mode' allowed the CPU to section
memory in such a way as to make each section emulate a 640K 8086 computer
system; letting the CPU run multiple sessions (different programs) at the same
time. The 80386 also had the ability to 'swap' any section of memory
into the address space of any other, allowing enormous flexibility in
programming.
     The 80386 was renamed the 80386DX when Intel introduced the 80386SX in
June, 1988. With a 16-bit data bus such as the 80286 used, this CPU could only
address a maximum of 64 Megabytes, the same amount as that visible to the
80286. However, the less effective design allowed for a lower market price.
The 80386SX was designed to 'kill' the 80286; it performed its' intended task
admirably.
     In April, 1989 Intel introduced the 80486DX chip, with a full 32-bit data
path, higher maximum clock speed (50mhz),an internal 8K memory cache,  and
more efficient internal design than the 80386. However, at an initial market
price of $950.00, the CPU did not hold its' own against the increasingly less
expensive 80386, so Intel introduced the 80486SX at $258.00 in April, 1991. By
this time, however, the public had 'caught on' to Intel's method of
crippling part of a chip to bring the price down, with the ultimate goal of
destroying the marketability of a previous model. The 80486SX did not sell
well, since a full-blown 80486DX would have to be purchased if a math
coprocessor was desired.
     To avoid embarrassment, Intel quickly dropped the 'SX/DX' discussion and
instead brought out the 80486DX2. This CPU is referred to as a 'clock
doubler', and runs twice as fast internally as the rest of the system. With
the internal memory cache and the fact that an 80486 is capable of executing
an instruction in only one clock cycle instead of the several cycles taken by
all previous processors, an impressive increase in performance can be seen on
80486DX2-equipped machines.

The Next Step: Pentium
     Intel is currently bringing to market the next in it's line of CPU's.
Named the Pentium, it is able to execute two instructions in a single clock
cycle; will contain a built-in floating point math co-processor much faster
than the 80486's; will contain a 16K internal memory cache; has an internal
64-bit data bus able to move 8 characters at one time, and may provide
a 64-bit external bus for communication with the rest of the computer.

In Summary
     The CPU in your computer has a long and varied family tree. Like many
people, this tree has some branches better forgotten about. But overall, the
sheer raw power provided by the currently-used generation of 8088 compatible
CPU's gives home users computer capabilities undreamed of only a few decades
ago. In future issues, I'll discuss upgrade options; what you may need (or NOT


Computer News Vol. 1 No. 1     Page 3
need), why you need them (or don't), and how to install such upgrades if you
choose to. Also to be covered is information intended to help you make
purchasing decisions best suited to your needs and budget. Unlike such
articles found in the 'glossy' magazines, this information will not be
presented by an author or magazine 'owned' by hardware or software
manufacturers or retailers. Instead, the discussions presented will be for
the sole purpose of assisting you in selecting equipment that will fill your
needs without wasting your money. Until then, happy computing!
-David P. Miller
--------------------------


Fred's Twenty-Five
Mistresses
by Ev Blechman

My husband, Fred, has had twenty-five mistresses. At least, that's all I know
about. Of course, they say the wife is the last to know - but not in my case.
     It happened! Not one, not two, not three, not four, but twenty-five
times! And the sad thing is that I found out about the first one the moment he
carried HER across our threshold.
     It was a cold January morning in 1978. Fred and I had only been married
two months when he brought HER right to our doorstep. She was well disguised,
but I was immediately intimidated by her because she weighed less than I did!
Fred carried her over the threshold with no explanation and then, just like
the ravenous beauty that pops out of the cake at a bachelor's last gig, SHE
popped out of her carefully designed outer garments. Physically, my contours
were much more curvy than hers. She was small, definitely angular, but solid.
I should have deduced that from her outer garments. While I try to maintain a
good California tan and a sunny disposition, she appeared in chic grey with
black and silver accessories, and had a distinctive cool and precise manner.
The delicate way in which Fred handled - and fondled - her should have warned
me of the constant confrontations which were to become part of our future, and
which I've endured now for fifteen years. I admit to a slight scowl as I
noticed Fred handling her so gingerly, and carefully, like a thing of great
fragility. I didn't take his pulse, but it must have been racing as he picked
her up, turned her over, inspected her closely, and gently ran his hands all
over her frame.
     She arrived, reminiscent of a bride and her trousseau, with various
accessories. Fred immediately took charge, attaching the accessories in the
right places. I couldn't help taking note of his excited manner, his joy, the
wondrous expression of anticipation of glorious hours that he would spend with
her.....and I was jealous.
     Because I was Fred's new bride, there was a strong obligation on Fred's
time; I expected it to be spent with me! When we got married he said "Stick
with me, Babe. We'll get rich building our Amway business together." I won out
for a short while. Then came the long, lonely hours waiting for him to leave
HER side. I never knew when I would see the light go out in the guest room
where he had made a home for her. Many times, late into the night, I would
reach out to touch him, only to find that he was not there. However, he was
always at my side when I woke up in the morning - but dead to the world!
     I was beside myself. I had overheard Fred tell a friend on the telephone
that he was teaching her to do just about anything he wanted. No wonder he
appeared so haggard as he dragged himself into bed in the wee hours of the
morning.
     I quickly discovered a marked distinction between us. I didn't have all
the answers, she did. And my Fred was trying to find them! I built up quite a


Computer News Vol. 1 No. 1     Page 4
resentment over this third party who was spending twenty-four hours a day in
our new-bride paradise. Something had to be done. I'd had it. Fred was being
"wenched" away from me. One night I stomped my way towards the guest room and
flung open the door. Just as I suspected, there was Fred, hovering over her as
he had day after day for the last six months. She remained still - not a move.
But I heard her humming to him. My presence was completely ignored. I hurled
out of the room, slammed the  door behind me and waited for some response.
None. They were totally engrossed doing their thing together.
     Hours later Fred came into our bedroom and announced he'd done all he
could with her, and that he'd need to get another more powerful "model". I
said nothing as my fury built up. He had made up his mind and my silence was
mistaken for acquiescence. He got three more. All from the same family!
     As time went by, Fred had twenty-five of these - you guessed it -
microcomputers under our roof (although, thank goodness, not all at the same
time!) Instead of being restricted to just the guest room, Fred used a total
of three bedrooms, and spent more and more time running from one bedroom to
the other. Over a period of time, some left as new ones arrived. Just imagine
how you would feel if you saw your home was invaded first by a TRS-80 Model
I, then three Model IIIs, two Model 4s, two Model 4Ps, two Sinclair ZX-81s, a
Timex Sinclair 1500, a Timex Sinclair 2068, a Radio Shack MC10, a Coleco ADAM,
an Apple IIc, a Sanyo MBC 555s, a Sinclair QL, two Sinclair Spectrums, an IBM
PC/XT Clone, a 286 clone, a booksize PC/XT, a Toshiba 1000 laptop, a Laser PC4
notebook, and a Microgold 286 portable. (Know any wife who would learn the
names of her husband's twenty-five mistresses?)
     At this point in time, there are only twelve micros left, and like a
family, they share some of the bedrooms, the play room, and the office. It
took a while to convince me that I would be able to accept and eventually
love, if not all, one or two of Fred's "mistresses." Believe it or not, I
can't wait to get my hands on one every day when I do paperwork for our
Amway business - with the $49 "AMBIZ-PAK" of eight programs Fred wrote while I
thought he was "fooling around." Maybe a wife IS the last one to know.......
-Ev Blechman

About the Author: Ev Blechman is a former professional dancer and movie script
writer. She and Fred are Amway Emerald Direct Distributors.
----------------------------------------------


STARTING UP A PC
by Danny C. Mullen

OK, now you have a PC or compatible system on your desk and you've got it
put together and have powered it up a few times, right? What you may or
may not have figured out is that these machines running the popular DOS
systems look for 2 files automatically when starting their power-up
sequences: CONFIG.SYS and AUTOEXEC.BAT in that order. Actually, it also
looks for 2 other files, normally hidden, called IO.SYS and MSDOS.SYS if
you're using MS-DOS. These two files are always loaded automatically, but
don't go into the CONFIG.SYS file. They must always be located in the
root directory of any  disk you use to boot-up the computer, since they
control the hardware at the lowest level, and contain the actual
operating system.

The file named CONFIG.SYS, contains a list of files to run that
manipulate or setup hardware or special software you want to run. These
can include driver programs that activate a mouse, setup RAM disks,
activate different memory schemes, and a myriad of other possibilities.


Computer News Vol. 1 No. 1     Page 5
The AUTOEXEC.BAT file usually contains a list of programs to run
automatically to further setup your machine for use.  Some examples are
virus scan programs, print spoolers, and DOS shell programs. You will
undoubtedly find many situations where these driver programs and the
others can be put in either the CONFIG.SYS or AUTOEXEC.BAT files
depending on the manufacturer's design or instructions. Sometimes they
must be in the specific one the documentation states.  Even more,
however, some programs have two  versions; one may have to go in
CONFIG.SYS and/or the other might only go in AUTOEXEC.BAT. There is no
hard and fast rule, except follow the manufacturers instructions.
One other must for these two files is that they must be in the ROOT
directory of the drive you are booting from in order for the machine to
find them. PCs running the popular DOS operating systems today have a 
Directory and sub-directory scheme that's both a blessing and a curse.
You will have ONLY ONE ROOT directory per disk that all other
directories/sub-directories branch from. Floppy and hard disks can be
organized this way, but usually your hard disks are where this is most
important.

EXAMPLE:

C: ROOT of drive C

Directory A of drive C

Sub-directory B of directory A

Sub-directory C of directory A

Directory D of drive C

A and D are directories of the root, while B and C are sub-directories of
A.

There is no limit to the sub-directories possible, except for disk
capacity. Sub- directories can have sub-directories until you get lost in
a maze.

Most of the DOSs used today have a built-in command called TREE that will
display this structure the same as in the above example.

Why sub-directories? Well there is a limit to the amount of files the
root directory can hold. So we should organize the disk into these
sub-directories where we can keep related files and information together.
Also be aware that each sub-directory does use a small amount of disk
space for each one you make even if there are no files stored in them. By
the way, sub-directory names are limited to eight characters with an
optional extension; the same goes for actual filenames within those
sub-directories.

EXAMPLE:

 WORDPROC
 WORDPROC.NVL

Another note in this area: most 
DOSs commonly used must be given a PATH to follow in order to find files


Computer News Vol. 1 No. 1     Page 6
in these sub-directories unless you are actually logged into the same
directory. By logging into a directory   or subdirectory, I mean issuing
the following command:

CHDIR or CD (both are equivalent)

EXAMPLE:
 CD\WORDPROC
 CD\WORDPROC\DATA


Say for example you had a game name BLAST.EXE in sub-directory C above.
To start it from the command line you could type the following commands:

CD\A\C <ENTER>(CD means CHANGE DIRECTORY)
BLAST  <ENTER>
(The backwards \ slashes represent the path - i.e. C is a  sub-directory
of A, which is a  direct branch off the ROOT.)

But, if you had a line similar to the following in your AUTOEXEC.BAT
file, DOS retains this in memory after the machine has booted and will
search, in order left to right, all the paths listed until it found
BLAST.EXE or exhausted the list.

EXAMPLE:

 (file above would be found here)

PATH=C:\A;C:\A\B;C:\A\C;C:\B

(search starts here) (ends here if not found)

Looking at the above as an example, it follows that if you have certain
files or programs that are used regularly, change the PATH statement so
that the directory is near the beginning of the list. Your computer will
find it sooner because it won't have to search the entire PATH. For
example, if BLAST (above) was one program I used often, I would change
the above example PATH statement to the following:

PATH=C:\A\C;C:\A;C:\A\B;C:\B

Now the file would be found sooner since the particular directory is
searched first in the PATH.

========================================

<< EXAMPLE CONFIG.SYS FILE >> (MS-DOS 6.0)

========================================

DEVICE==C:\DOS\HIMEM.SYS

DEVICE==C:\DOS\EMM386.EXE I==E000-F7FF NOEMS

DOS==HIGH,UMB
  DEVICEHIGH==C:\DOS\DBLSPAC E.SYS /MOVE



Computer News Vol. 1 No. 1     Page 7
REM DEVICEHIGH==C:\ HYPERDKX.E XE c:2048 cw:512 HS

DEVICEHIGH==C:\ANSI.SYS
  DEVICEHIGH==C:\DOS\SETVER. EXE

FILES== 30

BUFFERS== 10

STACKS==0,0

FCBS==1

LASTDRIVE==D

SHELL==C:\DOS\COMMAND.CO M C:\DOS\ /E:256 /p

(Please note that the above lines are all one line divided by an empty
line.
There are no spaces at the end of one line and the next line where there
are two or more lines represented.)


========================================
<< EXAMPLE AUTOEXEC.BAT FILE >>(MS-DOS 6.0)
========================================

C:\DOS\SMARTDRV.EXE D
REM LOADHIGH C:\DMP.COM /DC: /MX:10

LOADHIGH C:\DOS\MOUSE .COM

LOADHIGH C:\DOS \DOSKEY
.COM /bufsize==256
 
PATH C:\DOS;C:\HDM;C:\WINDOWS;C: \ POWERC;C:\MASM\BIN;

C:\MASM\BINB;C:\BORLAND C\B IN;C:\PV;C:\SA;C:\SA1

VERIFY==OFF

PROMPT $p$g

(Note: The path statement above continues on a second line, which is OK
provided it doesn't exceed 127 characters in total length. HINT - use
shorter names when naming directories or subdirectories.)

========================================
<<EXAMPLE TREE LISTING>>
========================================

Directory PATH listing
Volume Serial Number is 17EF-3230
C:.
BORLANDC
  BGI
  BIN


Computer News Vol. 1 No. 1     Page 8
  CLASSLIB
   EXAMPLES
   INCLUDE
   LIB
   SOURCE
   CRTL
   CLIB
   EMU
   IOSTREAM
   MATH
   RTLINC
   WINLIB
   INDEP
  DOC


 EXAMPLES
  CHELP
  CLIOLE
  CMDLG
  DDEML
  DRAGDROP
  SOUNDER
  TRUETYPE
  DOS
  FTREE
  HDM
  WS5
  03660464.C
  SA1

(as you can see, it gets rather involved at times, but your directories
don't have to be as complex)

What I've covered in this article is only a small part involved in the
typical DOS machines of today. You can delve further into the above areas
by studying the DOS manuals and third party books for tricks or tips to  
optimize your system to your needs.
-Danny C. Mullen

(About the author, Mr. Mullen is in the US Army full time, looking
forward to  retirement in 1995. Currently stationed at Fort Polk, LA and
is about to be transferred in June to Fort Hood, Texas. From the mud of
Louisiana to the sands of Texas, with the same bugs and heat. He is also
the author of PRICON a shareware utility for printer setup and a number
of public domain programs both for the TRS-80 Model 4 computers and for
IBM/clone computers. All of which are available from the MS Library or
the Model 4 Library of the FILE CABINET.
----------------------------




BASIC Anatomy I
A Menu - Program Number One
by Fred Blechman

The dictionary defines "anatomy" as the the art or science of dissection,

Computer News Vol. 1 No. 1     Page 9
and is derived from the Greek word meaning "a cutting up." Just about
anything can be cut up to separate its component parts, thus allowing
some analysis of function.

That's what we will be doing in this series on "BASIC Anatomy" - cutting
up BASIC programs line-by- line to see how they work.

I must assume you have at least a rudimentary knowledge of BASIC, and are
familiar with some of the most-used commands, such as RUN, LOAD, and
PRINT. Hopefully, you also are at least familiar with a FOR-NEXT loop -
but I'll explain that briefly anyway when we get to it.

The BASIC I'll be using is very generic, and should be applicable to most
microcomputers. Specifically, I'll use the BASICA or GWBASIC used on IBM
PCs or compatibles, and will specify those statements peculiar to the IBM
PC.


MENU.BAS (Program Listing Number one.)

The subject of our BASIC Anatomy lesson today, class, will be a short
program (Listing 1) I wrote years ago to use with my $50 package of
programs for Amway Product Distributors. The "AMBIZ-PAK" consists of
eight BASIC programs, plus this MENU.BAS program.

Instead of having to remember filenames when using any of the application
programs, all the user does - after getting into BASIC - is type
RUN"MENU" and press the ENTER key. A "menu" of the programs names appears
on the screen, each with a number. The user simply types a number,
presses ENTER, and the computer loads and runs the selected program.
Each of the application programs, when they end, return to MENU.BAS . If
the user wants to get out of BASIC and back to DOS, Number 9 is 
selected. All very simple and friendly.

If you have several BASIC programs that you normally use, even though
some are only used occasionally, you can generate a MENU.BAS just like
this, with your own program names and filenames. Here's how it works,
line-by-line:

Lines 100-160: The REM means that anything following is a REMark for the
user. The computer does nothing but display this in a LISTing. Generally,
REMarks are to remind the programmer what he did, and why. The apostrophe
(') can also be used instead of REM.

The use of the asterisk (*) for borders is quite common, and gives some
style to program LISTings. The important thing here is to identify the
program, author and date, as well as any revision dates.
Line 180: SCREEN 0 is used with graphics displays on the IBM PC to
identify a text screen that allows 16 text colors. (No colors are used in
this particular program.) Since SCREEN 0 can save either 40 or 80
characters on a line, the statement WIDTH 80 specifies 80 characters.
Notice that a colon (:) separates the two statements and allows them to
be put on one numbered program line instead of two. Most BASICs allow a
"multi-statement line."

The apostrophe is used here before the remarks instead of REM. Any
remarks can be omitted from the program; they are simply there for


Computer News Vol. 1 No. 1     Page 10
explanation. If you are typing in this program, you can omit all program
remarks.

Line 200: IBM PC BASICs have a line of legends at the bottom of the
screen showing some function key commands. This takes up a screen line
and can be confusing, so KEY OFF deletes that line. CLS clears the
screen.

Lines 220-260: Here's a neat trick if you have an IBM PC or compatible.
It will convert your keyboard to all capitals and numbers automatically.
This is useful if you have a program that expects capital letters, and
will be confused by, or not recognize, lower-case letters. It also allows
the numeric keypad on the right side of the keyboard to use numbers
instead of arrows.

While both these functions (caps and numbers) can be commanded from the
keyboard with the CAPS LOCK and NUM LOCK keys, this saves the user from
having to remember to do that if the program requires it.
The IBM PC uses different SEGments of memory to store built-in
instructions and application programs. A BASIC program starts at a
segment somewhere above the bottom of memory.  DEF SEG==0 moves the
memory address pointer to the beginning of memory. The POKE &H417,96
statement changes the value at memory location 417 (hexadecimal) to
decimal 96 from its default of 128. This tells the computer to provide
caps and numbers. The details of "why" are not important here.
DEF SEG in Line 260 returns the address pointer to the beginning of the
BASIC program. Now if you should want to use lower-case letters or the
cursor keys, you would use the CAPS LOCK and NUM LOCK keys to revert them
back - or, while in BASIC at the Ok prompt, type DEF SEG==0:POKE
&H417,128:DEF SEG and press ENTER.

Line 280: STRING$(79,205) sets the string variable X$ equal to 79
continuous double borderline symbols. The first number in parentheses is
the number of characters, the second number is the ASCII code for the
character (#205 in this example.) From this point on, X$ can be used to
draw the border.

Line 290: This is a DATA statement, and contains the filenames for all
the programs you will have on your menu. The .BAS extension is not
required, since BASIC assumes this as the default in a BASIC program
filename. This information will be used with the READ statement in Line
340. Stick with me.
Line 320: Each of the filenames in DATA will be held in an "array", a
series of locations in memory designated, in this example, as A$(X),
usually called "A-string sub X".

BASIC generally allows only up to 10 array locations without other
instructions, since memory has to be set aside for array space. The DIM
A$(15) sets aside 16 locations (0 is included), although this program
will not use them all. It's shown here in case you have more than 10
items in your menu.

Line 340: This multi-statement line uses a FOR-NEXT loop to READ the DATA
into the A$-array. The FOR sets X equal to 1, READs the first DATA item
from Line 300 (it finds the DATA wherever it is in the program), and
plugs this into array location A$(1).



Computer News Vol. 1 No. 1     Page 11
The NEXT advances the X-count by one (since no other increment is
specified) to a value of 2. This is then used for the next DATA filename
to be put in A$(2), since X is now 2. This continues, plugging the data
into the array until the value of 8 is exceeded, when the program falls
through to the next program line.

Lines 360-400: The screen title, with double borderlines above and below,
are printed at the top of the screen.

Lines 420-620: The selection instructions and each program number and
name are printed on the screen, followed by another double borderline.
The TAB(7) indents each line 7 spaces.

Line 640-680: Here the computer asks you to type the number of your
choice, and then waits for your input with INPUT X.

If you respond with a 9, you are sent back to DOS with the SYSTEM
command. If you respond with a number less than 1 or greater than 9, this
is an error, so the computer BEEPs and sends you back to Line 360 to try
again.

Line 700: If you have selected numbers 1 thru 8, this number was assigned
as the value of X by INPUT X in Line 660. This is now the value of X in
Line 700. The filename in this location in the A$-array is then used with
the RUN command to load and run this program.
While this is a relatively simple program. MENU.BAS illustrates the use
of a number of common statements. With some imagination you can add all
kinds of bells and whistles, but this does the job very well as it is.
Have fun!
-Fred Blechman

(About the author, aside from being Ev Blechman's husband, he has written
articles for many Computer Magazines and computer books and is now
retired.)
-----------------------------


Hide.Bat
(See Batch File Number One)
by Danny C. Mullen

What is a batch file, you say? Simply a list of commands written in plain
english (thank goodness) that DOS will execute line by line. While the
concept is easy, and simple batch files are easy to make, there is the
potential to create very sophisticated ones that are hard to interpret
(unless you wrote it). While the intent of batch files is to make a list
of commands or files to run, there are a few commands that DOS has to
help you build the more complex types. Batch files can ease your work by
enclosing a sequence of commands or files to run in one file (the batch
file). Therefore if you need to constantly or occasionally run the same
commands, just run the batch file instead of typing all those commands
again. It can really save those keystrokes.

Let's see an example of a simple batch file:

     (let's call it DZ.BAT)



Computer News Vol. 1 No. 1     Page 12
     copy c:\word\smith.txt b:\wordbak
     b:
     cd\wordbak
     dir
     c:

     That's it, a 5 line batch file. The first line copies a file from a
certain directory on drive c to a certain directory on drive b. The
second line switches to drive b. Line three changes 
to the directory where you copied the file. The next line shows  the
files in that directory, and then the last line switches us back to drive
c. This example could be of benefit if we had been working on a file
named smith.txt earlier and wanted to back it  up to a safety disk, and
also verify that it had been copied to drive b.

In order to make this batch file, you would start a text editor  or word
processor program. DOS 5 and higher has a good editor  named,
appropriately, EDIT which works fine. When using a  word processor,
ensure you can save files in pure ASCII format,  since certain formatting
commands used by them could disrupt the  batch file's execution. Type in
the lines as above, and then  save the file with the name DZ.BAT. The BAT
ending allows you to  quickly identify it as a batch file, and it's a
good habit to  follow. You also shouldn't name a batch file with the same
name  as a built-in DOS file (i.e. FORMAT.BAT vs FORMAT.COM) since DOS
will execute files with .COM and .EXE ending first. Your batch file
wouldn't get a chance!

After saving the DZ.BAT file to disk, exit the editor or  word processor
and go to the DOS prompt. Type in DZ.BAT and your file will execute. Now
the same goes for batch files as any other command; that is if it can't
find the program to run, or files to copy or has other errors, then
you'll receive appropriate error notices on the screen. You may have to
check your batch files for misspelled words or commands, or ensure that
directories and files actually exist.
I've written a batch file (see the listing for HIDE.BAT) that will create
a subdirectory on a disk (if it doesn't already exist), make that
subdirectory hidden from normal viewing, and then copy a file to it.
Something like this would help get little-used files out of other crowded
directories or serve as a backup in the event of accidental erasure of
the main file. It can also keep prying eyes from your private files. This
is not a hacker proof method of hiding files or directories, but it is
fairly quick and easy.

I refer you to your DOS manual for further, in-depth coverage of batch
file techniques. However, I will now guide you through HIDE.BAT: (I won't
cover lines with similar content)

@echo off

  Ensures lines aren't  printed to the screen  twice.
  The @ keeps the first  line from actually  printing on the  screen.
          
cls

  Clears the screen.

echo.


Computer News Vol. 1 No. 1     Page 13
  Adding the dot prints  a blank line.

echo ====== 

  Prints following  characters to the  screen good for a  menu or notice
  as here.

pause

  Suspends execution  until a key is pressed  and also prints
  PRESS ANY KEY  TO CONTINUE.  By pressing  CONTROL C at this  point, the
  batch file    will quit running,  though it will verify  this by asking
  for  confirmation.

if exist %1

  Checks for existence  of a file. (I didn't use  this in the file). The
  %1 (there exists %0 -  %9) substitutes the  first parameter on the
  command line to this  position in the batch  line. The %0 holds the
  name of the batch  file itself (i.e.  HIDE.BAT).

if exist %1\nul

  By adding a \nul  checks for existence  of a directory. Here it jumps
  over the   directory-making  command if the  subdirectory already 
  exists.

goto skip
  
  Makes execution  jump to a line with  the name indicated.

if "%2"====""

  Checks to see if we  entered a filename  on the command  line. If no
  entry,  goes to usage line to  show you the syntax.

md %1 md

  (make directory)  using the first  parameter from the  command line.

attrib +h %1

  Makes the directory  hidden by setting its  attribute to hidden  (+h).

:skip

  Names a point in the  file that you can  jump to using the  goto
  command. The  colons in front of a  word designate a  label.

if not exist %1\%2

  Tests to see if the  file already exists in  the directory and  warns
  you if it does  so as to prevent  overwriting it.

copy %2 %1

  Copies the file (%2)  to the directory we  want (%1).


Computer News Vol. 1 No. 1     Page 14
rem

  Remark lines that  let you document  your batch file. 
  Notice that I put these REM at the end since DOS must scan and
  interpret each line in batch files whether they are commands or
  remarks. This can allow faster execution by putting remarks at the end.

That's all there is to it. While a bit more complex than the first
example, I hope you can see what I've done to make a handy little batch
file that also does some rudimentary error checking, and may actually
provide some benefit to you. There is a book called ADVANCED BATCH FILE
PROGRAMMING by Dan Gookin, published by WINCREST/McGRAW-HILL that can
give you in depth coverage of this topic. Enjoy.
-Danny C. Mullen
-------------------------


BASIC PROGRAMMING Part 1
by Charles Weaver

This is the first in a series of articles on programming in BASIC. The
series was originally published in PC Today magazine starting in
February, 1992. By the end of the series, you should be able to write at
least simple programs. With more practice, you may well end up surprising
yourself. In this article we cover the necessary preliminaries. Starting
with the next one, we will get down to business. To start with, we
consider what a program, pro- gramming and computers really are while
trying to anticipate and answer some of your questions.

A program is really nothing more than a complete set of detailed
instructions to tell your computer how to do what you want done. Many of
us have had some experience with programming people rather than
computers, perhaps by giving someone a recipe. Since the recipe is a set
of instructions, it is a kind of program. The difference lies in for whom
or what the program is intended.

Sounds simple enough but why not do so in the English language? After
all, English is good enough for us mere mortals? Yes, it is. But you are
much smarter than your computer; you can figure out what people mean,
often in spite of what they actually say. The recipe, for example, may
call for pre-heating the oven but it would rarely say to turn the oven on
first. If a computer program were to omit that step, it would not be
done. With the chef, we can make some reasonable assumptions; with the
computer, there is no such thing. The computer, as you will see, takes
everything literally and often leaves us wanting to say "You know what I
mean!". Thus, a vague or ambiguous human language, English or any other,
just won't do. Nor will a vague or ambiguous program, regardless of the
language in which it may be written. And, without a program, the computer
is just a box; it can't do anything. Programs make your computer a very
useful household appliance and business tool all in one. Why would anyone
other than a programmer want to write a program? The primary reason is
having a need to accomplish a particular task. In such cases it usually
makes sense to check first to see if the needed program already exists.
Why reinvent the wheel? If there is no such program, you might wonder
why. Often this means that either there is a better way than doing it
with a program or you are among a very few people who have such a need.
In many cases, the "better way" may be a hardware (as opposed to a


Computer News Vol. 1 No. 1     Page 15
software) solution. For example, if all you need to do is type a short
letter, a typewriter will do just fine. If, however, you need to do a lot
of letters, or you use correction fluid by the gallon, a word processing
system (hardware and software) may be the way to go. Today, you have a
choice.

While a typewriter may be easier to use and cheaper to buy, it is also
rather limited in what it can do. With a typewriter, and "hardware"
solutions in general, your skills and knowledge of how to use it become
the "software". A word processor, on the other hand, is usually more
complicated to use and more expensive but the results may be worth it.
Still, how much sense would it make to spend the money for one and take
the time to learn how to use it if all you wanted was to type that one
short letter? One of the beauties of a program is that you can use it
again and again for similar, if not identical, chores.
If you need to do some calculations, you also have several choices:
pencil and paper, a calculator or spreadsheet software, among others. A
spreadsheet program like Lotus 1-2-3 has far more capabilities than most
people will ever need to do many kinds of calculations. Such commercial
software packages often endow the novice with the abilities of a pro.
Still, if your needs are specialized enough, and no one has already done
so, writing your own program may be justified. Usually, the choice here
would be based on the volume and complexity of the calculations involved.
If you want to play chess, the traditional board and pieces, plus an
opponent, is the easy way. Without an opponent, a so-called "chess
computer" may be the answer but it is a single purpose solution; it plays
chess - period. It does, however, allow you to yell at your opponent and
still sleep indoors that night. Writing your own chess program would be
overkill no matter how often you used it. I like both chess and contract
bridge but I often lack an opponent (or three in the case of bridge). To
remedy this, I bought software for both games. At no time did I ever
consider writing my own. With so many others out there who enjoy these
and other games, such software is readily available in several varieties
and at very reasonable prices.

There is, of course, the exceptional reason to write a program you just
want to. You may be curious or just want to see how it's done. Fair
enough. In this case it really doesn't matter if there are better methods
or existing software available. Nor does it matter if you will only use
your program once. This is probably the reason you are reading this
article. As you become better at programming, the option to write your
own program also becomes more popular.

Make no mistake about it, writing a =real= program, much like writing a
book, is a lot of work. Since I have done both, I know how fitting the
analogy is. Real programs, like real books, may run hundreds of pages in
length. In both cases, the author usually begins knowing what to write.
The trick is in how to write it. In a program or a book there are a lot
of ways to say the same thing and choosing among them is a common
problem. Just like eating an elephant, it can be done if we proceed one
bite (byte?) at a time. Eventually, we will finish the job. Fortunately,
programs of only a page or two in length will often get the job done.
Over the next few months these articles will give you what you need to
get started and actually write some programs. From there on, it is a
matter of learning and PRACTICE!, PRACTICE!, PRACTICE!. Given enough of
both, you can go about as far as you want. Surely you will progress from
the stage of a wannabe programmer to at least programming literate. To


Computer News Vol. 1 No. 1     Page 16
reach the guru level takes years of experience and often starts at a
university. For those who have no intention of seeking that level, a
different approach is needed. While this series of articles will not
create any gurus, it may be responsible for a few computer widow(er)s.

OK, so you want to write a program. Why a BASIC program? Again, there are
several reasons. First of all, you probably already have BASIC since it
comes on the DOS disk of many PCs sold today and often at no extra
charge. Simplicity is another reason. BASIC, you see, is an acronym (and
that is why it is properly spelled in all caps) which stands for
Beginner's All-purpose Symbolic Instruction Code. For now at least, you
are the beginner and this language was meant for you. While there are
hundreds of other programming languages available, BASIC is one of the
easiest to learn.

Created in 1964 by two Dartmouth professor's, BASIC has been
substantially improved over the years until becoming the much more
capable dialects (versions) of today. If there is a "standard" version of
BASIC, it would have to be Microsoft BASIC, the one that comes with most
PCs today. It does, however, have two different names. IBM calls it
BASICA (advanced) and the compatibles usually call it GW-BASIC. For our
purposes, they are the same. The latest version is called QBasic and
began shipping with DOS 5.0. If that's what you have, come along for the
ride. As you will see when we get to it, QBasic is very similar to the
others. There are also some graduate versions (like Quickbasic, etc.)
which have some advantages over the plain vanilla varieties. If or when
you outgrow plain vanilla, you might wish to consider one of them.
There is at least one more reason for using BASIC. Your PC does not
understand any "higher level" (English-like) language, including BASIC!
It knows only its own native machine language which consists solely of 0s
and 1s (zeros and ones). Since it would be a real nuisance for people to
use such a language, we need an intermediate language that fits between
our native tongue and that of the PC. BASIC fits the bill and is, as
mentioned earlier, among the easiest to learn. We begin then with a tie;
your PC doesn't understand BASIC and you may not either - yet. A PC is,
however, a very fast learner. Given the required program, which we have
been calling BASIC, it will instantly become an expert. In this case, the
program is actually called an interpreter and, similar to its human
counterpart, it translates BASIC program statements to machine language.
The computer then executes, or carries out, these translated instructions
to accomplish the task at hand. As the primary function of what we have
been referring to as BASIC or GW-BASIC (Gee Whiz BASIC), it translates
and then executes one statement at a time until it runs out of statements
or encounters an error. Thus, each time a given statement is encountered,
it must be translated again.

A more efficient way would be to translate the entire program, store the
results and then =execute= (run) them. This is the function of another
kind of program called a =compiler=. Think of it this way; the human
interpreter translates spoken language while a compiler is the equivalent
of translating a written document and returning the complete translation
in permanent form. So long as the original (source) document does not
change, there is no need to change the translated (object) version. A
compiler may be more efficient but it is usually available only as an
extra cost option. Its primary advantage is more speed. Since the
computer doesn't have to stop after executing each statement to interpret
the next one, the executable file it creates runs much faster. If you


Computer News Vol. 1 No. 1     Page 17
need the greater speed for things like graphics, which are notoriously
slow in interpreted BASIC, it may be worth it. Depending on the
circumstances you have, a compiled program may run ten times faster. Just
remember that speed is relative. Compared to us, the slowest PC is still
fast enough to blow our socks off.

Interpreter or compiler, so long as either of them can figure out the
intention of a BASIC program statement, it will work. Neither of them,
however, tries to second guess the meaning of a statement. Thus, you must
follow the rules religiously. Being close just isn't good enough. The
reason for this is actually quite simple.  The computer, be it a PC or a
supercomputer, can be thought of as a lightening fast idiot. Typically
deaf, dumb and blind its only redeeming social value may be its speed.
Its only other fundamental abilities are addition and knowing that zero
and one are not the same. (And people are intimidated but such a
machine?) Still, if we combine the speed of a computer with the ingenuity
of a program(mer), the result can be MAGIC.

We must now prepare for the articles to follow by making a few
assumptions, telling you what you are in for, what's in it for you and
just touching the surface of programming itself. The assumptions are
necessary because we simply can't deal with all the possible combinations
of software/hardware/DOS, etc. available out there. Thus we restrict
ourselves to GW-BASIC, the primary dialect, to start with and a minimum
of hardware. You will also need just enough knowledge of your DOS to get
into and out of BASIC itself and, perhaps a few other minor (DOS) tricks.
What are you in for? As we go further into programming it will become
increasingly obvious that having a concern for details is important. If
you follow along with the rest of us, this will naturally develop as we
go. This concern for details lies at the heart of the problem of
"civilians" trying to talk to programmers.  Programmers, unlike most
people, must be very detail oriented.  Unfortunately, this has resulted
in many programmers being labeled as weird, or worse. Both the effects
and the labels can be hard to shake. I still find myself trying to figure
out what a person means by their question and what level of detail is
appropriate in my answer.

You will also learn that l-o-g-i-c is not a four letter word. It is among
your most powerful allies, especially when dealing with a completely
obedient slave - the PC. And here you will learn how frustrating complete
obedience really is. Many of us have dreamed of having such a slave and
how great it would be but, in this case, the computer slave is an idiot.
Taking everything quite literally, it does exactly as it is told. If it
does something wrong, that means you told it something wrong. After all,
it is not smart enough to do right or wrong (or to know the difference).
Thus, you must be careful to give it instructions which are absolutely
clear, correct and complete. We call this paying attention to details and
being logical. The care and patience needed to deal with a small child
would also be quite helpful. Another detail to which you will learn to
pay attention is timing.  In programming as in comedy, timing can be
everything. You must not only do the right things but at the right
time(s) and the articles to follow will make this quite clear. If you
don't get the timing right, your program could well turn into a comedy -
but you may not be laughing.

So what's in this for you? If you are beginning to wonder about whether
or not you should continue, don't worry. This is truly a case of the ends


Computer News Vol. 1 No. 1     Page 18
justifying the means. If you are willing to put up with the
idiosyncracies of your PC and programming, you can expect to be justly
rewarded in the end. To me, one of the greatest rewards is the
satisfaction of solving the ultimate puzzle. When you have successfully
explained to a machine (with the IQ of a flower pot) how to accomplish a
given task, you have, indeed, solved a challenging puzzle. In doing so,
you will experience another of the rewards - that of going one-on-one
with your PC. Lots of people develop an attachment for a car or a
favorite piece of clothing. Is it so unnatural then to have a
"relationship" with your PC? Even if it is (affectionately) called an
idiot? Most people never really get to experience such a thing. And,
obviously, when you finish a program, you will have accomplished some
useful work (the task itself). Regardless of the kinds of programs you
do, you will gain a much better appreciation of your PC.  For example, it
is difficult to appreciate fully what an automatic transmission does for
you until you have driven a manual. With a PC or a car, if you started
with purchased software (the automatic equivalent), you may now be taking
it for granted. Your first experience at programming (or clutch work)
will give you a new perspective.

It is also only fair to warn you that, in spite of some frustrations with
programming, it is a powerful drug that can easily become addictive. For
this reason, I apologize to your family. After more than 20 years of
programming I have come to recognize that the frustration is actually
just a cleverly disguised personal challenge from my computer to me. My
wife, however, has other words for it. No matter, programming is still my
hobby though no longer my profession. When it was, I spent much of my
time writing the software others wanted. The PC has now made it possible
for me to write what I want, thus making it more fun than work.

Before getting into the nuts and bolts of programming, we should look at
the big picture. Basically, a program does three things: input, process
and output. Keeping these three distinct functions in mind will often
prove helpful and serve as a map to follow as we travel the uncharted
waters. For example, the reference above to the importance of timing.
Before a program can process something, it must have something to process
- the input. Thus, the input function should come first. Likewise, the
output function should follow processing. Since these steps can also be
combined, we are left with many more possibilities than you may think.
This natural order of things will soon become second nature as it pops up
time and again.

The primary thing that most programs do not do is completely replace the
person. Contrary to the fears of many, people skills and judgement are
still necessary ingredients. A major problem with this lies in the belief
known as "Deus ex computer", the Latin for "God from the computer". The
opposite disease is "The computer made a mistake.". Both can be fatal. It
is never wise to assume that a program works right unless you have
verified it to your own satisfaction. Both people and companies make this
same mistake.  In fact, a few years ago, a company found itself in
bankruptcy because of this. When the auditors looked into the affairs of
the firm they found that essentially all of the firm's accounting was
being done with a large, complicated spreadsheet. The spreadsheet they
built from the commercial software, not the commercial software itself,
contained over 1000 errors but it had been assumed to be correct. Without
proper accounting, the business failed.
 
 
 
Computer News Vol. 1 No. 1     Page 19
How about the second condition? Can a computer "make a mistake"? Not
likely! Granted, there are relatively rare instances of hardware failure
that could result in various problems. Typically though, such failures
result in nothing being produced or conditions (smoke and sparks?) which
should be obvious. It is much more likely that the programmer, or the
person using the program, made a mistake. If you design your programs
properly, you can make them "bullet proof" but it requires more work on
your part to do so. You can also dress up a program as much as you like
and this too takes time. If you do it, the results will look
professional, even if they are not. However, a monkey in silk is still a
monkey. Better to be sure you have the program right before you start
looking for a wardrobe.

And, finally, some confessions. Lots of people think that you have to
have a heavy duty background in mathematics and other equally unpleasant
stuff to do any programming. True or false? It's some of each. Such a
background certainly would not hurt but you may be surprised at how far
you may be able to go without it. People with music backgrounds, for
example, often do well in programming though no one seems to know why.
For our purposes, your desire and curiosity are more important than your
background. If you read this magazine regularly, it implies that you can
handle programming. The question is, =will= you?
-Charles Weaver

(About the author) Mr. Weaver is an engineer with Ford Motor Company and
an adjunct professor in the Operations Research and Information Systems
Department at Eastern Michigan University. He resides in a suburb of
Detroit.
----------------------


DOS UPGRADES: Should We?
by David Goben

There has been a lot of rumbling in the PC industry about DOS upgrades.
If it isn't MS-DOS, it's DR DOS. Why are there so many upgrades so close
together, and should you bother upgrading?
Last year MS-DOS 5.0 (and DR DOS 6) came out. This year it is MS-DOS 6.0
(and DR DOS 7). The reason why these upgrades have arrived is because of
demands from users for better utilities, features, and support. Each new
upgrade usually addresses bugs in the older version, providing easier
usage of programs, and supporting I/O devices and hardware, such as
multimedia and memory, that were not previously available. However, just
because extended support is provided, that does not mean that you should
just race out and buy the upgrade.

Before upgrading your DOS, you should determine if you =need= to upgrade
your Disk Operating System (DOS). Check with these following general
rules:

MS-DOS 1.x: If you have a floppy-based system with disk capacities of
180K or less, and 640K or less of memory.

MS-DOS 2.11: If you have a floppy only system, and the disk capacity of
the drives does not exceed 360K, and you have 640K or less, or have a
low-capacity hard disk.



Computer News Vol. 1 No. 1     Page 20
MS-DOS 3.x: If you have one of the above systems, but need the power of
XCOPY, or have 720K disks, or have high density disks, or have a high
capacity hard disk.

MS-DOS 5.0: If you have 1meg of memory or more, huge hard disk, high
density disk drives.

MS-DOS 6.0: If you have More than 1meg of memory, and have a near-full
hard disk.

Of course there are other reasons, but I have greatly generalized. As a
matter of review, let us take a look at the evolution of MS-DOS. Tim
Patterson wrote the original version called Q-DOS, for Quick & Dirty
Operating System (Microsoft claims it was called 86-DOS, but we know
better. =That= is what they called it when they bought the rights to it),
in mid-1980. Microsoft obtained a license to the DOS to develop
8086-based software. In October, 1980, IBM approached Microsoft (and
others) about writing an operating system for a new computer.

In July 1981 Microsoft bought the rights to Q-DOS and renamed it MS-DOS
(Bill Gates was reluctant to do so, but at the insistent urgings of his
father, who loaned him the money to do so, he bought those rights). IBM
in turn offered this DOS as PC-DOS 1.0 by license from Microsoft.
Version 1.1 introduced the EXE2BIN utilities, and added date and time
stamping of files. Also, enhancements were added to the commands COPY,
DEBUG, DISKCOMP, DISKCOPY, FORMAT, LINK, and MODE.

In March 1983 MS-DOS 2 was released. It incorporated many UNIX-like
features, such as hierarchial file structures (subdirectories), hard disk
support, file handles, I/O redirection, pipes, filters, background
printing, volume labels, more file attributes, installable device
drivers, user-defined configurations, disk butters, display device
driver, dynamic allocation, custom shells, and many other features.
New utilities supplied with this version were: ASSIGN, BACKUP, BREAK,
CHDIR, CLS, CTTY, FDISK, FIND, GRAPHICS, MKDIR, MORE, PATH, PROMPT,
PRINT, RECOVER, RESTORE, RMDIR, SET, SORT, TREEE, VER, VERIFY, and VOL.
For many reasons, this version was the most revolutionary.

In August 1984 MS-DOS 3 was released with the introduction of the 80286
PC/AT machines. It includes direct control of the print spooler by
applications, extended international support, extended error reporting,
support for file record locking and sharing, support for networks,
support for larger hard disks. Version 3.2 was released to support 3-1/2"
disks. New utilities and commands introduced with MS-DOS 3 were: ATTRIB,
COUNTRY, GRAFTABL, KEYBxx, LABEL, LASTDRIVE, SELECT, SHARE, and VDISK.
Enhanced were: BACKUP, DATE, DISKCOMP, DISKCOPY, FORMAT, GRAPHICS, PRINT,
and RESTORE. MS-DOS 4 was originally released in Europe and Asia, and
dealt primarily with international support. MS-DOS 5 was released in
Mid-1992. It was the first version of MS-DOS that I really liked, because
it was moving away from the much-hated CP/M type operations. The
"standard" BASIC interpreter was dropped, and replaced by QBASIC, which
is a toned-down version of QuickBASIC, which is a fantastic BASIC
compiler. QBASIC allows you to load and run programs, but you cannot
create executable stand-alone files like QuickBASIC.

Not since MS-DOS 2 has there been such a major overhaul of the operating
system and utilities. A help command was added, built-in help was also


Computer News Vol. 1 No. 1     Page 21
added to the programs and commands. A powerful editor was added (actually
using the QBASIC editor but restricting it to text editing). A DOSSHELL
utility was provided to make selecting files easier for those who do not
want to mess with DOS commands. If you have 1meg of memory or more, you
can really go to town by loading many routines into high memory, and in
extended memory. A disk caching system, SMARTDRIVE, was introduced that
is worth its weight in gold (if you have more than 1meg of memory). One
feature I really liked is that you can now display disk directories in
sorted order by specifying an /O parameter with DIR. I also really like
the DOSKEY utility, which allows me to recall previous DOS commands, and
edit them.

MS-DOS 6 was introduced in April 1993. This version provided a lot of
improvements to MS-DOS 5, but was not earth shattering. It does include
MEMMAKER, that is useful to systems with 1meg of memory or more, a
powerful UNDELETE command to recover deleted files, a powerful anti-virus
utility was included, a disk space doubler (automatic file compression
and decompression), and a powerful, and very fast disk backup utility.
Included gems are DELTREE, to quickly delete subdirectory trees, MSD, to
display a diagnostic of the computer -- this tells me exactly what is
inside the computer, and their ratings, DISKOPT, to optimize the files on
the disk, storing them in consecutive order, and a few other features.
All-in-all, unless you have a specific need for features listed in a
version of MS-DOS that is higher than your own, there is no real reason
to upgrade. For example, MS-DOS 5 and 6 are a waste of money on an IBM/XT
HD with 640K, 2 floppies, and a hard disk. Also, the newer versions of
DOS obviously focus on the newer technology, which means that as each new
version comes out, older features or support will eventually fall by the
way-side. Personally, I still find myself using MS-DOS 2.11 on one
machine, and 3.2 on another. One of the main reasons I upgraded to MS-DOS
6 was because most of my applications are window-oriented, and I had the
beef in the computer to take full advantage of the the features offered
by the DOS.

Should you consider any upgrades? If you have an IBM/XT compatible, the
most that you would ever need is MS-DOS 3.x. If You have an IBM/AT
compatible with at least 1meg of memory, then you may consider MS-DOS 5
or 6. If you have a 386 or 387, with more than 1meg of memory, then
MS-DOS 5 or 6 is worth considering.

A final rule of thumb might be the following comparison chart of
consideration for upgrades:
  IBM/PC:  MS-DOS 2.x
  IBM/XT:  MS-DOS 3.x
  IBM/AT:  MS-DOS 5
  3/486:  MS-DOS 5
MS-DOS 6 should only be considered an option if you require any of the
features previously described for that version. MS-DOS 6 is basically
MS-DOS 5 with additional utilities.

CONCLUSION: I hope that I have clarified some of the mysteries about the
MS-DOS "legend", and gave you insight into the system. I hope also that
after reading this, you will at least stop and consider your options and
requirements before racing out for an upgrade.
If you have any further questions about DOS versions or commands, please
address them to Computer News PC.
-David Goben


Computer News Vol. 1 No. 1     Page 23
We encourage each contributor to provide a glossary of terms used in his
article that can be printed in this section.- CNPC


"Buzzwords" A glossary of terms used in this issue.
by David P. Miller

ANSI Codes
A character code designed by the American National Standards Institute
for use in computers. The ANSI code defines the meaning of all 256
possible values used in a computer. Also sometimes referred to as the "PC
Character Set".
See: ASCII Codes, BYTE, CHARACTER CODES.

ASCII Codes
American Standard Codes for Information Interchange. Because the most
common use of digital information at the time this code was developed
consisted of communications equipment using 
only 7 bits, the code only defined character codes 0-127.
See: ANSI Codes, BYTE, CHARACTER CODES.

BINARY
A system of numbering using only the digits "0" and "1"; number base 2.
Each succeeding position to the left is worth 2 times the value of the
position to the immediate right, times the number contained in the
position. Thus, "101" in binary would be 1*(2*(2*1))+1.
See: BIT, BYTE, NUMBER BASE.

BIT
Short for "BInary digiT". A term denoting one of the numbers "0" or "1"
used in the Binary Numbering System.
See: BINARY, BYTE, NUMBER BASE.

BYTE
An arbitrary term denoting the smallest number of bits used to represent
meaningful data in a computer: 8 bits. 
Although different numbers of bits were used by communications equipment
prior to the use of the term, it was first applied to computers and thus
always means '8 bits'. A byte contains possible values of 0 to 255, and
each value is assigned a character code that is converted by the computer
to characters such as "A", "0", and "%" for display and printing.
See: BIT, CHARACTER CODES, KILOBYTE, MEGABYTE, GIGABYTE, TERABYTE.

CHARACTER CODES
A byte may represent a number from 0-255. Each value is assigned a
character that will be converted for input, display, or printing when
sent to the appropriate device. Up to 256 characters are available 
for use by a computer.
See: ANSI Codes, ASCII Codes, BYTE.

CHIP
An integrated circuit in a package that can be inserted in a receiving
socket or directly soldered into a circuit board. Integrated circuits
consist of microscopic transistors, resistors, capacitors, and sometimes
other electronic components.
See: CPU.



Computer News Vol. 1 No. 1     Page 23
CPU
An acronym for "Central Processing Unit"; the 'chip' providing all
calculations and control in a computer. Frequently referred to as the
'heart' of 'brain' of a computer.
See: CHIP.

DECIMAL
A system of numbering using the digits "0" through "9"; number base 10.
Each succeeding position to the left is worth 10 times the value of the
position to the immediate right, times the number contained in the
position. Thus, "123" in decimal would be 1*(10*(10*1))+2*(10*1)+3.
See: NUMBER BASE

GIGABYTE
1,024 Megabytes, or 1,048,576 Kilobytes, or 1,073,741,824 bytes. An
arbitrary term used to denote memory or storage size in computers.
Nearest decimal equivalent is "Billion".
See: BYTE, KILOBYTE, MEGABYTE, TERABYTE.

HEXIDECIMAL
A system of numbering using the digits "0" through "9" and proceeding
through the arbitrarily assigned numbers "A" through "F" for values of 10
through 15; number base 16. Each succeeding position to 
the left is worth 16 times the 
value of the position to the immediate right, times the number contained
in the position. Thus, "123" in hexidecimal would be
1*(16*(16*1))+2*(16*1)+3.
See: NUMBER BASE

KILOBYTE
1,024 bytes. Although 'Kilo-' is generally accepted to mean '1,000', it
is taken to mean 1,024 in computers because of the use of binary and
hexidecimal numbering systems.
See: BYTE, MEGABYTE, GIGABYTE, TERABYTE.

MEGABYTE
1,024 Kilobytes, or 1,048,576 bytes. Although 'Mega-' is generally
accepted to mean '1,000,000', it is taken to mean 1024*1024 in computers
because of the use of binary and hexidecimal numbering systems.


See: BYTE, KILOBYTE, 
GIGABYTE, TERABYTE.

NUMBER BASE
A reference to the maximum value that can be contained within a numeric
position, and the value of each succeeding numeric position to the left
when a value is "carried". The rightmost position of an integer in each
numeric position can contain the maximum number of values in the number
base, starting with "0". The number base designates when a "carry" will
occur to the next position to the left. The value of each succeeding
position to the left is calculated by counting the distance from the
right of the number (starting with "0" for the first position), raising
the number base to the power of the position thus obtained, and
multiplying by the digit held in the position for which the value is to
be determined. Thus, the value of the "1" in the decimal number 54,321
can be obtained by raising 10 (the number base) to the power "4" (the


Computer News Vol. 1 No. 1     Page 24
position, starting with 0), times "5" (the value held in the position) or
(10*10*10*10)*5.
See: BINARY, OCTAL, DECIMAL, HEXIDECIMAL.

OCTAL
A system of numbering using the digits "0" through "7"; number base 8.
Each succeeding position to the left is worth 8 times the value of the
position to the immediate right, times the number contained in the
position. Thus, "123" in octal would be 1*(8*(8*1))+2*(8*1)+3.
See: NUMBER BASE

TERABYTE
1,024 Gigabytes, or 1,048,576 Megabytes, or 1,073,741,824 Kilobytes, or
1,099,511,627,776 bytes. An 
arbitrary term used to denote memory or storage size in computers.
Nearest decimal equivalent is "Trillion".
See: BYTE, KILOBYTE, MEGABYTE, GIGABYTE.


LETTERS TO THE EDITOR

An old friend and new PC/clone user writes.

Hello again! Please accept me as one of the charter subscribers to your
new undertaking; I wish you for all our sakes every success. As for   my
own "modest" wishes, I have a list longer than my arm. At the very   top:
absolutely NO WINDOW-DROSS; purge that word from your vocabulary or 
I will very quickly become a NON-subscriber. And DO keep GWBASIC very
much alive. If you must, bring us the OCCASIONAL QBASIC pgm if it is of
great merit. I am looking to you for a large supply of GWBASIC pgms from
P.D. authors. As for transfering between TRS-DOS and MS-DOS, I have SX4.
What I am looking for is a serial link via null-modem that will connect
the two different systems and NOT time out! Of course, a reliable and
affordable emulator pgm would really be great. HYPERSOFT for a while was
advertising sucha pgm; but it was not inexpensive and I do not know how
"bullet-proof" the model III emulator is. For two hundred bucks I can buy
a golden oldie IBM computer.

I came mighty close to doing just that; in old issues of COMPUTE!
magazine is a CRC type PROOFREADER BASIC pgm and all of their BASIC pgms
are published with this one's two-letter checksums. My problem was that
under version 3.20 and 3.22 of GWBASIC it would not work. Then I got hold
of 3.23, the very last and not very common version of GWBASIC, and it
seems to work. I only got it on the weekend and have not had time to key
in a whole program. Also, for the profreader pgm itself they did 
NOT show the checksums! But if ever a pgm was proofread repeatedly it is
that one.

The last two times did not yield a single error. I am sure that
originally it was written for IBM's BASICA, but I have no access to a
true IBM machine, that is why I nearly bought an oldie. But I am married
and would like to remain so; buying a fourth computer might have changed
that.

Only last month I had to get a new SVGA monitor: four C-notes. My better
half was not amused. On this month's VISA bill there were again a hundred
worth of computer related expenses and I did not buy any expensive pgms.


Computer News Vol. 1 No. 1     Page 25
Henry [Herrdergen] wrote me a short note about you and about the
CodeWorks pgms in model IV that I had shared with him, also that you got
him all the issues except #30. As you probably know, the major pgm in
that last issue is a large database in GWBASIC only; too large for TRS-80
BASIC. My kids have been good to me: for Christmas they gave me the
"bibles" for both QBASIC and GWBASIC. Despite all the help, I have to
concede that real programing is beyond my reach. I can modify some ideas
that would serve me better or   find some way to achieve a result in a
quicker way, but that is about it.

Despite the current trend away from BASIC or to have it bastardized into
something foreign like QBASIC without line numbers, I still like to key
in printed listings, particularly those with checksums. If you ever get
hold of and sell older issues of COMPUTE! with the PC listings please let
me have a crack at it. Also, if you have the GWBASIC disks for 
CodeWorks I am interesed, too. They were placed in the public domain when
they quit and I already paid for the model IV versions when I was a
subscriber. Have any of your GURUS come up with a universal, CRC-based
checksum program that they would donate as FREE-WARE? Would you even
consider a bulletproof checksum pgm if one were available, one that does
not require linenumbers and gives a two-byte checksum? On one of my
share-ware disks is an offer from a firm in Florida to do custom
programming in BASIC for a reasonable fee. If there is sufficient
interest, and the price is not too steep, you could pass the hat and we
could benefit a lot of computer-hobbyists.

Another feature that I miss is scrolling a GWBASIC version. According to
BASIC Programming INSIDE & OUT (the "bible"), some clone manufacturers
have done what LSI did with the model IV BASIC: in the LIST mode either
the arrow keys or Ctrl-X and Ctrl-Y will scroll single lines. However,
that book was written in Germany and I have yet to encounter such
modified GW-BASIC here or a patching pgm that would do the job. If you
ever come across such "advanced" version please share it with us. I have
learned how to alter the function-key assignments permanently and simply
on version 3.20 , but until I get more familiar with the COMPUTE!
proofreader (sometimes I get a cursor and sometimes not) I am not going
to mess around with the   innards of GWBASIC.EXE ver.3.23! To avoid any
mix-up between the versions 3.20 is GWBASIC, 3.22 is KBASIC and 3.23 is
LBASIC in my computer.

What bothers me a lot is that no text-processor will give a visible  
End-of-Line symbol (CR/LF) as we take for granted on TRS-80 pgms. I have
WordPerfect 5.1 but find it intimidating, an almost 5 Mega-byte monster.
VARSITY-SCRIPSIT can be coaxed into showing one, but in ASCII-mode will
NOT accept a TOF (0CH). However, it will accept >300k ASCII files into
memory; I have one Meg RAM, puny by today's standards. As far as
MICROSOFT goes, for us hobbyists it is almost a lost cause.MS-DOS 6 still
does not have a decent DISKCOPY and with all the bells and whistles in
their QBASIC no thought has been given to a widely distributed checksum
program. Try as I might, there is not a single solitary advantage for a
user of WINDOWs that I could possibly see. The people who killed 80-MICRO
have come out with DOS-RESOURCE and their tips have been of great  help
in giving me effective CONFIG.SYS and AUTO)XEC.BAT files; but I also 
took from other sources to give me start-up in upper case, a loud beep  
whenever Caps-, Num- or Scroll- Lock are being toggled (I had really
wanted to make CapsLock a two-key operation) and and a permanent
date/time display that can be toggled on or off. Am not sure wether to


Computer News Vol. 1 No. 1     Page 26
bother with MS-DOS 6, I definitely want NO part of their HD-compression
scheme; my 42  MEG HDrive is not even half full. I am still used to
having everything on floppies and with 1.2M and 1.44M drives, wow for an
old 180K hand.

As you perhaps recall, I opted for a new computer because my model IV
would not respond to SUPER-SCRIPSIT. It had always acted oddly when it
was powered up with my DMP-120 printer and I had regarded that as a very
minor flaw. Only when I got hold of an internal TANDY test disk did I
realize the severity of the problem. Part of the new computer package was
a CITIZEN 200GX printer. Hooking that one up to my TRS-80 and LLISTing a
simple BASIC pgm made it glaringly obvious that more than a little is
wrong with my 80.

So far, even with this new elaborate computer, my goal of perfectly
micro-spaced proportional printing has not quite been reached. Now even I
do not expect miracles from a nine pin dot-matrix-printer; but I am truly
appalled how indifferent both WordPerfect and the printer's manufacturer
are to achieving the best print quality from a dot-matrix-printer. To get
proportinally spaced printing I bought an enhancement package: PowerPak
from ATECH. While a distinct improvement, it is far from type-set
quality.

I also bought a special book from W.P. about writing your own printer
drivers; so far have not tackled it. A cursory glance shows no mention of
micro-spacing. This note to you (I hesitate to call it a letter) is
written on my text-editor with PRINTMAN because you like to get an ASCII
file and I am not all that familiar with W.P. to extract an ASCII file
without the 3 to 5K header. I assume substance over form?

Now a few legal questions. As consumers, I take it as a given that our
"legal" system ALWAYS favours large and rich corporations over the
ripped-off individual. Now as a concrete example: despite my best
efforts, I can't get the "Big Clock" type-in pgm to run. Assuming you
have the same magazine can I hire you to key it in for me, debug it and
send me the file for a  small fee without me having to send to you the
whole magazine? The publisher of the magazine so far has not done it. #2.
In PC-WORLD there is a small QBASIC utility pgm, DRIVINFO.BAS, which
gives extensive information on the floppy in the drive selected. If I
want to check another floppy, I have to use several key strokes, end up
at the edit screen and have to use  F5 (RUN) to start over again. Being
the knuckle-heads that we are, can you publish my problem, including the
code, with a view of having a more astute reader improve the pgm so that
only a single key-press is necessary to re-run it? These are real
problems to me and your help in resolving them would be very much
appreciated! Now for a laugh: MICROSOFT sent me some sales literature and
a 1.44Meg floppy, extolling the virtues of WINDOW and WINDOW software at
bargain prices if I buy a whole bundle. The floppy will only run under
WINDOW. Being a curious guy, I use DRIVINFO to see what DOS has been used
to write that floppy: IBM 3.3! I nearly fell off my chair laugh- ing. I
had fully expected to see MSDOS 6. Well, enough for today.

Live long and prosper, and don't let the bastards grind you down.  Keep
STREETBASIC humming in all of its dialects,
-Willi E. B. Wald

These and many other questions will be answered in future issues, Mr.


Computer News Vol. 1 No. 1     Page 27
Wald's letter certainly has hit on many of the plights of the IBM/Clone
user who does not have or can afford the very latest computer, program or
other goodie, as many of the computer magazines on the magazine rack
expect you to have.
---------------------------

Please if you think Computer News PC is on the right track in supporting
the older IBM/PC computers - tell a friend - we need all the subscribers
we can get and we appreciate your support.
---------------------------


PUBLIC DOMAIN PROGRAMS PRINTED IN THIS ISSUE type in as printed from the
Program Listing Section.


Spinout.Bas

Program listing number two on page 20 is a very interestering IBM version
of the classic "Breakout" game that has been played by many on the Atari.

Decide.Bas

Program listing number three. A clever program to help you make
decisions, written in GWBASIC. (gee-wiz basic).

Bandit.Bas

Program listing number four. The one armed bandit (slot machine) game in
GWBASIC.

Frank.Bas

Program listing number five. A very surprising game with an animated
monster that is built by your guessing the right word. 
-------------------------


Write and tell us if you like the type-in games or what kind of programs
you would rather see in this section.



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 X<L THEN X=L
620 IF Y<T THEN Y=T
630 IF Y>B 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{body}lt;>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 (Y<PY)OR(OY>PY) THEN GOTO 1270
1100 IF ((PL-2)<X)AND(X<(PR+2)) GOTO 1130
1110 IF ((PL-2)<OX)AND(OX<(PR+2)) GOTO 1130
1120 GOTO 1270
1130 Y=PY+PY-Y
1140 SOUND 300,5*LOUD
1150 IF (RND(1)*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<L THEN PL=L
1480 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