1-да
2-да
- - - Добавлено - - -
Про зацепку- не знаю, не думал. С мобилы пишу, схему сейчас смотрю в инете
1-да
2-да
- - - Добавлено - - -
Про зацепку- не знаю, не думал. С мобилы пишу, схему сейчас смотрю в инете
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Прочитав описание подключения МС-7007 от автора Ориона, у меня сложилась весьма радужная картина автоопределения всех видов Орионовских клавиатур:
Переводим порт "С" полностью в режим чтения, читаем содержимое и..
1) Если РС2=РС1=РС0="1", значит у нас клавиатура МС-7007;
2) Если РС3="1" (заброс питания в порт через светодиод "РУС/ЛАТ"), значит у нас стандартная честная аппаратная клавиатура РК-86;
3) В противном случае у нас эмуляция клавиатуры РК86 на МК (Caro) с соответствующей иноземной раскладкой русских букв.
Вариант подключения МС-7007, как в РК86 перечёркивает всё нафик (( ибо "видна" такая клава точно также, как нативная РК86-матрица.
Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел
Просто надо между собой договориться и сделать подпрограммы Монитора такими, чтобы не делать каждому свой драйвер ввода (все же не 90-е когда без Инета каждый был сам по себе и соответственно городил отсебятину, в следствие чего сейчас имеем кучу вариантов подключения). Все равно осталось ровно столько людей кому это надо, и все они в этой конференции есть (а кто спрятался - сам виноват). Исходить было бы правильно из того, какой уже имеется софт. Игры никто не перепишет, а для системных программ (которые и поныне пишутся, и многие в исходниках) в дополнение к пп Монитора надо всего то ничего - битово (например во флагах) возвращать нажатие кнопок CTRL и Shift (для сочетаний клавиш) и держать в каких-то переменных Монитора статусы РУС/LAT и CAPS/NOCAPS для полного 256-символьного набора (CAPS/NOCAPS Монитором не включается, но знать про него он должен - чтобы не портить). В переменных потому что разные драйверы переключали РУС/LAT и CAPS/NOCAPS по-разному (т.к. в 256-символьных наборах регистров два, а кнопка РУС-ЛАТ одна, как и светодиод один, и читать его поэтому малополезно). Драйверы доработать можно чтобы они эти переменные выставляли (они маленькие или с исходниками), это не сотню игр переписать. В качестве отправной точки можно посмотреть как оно на Орионе-ПРО - там CTRL и Shift возвращались (честно, не помню, осталось только воспоминание что часто там было неудобно и избыточно). Такое мое ИМХО. Обсудим?
Лучше сделать и жалеть, чем не сделать и жалеть.
Некоторые из моих поделок тут: https://github.com/serge-404
Error404, на этот раз я решил "зайти с другой стороны", и написать "БИОС" самостоятельно, большой, взрослый, с поддержкой всего возможного железа, на все случаи жизни, раз и навсегда. Идейно он будет загружаться из ром-диска, жить в доп. странице ОЗУ, и никак не использовать ресурсы ПЗУ Монитора (кроме загрузки "ботинка" из ром-диска).
Будет единая точка входа, номер требуемой п/п выставляется в [A]. По поводу каждого ВУ будет набор необходимых п/п, в т.ч. автодетект (где это возможно) или выбор HW-реализации данного ВУ (где автоопределение невозможно, выбор будет сохранён в CMOS RTC). На данный момент большая часть уже сделана, список п/п можно посмотреть тут.
Соответственно, касательно клавиатур хочется поддержать все варианты, мыслимые и немыслимые.
Драйвер клавиатуры будет поддерживать: РУС/ЛАТ, верхний/нижний регистры, Caps ON/OFF, управление одним(РК86)/тремя(прямое подключение PS/2) светодиодами, статус управляющих клавиш (УС/Ctrl, НР/Shift, АЛФ, Alt), быстрый опрос состояния матрицы, ввод символа (с учётом Caps/Shift, переключение языка, мигающий курсор, возможность подмены драйвера). Обработку УС/Ctrl будет делать внешнее ПО, т.о. не будет бессмысленного и беспощадного задвоения Ctrl+M=Enter, Ctrl+C=F4 и т.п.. Соответствующие опции буду либо доступны, либо нет - в зависимости от определённой железки.
Последний раз редактировалось Denn; 25.06.2019 в 16:54.
Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел
В Орионе-ПРО пытались сделать похожее. Большая задача, бог в помощь как грится, но она не отменяет маленькую с опросом CTRL+SHIFT для тех у кого например нет РОМ-диска, ОС грузится из ПЗУ F800, а некую прослойку для абстрагирования ОС от аппаратуры нужно. Как бы там ни было, пока заниматься этим нет ресурсов, пока пользуюсь Монитором и драйверами в том виде, как оно есть.
Лучше сделать и жалеть, чем не сделать и жалеть.
Некоторые из моих поделок тут: https://github.com/serge-404
"Предлагаю занести в протокол".
У меня есть некоторые Мониторы в исходниках (в-основном, Мониторы-3), если буду допиливать встроенные в них загрузчики ОС, то добавлю возврат таких флагов в подпрограммы, которые возвращают код символа в регистре А (т.е. теперь будет возвращаться AF). И еще придумать бы как при обращении можно опознать Монитор - он уже с новыми подпрограммами или еще со старыми. Завести сигнатуру в теле Монитора и смотреть её? (В М3 такая была сразу после начальных jp векторов). Или придумать что-то с возвращаемым результатом существующих подпрограмм, что-то что можно добавить как в М2, так и в М3? Что-то что старые Мониторы не выдавали, а новый будет?
Лучше сделать и жалеть, чем не сделать и жалеть.
Некоторые из моих поделок тут: https://github.com/serge-404
Я тоже думал по этому поводу, в результате решил оставить в покое код в ПЗУ и подгружать свой, более гибкий и полнофункциональный BIOS из ROM-диска.
В 2 Кб всё равно мало места, и ничего более-менее серьёзного там не разместить. Поддержку всех ВУ туда не впихнуть, соответственно это уже не BIOS, а нечто непонятное (в советские времена назвали замысловатым словом "Монитор").
Наверняка есть ПО, которое довольно жёстко привязано к внутрянке какого-нибудь Монитора. Так что пусть оно будет нетронутым, на всякий случай.
Авторы заложили очень хороший механизм загрузки с ROM-диска, фактически это 64 Кб (доступны стандартно на любой реализации Ориона), надо пользоваться
- - - Добавлено - - -
Мне видится наиболее удачным и логичным следующий концепт.
Родной Монитор находит в ROM-диске, подгружает и запускает загрузчик, который в свою очередь в доп. страницу ОЗУ загружает БСВВ (aka BIOS), определяет всё железо и соотв. образом настраивает (инициализирует) системные переменные БСВВ (а местами и его код).
Следующим "слоем", в зависимости от вида платформы (полноценный комп или МПС) подгружается и инсталлируется модуль расширения БСВВ - это некая надстройка, которая содержит набор подпрограмм форматированного ввода-вывода (ввод/редактирование строки, вывод значений в десятичной с/с, оконный интерфейс и т.п.), также возможна установка подпрограмм юзера.
Далее, опять же в зависимости от конкретной платформы, инсталлируются ОС и её оболочка.
Доступ к подпрограммам всех модулей осуществляется через единую точку входа (в непереключаемом ОЗУ). Каждый модуль имеет некий свой пул адресов, например:
00..4Fh - п/п БСВВ
50..7Fh - п/п модуля расширения БСВВ (+пользовательские)
80..CFh - п/п ОС
D0..FFh - п/п расширения функционала ОС
В функционал БСВВ заложена возможность подмены любой подпрограммы, что даёт возможность гибко настраивать систему фактически под любые хотелки программиста.
В частности, подмена подпрограмм ввода/вывода символа позволяет установить свои драйвера, а остальной функционал автоматом подхватит ввод-вывод через другое ПО или даже устройство. Также заложена возможность не только подмены подпрограмм, но и т.н. перехвата, например когда требуется складывать в файл все нажатия на клавиатуре или дублировать куда-нибудь инфу выводимую на экран.
- - - Добавлено - - -
В концепт также заложена поддержка мультистраничности. Имеется в виду следующее. В БСВВ есть п/п, которая позволяет передавать управление коду в произвольной странице ОЗУ, при этом автоматически производится перенастройка текущей рабочей страницы и дальнейшие манипуляции с данными БСВВ будет выполнять уже с данной страницей. Т.е. фактически исполняемый файл по желанию ОС может быть загружен в любую страницу ОЗУ и запущен там на исполнение, при этом ПО может и не знать в какой оно работает странице, стандартно делать вызовы п/п (БСВВ, ОС и т.п.) через непереключайку и будет работать корректно.
Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел
Не читал, но осуждаю.
Я создал. Пацаны го в контру
- - - Добавлено - - -
Ну, ОК. Начнем с 90г. Пункт первый. Это долбанное видео требует фикса. ОНО уничтожало мое зрение.
- - - Добавлено - - -
Это как бы новый пост. Долбанный движок фак, чит.
- - - Добавлено - - -
Пост 3
Пилить разробы – дебилы. Ото такое укатать, и дебилы от журнала Радио, кто такое пропустил. Ну, в целом это субъективное мнение. Можете рассказать эту историю очкарикам в 40 лет.
Кстати на этом глюкавом форуме работает кнопка (железобиттона) - все разделы прочитаны.
- - - Добавлено - - -
Пост 4.
Долбанный движок. Меня тут нет. Ну, я как бы, присутствую.
Последний раз редактировалось OrionExt; 26.06.2019 в 15:20.
Электроника КР-02, MSX YIS-503IIR, Орион-128, Ленинград-2, Pentagon-128k, MSX2 YIS-503IIIR, MSX-EXT, ...
Что за поток сознания?
Радио-86РК-SRAM, Орион-128 512, ОРИОН-ПРО 3.2, ZXM-Phoenix 05.2 (+VGA), ПОИСК-2, Xi 8088, Micro 8088
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)