The smallest, simpliest robot controller I have created is based on the PICAXE-08M. With only five I/O pins, it's a tough one to build a robot controller around. Of those those five I/o pins, only three are truely I/O. One is an input only and the other is only an output.
Problem number one was the H-Bridges. With a code space of only 256 bytes, it was important to incorporate two H-Bridges into the design. That way it only takes two short lines of code to drive or steer the robot and the PICAXE could do other tasks simultaneously. But it takes four I/O pins to operate two H-Bridges. What could a robot controller do with one I/O pin?
My solution was to double-up the function of one of the I/O pins. It controls the drive of two motors and therefore leaves the robot controller with two I/O free pins. So now the robot can walk and chew gum at the same time. However, it can't pivot about its center - it has to turn centered on one wheel.
The turning subroutine has the robot taking turns pivoting on the left and right wheels. I call it psuedo-zero turn radius. Since it takes so little memory to turn the robot, the extra code space required doesn't fully offset the gains in the extra I/O.