SmartBASIC v1.05 Review
by Gregg Noblett
This month's BONUS ! will be a gift from Gregg Noblett. He has sent us
the customized version of Basic which be calls version 1.05. This is the
version Gregg uses with most of his own programming. Many of the
bothersome bugs are fixed, and enhancements added. (Care should be taken
not to confuse versions of BASIC when programmingi never alter your only
copy of BASIC!) Printed below are excerpts from Gregg's letter
describing the modifications.
SmartBasic v1.05 by Gregg Noblett:
This version of Basic has quite a few modifications, all made and saved
on the medium except the WAMO driver which is installed via the HELLO
program. The changes to this Basic are:
1) INIT makes 2-block directories. This is the new INIT function which I
wrote in ML (machine language., ) It overlays the old INIT at the same
address. Previous Pokes to alter the INIT function ARE NO LONGER
2) RECOVER-will now recover W type files.
3) The Poke limit is set to 65535 at boot time. (Same as: "POKE
16419,255: POKE 16150,255")
4) The REM and DATA extra space problem is corrected. (Pokes as per
5) GOTO can handle equations. This means that "GOTO (4*x+z)" is a valid
expression as long as it yields an existing line number. GOSUB functions
exactly as normal (can not do equations.)
6) At Boot time, "LOAD" is set to work like "MERGE". This means that you
can have one program in memory, then load a second program without
erasing the first. If both programs have a line #200, after the second
program is LOADed, Line #200 will be the one from the second program.
The line #200 from the first program will be lost. When "LOAD" is
operating in this mode, you MUST enter "NEW" to erase a program from
I have also added two short ML programs that allow switching between the
"LOAD that is really MERGE" and the "LOAD that is simply LOAD." These
reside in SmartBasic, where the copyright information was stored,
addresses 1056-1080. To enable "LOAD=LOAD" simply enter "CALL 1056" at
the Basic prompt. The prompt will simply return, but LOAD will now act
like LOAD. To reinstate "LOAD--MERGE", simply enter "CALL 1066" at the
7) The "HELLO" program loads the "WAMO PRINT DRIVER". This allows using
a dot matrix printer from Basic. It also allows switching back and forth
between a dot matrix and the ADAM SmartWriter printer. To use a dot
matrix, enter "CALL 25" at the Basic prompt. To use the ADAM Smartwriter
printer, inter "CALL 10" at the Basic Prompt. Do this before using
"PR#1". The driver is set to dot matrix at Boot time.
8) Some Basic editing features have also changed. "^C" (Control+C) is NO
LONGER the break sequence. "ESCAPE" now replaces "^C". "WILDCARD"
replaces "^S". "INSERT" replaces " ^N". "DELETE" replaces "^O". This
makes all these functions "one-key" functions. Their old "^+"
equivalents NO LONGER WORK.
This version also allows up to 239 characters on one line. (Address
16245 has been changed from 128 to 239.)
The tape version is exactly the same as v1.05 for disk, except that it
looks at Drive #1 for "HELLO".
NOTE: By the way, this is not a standard Basic Revision. It is my own
attempt at making use of the fixes that have been discovered by the ADAM
community. This version will work with 98% of the programs written in
basic. The only real conflict is when a program uses addresses 1056 to
its own ML program, OR if it uses "PEEK (64885) to detect a "^C", OR if
it attempts to alter the number of blocks used an a directory by poking
into the INIT function. This in the version of Basic I use most of the