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