Unlimited Faxes, No Fees, Dedicated Phone Number
This is a Unix-like operating system for the TI-89 and TI-92+ graphing calculators.
The name "Punix" is a combination of the words "puny" and "Unix". The other explanation for the name is that the "p" stands for "pico", meaning extremely small. Either way, "Punix" is a nicer, more politically-correct name than my other ideas for a name for my system: "Anux" and "Penix". :D
Here are some current and planned features of Punix:
So far I've implemented the following:
size_t from 16 bits to 32 bits. I discovered that the sizeof operator always returns a 32-bit number in TIGCC, and POSIX states that the size_t is an "unsigned integer type of the result of the sizeof operator" (stddef.h). The same applies to ssize_t, except it is signed. This required me to change several pieces of 68k assembly code, since the exact size of a number needs to be in the code. I also had to change sysent.c, which lists every system call and the number of words of arguments each one takes. I also fixed the sizes for some other syscalls that were wrong already (such as setuid, which had a "0" where it should've been "1").
This change is very good news, because I thought that malloc took an int argument, so I was debating whether to make int 16 bits or 32. Since malloc actually takes a size_t argument, I will make int 16 bits.
scrollcellup) was a stub, so the screen did not scroll up when text went past the end of the bottom line or there was a new-line on the bottom line. Now the it scrolls as you would expect.nextproc function is called. The number is written directly to video memory, so it's read as a binary number (black pixel=1, white pixel=0). It's just a debugging tool anyway, and it won't be in a release version.Here's a screenshot of this version so far. Notice that I used the "Achtung!" joke warning message. :) The pixels in the bottom-right corner are the counter I mentioned above.

kputchar function, so now it interprets carriage return, horizontal tab, vertical tab, formfeed, and backspace characters correctly. I also improved how it wraps at the end of the line: now it wraps to the next line only before a printable character or a tab. This means the screen can display a whole line of characters (60 characters wide), and a newline at the end will not add an extraneous blank line.Here's a new screenshot. This has text I used for testing the new features of the text screen. Some of the lines have tabs and backspaces in different combinations:
