/* * bios_fillcharattr — вывести символ ch с атрибутом attr count раз от * текущего place. BIOS LP_PRINT_ALL ($81, rst 8): A=ch, E=attr, * B=count. Сохраняет HL и IX — push/pop ix не нужен. * * SDCC __sdcccall(1): ch→A, attr→L, count на стеке [SP+2]; стековый * байт съедает callee (inc sp), IY — скретч для чтения без порчи IX. */ #include void bios_fillcharattr(char ch, uint8_t attr, uint8_t count) __naked { (void)ch; (void)attr; (void)count; __asm ld iy, #2 add iy, sp ld b, 0 (iy) ; B = count ld e, l ; E = attr ld c, #0x81 rst #0x08 pop hl ; адрес возврата inc sp ; съесть байт count jp (hl) __endasm; }