Add full compiler toolchain, libc, examples and reference docs
First substantive commit: the entire Sprinter C compiler tree on top of
the bare README+gitignore initial commit.
What's in here:
bin/sprinter-cc — driver script invoking SDCC + linker + mkexe
libc/ — Sprinter-specific libc layer over ESTEX/BIOS
(conio, gfx, io, mem, stdio + headers)
runtime/ — crt0 variants (default/small/banked/minimal)
+ heap + bank trampolines
toolchain/ — mkexe (SprintEXE packer, C + tests)
examples/ — 30 demo programs (gfx, file I/O, env, time, …)
lib/Makefile — builds the libc archive (sprinter.lib)
docs/ — converted Sprinter manuals + asm reference samples
third_party/ — solid-c reference compiler dump + sdcc setup script
release_docs/ — packaging / release notes
gitignore overhaul:
• Drop dangerous blanket patterns: *.asm (would hide docs/samples/*.asm)
and *.exe (case-insensitive match was hiding third_party/solid-c/*.EXE
on macOS APFS). Replaced with examples/*/*.{asm,exe,…} and lib/*.lib.
• Restore tracking of toolchain/mkexe/tests/{one,big}.bin — those are
INPUT fixtures, not build outputs.
• Collapse the duplicated SDCC/C/Sdcc sections into one section per
concern (build outputs / vendored / OS-junk).
• Add .sprinter-cc-*/, build/ (catches lib/build/ too), .claude/.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
;; ----------------------------------------------------------------------
|
||||
;; heap_top.s — defines the absolute upper bound of the heap.
|
||||
;;
|
||||
;; This file is built PER-PROGRAM (not bundled into sprinter.lib) so the
|
||||
;; value of ___sdcc_heap_end can be overridden without re-assembling the
|
||||
;; library or the user's crt0. sprinter-cc may regenerate this file in
|
||||
;; its working dir with a custom value when `--stack-size N` is passed;
|
||||
;; otherwise the default below applies.
|
||||
;;
|
||||
;; malloc takes &___sdcc_heap_end as the upper bound of the free-list,
|
||||
;; so the symbol's address (== the equate value) IS the heap ceiling.
|
||||
;;
|
||||
;; 0xBFFE — stack top (init SP in crt0)
|
||||
;; 0xBB00 — heap top (default) → ~1278 bytes reserved for the stack
|
||||
;; ... — heap grows up to here from end-of-BSS
|
||||
;; end-of-BSS — heap start
|
||||
;; ----------------------------------------------------------------------
|
||||
|
||||
.module sprinter_heap_top
|
||||
|
||||
___sdcc_heap_end = 0xBB00
|
||||
.globl ___sdcc_heap_end
|
||||
Reference in New Issue
Block a user