On Thu, Jan 16, 2014 at 12:08:43PM -0500, Sean Conner wrote:
It was thus said that the Great Eivind Evensen once
stated:
> On Tue, Jan 14, 2014 at 10:28:20AM +0000, Peter Corlett wrote:
>> [...] (I hope they are a bit more reliable than the 14MHz 68010 I tried
>> back in 1990, and which was sent back within the week as Not Fit For
>> Purpose.)
> Just curious, were the problems related to hardware or software relying
> on cpu timing and the likes?
In the case of that specific device, they obtained the 14MHz clock for the
68010 by doubling the 7MHz clock that drove other system components. A hack
that breaks all sort of things, in other words. The most obvious casualty was
trackdisk.device, whose waits for floppy drive heads to settle had halved and
it caused all sorts of disk problems. The widget came with a custom bootblock
that fiddled with trackdisk.device's timings, but it was still not satisfactory
as much of the software I ran already had its own custom bootloader.
Presumably they saved a couple of quid on 74-series chips with that design. I
doubt they saved money overall with the number of returns they must have had.
First off, the 68000 and the 68010 had a different
stack layout for
exceptions, so the operating system needed patching. Also, at least one
instruction (MOVE SR,dest) was bumped from a user instruction to a
priviledged instruction, so further changes to the operating system were
required (to emulate that instruction in userspace).
The Amiga's exec.library abstracted the differences away. Under the hood,
although the default was the plain 68000, it probed the CPU and switched in new
functions to provide a CPU-neutral API. As far back as Kickstart 1.2 (which was
what, 1987?) it understood the 68000 through 68020. I routinely booted
Kickstart 1.3 on my 68040 box to run the more recalcitrant software, and it all
worked. To the probe code, a 68040 looks just like a 68020 without FPU or MMU,
and it turns out to emulate that combination nicely!
I'm not sure of any timing issues, as I am more
into the software side of
things than hardware.
The 68010 provided some minor improvements, both in performance and
functionality. Unless one was playing silly buggers with timing loops, there
were no real surprises except that code tended to execute slightly quicker.
Generally it wasn't worth it though, and one was better off going for the 68020.
-spc (Who loved programming on the 68000 ... )
It was a reasonably elegant and orthogonal processor. Howerver, I've finally
realised I'm not smart enough to be a hardcore assembly-language guru, so
wandered off and found other niches.
I'm probably a heretic here, but x86-64 isn't actually all that bad once it's
in long mode. All of the segmentation hacks and special-purpose registers
pretty much sod off. There is some lack of orthogonality, but it doesn't
seem any worse than the 680x0's occasional distinction between D and A
registers.