Skip to content

Latest commit

 

History

History
107 lines (66 loc) · 5.52 KB

README.md

File metadata and controls

107 lines (66 loc) · 5.52 KB

AIRE: Apple I Replica Emulator

RC6502

This is an emulator of my RC6502 Apple 1 Replica single board computer for Unix-like systems. It started as a 6502 emulator but once the CPU was emulated acurately (it pass successfully Klaus Dormann's 6502 functional tests), I added emulation of the probably the simplest 6502 computer in the world, the Apple I, but with the advantages of the RC6502 SBC: 32kb of RAM and 8kb of ROM with some built-in programs.

Compiling

Just type 'make' or 'gmake', depending on your system.

Usage:

Just type 'aire'. There are some command line options:

    -h,         --help          Show help.
    -v,         --version       Show AIRE version.
    -f,         --fastvideo     Enable fast video.
    -t,         --turbo         Enable turbo mode.
    -r romfile, --rom romfile   Specify ROM file.

Fastvideo: The Apple I can't output to screen faster than 60 characters per second and AIRE mimmics this behaivour. The option fastvideo just disable this limitation and outputs characters as fast as possible.

Turbo: The Apple I runs at 1.023 MHz and AIRE tries to match that speed. Using the Turbo option makes the emulator to run as fast as possible.

Rom: This option is used to specify an alternate rom file. The supplied rom file comes from the Ken Wessen's Krusader assembler and includes Wozmon, Apple BASIC and the Krusader assembler version 1.3.

Loading software

You can type your programs in Wozmon, just as you would do with a real Apple I, or you can paste the text into the console. Alternatively, you can use Wozmon files (text files with commands to type into the emulator) as argument when launching the emulator, for example, type:

    ./aire Software/WozTest.woz

to execute the demo/test program provided with the original Apple I user manual. Note that while loading a Wozmon file, turbo and fastvideo options are enabled.

While running, you can use these keyboard shortcuts:

    Ctrl-C: Quits emulator.
    Ctrl-R: Resets CPU. RAM content is kept.

Wozmon is the first thing you see after running the emulator. Apple BASIC is located at address 0xE000 in ROM, so to run it just type:

    E000 R

Krusader assembler is located at address 0xF000 in ROM, so to run Krusader type:

    F000 R

Wozmon is located at address 0xFF00, and the reset vector points to that direction, so it is loaded everytime the CPU is reset (or powered up).

Please, note you can also use Wozmon files to load and run Apple Basic and Krusader source code, see the software examples provided and explained in the next section.

Provided Software

In the Software directory you can find some programs:

Apple30thAnniversary.woz: Resman's 30th Anniversary graphical demo for Apple I. Original can be found here.

AsciiKeycodes.woz: Small utility that displays the ASCII keycodes for keyboard presses.

BasicBenchmark.woz: A small benchmark running in Apple Basic.

Checkers.woz: A Checkers game written in Apple Basic.

Chess.woz: Peter Jennings' Microchess written in assembler.

EnhancedBasic.woz: This BASIC is an adaptation to the Replica 1 from Lee E. Davidson's version for the 6502 CPU. It supports floating point.

GameOfLife.woz: Conway's Game of Life.

Hamurabi.woz: A text-based strategy game written in Apple Basic.

HelloWorld.woz: Hello World program using Wozmon.

HelloWorldBasic.woz: Hello World program using Apple Basic from Wozmon.

Krusader1.woz: Example on how to assemble a small program using Krusader assembler from a Woz file.

Krusader2.woz: A more advanced example on how to assemble a small program using Krusader assembler from a Woz file.

LunarLander.woz A Lunar Lander game written in assembler.

LunarLanding.woz Another Lunar Lander game written in Apple Basic.

SlotsGame.woz: A Slot Machine game written in Apple Basic.

StarTrek.woz: Star Trek game written by Vince Briel in Apple Basic.

StarTrek_8k.woz: Another Star Trek game written in Apple Basic.

WozTest.woz: The original test program from the Apple I user manual.

Documentation

Some useful documentation:

Apple I user manual: https://archive.org/details/applei_manual

Apple BASIC user manual: https://archive.org/details/bitsavers_appleapple_1178283

Krusader 1.3 user manual: https://github.com/st3fan/krusader/blob/master/krusader13.pdf

6502 Instruction set: https://www.masswerk.at/6502/6502_instruction_set.html

License

The source files of the Apple I Replica Emulator (AIRE) in this repository are made available under the GPLv3 license. The rom file (6502.rom.bin) and example files under the Software directory are included for convenience only and all have their own license, and are not part of the Apple I Replica Emulator (AIRE).