- Text after start is refused, as text.c refuses it: before it jumps, the ROM reads on to the end of the source; blanks, comments and the ends of blobs may follow, a token is ERR-AFTER (26), "text after start". - A token too long where a name, a target or a value is wanted is "name too long", as text.c says: (MISSING) reports "missing" only when no error came first. `", keeps "missing", which is text.c's word for both. - text.c's "address out of range" names the address, not the value. - The system's source files are one list, v4/sys_files.h: boot.c, the harness and the nucleus test are made from it. - The ROM's error codes and words are one list, v4/rom_errors.h: boot.c's messages, host_map.h's ROM_ERR_* and mkmap's ERR-* are made from it. - node.h says what v4_node_store does with a ROM address (nothing, as for any address outside RAM, D-14); test_host_rom_range pins it. ROM: 2095 words, rom_hash 0x06d0dcb7a0cb41a1. dict_hash unchanged, 0xe5a57f3eb72ff94a. make -C v4 test test-32 hosted-check pass. QEMU: amd64, aarch64, riscv64 to ok>, POST 538/538, POST: PASSED. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
18 lines
629 B
C
18 lines
629 B
C
/* sys_files.h -- the system's source, in the order the ROM reads it.
|
|
*
|
|
* capsules/v4/sys: the memory map (map-<cell bits>.f18) first, then these,
|
|
* then end.f18 -- the state the system is switched on in, and `start`. The
|
|
* one list: the boot feeds these blobs (v4/system/boot.c), and the tests
|
|
* that build the system read these files (v4/tests/rom_harness.h).
|
|
*
|
|
* X(FILE): capsules/v4/sys/FILE.f18
|
|
*/
|
|
#ifndef V4_SYS_FILES_H
|
|
#define V4_SYS_FILES_H
|
|
|
|
#define V4_SYS_FILES(X) \
|
|
X(core) X(input) X(dict) X(codegen) X(compile) X(quit) X(forth) \
|
|
X(numout) X(words) X(system) X(qmath) X(blocks) X(log) X(acl)
|
|
|
|
#endif
|