If you want to replicate the way the BeBox worked - the real hardware had a task that ran on the box and updated the lights. If that program failed, the lights stopped working (other than the disk activity light, which was bottom left and orange with activity.) I was also in the process of making something like this and got as far as ordering the shift registers.
Don’t use a parallel port - they are non existent on PowerPC hardware that runs BeOS and rare on modern PC hardware. Use a USB Serial interface (or get serial to work directly.) The Data you are displaying is, what, 20 bytes of data unpacked? But you could probably send it all as a bit pattern in a single in (4 bytes) + a header (say, 1 byte).
00000000 / 00000000 00000000 / 00000000 00000000
Set header to a value that represents “lights”, e.g. 0x83
You’ll also maybe want to pack the structs as 5 bytes, but that’s up to you. You could make the header in to 2 bytes and that would avoid that issue.
Use the header to set the data type, use the rows to encode the light values. You could also probably pack it all in to 3 - 4 bytes, but then that becomes nasty.
If you are using a PowerPC machine as the host, you could get this to probably work over a Mac serial port with a serial connection. You might need to use some type of serial level conversion for the signals, and the Mac doesn’t really do RS232, but I think you can make it work. If you are using a PC/Intel based solution, then you can just use a USB port and get a USB to Serial driver going - the FTDI chip is pretty well supported and there will be a driver that is open source somewhere I’m sure, if not already in Haiku.
I think the best way to do this is to create an Arduino based board and write a sketch that ties up the IO and drives the lights. Because you could also use the Arduino to create a GeekPort alike connector, but breaking out the digital and analogue pins and feeding the raw data back in to the box. Then you can create more packets for incoming/outgoing digital/analogue data:
Again, you can pack the data, but you’ll end up making in more complicated to process.
Having owned a BeBox - the lights are nice looking, but really don’t do anything useful