X-Apparently-From: Message-ID: <005101c01fd8$f9b7e770$f4881004@dbcooper> From: "Patrick Moran" To: 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 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit 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" To: 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