UK Vintage Radio Repair and Restoration Powered By Google Custom Search Vintage Radio and TV Service Data

Go Back   UK Vintage Radio Repair and Restoration Discussion Forum > Specific Vintage Equipment > Vintage Computers

Notices

Vintage Computers Any vintage computer systems, calculators, video games etc., but with an emphasis on 1980s and earlier equipment.

Closed Thread
 
Thread Tools
Old 12th Feb 2021, 2:48 am   #1
ortek_service
Octode
 
ortek_service's Avatar
 
Join Date: May 2018
Location: Northampton, Northamptonshire, UK.
Posts: 1,394
Default 65(C)02 CPU Higher-Speed upgrade / replacements

I've just been reading some posts on a EPROM-Programming issue thread I was involved with at https://groups.io/g/DataioEPROM/ - Which evolved into discussions on obtaining IC's that weren't missing-die counterfeits / remarked lesser ones (2716 EPROM's remarked as 2532, which now seem to be getting pricey), then 6502B / 65(C)02.

And there was some discussions on newer, high-speed 64(C)02 CPU's, that I thought may be of interest, to anyone not aware of these current ones. See posts, copied below:

1. Anyone that needs a FAST 6502 should check out the 14 MHz W65C02S6TPG-14 chips Western Design Center makes and sells on Mouser ( https://www.mouser.com/ProductDetail...o9AEKH5w%3D%3D ). These start at $7.

2. I had seen this the other day when doing research and I figured that it would have the same 65C02 pinout change/requirements against the MOS 6502, but reading through the Wikipedia article on it, it looks like the WDC65C02 might actually be better than the 65C02 as a replacement (lower power, higher clock limit).

The Wikipedia article on it goes through most of the differences quite nicely: https://en.wikipedia.org/wiki/WDC_65C02


3. You find the modification for old NMOS Boards on the WDC webpage! It looks uply but at least a way to get them working in old Board without PCB modifications. Have a look here: https://www.westerndesigncenter.com/...placements.php


Owen
ortek_service is offline  
Old 21st May 2021, 3:25 pm   #2
GeraldSommariva
Pentode
 
GeraldSommariva's Avatar
 
Join Date: Mar 2021
Location: Liphook, Hampshire, UK
Posts: 125
Default Re: 65(C)02 CPU Higher-Speed upgrade / replacements

Interesting reading the 6502 did get around a bit I found in VDU's and printers, my use was with the BBC B micro purchased from watford electronics.

Talking of the 6502 this is quit funky monster6502.com
GeraldSommariva is offline  
Old 23rd May 2021, 6:43 am   #3
ortek_service
Octode
 
ortek_service's Avatar
 
Join Date: May 2018
Location: Northampton, Northamptonshire, UK.
Posts: 1,394
Default Re: 65(C)02 CPU Higher-Speed upgrade / replacements

As well as being used in many arcade machines, the 6502 was probably used in as many (if not different models, then probably totals sold) Home etc. Computers as the Z80, being used in all Commodore's (Well the basic core at least, with some commodore IO extras added).
Versions used in printers and MODEM's etc. were often reduced address size / package pins ones like the 6507 etc)

And all Acorn computers right back to the System-1 (where one of SoC Mk14 SC/MP computer designers went to Acorn, after Sinclair hadn't been interested in updating it with a better processor) used it.
Until Acorn designed their own processor - the ARM (where Acorn were inspired to do it themselves, by the relatively few people it took to design the 6502, compared to the 100 working on the NS 32016/16032, which Acorn still weren't happy with the performance of).

It seems 6 billion 6502 have been made, according to: https://www.team6502.org/ (Maybe including using it's core in various ASIC's etc?)

The 6502 being sold at $25 in 1975 (when the 8080 was $180 and the 6800 $175), led Motorola to have to slash the 6800 price to $69
- Although MOS (With ex-Motorola 6800 designers) had to drop the 6800 pin-compatible 6501 version, as settlement of Motorola's legal action.
As detailed here: https://en.wikipedia.org/wiki/Motorola_6800
(The Z80 seemed to escape problems with ex-8080 (and 8008 + 4004) designers going to Zilog & implementing all the 8080 instructions in the Z80, as they altered the mnemonics. Although many other suppliers had copied the 8080 with AMD etc. reverse engineering it)
It seem there was a Semiconductor industry recession amongst the major ones in the mid-70's, with lots of redundancies by them, so there was quite a lot of new smaller ones formed with designers from those.

Steve Wozniak switched to the 6502, after initially considering the 6800 for the Apple-I - but left links on the PCB to swap between these.

So the 6502 had a significant role in the late 70's / early 80's home etc. computer revolution, effectively displacing the 6800 in the battle with the main Z80 (which had displaced the 8080, and it's not commonly-used 8085 successor) competitor.


Yes, I'd seen that discrete-transistor build at: https://monster6502.com/
in 2016, from: https://hackaday.com/2016/05/16/a-dis-integrated-6502/
And this documents the complete 6502 rev-eng: http://www.visual6502.org/


These may well have been inspired of this even larger, custom-processor, large demonstrator: http://www.computinghistory.org.uk/d...Megaprocessor/

Last edited by ortek_service; 23rd May 2021 at 6:56 am.
ortek_service is offline  
Old 23rd May 2021, 8:32 pm   #4
Mark1960
Octode
 
Join Date: Mar 2020
Location: Kitchener, Ontario, Canada
Posts: 1,265
Default Re: 65(C)02 CPU Higher-Speed upgrade / replacements

I was always a bit unsure of the legal position of Motorola on the pinout compatibility of the 6500 with the 6800. I think a big part of the reason for settling was the cost of the expected legal battle.

The 6502 main advantage over the others was cost. Though it also didn’t require the additional power supplies or external clock and system controller of the 8080. For the early home computers the two phase clock memory access was useful for cheap video interfaces, though this would probably have worked on the 6800 I don’t remember any 6800 based machines using this. The 6502 instruction set, limited registers and limited stack were a disadvantage compared to others and this was partly overcome with the zero page and some of its addressing modes.

Although the z80 added a lot of instructions to the 8080 instruction set I think its main advantage was that it was 5v only and didn’t need a special system control chip. The clock was a bit awkward as it was not logic level compatible with TTL though this could be easily driven by adding an extra transistor to pull the clock higher. The internal refresh controller was also useful. Its multi clock cycle memory interface, similar to the 8080 prevented simple video interfaces of the 6502 type but its main application initially was in s100 systems and other CPM systems which were usually driven from a serial interface terminal. The extended registers of the z80 were useful for interrupt response time, as was vectored interrupts, while the block instructions were good for moving blocks of memory. The index registers seemed to be badly thought out with limited fixed offset and overhead fetching the prefix and offset bytes. The other slight disadvantage of the z80 was the 450ns access time for eprom, which was not quite fast enough for a 4 MHz z80A, reducing the clock speed available or adding wait states to M1 instruction fetch cycles.

The 8085 eventually simplified the power supply requirements, but by the time of its introduction many users had switched to the z80 and starting to get some lock in to z80 from use of the extended instructions. It also had a multiplexed address and data bus that required an address latch or the use of memory and interface devices from the MCS48 series.

Unfortunately for fans of the SCMP its instruction cycle time was too slow for even a multiprocessor to compare with the 6502 or Z80 throughput. Its bus interface was ahead of its time but no native stack and 4k page boundaries and very high clock cycle count for instructions made it uncompetitive. When the 8070 was introduced it didn’t really address the throughput and it was too late for its improved instruction set to make a difference. I guess the bus interface was heavily protected by Nat semi, if only we could have had the same bus interface on the z80, though the z80 did not have the same gaps in memory access of the 8060/8070 to take advantage of in a multiprocessor.
Mark1960 is offline  
Old 23rd May 2021, 11:51 pm   #5
ortek_service
Octode
 
ortek_service's Avatar
 
Join Date: May 2018
Location: Northampton, Northamptonshire, UK.
Posts: 1,394
Default Re: 65(C)02 CPU Higher-Speed upgrade / replacements

Yes, it seems the 6502 took the wise decision to go straight to depletion-load NMOS: https://en.wikipedia.org/wiki/Depletion-load_NMOS_logic that allowed faster, single-supply circuitry that was also smaller.

Whereas Motorola 6800, which design had started in 1971, initially avoided depletion-load NMOS due to extra production steps on release in 1974, staying with the initial NMOS process: https://en.wikipedia.org/wiki/NMOS_logic that used more space, restricted them to 1MHz and also needed -5V & +10 to 12V supplies. But Motorola had done some optimisation to critical areas, to help overcome the impact of the 1MHz max clock speed and also added on-chip voltage inverter & doubler to make it single-rail.
However this resulted in larger die sizes over the magic 5mm X / Y size, where they ran into yield problems, and so higher costs, eventually re-designing the 6800 using depletion-load NMOS, so reducing die size below 5mm X / Y and allowing faster upto 2MHz B version.

Intel 8080 had also stuck with the initial NMOS process, that required the same extra -5V & +12V supplies of PMOS - so really just smaller / a bit faster than that. However Intel had apparently used a non-saturated mode of operation (a bit like ECL?), to boost speed upto 2MHz.

Unfortunately, the 8080's 8008-legacy meant the 8080's architecture, wasn't too great / consistent, and had complicated multiple 3-5 Clock cycles T-states per machine cycle, then multiple 1-5 machine cycles per instruction meant execution was much slower in practice:
A NOP that takes 2 cycles on 6800 & 6502, takes 4 cycles on the 8080
An LDA with an 8bit number also took 2 cycles on the 68xx/65xx, with from memory a cycle more. Whereas it seems the 8080 took 4+3+3+3 = 16 cycles for either!
It seems the 8080's main designer had thought the 6800's legacy-free architecture was much cleaner, with a small instruction set, and great addressing, that was inspired by the PDP-11 / PDP-8 ? Although criticised the 6800's use of older slower silicon technology!


The 8080 was also a bit of a pain to interface to, with its data bus not originally able to drive TTL, and not have all the usual bus control signals on it. So also required an extra 8228 bus controller IC - as well as the 8224 clock-generator. And the 8080 alone cost $360 on release - rather more than 8008 predecessor's $120.
The 8085 did integrate all of this in one now-single rail faster IC that really was what the 8080 should have been. But 1977 was really too long after 8080's release, and so doesn't seem to have got used much: https://www.cpu-world.com/CPUs/8085/index.html
I'm not sure if the 8085's now multiplexed address bus affected speed too much - maybe not if it still took several T-states to do things. And both 8080 & 8085 had yo be replaced by 8080A & 8085A versions, to fix initial major flaws. The 8085 had added a couple of extra instructions, after it seems other planned ones weren't reliable. But the much-more enhanced Z80's release in 1976, with ability to directly-run legacy 8080 machine-code, as well as 16bit accumuator operations meant that the 8085 was really too late, with Intel now mainly having moved onto 16bit 8086 and 8048 etc. microcontrollers.

The 6800 also needed 2-phase non-overlapped clocks / extra clock-generator IC, but you can generate these with just a bit of TTL logic.
Motorola did later incorporate the clock-generator on-chip in the 6801 / 6802 etc, (as well as other devices for minimal-IC systems). And 651x devices did allow you to use 2-phase clock, if you wanted to.


The 6502's was very-quick at 8bit arithmetic / operations (actually much faster than the microcoded 16bit 68000 for the same clock speed, which had disappointed Acorn and contributed to them designing the more '6502' like ARM, but with all the registers and neater universal registers instructions of the 68000). Its lack of registers did mean it could be a bit of pain to program at times - meaning a lot of shuffling to X / Y registers, stack, and zero-page - especially the lack of 16bit accumulator & Index register compared to 6800 (which seemed a bit odd as Chuck Peddle was also a designer of that). However, the 6800's extra 8bit 'B' accumulator couldn't really be used for that much, so still couldn't do single instruction 16bit adds to a 16bit accumulator.
And once you'd learn't the tricks of splitting into separate 8bit adds with carry and using quite-fast pairs of zero-page locations in 65xx's added zero-page addressing modes instructions, this could be overcome without too much performance impact.

I found this useful webpage, summarising most old processors, back to the 4004: http://www.cpushack.com/CPU/cpu1.html And says:

"Unlike the 8080 and its kind, the 6502 (and 6800) had very few registers. Inside was one 8 bit data register, two 8 bit index registers, and an 8 bit stack pointer.... It used these index and stack registers effectively, with more addressing modes, including a fast zero-page mode that accessed memory addresses from address 0 to 255 ($FF) with an 8-bit address that speeded operations (it didn't have to fetch a second byte for the address).
Back when the 6502 was introduced, RAM was actually faster than microprocessors, so it made sense to optimize for RAM access rather than increase the number of registers on a chip. It also had a lower gate count (and cost) than its competitors"


And also this "The 650x also had undocumented instructions, including JAM, which simply causes the CPU to freeze, requiring a hardware reset or power cycle to restart" - I had heard that the Z80 had a similar 'HCF' (Halt and Catch Fire) instruction, in the days before illegal instruction traps in case your code started jumping into data RAM etc.


NS did also produce INS8080/8085 clones, so looks like they hedged their bets on what processors would succeed. Although apparently Intel were still making the 4004 until 1986! (I should have invested in a large stock.....)

Last edited by ortek_service; 24th May 2021 at 12:11 am.
ortek_service is offline  
Old 23rd Jun 2021, 5:34 am   #6
jimjim1
Triode
 
Join Date: Sep 2018
Location: London, UK.
Posts: 16
Default Re: 65(C)02 CPU Higher-Speed upgrade / replacements

https://magpi.raspberrypi.org/articles/pitubedirect

This reports a Raspberry Pi based "6502" second processor for BBC Micro that runs 6502 code at the speed of a low hundreds of MHz 6502. The only additional hardware is a level shifter for the Tube interface.
jimjim1 is offline  
Old 27th Jun 2021, 3:19 pm   #7
Slothie
Octode
 
Join Date: Apr 2018
Location: Newbury, Berkshire, UK.
Posts: 1,287
Default Re: 65(C)02 CPU Higher-Speed upgrade / replacements

While between school and university I bought a 6802 (a variant of the 6800) based processor card that started life inside a cash register, it had ROM, RAM, the processor and some IO chips (6820s if I recall) and more importantly a schematic, and tinkered with it. My efforts were hampered by not having access to an EPROM programmer and by the time I obtained one I was off to university and the project was terminally postponed. I wish I still had it, it would be fun to tinker with again now I have access to better tools and a lifetime of useless information I have picked up!
Slothie is offline  
Old 28th Jun 2021, 12:43 pm   #8
dominicbeesley
Octode
 
dominicbeesley's Avatar
 
Join Date: Nov 2004
Location: Hebden Bridge, West Yorkshire, UK.
Posts: 1,885
Default Re: 65(C)02 CPU Higher-Speed upgrade / replacements

Hello, I keep meaning to answer this interesting thread to share some of my stuff I've been doing [whilst all my valve stuff is still in storage]

I've been playing with some modern and not so modern stuff to replace/upgrade the 6502A in a BBC Micro. It started out as a project to make something like a BBC Micro with a 6809 instead of a 6502 several years ago: https://stardot.org.uk/forums/viewtopic.php?f=3&t=12715 - this was a collection of random boards connected together on a "bus" made of ribbon cables. It was a bit of a mess but it worked! I've not got round to playing with it for a few years since moving house. I did port an almost full version of the MOS operating system and BBC Basic plus a few filing system ROMs

The next stage was a "Blitter board" this is an FPGA board which plugs into the BBC Micro's CPU socket. The BBC Makes a nice hardware platform to experiment with different processors: They're physically large, have a lot of different ports and are fairly tough both physically and electrically

The Blitter can expand the BBC's graphics/sound but also allows different CPU's to act as the main processor. So far I've had 6502A, 65C02 (up to 8MHz), 65816, 6809, 6309, 68008 and Z80 working plugged in: https://stardot.org.uk/forums/viewto...233721#p233721
The board contains an FPGA, some battery backed SRAM (2MB), a Flash EEPROM (512K) and sockets for 65x02/65816, 6x09, 68008 and z80 processors

The FPGA is also large enough to support running soft cores i.e. FPGA implementations of various processors. I've not done much with this except that there is by default a 6502 soft core in the firmware and a switch that allows one to quickly flick between whatever real cpu is on board and the soft core for debugging and/or loading up sideways ROM files.

I've experimented different operating systems and porting various programs:

6809
my own port of MOS/BASIC, runs slightly faster than the 6502 at the same clock speed, some things like trigonometry are significantly faster
6502

6502A
A real 6502 is a bit problematic in this scenario as the 6502 is quite slow at updating its address lines and the timings are so tight on the BBC Micro that it is quite difficult to interpose any logic to do fancy stuff but I have had it working

65C02/65112/6512/65SC102/etc
There are many different varieties but I have settled on the W65C12 as my main target as these are still readily available. I've had this running at 14MHz and most BBC Micro stuff can use the extra speed (there's a BLTURBO command which can cause ROMS/main program memory to run from faster on-board RAM instead of the BBC Micro main board)

65816
I've not fully explored the possibilities of this but I have back-ported a version of BBC Basic (originally for the Acorn Communicator). This works well the trig functions are a lot faster and it's nice having a very large memory area to play with): https://stardot.org.uk/forums/viewtopic.php?f=2&t=21159
The Communicator BASIC is not vastly faster than normal 6502 BBC BASIC (except for the higher clock speed) as it doesn't really use the 65816's 16 bit operations to the full other than using the (slightly slower) 24bit indirect byte load/store to access the BASIC program.

Z80
I've got the hardware working (after a small misunderstanding about bus signals necessitating a bodge wire to the RFSH signal I'd left disconnected)

68008
I've started on a small MOS like (with Risc OS like extensions) but not really got very far. The 68008 is surprisingly slow: given a 10MHz clock speed it tends to access memory around the same speed as the 6502 at 2MHz, even with the more powerful instructions of the 68008 code density and speed seem to be around the same - though that might be my niave 68008 assembly or the fact that I'm trying to port 8 bit code to a 32bit processor.

All in all I've found that on the whole my experience is that the 6502 holds up fairly well against its rivals though I'd say on the whole I marginally prefer programming for the 6809 series.

At them moment I'm developing a mk.3 version of the blitter board. Whereas the previous incarnations have been quite large (to allow a handful of CPU sockets) and require a plug-in fpga development card (requiring a lot of sockets which were difficult and expensive to obtain) this time I've gone for a BGA FPGA (MAX10) directly mounted on the board and a load of 0.1" headers for mounting CPU daughter boards. I've also reduced the form factor and it *should* fit in a BBC B, Electron or Master 128. Also there's room for more/faster (10ns) RAM as opposed to the 45ns on the other board. I've also (rather optimistically) added a HDMI connector, RTC and a micro SD card slot - no idea if I'll ever get them working - it's all a bit "kitchen sink"

I've not had one of the Mk.3 boards working yet - my first batch had a stupid mistake which held the FPGA in configuration mode forever. The second batch have a work-roundable error in the JTAG wiring error (two pins swapped)

But so far I've not managed to mount a BGA correctly* - I'm using a T962A oven and I'm not sure if it is getting things too hot, too cold or if my technique is wrong - it's turning into a frustrating and expensive experiment! I'm going to try reballing an FPGA with lead balls this afternoon but so far my attempts have just ended up with a lot of swearing and lead balls all over my workbench!

When I get it working I'll be designing plug-in boards for different CPU's. I've alread got a board that should house either any of the 6502 or 65816 series and 6809/6309. Then I'll have a look at Z80, 68008 then I'm going to have a go at 8086 series of some sort and I've got vague plans to make an adapter that would take an ARM processor card from a Risc PC (Arm600/700/StrogArm). That's if I don't run out of patience/money in the meantime trying to get my bga to stick down!

D

*The BGA seems to be aligned more or less correctly but I can only get the JTAG programmer to recognise it if I press down _VERY_ hard on it which would seem to indicate that either one or two balls are nearly but not quire making contact or that there are balls that haven't reflowed at all. The balls I can see (round the edges) seem to have reflowed nicely and the chip looks to have seated level - without JTAG working it's hard to know what is working and what isn't. So far I've tried sticking it back in the reflow oven and baking it at 240degrees for 3 minutes but that made no difference. I'm not sure though how accurate the temperature of the oven is though...

If I can't get the BGA to reflow nicely I'm probably going to have to shelve this for the foreseeable, the world supply of MAX10 FPGAs in the pinout and series that I need seem to have run out!
Attached Thumbnails
Click image for larger version

Name:	20210526_015540-s.jpg
Views:	51
Size:	130.5 KB
ID:	236637   Click image for larger version

Name:	20210526_015551-s.jpg
Views:	49
Size:	83.6 KB
ID:	236638  
dominicbeesley is offline  
Old 28th Jun 2021, 11:53 pm   #9
Mark1960
Octode
 
Join Date: Mar 2020
Location: Kitchener, Ontario, Canada
Posts: 1,265
Default Re: 65(C)02 CPU Higher-Speed upgrade / replacements

Hi Dominic, thats brave to attempt to solder a bga. Did you put down any solder paste with a stencil before you tried to reflow, or you just tried to rely on the solder balls?

The normal process with bga components is to lay down solder paste with a stencil, then place the bga on the paste and then reflow.

You might be able to recover the connections by flooding under the bga with flux, then heat the chip with a hot air pencil and very gently tap the bga while the solder is molten. If you tap too hard you probable make every pin short together.

Its been a long time since I worked with bga devices, and I always had someone with a proper rework station and training to take care of the bgas. Even then they were considered not shippable after rework.
Mark1960 is offline  
Old 29th Jun 2021, 8:07 am   #10
SiriusHardware
Dekatron
 
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 11,483
Default Re: 65(C)02 CPU Higher-Speed upgrade / replacements

Here at work we have a large system control PCB which uses a BGA device and they are considered generally beyond repair if we suspect BGA solder problems - we've tried reheating them but with a very poor success rate - often a board which was merely intermittent just stops working altogether, I suspect because two or more joints flow together under the device - certainly any pressure placed on the device risks 'spreading' the joints and merging them together. I hate the sight of them to be honest.
SiriusHardware is online now  
Old 29th Jun 2021, 11:04 am   #11
dominicbeesley
Octode
 
dominicbeesley's Avatar
 
Join Date: Nov 2004
Location: Hebden Bridge, West Yorkshire, UK.
Posts: 1,885
Default Re: 65(C)02 CPU Higher-Speed upgrade / replacements

Thanks both,

Mark, yes, I've got a stencil made and applied solder paste before placing the components then reflowing.

I tried the second idea too already, I'm not sure I'd heated it enough though. I preheated the board to 160C and set the air-gun to 400C. I flooded it with sticky flux and put a blob of solder paste on top of the chip to check temperature. The chip it looked to be moving when it nudged it but I suspect that not all the balls were melted. It's a fairly large (17mmx17mm) chip and I suspect it needs more heat than I was giving it or more heat for longer?

In the end I tried desoldering it and had a mare - I thought I'd got it fully melted and it sprang up but a few pads in one corner weren't melted and lifted a bunch of PCB tracks!

Interestingly when I had a look under the microscope the H1 pad looked to have a bubble of rosin in the middle of the ball/pad and that was the pin that was not connected. I've had a read up and it sounds like I might not have the heat high enough for long enough on the reflow oven. That sounds plausible as the heat profile is a custom one that I did (I checked it with a sacrificial board and a thermocouple) but it maybe needs a bit more temperature and a bit longer dwell for this particularly densly populated board. I'm guessing the thermal mass of the largish fpga only a few mm away from two more largish chips might be causing a cool spot?

Sirius, I'm determined to get this working and get a handle on BGA soldering and rework - they're becoming the norm for a lot of stuff. Anyway I'm now down to my last two FPGAs (there are no more available worldwide for months due to Covid/Taiwan drought/etc) so I will have a last go next week.

Anyways, back on topic I forgot to mention I had Flex running on the 6809 too. And I'm hoping to one day get hold of a PET or Apple II and see if I can use the same expansion boards in them.

D
dominicbeesley is offline  
Closed Thread

Thread Tools



All times are GMT +1. The time now is 8:54 pm.


All information and advice on this forum is subject to the WARNING AND DISCLAIMER located at https://www.vintage-radio.net/rules.html.
Failure to heed this warning may result in death or serious injury to yourself and/or others.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Copyright ©2002 - 2023, Paul Stenning.