Operating the Apple 1
Corey & Jeremy Cohen
lovingly built the
"Mimeo-1" Apple 1 replica.
Some liberties were taken:
the Apple 2 keyboard that cannot generate the underscore/back-arrow required for backspace.
Mike Willegal's
Apple 1 Mimeo Project
is an absolutely faithful reproduction of the Apple 1, with
- 6502 CPU
- 8k DRAM (4k was stock)
- all the same chips and PCB board
Vince Briel's
Replica 1
clone of the Apple I works the same but does not look the same.
what buttons to press and NOT to press
Each program has a unique prompt
\ for the monitor
* for the cassette tape ROM
> for BASIC
There are 2 special keys.
RESET is just that: it resets the CPU.
Pressing it while a program's running will certainly halt it
and return you to the monitor's \ prompt.
CLEAR clears only the display.
Pressing that while a program's running will clear the screen
but may leave it in an inconsistant state
where the display keeps going to the wrong location.
So press it again and hope you find a spot where things re-sync!
Internally, there are 2 sections to the Apple 1.
The video display runs from its own memory
using circuitry similar to
Don Lancaster's TV Typewriter.
Just like today's PC: the graphic card is an independent system
with its own RAM and controller
whereas the CPU has its own RAM running concurrently.
starting up
When the machine's powered up, the display is usually filled with random characters.
Press <clear> to clear the display,
then <reset> to start the WOZ monitor, giving the \ prompt.
\ the WOZ monitor
Using only a 256 BYTE ROM, the monitor replaces the front panel
of toggle switches and LEDs,
allowing one to display RAM,
enter data into RAM and jump to an address to start program execution.
- LINE EDITING:
<esc> erases the entire line,
_ erases one character
(but our keyboard cannot generate that character
and the cursor won't go backwards anyway)
- SPECIAL CHARACTERS:
- . dot: specifies a range of addresses to display RAM, read or write cassette
such as 004A.00FF
- : colon: used to store/alter RAM
- TO DISPLAY RAM:
Enter an address in hex, then <enter>. Leading zeroes are not needed.
Or enter several addresses separated by spaces.
Or enter a range as <start>.<end> (that's a period between them)
The RAM is displayed in the traditional hex format
The input buffer is 127 bytes so type all you want!
- ENTER/ALTER RAM:
<starting_address_in_hex>:byte byte byte …
Everything following the colon is stored in RAM
The "current address" is saved to eliminate some retyping.
- RUN A PROGRAM:
<starting_address>R
R is for "RUN"
Pressing ANY key (or RESET) stops execution, returning to the "\" prompt.
* the cassette tape ROM
The cassette tape interface has a 256 byte rom at address C100.
so C100R runs that program, giving the "*" prompt.
It has 2 commands:
The range of addresses is specified as <start-address>.<end-address>R (or W).
A period separates the addresses.
Multiple reads or writes are allowed on one line
For example:
E000.EFFFR reads from a tape, loading into addresses E000 thru EFFF
004A.00FFR0300.0FFFR reads a tape, loading into addresses 4A thru FF and 300 thru FFF
> loading BASIC
- connect the cassette recorder (or substitute)
to the BOTTOM jack on the cassette board
- from the "\" monitor prompt, run the cassette program with
C100R <enter>
- from the cassette program's "*" prompt,
enter this command to read from location E000 to EFFF
BUT DO NOT PRESS ENTER YET!
E000.EFFFR
- start the tape player (or MP3/ipod), then hit <enter>
(there's usually a 5 second leader to help you)
- if all goes well, you get back to the monitor's "\" prompt
- to enter BASIC, start execution at E000 with
E000R <enter>
to get the ">" BASIC prompt.
- to re-enter BASIC and resume execution from a break
(from striking any key) the resume address is E2B3
E2B3R <enter>
loading a BASIC program from cassette
- press <reset> to get back to the monitor.
Don't worry. RAM is not altered, so BASIC stays memory resident.
- from the "\" prompt, run the cassette interface program with
C100R <enter>
- read 2 regions into RAM from the cassette with
004A.00FFR0300.0FFFR
BUT DO NOT PRESS ENTER
- start the tape player, then hit <enter>
(there's usually a 5 second leader to help you)
- if all goes well, you get back to the monitor's "\" prompt
- resume the BASIC interpreter with this entry point:
E2B3R <enter>
- from BASIC's ">" prompt, enter
RUN <enter>
See Also: