The circuit is a replica of the Vaus controller made by TAITO and implements a DAC using a counter, a clock generator and a timer.
Half of a 556 is composes an oscillator with a fixed frequency around 60kHz.
A negative pulse coming from the MSX joystick port pin 8 resets a counter and start a timer formed by the other half of the 555 and has a potentiometer in its RC timing network. The output of this timer also works as a clock enable the counter.
The position of the knob determines then the amount of time that the counter has to count up clock pulses:
- fully counter clockwise: 1ms
- fully colockwise: 6.5 ms
Later, an assembly program was written to read the device and the results are
- fully counter clockwise: 63 counts
- fully colockwise: 405 counts
The outputs of the counter are connected to a shift register which is ready to send the data serially when the counting time is over.
Seial data is read at pin 1 of the MSX joystick port (UP) and clock pulses coming from pin 6 shifts out the next data bit
Interesting to notice is that the bits are read FIRST then the next counting cycle is initiated, thus the MSX can have the