b851e22fa6
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>
48 lines
1.1 KiB
C
48 lines
1.1 KiB
C
#include <stdio.h>
|
|
#include <stdint.h>
|
|
#include <sprinter.h>
|
|
|
|
/* crt0_banked.s reads this constant to know how many banks to load. */
|
|
const uint8_t n_banks = 2;
|
|
|
|
void bank1_func(int x) __banked;
|
|
void bank2_func(int x) __banked;
|
|
|
|
extern uint8_t bank_pages[]; /* filled by crt0_banked.s */
|
|
|
|
static void show_w3(const char *who)
|
|
{
|
|
puts(who);
|
|
hex8(_io_page_w3); /* current physical page mapped in window 3 */
|
|
putchar('\n');
|
|
}
|
|
|
|
int main(void)
|
|
{
|
|
puts("HOME: program start.");
|
|
#ifdef DEBUG_RT
|
|
printf("HOME: w2_self_allocated = %u\n", w2_self_allocated);
|
|
#endif
|
|
show_w3("HOME: window 3 phys page = ");
|
|
|
|
puts("HOME: bank_pages[1] (BANK1 phys) = ");
|
|
hex8(bank_pages[1]);
|
|
putchar('\n');
|
|
puts("HOME: bank_pages[2] (BANK2 phys) = ");
|
|
hex8(bank_pages[2]);
|
|
putchar('\n');
|
|
|
|
puts("HOME: calling bank1_func(42)...");
|
|
bank1_func(42);
|
|
show_w3("HOME: back, window 3 phys = ");
|
|
|
|
puts("HOME: calling bank2_func(123)...");
|
|
bank2_func(123);
|
|
show_w3("HOME: back, window 3 phys = ");
|
|
|
|
puts("HOME: done.");
|
|
puts("Press any key to exit...");
|
|
(void)getchar();
|
|
return 0;
|
|
}
|