Can I run BOS on a real calculator yet?
TIny_Hacker wrote:
Can I run BOS on a real calculator yet?

Absolutely! Assuming you're willing to contend with the current lack of software and interface.
Installation is as easy as running the installer on-calc.
Uninstalling BOS to reinstall TIOS can be done a few different ways. Notably the on+2nd+del+reset method, but there is also a built-in uninstall feature in the recovery menu.
Another quick update post before I forget to announce: BOS will soon be able to back up TIOS and reinstall it without necessitating use of a PC! The installer provides a simple Y/N prompt so it doesn't always backup TIOS. Additionally to this, on first boot BOS will search for TI variables stored in archive, importing/converting them into BOS files! (check the "/usr/tivars" directory)
This will allow for extra features and programs to be imported into BOS until a file transfer program becomes available for it.
BOS's default UI now has icons!
Eye candy:

Also, on a far more exiting note, BOS now supports "software threading"! Effectively allowing multiple programs to run in rapid sequence. It works by switching threads when a program tells the OS to handle the next thread. Such as when waiting for a keypress or between loop cycles.
When a thread switch is triggered, the values of the PC, SP, IX, and IY registers as well as the current malloc ID (which is implemented separately) are backed up. Then the same registers are re-loaded with the values backed up from the next running thread.
Long story short, PC, SP, IX, and IY are (in the eye of the thread) conserved upon a thread switch. Which means that this feature will be compatible with the BOS fork of the CE C toolchain! (soon)
Threads are run in the order they are spawned, and each living thread will run once before another thread is re-run.

I have, of course, written another kind of key waiting routine:


int th_WaitKeyCycle(void (*callback)(uint8_t));

Which queues a thread to do the following:
1. check if a key is pressed
2. if no key pressed: handle next thread and goto 1 when we resume.
3. check if no keys pressed
4. if key(s) pressed: handle next thread and goto 3 when we resume.
5. run callback(key)
6. stop this thread.

The reason I have the thread stop once a key is pressed is so that the program can choose whether to continue grabbing keys without needing to stop the thread manually.
Note that this function spawns a thread but doesn't start it. The thread will be handled when it is eventually run as a result of a thread switch.

I am currently unsure as to whether it would be worth it to implement this system using interrupts to trigger the thread switch, due to it necessitating more registers be backed up. I am probably not going to implement it that way.

I have tested the new features on my revision L CE and it works as expected.
Moar eye candy using the new threading feature Very Happy

Don't mind the corruption at the end, still working out some bugs... lol
so I was trying to build BOS from the source using the latest CE C toolchain with make, but the terminal said that there was a syntax error. I am on macOS Catalina.

Thank you in advance!
You need python 3.6 or later.
randomguy wrote:
so I was trying to build BOS from the source using the latest CE C toolchain with make, but the terminal said that there was a syntax error. I am on macOS Catalina.


python -b -i -d
  File "", line 109
    os.system(f"fasmg {self.path}src/main.asm {self.path}obj/main.bin")
SyntaxError: invalid syntax
make: *** [bos] Error 1

Thank you in advance!

I suppose I should fix the makefile to use python 3 specifically, (which the build script relies on) as opposed to using the default installation of python which isn't necessarily python 3.

EDIT: Should be fixed now. Smile
EDIT2: I forgot to remove bpm from the build, hence another error. Should be fixed now.
BOS v1.11.0021 alpha (pre-release) has now been released on GitHub!

The filesystem is now ludicrously faster than it was before, FAT32 USB drive reading is once again functional, recovery options can now recover from most issues, and many bugfixes!

Here's some eye candy:

Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 2 of 2
» All times are UTC - 5 Hours
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum