delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2000/11/09/10:15:22

From: ad354 AT FreeNet DOT Carleton DOT CA (James Owens)
Newsgroups: comp.os.msdos.djgpp
Subject: Re: InfoZIP vol label: force it, but please advise
Date: 9 Nov 2000 14:58:39 GMT
Organization: The National Capital FreeNet
Lines: 37
Message-ID: <8uee2v$1v7$1@freenet9.carleton.ca>
References: <Pine DOT SUN DOT 3 DOT 91 DOT 1001108090500 DOT 4601G-100000 AT is> <8ubi1t$j7k$1 AT freenet9 DOT carleton DOT ca> <1659-Wed08Nov2000195636+0200-eliz AT is DOT elta DOT co DOT il> <8uc9gb$mvn$1 AT freenet9 DOT carleton DOT ca> <9003-Thu09Nov2000002038+0200-eliz AT is DOT elta DOT co DOT il>
NNTP-Posting-Host: freenet10
X-Trace: freenet9.carleton.ca 973781919 2023 134.117.136.30 (9 Nov 2000 14:58:39 GMT)
X-Complaints-To: complaints AT ncf DOT ca
NNTP-Posting-Date: 9 Nov 2000 14:58:39 GMT
X-Given-Sender: ad354 AT freenet10 DOT carleton DOT ca (James Owens)
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp
Reply-To: djgpp AT delorie DOT com

"Eli Zaretskii" (eliz AT is DOT elta DOT co DOT il) writes:
>> From: ad354 AT FreeNet DOT Carleton DOT CA (James Owens)

>> I compiled the unmodified source under Win98 and I get different
>> behaviour. It will label the diskette without truncating, but only if the
>> diskette is not already labelled (that gets "error setting volume label".)
> 
> This is a different problem, it comes out of the code that actually
> puts the label on the floppy.  I suggest to solve one problem at a
> time; if you want to solve this one first, post here the code which
> labels the disk.

Here are what seem to be the relevant bits of volumelabel():

/*---------------------------------------------------------------------------
    If not previously labelled, write a new label.  Otherwise just rename,
    since MS-DOS 2.x has a bug that damages the FAT when the old label is
    deleted.
---------------------------------------------------------------------------*/
        regs.h.ah = 0x17;                 /* FCB rename */

        F_intdosx(&regs, &regs, &sregs);
        if (regs.h.al) {
            Trace((stderr, "Unable to change volume name (AL = %x)\n",
              regs.h.al));
            retv = 1;


F_intdosx is defined thus (for non-Watcom compilers):

#  define F_intdosx(ir,or,sr) intdosx(ir, or, sr)


--

                                     James Owens  ad354 AT Freenet DOT carleton DOT ca
                                     Ottawa, Ontario, Canada

- Raw text -


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