Libi86 Versions Save

Attempt to reimplement non-standard C library facilities (e.g. ) used in MS-DOS programs, for IA-16 GCC & ACK ― mirror of https://gitlab.com/tkchia/libi86 • Ubuntu packages for cross-compilation at https://launchpad.net/%7Etkchia/+archive/ubuntu/build-ia16/ • DJGPP/MS-DOS binaries at https://github.com/tkchia/libi86/releases

20220109

2 years ago

This is a FreeDOS (.zip) package for my libi86 library of routines for MS-DOS programs, meant to be used with the IA-16 GCC toolchain.

Changes since 15 Sep 2021:

  • Several new functions:
    • _bios_printer (…) and _bios_serialcom (…), in <bios.h>;
    • Borland _searchpath (·), in <dir.h>;
    • _getdcwd (…), and optionally getcwd (, ) and _getcwd (, ), in <direct.h>;
    • _dos_getftime (…), _dos_gettime (·), _dos_setblock (…), _dos_setdate (·), _dos_setftime (…), _dos_settime (·), and Borland keep (, ), in <dos.h>;
    • _DPMIGetCapabilities (…), _DPMIGetVendorSpecificAPI (·), _DPMIGetVirtualInterruptState (), and _DPMIIdle (), in <dpmi.h>;
    • _displaycursor (·) and _setcolor (·), in <graph.h>;
    • _fullpath (…), in <libi86/stdlib.h>; and
    • _fmemcmp (…), in <libi86/string.h>.
  • _setbkcolor (color) (<graph.h>) is also partially implemented for IA-16 GCC. Currently the color must be a compile-time constant, and must be an indexed colour, not an RGB triplet.
  • Bug fixes:
    • _makepath (…) and _splitpath (…) now work properly on systems such as MS-DOS 5.0/V (Japanese) where file names might contain double-byte character sequences.
    • Various other minor fixes.

libi86 now also officially supports the Amsterdam Compiler Kit with the msdos86 target platform. However, this currently needs to be built from the source code.

20210915

2 years ago

This is a FreeDOS (.zip) package for my libi86 library of routines for MS-DOS programs, meant to be used with the IA-16 GCC toolchain.

Changes since 18 Apr 2021:

  • Several new functions have been implemented:
    • Watcom-compatible functions _dos_creat (…), _dos_creatnew (…), _dos_getdate (·), _dos_getdiskfree (…), _dos_keep (…), _dos_open (…), _dos_read (…), and _dos_write (…), in <dos.h>;
    • Borland-compatible functions peek (…), peekb (…), poke (…), and pokeb (…), also in <dos.h>;
    • and more.
  • Other minor internal changes.

I am also in the process of porting libi86 to the Amsterdam Compiler Kit's x86 targets — in addition to IA-16 GCC — however this is still not quite complete yet.

20210418

3 years ago

This is a FreeDOS (.zip) package for my libi86 library of routines for MS-DOS programs, meant to be used with the IA-16 GCC toolchain.

Changes since 27 Feb 2021:

  • The library is now released under the permissive 3-clause BSD License. (Previously it was only released under the GNU GPL v2 or above.)
  • Some minor bugs have been fixed:
    • <conio.h> now correctly sets the console device (CON) to raw mode if stdin does not already point to the console.
    • <dos.h> now declares the Borland-specific bdosptr (...) function only if _BORLANDC_SOURCE is enabled.

20210227

3 years ago

This is a FreeDOS (.zip) package for my libi86 library of routines for MS-DOS programs, meant to be used with the IA-16 GCC toolchain.

Changes since 1 Dec 2020:

  • The library now implements
    • Watcom-compatible functions _splitpath, _makepath, _ltoa, _ultoa, _lltoa, _ulltoa, _dos_setdrive, _dos_findfirst, _dos_findnext, _dos_findclose, _dos_commit, _dos_getvect, _dos_setvect; and
    • functions _DPMIAllocateDOSMemoryBlock (·) and _DPMIFreeDOSMemoryBlock (·) compatible with Watcom internal interfaces.
  • If Borland compatibility mode is enabled (_BORLANDC_SOURCE), the library now also implements
    • a Borland-compatible gettextinfo (·) function; and
    • special Borland-compatible versions of the functions int86, int86x, intdos, intdosx, etc.
  • Various other minor bug fixes and improvements have been made.

20201201

3 years ago

This is a FreeDOS (.zip) package for my libi86 library of routines for MS-DOS programs, meant to be used with the IA-16 GCC toolchain.

Changes since 10 Jul 2020:

  • libi86 is now released under the GNU Lesser General Public License (LGPL) version 2 or above.
    • Previously it was released under the GNU LGPL v3 or above.
  • The library now includes implementations of "advanced" <conio.h> functions as in Borland Turbo C++. These can be used to set video modes, display coloured text, move the cursor, and so on.
    • To use these in a program, define the macro _BORLANDC_SOURCE before including <conio.h>.
    • A few functions are still not implemented: gettext (...), gettextinfo (·), movetext (...), and puttext (...).
  • Also added are
    • an initial partial implementation of <graph.h> routines as in Open Watcom and
    • an implementation of DPMI functions — via <dpmi.h> — as in Open Watcom's internal interfaces
    • an _fstrlen (·) function.
  • The functions _dos_allocmem (...) and _dos_freemem (·) now also work in DPMI mode.
  • Various other minor bug fixes and improvements have been made.

20200710

3 years ago

These are FreeDOS (.zip), Ubuntu Linux (.deb), and static Linux/x86-64 tarball (.tar.xz) packages for my libi86 library of routines for MS-DOS programs, meant to be used with the IA-16 GCC toolchain.

20200625

3 years ago

These are FreeDOS (.zip), Ubuntu Linux (.deb), and static Linux/x86-64 tarball (.tar.xz) packages for my libi86 library of routines for MS-DOS programs, meant to be used with the IA-16 GCC toolchain.

20200321

4 years ago

These are FreeDOS (.zip), Ubuntu Linux (.deb), and static Linux/x86-64 tarball (.tar.xz) packages for my libi86 library of routines for MS-DOS programs, meant to be used with the IA-16 GCC toolchain.

20200215

4 years ago

These are FreeDOS and Ubuntu Linux packages for my libi86 library of routines for MS-DOS programs, meant to be used with the IA-16 GCC toolchain.

20191125

4 years ago

These are FreeDOS and Ubuntu Linux packages for my libi86 library of routines for MS-DOS programs, meant to be used with the IA-16 GCC toolchain.