Portable Open-Source /\ AAAA ll bb ll Apple II Emulator /---/| A AA l b l |-/ /--/-| A AA p pp p pp l ee b b l oo ss ss oo mmm m m -| //-//- /-- A A A ppp ppppp ppl e e bbb l o o ss ss o o m mmmmm /-/\ - //|/// AAA p p p p l ee b b l o o s s o o m m m |\\/\\-//\|\/-| A A p p p p l e b b l o o s s o o m m m m \---|----\\--\ AA AA ppp ppp ll eee bb ll oo ss ss oo m m mm //-/ /|--/\--/ p p - \/ pp pp (c) 2005 Rebecca Gabriella Bettencourt apple2@kreativekorp.cjb.net Appleblossom is my own open-source Apple II emulator. Initially I just wanted to port an Apple II emulator to iPodLinux, but while there are quite a few open-source emulators out there, most of the ones I found were hard to read, written in C++, tied to a specific platform, incomplete, or a combination of the four. So Appleblossom is my effort to create an Apple II emulator that is readable, portable, and as complete as I can make it. Appleblossom currently emulates a typical 128K Apple IIe with 80-columns, Disk II, and hard drive. All graphics modes are supported. Sound is not. Provisions are in place for serial support, but the hardware is not implemented. Appleblossom is open-source under GPL, so feel free to hack at it. If you have any useful changes, send them back to me and I'll see if I can fold them back in. Any help with the following would be greatly appreciated: * Bug fixes and general improvements to emulation accuracy * Faster Disk II support * Sound support * Serial ports * Mockingboard, mouse card, Echo II, SmartPort, other peripheral cards * Locating ROMs for the above * X-Window interface To build the ncurses interface, which supports both 40-column and 80-column text but no graphics, use the following command: ./build.sh ncurses This will generate the executable file 'apple2'. Other interfaces can be built similarly. The 'apple2' executable included with Appleblossom is for Mac OS X. In order to run Apple II software, Appleblossom needs images of the ROMs from actual Apple II hardware. All ROM files must reside in the same directory as the executable program. Other interfaces may use different directories or file names for these files, but the ones included use these names. APPLE2E.ROM - The Apple IIe's internal $C000-$FFFF ROM. This file is not supplied with the emulator, as the ROM is copyrighted software. It must be obtained through other means. DISK2.ROM - The Disk II controller's $C600 ROM. This file is not supplied with the emulator, as the ROM is copyrighted software. It must be obtained through other means. HDDRVR.ROM - The hard disk controller $C700 ROM. This file IS included, as it is an open-source driver originally written for the AppleWin emulator. SERIAL.ROM and SERIALX.ROM - The Super Serial Card's $Cx00 and $C800 ROMs, respectively. Used to emulate the serial ports. SERIAL.ROM is necessary for the Apple II to recognize the serial "card." SERIALX.ROM is only needed for compatibility with some programs that may use it; otherwise it is not required. I have actually been unable to locate these ROMs, so I couldn't include them even if I wanted to. The ncurses implementation supports the following command-line arguments: -d1 loads .dsk or .nib disk image into slot 6 drive 1. -d2 loads .dsk or .nib disk image into slot 6 drive 2. -d1do specifies DOS 3.3 order for drive 1. Must come after -d1. -d2do specifies DOS 3.3 order for drive 2. Must come after -d2. -d1po specifies ProDOS order for drive 1. Must come after -d1. -d2po specifies ProDOS order for drive 2. Must come after -d2. -d1n specifies nibble image for drive 1. Must come after -d1. -d2n specifies nibble image for drive 2. Must come after -d2. -h1 loads .hdv disk image into slot 7 drive 1. -h2 loads .hdv disk image into slot 7 drive 2. -s1 connects a file to the Apple II's serial port in slot 1. -s2 connects a file to the Apple II's serial port in slot 2. -d reports top eight bytes of stack, registers, and the current instruction to for each instruction executed. (This file gets very big very fast.) -j reports every JMP or JSR the Apple II makes to . -don starts with dumping on (-d or -j) instead of waiting for F13. -disktest runs a test of Disk II support and exits. -hgrtest runs a test of hi-res graphics addressing and exits. -help displays this screen and exits. -keys displays a list of keys and exits. If the -dXdo, -dXpo, -dXn parameters are not specified, the sector ordering will be determined from the file extension (ProDOS order for .po, nibble image for .nib, DOS 3.3 order for all other extensions). Function keys are as follows: F5 - Open Apple Down F6 - Solid Apple Down F7 - Open Apple Up F8 - Solid Apple Up F9 - Dump Memory F10 - Quit F11 - Control-C (BASIC Soft-Reentry from Monitor; Break) F12 - Control-Reset F13 - Turn on disassembly dump (to file specified by -d or -j) F14 - Turn off disassembly dump