diff --git a/docs/v4.0.0/MACHINE.md b/docs/v4.0.0/MACHINE.md index 68f417b3..9f2ad596 100644 --- a/docs/v4.0.0/MACHINE.md +++ b/docs/v4.0.0/MACHINE.md @@ -42,6 +42,8 @@ vocabularies. These are `.f18` source. bitstream is. That build is the only thing done off the node. It produces one ROM per cell width (32 and 64 bits). +**Size.** Whatever it takes. + **Read-only.** A store into the ROM is an address fault. Seal and `COLD` never go below it. ## 3. The boot @@ -129,12 +131,10 @@ Each step is accepted as `.claude/CLAUDE.md` says: 1080 lines over 64 characters. Proposed: `.f18` is plain text with no block format. 3. **The `v3/` tree.** Deleted, or kept out of every build but left in the repository? Kept, it lets `mkpost.py` write POST's cases again. -4. **ROM size.** It is whatever the assembler and blob reader take. It is set when step 1 is - built. -5. **Where `starforth.4th` loads.** Proposed: with `forth79.4th`, by the kernel and before +4. **Where `starforth.4th` loads.** Proposed: with `forth79.4th`, by the kernel and before POST, because v3's StarForth words are system words and v3's POST covers them. Layer 3 is `init.4th`'s. -6. **Where the standard's names live.** "100 percent" in `forth79.4th`: does it name all 130 +5. **Where the standard's names live.** "100 percent" in `forth79.4th`: does it name all 130 Required words, including the ones that are single opcodes (`DUP`, `+`, `@`)? Proposed: yes. The `.f18` primitives carry their own names, and `forth79.4th` gives every standard word its standard name and behaviour. The `.f18` layer then holds no FORTH-79 names at all.