Donkey Kong and Me
MBCook sends us to the blog of one Landon Dyer, who posted an entry the other day entitled Donkey Kong and Me. It describes how he was offered at job at Atari after writing a Centipede clone and ended up programming Donkey Kong for the Atari 800. It's full of detail that will be fascinating to anyone who ever programmed assembly language that had to fit into 16K, as well as portents of what was to come at Atari. "My first officemate didn't know how to set up his computer. He didn't know anything, it appeared. He'd been hired to work on Dig Dug, and he was completely at sea. I had to teach him a lot, including how to program in assembly, how the Atari hardware worked, how to download stuff, how to debug. It was pretty bad."
My first officemate didn't know how to set up his computer. He didn't know anything, it appeared. He'd been hired to work on Dig Dug, and he was completely at sea. I had to teach him a lot, including how to program in assembly
Without RTFA, I bet its a relative of an Atari bigwig.
Table-ized A.I.
I've conversed with Landon online a couple of times over the years. He seems to be a super nice guy, and his blog is at times hilarious. My favorite two stories are the guy with no degree (who purports to have one) and repeatedly applies for a job, and another entry with an intimidating inscrutable bulging forehead genius who interviewed Landon for a job.
Not that it has direct relevance here, but if you haven't seen it, "The King of Kong" is a fantastic documentary about "Competitive Donkey Kong". It's the tale of a guy who has the gall to challenge the world record holder in Donkey Kong and the corruption in the competitive gaming industry. It's also fantastically funny and a great time to watch.
Highly recommend it if you're at all into gaming, but it's also a great social commentary to watch even with your non-gamer girlfriend/boyfriend.
After RTFA, you can watch some video of the game (here's the Atari 2600 version).
You missed the best part of TFA. A new word has entered the lexicon by accident of hyphen: "cow-orker".
Some of us wrote video games in 6502 assembly language back then. I made enough in the first year off of royalties to buy a brand new car for cash back in the early '80s. Now get off my lawn!
How I wish Atari had got that guy to teach everyone how to program the Atari 800 and 400. I had to teach myself from the most cryptic, sparse and often contadictory documentation. There was an "Internet" in the early 1980s, but practically no one had access (I did), so we depended on the few published books, occasional insights in magazines like COMPUTE!, Creative Computing and Byte.
It wasn't enough. Programming wasn't just hard because it required assembly code skills (or forth, hah!), but because it was completely hidden territory. There was no real way to get source code from the programs that some people managed to write and distribute, and certainly no obligtion for anyone to release it (except the occasional superficial magazine article).
The competing Apple ][+, IBM-PC and TRS-80, all had BBSes full of downloadable code (often including source). Their corporate vendors each published detailed programming guides. The TRS-80 was doomed because of the direction of its corporate parent (which should have stayed in the PC business, porting its OS on Intel HW when they all upgraded from 8 to 16 bits). But IBM and Apple survived, even thrived (as we all know), because it was easy to get in the programming game.
By the time Atari finally published its "De Re Atari", which was a good start (the source code to the OS), the small developer "community" had already chosen either Apple or PC. If Atari had taught us all how to program from the beginning, its superior hardware and attractive game platform would probably have left it a strong competitor to the PC, much as the Mac has. But we were all on our own, and our platformed disappeared.
The same dynamic is still true on new platforms. Make it easy to develop for it, and it will survive, even thrive.
--
make install -not war
Just to think I started programming that was a lot of memory, today code seems so bloated....
Wise men speak because they have something to say, Fools because they have to say something!!!!
definitely appropriate but not new.
I lol'ed when I saw it in TFA.
-- @rjamestaylor on Ello
So, what was it like to work with Bill Gates?
[rim shot]
That's impressive. Am curious though, you know how some people put their very first paycheck into a frame to hang on the wall? Have you ever saved your work or preserve it in some way that you can show to peers? This is after all, back then, when "bloat" was not used to refer to software yet =)
WARNING: Smartphones have side effects--most of them undocumented.
> Some of us wrote video games in 6502 assembly language back then.
Which ones? Anything we might remember?
Ohrea lly?
TFA is not supposed to be relevant to most people.
TFA is an act of geek nostalgia. A good number of us like to remember for the sake of remembering. While I couldn't care less about Atari pre-Tramiel (the DOG!), stories about Amiga still interest me.
Check the comments section at the end of TFA, the messages are from people who still revere Atari and people with personal connections.
Donkey Kong and Me
In the fall of 1981 I was going to college and became addicted to the Atari arcade games Centipede and Tempest. I knew a little bit about the hardware of the Atari 400/800 home computer systems, and decided to make a scary purchase on my student budget and buy an Atari 400 and a black and white TV (which was all I could afford). I messed around in Basic for a while, then bought an Assembler/Editor cartridge and started hacking away on a Centipede clone. I didnt have much to go on in terms of seeing prior designs for games and had to figure everything out myself. Like most of the school problems, you really just have to work things out with a few hints from the textbooks and lectures.
Anyone whos worked with that Asm/Editor cartridge probably bears the same deep emotional scars that I do. It was unbelievably slow, the debugger barely worked, and I had to remove comments and write in overlays of a couple K in order to squeeze in enough code. My game, which I called Myriapede, took about three months to write. I still have the original artwork and designs in my files; graph paper marked up with multi-colored pens, with the hexadecimal for the color assignments painstakingly translated on the side.
[I had to guess at colors. All I had was that cheap black and white TV, and I had visit a friends and his color TV for a couple hours in order to fine tune things].
The Atari Program Exchange (a captive publishing house) was holding a contest. The grand prize for the winning game was $25,000. Id spent a semester of college blowing off most of my courses and doing almost nothing except work on Myriapede. I finished it with a week or two to spare and submitted to the contest.
A few weeks after I mailed Myriapede off to the contest, I got a letter from Atari that said (1) they were very impressed with the work, but (2) it looked to them like a substantial copy of Centipede (well, it was) and that theyd rejected it for that reason. The subtext was they would probably sue me if I tried to sell it anywhere else, too. I was crushed. I wound up going to a local user group and giving a couple copies of it away; I assume that it spread from there. I hear that people liked it (best download of 1982 or something like that).
A few weeks later I got a call from Atari; they wanted to know if I was interested in interviewing for a job. I was practically vibrating with excitement. I flew out and did a loop, and made sure to show Myriapede to each interviewer; it was a conversation stopper every time. Until they saw it they kind of humored me (yeah, okay, you wrote a game), then when the game started up they started playing it, got distracted and (ahem!) had to be reminded that they were doing an interview! One of the guys I talked to was the author of Ataris official Centipede cartridge. He said on the spot that my version was better than his.
A couple weeks later they gave me an offer. Atari moved my single roomful of stuff out to California. I flew out and spent two weeks in a hotel waiting for my things to arrive; Atari wanted me out there real bad.
Now, there were two popular arcade games that I simply could not stand; the first was Zaxxon, a stupid and repetitive scrolling shooter. The second was Donkey Kong it was loud, pointless and annoying. Of course, the reason they wanted me in California was so I could work on a Donkey Kong cartridge. After a few moments of dispair (and faking enthusiasm in front of my bosses) I gritted my teeth, got a roll of quarters and spent a lot of time in the little arcade that my hotel had, playing the DK machine there and getting to know it really, really well.
I should explain how Ataris Arcade conversions group worked. Basically, Ataris marketing folks would negotiate a license to ship GameCorps Foobar Blaster on a cartridge for the Atari Home Computer System. That was it. That was the entirety of the deal. We got ZERO help from the original developers of the games. No listings, no talking to the engineers, no design documents
The ______ Agenda
And he's now hosting his blog on that very same Atari he used oh-so-many years ago.
Dear Slashdot: next time you want to mess with the site, add a rich-text editor for comments.
You kids today, no sense of history. "Cow-orker" is at least 15 years old, it was common on alt.folklore.urban when I was a USENET junkie. (USENET. You know, USENET? Newsgroups? The original peer-to-peer system? Ah, forget it. I gotta go yell at some kids to get off my lawn.)
Tom Swiss | the infamous tms | my blog
You cannot wash away blood with blood
That is exactly right; this is pure geek nostalgia. Nobody really cares about the details of a failed company 25 years ago, or about some guy who wrote an arcade game clone on an obsolete computer. The world has moved on.
But . . . some of the lessons are timeless: Failing companies go south in common ways (poor hiring practices, success concealing bad mistakes, miserable engineering practices, etc.). This was my first job out of college, I had no idea what the real world was like, and it was a real eye-opener. (And from a geek perspective: You can do amazing stuff in 16K. Still can. Firmware engineers do this kind of thing every day).
(It kind of sucks to be slashdotted. I never expected that).
Any sufficiently advanced technology is insufficiently documented.
I disagree. I have done a lot of reading on the history of computer culture over the past fifty years, and this story reflects the histories that I have read. It is a good, introspective look at the culture of computing at that time.
This was not funny at all.
Linux is only free if your time has no value. Windows is only free if you threaten to use Linux.
dude, as a professional historian, I find it pretty cool. In a period where we tend to sentimentalize the early years of videogames, it also highlights a key part of the game industry: many, many games were written by people who had no particular interest in video games. It was a coding job. It's hard to imagine now, when there's enough demand that writing videogames involves taking a pay cut, but people were involved in it with no inspiration whatsoever, producing shovelware. In my short period in the industry as a (paid) tester, years after this incident, I remember explaining just what constituted traveling and offsides to a lead programmer whose basketball game was already in final testing. We remember the smart folks, and the good games, but there was a lot of junk out there. We all played the games of the believers, but most of the games were made by hacks, and only a small number played them.
So, yeah, thanks for sharing.
Apparently this blog is running on 16k, too.
-David
No shit, +5 funny? C'mon moderators -- not any completely unclever insult to MS/Gates/Balmer is funny.
"Orthodoxy means not thinking--not needing to think. Orthodoxy is unconsciousness." --Eric Blair
"Newsgroups? The original peer-to-peer system? Ah, forget it."
I know what you mean. I tell friends use to p2p that I get files off newsgroups within minutes instead of waiting days for people to share and they look at me like the first time they heard about mp3s or divx. "How do I get on a newsgroup?!?" They ask excitedly. I use to explain it all, but now I tell them just to google it.
my karma will be here long after I'm gone
the best computer ever in the whole universe, except for virtually every other computer that has been produced since, was my Atari 600XL. Simple enough for a 5 year old to program in machine code, by copying long lists of poke statements out of the blue pages of antic magazine, this computer changed the way I saw the world. In fact, after only a few short years of sitting in front of a 27" inch TV typing in listings, the way I saw the world had become rather myopic.
Until I got my first Amiga of course. 68000 assembly language reads like a great literary work. Yes, the Amiga 500 with it's unix-like (but not *too* unix like) operating system and it's non-surface mounted giant chips named after *hot chicks*, and later, pregnant chicks, brought a 12 year old and his potentially permanently scarring soldering iron closer together than they had ever been before. Yes.. I got my first virus on an Amiga. It was so cool.. and so scary. Never before had I seen a virus! Don't share floppies kids!
Back then, there were also machines called "macs" which were identifiable by the fact that they used completely different hardware than a PC (stuff made by Motorola.. pfft.. a cellphone manufacturer. leave it up to them and we'll soon be computing on our cellphones!!) and completely different input devices. People said we would never learn to like mice... and they were right.
Well.. it's all gone kids. The mac doesn't exist anymore. Just PC's with unix-like operating systems, and PC's with Microsoft operating systems... and we still rate them on the same system... we fire up mame, and see how well they can duplicate the Donkey Kong experience.
I nearly beat level 2 today.
Barrels and other creatures are XOR'd onto the screen (I had some mask-and-repaint code at one point, but it was way too slow). Mario is a few player objects (three, I think). The "prize" objects (umbrellas, etc.) are the remaining players. The XOR graphics are pretty annoying to me, but most other people didn't seem to mind
Wasn't there a big lawsuit in the late 80's over using XOR for mouse cursors? If so, you had provable prior art right there. Then again, it was your competitor, Commodore that was under the gun, so wouldn't have benefited Atari.
Table-ized A.I.
That's what happens when you over-educate people: they learn all these great abstractions and ideas, and then have to do it the primitive way in the field. My first job out of college was programming in Fortran-66 (1966 standard), which had no IF blocks and WHILE loops, only GOTO's. The company didn't want to pay for a newer compiler. It was hard to accept; I was not ready for the real world and can relate to the poor FORTH dude. I hope he's making big bucks in a FORTH shop with plenty of RAM somewhere.
Table-ized A.I.
"MBCook sends us to the blog of one Landon Dyer, who posted an entry the other day entitled Donkey Kong and Me." Entitle: to furnish with proper grounds for seeking or claiming something titled: to designate or call by a title
Gah. That last post came out formatted differently than I had intended. Here's a correction: "MBCook sends us to the blog of one Landon Dyer, who posted an entry the other day entitled Donkey Kong and Me." Entitle: to furnish with proper grounds for seeking or claiming something. Titled: to designate or call by a title.
You must be new here.
vi +
i wouldn't be all that proud of a custom pc case
Probably ET. So, yea, perhaps we should just forget...
I, for one, am looking forward to the inevitable
Not to nitpick or anything, but I'm pretty sure IRC is/was p2p, but usenet is/was client-server...
Bill [G.] looked down on Steve [J.] because he couldn't actually program.
SHHHHHHHHHHHHHHH
The first rule of Usenet is that we don't talk about Usenet in public forums. It's okay to tell your friends and set it up for them, but for God's sake don't go around blabbing about it.
If anyone here wants to know what Usenet is, search on google and look for 'More/Groups'. It's just a bunch of text newsgroups. There's not any sort of humongous binary trading going on on it. You can't get movies or music or TV shows on it, they don't show up sooner than they show up on torrents, and you certainly don't download at full speed instead of having to download piece-by-piece from other people.
No sirree, that doesn't exist at all. It's just a bunch of people talking about Veronica Mars. (Or whatever the hot new show is...Torchwood maybe?)
If corporations are people, aren't stockholders guilty of slavery?
You've also never written a line of commercial software in your life. So shut up.
Which ones? Anything we might remember? The C64 port of the DOS game (Mumble mumble mumble...)
If a job's not worth doing, it's not worth doing right.
From the aticle: "After DK shipped, a cow-orker of mine got a copy of the source listing" So how do you ork a cow?
Indeed, had the original poster done some research, Atari employed Jobs who in turn outsourced work to Woz.
ahhhh....the good old days of split archives and parity files, and hoping that enough of the chunks made it to your ISP's server for you to get the file!
It is pitch black. You are likely to be eaten by a grue.
You DO know that Bill was a programmer, wrote for the Altair, and had a reputation for writing tight code, right?
Stating on Slashdot that I like cheese since 1997.
Yes, just because Bill became rich selling bloated code doesn't mean he likes bloat.
All his computing needs are covered by his x86_64 PC. The whole OS(MS-BASIC 64, written by himself in long-mode assembly) fits in 16kb, and he has never used more than 640kb of RAM.
He never uses Windows as evidenced in the Windows 98 presentation.
10 little-endian boys went out to dine, a big-endian carp ate one, and then there were -246.
I've done most of the stuff mentioned in that article so it was fun to read, but a bit light on horrific details.
I remember well the hundreds of pages of assembly language with no comments, the overloaded "server" machines which would grind for an hour if everybody hit "assemble" at the same time, RS232 downloads to the target machine, etc.
Crappy license deals, the "need something, anything, by next week" deadlines which meant that most games were much worse than they could have been, all standard fare in those days.
No sig today...
The only code I wrote that got in to the wild was some disk based copy protection. I wrote the loader using an interpreted C compiler (Deep Blue C), and some 6502 code - stored in duplicate sectors on a certain track. For example, track 5 would contain two sectors 7s, one sector 7 with valid 6502 code, the other with bogus code. The only way to read in the correct sector 7 was by reading the track sectors in reverse sequence, something no disk copy program would do, but the Deep Blue C code did (the code took advantage of the order in which sectors on a track were placed so as to optimize read times). The 6502 code was the loader (and de-mangler) for the rest of the program.
Of course, if I knew then what I know now, I'd have written Tetris and retired...
IBM doesn't play chess with the Universe.
Out of curiosity, what's your professional historian guy focus? Is it a geek-related thing, thus making you the kind of person who would read Slashdot? Or is it something else entirely, but you happen to be a computer geek on the side? Personally, I'm majoring in psychology so that would make something me akin to your "something else entirely" possibility.
(Posting AC due to overzealous moderators)
Something entirely different, usually involving los of Latin. Of course, the 'geek approach' is essential to understanding any sort of technology, including really old books. Determining how people approached and used expressive technology is the first step to understanding what they say and why they say it that way. Many just assume the tech gets used the same way.
Second hit on Google gives me:
Third hit on Google gives me:
Dude, I don't mean to be a dick, but... are you sure about this?
There's no central Usenet server. If you post an article to your own server, then it sends it off to a few more servers, who in turn send it to more, etc. So it's peer to peer in that sense. In the sense of how users get the news from their local server, though, it's client-server. (If you can say such a thing ... on some systems, you don't actually make a network connection to a server to read your news, you just read articles stored on your local filesystem.)
Actually Donkey Kong is quite an impressive piece of code
http://www.youtube.com/watch?v=nWYikZAnuYE
You can see the XOR sprites he mentions too. XOR sprites are drawn or erased by the same operation, which makes them faster than masking and repainting. So long as you draw and erase in the opposite order it all works out. The downside is a nasty glitch when two sprites clash or they cross something on the background. Which you can actually see in the video.
All of which reminds me of a demo I once saw. There was an Atari with a Prestel cartridge. Prestel used the Teletext graphics standard, 40*24 text in 8 colors - all the combinations of R G B, freely choosable for background and foreground. The Atari was displaying what looked like Mode 0 text, 40x24. But that was normally only two color. Here they had 8 colors but it was a bit flickery, though better than you would get by interlacing mode 0 text with a graphics mode. Never did figure out how they did it. The lead to the TV came out of the back of the Atari, so they didn't have extra hardware. Clearly they were doing something very clever on the fly to get the colorization though, like abusing the hardware sprites. But there were only 5 hardware sprites in one colour each. I never did figure out how it could have worked.
echo -e 'global _start\n _start:\n mov eax, 2\n int 80h\n jmp _start' > a.asm; nasm a.asm -f elf; ld a.o -o a;
@kabdib: firmware engineers do it every day, and... some of them are ex-game developers, as you well know. Your stuff rocks, I'm both pleased and sorry to see you slashdotted. I'm glad to see a wider audience picking up your musings.