Gradius2000 wrote:
Hello, everybody! I am the creator of a github page here:
https://github.com/GradiusLover2000/CJWJudyOSThis page is the source site for a brand-new nanokernel that switches tasks through interrupts! It is still in released-Alpha stage and I need some people to test it with me. I know it may sound like something I can do my self, but I'm just trying to get the page popular
Any way, I can't wait to see your responses and usage for the kernel.asm on the page! Check out the github link above for more info.
Gradius2000
Most wouldn't consider me a newbie when it comes to assembly language, especially code that works against the bare metal. That said, I haven't got a clue as to what is going on in your program. A comment would die of sheer loneliness in your source code. Not helping matters, you've got all sorts of "magic numbers" and "magic addresses" in there, with no obvious indication of what they mean and what they do.
Also, please take note of Garth's comments concerning programming style, optimizations, etc. Also, you should consider writing this for use with the 65C02, not the (obsolete) 6502. The former offers more instructions, some very useful (e.g.,
PHX,
PHY, etc.), more addressing modes, and doesn't have the latter's errata, such as the
JMP ($xxFF) bug.
First step, in my opinion, is for you to thoroughly comment your source code and define what all those magic numbers mean. Also useful would be a narrative that describes the manner in which your algorithm works and any "gotchas" the would-be user should know about.
Technically speaking, you don't really have a kernel in the accepted sense of the term because there don't appear to be any provisions for I/O support. Have you got any plans to incorporate such support into your program?