summary |
shortlog | log |
commit |
commitdiff |
tree
first ⋅ prev ⋅ next
Svjatoslav Agejenko [Sat, 22 Aug 2026 15:28:12 +0000 (18:28 +0300)]
feat: add console INPUT, BEEP, nested-label GOTO and screen fixes
- Console INPUT: prompt with ';' (adds "? ") or ',' (prompt only),
echoed line editing with Backspace, comma-delimited items; headless
runs give up after 5 s of silence instead of hanging.
- BEEP desugars to SOUND 800, 4.55 (the classic ~1/4 s beep).
- GOTO may jump INTO a label nested in IF/FOR/DO bodies with flat
QBasic semantics: headers are not re-evaluated and enclosing loops
resume with current variable values (checkers2.bas "GoTo 8").
- AS-typed SUB/FUNCTION parameters claim their bare name inside the
body (winning over DEFxxx defaults), while suffix parameters like
a$ leave the bare name as a distinct DEFxxx-typed variable.
- Bare SUB calls accept a parenthesized first argument; the parens
parse as grouping and the comma list continues the arguments.
- Graphics modes default the foreground to the mode's highest
attribute (1/3/15/255) instead of always 15, so colorless PAINT
stays inside the walls (checkers.bas SCREEN 2 flood); SCREEN 2's
palette now maps attribute 1 to white.
- 640x200 modes (SCREEN 2, 8) are doubled vertically in the Swing
window and in dumpPng to match their 4:3 CRT pixel aspect; the
window re-packs on every mode switch via a mode listener.
Svjatoslav Agejenko [Sat, 22 Aug 2026 10:28:41 +0000 (13:28 +0300)]
feat: add GOSUB/RETURN, CONST, SWAP, WIDTH, ELSEIF, and screen capture
- Language: GOSUB/RETURN (nested calls, same-block labels), CONST
module-level constants, SWAP for scalars and array elements, ELSEIF
chains in block IF, and bare parameterless FUNCTION calls.
- WIDTH statement for SCREEN 0: 80x25, 40x25 (double-wide glyphs) and
80x50 (8x8 font) text grids; clears the screen like the original.
- PAINT gets classic border semantics: fills every reachable non-border
pixel instead of confining to the seed color; off-screen seeds clip.
- INPUT # follows classic delimiters: numbers split on comma, space or
newline; strings on comma/newline with quotes stripped; empty slots
read as 0 / ""; statements may share and span lines.
- VIEW PRINT now confines printing and scrolling to the band; bare
VIEW PRINT restores the full screen.
- New capture package: ScreenRecorder samples the visual page at 30 Hz
into a lossless XOR-delta+deflate .crtrec; CrtrecEncoder pipes raw
frames to ffmpeg (H.264, CRF 18 with a VBV cap). Swing frontend:
F12 screenshot, Shift+F12 recording, background transcode queue that
drains before exit; --encode CLI re-encodes a recording later.
- Docs: README.org replaced by AGENTS.org (agent operating guide);
language reference updated for the new statements and semantics.
Svjatoslav Agejenko [Thu, 20 Aug 2026 21:08:56 +0000 (00:08 +0300)]
docs: simplify index page and add source code section
- Trim the intro to a one-liner and link to the example BASIC
programs collection
- Shorten quick start to install + interactive run, noting the
Java 21+ requirement up front
- Append a Source code section with CC0 license, author info and
download/clone links
Svjatoslav Agejenko [Thu, 20 Aug 2026 20:52:18 +0000 (23:52 +0300)]
initial commit