A tool aid to PASM cog programming. Version 0.98
A new object has been posted:
Augmented Assembly Code(PreSpin version)
http://obex.parallax.com/objects/540/
This program works in conjunction with PreSpin (Ariba's program) and the Propeller Tool as an aid for people who write assembly code for the Parallax Propeller© chip.
PreSpin is a preprocessor that adds a macro capability, comprehensive conditional compilation, c style "include" files, and a "context help" for Propeller language elements including PASM. The version supplied in this distribution (PreSpinAAC) then calls AAC to do its preprocessing/compiling.· Ariba (Andy Schenk) graciously provided·this customized version of PreSpin to make the combination even easier to use.
The AAC (Augmented Assembly Code) preprocessor looks for "tagged" lines in DAT blocks (usually interspersed with regular PASM instructions) and emits a second file for subsequent processing by the Propeller Tool.· It is a tiny compiler that generates reasonably compact PASM code.
AAC provides: indexing and indirection for all standard opcodes; a loop structure that can be nested; a case control structure that can be nested; conditional execution of the if...elseif...elseif...else...endif type that can be nested; simple substitution statements of the form sum += y[noparse][[/noparse]k]; a convention for declaring and using subroutines that allows for nesting of subroutine calls; a rudimentary conditional compilation feature.
PreSpinAAC launches Propeller Tool and is very easy to use.· There is a comprehensive manual included in the release that can be easily opened from within PreSpinAAC.
The "standalone" version of AAC was previously released here:
Augmented Assembly Code(standalone version)
http://obex.parallax.com/objects/533/
I intend to maintain both versions in parallel.
Post Edited (Bob Anderson) : 11/19/2009 5:19:48 AM GMT
Augmented Assembly Code(PreSpin version)
http://obex.parallax.com/objects/540/
This program works in conjunction with PreSpin (Ariba's program) and the Propeller Tool as an aid for people who write assembly code for the Parallax Propeller© chip.
PreSpin is a preprocessor that adds a macro capability, comprehensive conditional compilation, c style "include" files, and a "context help" for Propeller language elements including PASM. The version supplied in this distribution (PreSpinAAC) then calls AAC to do its preprocessing/compiling.· Ariba (Andy Schenk) graciously provided·this customized version of PreSpin to make the combination even easier to use.
The AAC (Augmented Assembly Code) preprocessor looks for "tagged" lines in DAT blocks (usually interspersed with regular PASM instructions) and emits a second file for subsequent processing by the Propeller Tool.· It is a tiny compiler that generates reasonably compact PASM code.
AAC provides: indexing and indirection for all standard opcodes; a loop structure that can be nested; a case control structure that can be nested; conditional execution of the if...elseif...elseif...else...endif type that can be nested; simple substitution statements of the form sum += y[noparse][[/noparse]k]; a convention for declaring and using subroutines that allows for nesting of subroutine calls; a rudimentary conditional compilation feature.
PreSpinAAC launches Propeller Tool and is very easy to use.· There is a comprehensive manual included in the release that can be easily opened from within PreSpinAAC.
The "standalone" version of AAC was previously released here:
Augmented Assembly Code(standalone version)
http://obex.parallax.com/objects/533/
I intend to maintain both versions in parallel.
Post Edited (Bob Anderson) : 11/19/2009 5:19:48 AM GMT
Comments
This "fiddling" is needed because PreSpinAAC is hardcoded to look for "Propeller Manual v1.01.pdf" and its associated index file must be named "PropManualIndex.txt" in order to properly "jump" to the proper manual page.
It's worth the trouble (IMHO) to have easy and quick access to the manual.··Just highlight a word·and click on Context Help and the relevant manual page will appear.
Partial revision history...
0.98· Fixed: a void subroutine with no parameters was causing an exception
······· Fixed: a subroutine call with empty parameters was giving an error message
······· Fixed: in AACclient, if you tried to create a file by enabling edits, it wasn't
················ possible to write either the source or the output file.
0.97· Now processes "tagged" lines only if they are in a DAT block.
0.96· Fixed bug in case statement that was allowing "fall-through" into "otherwise"
0.95· Added a labeled fit statement (emitted when finishCodeSection is used) that makes
····· it easy to see how much cog memory has been used.· The manual has been updated to
····· show this feature.