Slashdot Log In
Historians Recreate Source Code of First 4004 Application
Posted by
Zonk
on Thursday November 15, @06:34PM
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?"
Historians Recreate Source Code of First 4004 Application
|
Log In/Create an Account
| Top
| 159 comments
| Search Discussion
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
Only 1024? (Score:1)
(http://www.snoyman.com/)
Volume Serial Number is 1CB0-998C
Directory of c:\WINDOWS\system32
08/23/2001 10:00 AM 114,688 calc.exe
1 File(s) 114,688 bytes
0 Dir(s) 50,615,652,352 bytes free
Re:Only 1024? (Score:5, Funny)
It'd be an improvement if MS did either.
Re:Only 1024? (Score:5, Interesting)
Those were fun (Score:5, Interesting)
(http://www.certsoft.com/)
but... (Score:1, Offtopic)
And best of all (Score:5, Funny)
(http://www.urquell.demon.co.uk)
slashdot headline, 2057: (Score:5, Funny)
(http://circletimessquare.com/)
(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!
Re:I hate to be a pendantic jerk, but... (Score:4, Funny)
(http://www.winsucks.com/)
Quickly -- someone send this to MS (Score:4, Funny)
The output (Score:1)
(http://www.dragonswest.com/ | Last Journal: Monday November 05, @07:35PM)
the output is (Score:5, Funny)
(http://slashdot.org/ | Last Journal: Thursday February 21 2002, @04:37PM)
Commander Keen (Score:5, Interesting)
(http://rtfm.insomnia.org/~qg/ | Last Journal: Wednesday November 16 2005, @07:11AM)
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...
How to build a CPU -- transistor level up! (Score:4, Informative)
(http://www.nerdkits.com/)
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)
(http://slashdot.org/ | Last Journal: Thursday November 01, @12:01PM)
'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, 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!)
Re:Amazing! (Score:4, Interesting)
Backups? (Score:1)
55378008 (Score:2)
(http://slashdot.org/~Doc%20Ruby/journal | Last Journal: Thursday March 31 2005, @01:48PM)
My 4004 Project (Score:1)
Where's the update? (Score:5, Funny)
vista calc.exe properties (Score:2)
(http://circletimessquare.com/)
Size: 172 KB (176,128 bytes)
kinda puts things in perspective, doesn't it?
ah, "progress"
1024 bytes? Try 1024 bits (Score:1)
(http://slashdot.org/~davidwr/journal/ | Last Journal: Friday November 09, @09:19PM)
I have the original 4004 reference guide (Score:2)
(Last Journal: Wednesday November 21, @03:11AM)
People used to consider square wave logic charts a programming tool back then, too.
Somebody call the cops! (Score:1)
It is obvious this Kintli fellow has violated the DMCA
the law by reverse engineering a piece of commercially sold software. Since this was not done for
the purpose of interoperability, the law should be called in!
Asimov's The Feeling of Power (Score:3, Interesting)
(http://drachenstern.tripod.com/ | Last Journal: Saturday April 22 2006, @06:17AM)
The Feeling Of Power
by Isaac Asimov
Jehan Shuman was used to dealing with the men in authority on long-embattled earth. He was only a civilian but he originated programming patterns that resulted in self-directing war computers of the highest sort. Generals, consequently listened to him. Heads of congressional committees too.
There was one of each in the special lounge of New Pentagon. General Weider was space-burned and had a small mouth puckered almost into a cipher. He smoked Denebian tobacco with the air of one whose patriotism was so notorious, he could be allowed such liberties.
Shuman, tall, distinguished, and Programmer-first-class, faced them fearlessly.
He said, "This, gentlemen, is Myron Aub."
"The one with the unusual gift that you discovered quite by accident," said Congressman Brant placidly. "Ah." He inspected the little man with the egg-bald head with amiable curiosity.
The little man, in return, twisted the fingers of his hands anxiously. He had never been near such great men before. He was only an aging low-grade technician who had long ago failed all tests designed to smoke out the gifted ones among mankind and had settled into the rut of unskilled labor. There was just this hobby of his that the great Programmer had found out about and was now making such a frightening fuss over.
General Weider said, "I find this atmosphere of mystery childish."
"You won't in a moment," said Shuman. "This is not something we can leak to the firstcomer. Aub!" There was something imperative about his manner of biting off that one-syllable name, but then he was a great Programmer speaking to a mere technician. "Aub! How much is nine times seven?"
Aub hesitated a moment. His pale eyes glimmered with a feeble anxiety.
"Sixty-three," he said.
Congressman Brant lifted his eyebrows. "Is that right?"
"Check it for yourself, Congressman."
The congressman took out his pocket computer, nudged the milled edges twice, looked at its face as it lay there in the palm of his hand, and put it back. He said, "Is this the gift you brought us here to demonstrate. An illusionist?"
"More than that, sir. Aub has memorized a few operations and with them he computes on paper."
"A paper computer?" said the general. He looked pained.
"No, sir," said Shuman patiently. "Not a paper computer. Simply a piece of paper. General, would you be so kind as to suggest a number?"
"Seventeen," said the general.
"And you, Congressman?"
"Twenty-three."
"Good! Aub, multiply those numbers, and please show the gentlemen your manner of doing it."
"Yes, Programmer," said Aub, ducking his head. He fished a small pad out of one shirt pocket and an artist's hairline stylus out of the other. His forehead corrugated as he made painstaking marks on the paper.
General Weider interrupted him sharply. "Let's see that."
Aub passed him the paper, and Weider said, "Well, it looks like the figure seventeen."
Congressman Brant nodded and said, "So it does, but I suppose anyone can copy figures off a computer. I think I could make a passable seventeen myself, even without practice."
"If you will let Aub continue, gentlemen," said Shuman without heat.
Aub continued, his hand trembling a little. Finally he said in a low voice, "The answer is three hundred and ninety-one."
Congressman Brant took out his computer a second time and flicked it. "By Godfrey, so it is. How did he guess?"
"No guess, Congressman," said Shuman. "He computed that result. He did it on this sheet of paper."
"Humbug," said the general impatiently. "A computer is one thing and marks on a paper are another."
"Explain, Aub," said Shuman.
"Yes, Programmer. Well, gentlemen, I write down seventeen, and just undernea
1024 Bytes? Bah! (Score:3, Interesting)
(http://slashdot.org/)
LS
John Titor called...... (Score:1)
Actually, only 939 bytes of ROM. (Score:1)
There were 85 left over bytes at the end (filled with NOP), so it was really only 939 bytes of ROM.
Re:uhhhh... (Score:3, Funny)
Re:uhhhh... (Score:2)
(Last Journal: Monday December 15 2003, @11:37AM)
Re:Something is wrong...... (Score:4, Informative)
(http://www.oneroomdigital.com/)
"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 = "
Re:I wrote a PC BIOS INT10 video display driver in (Score:1)
(http://www.oneroomdigital.com/)