CLi² (Command Line Interface 2)

Сабжи короче

Postby LessNick » Wed, 10.09.2014 00:37:45

Доброго вечера господа спектрумисты, сектанты и им сочувствующие!!

Image


Позвольте в этот Сырный день (день рождения Cirno 9.9), да и ещё и в полнолуние, представить свой долгий опус под названием «Command Line Interface 2» или сокращённо CLi². Почему вдруг я решил создать отдельную тему? Потому, что новая версия 2 (или по билду это 0.16) в корне отличается от предыдущих релизов. Дело в том, что по ясным причинам меня не устраивал тот «бардак» что творился внутри предыдущих версий и я затеял страшную вещь под названием «рефакторинг». Для тех кто не в курсе, что это такое, поясню. Рефакторинг, это когда вы переписываете, оптимизируете и выкидываете половину (если не больше) своего проекта в помойку и пишете код практически с нуля. Отсюда вытекает, что такой подвиг под силу не каждому, поскольку в первую очередь теряется интерес и абсолютно не хочется писать одно и тоже по второму кругу. Плюс, как показывает практика попутно появляются новые проблемы, баги и вопросы, которые тоже надо решать и всё это ведёт к тому, что в конце концов всё замерзает. Не обошла стороной и меня эта участь. Затеяв рефакторинг в прошлом (2013) году и столкнувшись с трудностями, всё это дело погрязло в пучине отчаянья и нечего неделания. Но! Не так давно, не безызвестный Koshi усиленно принялся выпускать новые версии Wild Commander и это стало хорошим толчком к тому, что бы закончить начатое.

Но хватит лирики. Что же появилось такого нового, чего не было раньше?

keyscan.png
keyscan.png (6.22 KiB) Viewed 33059 times

Одна из вещей которой мне не хватало в API WC, это скан-коды клавиатуры. Именно эта вещь стала краеугольным камнем, из-за чего всё «замерзло» и из-за чего всё стало по другому. Не буду утомлять вас деталями, но написав свой драйвер PS/2 клавиатуры, я столкнулся с трудностями. Решив их уже в этом году, я и не подозревал, что это только верхушка айсберга. Помимо скан-кодов, мне не нравилось, что по не понятным мне причинам при работе прерываний WC портилась банка #00. То есть если включил с #0000 какую-то свою банку и LDIR'ами пытался туда копировать данные, то в один прекрасный момент я мог словить «сюрприз». Половина данных была моих, а половина данных была затёрта WC. Баг это или фича я не знаю, и тогда мне абсолютно не хотелось в этом разбираться. Я переключил прерывания на себя, проблема исчезла, но вместе с ней появилась другая. Вместе с прерываниями перестал работать опрос клавиатуры, что послужило поводом продолжить работу над своим драйвером. Драйвер был готов и тут меня ждал второй «сюрприз».

Как выяснилось позже в WildCommander нельзя ни при каких условиях трогать вектор прерывания. API WC так устроено, что очень много функций завязаны в нём на «выравнивание» по инту, и при вызове просто подготавливают переданные данные, а когда приходит прерывание операция выполняется. Как не трудно догадаться в ходе своих экспериментов я остался, если не без 90, то уж без 80% функционала WC точно.

С ростом функционала CLi² я дошел до потолка и мне стало не хватать уже одной банки. И это послужило, как это не прискорбно, толчком в сторону некоторой «самостоятельности» и виде выделения в отдельный проект. На данный момент плагин для WildCommander представляет собой загрузчик (Loader), который ищет на SD-карте файл /system/kernel.sys, загружает его и передаёт уже управление ему. CLi² до сих пор использует вызовы API FAT-драйвера для чтения/записи файлов и немного его расширяет своими командами. Так же задействована принятая нумерация и функционал переключения банок с помощью API WC. Система не портит WildCommander и с помощью комбинации ATL+X или команды exit можно выйти обратно.

О технической стороне я расскажу отдельно. Здесь же мне хотелось бы немного рассказать о «нововведениях»:

rus.png
rus.png (3.56 KiB) Viewed 33059 times

  • Управление осталось практически таким же. То есть помимо ввода и подтверждения строки с помощью ENTER, появилось переключение на раскладку с русским языком. Переключается с помощью CTRL+SHIFT (пока «прибито гвоздями» в будущем думаю это будет настраиваемо).
  • Так же помимо режима замены (курсор «_») появился долгожданный режим вставки (курсор «|»). Однако с ним есть глюк с обновлением строки. Надо ещё разбираться, поэтому почти не юзабельно. Переключаются режимы клавишей Insert.
  • Так же появились fKeys. На клавишах F1…F11 висят команды и при нажатии клавиши они вставляются в командную строку. Для каждой клавиши отведено 16 байт и последствии их можно будет настраивать. Сейчас же команды такие:
    • F1 - "help\n"
    • F2 - "ls\n"
    • F3 - "type "
    • F4 - "edit "
    • F5 - "cd "
    • F6 - "rename "
    • F7 - "mkdir "
    • F8 - "delete "
    • F9 - "find "
    • F10 - "sh "
    • F11 - "pwd\n"
  • Немного изменилось и сочетание клавиш: теперь с помощью сочетания ALT+F1…F4 можно переключать 4 экрана. На 0м находится консоль, на 1,2,3 графическая область.
  • Как я уже говорил выше, из-за нехватки памяти пришлось многие «встроенные» команды выкинуть и сделать их внешними. Поэтому изменилась структура каталогов. Теперь для работы системы требуется всего две директории: «/bin» где расположены «внешние» команды и директория «/system», где находятся все файлы проекта.
  • После запуска /system/kernel.sys подружаются ещё два файла, это файл драйверов /system/drivers.sys (на данный момент там находятся драйвер мыши и драйвер для работы с NeoGS) и файл /system/gli.sys (графическая библиотека которая находится пока в зачаточном состоянии). После чего подгружается файл /system/startup.sh и передаётся управление уже ему. В нём можно прописать необходимые настройки, загрузку палитры, своего шрифта, или просто вывести логотип.
  • Шрифт тоже немного претерпел изменения. За основу был взят шрифт r0bat'а (который используется в WC) и немного видоизменены некоторые символы. В частности там появились «ёлочки», изменилась немного длина символов «_» и «—», расположение точек ковычек итд. Всё это было сделано для большей совместимости с амижными шрифтами для корректного отображения ASCII заставок.

    help.png
    help.png (6.27 KiB) Viewed 33059 times
  • Но вернёмся к функционалу. К базовым («встроенным») командам относятся следующие:
    • cd - change directory — смена текущего каталога
    • cls - clear screen - очиска экрана (с ключом -g n) очищается графический экран. где n номер экрана 1,2,3
    • dir, так же как и ls - выводят содержимое текущего каталога
    • exit - выйти в WildCommander
    • help - выводит список доступных команд
    • pwd - выводит полный путь текущей директории
    • rehash - пересканирует директорию /bin на наличие новых команд.
    • screen - переключает активный экран (удобно пользоваться в скриптах)
    • sh - запускает файл скрипта с расширением sh. На данный момент скрипт sh переставляет собой просто набор команд одной строкой, как если бы их просто набирали в консоли. В будущем конечно будет развиваться дальше для реализации уже более сложных конструкций, но пока тоже можно немного автоматизировать некоторые вещи.

    К «внешним» командам, которые располагаются в «/bin» относятся:
    • echo - выводит строку текста в консоль. Используется в основном в скриптах для вывода различной текстовой информации. Поддерживает управляющие коды через \xNN, где NN шестнадцатеричный код команды.

      red.png
      red.png (3.86 KiB) Viewed 33059 times
    • keyscan - данная утилита показывает скан код нажатой клавиши
    • loadfont - как ясно из названия, данная утилита позволяет загрузить шрифт.

      loadmod.png
      loadmod.png (7.86 KiB) Viewed 33059 times
    • loadmod - эта программа позволяет загружать mod-файлы в NeoGS и управлять воспроизведением.
    • loadpal- данная утилита загружает палитру для CLi, а если задан ключ -g позволяет загрузить палитру для одного из графических экранов.
    • loadsxg- программа загружает графическое изображение в формате SXG (Spectrum eXtended Graphics). Более подробно об этом формате будет рассказано отдельно несколько позже.

      micetest.png
      micetest.png (5.81 KiB) Viewed 33059 times
    • micetest - инструмент для тестирования kempston mouse. Отображает текущие координаты мыши, как вы сыром виде (RAW) так и положение относительно экрана. Программа рисует курсор поверх текстового режима и работает через API CLI с драйвером мыши.
    • mkdir - создаёт каталог в текущей директории. Это экспериментальная программа для тестирования функций записи.

      nvram.png
      nvram.png (9.68 KiB) Viewed 33059 times
    • nvram - уже более «серьёзная» законченная утилита. Позволяет работать с ячейками памяти CMOS (nvram): читать, писать, отображать дамп.
    • sleep - небольшая утилита, которая ожидает заданное количество секунд или нажатия любой клавиши, если задать 0.
    • type - выводит текстовый файл игнорируя все управляющие коды, кроме перевода строки. Если файл большой и задан ключ -s, то на экран будет выводится 1 страница, после чего будет задан классический вопрос «Scroll?»

      scroll.png
      scroll.png (3.89 KiB) Viewed 33059 times

На этом мне бы хотелось закончить «вводную» часть. Здесь не описаны приложения для тестов и недоделанные, однако вы можете их найти в архиве. Так же в архиве есть примеры скриптов, музыка mod и картинка в формате SXG.

Во второй части мы поговорим о внутренней структуре. Примерах итд. Ну а пока все желающие могут потестировать систему CLI². Для этого надо на карточку скопировать две директории «bin» и «system» и про писать в wc.ini:

Code: Select all
[PLUGINS]
CLI2    .WMF


и если всё удачно, вы увидите строку с приглашением:

welcome.png
welcome.png (8.59 KiB) Viewed 33059 times


p.s. Для работы необходим WildCommander версии не ниже 0.62!
Attachments
cli2alpha.zip
(1.67 MiB) Downloaded 841 times
Last edited by LessNick on Fri, 12.09.2014 07:53:52, edited 1 time in total.
(∩。•o•。)っ.゚☆。・ TS-Conf для PentEvo — это классический Pentagon 128k для тех кто хочет больше!
User avatar
LessNick
грей сашу — сашу грей
 
Posts: 975
Joined: Thu, 26.07.2012 15:00:53
WEBSITE: http://fishbone.untergrund.net/

Postby Den1982 » Wed, 10.09.2014 06:41:10

Вау! Круть! :pank: Жаль, что ща на работе. Приду домой обязательно потестю. Отдельный мегареспект за подробное и развернутое ридми! :ok2:
Den1982
 
Posts: 104
Joined: Sat, 23.11.2013 20:57:07

Postby creator » Wed, 02.09.2015 13:01:12

breeze, новая версия будет? Под LongNames?
А, влип, очкарик!
User avatar
creator
 
Posts: 248
Joined: Wed, 11.02.2015 11:22:49
ICQ: 471186520
WEBSITE: http://amiga.nsk.ru/
LOCATION: nsk

Postby LessNick » Wed, 02.09.2015 17:28:48

creator wrote:новая версия будет? Под LongNames?


к сожалению не всё так простынь. много изменилось в api wc. хоть с ходу и удалось поправить многое, но появились фантомные глюки :( а это печальнее всего. последние несколько месяцев был аврал и за компом вообще не было времени сидеть. ничего не буду обещать, но по возможности буду дебажить чё за херня творится :(
(∩。•o•。)っ.゚☆。・ TS-Conf для PentEvo — это классический Pentagon 128k для тех кто хочет больше!
User avatar
LessNick
грей сашу — сашу грей
 
Posts: 975
Joined: Thu, 26.07.2012 15:00:53
WEBSITE: http://fishbone.untergrund.net/

Postby LessNick » Wed, 02.09.2015 17:39:15

Вот например:

Image


Загружается MOD, даже с русскими именами, но[!] играет совершенно не верно :bang: и в чём дело хрен его знает.
(∩。•o•。)っ.゚☆。・ TS-Conf для PentEvo — это классический Pentagon 128k для тех кто хочет больше!
User avatar
LessNick
грей сашу — сашу грей
 
Posts: 975
Joined: Thu, 26.07.2012 15:00:53
WEBSITE: http://fishbone.untergrund.net/

Postby LessNick » Thu, 18.02.2016 02:38:58

Вот так вот тихо и мирно спустя совсем не три года…

sshot000001.png

Под современную версию WildCommader…

sshot000000.png


Под чутким руководством моральной поддержкой VBI :agree: удалось выпустить версию 0.18a. Это не совсем то, что планировалось, но начинать с чего-то надо. Тут исправлены некоторые разногласия с новым API WC. Отображения длинных имён нет, поскольку вся работа с каталогами совершенно своя (CLI) и надо ещё оооочень сильно думать как это всё дело (длинные имена) разрулить.

Пока приведено всё в более менее божеский вид. App должны все работать. В комплекте идёт Bramble, и некоторое количество музыки MOD и картинок SXG для тестов. Так же есть тествое App, на основе которого я попозже расскажу как писать под CLi2.

Изначально в версии 0.18 должна была появится поддержка резидентов, но она как понимаете не дописана и к сожалению внесла ещё больше проблем с поиском ошибок. Но теперь вроде всё должно быть ок.

Для тех, кто первый раз видит CLI2: необходимо распаковать содержимое папки install в корень SD карты. Переписать поверх WC/WC.ini или добавить ручками «CLI2.WMF» по аналогии с другими плагинами. После загрузки WC, нажать F10 и выбрать соответствующий пункт меню.

Список всех доступных команд/app можно набрав help или нажав F1.

Часть команд встроенная в ядро (внутренние):
cd — как и в больших компьютерах перейти в другую директорию
cls — очистить экран
dir — отобразить текущий каталог (можно задать путь и отобразить содержимое любого каталога)
exit — выход в WC
help — список доступных команд
ls — тоже самое что и dir
loadres — пока не работает
pwd — показать текущий путь (где мы находимся?)
rehash — принудительно перечитать содержимое /bin (внешние команды)
screen — переключится на экран 0-3 (используется в скриптах)
sh — запускает скрипт указанный в качестве параметра

Часть команд подгружаемая из /bin (внешние):
echo — выводит в консоль тестовую строку (поддерживаются цветовые коды)
hello — пример программы
keyscan — опрашивает ps/2 клавиатуру и выводит в консоль сканкоды
loadfont — загружает шрифт в консоль
loadmod — загружает MOD файл в GeneralSound
loadpal — загружает файл раскраски (палитры) консоли (или графический для экранов 1-3)
loadsxg — загружается картинку в формате SXG
micetest — небольшая утилита для тестирования мыши
nvram — небольшая утилита для работы с ячейками CMOS
screenfx — небольшая утилита для эффектов с экранами
sleep — ожидание в секундах. 0 ждать нажатия клавиши (используется в скриптах)
test — выводит текстовые строки разными цветами
type — выводит на экран текстовый файл

Доступные ключи можно узнать запустив команды без параметров. Файлы скриптов (*.sh) представляют из себя список команд как бы если вы их набирали в консоли. После выполнения очередной команды, SH переходит к следующей, и так пока не закончится весь файл. Для запуска скрипта (например artpack'a «Bramble») нужно набрать в консоли команду: 1>sh /demo/bramble/run.sh

Ну вот собственно пока и всё :vodka:
Attachments
cli2_0.18a.zip
(2.26 MiB) Downloaded 743 times
(∩。•o•。)っ.゚☆。・ TS-Conf для PentEvo — это классический Pentagon 128k для тех кто хочет больше!
User avatar
LessNick
грей сашу — сашу грей
 
Posts: 975
Joined: Thu, 26.07.2012 15:00:53
WEBSITE: http://fishbone.untergrund.net/

Postby amixgris » Thu, 25.02.2016 15:53:11

Повторный запуск CLI невозможен. WC вешается.
User avatar
amixgris
 
Posts: 161
Joined: Mon, 30.07.2012 03:22:48
LOCATION: Самара

Postby LessNick » Thu, 25.02.2016 16:43:56

amixgris wrote:Повторный запуск CLI невозможен. WC вешается.


Нежданчик :) Бум разбираться. Хотя по большому счёту, WC уже чисто как loader ;)

Да и честно говоря, F12 имхо уже быстрее :eating:
(∩。•o•。)っ.゚☆。・ TS-Conf для PentEvo — это классический Pentagon 128k для тех кто хочет больше!
User avatar
LessNick
грей сашу — сашу грей
 
Posts: 975
Joined: Thu, 26.07.2012 15:00:53
WEBSITE: http://fishbone.untergrund.net/

Postby Mor-Da » Sat, 27.08.2016 17:24:25

Огонь. Запустил на U16. Но... клава как бешенная дублирует символы (как это называется, дребезг?). Можно это как-то пофиксить?
User avatar
Mor-Da
 
Posts: 367
Joined: Fri, 12.02.2016 07:20:43
LOCATION: Воткинск (родина П.И.Чайковского)

Postby LessNick » Sat, 27.08.2016 20:46:04

Mor-Da wrote:Можно это как-то пофиксить?


Честно сказать сложно в чём там дело ибо на PentEvo (TS-Conf) всё как бы работало. Единственное, что могу предложить потестировать версию 0.20. Она доступна на github.

Не смотря на то, что 0.20 ещё не готова (по этой собственно причине я и не анонсирую её), но это уже совершенно самостоятельная система. Для запуска не требуется наличие WildCommander'а с плагином. Просто содержимое Install копируется в корень SD-карты вместе с boot.$c. Бут не простой, и если при запуске (F12) удерживать клавишу W вместо CLI² загружается WC/wc.$c и управление передаётся ему.

По мимо отделения от WC, в новой версии появилось много нововведений:

Появились как новые команды, так и новый тип — операторы, которые начинаются с точки:

Image

Пока это всё ещё в процессе написания, но в будущем, с их помощью можно значительно расширить возможности Shell-скриптов:

Image

Так же появилась нативная поддержка мышки. Можно включать/отключать отображение курсора на различных экранах (ALT+F1…F4):

Image

А так же зажав левую кнопку мыши выделить текст на экране, что бы затем затем с помощью средней уже вставить. Текст копируется в буфер (256б) и вставляется столько раз сколько нужно. Единственно что пока это работает только после сброса. Если текста становится много и он скроллируется вверх с выделением и копированием происходят глюки. Поэтому это пока больше для понту, чем реальная польза.

Так же теперь меняется внешний вид курсора при «занятости» системы. На скрине пример загрузки MOD-файла:

Image

Ну и конечно же долгожданная поддержка длинных имён файлов:

Image

Ну и теперь команды LS и DIR отображают содержимое директории несколько по разному. DIR как и аналог команды LL отображается список файлов с атрибутами, датой создания итд. Команда LS отображает просто 2 колонки имён файлов:

Image

Короче всего сейчас с ходу не упомню, но нововведений там не мало, хотя конечно не всё ещё и фунциклирен как задумывалось. :smoke:
(∩。•o•。)っ.゚☆。・ TS-Conf для PentEvo — это классический Pentagon 128k для тех кто хочет больше!
User avatar
LessNick
грей сашу — сашу грей
 
Posts: 975
Joined: Thu, 26.07.2012 15:00:53
WEBSITE: http://fishbone.untergrund.net/

Postby Mor-Da » Sat, 27.08.2016 20:57:58

О-о-о, блин, какой охренительный рулез. Завтра же испробую и отпишусь.
User avatar
Mor-Da
 
Posts: 367
Joined: Fri, 12.02.2016 07:20:43
LOCATION: Воткинск (родина П.И.Чайковского)

Postby MVV » Sat, 27.08.2016 22:35:45

Mor-Da wrote:Огонь. Запустил на U16. Но... клава как бешенная дублирует символы (как это называется, дребезг?). Можно это как-то пофиксить?

Остается попросить вынести драйвер клавиатуры, т.к. вместо устаревшего PS/2 уже USB HID клавиатура и мышь. Мышь получилось подружить, а вот с клавиатурой сложнее, там сканкоды и их последовательности отличаются, программно это решается в разы проще, чем еще прикручивать для этого лишнее аппаратное преобразование.
MVV
 
Posts: 479
Joined: Sun, 01.12.2013 22:48:17

Postby LessNick » Sun, 28.08.2016 00:22:14

MVV wrote:Остается попросить вынести драйвер клавиатуры,


драйвер клавиатуры и так в принципе как отдельный модуль.

MVV wrote:сканкоды и их последовательности отличаются


вот это честно скажу очень странно :( Дело в том, что на этом завязана структура keymap и поменять сходу всё это будет не просто.

Ну и самое главное, что это всё тестируется в емуле, а в нём нативной поддержки USB как бы нет и с какого боку за это всё браться даже и не знаю.

Единственное, что приходит в голову, если глюки с автоповтором, то по идее можно его отключить. Тогда клавиша будет обрабатываться только тогда, когда её физически отпустили. Ну опять же всё зависит от того как происходит «эмуляция» PS/2

Кстати, Mor-Da, можно в скрипте загрузки системы (system/startup.sh), раскомментировать 7ю строку (убрав ; ) там где запускается keyscan и понажимав кнопки посмотреть как валятся коды. Можно даже сделать фото экрана.
(∩。•o•。)っ.゚☆。・ TS-Conf для PentEvo — это классический Pentagon 128k для тех кто хочет больше!
User avatar
LessNick
грей сашу — сашу грей
 
Posts: 975
Joined: Thu, 26.07.2012 15:00:53
WEBSITE: http://fishbone.untergrund.net/

Postby Mor-Da » Sun, 28.08.2016 08:53:04

Очень кратковременно нажата клавиша "А"В левом верхнем углу такой артефакт при загрузке. По W-F12 WC не грузится.
User avatar
Mor-Da
 
Posts: 367
Joined: Fri, 12.02.2016 07:20:43
LOCATION: Воткинск (родина П.И.Чайковского)

Postby MVV » Sun, 28.08.2016 09:03:49

LessNick, вот табличка преобразования клавиш http://www.hiemalis.org/~keiji/PC/scanc ... nslate.pdf
На стр.60 описан report http://www.usb.org/developers/hidpage/HID1_11.pdf
У меня сделано просто, я передаю 6 байт репорта клавиатуры через порт #nnxx (порт можно любой не конфликтующий), программно уже просматривая их по очереди и по табличке определяя что за клавиша. Клавиша считается удерживаемой, если она присутствует в репорте.
Вот как выглядит аппаратное преобразование https://github.com/mvvproject/ReVerSE-U ... alizer.vhd
MVV
 
Posts: 479
Joined: Sun, 01.12.2013 22:48:17

Postby LessNick » Sun, 28.08.2016 15:32:54

Mor-Da wrote:артефакт при загрузке


Рискну предположить, что сей артефакт это не прогрузившийся (по какой-то причине) курсор мыши, попробуй ей пошевелить, по идее должен ползать.

Mor-Da wrote:По W-F12 WC не грузится.


Ну что бы он загрузился, собственно его надо туда скопировать. Тоесть то что раньше было boot.$c переименовать в wc.$c и положить в папку WC рядом с плагинами.

Image

По поводу кодов, это полная каша. Во первых код нажатой "A" должен определяться как #1C #00 #00 #00, и соответственно код отжатой "A" будет #F0 #1C #00 #00. А то что я вижу на экране это явно не то. Причём непонятно что за код #FF #00 #00 #00 ? Это явно не правильный ответ. Собственно драйвер и не понимает, что клавишу отпустили. Любой код отпущенной клавиши начинается с #F0 и далее код клавиши.
(∩。•o•。)っ.゚☆。・ TS-Conf для PentEvo — это классический Pentagon 128k для тех кто хочет больше!
User avatar
LessNick
грей сашу — сашу грей
 
Posts: 975
Joined: Thu, 26.07.2012 15:00:53
WEBSITE: http://fishbone.untergrund.net/

Postby LessNick » Sun, 28.08.2016 15:43:06

MVV wrote:вот табличка преобразования клавиш


Ну собственно всё и правильно:

Image

MVV wrote:я передаю 6 байт репорта клавиатуры


ну тут два варианта, либо ты отдаёшь несколько «не те» сканкоды, либо заковырка в самих байтах репорта.

И судя по коду #FF #00 #00 #00, я подозреваю что преобразование идёт по первой группе кодов, а #FF означает «Overrun Error»? :smoke:
(∩。•o•。)っ.゚☆。・ TS-Conf для PentEvo — это классический Pentagon 128k для тех кто хочет больше!
User avatar
LessNick
грей сашу — сашу грей
 
Posts: 975
Joined: Thu, 26.07.2012 15:00:53
WEBSITE: http://fishbone.untergrund.net/

Postby Mor-Da » Sun, 28.08.2016 17:56:18

WC лежит там. Скан-коды бегут без остановки. Ну и потом, у меня же не Evo, а U16. ;)
User avatar
Mor-Da
 
Posts: 367
Joined: Fri, 12.02.2016 07:20:43
LOCATION: Воткинск (родина П.И.Чайковского)

Postby LessNick » Sun, 28.08.2016 21:13:31

Mor-Da wrote:WC лежит там.


хм. тогда получается что-то с опросом не так. надо разбираться подробнее.

Code: Select all
      ld   bc,#fbfe
      in   a,(c)
      bit   1,a               ; Если удерживается «W» значит надо грузить Wild Commander
      jr   nz,sbCont


вот кусок, тут вообще опрос порта ZX-клавиатуры. Надеюсь с этим вопросов нет?

Mor-Da wrote:Скан-коды бегут без остановки.


Бегут потому что не правильно возвращаются скан коды, и система думает что клавиша залипла. Я уже писал выше, какие значения она ожидает.

Mor-Da wrote:Ну и потом, у меня же не Evo, а U16.


Это понятно, именно поэтому и обсуждали с MVV процесс преобразования USB->PS/2
(∩。•o•。)っ.゚☆。・ TS-Conf для PentEvo — это классический Pentagon 128k для тех кто хочет больше!
User avatar
LessNick
грей сашу — сашу грей
 
Posts: 975
Joined: Thu, 26.07.2012 15:00:53
WEBSITE: http://fishbone.untergrund.net/

Postby Mor-Da » Fri, 02.09.2016 08:55:21

Жаль, что так и не договорились, кто должен внести правки в код. Пичалька. :(
User avatar
Mor-Da
 
Posts: 367
Joined: Fri, 12.02.2016 07:20:43
LOCATION: Воткинск (родина П.И.Чайковского)

Postby LessNick » Fri, 02.09.2016 13:22:25

Mor-Da wrote:Жаль, что так и не договорились


Ну сложно договорится, с тем кто не поддерживает диалог. Я понятия зелёного не имею почему как работает код коши в wc. Но скажу только так как реализовано у него получить нативные 4 кода PS/2 было не реально, как и прикрутить сменную раскладку клавиатуры (на момент написания CLI). Именно по этой самой причине и был написан СВОЙ драйвер PS/2.

Скорее всего в кошином драйвере не было строгой проверки соответствия, и реализация в U16 это подгон под ответ — «а у меня всё работает © KOE»

Пока U16 не будет возвращать чётко 4 кода через ячейки CMOS говорить тут больше не о чём. На лицо явно проблема «эмуляции» железа PentEvo.
(∩。•o•。)っ.゚☆。・ TS-Conf для PentEvo — это классический Pentagon 128k для тех кто хочет больше!
User avatar
LessNick
грей сашу — сашу грей
 
Posts: 975
Joined: Thu, 26.07.2012 15:00:53
WEBSITE: http://fishbone.untergrund.net/

Postby MVV » Fri, 02.09.2016 19:49:23

В build 20160830 сделал возможность чтения HID Keyboard Report [modifier, Key1, Key2, Key3, Key4, Key5, Key6]
Port #0004 = modifier:
bit 0: left control
bit 1: left shift
bit 2: left alt
bit 3: left GUI (Win/Apple/Meta key)
bit 4: right control
bit 5: right shift
bit 6: right alt
bit 7: right GUI

Port #0104 = Key1
...
Port #0604 = Key6

Сразу получаем состояние восьми функциональных клавиш + 6 обычных, драйвер в разы меньше и проще, а не как в PS/2 - 4 кода только одной клавиши ))
MVV
 
Posts: 479
Joined: Sun, 01.12.2013 22:48:17

Postby VBI » Fri, 02.09.2016 22:39:53

Чем больше костылей - тем надёжнее система!
User avatar
VBI
 
Posts: 1965
Joined: Mon, 03.06.2013 09:20:29

Postby MVV » Fri, 02.09.2016 23:09:47

VBI wrote:Чем больше костылей - тем надёжнее система!

Купи слона.
MVV
 
Posts: 479
Joined: Sun, 01.12.2013 22:48:17

Postby Mor-Da » Mon, 05.09.2016 14:18:27

Господа гуру, а нам-то простым смертным што делать-то. Хэлпингуйте плиз, пока интерес не отпал-то.
User avatar
Mor-Da
 
Posts: 367
Joined: Fri, 12.02.2016 07:20:43
LOCATION: Воткинск (родина П.И.Чайковского)

Next

Return to Utilities

Who is online

Users browsing this forum: No registered users and 1 guest

cron

x