Speaking of FreeDOS and DR DOS, is there also a "Free" BIOS?
Yes, I know the BIOS is hardware specific, but most PC compatible
platforms are the pretty much the same. Even if they aren't, it's nice to
have a starting point.
Bob
-----Original Message-----
From: cctalk-bounces at
classiccmp.org
[mailto:cctalk-bounces at
classiccmp.org] On Behalf Of Hans Franke
Sent: Friday, December 16, 2005 6:38 AM
To: General Discussion: On-Topic and Off-Topic Posts
Subject: Resources for DOS (was: DOS Compatable OS)
Am 14 Dec 2005 16:11 meinte Gary Sparkes:
On 12/14/05 3:53 PM, "Sean 'Captain
Napalm' Conner"
<spc at conman.org>
wrote:
> It was thus said that the Great Gary Sparkes once stated:
>> I'm rather bored, so I thought I
might try and hack together a
>> small project OS compatable with at least DOS 1.x or similar, is
>> there any decent resource for information on dos
compatability and
>> how to achieve it, or is it left as a
reverse
engineering exercise
>> for 'the reader' ? :)
> How compatable? If you go by the
published API for MS-DOS 1.x,
> then it should be pretty easy, but if by "compatable" you
mean
"run
> arbitrary MS-DOS programs, especially those
from
Microsoft" you may
> have your work cut out for you. You may
want to check out
>
http://www.freedos.org/.
I was thinking of going up compatability in
versions, such as going
from 1.x to 2.x etc, mainly because, well, I'm very, very bored :)
Well, that's like building two OSes, since 2 has been realy
something ifferent, aimed at bridgeing the gap from XPM to Xenix.
And of course, it'd be IBM PC compatable
stuff, not the odd machine
MS-DOS running thingies
That's not the question. MS/PC Dos is a rather machine
independent OS. as long as you a real mode x86 CPU, DOS
itself is compatible across virtualy all machines. Dos uses
for all its functionality BIOS calls and got no specialities
to bind it to IBM-PC Hardware.
Machine specific stuff was all in the BIOS - including lots
of additional functionality for non-IBM machinery. So,
straight DOS programms could be easy portet, if DOS was present.
For incompatibilities there where two major resons:
a) The Application did use Hardware and or BIOS specific functions,
like writing directly to screen buffers, doing DMA or fiddling
with the keyboard.
b) The Application used inofficial/not public documentated MS-DOS
calls, like $52 to get the DDA, the root of all things evil
(and subsequent the memory chain, or the SFT (*1)).
Most 'incompatible' application fall into cathegory a),
except for lots of MS Programms, which belong to cat b). To
my understanding this was what Sean ment with compatible
beyond the published API.
A real good book to stat of would be:
Arne Sch"apers - DOS 5 f"ur Programmierer.
I got no idea if there ever was an englisch edition, but it's
eventualy the best analysis and documentation of DOS ever
made. He covers not only DOS 2-5 but also DR-DOS and all
similarities and differences. Think of it as a documented,
debugged and extended version of
Andrew Schulman (et.al) - Undocumented DOS
Both books are from Addison-Wesley, so If you can't find
Arnes, Undocumented DOS is a good start anyway. The other
real helpful book would be
The MS-DOS Enzyclopedia from MS-Press
Good book, but of course only a compilation of the 'official'
material. only about 20% cover the DOS API, the rest is
somewhat like the mother of all DOS manuals. ~1500 pages in
one book. If you need a DOS-manual, try to get this book. It
even got a small entertaining history secttion. Originaly it
was HUGE a hard cover book for a unpayable price (I remember
500+ Mark).
Another very important book might be
Gunter Born - Dateiformate - Die Referenz
Again, German, and I don't know about a similar English book.
It lists everything from Lotus to Word, from Autocad to GEM.
Quite helpful - did I mention that I love to have information
as paper in front of me?
Oh, and last but not least, keep Ralf Browns IntList at hand
when starting the project, Sos is more than just INT 21.
Gruss
H.
*1 - I'm not completely shure it $52 was already present in DOS 1.0,
but it seams to make sense, especialy since funcions like $50/51
(GET/SET PSP) or $53 (TRANSLATE BPB) are in the same range and
should have been already present in 1.0 to my understanding.
Fits also with the idea of starting 'internal' functions at
such a number (80 decimal)
--
VCF Europa 7.0 am 29/30.April und 01.Mai 2006 in Muenchen
http://www.vcfe.org/