Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел
Тех времен что-то было от Lucksian Key, но большая часть под CP/M - типа LORD.
Если работаешь только с софтом Ордос и при этом не хочешь ни в какую ОС загружаться с дисковода а использовать его только для переноса ордосовского софа, то прошей в ПЗУ DSDOS от Denn - она умеет ордосовское.
Лучше сделать и жалеть, чем не сделать и жалеть.
Некоторые из моих поделок тут: https://github.com/serge-404
При любой схеме КНГМД надо сделать совместимость со всеми используемыми вариантами его адресации. Проще всего это делается двумя диодами или вентилем из ЛЛ1.
Несправедливо, что в сети распространилось расширение BRU. В реальности это расширение использовалось редко и только изолированными пользователями зацикленными на ОРИОНСОФТ. Это нелогичное и неприятное расширение было введено лишь несколько лет спустя после того, как широко распространилось расширение ORD, с целью навредить конкурентам, но наказало пользователей. Это расширение принудительно насаждалось, вместо того чтобы оставить выбор расширения пользователю.
Программы написанные независимо поддерживают и ORD и BRU. Во вложении ATLAS$, что использует расширение ORD и удобнее при М3 (в М3 символ не с краю, а по центру знакоместа), но адрес КНГМД тот же, что и в оригинале.
Если нужно только использовать ORDOS программы на реале, то удобнее использовать MSCOMAN$ С.Коровкина. Но если есть Z80, а совместимость с MSDOS не волнует, то удобнее использовать CP/M для банки 0 прошитую файлом в ROM-диск и на CP/M-дискете LORD для банки 0. Увы, для КР580 дискетных DOS для банки 0 практически нет, т.к CP/M-48K от ОРИОНСОФТ для работы практически непригодна в силу того, что в ней нет верной эмуляции клавиатурных функций CP/M.
- - - Добавлено - - -
DOS для банки 0
ОРИОН изначально рассчитан на работу программ в банке 0. Это обусловлено прошивкой ПЗУ, отсутствием диспетчера ОЗУ и тем, что исторически так сложилось. Потому почти все программы работают в банке 0.
К сожалению, архитектуре ОРИОНА присуща цветовая проблема, которая заключается в том, что экранные плоскости мешают работе программ как в банке 0, так и в банке 1. Эта проблема легко решалась при разработке компьютера путём размещения обоих экранных плоскостей в банке 1 (затраты в 2 TTL-корпуса). Почти сразу же была предпринята попытка решить цветовую проблему с помощью Z80CARD-I, но эта доработка была нереверсивной, плохо продумана конструктивно и информация об этом была недоступна для 99% пользователей, отчего эта доработка не получила распространения.
Первые версии CP/M для ОРИОНА были для банки 0. Вскоре выяснилось, что это неудобно по ряду причин. Во-первых, CP/M имеет большой объём и при работе в банке 0 оставляет для TPA всего 36 кб, что означает невозможность загружать программы большего размера (до 48 кб). Многие фирменные программы CP/M требуют большего TPA, отчего не работают в банке 0. Но главное неудобство заключается в том, что ОРИОН - графический компьютер и программа работающая с графикой должна располагаться в той же самой банке, где находится графический экран. Для работы с экраном из CP/M нужен драйвер имеющий обычно размер от 4 до 12 кб, что приводит к ещё более фатальному снижению уровня TPA. Оказалось, что вышеперечисленные проблемы, - запуск программ размером в 48 кб, работа фирменного CP/M ПО и использование загружаемого экранного драйвера, решаются путём переноса CP/M в банку 1. Но увы, цветовая проблема ОРИОНА этим не решается.
Но всё-равно и в дальнейшем все программы делались для работы в банке 0, т.к именно здесь расположен экран, также немаловажной причиной этого стала ORDOS, которая занимала банку 1. Учитывая, что для цветных программ банка 1 не даёт никаких преимуществ, и распространённость ORDOS, вероятно разумным было бы иметь две версии CP/M - пользовательская в банке 0 и инструментальная для банки 1, которая использовалась бы только программистами.
С середины 90-тых разработка программ средствами CP/M перестала быть актуальной, отчего в некоторой степени исчез смысл использовать CP/M в банке 1. Вспомним также, что из-за архитектуры ОРИОНА качественным CP/M-программам всё-равно приходилось работать в банке 0, используя CP/M в банке 1 лишь для чтения/записи файлов средствами CP/M, потому что код работающий с экраном должен располагаться в той же банке, где и экран. Естественно и для ORDOS-программ также более удобна DOS в банке 0. Важнее, что DOS в банке 0 упрощает программирование.
Потому с конца 90-тых (не ради ORDOS, а чтобы упростить себе программирование), я пользовался DOS для банки 0 (эти DOS в кодах Z80). Грамотная DOS для банки 0 должна использовать также ОЗУ банки 1. При этом в банке 0 остаются только вход в BDOS и подпрограммы CP/M-BIOS, что позволяет поднять уровень TPA, а весь исполнительный код DOS перенесён в банку 1. Цветовая проблема по-прежнему остаётся, хотя теперь это не столь важно (т.к не требуется использовать фирменные программы CP/M, а для авторского ПО можно выкрутиться).
Кардинальным решением цветовой проблемы является "перекорёживатель архитектуры". Расход деталей всего в несколько TTL-микросхем. Экран графики C000...EFFF из логической банки 0 переносится в логическую банку 1 на адрес 8000. Физически, естественно, экранные данные остаются в тех же адресах и в той же банке 0, но логически, т.е для процессора эти данные читаются/пишутся в банке 1.
Схема перекорёживателя состоит из формирователя выборки окон (B0:C000...EFFF и B1:8000...AFFF) и двух управляемых инверторов на базе ЛП5. Вентиль из ЛП5 при подаче лог.единицы на второй её вход инвертирует сигнал на её первом входе. Таким способом при адресации процессора в эти окна инвертируется адрес A14 и номер банки B0. Тем самым процессору в окно C000...EFFF "подсовывается" содержимое ОЗУ физической банки 1 из адресов 8000...AFFF.
При этом экран исчезает из банки 0 и банка 0 становится целиком доступной для программ. Это позволяет в DOS иметь цвет и высокий уровень TPA, причём не мешает грузить и запускать все программы ОРИОНА. Чтобы использовать ЯВУ в DOS для банки 0, я планировал в итоге сделать такую доработку, но до этого руки так и не дошли.
[свернуть]
Последний раз редактировалось barsik; 13.02.2018 в 06:17.
По JINN продолжим тут:
http://zx-pk.ru/threads/9671-orion-1...ie/page17.html
Лучше сделать и жалеть, чем не сделать и жалеть.
Некоторые из моих поделок тут: https://github.com/serge-404
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)