Drop print_hex.c — replaced by hex8() from hex_print.c

print_hex(uint8_t) was an early bare-metal helper doing exactly what
hex8() in the freshly-ported hex_print.c does (two-digit hex via
putchar()).  hex8() is smaller (asm cp/sbc/daa nibble trick, no LUT)
and consistent with the dec8/hex16/dec16/hex32/dec32 family.

  • Replaced print_hex() calls with hex8() in examples/banked and
    examples/bankedbg.
  • Removed libc/stdio/print_hex.c, dropped its prototype from
    sprinter.h and its entry from lib/Makefile.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-06-04 09:28:39 +03:00
parent 527d4a6a18
commit b851e22fa6
9 changed files with 12 additions and 28 deletions
+1 -1
View File
@@ -7,7 +7,7 @@ void bank1_func(int x) __banked
(void)x;
puts("BANK1: hello from a banked function!");
puts("BANK1: window 3 phys page = ");
print_hex(_io_page_w3); /* should be BANK1's phys page */
hex8(_io_page_w3); /* should be BANK1's phys page */
putchar('\n');
putchar('1');
putchar('=');
+1 -1
View File
@@ -7,7 +7,7 @@ void bank2_func(int x) __banked
(void)x;
puts("BANK2: hello from the second bank!");
puts("BANK2: window 3 phys page = ");
print_hex(_io_page_w3); /* should be BANK2's phys page */
hex8(_io_page_w3); /* should be BANK2's phys page */
putchar('\n');
putchar('2');
putchar('=');
+3 -3
View File
@@ -13,7 +13,7 @@ extern uint8_t bank_pages[]; /* filled by crt0_banked.s */
static void show_w3(const char *who)
{
puts(who);
print_hex(_io_page_w3); /* current physical page mapped in window 3 */
hex8(_io_page_w3); /* current physical page mapped in window 3 */
putchar('\n');
}
@@ -26,10 +26,10 @@ int main(void)
show_w3("HOME: window 3 phys page = ");
puts("HOME: bank_pages[1] (BANK1 phys) = ");
print_hex(bank_pages[1]);
hex8(bank_pages[1]);
putchar('\n');
puts("HOME: bank_pages[2] (BANK2 phys) = ");
print_hex(bank_pages[2]);
hex8(bank_pages[2]);
putchar('\n');
puts("HOME: calling bank1_func(42)...");
+1 -1
View File
@@ -7,7 +7,7 @@ void bank1_func(int x) __banked
(void)x;
puts("BANK1: hello from a banked function (W1)!");
puts("BANK1: window 1 phys page = ");
print_hex(_io_page_w1); /* should be BANK1's phys page */
hex8(_io_page_w1); /* should be BANK1's phys page */
putchar('\n');
putchar('1');
putchar('=');
+1 -1
View File
@@ -7,7 +7,7 @@ void bank2_func(int x) __banked
(void)x;
puts("BANK2: hello from the second bank (W1)!");
puts("BANK2: window 1 phys page = ");
print_hex(_io_page_w1); /* should be BANK2's phys page */
hex8(_io_page_w1); /* should be BANK2's phys page */
putchar('\n');
putchar('2');
putchar('=');
+3 -3
View File
@@ -24,7 +24,7 @@ extern uint8_t bank_pages[]; /* filled by crt0_banked.s */
static void show_w1(const char *who)
{
puts(who);
print_hex(_io_page_w1); /* current physical page mapped in window 1 */
hex8(_io_page_w1); /* current physical page mapped in window 1 */
putchar('\n');
}
@@ -37,10 +37,10 @@ int main(void)
show_w1("HOME: window 1 phys page = ");
puts("HOME: bank_pages[1] (BANK1 phys) = ");
print_hex(bank_pages[1]);
hex8(bank_pages[1]);
putchar('\n');
puts("HOME: bank_pages[2] (BANK2 phys) = ");
print_hex(bank_pages[2]);
hex8(bank_pages[2]);
putchar('\n');
puts("HOME: calling bank1_func(42)...");
+1 -1
View File
@@ -36,7 +36,7 @@ LIBC_C := \
libc/gfx/gfx_256.c libc/gfx/gfx_16.c \
libc/gfx/gfx_font.c libc/gfx/gfx_text_256.c \
libc/gfx/gfx_text_16.c \
libc/stdio/getchar.c libc/stdio/print_hex.c \
libc/stdio/getchar.c \
libc/stdio/putchar.c libc/stdio/puts.c libc/stdio/file.c \
libc/stdio/hex_print.c libc/stdio/dec_print.c \
libc/stdio/solid_helpers.c \
+1 -2
View File
@@ -113,8 +113,7 @@ static inline void sprinter_page_w2(uint8_t page) { _io_page_w2 = page; }
static inline void sprinter_page_w3(uint8_t page) { _io_page_w3 = page; }
/* ---- Sprinter-specific debug helpers ------------------------------ */
/* Print one byte as two uppercase hex digits via putchar(). */
void print_hex(uint8_t v);
/* Use hex8() / hex16() / hex32() from <stdio.h> for hex debug output. */
#ifdef DEBUG_RT
/*
-15
View File
@@ -1,15 +0,0 @@
/*
* print_hex — print a single byte as two uppercase hex digits.
*
* No printf yet; this is what bare-metal debug looks like in stage 3.
*/
#include <stdio.h>
#include <sprinter.h>
void print_hex(uint8_t v)
{
static const char digits[] = "0123456789ABCDEF";
putchar(digits[(v >> 4) & 0x0F]);
putchar(digits[v & 0x0F]);
}