Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
Daniel Covington 8a2d8ce312 Record E06-S07 as blocked on calling-convention emission. 3 dias atrás
..
cfg Add generated-program software frames (E04-S02). 5 dias atrás
demo newLang: add the write-and-check demo 6 dias atrás
docs Make print work in generated programs. 3 dias atrás
monitor newLang: add Nova128 spec, backlog, and C128 platform probes 6 dias atrás
planning Record E06-S07 as blocked on calling-convention emission. 3 dias atrás
scripts Check generated print on the real screen. 3 dias atrás
src Make print work in generated programs. 3 dias atrás
tests Close the driver story's injection and regression checks. 3 dias atrás
.gitignore newLang: add Nova128 spec, backlog, and C128 platform probes 6 dias atrás
AGENTS.md Record the commit footer without emoji. 4 dias atrás
README.md newLang: add Nova128 spec, backlog, and C128 platform probes 6 dias atrás

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.