|
@@ -97,7 +97,7 @@ Current rung (measured today, normalised position):
|
|
|
|
|
|
|
|
| position | blocker |
|
|
| position | blocker |
|
|
|
|---|---|
|
|
|---|---|
|
|
|
-| **26066** | `Str(Value:FW:DEC,P)` in `Print` — real-to-string formatting (`ERR 41`) |
|
|
|
|
|
|
|
+| **26924** | `Buffer : ^Pages` — pointer types and `New`/dereference (`ERR 30`) |
|
|
|
|
|
|
|
|
Rungs behind it (now passed):
|
|
Rungs behind it (now passed):
|
|
|
|
|
|
|
@@ -137,7 +137,8 @@ Rungs ahead:
|
|
|
| 22706 | `var Line : AnyString` - a by-reference string parameter |
|
|
| 22706 | `var Line : AnyString` - a by-reference string parameter |
|
|
|
| 23700 | typed-file data write (`write(MCfile, Sheet[I,J])`) - DONE |
|
|
| 23700 | typed-file data write (`write(MCfile, Sheet[I,J])`) - DONE |
|
|
|
| 25674 | text-file output (`Writeln(MCFile)`) - DONE |
|
|
| 25674 | text-file output (`Writeln(MCFile)`) - DONE |
|
|
|
-| 26066 | `Str(Value:FW:DEC,P)` - real-to-string formatting |
|
|
|
|
|
|
|
+| 26066 | `Str(Value:FW:DEC,P)` - real-to-string formatting - DONE |
|
|
|
|
|
+| 26924 | `Buffer : ^Pages` - pointer type |
|
|
|
|
|
|
|
|
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:
|
|
@@ -459,9 +460,9 @@ assignment, string fields through DI, REAL constants, UpCase, run-time set
|
|
|
membership, string fields in WRITE, real output, run-time set algebra,
|
|
membership, string fields in WRITE, real output, run-time set algebra,
|
|
|
`Succ`/`Pred`, the original memory layout, the untyped file type, the
|
|
`Succ`/`Pred`, the original memory layout, the untyped file type, the
|
|
|
file control-block operations, VAR string parameters, `Chr`, typed-file
|
|
file control-block operations, VAR string parameters, `Chr`, typed-file
|
|
|
-block I/O, and text-file output). The
|
|
|
|
|
-ladder has moved from the first typed constant at 7,791 to **26,066**, where
|
|
|
|
|
-`Str(Value:FW:DEC,P)` asks for real-to-string formatting.
|
|
|
|
|
|
|
+block I/O, text-file output, and `Str`). The
|
|
|
|
|
+ladder has moved from the first typed constant at 7,791 to **26,924**, where
|
|
|
|
|
+`Buffer : ^Pages` asks for pointer types.
|
|
|
|
|
|
|
|
The rung commits and their tags, in order (each is one rung with its own
|
|
The rung commits and their tags, in order (each is one rung with its own
|
|
|
fixture, red proof, and — where the harness allows — execution under qemu and
|
|
fixture, red proof, and — where the harness allows — execution under qemu and
|
|
@@ -501,7 +502,8 @@ Exec86):
|
|
|
| `ab7cced` | `v-TP3-CALC-FILEOPS` | `ERR 102 22706` (VAR string parameter) |
|
|
| `ab7cced` | `v-TP3-CALC-FILEOPS` | `ERR 102 22706` (VAR string parameter) |
|
|
|
| `02d5b6e` | `v-TP3-CALC-VARSTR` | `ERR 102 23700` (typed-file data write) |
|
|
| `02d5b6e` | `v-TP3-CALC-VARSTR` | `ERR 102 23700` (typed-file data write) |
|
|
|
| `0859a3b` | `v-TP3-CALC-FILEIO` | `ERR 102 25674` (text-file output) |
|
|
| `0859a3b` | `v-TP3-CALC-FILEIO` | `ERR 102 25674` (text-file output) |
|
|
|
-| *(this commit)* | `v-TP3-CALC-TEXTOUT` | **`ERR 41 26066`** (`Str`) |
|
|
|
|
|
|
|
+| `93d2ed4` | `v-TP3-CALC-TEXTOUT` | `ERR 41 26066` (`Str`) |
|
|
|
|
|
+| *(this commit)* | `v-TP3-CALC-STR` | **`ERR 30 26924`** (pointer type) |
|
|
|
|
|
|
|
|
- **Code HEAD** is the layout rung (`v-TP3-CALC-LAYOUT`). Nothing is pushed.
|
|
- **Code HEAD** is the layout rung (`v-TP3-CALC-LAYOUT`). Nothing is pushed.
|
|
|
The terminal-config work (`v-TP3-TERMCFG`) and the editor key map
|
|
The terminal-config work (`v-TP3-TERMCFG`) and the editor key map
|
|
@@ -547,6 +549,11 @@ Exec86):
|
|
|
parameter slot holds the caller's address; assignment, `Read`, `Length`,
|
|
parameter slot holds the caller's address; assignment, `Read`, `Length`,
|
|
|
`writeln`, concatenation, comparison and `x[i]` all go through that address.
|
|
`writeln`, concatenation, comparison and `x[i]` all go through that address.
|
|
|
`Chr(n)` folds or loads an ordinal and yields a CHAR.
|
|
`Chr(n)` folds or loads an ordinal and yields a CHAR.
|
|
|
|
|
+- **`Str(real:width:decimals, S)` is landed (`t92_strreal`).** The source
|
|
|
|
|
+ address is parked on the stack while width/decimals and the destination are
|
|
|
|
|
+ parsed, then the two argument words are swapped to real_fmt's order. CX is
|
|
|
|
|
+ `(decimals << 8) | width`, with TP3's defaults (18, FFFFh). Runtime
|
|
|
|
|
+ `real_fmt` needed no change. The fixture executes under both oracles.
|
|
|
- **Text-file output is landed (`t91_textout`).** `Writeln(F)` writes CRLF,
|
|
- **Text-file output is landed (`t91_textout`).** `Writeln(F)` writes CRLF,
|
|
|
`Write(F,' ')` writes one CHAR, and `writeln(F,Line)` writes the string then
|
|
`Write(F,' ')` writes one CHAR, and `writeln(F,Line)` writes the string then
|
|
|
CRLF, all as DOS AH=40h blocks from code-resident literals or the string's
|
|
CRLF, all as DOS AH=40h blocks from code-resident literals or the string's
|
|
@@ -1131,9 +1138,10 @@ under qemu and Exec86, and `rt_exec` pins the name copy.
|
|
|
|
|
|
|
|
Typed-file block I/O (`write`/`read` with a `TFile`) is done (`t90_fileio`)
|
|
Typed-file block I/O (`write`/`read` with a `TFile`) is done (`t90_fileio`)
|
|
|
and TEXT file output is done (`t91_textout`), both compile-only because the
|
|
and TEXT file output is done (`t91_textout`), both compile-only because the
|
|
|
-harness has no filesystem. Still open: `Str`/`Val`, then `EndOfFile` and text
|
|
|
|
|
-`Readln(H, ...)`, which need text-mode newline/`^Z` semantics
|
|
|
|
|
-(`RESUME-TP3.md` §2). The next ladder blocker is `Str`.
|
|
|
|
|
|
|
+harness has no filesystem. `Str` real formatting is done (`t92_strreal`).
|
|
|
|
|
+The next ladder blocker is a POINTER type (`Buffer : ^Pages`) and the
|
|
|
|
|
+`New`/`Dispose`/dereference operations that follow it; `Val`, `EndOfFile` and
|
|
|
|
|
+text `Readln` are still open.
|
|
|
|
|
|
|
|
**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),
|