Jump to content
IGNORED

Recommended cpu architecture and platform for beginners?


luciddefender

Recommended Posts

Pong would be a bit less complicated that an ASCII engine.

I just listed a couple programming assignments from the assembly class I took.

 

Pong allowed you to vary the angle and speed of the ball based on how fast you turned the paddle controller when the ball hit.

I'm thinking printing a few characters to the screen has to be easier and you could make a ROM call.

Edited by JamesD
Link to comment
Share on other sites

Pong would be a bit less complicated that an ASCII engine.

I just listed a couple programming assignments from the assembly class I took.

 

Pong allowed you to vary the angle and speed of the ball based on how fast you turned the paddle controller when the ball hit.

I'm thinking printing a few characters to the screen has to be easier and you could make a ROM call.

 

Easier is good but you wont learn much simply calling a subroutine. The first project should give you more to

do than a simple call. 'Hello World' is great for C and high level stuff, but you are in a much different jungle in

assembly. Just use batari basic or basic if that is all you want to do.

 

My idea was to stay away from ROM calls and figure out how the ROM calls actually work. Calling a subroutine

hardly advances your assembly language knowledge beyond novice. There are no 'printf' similar calls in a C64

or VIC-20, which is the machine he says he intends to use.

 

Pong will actually teach you more about assembly than calling a char display routine in a loop. It will also force

you to learn how to display something on the screen as would the 'hello world' would.

Link to comment
Share on other sites

Gorf, check the original post.

 

To preface this discussion, I have very limited amounts of programming experience. Some BASIC years ago, and only a very little bit of C.

 

I would imagine for a beginner, developing on a platform with a decent amount of BIOS routines would be helpful as well. Also, a platform is easy to learn, yet difficult to master to keep it interesting would be ideal as well.

 

For someone without much experience, something as simple as printing characters to the screen is a good start. It's short enough that they get quick feedback. It's small enough that it should be easy to figure out if a problem is with the tools or the program. After that, make each project larger and more complex. Draw something static on the screen. Then move something across the screen. Write a program that uses the sound chip to make some music. That sort of thing.

 

There is nothing wrong with Pong except it's a bit of a leap for someone that may not fully understand what index registers are, what the accumulator is, what the condition code register does, how the stack works, etc.

If you want to start you with Pong, break it up into pieces and gradually put it all together. Write a routine that draws the paddle on the screen at a given location. Then add the code to read input and move the paddle. Add the code to draw the borders. Write the code to make the sound of the ball bouncing off of an object.

 

I suggested breakout because it's single player and easier to test by yourself. There are also games that don't require a lot of animation but you would learn a lot. Convert a BASIC board game such as checkers, Othello, or whatever to assembly. Then try to improve on the logic of the computer opponent. Add a nice front end to Micro Chess. Whatever.

 

There are lots of projects, that would be good, just don't take on something so big before you have a basic understanding of assembly, the tools, and the CPU.

Link to comment
Share on other sites

Gorf, check the original post.

 

To preface this discussion, I have very limited amounts of programming experience. Some BASIC years ago, and only a very little bit of C.

 

I would imagine for a beginner, developing on a platform with a decent amount of BIOS routines would be helpful as well. Also, a platform is easy to learn, yet difficult to master to keep it interesting would be ideal as well.

 

For someone without much experience, something as simple as printing characters to the screen is a good start. It's short enough that they get quick feedback. It's small enough that it should be easy to figure out if a problem is with the tools or the program. After that, make each project larger and more complex. Draw something static on the screen. Then move something across the screen. Write a program that uses the sound chip to make some music. That sort of thing.

 

There is nothing wrong with Pong except it's a bit of a leap for someone that may not fully understand what index registers are, what the accumulator is, what the condition code register does, how the stack works, etc.

If you want to start you with Pong, break it up into pieces and gradually put it all together. Write a routine that draws the paddle on the screen at a given location. Then add the code to read input and move the paddle. Add the code to draw the borders. Write the code to make the sound of the ball bouncing off of an object.

 

I suggested breakout because it's single player and easier to test by yourself. There are also games that don't require a lot of animation but you would learn a lot. Convert a BASIC board game such as checkers, Othello, or whatever to assembly. Then try to improve on the logic of the computer opponent. Add a nice front end to Micro Chess. Whatever.

 

There are lots of projects, that would be good, just don't take on something so big before you have a basic understanding of assembly, the tools, and the CPU.

 

 

Pong is STILL simpler than an ascii text print. You bounce a ball, check boundaries. Printing requires much more

and an understanding of ASCII code.

 

If you cant figure out what an index register is, you should not bother coding in the first place. Even the print

code would need the index registers.

Link to comment
Share on other sites

  • 2 weeks later...

I've been going through Jim Butterfield's Machine Language for the Commodore, Leo Scanlon's 6502 Software Design, and Compute!'s Machine Language for Beginners. Leo Scanlon's book is extremely well written, and my favorite of the bunch. I don't see how anyone could write a better book on the 6502.

 

It's going to be a little while before I can begin writing my own applications, but I'm certainly learning. I'm considering studying computer engineering in school, as microprocessors and digital electronics are fascinating to me.

 

Thanks for all the advice.

Link to comment
Share on other sites

I've been going through Jim Butterfield's Machine Language for the Commodore, Leo Scanlon's 6502 Software Design, and Compute!'s Machine Language for Beginners. Leo Scanlon's book is extremely well written, and my favorite of the bunch. I don't see how anyone could write a better book on the 6502.

 

It's going to be a little while before I can begin writing my own applications, but I'm certainly learning. I'm considering studying computer engineering in school, as microprocessors and digital electronics are fascinating to me.

 

Thanks for all the advice.

 

 

Why certainly! :)

Link to comment
Share on other sites

  • 2 weeks later...

Do you fellows happen to have a recommendation on a book for general software development? Something that goes through the process of building a framework, subroutines, algorithms, etc...

 

I suppose I'm looking for a book with a lot of good exercises and teaches fundamentally sound programming techniques and style.

 

Thanks.

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...