Shop OBEX P1 Docs P2 Docs Learn Events
Augmented Assembly Code tool (AAC) If you write Propeller PASM code, this can — Parallax Forums

Augmented Assembly Code tool (AAC) If you write Propeller PASM code, this can

Bob AndersonBob Anderson Posts: 122
edited 2009-11-19 05:14 in Propeller 1
I have uploaded 0.98 to ObEx.

I have been testing the distribution by doing a download to my desktop.· I found (in Windows) that if I do not tell Windows to stop warning me about the .exe or .chm file, that I cannot see the manual.· Just a tip.

I have uploaded a program/tool to the Object Exchange that may prove useful for those that write cog assembly code for the Propeller chip.··This is·a beta release.· Although it has performed well for me, it needs third party "knocking about".· Look for it in the Tools section of the Object Exchange (here is a direct link to the AAC·object).· I had to put it there rather than simply attach it to this post because it exceeds the 2MB limit for post attachments.· The download file is 2.26MB, but 2.1MB of that is due to a built-in manual.

This program is meant to help people who write assembly code for the Parallax Propeller© chip.· It is a 'preprocessor' designed to be used in conjunction with the Propeller Tool.· It looks for "tagged" lines imbedded in normal PASM files and emits a second file for subsequent processing by the Propeller Tool.

It 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.
This is a Windows program written in C# and built using Microsoft Visual Studio 2008. It uses .NET Framework 2.0 (and above) and is compiled for 32 bit targets (works fine for 64 bit targets as well).

There is now a sample file and a revision history.

There is a complete manual built into the program.· Click on Help|AAC manual to bring it into view.



Post Edited (Bob Anderson) : 11/19/2009 5:18:28 AM GMT
«13

Comments

  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2009-10-30 06:24
    Congrats! Sounds like quite the tour de force! ('Reminds me a little of PL360.)
    Bob Anderson said...
    This is a Windows program written in C# and built using Microsoft Visual Studio 2008.
    Does this mean it requires .NET to run?

    -Phil
  • Bob AndersonBob Anderson Posts: 122
    edited 2009-10-30 06:30
    I'm afraid so.· The install program will go and get the needed .NET version (with your permission) (at least it is supposed to -- hard for me to test -- I don't have a computer that lacks .NET framework).

    It uses .NET 2.0


    Post Edited (Bob Anderson) : 10/30/2009 6:37:13 AM GMT
  • WurlitzerWurlitzer Posts: 237
    edited 2009-10-30 13:20
    Wow! Thank you very much for this effort. As I write most of my Prop code in PASM I am sure it will be put to good use.

    One note: I believe there is an error in the documents for the Subroutine stuff

    '' doStuff( , 22 ) ' sets doStuff_end to 2, makes call"

    Should this be: '' doStuff( , 2 ) ' sets doStuff_end to 2, makes call"

    or possibly

    '' doStuff( , 22 ) ' sets doStuff_end to 22, makes call"

    Thanks again
  • JackBakJackBak Posts: 45
    edited 2009-10-30 13:43
    Thanks Bob,

    Have you tested it using Mono on a Linux box? OpenSUSE usually has the most complete and up to date Mono environment. I've even written Windows drivers completely in the Monodevelop environment. I'm quite impressed with C# and the Linux Mono environment.

    Regards,
    Jack
  • Bob AndersonBob Anderson Posts: 122
    edited 2009-10-30 14:21
    Wurlitzer:
    I have changed the documentation for the subroutine statement.· Thanks for the "catch".



    JackBak:
    I don't have a Linux box available.· It would be nice to know how this program runs on Mac and Linux.· (This is a big hint·smile.gif·out there to those folks.) I·would make changes where possible to improve compatibility.
  • BradCBradC Posts: 2,601
    edited 2009-10-30 14:37
    Bob Anderson said...
    It would be nice to know how this program runs on Mac and Linux.

    It doesn't.

    brad@bklaptop2:~/cpm/publish/Application Files/AACclient_1_0_0_15$ mono AACclient.exe.deploy 
    
    ** (AACclient.exe.deploy:18338): WARNING **: The following assembly referenced from /home/brad/cpm/publish/Application Files/AACclient_1_0_0_15/AACclient.exe.deploy could not be loaded:
         Assembly:   System.Windows.Forms    (assemblyref_index=1)
         Version:    2.0.0.0
         Public Key: b77a5c561934e089
    The assembly was not found in the Global Assembly Cache, a path listed in the MONO_PATH environment variable, or in the location of the executing assembly (/home/brad/cpm/publish/Application Files/AACclient_1_0_0_15/).
    
    
    ** (AACclient.exe.deploy:18338): WARNING **: Could not load file or assembly 'System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies.
    
    ** (AACclient.exe.deploy:18338): WARNING **: Missing method EnableVisualStyles in assembly /home/brad/cpm/publish/Application Files/AACclient_1_0_0_15/AACclient.exe.deploy, type System.Windows.Forms.Application
    
    Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 'System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies.
    File name: 'System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
    
    



    As wine could not run setup.exe, nor mono I just tried running what appeared to be the binary directly.

    If you are at all serious about supporting Linux and Mac, I'm more than willing to try and run tests for you and help out testing where I can. I can even give you a shell on a Linux machine and if you were really keen I'd set up a virtual machine for you with ssh & tunneled VNC access.

    Having said that, you could very easily download a copy of virtualbox and install a late linux distribution on it and test with that locally. If you can get to work on Linux you will be very close to getting it to work on a Mac (I can help you test there also as I have both Intel and PPC Macs for testing with). I don't like to promote the use of .Net in any way, shape or form, but if nobody else steps up I'll certainly try and help where I can.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    lt's not particularly silly, is it?
  • BradCBradC Posts: 2,601
    edited 2009-10-30 15:03
    Oh, I managed to get the chm to open using kchmviewer. Nice documentation! [noparse]:)[/noparse]

    With the addition of a built-in assembler and expression evaluator, it looks like you are well on the way to writing a nice medium-level compiler. Get it to spit out LMM code and you are golden.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    lt's not particularly silly, is it?
  • SapiehaSapieha Posts: 2,964
    edited 2009-10-30 15:15
    Hi Bob Anderson


    Installed and RUN Impressed of possibilitys...... BUT not on it that it is not posible at Save even minimal portion of testing Code.
    If I will test it extensively it must be posible to save that else it is tu much work to revrite it every time.

    Next ON installer ... Why it is not posible to see what hapens ... What place it is installed to?.
    If I can't control install program --- In most casses I don't install ...

    Regards
    ChJ

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Nothing is impossible, there are only different degrees of difficulty.
    For every stupid question there is at least one intelligent answer.
    Don't guess - ask instead.
    If you don't ask you won't know.
    If your gonna construct something, make it·as simple as·possible yet as versatile as posible.


    Sapieha
  • Bob AndersonBob Anderson Posts: 122
    edited 2009-10-30 15:20
    BradC:

    I have a set of files that does not need "setup". It doesn't "install". It has AACclient.exe plus the .chm documentation file. Would that help.

    I don't aim to run it on Linux or Mac. But I will try to adapt the program where I can to avoid things that I may have done out of ignorance if the needs of the Linux/Mac community (like using Windows "publish" mechanism.)

    I'm on jury duty today, so I'll be "off-line" for about 8 hours,
  • BradCBradC Posts: 2,601
    edited 2009-10-30 15:30
    Bob Anderson said...
    BradC:

    I have a set of files that does not need "setup". It doesn't "install". It has AACclient.exe plus the .chm documentation file. Would that help.

    Well, after installing a bit of extra mono cruft I got it to work by running the AACclient.exe.depoy file with mono directly. So yes, probably just supplying an .exe file and the .chm file might make it a bit easier for non windows users, and also address the issue Sapieha raised about not knowing where it installs. Does it really need to install?

    The other bonus with that is you don't need to keep distributing a 2.1 Meg chm file if you are only updating the binary. Much nicer on bandwidth [noparse]:)[/noparse]

    For Ubuntu users, you need to install libmono-winforms2.0-cil which emulates System.Windows.Forms.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    If you always do what you always did, you always get what you always got.lt's not particularly silly, is it?
  • Bob AndersonBob Anderson Posts: 122
    edited 2009-10-31 03:53
    Sapieha:

    I don't know why you are having trouble saving files. Both edit panels can be written to files. It might be that I use the word WRITE rather than SAVE.

    I agree that the blind install that the cheap (free) install program that comes with Win Studio 2008 is troublesome. I uploaded version 0.93 that requires a very simple manual install to a directory of your choosing.


    BradC:

    Let me know if this is easier for the Mac/Linux community. Eventually, I may be able to separate the manual from the code to save downlaod time when only code has changed. But in the Beta phase, I expect both to change at the same time. When things stabilize, I will likely split them.
  • BradCBradC Posts: 2,601
    edited 2009-10-31 05:24
    Question :

    This appears to be almost a pre-processor in the way it operates. Is the GUI strictly necessary ?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    If you always do what you always did, you always get what you always got.lt's not particularly silly, is it?
  • SapiehaSapieha Posts: 2,964
    edited 2009-10-31 12:14
    Hi Bob Anderson.

    In my instalation WRITE never will be active no mather if I write to PANEL else open one already existing file writen in NotePad and then edit it
    Same if I will stop programet it commes with Save to BUT not with window what name it will have else what place it will have.
    If I use buton Save it will not save anything else stop programet only if I use BUTON Exit it stop programet without Saving anything.

    Regards
    ChJ

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Nothing is impossible, there are only different degrees of difficulty.
    For every stupid question there is at least one intelligent answer.
    Don't guess - ask instead.
    If you don't ask you won't know.
    If your gonna construct something, make it·as simple as·possible yet as versatile as posible.


    Sapieha
  • Bob AndersonBob Anderson Posts: 122
    edited 2009-10-31 14:13
    BradC:

    Yup. It's a preprocessor. It would be a lovely "pipe" in the Linux worl [noparse]:)[/noparse]
    I think I say somewhere that it is a preprocessor. I know that PASD has a technique for reading whatever is
    active in the Propeller Tool panel. I had thought about figuring out how that was done and then somehow turn AAC into something that
    is triggered from the Prop Tool. If done right, it would appear almost built in.

    But first I need to find out if the community finds it useful. As simple as it is, it's another language (sort of). One more thing to learn.
    I made the constructs parallel the Spin equivalents where possible, but primarily I chose the statements to be something
    that could be used to emit code using a single pass, non-recursive compiler. I even hate to call it a compiler. The seems
    too glorious a term for what it does. However, I do write PASM quicker and more confidently now. Fewer errors, etc. It works
    for me.
  • Bob AndersonBob Anderson Posts: 122
    edited 2009-10-31 14:14
    Sapieha:

    I do not enable Write until there is data in the panel. If you have loaded (using Open) a file into Source, that should enable Write. Then switching to
    Output should fill that panel and Write should become enabled there as well.

    What operating system are you using?
  • Bob AndersonBob Anderson Posts: 122
    edited 2009-10-31 14:21
    BradC:

    I guess I took out the "preprocessor" wording in the description. I know I started with that in the description because that's how I think about the program.

    Did the 0.93 release make things any easier for you?
  • SapiehaSapieha Posts: 2,964
    edited 2009-10-31 14:51
    Hi Bob Anderson.

    It should enable write if I fill panel with some data .... BUT it not

    I have Win XP Profesional-SP3 with all uppdates ... and .NET in all versions.
    And I loaded Yours last uppdate "Stand alone" that no ned install but it has same behavior

    Regaeds
    ChJ

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Nothing is impossible, there are only different degrees of difficulty.
    For every stupid question there is at least one intelligent answer.
    Don't guess - ask instead.
    If you don't ask you won't know.
    If your gonna construct something, make it·as simple as·possible yet as versatile as posible.


    Sapieha
  • Bob AndersonBob Anderson Posts: 122
    edited 2009-10-31 15:19
    Sapieha:

    I am using Win XP Professional-SP3 as well. .Net 2.0 is expected by AACclient.exe.
    I've never had anyone have trouble with any of my programs that write files.
    I don't know what to do.

    Do you put the program in edit mode (press Edit | Enable editing) ?
  • SapiehaSapieha Posts: 2,964
    edited 2009-10-31 15:24
    Hi


    "Do you put the program in edit mode (press Edit | Enable editing) ?"

    Yes else I can't write to panel.

    Regards
    ChJ

    Ps. have intsled both .NET 2 and 3 with 3.5 uppdate
    And Yes ... I know it is strange

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Nothing is impossible, there are only different degrees of difficulty.
    For every stupid question there is at least one intelligent answer.
    Don't guess - ask instead.
    If you don't ask you won't know.
    If your gonna construct something, make it·as simple as·possible yet as versatile as posible.


    Sapieha
  • Bob AndersonBob Anderson Posts: 122
    edited 2009-10-31 15:32
    I use Visual Studio 2008 C#. I have told it to compile for "any processor" and use .NET 2.0

    Is your processor 64 bit?
  • SapiehaSapieha Posts: 2,964
    edited 2009-10-31 15:35
    Hi Bob Anderson.

    I have Intel E6600 DualCore procesor 2.4GHz.

    XP is 32 bit's version

    Ps..· My Win is international Swedish char set

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Nothing is impossible, there are only different degrees of difficulty.
    For every stupid question there is at least one intelligent answer.
    Don't guess - ask instead.
    If you don't ask you won't know.
    If your gonna construct something, make it·as simple as·possible yet as versatile as posible.


    Sapieha
  • Bob AndersonBob Anderson Posts: 122
    edited 2009-10-31 15:49
    Sapieha:

    I still don't see where there is a difference that might explain your difficulties.·

    I did a build of AAC that is a 32 bit build.· I have attached the exe part only to this post.· It will be looking for the manual (.chm) in the same directory that you put this file in.
  • Bob AndersonBob Anderson Posts: 122
    edited 2009-10-31 15:55
    Sapieha:

    Sounds like we have identical systems except for character set.· I have no experience with that.· Could you temporarily change that?

    My Win XP Pro is 2002· SP 3
    419 x 479 - 65K
  • SapiehaSapieha Posts: 2,964
    edited 2009-10-31 16:15
    Hi Bob Anderson.


    File "AACclient.exe" are only 68KB it can't be posible it is stand alone.

    It must load old blocks from previous installation

    My XP comp are near same as Yours

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Nothing is impossible, there are only different degrees of difficulty.
    For every stupid question there is at least one intelligent answer.
    Don't guess - ask instead.
    If you don't ask you won't know.
    If your gonna construct something, make it·as simple as·possible yet as versatile as posible.


    Sapieha
    850 x 495 - 77K
  • Bob AndersonBob Anderson Posts: 122
    edited 2009-10-31 16:24
    Sapieha:

    Size is correct. Thats .NET Framework 2.0 doing its thing. I have loaded that file on a little laptop and it runs fine, except with no manual.
    The laptop never had AACclient loaded in any form.

    But did the new build help you at all ???
  • SapiehaSapieha Posts: 2,964
    edited 2009-10-31 16:26
    Hi Bob Anderson


    Sorry .... But ... NOT

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Nothing is impossible, there are only different degrees of difficulty.
    For every stupid question there is at least one intelligent answer.
    Don't guess - ask instead.
    If you don't ask you won't know.
    If your gonna construct something, make it·as simple as·possible yet as versatile as posible.


    Sapieha
  • Karl SmithKarl Smith Posts: 50
    edited 2009-10-31 17:13
    Where can I find the sample files, they are not part of the zip file
  • HollyMinkowskiHollyMinkowski Posts: 1,398
    edited 2009-10-31 21:39
    @Bob Anderson

    This is great!

    LMM?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    "Where am I? Where am I going? Why am I in a handbasket?"
  • Bob AndersonBob Anderson Posts: 122
    edited 2009-11-01 06:44
    Karl: I didn't include any sample files. I didn't feel that they had any pedagogic value. Just put it in edit mode and type a few lines. It goes pretty fast after that.

    HollyMinkowski: Thanks. I don't know what LMM? means. I assume LMM means Large Memory Model. But what are you asking?
  • jazzedjazzed Posts: 11,803
    edited 2009-11-01 07:01
    Hi. I can run the AAC program on Ubuntu with mono, but i get an error with Help->ACC Manual.
    Is there a stand-alone .chm reader for Linux ? In light of not being able to see your documentation,
    having a sample file would at least help me understand the value in pursuing this further.
Sign In or Register to comment.