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