While my obsession is still digital sine wave generation, I'd like to note that the resistor values in AOE 2nd Ed, 9.38, for the twisted-ring counter weighting resistors are not the best values to choose in the E96 series. They're not bad but not the best.
If someone wants to check, I think Lancaster's _CMOS Cookbook_ has the same resistor values as AOE. Can't find my copy of Lancaster's book at this moment.
What is in AOE is:
Q1: 57.6K Q2: 30.9K Q3: 23.7K Q4: 22.1K Q5: 23.7K Q6: 30.9K Q7: 57.6K
My search has shown that you get 80% less sum-of-squares error if you instead use these standard E96 values:
Q1: 30.1K Q2: 16.2K Q3: 12.4K Q4: 11.5K Q5: 12.4K Q6: 16.2K Q7: 30.1K
The matching with these values makes it worthwhile to use 0.1% or even better resistors (which are actually affordable and available these days!)
It appears to me that a generic 74HC595 output has an output impedance of 40 or 50 ohms at room temperature and currents under 1mA and 5V Vcc, and at these impedances it is actually very slightly better to use the
11.5K-12.4K-16.2K-30.1K range rather than the ten-times-higher 115K-124K-162K-301K.Tim.