25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Daniel Covington e34bbc79d0 Add the generated PRG and MAP writer (E04-S01). 5 일 전
..
cfg newLang: add the method, field, and local parser (E03-S02) 6 일 전
demo newLang: add the write-and-check demo 6 일 전
docs Add the generated PRG and MAP writer (E04-S01). 5 일 전
monitor newLang: add Nova128 spec, backlog, and C128 platform probes 6 일 전
planning Add the generated PRG and MAP writer (E04-S01). 5 일 전
scripts Add the generated PRG and MAP writer (E04-S01). 5 일 전
src Add the generated PRG and MAP writer (E04-S01). 5 일 전
tests Add the generated PRG and MAP writer (E04-S01). 5 일 전
.gitignore newLang: add Nova128 spec, backlog, and C128 platform probes 6 일 전
AGENTS.md newLang: add Nova128 spec, backlog, and C128 platform probes 6 일 전
README.md newLang: add Nova128 spec, backlog, and C128 platform probes 6 일 전

README.md

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

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.

Powered by TurnKey Linux.