/* * mem_free_block_estex — освободить блок, выданный * mem_alloc_pages_estex. ESTEX FREEMEM ($3E): A=blk_id → CF=err. * Повторное освобождение ставит errno; владение — на вызывающем. */ #include #include void mem_free_block_estex(uint8_t blk_id) __naked { (void)blk_id; __asm ;; SDCC: единственный uint8-аргумент уже в A. push ix ld c, #0x3E ; ESTEX FREEMEM rst #0x10 pop ix ret nc ; CF=0 → успех jp __errno_set ; CF=1 → A = код; tail-call хелпера __endasm; }