Commit 8c26d862 authored by Simon Forrest's avatar Simon Forrest
Browse files

"FN" key support added by K. Bracey. 3rd party keyboard mappings defined and...

"FN" key support added by K. Bracey. 3rd party keyboard mappings defined and included by S. Forrest.

Both changes made for the Lazarus project in order to support the third
party handset.

Tested on a Risc PC against V0.02 of the RCMM Driver.

Version 0.65. Tagged as 'IntKey-0_65'
parent 03419d0e
......@@ -376,13 +376,16 @@ KeyUTFReturnEnd # 0
; using R2, as if we end up calling a different handler, R2 will
; be corrupted.
GBLA HandleFNsize
MACRO
HandleFN
LDRB R2, FNDown ; is FN down?
01 LDRB R2, FNDown ; is FN down?
TEQ R2, #0 ; if not, process as normal
Push "R14", NE
BLNE FindFN
Pull "R14", NE
HandleFNsize SETA . - %BT01
MEND
; **************** Module code starts here **********************
......@@ -1285,7 +1288,7 @@ FindFN ROUT
Push "R1,R3"
ADD R3, R0, R2
LDRB R2, [R3], #1 ; R2 = number of FN entries
CMP R2, #0
TEQ R2, #0
BEQ NoFN
FNLoop LDRB R1, [R3], #2 ; R1 = base FN key, advance R3 to next entry
CMP R1, R4
......@@ -1304,6 +1307,7 @@ FNContinue
SUB R1, R2, #4 ; 0th entry is for 1st special
LDR R1, [R1, R4, LSL #2] ; R1 = offset to code
ADD R2, R1, R2 ; R2 = address of code
ADD R2, R2, #HandleFNsize ; Skip past the FN handling code :)
Pull "R1,R3,LR"
MOV PC, R2
......@@ -1553,7 +1557,7 @@ ShiftingKeyListEnd
; **************************************************************************
;
; A general purpose special code list used by most UCS keyboard drivers -
; long enough for 128 keys, every one special.
; long enough for lots of keys, every one special.
;
SpecialCodeTable
& ProcessKShift - SpecialCodeTable
......@@ -1685,6 +1689,103 @@ SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
& ProcessUCS - SpecialCodeTable
SpecialCodeTableEnd
; And the default keypad layout.
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment