Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!mnetor!uunet!seismo!husc6!hao!ames!ptsfa!ihnp4!inuxc!iuvax!pur-ee!pc.ecn.purdue.edu!jmoore
From: jmoore@pc.ecn.purdue.edu (James D Moore)
Newsgroups: comp.sys.ibm.pc
Subject: Re: Interrupt 21H and function 30H
Message-ID: <729@pc.ecn.purdue.edu>
Date: Wed, 22-Jul-87 15:42:48 EDT
Article-I.D.: pc.729
Posted: Wed Jul 22 15:42:48 1987
Date-Received: Sat, 25-Jul-87 11:02:58 EDT
References: <802@sask.UUCP>
Reply-To: jmoore@pc.ecn.purdue.edu.UUCP (James D Moore)
Organization: Purdue University Engineering Computer Network
Lines: 22


I am not sure about dec but I have been looking at this during the last 
couple of days. According to a couple of books I have the interup 21H
and function 30H will return in AL the "major version number" and in
AH the "minor version number" (note that .1 is represented as AH). The
notable exception is that if AL contains a 0 it indicates a version of 
dos prior to the 2.0 DOS. I am not sure if the minor version of dos is
returned in this last case or not. There is one note that states that
BX and CX are destroyed by this interupt and are returned with a value
of 0. Since I have been writing a small program that will check this I
can testify that the above works. I am running MSDOS 3.10 and have 
checked my code on my IBM-XT at work running PC-DOS 3.20. Two good sources
for the above I have found to be Peter Nortons "Programmers guide to
the IBM PC" (excelent book and well written like all of his stuff) and
Robert Jourdain "Programmer's Problem Solver for the IBM PC,XT & AT"
(This book takes a different aproach and gives code in upper level 
languages then in intermediate level and then in low level code.) I
strongly reccomend the above to all users taht want to learn about the
internals.

Jim Moore
(jmoore@gb.ecn.purdue.edu)