Reply 160 of 166, by SoftCat
The i8080 processor couldn't access RAM for two consecutive cycles. Therefore, the free cycle could be used by the video controller without interfering with the CPU. But can't the same be done with the i8086/i8088?
The i8080 processor couldn't access RAM for two consecutive cycles. Therefore, the free cycle could be used by the video controller without interfering with the CPU. But can't the same be done with the i8086/i8088?
Sure, if your RAM is fast enough. Usually RAM wasn't twice as fast as it needed to be to make full use of the CPU's RAM bandwidth, though.
I'm not sure what the speed of the original CGA DRAM was, but I guess it was in the same 250ns ballpark as the original PC?
reenigne wrote on 2026-06-30, 20:21:Sure, if your RAM is fast enough. Usually RAM wasn't twice as fast as it needed to be to make full use of the CPU's RAM bandwidth, though.
I see, thank you for your answer!
Can't the i8086/i8088 access RAM two cycles in a row either?
Well, the CGA DRAM bank needed to be able to access 1 byte every 279ns (the random access time can be a bit slower than that since the video output logic accesses two consecutive bytes in 559ns). System RAM could be much slower - one byte every 838ns (4 CPU cycles). So the CGA RAM was already likely on the fast side for the time.
SoftCat wrote on 2026-06-30, 21:29:reenigne wrote on 2026-06-30, 20:21:Sure, if your RAM is fast enough. Usually RAM wasn't twice as fast as it needed to be to make full use of the CPU's RAM bandwidth, though.
I see, thank you for your answer!
Can't the i8086/i8088 access RAM two cycles in a row either?
A bus access cycle on the 8086/8088 takes 4 CPU cycles.
reenigne wrote on 2026-06-30, 22:17:A bus access cycle on the 8086/8088 takes 4 CPU cycles.
I see, thank you for your answer!