Slashdot Mirror


Historians Recreate Source Code of First 4004 Application

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.'"

5 of 159 comments (clear)

  1. Re:Only 1024? by DragonWriter · · Score: 5, Funny

    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?


    It'd be an improvement if MS did either.
  2. Re:I hate to be a pendantic jerk, but... by urcreepyneighbor · · Score: 5, Funny

    Your hand?

    zing!

    --
    "The fight for freedom has only just begun." - Geert Wilders
  3. Commander Keen by QuantumG · · Score: 5, Interesting

    I once reverse engineered the classic id software game Commander Keen. John Carmack did some cool stuff in that code.. each sprite had two function pointers in it, one was called when the sprite came into contact with another sprite, the other was called every frame to animate the sprite (he called it the "think" function). When you killed a monster the sprite was replaced with a "body" which was just like a sprite but had a few less fields (so it took up less memory). One of the neatest things he did was use this exact same framework of sprites and bodies to animate the "static" parts of the game. For example, the color coded doors that you have to get the key cards to open were sprites with a contact function that checked if the player had the right key card, at which time they would "die" and be replaced by a body that had a think function would make them slide out of the way.

    For anyone who would like to take a look, I've put the re-engineered source code up.

    --
    How we know is more important than what we know.
  4. Where's the update? by lseltzer · · Score: 5, Funny

    I found a buffer overflow. Exploit code to follow...

  5. Re:Only 1024? by TDRighteo · · Score: 5, Interesting
    Floating-point math doesn't fix itself. Let's not be hard on Microsoft when:

    Python 2.5.1 (r251:54863, Oct 30 2007, 13:54:11)
    [GCC 4.1.2 20070925 (Red Hat 4.1.2-33)] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> 10.1-10-0.1
    -3.6082248300317588e-16
    and...

    $ perl
    printf("%s\n", 10.1-10-0.1);
    -3.60822483003176e-16
    and...

    $ php
    <?php
    echo (10.1-10-0.1);
    ?>
    -3.6082248300318E-16
    Note that the answers vary across languages too...