Implemented uppercasing functions (based on a patch by Robert
'Admiral' Coeyman).

diff --git a/msdos/int21.c b/msdos/int21.c
index 0ab30e9..dcfa684 100644
--- a/msdos/int21.c
+++ b/msdos/int21.c
@@ -2015,6 +2015,19 @@
 	    *(DWORD*)(dataptr+1) = MAKELONG(DOSMEM_CollateTable & 0xFFFF,DOSMEM_AllocSelector(DOSMEM_CollateTable>>16));
 	    CX_reg(context)         = 258;/*FIXME: size of table?*/
 	    break;
+        case 0x20:
+            TRACE("\tConvert char to uppercase\n");
+            DL_reg(context) = toupper(DL_reg(context));
+            break;
+        case 0x21:
+            TRACE("\tconvert string to uppercase with length\n");
+            CharUpperBuffA( (LPSTR)CTX_SEG_OFF_TO_LIN(context,DS_reg(context),EDX_reg(context)),
+                            CX_reg(context) );
+            break;
+        case 0x22:            
+            TRACE("\tConvert ASCIIZ string to uppercase\n");
+            CharUpperA( (LPSTR)CTX_SEG_OFF_TO_LIN(context,DS_reg(context),EDX_reg(context)) );
+            break;    
 	default:
 	    TRACE("\tunimplemented function %d\n",AL_reg(context));
             INT_BARF( context, 0x21 );