Apple ][+#
Open 8bitworkshop IDE
Click here to program the Apple II in the 8bitworkshop IDE now!
Apple ][+ Specifications#
- Lifespan
1979-1983
- Media
Cassette tape, 5.25” floppy disk (Disk II)
- CPU
MOS Technology 6502 @ 1 MHz
- Memory
16K-64K RAM, 12K ROM (expandable)
- Display
40x24 text, 40x48 lo-res graphics (16 colors), 280x192 hi-res graphics (6 colors)
- Sound
1-bit speaker
- Input
Keyboard, paddle controllers, joystick
![]()
History#
The Apple ][+ was introduced by Apple Computer, Inc. in June 1979 as an enhancement to the original Apple ][ model, which was released in 1977. The Apple ][ series of computers were designed primarily by Steve Wozniak and marketed by Steve Jobs. The Apple ][+ added the Applesoft BASIC programming language, which was integrated into the ROM and replaced the Integer BASIC of the original Apple ][. The Apple ][+ also featured an improved keyboard, with keys for control characters and lowercase letters.
The Apple ][+ was successful in the early years of personal computing, especially in the education market. It was eventually succeeded by the Apple //e in 1983, which replaced the discrete IC-based circuitry with a single ASIC chip.
Programming#
Applesoft BASIC was developed by Microsoft. It offered improved floating-point arithmetic and graphics commands compared to Integer BASIC. Integer BASIC was available by loading it into the optional Language Card memory.
The 8bitworkshop IDE doesn’t include the original Apple ROMs, so BASIC is not available. Instead, you can program in 6502 assembler or in C with the CC65 compiler tools.
Memory Map#
Address Range |
Description |
|---|---|
|
Zero page |
|
Stack |
|
Input buffer, variables |
|
Free space |
|
DOS Vectors |
|
Text/Lores Page 1 |
|
Free space |
|
Hires Page 1 |
|
Hires Page 2 |
|
Free space |
|
I/O switches and softswitches |
|
ROM (Applesoft BASIC, Monitor) |
I/O Switches and Softswitches#
The Apple II uses memory-mapped I/O with “softswitches” - reading or writing specific memory addresses toggles hardware features:
Address |
Function |
|---|---|
|
80STORE (80-column card memory mapping) |
|
RAMRD (read from auxiliary memory) |
|
RAMWRT (write to auxiliary memory) |
|
INTCXROM (internal ROM for slot C1-CF) |
|
ALTZP (alternate zero page) |
|
SLOTC3ROM (slot 3 ROM) |
|
80COL (80-column display) |
|
ALTCHARSET (alternate character set) |
|
80COL (80-column display on/off) |
|
ALTCHARSET (alternate character set on/off) |
|
Graphics mode |
|
Text mode |
|
Mixed graphics/text off |
|
Mixed graphics/text on |
|
Text page 1 |
|
Text page 2 |
|
Lo-res graphics |
|
Hi-res graphics |
|
Annunciator 0 off |
|
Annunciator 0 on |
|
Annunciator 1 off |
|
Annunciator 1 on |
|
Annunciator 2 off |
|
Annunciator 2 on |
|
Annunciator 3 off |
|
Annunciator 3 on |
|
Push button 0 (paddle button) |
|
Push button 1 (paddle button) |
|
Push button 2 (paddle button) |
|
Paddle 0 X coordinate |
|
Paddle 0 Y coordinate |
|
Paddle 1 X coordinate |
|
Paddle 1 Y coordinate |
|
Paddle trigger |
Graphics Modes#
Text Mode (40x24)#
Standard text display using the built-in character set. Characters are stored in the text page starting at $0400.
Lo-Res Graphics (40x48, 16 colors)#
Low-resolution color graphics with 16 available colors. Each byte represents two 4-bit pixels vertically stacked.
Hi-Res Graphics (280x192, 6 colors)#
High-resolution monochrome graphics with color artifacts. Uses two graphics pages at $2000 and $4000.
Development Tools#
CC65 Compiler#
C programs are compiled using the CC65 toolchain, which provides:
Standard C library support
Apple II-specific extensions
TGI (Tiny Graphics Interface) graphics library
Conio (console I/O) library
Assembly Tools#
DASM - Versatile macro assembler (
.a,.dasm)Merlin32 - Apple II-specific assembler (
.lnk)CA65 - CC65’s linker-aware assembler (
.s,.ca65)
Memory Configuration#
Programs that use hi-res graphics should include the following:
#define CFGFILE apple2-hgr.cfg
#pragma data-name(push,"HGR")
#pragma data-name(pop)
For details and other configuration files, see the CC65 documentation.
Binary Formats#
The 8bitworkshop Apple II platform detects multiple binary formats for loading programs:
Disk Images (.dsk files)#
16-sector, 35-track disk images (143,360 bytes)
Automatically detected and mounted as a DiskII drive in slot 6
Supports Apple DOS 3.3 format with multiple files
AppleSingle Format#
Header signature:
$00 $05 $16 $00(first 4 bytes)Load address: Stored at offset
$38-$39(big-endian)Header size: 58 bytes
Used by CC65 compiler (
exehdr.s)
DOS 3.3 Binary Format#
4-byte header: origin address (2 bytes, little-endian) + size (2 bytes, little-endian)
Automatically detected when:
Size matches file length minus 4 bytes
Origin address is less than
$C000Origin + size is less than
$13000Origin is
$803or aligned to$xx00
Programs load at the specified origin address in the header
Raw Binary Format#
Default load address:
$803Used when no other format is detected