• Please review our updated Terms and Rules here

CPU replacement for Apple IIc+

jltursan

Veteran Member
Joined
Sep 24, 2010
Messages
842
Location
Madrid, Spain
I'm trying to overclock my Apple IIc+ and using the original CPU I've been able to make it run with a new 33Mhz xtal, slighty faster than 8Mhz; but I cannot pushing it further; so I've replaced the CPU with a couple of new 65C02 CPUs labelled W65C02S8P-10 (rated 10Mhz) and W65C02S8P-14 (rated 14Mhz) with no luck at all. Using the same xtal, the IIc+ refuses to boot freezing at checker board startup screen.

Has anyone replaced sucessfully the CPU with a faster one?, if so, do I need a specific model or brand?

The cheapo CPUs I'm using are from China; so if there's no reason to think that they're incompatible, they may be faulty (haven't really tested the CPUs working) or even relabelled...
 
Mmmm...the W65C02 is also used in the Apple IIe enhanced. I'll try to swap one of them with the one in my IIe to test if they're at least working units. The most probable is that they won't support 10Mhz & 14Mhz...:stern:

Does anyone knows a reliable source of 65C02?
 
Is over clocking the CPU in an Apple IIc+ supposed to be possible? Traditionally Apple IIs are very timing sensitive.
 
Thanks!. I've found this one. Seems that they have in stock...and they're not extremely expensive.

Darn!, the clones are exactly like this one, I suposse that that's why they're clones :sigh:

Is over clocking the CPU in an Apple IIc+ supposed to be possible? Traditionally Apple IIs are very timing sensitive.

Sure!. Mine, using the original CPU supports a 33Mhz xtal without effort (I've been running the machine for several hours without notice a single glitch). I've just socketed the xtal and replaced the 16Mhz original. You may also need to replace the cache SRAM, I've done so with a pair of UM6264D-70 and it worked flawlessly.
Trying to use a 40Mhz xtal didn't work; so I'm looking for a (reliable) faster CPU (10Mhz/14Mhz).

The only drawback is that I'm not able to really measure the speed enhancement, the IIc has no clock (I mean, an internal variable storing time ticks) and neither benchmark software nor system info tools...or at least I'm not aware of such tools. I've simply used a BASIC program that loops and a chrono to check the doubled speed :p
 
Last edited:
Yeah, if the Apple II series doesn't have a separate timer IC driven by the crystal, you're out of luck in terms of writing benchmarking software :) Since Woz was a fan of reduction and of doing everything with the CPU, I think it's safe to say without any research that there isn't a timing source in the Apple II other than the crystal itself. I'd love to be proven wrong, though.
 
There're no internal interrupt sources?, I'm not really into 6502/65C02; but seems strange to me that you can't use an ISR to measure time. I suposse that I'm mostly influenced by the Z80...
 
For what it is worth, there is some information about over-clocking Apple IIC+ over on the apple2online.com forum:

http://apple2online.com/smf/index.php?topic=31.0

Keep in mind that there are other chips that end up seeing the faster operation inside the computer, too. If those are not able to operate at the higher speed, then they also can contribute to the problems that you see. Just a thought to consider.

Good luck to you!

smp
 
The only drawback is that I'm not able to really measure the speed enhancement, the IIc has no clock (I mean, an internal variable storing time ticks) and neither benchmark software nor system info tools...or at least I'm not aware of such tools.
As a bit of background... the IIc+ essentially has an integrated ZipChip. That's why re-clocking it works at all. The CPU is decoupled from the bus in a way that the old stuff can still be slow, and the new stuff can be faster. Of course you can't just take a plain old Apple II+ and clock it faster. It simply doesn't work that way.

Now, on to timing and measurement. The firmware has a built-in system call named DELAY ($FCA8 ) that is defined to take (5*A*A + 27*A + 26)/2 CPU cycles on a 1MHz Apple II (where A is the value in the accumulator when called). Later generations of firmware took the hosting system's speed into account - the IIgs, for example, will delay that same time period whether it is running in 1 or 2.6MHz modes. External accelerator manufacturers didn't have the luxury of changing firmware on the fly; but Apple, integrating the ZipChip technology on the motherboard, may have taken advantage of that. I've not tried myself, but it would be easy to write a test of DELAY to see if it behaves the same under different acceleration modes using an external chronograph. I think this is the opposite of what you need, though.

And finally, since this is a ZipChip at heart... you can use any utility or diagnostic disk made for that accelerator to test your machine. I don't think any of the ones I've seen will give you a MHz rating, though - they usually talk about percentage of total acceleration you're currently configured to achieve.
 
What if you installed a clock card? Could you query that as an independent way of measuring how fast the CPU can do something between intervals?
 
Now, on to timing and measurement. The firmware has a built-in system call named DELAY ($FCA8 ) that is defined to take (5*A*A + 27*A + 26)/2 CPU cycles on a 1MHz Apple II (where A is the value in the accumulator when called). Later generations of firmware took the hosting system's speed into account - the IIgs, for example, will delay that same time period whether it is running in 1 or 2.6MHz modes. External accelerator manufacturers didn't have the luxury of changing firmware on the fly; but Apple, integrating the ZipChip technology on the motherboard, may have taken advantage of that. I've not tried myself, but it would be easy to write a test of DELAY to see if it behaves the same under different acceleration modes using an external chronograph. I think this is the opposite of what you need, though.

In fact, if I've understood its use, this call looks extremely useful to me as running a 8Mhz Apple seems too much for a lot of software. Is there any tool capable of taking advantage of this feature, like a SLoMo resident piece of software?

About ZipChip, yes, I've used the ZipChip tools and they sucessfully identify the hardware. They let me choose between a lot of speed presets; but I'm not sure about the settings being saved. After exiting the ZC tool and running BASIC tests, seems that nothing has changed. Probably I need to keep testing...

In the meanwhile, I'm going to get one of the Mouser CPU's. As the chinese ones are not being able to boot even with the original xtal, I suppose that there's something wwong with them.
 
A little update. I've finally managed to replace the original 65C02 CPU with one of the newer ones, it turns out that the W65C02S8P doesn't have the same pinout than the standard 65C02; but it can work with some minor adaptations:

1) Bend out W65C02S pin 1, it has vector pull output instead of ground.
2) Pull pin 36 (BE) up to +5V through a 3.3K resistor. You can use VDD from pin 8.

So far I've been able to make it work with 44Mhz xtal (11Mhz!), it's the faster xtal I have right now; but probably I would be able to push it further until the CPU max (14 Mhz - 56Mhz xtal) :D
 
Now some figures and a weird fact...

Running the following code:

Code:
10 rem Ahl's simple benchmark
20 for n = 1 to 100: a = n
30 for i = 1 to 10
40 a = sqr(a): r = r + rnd(1)
50 next i
60 for i = 1 to 10
70 a = a^2: r = r + rnd(1)
80 next i
90 s = s + a: next n
100 print "Accuracy ";abs (1010-s/5)
110 print "Random ";abs (1000-r)

I get these times swapping xtals ("Slow mode" means "ESC" key pressed while booting):

44Mhz XTAL - Fast mode = 18.18 secs. (11 Mhz)
44Mhz XTAL - Slow mode = 18.09 secs. (11 Mhz)
33Mhz XTAL - Fast mode = 20.43 secs. (8.25 Mhz)
33Mhz XTAL - Slow mode = 153.62 secs. (1 Mhz)
16Mhz XTAL - Fast mode = 32.68 secs. (4 Mhz)
16Mhz XTAL - Slow mode = 152.62 secs. (1 Mhz)

The timings are roughly the expected for each clock; but I've been puzzled with 33Mhz-Slow, I've always believed that "ESC" divides by four the fast clock so 4Mhz becomes 1Mhz and thus, 8Mhz must behave as 2Mhz; but no, seems that it slows down clock always to 1Mhz.
Now, given the above, pushing it further to 11Mhz seems to disable the slowing down mechanism, it is no more able to cope the speed and it's always in FAST mode.

Looking at the results, the max speed achieved is really impressive for an 8bit machine; but probably it's a good idea to use a xtal like 32Mhz to keep the "Slow & compatible" mode. Running the Apple at 11Mhz makes unusable a lot of software :p
 
They must be too fast indeed. So far, I've only tested "Dragon Wars" (and ProDOS of course, I don't have too much soft in 3.5 format :-() and the game seems to run fine, in fact it's smoother than ever. Music sounds good and maybe character and scenario animations are too fast paced.
 
Back
Top