Jump to content


  • Content Count

  • Joined

  • Last visited

Community Reputation

31 Excellent

About JeffJetton

  • Rank
    Star Raider

Contact / Social Media

Profile Information

  • Gender
  • Location
    Nashville, TN
  • Interests
  • Currently Playing
  1. As an aside, I've been digging into the memory map lately and found it interesting that, internally, the 6507 is actually "looking" for the stack in page one (from $01FF down to $0100). That's baked into the design of the 6502 (and therefore the 6507 too) and cannot be changed. However address line A8 is not hooked up to the RIOT chip. So any attempt by the 6507 to read or write to anything in page one will have exactly the same effect as reading and writing to page zero (and the other way around). For example, when the 6507 tries to push a value onto the stack at $01FF (binary 0000 0001 1111 1111) the RIOT sees it as being no different from pushing it onto $00FF (binary 0000 0000 1111 1111), since the underlined bit is irrelevant. Lines A10 and A11 are ignored by the RIOT in the same way, incidentally. So the 6507 could also access that same stack location at $0DFF (binary 0000 1101 1111 1111) or $08FF (binary 0000 1000 1111 1111), and so on. And, of course, lines A13-A15 don't even come out of the chip in the first place, although the 6507 doesn't "know" that. So that same byte will also be accessible at, for example, $E5FF (binary 1110 0101 1111 1111), etc. That's 6 out of 16 bits that flat-out don't matter when you're accessing RIOT RAM!
  2. Using "Go" to write an "Atari" emulator? How appropriate! 😎
  3. Oh, just saw that you're putting in issues. Thanks, Andrew! I'll work on making those tweaks. I really appreciate it!
  4. Thanks! Yeah, sorry. That's supposed to link to the "documentation" for the code, which doesn't exist yet. 😞
  5. Hey MantaNZ, you might want to check out my beginning Atari programming notes that I've been (slowly) putting together. Actually, I'd really appreciate your feedback--I could use some guinea pigs! https://github.com/JeffJetton/atari-examples Still very much work-in-progress. I'm rethinking some of the later stuff, but I think the first section is pretty solid. It's coming from the same angle as your C beginner's course idea. It's at the super-noob level* and explains a lot of the things that puzzled me early on but seem to get glossed over in a lot of other tutorials. It goes very slowly. (I'm certainly not an Atari assembly programming master myself, which I think actually helps!) * Well, it does relate some things to higher-level programming concepts, and I don't really explain how binary and hex number systems work. But other than that, it's pretty noob-friendly!
  6. Other options include A) adding an incdir instruction before your includes to specify the directory all your include files are in, or B) specifying the include directory at compile-time using the -I option. But yeah, it's probably easier to just copy the files over. They're small. 🙂
  7. Wait... so the sprite data is all interleaved together? Seems needlessly complicated... Is there any advantage to doing it that way? I guess the offset of a number's sprite (from the beginning of the sprite data) would actually equal that very number, which might possibly be useful. Any other good reason for it?
  8. Okay, I'm not actually writing an Atari 2600 program in Python as much as using Python to build a binary file of machine code instructions from hardcoded hex values. Nothing really revolutionary about it, but I saw Ben Eater do something similar in a video (he flashed an EEPROM with a Python-created file of 6502 code) and thought it might be fun to do the same sort of thing. Reminded me a bit of when I was a kid and would try to write machine code on my Timex-Sinclair 1000 by POKEing bytes into memory using BASIC. 🙂 Here it is: https://github.com/JeffJetton/cart-maker - Jeff
  9. It's been a looooong wait, but part II is finally up! 🎉 In this one, he hooks the 6502 up to an EEPROM so it can actually execute a real sequence of instructions, and later adds another chip (a cousin of the Atari's RIOT, in turns out) to latch output data: https://www.youtube.com/watch?v=yl8vPW5hydQ I find this stuff really interesting, and it's giving me more insight on how the 2600 works.
  10. Some of you might be familiar with Ben Eater. He famously posted a series of videos in which he built a basic, 8-bit computer from scratch using TTL components on a bunch of breadboards, clearly explaining the reasoning behind every step. (And when I say "from scratch", I mean he cobbled together the clock, the registers, the ALU... the whole shebang!) Well now he's building a 6502-based computer. Not quite as far down to the bare metal as the previous project, I'd imagine, since he's using a microprocessor chip this time. But I suspect we'll wind up with more useful device when it's all done. The first video in the series came out a few days ago, and it's fantastic: (Most of us here will be able to guess why he used $EA for his data input value before he reveals the answer, of course. 🙂 )
  11. I believe it does not also. A strike gives you ten points, plus the score of your next two balls. It has nothing to do with the score in the next frame, per se. https://slocums.homestead.com/gamescore.html And yeah, I guess you would need to use some sort of array. Put a special "placeholder" in a location for strikes and spares. After each ball, scan for placeholders and update any that you now have enough throws to calculate a value for. I was thinking you could use the stack, but that's a LIFO data structure, and bowling score placeholders are FIFO. 🙂 Disclaimer: I am not much of a bowler. And the last time I bowled, it was candlepin bowling, which is a whole 'nother kettle of fish...
  12. Yeah, it's like something aliens would say while trying to pass themselves off as human: Disguised Alien: "Hello! Would you like to join me, a perfectly normal human person, in competitive pursuits on the electronic display screen?" Skeptical Invitee: "Uh, like, video games? Yeah, I guess. What sort of console do you have?" Disguised Alien (beginning to panic): "It is... a... uh... Atari type video system!"
  • Create New...