Slashdot Log In
Historians Recreate Source Code of First 4004 Application
Posted by
Zonk
on Thu Nov 15, 2007 07:34 PM
from the really-hard-to-dig-through-bits-and-bytes dept.
from the really-hard-to-dig-through-bits-and-bytes dept.
mcpublic writes "The team of 'digital archaeologists' who developed the technology behind the Intel Museum's 4004 microprocessor exhibit have done it again. 36 years after Intel introduced their first microprocessor on November 15, 1971, these computer historians have turned the spotlight on the first application software ever written for a general-purpose microprocessor: the Busicom 141-PF calculator. At the team's web site you can download and play with an authentic calculator simulator that sports a cool animated flowchart. Want to find out how Busicom's Masatoshi Shima compressed an entire four-function, printing calculator into only 1,024 bytes of ROM? Check out the newly recreated assembly language "source code," extensively analyzed, documented, and commented by the team's newest member: Hungary's Lajos Kintli. 'He is an amazing reverse-engineer,' recounts team leader Tim McNerney, 'We understood the disassembled calculator code well enough to simulate it, but Lajos really turned it into "source code" of the highest standards.'"
Related Stories
[+]
Intel Releases 4004 Microprocessor Schematics 174 comments
mcpublic writes, "Intel is celebrating the 35th anniversary of the Intel 4004, their very first microprocessor, by releasing the chip's schematics, maskworks, and users manual. This historic revelation was championed by Tim McNerney, who designed the Intel Museum's newest interactive exhibit. Opening on November 15th, the exhibit will feature a fully functional, 130x scale replica of the 4004 microprocessor running the very first software written for the 4004. To create a giant Busicom 141-PF calculator for the museum, 'digital archaeologists' first had to reverse-engineer the 4004 schematics and the Busicom software. Their re-drawn and verified schematics plus an animated 4004 simulator written in Java are available at the team's unofficial 4004 web site. Digital copies of the original Intel engineering documents are available by request from the Intel Corporate Archives. Intel first announced their 2,300-transistor 'micro-programmable computer on a chip' in Electronic News on November 15, 1971, proclaiming 'a new era of integrated electronics.' Who would have guessed how right they would prove to be?"
[+]
A Replica of the First 4004 Calculator 63 comments
mcpublic writes "For the 37th anniversary of Intel's 4004, the world's first off-the-shelf, customer-programmable microprocessor, vintage computer enthusiast Bill Kotaska has successfully built a replica of Busicom's historic 141-PF printing calculator using vintage Intel chips. Decades before the ubiquitous 'Intel inside' sticker, Japanese calculator maker Busicom introduced the first product ever built around an Intel microprocessor. Bill's homebrew replica includes a rare Shinshu Seiki Model-102 drum printer and runs firmware extracted from the original Busicom ROMs. Schematics and photos of his re-creation are available at the unofficial 4004 web site, along with Tim McNerney's new PIC-based emulator of the Model-102 printer. The site includes the Busicom 'source code,' 4004 details, interactive simulators, and other goodies for students, engineers, and computer historians." We discussed the 36th 4004 anniversary project here last year.
This discussion has been archived.
No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
Full
Abbreviated
Hidden
Loading... please wait.
Those were fun (Score:5, Interesting)
Re: (Score:3, Interesting)
Re: (Score:3, Funny)
And best of all (Score:5, Funny)
slashdot headline, 2057: (Score:5, Funny)
(truth be told, quick scanning the headlines, that's what my brain registered)
I hate to be a pendantic jerk, but... (Score:4, Funny)
What the hell is an authentic simulator?
Re:I hate to be a pendantic jerk, but... (Score:5, Funny)
zing!
Parent
Re:I hate to be a pendantic jerk, but... (Score:4, Funny)
Parent
Quickly -- someone send this to MS (Score:4, Funny)
the output is (Score:5, Funny)
Commander Keen (Score:5, Interesting)
For anyone who would like to take a look, I've put the re-engineered source code [insomnia.org] up.
Re:Commander Keen (Score:5, Interesting)
The loop is drawing columns (vertical slivers of wall). It needs to interpolate between two things: the input wall texture, and the output part of the screen. Carmack uses something like Bresenham's line drawing algorithm to do this, but because the 386 has such a limited register set, he stores the fractional increment in an immediate attached to the "addl" instruction: and elsewhere...
Parent
How to build a CPU -- transistor level up! (Score:4, Informative)
Anyway, reading about how hard it was to recreate the source code from the 4004 makes me wonder how easily we could find source code for some apps from even a decade ago. Lots of companies have gone bankrupt / discontinued products / been sold / etc, and we all know that lots of people aren't good about backing up their code. It's neat to go to the Linux Kernel Archives and look at the Historic Linux sources [kernel.org].
--
Educational microcontroller kits for the digital generation. [nerdkits.com]
Amazing! (Score:5, Insightful)
'He is an amazing reverse-engineer,' recounts team leader Tim McNerney, 'We understood the disassembled calculator code well enough to simulate it, but Lajos really turned it into "source code" of the highest standards.'
No disrespect to Lajos, but have we really fallen so far in programming standards that it's considered "amazing" to disassemble a 1024 byte program? Back in my day (and stay the hell off my lawn!) we used to disassemble programs all the time. I reverse engineered the operating system for a computer I developed for because we wanted to hook into places that weren't accessible.
Disassembly is apparently a lost art in these decadent days of some programmers never using anything but scripting languages (e.g., Java, Python, Perl) and having no clue what goes on under the hood.
Re:Amazing! (Score:4, Interesting)
Parent
Re:Amazing! (Score:4, Insightful)
From a theoretical point of view, assembly knowledge isn't particularly useful because it doesn't lend itself to rigorous analysis (the "science" part of "computer science"). From a practical point of view, since very few programs are written in assembly language anymore, knowledge of it has limited utility. Further, from a practical point of view, I'd much rather deal with a programmer who can explain his work in terms of data structures and algorithms than one that is stuck thinking in terms of registers and memory locations.
There is certainly a place for assembly knowledge*. It's just a niche, and not a particularly important one anymore. Meanwhile, there are lots and lots of diverse applications for the theory they teach you in those classes instead of assembly. In my own work, I've had to bust out the graph theory way more often than I've had to bust out my knowledge of asm tricks for fast line-rendering...
*) Interestingly enough, one of those places is inside the language runtimes of high-level languages. There are usually lots of neat tricks inside those things (eg: using the NaN space of double-precision floats to store unions of floats and 51-bit integers without extra variant tags!)
Parent
Where's the update? (Score:5, Funny)
Re: (Score:3, Interesting)
And scientific functions.
And the ability to convert hex.
And store/recall.
The original had 4 functions. This one has at least 40. Would you rather the MS guys spend time seeing if they can force their 114k application down into 10k, or perhaps writing an operating system that doesn't suck?
Re:Only 1024? (Score:5, Funny)
It'd be an improvement if MS did either.
Parent
Re: (Score:3, Funny)
Re: (Score:3, Informative)
Re:Only 1024? (Score:5, Interesting)
Parent
Re: (Score:3, Funny)
Re: (Score:3, Funny)
Re:Something is wrong...... (Score:4, Informative)
"The electronic calculators that accountants used 35 years ago worked differently than the familiar four-function calculator we use today. These were designed to behave much like mechanical adding machines of the 1960's. After every number you want to add to the total, you need to press +, so = doesn't work like you'd expect. Here are some examples:
To add three numbers: 61 + 79 + 83 + = (if you forget the last +, the 83 won't get added)
To subtract two numbers: 2007 + 1971 - =
To multiply two numbers: 125 x 5 = (this is more like we're used to)
To divide two numbers: 625 / 5 = "
Parent