/* * gfx_pal_fsave — сохранить палитру pal_num (0..3) в файл: 256 записей * по 4 байта (B, G, R, 0 — родной формат BIOS $A4), итого 1024 байта. * Пишется чанками по 64 записи через общий буфер. 0 — OK; -1 + errno. */ #include #include #include "../_bgi.h" int gfx_pal_fsave(uint8_t pal_num, const char *path) { uint8_t k, start = 0; int fd, rc = 0; fd = creat(path, 0); if (fd < 0) return -1; for (k = 0; k < 4; k++) { gfx_pal_get(pal_num, start, _GFX_PAL_CHUNK, _gfx_pal_buf); if (write(fd, _gfx_pal_buf, _GFX_PAL_CHUNK * 4) != _GFX_PAL_CHUNK * 4) { rc = -1; break; } start += _GFX_PAL_CHUNK; } close(fd); return rc; }