From: Eric A. <mc...@us...> - 2006-05-20 20:50:59
|
Update of /cvsroot/freedos/kernel/kernel In directory sc8-pr-cvs5.sourceforge.net:/tmp/cvs-serv9096/kernel/kernel Modified Files: inthndlr.c Log Message: added stub for function 0x6301/0x6302 Korean Hangul keyboard input methods in int 0x21 handler (0x63xx is DBCS support related), returns AL=-1 (error) Index: inthndlr.c =================================================================== RCS file: /cvsroot/freedos/kernel/kernel/inthndlr.c,v retrieving revision 1.95 retrieving revision 1.96 diff -u -d -r1.95 -r1.96 --- inthndlr.c 15 Mar 2005 15:31:35 -0000 1.95 +++ inthndlr.c 20 May 2006 20:50:44 -0000 1.96 @@ -1328,14 +1328,28 @@ /* 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; } /* |