Files
Sprinter-SDCC/examples/banked/banked.c
T
snark13 b851e22fa6 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>
2026-06-04 09:28:39 +03:00

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;
}