Jump to content


  • Posts

  • Joined

  • Last visited

  • Days Won


Everything posted by SlithyMatt

  1. I'm going to say, not Java. I don't think anything is going to fit this particular bill. The educational benefit of the X16 is not going to be that direct. It's about being able to understand a complete system and work around limitations. That kind of learning is far more valuable that training up to be a Python code monkey, which you could do with a Raspberry Pi or literally any cheap modern computer that the X16 can't really compete with on performance/price ratio, or even price alone.
  2. MB is the mouse button state: https://github.com/commanderx16/x16-docs/blob/master/Commander X16 Programmer's Reference Guide.md#mxmymb
  3. I've got this waiting in storage:
  4. It's not so. You specify the tile map dimensions in the layer config, so it will stay constrained to that area. So, if you have a 64x32 tile map, and only 40x30 are visible, then you have a 14-tile horizontal margin and a 2-tile vertical margin that you can modify while they are off screen.
  5. Actually, you can scroll forever. So, you only need to fill in where you are scrolling to. It's like a circular buffer, and you just have a sliding window.
  6. There will be a standard 1/8" stereo jack (to the right of the SNES controller ports):
  7. New vlog: I play an existing Puzzle Bobble adaptation, and how it differs from and has influenced my game.
  8. The problem with that is that you no longer have the ability to load files with headers to arbitrary addresses. Using the flag we already have for LOAD (like @ZeroByte said) would break fewer things and be more in line with how the original CBM Kernal works.
  9. There is a "Dev Tools" section
  10. Thanks, @Elektron72, that was my point. 100% assembly is not for everybody, but until cc65 for the X16 is more mature, you need to be careful what you use C for. You can still make a program that's mostly in C, but still with some assembly to hold it together. What would be nice if somebody made a C application framework for cc65 that did things like set up interrupts and let you register callback functions. Then you could focus your C code on the particular processing of your app and not have to deal with boilerplate stuff, and then only inject assembly where it suits your app's particular needs, if at all.
  11. New video on YouTube (tangential mention of the X16, but about the history of computers, gaming, and their marketing in general):
  12. No idea without seeing the difference in assembly output. It seems like cc65 does some weird things while it tries to work around the limitations of the 6502. Again, it's why I would not use C for low-level stuff like interrupt handling. Keep it confined to algorithms that can be called from assembly when the state is appropriate. If you have to twist yourself up in knots to make C generate the assembly you're looking for, then you should just write the assembly and be done with it.
  13. Those are both indications that the default IRQ handler isn't running. Seems like it would be easier to have your whole interrupt handling code in assembly, then you could have C functions that you jump to for certain cases.
  14. What's the JMP $E049 for at the end? You should jump to (default_irq_vector) unless you are going to do the early exit.
  15. No worries! Using the new 65C02 instructions is entirely optional, and it is completely backwards compatible with 6502 assembly and machine language. BUT, I would HIGHLY recommend looking into the new instructions, as they can make some significant performance gains and save program code size.
  16. This only applies when you are POKE-ing the address register at $9F22, not when using VPOKE. You can't take advantage of strides when using VPOKE - you have to specify an address every time.
  17. There used to be a bank $F (15) where the registers used to be mapped, before they got mapped to CPU RAM. But now only 0 and 1 are valid now, as the VRAM addressing is now only 17-bit.
  18. This video announces my newest game: It's still in the very early stages of development, and not playable yet, but I'll be making videos about this as the game progresses.
  19. I would recommend assembly. BASIC is extremely limited, especially when you have to use line numbering and 2-letter variable names, not to mention extremely slow. Good news is that the X16 is an ideal platform for learning assembly, as I have laid out in my tutorial series on YouTube:
  20. Problem is, there's nothing to connect those terminals to. Unix was built as a terminal-based OS, with support for multiple terminal sessions and proper multi-tasking. So the first question really is, can we have such an OS for the X16? Some may think the answer is "yes" when they see something like GeckOS: https://github.com/fachat/GeckOS-V2
  21. My personal catchphrase
  22. What byte, exactly? How does it know? You've been given a pretty thorough explanation of how it is actually more complicated. What you are asking for requires another set of control registers, and that's simply not possible. If you think it is easy, please show your work. ROM code, VHDL, the whole deal, and then you can roll your own VERA module and ROM image because the fact is that the dev team is not changing this. It is what it is. I think it's time to drop this fruitless conversation.
  23. You need to read the VERA ISR register. I have a video about the basics of interrupts here: Then I have a video on how to manage LINE and VSYNC interrupts here:
  • Create New...

Important Information

Please review our Terms of Use