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:
+68
@@ -0,0 +1,68 @@
|
||||
;///////////////////////////////////////////////////////////////////////////
|
||||
;
|
||||
; C LIBRARY FOR SOLID C compiler
|
||||
; Root module
|
||||
;
|
||||
;///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
; ‚室ï騥 äãªæ¨¨:
|
||||
;
|
||||
; xmain
|
||||
; _exit
|
||||
; abort
|
||||
;
|
||||
|
||||
|
||||
|
||||
cseg
|
||||
|
||||
db "CLIB v0.01",0
|
||||
|
||||
|
||||
xmain::
|
||||
; á®§¤ âì ᯨ᮪ à£ã¬¥â®¢
|
||||
push ix
|
||||
pop hl ; ¤à¥á ª®¬. áâப¨
|
||||
call _setargv## ; ¢ dos.asm
|
||||
ld de,_argv_## ; ᯨ᮪ à£ã¬¥â®¢ (¢ dos.asm)
|
||||
|
||||
call _main_## ; ¢ stdio.asm
|
||||
|
||||
;
|
||||
; "stdlib.h"
|
||||
; ¯¥à¥¤ ¥âáï ã¯à ¢«¥¨¥ ¨§ äãªæ¨¨ exit.
|
||||
; ”ãªæ¨ï § ¢¥àè ¥â ¢ë§¢ ë© ¯à®æ¥áá ¡¥§ ®¡®¢«¥¨ï ¡ãä¥à®¢ ¯®â®ª .
|
||||
; ‡ 票¥ code ®¡ëç® ãáâ ¢«¨¢ ¥âáï ¢ 0 ¤«ï 㪠§ ¨ï ®à¬ «ì®£®
|
||||
; ¢ë室 ¨ ãáâ ¢«¨¢ ¥âáï ¢ «î¡®¥ ¤à㣮¥ § 票¥ ¤«ï ®¯à¥¤¥«¥¨ï ®è¨¡ª¨.
|
||||
; �®áª®«ìªã ¢ë§®¢ _exit ¥ ¢®§¢à é ¥â § 票ï, â® ¬«. ¡ ©â code ï¥âáï
|
||||
; ª®¤®¬ ¢®§¢à â ¤«ï த¨â¥«ì᪮£® ¯à®æ¥áá .
|
||||
; in: hl = § 票¥ error code
|
||||
; out: ¥â
|
||||
;
|
||||
; void _exit(int code)
|
||||
;
|
||||
_exit_::
|
||||
ld b,l
|
||||
ld c,41h ; terminate with error code
|
||||
rst 10h
|
||||
ret
|
||||
|
||||
;
|
||||
; "stdlib.h"
|
||||
; ”ãªæ¨ï ¢ë¢®¤¨â íªà á®®¡é¥¨¥ "Abnormal program termination."
|
||||
; (¥¯à¥¤¢¨¤¥®¥ § ¢¥à襨¥ ¯à®£à ¬¬ë) ¨ § ¢¥àè ¥â ¢ë§¢ ë© ¯à®æ¥áá
|
||||
; ¡¥§ ®¡®¢«¥¨ï ¡ãä¥à®¢ ¯®â®ª .
|
||||
; in: ¥â
|
||||
; out: ¥â
|
||||
;
|
||||
; void abort()
|
||||
;
|
||||
abort_::
|
||||
ld hl,@1
|
||||
ld c,5Ch
|
||||
rst 10h
|
||||
ld l,-1
|
||||
jr _exit_
|
||||
|
||||
dseg
|
||||
@1: db 0Dh,0Ah,"Abnormal program termination.",0Dh,0Ah,0Ah,0
|
||||
Reference in New Issue
Block a user