Нет, спасибо. Пока не нужно ни первое, ни второе.
Мини-страничку по Ориону с фото и видео, документацией и схемами наверное стоит сделать у себя на сайте.
Вид для печати
Надолго не уходи, заглядывай. :)
Я планирую на этой неделе запустить CPM (если опять на работе не припашут).
Весь код CPM с планировавшимися правками уже написан (переписано порядка 50% BIOS-a, MBR), сейчас самое мутное - отладка.
Также переписан и отлажен драйвер низкоуровневого доступа к носителю - idebdos - в универсальной версии (один и тот же драйвер работает как для IDE, так и для SD-карт). Так что на SD уже автоматически работают fdisk (разметка партиций) и fat (копировщик из/в FAT12/16/32), т.к. они весь нижний уровень доступа к IDE/SD не содержат - он вынесен в idebdos.
Обязательно надо сделать, если еще не сделано.
И пропиарить - в emuverse.ru, wiki страничке Ориона, у меня на странице, да и вообще повсеместно. Чтобы народ знал. Так соберем "группу тестирования".
---------- Post added at 12:18 ---------- Previous post was at 12:15 ----------
Сделано! :v2_smoke:
http://zx.pk.ru/showpost.php?p=269861&postcount=35
Error404, ты не помнишь навскидку, во время работы теста памяти при старте СР/М, можно "сократить" время нажатием кнопочки Интер. Так вот, там просто читается F401 или как-то мудрёнее сделано? Очень похоже на "автоопределение типа клавиатуры" как в играх.
Суть в том, что "ускорить" тест получется только кнопкой "Esc", на Интер и Пробел реакции нет. Я знаю, что это проблема в железе, ибо она то появляется, то исчезает. Чую, что опять что-то не то читается из F400. Также перестал работать стартовый экран Эксолона, там просят нажать Интер, но реакция есть также только на Esc.
При загрузке CPM "проматывание" теста памяти делается любой кнопкой. Там опрашивается п\п Монитора статус. Код этой п\п примерно такой:
KBD_ST: XOR A
LD (YF400),A
LD A,(YF401)
INC A
RET Z
OR 0FFH
RET
Соответственно, ПЛИС должна успеть ответить за 12 тактов CPU.
Если она не успевает, эффект будет ровно такой, как описываешь.
Кстати, ДОС-SD в эмуляторе работает в модели Орион-ПРО (из режима 128), но Элита не работает - зависает. Конечно, надо еще и на реале проверять (может быть эмуль не точно эмулирует).
Спасибо за фрагмент кода. Разобрался.
В общем, такой подход, как применен в этом фрагменте для ПЦ клавиатуры не прокатит. Опрос одновременно более чем 1 ряда клавиатуры загоняет контроллер в "непонятки". Для разруливания этого применяется принцип, при котором при запросе более 1 ряда контроллер обрабатывает его как запрос одного заранее определенного "аварийного" ряда. У меня после последних ковыряний с клавиатурой стояло по дефолту нулевой ряд матрицы (Esc, F1-F4,Delete...). Для столь любимой кнопки Enter переделаю ряд "по умолчанию" на седьмой.
---------- Post added at 10:07 ---------- Previous post was at 09:53 ----------
Успевает. ПЛИС не МК, ей не нужно время для обработки запроса. Достаточно пары тактов клока.
В таком режиме КМК часть игр не будет работать, особенно старых Орионовских - опрос статуса всегда делается опросом всех линий одновременно. Это уже проходили с контроллером Камиля - у него отрабатывается эмуляция одновременно нажатых кнопок, заточка шла как раз на то, чтобы контроллер "успевал". Кстати, я проверял прошивки на отработку этой особенности на игре CrazyCars (crcars#.com - там есть похожий фрагмент кода опроса клавиатуры) и п/п Монитора статус как раз при старте ОС. :)
Позволю влезть с комментарием. Когда делал специалист на FPGA, тоже встала проблема с PS/2 клавой. Причем в спеце клавиатуру можно сканировать как по строкам, так и по столбцам. Решил вот так: http://dmtr.nnov.ru/Specialist.v Работает сканирование и по строкам и по столбцам, а также позволяет групповые нажатия и сканирование сразу нескольких строк/столбцов. Правда на Verilog, но если интересно, могу покамментить.
Не понял, почему не будет. Я перенес "дефолтную" строчку на седьмую. Теперь при сканировании "всех" кнопок откликается Enter и кнопочки в одном с ним ряду.
Крэзи Кар работает нормально.
Это разумеется интересно :)
Хорошие решения грех не использовать.
Будем все очень благодарны.