From 501ede9be4bb6a1b1924f9acb3d771e24d6cd44c Mon Sep 17 00:00:00 2001 From: "Guillermo J. Rozas" Date: Wed, 30 Sep 1992 03:55:47 +0000 Subject: [PATCH] Improve the real-mode keyboard interrupt handler to eliminate some jumps. --- v7/src/microcode/doskbutl.asm | 31 +++++++++---------------------- 1 file changed, 9 insertions(+), 22 deletions(-) diff --git a/v7/src/microcode/doskbutl.asm b/v7/src/microcode/doskbutl.asm index 5c066a96f..c527911a6 100644 --- a/v7/src/microcode/doskbutl.asm +++ b/v7/src/microcode/doskbutl.asm @@ -1,6 +1,6 @@ ;;; -*-Midas-*- ;;; -;;; $Id: doskbutl.asm,v 1.5 1992/09/06 16:24:10 jinx Exp $ +;;; $Id: doskbutl.asm,v 1.6 1992/09/30 03:55:47 jinx Exp $ ;;; ;;; Copyright (c) 1992 Massachusetts Institute of Technology ;;; @@ -168,33 +168,20 @@ kbd_isr: push bx and bx,3fh ; Drop fncn + push si + mov si,word ptr cs:shifted_table_offset test al,7h ; Ctrl or shift set? - jne do_shifted + jne do_fetch + + mov si,word ptr cs:caps_table_offset test al,40h ; CAPS set? - jne do_caps + jne do_fetch -do_unshifted: - push si mov si,word ptr cs:unshifted_table_offset - mov bl,byte ptr cs:[bx+si] - pop si - jmp merge -do_shifted: - push si - mov si,word ptr cs:shifted_table_offset - mov bl,byte ptr cs:[bx+si] - pop si - jmp merge - -do_caps: - push si - mov si,word ptr cs:caps_table_offset - mov bl,byte ptr cs:[bx+si] +do_fetch: + mov bl,byte ptr cs:[bx+si] ; Fetch translated byte. pop si -; jmp merge - -merge: cmp bl,0 ; No translation? je abort_translation ; bt al,2h ; Control set? -- 2.25.1