Bascom and AVR, a controller for a Conesco AV multiplexer

Van Dijken Elektronica sells a cheap audio/video multiplexer made by Conesco (could not find a company url). This is a professionally built multiplexer and of course it is cheap because it is missing some essential components. First, it has no built in power supply. More serious, it has no controller for the selection of the active audio/video channel.
The power supply is not difficult, it needs +5 and -5 Volts. I used two small 5V power-supply module which could be mounted in the back of the multiplexer. It also needs 48 Volts if you configure the audio inputs as microphone and need phantom power on the micropone inputs. I was not planning on using the microphone inputs, so I omitted the 48 Volt supply.
The active multiplexer channel is selected with a three-bit binary code. The front panel has a small 10-pin connector for the power and the three-bit code. (Van Dijken has a pdf showing the pinning of the connector)
I considered however that this connector was too flimsy for operational use, so I mounted a separate DB-9 connector.
The three-bit code is made with a small AT90S2313 AVR. I mounted eight pushbuttons and eight leds in a small plastic box:

The controller is connected with the Conesco multiplexer using a regular rs-232 cable. The multiplexer also supplies power to the controller.
The controller schematic is quite simple:

Portb of the AT90S2313 is used for two purposes: first, it is configured as input so the state of the pushbuttons can be read. Secondly, the port is configured as output and the led for the selected channel is lit.
A separate led is connected to pin 5 of portd to show activity of the controller. The three-bit code is output on the lower three bits of portd.
The program is nothing fancy, in a loop the buttons are read, the appropiate led is lit and the three bit code is made.