More testing, proving I don't understand shifting:

;@AC 0020df00=voldown,null.S ; rio 1 null shifts
;@AC 0020df01=00b9461E ; rio 2 = kwnd CD (mp3)
;@AC 0020df02=00b9461C ;rio 3 = knwd tuner (tuner)

;@AC 0020df02.S=00b9461E ; rio 3 = kwnd CD (mp3)
;@AC 0020df01.S=00b9461C ;rio 2 = knwd tuner (tuner)

To mean, this means that the Rio 1 button should swap the meaning of rio 2 and 3. The volume down is just to check that the button press is going through. Needless to say, this doesn't swap them, they always maintain their unshifted meaning.

Matthew