I love finding old boards full of
flatpack ICs, partly because they're unusual and varied by modern standards, and partly because of the how it looks like a group of insects decided to have a party on a PCB.
Part 1: IBM FSD Oscillator/Audio ModuleHere's an interesting little module made by IBM Federal Systems Division
(the same people responsible for the Space Shuttle's main computer).

The whole assembly is labeled "Oscillator Module, Audio Module", and seems to have a date code of 1981.

There's two boards with standoffs between them: here's what it looks like after I remove all the screws and separate the two boards. You can see that one of the boards has the connector, while all the signals are carried to and from the other board with the yellow wires. Both are covered with flatpack ICs, glued down to a metal frame for heatsinking.
Counter boardThe board with the connector has 3 white ICs in the corner with custom part numbers.

These turn out to be 4-bit counters, when looking up the part at aerospace supplier websites. From looking at the pinouts and features, these seem to be 74x161 or 74x163 equivalents.


The rest of the flatpack ICs have non-standard part numbers as well, but by again looking up these numbers at aerospace parts suppliers, the equivalent parts list shows which 5400-series parts they are. All are "plain" TTL: no 74LSxx low-power Schottky here. Date codes are from 1979-1980, and it looks like the low-power "L" and faster-but-higher-power Schottky "S" were finally combined into the overall-superior "LS" type in 1971, so there was plenty of time in between. It's possible this was from later in the production run, though, or IBM just didn't consider the LS parts sufficiently proven where not absolutely needed.
ROM boardThe other board's main feature is a gold insect in the middle.


The "UC6525" part number turned up in the normal information sources as a ROM chip, but there was nothing else to go on, and the information there conflicted both with itself, and with the connections I could see.
Ken Shirriff though was quick to answer my call on Mastodon and find
a reference to it in an old issue of Electronics Design, complete with pinout (page 86).
This is a 128 x 8 ROM, which is used as waveform memory:
Direct Digital Synthesis (DDS) in 1980!
It's a slightly strange part which needs not only the normal +5V, but also -5V and -12V, which is what the two tantalum capacitors on this board are for.


The rest of the chips on this board, like the other board, are standard 5400-series digital logic.
SchematicThe connections were often hard to follow here, as the traces on the component sides get hidden by both the ICs themselves and the metal stiffener/heatsink plates. However, with some educated guesses and targeted continuity checks with sewing needles to pierce the conformal coating, I was able to get a pretty accurate schematic in the end.
The short story is that this module generates a digital waveform at variable frequencies. I'm guessing it's an audio-frequency tone, maybe used for different alert or notification sounds in an aircraft, for example. The output is digital (8 bits), so there must be a DAC elsewhere in the system: this could be as simple as 8 resistors.
The full schematic is attached as a PDF, but let's walk through the circuit sections one by one, starting with the programmable frequency divider:

This is what those white ceramic counter ICs are used for. The 3x 4-bit counters are chained together into a 12-bit counter, which works as a frequency divider by resetting itself to a pre-set number on overflow from 0xFFF (the "overflow" pulse is the frequency-divided output). The frequency ratio is set by the counters' "pre-set" inputs. These inputs are driven by 12 external connector pins, but through a complex set of logic that mostly consists of AND gates. I don't know the exact purpose of this logic (12 bits inputs -> 12 bits output?) but I'm guessing that it's used to provide some kind of transfer function for the frequency ratios. Nothing more I can figure out without knowing more about the application.
Next, the output from the frequency divider travels over a yellow wire onto the ROM board, and enters a 9-bit counter built out of individual D-flip-flops:

The bottom 7 bits (bits 0-6) of this counter drive the address input of the ROM chip. The 5451 AND-OR gates (U20, U21, etc.) are used here as 2:1 muxes that select between each counter bit and its complement. They're essentially controllable inverters, where bit 7 of the counter selects whether the address bits are inverted or not.
This makes sense when you remember that inverting all the bits of a binary number is similar to applying a negative sign (see
two's complement math). With 7 bits, when inverting all the bits a 0 becomes 127, 1 becomes 126, 2 becomes 125, etc. So if all the address bits to the ROM are inverted, that means that instead of accessing memory locations "forward" from the first address to the last address, it instead accesses memory locations "backward" from the last address to the first address, as clock pulses come in and the counter counts up.
Because the address inversion is driven by bit 7 (toggled after every 256 cycles), the counter will access all the ROM locations in order first forwards, then backwards, then forwards, then backwards...
It gets even more interesting when we see that bit 8 of the counter (toggled every 512 cycles) drives another set of "controlled inversions" on the output of the ROM:

This means that the ROM contents will be dumped in a repeating 4-part cycle:
- Counting forward, positive output
- Counting backward, positive output
- Counting forward, negative output
- Counting backward, negative output
Take a look at a sinewave, or any symmetrical waveform, and notice how this corresponds directly:

This is really just a clever way to save memory space when generating a waveform. It relies on the 2-fold symmetry of the waveform to only have to store 1/4 of the full waveform, and then invert it in time and/or in voltage as necessary.
I tried powering up this module to make it generate waveforms for me, and see what waveform shape was stored in the ROM, but sadly had no luck. It drew a healthy 440 mA on the +5V and a combined 50 mA on the -5V and -12V, but no matter what I did the outputs never changed. Something might be dead after all this time due to ESD, for example, or maybe there's some subtle connections or logic I'm missing.
AnalysisOne thing that struck me about the circuit design was its inefficiency. To generate a "controllable inverter", it uses a mux made from an AND-OR gate (2 per IC), which also requires a complementary input. As a result, the complementary inputs for the ROM address counter need to come from a set of D flip-flops (2 bits per IC) rather than a dedicated counter IC (4+ bits per counter). If they had used XOR gates instead for the "controllable inverter", then this would've (1) fit 4 bits per IC instead of 2 bits per IC, and (2) not needed complementary outputs from the counter, allowing it to use 2x of the 4-bit counter ICs + 1x D-FF IC, instead of 5x of the D-FF ICs. It doesn't allow everything to fit on one board, but this change removes about half the ICs on the ROM board (less parts, less solder joints, better reliability).
I'm also not sure what system this was used in. The NSN record for the counter IC links it to the
AN/APR-38 radar warning system, but according to that website IBM didn't make the UI/display set, so that's probably just something else that happened to use the same IC. Let me know if you have any thoughts.