Volkov: добавить Sprinter Commander
Реализовать двухпанельный Commander от платформенного PoC до этапов P6-P20: EMM-каталог, сортировку и выбор, операции с файлами и деревьями, транзакционное копирование, метаданные, политику конфликтов и предварительную проверку свободного места. Добавить проектную документацию, HDD/MAME-сценарии и проверенные артефакты. Расширить libc операцией bank_write_page, исправлением режима O_RDONLY и связанными регрессионными проверками.
This commit is contained in:
@@ -5,6 +5,16 @@
|
||||
|
||||
## Ближайшее
|
||||
|
||||
- [ ] **Дополнить `<errno.h>` полным списком кодов DSS после 32.**
|
||||
Исходники DSS 1.71 подтверждают как минимум код 35
|
||||
`TOO_MANY_FILES_IN_DIR`: `F_FIRST/F_NEXT` возвращают его в `A` при
|
||||
`CF=1`, а libc правильно переносит число в `errno`, но публичного
|
||||
символического имени и строки `strerror()` сейчас нет. Сверить весь
|
||||
список с `Shared_Includes/DSS_Errors.inc`, добавить константы без
|
||||
перенумерации существующих кодов, расширить таблицу `strerror`,
|
||||
`docs/libc-reference.md` и тест на преобразование `CF/A -> errno`.
|
||||
До этого Commander использует локальную константу со значением 35.
|
||||
|
||||
- [ ] **Перевести новые EMM/W0-функции libc/libbgi на Z80 asm:**
|
||||
`bank_load_file()`, `bank_save_file()` и `gfx_w0_page_prepare()`.
|
||||
Сейчас универсальная C-обвязка (четыре аргумента, IX-frame, проверки
|
||||
|
||||
@@ -483,10 +483,12 @@ inline `sprinter_page_w0..w3(page)`; ENV: `getenv putenv sysenv`.
|
||||
mem_info(&total,&free)` (реализации _bios/_estex; макро-выбор
|
||||
MEM_MANAGE_MODE_*). HOME-резидентный доступ к чужим страницам:
|
||||
`bank_load_byte/store_byte/read/write` (своп W3 внутри; *_w1 —
|
||||
вариант через окно W1). `bank_load_file(page,off,path,max_size)` читает
|
||||
файл непосредственно в диапазон EMM-страницы, `bank_save_file` записывает
|
||||
диапазон одним WRITE; обе функции возвращают фактический размер либо -1.
|
||||
Они восстанавливают W3 до возврата и безопасны для вызова из huge-банка.
|
||||
вариант через окно W1). `bank_read_page(fd,page,off,size)` и
|
||||
`bank_write_page(fd,page,off,size)` обмениваются данными с уже открытым
|
||||
файлом в его текущей позиции. `bank_load_file(page,off,path,max_size)` сам
|
||||
открывает файл для чтения, а `bank_save_file` создаёт файл и записывает
|
||||
диапазон одним WRITE. Файловые функции возвращают фактический размер либо
|
||||
-1, восстанавливают W3 до возврата и безопасны для вызова из huge-банка.
|
||||
|
||||
## <sprinter_exit.h>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user