А действительно. Долбанные Z80-мнемоники :)
- - - Добавлено - - -
Короче, надо в отладчике смотреть. В теории вроде всё верно. Жду образ.
Вид для печати
Используется BDOS который цельнотянутый на всех CP/M Ориона, откуда его утянули - сие тайна великая есть, но живет оно вот в таком вот виде с одна тысяча девятьсот мохнатого года. И код там для 8080, тремя страницами ранее есть исходники, тоже не моего производства (архив с двумя файлами - в мнемониках 8080 и Z80) - я их взял иллюстрировать свои мысли как наиболее хорошо комментированные исходники, т.к. те фрагменты что я правил, с этим исходником совпадали (за другое не поручусь) - тремя страницами треда ранее. А то что ты смотришь сейчас, это то что я как перспективное указал (а не то что использую), читай внимательнее. Оно в коде для Z80 (глянул в код в спойлере, а там индексные операции, лол).
Потестировал чтение/запись под PRODOS, нет вроде никаких проблем с файлами больше 512Кб. Дайте уже то, что у вас не работает!
Ну, наверное вот это быстрее всего можно взять (там в первой партиции CP/M):
https://drive.google.com/file/d/0B3S...ew?usp=sharing
Остальное я уже покоцал своими правками. :)
- - - Добавлено - - -
Ну тут я никак не могу подтвердить или опровергнуть, я ее пока не юзал. Вроде Ivagor как раз на ПроДосе файлы делил т.к. оно большими не работало?
- - - Добавлено - - -
Или вот еще дисководный вариант
Может я чё неправильно делаю, но вот три теста:
1. test пишет файл размером 544Кб, каждая запись заполнена собственно номером записи
2. читает произвольным доступом две записи на границе 512Кб
3. читает последовательно 544Кб
Выполнять лучше под отладчиком, чтобы контролировать результат, т.к. тесты очень простые и ничего на экран не выдают.
Всё работает, как и задумывалось. Где ошибка?
Вложение 57701
Не знаю где ошибка, посмотрю завтра на работе, дома нет годной инфраструктуры. :)
Я последовательную запись не проверял. Я проверял на произвольной записи, утилитой DED, где оно обламывалось на границе 512кб.
А можешь записать в файл 3мб и скинуть сюда образ с этим файлом?
Вот твой образ, игрушки потёр, записал 3.МВ: altair3mbfile.rar
Попробовал test и test3 в продос - все ок. Кажется я догадываюсь, почему у меня на 512 Кб стопорилось, завтра проверю, может даже утром успею.
Забавно, что odiwcx (какая-то старая версия, здесь я новую не ставил) видит в 512.KB только 512КБ. А просмотрщиком видна и остальная часть файла.
Плюс, я поправил еще одну ошибку в ODI.WCX, по файлу от b2m - файлы размером более 512кб у меня паковались не ограничивая поле экстент (EX, FCB+12) по модулю 32 с переносом в S2, а инкрементировался EX вплоть до 255 (видимо, из соображений простой человеческой логики :) ).
Ivagor, перепакуй пожалуйста большие файлы в используемом образе дисков новой версией плагина (перед запуском TC/DC надо удалить все старые - odi.wcx, odi.wcx0, odi.wcx1, odi.wcx2, odi.wcx3)
- - - Добавлено - - -
Однако ж запись (и чтение) с прямым позиционированием через ф.21h/22h (утилитой DED) все одно обламывается на 512кб. А оно там просто делает, через инкремент номера записи в FCB+34+35 и обращения через фф произвольного доступа (а он должен бы работать, там тупо инкремент 16-битного числа, битики сами складывася как надо, а уж система потом внутри себя маскми раскидывает в EX и S2). Тоже понять бы где собака порылась.
- - - Добавлено - - -
да, образ использовать такой, где система БЕЗ моих ручных патчей на увеличение разрядности EX
Вот это помогло! Теперь файлы >512 Кб записанные в образ плагином читаются нормально (пробовал по 14h и моя "догадка" оказалась ни при чем). Правда пробовал не в про, а в векторе (comanовский cp/m 59), но я думаю это не принципиально.
Теперь бы еще с подряд записанными большими файлами на hdd разобраться.
- - - Добавлено - - -
Вот образ для примера. Там в user 4 несколько больших файлов (плеер в эмуляторе не работает). Начиная с bach44.wav дурит.