В. М. Нелин, Армавирский педагогический институт

АДАПТАЦИЯ DBASE II V. 2.5 К КЛАВИАТУРАМ НЕ QWERTY ТИПА

Первоначальный вариант широко распространенной СУБД dBASE - dBASE II предназначался для 8 разрядных компьютеров работающих под операционной системой СР/М. К типичным представителям этой группы относятся такие КУВТ, как "Ямаха" и "Корвет".

Основной файл (dBASE.СОМ - 19584 байт) ориентирован на работу с клавиатурой типа QWERTY При использовании клавиатур иного типа например клавиатур "Ямахи" или "Корвета", возникает масса неудобств, не работают клавиши управления курсором (заменяющие эти клавиши нажатия Ctrl-X, Ctrl-Е, Ctrl-D, Ctrl-S неудобны из за некомпактного расположения клавиш X, Е, D, S на клавиатурах не QWERTY типа), клавиши RETURN, INS, DEL, словом, работать с клавиатурой оказывается практически невозможно. Стоит отметить, что даже в случае клавиатуры QWERTY нормальная работа возможна лишь в том случае когда клавиши управления курсором ↓, ↑, →, ← соответствуют нажатиям Ctrl-X, Ctrl-E, Ctrl-D, Ctrl-S.

Детали дальнейшего рассуждения относятся к КУВТ "Ямаха", хотя могут быть распространены и на другие КУВТ, в частности КУВТ "Корвет" (при этом необходимо учесть отличие управляющих ASCII-кодов "Ямахи" и "Корвета").

В файле dBASE.СОМ адреса подпрограмм, на которые передается управление при выполнении управляющих кодов Ctrl-A, Ctrl-B, Ctrl-С и т. д., сведены в таблицу, расположенную по адресам 02ВЕ-02FD, т. е. занимающую 64 байта (считается, что файл dBASE СОМ за гружен в отладчик с адреса 0100). Для работы с этой таблицей файл dBASE СОМ достаточно загрузить в один из отладчиков, работающих под СР/М например DDT или SID (для "Ямахи" - ZSID или DBG).

Первоначальный вид таблицы таков

    02В0: .. .. .. .. .. .. .. .. .. .. .. .. .. .. 7А 02
    02С0: 4Е 03 44 06 54 05 А4 03 4Е 03 В0 05 78 04 77 03
    02D0: 7А 02 В0 05 4Е 03 А4 03 6А 05 0Е 06 7А 02 7А 02
    02Е0: FE 02 5F 05 77 03 1В 06 Е2 05 5А 04 28 06 В0 05
    02F0: 22 05 31 06 7А 02 7А 02 7А 02 7А 02 7А 02 .. ..

Выполнение нажатий Ctrl-A, Ctrl-B, Ctrl-С и т. д. приводит, соответственно, к передаче управления по адресам 27А, 34Е, 644 и т.д.

Для нормальной работы клавиатуры "Ямахи" достаточно изменить несколько адресов этой таблицы (изменяются адреса соответствующие ASCII-кодам клавиш RETURN INS и т.п.). Ниже приводится вид откорректированной таблицы

    02В0: .. .. .. .. .. .. .. .. .. .. .. .. .. .. 7А 02
    02С0: 4Е 03 44 06 54 05 А4 03 4Е 03 В0 05 78 47 77 03
    02D0: В0 05 В0 05 31 06 44 06 В0 05 0Е 06 5F 05 6А 05
    02Е0: FE 02 5А 04 77 03 1В 06 Е2 05 5А 04 28 06 В0 05
    02F0: 22 05 31 06 7А 02 А4 03 77 03 4Е 03 В0 05 .. ..