mirror of
https://github.com/reactos/wine.git
synced 2024-11-25 20:59:54 +00:00
Some interrupt enhancements.
This commit is contained in:
parent
935ccabe08
commit
a63458d87c
@ -55,9 +55,15 @@ extern void WINAPI INT_Int10Handler(CONTEXT*);
|
|||||||
/* msdos/int11.c */
|
/* msdos/int11.c */
|
||||||
extern void WINAPI INT_Int11Handler(CONTEXT*);
|
extern void WINAPI INT_Int11Handler(CONTEXT*);
|
||||||
|
|
||||||
|
/* msdos/int12.c */
|
||||||
|
extern void WINAPI INT_Int12Handler(CONTEXT*);
|
||||||
|
|
||||||
/* msdos/int13.c */
|
/* msdos/int13.c */
|
||||||
extern void WINAPI INT_Int13Handler(CONTEXT*);
|
extern void WINAPI INT_Int13Handler(CONTEXT*);
|
||||||
|
|
||||||
|
/* msdos/int15.c */
|
||||||
|
extern void WINAPI INT_Int15Handler(CONTEXT*);
|
||||||
|
|
||||||
/* msdos/int16.c */
|
/* msdos/int16.c */
|
||||||
extern void WINAPI INT_Int16Handler(CONTEXT*);
|
extern void WINAPI INT_Int16Handler(CONTEXT*);
|
||||||
|
|
||||||
|
@ -18,6 +18,8 @@ static void scroll_window(int direction, char lines, char row1,
|
|||||||
|
|
||||||
static int color_pallet[16];
|
static int color_pallet[16];
|
||||||
|
|
||||||
|
static char dummy; /* dummy var used for unneeded CONSOLE function parameter */
|
||||||
|
|
||||||
#define SCROLL_UP 1
|
#define SCROLL_UP 1
|
||||||
#define SCROLL_DOWN 2
|
#define SCROLL_DOWN 2
|
||||||
|
|
||||||
@ -188,8 +190,13 @@ void WINAPI INT_Int10Handler( CONTEXT *context )
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 0x08: /* READ CHARACTER AND ATTRIBUTE AT CURSOR POSITION */
|
case 0x08: /* READ CHARACTER AND ATTRIBUTE AT CURSOR POSITION */
|
||||||
FIXME(int10,
|
{
|
||||||
"Read Character and Attribute at Cursor Position - Not Supported\n");
|
CHAR ch, attr;
|
||||||
|
TRACE(int10, "Read Character and Attribute at Cursor Position\n");
|
||||||
|
CONSOLE_GetCharacterAtCursor(&ch, &dummy, &dummy, &attr);
|
||||||
|
AL_reg(context) = ch;
|
||||||
|
AH_reg(context) = attr;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0x09: /* WRITE CHARACTER AND ATTRIBUTE AT CURSOR POSITION */
|
case 0x09: /* WRITE CHARACTER AND ATTRIBUTE AT CURSOR POSITION */
|
||||||
|
@ -1155,8 +1155,12 @@ void WINAPI DOS3Call( CONTEXT *context )
|
|||||||
DS_reg(context),DX_reg(context) );
|
DS_reg(context),DX_reg(context) );
|
||||||
{
|
{
|
||||||
LPSTR data = CTX_SEG_OFF_TO_LIN(context,DS_reg(context),EDX_reg(context));
|
LPSTR data = CTX_SEG_OFF_TO_LIN(context,DS_reg(context),EDX_reg(context));
|
||||||
LONG length = strchr(data,'$')-data;
|
LPSTR p = data;
|
||||||
_hwrite16( 1, data, length);
|
/* do NOT use strchr() to calculate the string length,
|
||||||
|
as '\0' is valid string content, too !
|
||||||
|
Maybe we should check for non-'$' strings, but DOS doesn't. */
|
||||||
|
while (*p != '$') p++;
|
||||||
|
_hwrite16( 1, data, (int)p - (int)data);
|
||||||
AL_reg(context) = '$'; /* yes, '$' (0x24) gets returned in AL */
|
AL_reg(context) = '$'; /* yes, '$' (0x24) gets returned in AL */
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -111,9 +111,15 @@ int INT_RealModeInterrupt( BYTE intnum, PCONTEXT context )
|
|||||||
case 0x11:
|
case 0x11:
|
||||||
INT_Int11Handler(context);
|
INT_Int11Handler(context);
|
||||||
break;
|
break;
|
||||||
|
case 0x12:
|
||||||
|
INT_Int12Handler(context);
|
||||||
|
break;
|
||||||
case 0x13:
|
case 0x13:
|
||||||
INT_Int13Handler(context);
|
INT_Int13Handler(context);
|
||||||
break;
|
break;
|
||||||
|
case 0x15:
|
||||||
|
INT_Int15Handler(context);
|
||||||
|
break;
|
||||||
case 0x16:
|
case 0x16:
|
||||||
INT_Int16Handler(context);
|
INT_Int16Handler(context);
|
||||||
break;
|
break;
|
||||||
|
Loading…
Reference in New Issue
Block a user