mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-16 01:41:17 +03:00
RUS keys fix
This commit is contained in:
parent
f5eacf470b
commit
9235af1a05
200
DSS/KEYINTER.ASM
200
DSS/KEYINTER.ASM
@ -1,4 +1,3 @@
|
||||
|
||||
; MODULE KEYINTER
|
||||
;[BEGIN]
|
||||
;//MODULE: KEYINTER Keyboard Scan Codes: Set 2
|
||||
@ -877,6 +876,7 @@ INPCODE: LD D,L
|
||||
LD E,0
|
||||
BIT LANG_L,(IX+K_LOCK)
|
||||
JP NZ,RUSCODE
|
||||
;
|
||||
LD A,(KEYCTRL)
|
||||
AND 1<<L_SHIFT | 1<<R_SHIFT
|
||||
JR NZ,.SHIFT
|
||||
@ -887,15 +887,17 @@ INPCODE: LD D,L
|
||||
RET NZ
|
||||
LD D,L
|
||||
BIT CAPS_L,(IX+K_LOCK)
|
||||
LD BC,CAPSTAB
|
||||
LD BC,ASCII_TABLES.CAPS_ENG
|
||||
JR NZ,CONVERT.NO_SET
|
||||
LD BC,NORMTAB
|
||||
;
|
||||
LD BC,ASCII_TABLES.ENGLISH
|
||||
JR CONVERT.NO_SET
|
||||
;
|
||||
.SHIFT: LD BC,SHIFTAB
|
||||
.SHIFT: LD BC,ASCII_TABLES.SHIFT_ENG
|
||||
BIT CAPS_L,(IX+K_LOCK)
|
||||
JR Z,CONVERT.SET
|
||||
LD BC,SHF2TAB
|
||||
;
|
||||
LD BC,ASCII_TABLES.CAPS_SHIFT_ENG
|
||||
CONVERT: ;
|
||||
.SET: SET 7,D
|
||||
.NO_SET: LD H,0
|
||||
@ -906,6 +908,7 @@ CONVERT: ;
|
||||
RUSCODE: LD A,(KEYCTRL)
|
||||
AND 1<<L_SHIFT | 1<<R_SHIFT
|
||||
JR NZ,.SHIFT
|
||||
;
|
||||
SET 7,D
|
||||
BIT X_ALT,(IX+K_SHIFT)
|
||||
RET NZ
|
||||
@ -913,15 +916,17 @@ RUSCODE: LD A,(KEYCTRL)
|
||||
RET NZ
|
||||
LD D,L
|
||||
BIT CAPS_L,(IX+K_LOCK)
|
||||
LD BC,CAPSRUS
|
||||
LD BC,ASCII_TABLES.CAPS_RUS
|
||||
JR NZ,CONVERT.NO_SET
|
||||
LD BC,NORMRUS
|
||||
;
|
||||
LD BC,ASCII_TABLES.RUSSIAN
|
||||
JR CONVERT.NO_SET
|
||||
;
|
||||
.SHIFT: LD BC,SHIFRUS
|
||||
.SHIFT: LD BC,ASCII_TABLES.SHIFT_RUS
|
||||
BIT CAPS_L,(IX+K_LOCK)
|
||||
JR Z,CONVERT.SET
|
||||
LD BC,SHF2RUS
|
||||
;
|
||||
LD BC,ASCII_TABLES.CAPS_SHIFT_RUS
|
||||
JR CONVERT.SET
|
||||
|
||||
;-----------------------------------------------------------------------
|
||||
@ -929,32 +934,32 @@ RUSCODE: LD A,(KEYCTRL)
|
||||
K_SETUP: INC B
|
||||
DJNZ K_SND_R
|
||||
; subfunc 0
|
||||
KEYMAP: LD BC,ENDNORM-NORMTAB
|
||||
KEYMAP: LD BC,ASCII_TABLES.Size
|
||||
BIT 7,A
|
||||
JR NZ,READMAP
|
||||
;
|
||||
LD DE,NORMTAB
|
||||
LD DE,ASCII_TABLES.ENGLISH
|
||||
OR A
|
||||
JR Z,.LTAB
|
||||
LD DE,SHIFTAB
|
||||
LD DE,ASCII_TABLES.SHIFT_ENG
|
||||
DEC A
|
||||
JR Z,.LTAB
|
||||
LD DE,CAPSTAB
|
||||
LD DE,ASCII_TABLES.CAPS_ENG
|
||||
DEC A
|
||||
JR Z,.LTAB
|
||||
LD DE,SHF2TAB
|
||||
LD DE,ASCII_TABLES.CAPS_SHIFT_ENG
|
||||
DEC A
|
||||
JR Z,.LTAB
|
||||
LD DE,NORMRUS
|
||||
LD DE,ASCII_TABLES.RUSSIAN
|
||||
DEC A
|
||||
JR Z,.LTAB
|
||||
LD DE,SHIFRUS
|
||||
LD DE,ASCII_TABLES.SHIFT_RUS
|
||||
DEC A
|
||||
JR Z,.LTAB
|
||||
LD DE,CAPSRUS
|
||||
LD DE,ASCII_TABLES.CAPS_RUS
|
||||
DEC A
|
||||
JR Z,.LTAB
|
||||
LD DE,SHF2RUS
|
||||
LD DE,ASCII_TABLES.CAPS_SHIFT_RUS
|
||||
DEC A
|
||||
JR Z,.LTAB
|
||||
;
|
||||
@ -967,28 +972,28 @@ KEYMAP: LD BC,ENDNORM-NORMTAB
|
||||
RET
|
||||
;
|
||||
READMAP: RES 7,A
|
||||
LD DE,NORMTAB
|
||||
LD DE,ASCII_TABLES.ENGLISH
|
||||
OR A
|
||||
JR Z,.RTAB
|
||||
LD DE,SHIFTAB
|
||||
LD DE,ASCII_TABLES.SHIFT_ENG
|
||||
DEC A
|
||||
JR Z,.RTAB
|
||||
LD DE,CAPSTAB
|
||||
LD DE,ASCII_TABLES.CAPS_ENG
|
||||
DEC A
|
||||
JR Z,.RTAB
|
||||
LD DE,SHF2TAB
|
||||
LD DE,ASCII_TABLES.CAPS_SHIFT_ENG
|
||||
DEC A
|
||||
JR Z,.RTAB
|
||||
LD DE,NORMRUS
|
||||
LD DE,ASCII_TABLES.RUSSIAN
|
||||
DEC A
|
||||
JR Z,.RTAB
|
||||
LD DE,SHIFRUS
|
||||
LD DE,ASCII_TABLES.SHIFT_RUS
|
||||
DEC A
|
||||
JR Z,.RTAB
|
||||
LD DE,CAPSRUS
|
||||
LD DE,ASCII_TABLES.CAPS_RUS
|
||||
DEC A
|
||||
JR Z,.RTAB
|
||||
LD DE,SHF2RUS
|
||||
LD DE,ASCII_TABLES.CAPS_SHIFT_RUS
|
||||
DEC A
|
||||
JR Z,.RTAB
|
||||
XOR A ; ????? ¬®¦¥â âãâ ¤® .INVALID_COMMAND?
|
||||
@ -1273,86 +1278,95 @@ Esc EQU #1B
|
||||
Bcs EQU #08
|
||||
Tab EQU #09
|
||||
Cps EQU #00
|
||||
Spc EQU #20
|
||||
;Spc EQU #20
|
||||
Ent EQU #0D
|
||||
|
||||
;Standart ASCII tables
|
||||
NORMTAB DB "`",Esc,"1","2","3","4","5","6","7","8","9","0","-","=",Bcs
|
||||
DB Tab,"q","w","e","r","t","y","u","i","o","p","[","]"
|
||||
DB Cps,"a","s","d","f","g","h","j","k","l",";","'",Ent
|
||||
DB #00,"z","x","c","v","b","n","m",#2C,".","/",#00,#5C
|
||||
DB #00,#00,Spc,#00,#00
|
||||
DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00
|
||||
DB #00,#00,#00,"/","*","-","+",Ent,#00
|
||||
DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00
|
||||
ENDNORM
|
||||
MODULE ASCII_TABLES
|
||||
Size EQU 90 ; <20> §¬¥à «î¡®© â ¡«¨æë
|
||||
ENGLISH: DB "`",Esc,"1","2","3","4","5","6","7","8","9","0","-","=",Bcs
|
||||
DB Tab,"q","w","e","r","t","y","u","i","o","p","[","]"
|
||||
DB Cps,"a","s","d","f","g","h","j","k","l",";","'",Ent
|
||||
DB #00,"z","x","c","v","b","n","m",",",".","/",#00,'\' ;
|
||||
DB #00,#00," ",#00,#00
|
||||
DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00
|
||||
DB #00,#00,#00,"/","*","-","+",Ent,#00
|
||||
DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00
|
||||
.Size EQU $-ENGLISH : ASSERT .Size = Size, '-> Error! This table has wrong size!!!'
|
||||
|
||||
SHIFTAB DB "~",Esc,"!","@","#","$","%","^","&","*","(",")","_","+",Bcs
|
||||
DB Tab,"Q","W","E","R","T","Y","U","I","O","P","{","}"
|
||||
DB Cps,"A","S","D","F","G","H","J","K","L",":",#22,Ent
|
||||
DB #00,"Z","X","C","V","B","N","M","<",">","?",#00,"|"
|
||||
DB #00,#00,Spc,#00,#00
|
||||
DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00
|
||||
DB #00,#00,#00,"/","*","-","+",Ent,#00
|
||||
DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00
|
||||
SHIFT_ENG: DB "~",Esc,"!","@","#","$","%","^","&","*","(",")","_","+",Bcs
|
||||
DB Tab,"Q","W","E","R","T","Y","U","I","O","P","{","}"
|
||||
DB Cps,"A","S","D","F","G","H","J","K","L",":",#22,Ent
|
||||
DB #00,"Z","X","C","V","B","N","M","<",">","?",#00,"|"
|
||||
DB #00,#00," ",#00,#00
|
||||
DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00
|
||||
DB #00,#00,#00,"/","*","-","+",Ent,#00
|
||||
DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00
|
||||
.Size EQU $-SHIFT_ENG : ASSERT .Size = Size, '-> Error! This table has wrong size!!!'
|
||||
|
||||
CAPSTAB DB "`",Esc,"1","2","3","4","5","6","7","8","9","0","-","=",Bcs
|
||||
DB Tab,"Q","W","E","R","T","Y","U","I","O","P","[","]"
|
||||
DB Cps,"A","S","D","F","G","H","J","K","L",";","'",Ent
|
||||
DB #00,"Z","X","C","V","B","N","M",#2C,".","/",#00,#5C
|
||||
DB #00,#00,Spc,#00,#00
|
||||
DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00
|
||||
DB #00,#00,#00,"/","*","-","+",Ent,#00
|
||||
DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00
|
||||
CAPS_ENG: DB "`",Esc,"1","2","3","4","5","6","7","8","9","0","-","=",Bcs
|
||||
DB Tab,"Q","W","E","R","T","Y","U","I","O","P","[","]"
|
||||
DB Cps,"A","S","D","F","G","H","J","K","L",";","'",Ent
|
||||
DB #00,"Z","X","C","V","B","N","M",",",".","/",#00,'\' ;
|
||||
DB #00,#00," ",#00,#00
|
||||
DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00
|
||||
DB #00,#00,#00,"/","*","-","+",Ent,#00
|
||||
DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00
|
||||
.Size EQU $-CAPS_ENG : ASSERT .Size = Size, '-> Error! This table has wrong size!!!'
|
||||
|
||||
SHF2TAB DB "~",Esc,"!","@","#","$","%","^","&","*","(",")","_","+",Bcs
|
||||
DB Tab,"q","w","e","r","t","y","u","i","o","p","{","}"
|
||||
DB Cps,"a","s","d","f","g","h","j","k","l",":",#22,Ent
|
||||
DB #00,"z","x","c","v","b","n","m","<",">","?",#00,"|"
|
||||
DB #00,#00,Spc,#00,#00
|
||||
DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00
|
||||
DB #00,#00,#00,"/","*","-","+",Ent,#00
|
||||
DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00
|
||||
CAPS_SHIFT_ENG: DB "~",Esc,"!","@","#","$","%","^","&","*","(",")","_","+",Bcs
|
||||
DB Tab,"q","w","e","r","t","y","u","i","o","p","{","}"
|
||||
DB Cps,"a","s","d","f","g","h","j","k","l",":",#22,Ent
|
||||
DB #00,"z","x","c","v","b","n","m","<",">","?",#00,"|"
|
||||
DB #00,#00," ",#00,#00
|
||||
DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00
|
||||
DB #00,#00,#00,"/","*","-","+",Ent,#00
|
||||
DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00
|
||||
.Size EQU $-CAPS_SHIFT_ENG : ASSERT .Size = Size, '-> Error! This table has wrong size!!!'
|
||||
|
||||
;Standart Russian tables
|
||||
NORMRUS DB #F1,Esc,"1","2","3","4","5","6","7","8","9","0","-","=",Bcs
|
||||
DB Tab,#A9,#E6,#E3,#AA,#A5,#AD,#A3,#E8,#E9,#A7,#E5,#EA
|
||||
DB Cps,#E4,#EB,#A2,#A0,#AF,#E0,#AE,#AB,#A4,#A6,#ED,Ent
|
||||
DB #00,#EF,#E7,#E1,#AC,#A8,#E2,#EC,#A1,#EE,".",#00,#5C
|
||||
DB #00,#00,Spc,#00,#00
|
||||
DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00
|
||||
DB #00,#00,#00,"/","*","-","+",Ent,#00
|
||||
DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00
|
||||
RUSSIAN: DB #F1,Esc,"1","2","3","4","5","6","7","8","9","0","-","=",Bcs
|
||||
DB Tab,#A9,#E6,#E3,#AA,#A5,#AD,#A3,#E8,#E9,#A7,#E5,#EA
|
||||
DB Cps,#E4,#EB,#A2,#A0,#AF,#E0,#AE,#AB,#A4,#A6,#ED,Ent
|
||||
DB #00,#EF,#E7,#E1,#AC,#A8,#E2,#EC,#A1,#EE,".",#00,'\' ;
|
||||
DB #00,#00," ",#00,#00
|
||||
DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00
|
||||
DB #00,#00,#00,"/","*","-","+",Ent,#00
|
||||
DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00
|
||||
.Size EQU $-RUSSIAN : ASSERT .Size = Size, '-> Error! This table has wrong size!!!'
|
||||
|
||||
SHIFRUS DB #F0,Esc,"!",'"',"#","%",":",",",".",";","(",")","_","+",Bcs
|
||||
DB Tab,#89,#96,#93,#8A,#85,#8D,#83,#98,#99,#87,#95,#9A
|
||||
DB Cps,#94,#9B,#82,#80,#8F,#90,#8E,#8B,#84,#86,#9D,Ent
|
||||
DB #00,#9F,#97,#91,#8C,#88,#92,#9C,#81,#9E,#2C,#00,"|"
|
||||
DB #00,#00,Spc,#00,#00
|
||||
DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00
|
||||
DB #00,#00,#00,"/","*","-","+",Ent,#00
|
||||
DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00
|
||||
SHIFT_RUS: DB #F0,Esc,"!",'"',"#",";","%",":","?","*","(",")","_","+",Bcs
|
||||
DB Tab,#89,#96,#93,#8A,#85,#8D,#83,#98,#99,#87,#95,#9A
|
||||
DB Cps,#94,#9B,#82,#80,#8F,#90,#8E,#8B,#84,#86,#9D,Ent
|
||||
DB #00,#9F,#97,#91,#8C,#88,#92,#9C,#81,#9E,",",#00,"/"
|
||||
DB #00,#00," ",#00,#00
|
||||
DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00
|
||||
DB #00,#00,#00,"/","*","-","+",Ent,#00
|
||||
DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00
|
||||
.Size EQU $-SHIFT_RUS : ASSERT .Size = Size, '-> Error! This table has wrong size!!!'
|
||||
|
||||
CAPSRUS DB #F0,Esc,"1","2","3","4","5","6","7","8","9","0","-","=",Bcs
|
||||
DB Tab,#89,#96,#93,#8A,#85,#8D,#83,#98,#99,#87,#95,#9A
|
||||
DB Cps,#94,#9B,#82,#80,#8F,#90,#8E,#8B,#84,#86,#9D,Ent
|
||||
DB #00,#9F,#97,#91,#8C,#88,#92,#9C,#81,#9E,".",#00,#5C
|
||||
DB #00,#00,Spc,#00,#00
|
||||
DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00
|
||||
DB #00,#00,#00,"/","*","-","+",Ent,#00
|
||||
DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00
|
||||
CAPS_RUS: DB #F0,Esc,"1","2","3","4","5","6","7","8","9","0","-","=",Bcs
|
||||
DB Tab,#89,#96,#93,#8A,#85,#8D,#83,#98,#99,#87,#95,#9A
|
||||
DB Cps,#94,#9B,#82,#80,#8F,#90,#8E,#8B,#84,#86,#9D,Ent
|
||||
DB #00,#9F,#97,#91,#8C,#88,#92,#9C,#81,#9E,".",#00,'\' ;
|
||||
DB #00,#00," ",#00,#00
|
||||
DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00
|
||||
DB #00,#00,#00,"/","*","-","+",Ent,#00
|
||||
DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00
|
||||
.Size EQU $-CAPS_RUS : ASSERT .Size = Size, '-> Error! This table has wrong size!!!'
|
||||
|
||||
SHF2RUS DB #F1,Esc,"!",'"',"#","%",":",",",".",";","(",")","_","+",Bcs
|
||||
DB Tab,#A9,#E6,#E3,#AA,#A5,#AD,#A3,#E8,#E9,#A7,#E5,#EA
|
||||
DB Cps,#E4,#EB,#A2,#A0,#AF,#E0,#AE,#AB,#A4,#A6,#ED,Ent
|
||||
DB #00,#EF,#E7,#E1,#AC,#A8,#E2,#EC,#A1,#EE,#2C,#00,"|"
|
||||
DB #00,#00,Spc,#00,#00
|
||||
DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00
|
||||
DB #00,#00,#00,"/","*","-","+",Ent,#00
|
||||
DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00
|
||||
CAPS_SHIFT_RUS: DB #F1,Esc,"!",'"',"#",";","%",":","?","*","(",")","_","+",Bcs
|
||||
DB Tab,#A9,#E6,#E3,#AA,#A5,#AD,#A3,#E8,#E9,#A7,#E5,#EA
|
||||
DB Cps,#E4,#EB,#A2,#A0,#AF,#E0,#AE,#AB,#A4,#A6,#ED,Ent
|
||||
DB #00,#EF,#E7,#E1,#AC,#A8,#E2,#EC,#A1,#EE,",",#00,"/"
|
||||
DB #00,#00," ",#00,#00
|
||||
DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00
|
||||
DB #00,#00,#00,"/","*","-","+",Ent,#00
|
||||
DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00
|
||||
.Size EQU $-CAPS_SHIFT_RUS : ASSERT .Size = Size, '-> Error! This table has wrong size!!!'
|
||||
|
||||
ENDMODULE ; ASCII_TABLES
|
||||
;================================
|
||||
|
||||
;//MODULE: KEYINTER
|
||||
;[END]
|
||||
; ENDMODULE
|
||||
@ -1 +1 @@
|
||||
67
|
||||
68
|
||||
Loading…
Reference in New Issue
Block a user