VOGONS


First post, by carlostex

User metadata
Rank l33t
Rank
l33t

Calling on all electronics experts and aficionados.

I've had this idea which is hardly new and i'm sure a lot of people back in the day designed their own.

Everyone pretty much has at least one replaced an 8088 for a NEC V20. A later version of the V20, the V20HL is capable to clock at least at 16MHz. Because all XT's run synchronously a simple crystal mod would render your motherboard useless in Turbo mode.

My idea was basically a small PCB that would have male 40pin DIP pins on the PCB bottom to place on the socket and then a female socket on top for the actual CPU. Then the PCB would include 2 crystal oscillators, a divide by three circuit and a 2 pin jumper header.

All we need is that our custom PCB responds to the Turbo button just like the system does. When the turbo header is pulled low all the system is at 4.77Mhz. When pulled high CPU and ISA CLK uses the other crystal. For instance my XT motherboard uses a 14.318 and a 30MHz crystals, hence the 4.77MHz and 10MHz speeds.

Make our PCB respond to the Turbo button the same way via the 2 pin header, it is a simple job to solder a second cable on the Turbo button, one cable for the system and other for our custom PCB. It is easier and will probably better to get the LOW/HIGH signal from the turbo cable instead of getting that signal from the motherboard. When pulled LOW use the divide by three from the 14.318 crystal. When pulled HIGH use the signal from the 48MHz crystal thus giving 4.77MHz and 16MHz respectively and exactly what we need.

Oh it would be a good idea to make the 48MHz as a socket. I guess the NEC V20HL can probably be slightly overclocked so it would be cool to have the ability to change the crystal from 48MHz to let's say 54MHz.

I sent this idea to James Pearce and i hope i didn't sound like an idiot they way i presented the idea, i'm not 100% sure this can be done this way, but if it can it's probably the best option since we don't need to mess with the motherboard in any way.

So what do the electronics experts around here think?

Reply 1 of 13, by alexanrs

User metadata
Rank l33t
Rank
l33t

I'm not much of an expert, but it MIGHT be easier to design this using actual PLL clock-doubling instead of another crystal, as this would give an integer multiplier from the motherboards frequency and this might make things a lot easier to design (also the higher clock would be in sync with the motherboard). Also, I do not have extensive knowledge about how the 8088 woks, but I know a thing or two and if I recall correctly the address and data lines are shared, and the processor sends them in series (first the address, then the data) in any IO or memory read operation. So what might be doable is to wire the processor's data/address+clock lines to an FPGA, and the ones from the motherboard's socket too. Then use the FPGA's PLL capabilities (if any, else put an external PLL circuitry), and operate in two modes: non-turbo - just have the FPGA pass everything through and connect the processor's clock to the original one; turbo - have the FPGA "cache" address and data (as the motherboard won't be able to process them at the higher clock) and inject wait states to the processor to make it wait for the slower bus, and pass the doubled clock.
This should be possible, but one would need to study the 8088's datasheet throughly and be good at FPGA development.

Reply 2 of 13, by carlostex

User metadata
Rank l33t
Rank
l33t

That seems to be way more complicated.

I'd rather have the circuit completely independant from motherboard signals and just rely on the Turbo header. This way in Turbo mode you could keep your high motherboard bus 8 or 10MHz (some XT's do 12) and the top speed for the CPU, 16MHz for a NEC V20HL or even swap the 48MHz crystal on the circuit for a 54MHz one to overclock to 18MHz.

This would give ultimate XT speed without turning the system into a pile of thrash trying to keep speeds in sync. I imagine a 16MHz V20 with a 10MHz bus would give an IBM AT a run for its money.

Reply 3 of 13, by alexanrs

User metadata
Rank l33t
Rank
l33t

The problem is that you have to keep things in sync. The processor and motherboard still have to communicate, you can't just toss signals at 16MHz when the motherboard is operating at 8MHz, for example. Doing it your way (no PLL, 48MHz crystal) is actually more complicated as the clocks won't be in sync, and the adapter will have to cope with all that - and yes, it will still have to decode adress/data, cache them and send them to the motherboard through the processor's socket at the motherboar's bus speed.

Reply 4 of 13, by carlostex

User metadata
Rank l33t
Rank
l33t

I had the idea the Intel 8284 clock generator could still generate READY signals for ASYNC operation. The slower motherbus bus would be bottlenecked but still the system would gain some speed.

Nevermind i should have checked datasheets before having ideas... 🤣

Reply 5 of 13, by alexanrs

User metadata
Rank l33t
Rank
l33t

From what I understood the READY signal just insers wait states, it won't make the processor hold the address or data lines longer. And the 8284 will just sync its RDY input to the clock. While that might mean that you do not have to control wait states by yourself, I doubt you don't have to deal with the data and address lines.

Reply 6 of 13, by Anonymous Coward

User metadata
Rank l33t
Rank
l33t

See if the PC Sprint can be altered to meet your needs:

http://www.brutman.com/pcsprint_annotated.zip

"Will the highways on the internets become more few?" -Gee Dubya
V'Ger XT|Upgraded AT|Ultimate 386|Super VL/EISA 486|SMP VL/EISA Pentium

Reply 8 of 13, by bjt

User metadata
Rank Oldbie
Rank
Oldbie

I believe the reason PC Sprint is limited to a 2x speedup on a XT 5160 is that additional wait states are needed to go any faster.
The Turbo XT boards will be inserting wait states already to get to 10Mhz, but I'm guessing you'd need more to go faster.

Reply 9 of 13, by ryanfox81

User metadata
Rank Newbie
Rank
Newbie
bjt wrote on 2015-11-30, 10:11:

I believe the reason PC Sprint is limited to a 2x speedup on a XT 5160 is that additional wait states are needed to go any faster.
The Turbo XT boards will be inserting wait states already to get to 10Mhz, but I'm guessing you'd need more to go faster.

Sorry to dig this up, but I am wondering if this could apply to a more modern XT, Say a EXCEL Turbo. It has a 14mhz crystal and 24mhz oscillator , NEC 8284AD clock generator. I have currently installed a V20 chip rated at 10mhz , but can not exceed 8.35mhz under normal conditions by just upgrading the can oscillator, maximum is a 25mhz one. However swapping out the 14.314 mhz crystal for a say 12/10mhz bumps up the clock and performance significantly, but lowers the ISA clock and causes timing issues with ADLIB and other ISA cards. Any thoughts? I do have a second clock generator on hand..

Reply 10 of 13, by mkarcher

User metadata
Rank l33t
Rank
l33t
ryanfox81 wrote on 2022-05-06, 20:31:

However swapping out the 14.314 mhz crystal for a say 12/10mhz bumps up the clock and performance significantly, but lowers the ISA clock and causes timing issues with ADLIB and other ISA cards. Any thoughts? I do have a second clock generator on hand..

No, swapping the 14.318 MHz crystal does not bump up the clock and the performance of the system. It only bumps up benchmark scores. The reason is that the main timer chip runs off that clock. Any XT benchmark program trying to measure the speed of the processor just assumes that the 14.318 crystal runs at 14.318 MHz. If it is any slower, it's just like if you slow the clock of the referee at a manual timed sports race: You will get better times, but you won't be faster. Best advice about this crystal: Just. Do. Not. Mess. With. It. Too much of PC timing stuff is derived from this clock (even the video frequency of the CGA card, low res EGA modes and all modes on certain VGA-compatible cards), but nearly nothing performance-sensitive is derived from this clock. You might see a small memory performance improvement because slowing the 14.318 crystal makes memory referesh happen less often, but this can be achieved easier and without any of the compatibility issues that arise from replacing the 14.318 crystal if you use a tool that just reprograms the frequency divider used for memory refresh (it's the second channel of the timer chip). Memory refresh rate adjustment tools were common hobbyist freeware tools in the late 80s, so they should be easy to find.

Reply 11 of 13, by bakemono

User metadata
Rank Oldbie
Rank
Oldbie

Maybe someone else can confirm but IIRC the NEC V20/V30 manual called for a clock with 50% duty cycle, while 8088/8086 use 66% duty cycle. It stands to reason that the V20/V30 may not reach their rated speed on boards designed around the Intel-style clock. You'd be at 8.3MHz on a "10MHz" chip but it's already out of spec...

again another retro game on itch: https://90soft90.itch.io/shmup-salad

Reply 13 of 13, by mkarcher

User metadata
Rank l33t
Rank
l33t
maxtherabbit wrote on 2022-05-07, 15:00:

Why would the duty cycle matter? Don't these old chips only do their business on either the rising or falling edge?

No. The 8088 (and likely the V20 too) do some business on the rising edge and other business on the falling edge. The 8088 needs more time for the business done on the falling edge than for the business done on the rising edge, that's why the datasheet calls for 33% high and 66% low (give or take the remaining percent).