delorie.com/archives/browse.cgi   search  
Mail Archives: opendos/2000/09/16/08:25:12

X-Apparently-From: <pmoran22 AT yahoo DOT com>
Message-ID: <005101c01fd8$f9b7e770$f4881004@dbcooper>
From: "Patrick Moran" <pmoran22 AT yahoo DOT com>
To: <opendos AT delorie DOT com>
References: <39C2295E DOT 422C2A03 AT home DOT com>
Subject: Re: About Micro$quash DOS 7 (hiding in Win98).
Date: Sat, 16 Sep 2000 06:18:02 -0600
MIME-Version: 1.0
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.00.3018.1300
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.3018.1300
Reply-To: opendos AT delorie DOT com

I am not certain how well I can explain this. It gets very deep into
understanding the internals of the Intel microprocessors. I think I'll start
with WINDOZE 3.x and DOS. You cannot run WINDOZE 3.x on an Intel 8086/88 or
80286 in real mode. Although both the 8086/88 and 80286 are 16 bit
processors, there is a world of difference between them. Originally whem IBM
decided to use the 8088 chip and got with Gates to produce an operating
system for the proposed IBM PC, Intel warned them both about the new
processor that they were developing (80286) which would use protective
addressing mode. However, since neither IBM or Gates knew anything about
operating systems for PC computers, they did not listen. Gates bought an OS
from a company in Washington state. (Seattle Computer Products) This OS was
called QDOS (Quick and Dirty Operating System) which was developed for the
8086 basically by three former DRI people who had formed this new company
and basically copied CP/M and converted it for 16 bit use and the additional
memory capability (from 64K to 1024K) However, it was not written for
protected mode as this was already developed for 16 bit CP/M. After Gates
got this OS with a few minor changes for the IBM, the name was changed to
something like 86-DOS or DOS-86 or similar.  It was basically designed for
CP/M users. In fact the very first IBM PCs (before they were called PCs)
bragged that CP/M programs could be run on it. (CP/M-86)

Then Intel released the 80286 with it's protective mode addressing
capability. Of course DOS was incompativle with protextive mode. Intel also
messed up in the design of the 286. You could go into protected mode but you
could not return to normal (or real mode.) However, some hackers discovered
that their was an opcode that WOULD switch back to real mode from protective
mode. Intel had not documented this opcode as it was for internal Intel use.
People asked Intel about it and wanted to write programs to use protective
mode, but Intel would not promise that this method would be compatible with
future processors.

To understand what is happenng, you have to look inside the processors and
see the huge differences. First of all, if you look at the internal
archetecture of the 8086/88, it would appear to be little more than two 8085
microprocessors running in parallel. Each 8085 having it's own 8 bit data
and 16 bit addressing capabilities. It was easy to combine the two 8 bit
dataregisters to act as 16 bit registers. In fact this is nothing at all
new. The RCA COSMAC microprocessor used 16 8 bit registers which could be
used as 8 bit or 16 bit intenal registers. You could have up to 16 8 bit
registers or up to 8 16 bit registers or any combination of both.

The two 16 bit addressing registers were combined by offsetting one of them
by 4 bits. Without being able to draw a picture here, I'll describe it this
way. Take the two registers and put them one above the other. Then slide the
top one to the left 4 bits. This is exactly how the 8086/88 works,  You have
the Vase address 16 bits and the segmanted address of 16 bits. These two
addresses are eventually ADDED together before being applied to the
processors address output lines. (20 lines.) Thus you can get a 20 bit
addressing capability (1024K) from basically two 8 bit processors running in
parallel, with a 16 bit wide data bus. However, since Intel had not yet been
able to use better packaging than the 40 pin package, the address and data
lines were multiplexed to the same 16 pins of the chip package.

Now the 90286 also had the 20 bit base and segmented addressing capability
to keep it compatible with the 8086/88 processors. But now it also had a new
mode of operation of a flat 24 bit addressing capability. This allowed the
chip to address up to 16MB of memory. Of course the 8086/88 could not go
beyond 1MB becuase it only had 20 bit addressing capability. So enters the
now famous A20 gate! The A20 gate turns on or off the A20 line (A20 is the
A20 address line.) The 8086 had A0-A19 address lines for a total of 20. The
80286 has A0-A23 for a total of 24 address lines. You could address beyond
1MB with the 8086/88 but the was no A20 address line available for it to go
out on to the bus and address that additional physical memory, so what it
did was wrap around back to the beginning addresses of the processor.  Some
prgrammers used this trick in programming. Basically the highest BASE
component of the address is FFFF0, if you add the highest segmented address
of 0FFFF to the the result would be 10FFEF or 1 megabyte + 64KB - 16Bytes.

When the A20 gate is turned on you can now address up to 10FFEF bytes of
memory with standard DOS. They only requirement is that the program that
will utilize this higher addressing mode must start within the last 16 bytes
of the first 1MB of memory, i.e. FFFF0-FFFFF, or in segmented language
F000:FFF0-F000:FFFF. This is the start of what is called HMA. LIM 4.0 was
developed for this use (as was LIM 3.2.) Once the A20 gate is turned on you
now have access to the upper 15MB of memory available for the 80286 chip.

Next comes the 80386. It includes everything that the 80286 has with the
addition of another 8 bits of addressing or 32 bits/lines for up to 4GB
addressing. It also included a new mode of addressing. That new mode is
protected virtual mode for the 8086 or virtual 86 mode. This allows programs
written for the 8086 to run in protected mode and each virtual 8086 will
have 1MB of RAM available to it. The 80286 does not have this mode. The
80386 is also a 32 bit processor which has 32 data lines instead of 16 as in
the 8086 and 80286 processors. Many bew opcodes were added to the 90386 for
32 bit operation. These opcodes are not available in the 8086 and 286
processors.

With WINDOZE 3.x, you are operating in the virtual 8086 mode (V86) You can
still use a 286 with WINDOZE 3.x but not in the 8086 protected mode.

Now let's get back to why you cannot run WINDOZE 98 from 16 bit DOS. You
cannot even do it with MS DOS below version 7.0 and if you are using FAT 32,
probably not below MSDOS v7.1.  If you will take notice of the system files
in MSDOS 7.0/7.1, you will notice a huge IO.SYS file and an almost non
existant MSDOS.SYS file (something like 1649 bytes.)  Also the COMMAND.COM
is much largewr (around 98K.) These files are loaded when the system first
boots and before WINDOZE 95/98 is loaded. This is the DOS 7.0/7.1 being
loaded. Then WIN.COM is executed and WINDOZE loads.

When NT, Linux, UNIX, OS/2, QNX, BSD, Solaras, or other such OSes load from
DOS they esentially reboot the computer and load their respective kernels
and are not really being loaded by DOS. In fact Linux does not even use the
BIOS once it's kernel is loaded. This may be true of the other OSes as well.

So to boot WINDOZE 95/98/ME, you need a boot diskette with MSDOS 7/1 (7.0
for 95a or 16 bit FATS) So be sure and make a STARTUP diskette. Also make
sure if you install ME to make a new one for ME as the old 95/98 ones will
not work. It makes a RAM drive and installs a bunch of stuff there for
troubleshooting. ME warns you about this if you read the README files. As I
understand it, ME uses somewhat an NT kernel, but not the same as 2000. It
is still basically WINDOZE 98. You can still get the big bad blue screen,
but now it works more like NT and does not freeze. It now stops the crashed
process.

In short: The kernels are different for DOS and WINDOZE 95/98/ME below MSDOS
7.0. I don't know about PCDOS (IBMDOS) 2000. It may be able to boot WINDOZE
98.

What you meed is a boot manager to be able to boot the older DOSes or
WINDOZE 95/98/ME/NT/2000. There are many shareware boot managers as well as
commercial ones. I use either DRDOS boot manager (LOADER) or Linux LILO.

I hope this helps, but like I said in the beginning, it is very complex. Why
IBM cose the 8086, I'll never figure out. The Motorola 68K series or the
Zilog 8K series would have been a much better choice or they should have
waited for the 80286 Intel. But IBM pabiced and thought if they did not get
something on the market right away, they would lose out in the PC market. If
the idiots had not snubbed us PC users in the beginning, we would not have
the problems we have today. The only reason I went from my APPLE ][+ to an
IBM instead of an APPLE ][gs was because the large company I was working for
decided to go with IBM. We had been using APPLE ][e, APPLE ][gs, Commodore
C-128, OSI and IBM XTs as well as some other PCs, when they decided to go
with IBMs. Else I'd probably had gone with a 68K system. When IBM came out
with that lousy PC and XT, a Tandy Trash 80 could out perform it at 1/10th
the cost! My APPLE ][+ would run circles around it and I only had 192K RAM.
I was never impressed with the IBM and the first one I had was a 10MHz AT
clone 286 (overclocked to 11MHz.) As far as I am or ever was concerned the
IBM PC/XT was nothing but junk and way behind the rest of the PC world. Even
the AT could not perform as well as an older APPLE ][gs when it came to
graphics and multi-media.

You are probably just as comused as everyone else about the whys and whats
of the IBM PC. I have tried to explain this as simply as I can and yet
include enough information not to be blunt and just say you need MSDOS 7.1
or higher to boot 98. In short: DOS was not designed for anything other than
the 8086, but has been adapted to the 80286 and 80386 in some ways to use
the higher memory available in crude ways. DOS is really mostly an 8 bit OS
with some 16 bit capability. WINDOZE is a 16 bit OS with some 32 bit
capability. In faxt, the first version of WINDOZE 95 was 78% 8/16 bit code.
How Gates got away with calling it a 32 bit OS beats me! NT is a 32 bit OS,
but is also lacks a lot to be desired. I love Linux, a true 32 bit OS and
soon to be 64 bit OS.

Pat


----- Original Message -----
From: "David A. Cobb" <superbiskit AT home DOT com>
To: <opendos AT delorie DOT com>
Sent: Friday, September 15, 2000 7:51 AM
Subject: About Micro$quash DOS 7 (hiding in Win98).


> Does anyone know in what particulars, technically, the "real mode
> windows" stuff that boots for Win98 is that makes it different from DOS?
>
> Between the lines, why can't an "alternative DOS" run Win.com?



_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com

- Raw text -


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