Предлагаю автору сделать доработку эмулятора вот каким образом
в модуль unit Unit1; (там где TmainFormEmu)
прописать в interface
Code:
Var Key_engl: array[0..255]of word;// Ангийская расскладка клавиатуры
Key_Rus: array[0..255]of word;// Руская расскладка клавиатуры
w:word;
f:file of word;
например в разделе INITIALIZATION этого же модуля
Code:
begin // Загрузка соответствия клавиш
w:=0;
AssignFile(f,'DprPasToLV.key');
Reset(F);
For w:=0 to 255 do begin Read(F,Key_engl[w]); end;// Чтение из файла Английской расскладки
For w:=0 to 255 do begin Read(F,Key_Rus[w]); end;// Чтение из файла Русской расскладки
closeFile(F);
end; // Загрузка соответствия клавиш
Функцию TMainFormEmu.readmask (keynum: word): word; // маска клавы Заменить на
Code:
function TMainFormEmu.readmask (keynum: word): word; // маска клавы
Var b:byte;
begin
b:=do_read(48669);//KYB_MODE ( BE1DH (48669)) 7 бит =0, значит АНГЛ Раскадка
If (b and 128)=0 then result:=Key_engl[keynum] else
result:=Key_Rus[keynum];
end;
“Соль” этого всего то, что раскладка клавиатуры будет настраиваемая причем при разных раскладках (руск./ англ) можна назначить разные клавиши, это для полного соответствия русских букв с 101-клавиатурой при русской раскладке. Разработчики других эмуляторов видимо поленились (не посчитали нужным это сделать
Настраивайте клавиатуру как угодно в файле Keyboard.dpr после его скомпилируйте и запустите, будет создан файл DprPasToLV.key который нужно скопировать в доработанный как написано выше в МаратЭмулятор.