From: "Andrew Crabtree" To: "Eli Zaretskii" Cc: Subject: Re: Incompatibilities with NT Date: Mon, 3 Nov 1997 10:35:00 -0800 Message-Id: <01bce887$31798dd0$45111d0f@ros51675cra.rose.hp.com> Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Precedence: bulk >One possibility that I can think of is that Clearcase uses the NT >SUBST command to create that driveThere are 3 functions of Interrupt 21h, AX=71AAh, >described in the Interrupt List, that seem to support a new mechanism >of SUBST under Windows 9X; maybe NT works this way also? One of these >functions allows to query what's the pathname associated with a given >SUBST'ed drive. I attach the info from the Interrupt List below; it >would be interesting to see whether this function tells anything >useful about your M: drive. Well, I could have definitely screwed this test program up, but it doesn't appear that my buffer is getting overwriten with anything. I don't have my dos or intel references here, but it assembles and runs. Here's the output - C:\nasm\TEST>testme Subst return string should overwrite this hello world c:\nasm\TEST> Here's the program (I borrowed an old hello world program and left it in there) [BITS 16] [ORG 0x100] [SECTION .text] jmp start ; [6] end mov ax,0x4c00 ; [1] int 0x21 ;; INT 21 - Windows95 - LONG FILENAME - QUERY SUBST ;; AX = 71AAh ;; BH = 02h ;; BL = drive number (01h = A:, etc.) ;; DS:DX -> buffer for ASCIZ pathname associated with drive letter ;; Return: CF clear if successful ;; DS:DX buffer filled ;; CF set on error ;; AX = error code (see #1366) ;; 7100h if function not supported ;; Note: the specified drive number may not be 00h (default drive) ;; SeeAlso: AX=71AAh/BH=00h,AX=71AAh/BH=01h,INT 2F/AX=1000h,#1329 start mov ax, 0x71aa ; Win95 LFN query subst mov bh, 0x2 ; "" mov bl, 0xd ; select drive m ;; ds: dx pointer to buffer mov dx, ccase_buf int 0x21 ; call dos jc end ; call printstr mov dx,hello ; [1] [4] [7] call printstr jmp end printstr : mov ah,9 int 0x21 ret [SECTION .data] hello db 'hello world', 13, 10, '$' ; [2] ccase_buf db 'Subst return string should overwrite this',13,10,'$'; big buf to use