summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2003-09-09 17:58:51 (GMT)
committerH. Peter Anvin <hpa@zytor.com>2003-09-09 17:58:51 (GMT)
commite27746dea2ed105d5e90c6d6776196d031e3d298 (patch)
tree8de0db19ead447c1327323d3fdc33c5bd63acbbb
parent68a0440e877f904af83ac52b70e6111b10304f35 (diff)
downloadkeyboard-master.zip
keyboard-master.tar.gz
keyboard-master.tar.bz2
keyboard-master.tar.xz
Stobe sequencing: lower strobe - 10 us min - change sym - raise strobeHEADoriginmaster
-rw-r--r--data/keyboard.asm21
1 files changed, 16 insertions, 5 deletions
diff --git a/data/keyboard.asm b/data/keyboard.asm
index f85fa91..cf81165 100644
--- a/data/keyboard.asm
+++ b/data/keyboard.asm
@@ -378,13 +378,24 @@ kt_symbol
ktas_common
and #0x03
ld e,a
- ; D=0
- add ix,de
+ ; D=0; now DE = shift mode
+
+ ; If the strobe is currently active, lower
+ ; the strobe for 10 us *before* switching
+ ; to the new keysym
+ bit 7,b
+ jr z,ktas_strobeok
+ ld a,b
+ and #0x7F
+ out (#3),a
+ ld a,#10 ; Give it 10 us
+ call (udelay)
+
+ktas_strobeok
+ add ix,de ; IX->keysym
ld a,(ix+0)
out (#2),a
- ld a,b ; status_byte
- and #0x7F
- out (#3),a ; make sure strobe is pulsed
+ ld a,b
or #0x80 ; strobe
ld (status_byte),a
out (#3),a