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 POSSIBLE!

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 Hacker's Guide.)

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 memory.

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 Basic prompt.

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 1080 for
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 time.


Back to Top