Improve the real-mode keyboard interrupt handler to eliminate some
authorGuillermo J. Rozas <edu/mit/csail/zurich/gjr>
Wed, 30 Sep 1992 03:55:47 +0000 (03:55 +0000)
committerGuillermo J. Rozas <edu/mit/csail/zurich/gjr>
Wed, 30 Sep 1992 03:55:47 +0000 (03:55 +0000)
jumps.

v7/src/microcode/doskbutl.asm

index 5c066a96fcb11fbdcc2d0f9f8311d0a42d89103c..c527911a68c6bbb2bf757769c007757d60069fc4 100644 (file)
@@ -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?