From 5c9ae102b43b6ad99b961b7bbcf81e35fa45509d Mon Sep 17 00:00:00 2001 From: Eric Auer Date: Sat, 20 May 2006 20:50:44 +0000 Subject: [PATCH] added stub for function 0x6301/0x6302 Korean Hangul keyboard input methods in int 0x21 handler (0x63xx is DBCS support related), returns AL=-1 (error) git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1185 6ac86273-5f31-0410-b378-82cca8765d1b --- kernel/inthndlr.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/kernel/inthndlr.c b/kernel/inthndlr.c index 7adf458..8017ba8 100644 --- a/kernel/inthndlr.c +++ b/kernel/inthndlr.c @@ -1328,14 +1328,28 @@ dispatch: /* UNDOCUMENTED: Double byte and korean tables */ case 0x63: { - lr.DS = FP_SEG(&nlsDBCSHardcoded); - lr.SI = FP_OFF(&nlsDBCSHardcoded); #if 0 /* not really supported, but will pass. */ lr.AL = 0x00; /*jpp: according to interrupt list */ /*Bart: fails for PQDI and WATCOM utilities: use the above again */ #endif + switch (lr.AL) + { + case 0: + lr.DS = FP_SEG(&nlsDBCSHardcoded); + lr.SI = FP_OFF(&nlsDBCSHardcoded); + break; + case 1: /* set Korean Hangul input method to DL 0/1 */ + lr.AL = 0xff; /* flag error (AL would be 0 if okay) */ + break; + case 2: /* get Korean Hangul input method setting to DL */ + lr.AL = 0xff; /* flag error, do not set DL */ + break; + default: /* is this the proper way to handle invalid AL? */ + rc = -1; + goto error_exit; + } break; } /*