October 24, 2009

Back to where I started

I removed or commented out most of the tainted code and re-wrote a lot of them, and the system is working about the same as before the branch. I still need to implement the low-level filesystem functions and vfork()/execv() functions to make a working Punix File System.

I also took the liberty of improving the tty driver. Previously this was based on crufty old code from V6 and V7, and it didn't support modern terminal standards and conventions. This code did most of the work in the ttyread() routine, where it handled the extra processing capabilites and end-of-line/end-of-file conditions. This code had a number of deficiencies, and I've been eager to rewrite it for some time now. I rewrote the tty based on code from 4.4BSD-Lite, where most of the work is done in the ttyinput() routine. This new version makes a line available in the canonical queue only when a "break" character is encountered (a break character is one of EOF (^D), EOL (\n), or EOT (also ^D)).

I also improved the virtual terminal driver by adding status indicators in the bottom-right corner of the screen for the Shift, 2nd, Diamond, Hand/Alpha, and Caps Lock modifiers. I drew a bitmap for a "bell" indicator too, but I haven't added it to the code yet.I added support for a bell indicator and started adding support for scroll lock. This can be seen in r160.

Speaking of modifiers, I really don't know what the "Hand" modifier should be used for in Punix. Maybe it could be scroll lock? Perhaps I could use it for the Compose feature instead of using the Mode key. Any ideas?

1 comment:

Jim said...

Hi, i'm really amazed by this project of yours, you are really writing a POSIX compatible OS for the TI68k calculators. This is something I would put and leave on my calculator.

Here some ideas for the Hand modifier: you could set it to Tab, Delete or even add another layer to the Function key's (Hand+F1=F9)
You could also use it to switch to another key layout (some keys act different).

Good luck :)