Jump to content

Photo

Tutorials


11 replies to this topic

#1 matthew180 OFFLINE  

matthew180

    River Patroller

  • 2,624 posts
  • Location:Castaic, California

Posted Sat Apr 10, 2010 11:06 PM

Excellent work! I will add a reference in the development resources thread. :)

I'd really love to see a PDF scan for Compute's Beginners guide to assembly language on the TI-99/4A.

The hard-copy of the book is pretty hard to get by now and there are close to none good beginner tutorials on TMS9900 assembly language available.


Although I'm not so impressed with the book now, it is the book that opened the door of 9900 assembly to me and made it possible for me to make working programs; so for that I will always give it due credit (and I will not give up the copy I have had since 1984.)

As for beginner tutorials, I am willing to write some (I have already started, although it is panning out to be more of a book than individual tutorials.) However, instead of trying to guess what to write, if anyone has something they would like to see in the way of a tutorial, please post it here and I (or anyone else who is interested) will try to write it up. If you plan on making a request, please be somewhat specific, since "how do I write a game in 9900 assembly" is not a tutorial.

Matthew

#2 adamantyr OFFLINE  

adamantyr

    Stargunner

  • 1,483 posts

Posted Sun Apr 11, 2010 12:08 AM

Although I'm not so impressed with the book now, it is the book that opened the door of 9900 assembly to me and made it possible for me to make working programs; so for that I will always give it due credit (and I will not give up the copy I have had since 1984.)

As for beginner tutorials, I am willing to write some (I have already started, although it is panning out to be more of a book than individual tutorials.) However, instead of trying to guess what to write, if anyone has something they would like to see in the way of a tutorial, please post it here and I (or anyone else who is interested) will try to write it up. If you plan on making a request, please be somewhat specific, since "how do I write a game in 9900 assembly" is not a tutorial.


Funny, I was just thinking it would be neat to write an actual "Guide to Writing Games in Assembly Language on the TI-99/4a". Maybe even give it a mock-up Compute! cover. :)

Adamantyr

#3 wood_jl OFFLINE  

wood_jl

    Quadrunner

  • 6,910 posts
  • Location:West TN, USA

Posted Sun Apr 11, 2010 12:37 AM

I'd like to see a tutorial on getting started with the CF7+. I have not tried yet - I'm waiting on my Extended BASIC to come. The others here have been extremely helpful, and the "CF7 Man" sent me some ZIPs. Still, this would make a nice tutorial if someone's wanting to make one.

Maybe it's not the type of tutorial you had in mind, but thought I'd throw it out there.

#4 retroclouds OFFLINE  

retroclouds

    Stargunner

  • 1,698 posts
  • Location:Germany

Posted Sun Apr 11, 2010 3:14 AM

Excellent work! I will add a reference in the development resources thread. :)

I'd really love to see a PDF scan for Compute's Beginners guide to assembly language on the TI-99/4A.

The hard-copy of the book is pretty hard to get by now and there are close to none good beginner tutorials on TMS9900 assembly language available.


Although I'm not so impressed with the book now, it is the book that opened the door of 9900 assembly to me and made it possible for me to make working programs; so for that I will always give it due credit (and I will not give up the copy I have had since 1984.)

As for beginner tutorials, I am willing to write some (I have already started, although it is panning out to be more of a book than individual tutorials.) However, instead of trying to guess what to write, if anyone has something they would like to see in the way of a tutorial, please post it here and I (or anyone else who is interested) will try to write it up. If you plan on making a request, please be somewhat specific, since "how do I write a game in 9900 assembly" is not a tutorial.

Matthew


Well reading your posts about the assembly language sound player, I'd say you have a clear, precise and interesting way to describe stuff.
I'd love to see you write a full tutorial (book) on "how do I write a game in 9900 assembly" :D

Seriously, something in the line of the Lottrup book, but updated and addressing todays' needs.
I don't think we have homebrewers who want to code using the mini memory line-by-line assembler ;)

Perhaps a tutorial focusing on coders from other retro gaming platforms (atari 2600, 7800, colecovision, ...) who
already know how to program assembler.

Here are some of the topics I can think about (in no particular order)

1. Short introduction on TMS9900 CPU (register usage, TI memory architecture) and cross-assemblers targeting the TMS9900.
2. How do I communicate with the VDP processor (VDP memory, graphic modes, SAT, color tables, pattern tables, ...)
3. How to setup sprites in assembly language, how to move them without using ISR routine.
4. Collision detection for sprites without using ISR routine.
5. How do I play a sound or tune.
6. How do I read the keyboard and joysticks
7. How to use the speech synthesizer in assembler
8. How to deal with 256 bytes of scratch pad memory
9. How to setup a game loop (or basic task scheduler)
10. Format of the cartridge header
11. What is bank-switching, how do I use it (trampoline code in scratchpad, jump tables in each bank, ...)
12. Debugging tricks, how to test using MESS debugger and classic99 debugger.
How to test on the TI-99/4A using a 8K supercart.

It would be great that, after reading the book, the future homebrewer has a good overview on how to write a (bank-switched) game running from the cartridge space :)

#5 matthew180 OFFLINE  

matthew180

    River Patroller

  • Topic Starter
  • 2,624 posts
  • Location:Castaic, California

Posted Sun Apr 11, 2010 10:31 AM

Funny, I was just thinking it would be neat to write an actual "Guide to Writing Games in Assembly Language on the TI-99/4a". Maybe even give it a mock-up Compute! cover. :)

Adamantyr


I agree, however, a book takes longer to get into people's hands than well focused tutorials. I learned long ago that getting smaller projects done and delivered is better than a uber-project that never gets completed.

The problem I started running in to with my book was that when explaining one topic, I realized I needed to provide the background for something I was talking about. It is really hard to do if you assume your reader has little to no understanding or experience with low level languages.

Matthew

#6 retroclouds OFFLINE  

retroclouds

    Stargunner

  • 1,698 posts
  • Location:Germany

Posted Sun Apr 11, 2010 10:40 AM

The problem I started running in to with my book was that when explaining one topic, I realized I needed to provide the background for something I was talking about. It is really hard to do if you assume your reader has little to no understanding or experience with low level languages.


Agree, that is why I was thinking of a tutorial for homebrewers who already have programmed assembly language on other retro systems. ;)

#7 matthew180 OFFLINE  

matthew180

    River Patroller

  • Topic Starter
  • 2,624 posts
  • Location:Castaic, California

Posted Sun Apr 11, 2010 10:41 AM

retroclouds, that is a good list and I can get started on some of those right away. I only need to know these things:

* What level of understanding should I assume the reader has?

* What level of detail do I need to go down to?

The book I started is *very* detailed and is taking a long time because of that. I think too much detail can sometimes be distracting, and the reader needs to get the intimate knowledge over time. To me, Lottrup's book sacrifices a lot of the low level stuff (even though you are still using assembly in his book), and you can get the wrong idea about what is still really going on. However, the book is not very long and the task very large, so to that I think he did very well since the title does start with "beginner's guide".

Matthew

#8 matthew180 OFFLINE  

matthew180

    River Patroller

  • Topic Starter
  • 2,624 posts
  • Location:Castaic, California

Posted Sun Apr 11, 2010 10:43 AM

I'd like to see a tutorial on getting started with the CF7+.


Well, since I don't have a CF7+ I can't write a tutorial on using it... sorry. Maybe someone who has one can step up and make some, but IMHO I think the guy making the CF7+ should write them.

Matthew

#9 retroclouds OFFLINE  

retroclouds

    Stargunner

  • 1,698 posts
  • Location:Germany

Posted Sun Apr 11, 2010 10:50 AM

retroclouds, that is a good list and I can get started on some of those right away. I only need to know these things:

* What level of understanding should I assume the reader has?

* What level of detail do I need to go down to?
Matthew


* What level of understanding should I assume the reader has?
I'd say the reader should already have some assembly language experience on other retro console/computer systems.

* What level of detail do I need to go down to?
Tough question. Perhaps it would be good to release intermediate versions of the articles and get feedback from the audience.
That way you'd get a feeling where the attention needs to go to.

Good luck! :)

#10 adamantyr OFFLINE  

adamantyr

    Stargunner

  • 1,483 posts

Posted Sun Apr 11, 2010 1:40 PM

I agree, however, a book takes longer to get into people's hands than well focused tutorials. I learned long ago that getting smaller projects done and delivered is better than a uber-project that never gets completed.

The problem I started running in to with my book was that when explaining one topic, I realized I needed to provide the background for something I was talking about. It is really hard to do if you assume your reader has little to no understanding or experience with low level languages.


It's a matter of what you're focusing on, I think, coding or game design.

In my mind, the target audience is someone who's done a lot of game programming in TI Basic and TI Extended Basic and wants to try out assembly. So their main goal is to be able to do everything they could do IN Basic. I'd focus on using the Editor/Assembler as the chief platform, and NOT doing Basic/Assembly cross-over. I have heard that many 99'ers learned assembly this way, but my experience with it was it was a very advanced topic and not suitable as a starting point.

As an example, a TI Basic programmer would want to know how to do random numbers. They've had this ability easily through the RND value. A tutorial of dry pseudo-random theory and implementation is interesting to someone wanting to write a better random number generator, but just confusing and scary to this audience. "I just want random numbers!" They will cry. So it's better to give a short explanation that random numbers are not really random, a simple routine that just does a base add on a stored memory value, explain how it works, then how to make it a bit better.

That's also how a lot of game designers are as well. Their head is in the clouds on what they want to accomplish in the game. HOW they do it in code isn't always as interesting or relevant. You can always go back and re-engineer a routine to be more optimal, more efficient, and more clever. I'd definitely devote a chapter or even a third of the book to "game design", because a lot of it is way beyond just knowing how to code.

Adamantyr

#11 matthew180 OFFLINE  

matthew180

    River Patroller

  • Topic Starter
  • 2,624 posts
  • Location:Castaic, California

Posted Sun Apr 11, 2010 1:57 PM

In my mind, the target audience is someone who's done a lot of game programming in TI Basic and TI Extended Basic and wants to try out assembly. So their main goal is to be able to do everything they could do IN Basic. I'd focus on using the Editor/Assembler as the chief platform, and NOT doing Basic/Assembly cross-over. I have heard that many 99'ers learned assembly this way, but my experience with it was it was a very advanced topic and not suitable as a starting point.


Agreed. The assembly + Extended BASIC is a terrible way to learn assembly. This is mostly due to having to know all the details about how BASIC does *everything* so you don't trip over it.

As an example, a TI Basic programmer would want to know how to do random numbers. They've had this ability easily through the RND value. A tutorial of dry pseudo-random theory and implementation is interesting to someone wanting to write a better random number generator, but just confusing and scary to this audience. "I just want random numbers!" They will cry. So it's better to give a short explanation that random numbers are not really random, a simple routine that just does a base add on a stored memory value, explain how it works, then how to make it a bit better.


Agreed. I was the same way, especially when I needed a good random number in assembly. :-)

Matthew

#12 Opry99er OFFLINE  

Opry99er

    Quadrunner

  • 10,731 posts
  • Location:Hustisford, WI

Posted Mon Apr 12, 2010 9:28 AM

I was going to keep this quiet for a little longer, but this thread is prompting me to speak up. I'm working in an XB tutorial book right now. I will hopefully release it at this year's Faire--- what I've decided
to do to make this "unique" is add a CD to the package including all the sample programs, a few complete games, utilities, etc. The book will follow the following format:

*Chapter intro: written by a knowledgable TIer concerning the chapter subject matter
*Explanation of terms covered in the chapter and where to look in the XB manual
*Example program listings with reference to the CD
*Chapter wrap up/workbook problems


The CD will also include pictures, tutorial videos with explanations of what the computer is doing.

This was kind of "under-wraps" but I think the modernization of these methods with the CD and interactive video/pictures is a good way to think about this current project you all are discussing.




0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users