3 ms·
It's funny the comments here saying it's not hard or unusual. Paul Allen did this in 1974 without the Internet or modern software tools. I think it is absolut
by andrewstuart 3y ago
It's funny the comments here saying it's not hard or unusual.
Paul Allen did this in 1974 without the Internet or modern software tools.
I think it is absolutely extraordinary and incredibly impressive.
- TheOtherHobbes 3y agoAssembler programming wasn't an unusually exotic skill in the early 70s, and the PDP-10 was an unusually friendly environment for it. Compared to modern programming, assembler on a 16- or 36-bit machine is simple, logical, and not at all abstract. DEC made a point of offering high quality detailed docs to students, and there was a kind of assembler culture that produced operating systems like TOPS-10, compilers for various languages, and editing tools, often with access to the sources. And as others have pointed out, the 8080 was not a complex processor. So mapping its instructions to macros wasn't hugely challenging. I had a friend who wrote a Z80 emulator - a harder challenge - on a PDP-10 as a spare time hobby project. It took about a month of after-hours programming. Full-time, it would have taken much less. More interesting is that it's possible Gates & Allen had access to the sources for the PDP-11 4K word Dartmouth BASIC. I have no idea if the original 8-bit MS-BASIC was a clean room reimplementation. But it's at least possible it wasn't.
- RetroTechie 3y ago> Assembler programming wasn't an unusually exotic skill in the early 70s ^^^ This. Back in the 80s I wrote a 8051 assembler running on a Z80 system. This involves a parser, and also a bunch of tables with opcodes, operand formats & so on. Took a number of weeks parttime (not sure if I ever completed it, but the bulk of the functionality was there iirc). This was using just text editor, Z80 assembler, maybe a debugger, and 8051 family datasheet(s). Apart from emulating I/O (as simple or complex as that in emulated machine), difficulty-wise this should be similar to writing an emulator. 8051 and 8080 are not very different in complexity.
- chpatrick 3y agoEmulating some simple instructions really isn't that hard, we did it in first year CS. He would have had the documentation available, you don't need the internet for that.
- tempaway25755 3y agodid this in 1974 without the Internet or modern software tools Anyone doing anything with computers in 1974 did it without the internet or modern software tools. It seems to me it was an era where you were either a 'computer whizz' or else you didn't really get involved with computers. Not saying its not impressive though, I think any programmers from that period who are still remembered now would be rated as 'very very good' by modern standards.
- linuxdude314 3y agoWhen it comes to implementing low level code using instructions and registers, nothing beats the data sheet. You don't need any opinions or tutorials, just a knowledge of how the chip works (it's in the data sheet), and the instruction set (also in the data sheet). I'd highly encourage anyone to read a data sheet for something like an ESP32.
- kjs3 3y agoAs long as you can get the errata sheets too. Nothing like spending a week banging your head against something that should work according to the datasheet, only to find in the errata "That things we said you could do? It doesn't work.".
- HeyLaughingBoy 3y agoIt's even more fun when you find the bug before the manufacturer has written an errata (erratum?) for it :-(
- zabzonk 3y agomy 8080 emulator was written on the same DEC hardware as Allen's in Fortran77 in the early 1980s. no internet or "modern software tools", just the 8080 spec sheet. took me about two weeks or so, on and off. so it is not extraordinary or incredibly impressive - i'm certainly no genius SE.
- JohnFen 3y ago> I think it is absolutely extraordinary and incredibly impressive. It's literally not extraordinary because it wasn't that rare of a thing to do. I'd expect most expert engineers of the day would be able to accomplish the same. The internet and modern tools are merely conveniences that increase productivity. Devs have been working without them for longer than they've been working with them.
- HeyLaughingBoy 3y agoIt's certainly impressive, but not extraordinary by the standard of the day for a good programmer. I once stuffed a software UART, simple command interpreter and a temperature control algorithm into a microcontroller that had a single accumulator and a grand total of 504 bytes of OTP Flash (a donut to anyone who can guess what it was from that odd memory size :-) and didn't give it a second thought until years later someone pointed out that it was unusual.