^1                                  BITS 'N PC's
                                By Daniel Tobias


A collection of Hints, Tips and Bug Reports for all programmers and intermediate
to advanced users.


^CBUGS IN "PC CLONES"

BIG BLUE DISK calls itself a magazine on disk for the IBM PC and compatibles.
This means that we support not only the IBM PC itself, but also a number of
other computers which are, to some degree, able to run IBM PC software.

Lately there has been a great increase in the number of IBM-compatible
computers out there.  Many are sold as "generic clones," with the implication
that all such machines are exactly equivalent.  Unfortunately, this is not
always the case.  There are many subtle differences and bugs in the various
models of computers.

For instance, one generic Taiwanese clone we have (from an unknown
manufacturer) goes haywire at midnight and starts advancing the date at a rapid
pace; you're in the 21st century before you know it.  Presumably this is a bug
in its internal date-changing routine.

I suppose such things are the price you pay for cheap no-name clones.  However,
even name-brand compatibles are not exempt from bugs.

We use several THE (Thompson, Harriman, and Edwards) PC+ computers.  We
generally find these to be reliable, and they have some features (such as a 
fast "turbo" mode) not found in the IBM PC itself.  However, we have discovered
an error in its internal BIOS ROM which can cause serious problems. 

This bug pertains to the keyboard buffer.  On IBM-compatible computers, if you
type too fast for the program to process, your keystrokes will go into a
buffer.  Since this buffer is of limited size (15 characters), it will
eventually fill if you keep typing rapidly.  At this point, most computers will
simply beep at you to warn that your new keystrokes are not being registered.

However, under certain (unknown) conditions, filling the keyboard buffer on
THE PC+ will cause a system-level error.  When this happens, the message
"INTERNAL STACK OVERFLOW" will show on the screen, and the system will freeze
up.  At this point, the only way to restart your system is to turn it off and
then back on; even the CTRL-ALT-DEL sequence is disabled.

Naturally, this will cause you to lose all data in memory, and it could cause
the corruption of any disk files that are open for writing at the time of the
system lockup.

Thus, if you have THE PC+, you should avoid filling the keyboard buffer, 
particularly if you have important data in memory you don't want to lose. 
(It's always a good idea to save the programs and data you are working on to 
disk regularly, and to keep backup copies, in case of any catastrophe 
befalling your data.  This is true for all computers, not just THE PC+.)


^CA QUICK SAVE IN BASIC

If you program in BASIC, you've probably had this happen to you:  You are in
the middle of working on a program when you find you must leave suddenly to
answer the phone, doorbell, a call of nature, etc.  In this situation you may
not have time or inclination to type a full "SAVE" command, and thus you might
leave the program unsaved, with the expectation that you will get back to it 
in a minute.  Of course, by the time you get back, you may find that your kid 
brother has tripped over the power cord, or rebooted your system to run PAC-
MAN, and your program has been lost. 

As I pointed out above, it's always a good idea to regularly save work in
progress.  But, if you're too rushed (or too lazy) to type a SAVE command in
full, there is a way to do this in only two keystrokes.

Simply press F4 followed by F2.  This will cause the line ^1SAVE"RUN^0 to be
entered.  Thus, your program will be saved under the filename "RUN.BAS".

This probably isn't the name of your program, but it will do for a temporary
save file... you can keep using this keystroke sequence at regular intervals
during your work session to always keep a recent version in the "RUN.BAS" file
in case of a system crash.  (Each newly-saved file will overwrite the previous
one.)  When your work session is finished, you can either type a full SAVE
command to save to the correct name, or just rename the last RUN file.

To recover your most recently saved file, just press F3 followed by F2; this
will LOAD the file named "RUN.BAS".

Another thing... it's a good idea to include the name of your program in a
comment at the beginning of the program.  This is helpful if you save a program
under the name "RUN.BAS" and later forget what program it is... you can just
LIST it and find out.  

If you include the name in a format like:          
                              ^11 'SAVE "stuff"^0
it will prove helpful when you want to save it under its proper name.  You can
then ^1EDIT 1^0, then press the ^I DEL ^N key three times to remove the line number
and apostrophe, and press ^I ENTER ^N. This will cause your program to be saved 
under the name you wish, with little chance of mistyping or forgetting the 
name. 

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

That's all for now; if you have any hints, tips, suggestions, or requests for 
help on a PC-related topic, please send them in to us; see the article, How To 
Disk Us, for details.
