Skip to content

Latest commit

 

History

92 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Apple1 emulator

The CPU emulator is in the separate repository:

drawing

How to use

Run:

make run

# or you can use Docker:
make docker/run

The command above starts the Apple-1 emulator with Woz Monitor at the address 0xFF00. You should see the screen and the command line prompt:

\
<cursor>

With optional flag -p you can load an additional program to the memory:

cargo run --features binary -- -p asm/apple1hello.asm

It will be loaded to the memory with starting address 0x7000. To run it using Woz Monitor type 7000R and press enter.

You should see this:

^?\
7000R

7000: A9
HELLO WORLD!

█

To see the hex content of the program: 7000.<END ADDR>, for example: 7000.700F:

7000.700F

7000: A9 8D 20 EF FF A9 C8 20
7008: EF FF A9 C5 20 EF FF A9

Basic

You can type E000R to start basic (run program at E000).

Hello world:

PRINT "HELLO WORLD!"

Another simple BASIC program to try:

10 FOR I = 1 TO 5
20 PRINT "HELLO, WORLD!"
30 NEXT I
40 END

RUN

Debug

You can disable the screen (-s) and enable debug logging:

RUST_LOG=debug cargo run --features binary -- -s -p asm/apple1hello.asm

Apple 1 Basic

There are two different ROMs, one of them is from Replica1 (sys/replica1.bin) and another one, roms/apple1basic.bin. Seems like it has 0xD0F2 instead of 0xD012. Both seems to be working well, though I did not test everything.

You can inspect them if you load them to memory and print hex data at location E3D5.E3DF with Woz Monitor.

note: http://www.brielcomputers.com/phpBB3/viewtopic.php?f=10&t=404
discussion about the same problem

apple1basic.bin:

E3D5.E3DF

E3D5: 2C F2 D0
...

Replica1 basic content:

E3D5.E3DF

E3D5: 2C 12 D0
...

Start Basic

make run

and then type E000R.

Resources

About

Apple-1 emulator

Topics

Resources

Stars

14 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages