Years ago, fudge decades ago - - -
When bored, put popcorn into the waveguide - - -
Shift register - Yup - that's the thing in the SNES controller. Read the outputs from the button presses and use those to run the functions.
e.g.
// Free Run Table
#define btn_Up 4079// Button Up
#define btn_Down 4063// Button Down
#define btn_Right 3967// Button Right
#define btn_Left 4031// Button Left
//
// Set X distance
#define btn_stepPlus1 4071// Start + Up
#define btn_stepMinus1 4055// Start + Down
#define btn_stepMinus10 3959// Start + Right
#define btn_stepPlus10 4023// Start + Left
Me and component level creation never got along so well, If I can hack an existing thing [black box] to do a thing, works for me. The innards of the controller have large copper button pads suitable for attaching wires to, Wires to a keypad and Poof - Keypad control.
But muscle memory is already setting in using the SNES controller, this button does that, that button does this, those two together do another . . .
That one loose wire was a hoot and holler show. Component box is mounted to the wall, Press is tied to the wall - There were dancing in harmony - Dir signal bouncing, step not knowing what to do motor just buzzed. Though I blew a controller out at first - Advantage to making everything compartmental is simple swapping of motor leads showed the control was fine [last good] Gave the box a good whack, things went back to normal [first bad] so loose wire became the thing to look for.
If Dir flips from High to Low, motor is just going to go the other way, just the way it is.
Now to drag myself to the car - No spark - MSD ignition worked fine before I got the bright idea of Fixing It . .