PropScript Bit Inspector - A .eeprom file viewer and PASM disassembler
Cynic
Posts: 8
Hello All
I have been lurking here for some time and thought I would post a link to a utility I have been working on.· The tool is called the PropScript Bit Inspector - it is designed to read .eeprom and .binary files containing PASM code and display the contents in what is hopefully a nice·easy to visualize·way. Also contains a PASM disassembler. Here is a brief list of the features and other·relevant info:
http://www.ofitselfso.com/PropScriptBitInspector.php
The software is a beta, probably has·bugs.·If/when you find them let me know and I will fix them.
Thanks
Cynic
Post Edited (Cynic) : 4/25/2009 6:04:43 PM GMT
I have been lurking here for some time and thought I would post a link to a utility I have been working on.· The tool is called the PropScript Bit Inspector - it is designed to read .eeprom and .binary files containing PASM code and display the contents in what is hopefully a nice·easy to visualize·way. Also contains a PASM disassembler. Here is a brief list of the features and other·relevant info:
- Reads both Propeller .binary and .eeprom files
- Interprets the binary header bytes and presents them on the display
- Can display the file contents in hex format.
- Optionally can display the file contents in binary format.
- Optionally can undo the Little Endian byte order when presenting the file contents.
- Optionally displays PASM code in a disassembled manner with forward and back label references.
- Moving the edit carat over lines in the display panel will dynamically update a display showing the disassembled PASM opcodes for that line split out into the various instruction components.
- Cannot interpret Spin language byte codes beyond identifying them and labeling them as SPIN
- Contains a handy converter which enables a user to enter four hex bytes (assumed to be a binary PASM instruction) in various formats such as hex, binary, little endian hex, little endian binary and to see the output in a variety of formats.
- The exe file requires the .NET 2.0 runtime.
- The software was written in C# and a Visual Studio 2005 solution and project are included with the source code.
- The software is offered as a binary and with source code under the terms of the the MIT License.
http://www.ofitselfso.com/PropScriptBitInspector.php
The software is a beta, probably has·bugs.·If/when you find them let me know and I will fix them.
Thanks
Cynic
Post Edited (Cynic) : 4/25/2009 6:04:43 PM GMT
Comments
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
--Steve
Propalyzer: Propeller PC Logic Analyzer
http://forums.parallax.com/showthread.php?p=788230
I have taken your suggestion and tried to load it. However that .eeprom file has a non standard header and the Bit Inspector just considered the entire thing to be SPIN byte codes. Accordingly I have added an option to turn off its assumptions as to what is SPIN and what is PASM. Interestingly, once that is done, the first line after the header at program counter 0018 displays as:
0018: 35 35 35 2C L__0 IF_NZ_OR_C SHL @$9A (badaddr->$280) @$135 (badaddr->$4EC) NR
This must be a compressed instruction or data bytes as speculated by others in the turbulence thread. The instruction itself makes no sense in PASM. The (badaddr) annotation is the Bit Inspectors way of saying that the src and dest field are used as register references (rather than immediate constants) by the opcode but they are out of cog space past $1EF. Essentially the instruction is IF_NZ_OR_C SHL $9A $135 NR (note the lack of # characters on the constants).
>Also, is there a way to make the default listing endian order reversed
I will add a feature next week which remembers on close the current configuration and automatically re-instates it upon startup.
Does your statement mean that you have tried the Bit Inspector app out? It would be nice to get confirmation that it displays independently created .eeprom files in an appropriate manner. Has anybody tried it out yet and·got it to work or not work?
Version 01.01 is now available at: http://www.ofitselfso.com/PropScriptBitInspector.php here is the version change log: http://www.ofitselfso.com/PropScriptBitInspectorVersionLog.php
Post Edited (Cynic) : 4/26/2009 4:50:29 PM GMT
Address $18 is the startup address specified in the header. The word means cognew(0,0) in spin.
The only thing non standard about the header is the clock frequency value which is pasm for jmp #7.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
--Steve
Propalyzer: Propeller PC Logic Analyzer
http://forums.parallax.com/showthread.php?p=788230
Yes, thats what confused the Bit Inspector. When the Propeller Tool creates an eeprom file the spin code seems (at least when I create it) put all of the PASM in the DAT block starting at $18 then the SPIN code comes right after that with the Initial Program Counter set to the start of the Spin byte codes. The utility previously assumed anything in addresses above the start of the Initial Program Counter would be Spin or Spin Stack/Variables. Since the turbulence code put the Spin code right at $18 then it all looked like SPIN. When I said the header was non standard I assumed the Propeller Tool build order was the standard. No reason the eeprom can't be structured in other ways so it looks like my assumption of a standard was erroneous. Anyhooo I've fixed it now. Thanks for the feedback.