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 );