Jump to content
IGNORED

I'm FINALLY learning assembly!


MantaNZ

Recommended Posts

Okay, I've tried a few times in the past and failed but I finally have my head around how asm works (thanks to studying computer science and touching on it at uni) and I found a Udemy course on how to program in assembly by making a 2600 game - seems pretty good, so far though I don't assume it will get into super advanced techniques. I'm just stoked there is a course like this available in 2020 (and I've actually learnt new stuff in areas I thought I had covered). Now it's not my chosen console but it's a good place to start as many other systems have some sort of 6502 within. I reckon the limitations of the system will make things very interesting and fun!

 

So yeah, I'm just gonna mess about making a few silly small games and demos and I'll be sure to show them off here and drop by for advice :D

 

Wish me luck!

Edited by MantaNZ
  • Like 4
Link to comment
Share on other sites

4 hours ago, Mikebloke said:

Fellow "I learnt assembly on udemy" here! Good luck with your projects! 

Oh cool. Same course or one of the x86 asm courses? Or are there other 'retro' CPU asm courses on there I missed?

4 hours ago, JeffJetton said:

Awesome! Congrats and good luck!

Thanks! It's super interesting hardware. The way things are drawn is totally different from anything I've worked on before. It's really fun :) I think it will even help with might higher level language stuff.

Edited by MantaNZ
Link to comment
Share on other sites

24 minutes ago, Mikebloke said:

Probably the same one! Its by Gustavo.

Yup, same one :) I just made the 'rainbow'.

 

I feel there are a few things that aren't quite explained (or possible I missed them as I have the attention span of a gnat) - like he talks about using # to denote a literal value and $ to denote hex but there's no explaination about #$ - I assumed $FF on its own would be an address and #$FF would be a literal hex value and I was right but I could see people who'd never touched on coding before getting very stuck in a few areas.

 

He also uses a few higher level language examples that people simply wouldn't understand if they hadn't coded before and doesn't explain them (like != and ==). It's fine for me but the course is supposed to be for total beginners.

 

Also, we draw 192 scanlines but only half of that are 'painted' - 96 lines of colour fill the screen. I googled this and found it's what's known as a two line kernel, so an explanation of that would be nice - I was scratching my head, looking at the code and wondering why if I'm looping over something 192 times, I only see 96 lines. As I said before though, it's quite likely I just missed said explanations! LOL.

 

I also wish the slides etc. were available as a download for future reference, but other than these points it's a pretty solid course and I'm stoked it exists.

Edited by MantaNZ
Link to comment
Share on other sites

1 minute ago, MantaNZ said:

Yup, same one :) I just made the 'rainbow'.

 

I feel there are a few things that aren't quite explained (or possible I missed them as I have the attention span of a gnat) - like he talks about using # to denote a literal value and $ to denote hex but there's no explaination about #$ - I assumed $FF on its own would be an address and #$FF would be a literal hex value and I was right but I could see people who'd never touched on coding before getting very stuck in a few areas. He also uses a few higher level language examples that people simply wouldn't understand if they hadn't coded before and doesn't explain them (like != and ==). It's fine for me but the course is supposed to be for total beginners. As I said before though, it's quite likely I just missed said explanations! LOL. I also wish the slides etc. were available as a download for future reference, but other than these points it's a pretty solid course and I'm stoked it exists.

No I don't think that is just you, though he does do a good job of explaining some concepts, I do believe he glossed over some details which if you've programmed in anything else before you might not even notice. I've got through the whole thing now, I think it abruptly ends as there is no videos directly on missiles specifically but a lot of the concepts are explained by that point. I'm glad I paid for it, its been incredibly helpful.

  • Like 1
Link to comment
Share on other sites

6 minutes ago, Mikebloke said:

No I don't think that is just you, though he does do a good job of explaining some concepts, I do believe he glossed over some details which if you've programmed in anything else before you might not even notice. I've got through the whole thing now, I think it abruptly ends as there is no videos directly on missiles specifically but a lot of the concepts are explained by that point. I'm glad I paid for it, its been incredibly helpful.

Awesome :) I look forward to finishing it. TBH I'm using it as a stepping stone to get into C64 development, then I'll pick up 68k asm and get back into Mega Drive dev. I've done some stuff on the Mega Drive in C but I really prefer the idea of asm. I like to know what's going on under the hood.

 

But yeah this course has actually got me thinking about making an absolute beginner's course for C programming. Now, I'm no C master - far from it - but I more than know the basics and as someone who struggled for a LONG time to get to grips with programming I think I could really help other people like myself. So many 'beginner's courses' seem to be very difficult unless the beginner is a natural. So I was thinking a total noob friendly course that introduces variables and maybe moves no further than for loops (hard to believe I struggled with them at one point) so people would be able to then move onto other 'beginner' courses.

Edited by MantaNZ
Link to comment
Share on other sites

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!

Edited by JeffJetton
  • Like 2
Link to comment
Share on other sites

1 minute ago, JeffJetton said:

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!)

Cool, will check it out :)

Link to comment
Share on other sites

8 minutes ago, JeffJetton said:

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

 

 

Good stuff. Very readable, and solid.

I would encourage you to continue, and others to read this too.

  • Thanks 1
Link to comment
Share on other sites

On 1/6/2020 at 1:59 PM, MantaNZ said:

Also, we draw 192 scanlines but only half of that are 'painted' - 96 lines of colour fill the screen. I googled this and found it's what's known as a two line kernel, so an explanation of that would be nice - I was scratching my head, looking at the code and wondering why if I'm looping over something 192 times, I only see 96 lines. As I said before though, it's quite likely I just missed said explanations! LOL.

 

If that's the typical rainbow screen, something along these lines:

   ldy #192
kernel:
   sta WSYNC
   sty COLUBK
   dey
   bne kernel

 

then that's not a two line kernel. What you'r actually seeing is that the color palette on the 2600 ignores bit 0, so each color is repeated for 2 values. If you check a TIA Color Chart:

 

645479509_ScreenShot2020-01-11at2_25_11PM.thumb.png.759e140d65b069d21db935e6f2c847d2.png

 

the top row is the high-nybble of the color value, while the the left column is the low-nybble.  So colors $86 and $87 are the exact same shade of blue.

 

In a two line kernel certain things are updated on one scanline and other things are updated on the other.  I cover that in Part 4 of my Collect tutorial.

 

 

 

Link to comment
Share on other sites

22 hours ago, SpiceWare said:

 

If that's the typical rainbow screen, something along these lines:


   ldy #192
kernel:
   sta WSYNC
   sty COLUBK
   dey
   bne kernel

 

then that's not a two line kernel. What you'r actually seeing is that the color palette on the 2600 ignores bit 0, so each color is repeated for 2 values. If you check a TIA Color Chart:

 

645479509_ScreenShot2020-01-11at2_25_11PM.thumb.png.759e140d65b069d21db935e6f2c847d2.png

 

the top row is the high-nybble of the color value, while the the left column is the low-nybble.  So colors $86 and $87 are the exact same shade of blue.

 

In a two line kernel certain things are updated on one scanline and other things are updated on the other.  I cover that in Part 4 of my Collect tutorial.

 

 

 

Oh, right, I think I get ya. So to get single lines of colour I’d just decrement by 2?
 

Thanks for the info!

Edited by MantaNZ
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...