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.