Major changes to Kernel & Additional modules

Major changes to Kernel & Additional modules

-Fixed a bug in the device_findIndexOfDevice in which the the proper
arguments were not be accessed by the routine causing a subtle error
when finding the index of a device.

-Fixed a bug where when a PE Image was loaded into memory, the Next was
not set to InvalidEntry causing a virtually endless loop of iteration
through the Loaded PE Linked List in a locked thread.

-Added missing entries in the kernels Export Table, references to table
members with indexes >= 5 need to be updated

-Added support for PEFlags (unionized with the PENext entry), PEImages
can now specify PEIMAGE_PEFLAG_FORCEINIT. Thus ensuring their entrypoint
is executed before loading has been completed. EP must be short and
assume its executing in a locked thread. This change will be reflected
in the next generation of the documentation and is currently not
reflected.

-Fixed a bug in LAFS formatter where jump directories did not have their
corresponding LastEntry member in ther String Flat entry set properly

-Fixed a bug in the formatter where document data was not encoded
properly due to output filestream not being initialized as with the
binary flag

-Moved items common to all DarkCPU modules to new project called common.
Allows for more effective communication between applications and kernel.
Since the kernel has a known base address for its import table that is
supported by the definitions in the common module, you should no longer
import kernel routines via the import-table and instead you may assume
the address of the Kernel's Export Address Table and use this instead.

-Added additional macros to ease development of relocatable code. rset,
setr, _rpush, _rppush, and rcall. All of which include a deal of
limitations and overhead that will far surpass that caused by a
relocation table. Use the relocation table if possible.

-Removed depricated and statically linked hmd driver code.

-New MD35 project is now seperate from the kernel and it compiles into
an executable image placed on the initial ramdisk. The m35fd driver only
implements read operation.

-Renamed mutex_freeMutex to mutex_free as mutex in routine name was
redundant and excessive

-DDSCS standard has been changed. The beginCache routine now no longer
takes a second argument wCacheSize. This eliminates the possibility over
overlapping caches.

-DDSSI now states that it must be possible to assume invoking beginCache
multiple times on the same sectors does not internally creating
duplicate caches. These changes will be reflected in the DarkCPU
documentation within the next week or so.

-Thurough code documentation is lacking in the M35 driver. This will be
added shortly.

-Coppied debugged formatter binary image to root directory so that fs
build scripts can utilize them.

Jeremy Wildsmith