|   |
![]() |
|||||||||||
Home |
Along with the Apple 1 Cassette Interface the buyer used receive a cassette containing Apple 1 Basic.
This basic was later enhanced with a few commands and sold with the first Apple ][ computers as Apple Integer Basic
With the basic came a "preliminary user manual" with a total of 16 pages, including the front page! A scanned version of the manual can be found on the download page, where you can also find the hex dump of the Apple 1 Basic.
I think it goes without saying that you should make sure that Apple 1 Basic is loaded into memory before it can be started. If it's not provided in ROM you'll have to load it into memory locations from $E000 to $EFFF. The Basic interpreter can be started by typing E000R in the Woz Monitor. After printing the contents of address E000 you'll see a > symbol followed by the flashing cursor, which is from now on our prompt to enter Basic commands.
If you had to go back to the Woz monitor for any particular reason and want to return to the Basic interpreter without losing anything you can use the "Warm" entry point by typing E2B3R in the Woz Monitor.
Starting Basic using its Cold entry point initializes the LOMEM and HIMEM pointers to $0800 and $1000 respectively (HIMEM is set to 4k + 1).
This means that you'll have a total of 2k of memory for your Basic program and its variables.
Unfortunately there are no SAVE and LOAD commands available in Apple 1 Basic. However it is still possible to save your programs to tape and load them back in later. Doing so is not very straight forward, as you might expect from modern computers.
The original user manual only tells you how to save and restore a program using the standard 8k configuration of the Apple 1, where LOMEM is set to $0800 and HIMEM is set to $1000.
Other configurations will make it more complicated to save and restore your programs.
Especially if you want to load a program into a different memory range than it was saved from.
In order to save a Basic program you have to return back to the Woz Monitor.
The easiest way to do that is to press the Reset key.
Then you'll have to enter the ACI control program by typing C100R.
C100R C100: A9* 004A.00FFW 0800.0FFFW \ E2B3R
The first range saves important house keeping data, while the second range stores the entire program and variable space.
In short, everything which is important for Basic is saved to tape.
Thus if you read this tape back later you'll end up with exactly the same situation as when you saved it, including all the variables.
Reading the tape back can be done without starting Apple 1 Basic first.
You'll have to leave Basic anyway to enter the ACI program.
Apple 1 Basic does not have to be initialized after loading the program from tape because all the important settings were saved to tape and are restored after loading is complete.
C100R C100: A9* 004A.00FFR 0800.0FFFR \ E2B3R
Doesn't differ much from the commands to save the program to tape, does it?
Of course not.
If you play the tape back you'll have to use the same address ranges as when you wrote them.
This is particularly true for reading back Apple 1 Basic programs.
Don't forget to Warm start Apple 1 Basic after reading your program back. Accidentally using the Cold start method would immediately erase your freshly loaded program again.
GOTO
|