no keyboard

F

Franc Zabkar

Re: Don Phillipson - where are you? Why don't you respond? (to this: Re: no keyboard)

On Thu, 20 Sep 2007 08:59:48 -0400, 98 Guy <98@Guy.com> put finger to
keyboard and composed:

>Franc Zabkar wrote:
>
>> I have added the following line to my msdos.sys file:
>>
>> BootGUI=0
>>
>> This forces my machine to boot to DOS, after which I can
>> choose to launch win.com.
>>
>> If win.com is not executed, then the machine boots into real DOS
>> mode. If win.com *is* executed, then the machine returns to real
>> DOS mode when the GUI terminates. Doesn't this behaviour support
>> Don's original statement?

>
>That's like saying if I have a dual-boot sysem (98 and XP) that you
>could say that "XP is built atop win-98".
>
>You are forcing your system to default into starting in DOS mode with
>your BootGUI=0 setting. I can do the same thing by pressing F8 during
>startup and selecting "command-prompt only".
>
>Another example: If I have an XP system, with the boot order set to
>boot from the floppy drive first, then the hard drive second. If I
>have a DOS boot floppy in the drive while the system is starting, well
>guess what - the system starts and remains in DOS. But the system has
>XP installed on it - that must mean that XP is "built atop of MS-DOS"
>doesn't it?


I don't see that as a valid analogy.

>Again, just because all the DOS system files are *present* and
>*startable* on a win-98 system doesn't mean that win-98 relies on them
>or their internal functions. Win-98 has replicated many of the dos
>functions (and added MANY more) with 32-bit code.


Yes, I understand that. I didn't mean to imply that Windows *relies*
on DOS, or BIOS for that matter, once it is up and running.

>It's more correct to think of a win-98 system as a dual-boot
>DOS/Windows system, rather than thinking that Win-98 (a multi-tasking,
>32-bit protected mode operating system) is "running atop" DOS (a
>single-tasking, real-mode, 16-bit OS).


In my example I have a DOS batch file, autoexec.bat, which calls
win.com. When the GUI terminates, the system resumes executing
autoexec.bat. Doesn't this prove that DOS is "idling" in the
background? Isn't win.com just another task?

- Franc Zabkar
--
Please remove one 'i' from my address when replying by email.
 
9

98 Guy

Re: Don Phillipson - where are you? Why don't you respond? (to this:

Franc Zabkar wrote:

> In my example I have a DOS batch file, autoexec.bat, which calls
> win.com. When the GUI terminates, the system resumes executing
> autoexec.bat. Doesn't this prove that DOS is "idling" in the
> background? Isn't win.com just another task?


DOS is written in 16-bit machine code and is a single-tasking
operating system that runs on x86 CPU's that operate in real or
standard mode.

Windows 9x (as well as some aspects of Win-3x) is written in 32-bit
code and switch the CPU into protected mode, which is a very important
difference and has many ramifications as to how memory is managed and
accessed.

This link details some of the items being discussed:

http://www.microsoft.com/technet/archive/win98/reskit/part5/wrkc26.mspx?mfr=true

Under the heading "Technical Notes on MS-DOS Components in Windows 98"
we have the following:

-----------------------------
Many users have wondered whether Windows 98 contains MS-DOS code
and, if so, whether that means that Windows 98 is somehow built
on top of MS-DOS. Many of these questions relate to how Windows
98 achieves the highest possible degree of compatibility with
existing devices and applications created for MS-DOS and Windows
3.x. Three key questions are answered here:

1) How does Windows 98 support internal processes and certain
application services?

2) How does Windows 98 reclaim memory from real-mode drivers?

3) Why does Io.sys load Win.com rather than directly loading
Vmm32.vxd?

The following services were written for Windows 95 and Windows 98,
and are not revisions to MS-DOS code:

- Process and thread memory management.
- Interprocess communications and synchronization.
- Preemptive Win32 subsystem.
- CD-ROM, hard disk, and network input/output (I/O) services.
- High-level graphics operations and window management.
- Printing services.

Some functions, however, are handled by MS-DOS code, although
the code itself is running in virtual 8086 mode, not real mode.
Functions implemented in this manner ensure backward compatibility
with existing real-mode software, such as the Novell NetWare
client. The following list shows such functions:

Create Program Segment Prefix (function 55h)
Get MS-DOS Version (function 30h)
Create Temp File (function 5Ah)
International (function 65h)
Dup File Handle (function 45h)
Set/Get Drive (functions 0Eh and 19h)
Exit (function 4Ch)
Set/Get Program Segment Prefix (functions 50h and 51h)
Get Date/Time (functions 2Ah and 2Ch)
NetWare Get Station Num (function DCh)
-----------------------------------

So basically, Win-9x keeps at least one copy of DOS running in it's
own virtual environment just to be able to handle the above function
calls in case the user is running any legacy 16-bit DOS/Windows (or
Netware) software. It goes on to say:

------------------------------------
As a final example, some users have wondered whether the fact that
Io.sys loads Win.com (rather than loading Vmm32.vxd directly) is an
indication that Windows 98 is built on Windows 3.x code, with the
addition of new VxDs. Actually, Io.sys is used to load Win.com only
to ensure backward compatibility. Certain real-mode drivers and
terminate-and-stay-resident (TSR) programs insert themselves at
various places in the Windows 3.1 startup process. If Windows 98
were to bypass the loading of Win.com and instead load VxDs
directly,
any driver that needs to insert itself when Win.com is loaded would
never be called. Instead, Windows 98 starts in precisely the same
way as Windows 3.1 and loads the same components in the same order,
ensuring compatibility with earlier versions of applications and
device drivers.
--------------------------------------

Command.com and Io.sys are needed during the early stages of the boot
process when the BIOS passes control to the boot device. Io.sys is
the system boot loader. It takes control from the BIOS and transfers
it to Win98 via Win.com. Io.sys uses Msdos.sys to locate information
needed during the boot process (like the location of the main Windows
files). Win.com is the real-mode "stub" used to start Windows.
Win.com and Vmm32.vxd essentially launch the system into protected
mode.

Dan wrote in a recent post:

> The graphical user interface (GUI) runs on a DOS-based layer.


I don't know where he got that from, but it's completely false. When
windows 9x is running, it's running in 32-bit protected mode. DOS has
absolutely no idea about the functionality of that mode - it can't
operate in that mode nor can it launch applications into that mode -
let alone the entire windows OS. All hardware drivers are operating
in 32-bit protected mode. It is absurd to claim that such
functionality is happening in a "DOS-based" layer.

Again - Win-9x does run an instance of DOS in a (hidden?) virtual
environment, but only to handle a paltry few functions. That is a far
cry from saying that Windows 9x is "built atop DOS".

Note also this:

-------------------------
MS-DOS Mode and Performance

Do not assume that running an MS-DOS-based application in MS-DOS
mode provides better performance. When an application runs in MS-
DOS mode, Windows 98 and all of its protected-mode drivers are
unloaded, so the application is running in real mode with exclusive
use of the computer's resources.

Although this might help with a few applications that otherwise
cannot run under Windows 98, it does not benefit performance
overall,
because the application does not get the benefit of protected-mode
drivers, VCACHE, 32-bit disk access, and so on. Also, real-mode
device drivers must be loaded, reducing the amount of conventional
memory available to the application.
---------------------------

This link provides some insight into the differences between win-3x,
win-9x and NT/2K:

http://msdn.microsoft.com/msdnmag/issues/0700/hood/

If I'm not mistaken, the reason for the 2 gb (real) memory limitation
for win-98 can be found there as well - if you read between the lines.
 
D

Dan

Re: Don Phillipson - where are you? Why don't you respond? (to t

Well, if I made a mistake, I will thank you for the correction. I think you
should be the one to help Microsoft put out a new 9x consumer operating
system since you have this down. It would be a great help to our schools to
run older programs like Space for Windows 3.1 that is not able to run in XP
or Vista and it would also be helpful to consumers who want to run their old
MS-DOS games well and with complete compatibility.

"98 Guy" wrote:

> Franc Zabkar wrote:
>
> > In my example I have a DOS batch file, autoexec.bat, which calls
> > win.com. When the GUI terminates, the system resumes executing
> > autoexec.bat. Doesn't this prove that DOS is "idling" in the
> > background? Isn't win.com just another task?

>
> DOS is written in 16-bit machine code and is a single-tasking
> operating system that runs on x86 CPU's that operate in real or
> standard mode.
>
> Windows 9x (as well as some aspects of Win-3x) is written in 32-bit
> code and switch the CPU into protected mode, which is a very important
> difference and has many ramifications as to how memory is managed and
> accessed.
>
> This link details some of the items being discussed:
>
> http://www.microsoft.com/technet/archive/win98/reskit/part5/wrkc26.mspx?mfr=true
>
> Under the heading "Technical Notes on MS-DOS Components in Windows 98"
> we have the following:
>
> -----------------------------
> Many users have wondered whether Windows 98 contains MS-DOS code
> and, if so, whether that means that Windows 98 is somehow built
> on top of MS-DOS. Many of these questions relate to how Windows
> 98 achieves the highest possible degree of compatibility with
> existing devices and applications created for MS-DOS and Windows
> 3.x. Three key questions are answered here:
>
> 1) How does Windows 98 support internal processes and certain
> application services?
>
> 2) How does Windows 98 reclaim memory from real-mode drivers?
>
> 3) Why does Io.sys load Win.com rather than directly loading
> Vmm32.vxd?
>
> The following services were written for Windows 95 and Windows 98,
> and are not revisions to MS-DOS code:
>
> - Process and thread memory management.
> - Interprocess communications and synchronization.
> - Preemptive Win32 subsystem.
> - CD-ROM, hard disk, and network input/output (I/O) services.
> - High-level graphics operations and window management.
> - Printing services.
>
> Some functions, however, are handled by MS-DOS code, although
> the code itself is running in virtual 8086 mode, not real mode.
> Functions implemented in this manner ensure backward compatibility
> with existing real-mode software, such as the Novell NetWare
> client. The following list shows such functions:
>
> Create Program Segment Prefix (function 55h)
> Get MS-DOS Version (function 30h)
> Create Temp File (function 5Ah)
> International (function 65h)
> Dup File Handle (function 45h)
> Set/Get Drive (functions 0Eh and 19h)
> Exit (function 4Ch)
> Set/Get Program Segment Prefix (functions 50h and 51h)
> Get Date/Time (functions 2Ah and 2Ch)
> NetWare Get Station Num (function DCh)
> -----------------------------------
>
> So basically, Win-9x keeps at least one copy of DOS running in it's
> own virtual environment just to be able to handle the above function
> calls in case the user is running any legacy 16-bit DOS/Windows (or
> Netware) software. It goes on to say:
>
> ------------------------------------
> As a final example, some users have wondered whether the fact that
> Io.sys loads Win.com (rather than loading Vmm32.vxd directly) is an
> indication that Windows 98 is built on Windows 3.x code, with the
> addition of new VxDs. Actually, Io.sys is used to load Win.com only
> to ensure backward compatibility. Certain real-mode drivers and
> terminate-and-stay-resident (TSR) programs insert themselves at
> various places in the Windows 3.1 startup process. If Windows 98
> were to bypass the loading of Win.com and instead load VxDs
> directly,
> any driver that needs to insert itself when Win.com is loaded would
> never be called. Instead, Windows 98 starts in precisely the same
> way as Windows 3.1 and loads the same components in the same order,
> ensuring compatibility with earlier versions of applications and
> device drivers.
> --------------------------------------
>
> Command.com and Io.sys are needed during the early stages of the boot
> process when the BIOS passes control to the boot device. Io.sys is
> the system boot loader. It takes control from the BIOS and transfers
> it to Win98 via Win.com. Io.sys uses Msdos.sys to locate information
> needed during the boot process (like the location of the main Windows
> files). Win.com is the real-mode "stub" used to start Windows.
> Win.com and Vmm32.vxd essentially launch the system into protected
> mode.
>
> Dan wrote in a recent post:
>
> > The graphical user interface (GUI) runs on a DOS-based layer.

>
> I don't know where he got that from, but it's completely false. When
> windows 9x is running, it's running in 32-bit protected mode. DOS has
> absolutely no idea about the functionality of that mode - it can't
> operate in that mode nor can it launch applications into that mode -
> let alone the entire windows OS. All hardware drivers are operating
> in 32-bit protected mode. It is absurd to claim that such
> functionality is happening in a "DOS-based" layer.
>
> Again - Win-9x does run an instance of DOS in a (hidden?) virtual
> environment, but only to handle a paltry few functions. That is a far
> cry from saying that Windows 9x is "built atop DOS".
>
> Note also this:
>
> -------------------------
> MS-DOS Mode and Performance
>
> Do not assume that running an MS-DOS-based application in MS-DOS
> mode provides better performance. When an application runs in MS-
> DOS mode, Windows 98 and all of its protected-mode drivers are
> unloaded, so the application is running in real mode with exclusive
> use of the computer's resources.
>
> Although this might help with a few applications that otherwise
> cannot run under Windows 98, it does not benefit performance
> overall,
> because the application does not get the benefit of protected-mode
> drivers, VCACHE, 32-bit disk access, and so on. Also, real-mode
> device drivers must be loaded, reducing the amount of conventional
> memory available to the application.
> ---------------------------
>
> This link provides some insight into the differences between win-3x,
> win-9x and NT/2K:
>
> http://msdn.microsoft.com/msdnmag/issues/0700/hood/
>
> If I'm not mistaken, the reason for the 2 gb (real) memory limitation
> for win-98 can be found there as well - if you read between the lines.
>
 
T

Tim Slattery

Re: Don Phillipson - where are you? Why don't you respond? (to this: Re: no keyboard)

98 Guy <98@Guy.com> wrote:

>DOS is written in 16-bit machine code and is a single-tasking
>operating system that runs on x86 CPU's that operate in real or
>standard mode.


Minor nit-pick: I expect it was written mostly in C, with some
assembler in places. Writing directly in machine language was dropped
when the first assembler appeared, and that happened very early on.
Actual machine code would be *extremely* brittle in the first place,
and it would be nearly impossible to keep track of what you were doing
for any period of time. You'd go nuts within a week.

>Windows 9x (as well as some aspects of Win-3x) is written in 32-bit
>code and switch the CPU into protected mode, which is a very important
>difference and has many ramifications as to how memory is managed and
>accessed.


No question there. The switch to protected mode enabled the system to
make use of more than 1MB of RAM. Win3.x was written to the 286's
memory model: still using 64KB segments, but a maximum of 16MB is
usable. Win3.x used a 386 facility to allow for multiple DOS boxes
(Virtual x86 mode). The Win32 model used in Win9x, and the entire
WinNT family (including Win2K, WinXP, and Vista), allows a single,
flat 4GB memory space, a *very* good thing for programmers! The 64-bit
systems, of course, allow a vastly larger address space. I think the
current implementations allow for 128GB.

--
Tim Slattery
MS MVP(DTS)
Slattery_T@bls.gov
http://members.cox.net/slatteryt
 
Back
Top Bottom