Version
History
return
to home
version
history of the Exelyx kernel
(the different version releases are
archived, not revisions, though)
version 2.00
-removed
kernel infinite loop; no longer needed
-temporarily removed
priority processing -to trim source code size and speed up the
kernel, the built-in command prompt has been removed; will be
re-added as a Exelyx app later
-all threads are automatically
terminated upon causing an error
-added errorHandlerPointer to
threadData type, and changed errorHandler to errorHandlerHandle to
accommodate new error trapping abilities
-removed startAddr and
endAddr from threadData type since threads don't share
handles
-removed cursorH and cursorV from threadData type since
they were never really used anyway
-removed nextThread from
threadData type since it will no longer be needed with the redesigned
code core of this kernel
-modified system error handlers to
exclude references to GetNaturalErrorText and
GetKernelErrorText
-removed GetNaturalErrorText
-removed
GetKernelErrorText
-removed InitKeyTable and related data
structures
-removed fileData type
version 1.42 (merged into
kernel 2.00)
-added the dir command to the help screen in the
command prompt
-added kint 0x34 (open / close cd drive
door)
-handle probing status (on or off) is now displayed by the
mem command
-stripped down kernel error handler
-fixed screen
mode change bug in CommandPrompt()
-fixed bug that occurred when a
thread used the terminate thread kint on itself
-fixed bugs in mov
and call instructions -further optimized code execution
core
version 1.40
-merged ExecInstruction() with
Main() for further speed increases
-trimmed code for unsupported
instructions from ExecInstruction() to clean up the source
-overhauled code execution core algorithm for speed, yielding
major performance gains; individual instructions still need
optimized
-added kint 0x33 (set thread priority)
-added kint
0x32 (set thread pause state)
-added 'priority' to the threadData
type to allow different threads to have more CPU time than others
(e.g., the kernel infinite loop is set to lowest,
and all
other launched threads are set to the highest, but a thread can set
its own priority if it doesn't require the highest speed
setting)
-the kernel now informs the user of the status change of
a thread when 'thread x pause' is used
version 1.35
-optimized
some portions of code for speed
-added simple debugger which
displays the register contents as the program executes
-fixed bugs
in kint 0x09 involving cursor positioning
-fixed cursor relocation
bug in kint 0x03
-eliminated need for the CLIST and DAREA
resources, apps may now only have one 32K block for code and data,
the DS register does not get set upon app load, and the mov family of
instructions all access exactly the address they're told, instead of
adding the value of ds to the address first
-fixed bugs in kint
function 0x18
-added kint 0x31(draw line)
version 1.34
-to
reduce source code size and segmentation problems the built-in
debugger has been removed
-the command prompt now checks to see if
drive c is available before assuming it is, and makes the first drive
available as the default drive if c: isn't there
-fixed a bug
where the drives command would display incorrect drive information
for CD-ROM drives under plain DOS, not when being run from within
Windows
-eliminated run command, just typing the program's name
will run it as in DOS; if you type only the program name (e.g.
'program' not 'program.exe') the kernel will first look
for
a program of that title in the following extension order: .pco, .bat,
.com, and .exe
-improved consistency of output of the mem command
so far as handles allocated and block sizes; output used to differ
widely depending on which underlying xms driver is being
used
-certain essential system threads are now able to be
designated as 'locked,' meaning they cannot be terminated; currently
only thread 0 uses this, and that's probably how it should
stay
-fixed annoying cursor relocation bug after dismissing an
error box by pressing ESC
-fixed memory leak when using the
restart command, due to the kernel not terminating all running
threads before resetting itself... trying to restart the kernel now
will generate an error if any threads are running
-got rid of the
annoying prompt "Press any key to begin the program." when
launching DOS apps
-fixed minor annoyances in the appearance of
the text as a Exelyx app loads
-improved error handling and thread
stability issues
-replaced the "Press DEL to access the
system menu." line with "Press DEL to terminate this
thread." in error boxes to eliminate having to do more error
checking from having the command prompt running over top
itself
-modified kernel startup error handling to include XMS
setup also before switching over to the main error handler
-fixed
text appearance of thread command output, no more wrapping
lines
-eliminated two separate thread name fields (public and
private) so threads can now only have one universal name
-fixed
startup procedure so that if a file is specified it gets run, or if
no file is specified on the command line the kernel goes straight to
the command prompt
-fixed a bug concerning remnants of the old
Exelyx-style lfn support; the kernel no longer tries to see if a folder
or file contains a Exelyx filename
-fixed a bug in the Exelyx app
loading routine which would leave a thread incompletely set up if an
error occurred while attempting to load the app's CODE
resources
-fixed a bug in how the kernel detects the amount of XMS
installed and XMS free; the kernel has always used all installed
memory, but would just report the wrong numbers for how much was
there,
now the correct numbers are shown
-made minor
changes to the XMS section of the output of the mem command
-added
/nhp switch to disable handle probing which causes problems under
windows
-fixed a bug in the xms release command that would let
handles which are in use by an app be terminated
-the dir command
now recognizes invalid switches
-added /s switch to the dir
command
-added separate file and folder counters to the dir
command's output, in addition to the usual item count
-fixed
output of date command (used to be an error with 1st, 2nd, 3rd,
etc...)
-fixed output of drives command, line wrapping / spacing
bug with mapped drives
version 1.33 revision 0x0010
-fixed
bug in copy command that puts the system in an infinite loop if an
error occurs while copying
-fixed bug where every directory
created with a long filename is made lowercase
-fixed bug in mem
command that caused overflow errors
version 1.33 revision
0x000F
-added 'restart' command
version 1.33 revision
0x000E
-fixed drive label bug where the label for drive C would
appear as the label for every drive
-enabled asterisk wildcard in
'dir' for file filtering
-added /w switch to the dir
command
-added support to 'dir' for listing directories other than
the one you're currently in
-modified drives command to include
displaying drive labels
version 1.33 revision 0x0007:
-added
/a switch to the dir command
-increased stability of copy command
when used on non-lfn drives
version 1.33 revision
0x0005:
added commands: copy, credits, date, drives, eject, info,
label, login, logout, make, pause, ren, time, type
-enhanced ver
command
-fixed a bug where commands typed with leading spaces are
not recognized
-fixed the program launch bug where when typing the
name of a program to run it, the kernel displays "The command or
filename is not recognized." regardless of whether or not the
program actually existed.
also, if the program did not
exist, an error dialog used to appear in addition to the
message
-md/mkdir now work properly
-dir command
works
-rd/rmdir gives no errors
-fixed a bug with the cd
command where it would change to a directory that doesn't exist if
you type an 8 character or longer dir name with extra letters, just
so the first 8 match
-the thread command now works properly when
used with 'stop'
-commands typed in mixed case now will
execute
-run command added
version 1.33
-added built-in
command prompt interface to replace limited console menu
system
-eliminated Exelyx-style LFN support in favor of the Windows
style... why complicate things by having three standards for
filenames when we could have only two? :)
-temporarily removed
KINT 0x27, 0x26, 0x25, 0x24 and 0x23; they need rewritten to use
Windows lfn
-modified KINTs 0x0C and 0x17 to not use Exelyx-style
lfn's; need to add Windows lfn support though
version
1.00
official beta release
known bugs:
-the
handle probing routine which the kernel uses to obtain size and
allocation data about XMS handles causes problems with Windows ME;
use the /nhp switch when starting the kernel to shut handle probing
off
-several inconsistencies have arisen when the Exelyx kernel is
used atop Caldera's DR-DOS, a few of which are listed here:
-your
XMS available will be 64MB, even if you have more installed in your
system
-the 'drives' command will show every drive to be a floppy
disk
kernel to do list:
-increase max number of
threads
-move stack space for each app into one XMS block, away
from thread memory space, and make them all a fixed size, 32K
each
-make max code resource size 64MB, instead of the current
32K
-add enhanced instruction set, including new opcodes which
will do the following:
-'push' and 'pop' will work on multiple
registers at once, and work with numbers and memory locations, as
follows:
push 8192
pop ua, ub, uc
pop [0xB4]
push es,
di
push ax, bx, ua
push [0x34]
-'mov' will use auto
incrementing registers, so instead of writing:
mov [ua], ax
inc
[ua]
mov [ua], ax
inc [ua]
mov [ua], ax
inc [ua]
code
can be written like this:
mov [ua]+, ax
mov [ua]+, ax
mov
[ua]+, ax
-make wildcards be able to be used for drive letters
also
-make command prompt multithreaded (so other Exelyx apps no
longer freeze while you use the command prompt)