# Nova128 Nova128 is the working name for an object-oriented programming language for the Commodore 128. Its compiler will be written in 8502/6502 assembly, run on the C128 in native mode, and generate native C128 PRG files. This directory contains the project specification, agent-ready backlog, and the implementation as it is built. The user approved continuation on 2026-11-07; stories may be claimed in dependency order under `AGENTS.md`. ## Version 1 Product Boundary - On-machine C128-native compiler written in ca65 assembly - Statically typed, class-based language - Classes, private/public fields and methods, constructors, and destructors - Explicit `new` and `delete` - Multiple interfaces per class - Interface-typed variables and parameters - Dynamic dispatch through interface method tables - Procedural control flow and native 8502 code generation - PETSCII SEQ source compatibility with the existing C64 Vim clone - 40- or 80-column compiler output through KERNAL-compatible routines Version 1 does not include class inheritance, garbage collection, exceptions, generics, closures, overloading, floating point, a Z80 target, or a C64 target. ## Document Map | File | Purpose | |---|---| | `AGENTS.md` | Mandatory operating rules for agents | | `docs/decisions.md` | Accepted, provisional, deferred, and open decisions | | `docs/language-spec.md` | Normative source-language specification | | `docs/architecture.md` | Compiler, runtime, ABI, memory, and file architecture | | `planning/epics-and-stories.md` | Work breakdown with dependencies and acceptance criteria | | `planning/agent-workflow.md` | Claiming, handoff, verification, and completion process | ## Intended Workflow ```text x64sc + Vim clone | | PETSCII SEQ source: PROGRAM.N8 v copied development D81 | | close x64sc before continuing v x128 + Nova128 compiler | +--> PROGRAM.PRG +--> PROGRAM.ERR +--> PROGRAM.MAP ``` The original `vim/work.d81` is an input template, never a writable project disk. A preparation script will copy it into `newLang/build/` and inject the compiler, runtime, examples, and fixtures. ## Approved Version 1 Defaults The user approved continuation with these documented defaults: - Working language name: `Nova128` - Source suffix: `.n8` - Compiler runs entirely on the C128 - Host tools only assemble/package/test the compiler itself - Vim remains C64-mode for version 1 - Interfaces are required in version 1 - Class inheritance is deferred - Memory management is explicit and deterministic See `docs/decisions.md` for decision status and unresolved questions.