|
@@ -97,7 +97,7 @@ Current rung (measured today, normalised position):
|
|
|
|
|
|
|
|
| position | blocker |
|
|
| position | blocker |
|
|
|
|---|---|
|
|
|---|---|
|
|
|
-| **51322** | the `end;` closing `CASE ... ELSE ... END` in `GetLine` (`ERR 1`) |
|
|
|
|
|
|
|
+| **56540** | code-image ceiling — runtime + generated code reaches the `0x8000` data base (`ERR 98`) |
|
|
|
|
|
|
|
|
Rungs behind it (now passed):
|
|
Rungs behind it (now passed):
|
|
|
|
|
|
|
@@ -161,7 +161,9 @@ Rungs ahead:
|
|
|
| 48461 | local `set of Char` variable - DONE |
|
|
| 48461 | local `set of Char` variable - DONE |
|
|
|
| 48574 | code-image ceiling - DONE (runtime shrunk) |
|
|
| 48574 | code-image ceiling - DONE (runtime shrunk) |
|
|
|
| 50744 | `Insert` string builtin - DONE |
|
|
| 50744 | `Insert` string builtin - DONE |
|
|
|
-| 51322 | CASE/ELSE closing `end;` in `GetLine` (`ERR 1`) |
|
|
|
|
|
|
|
+| 51322 | CASE/ELSE closing `end;` - DONE |
|
|
|
|
|
+| 52316 | string vs CHAR comparison (`S <> Chr($FF)`) - DONE |
|
|
|
|
|
+| 56540 | code-image ceiling (`ERR 98`) |
|
|
|
|
|
|
|
|
Corrections the measurements force, worth stating plainly because the stage list
|
|
Corrections the measurements force, worth stating plainly because the stage list
|
|
|
below was written before them:
|
|
below was written before them:
|
|
@@ -600,6 +602,10 @@ Exec86):
|
|
|
- **`Abs`, `Sqr` and `Sqrt` are landed (`t104_mathbasic`).** `Abs` clears the
|
|
- **`Abs`, `Sqr` and `Sqrt` are landed (`t104_mathbasic`).** `Abs` clears the
|
|
|
MBF sign, `Sqr` lowers to the real multiply entry, and `Sqrt` is Newton over
|
|
MBF sign, `Sqr` lowers to the real multiply entry, and `Sqrt` is Newton over
|
|
|
the existing real division/addition entries.
|
|
the existing real division/addition entries.
|
|
|
|
|
+- **CASE/ELSE and string-vs-CHAR comparisons are landed.** A semicolon before
|
|
|
|
|
+ the CASE's `END` is accepted (`t111_caseelse`), and `S <> Chr($FF)`/`S <> 'x'`
|
|
|
|
|
+ compares against a one-character counted scratch (`t112_strchar`). The old
|
|
|
|
|
+ t50 rejection fixture is updated to the new accepted behaviour.
|
|
|
- **`Insert(Source,Dest,Index)` is landed (`t110_insert`).** A CHAR source is
|
|
- **`Insert(Source,Dest,Index)` is landed (`t110_insert`).** A CHAR source is
|
|
|
materialised as a one-character counted string; string sources and index
|
|
materialised as a one-character counted string; string sources and index
|
|
|
clamping are covered. The runtime shifts the tail and copies the source.
|
|
clamping are covered. The runtime shifts the tail and copies the source.
|
|
@@ -1250,10 +1256,11 @@ and TEXT file output is done (`t91_textout`), both compile-only because the
|
|
|
harness has no filesystem. `Str` real formatting is done (`t92_strreal`),
|
|
harness has no filesystem. `Str` real formatting is done (`t92_strreal`),
|
|
|
pointer types with `New`/`Dispose`/dereference are done (`t93_pointer`), and
|
|
pointer types with `New`/`Dispose`/dereference are done (`t93_pointer`), and
|
|
|
text `Eof`/`Readln` plus integer `Str` are done (`t94_textread`/`t95_strint`).
|
|
text `Eof`/`Readln` plus integer `Str` are done (`t94_textread`/`t95_strint`).
|
|
|
-The next blocker is the `end;` closing the `CASE ... ELSE ... END` in
|
|
|
|
|
-`GetLine` (error 1), not another string runtime entry. The runtime is 9,373
|
|
|
|
|
-bytes; `rt_exec` is at HDR=0x4000 / data 0x5000, and the compiler's code ceiling
|
|
|
|
|
-is 0x8000.
|
|
|
|
|
|
|
+The next blocker is image capacity: runtime plus generated code reaches the
|
|
|
|
|
+`0x8000` data base. The runtime is 9,373 bytes; `rt_exec` is at HDR=0x4000 /
|
|
|
|
|
+data 0x5000, and the compiler's code ceiling is 0x8000. The next change must
|
|
|
|
|
+be a deliberate layout move (data base/code ceiling) or a further runtime
|
|
|
|
|
+reduction.
|
|
|
|
|
|
|
|
**Stage 14 — the CRT identifiers.** `GotoXY` (25), `LowVideo`/`NormVideo`
|
|
**Stage 14 — the CRT identifiers.** `GotoXY` (25), `LowVideo`/`NormVideo`
|
|
|
(16 + 16), `ClrEol` (10), `ClrScr` (6), `KeyPressed` (3), `Delay` (1),
|
|
(16 + 16), `ClrEol` (10), `ClrScr` (6), `KeyPressed` (3), `Delay` (1),
|