AFAIK no; these DDS chips have a number of internal registers that need to be rewritten for each frequency change and the easiest way to do it is with a microcontroller. You could, of course, only put the DDS board in the PC and wire its control lines to a connector, then when you want to make a frequency change you would connect an external microcontroller to those lines. This way you wouldn't have an arduino inside your vintage PC. 😀
If you don't want to go the DDS route you could probably rig something up with a fixed-frequency oscillator followed by a variable divider; say a 200MHz osc divided by 10 would give you 20MHz, by 6 you get 33.3MHz, by 5 you get 40MHz and so on. It would be more complicated though and less flexible than a DDS, but that's just my opinion.
(edit) plus with a clock source above 100MHz you wouldn't be able to use regular TTL or CMOS dividers but would have to use an ECL divider such as https://www.onsemi.com/products/clock-timing/ … ctions/mc10e016
(edit2) Huh, this project really keeps me researching. I found an even better alternative: https://www.onsemi.com/products/clock-timing/ … erators/nb3n511 It's a small (SOIC-8) PLL clock multiplier that takes a crystal from 5 to 32MHz and multiplies its frequency from 2x to 8x in 8 steps selectable with 2 pins. So with e.g. a 10MHz crystal you could generate outputs of 20MHz/25MHz/30MHz/33MHz/40MHz/50MHz/53.3MHz/60MHz/80MHZ depending on the state of the 2 pins (2 jumpers). Sounds like a simple and adequate solution to me. You could even use several crystals (switchable with another jumper block) to generate even more frequencies. Similar chip but with fewer selectable outputs https://www.onsemi.com/products/clock-timing/ … erators/nb3n502
I/O, I/O,
It's off to disk I go,
With a bit and a byte
And a read and a write,
I/O, I/O