Follows v0.1.0 (ed80b57): system-info bindings batch
(audio/camera/gamepad still open — see "Next").
src/SDL3Stdinc.def — SDL_malloc/SDL_calloc/SDL_free
(size_t = 64 bits, hence LONGCARD); SDL-allocated strings
must be released with SDL_free, not libc freesrc/SDL3Filesystem.def — <SDL_filesystem.h> without callbacks:
GetBasePath/GetPrefPath/GetUserFolder/GetCurrentDirectory
(SDL-allocated, possibly NIL), CreateDirectory, RemovePath,
RenamePath, CopyFile; FolderHome..FolderVideos constantssrc/SDL3Power.def — GetPowerInfo state id + VAR seconds/percentsrc/SDL3Locale.def — GetPreferredLocales returns a typed
LocaleVecPtr (pointer to array of LocalePtr); single SDL_free
releases the list; SDLLocale = language/country ADDRESS pairsrc/SDL3Clipboard.def — plain-text Set/Get/HasClipboardText
plus primary-selection variants (video init needed; dummy works);
MIME/callback APIs left out (no C-callback mapping in this style)tests/test_sysinfo.mod — power state, locale decode
(fr here), base/cwd paths; tests/test_clipboard.mod —
set/has/get round-trip; runner + Makefile extended (7/7 green)CAST — return typed pointers (POINTER TO ...)
from FOR "C" procedures instead of ADDRESS + cast.TYPE declarations —
declare shared shapes once, in the .def.SDL_GetPreferredLocales-style out-arrays: bound the Modula-2
array type (256) and range-check count before indexing.Audio streams (spec records + buffer flow), camera (needs hardware),
gamepad/joystick, typed SDL_Event record, infinite-monkeys demo.