BarryG wrote:It's hard for me to see a real C64 becoming popular again when the "Maxi" does the job already [...]
(personnally, I am not an old user of the CPU 68000, or other... I really discover the
asm through the 8088, and I keep a 8086 CPU chip for possible future pedagogy.
There is however a very very big force in restoring old languages, or old technologies.
Today a clock cycle is very cheap (electric power value in Watts).
First very big force : we actually can put 256 old CPU cores into a recent chipset, so that less than 1% or ressource (in WATTs) of a recent CPU would be used.
Second very big force : the cost of a RAM memory cell (8 bits, 16 bits, or other) is very very low.
We are talking about millions times less expensive.
Why has Intel won in the 80's ?
-> byte code 0x0000 = ADD [BX+SI],AL
Because Intel has understood the motherboard and the devices have the biggest costs : they focused their research into the CPU 16 bits in order to compress the software functions (machine operations).
As you can see
, just a op code 16-bits zero, get the sum of two registers, use the result as a 20-bits pointor, and calculates the final sum between AL and the resulting pointor.
In the others CPUs, a register has a identifying code. On Intel, you also have this translation table (code=register), but you have also a set of sub-instructions, whom an electronic engineer knows the physical advance of the getting the value.
Code: Select all
0000 ADD [BX+SI],AL
; this means *mem\a + volatileValue
; knowing that *mem can be got, before the real addition.
What it happens is, if you have any non explicit instructions, then you cannot use the 8086 as a 68000 which will allow the user to treat all the registers, near in the same manner.
On a 8086, each register, will have a virtual function which won't never be able to be changed.
User accu = AX
User counter = CX
32 bits math result = DX: AX
20 bits source memory address DS:SI ( implicitly = (DS<<4)+SI)
20 bits destination memory address ES:DI
Direction flag = Source and Destination Index (SI and DI) automatical change sign
On a 8086 (or its sister the 8088), all the indexing operations are not executed when the user need their results, but, before, when the registers had been modificated, because, physically a sum, it is very quick. A sum, it is physically 6 transistors per bit. On the begin of the 8086, I imagine an integrated transistor swaps a logical status every 10 nanoseconds. What it lets you imagine all the pointers values sums (and fixed bitwise shifts) could be pre-calculated and ready before knowing which instruction will be executed every microsecond.
An other technical advanced point of the 8086, is the total (software as hardware) compatibility with future DMA technologies.
So if the memory is quicker than the CPU, that is was the way for the 8088 (a poor 8086 whom the data bus has been reduced by 2), providing the addresses was the main task. So the 8086 cpu was a very good memory copier.
I think the engineers of the 68000 did not know everything about the 8086. If they knew, they would hit the 8086.
Instead of grow the bits range from 16 to 32, Intel kept the 16-bits ALU, dedicated the registers, to respond to three demands...
1) an internal algo executed quickly
2) a communication without time gap
3) (1) and (2) can be executed at the same time
....And
reduced the data bus from 16 to 8 bits to respond to an established market.
An other thing : why twenty bits (20 bits bus address on 8086) instead of 24 bits (68000) ?
Answer -> to align 16 * 8086/8088 motherboards in a orthogonal network.
This gives an equivalent to a good 80486. For civil embedded electronic, this was a breakthrough.
Restoring an old technology is as taking again the qualities of the past with the qualities of the present.
Note that PureBasic has this characteristic...