823 karma · joined February 26, 2014
The Sinclair and TRS-80 clones arrived in 1981, the Apple II in 1982 and the PC XT in 1983 (at the absurd cost of US$15K for a configuration that would be US$5K in the US. This dropped to around US$3K by late 1984 for a configuration of similar price as the US, so not the "many times more expensive" that most people remember). There were very few TRS Color Computer clones, a single Sinclair Spectrum and the single Macintosh clone was not never authorized (every computer launch had to be approved by the government). The two MSX officially arrived in 1985 but sales actually started in 1986. The PC AT clones only started selling in 1987 and 386 machines in 1989 - these were the longest delays of all. An even longer delay was in PC graphics, which were stuck at CGA from 1983 all the way to 1992 (with imports allowed there was a jump to VGA+Multisync).
With the exception of the Spectrum and Mac clones by companies that had invested heavily in their predecessors, nobody tried to copy machines with custom chips, so no Ataris, Commodore 64s, Amigas, etc. The Commodore Pet would have been easy to clone, but there was no preexisting market of contraband machines due to the awkwardness of lugging the built-in monitor.
After the reserved policy ended in 1991 a company called PCI do Amazonas brought the Amiga to Brazil and was officially still making the A1200 months after Commodore itself had shut down. So we did get one of the three 68000 machines, even if very late.
Most other sources just mention the year.
So when the SPARC was created it included a TADD instruction. It also had a TSUB for symmetry even though the SOAR guys showed it didn't really help. The tags were moved from the top bit on SOAR to the bottom two bits in SPARC. Unfortunately exception handling on 32 bit SPARCs was really slow so pure software alternatives actually performed better. This exception handling problem also made register windows far less interesting than they had been in the Berkeley designs (this was improved in SPARC v9).
A very simple Von Neumann style computer is the ByteByteJump. It has a single instruction (so no op code) with 3 address fields and it copies a single byte from the first address to the second address and then always jumps to the third address. If the addresses are 3 bytes long then every instruction takes up 9 bytes in memory. You can do math and logic operations by setting up 16KB tables in memory and then patching an instruction so the two operands are the bottom two bytes of the first address. To subtract the byte in address 0x001234 from the byte in address 0x00C0F0 and store the result in address 0x003333 on a little endian BBJ with a subtraction table at 0xD00000 you could use this sequence:
0x100: 0x001234 0x000112 0x000109
0x109: 0x00C0F0 0x000113 0x000112
0x112: 0xD00000 0x003333 0x00011B
0x11B:
There are several ways of implementing conditional jumps by patching the value of the third address.Could the Z3 emulate this machine if given a 16MB memory it could interface to? Its instruction tape could be made into an infinite loop, which is good enough for this application. There are no other jumps or conditional execution in the emulator.
If you do need conditional execution to emulate a Turing complete machine (the Game Of Life, for example) then you might get by with conditional assignment instead. If the value of B is either 0 or 1, then Z:=A*B+C(1-B) will assign either A or C to Z. I am not familiar enough with the Z3 but would be surprised if it can't even do that.
In EToys, as in the earlier Vivarium project, children were supposed to create all their own objects from scratch (ironically). In Scratch the use of clip art, scanned material and other people's project is encouraged. In fact, "scratch" is a dj term for a certain way of mixing music. I can't find the exact definition since Google insists on pointing me to the software instead.
While I have seen many claims that the 8086 has more than 20 thousand instructions that is very silly. By the same criteria any RISC with fixed 32 bit instructions would have 4 billion of them.
I also implemented them in a bunch of different FPGAs, though that is less relevant here.
Glacial is an 8 bit processor optimized to emulate a 32 bit RISC-V and SERV is a serial implementation of a 32 bit RISC-V. They save transistors at the cost of many clocks per instruction.
There are several projects that implement RISC-V using TTLs but I have not heard of one using individual transistors.
http://www.merlintec.com/swiki/hardware/26.html
I also mention the list of Java processors in that page.
Same thing of processor and memory speed bins.
From one DRAM generation to the next the cycle time might be different for chips with the same access time. This allowed me to make the 512KB Macintosh faster than the 128KB one (http://www.merlintec.com/lsi/mac512.html).
To be fair, more people use the term ASIC wrong than right.
But it is very reasonable to consider ARM older than PowerPC.
8MB was the main memory, but it was made from really high speed (and super expensive!) static RAM chips instead of the dynamic RAMs most other machines used. Other machines used SRAMs for caches, so I guess you could consider the Cray 1's main memory to be a cache.
The Cray had 8 "A" address registers but also 64 "B" registers. In the same way you had 8 "S" scalar registers plus 64 "T" registers. The main memory was highly interleaved so you could very quickly load and save blocks of B and T registers as well as the vector registers. You can think of B as a sort of cache for A and T as a sort of cache for S, but you had to explicitly handle this in your program.
This motivated the MIT guys to port Scratch to Flash (very bad timing) and the ex Squeak guys to focus on Javascript (Lively Kernel and other projects).