Petr Tesarik : winedos: Implement INT2F/AX=1501 (get drive device
list).
Alexandre Julliard
julliard at wine.codeweavers.com
Wed Apr 12 04:52:08 CDT 2006
Module: wine
Branch: refs/heads/master
Commit: 31b0a4edf6880ada83fe74218ebedd83e53c20d9
URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=31b0a4edf6880ada83fe74218ebedd83e53c20d9
Author: Petr Tesarik <hat at tesarici.cz>
Date: Tue Apr 11 19:35:17 2006 +0200
winedos: Implement INT2F/AX=1501 (get drive device list).
---
dlls/winedos/int2f.c | 21 +++++++++++++++++++++
1 files changed, 21 insertions(+), 0 deletions(-)
diff --git a/dlls/winedos/int2f.c b/dlls/winedos/int2f.c
index 617c4f0..27dea2b 100644
--- a/dlls/winedos/int2f.c
+++ b/dlls/winedos/int2f.c
@@ -972,6 +972,27 @@ static void MSCDEX_Handler(CONTEXT86* co
SET_CX( context, (drive < 26) ? drive : 0 );
break;
+ case 0x01: /* get drive device list */
+ {
+ CDROM_HEAP* cdrom_heap = CDROM_GetHeap();
+ CDROM_DEVICE_HEADER* dev = &cdrom_heap->hdr;
+ SEGPTR ptr_dev = ISV86(context)
+ ? MAKESEGPTR( cdrom_heap->cdrom_segment,
+ FIELD_OFFSET(CDROM_HEAP, hdr) )
+ : MAKESEGPTR( cdrom_heap->cdrom_selector,
+ FIELD_OFFSET(CDROM_HEAP, hdr) );
+
+ p = CTX_SEG_OFF_TO_LIN(context, context->SegEs, context->Ebx);
+ for (drive = 0; drive < dev->units; drive++) {
+ *p = drive; /* subunit */
+ ++p;
+ *(DWORD*)p = ptr_dev;
+ p += sizeof(DWORD);
+ }
+ TRACE("Get drive device list\n");
+ }
+ break;
+
case 0x0B: /* drive check */
SET_AX( context, is_cdrom(CX_reg(context)) );
SET_BX( context, 0xADAD );
More information about the wine-cvs
mailing list