Kernel /

Notes

Main.SideBar

FreeDOS Sections (components)

PmWiki

Notes

(redirected from Blog.PerditionC)

FreeDOS Kernel Notes

On this page...

Todo

  • look through dev kernel for more changes to merge into stable kernel
  • see Blog.Jerm
Reminder
Finish my SFT work. [on hold/cancelled]
Reminder
Check on Turbo C++ v3.
Reminder
Check on Emm386 incompatibility with Watcom 386 kernel. [fixed]

Released (FreeDOS [FD]) kernels:

  • 2035, by last official maintainer Bart Oldeman
  • 2035A, by interim maintainer Jeremy Davis
  • 2036, compiled 2006/07/26 or later, this one will be the FreeDOS 1.0 kernel
  • 2037, the latest unstable kernel revision - discontinued as part of FreeDOS proper
  • 2038, to be made available shortly pending some testing and patch cleanup

These kernels have the following features:

  • FreeDOS specific menu system in config file
  • 8086 support (succesfully verified on PicoXT emulator) - http://www.picofactory.com/free/software/pc-xt-emulator/(approve sites)
  • FAT12 and FAT16 support
  • FAT32 support, may be compiled out if desired
  • DOS version (faked M$-DOS version) numbering support:
    • fat32: 7.10
    • fat12/16: 5.00

Development (DOS-C [DC]) kernels:

  • 2035B-CVS, daily builds by Jeremy Davis. Much like 2035A {FD}
  • 2035W-CVS, daily builds by Jeremy Davis {FD}
  • 2037, uploaded on ibiblio {FD}
  • 3.x, to be released {DC}

Currently has the following additional features:

  • Improved support for l10n (country, NLSFUNC, MODE, CHCP)
  • Windows 3.1 support
  • More stuff.
Note
To avoid confusion my development kernel will be reversioned as a DOS-C kernel

Alternate (Enhanced DR-DOS [EE]) kernels:

  • 7.01.08 WIP, Udo Kuhnt's enhancements to the OpenDOS (DR-DOS) kernel

See drdosprojects.de

Just to remember:

l10n = localization (country-specific settings such as how to represent numbers, dates, money, ...). Specific to kernel, drivers and applications that support it.
i18n = internationalization (translations), application / distribution specific instead of something kernel specific

How I do I build the kernel?

If you want to have a custom script, just make a custom.bat with below mentioned parameters and a CALL command: @CALL BUILD.BAT LIST 186 FAT32 /D WIN31SUPPORT On Windows, it's wise to end this custom.bat file with a PAUSE command.

I build the kernel a lot (sometimes several dozen times in a row when testing), but most of the time I use the Dev kernel and the command line of:

build list 186 fat32 /D WIN31SUPPORT

  • where build of course initiates the compiling and other steps to generate a working kernel (compile, link, optionally compress, statically relocate)
  • list causes the assembly files to generate a listing (output file that shows original source, line #s, and generated bytes)
  • 186 causes the compiler to generate code for 80186 or newer computers (slightly smaller code but still runs on my 286 based computers)
  • fat32 enables support for FAT32 filesystem (all kernels have FAT12 and FAT16 support)
  • /D WIN31SUPPORT enables windows 3.x to run (really need to add win option to build.bat)

What I am currently working on

  • Windows 3.1 enhanced and DOS boxes support
  • currently my dev kernel has fnodes removed and uses SFTs, but it has some bugs I need to work out before committing

Future plans

  • create an IFS (Installable File System - http://en.wikipedia.org/wiki/Installable_File_System(approve sites)) kit based on RIFS
  • use the IFS kit to support Lean filesystem
  • NTFS support
    • use IFS kit for general support, based on Linux NTFS project
    • add boot time support - add hook to kernel so can use boot sector(s) NTFS load support to load IFS NTFS version
    • resources: Linux NTFS project, Reactos NTFS (relsoft.net)

other probably non FreeDOS stuff on my todo list

  • czar
    • fix multiple processor support for syscall redirector
    • work on syscall implementations

  • AbiWord
    • native win32 libs
    • new msvc makefiles to avoid breaking MinGW build or change to use build
    • update plugin API to use COM-like api (use pure virtual base classes and similar layout so any Win32 C++ compiler can be used to create plugins and perhaps other programming environments)

  • fdos
    • commit something
    • finish updating ...

  • atapicdd
    • finish cdrom driver portion
    • write ASPI over ATA / ATASPI portion

  • pdtree
    • rewrite so doesn't use so much memory

  • win32 on DOS
    • play with WDOSX and HXDOSX, see about using for Abi, etc. on DOS

  • OEM IDs? for DOS Get Version (Int 21h fn 30h) [From 4DOS & Ralf Brown]
    • 00h PC-DOS (IBM), Novell DOS/Caldera OpenDOS?/some DR-DOS versions
    • 01h Compaq
    • 02h - MS Packaged Product ?
    • 04h AT&T
    • 05h ZDS (Zenith Electronics)
    • 44h Wendin-DOS
    • 06h Hewlett-Packard
    • 07h Zenith Data Systems (ZDS, Groupe Bull), for DOS 5.0+
    • 08h Tandon
    • 0?h AST (AST Europe Ltd.)
    • 0Ah Asem
    • 0Bh Hantarex
    • 0Ch SystemsLine?
    • 0Dh Packard-Bell
    • 0Eh Intercomp
    • 0Fh Unibit
    • 10h Unidata
    • 16h DEC
    • 17h Olivetti DOS
    • 23h Olivetti (may have been a typo, since 23 = 17h)
    • 28h Texas Instruments
    • 29h Toshiba
    • 33h - Novell (Windows/386 device IDs only)
    • 34h - MS Multimedia Systems (Windows/386 device IDs only)
    • 35h - MS Multimedia Systems (Windows/386 device IDs only)
    • 4Dh Hewlett-Packard (HP)
    • 5Eh RxDOS (Mike Podanoffsky)
    • 66h PTS-DOS (PhysTechSoft? and possibly Paragon Technology Systems Corporation)
    • 98h - DOS-ROM (GSVER) ?
    • 99h General Software's Embedded DOS
    • CDh S/DOS (Paragon Technology Systems Corporation - \"Source DOS\" S/DOS 1.0+)
    • DBh ROM-DOS (Datalight)
    • DCh DOS-C (current FDOS kernels)
    • EDh - reserved for future OpenDOS/DR-DOS based projects http://www.drdos.org(approve sites)
    • EEh DR DOS/Enhanced DR-DOS
    • EFh Novell DOS
    • FCh X-DOS
    • FDh FreeDOS (official kernels, derived from DOS-C kernel)
    • FEh LZ-DOS
    • FFh MS-DOS (Microsoft), Phoenix

Others or corrections to above list? Please correct me.

Recent Changes (All) | Edit SideBar Page last modified on June 27, 2009, at 05:41 PM Edit Page | Page History
Powered by PmWiki