Since I asked the question a few months ago, I had some more brainstorming done with one of my colleagues who lent me his oscilloscope for a couple of week, and then with Thierry who helped me by doing a few experiments
Basically there was multiple questions to solve:
- Is it possible to power two Oric motherboards using the same power-supply, common ground, common clock signal
- Is it possible to somewhat get these synced together
- Is it possible to merge the video signal
Thierry had two defective Oric motherboards, he fixed them, removed the regulators to get them work directly with a clean +5v power supply, and removed the clock generation of one of the machines and made it use the one from the second machine.
The result is that the computers work just fine, and they are nicely synced... except there is some random (stable) offset when the machines are powered on.
Since they share the same clock, the offset does not move over time.
By restarting the machines a few dozen times, Thierry found out that the offset is roughly in the -/+ 500ns range, with approximately (visually read on the oscilloscope screen) offsets being about -410, -320, -240, -160, -80, 0, +90, +170, +240, +360, +440, +520.
Thierry suspects that these values are more or less related to the 12mhz input frequency, like if the ULA snapped itself on the frequency, but not always at the same time. Since we have two mother boards doing the same thing, we get a relatively large number of different offsets.
Pressing the RESET pin does not change anything to the offset, the reason being that the ULA is always ON and is not connected to the RESET pin anyway
One thing I noticed is that the Oric schematics were showing the presence of a small component between the CLK and VCC pins connected to the ULA... which interestingly was not present on any of Thierry's machines.
Further research indicated that this was a modification made by Oric International, called "63b" which is supposed to improve the machine boot sequence by doing something on the 12mhz clock signal.
I'm posting here so everybody can suggest how we can proceed to get a perfect synchronization
Some more information about the ULA and how it works can be found on Mike Brown's ULA hardware description page available both at Fabrice's and Mike's own websites:
For people not familiar with the PAL format, and what all these timings mean, you can find more information here:
- In PAL, the screen is refreshed with a vertical 50hz frequency, and a 15.625khz horizontal frequency.
- At this speed, a scan-line lasts exactly 64 microseconds.
- On the Oric in particular, the 240 visible pixels are drawn in 40 microseconds
- Since we have 40 columns (bytes) per line, it means each block of 6 pixels takes exactly 1 microsecond to draw
- The display of one particular pixel takes 166.66 ns
As we said earlier, Thierry's test shown that we were out of sync by +/- 500 ns, which means basically +/- 3 pixels!
Regarding the variation, my first idea to limit the wobbling is to not reboot the two machines together, but instead to keep the first machine (master) ON at all time, and only start and stop the second machine.
A possible way to control the second machine, could be to use the TAPE relay of the first machine to control the power to the second machine, and ask the user to press a key until the lines are aligned on screen
If this is doable, I have plenty of ideas on how to go from there, one being to actually generate more colors by having some half-bright combinations when both machines output the same component values, so we could get DARK RED, ORANGE, GRAY, BROWN, etc... that could be done with a simple component that follows this logical table:
0 and 0 -> 0
1 and 0 -> 1
0 and 1 -> 1
1 and 1 -> 0.5
- This way, if the machine #1 displays a full Oric picture, you get a full normal Oric picture on screen.
- If the machine #2 display a full Oric picture (and the other one shows BLACK) you also get a full normal Oric picture.
- If one machine display on even lines while the other draws odd lines, you still get a standard Oric picture... but displayed twice as fast.
- By using the two machines to display complementary pixels on the same scanlines, it's possible to remove half of the constraints and limits on the number of colors closed together.
- And by artistically complementing and displaying the same pixels here and there, you get gradients and intermediate tints.
That's my idea at least
Of course after that comes the small details: How to boot the machines, do I need two cumuluses, can I have custom ROMs/Eproms to facilitate the testing, etc...
Suggestions and ideas are welcome.