66 lines
4.1 KiB
Markdown
66 lines
4.1 KiB
Markdown
# C64 BASIC Collection
|
|
|
|
Ten small, polished programs for the Commodore 64, written entirely in stock
|
|
Commodore BASIC V2. The collection mixes arcade action, puzzles, simulations,
|
|
creative tools, sound, and visual effects. No cartridge, BASIC extension, or
|
|
machine-language payload is required.
|
|
|
|
## Programs
|
|
|
|
| Program | Type | Controls | Description | Run locally |
|
|
| --- | --- | --- | --- | --- |
|
|
| [Meteor Dodge](meteor-dodge/meteor-dodge.bas) | Arcade | `A`, `D`, `Q` | Dodge falling meteors and build your score. | [Run program](http://localhost:8134/?program=meteor-dodge%2Fmeteor-dodge.prg) |
|
|
| [Code Breaker](code-breaker/code-breaker.bas) | Logic | Digits, `Q` | Deduce a four-digit secret in ten guesses. | [Run program](http://localhost:8134/?program=code-breaker%2Fcode-breaker.prg) |
|
|
| [Submarine Hunt](submarine-hunt/submarine-hunt.bas) | Strategy | Coordinates, `Q` | Find three hidden submarines with limited sonar shots. | [Run program](http://localhost:8134/?program=submarine-hunt%2Fsubmarine-hunt.prg) |
|
|
| [Lunar Lander](lunar-lander/lunar-lander.bas) | Simulation | `0`-`9`, `Q` | Choose engine burns and touch down gently. | [Run program](http://localhost:8134/?program=lunar-lander%2Flunar-lander.prg) |
|
|
| [Memory Matrix](memory-matrix/memory-matrix.bas) | Memory | `1`-`4`, `Q` | Repeat a growing sequence of flashing quadrants. | [Run program](http://localhost:8134/?program=memory-matrix%2Fmemory-matrix.prg) |
|
|
| [Robot Maze](robot-maze/robot-maze.bas) | Puzzle | `W`, `A`, `S`, `D`, `Q` | Navigate a freshly generated maze to its exit. | [Run program](http://localhost:8134/?program=robot-maze%2Frobot-maze.prg) |
|
|
| [Music Box](music-box/music-box.bas) | Music | `A`-`K`, `1`-`3`, `Q` | Play the SID chip as a small computer keyboard. | [Run program](http://localhost:8134/?program=music-box%2Fmusic-box.prg) |
|
|
| [Pixel Painter](pixel-painter/pixel-painter.bas) | Creative | Cursor keys, Space, `C`, `Q` | Draw character-cell pictures on the screen. | [Run program](http://localhost:8134/?program=pixel-painter%2Fpixel-painter.prg) |
|
|
| [Stock Trader](stock-trader/stock-trader.bas) | Simulation | `B`, `S`, `W`, `Q` | Trade a volatile stock over twenty market days. | [Run program](http://localhost:8134/?program=stock-trader%2Fstock-trader.prg) |
|
|
| [Starfield](starfield/starfield.bas) | Demo | `1`-`3`, `Q` | Watch and control a layered animated starfield. | [Run program](http://localhost:8134/?program=starfield%2Fstarfield.prg) |
|
|
|
|
## Running the programs
|
|
|
|
Start the local browser app with Docker Compose:
|
|
|
|
```text
|
|
docker compose up --build -d
|
|
```
|
|
|
|
Open [http://localhost:8134](http://localhost:8134), or click a **Run program**
|
|
link in the table. The app runs the VICE x64sc core through WebAssembly and
|
|
downloads the selected PRG through its own backend, avoiding browser CORS
|
|
restrictions. Click inside the emulator to enable keyboard input and sound.
|
|
Direct keyboard input is enabled by default, mouse locking is disabled, and
|
|
moving the pointer anywhere over the emulator reveals its control bar.
|
|
|
|
The app reads the public repository tree at runtime. New `.prg` files pushed to
|
|
the configured branch appear after clicking **Refresh list**; rebuilding the
|
|
Docker image is not required. Repository, branch, and host port settings live in
|
|
`.env`, where the default host port is `8134`.
|
|
|
|
Each directory contains an editable, line-numbered `.bas` listing and a matching
|
|
tokenized `.prg` file. The PRGs use the normal C64 BASIC load address, `$0801`.
|
|
|
|
On a Commodore 64, transfer a PRG to disk or another supported medium, then use:
|
|
|
|
```text
|
|
LOAD"METEOR-DODGE.PRG",8
|
|
RUN
|
|
```
|
|
|
|
Substitute the filename and device number as needed. In VICE or another C64
|
|
emulator, drag a PRG into the emulator window or use its autostart command.
|
|
|
|
## Source format
|
|
|
|
The `.bas` files are plain ASCII for comfortable reading and editing on a modern
|
|
computer. They use uppercase BASIC V2 keywords and avoid embedded control-code
|
|
glyphs. Their corresponding `.prg` files contain the tokenized PETSCII program
|
|
that the C64 loads directly.
|
|
|
|
All programs are self-contained and designed for an ordinary PAL or NTSC
|
|
Commodore 64. Randomized programs seed BASIC's random-number generator from the
|
|
machine clock, so every session is different.
|
|
|