не понял
не понял
для сравнения запустите команду SAVE 64 TEST.BIN и гляньте на каталог
ПК8010 "Корвет"+ExtRom+AY, Atari 65XE+SDrive, Дельта-С(52ИС)+AY, Scorpion ZS 1024+SMUC
тороможу,
вроде как раз save странно себя ведёт, или я что-то забыл ?
SAVE 64 64
xkorvet copyКод:2800: 00 36 34 20 20 20 20 20 20 20 20 20 00 00 00 80 .64 .... 2810: 02 00 03 00 04 00 05 00 06 00 07 00 08 00 09 00 ........ ........ 2820: 00 36 34 20 20 20 20 20 20 20 20 20 01 00 00 00 .64 .... 2830: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........
записал то-же файл на пустой образ с помощь http://www.moria.de/~michael/cpmtools/Код:2800: 00 36 34 20 20 20 20 20 20 20 20 20 00 00 00 80 .64 .... 2810: 02 00 03 00 04 00 05 00 06 00 07 00 08 00 09 00 ........ ........ 2820: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ........ ........ 2830: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ........ ........
результат как у xkorvet
вторая трока в директории вроде как не осмысленна ?
может резерв на рост ?
зато при чтении файла с диска cpmtools создал файл длинной 16512
Последний раз редактировалось esl; 19.06.2014 в 17:39.
SAVE - это всего лишь самый простой способ создать файл.
Можете попробовать скопировать файл, который был добавлен с помощью xkorvet, утилитой power, она тоже добавит запись в каталог.
Последний раз редактировалось marinovsoft; 19.06.2014 в 17:58.
ПК8010 "Корвет"+ExtRom+AY, Atari 65XE+SDrive, Дельта-С(52ИС)+AY, Scorpion ZS 1024+SMUC
Последний раз редактировалось esl; 20.06.2014 в 01:11.
может он не проверяет число блоков в записи на равенство нулю?вот cpmtools вообще неправильно копирует с такого диска
ПК8010 "Корвет"+ExtRom+AY, Atari 65XE+SDrive, Дельта-С(52ИС)+AY, Scorpion ZS 1024+SMUC
Ты же вроде копал BDOS, судя по твоим базам?
Смотри процедуру по адресу D55A. get_next_extent. И ссылки на нее.
Когда BDOS записывает последовательный файл, производится постинкремент номера записи (Record в терминах CP/M - логический блок размером 128 байт). Если в результате инкремента текущий экстент каталога оказывается заполненым полностью, то он закрывается и формируется новый экстент. Ну а если в файл больше не писать, то при закрытии файла этот новый экстент оказывается пустым, но зарезервированным за этим файлом - поэтому он все равно запишется вместе с буфером каталога на диск.
Почему используется постинкремент - тоже вроде понятно. Первая запись имеет номер 0 и ее вначале надо записать, а потом уже увеличивать номер. Так что это не баг, а скорее особенность работы с последовательными файлами BDOS. Эмулировать ее в программах работы с дисками, я думаю, смысла никакого нет.
Последний раз редактировалось forth32; 22.06.2014 в 09:02.
*Корректная работа с файлами с одинаковыми именами, но у разных пользователей.
*Корректная работа с каталогом, в котором номера записей однобайтные (для дисков с количеством блоков < 0x100).
Последний раз редактировалось marinovsoft; 28.05.2017 в 21:08.
ПК8010 "Корвет"+ExtRom+AY, Atari 65XE+SDrive, Дельта-С(52ИС)+AY, Scorpion ZS 1024+SMUC
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)