... and all you have to do is proselytize those that don't get it.
"Good morning Mrs. Smith. Have you heard the Good News about the Parallax Propeller?"
"No, I'm not trying to solicit donations -- only to share with you the joy and wonder of bit-banging."
"Yes, please do call your husband. The more the merrier, I always say!"
(Aw nuts! That's the fifth door-slam this morning. I'll just stick this pamphlet in the mail slot. I'm sure that, once they read it, they'll see the Light.)
Proselytize? I can't even spell it, had to use the spell checker. I think I've been pretty fair with pondering both ANSI-C and Propeller Assembly. But of course, someone is more than likely to disagree, they want another book to ease them into the Propeller. AND, that would be a wonderful thing if it didn't just repeat what has already been published.
Install an Ubuntu Linux dual boot on an existing Windows machine (even an old slow one) and then learn C with a Unix-like OS. Windows started with the multi-user concept and without as sophisticated a file system. These days, about 75% of the web is being driven by Linux-based servers.
Even if one were to prefer becoming a M$ or Apply programmer, UNIX has created the backbone of our computer infrastructure and is much easier to study via Linux and no cost or next to no cost for software and literature.
Assembler has to be reacquired every time to change to a new chip. IT is just that close to the hardware.
In my never humble opinion I consider it preferable to install virtualbox and then install linux in a virtual machine.
Working to convince others is just a natural consequence of the highly differentiated design of the Propeller. It's a good thing! People are right to be excited about it when they "get it", and like anything else, they tend to share it and the excitement of it with others.
Re: PASM being different from others and people twiddling registers as opposed to big banging.
There really isn't a big difference. Props have their registers to twiddle too, just different ones, and maybe a smaller set than some chips, and more than others.
All assembly language programming is the same in that it's interacting with the CPU directly. Learning how to do that and what it means for the hardware being interacted with is the key benefit of learning PASM, or any ASM frankly.
Take the GOTO vs REPEAT discussion.
In Assembly, there is the Program Counter, and on some chips the stack and other interesting things. GOTO is perfectly reasonable in ASM, where it's not in structured language land. Why that is the case is part of understanding ASM and it brings with it an appreciation for what higher level languages actually do and how they do it that will pay off nicely for anyone going down that road.
P2 actually gets REP (repeat), which I think is kind of cool actually, because it aligns with higher level languages yet still is ASM. Fun stuff!
That digression aside, tons of stuff is common to assembly language programming. Powers of two, bit size, logical operators, shifts, math, flags, memory addressing (though there are lots of mode differences across various CPU designs), masks, and all sorts of other things. One can start with just about any CPU and come to some skill in all of those things. The next CPU will have different instructions and efficiencies, but the core skills really aren't much different.
Sure, it's not as portable as C can be, but it's not like each new chip requires one to do it all over again either.
4x5n,
I presume you mean install VirtualBox into Linux and then run whatever other OS under VirtualBox.
That's how I'm able to use the propeller tool. It is possible to install virtualbox on a machine running windows and then create a virtual machine and install linux in the VM. I've done both.
So.... if I understand this right. The suggestion is to have a single boot Linux machine with VirtualBox running a licensed copy of Windows within the Linux. That could work for me, maybe....
My dilemma is that I've three computers that were first registered as Windows machines before I installed that additional Linux boot. If seems that M$ and Windows wants to dominate the MBR of the hard disks for the sake of their own security features. So I am a bit uncertain how to reinstall any version of Windows in a VirtualBox context after M$ has done all their nosey stuff.
Or maybe you are saying I don't require a licensed copy of Windows at all if I run VirtualBox.
So.... if I understand this right. The suggestion is to have a single boot Linux machine with VirtualBox running a licensed copy of Windows within the Linux. That could work for me, maybe....
My dilemma is that I've three computers that were first registered as Windows machines before I installed that additional Linux boot. If seems that M$ and Windows wants to dominate the MBR of the hard disks for the sake of their own security features. So I am a bit uncertain how to reinstall any version of Windows in a VirtualBox context after M$ has done all their nosey stuff.
Or maybe you are saying I don't require a licensed copy of Windows at all if I run VirtualBox.
There is a version of virtualbox that uses windows as it's host operating system. Install that on your machine running windows and then you can create a virtual machine and run linux in it as a guest operating system.
I think I will stay with the dual boot. I mostly use Linux and the Windows is there in case of a serious crash. There are also advantages that I can confirm a hardware issue as it would turn up in both boots.
Windows drives me crazy with paranoia, demanding I buy an AV, and maintenance service that takes forever. My computing experience has been much more pleasant since I moved over to Ubuntu Linux, and I simply get more done with far less distractions from the OS.
Linux has provided a good dual boot application called Grub2 that lets Windows think it is in control of the hard disks and the computer while allowing me to directly go to Linux. And I could use WINE inside Linux for Windows applications if I wanted to, but the directories (and maybe the partitions) involved in it are still subject to all the hacking and viral attacks that are attracted to Windows.
In other words, a pure Linux boot just seems to dodge a lot of problems. Occasionally, a dubious web site will force a download of a .exe file into my Linux directories and I know it is an attempt to do something. But Linux won't run .exe files. They just sit there until I choose to delete them. In Windows, they might automatically run and wreak havoc.
Yes its tough for me to decide even though I know a little bit about each language. Looking at my future as an engineer, and at some point Ill probably have to know C better, its on everyone's resume and seems to be the must know language.
In college we learned assembly but only scratched the surface. My concern is there seems to be lacking material for assembly with the propeller.
Well you can take my programming carrier so far as an example I guess.
I learned C in college, as well as Assembly, and some other needed languages.
I get my first job.... they use an Old language called INFORMIX its a 4gl language designed specificly for business applications. hardly anyone uses or knows about anymore....
I got to spend first year of my job getting acquainted with that language, I have scene not used C, or assembly in my actually professional life ;x
...if you are just learning C, I would highly recommend learning on a full blown PC, not an embedded computer like the Propeller. ...
I would agree. I would also suggest that you skip the huge learning curve of C, save yourself the pain. Its like going around the block to get next door.
Take the easy way, just use forth. If you can get you head around putting the stuff on the stack before you can the function:
1 3 + .
4
ok
Then you've mastered the hard part. Everything else is no more difficult than any other choice since all the rest is the architecture of the prop anyway.
And forth is totally interactive and extensible, its only interpreted when the source code is compiled into the dictionary and is 10 to 100 time easier to optimize snippets into assembler, for addressing bottlenecks, and its way more fun. You're not going to be a guru over night, but that hold true everywhere equally.
Look, if you already know C, then C is the best choice. If you don't know C, and your not writing an OS for a workstation, and your using a micro controller, use forth. C'mon! What could be more fun than fun?
Of course this is only my opinion, and I may be biased.
Learn PASM and C at the same time. PASM is very straight-forward, and it can be mastered in a couple of weeks. C can be learned in steps, where you start with the basic instructions first and progress to more complex features as time goes on. There are many C tutorials on the internet, and I suggest using them to learn C. In a month you will be proficient in both PASM and C.
Comments
"Good morning Mrs. Smith. Have you heard the Good News about the Parallax Propeller?"
"No, I'm not trying to solicit donations -- only to share with you the joy and wonder of bit-banging."
"Yes, please do call your husband. The more the merrier, I always say!"
(Aw nuts! That's the fifth door-slam this morning. I'll just stick this pamphlet in the mail slot. I'm sure that, once they read it, they'll see the Light.)
Essentially to convert from on ideology to another. Typically used in a religious context.
I was not trying to be critical of anyone's post.
Trying to sway an entrenched population is a big challenge though.
In my never humble opinion I consider it preferable to install virtualbox and then install linux in a virtual machine.
Re: PASM being different from others and people twiddling registers as opposed to big banging.
There really isn't a big difference. Props have their registers to twiddle too, just different ones, and maybe a smaller set than some chips, and more than others.
All assembly language programming is the same in that it's interacting with the CPU directly. Learning how to do that and what it means for the hardware being interacted with is the key benefit of learning PASM, or any ASM frankly.
Take the GOTO vs REPEAT discussion.
In Assembly, there is the Program Counter, and on some chips the stack and other interesting things. GOTO is perfectly reasonable in ASM, where it's not in structured language land. Why that is the case is part of understanding ASM and it brings with it an appreciation for what higher level languages actually do and how they do it that will pay off nicely for anyone going down that road.
P2 actually gets REP (repeat), which I think is kind of cool actually, because it aligns with higher level languages yet still is ASM. Fun stuff!
That digression aside, tons of stuff is common to assembly language programming. Powers of two, bit size, logical operators, shifts, math, flags, memory addressing (though there are lots of mode differences across various CPU designs), masks, and all sorts of other things. One can start with just about any CPU and come to some skill in all of those things. The next CPU will have different instructions and efficiencies, but the core skills really aren't much different.
Sure, it's not as portable as C can be, but it's not like each new chip requires one to do it all over again either.
I presume you mean install VirtualBox into Linux and then run whatever other OS under VirtualBox.
That's how I'm able to use the propeller tool. It is possible to install virtualbox on a machine running windows and then create a virtual machine and install linux in the VM. I've done both.
My dilemma is that I've three computers that were first registered as Windows machines before I installed that additional Linux boot. If seems that M$ and Windows wants to dominate the MBR of the hard disks for the sake of their own security features. So I am a bit uncertain how to reinstall any version of Windows in a VirtualBox context after M$ has done all their nosey stuff.
Or maybe you are saying I don't require a licensed copy of Windows at all if I run VirtualBox.
There is a version of virtualbox that uses windows as it's host operating system. Install that on your machine running windows and then you can create a virtual machine and run linux in it as a guest operating system.
Windows drives me crazy with paranoia, demanding I buy an AV, and maintenance service that takes forever. My computing experience has been much more pleasant since I moved over to Ubuntu Linux, and I simply get more done with far less distractions from the OS.
Linux has provided a good dual boot application called Grub2 that lets Windows think it is in control of the hard disks and the computer while allowing me to directly go to Linux. And I could use WINE inside Linux for Windows applications if I wanted to, but the directories (and maybe the partitions) involved in it are still subject to all the hacking and viral attacks that are attracted to Windows.
In other words, a pure Linux boot just seems to dodge a lot of problems. Occasionally, a dubious web site will force a download of a .exe file into my Linux directories and I know it is an attempt to do something. But Linux won't run .exe files. They just sit there until I choose to delete them. In Windows, they might automatically run and wreak havoc.
Well you can take my programming carrier so far as an example I guess.
I learned C in college, as well as Assembly, and some other needed languages.
I get my first job.... they use an Old language called INFORMIX its a 4gl language designed specificly for business applications. hardly anyone uses or knows about anymore....
I got to spend first year of my job getting acquainted with that language, I have scene not used C, or assembly in my actually professional life ;x
At home though, I use it all the time.
I would agree. I would also suggest that you skip the huge learning curve of C, save yourself the pain. Its like going around the block to get next door.
Take the easy way, just use forth. If you can get you head around putting the stuff on the stack before you can the function: Then you've mastered the hard part. Everything else is no more difficult than any other choice since all the rest is the architecture of the prop anyway.
And forth is totally interactive and extensible, its only interpreted when the source code is compiled into the dictionary and is 10 to 100 time easier to optimize snippets into assembler, for addressing bottlenecks, and its way more fun. You're not going to be a guru over night, but that hold true everywhere equally.
Look, if you already know C, then C is the best choice. If you don't know C, and your not writing an OS for a workstation, and your using a micro controller, use forth. C'mon! What could be more fun than fun?
Of course this is only my opinion, and I may be biased.