Некоторый обзор API в разных ОС БК, навеян https://pashigorov.pdp-11.ru/files/osreview.html
argv cli, работа с аргументами
serr обработка ошибок пользователем
isys installable device drivers
ivfs installable file systems
fat FAT как родная file system
date хранит last modified
hdd умеет в винчестер
subdir умеет в подкаталоги
large умеет в файлы больше 64K
byte хранит размер файла в байтах
blockio произвольный доступ к файлам (поблочный)
fileio произвольный доступ к файлам
dirio работа с каталогами (findfirst, next ...)
ttyio работа с консолью
0010/0011 с монитором 0010
ANDOS !argv serr isys !ivfs* fat* date hdd subdir* large byte blockio fileio* dirio !ttyio
ivfs -- только в оболочке DM
fat -- fat12 фиксированного размера (800K) с самодельными подкаталогами
fileio -- только open/close; random i/o надо делать самому (есть syscalls для работы с fat)
subdir -- фс умеет в subdirs, open() -- нет
DX-DOS argv serr? isys* !ivfs fat* date !hdd !subdir large byte blockio fileio dirio ttyio
isys -- пользуется 160006 (chs) вместо 160004 (lba) api
fat -- fat12 без подкаталогов, размер не больше 800K?
MK-DOS argv* serr* !isys ivfs* !fat !date hdd subdir* !large byte* blockio* !fileio dirio ttyio
argv -- только в оболочке MC; не документировано
serr -- только подавление вывода ошибок на экран; при ошибках диска всегда делается seek +1/-1 ?
ivfs -- только через эмуляцию EMT36?
subdir -- фс умеет в subdirs, open() -- нет
byte -- длина файла хранится дважды -- в байтах и блоках; размер фс не больше ___
blockio -- фс не умеет в фрагменты, поэтому file i/o получается добавлением offset из dirent; append делается созданием нового файла итп
0011 native
AO-DOS argv serr* !isys !ivfs !fat !date !hdd subdir* !large byte blockio* !fileio dirio? ttyio
serr -- только подавление вывода ошибок на экран
subdir -- фс умеет в subdirs, open() -- нет
blockio -- только файлы целиком (EMT36)
CSI-DOS argv* !serr !isys !ivfs !fat !date hdd* subdir large* byte* blockio !fileio dirio !ttyio
argv -- только в оболочке x-shell?
hdd -- только самарский?
large, byte -- для длинных файлов длина хранится в блоках
HC-DOS argv serr? isys !ivfs !fat date !hdd !subdir !large byte? blockio fileio* dirio ttyio
fileio -- только последовательное?
ОСБК-11 (RT-11)
argv serr isys !ivfs !fat date hdd* !subdir large? !byte blockio fileio dirio ttyio
hdd -- нужно патчить драйвер BY.SYS?
BKUNIX (LSX UNIX)
argv serr !isys !ivfs !fat date !hdd subdir large* byte blockio fileio dirio ttyio
large -- предел 1MB
Отсюда
https://zx-pk.ru/threads/11381-napisanie-pr...l=1#post1210169