298 interface

Mechanically my cnc is ready to fire up. I've tested it with the arduino and the 298 stepper drivers work great. But I now wish to use it with open source control programs like linuxcnc which require a two pin output to each motor. I have used inverters on one input to each side of the h-bridge, cutting the number of pins required in half and ensuring that only one phase is on at any time, but it's still not down to only two pins per motor.
I can use the Arduino to make up the difference but if someone knows of a circuit, like a reversible sequencer maybe, that can bridge the gap, I'd appreciate any info.

When asking questions, context is extremely important in order to get good answers.

Goosey:
Mechanically my cnc is ready to fire up.

Okay. cnc what? CNC Router? CNC sewing machine? Dot Matrix Printer?

Goosey:
But I now wish to use it with open source control programs like linuxcnc which require a two pin output to each motor.

It seems like a piece of software running on the PC would requie more than just two pins of output. Seems like there would be some kind of "middle" thing.

Sounds like you have a fundamental design issue. Maybe if you explain what you are doing, it would make more sense. (Or maybe if someone knows what a generic "cnc" is, they already know the answer, somehow?)

Well, he did say 2 pins per motor - likely from the printer (LPT) port. So - one pin for direction, the other to step the motor. Multiplied by however many motors (generally X/Y/Z - so 3 motors; there is also generally 3 input pins needed for end-stop detection, and maybe one or two other "relay" output pins - one for spindle motor, and the other for coolant).

Could be anything - but my best guess would likely be a 3-axis CNC router or milling machine.

Okay, details. It's a 3ft. by 2 ft. by 6 in. (app) cnc mill using a dremel. To be more specific, the x axis is built around the hollow rectangular steel 2 by 4's of an old rowing machine. The y axis is buildl around an ancient manual printing press...less the ink roller. The z axis is build around an old Smith-Corona? electric typewriter carriage.
Electronics. 8 opto-isolators from parallel port, transtor output. Since one side of an h-bridge only ever has one of it's two circuits energized while the other one is always off, that's a dead giveaway that one half of that phase is always a zero while the other is always a 1. I tied an inverter to one of each of the two pins of each half of the h-bridge (two inverters per h-bridge, 6 total for 3 axis's). When the un-inverted pin gets a one, that is inverted to the other pin, thus one line can control both circuits.
Bipolar steppers, in case you didn't already know.
I can use the arduino to keep up with which pins should be activated next depending on wether dir is hi or low. I'm actually thinking of doing machine code, if possible, because I could take the lowest 2 bits of a memory location, assign each bit to an output, then use machine language to either decriment or incriment that byte to get cw or ccw rotation. The 6 higher bits are irrelevant unless the processor does something I don't know about at overflow or underflow.
Having said that...are there any two bit counters out there that have an input that decides wether they count up or down?
Lol...I think I've found the solution but had to put my thoughts on paper to do so. Thank you all for stiring up my mental processes.
Well, i'm off to peruse datasheets and see what, if any, chips there are out there that will suit this final piece of the puzzle.

You can't use increment or decrement of two bits to drive the output, the sequence
is quadrature, 00 01 11 10 sequence, not 00 01 10 11....

What you'd normally do is table look up, the index to the table is the phase
which might be 2 bits for full steps or 3 bits for half-steps.

Connect the step pin to an interrupt pin (or any pin and use pin-change interrupts)
and you can simply maintain the phase in a single interrupt routine and then do
table-look-up to drive the output pins.

Looking at your signal list we have...

counter output vs step signal requirements
msb-lsb signal to pin1-pin2
count=1 0-0 phase=1 0-0
count=2 0-1 phase=2 0-1
count=3 1-0 phase=3 1-1
count=4 1-1 phase=4 1-0

Only the least significant bit of count 3 and 4 are wrong. I could use a tri-state multiplexer/demultiplexer (happen to have a few cd4053's on hand) to swap lsb's output through an inverter when msb is high but that's a whole 'nother chip i'd rather not use.
While I might use the Arduino to buffer and correctly time signals, if latency is ever an issue, I'd rather solve this one with the electronics. Haven't found any "how to build tri-state circuit' sites yet but that seems the simplest solution to me.

Actually, I believe I'll be able to use transistors for tristate logic on those recalcitrant bits, switching the output through an inverter when msb is high. If only that was as simple as logic electronics.

Goosey:
Only the least significant bit of count 3 and 4 are wrong. I could use a tri-state multiplexer/demultiplexer (happen to have a few cd4053's on hand) to swap lsb's output through an inverter when msb is high but that's a whole 'nother chip i'd rather not use.

No, an XOR gate. But you need to first generate the 2-bit count - plenty of counter chips in the logic families,
need to first find one with at least two output bits and a count-up/count-down capability (74HC169 ?) Step signal to the clock,
direction to U/D, lower two output bits (via an XOR gate) give the output signals.

Thanx MarkT!!! Your solution was staring at me from the truth tables all along and I didn't see it. Kudos to ya, amigo.
I haven't yet found any 2 bit counters...4 seems to be the smallest. Can you think of any problems that might occur from the unused sections?
If I could build a 2 bit u/d counter from just a few parts, I'd go that route instead.

yeah,i think so,If I could build a 2 bit u/d counter from just a few parts, I'd go that route instead.

I may have found a software solution via LinuxCNC and that's good because it takes my arduino out of the picture so I can use it for other things.
It seems LinuxCNC has a HAL (Hardware Abstraction Layer) that can redefine output from step/direction to quadrature, which is the actual sequence my stepper drivers use. I've got to read more before I understand it tho.