mirror of
https://github.com/reactos/reactos.git
synced 2024-08-04 10:30:59 +00:00
[NTVDM]
Implement several directory operations. svn path=/branches/ntvdm/; revision=59331
This commit is contained in:
parent
ca06374c9f
commit
07928d50d4
|
@ -701,6 +701,67 @@ VOID DosInt21h(WORD CodeSegment)
|
|||
break;
|
||||
}
|
||||
|
||||
/* Create Directory */
|
||||
case 0x39:
|
||||
{
|
||||
String = (PCHAR)((ULONG_PTR)BaseAddress
|
||||
+ TO_LINEAR(DataSegment, LOWORD(Edx)));
|
||||
|
||||
if (CreateDirectoryA(String, NULL))
|
||||
{
|
||||
EmulatorClearFlag(EMULATOR_FLAG_CF);
|
||||
}
|
||||
else
|
||||
{
|
||||
EmulatorSetFlag(EMULATOR_FLAG_CF);
|
||||
EmulatorSetRegister(EMULATOR_REG_AX,
|
||||
(Eax & 0xFFFF0000) | LOWORD(GetLastError()));
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
/* Remove Directory */
|
||||
case 0x3A:
|
||||
{
|
||||
String = (PCHAR)((ULONG_PTR)BaseAddress
|
||||
+ TO_LINEAR(DataSegment, LOWORD(Edx)));
|
||||
|
||||
if (RemoveDirectoryA(String))
|
||||
{
|
||||
EmulatorClearFlag(EMULATOR_FLAG_CF);
|
||||
}
|
||||
else
|
||||
{
|
||||
EmulatorSetFlag(EMULATOR_FLAG_CF);
|
||||
EmulatorSetRegister(EMULATOR_REG_AX,
|
||||
(Eax & 0xFFFF0000) | LOWORD(GetLastError()));
|
||||
}
|
||||
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
/* Set Current Directory */
|
||||
case 0x3B:
|
||||
{
|
||||
String = (PCHAR)((ULONG_PTR)BaseAddress
|
||||
+ TO_LINEAR(DataSegment, LOWORD(Edx)));
|
||||
|
||||
if (SetCurrentDirectoryA(String))
|
||||
{
|
||||
EmulatorClearFlag(EMULATOR_FLAG_CF);
|
||||
}
|
||||
else
|
||||
{
|
||||
EmulatorSetFlag(EMULATOR_FLAG_CF);
|
||||
EmulatorSetRegister(EMULATOR_REG_AX,
|
||||
(Eax & 0xFFFF0000) | LOWORD(GetLastError()));
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
/* Allocate Memory */
|
||||
case 0x48:
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue