Лучше сделать и жалеть, чем не сделать и жалеть.
Некоторые из моих поделок тут: https://github.com/serge-404
В-общем, коллеги, вот преальфа CP/M для Ориона-ПРО работающая на IDE-контроллере на ВВ55 порта F600 (такой порт ВВ55 есть на мультикарте ПРО, надо только добавить переходник с одной 555ЛН1). IDE/CF подключается полностью аналогично тому как подключалась на Орионе-ревизии512 (да и любом Орионе-128 с портм F600). Поддерживается ВИ1 с платы IDE/RTC, но пока на тему ВИ1 уже есть багрепорт и нужна возможно более полная статистика - где как и что.
https://drive.google.com/file/d/0B3S...ew?usp=sharing
Для загрузки с этого образа нужно на ПРО выйти в режим Орион-128 в Ордос, запустить MBOOT$ (ищите на форуме - я выкладывал тут где-то, но найти на современном опоганенном движке форума не могу) и использовать загрузку с IDE MASTER (кнопка 5)
На диске:
USER0 - стартовые файлы CP/M и UZIX. UZIX сыроват, просто уже был в образе с ОС.
USER1 - игры ZX
USER2 - игры 128
USER3 - несколько музыкальных треков (так то их несколько сотен). Проигрыватели unipl* - для портов BFFD/FFFD как на Спеке - плату AY надо дорабатывать чтобы понимала и дешифрацию Спека!
USER15 - некий "джентельменский" набор софта для CP/M (от Ориона-128 естественно, но большинство пойдет и на ПРО т.к. работает через драйвер или BDOS/BIOS. А вот дисководные форматеры понятно не заработают, как и не заработают floppy под ОС).
Образ универсальный, т.е. пойдет и на обычном Орионе с Z80CardII. Но драйвер правленный - экран сдвинут вправо чтобы на ПРО он был по центру (правится, если будет нужно - расскажу как).
В принципе можно подумать на тему запиливания в ОС поддержки IDE c платы IDE/RTC ПРО - если дадите выверенные подпрограммы инициализацииIDE/чтений_сектора/записи_сектора
Большое спасибо Дмитрий2012 за бета-тестирование! (своего реала у меня пока нет - ленюсь допаять).
Последний раз редактировалось Error404; 06.02.2016 в 12:51.
Лучше сделать и жалеть, чем не сделать и жалеть.
Некоторые из моих поделок тут: https://github.com/serge-404
уточню, на мультикарте ВВ55 (D4) управляется с портов 20-23Н, для подключения ее к порту F600 нужно отогнуть 6 ножку ВВ55 и подпаять на нее проводок с системной платы, где находится перемычка J4. А похорошему, если не удастся запустить IDE контроллер Михаловского. Скорее всего ВВ55 оставлю на мультикарте, как она и была штатно задумана, а для загрузки с винта сделаю новую карту расширения. На карте Михаловского оставить только часики и добавить туда ВВ55. А все лишнее, что относится к контроллеру IDE с нее выпилить.
с платой IDE-RTC до сих пор непонятки, возможно в схеме еще остались ошибки. По крайней мере у меня она в тесте некорректно определяет винты и Compact Flash карты через переходник, и часть тестов идут с ошибкой. А другого софта кроме теста, чтобы проверить работу жесткого диска на Орионе-ПРО нет, кроме загадочного Ордос6, который работает только в эмуляторе. На железном орионе он даже не запускается.
Прикрепил файлик MBOOT$ , которым я сейчас пользуюсь для загрузки системы.
Последний раз редактировалось Дмитрий2012; 06.02.2016 в 13:20.
В теории, контроллер на отдельных регистрах (как я понял - Михаловского) должен работать в 2-3 раза быстрее, чем контроллер на ВВ55. Поковыряться с ним вполне имеет смысл. А почему надо отгибать ножку ВВ55 на мультикарте? Вроде где-то в описаниях проскакивало, что в режиме Ориона-128 какой-то из портов сам переключается на F600?
Лучше сделать и жалеть, чем не сделать и жалеть.
Некоторые из моих поделок тут: https://github.com/serge-404
На сколько я понял из схемы порт F600 переключается перемычкой (на плате мультикарты) для управления ROM диском, а 6 ножка ВВ55 припаяна к дешифратору D1. Так что, либо отгибать ножку, либо резать дорожки и опять же кидать проводок.
Последний раз редактировалось Дмитрий2012; 06.02.2016 в 13:49.
Не нашёл. Но нашёл у себя на сайте образ 1Мб ROM-диска, там есть MBOOT$.
Сделал конфиг для своего эмуля и доложил в ROM-диск MBOOT: http://bashkiria-2m.narod.ru/files/o...rionProIDE.rar
Файл uzix.ohi из поста коллеги Error404 скопировать как обычно в подкаталог Orion эмулятора.
- - - Добавлено - - -
Честно говоря, я надеялся, что uzix запустится, но увы. И спековские игрушки (я пробовал dizzy) не запускаются. Там кроме CP/M что-нибудь работает?
Ну хорошо, NC тоже запустился...
Error404 попробовал загрузить Uzix, в этой сборке правда не запускается, но в других сборка, которые тестировал Uzix запускался. Я в основном Альтаир-ДОС юзал, поэтому в этой сборке даже не проверял загрузку Uzix.
Что касается игр со спектрума, на Орионе-ПРО запускаются не все. Dizzy не работают. Насколько помню, точно запускаются Batty, Freddy Hardest 1,2 , Cybernoid 2, Saboteur 1,2 и еще каких-то десятка 2.
Последний раз редактировалось Дмитрий2012; 25.07.2016 в 19:11.
Uzix я не правил, он годовалой давности. По-хорошему, он будет переписан: не совсем удобно вписался в текущую версию ОС. А сам образ от того что для Ориона-128 отличается только драйвером driver.sys. В котором перепилена поддержка ВИ1 и обработка прерываний (в т.ч. в режиме ПРО драйвер последней версии после своего старта правит код обработчиков прерываний ДОС "по-живому" и пишет в F900: чтобы еще и ДОС не править я так сделал, т.к. для ПРО по-другому не получалось - это может давать на ПРО спецэффекты). Но у меня в эмуляторе и у Дмитрий2012 на реале запускалось (я видос видел). Правда тогда вектора прерываний ещ были на F000, а не на F900 и не было правок кода их обрабочиков из драйвера. Понятно, что дальше "запустилось" никто не смотрел.
За неработающие игры надо сказать спасибо авторам ПРО, т.к. это они уперлись как бараны и не сделали совместимость по диспетчеру 16к с портом FB, хотя цена вопроса там - одна КП11.
Лучше сделать и жалеть, чем не сделать и жалеть.
Некоторые из моих поделок тут: https://github.com/serge-404
А вот кстати. Кто возьмется сделать такую доработку? Думаю, проще - по второму варианту, без КП11.
Вот смотрите: программам от Z80CardII (я думаю никто не будет спорить что они -самое интересное на Орионе) порой нужен диспетчер по 16к в окне 0000...3FFF. Он включается портом 0FBh: Бит D7=0 диспетчер включен, бит D7=1 диспетчер выключен (т.е. инверсно). Кстати, этот бит уже запоминается на ПРО в D111 (TM8). Биты D0..D3 содержат номер сегмента, включаемого в окне 0000...3FFF если бит D7=0. Т.е. нам либо нужен доп. регистр на 4 разряда, например еще одна ТМ8, либо их можно запоминать в аналогичном порту ПРО (это порт 04 биты D0..D3, в остальные нужно писать 0)
Номера сегментов совпадают с номерами сегментов на ПРО, только их всего в отличие от ПРО всего 16 (на про их 32), цитирую для ПРО:
Т.е. чтобы получить аналог диспетчера от Z80CardII нужно в порт RAM0 (это порт A мсх D55) одновременно (т.е. доп. обработать выв.6 /CS D55) писать то, что пишется в 0FBh биты D0..D3 (при этом выводы D55 A0,A1,D4,D5 должны переводиться в 0, т.е. нужно на эти входы поставить МСХ 2И (ЛИ1), нечетные ножки которой завести на сигнал "FB" выв.9 D111 - сигнал инверсный), и разрешать работать диспетчеру "RAM0" не только разрешаюшим сигналом c вывода 14 D80 (бит D0 порта 0Ah), но и по элементу ИЛИ и с вывода 6 D111 (инверсный бит D7 порта 0FBh).Код:Распределение сегментов по страницам основного ОЗУ: Стр.0 Стр.1 Стр.2 Стр.3 Стр.4 Стр.5 Стр.6 Стр.7 FFFFH -------T------T------T------T------T------T------T------¬ ¦ 3 ¦ 7 ¦ 11 ¦ 15 ¦ 19 ¦ 23 ¦ 27 ¦ 31 ¦ C000H +------+------+------+------+------+------+------+------+ ¦ 2 ¦ 6 ¦ 10 ¦ 14 ¦ 18 ¦ 22 ¦ 26 ¦ 30 ¦ 8000H +------+------+------+------+------+------+------+------+ ¦ 1 ¦ 5 ¦ 9 ¦ 13 ¦ 17 ¦ 21 ¦ 25 ¦ 29 ¦ 4000H +------+------+------+------+------+------+------+------+ ¦ 0 ¦ 4 ¦ 8 ¦ 12 ¦ 16 ¦ 20 ¦ 24 ¦ 28 ¦ 0000H L------¦------¦------¦------¦------¦------¦------¦------- Доступ к сегментам ОЗУ осуществляется через три независимых окна, которые можно "открыть" в адресном пространстве процессора в пределах рабочей страницы ОЗУ: Окно ОЗУ "RAM2" - 8000-BFFFH Окно ОЗУ "RAM1" - 4000-7FFFH Окно ОЗУ "RAM0" - 0000-3FFFH Назначение разрядов порта 0AH следующее: D0 - 1 = включить окно ОЗУ "RAM0" D1 - 1 = включить окно ОЗУ "RAM1" D2 - 1 = включить окно ОЗУ "RAM2" порт 04H - регистр сегментов для окна "RAM0"; порт 05H - регистр сегментов для окна "RAM1"; порт 06H - регистр сегментов для окна "RAM2";
Последний раз редактировалось Error404; 07.02.2016 в 12:26.
Лучше сделать и жалеть, чем не сделать и жалеть.
Некоторые из моих поделок тут: https://github.com/serge-404
Такая-же проблема, как и с портами 08 и F9. Не так-то просто сделать запись в один регистр по двум адресам, особенно если младшие биты адреса различаются. Поэтому сделали отдельные регистры с мультиплексором.
Эта проблема, конечно, решаема, например можно было поставить РТ-шку, которая бы транслировала младшие биты адреса и формировала сигналы CS. Но это уже будет другой Орион-Про.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)