Calculator Community > KnightOS

KnightOS Updates (DO NOT POST HERE)

<< < (2/6) > >>

SirCmpwn:
Update
KnightOS now supports relative loading, jumping, and calling within executing programs via the kld, kcall, and kjp macros.  This is how it works:
Before running, the code for kld hl, HelloWorld, assuming that HelloWorld is at 0015h, looks like this:
rst 08h
ld hl, 0015h
Now, KnightOS loads the program into RAM and executes it.  However, programs do not know where they will be loaded at runtime.  Let's assume that it is loaded into 8100h.  When rst 08h is executed, KnightOS changes the code to this:
nop
ld hl, 8115h
This way, it is much faster and it never has to execute the rst again.  The same method applies to kcall and kjp.

SirCmpwn:
Update
Multitasking now works!  That's right - you can now run up to 20 programs at once under KnightOS.
4 days of non-stop work finally paid off, I guess!  Attached is a screen shot of the process in action.  It shows two programs displaying the hex value of A, which is unique to their threads - they aren't displaying the same A.

SirCmpwn:
Update
I added directory support to the filesystem last knight, so the OS now has full read support for the filesystem.  I will be adding libraries today, and write support next.

SirCmpwn:
Update
lcall and LoadLibrary now work, allowing you to load libraries into RAM and call functions exposed within.  LoadLibrary accepts the same arguments as ExecProgram, and lcall's syntax is lcall ID, Function.  Each library has a two byte ID, and I will set up a library registration service, so that IDs aren't re-used.

SirCmpwn:
Update
Libraries are now fully implemented, with the ability to lcall functions in a library, and the ability to navigate through a library from within itself, using lld, lcall, and ljp.

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version