2018-05-27 20:46:14 +00:00
|
|
|
# Apple // emulator in go
|
2018-05-27 15:44:16 +00:00
|
|
|
|
2018-05-27 20:46:14 +00:00
|
|
|
An Apple //e emulator written in Go using [ebiten](https://github.com/hajimehoshi/ebiten).
|
2018-05-27 15:44:16 +00:00
|
|
|
|
|
|
|
## Features
|
|
|
|
|
|
|
|
* MOS 6502 CPU
|
2018-05-27 20:46:14 +00:00
|
|
|
* Keyboard
|
2018-05-27 15:44:16 +00:00
|
|
|
* 40 column text mode
|
2018-05-27 20:46:14 +00:00
|
|
|
* Low resolution color graphics
|
|
|
|
* High resolution monochrome graphics
|
|
|
|
* Upper memory bank switching: $d000 page and ROM/RAM
|
|
|
|
* Main memory page1/page2 switching in text, lores and hires
|
|
|
|
* Disk image reading & writing
|
|
|
|
* Speaker audio
|
2018-05-27 15:44:16 +00:00
|
|
|
|
|
|
|
## Installation
|
|
|
|
|
|
|
|
Install prerequisites with glide
|
|
|
|
|
|
|
|
glide up
|
|
|
|
|
|
|
|
Build the executable
|
|
|
|
|
|
|
|
go build
|
|
|
|
|
|
|
|
Download `apple2e.rom` from
|
|
|
|
[a2go.applearchives.com](http://a2go.applearchives.com/roms/) and put it in the root directory.
|
|
|
|
|
|
|
|
## Running it
|
|
|
|
|
2018-05-27 19:45:31 +00:00
|
|
|
./apple2
|
|
|
|
./apple2 my_disk_image.dsk
|
|
|
|
./apple2 -drive-head-click my_disk_image.dsk
|
2018-05-27 15:44:16 +00:00
|
|
|
|
2018-05-27 20:46:14 +00:00
|
|
|
## Keyboard shortcuts
|
|
|
|
|
|
|
|
* ctrl-alt-R reset
|
|
|
|
* ctrl-alt-M mute
|
|
|
|
* ctrl-alt-C caps lock
|
2018-05-27 21:58:19 +00:00
|
|
|
* ctrl-alt-F show FPS
|
2018-05-27 20:46:14 +00:00
|
|
|
|
2018-05-27 15:44:16 +00:00
|
|
|
## Running the tests
|
2018-05-27 20:46:14 +00:00
|
|
|
### Setup
|
2018-05-27 15:44:16 +00:00
|
|
|
|
2018-05-27 20:46:14 +00:00
|
|
|
The tests use DOS and Prodos disk images. Download them from
|
2018-05-27 15:44:16 +00:00
|
|
|
|
2018-05-27 20:46:14 +00:00
|
|
|
* dos33.dsk from [mirrors.apple2.org.za](https://mirrors.apple2.org.za/ftp.apple.asimov.net/images/masters/DOS33_blank_with_integer_basic.DSK)
|
|
|
|
* prodos19.dsk from [mirrors.apple2.org.za](https://mirrors.apple2.org.za/ftp.apple.asimov.net/images/masters/prodos/ProDOS_1_9.dsk)
|
2018-05-27 15:44:16 +00:00
|
|
|
|
|
|
|
### Running the tests
|
|
|
|
|
|
|
|
go test -v
|
|
|
|
|
|
|
|
The CPU tests make use of [Klaus2m5's](https://github.com/Klaus2m5/6502_65C02_functional_tests)
|
|
|
|
excellent 6502 functional tests.
|
|
|
|
|
2018-05-27 20:46:14 +00:00
|
|
|
## Known working disk images
|
2018-05-27 15:44:16 +00:00
|
|
|
* DOS 3.3
|
|
|
|
* Prodos 1.9
|
|
|
|
* Lemonade stand
|
|
|
|
* Montezuma's Revenge
|
|
|
|
|
|
|
|
## Remaining work
|
|
|
|
|
|
|
|
* 80 column card
|
|
|
|
* 48k aux memory
|
|
|
|
* double hires
|
2018-05-27 20:46:14 +00:00
|
|
|
* joystick
|