If I were to start in Assembler...

JMP $FCE2
User avatar
Shaun_B
Member
Member
Posts: 179
Joined: Tue May 06, 2014 12:12 pm
Location: UK
Contact:

Re: If I were to start in Assembler...

Post by Shaun_B » Sat May 17, 2014 8:23 pm

Prime wrote:You bring up a very good point about standards there really isn't any that I'm aware of.The c64 community is notorious for scrutinizing people's source code(I'm also guilty of this and not proud of it) which really is a shame as it's an ample reason others don't share.
I've written coding standards documents for internal use at work and people still ignore them. This was supposed to get around the problem of asking "Who wrote this method...?" etc, i.e., I stipulated that all methods and classes should have block comments with the author(s), the date of the initial version and when it was last updated as appropriate. So if this sort of thing is ignored even in a professional setting, what hope do we have in a hobbyist environment? Also, someone attempting to write a code sniffer or something would never work because the C64 scene will never agree ;-) This is why I'm not part of the C64 scene, I'm just passing though.

Regards,

Shaun.


BASIC Programming - making the mistakes so that you don't have to.
Circles and Squares.
Nothing I post here will stand up in a court of law.

satpro

Re: If I were to start in Assembler...

Post by satpro » Mon May 19, 2014 6:46 pm

Hi Metalfoot,

I saw this post the other day but at the time was so wrapped up in programming that it was hard to pull away. Okay, so you want to learn ML programming? First, that's great to hear. Second, while I agree with the suggestions about standards and design, I do have my own opinion as to the best route to learn, and it may or may not be an opinion shared by the others. You can decide for yourself.

For starters, I also believe reading books is the way to go. I read Butterfiled's book in the beginning, but it barely scratched the surface, so it wouldn't be my first choice today. It can't end with books, however. This may sound surprising, but for me ML programming didn't get off the ground until I bought the Buddy assembler and read through the manual, working out how to print a string to the screen. I still remember doing that like 30 years ago! The first time you fire up an assembler (any assembler) can be a scary experience. All the assembly language knowledge in the world won't ever change that. But since it is the tool you will be using, you should become familiar with how it works. What assembler should you use? This decision falls under the "no standards in the C= community" statute, so my advice would be to find something that will make life easy for you; an assembler with "standard" syntax and a straight-forward approach to its use. This leaves out Merlin, cc65, Kick, ACME, the GEOS assembler, and most of the others. The guys that wrote those programs, while great at programming, should have put some (a lot) more thought into the end user, someone who isn't necessarily a great programmer. How foolish does it sound when someone says his assembler is aimed at the advanced programmer? Well, a quick trip down Logic Lane will remind you that by the time someone is "advanced" enough to use your program he might not want to try something altogether new and different. It's counter-productive. As far as the C64 is concerned, there are only so many great features an assembler can possess anyway, and most of them are over-rated. Try CBM prg Studio. Not only is it powerful, but you won't be all wrapped up in learning something cryptic and confusing on TOP of learning assembly language.

Today the Internet is a great place to learn. In the 80s we had to read magazines or tear other peoples' code apart. I still remember the joy of finding out how Centipede was made, or dis-assembling and (eventually) understanding what made Buddy tick. The C64 Kernal is excellent for study because it is been so widely analyzed. Looking at code via the ML monitor is still (in my opinion) the #1 most effective way to learn how things are done. Learning ML isn't a "wall" but is more like a wave. Learning will come in pieces little by little, step by step, and there will be many of those "aha!" moments along the way. So expect it to take time. And this brings me to your first program. Please, oh please!, don't listen to advice telling you to create a demo with sprites, sound, interrupts, and joystick as your first program. Just do yourself a favor and quit right now instead. In other words, start with something you will later consider very simple -- and go from there. I'm talking about short text-printing loops or something that loads a program into memory. Maybe a colorful one-screen tribute to yourself that asks for input to confirm how great you are. :D

We're almost done. Go to DLH --> http://www.bombjack.org/commodore/ and comb the books. He has them all.

In order:
Compute's Programming the 64: The Definitive Guide (the #1 book ever)
Mapping the Commodore 64
Compute's Machine Language Routines for the Commodore 64/128
The Anatomy of the Commodore 64
What's Really Inside the Commodore 64
All Transactor and most Compute! or Compute! Gazette magazines, as well as some RUN
Compute's Toolkit: Kernal
Compute's Toolkit: BASIC
Peeks & Pokes for the Commodore 64
Trips and Tricks for the Commodre 64

There. This will get you started. As Shaun stated --> practice / As Prime stated --> be organized (and I will add methodical and consistent)

Stick with it and don't be afraid to ask when you need help with something. It's why all of us here are working so hard to make this website become a programmer's paradise. Make sure you read the books first before asking a silly question, okay? Half the fun of learning is finding the information yourself. Speaking for myself, an email or PM is a sure way to get a good answer. If I don't know the answer, I absolutely know where to find it.

Good luck,
Bert

User avatar
yaztromo
Member
Member
Posts: 292
Joined: Fri Apr 11, 2014 8:42 pm
Location: South Yorkshire, UK

Re: If I were to start in Assembler...

Post by yaztromo » Mon May 19, 2014 9:04 pm

satpro wrote: Compute's Programming the 64: The Definitive Guide (the #1 book ever)
Mapping the Commodore 64
Compute's Machine Language Routines for the Commodore 64/128
The Anatomy of the Commodore 64
What's Really Inside the Commodore 64
All Transactor and most Compute! or Compute! Gazette magazines, as well as some RUN
Compute's Toolkit: Kernal
Compute's Toolkit: BASIC
Peeks & Pokes for the Commodore 64
Trips and Tricks for the Commodre 64
Thanks for a comprehensive list.

I may have just raised bombjacks hosting bill, slightly.

satpro

Re: If I were to start in Assembler...

Post by satpro » Mon May 19, 2014 9:06 pm

I love that site! I had most of the programming books at one time, but it is so refreshing to see digital versions. Keep quite a few open on the task bar when programming.

metalfoot
Member
Member
Posts: 56
Joined: Sun Apr 13, 2014 8:22 pm
Location: Manitoba, Canada

Re: If I were to start in Assembler...

Post by metalfoot » Mon May 19, 2014 9:38 pm

satpro wrote:Hi Metalfoot,

...snip...
Today the Internet is a great place to learn. In the 80s we had to read magazines or tear other peoples' code apart. I still remember the joy of finding out how Centipede was made, or dis-assembling and (eventually) understanding what made Buddy tick. The C64 Kernal is excellent for study because it is been so widely analyzed. Looking at code via the ML monitor is still (in my opinion) the #1 most effective way to learn how things are done. Learning ML isn't a "wall" but is more like a wave. Learning will come in pieces little by little, step by step, and there will be many of those "aha!" moments along the way. So expect it to take time. And this brings me to your first program. Please, oh please!, don't listen to advice telling you to create a demo with sprites, sound, interrupts, and joystick as your first program. Just do yourself a favor and quit right now instead. In other words, start with something you will later consider very simple -- and go from there. I'm talking about short text-printing loops or something that loads a program into memory. Maybe a colorful one-screen tribute to yourself that asks for input to confirm how great you are. :D

We're almost done. Go to DLH --> http://www.bombjack.org/commodore/ and comb the books. He has them all.

In order:
Compute's Programming the 64: The Definitive Guide (the #1 book ever)
Mapping the Commodore 64
Compute's Machine Language Routines for the Commodore 64/128
The Anatomy of the Commodore 64
What's Really Inside the Commodore 64
All Transactor and most Compute! or Compute! Gazette magazines, as well as some RUN
Compute's Toolkit: Kernal
Compute's Toolkit: BASIC
Peeks & Pokes for the Commodore 64
Trips and Tricks for the Commodre 64

There. This will get you started. As Shaun stated --> practice / As Prime stated --> be organized (and I will add methodical and consistent)

Stick with it and don't be afraid to ask when you need help with something. It's why all of us here are working so hard to make this website become a programmer's paradise. Make sure you read the books first before asking a silly question, okay? Half the fun of learning is finding the information yourself. Speaking for myself, an email or PM is a sure way to get a good answer. If I don't know the answer, I absolutely know where to find it.

Good luck,
Bert
Thanks for the reply and the encouragement. And yes, I think starting with something more 'useful' might be more along my lines. I had most of your list already downloaded and have completed the collection, as it were. I will start on that list pronto. Once I'm done the dishes, anyway.
-Alex

metalfoot
Member
Member
Posts: 56
Joined: Sun Apr 13, 2014 8:22 pm
Location: Manitoba, Canada

Re: If I were to start in Assembler...

Post by metalfoot » Mon May 19, 2014 11:13 pm

And this reminds me that I actually possess a C64 book not listed on his collection. Should look into either scanning it myself or getting it off to DLH to scan.

jrubin
Member
Member
Posts: 58
Joined: Sun Jun 29, 2014 8:00 pm
Location: Florida

Re: If I were to start in Assembler...

Post by jrubin » Wed Jul 02, 2014 2:15 am

Yup, Im working through the book, i find myself reading each chapter more than once

satpro

Re: If I were to start in Assembler...

Post by satpro » Wed Jul 02, 2014 2:45 am

jrubin wrote:Yup, Im working through the book, i find myself reading each chapter more than once
That's really good! No harm occurs if you want to keep the books open on the taskbar while you work. Then you can just pull things up as you need them. Adobe files are relatively easy on computer memory.

It's amazing (or maybe it's just CRS :) ), but even though I have been working with 65x code since somewhere around 1980 or so, I still catch myself looking things up all the time. My desk looks like it, too! (That, and I have a bird that comes in through a small hole in the screen and steals my peanuts -- a peanut thief!). We call him Thiefer Sutherland, but is that ever off-topic! :D So... don't feel bad if you have to go back for a refresher on anything. With PDF files you can print specific pages in order to look at the information on real paper.

We are so fortunate DLH exists.

metalfoot
Member
Member
Posts: 56
Joined: Sun Apr 13, 2014 8:22 pm
Location: Manitoba, Canada

Re: If I were to start in Assembler...

Post by metalfoot » Wed Jul 02, 2014 6:54 pm

I'm still waiting for life to slow down a little, but I have started on the suggested reading list.

Post Reply Previous topicNext topic

Who is online

Users browsing this forum: No registered users and 1 guest