Apple ][+#

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

FozzTexx, CC BY-SA 4.0 https://creativecommons.org/licenses/by-sa/4.0, via Wikimedia Commons

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

$0000-$00FF

Zero page

$0100-$01FF

Stack

$0200-$02FF

Input buffer, variables

$0300-$03BF

Free space

$03C0-$03FF

DOS Vectors

$0400-$07FF

Text/Lores Page 1

$0800-$1FFF

Free space

$2000-$3FFF

Hires Page 1

$4000-$5FFF

Hires Page 2

$6000-$BFFF

Free space

$C000-$CFFF

I/O switches and softswitches

$D000-$FFFF

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

$C000

80STORE (80-column card memory mapping)

$C001

RAMRD (read from auxiliary memory)

$C002

RAMWRT (write to auxiliary memory)

$C003

INTCXROM (internal ROM for slot C1-CF)

$C004

ALTZP (alternate zero page)

$C005

SLOTC3ROM (slot 3 ROM)

$C006

80COL (80-column display)

$C007

ALTCHARSET (alternate character set)

$C00C/D

80COL (80-column display on/off)

$C00E/F

ALTCHARSET (alternate character set on/off)

$C050

Graphics mode

$C051

Text mode

$C052

Mixed graphics/text off

$C053

Mixed graphics/text on

$C054

Text page 1

$C055

Text page 2

$C056

Lo-res graphics

$C057

Hi-res graphics

$C058

Annunciator 0 off

$C059

Annunciator 0 on

$C05A

Annunciator 1 off

$C05B

Annunciator 1 on

$C05C

Annunciator 2 off

$C05D

Annunciator 2 on

$C05E

Annunciator 3 off

$C05F

Annunciator 3 on

$C061

Push button 0 (paddle button)

$C062

Push button 1 (paddle button)

$C063

Push button 2 (paddle button)

$C064

Paddle 0 X coordinate

$C065

Paddle 0 Y coordinate

$C066

Paddle 1 X coordinate

$C067

Paddle 1 Y coordinate

$C070

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.

Programming Examples#

The 8bitworkshop IDE includes numerous Apple II programming examples:

C Programming#

  • Sieve of Eratosthenes - Prime number calculation benchmark

  • Keyboard Test - Demonstrates keyboard input handling

  • Mandelbrot Set - Mathematical visualization

  • TGI Graphics Demo - CC65 graphics library demonstration

  • Eliza - Classic AI chatbot implementation

  • Siege Game - Strategy game example

  • Cosmic Impalas - Arcade-style game

  • Farmhouse Adventure - Text adventure game

  • Yum Dice Game - Dice rolling game

  • LZ4 Decompressor - Data compression utility

Assembly Language#

  • HGR Test - Hi-res graphics demonstration

  • Conway’s Game of Life - Cellular automaton simulation

  • LZ4FH Decompressor - Fast decompression routine

  • Delta Modulation Audio - Sound synthesis example

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

  • Merlin32 - Apple II-specific assembler

  • CA65 - CC65’s linker-aware assembler

Memory Configuration#

Programs can be configured for different memory layouts using CC65 config files like apple2-hgr2.cfg for hi-res graphics programs.

Disk Support#

The platform supports Apple DOS 3.3 disk images (.dsk files) containing multiple programs and data files.

Comments