VOGONS


First post, by dajhorn

User metadata
Rank Newbie
Rank
Newbie

Retro7zip is a native backport of 7-Zip for DOS and Win32c:

The 24.09+2_win32c prerelease runs on Windows 95/98/Me, Windows NT 3.51, and Windows NT 4.0 as a console-mode application. The 7zFM GUI is not part of the build.

Windows NT 3.1 compatibility is ticketed as

https://github.com/dajhorn/retro7zip/issues/1

Reply 1 of 6, by Grzyb

User metadata
Rank l33t
Rank
l33t

How much RAM does it require?

Trying to archive the entire disk of my Windows 98 SE machine, with 64 MB of RAM - about 1100 MB in 8800 files...
it's sluggish, and constantly swapping!

Earlier, I tried the DOS port - 7ZA.EXE, which completed the task in reasonable time.

Kiełbasa smakuje najlepiej, gdy przysmażysz ją laserem!

Reply 2 of 6, by Grzyb

User metadata
Rank l33t
Rank
l33t

BTW, I killed the struggling Win32c 7ZA task, and now my WIN386.SWP file is 411 MB 🤣

Kiełbasa smakuje najlepiej, gdy przysmażysz ją laserem!

Reply 3 of 6, by dajhorn

User metadata
Rank Newbie
Rank
Newbie
Grzyb wrote on 2025-01-12, 02:17:
How much RAM does it require? […]
Show full quote

How much RAM does it require?

Trying to archive the entire disk of my Windows 98 SE machine, with 64 MB of RAM - about 1100 MB in 8800 files...
it's sluggish, and constantly swapping!

Earlier, I tried the DOS port - 7ZA.EXE, which completed the task in reasonable time.

Try the -md22 or -md4M switch, which will limit the dictionary size to 4 megabytes and use approximately 55 megabytes of memory at runtime.

The DOS build runs better because it detects the amount of physical memory in the computer and automatically limits the dictionary size. The win32c build doesn't do this yet, and will dive into the swap file.

None of the 7-Zip compression presets are good for a 64 MB computer. The -mx5 default needs a 256 MB computer.

Reply 4 of 6, by roytam1

User metadata
Rank Newbie
Rank
Newbie
Grzyb wrote on 2025-01-12, 02:17:
How much RAM does it require? […]
Show full quote

How much RAM does it require?

Trying to archive the entire disk of my Windows 98 SE machine, with 64 MB of RAM - about 1100 MB in 8800 files...
it's sluggish, and constantly swapping!

Earlier, I tried the DOS port - 7ZA.EXE, which completed the task in reasonable time.

it depends on parameters when that 7z is created.
and LZMA2 will use double of RAM when comparing with LZMA(i.e. the old one) in same block size.

Reply 5 of 6, by Grzyb

User metadata
Rank l33t
Rank
l33t

With "-md4m" it completed fine.
When porting a modern program to an old OS, always keep in mind it will be run on old hardware - make sure the memory usage is reasonable, or at least add a warning message.

Other than that, it's as expected - for using under Windows, the Win32c port seems better than the DOS one:
- the DOS port can't open a few files with unusual characters in filenames, but no problem for the Win32c port
- the DOS port stops and prompts the user if unable to open a file used by another process, the Win32c port displays the warning without stopping

Kiełbasa smakuje najlepiej, gdy przysmażysz ją laserem!

Reply 6 of 6, by dajhorn

User metadata
Rank Newbie
Rank
Newbie
Grzyb wrote on 2025-01-12, 05:08:

- the DOS port can't open a few files with unusual characters in filenames, but no problem for the Win32c port

Retro7zip for DOS only understands Codepage 431, and I don't intend to do any localization work. Contributed translations are welcome, natch.

On a regular Windows 95 US-English system, retro7zip for DOS will mangle the C:\WINDOWS\SentTo\3½ Floppy (A).lnk filename because the 1/2 symbol is a wide character. IIRC, there are no other wide characters used by a default installation.

Grzyb wrote on 2025-01-12, 05:08:

- the DOS port stops and prompts the user if unable to open a file used by another process, the Win32c port displays the warning without stopping

The "Abort, Retry, Fail, Ignore" class of errors pop up from the runtime and are conventionally handled at that level.

Where behaviors differ between platforms, I will go with whatever is expected or most correct for FreeDOS.