From: Guillermo J. Rozas Date: Wed, 30 Sep 1992 03:55:47 +0000 (+0000) Subject: Improve the real-mode keyboard interrupt handler to eliminate some X-Git-Tag: 20090517-FFI~8884 X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=501ede9be4bb6a1b1924f9acb3d771e24d6cd44c;p=mit-scheme.git Improve the real-mode keyboard interrupt handler to eliminate some jumps. --- 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?