The C16 - a Ferrari with no tires ?

Discussions for CBM PET, VIC-20, SX64, C16/+4 and Commodore 128 systems
User avatar
Gyro Gearloose
Member
Member
Posts: 471
Joined: Sun Nov 15, 2015 5:20 am
Contact:

Re: The C16 - a Ferrari with no tires ?

Post by Gyro Gearloose »

eslapion wrote: Fri Nov 08, 2019 2:08 am I still have a VIC-20 with a 'bi-color' keyboard...
IIRC Addison's sold C16 keyboard mechanisms back in the day when they weren't a Dollarama.


The price one pays for pursuing any profession, or calling, is an intimate knowledge of its ugly side.
User avatar
eslapion
Active Member
Active Member
Posts: 1193
Joined: Mon Jul 20, 2015 10:11 am
Location: Canada
Contact:

Re: The C16 - a Ferrari with no tires ?

Post by eslapion »

Gyro Gearloose wrote: Fri Nov 08, 2019 2:30 am ... when they weren't a Dollarama.
What category does a 'store' fit in when they sell 30 y.o. electromechanical parts in worn out beer bottle crates ? :lol:
Wealth, like happiness, is never attained directly. It comes as a by-product of providing a useful service. -Harland D. Sanders
User avatar
Gyro Gearloose
Member
Member
Posts: 471
Joined: Sun Nov 15, 2015 5:20 am
Contact:

Re: The C16 - a Ferrari with no tires ?

Post by Gyro Gearloose »

"fun"
The price one pays for pursuing any profession, or calling, is an intimate knowledge of its ugly side.
User avatar
Gyro Gearloose
Member
Member
Posts: 471
Joined: Sun Nov 15, 2015 5:20 am
Contact:

Re: The C16 - a Ferrari with no tires ?

Post by Gyro Gearloose »

An odd thing I noticed is that C16s are more expensive that plus/4s on eBay...
The price one pays for pursuing any profession, or calling, is an intimate knowledge of its ugly side.
User avatar
eslapion
Active Member
Active Member
Posts: 1193
Joined: Mon Jul 20, 2015 10:11 am
Location: Canada
Contact:

Re: The C16 - a Ferrari with no tires ?

Post by eslapion »

Well, I did my part for the C16 with the Saruman-TED 64k expansion.

There are many nice software which will work only on a Plus/4 or C16 with expansion nowadays. I was browsing through Psytronik's stuff yesterday.

Look at this guy which is available for free... https://psytronik.itch.io/slipstream
Wealth, like happiness, is never attained directly. It comes as a by-product of providing a useful service. -Harland D. Sanders
User avatar
eslapion
Active Member
Active Member
Posts: 1193
Joined: Mon Jul 20, 2015 10:11 am
Location: Canada
Contact:

Re: The C16 - a Ferrari with no tires ?

Post by eslapion »

There is something incredibly fishy about the way TED machines access RAM and it causes weird problems.

Here is a (translated) copy of an e-mail I have sent to another engineer...

The CPU has the bus when CLK is HIGH and the TED has the bus when CLK is LOW. The problem arises at the end of the CPU access to the DRAM so CLK = 1 and CAS = 0.

1. Access to RAM is confirmed only when CAS = 0 because RAS = 0 means either the low addresses are on the bus or a row # to refresh for the DRAM refresh cycle. RAS = 0 becomes irrelevant for static RAM that is connected to the non-multiplexed address bus.

2. When the TED has the BUS it only makes READs so if CLK = 0 then it is absolutely necessary that R/!W = 1.

3. When the CPU has the BUS, it can do READ or WRITE but because of the way the DRAM is handled in this machine, during a WRITE, CAS and R/!W line stay LOW after CLK goes from 1 to 0. So, then, there is a condition that is normally impossible; CAS = 0 and CLK = 0 and R /!W = 0 This condition is equivalent to doing a WRITE when the TED has the bus.

4. At that instant, address lines A0-A7 start to change because refresh cycles arrive 200ns later. The DRAM is not affected because of its multiplexed bus that 'latches' the low address lines at the beginning of the DRAM access cycle. On the other hand the static RAM, especially if it is fast, will see this change of addresses and start writing the data it reads on the data bus to this new address which is a mixture (A0-7) of the row to be refreshed at the next RAS = 0 and the still valid addresses present on A8 to A15.

So, the truth table for the !CS of the static RAM according to the CAS, CLK and R/!W entries should be as follows:

Code: Select all

CAS | CLK |R/!W | !CS
----+-----+-----+----
1   | X   | X   | 1   <- CAS is high so no access no matter the values of CLK and R/!W
0   | 1   | 1   | 0   <- CAS confirms CPU READ RAM access
0   | 1   | 0   | 0   <- CAS confirms CPU WRITE RAM access - It is in the few ns following this condition that there is a bug
0   | 0   | 1   | 0   <- CAS confirms TED READ RAM access
0   | 0   | 0   | 1   <- CAS confirms TED WRITE RAM access which is impossible - this 'anomaly' lasts 90ns after every CPU writes. 
I will include a few scope captures to make this more clear. Presently, on SaRuMan-TED, the solution to this problem is to have a falling edge detector between the CLK signal from the TED and the CE2 input on the SRAM IC. Upon every falling edge of CLK, CE2 receives a low pulse of 200ns which terminates access to the SRAM whether the ending CPU half cycle was a READ or WRITE.

It's truly as if the people who designed this machine purposely made it very complicated to add memory. Adding DRAM can almost only be done by making mods on the board even when using a cartridge. Using SRAM requires needlessly complicated timing tricks.
Wealth, like happiness, is never attained directly. It comes as a by-product of providing a useful service. -Harland D. Sanders
User avatar
eslapion
Active Member
Active Member
Posts: 1193
Joined: Mon Jul 20, 2015 10:11 am
Location: Canada
Contact:

Re: The C16 - a Ferrari with no tires ?

Post by eslapion »

The absolute Whiskey Tango Foxtrot moment...
CAS and R///!W overstretch into the TED access time
CAS and R///!W overstretch into the TED access time
What you see above is CAS going low to confirm an access to RAM by the CPU but it is still low when CLK goes low to signal it's time for the TED to have control of the bus. Worst, R/!W stays low too even longer when the TED can NEVER write to memory. A genuinely stupid way of working.
Wealth, like happiness, is never attained directly. It comes as a by-product of providing a useful service. -Harland D. Sanders
nefaurora
Member
Member
Posts: 12
Joined: Wed Aug 02, 2023 9:47 pm
Contact:

Re: The C16 - a Ferrari with no tires ?

Post by nefaurora »

Eslapion, If you need any c-16/Plus4 software, Contact me. I think that I may have almost the conplete software catalog of it...

Thanks,

Tony K.
Commodore Collector/Restorer
Melbourne. Florida
nefaurora
Member
Member
Posts: 12
Joined: Wed Aug 02, 2023 9:47 pm
Contact:

Re: The C16 - a Ferrari with no tires ?

Post by nefaurora »

Bil Herd and his engineering team designed the 264 Series of TED computers as well as the c128....c16,c116,c264 (Plus+4) and c364... so any questions you have should be directed towards him at the c128.com website (Bil's website). I'm sure that he'd be more than happy to try and answer them as he is an actual engineer at heart. You can post his responses here..

Thanks,

Tony K.
Commodore Collector/Restorer
Melbourne. Florida
User avatar
eslapion
Active Member
Active Member
Posts: 1193
Joined: Mon Jul 20, 2015 10:11 am
Location: Canada
Contact:

Re: The C16 - a Ferrari with no tires ?

Post by eslapion »

I don't have much question really. I guess the way they did it at the time seems bizarre because the TED has a non-multiplexed bus so it seems built for static RAM but the architecture was less expensive to build at the time using DRAM so they added external multiplexers.

That was the least expensive and fastest way to design these machines at the time. Today DRAM is almost impossible to find and static RAM costs peanuts. This specific delay on the R/W line therefore becomes an issue that can be dealt with the addition of a simple single gate logic chip.
Wealth, like happiness, is never attained directly. It comes as a by-product of providing a useful service. -Harland D. Sanders
Post Reply Previous topicNext topic

Who is online

Users browsing this forum: No registered users and 0 guests