{ "info": { "author": "Nathan Fraser", "author_email": "ndf@metarace.com.au", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)", "Programming Language :: Python", "Topic :: Software Development :: Assemblers" ], "description": "# disfv1\n\nDisassembler for Spin Semi FV-1\n\nCopyright (C) 2019 Nathan Fraser\n\nA simple disassembler for the Spin Semiconductor FV-1 DSP. This\ndisassembler will convert a FV-1 binary program file into strict\nFV-1 assembler statements, suitable for use with asfv1 and the\nSpin IDE.\n\n\n## Requirements\n\n- Python \\> 2.6\n\n\n## Installation\n\nMake sure your system has a python interpreter\n(preferably python3), then install from the\n[Python Package Index](https://pypi.org/)\nusing the\n[pip](https://pip.pypa.io/en/stable/)\ncommand:\n\n\t$ pip3 install disfv1\n\nor\n\n\t$ pip install disfv1\n\nFor system-specific installation instructions see\n[System Specific Installation](#system-specific-installation)\nbelow.\n\n## Usage\n\n\t$ disfv1 input.bin output.asm\n\n\t$ disfv1 -h\n\tusage: disfv1 [-h] [-v] [-q] [-r] [-s] [-p {0,1,2,3,4,5,6,7}] infile [outfile]\n\n\tDisassemble a single FV-1 DSP program.\n\n\tpositional arguments:\n\t infile binary program file\n\t outfile assembly program output file\n\n\toptional arguments:\n\t -h, --help show this help message and exit\n\t -v, --version print version\n\t -q, --quiet suppress warnings\n\t -r, --relative use relative skip targets\n\t -s, --suppressraw convert invalid/raw statements into nop\n\t -p {0,1,2,3,4,5,6,7} program number\n\n\n## Overview\n\ndisfv1 is based on information in the FV-1 datasheet and AN0001 \"Basics\nof the LFOs in the FV-1\". It disassembles FV-1 machine code into strict\nassembler compatible with asfv1.\n\n- This disassembler converts a single 128 instruction DSP program binary\n and outputs a corresponding assembly representation.\n\n- Skip offsets are automatically replaced with labels. To suppress labels\n and instead get the offset, use command line option -r (--relative).\n\n- By default, the source is assumed to be a single program. To offset\n into a bank file, use the command line option -p (--program) to\n choose an alternate program.\n\n- Invalid instructions are disassembled as 'raw' instructions, to\n replace them with 'nop' use command line option -s (--suppressraw).\n\n## Example\n\n\t$ disfv1 example.bin\n\tinfo: Reading input from example.bin\n\tinfo: Read 9 instructions.\n\t\tskp\tRUN,addr03 \t; flags:0x10 offset:0x02\n\t\tldax\tPOT0 \t; reg:0x10\n\t\twrax\tREG0,0.0 \t; reg:0x20 k:0x0000\n\taddr03:\tldax\tADCL \t; reg:0x14\n\t\tmulx\tREG0 \t; reg:0x20\n\t\twra\t0,0.0 \t; del:0x0000 k:0x000\n\t\trda\t9830,0.5 \t; del:0x2666 k:0x100\n\t\trda\t19660,0.5 \t; del:0x4ccc k:0x100\n\t\twrax\tDACL,0.0 \t; reg:0x16 k:0x0000\n\n## System Specific Installation\n\nThe preferred method for installation is to use your system's\npackaged pip3 command to fetch and install disfv1 from\n[PyPi](https://pypi.org/) and set it up to work with a python3\ninterpreter.\n\n### Linux with apt (Debian, Ubuntu)\n\n\t$ sudo apt install python3-venv python3-pip\n\t$ pip3 install disfv1\n\n### Linux with yum (Fedora 21)\n\n\t$ sudo yum install python3 python3-wheel\n\t$ pip3 install disfv1\n\n### Linux with dnf (Fedora 22)\n\n\t$ sudo dnf install python3 python3-wheel\n\t$ pip3 install disfv1\n\nrch Linux\n\n\t$ sudo pacman -S python-pip\n\t$ pip install disfv1\n\n### MacOS\n\nDownload a copy of the "Latest Python 3 Release"\nfor Mac OS from\n[python.org](https://www.python.org/downloads/mac-osx/).\nInstall the package, then open a terminal and run:\n\n\t$ pip3 install disfv1\n\n### Windows\n\nDownload a copy of the "Latest Python 3 Release"\nfor Windows from\n[python.org](https://www.python.org/downloads/windows/).\nInstall the package, then open a command prompt and run:\n\n\tC:\\> pip3 install disfv1\n\nFor more detailed information, please refer to the\n[Python package installation documentation](https://packaging.python.org/tutorials/installing-packages/)\nand\n[installing pip with packaging managers](https://packaging.python.org/guides/installing-using-linux-tools/#installing-pip-setuptools-wheel-with-linux-package-managers)\nat\n[packaging.python.org](https://packaging.python.org/).\n\n### Install from Source\n\nIf you would prefer to not use pip, or if your system is provided with\nand older version of Python (eg MacOS), disfv1 can be installed using\nthe included setup.py script. Fetch a copy of the latest source package,\nunpack it and then run the installer as root:\n\n\t$ sudo python ./setup.py install\n\nAlternatively, the main source file can be run directly with a python\ninterpreter without the need to install any files:\n\n\t$ python ./disfv1.py infile.asm outfile.bin\n\n## Links\n\n- FV-1 assembler: \n- Spin FV-1 website: \n- Datasheet: \n- AN0001: \n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ndf-zz/disfv1", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "disfv1", "package_url": "https://pypi.org/project/disfv1/", "platform": "", "project_url": "https://pypi.org/project/disfv1/", "project_urls": { "Homepage": "https://github.com/ndf-zz/disfv1" }, "release_url": "https://pypi.org/project/disfv1/1.0.5/", "requires_dist": null, "requires_python": ">2.6", "summary": "FV-1 Disassembler", "version": "1.0.5" }, "last_serial": 5899832, "releases": { "1.0.4": [ { "comment_text": "", "digests": { "md5": "d13ad37ecf0859e8b6ba138abfb2335e", "sha256": "1f4344691c987e94e87bd1cc461160761626f36f03bb27d9c7fa7469cd98fcc5" }, "downloads": -1, "filename": "disfv1-1.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "d13ad37ecf0859e8b6ba138abfb2335e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">2.6", "size": 19644, "upload_time": "2019-07-23T14:51:53", "url": "https://files.pythonhosted.org/packages/73/b9/4e0ba4cf18f58da9d804ad2ad9e82ba837d6cef86616b65df537e8d62969/disfv1-1.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "be7244496cf9f4f4b6c8830ceb8c499d", "sha256": "9069ed4745f2467822996121077a7517e44cad04dbd6a82aab72d003a483843d" }, "downloads": -1, "filename": "disfv1-1.0.4.tar.gz", "has_sig": false, "md5_digest": "be7244496cf9f4f4b6c8830ceb8c499d", "packagetype": "sdist", "python_version": "source", "requires_python": ">2.6", "size": 6940, "upload_time": "2019-07-23T14:51:55", "url": "https://files.pythonhosted.org/packages/27/cb/a177853af608bfef3b82c6ecb77d7c66f93f4fcaeadf548b47294ca73ddf/disfv1-1.0.4.tar.gz" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "136d7862d0adc4509381aa80cb87f719", "sha256": "049647251a386a5e6c790df6160461fa13fca0ac796bbf256ae7573e6ab6c418" }, "downloads": -1, "filename": "disfv1-1.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "136d7862d0adc4509381aa80cb87f719", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">2.6", "size": 20414, "upload_time": "2019-09-28T14:35:24", "url": "https://files.pythonhosted.org/packages/b0/42/ef5cf566247d1d396ce37966792f15a3c3f7ce108205b2de1277139543dd/disfv1-1.0.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "29d24623f8dba89dd51723f8a7501197", "sha256": "4271443b68a262fbe3c458e0c937e8a89b6c67e5b16c23be9e88d22e870de8df" }, "downloads": -1, "filename": "disfv1-1.0.5.tar.gz", "has_sig": false, "md5_digest": "29d24623f8dba89dd51723f8a7501197", "packagetype": "sdist", "python_version": "source", "requires_python": ">2.6", "size": 8612, "upload_time": "2019-09-28T14:35:26", "url": "https://files.pythonhosted.org/packages/f6/3d/3ecabf1d13f66ec9ed2acee88547aa9533b833e35effa703db28db2b4e9f/disfv1-1.0.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "136d7862d0adc4509381aa80cb87f719", "sha256": "049647251a386a5e6c790df6160461fa13fca0ac796bbf256ae7573e6ab6c418" }, "downloads": -1, "filename": "disfv1-1.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "136d7862d0adc4509381aa80cb87f719", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">2.6", "size": 20414, "upload_time": "2019-09-28T14:35:24", "url": "https://files.pythonhosted.org/packages/b0/42/ef5cf566247d1d396ce37966792f15a3c3f7ce108205b2de1277139543dd/disfv1-1.0.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "29d24623f8dba89dd51723f8a7501197", "sha256": "4271443b68a262fbe3c458e0c937e8a89b6c67e5b16c23be9e88d22e870de8df" }, "downloads": -1, "filename": "disfv1-1.0.5.tar.gz", "has_sig": false, "md5_digest": "29d24623f8dba89dd51723f8a7501197", "packagetype": "sdist", "python_version": "source", "requires_python": ">2.6", "size": 8612, "upload_time": "2019-09-28T14:35:26", "url": "https://files.pythonhosted.org/packages/f6/3d/3ecabf1d13f66ec9ed2acee88547aa9533b833e35effa703db28db2b4e9f/disfv1-1.0.5.tar.gz" } ] }