Volkov: добавить Sprinter Commander
Реализовать двухпанельный Commander от платформенного PoC до этапов P6-P20: EMM-каталог, сортировку и выбор, операции с файлами и деревьями, транзакционное копирование, метаданные, политику конфликтов и предварительную проверку свободного места. Добавить проектную документацию, HDD/MAME-сценарии и проверенные артефакты. Расширить libc операцией bank_write_page, исправлением режима O_RDONLY и связанными регрессионными проверками.
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
/* p3map.c — экранный отчёт матрицы длинного перебора каталога. */
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdint.h>
|
||||
#include <errno.h>
|
||||
#include <unistd.h>
|
||||
#include <conio.h>
|
||||
#include <sprinter_mem.h>
|
||||
|
||||
uint16_t p3_enum_mode(uint8_t mode, uint8_t page, int *end_errno) __banked;
|
||||
|
||||
int main(void)
|
||||
{
|
||||
uint8_t block;
|
||||
uint8_t page;
|
||||
uint8_t mode;
|
||||
uint16_t count;
|
||||
int end_errno;
|
||||
|
||||
(void)settextmode(TEXT_MODE_80x32);
|
||||
clrscr_attr(0x17u);
|
||||
gotoxy(0u, 0u);
|
||||
textattr(0x1Fu);
|
||||
cputs("P3 F_NEXT / W3 matrix\r\n\r\n");
|
||||
textattr(0x17u);
|
||||
|
||||
block = mem_alloc_pages(1u);
|
||||
page = block ? mem_get_page(block, 0u) : 0u;
|
||||
printf("EMM: block=%u page=%02X errno=%d\n",
|
||||
(unsigned)block, (unsigned)page, errno);
|
||||
if (!block || !page) goto done;
|
||||
|
||||
for (mode = 0u; mode != 5u; mode++) {
|
||||
errno = 0;
|
||||
if (chdir("\\BIGDIR") != 0) {
|
||||
printf("mode %u: chdir error=%d\n", (unsigned)mode, errno);
|
||||
break;
|
||||
}
|
||||
count = p3_enum_mode(mode, page, &end_errno);
|
||||
printf("mode %u: count=%u end_errno=%d\n",
|
||||
(unsigned)mode, (unsigned)count, end_errno);
|
||||
errno = 0;
|
||||
if (chdir("\\") != 0) {
|
||||
printf("root after mode %u: error=%d\n",
|
||||
(unsigned)mode, errno);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
mem_free_block(block);
|
||||
|
||||
done:
|
||||
textattr(0x1Eu);
|
||||
cputs("\r\nProbe stopped; MAME test will take a snapshot.");
|
||||
for (;;) (void)getkey();
|
||||
}
|
||||
Reference in New Issue
Block a user