Downloads

Return to Home
Below is a compilation of some things I've worked on over the years. Feel free to put to use anything you find interesting!


Assembly (x86) Library

Status: Updated as needed.




DOS Library

Status: Updated as needed.


Existing software I've packaged up in ZIP / FreeDOS package format.

All work was done under Linux Mint and a VirtualBox FreeDOS machine, text files are created/edited using Sublime Text with Windows "CR, LF" line endings, and archives are packaged using InfoZip 3.0 with a zip pkg.zip * -9 -k -r command line.


This collection of drivers by Jack Ellis includes CC, RDisk, RDiskOn, UDVD2, UHDD, UIDE, and XMgr. This is a ZIP archive; individual package files are also available.
 
 
Item Version Size Released MD5
drivers-2020-04-15 2020-04-15 154.2 KiB 04/15/2020 4EE70D2099B155719EB5FA72C673C114

HimemX is an XMS manager derived from FreeDOS Himem, but with additional bugfixes, optimizations and extensions. These packages are built from items made available at Baron-von-Riedesel's GitHub. Also available on Jerome Shidel's FreeDOS software list.
 
 
Item Version Size Released MD5
HiMemX 3.35a2 46.1 KiB 05/19/2020 315B44C7AC0A24EFCF16D64EDB4C78D1
Current version. No binary change, but corrects a slight error in the directory structure in the previous version.
 
 
HiMemX 3.35a 45.9 KiB 04/16/2020 7AAF5B907652D3A24ACB0E52E7D71013
This version includes a bugfix for an issue where, if no free handles were available, shrinking an EMB erroneously modified the block's size even though the call returned with a failure error.
 
 
HiMemX 3.35 45.7 KiB 03/27/2020 E59CC47A19DDBD4BECBF4FC6063DA38C
This version of HiMemX implements an alternative memory (re)alloc method that may work better if extended memory consists of multiple blocks.
 
 
HiMemX 3.34b 32.6 KiB 03/23/2020 0751FB0AC4B5C0A1CBC572CD45B03BFB
Fresh build of the existing version from the author's source code.

RDisk is a driver which creates a RAM-disk from up to 2 GB of XMS memory. Also available on Jerome Shidel's FreeDOS software list.
 
 
Item Version Size Released MD5
RDisk 2015-03-05c 18.5 KiB 05/19/2020 218FCDE322793B76A3A12A95910EB9C5
Current version. No binary change, but corrects a slight error in the directory structure in the previous version.
 
 
RDisk 2015-03-05b 18.3 KiB 03/24/2020 07B638E543DBF825D3654AB1320F8E19
This package contains the existing 2015-03-05 binary but with more tailored documentation.

UDVD2 is a CD/DVD UltraDMA device driver. Also available on Jerome Shidel's FreeDOS software list.
 
 
Item Version Size Released MD5
UDVD2 2015-03-05c 33.5 KiB 05/19/2020 C8720C2825517C435FAD3A6BD19CE8B9
Current version. No binary change, but corrects a slight error in the directory structure in the previous version.
 
 
UDVD2 2015-03-05b 33.3 KiB 03/24/2020 221E74477EB8CBC8CBA0F1C7020423BC
Same binary as the prevailing existing package but with extra LSM file keywords and the stray row of 0x1A bytes at the bottom of the original source code file has been removed to avoid potentially choking the compiler.

UHDD is a disk-only caching driver for up to 22 BIOS disks on up to 9 "Legacy" and Native-PCI SATA/IDE controllers.Also available on Jerome Shidel's FreeDOS software list.
 
 
Item Version Size Released MD5
UHDD 2019-03-31b 42.2 KiB 05/19/2020 3AE642E10AE62654EF0A37F94D90756D
Current version. No binary change, but corrects a slight error in the directory structure in the previous version.
 
 
UHDD 2019-03-31 42.0 KiB 03/24/2020 EB170504989295066E194F753140BD91
Contains the same UHDD and CC binaries as the existing FreeDOS UIDE package but tailored to UHDD specifically (UIDE has been removed as it already has a separate package), with extra LSM file keywords, and the stray row of 0x1A bytes at the bottom of the original source code removed to avoid potentially choking the compiler.

UIDE is a general-purpose caching driver for DOS drives, Floppy, CD/DVD, SATA and UltraDMA disks. Also available on Jerome Shidel's FreeDOS software list.
 
 
Item Version Size Released MD5
UIDE 2015-03-05b 55.1 KiB 05/19/2020 C5B01CC25096A45FE251807C20A06AFD
Current version. No binary change, but corrects a slight error in the directory structure in the previous version.
 
 
UIDE 2015-03-05 54.9 KiB 03/24/2020 6AEA726DAC710352997B1D988582F49B
This package contains the same UIDE and CC binaries as the existing FreeDOS UIDE package but tailored to UIDE specifically (UHDD has been removed and given its own package), with extra LSM file keywords, and the stray row of 0x1A bytes at the bottom of the original source code file has been removed to avoid potentially choking the compiler.

XMgr is an XMS manager which handles up to 4-GB of RAM and supports V3.70+ UMBPCI. Also available on Jerome Shidel's FreeDOS software list.
 
 
Item Version Size Released MD5
XMgr 2020-04-15b 32.7 KiB 05/19/2020 483D9083711D64D5D05838DC38A1C07D
Current version. No binary change, but corrects a slight error in the directory structure in the previous version.
 
 
XMgr 2020-04-15 32.6 KiB 04/15/2020 BB04B7C3FAE09539FA3011484E87C865
Superseded.
 
 
XMgr 2015-03-05b 34.3 KiB 03/24/2020 267A6B409A11A4B659AF9702EEC97BF3
Contains the same binary as the existing FreeDOS package but with more tailored documentation.
 
 



EPiC

Status: Updated as needed.





Exelyx

Status: Cancelled


Kernel Series 2 Modules
Item Version Size Released MD5
Display Module 2.0 25.4 KiB 07/17/2008 C58040756C84DF55130916A43A39FE06
This is the complete PowerBASIC source for the module that powers any and all things graphics related. It currently only supports 8 bit color, but future modifications will add 16 and 24 bit support as well.
 
 
File Module 2.0 15.2 KiB 07/30/2008 5E7181C3197C382D53EACCE1D71B28BC
This module controls all manner of file access for the new kernel. Includes Windows-style LFN support.
 
 
Hardware Module 2.0 14.8 KiB 09/02/2008 424CE41E4B9267DE565E318E64B481D0
The Hardware Module provides low level detailed interaction with the devices in the computer. Includes mouse support and drive probing.
 
 
Text Module 2.0 16.5 KiB 09/18/2008 ADE3ADC2D2AE7592D091AA34763B5A0D
A collection of routines for manipulating text, entirely in XMS. Supports text objects up to 64MB in size.
 
 

Kernel Series 1
Item Version Size Released MD5
kernel 1.40.zip 1.40 140.7 KiB 5B67D6032D97E890D9E93EE9923DD796
kernel 1.35.zip 1.35 125.3 KiB 0BC6FCFE6B9978A1B203EC1D7A1CE9A4
kernel 1.34.zip 1.34 122.5 KiB 9A73FE9AC8D4AE387BD06C26E60C6020
kernel 1.33.zip 1.33 132.7 KiB C3AF1221C3B1FB744B013BC8FF3964A7
kernel 1.00.zip 1.00 98.2 KiB 4D7007CF759C53182C41E1F6ED4E651E
 
 

Feature concept demos
Item Version Size Released MD5
CD interface demo 1.00 58.2 KiB 10/04/2010 288621C627D144C35C10FD2864DF22DF
This is a demonstration of the audio CD support routines in the Sound Module.
 
 
MIDI demo 1.00 79.6 KiB 4/28/2011 BB1A8022F04E4DA69A1568AFB9E9E016
A demo of the MIDI routines in the Sound Module.
 
 
sound_and_MIDI_drivers 1.00 17.3 KiB 4/28/2011 530188B70B2D13C952D3D52B33C84944
These are hard to find [out of production] drivers for DOS which enable sound and MIDI support.
 
 

Exelyx Applications
Item Version Size Released MD5
KClock.zip 1.00 606 bytes 12/30/2007 A42CFD07DD48DDB6B3DB51F614C2F3EA
A simple clock which stays resident in the upper right corner of the screen. Originally made only to test the kernel's multitasking and priority level processing. Includes assembly source code.
 
 
KDate.zip 1.00 597 bytes 12/30/2007 0ED36BFB84456ABAD32F2A986F21F083
A plain date display app for the Exelyx kernel. Uses the priority functions of kernel 1.40 and up. Includes assembly source code.
 
 
Speed.zip 1.00 692 bytes 12/12/2007 73EC788AE52A60EDCEE13380D71C344E
A utility which constantly prints the number of instruction loops being executed per second on your computer. Also includes assembly source code.
 
 

Development Tools
Item Version Size Released MD5
TechRef.rtf 1.00 29.3 KiB 12/30/2007 6FBA0B66F89C460BD1CC07F2E5C5367E
The Exelyx kernel technical manual, which details everything from the kernel's internal assembly opcode set to the complete error code list and more... full of intricate goodies!
 
 
PAC.zip 1.00 46.9 KiB 12/11/2007 367A78E937AF67180F773AA549B18316
The Exelyx Assembly Compiler. A program which compiles assembly code into an executable program. Includes 'pachelp.txt', a guide for use, incomplete as it might be.
 
 
PBASIC.zip 1.00 41.2 KiB 12/9/2007 E625FCEFA715603D0917D471663A80DA
This compiler will take a BASIC source code file and translate it into Exelyx assembly. It will be compatible with the BASIC programming language, and will support many of PowerBASIC's additional statements. Any programs you have which are written in QBASIC or PowerBASIC should be easy to compile and run under Exelyx, usually without modification. It will also support accessing the API functions of other applications and the kernel itself through interrupts.
 
 





JavaScript Library

Status: Updated as needed.

Item Version Size Released MD5
Browser Detection Demo.html 2020-05-24 2.4 KiB 3/16/2020 A1E4B5F224CAC60444CA3B290227550F
A demo of the BrowserGet function.
 
 
BrowserGet.js 2020-04-26 1.6 KiB 3/16/2020 D6A6482BABD0262255F58F32B8D9F66B
A quick-and-dirty function allowing basic detection of the browser in which it's running.
 
 
Sorting Algorithm Demo.html 2020-04-26 6.3 KiB 3/11/2020 A8162A90B89DB49319DD4DBE27481273
Illustrates the difference in execution time amongst the various sorting algorithms in Sorting.js.
 
 
Sorting.js 2020-04-26 9.1 KiB 3/11/2020 0C06F22B2740D9EFC721054D0FAC0499
A variety of sorting algorithms in one handy library! Includes Binary, Bubble, Heap, Insertion, Merge (Top-down), Merge (Bottom-up), Quick, Quick (Lomuto partitioning), Quick (Hoare partitioning), Radix Bucket, Radix LSD, Selection, and Shell algorithms.
 
 
WordSplit Demo.html 2020-04-26 2.2 KiB 3/11/2020 E32EFB1007069EA5DC01AB194AB69764
A demonstration of how WordSplit differs from JavaScript's built-in Split function.
 
 
WordSplit.js 2020-05-10 4.1 KiB 3/11/2020 BBA8CF2D97F0890A3222BE2B69877282
WordSplit is a JavaScript port of my VBDOS ParseWord routine, which itself was a port of the original GETWORD.BAS with one significant enhancement - the ability to split a string into an array, eliminating the need to repeatedly call GetWord multiple times to retrieve whichever word is needed.
 
 





QBASIC Library

Status: Updated as needed.

Item Version Size Released MD5
GETWORD.BAS 1.00 1.7 KiB 1999 FB969BD9880030492ADA999DAB4A6D0B
One of the most useful pieces of code I've ever written, it's found use in numerous situations. Back when I wrote it, the various BASICs I used (BASICA, QBASIC, VBDOS, PowerBASIC) had no function to split a string based on a certain character... so I made my own. Mind you, this was long before modern languages like JavaScript shipped with their own method for doing so. Even now it proves useful as it splits strings differently than the built-in offerings of JavaScript.
 
 
Y2KPatch.zip 1.00 4.7 KiB 1999 D78E7E0BF6CADD45BDCFBC63F3EA52F5
Ah, yes, the dreaded Y2K bug! Amidst the grandiose predictions of "experts" that application programs the globe over would collectively perform a lemming-style address jump to their deaths when their RTC overflowed to zero, I did what I always do: wrote a little code to probe, test, and solve. The result is a collection of four BASIC source files comprising an installer, uninstaller, a test to see if the computer in question is even affected by the Y2K bug to begin with, and a patch which fixes the issue if it is. Not an issue nowadays, granted, but back then it was awesome to see this code enable some pretty ancient MS-DOS systems suddenly have the correct date when before they could not manage to do so.
 
 



Warp OEM

The first (and only) smartphone ROM I ever made. It took a mediocre Android-based phone and turned it into a powerhouse, able to handle much more advanced apps than otherwise possible.

Status: Completed; no longer updated.

Item Version Size Released MD5
Version 2.75 2.75 143.6 MiB n/a BF4AA84CD46F9EB37F3192EEEBD7494D
 
Version 2.70 2.70 115.7 MiB 9/9/2013 4BEAF9D5CF9D80B69BB041E9B6CFE612
 
Version 2.53 2.53 115.4 MiB 5/29/2013 B4031402B2BAF82881D768F985FE52BE
 
Version 2.51 2.51 16.3 MiB 5/22/2013 8E80061361FCF8574C3305EDBABDFD82
 
Version 2.50 2.50 116.3 MiB 5/20/2013 F4716DD5A9A2568DB2E53EC5260CBD30
 
Version 2.10 2.10 128.8 MiB 5/8/2013 E48F1E21381B98A7588C49DD9B183B07
 
Version 2.01 2.01 122.7 MiB 4/6/2013 FF6623610AEF72E3DB7C3A6860D9C297
 
Version 2.00 2.00 122.3 MiB 3/15/2013 EDC225E3D4DF37380D476E085C844805
 
Version 1.55 1.55 129.9 MiB 1/13/2013 71DBDE6B80507AA18CDA4F28D40C32DC
 
Version 1.50 1.50 134.7 MiB 9/30/2012 30905D9C2360E983D2485E30B53CA419
 
Version 1.42 1.42 115.1 MiB 9/15/2012 47D786434533830B297133474C9C5E4A
 
Version 1.41 1.41 115.1 MiB 9/9/2012 DE8E388342BBD6015C04FD3B53401192
 
Version 1.40 1.40 107.9 MiB 9/8/2012 9887A57FC700C33CC3666B5DBDF32D78
 
Version 1.39 1.39 107.0 MiB 9/4/2012 CCFE292E0DA5B3A0BB8C49265A753F38
 
 
Warp OEM 2.xx Adreno Tweaks 1.00 376.9 KiB 6/29/2013 84E6828A2C60B68E662E29EBD4289CEE
A flashable to add the Adreno Tweaks (by CosmicDan and Spizzy01 of XDA) into any version of Warp OEM from 2.00 through 2.53, which will majorly boost GPU performance. Special thanks to Dizzle1 for customizing the initial tweaks for the Warp and Blyss for confirming they work on WOEM 2.53! May work with some other ROMs as well, but this cannot be guaranteed.
 
 
Warp OEM 2.51 to 2.53 Update patch 1.00 3.2 MiB 5/31/2013 A62E863EED2C4E5D70C5B1B22553E757
For those who have just flashed version 2.51 and would like the security update included in Warp OEM 2.53. Note: Version 2.53 had some updated apps versus version 2.51, however this patch does not include these. For the sake of everyone's sanity, your app folders will not be touched when using this update.
 
 
PowerNap v2 2.00 1010 bytes 5/8/2013 9AC00A98B477507A787E03D4702729A6
Updated version which, compared to the original (above) doubles the maximum speed of the device during sleep. Use if the upon-wake lag in the original is too much to bear.
 
 
PowerNap 1.00 773 bytes 3/16/2013 9B4E3C7B0FA3EBC2F7024FACEA8B3803
The script powering one of the new features of Warp OEM. Now available separately! This must be used with a kernel which supports asynchronous init.d script execution, such as the Alien Kernel. Place this in the init.d2 folder to have it run upon startup.
 
 
Warp OEM 2.xx smoothness fix 1.00 188.0 KiB 3/19/2013 5CF2FD57584BA372894BC49BED8E445E
Flash this after installing the ROM itself to remove graphical jumpiness by reinstating the FPS cap. For users who prefer smoothness over speed.
 
 
Mercury updater-script 1.00 12.7 KiB 3/28/2013 881F83784B6BB05BD719A1E951084D76
A complete installer script solution which mounts, formats and sets permissions as necessary and also checks which type of custom recovery the user has and verifies the platform accordingly. For custom ROM devs who would like to use the installer found in WOEM.