Page 1 of 1

Библиотека PS2->KOI8-R

PostPosted: 10 Nov 2013, 11:59
by SfS
Предлагаю вниманию библиотеку для работы с клавиатурой PS2.
Рус-Лат - CTRL+SHIFT
CAPS - работает
ALT - временное переключение раскладки
Shift - работает

Всякие служебные клавиши, типа ESC F1-F12 и прочие курсорные стрелки - работают.

Код возвращается функцией Inkey в регистре HL.
H=0, L=KOI8-R
H=1, L=расширенный код (F1-F12, стрелки и проч.)

Для сборки необходим z80asm из z88dk

Re: Библиотека PS2->KOI8-R

PostPosted: 10 Nov 2013, 15:57
by DimkaM
Что не понравилось.
Слишком долгий процесс определения нажата какая либо кнопка или нет.
Долшно быть по быстрому, опросил рег, исли ничё нету, то сразу возврат.
Чтение рега итак жрёт 300тактов(при 3.5мгц), а тут ещё добавляется овер дофига, чуть ли не целый инт.
И вообще не понятно, что за фигня у тебя в начале GetPS2, cmos_wr(0xff,2) у тебя уже был в инициализации.

У меня примерно так сделано:
Code: Select all
InKey:
   ld   bc,   $DFF7
   ld   a,   $FF
   out   (c),a
   ld   bc,   $BFF7
   in   a,(c)
   inc a
   jp z,ps2kbd_FF
   dec a
   jp nz,ps2_event
   ld hl,0
   ret
ps2_event:
   дальше делай уже чё хочешь


И ещё, тупой перебор таблиц, это тормоз.

Re: Библиотека PS2->KOI8-R

PostPosted: 10 Nov 2013, 18:06
by SfS
А да. Точно. лишнее с cmos_wr(0xff,2).

Оправдаюсь. Всё написал за сегодня с утра:)

Таблицы - из соображений универсальности. Сменил таблицу - сменил раскладку.

Скорости хватает с избытком для редактора, например. Библиотека нацелена на универсальность, а не на скорость.

Re: Библиотека PS2->KOI8-R

PostPosted: 10 Nov 2013, 18:07
by SfS
В принципе код ещё можно править долго и вылизывать. Но главное - оно работает и может кому будет полезно.

Re: Библиотека PS2->KOI8-R

PostPosted: 10 Nov 2013, 19:01
by DimkaM
Ну у меня тоже перебор по таблицам.
Код сам не писал, а за три минуты нагуглил и скомуниздил с аврки, тока добавил русский :confused: .
Я ваще любитель чёнить скомуниздить.

Предлагаю тебе всё же вылизать код.
Также вылизать вывод в текстмод.
Далее оформить как bios.
можно взять у Савелия драйвера дисков и запихать туда же.

Далее берём у ElmChan'а либы printf, scanf, fatfs и надстраиваем над биосом.
Вуаля недоОСь готова.

Re: Библиотека PS2->KOI8-R

PostPosted: 10 Nov 2013, 20:31
by SfS
Ты прямо мысли мои прочитал насчёт текстмода и фата :) Но я думаю так. Код вылизывать - дело бесконечное.
Пусть всё работает неоптимально, но работатет, чем будет потрачено неделя времени на экономию 10 байт и 20 тактов.

Там сам код обработчика клавиатуры занимает 418 байт. И таблица-раскладка 601. Таблицу не сократишь просто так. Ну а код.. ну байт 20-50 можно сократить. Игра по времени не стоит свеч.

Вывод на экран сейчас хочу сделать универсально - все режимы, чтобы были поддержаны.

И менеджер памяти надо адаптировать. Я для AVR писал, но там страничек нет. Хочется нормальный malloc.

Эх.. если бы всё что хотелось - моглось, в каком прекрасном мире мы бы жили! :)(: