VOGONS


Reply 20 of 35, by zyzzle

User metadata
Rank Member
Rank
Member

Yes, that should be OK. Do not truncate the file sooner. You may then compress the output file with LZ4 and get it down to about 75 kb. This is what I did.

Reply 21 of 35, by dodleh

User metadata
Rank Newbie
Rank
Newbie

I should have given an update on my attempts, my mistake, I apologize. I appreciate very much everyone's feedback on the issues and the wealth of information you shared!

I was not successful in my attempt at shrinking the io.sys file. I am pretty sure that your suggestions would have helped if I were a bit more aware on how to interpret what I am seeing and where I should cut. I have only the absolute basic experience at editing files and very little on understanding opcodes beyond very simple situations.

Due to the above limitation I would like to share with you how I managed to squeeze more space without resorting to compressed files and other tricks, in case it is useful:
- i replaced mode.com with turbokey.com, since I only needed the reduced key-press delay to actually work, not the full functionality provided by mode, freed almost 29kB
- i used the fdisk.exe from FreeDos, it was smaller and more versatile than the MS-DOS 7.1 equivalent, freed another 29kB
- used the io.sys from another MS-DOS 7.1 distribution (an install kit?) instead of the one from MS-DOS 7.1 , freed around 8kB
- used the mem.exe from FreeDos, had the same functionality, freed 15kB
- got rid of attrib.exe, freed around 11kB

Previously I had around 33kB available. Now I had the "luxury" of more free space which allowed me to squeeze Volkov Commander in just 66kB, add mouse.com and be left with 5kB of free space!

I finally reached a fantastic bootdisk. I agree that if I could trim IO.SYS I would have reached even better functionality. This may be open to further study.

Reply 22 of 35, by BolenB

User metadata
Rank Newbie
Rank
Newbie

Features of the Win98se io.sys bootloader (first 4 sectors, 2048 bytes, MSLOAD).
In the MZ header, only "MZ" (hexadecimal: 4D 5A) at the beginning of the file ("magic number") and the length of the file in paragraphs at offset 08h are important, the rest of the parameters can be set to zero, as in the bootloader from WinMe.
To load io.sys, you need to specify the number of paragraphs at offset 08h, and not just how many, but fit into a certain range.
If we write less, io.sys will not load completely, if we write more, we will hang.
How to count: Sector = 512 bytes, paragraph = 16 bytes, 2048 = 4 sectors, 1536 = 3 sectors.
We take our trimmed io.sys with a size of 122896 bytes.
122896 / 512 = 240.03
We round up, up to 241 sectors.
241 * 512 = 123392 bytes (how many sectors a file takes).
123392 - 2048 = 121344 (1DA00h) / 16 (10h) = 1DA0h + 1 = 1DA1h
123392 - 1536 = 121856 (1DC00h) / 16 (10h) = 1DC0h
Here within these limits (1DA1h - 1DC0h) it is necessary to prescribe the number of paragraphs.
If we write < 1DA1h then not all of io.sys will be loaded. If we write 1DA0h, the last sector will not be loaded (16 bytes will be lost at the end of io.sys)
If we write > 1DC0h, then we will freeze (due to a bug, the loader cannot find the end of cluster mark (EOC) in FAT 0FFFFFFF8 and freezes.

In WindowsMe, this bug (or feature) was fixed and you can specify > 1DC0h, the loader itself calculates how many bytes are needed, it will not load too much.

translated with google translator
http://forum.ru-board.com/topic.cgi?forum=62& … 3&start=3180#11

Reply 23 of 35, by Azarien

User metadata
Rank Oldbie
Rank
Oldbie

You can try compressing exe files with UPX to save more space.

Reply 25 of 35, by Azarien

User metadata
Rank Oldbie
Rank
Oldbie
BolenB wrote on 2023-05-18, 01:26:

UPX is hard to fit for io.sys compression

I didn't mean to use UPX with io.sys, just the other exe/com files.

Reply 26 of 35, by roytam1

User metadata
Rank Newbie
Rank
Newbie
BolenB wrote on 2023-05-18, 01:26:
UPX is hard to fit for io.sys compression and it compresses 1.5 ~ 2 kilobytes worse than Apack. https://ibsensoftware.com/produc […]
Show full quote
Azarien wrote on 2023-05-17, 17:46:

You can try compressing exe files with UPX to save more space.

UPX is hard to fit for io.sys compression and it compresses 1.5 ~ 2 kilobytes worse than Apack.
https://ibsensoftware.com/products_aPACK.html
IOPACK8 from MERCURY127 uses Apack to compress io.sys.

I wonder where I can find IOPACK8?

Reply 29 of 35, by BolenB

User metadata
Rank Newbie
Rank
Newbie

I made a toolchain for packaging IOPAK.710 (I slightly modified IOPAK.8 from MERCURY127).
Not universal, does not support addons.
Only MSDOS 7.10 (Win95osr2 - Win98se) packages correctly.
But its capabilities are enough to play around with io.sys packaging.

https://www.old-games.ru/forum/blogs/nastrojk … e-win98se.6162/

Reply 30 of 35, by roytam1

User metadata
Rank Newbie
Rank
Newbie
BolenB wrote on 2024-04-02, 06:00:
I made a toolchain for packaging IOPAK.710 (I slightly modified IOPAK.8 from MERCURY127). Not universal, does not support addons […]
Show full quote

I made a toolchain for packaging IOPAK.710 (I slightly modified IOPAK.8 from MERCURY127).
Not universal, does not support addons.
Only MSDOS 7.10 (Win95osr2 - Win98se) packages correctly.
But its capabilities are enough to play around with io.sys packaging.

https://www.old-games.ru/forum/blogs/nastrojk … e-win98se.6162/

Thanks. BTW can I patch MSDOS 7.10 to not reading msdos.sys or windows directory in harddisk?
I got situation about this: booting a MSDOS 7.1 bootdisk and it reads C:\Windows and load its command.com and runs WIN after running AUTOEXEC.BAT.

Reply 31 of 35, by Cyberdyne

User metadata
Rank Oldbie
Rank
Oldbie

Added a undestandable IO.SYS edit. No russification. Slava Ukraini. Enyoy as long you can.

I am aroused about any X86 motherboard that has full functional ISA slot. I think i have problem. Not really into that original (Turbo) XT,286,386 and CGA/EGA stuff. So just a DOS nut.
PS. If I upload RAR, it is a 16-bit DOS RAR Version 2.50.

Reply 32 of 35, by roytam1

User metadata
Rank Newbie
Rank
Newbie
Cyberdyne wrote on 2024-04-05, 04:20:

Added a undestandable IO.SYS edit. No russification. Slava Ukraini. Enyoy as long you can.

Notice: localized versions have different offsets than English version, as a result batch files about en-disabling functions and cut-off logo should not run on localized IO.SYS.

Reply 33 of 35, by Cyberdyne

User metadata
Rank Oldbie
Rank
Oldbie

English version.

I am aroused about any X86 motherboard that has full functional ISA slot. I think i have problem. Not really into that original (Turbo) XT,286,386 and CGA/EGA stuff. So just a DOS nut.
PS. If I upload RAR, it is a 16-bit DOS RAR Version 2.50.

Reply 34 of 35, by Nemo1985

User metadata
Rank Oldbie
Rank
Oldbie
roytam1 wrote on 2024-04-05, 10:58:
Cyberdyne wrote on 2024-04-05, 04:20:

Added a undestandable IO.SYS edit. No russification. Slava Ukraini. Enyoy as long you can.

Notice: localized versions have different offsets than English version, as a result batch files about en-disabling functions and cut-off logo should not run on localized IO.SYS.

Ops, I trimmed my io.sys from italian version.
Is there a way to find the right offsets?
I'd like to remove the logo and drivespace.bin.

Reply 35 of 35, by roytam1

User metadata
Rank Newbie
Rank
Newbie
Nemo1985 wrote on 2024-04-06, 11:03:
Ops, I trimmed my io.sys from italian version. Is there a way to find the right offsets? I'd like to remove the logo and drivesp […]
Show full quote
roytam1 wrote on 2024-04-05, 10:58:
Cyberdyne wrote on 2024-04-05, 04:20:

Added a undestandable IO.SYS edit. No russification. Slava Ukraini. Enyoy as long you can.

Notice: localized versions have different offsets than English version, as a result batch files about en-disabling functions and cut-off logo should not run on localized IO.SYS.

Ops, I trimmed my io.sys from italian version.
Is there a way to find the right offsets?
I'd like to remove the logo and drivespace.bin.

you have to search for patterns to trim it out.