delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1997/11/03/13:35:17

From: "Andrew Crabtree" <andrewc AT rosemail DOT rose DOT hp DOT com>
To: "Eli Zaretskii" <eliz AT is DOT elta DOT co DOT il>
Cc: <djgpp AT delorie DOT com>
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

>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



- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019