The Propeller is programmed using a unique combination of two languages: Propeller ASM, and Spin. The ASM is run on a per-core basis, whereas Spin is run by the included interpreter and reads instructions out of main memory. When the Propeller first boots up, it checks the attached EEPROM for a binary image. If one is found, it loads it into the first core and starts up the interpreter to read Spin code. Once this has started, you are free to start up new cores as you need them, either in Spin mode or ASM.
Spin is a strange language which acts like a combination of of C, Python, and Pascal. Following is a code snippet of an LED flasher program written in Spin. (I wonder how this will look with the colorizer).
CON _clkmode = xtal1 + pll16x _xinfreq = 5_000_000PUB Start DirA[16] := %1 Repeat 5 OutA[16] := 1 WaitCnt(40_000_000 + Cnt) OutA[16] := 0 WaitCnt(40_000_000 + Cnt)
The previous snippet will turn an LED connected to pin 16 of the Propeller on and off 5 times. As you can see, the language doesn't use braces or ends, but instead uses indentation. Also, casing is not important. These two features, as well as several others, make me dislike the language a little.
I have an idea for a new language that will compile down to both Spin/ASM and C#, which will have three benefits: first, every game I write for the Propeller in that language will also be usable from windows via C#. Second, I won't have to interact with Spin/ASM on a daily basis, which seems like a good thing to me. Third, I will integrate my language with Visual Studio, which is a much nicer editor than the included Propeller Tool. Not that it is horrible, but Visual Studio takes the cake. More on the custom language much further down the line.
As you can see, I setup a nice task list on the top of my journal (the first person to guess where I got... my inspiration... for it gets a cookie). The next task to conquer is getting the Propeller hooked up to a TV and displaying some graphics. I mean, what's a video game console without the video aspect?
You know the drill. Read. Enjoy. Post feedback. Wait for my next update.