Комментарии:
This is a cool tutorial! I discovered that if you don't disable CIA timer interrupts, are selective about only calling the play routine on raster interrupts, and you jump to the standard IRQ handler afterwards, you can have the music playing in the background while running a BASIC program (you do need to alter top of BASIC so it doesn't clobber your ML routine though).
ОтветитьVery informative video!. How can you play 2x speed SID files though?
ОтветитьShouldn't SEI enable interrupts and CLI disable or is it inverted on 6510 in contrast to Arduino?
ОтветитьGreat tutorial!
Imagine if we had had this kind of info plus these tools when the C64 came out.
There would probably have been way more games available for it, not that I'm complaining.
On second thought, the potential game developers would probably have skipped the C64 and gone straight to Intel Core i7 with the graphics cards that are available now 😊.
been looking all over just trying to figure out how to play a sid on windows 10, so thank you for the reference to Sidplay ^_^
ОтветитьExcellent clear demonstration on something i’ve struggled with for some time… thanks!
ОтветитьFantastic video!
ОтветитьI wish you did more commodore tutorials - certainly regarding graphics (sprites), etc
ОтветитьThanks for these C=64 programming tutorials. When I was a kid, I wasn't able to wrap my head around the c64 assembler, but it seems so much easier now.
ОтветитьUnfortunately raster interrupt was no BASIC feature, Bill (Gates). Imagine how cool an interrupt command would've been to jump to a certain BASIC line like this command line:
10 IRQJUMP 142,30000: REM JUMP TO LINE 30000 UPON RASTER LINE 142
20 ... SOME CODE ...
30 ... SOME CODE ...
...
...
30000 REM RASTER IRQ SUBROUTINE
30010 ...SOME SOUND COMMANDS...
30020 ...SOME MORE COMMANDS...
30030 ...
...
30100 RETURN: GO BACK TO WHERE YOU CAME FROM
Awesome! This actually helped me fix a random raster interrupt crash in my sprite multiplexer that i was getting in a game i'm working on. It was driving me crazy!
In my code i changed
asl $D019 to inc $D019
and also added the
lda #$7f
and $D011
sta $D011
part before changing $D012.
Now it is working like a charm :)
Thanks for the video! :)
Great tutorial! I just love the c64! As a kid there was a lot I never understood fully when it comes to assembly, but it makes more sense now , almost 40 years later 😀
Ответитьany chance we'll get more of these? theyre amazing tutorials and its been fun to follow along
ОтветитьI really enjoyed your little 101-asm-bootcamp. I worked through 3 others (that are much longer) before and yours is by far the best. You are a natural talent to teach stuff! Please continue the series.
Ответитьthis a fantastic tutorial, I hope you will go on with this series as it is one of the best I could ever find!
Ответитьwhat are those addresses $0314 and $0315 ? Who defined these addresses to have anything to do with "raster lines" ?! It aint any VIC2 nor CIA/VIA (hardware) registers. So whats happening there and why (or of whom).
ОтветитьYou are TALENTED for these programming tutorials. Thanks for providing these precious info!
ОтветитьThat raster interrupt setting macro is a killer gem! Thank you for sharing.
ОтветитьVery good step by step explanation how to use sid files from assembly. Thx 😃
ОтветитьIt's worth mentioning that there are several different types of interrupts supported on the C64 in addition to raster ones. The system timer, keyboard and user port can also generate interrupts that your program can respond to, though for game programmers raster interrupts will be the main one you'd use. I believe the 1541 can also cause interrupts, but that may be limited to its own internal memory and processes. Not 100% sure on that though.
On the SID playing, I wonder how much trouble it would be to write a small program that uses those SID properties to analyze the SID file and change all of the absolute jumps to a new address of your choosing (but still maintaining the relative jump distances from the original) in case the default location is incompatible with your code. For example, maybe your main code is larger than expected and the default loading location is inside your code space, or you just need to move it for some other reason. [edit: Whoops! I guess I should have watched the whole video before commenting! LOL]
[Also, if possible, always try to get the permission of the SID author before using it in your own program. They will almost always say yes as long as you give them the proper credit in the game credits.]
Great explanation. Thanks
ОтветитьGreat video, so good. I have tried to add this example to my code but it isn't allowing me to enter the loop that looks for a keypress. I entered the loop where it says to do this, and the code has largely been untouched from your example. Not sure what I am doing wrong. HELP!
ОтветитьVery cool thanks! I haven't looked at the code for SID music...but is it pretty much accepted that there's a standard optimised way of paying music and all SID files use same method? Or does it vary from file to file?
ОтветитьReally nice explained thank you!!. What about to fade down the volumen of the sid? it's that possible?
Ответитьexcellent work
ОтветитьCould you please make a video on the movement of the sprites at the start of Episode 3? I am trying to make a loop to move my sprites in a cool way, but get stuck when trying to figure out the loop structure.
Would love to see the code you wrote for that movement if you could share it also.
Nice!
ОтветитьNow we just need to see how to bring a sprite over from the petscii web app (by itself) and move it around with a joystick ;) I love your tutorials!
ОтветитьLots of good useful info. Good job!
Thanks for the links in the description, not everyone does that...
Cheers,
Thank you, I have been looking forward to another episode on programming the C64. This is the clearest explanation I have seen on programming raster interrupts and with the examples you provided it is really easy to understand. I also like the explanation of the term "endian" I had no idea it was from a famous book publication. Excellent stuff, I am looking forward to the next episode when you have time to make it. Thanks again ;)
ОтветитьThank you so much for this video. This is the best explanation I have ever seen about raster interrupts. Finally I understand how it works.
Ответить