/* * _bgi_plot_raw — пиксель (x,y) цветом 0..15, mode 0x82. * Байт по адресу _gfx_addr_base + x/2 держит два пикселя: high nibble = * ЛЕВЫЙ (чётный x), low = ПРАВЫЙ (нечётный). W3-naive. */ #include "../_bgi.h" void _bgi_plot_raw(int x, int y, uint8_t color) { if ((unsigned)x >= GFX_WIDTH_16 || (unsigned)y >= GFX_HEIGHT_16) return; _gfx_g16_y = (uint8_t)y; _gfx_g16_addr = (uint16_t)(_gfx_addr_base + ((unsigned)x >> 1)); if (x & 1) { _gfx_g16_nibble = (uint8_t)(color & 0x0F); _gfx_g16_mask = 0xF0; } else { _gfx_g16_nibble = (uint8_t)((color & 0x0F) << 4); _gfx_g16_mask = 0x0F; } _gfx_rmw16_pixel(); }