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