Если интересно кому либо - format2 и sysgen в KOI8-R тут.
Сегодня еще чуть подправил FORMAT2.COM чтоб под РДС корректно выводило псевдографику, обновил архив.
Вид для печати
Если интересно кому либо - format2 и sysgen в KOI8-R тут.
Сегодня еще чуть подправил FORMAT2.COM чтоб под РДС корректно выводило псевдографику, обновил архив.
Доброго времени друзья! Подключил к вектору HDD Segate ST38410A 16383 cyl, 16 heads, 63 sectors. LBA 16,841,664, то есть максимум... Работает, на ура, заворотов нет. 10520 дискет (2918H). Тестировал в OS-T72HL.COM, FH51.COM... Из проблем: DELETE.COM может работать с дискетой, с максимальным номером FFFH... то есть, для форматирования дискет после FFF нужно тащить диск на PC, лезть в открытом доступе на него, и заполнять области E5. Так же, INITHDD.COM "нашел" только 2000h (8192) клайстера из 4000h (16383). Похоже эта программа не рассчитана на диски большего обьема, в целом, в 95 году, когда она была написана - таких и не было. в 1997 году я еще сидя за Вектором, собирал 5Х86, в целом, меня вполне устроил для начала HDD на 40 мб... с WIN 3.11 на борту... Диск который я тестировал сейчас - 2000 года выпуска. В целом, логично. В остальном все складывается очень неплохо, и система и контроллер работают прекрасно. Прикладываю фото экспонатов и скриншоты программ, и вот тут можно посмотреть подробный отчет о тестах. Там правда не только HDD, тем не менее, по HDD там во второй половине достаточно подробный отчет. Ну и переделка систем под LBA вполне себя оправдывает и на 100% работоспособна.
https://s8.hostingkartinok.com/uploa...d11005dcb6.png https://s8.hostingkartinok.com/uploa...a4050871af.png https://s8.hostingkartinok.com/uploa...a8b1de59af.png https://s8.hostingkartinok.com/uploa...46ac8795c6.png
Обнаружил проблемку с Т-72 -- в ней не работают почти все программы для обращения к магнитофону (load*.com/save*.com и их вариации). Причина -- из БСВВ были исключены процедуры обращения к магнитофону, причём в Т-34 все они ещё присутствовали. Работают только те программы, которые для этого имеют свои собственные подпрограммы, например, LROM.COM. Добавлять работу с магнитофоном в Т-72 я не вижу смысла, да и места там для этого нет, поэтому пошёл другим путём, дополнил программку LOADDOS.COM подпрограммой чтения байта с магнитофона, ну и немного доработал, не особо углубляясь в детали.
Вот что получилось (в архиве бинарный файл и исходники):LDOS.7z(см.ниже)
Новая версия грузит данные в формате ДОС, но в работе константу чтения из БСВВ (адрес 0FFC5h) не использует, поэтому может работать в любой версии МДОС, в том числе и в РДС, проверял.
Ту же самую процедуру можно выполнить и с другими программами, но пока я не вижу в этом необходимости.
Нашёл ошибку в программе -- пропустил случайно один RNZ, из-за чего не грузились файлы больше 256 байт.
Исправленная версия LDOS: Вложение 73163
Эта программа типа loadrom+.com? Я все с "кассет" загружаю в файлы при помощи loadrom+.com, проблем не было. А, пробовал как то передавать из реала в эмулятор при помощи команды 2 и 3, это действительно не заработало.
Да, типа, только формат записи другой. Я изредка пользуюсь форматом ДОС для заливки в Вектор небольших файлов. Формат ROM более долгий по времени, но по сравнению с другими форматами он устойчивее к помехам и сбоям. Кстати, для загрузки в формате ROM мне показалось более удобным использование программки LROM -- там есть автоопределение скорости, в отличие от LOADROM. Есть ещё относительно новый и быстрый формат записи FM9, но его я ещё пока не освоил.
Команды 2 и 3 почти во всех досах повырезаны, реально они работали только в первых версиях, например в чистоквазидисковом МДОС 2.0а, может в этом причина?
Некоторое время назад тут обсуждали возможность объединения двух квази-дисков в один, вот решил сделать новый МДОС Т-72, с двойным КД... Что тут получается:
- Номер дорожки и номер сектора МДОС передаёт в размере одного байта, стандартный формат КД предусматривает 236 дорожек по 8 секторов, поэтому нельзя просто так взять и увеличить количество дорожек КД, надо увеличивать число секторов на дорожку до 16.
- Размер кластера КД стандартного формата равен 1кБ, его тоже оставить таким же не получится, т.к. в этом случае на двух КД будет 486 кластеров, а по стандартам CP/M (и МикроДОС) для дисков с общим числом кластеров >256, размер кластера должен быть минимум 2кБ.
- Ну и ко всему прочему, кроме проблем, которые я назвал тут, вылезла ещё одна: при изменении формата КД не будет работать загрузка с него ОС.
Пытаясь решить все эти ньюансы, пришёл к такому варианту:
Распределение памяти двух квази-дисков
Код:Порт 11 Адрес Порт 10
+------------+-- 3FFFF --+------------+
| не исп. | (Банк 0) | не исп. |
+------------+-- 3FFC0 | |
| Конт.суммы | 3FEC0 --+------------+
| | | Конт.суммы |
+------------+-- 3F000 --+------------+
| Каталог | | Каталог 10 |
| д.0,с.1 -- | | д.255,с.1--|
| д.1,с.16 | | д.255,с.16 |
| | 3E800 --+------------+
| | | Данные |
| | | д.126,с.1--|
| | | д.126,с.16 |
+------------+-- 3E000 --+------------+
| Данные | | Подэкраная |
| д.2,с.1 -- | | область |
| д.29,с.16 | 3A000 --+------------+
| | | Данные |
| | | д.127,с.1--|
| | | д.146,с.16 |
| | | |
+============+-- 30000 --+============+
| Данные | (Банк 1) | Данные |
| д.30,с.1-- | | д.147,с.1--|
| д.61,с.16 | | д.178,с.16 |
| | | |
+============+-- 20000 --+============+
| Данные | (Банк 2) | Данные |
| д.62,с.1-- | | д.179,с.1--|
| д.93,с.16 | | д.210,с.16 |
| | | |
+============+-- 10000 --+============+
| Данные | (Банк 3) | Данные |
| д.94,с.1-- | | д.211,с.1--|
| д.125,с.16 | | д.242,с.16 |
| | | |
+------------+-- 00000 --+------------+
[свернуть]Распределение памяти на стандартном квази-диске, для сведения
Код:Порт 10 Адрес
+------------+ 3FFFF
| не исп. | (Банк 0)
+------------+ 3FEC0
| Конт.суммы |
+------------+ 3F000
| Каталог |
| д.0,с.1 -- |
| д.1,с.8 |
+------------+ 3E800
| Данные |
| д.2,с.1 -- |
| д.3,с.8 |
+------------+ 3E000
| Подэкраная |
| область |
+------------+ 3A000
| Данные |
| д.4,с.1 -- |
| д.43,с.8 |
| |
+============+ 30000
| Данные | (Банк 1)
| д.44,с.1-- |
| д.107,с.8 |
| |
+============+ 20000
| Данные | (Банк 2)
| д.108,с.1--|
| д.171,с.8 |
| |
+============+ 10000
| Данные | (Банк 3)
| д.172,с.1--|
| д.235,с.8 |
| |
+------------+ 00000
[свернуть]
Небольшое разъяснение:
- Первым в системе (по заполнению) делаем диск на порту 11, подэкранную область выделяем на КД на порту 10, как и ранее.
- Формат объединённого диска: 243 дорожки по 16 секторов, размер кластера 2кБ, директория может иметь до 128 записей и располагается в первых двух кластерах.
- Области с контрольными суммами секторов располагаются на стандартных местах, у каждого КД своя.
- Область с записями директории на КД на порту 10 оставляем в стандартном месте. В работе она не используется, но если файл OS.COM расположить на кластерах КД на порту 10 и сделать в этой области соответствующую запись, то можно грузить систему с КД стандартным загрузчиком.
- Разделение файлов между дисками никак не обрабатывается, но можно делать в области директории на КД на порту 10 соответствующие записи, что эти сектора заняты и при загрузке других ОС такие файлы не портились.
В общем, основные проблемы, кажется, решены -- объём диска С: максимален, КД остаётся загрузочным, может сохранять инфу при загрузке других ОС... Единственное, нужно будет ещё написать пару утилит для копирования файлов и системы на квази-дисках.
Архив с исходниками и откопилированными вариантами ОС Т-72: Вложение 73291
t72iFHK.rom -- поддержка НЖМД и НГМД
t72iFK.rom -- поддержка НГМД
t72iHK.rom -- поддержка НЖМД
t72iK.rom -- ОС без драйверов НГМД и НЖМД, только два квазидиска.
Примечания к версии:
1. Система запускается только в конфигурации с двумя КД, если они не были обнаружены, то выводится ошибка.
2. При запуске с нажатой клавишей "УС" форматируется только КД на порту 11.
3. В этой версии немного по-другому работает команда "8", вот варианты её использования:
- "8" или "8 C:" -- тестирование обоих КД.
- "8 10" и "8 11" -- тестирование КД на порту 10 и 11 соотвественно.
- "8 C: F", "8 10 F" и "8 11 F" -- форматирование обоих КД, на порту 10 и на порту 11 соответственно.
Ничесе... Круто! Протестирую на неделе обязательно. Спасибо!
Решил опробовать на практике распаковщик ivagor-а и собрал МДОС Т-72 с упаковкой блоков в lzsa1, вот что получилось (все варианты и исходники, как обычно): Вложение 74933
Проверил на эмуляторе и живом Векторе. По сравнению с неупакованным вариантом, МДОС стал запускаться дольше примерно на 800 тыс. тактов процессора (или ~0,26 сек., что просто незаметно), но сама программа сократилась примерно на 2 кБ.
Кстати, недавна нужно было установить соединение между реальным Вектором и эмулятором, как оказалось в операционной системе МикроДОС 3.1H команды 2 и 3 работают, и именно их я использовал для практически "сетевого соединения" между эмулятором и реальным Вектором.. Жаль что так и не получилось доработать эту систему до поддержки дисков LBA и второго квазидиска... Система то ведь очень даже неплохая.. Да и в остальных системах, доработанных до LBA (FH51, РДС3) - поддержка второго кваза не помешает, 100%.