Login [Register]
Don't have an account? Register now to chat, post, use our tools, and much more.
BranchMap v1.0
Published by KermMartian on October 7, 2009 at 2:39:35 AM CST | Discuss this article (16)

A month of planning and coding between other projects has brought BranchMap v1.0 to completion. Written entirely in Python, and tested on Linux and Windows, this program allows you to generate postscript or PDF files containing a summary and semi-graphical overview of z80 ASM code. I intended this project as a way to trace program flow without staring at thousands of lines of z80 code for hours. It can do all of the following and more:

:: Displays all files, labels, and jumps in source file(s)
:: Optionally track and displays calls and bcalls
:: Tracks and tries to determine stack depth of all instructions. Looks for unreachable blocks.
:: Finds and warns of dangerous stack manipulation, such as returning from a call with the stack pointer misset.
:: Displays easy-to-read color-coded cross-file call/jump references
:: Can optionally graphically track intra-routine stack manipulation
:: Easy-to-use PS/PDF output files

I've used it pretty thoroughly, testing everything from simple contrived source to Invalid Tangram to the monstrous behemoth that is Doors CS 7-in-progress. Doors CS has the most strange and tricky code, and hence had the most strange interpretations of nonstandard code, but even within the 108-page summary it produced there was a ton of useful information that I will be using to help me develop and debug faster, including 14 stack manipulation warnings.

BranchMap v1.0 (Direct Download)

Edit: BranchMap v1.0 has been featured on ticalc.org, the flagship community website. Thanks for everyone's positive comments there.

October 2009 Articles
October 2009 October 2009 [Back to News Archives Index]

» BranchMap v1.0 published October 7, 2009 by KermMartian
» TI, the DMCA, and the Calculator Programming Community published October 30, 2009 by KermMartian