On the Oric expansion port there is a signal input to the machine called ROMDIS. It is for disabling the Oric basic ROM so that the expansion device can run its initalisation ROM at startup. It was probably just a little short sighted based on the Microdisc only needing 8kB of ROM address space - in the Tangerine Oric design, the expansion port signal ROMDIS is only routed to the high 8kB ROM chip. Most Orics (I believe) did however ship with only one 16kB ROM chip, so on these machines the ROMDIS signal disables the whole onboard ROM. This full-ROM disabling capability has been important for the modern storage exapansion devices like Erebus and LOCI to work correctly.
The commonly accepted solutions for making dual-ROM machines compatible have been to either convert it to single ROM machine (the motherboard was designed with both ROM chips sizes in mind), or route the ROMDIS signal to the lower ROM chip.
But then there is the Pravetz 8D. While in most cases a straight forward enhanced clone of the Atmos, the LOCI compatibility reports have been "variable" to say it mildly. Dual-ROM seems to be more common on the Pravetz, so I believed it should be the normal issue with the ROMDIS signal, but the reports were odd enough and not as clear case as I would have thought that I decided to get hold of a machine myself to do some testing. When the machine arrived, something else was high priority and the Pravetz was shelved for later.
Later became this week where I found myself with a little unease - I had just recommended doing the ROMDIS signal mod on a dual ROM machine - but I had not tried it myself and started remembering the old compatibility issues. Chatting with @iss about ROM versions and to double check the mod, he confirmed the mod was as normal but was still having issues LOCI. Better safe than sorry, I got the Pravetz 8D out and had the mod done in a few minutes - including peeling off the Bulgarian stamped tar(?) warrenty void seals on two corner screws. But it failed just like iss had said. LOCI would not boot with the modded machine. It behaved just like without the mod. However, if I pulled out the lower ROM chip, the machine would boot LOCI but it wasn't quite stable. Problem belatedly reproduced
The root cause frankly shocked me: Pravetz 8D mask ROM chips CM7864P-10 and CM7864P-09 DO NOT implement the additonal chip-select on pin 27 the Oric relies on. There is nothing there - complete open circuit(!) We know this has been an issue when sourcing EPROMs for the job, but for application specific ROM chips?
Quite a lot of chat with @iss on this you can imagine, with shock after shock as I first found it on the low size ROM (-09) assuming that explained why the ROMDIS mod didn't work, but then @iss found the high ROM was also broken and my mind blew again. And then he serves up this amazing piece of info he managed to gather:
So there we are - the factory standard Pravetz 8D design does not support _any_ expansion devices with their own ROM. ROMDIS does not work at all on these machines with Pravetz original dual ROM chips. "But they do!" I hear you screamreceived one more confirmation from a guy that used to be familiar with the production process - yes, the factory programed mask PROMs were without internal bonds on pins.
Here is what I believe is happening: The Pravetz ROM is always on (for the ROM addresses) so when an expansion device also wants to use the bus, they fight (both put their own data on the bus for the CPU to read) and the Pravetz ROM loses almost always. Expansions like the Microdrive and others that follow the same design template use dedicated bus transcievers like 74LS245 to implement the tri-state data bus connection. Those are much stronger than what these ROM chips are able to drive.
(Me speculating) Another factor why this was not detected before could be that there was no official floppy solution for the Pravetz 8D, and the most common Bulgarian 3rd party floppy solution, was designed to my knowledge without using ROMSEL but instead maps in the tiny floppy ROM in the IO space in 0x300. So it is possible that ROMSEL based expansions were rarely used with the Pravetz 8D, and when they were used they likely still just worked. Maybe some were flaky but then it could be easily attributed to the cable or the expansion device. Try another at that might work ("works for me").
But what about LOCI? It has even stronger more modern bus drivers - why does it not work then? Well, when working with those strong bus drivers I was worried about those and signal reflections on the data bus cable so I added in-line 100 Ohm termination resistors on LOCI side to improve the cable signal environment. It worked great for that and is one of the reasons we don't have too much cable trouble with LOCI, but it means it becomes much harder to win a bus fight - no matter how much you try to scream throught the resistors, the ROM is electrically right there, whispering its sweet words straight in the ear of the CPU.
How can we fix this? Switching to a compatible single 16kB EPROM is still an option, but that might not work for everybody. @iss and I started looking at options and tried to see if it would be possible to integrate ROMDIS in the decode logic. On dual-ROM Orics, IC11 a 74LS00 quad NAND gate, is used to combine the ROM chip-select signal from the ULA (always active when CPU address is top 16kB) and address bit 13 to make the two chip-selects for IC09(high) and IC10(low) ROM chips. Unfortunately we found no easy mod using the existing NAND chip, so went a different route.
Through some quick virtual collaboration, we cooked up 8D-Fixer (@iss did the work with some input and comments from me
@iss kicked off a production run so we'll not too far in the future have the confirmation we've cracked it, but this was too good of a story to wait with till then.
And that was just my part of the Pravetz discovery bonanza. On top of that it has also been discovered that the Pravetz 8D PAL PROM TBP24S10 has all bits inverted compared to the Oric PROM. Why we don't know yet (well, not I at least). And last but not least, a difference between Pravetz 8D machines with C/L button and F1 button has been found - the C/L keyboard matrix actually switches language (Ctrl-T), while F1 machines work like Atmos does. Hopefully others can elaborate more on these, I've rabled on for far too long already