Because why not indeed
I salute the dedication and sheer obsessiveness that went into this project. It's harmless, it's useless, it might not even run BASIC.
In a word : it's art. Geek art.
Well done, chaps.
The 6502 CPU is a fondly-remembered CPU* for good reason: along with chips from Motorola, Intel and Zilog, it helped create the personal computer business in the 1980s. However, this project is affection on a grand scale: some US enthusiasts are creating a transistor-for-transistor replica of the chip's design using discrete …
Pffffffft.... newfangled surface-mount components. Lightweights. (*)
Let me know when they implement it using valves.
Actually, no, don't bother. Let me know when they implement a two billion transistor Core i7 processor using valves. I'd like to see that :-)
FWIW, I did try to work out how much space would be required for that many valves, and the ballpark figure was ludicrous. Having thought it out again, I realised that if each valve took up 4 x 4 x 5 cm (including spacing), and there were just 1 billion (10^9) of them, that'd take a total volume of 40 x 40 x 50 *metres*, something like 3 tightly-packed 50m high office blocks. Double that for two billion.
(*) No, not really, actually it's quite impressive (even if it's not the first time I've seen something like this done).
The MTBF for valves can be pretty good if the heater current can be ramped up and down rather than 6.3 volts hitting a cold, low resistance filament. This is one reason why recent cars have a single headlamp bulb filament and a little motor to switch between main and dip; the avoidance of on and off switching increases bulb life and reduces warranty costs.
The discovery that lots of valves could be reliable if the heaters were treated gently was made by Tommy Flowers, and helped make Colossus possible. the Americans made the same discovery more or less independently.
25kW seems a bit much - if it was this then it equates to around 6.172W per valves, and typically that'll be 1.89W for the heaters (filaments) and 4.282W for the logic per valve. So it'd be 7.654kW total for heaters, and 17.346kW for logic. Assuming +170V as +ve rail for valve anodes, that'd make around 25mA anode current for a triode (and I'm assuming heaters/filaments at 6.3V, 0.3A for the rest) all as averages.
You could do logic switching using triode valves with a lot less than 25mA anode current - 2.5mA would be more typical. Remember, a power output valve might handle 6 - 9W in a typical valved radio of the time, and for the logic levels we don't need that power. So we'd be looking at, say, 0.43W for logic and 1.89W for heaters giving a total of 2.32W per valve total, requiring 9.4kW for all the valves...
Admittedly I'm looking at more recent technology here, like double-triodes on a B9A base such as the ECC83 and its data from around 1953, but even the earlier (double-)triodes in octal bases (physically larger devices) would fall in a similar ball-park.
While you are mostly correct, there are several losses you forget: the power supplies were all linear, and were probably less than 50% efficient after you consider the use of rectifier diodes (probably also thermionic) the smoothing done with RC networks, and the fact that there would need to be numerous RC decoupling networks in the HT lines. Bias chains can't be totally neglected. AC into RC circuits swinging >60V for fast logic signals eats a fair bit of power.
Also, many early valves were not 300mA heater current, and some were not 6.3V either. Quite a lot of the logic was done with pentodes, and there would have been significant screen current in some of them.
Don't forget the peripherals: I suspect the mercury delay line drivers needed significant power, and there would have been other power circuits too - how much power does a high speed paper tape punch draw?
Presumably "das blinken lights" were all neons, and probably only 1 mA each, but if they were incandescent, thats another story.
Incidentally, the EDSAC circuit shown on Youtube has wired-or logic - this may be the first example of it.
I doubt that efficiency was the highest priority.
That number of valves is in the region of the total lifetime output of the Mullard works in Blackburn ..... Remember, there were just 5 (or maybe 8*) valves in most MW / LW radios.
* The frequency changer actually has two electrode structures -- a triode and a hexode -- in the same envelope; and the detector / preamp has two diodes and a triode. Adding FM introduces another double triode, and replaces the double-diode triode with a triple-diode triode.
Wozniak designed Pong to run on just 30 TTL chips, so it's "easily" possible. Pacman uses a Z80@2mhz, but needs quite a bit of RAM.
Space Invaders would still be incredibly hard (unless it was dumbed down a lot). The game needed more juice than a 8080 could deliver, so required further bitshifter ICs on the daughterboard.
Breakout runs just on TTLs, infact I'm sure someone has already replicated that game with transistors.
This guy's going even bigger: The CPU takes up his entire living room!
"Oooh, you don't want to have a good idea. My grandfather had a good idea once and his toes fell off."
Love the quote...
However, my inner pedant can't help but observe that you are more likely to cut off your fingers while sharpening the scythe or someone else's feet when you are using it. The shape & balance of a usable scythe makes it pretty tricky to get anywhere near your toenails. :)
"that you are more likely to cut off your fingers while sharpening the scythe"
Too true. After moving to the country my grandfather observed some men in the adjacent field using scythes. They didn't seem to be getting on too well so he asked them if he could have a look and told them the blades needed sharpening. Which he proceeded to do with a grinder and whetsone. One of them promptly cut his finger on the blade and I noticed they were proceeding with somewhat more care than before.
"After moving to the country my grandfather observed some men in the adjacent field using scythes. They didn't seem to be getting on too well so he asked them if he could have a look and told them the blades needed sharpening"
Soldiering on with a blunt scythe is pointless. I found that stopping every 3-4 metres (or more when doing something like brambles), giving the (rusty) blade a wipe down with a drop of oil and a whetstone worked a treat - nothing intensive, just four or so careful swipes with the stone and move on making sure to count your fingers each time. ;)
If you are selecting a scythe you should be looking to have the thing feel pretty much balanced (ie: NOT twisting in your grip) with the blade level with the ground along it's whole length, a bit of momentum and good balance goes a long way with a scythe, so don't be tempted to choose a lightweight poorly balanced scythe if you want to do real work with it. Quality scythes will have adjustable handles, once you've got them set correctly the scythe will feel like a natural extension of your arms.
In terms of the action most of the power should come from your arms & shoulders, so it should be a fairly smooth dragging motion keeping the blade level over the ground through the whole stroke, with just enough momentum to keep the scythe moving but not enough to cause you to strain to slow it down and bring it back for the next stroke. Take care not to "swing" the scythe because you won't cut evenly (if at all) and the chances are you'll do yourself an injury in the process.
Everything I know about scything stuff I discovered from trial, error and talking to an old geezer who used to mow hayfields with them - if folks know better I'd be interested to hear. :)
Yep, that's the way to do it. My granddad used to do it that way, but despite all his efforts I never got the hang of it.
And you really have to be very, very carefull with a scythe, especially when sharpening it, I've seen some nasty scars on several guys. Slices through tendons like butter.
Heck, why do you think DEATH carries a scythe?
Hah, I still have a device with a 6302 and it still works, although I would have to refresh my memory to program it in machine language (usually snippets to access my own electronics in the interface slot, because I was in the habit of cooking up all sorts of stuff).
You may have guessed it: it's a PSION Organiser II - the last one I still have. I used to have a bunch of them, but I gave them away to musea. Due to some ill advised packing during a move I lost the comms link, but I no longer own anything with a serial port so I'd be hard pressed to use it (leaving aside that I'd have to install DOS on a VM that is hardened enough to withstand the way PSION wrote DOS code - it's the only code I recall busting out of protected mode and hang multitaskers).
Anyway, the silly thing still works quite happily. And I may even have the 6302 data book. When I started coding on it I had no idea what machine language was, but I worked it out myself, that was part of the fun of it all. An update in those days meant physically cutting the ROMs off the board and soldering ones with new firmware in place, something I have done many, many times :).
Those were the days (etc etc).
Miserable state of the [ACTUAL] firmware.
Ah, but you're used to current tech - you'd lob a flash chip on the board and be done with it. In the 1980's (can't believe that's already some good 30 years ago), updating of especially portable firmware based devices was actually not something you did very often - a patch was a rare and momentous event because it meant the company in question had something wrong. It was not the occasionally rather shameful routine it now is for some companies.
On the PSION Organiser II, the extra issue was that EPROMS (at the time the only persistent reprogrammable chip) were typically a lot bigger and needed extra support circuitry to program so that wouldn't fit in the case.
Basically, the whole PDA idea (which is now part of what you carry around in your smartphone) started with that silly device, and it was (and is) fantastically functional for its simplicity. I actually came across a Palm pilot too a few days ago as well when I was digging for some electronics, but to me that was better done by Sony with the Sony Clie NX70, also because that was pretty much the first time a PDA and WiFi were combined.
I can still probably write the stuff (6502 ASM) without a manual
Assembler? Luxury! (thanks for setting that one up :) ).
I only learned later about assembler - I was hand-assembling opcodes and getting them to work which is hard work if you start from a position of not knowing much about how CPUs actually work.
But, as I said, that was the fun of it - it's the kind of puzzle that the analytical part of my brain seems to live for. That, and shredding marketing guff with facts (I don't get invited to product launches much anymore :) ).
I wrote quite a few little programs for my C64 and VIC20 using DATA statements, you converted all your OP codes into decimal and put them in a data array, then had a mini BASIC program that called SYS something which ran your data as machine code. The speed difference between a character bouncing around the screen in assembler compared with C= BASIC was amazing.
I was actually dabbling in 6510 assembler using the C-128's ML Monitor. It was perhaps my first real trip into machine language and assembler and I actually did some pretty decent things with it. It was something I didn't think I would use again when I then went to Intel 80486 assembler in the mid 90's and actually got the hang of it pretty quickly after skimming an x86 assembler guide.
Some 35 years ago I had two (yes, 2!) PDP-8/e computers with a tape drive, disk drive (cabinet one, all of 10 MEGAwords!), printer (line), and a couple serial lines - one a VDU terminal and the other an ASR33 teletype - as a home system!
I already knew assembler, for the 6502 and the 6800-series processors, but I had no OS or anything for the PDP's. So I set about writing one, so that I could end up using these machines for processing radio propagation data from regular observations. No development tools, just the PDP-8/e manuals and codes.
Fisrt I had to write a bit of code that would take serial characters as octal input (it is a 12-bit machine) and write this word into successive memory locations - this was done using the front-panel switches, word by word.
Then it was time to write some code that would allow me to write whole segments of octal from the keyboard of the serial device I chose, usually the VDU terminal. The next bit of octal 'code' was a routing that would take that segment and write it to the magtape as a record, skipping till after a 'long gap' on the tape so I could eventually load back these segments one at a time how I wanted.
Once that was done the 'semi-serious' work began - first of this was actually to *write an assembler*, which for this machines' instruction set and layout was not too complicated. This assembler, a 'program', was written to a new magtape and also to two copies (play safe here!) of punched-paper-tape.
After that, the assembler was the main tool to write I/O routines for the magtape (proper, better), the disk (elementary), and the printer. Once that was completed the 'really serious' work began, I wrote an executive, then a filing system of my own, then an operating system on top of those.
Finally I had a running system with storage volumes (floppy disk never got added but all principles were in place and it didn't make any difference anyway), and with interfaces to assignable peripherals (e.g. equivalents of mount and unmount and different peripheral classes and parameters) - and I did go on to write some of the programs I ran to do the original work I wanted to do.
Eventually the "common" P.C. came along and was easy to interface with the radio hardware I used, plus it used a LOT less A.C. power than the roomfull of computer gear that was the PDP's, so eventually I got rid of most all of that equipment as there's a limit to how much one can keep, at least in the 'sane' world.
Still, even as I look back all those years, I'm sure that I learned quite a lot and gained a valuable insight into what certain colleagues of mine have to do in their work and where the 'trip-up-points' can be lying around; in any event it was definitely a memorable experience at the raw end!!!
I dabbled in programming on my BBC Micro back in the 80s, mostly BASIC but did get into some of assembly for its speed, and the best book I ever owned for it was I think 'Advanced Programming For The BBC Micro' (going by memory but I do still have it in a drawer with the BBC Master Compact), which I bought for £2.49 from Toys'R'Us.
That takes me back to Swindon College 1988 & the tutor we dubbed "Chernobyl" with his two fixations 6800 processors & wibbly wobbly timey wimey flashback............
About 1 hour doing labwork on a Wednesday morning & 1pm - 4pm with him lecturing (us trying to stay awake with various degrees of success, we quickly learned that the afternoons (invariably pissing down outside & lulling our senses further toward 40 winks) were a write off) & then somehow he would be triggered by a question\scenario (heaven help us if it was before mid afternoon break) & fixate for the rest of the afternoon on partial address decoding moving us further towards the land of nod or wishing for death.
I have no idea what I really learned or how I managed to pass that subject (Along with "Dangermouse" & his version of teaching analogue electronics IV by throwing extremely advanced mathematics at us from 9am - 12pm for 3 hours Friday mornings).
Finishing my engineering course at university in '88, we had to team up and produce a "project" that represented a chunk of the final grade. The girl who would one day become SWMBO and I, decided that a software emulation of a 6502 might be fun. Managed to do that, plus a small machine language monitor program with inline assembly and disassembly, and a small set of emulated system calls for IO etc. It was quite fun keying in some 6502 assembler, and having it run on a Prime multi user mini computer or on an early PC. ISTR even running it on an emulated DOS machine on my Amiga once just to see how many layers of emulation one could run (at an effective clock speed of some 10kHz probably!)
Hey we did that too, for a final year project, would have been 1990. Ran on a Macintosh and had simulated IO and interrupts. In the real world I was a Z80 man though.
Those were the days. The closest I get to assembler now is watching OpenSSL build in a cmd window.
[Runs to get 6502 machine code book from shelf and start compiling programs]
yes, I do still own the book
yes, I am that old.
The 6502 cookbook was one of my best thumbed tomes when at polytechnic (before the days when it became a CostaMacDonaldPseudoUniversity) as I my thesis was written entirely in 6502 machine code (no assembler available, let alone BASIC).
> I know what I want to see. A combined valve 6502 and bbq!
I want to see a complete Commodore PET built out of discrete transistors!
The CRT and cassette deck can remain as-is.
If I remember rightly, the base model had 4K RAM and 8K ROM, so it should be doable. I used to type in about 3KB of BASIC interpreter in hex to a Hewart Microelectronics 6800. Hand-positioning jumper links would be a bit more tedious (but perhaps could be automated with a pick-and-place robot?)
This post has been deleted by its author
My first experience with a microprocessor was in the mid 80s. The motherboard was about 2ft square, and covered with components. As for the "couple of hundred KHz" I can't remember it topping 100kHz.
We used to program it in machine code, when we ran our first BASIC program it took so long we thought the ROM was broke.
> Wouldn't the RAM alone require 8192 transitors? (each bit in a bistable transitor circuit).
4KiB is 32,768 bits, so it will be that times the number of transistors per SRAM cell ( a small number)
Given that the single PCB in the photograph has 3,218 transistors, that's hardly going to "fill a warehouse". Maybe a 4U rack box.
Our mechanical 'Comptometers' (and a few 'Marchants' for the really expert girls who were qualified to multiply) were noisy on steel desks, so they sat on thick hairy felt pads. When the first big 'electronic' calculators came in, same size, the felt pads were retained by habit, and blocked the ventilation. If you put pies on top at coffee time, they'd be piping hot by lunch. Met a few nice girls that way, who warmed my pies. Down in the PCB shop they had Paxolin ovens which were much better, but only run by blokes.
It turns out I can still remember 6502 assembly op-codes...
I think I can only remember A9 (LDA, immediate mode?) and EA (NOP).
For shits and giggles, I tried to write a Hello World program without looking stuff up. Can't remember exact instructions and addressing modes, but I think it might go something like ...
SCREENBASE EQU XXX
TEXT DB "Qbrf vg jbex?"
DB 0
CLX ; (clear X?)
loop: LDA (TEXT,X) ; (do loads set flags? does this need Y-index addressing?)
JZ done
TAY ; (Y <- A?)
AND 0x20
PUSHA ; (remember case)
TYA
OR 0x20 ; (make lower-case)
CMPA 'a'
JLT fix_case ; (A < 'a'?)
CMPA 'z'
JLE rot
fix_case: POPY ; get back case bit
ORY ; (A <- A or Y?)
STA (SCREENBASE,X)
INX
JMP loop
rot: ADDA 13 ; (or just ADD 13?)
CMP A, 'z'
JLE fix_case
SUBA 26
JMP fix_case
In the UK that 6800 evaluation kit cost over £160 in 1976 - with its full complement of 1KB of static RAM. That's the equivalent of a couple of thousand pounds now. Dwarfed by my Apple II from New Bear three years later at £1780 (circa £6K now).
The 6800 kit was a DIY soldering job. It came with the circuit board and the Motorola large chips like CPU, RAM, UART with pre-production "XC" markings. You then had to go and buy the discrete components.
Having had bad experiences with early MOS transistors and static - I built it in the office one evening stripped down to my cotton underpants. It was only later I realised that tantalum capacitors were polarised. Fortunately I had soldered them in aesthetically - so getting the first one the right way round was fortuitous. Even the couple at right-angles were the right way round.
Lackingt a 'scope to set it up - the two clock pots were adjusted until it ran. Not having the necessary Teletype handy at that instant - the voltages on the bus were measured to show the expected idle loop activity. A check with a 'scope later showed it was over-clocking - which explained why one instruction was always giving a one bit error.
As Herby says the applications manual was enormous with simple circuits for bar code readers, keyboards etc - all driven at low level to do things like key de-bounce. Our first application was to hook it up to one of the mainframe terminal room Teletypes. Watching an unsuspecting colleague being refused a login was not only puerile amusement - but also impressed us to microprocessors' capabilities - if only they had a lot more RAM.
The 6800, 68000, and 6502 were logical orthogonal instruction sets like the IBM 360. The Intel instruction sets always seemed far more arbitrary - so I never learned to program the 8080 etc at assembler level.
I still have a brand new "wide-bodied" Motorola UART chip in my boxes of 74' TTL etc components.
"The 6800, 68000, and 6502 were logical orthogonal instruction sets like the IBM 360. The Intel instruction sets always seemed far more arbitrary - so I never learned to program the 8080 etc at assembler level."
The 6502 wasn't that orthogonal, certainly not when compared to the 68000 or the ARM for example (IIRC you had to use different registers, either X or Y, for different addressing modes etc)
From memory, yes: the X and Y registers had different capabilities when it came to the indirect/offset addressing modes.
I remember when I first figured out what one of the more obscure ones actually did, and then wondered if there was ever a useful use for it. Like you do I searched the entirety of both of the C64 ROM chips and couldn't find the instruction in use. Not a definitive use case, but it was what I had available at the time...
"From memory, yes: the X and Y registers had different capabilities when it came to the indirect/offset addressing modes."
Wasn't only Y usable for offset addressing? Load base address in Y, and then use one-byte offset as an argument for a command. Much faster than using two-byte addresses. Also, there were some register ops available to work with contents of Y - that had no counterparts for X.
If I remember correctly, X and Y were used differently for indirect addressing thus
LDA (aa,X) added X to the operand aa, and the contents of memory at (aa+X) and (aa+1+x) were used as the address from which A was loaded.
LDA (aa),Y took the data from (aa) and (aa+1) as an address and then added Y to that. A was then loaded from that total address.
The first was useful if you had a list of pointers to objects, the second was useful if you had one pointer to an object, but wanted to access data from a particular offset into that object.
@Simon Harris
That sounds right. I suppose we could lookup the 6502 instruction set but it's quite interesting how well the instruction set comes back to memory despite so many years of not using it. I remember reading through it all in detail when teaching myself 6502 (6510) assembler as the C64 came with great manuals, particularly the Programmers Reference Guide(?).
Well, the 6100 was based on the PDP8, so you could copy the PDP8s design (that one used discrete transistors).
The next step would be to recreate your discrete version of the 6100 as a FPGA. Then you'd have an integrated version of a discrete version of an integrated version of a discrete transistor CPU.
While capacitance and distance issues are certainly real, computers made from discrete transistors achieved speeds high enough to allow them to do useful work back when computers were made from discrete transistors.
Thus, the original PDP-8 ran at 666.67 Kilohertz, the SDS 9300 ran at 571.43 Kilohertz, the KA-10 chassis version of the PDP-10 ran at 1 Megahertz, and the CDC 6600 ran at 10 Megahertz.
The high capacitance is probably due to the packing density putting relatively large chunks of conductors in close proximity to each other. I don't think distance (within reason) is too much of an issue for 1 MHz operation, spreading things out with a single layer board and classical discrete components might have been a better option. Open up a CDC6600 and you would find 4 large bays loosely packed with modules interconnected with wiring (usually twisted pairs) up to a couple of metres long. Use of emitter coupled logic and finely crafted tuning were critical to achieving the speed.
"[...] packed with modules interconnected with wiring (usually twisted pairs) up to a couple of metres long"
On the prototype English Electric 4-70 it was not unusual to see a long twisted pair wire that had been added during testing to give an extra signal delay. A calculated so many nanoseconds per length.
I was wondering this first when I realised that the original AT motherboard ran at 5MHz and was not much smaller (13.8" x 12").
I think the PCB size itself does not necessary limit the speed so much. However, if the CPU is simply a transistor for transistor substitution from the die to the PCB without any redesign, simply scaling things up might well scale up parasitic capacitances and time constants. Also, the 6502 used some dynamic registers (essentially single byte DRAMs) to reduce transistor count - scaling up the storage capacitor might also limit the clock speed by increasing the charge/discharge time constant.
I presume the 1960s transistor based computers running in the MHz range were designed on the macro-scale to control these capacitances in the first place.
I did some assembler for the 6502, but it was for a college class, so I had to. And it was obsolete even then.
Today however, I can't help but think: Can't they have done this with an FPGA or something? Or do I not get the point of creating a sub-standard copy of a CPU that doesn't count anymore?
Yes, of course they could do it with an FPGA. They've taken the netlist for this from a javascript simulator, so building the FPGA would be trivial.
I think someone above summed it up nicely when they said "art". The 6502 was a wonderful thing (disclosure: I am a Chuck Peddle fan) and this homage to it is fantastic geekery in the extreme. Things don't have to have a point or a purpose.
Actually, I'd like to do that in an FPGA. But not the CPU (and not the 6502) - but the equivalent of the discrete TTL-based version my old Spectrum clone had for a "ULA"; then hook it up to an honest-to-goodness physical Z80 CPU (that unsuspecting one over there snoozing in my drawer) and some RAM and take it from there... I reckon even a really small FPGA (or a really large CPLD) would suffice for that... :)
Wasn't the ZX81 mostly in FPGA anyway? Or some custom chip anyway. IIRC 21 discrete 74xx chips in the old ZX80 were replaced with one.
Getting a bit OT here but that was the best thing about the ZX80, together with the fact that the kit was supplied with a circuit diagram, thereby enabling those of an inquiring mind to see exactly how it all worked.
I recall when I was at Uni back in the 80s, one evening at the computer club we found an old PDP-8 stood on a landing with a notice - "free, please take away". One of my friends followed that request and had it in his bedroom. It turned out that they'd wanted to get rid of it years earlier, but the prof in charge of it refused to let it go because of the teaching utility of being able to single step it and see directly from the lights what was going on.
Said prof was away on holiday when it "disappeared" from his lab.
I do recall that whenever I visited my friend, I'd end up sat manually rewinding punched tapes while we talked. I suppose it was the nerd version of the vision of a group of women sat clicking away with their knitting needles while chatting :-)
And the hard disks were truly impressive looking beasts !
From what I recall of the 6502 (it was the first thing I programmed - hand assembly and all that) it was a static chip, meaning it can run down to standstill and have the clock single cycled. With all those LEDs, that should make quite a useful tool for visualising what's going on. Personally I don't think some video on a screen can ever replace that.
I do not believe the 6502 was static. Oddly, when I referred to the hardware manual I bought with my 6501 from Chuck Peddle, there was no fMin spec'd. OTOH, the chips were intended as more-or-less drop in replacements for the Moto 6800, which had tcyc max of 10uS, so fMin of 100kHz. Those of us using the 6502 back in the day were well aware that one could not "underclock" them, or any other contemporary microprocessor, other than the Signetics 2650 and slightly later RCA 1801.
You could "pause" the 6502 with the "ready" line, but only for read cycles. This made me use a dummy read to the data register of the Floppy Disk controller (during write operations) to pace the data transfer. 8-inch floppy, so a loop with explicit testing for "data available" would be too slow.
Later CMOS 65xx processors may have been static, but I was on to things like the 68000 by then. BTW: that 68K "Orthogonal" hype was a lie. There were a dozen or more "classes" of instructions with distinct sets of supported address modes. I learned them pretty well at the time, but have mercifully forgotten by now.
Good times. (in the sense of a sudden storm in a small boat that one can now fondly remember surviving)
Real 6502s were dynamic. The CMOS 65C02 (at least the WDC version) was (and still is) static. The WDC 65C02 also has extra addressing modes on some instructions and a few extra instructions. I can't remember whether they fixed the indirect jump wraparound bug from the original 6502, or left it as-is.
Yes they were. The Apple, TRS-80, Sorcerer, Commodore 64 and Vic-20, etc. Being able to drive around Silicon Valley and see Apple, Sun, and others, including the video game companies. Going to the Stanford book store second floor computer book area. Just the air was electric there, the mood was that anything was possible, and knowing the world was about to change in a big way.
What an awesome time!
Alt-History.
Specifically, could there have been an alternative Victorian England in which someone invented the electromechanical relay ahead of its time and then Babbage, Ada Lovelace and a watchmaker acquaintance (for the miniaturisation) managed to come up with a working binary computer clocking at a few Hertz? Which would have been faster than a Babbage engine, easier to build and probably a lot more reliable.
They sell relays like that these days. Not cheap, mind you. But just imagine the sound of it working!
Relays were roughly contemporary with Difference Engine I, and predate Difference Engine 2. One digit of DE2 (with addition, restore, and carry propogation) would probably be more complex in relays than the actual design. And it's hard to imagine that the miniature versions would have sufficient reliability without even greater complexity.
One could argue that the greater speed of the relays would allow a single ALU to be shared across all the columns, but doing that sort of thing would require at least an order of magnitude speed advantage, and relays didn't get near that area until Babbage was dead.
Konrad Zuse did built a fully mechanical computer in 1936 that _would_ have been possible in Babbage's time, had Babbage not been as abrasive as he was, or had Peel and Co. not replaced Wellington (who had immense patience with that particular bit of project overrun).
"Why do it? You could take a hint from the interests of one of the designers, Eric Schlaepfer, a vacuum tube enthusiast. He worked with Windell Oskay of Evil Mad Scientist Laboratories to design the MOnSter 6502."
Why haven't Harvard called them for an Art Exposition?
Congratulating the Team. Real Engineering Teachers.
Back in those good old days processors were made from transistors or small scale integrated circuits. Although they're a bit of a pain to make they're architecture is in many ways quite advanced compared to many modern processors because their design had to take into account the relatively long delays in the wiring. You didn't do the bus architecture like these micros had -- this was a relatively recent innovation, something that I associate with a PDP-11 -- but rather used data highways to circulate information. ("Reinvented by Rambus"). It was OK for the year but when the LSI parts turned up I for one went straight for them -- wire wrap is tedious.
These days if you want a retro processor you've got a couple of options. One is just the software simulator, accurate but not very interesting. The other is to use an inexpensive FPGA.. FPGAs host soft processors like the Microblaze or Micos; these are quite fast 32 bit machines so there would be plenty for room for an 8 bit device. In fact with all the other bits and pieces in a modern FPGA you'd have no problem building the rest of the computer -- peripherals, memory and so on -- inside it..
BTW --
1) I dragged out an old (1985) PC-XT clone out the attic recently and ran it up. They're not as interesting as they sound -- my (cheap) phone is many hundreds of times larger and more powerful.
2) I am familiar with valves because I have valve audio equipment. It sounds nice but you look at something like its FM tuner and think "Is this all it does?". I pair mine up with an Internet tuner; I think I should change that source for an Alexa enabled 'dot' (plus an IoT enabled switch to power the thing on and off). Now that's what I call 'art'.