DK source code link

Curt Vendel (who’s been groveling through a bunch of old Atari backup tapes for a number of years) has found and posted the source code to the Atari 800 version of Donkey Kong.

Here’s a pointer to the forum thread: link

Update: Mirrored here.

Certainly brings back memories.  There’s less code than I remember, and some bits of it are really a mess, but it’s fun to see this again.  I should add that you’ll just see a bunch of assembly code, with not a whole lot of insight into how the game was actually developed (when I finally got to see the source for Quake, I remember feeling somewhat disappointed — “That’s it?  My God, that’s a stupid hack.”  If you take the trouble to look, I’d not expect revelation, just a bunch of code written by a young guy in a hurry).

This entry was posted in Rantage. Bookmark the permalink.

9 Responses to DK source code link

  1. Anon says:

    Went to AtariAge and tried to download the source code. Got told to register to do so. Registered and activated the account but even after I logged in I was told I don’t have permission to download it. Can someone mirror it?

  2. Paul Huff says:

    So… What is the licensing state of this stuff? I mean has atari pretty much public domained it? That in and of itself might make for a good blog post, Landon 🙂

  3. Justin Mason says:

    You know, the fact that the _original developer_ of a game like that can appear on a forum thread to provide commentary is simply amazing. hooray for the internets!

  4. Jack says:

    Amazing! I am speechless.

  5. Jack says:

    Here’s a guide to the 6502R (the “top-secret” RISC version of the 6502 which, unfortunately, was never released to the marketplace. Something about problems with quality control…):

    Mnemonic Instruction
    AAC Alter All Commands
    AAR Alter At Random
    ASM Alphabetize, Starting in Middle
    BBSL Break for Bob Shields Lunch (long break!)
    BBW Branch Both Ways
    BCIL Branch Creating Infinite Loop
    BDC Break Down and Cry
    BEW Branch Either Way
    BH Branch and Hang
    BICO Branch If Computer On
    BICOF Branch If Computer On Fire
    BO Byte Operator
    BOB Branch On Bug
    BOM Branch On Mood
    BOPO Branch On Power Off
    BTNI Branch To Nowhere Immediate
    CG Convert to Garbage
    CLR Clobber Register
    CLRI Clobber Register Immediately
    CMD Compare Meaningless Data
    CNC Close, No Cigar
    CRN Convert to Roman Numerals
    CSF Circular Shift Forever
    CSL Curse and Swear Loudly
    DBZ Divide By Zero
    DMPE Decide to Major in Phys. Ed.
    DNL Do Nothing Left
    DNR Do Nothing Right
    DO Divide and Overflow
    DP Destroy Program
    DSTM Don’t Shoot The Messenger
    DTRT Do The Right Thing
    DTVFL Destroy Third Variable From Left
    DWIM Do What I Meant
    DWMNS Do What I Mean, Not what I Say
    EAO Execute in Any Order
    EDF Execute “DEAD” Forever
    EEOI Execute Every Other Instruction
    EIOC Execute Invalid Op-Code
    ELE Execute Loop Eternally
    ENF Emit Noxious Fumes
    EO Execute Operator
    EPI Execute Programmer Immediately
    EROM Erase Read-Only Memory
    FLI Flash Lights Impressively
    GFD Go Forth and Divide
    GFM Go Forth and Multiply
    GRE Generate Random Error
    HCF Hang and Catch Fire
    IAI Ignore All Instructions
    IBP Insert Bug and Proceed
    JSOW Jump to Subroutine On Whim
    LPA Lead Programmer Astray
    MMI Munch Memory Immediate
    PFEM Print False Error Message
    PMI Perform Magic Immediate (for Systems Programmers)
    RDS Read Sideways
    RLI Rotate Left Indefinitely
    ROC Randomize Op Codes
    RPM Read Programmer’s Mind
    RR Randomize Result
    RWST Rewind and Stretch Tape
    SAS Sit And Spin
    SDDO Swap Disc Driver Out
    SLP Sharpen Light Pen
    SLVDBDL Shift Left Variable, Drop Bits, Dim Lights
    SMR Skip on Meaningless Result
    SRZ Subtract and Reset to Zero
    SSD Seek and Scratch Disc
    SSJ Select Stacker and Jam
    SSRA Scream and Shout and Run About
    STA Store Anywhere
    STM Shoot The Messenger
    STROM Store in Read-Only Memory
    TDB Transfer and Drop Bits
    UER Update and Erase Record
    ZAR Zero Any Register

    (I first received this in an email in the early 90s on my Compuserve account and have kept it through countless hardware upgrades simply because it’s so funny. Sorry the list is so long, but I hope you find it as amusing as I have. )

  6. landon says:

    The code (sadly) is not the production code, but some snapshot made a short time before the official release. There’s stuff missing (some copy protection, maybe some other things). But it’s useful for a couple of reasons: (a) if you get it to build, you’ve got a fairly workable version of DK, and (b) it’s a great window into how games were done in the early 80s.

    The code has more comments than most games, more than even the Coin-op games whose source code I saw (e.g., Tempest). The Atari version of the original Pac-Man had exactly *two* comments. I’m not kidding.

  7. xot says:

    I’m very much enjoying looking over your source code. I love Atari 6502 and this is my favorite home version of Donkey Kong. I used to play this so much, thanks for all the joy it’s brought me.

  8. Pingback: Awasu » ドンキーコング

  9. Zac says:

    This stuff is fascinating… what an awesome retrospective. Kinda makes you wonder what sort of shenanigans occur with the incredibly complex code that’s being written nowadays.

Leave a Reply

Your email address will not be published. Required fields are marked *