/*
 * res.c — РЕЗИДЕНТНЫЙ модуль окна W3 (--w3): лежит на 0xC000 и вызывается
 * напрямую из W1/W2.  Рисует через готовые примитивы libbgi — это законно:
 * скобку _bgi_begin/_bgi_end они открывают внутри себя (сам W3-код открывать
 * её НЕ имеет права, иначе исполняемая страница подменяется видеобанком).
 */
#include <graphics.h>
#include <stdint.h>

uint8_t res_page_seen;      /* какая страница была в W3 во время вызова */

/* Текущая страница W3 (порт 0xE2).  ОТДЕЛЬНОЙ __naked-функцией: инлайновый
 * `in a,(0xE2)` посреди тела затирает A, куда SDCC уже положил параметр —
 * в первой версии пробника из-за этого цвет заливки становился номером
 * страницы (0xF3 = чёрный), и «резидент не рисовал». */
static uint8_t w3_page(void) __naked
{
    __asm__("in a, (#0xE2)\n\tret");
}


void res_draw(int y, int color)
{
    res_page_seen = w3_page();
    setfillstyle(SOLID_FILL, color);
    bar(10, y, 60, y + 12);
}
