Skip to content

Releases: dosemu2/fdpp

1.8

07 Aug 13:47
Compare
Choose a tag to compare

This release contains ~160 commits, and is mostly targeted to resolving
the long-standing technical debts.

  • ELF format is now fully utilized. We now use ELF-based symbol tables
    and relocations, including dynamic relocations (which we simulate
    with --emit-relocs). This completes the ELF relocation work started at
    1.3 and 1.4 releases. Unfortunately, this brought in the new toolchain
    restrictions:
    • we no longer support upstream nasm (can only use our own nasm-segelf
      fork of the nasm for now)
    • do no longer support ld.lld (can only use GNU ld for now)
    • no longer support GNU strip (can only use llvm-strip for now,
      but the fix is already in GNU binutils-2.42)
      So the ELF support went in very painfully. We will keep working with
      the upstream projects (lld mainly) in a hope to restore their use.
      Nasm project have rejected our contributions, so the vanilla nasm
      support is not anticipated any soon.
  • Meson build system support. But not removing the old makefiles yet,
    as we need meson-1.3.2, which is not yet widely available.
  • thunk_gen and farptr compiler updates. thunk_gen is now a separate project.
  • Finally fixed remaining AlphaWaves problems. This game tests for the
    MS-DOS compatibility in a very rough ways.
  • Share was changed to resemble MS-DOS-7 more closely.
  • Fixed a few regressions of 1.7 (Prehistorik2 again)
  • Switched from C++11 to C++20 for templated lambdas.

1.7

21 Sep 19:09
Compare
Choose a tag to compare
1.7

A very important release, containing ~200 patches.

  • Portability work: ported to aarch64, including MacOS, Android.
  • Implemented HMA memory manager, and lots of work done on a more
    aggressive HMA usage. Unfortunately dosemu2 disabled HMA support
    by default in a mean time.
  • Lots of SHARE fixes.
  • Fixed nasty RTC bug (prehistoric2 had problems because of it)
  • Fixed stack switching on int21 calls (vlm now works)
  • Fixed stack switching on int24
  • Added a config.sys syntax for referencing drives created at run-time:
    CHAIN=%0\userhook.sys can be used if the host platform supplies the
    meaning of %0 (other digits are possible) at the right time.
  • Added a config.sys syntax for conditional loading:
    device=?0c:\bin\nansi.sys can be used if the host platform supplies
    the value of ?0 (other digits are possible) via boot protocol.
  • Fix to support multiple CHAIN directives
  • "Get extended free drive space" function can now use redirector
    extensions to properly report space on much larger partitions.
  • Fixes to volume labels support.
  • Added handlers for GP and SS exceptions.
  • clang-16 support
  • Lots of bug fixes.

1.6

17 Jan 14:23
Compare
Choose a tag to compare
1.6

Resurrected built-in COUNTRY support. You can now do:
COUNTRY=07,866
without specifying the path to country.sys.
dosemu2 is using that feature now, so the new release is due.

1.5

01 Jan 11:33
Compare
Choose a tag to compare
1.5

Maintenance release. Regression fixes, build changes etc.

  • Initial PSP things moved to UMB.
  • Fixed regressions with win31 install and others.
  • Fixes to SWITCHES= and DOS= parsing.
  • Split to normal and dev/devel packages.

1.4

18 Sep 12:04
Compare
Choose a tag to compare
1.4

Most of work went into making the kernel fully relocatable.
This required writing the new heap manager and updating the boot protocol.

  • It is now possible to run fdpp directly from UMB, leaving entire
    low mem free for your programs.
  • Lots of build infrastructure work was done for buildroot integration.
  • LBA support resurrected and enabled by default.

1.3

25 Mar 21:38
Compare
Choose a tag to compare
1.3

In this release we switched to ELF format. The binary kernel format
was dropped.
Implemented run-time relinking to fix the regressions from switching
to Tiny model that happened in 1.1. Unfortunately many programs expect
the DOS internal areas (like LoL and SDA) at the fixed locations
relative to DOS DS, rather than to query the addresses of the needed
structures. So fully compatible DOS cannot use Tiny model. We found
the way to (partially) convert FreeDOS from Tiny to Compact model at
run-time.
Also the first attempt is done to make the kernel fully relocatable.
So far that was achieved with a horrible hack. In the future that may
be amended, but who cares - the horrible hack just works. :)
Other than that, quite a few developments happened:

  • long file seek extension from @ecm-pushbx
  • rmdir fix from @andrewbird
  • increase amount of file locks from 20 to 1024 in share
  • revert mft work-around introduced in 1.2, as our run-time relinking
    solves that regression in a much better way.
  • fix reading of large (>512 bytes) config.sys files
  • compatibility fixes (Indy3 now works)

1.2

15 Dec 23:56
Compare
Choose a tag to compare
1.2

Stabilization release. Fixed many regressions and done lots more
work on file region locking. We hope the share/locking support
is now complete. Also worked around the QEMM's mft bug, so it
should work again.

1.1

23 Nov 21:28
Compare
Choose a tag to compare
1.1

Major development efforts again. Look out for new bugs...

  • Switched to TINY model. This required a large redesign, and
    allowed to simplify the build process and reduce the build
    dependencies.
  • Switched to lld linked from bfd ld.
  • Lot of work on share. Region locking and share modes are now
    supported properly. Also share no longer allocates the precious
    DOS memory.
  • Increment early-boot FILES (open file descriptors) from 8
    (actually 5) to 16. Previously all 5 descriptors could be
    exhausted when you use CHAIN, so it was not possible to, say,
    load country.sys from chained config. 3 extra descriptors
    were added too late for country.sys.
  • Proper port of the country.sys loader.
  • Fix SET command.

1.0

21 Aug 22:10
Compare
Choose a tag to compare
1.0

This is a first stable release of fdpp.
Not much to say here, because it "just works" - exactly the way
the (first) stable release should. The minimal set of features that
we needed from the first release, is also implemented.
Note that the main driving force behind this project, is dosemu2.
Which means that we only implement the features needed for dosemu2,
and currently they are all in place. So unless the scope of this
project is widened (like the use with other host kernels), no new
developments are planned, and the project will remain in a bugfixing
mode.

rc-3

04 Jul 10:24
Compare
Choose a tag to compare
rc-3 Pre-release
Pre-release

This is hopefully the last RC before 1.0 release.
Added COPR build support, the packages are here:
https://copr.fedorainfracloud.org/coprs/stsp/dosemu2/package/fdpp/
Below is the summary of few new additions:

  • Confined (most of) freedos DOS memory writes. This is needed
    for the integration with some JIT engines, like the one in dosemu2.
    That JIT engine needs to be notified about the DOS memory writes.
  • Support FILES= up to 256 (freedos only supports 128, then crashes)
  • Fix "set volume serial number" fn for drive images/local drives
  • Add support for COPR build system