From 202611348034224a39b64db13bf5cc0a8730fae9 Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Sat, 9 Nov 2019 13:38:35 -0500 Subject: [PATCH] ti/kbd: lowercase letters by default, 2nd to upcase --- kernel/ti/kbd.asm | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/kernel/ti/kbd.asm b/kernel/ti/kbd.asm index 3d629c0..f753d82 100644 --- a/kernel/ti/kbd.asm +++ b/kernel/ti/kbd.asm @@ -84,7 +84,7 @@ kbdGetC: jr z, .loop ; yes? unsupported. loop. call .debounce cp KBD_KEY_ALPHA - jr c, .end ; A < 0x80? valid char, return it. + jr c, .result ; A < 0x80? valid char, return it. jr z, .handleAlpha cp KBD_KEY_2ND jr z, .handle2nd @@ -110,6 +110,16 @@ kbdGetC: ld c, a jp .loop +.result: + ; We have our result in A, *almost* time to return it. One last thing: + ; Are in in both Alpha and 2nd mode? If yes, then it means that we + ; should return the upcase version of our letter (if it's a letter). + bit 0, c + jr z, .end ; nope + bit 1, c + jr z, .end ; nope + ; yup, we have Alpha + 2nd. Upcase! + call upcase .end: pop hl pop bc @@ -157,9 +167,9 @@ kbdGetC: ; alpha table. same as .dtbl, for when we're in alpha mode. .atbl: .db 0xfe, 0, 0, 0, 0, 0, 0, 0, 0 - .db 0xfd, 0x0d, '"' ,'W' ,'R', 'M', 'H', 0, 0 - .db 0xfb, '?', 0, 'V', 'Q', 'L', 'G', 0, 0 - .db 0xf7, ':', 'Z', 'U', 'P', 'K', 'F', 'C', 0 - .db 0xef, ' ', 'Y', 'T', 'O', 'J', 'E', 'B', 0 - .db 0xdf, 0, 'X', 'S', 'N', 'I', 'D', 'A', KBD_KEY_ALPHA + .db 0xfd, 0x0d, '"' ,'w' ,'r', 'm', 'h', 0, 0 + .db 0xfb, '?', 0, 'v', 'q', 'l', 'g', 0, 0 + .db 0xf7, ':', 'z', 'u', 'p', 'k', 'f', 'c', 0 + .db 0xef, ' ', 'y', 't', 'o', 'j', 'e', 'b', 0 + .db 0xdf, 0, 'x', 's', 'n', 'i', 'd', 'a', KBD_KEY_ALPHA .db 0xbf, 0, 0, 0, 0, 0, KBD_KEY_2ND, 0, 0x7f