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:
2026-06-03 16:13:21 +03:00
parent f542608b3f
commit c71e249a4e
404 changed files with 75155 additions and 58 deletions
+134
View File
@@ -0,0 +1,134 @@
*** Area: ZX.SPECTRUM Date: 1 May 01 22:32:59
*** From: Stas Vlasov (2:5080/172.0)
*** To : All
*** Subj: New os for Sprinter
Hello All!
H ¬¥âª¨ ¯à®¥ªâ  ¤«ï ­®¢®© ®¯¥à æ¨®­ª¨ ¤«ï Sprinter' , ­¥ â ª ¯®å®¦¥© ­  DOS.
=== Cut ===
‘®£« è¥­¨ï, ¯à¨­ïâë¥ ¢ ⥪áâ¥:
‘âà ­¨æë ¯ ¬ï⨠­ã¬¥àãîâáï á 0.
’à¥¡ã¥¬ë¥  ¯¯ à â­ë¥ ¢®§¬®¦­®áâ¨:
‚ᥠ­¨¦¥¯¥à¥ç¨á«¥­­ë¥ ¢®§¬®¦­®á⨠¢ª«îç îâáï ⮫쪮 ¯®á«¥
¨­¨æ¨ «¨§ æ¨¨ ï¤à  Ž‘.
® RSTn - ¢ë§®¢ ᮮ⢥âáâ¢ãî饣® ®¡à ¡®â稪  á ¤à㣮© áâà ­¨æë ¯ ¬ïâ¨.
†¥« â¥«ì­®, çâ®¡ë ®¡à ¡®â稪¨ ­ å®¤¨«¨áì ­  à §­ëå áâà ­¨æ å. ਠí⮬
âॡã¥âáï á®åà ­¥­¨¥ ¨­ä®à¬ æ¨¨ ® ¯à®æ¥áá¥, ¢ë§¢ ¢è¥¬ ®¡à ¡®â稪 (¢ â.ç.
ãáâ ­®¢«¥­­ë¥ áâà ­¨æë ¯ ¬ï⨠¨ ID ¯à®æ¥áá , ®áâ «ì­®¥ ¬®¦­® ¯à®£à ¬¬­®).
‚®§¢à â ¨§ ®¡à ¡®â稪  - OUT + RET, «¨¡® ª ª-â®  ­ «®£¨ç­® (¢§¢¥¤¥­¨¥
âਣ£¥à  ¢ ‹Œ, áà ¡ â뢠­¨¥ - ¯® ret ¨«¨ iret).
Ž¡à ¡®âª   ¯¯ à â­ëå ¯à¥à뢠­¨© -  ­ «®£¨ç­®.
NMI - ®á­®¢  à ¡®âë Ž‘, ¯®â®¬ã ¢® ¢à¥¬ï ¨­¨æ¨ «¨§ æ¨¨ ï¤à  ¤®«¦­® ¡ëâì
¯®¤ª«î祭® ª â ©¬¥àã («¨¡® ª CMOS, «¨¡® ª ¯à¥à뢠­¨ï¬ ®â ª ¤à®¢®©
ᨭåà®­¨§ æ¨¨).
Š àâ  ¯à¨®à¨â¥â®¢ ¤«ï ®¡à é¥­¨© ª ¯®àâ ¬ (¤ã¬ î, ¤®áâ â®ç­® 4-å
ã஢­¥© ¯à¨®à¨â¥â®¢, ᮮ⢥âáâ¢ãîé¨å â¨¯ã ¯à®æ¥áá ) ¨ ID ¯à®æ¥áᮢ,
à ¡®â îé¨å ¢ ¤ ­­ë© ¬®¬¥­â á ¯®àâ ¬¨, ¨§¬¥­ï¥¬ ï ®¯¥à æ¨®­ª®©.
ޝ¥à æ¨®­­ ï á¨á⥬ :
Ÿ¤à®.
‚®§¬®¦­ë¥ âॡ®¢ ­¨ï: ¤® 64ª ¥¤¨­®à §®¢®, ¢ë§®¢ ä㭪権 ¨ ®¡à é¥­¨¥ ª
¬®¤ã«ï¬ ¯® ®¤­®¬ã RSTn, ¢®§¬®¦­® (¤ ¦¥ ­ã¦­®) ¢ë¤¥«¥­¨¥ ¥é¥ ¯ ¬ï⨠¯à¨
¨­¨æ¨ «¨§ æ¨¨.
”㭪樨: à ¡®â  á ¦¥«¥§®¬, ¡¨®á ­  ­¨§ª®¬ ã஢­¥, à ¡®â  á ä ©«®¢ë¬¨
á¨á⥬ ¬¨, à ¡®â  á ¯à®æ¥áá ¬¨ ¨ ¬­®£®§ ¤ ç­®áâì, à ¡®â  á ¯ ¬ïâìî/᢮¯®¬,
§ ¯ã᪠¯à®æ¥áá  ¨­¨æ¨ «¨§ æ¨¨, etc
Œ®¤ã«¨ ï¤à .
‚®§¬®¦­ë¥ âॡ®¢ ­¨ï: 3-ï áâà ­¨æ  ¯ ¬ïâ¨, 16ª ¯®¤ ¬®¤ã«ì ¯à¨
§ £à㧪¥, á⥪ ¢­¥ ¬®¤ã«ï, ¢®§¬®¦­® ¢ë¤¥«¥­¨¥ ¥é¥ ¯ ¬ï⨠¯à¨ ¨­¨æ¨ «¨§ æ¨¨.
®¤£à㦠îâáï ¯à¨ ­¥®¡å®¤¨¬®áâ¨.
”㭪樨:  áè¨à¥­¨¥ ä㭪権 ï¤à .  ¡®â  á ¦¥«¥§®¬, ­®¢ë¥ ä ©«®¢ë¥
á¨á⥬ë, etc
‘¨á⥬­ë¥ ¡¨¡«¨®â¥ª¨.
‚®§¬®¦­ë¥ âॡ®¢ ­¨ï: ˆ§ ¯ ¬ï⨠­¥ ¢ë£à㦠îâáï, ®¡à é¥­¨¥ ¯®
®â¤¥«ì­®¬ã RSTn ­  ¢á¥å, ¢ ¯ à ¬¥âà å - ID ¡¨¡«¨®â¥ª¨ ¨ ID ä㭪樨 +
¯ à ¬¥âàë á ¬®© ä㭪樨.
”㭪樨:  áè¨à¥­¨¥ ä㭪権 ï¤à  ¢ áâ®à®­ã ¯à®£à ¬¬­®£® ¨­â¥à䥩á ,  
­¥ ¦¥«¥§ . ’.¥. í¬ã«ïæ¨ï â¥à¬¨­ « , ª®¬¬ã­¨ª æ¨®­­ë¥ ¯à®â®ª®«ë ­¨§ª®£®
ã஢­ï, etc
ਪ« ¤­ë¥ ¡¨¡«¨®â¥ª¨.
”㭪樨: ¨¡«¨®â¥ª¨, á«ã¦ é¨¥ ¤«ï ¨á¯®«ì§®¢ ­¨ï ®¤­®£® ª®¤  ¢
­¥áª®«ìª¨å ¯à¨«®¦¥­¨ïå ®¤­®¢à¥¬¥­­®, «¨¡® ª ª á।á⢮ ¯à¥®¤®«¥­¨ï ¡ àì¥à 
64ª. ਠ­¥¨á¯®«ì§®¢ ­¨¨ ¢ë£à㦠îâáï ¨§ ¯ ¬ïâ¨.
ਬ¥ç ­¨¥: ‚ë§®¢, ¤ã¬ î, ¡ã¤¥â  ­ «®£¨ç¥­ á¨á⥬­ë¬.
ਫ®¦¥­¨ï, ª ª á¨á⥬­ë¥, â ª ¨ ¯®«ì§®¢ â¥«ì᪨¥.
‚®§¬®¦­ë¥ âॡ®¢ ­¨ï: ¯à¨ § £à㧪¥ ¯à¨«®¦¥­¨ï - § £à㦠¥¬ë© ª®¤ ¢
¯à¥¤¥« å «¨­¥©­®©  ¤à¥á æ¨¨, ¤ «ì­¥©è¥¥ ¢ë¤¥«¥­¨¥ ¯ ¬ï⨠- «¨¡® ç¥à¥§
®¢¥à«¥¨, «¨¡® ç¥à¥§ ¯à¨ª« ¤­ë¥ ¡¨¡«¨®â¥ª¨.
”㭪樨: ¯®­ïâ­ë ¡¥§ ®¯¨á ­¨ï.
ਬ¥ç ­¨¥: ‚¥à®ïâ­® ¯®¢â®à­®¥ ¨á¯®«ì§®¢ ­¨¥ ª®¤  ¤«ï ­¥áª®«ìª¨å ª®¯¨©
¯à¨«®¦¥­¨ï, ¥á«¨ ¯®«ãç¨âáï...
Ž¡é¥á¨á⥬­ë¥ ¯à¨¬¥ç ­¨ï:
‚®§¬®¦­  ᮢ¬¥á⨬®áâì ¯® ¢ë§®¢ ¬ ¨¬¥î饩áï Ž‘ Sprinter'  (¢¥à®ïâ­®,
ç¥à¥§ ᮮ⢥âáâ¢ãîéãî ¡¨¡«¨®â¥ªã ¯à¨ª« ¤­®£® ã஢­ï, ¯®¤£à㦠¥¬ãî ¤«ï
ᮮ⢥âáâ¢ãî饣® ¯à¨«®¦¥­¨ï).
„®áâ㯠ª á¨á⥬­ë¬ ¯®àâ ¬ ¢¢®¤ -¢ë¢®¤  ¤®«¦­ë ¨¬¥âì ⮫쪮 ï¤à® ¨ ¥£®
¬®¤ã«¨ (⨯ ¯à®æ¥áá  - 00).
„®áâ㯠ª ­¥á¨á⥬­ë¬ ¯®àâ ¬ - ¯à¥¤®áâ ¢«ï¥âáï ¯®á«¥ § ¯à®á 
(¯à®¨§¢®¤¨âáï ¯à¨ ¨­¨æ¨ «¨§ æ¨¨ ¯à®æ¥áá ) ¢ ᮮ⢥âá⢨¨ á ¯à ¢ ¬¨
¯à¨«®¦¥­¨ï/¯®«ì§®¢ â¥«ï. « ­¨àã¥âáï ¤ «ì­¥©è¥¥ à §£à ­¨ç¥­¨¥ ¤®áâ㯠.
‚ ª ç¥á⢥ ¡ §®¢®© ¬¥¦¯à®æ¥áá­®© ª®¬¬ã­¨ª æ¨¨ ¯à¥¤« £ îâáï ᨣ­ «ë ¨
¯¥à¥­ ¯à ¢«¥­¨¥ ¢¢®¤ -¢ë¢®¤ .
‚¥à®ïâ­ë¥ áâàãªâãàë ¤ ­­ëå:
ˆ­ä®à¬ æ¨ï ® áâà ­¨æ¥ ¯ ¬ïâ¨:
ID áâà ­¨æë - 16 ¡¨â
ID ¯à®æ¥áá -¢« ¤¥«ìæ  - 16 ¡¨â
’¨¯ à §¬¥é¥­¨ï áâà ­¨æë - 1 ¡¨â (0 - RAM, 1 - Swap)
Œ¥áâ®à á¯®«®¦¥­¨¥ áâà ­¨æë - 16 ¡¨â («¨¡® 䨧¨ç¥áª¨© ­®¬¥à áâà ­¨æë RAM,
«¨¡® ᬥ饭¨¥ ¢ ᢮¯-ä ©«¥ ¢ áâà ­¨æ å)
‚à¥¬ï ¯®á«¥¤­¥£®
¢ª«î祭¨ï áâà ­¨æë - 32 ¡¨â (¡ã¤¥â ¨á¯®«ì§®¢ âìáï ¤«ï ®¯à¥¤¥«¥­¨ï
⮣®, ª ªãî áâà ­¨æã á⮨⠢ë£à㧨âì)
ˆ­ä®à¬ æ¨ï ® ¯à®æ¥áá¥:
ID ¯à®æ¥áá  - 16 ¡¨â
’¨¯ ¯à®æ¥áá  - 2 ¡¨â (00 - Ÿ¤à®,
01 - á¨á⥬­ë¥ ¡¨¡«¨®â¥ª¨,
10 - ¯à¨ª« ¤­ë¥ ¡¨¡«¨®â¥ª¨,
11 - ¯à¨«®¦¥­¨ï.
¢®§¬®¦­® ᮢ¬¥é¥­¨¥ á ¤à㣨¬¨ ä« £ ¬¨)
ਮà¨â¥â - <8 ¡¨â (0 - ¬ ªá¨¬ «ì­ë©)
‘®áâ®ï­¨¥ ¯à®æ¥áá  - <8 ¡¨â (¢ë¯®«­ï¥âáï, ®¦¨¤ ¥â, ®áâ ­®¢«¥­, ¨ â.¯.)
ID áâà ­¨æë ᮠᬥ饭¨ï 0000h |
ID áâà ­¨æë ᮠᬥ饭¨ï 4000h | \ ® 16 ¡¨â ¢ ᮮ⢥âá⢨¨ á® áâàãªâãன
ID áâà ­¨æë ᮠᬥ饭¨ï 8000h | / ¨­ä®à¬ æ¨¨ ® áâà ­¨æ¥ ¯ ¬ïâ¨.
ID áâà ­¨æë ᮠᬥ饭¨ï C000h |
=== Cut ===
ਬ¥ç ­¨ï, ¨á¯à ¢«¥­¨ï, ¤®¯®«­¥­¨ï ¯à¨¢¥âáâ¢ãîâáï.
‚®§à ¦¥­¨ï (­¥ ¢ á⨫¥ "­ ä¨£ ­ã¦¥­ ‘¯à¨­â¥à") â ª¦¥ ¯à¨¢¥âáâ¢ãîâáï.
Good luck.
Stas
--- …é¥ ®¤­® "§®«®â®" 3.0.1
* Origin: gui is good, but console better (2:5080/172)