Files
Sprinter-SDCC/tests/banked/banked.c
T
snark13 737c974400 Add mdview markdown viewer, reorganize tests/examples and libc layout
- Split tests/ (libc feature tests) and examples/ (real apps); shared
  app.mk in repo root, was examples/example.mk
- libc/io/* split into libc/{conio,env,errno,file,mouse,string,sys,
  time,video}/ — clearer module boundaries
- New examples/mdview/: markdown viewer (Phases 1-5 + light nested
  lists). Headers (H1-H4), HR, ulist/olist/quote with nesting via
  leading spaces, fenced code blocks, inline emphasis (bold/italic/
  underscore/code), wrap/unwrap mode with soft wrap (F2), horizontal
  pan (← →) with '>' truncation indicator
- libc additions: scroll() in conio (ESTEX SCROLL), strlwr/strupr,
  gets() test
- Makefile updates across tests/ for the new shared app.mk path

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-04 22:23:36 +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;
}