/* * fnext — следующая запись перебора каталога, начатого ffirst(). * ESTEX F_NEXT ($1A): DE = тот же буфер; CF = err / A = код ошибки. * Возвращает 0 или -1 + errno (ENOENT-класс в конце перебора). */ #include int fnext(ffblk_t *buf) __naked { (void)buf; __asm ;; HL = buf на входе; ESTEX F_NEXT хочет буфер в DE. push ix ex de, hl ld c, #0x1A ; ESTEX F_NEXT rst #0x10 pop ix jr c, _fnext_err ld de, #0 ret _fnext_err: call __errno_set ld de, #-1 ret __endasm; }