Page 1 of 1

Hello from a newbie

Posted: Thu Oct 17, 2019 3:18 pm
by RetrogamerRhys
Hello I am new to Assembley language, I had a vic 20, spectrum 48k and Atari ST growing up but I'm really interested in game programming and I have a C64 mini which I'd like to program. I have dabbled with Python and C# but would love to be able to code for the C64 the NES and Snes I'm hoping that someone will point me in the right direction.Thanks.

Re: Hello from a newbie

Posted: Sat Oct 19, 2019 9:56 pm
by akuyou
Welcome to the forum, It certainly sounds like you've quite a variety of experience with these retro systems!..

I'm actually covering ALL those, even the VIC-20!

the C64, NES and SNES are all basically 6502, you can find my tutorials at the links below, I've covered a variety of things on them so far, but I'll be starting the 'Super Simple' series soon, which are designed to be as easy as possible for beginners.

C64:
https://www.youtube.com/watch?v=MrJEBVC ... xpR9C_idpM

SNES:
https://www.youtube.com/watch?v=yBLwjYF ... mHezHaEUsK

NES:
https://www.youtube.com/watch?v=kG2RobA ... cIvofS06RN

Re: Hello from a newbie

Posted: Fri Oct 25, 2019 9:49 am
by RetrogamerRhys
Im a bit stuck when It comes to Addressing Modes, these seem to be the first things you learn about on the 6502 outside basic binary and hexidecimal, im sure watching your videos will help. What is the zero page for example, indirect mode and absolute mode?Thanks

Re: Hello from a newbie

Posted: Sun Oct 27, 2019 8:30 am
by akuyou
Yes, I struggled too... I've made a text lesson and a video, linked below
https://www.chibiakumas.com/6502/#Lesson2
https://youtu.be/nOPI0Xbj_Yc

The best thing I can suggest though is to just try things for yourself, use the sample in Lesson 2, with the memdump and register monitor to see what the commands are actually doing...

I think of the Zeropage as a set of 'z80 registers' (Actually the TMS-9900 literally does this)...

I give the zero page addresses names eg:

Code: Select all

z_HL equ $20
z_L  equ $20
z_H  equ $20+1
If I want to increment the value of my 'z_L' 'Register' (actually a zero page entry) I just do

Code: Select all

INC z_L
Now, suppose I want to set my HL zeropage pair to the address of $2000... I can do it in two parts...

Code: Select all

	lda #>$2000 ;Top byte
	sta z_h
	lda #<$2000 ;Bottom byte
	sta z_l
Indirect addressing Is where I use an address in the zeropage... for example after the last command:

Code: Select all

	ldy #0
	lda (z_HL),y
Because it's 'indirect' it Will load A from the address in the z_HL zero page entry ($20 and $21 as a 16 bit address)... we just set that to $2000 - so the effect is we just loaded A from address $2000


Really, you're going to have to read over a tutorial on it a few times, either mine or someone elses... it took me weeks to get my head around it

Re: Hello from a newbie

Posted: Sun Oct 27, 2019 4:04 pm
by Kitsune Mifune
Welcome to the forum. I'm new here myself, but so far it's the best place I've found for learning about programming.