Jump to content


  • Content Count

  • Joined

  • Last visited

Community Reputation

40 Excellent

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Ah right, I was thinking of .byte when I read it and didn't notice it, the same as you All I knew was that when I stepped through it I could see that that's what was happening so I figured it must be that it was in the middle, based on the coding practices of other stuff I've looked at (I haven't been doing cc65 assembly for long).
  2. I don't think you can declare variables in the middle of your code like that, at least not with cc65, unless you use segments. The "PrDec16Tens" and "pad" declarations should be at the end. From what I can tell, when pad is written to, it's overwriting the first command of PrHex8, changing it from PHA to "BMI $8fd". Therefore, when you PLA later on the stack gets screwed up. If you move those declarations to the end it works.
  3. It's the monitor's job to add a border or scale or do whatever, not the device sending the signal. Being able to fine tune the X and Y size isn't very common on modern monitors, usually they'll try to adjust it automatically. On my monitor, for instance, it has the option to add black borders on the left and right for non-native aspect ratios, but not on the top and bottom. So it will automatically scale to fit vertically. And since my Y resolution isn't a multiple of 480 (it's 1080), it would probably look blurry. Like Cyber said though, for really high resolutions like 4k or 8k, this isn't as much of an issue.
  4. I used WSL to do it. That way you can do it the usual Linux way. Unfortunately it was a while ago so I forget all the steps I took. Looking at this page though, I'm pretty sure this is basically what I did (note that you need WSL2 to mount loop devices). Hope it helps: https://web2.clarkson.edu/projects/itl/honeypot/ddtutorial.txt
  5. If you've compiled the rom, it creates .sym files in "build/x16" for each module that has all the labels and their addresses. So if you look in "build/x16/basic.sym" there's one for strout.
  6. Oh cool, well if you already have an example of how to use it, then it's worth a try. You'd just change the definition of STROUT to $CD52, and make sure to change the ROM bank to 4 first.
  7. Well, if the address is a spot within the BASIC code, then it's not a vector kernal routine, therefore something not meant to be used by the user. That said, it looks like it's $CD52 on bank 4 on the X16 (in the source code it's in basic/code7.s). You can play around with it if you want, but it probably requires a very specific setup to actually use it.
  8. From what I can tell, CHROUT and BSOUT are simply two different names for the same function. Some references call it BSOUT, some CHROUT. I'm not sure what "STROUT" is. Kernal routines start with "FF" and on the X16 $AB1E would be in RAM, so no code would be there unless your program put something there. For the other question, it looks like BASIC GET does a lot of things, but when I skimmed it looking for a kernal call, it seems that it calls GETIN, which simply removes and returns a character from the keyboard queue.
  9. The behavior of ramtas, which is what initializes memory and detects the number of banks and reports the total memory at bootup, seems to rely on it working this way. If it doesn't work on actual hardware, wouldn't they have seen it in their testing?
  10. If I'm not mistaken, I think in those examples, something like "{CLR/HOME}" is supposed to be replaced with pressing the "CLR/HOME" key, not actually typing out "{CLR/HOME}"
  11. Probably the game I played the most on my C64/128 when I was a kid was "Super Mario" which was actually just a reskinned Great Giana Sisters. I had no idea it wasn't actually Super Mario back then haha.
  12. My collection isn't very big. My interest in retro things started when I was a kid with a C64, which my uncle gave to me. He later took it back and gave me a C128, which I still have in storage, along with a floppy disk drive and a monitor for it, and tons of books. It hasn't been turned on in like 15 years so I don't know if it still works. I really need to set it up again and see if it still works. If we're mentioning old video game consoles then I have: Sega Gamegear Sega Genesis PS1 PS2 Xbox original N64 Gamecube Gameboy Color We also have an Intellivison in storage somewhere that also hasn't been turned on in a long time, so who knows if that still works.
  13. Good question. I just tested it with starting the emulator with "-ram 2048" and yeah, it looks like it returns 0.
  14. This is with R38 right after returning from $ff99. You can see that $40 is in A.
  15. In what way? I just tested it and it seems to work for me.
  • Create New...

Important Information

Please review our Terms of Use