/* w3big.c — проба --w3 в режиме big. * big: код 0x8100 (W2), свапаемые банки в W1 (трамплины), W3 свободно под * резидент. Проверяем сосуществование: W1-банк (трамплин) + W3-резидент * (прямой вызов) в одной программе. */ #include #include #include /* crt0_banked читает это ДО gsinit — только `const`. */ const uint8_t n_banks = 1; void bigbank_func(void) __banked; /* W1-банк, трамплин */ extern uint8_t w3_probe(uint8_t x); /* W3-резидент, прямо */ extern void w3_show(void); int main(void) { printf("BIG : main @ 0x%04X | W1=%02X W2=%02X W3=%02X\n", (unsigned)&main, _io_page_w1, _io_page_w2, _io_page_w3); bigbank_func(); /* W1 через трамплин */ w3_show(); /* W3 напрямую */ printf("BIG : w3_probe(0x42)=0x%02X (expect 0xBD), exit to DSS.\n", (unsigned)w3_probe(0x42)); return 0; }