Page 1 of 1
Superboard II Rev B 4-bit DAC
Posted: Thu May 19, 2022 2:58 am
by royedmund
Superboard II Model 600 REV B.
Day two of my OSI (Ohio Scientific) Superboard II restoration.
The Superboard II Rev B supported an Optional rudimentary 4-bit DAC for noise/sound. Note the later Revisions had an 8-bit DAC.
The Superboard II Rev B required four diodes 1N914, single 0.1uF (C58) capacitor and five resisters, one pullup R67, and four resistors for the DAC which I assume are multiples of the first resistor R68 value.
![Image]()
R67 pullup
R68 Value 1
R69 Value R2x2 = 2
R70 Value R2x3 = 4 R70
R71 Value R2x4 = 8 R71
Any suggestions or recommendations for the values of the resistors for the DAC that I should use for the best results?
Re: Superboard II Rev B 4-bit DAC
Posted: Fri Jun 03, 2022 1:29 am
by BillO
I would use the binary weighted series you suggest, except R71 is the MSB, so run the series like this:
R67 = 1K-2K (adjust for best offset)
R71 = 1K
R70 = 2K
R69 = 4K
R68 = 8K
Re: Superboard II Rev B 4-bit DAC
Posted: Sun Jun 12, 2022 1:32 pm
by royedmund
Thanks for your help. Here is my 4bit resistor ladder DAC in action.
Re: Superboard II Rev B 4-bit DAC
Posted: Sun Jun 12, 2022 1:57 pm
by BillO
Nice.
You should be able to produce 16 different levels though.
Try this little program:
Code: Select all
10 POKE 530,1
20 FOR X=0 TO 15
30 Y=4*X
40 POKE 57088,Y
50 NEXT X
60 GOTO 20
line 10 disables "control-c" so you'll have to press "break" to stop the program and choose "W" to do a warm start.
The output will not be linear due to the exponential change in resistor values but should look like an exponential curve.
Also, it looks like you chose to make R71=8R, R70=4R, R69=2R and R68=R. That makes your DAC run in reverse (voltage falls as the number you output to the keyboard latches increases).
Edit: I don't think this will run in 255 bytes but it might. If not we'll have to get your machine addressing more memory.
Re: Superboard II Rev B 4-bit DAC
Posted: Mon Jun 13, 2022 4:50 am
by Mark
Your program should work fine in 255 bytes of available RAM

- 1K RAM.gif (5.08 KiB) Viewed 3795 times
Or you could reduce the program size a bit using the following
Code: Select all
10 POKE530,1
20 FORX=0TO60STEP4:POKE57088,X:NEXT:GOTO20
Which will leave 213 bytes free
Although it seems obvious, I never realized the C1P DAC and C2/C4/C8 OSI 542 DAC were at different addresses. Keyboard polling interferes with the C1 DAC output although the original C1P 4-bit DAC cleverly avoids the highest two rows which were frequently used for joysticks. Theoretically you could poll joystick positions and not interfere with DAC values. The later revisions of the 600 board had an additional DAC enable bit (along with an 8bit DAC). I assume this was done so your C1 didn't scream upon reset when connected to a speaker while key polling was going on.