Jump to content

Welcome to MSFN Forum
Register now to gain access to all of our features. Once registered and logged in, you will be able to create topics, post replies to existing threads, give reputation to your fellow members, get your own private messenger, post status updates, manage your profile and so much more. This message will be removed once you have signed in.
Login to Account Create an Account


Photo

Windows Me IO.SYS (WINBOOT.SYS) format

- - - - -

  • Please log in to reply
29 replies to this topic

#1
Petr

Petr

    Friend of MSFN

  • Member
  • PipPipPipPipPip
  • 981 posts
  • OS:98SE
  • Country: Country Flag
Hello,

does anybody know what is the internal format of the IO.SYS file in Windows Me?

As it is well known, all IO.SYS (WINBOOT.SYS, WINBOOT.EBD) files published by Microsoft in the Q311561 knowledge base article are English version, although they claim to be localized - they are not.

For Windows 98 (SE) it is very easy, there are just three standard blocks of localizable texts, so it is no problem to transfer them from the original localized IO.SYS to Q311561 IO.SYS.

But Windows Me IO.SYS uses some different format, it seems to be packed but I have no idea how to unpack it or how to put localized part of the IO.SYS to the IO.SYS from Q311561.

Any ideas?

Petr


How to remove advertisement from MSFN

#2
LLXX

LLXX

    MSFN Junkie

  • Banned
  • PipPipPipPipPipPipPipPipPip
  • 3,399 posts
Couldn't you just use the DOS 7.1 IO.SYS (98se)?

#3
os2fan2

os2fan2

    Advanced Member

  • Member
  • PipPipPip
  • 421 posts
Windows ME requires MS-DOS 8.00, not MS-DOS 7,10. Therefore the 7.10 file is of no use.

The file format is DOS COM files. It basically consists of the old ibmbio.com + ibmdos.com + a bitmap (order unknown).

W

#4
LLXX

LLXX

    MSFN Junkie

  • Banned
  • PipPipPipPipPipPipPipPipPip
  • 3,399 posts
...or you could change the version number it returns, that should get it to work...

I don't think they implemented any new functions in DOS 8.00, other than removing pure DOS mode.

#5
Petr

Petr

    Friend of MSFN

  • Member
  • PipPipPipPipPip
  • 981 posts
  • OS:98SE
  • Country: Country Flag
I can use either original winboot.sys or English winboot.sys from Q311561, I do't think it is godd idea to use winboot.sys from Windows 98 SE - besides of different DOS implemented, it is much bigger, contains different logo etc. And what more, Windows Me contains also different version called winboot.ebd for use on the boot disk.

For correct localization of Windows Me service pack it is necessary to localize also winboot.sys and winboot.ebd - but I don't know how, the contents is not readable, it looks packed.

Petr

Edited by Petr, 26 June 2006 - 12:00 AM.


#6
MDGx

MDGx

    98SE2ME + 98MP10

  • Super Moderator
  • 2,678 posts
  • OS:none specified
  • Country: Country Flag
There was a Russian forum a while back, where somebody posted a stripped 98SE Russian IO.SYS, without the Bitmap [logo].
But that was along time ago, and I don't have the URL. :(

I do have the file though.

Attached File  IONOLOGO.ZIP   73.36KB   168 downloads

HTH

#7
Petr

Petr

    Friend of MSFN

  • Member
  • PipPipPipPipPip
  • 981 posts
  • OS:98SE
  • Country: Country Flag

There was a Russian forum a while back, where somebody posted a stripped 98SE Russian IO.SYS, without the Bitmap [logo].
But that was along time ago, and I don't have the URL. :(

I do have the file though.

Attached File  IONOLOGO.ZIP   73.36KB   168 downloads

HTH


Thank you, this io.sys witout logo was posted here also by Tihiy some time ago.

Yes, there may be several workarounds, but I'd still prefer to be able to move localized strings into original io.sys for ME from Q311561.

Does anybody know that is the difference in functionality of winboot.sys and winboot.ebd in Windows Me? The size is different.

Petr

#8
MDGx

MDGx

    98SE2ME + 98MP10

  • Super Moderator
  • 2,678 posts
  • OS:none specified
  • Country: Country Flag
I believe [?] that...
- winboot.sys [110080 bytes = renamed to c:\io.sys] is installed by WinME normal setup.
Should say "Starting Windows ME".
- winboot.ebd [116736 bytes = renamed to a:\io.sys] is installed by WinME emergengy boot floppy setup.
Should say "Starting Windows ME in emergency mode".
- winboot.lf [108544 bytes = renamed to d:\io.sys] is installed by WinME boot CD during normal setup.
Should say "Starting Windows ME".

These 3 files are from US English WinME setup CD-ROM inside CABs.

There is also a 4th file [? bytes = fake floppy boot drive e:\io.sys which seems to load in RAM (RAM drive)], which is created by WinME CD setup during normal install.
It doesn't seem to exist [or at least I couldn't find it] inside the WinME CD-ROM CABs.
This IO.SYS should say "Starting new computer".

In this case the [default] computer has:
- 1 HD drive: C
- 1 floppy drive: A
- 1 CD-ROM drive: D

HTH

#9
_Smoker

_Smoker

    Newbie

  • Member
  • 16 posts
  • OS:XP Pro x86
  • Country: Country Flag

I believe [?] that...
- winboot.sys [110080 bytes = renamed to c:\io.sys] is installed by WinME normal setup.
Should say "Starting Windows ME".
- winboot.ebd [116736 bytes = renamed to a:\io.sys] is installed by WinME emergengy boot floppy setup.
Should say "Starting Windows ME in emergency mode".
- winboot.lf [108544 bytes = renamed to d:\io.sys] is installed by WinME boot CD during normal setup.
Should say "Starting Windows ME".

These 3 files are from US English WinME setup CD-ROM inside CABs.

There is also a 4th file [? bytes = fake floppy boot drive e:\io.sys which seems to load in RAM (RAM drive)], which is created by WinME CD setup during normal install.
It doesn't seem to exist [or at least I couldn't find it] inside the WinME CD-ROM CABs.
This IO.SYS should say "Starting new computer".

In this case the [default] computer has:
- 1 HD drive: C
- 1 floppy drive: A
- 1 CD-ROM drive: D

HTH

4th file is no fake!
For purpose of booting from C: drive, an unmodified IO.SYS from simulated A: boot diskette image placed on Windows ME OEM CD from which that CD boots can be used, and English COMMAND.COM can be modified by replacing in this file at hex offset 00006510 byte 75 by byte EB.
Io.sys file size is 116736 bytes.
Startup message:
Now preparing to start your new computer. . .

In additional:
Microsoft Windows Millenium Startup Menu from this floppy image Windows ME OEM CD has no differences with the Startup Menu Windows 98 SE Attached File  menu01.gif   3.74KB   30 downloads
& DBLBUFF.SYS and IFSHLP.SYS load automatically from IO.SYS.

Microsoft updated ms-dos kernel files both version 7.10 & 8.0 MS-DOS Does Not Properly Process Hard Disk Hardware Errors
In Windows Millennium Edition Q311561 Update package 2 files
Date Time Size File name
-----------------------------------------
29-Nov-2001 09:30 116,736 winboot.ebd
-----------------------------------------
29-Nov-2001 12:29 110,080 winboot.sys
Last "cosmetic" update: With Windows Vista the files on the startup disk are dated 18th April 2005 but are otherwise unchanged, Io.sys file size is 116736 bytes

Edited by _Smoker, 16 May 2010 - 04:15 PM.


#10
_Smoker

_Smoker

    Newbie

  • Member
  • 16 posts
  • OS:XP Pro x86
  • Country: Country Flag
Uncompressed with The Decompressor for IO.SYS Version 8 by Rudolph R. Loew, IO.SYS file size is 280064 bytes can be reduced to 149456 bytes with any hex-editor, only cut from BM6 identifier to end of file

#11
dencorso

dencorso

    Adiuvat plus qui nihil obstat

  • Supervisor
  • 5,841 posts
  • OS:98SE
  • Country: Country Flag

Donator

Uncompressed with The Decompressor for IO.SYS Version 8 by Rudolph R. Loew, IO.SYS file size is 280064 bytes can be reduced to 149456 bytes with any hex-editor, only cut from BM6 identifier to end of file

Not quite. By doing this you'll be stripping the bitmap, but also another module that follows it, which starts at file offset 0x44006. The bitmap starts at 'BM' but ends at 0x44005, since the file size (the dword that follows "BM") is 0x1F836...

#12
_Smoker

_Smoker

    Newbie

  • Member
  • 16 posts
  • OS:XP Pro x86
  • Country: Country Flag


Uncompressed with The Decompressor for IO.SYS Version 8 by Rudolph R. Loew, IO.SYS file size is 280064 bytes can be reduced to 149456 bytes with any hex-editor, only cut from BM6 identifier to end of file

Not quite. By doing this you'll be stripping the bitmap, but also another module that follows it, which starts at file offset 0x44006. The bitmap starts at 'BM' but ends at 0x44005, since the file size (the dword that follows "BM") is 0x1F836...

Thanks, I've corrected my IO.SYS.

How to remove DOS configuration manager from uncompressed MS-DOS 8.0 IO.SYS?

Edited by _Smoker, 17 May 2010 - 05:09 AM.


#13
Tihiy

Tihiy

    the creator

  • Member
  • PipPipPipPipPipPipPip
  • 1,930 posts
  • OS:Windows 7 x64
  • Country: Country Flag

Donator

I think it's useless to remove parts of WinME io.sys since you can't compress it back and it won't be smaller than compressed. Logo is uncompressed (thus can be replaced) and configuration manager is disabled nicely by SystemReg=0.
Applying Q311561/LBA patches is more practical.

#14
_Smoker

_Smoker

    Newbie

  • Member
  • 16 posts
  • OS:XP Pro x86
  • Country: Country Flag
I tried to restore functionality of IO.SYS extracted from Windows XP SP3 diskcopy.dll by replacing "the initial 2K block uncompressed" from an unmodified IO.SYS in boot image placed on Windows Me OEM CD. It's work and can be uncompressed.

#15
dencorso

dencorso

    Adiuvat plus qui nihil obstat

  • Supervisor
  • 5,841 posts
  • OS:98SE
  • Country: Country Flag

Donator

The IO.SYS extracted from Windows XP SP3 diskcopy.dll can be uncompressed without any transplant from other files, and works OK both in the original compressed form and in the uncompressed form, AFAIK. Why did you find it necessary to transplant the initial 2k block? Please elaborate on it.

Later edit: Now I understand... You mean to restore Win ME Real-DOS ability, as per this patch, right? My guess is it would be easier to collect Win ME COMMAND.COM and REGENV32.EXE and the IO.SYS extracted from Windows XP SP3 diskcopy.dll, and apply to these files their patch directly, and then use RLoew's IO8DCOMP.EXE on IO.SYS.

#16
_Smoker

_Smoker

    Newbie

  • Member
  • 16 posts
  • OS:XP Pro x86
  • Country: Country Flag

The IO.SYS extracted from Windows XP SP3 diskcopy.dll can be uncompressed without any transplant from other files, and works OK both in the original compressed form and in the uncompressed form, AFAIK. Why did you find it necessary to transplant the initial 2k block? Please elaborate on it.

Later edit: Now I understand... You mean to restore Win ME Real-DOS ability, as per this patch, right? My guess is it would be easier to collect Win ME COMMAND.COM and REGENV32.EXE and the IO.SYS extracted from Windows XP SP3 diskcopy.dll, and apply to these files their patch directly, and then use RLoew's IO8DCOMP.EXE on IO.SYS.

An unmodified original IO.SYS in boot image placed on Windows Me OEM CD no need any patch,directly support real MS-DOS mode, COMMAND.COM can be modified by replacing in this file at hex offset 00006510 byte 75 by byte EB (Comparison of x86 DOS operating systems - Wikipedia, the free encyclopedia).
First 2048 bytes from original Windows Me OEM CD IO.SYS to restore the "Real-mode functionality" in IO.SYS extracted from diskcopy.dll Windows XP, Vista, 7
Attached File  OEM.zip   1.43KB   24 downloads

Edited by _Smoker, 04 June 2010 - 10:39 AM.


#17
dencorso

dencorso

    Adiuvat plus qui nihil obstat

  • Supervisor
  • 5,841 posts
  • OS:98SE
  • Country: Country Flag

Donator

Well, since you're working with Win ME IO.SYS, here's something you may find interesting: a spoofing device driver that allows one to use MS-DOS 7.10 files with Win ME IO.SYS. All it does is to trap the IO.SYS replies to Version queries, changing its reply from "8.00" to "7.10". This permits to take advantage of the fact that Win ME IO.SYS already contains HIMEM.SYS, in creating a real minimalist boot disk. To use it, load VER710.SYS early from CONFIG.SYS (that is, put DEVICE=VER710.SYS as the very first line in CONFIG.SYS), and you're all set! :yes:
Notice that you can accomplish that by directly patching an uncompressed version of Win ME IO.SYS, but this allows one to use also the compressed versions, which cannot be patched, unless someone creates a recompressor for IO.SYS.

BTW, you'll certainly find this Boot-Land thread of interest, if you don't already know it (I suspect you do, but, in any case, here's the pointer just for the record).

Attached Files



#18
_Smoker

_Smoker

    Newbie

  • Member
  • 16 posts
  • OS:XP Pro x86
  • Country: Country Flag

Well, since you're working with Win ME IO.SYS, here's something you may find interesting: a spoofing device driver that allows one to use MS-DOS 7.10 files with Win ME IO.SYS. All it does is to trap the IO.SYS replies to Version queries, changing its reply from "8.00" to "7.10". This permits to take advantage of the fact that Win ME IO.SYS already contains HIMEM.SYS, in creating a real minimalist boot disk. To use it, load VER710.SYS early from CONFIG.SYS (that is, put DEVICE=VER710.SYS as the very first line in CONFIG.SYS), and you're all set! :yes:
Notice that you can accomplish that by directly patching an uncompressed version of Win ME IO.SYS, but this allows one to use also the compressed versions, which cannot be patched, unless someone creates a recompressor for IO.SYS.

BTW, you'll certainly find this Boot-Land thread of interest, if you don't already know it (I suspect you do, but, in any case, here's the pointer just for the record).


Thanks for driver, it's best replacement setver.exe. Now i use deversioned ms-dos 8.0 files by replacing byte sequence 3D 08 00 74 ->90 90 90 EB.
Interesting thing from Boot-Land thread by Wendy: "The inclusion of himem.sys may have been a failsafe device. It is indeed possible to deactivate various things in io.sys, and it may be possible to deactivate the internal one"...

#19
dencorso

dencorso

    Adiuvat plus qui nihil obstat

  • Supervisor
  • 5,841 posts
  • OS:98SE
  • Country: Country Flag

Donator

Thanks for driver, it's best replacement setver.exe.

Yeah, thanks!
The problem with setver.exe is that it loads too late to fool COMMAND.COM, while my driver can fool it all right. :D

Wendy knows a lot about DOS, especially the latest versions... she may well be right, but there's lots to be learned about v. 8.00, still. And RLoew's decompressor opened up a novel window of opportunity to investigate the v. 8.00 IO.SYS, so interesting developments should be forthcoming.

#20
rloew

rloew

    MSFN Expert

  • Member
  • PipPipPipPipPipPip
  • 1,087 posts
  • OS:98SE
  • Country: Country Flag

Well, since you're working with Win ME IO.SYS, here's something you may find interesting: a spoofing device driver that allows one to use MS-DOS 7.10 files with Win ME IO.SYS. All it does is to trap the IO.SYS replies to Version queries, changing its reply from "8.00" to "7.10". This permits to take advantage of the fact that Win ME IO.SYS already contains HIMEM.SYS, in creating a real minimalist boot disk. To use it, load VER710.SYS early from CONFIG.SYS (that is, put DEVICE=VER710.SYS as the very first line in CONFIG.SYS), and you're all set! :yes:
Notice that you can accomplish that by directly patching an uncompressed version of Win ME IO.SYS, but this allows one to use also the compressed versions, which cannot be patched, unless someone creates a recompressor for IO.SYS.

Small Patches to Windows ME IO.SYS can be done to the compressed Version by adding the Patch Code after the Decompression has taken place. Phelum did this with his Windows ME Version of his Partition Offset bug Patch.

It should also be possible to shrink the compressed IO.SYS file if one or more of the 48K (uncompressed) blocks can be removed.
Ye who enter my domain. Beware! Lest you become educated in the mysteries of the universe and suffer forever from the desire to know more.

#21
jaclaz

jaclaz

    The Finder

  • Developer
  • 14,212 posts
  • OS:none specified
  • Country: Country Flag
Sorry if I chime in WITHOUT :ph34r: having directly experimented with the thingy, but I have a few questions that maybe rloew can answer to:
  • I assume that inside the compressed IO.SYS there is some code to decompress on-the-fly, and that you managed to rebuild it externally to create your decompressor, right?
  • Knowing how MS loves to re-use code, I presume that the actual compression is done thorugh one of their known tools, possibly slightly modified, maybe if we can identify the tool, it would be possible to create a re-compressor?

jaclaz

#22
rloew

rloew

    MSFN Expert

  • Member
  • PipPipPipPipPipPip
  • 1,087 posts
  • OS:98SE
  • Country: Country Flag

Sorry if I chime in WITHOUT :ph34r: having directly experimented with the thingy, but I have a few questions that maybe rloew can answer to:

  • I assume that inside the compressed IO.SYS there is some code to decompress on-the-fly, and that you managed to rebuild it externally to create your decompressor, right?
  • Knowing how MS loves to re-use code, I presume that the actual compression is done thorugh one of their known tools, possibly slightly modified, maybe if we can identify the tool, it would be possible to create a re-compressor?

jaclaz

The first 2KB Block of IO.SYS loads the rest into memory, decompresees it, then jumps to it.
My decompressor loads IO.SYS into memory, sets up a suitable stack frame and register settings, then calls the decompression subroutine. It then writes out a modified header and the decompressed data from memory.

I have found similar code in WININIT.EXE and SCANDISK.EXE, so it is definitely reused code.
Ye who enter my domain. Beware! Lest you become educated in the mysteries of the universe and suffer forever from the desire to know more.

#23
jaclaz

jaclaz

    The Finder

  • Developer
  • 14,212 posts
  • OS:none specified
  • Country: Country Flag

I have found similar code in WININIT.EXE and SCANDISK.EXE, so it is definitely reused code.


I'll try checking with the "usual suspects" :unsure::
http://www.cabextrac...g.uk/libmspack/
http://www.msfn.org/...opic=81068&st=8

Just for the record, should anyone among the less "technical oriented" members need to extract the ME files from XP/2K3 in order to do some experimenting, this may come of use:
http://www.911cd.net...showtopic=16745

jaclaz

Edited by jaclaz, 01 June 2010 - 04:19 AM.


#24
_Smoker

_Smoker

    Newbie

  • Member
  • 16 posts
  • OS:XP Pro x86
  • Country: Country Flag

It should also be possible to shrink the compressed IO.SYS file if one or more of the 48K (uncompressed) blocks can be removed.

How to remove uncompressed blocks from compressed IO.SYS(start-end offset)?

#25
rloew

rloew

    MSFN Expert

  • Member
  • PipPipPipPipPipPip
  • 1,087 posts
  • OS:98SE
  • Country: Country Flag


It should also be possible to shrink the compressed IO.SYS file if one or more of the 48K (uncompressed) blocks can be removed.

How to remove uncompressed blocks from compressed IO.SYS(start-end offset)?

First you would have to come up with a small set of patches, to the uncompressed code, that renders an entire 48K Block of data unnecessary, and adjust pointers so that the block can be removed.
Then you could remove the correspnding compressed block and add the Patches to the code following the decompressor.
Ye who enter my domain. Beware! Lest you become educated in the mysteries of the universe and suffer forever from the desire to know more.




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users



How to remove advertisement from MSFN