I was looking around for some old compilers as a side project of mine has stalled looking for some TS-11 Fortran compiler with overlaysâ€¦
Anyways I found mention of this DOS-Minix.Â It does NOT comply with things like DPMI, VCPI as it will not run in nice things like emm386 & other v86 switchers.Â However it will run in DOSBox.
Digging through the kernel & the boot program, youâ€™ll find the basics of a DOS Extender.Â The boot program will allocate as much memory as it can from the XMS driver, and then switch to protected mode & transfer control to the kernel.Â Likewise the kernel then uses MS-DOS & BIOS calls for video, disk access etc as you can find itâ€™s int86 calls that switch from protect to real mode, (doshead.s) or even in the disk driver dosfile.c
Installation is SUPER simply, just download the file DOSMINIX.ZIP unzip it somewhere then either use the great DOSBox, or any other pc emulation etc that you could want to useâ€¦Â The NTVDM from Windows NT is not good enough as youâ€™ll get an error message about not being able to load the 386 kernel on an 8086.Â This again probably stems from dosminix not using DPMI calls, but the old fashioned raw XMS calls.. I guess it *could* be updatedâ€¦
Start it up is simple you just run the boot program and point it to a diskfile:
Then youâ€™ll get greeted by the boot loader..Â For me hitting any key doesnâ€™t do anything, so I just press escape, then type in boot.
And in NO time youâ€™ll be up and running MINIX!
The â€˜bestâ€™ way to shut it down Iâ€™ve found is to type in â€˜rebootâ€™ then press escape like wild, and youâ€™ll interrupt the boot loader.Â Then you can type in â€˜exitâ€™ and youâ€™ll get dumped back into MS-DOS.
I think itâ€™s an interesting example of how to use the ancient MS-DOS to bootstrap yourself into protected modeâ€¦ And the source seem somewhat straight forwardâ€¦
I should leave 2 notes here..
First is that the 'easy' way I've found to move data in & out of dosminix is to "mount" a tar file. At the boot loader, you can specify
This will 'mount' x.tar onto disk #1. Go ahead and 'boot' minix, and then you can extract the x.tar file simply by running tar xf /dev/c0d1
Likewise, you can tar cf /dev/c0d1 then extract x.tar from MS-DOS (NT whatever) to get data out of the minix setup.
When compiling large c files, you'll find that the C compiler will freak because it's out of memory…
chmem +# /usr/lib/em_cemcom.ansi
will show the maximum memory amount the C compiler can use. You can give it an additional megabyte with:
chmem +102400 /usr/lib/em_cemcom.ansi
When building f2c and dungeon I had to do this a few times..
For those less adventurous I've built f2c, it's library & adventure right here: