← Back to Computer Museum ACTIVE · INTERACTIVE LEARNING LAB

ready@c64:~$ Commodore 64 Programming Lab

Era
1982
Type
Interactive BASIC learning lab

Learn how to program a Commodore 64 by typing BASIC yourself. Start at READY., build numbered programs, explore memory with PEEK and POKE, create a sprite, and finish STAR RUNNER.

Educational BASIC V2 subset · No Commodore ROMs · Browser-rendered VIC/SID concepts

The machine is the exhibit

Ready for BASIC input
C64 teaching display. Use the text transcript for an equivalent reading.

C64 teaching display with startup message; no sprites enabled.

Type one BASIC line or direct command. Arrow up/down recalls earlier input. Escape is RUN/STOP.

Stored BASIC program

(NO STORED PROGRAM)

Sound muted

Memory inspector · latest BASIC writes

DECIMAL ADDRESSES
AddressMeaningValue

How Commodore BASIC V2 works

The C64 starts at a READY. prompt. A command such as PRINT "HELLO" runs immediately. A line beginning with a number is stored as a program. LIST displays it, RUN executes it, and NEW removes it.

In BASIC V2, only the first two characters of a variable name are significant. The lab reproduces that visible behavior and the selected statements used by the course; it is not a complete BASIC ROM implementation.

Screen, colors and POKE

BASIC V2 has no friendly built-in sprite, graphics, or sound commands. C64 programmers reached the hardware through PEEK and POKE.

1024–2023
40×25 screen RAM cells
55296–56295
Color RAM, values 0–15
53280
Border color
53281
Background color

PETSCII is not screen RAM

PETSCII describes keyboard, printable, and control values such as CHR$(147) for clearing the display. Screen memory stores a related set of screen codes. The lesson keeps that distinction visible instead of calling every glyph PETSCII.

Sprites from memory

A high-resolution monochrome C64 sprite is 24×21 pixels: three bytes per row, 21 rows, or 63 data bytes. This lab supports eight basic monochrome sprites, the pointer table at 2040–2047, enable register 53269, and the documented position/color registers.

SID-style sound concept

The SID register block begins at 54272. When you opt in to sound, selected voice-1 register writes control one Web Audio voice. This demonstrates frequency, waveform, envelope, gate, and volume concepts; it is a SID-style browser approximation, not SID emulation.

Accuracy and limitations

The interpreter, renderer, lessons, sprite, and programs are independently created. No Commodore ROM or commercial software is included. The lab models a documented BASIC V2 subset and historically meaningful memory addresses.

It intentionally omits cycle timing, a 6510 CPU, KERNAL and disk I/O, byte-identical tokenized program memory, Commodore five-byte floating point, raster effects, multicolor/collision behavior, complete PETSCII keyboard modes, analog SID filters, machine code, and game/software compatibility.

Historical sources

This is an unofficial educational recreation and is not affiliated with Commodore.

Related museum exhibits