starkernel: color the console prompt (FABRIC.md item 4.4h)
console.c's emit_prefix() now wraps [VMName] (brackets included) in FABRIC.md 4.4's locked orange (0xFFA500), and repl.c's two "ok> " call sites send FABRIC.md 4.4's locked cyan (0x55FFFF), both as real SGR escape sequences through the existing font_8x16.c/vt100.c pipeline -- 4.4b already established this needs no dependency on TTF-TEXT/4.4j. Sent through both raw_putc() (serial) and vt100_putc() (framebuffer), matching the existing dual-path pattern, so an ANSI-aware serial terminal renders the same colors as the framebuffer. Three-arch verified: amd64/aarch64/riscv64 all reach ok>, POST Failed: 0, identical dict-hashes. Color applies correctly to any VM name (confirmed via the [Hermes]-prefixed PARITY:BIRTH line in all three logs, not just [Hera]). amd64 screendump confirms the rendered colors directly. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
f33353430f
commit
ae7c9429b4
@@ -36,6 +36,12 @@
|
||||
#include "starkernel/arch.h"
|
||||
#include <stdint.h>
|
||||
|
||||
/* FABRIC.md 4.4: "ok>" (including its trailing space) renders in bright
|
||||
* cyan, 0x55FFFF -- reuses FB_ANSI_PALETTE[14]. Sent as a real SGR escape
|
||||
* so it colors both the framebuffer (parsed by vt100.c's apply_sgr()) and
|
||||
* any ANSI-aware serial terminal, per 4.4c's "identical on both" goal. */
|
||||
#define SK_PROMPT_TEXT "\x1b[38;2;85;255;255mok> \x1b[39m"
|
||||
|
||||
const char lithos_version[64] = LITHOS_VERSION_STR;
|
||||
|
||||
/*===========================================================================
|
||||
@@ -187,7 +193,7 @@ int sk_repl_step(VM *vm)
|
||||
const char *vn = console_get_vm_name();
|
||||
int is_hera = (!vn || (vn[0]=='H' && vn[1]=='e' && vn[2]=='r' && vn[3]=='a' && vn[4]=='\0'));
|
||||
vm->emergency_console = is_hera ? (vm->zuse_session ? 0 : 1) : 0;
|
||||
console_puts("ok> ");
|
||||
console_puts(SK_PROMPT_TEXT);
|
||||
}
|
||||
|
||||
sk_readline(input, sizeof(input));
|
||||
@@ -234,7 +240,7 @@ void sk_repl_run(VM *vm)
|
||||
const char *vn = console_get_vm_name();
|
||||
int is_hera = (!vn || (vn[0]=='H' && vn[1]=='e' && vn[2]=='r' && vn[3]=='a' && vn[4]=='\0'));
|
||||
active->emergency_console = is_hera ? (active->zuse_session ? 0 : 1) : 0;
|
||||
console_puts("ok> ");
|
||||
console_puts(SK_PROMPT_TEXT);
|
||||
}
|
||||
|
||||
sk_readline(input, sizeof(input));
|
||||
|
||||
Reference in New Issue
Block a user