1
0
mirror of https://github.com/hsoft/collapseos.git synced 2025-04-05 21:08:46 +11:00
collapseos/apps
Clanmaster21 67adc6fcfc
Removed skip leading zeroes, added skip first multiply
Now instead of skipping leading zeroes, the first digit is loaded directly into hl without first multiplying by 10. This means the first loop is skipped in the overhead, making the method 2-3 times faster overall, and is now faster for the more common fewer digit cases too. The number of bytes is exactly the same, and the inner loop is slightly faster too thanks to no longer needing to load a into c.
To be more precise about the speed increase over the current code, for decimals of length 1 it'll be 3.18x faster, for decimals of length 2, 2.50x faster, for length 3, 2.31x faster, for length 4, 2.22x faster, and for length 5 and above, at least 2.03x faster. In terms of cycles, this is around 100+(132*length) cycles saved per decimal.
2019-10-20 22:26:07 +01:00
..
at28w zasm: rename #inc to .inc 2019-10-06 14:32:23 -04:00
ed Better explanation and layout 2019-10-13 18:34:46 +01:00
lib Removed skip leading zeroes, added skip first multiply 2019-10-20 22:26:07 +01:00
memt zasm: rename #inc to .inc 2019-10-06 14:32:23 -04:00
sdct zasm: rename #inc to .inc 2019-10-06 14:32:23 -04:00
zasm Fix misc. source comment typos 2019-10-09 11:12:08 -04:00
README.md Make userspace parse args the same way the shell does 2019-06-02 14:05:20 -04:00

User applications

This folder contains code designed to be "userspace" application. Unlike the kernel, which always stay in memory. Those apps here will more likely be loaded in RAM from storage, ran, then discarded so that another userspace program can be run.

That doesn't mean that you can't include that code in your kernel though, but you will typically not want to do that.

Userspace convention

We execute a userspace application by calling the address it's loaded into. This means: a userspace application is expected to return.

Whatever calls the userspace app (usually, it will be the shell), should set HL to a pointer to unparsed arguments in string form, null terminated.

The userspace application is expected to set A on return. 0 means success, non-zero means error.