Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.2 9/18/84; site voder.UUCP
Path: utzoo!linus!decvax!decwrl!amd!fortune!hpda!hplabs!nsc!voder!gino
From: gino@voder.UUCP (Gino Bloch)
Newsgroups: net.sources.bugs,net.micro,net.micro.pc
Subject: Re: PC-DOS/MS-DOS `touch' command
Message-ID: <484@voder.UUCP>
Date: Mon, 29-Oct-84 16:30:50 EST
Article-I.D.: voder.484
Posted: Mon Oct 29 16:30:50 1984
Date-Received: Fri, 2-Nov-84 04:13:23 EST
References: <419@voder.UUCP>
Organization: National Semiconductor, Santa Clara
Lines: 27

[untouchable line]

I posted the source to a `touch' command for MS-DOS 2.x; it ran fine on
my PC at work (where I used v 1.27 of the Microsoft Macro Assembler), but
I later discovered that a bug in the IBM Macro Assembler v1.00 causes
incorrect assembly.  The problem is in the sixth line below (the one with
`xor' in it):
> to_upper:
> 	cmp	al,'a'		; convert to UC
> 	jb	short uc_end	; this isn't lc
> 	cmp	al,'z'
> 	ja	short uc_end	; nor is this
> 	xor	al,'a' xor 'A'	; this one was
> uc_end:	ret
One work-around is to change the line to:
 	xor	al,'a'-'A'	; this one was
This bug is among those documented a few months ago in Dr Dobb's Journal, I
think (but I haven't checked).  Another work-around, of course, is to use the
Microsoft assembler.

As long as I'm here, I'd like to mention that the message:
> no_file	  db	'touch: file not found',0dh,0ah,'$'
in my code is probably misleading; it would be more accurate if it said:
  no_file	  db	'touch: no matching file name',0dh,0ah,'$'
or some such.
-- 
Gene E. Bloch (...!nsc!voder!gino)