Friday, November 16, 2007

Progress on palmtop version

While I'm waiting for a new CD-ROM image to build, I thought I'd take another look at getting ROLF to run on my Nokia N800.

The display is now working; it turns out the frame buffer access isn't so clear-cut as on a PC, in that the display needs to be told when you've just updated a rectangle, it's a simple enough modification, though.

Initially, I thought I'd (have to) replace the existing interface with ROLF, but now I think I'll try to have them running simultaneously on separate virtual terminals. This means the server will have to configure and react to VT change signals (rather than the simplistic approach of waiting to be sent another keypress when changed to another VT). Then, I just need a simple program on each one to perform a chvt to the other.

The touchscreen delivers events through an input event device (see Documentation/input/input.txt in the Linux kernel); this is a much nicer interface than the /dev/psaux one I was using and handles keyboards as well, so I'm moving over to that for all platforms. I need to calibrate the touchscreen, though, the reported return values from the device cover a larger area than are actually returned, so with my initial code, the cursor wouldn't move out of a smaller rectangle in the middle of the screen.

To get anything working at all, I've installed dropbear (a ssh server), so that I can login remotely via the network. Executable files don't work from the memory cards, so I'm installing to a directory under the root.

Monday, November 05, 2007

Finally, new core code

I've just uploaded a new version of the core code to http://stoppers.drobe.co.uk/downloads/rolf.200711031911.tgz

This version supports more frame buffer formats, including the packed 24-bit RGB used by QEMU.

There is a very simple configure script, now, that you can use to configure the code to compile on X86 or ARM, and enable debug symbols, etc. (IIRC, the GTK+2 configure script is actually more lines of code than ROLF contains.)

The terminal program has been modified to keep reading from the application producing output even when waiting for a response from the Wimp (this means that you can run ROLF applications from the terminal command line without it hanging because it's filled up the buffer while it's got the lock on the Wimp).

As it stands, it's not very much, but if anyone gets it working, they'll be in a position to use the patches for Brandy, GTK and MPlayer that I intend to put up soon (meaning when they're finished, or I get prodded again). Also, I should look into patching ARM QEMU....

Update: Once you've built the code, you will need a fonts directory (included in the ISO image, or from here. Then change directory into Resources and run:

ROLF_FONT_DIR=$HOME/.fonts Wimp
Assuming you unpacked the fonts tarball into your home directory.

Update II:
If nothing appears to happen, try Ctrl-Shift-F12 to exit and look in /tmp/boot.
If the mouse pointer doesn't move, you probably don't have read-write access to /dev/psaux.