Plus/4 Demo — Teletype Games title card

A Commodore Plus/4 program written in 6502 assembly (built with the ACME assembler): the smallest complete example of a Plus/4 title that goes through the Teletype Games build pipeline. It clears the screen, paints the Teletype Games title card, runs a gold colour wash across the title in sync with the raster beam, blinks a prompt, and hands control back to BASIC on any key.

The Plus/4 sibling of the C64 demo: same assembler, same Makefile, same pipeline shape — only the machine differs.

Controls

Key Action
any key return to BASIC (colours restored, screen cleared)

Keys are read straight from the keyboard latch ($FD30 / $FF08), the KERNAL IRQ is switched off while the demo runs.

Build and run

make build       # produce plus4-demo.prg
make run         # build + launch in VICE (xplus4)
make rebuildrun  # clean rebuild + run
make deps        # on macOS: install acme + vice via Homebrew

Loading the .prg on a real or emulated Plus/4:

LOAD"*",8,1
RUN

Headless smoke test with VICE (runs for a few emulated seconds, then writes a screenshot):

xplus4 +sound -warp -limitcycles 30000000 -exitscreenshot shot.png -autostartprgmode 1 plus4-demo.prg

How it works

  • BASIC stub at $1001: 10 SYS 4109, so RUN starts the code at $100D.
  • Screen is written directly: screen RAM at $0C00, colour RAM at $0800. A Plus/4 colour byte is luminance << 4 | hue, which is what the wash exploits — the same gold hue at eight luminances, peaking in white.
  • Timing: no interrupts; the main loop polls the TED raster register ($FF1D) and does one pass per frame.
  • Text: the +prtext macro copies a fixed screen-code string to a row/column with one colour. Strings are written in lowercase ASCII, which ACME's !scr maps to the uppercase screen codes of the default character set.
  • Exit: the saved border and background colours are restored, interrupts re-enabled, and the screen cleared through the KERNAL ($FFD2) before RTS returns to BASIC.

Memory map

$1001 .. $100C   BASIC stub (10 SYS 4109)
$100D .. ...     machine code + texts + variables
$0C00 .. $0FE7   screen RAM (written directly)
$0800 .. $0BE7   colour RAM
$FF15 / $FF19    background / border colour (TED)
$FF1D            raster line (frame sync)
$FD30 / $FF08    keyboard column select / row latch

Pipeline

.woodpecker.yaml is a one-line marker (platform: plus4); the pipeline itself is served by the update server. See plus4-build for the toolchain and the platform page on the wiki: https://wiki.teletypegames.org/development/plus4

S
Description
Teletype Games Plus/4 demo: a TED colour-wash title card in 6502 assembly
Readme
29 KiB
Languages
Assembly 82.8%
Makefile 17.2%