# Things to do

This is the list of known outstanding tasks.

- Audio drivers. The audio chip is a NVIDIA nForce, which apparently supports AC97. The catch is that I need some basic routines to access the chip at a low level.
- Network drivers. The chip that provides the networking capabilities is the NVIDIA nForce and, like the audio, I need low level routines to manipulate the chip. I have been considering using the LWIP TCP/IP network stack, but am open to suggestions
- External USB device support (other than XBOX controllers)
- `execve()` support. I have code to launch an XBE file, but I need to create a HAL api, and then call that API from `execve` in `syscalls.c`.
- `fork()` support. There is a kernel API to create a new thread, however, it expects to launch a new function, rather than continuing from the current location (as per `fork`). Not sure what to do about this...
- Test `XRenameFile()`, `XCreateDirectory()`, `XDeleteFile()`, `XDeleteDirectory()`. I wrote these but haven't got around to testing them yet.
- Support multiple video modes in the graphics APIs.
- Fix `freopen(stdout)` so that it overwrites the file if already there
- Wrap `debugPrint()` from bottom of page to top
- Currently `alloca()` is not implemented. I have tried several incantations, but none of them work very well.
- The `times()` function currently returns the time since the XBOX was turned on (which is fine if you are just checking to see how long things take. ie. comparing the result from subsequent `times()` incantations), but is no good if you need to know the current time.

Back to Home Page