Не будем забывать, что ОС СР/М обслуживает себя через биос, который пишется для каждой отдельно взятой машинки в соответствии с применённым железом. Однозначно, все вопросы по периферии необходимо решать в свете подключения оной как устройств ввода/вывода. Мапировать периферию на общее поле памяти полный отстой (почему не стоит брать "Специалист" за базовую схему, к примеру). Далее, периферия не должна занимать ресурсов основного процессора и, соответственно, не отсвечивать в биосе. Иначе говоря, она должна "эмулировать терминал" - машинка выкинула байт в порт, далее этим байтом самостоятельно занимается периферия, и наоборот. Иначе мы получаем тормозную машинку, которая только и делает, что обслуживает периферию, а на собственно работу времени остаётся с гулькин нос. Поэтому считаю, что периферия вторична и заслуживает отдельного обсуждения по каждой железке. А как она будет подключена - по параллельной шине или последовательной - не важно. Главное - "стандартное", с точки зрения ОС, подключение к базовой системе. Расписали порты, что к чему подключать, и придерживаемся этого.
Что интересно лично мне, и в чём я до сих пор не разобрался - страничная адресация памяти. В идеале базовый вариант машинки должен содержать 64К ОЗУ с отключаемым загрузочным ПЗУ, вся память отдаётся ОС. Экран, как упомянуто ранее, должен сидеть в области адресации УВВ и иметь собственную память, не пересекающуюся с основным ОЗУ (как бы нам не хотелось сократить кол-во чипов). Далее, если юзверь вырос технически и организационно, он может добавить себе основного ОЗУ со своим управляющим блоком. Программно это уже должно быть стандартизировано в средствах ОС (вот только где, и какие базовые адреса под это зарезервированы в стандартной СР/М? Просветите плз). Причём надо предусмотреть различные варианты такого расширения - кто-то тащится от кучи РУ3/5/7, которых, как раз и просто "страничить", а у кого-то ( у меня, к примеру) есть куча статических ОЗУ по 32/64К каждая (из кэшей 486-х машин). Значит схема управления страницами должна быть разная, но одинаково выглядящая для софта.
Продолжаем разговор. В ТЗ до сих пор не определено, какой должна быть машинка, её базовый вариант и возможности расширения. По какой шине это должно быть соединено. ТЗ разрабатывается для одноплатной системы или многоплатной... Если для многоплатной, то всё уже сделано до нас - шина S-100 и полностью развязанные руки, максимальная совместимость, дело только за низкоуровневым софтом. Если одноплатный вариант, то обсуждать что-то канонiчное невозможно, каждый исходит из наличия комплектухи (см. разговор про м/с ОЗУ выше или Ваше, Xrust, сообщение). Для одноплатного варианта более чем подходит разработка Гранта Сирла, следует только заменить двойной SIO на удобоваримый ВВ51, хотя бы на один. Второй порт сделать параллельным как раз на дисплей/клаву, но программно он должен работать как терминал (выше описано). Кого припрёт - поставит шинные буферы. У кого есть время и возможности - сделает динамическое ОЗУ (подключаемое как статическое или отдельной платой в шину).
...а вы говорите - не на что обратить внимание...




Ответить с цитированием