Skip to content

Releases: joncampbell123/doslib

Windows 16-bit insight release

25 Jan 21:33
Compare
Choose a tag to compare

New Windows "New Executable" dumping utility, to show as much as possible about the NE structure. Includes support for dumping older Windows 1.x and 2.x executables as well.

DOSBox Integration device improvements. Also a replacement mouse driver for standard PS/2 mice. Both drivers are compatible with and can work with Windows 1.0 through Windows 3.1.

doslib-20170111-095936-commit-3d4c195f15b66fe744b5aa8ea3d57d9fa0c375d8-binary now with Windows Driver

  • New remote control program for DOS machines, using the RS-232 serial port. The DOS machine needs standard RS-232 ports, while the other end can use standard ports or a USB-serial adapter on Linux. The remote control client allows system memory access, and remote filesystem access.
  • New open source mouse driver for Windows 3.0/3.1 that interacts with the new interfaces added to the DOSBox-X integration device. The driver allows you to interact with the mouse (or your touchscreen) with Windows 3.x without having to capture the mouse to the DOSBox-X emulator window. The driver comes in as an absolute pointing device as far as Windows 3.x is concerned.
  • Many general fixes and updates to DOS code.
  • Fixed compile stage to properly patch Windows 3.1 EXEs as having version 3.10 not version 3.1

doslib-20161127-140059-commit-f2025af69c8c48a791211ebb5d4cec8134d29e4f

OMF DGROUP patcher complete. Now it checks to make sure the segment reference it is patching up is related to DGROUP.

Fix up ADLIB test program to produce .COM in tiny model.

Fixed up Sound Blaster test program to fit into tiny model by cutting back debug strings and options. It works fine now.

doslib-20161127-110430-commit-7b7e832198cf229af1f0e38ca42f658fb2c0f9bd

OMF library finalized.
OMF DGROUP patching tool finished.
Linux makefiles for OMF dumper and OMF DGROUP patching tool (OMFSEGDG).
All projects updated to compile OMFSEGDG and use it when compiling tiny memory model target.
A quick test of the resulting .COM executables shows no issues, so far, except for Sound Blaster test program that comes out too bloated to run as .COM executable.
ISAPNP test program bugfix for tiny target that resolves hang/crash after first PNP bios enumeration prompt.
Added notes file on how DOSLIB's tiny memory model works, and what limitations it imposes on the code.

Update: The tarball attached has been updated not to include .obo files.

doslib-20161126-100319-commit-6089c747b7ab40f99459e731d1bec60f465d7dad

OMF parsing and dumping. In library form, for use in other future code projects. Reading OMF, so far. Writing OMF comes soon. In this way, I can begin hacking OMF and writing my own tools to work alongside Open Watcom in this project that link together into a final program.

Experimental OMF patching tool to work around Watcom C segdef fixups for making flat .COM executables, and with that, a new "dos86t" target that compiles to .COM instead of executable. Code compiled to .COM at this time is NOT yet fully stable because there are still cases (near-to-far pointer conversion for example) where segment fixups are generated, and Watcom's linker ignores them for .COM targets, leading to code that crashes at runtime because the segment portion is invalid. The OMF patcher attempts to apply segment fixups by replacing the x86 opcodes loading a segment reference with one loading from CS instead. This tool is experimental at this time, which is why the compile stages do not yet use it.

doslib-20161113-083809-commit-f5ac4b3f27421816766c23ba7dc270b0dc56124a

  • Added hw/dos headers to describe EXE headers, and MS-DOS device driver requests and structures.
  • New DOS library function to load the contents of an EXE into memory, and to apply relocations
  • New CLSG "dynamic" module loader. CLSG is a simplified form of DLL for DOS where code can be loaded into memory and accessed by ordinal at runtime. Downsides of course are: no symbols by name, no dependency management, no discardable segments, unloading and loading done at the whim of the programmer using the CLSG module.
  • MS-DOS device driver examples. It is now possible to compile MS-DOS device drivers in C. Two examples are provided: one that uses the EXE form of device driver (like what EMM386.EXE does), and the other takes the flat non-EXE .SYS format that is widely known. It turns out Watcom C can be made to generate flat (within 64KB) code and data by stuffing everything into DGROUP and compiling with the small memory model with DS pegged to DGROUP. Example includes division of code and data into init and non-init sections so init code can be discarded after INIT call. Drivers have been tested so far only under Windows 95.
  • New perl scripts to generate .asm files for CLSG and MS-DOS device driver "headers" to help automate compilation.

doslib-20161022-225805-commit-807e8cab16f48ea788400f9253204f18718290ef VGA 240 fixup

Fixup and improve VGA240.EXE.

  • Determine actual resident size instead of guessing (use MCB prior to PSP segment)
  • Fix resident detection so it actually works
  • Fix installation phase not to clear the screen. Instead, preserve video mode and contents and then force 60Hz
  • Fix INT 10h hooked message to explain itself better
  • Allow uninstall from memory using /UNINSTALL switch
  • danooct1's audience can stop freaking out about the "INT 10h hooked" message :)

20161021-122358-commit-199ec05ee8be73b636e2aca6904fddea908bc1fe

8237 DMA support code for 16-bit DMA to span 128KB boundaries, and to differentiate the 8 and 16 bit channels.
Sound Blaster support code for 128KB DMA (16-bit PCM).
Sound Blaster 16 CSP/ASP base support code (detection, and code for future playing around)
Fixup binary release script to exclude OBJ and RES files, include PC-98 builds.
Many other forgotten fixes.

(now lets get back to helping Sparky with Project 16...)

doslib-20160313-155310-commit-c55f2f3f22d9ab3ca64631629378512ab7886fbe-binary

  • DOS LTP bugfix: don't assume CR4. This allows the library to work without crashing now on older 486 systems.
  • Sound Blaster library updates, cleanup, split apart, and use Halt DMA command to stop quicker.
  • Many other libraries split up to help Watcom linker eliminate unused functions
  • New library to talk to DOSBox integration device
  • A lot of fixes forgotten already

doslib-20160208-013358-commit-9212136735acf8cefeb6740136603a1a779f5bb4

Sound Blaster fixes, media playmp3 updates, new toys to fiddle with Gravis Ultrasound cards.