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).
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?
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 :)
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!
Amazing! I am speechless.
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. )
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.
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.
[...] [1] If you want the source code, get it here. There’s also a funny 6502R instruction guide in the comments (well, it’s funny if you’re a 6502R programmer ). [...]
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.