{ "info": { "author": "Rob McMullen", "author_email": "feedback@playermissile.com", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License (GPL)", "Programming Language :: Python :: 3.6", "Topic :: Software Development :: Libraries", "Topic :: Utilities" ], "description": "===========\nAsmGen\n===========\n\n\n\nAbstract\n========\n\nAsmGen - 6502 assembly code generator for sprites, fonts, and images for Apple\n][ hi-res and Atari 8-bit computers\n\nThis program creates 6502 (or 65c02) code for several tasks, including a high\nspeed font rendering engine and a sprite compiler. The font rendered can plot\nfont glyphs (or game tiles) much faster than normal tile drawing routines. The\nsprite complier (based on `HiSprite\n`_) hardcodes sprite data in unrolled\nloops for each shifted shape. By removing image lookups and loops, sprites can\nbe drawn much faster than otherwise possible.\n\nOther utilities include generating code for reporting screen damage, screen\nclearing, screen scrolling, and generation for all the row/column lookup tables\nfor each supported bitmap mode.\n\n\nInstallation\n============\n\nThe autogenerator code is written in Python and should run on any platform\nthat can use python. It requires:\n\n* python 3.6 (and above)\n* numpy\n* pypng\n\nthe latter two of which will be installed automatically when using the Python\npackage manager::\n\n pip install asmgen\n\nStarting with version 2.0, python 2 support has been dropped.\n\n\nInstalling From Source\n----------------------\n\nTo contribute bug fixes or enhancements, it would be useful to get an account\non github and clone the source to your own account. You can then send me pull\nrequests for any modifications you would like to see included.\n\nIf you just want to clone the source to look at it, use::\n\n git clone https://github.com/robmcmullen/asmgen.git\n\n\nUsing the Code Generator\n==========================\n\nThe code generator is a command line tool that creates text files that can be\nused as source code for assemblers. Its general usage is::\n\n asmgen.py [OPTIONS] -o ROOTNAME\n\nwhich will create one file called ''ROOTNAME-driver.s'' and one or more files\ncontaining generated code as specified by ''OPTIONS''. This driver file is a\nconvenience that only exists to include all the other generated files. This\nmeans that your build process only needs to include ``ROOTNAME-driver.s``\ninstead of needing to be updated if you add aditional code generation options.\n\nAssembler Support\n-----------------\n\nCode generation is supported for the following assemblers:\n\n* cc65 (the default)\n* MAC/65\n\nContributors welcome for other assemblers, like Merlin, MADS, dasm, xasm, etc.\n\n\nCode Generation Capabilities\n----------------------------\n\n* Transposed font code generator\n* Sprite compiler\n* Screen clearing\n* Screen vertical scrolling\n* Hi-res row lookup table generation\n\nExperimental (and unsupported)\n------------------------------\n\n* Font compiler (slower than the transposed font code)\n* Run-length encoding of images\n* Merge two hi-res images, switching images at specified scan line\n\n\nTransposed Font\n===============\n\nTo generate source code for a fast font renderer, you will need a binary font\nfile. The code generator will embed the binary data as ``.byte`` directives (or equivalent for the chosen assembler) because the transposition requires reordering of the data. The usage is::\n\n asmgen.py -f FONTFILENAME -o ROOTNAME\n\nIt will create two source files, the ``ROOTNAME-driver.s`` file described\nabove, and the file of interest called ``ROOTNAME-fastfont.s`` which contains\nthe generated code and data for use of the transposed font. The entry point\nlook like this::\n\n FASTFONT_H1 ; A = character, X = column, Y = row; A is clobbered, X&Y are not\n pha\n lda FASTFONT_H1_JMP_HI,y\n sta FASTFONT_H1_JMP+2\n lda FASTFONT_H1_JMP_LO,y\n sta FASTFONT_H1_JMP+1\n sty scratch_0\n pla\n tay\n FASTFONT_H1_JMP\n jmp $ffff\n\n``FASTFONT_H1_JMP`` is a jump table, broken into high and low bytes.\n\nThe input is described in the comment: the glyph in the accumulator, column\nvalue (0-39) in the X register, and row value (0-23) in the Y register. Note\nthat no error checking is done here, so it will happily trash data in some\nunintended part of RAM if you pass it values that are out of range.\n\nUse it like this::\n\n lda #65 ; ASCII character 'A'\n ldx #20 ; column 20 (counting from zero)\n ldy #5 ; row 5 (counting from zero)\n jsr FASTFONT_H1\n\n\n\nFork me!\n========\n\nThe source is free and open, and lives on `github\n`_, so clone and enhance at will!\n\n\nHistory\n=======\n\nThis program started life as a friendly fork of Quinn Dunki's `HiSprite\n`_ that she presented at KansasFest\n2017.\n\nHer conclusion was that it was not that practical for the Apple II because of\nthe limited memory and the number of sprite shifts needed. I wanted to port\nthis to the Atari because it would require fewer shifted shapes in most of the\ngraphics modes (e.g. only 4 shifted shapes for the commonly used ANTIC modes 13\nand 14) She told me that she was unlikely to continue work on sprite compiling\nbut encouraged me to continue development.\n\n\nAdditional Credits\n==================\n\nThe sample font is modified from Michael Pohoreski's `excellent tutorial on\nApple II fonts `_.\n\n\nLicense\n==========\n\nAsmGen, the 6502 code generator sponsored by the Player/Missile Podcast\nCopyright (c) 2017-2018 Rob McMullen\n\nThis program is free software; you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation; either version 3 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License along\nwith this program; if not, write to the Free Software Foundation, Inc.,\n51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n\nGenerated Code License\n----------------------\n\nWhile the code for AsmGen itself is licensed under the GPLv3, the code it\nproduces is licensed under the the Creative Commons Attribution 4.0\nInternational (CC BY 4.0), so you are free to use the generated code for\ncommercial or non-commercial purposes.", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/robmcmullen/asmgen", "keywords": "", "license": "GPL", "maintainer": "", "maintainer_email": "", "name": "asmgen", "package_url": "https://pypi.org/project/asmgen/", "platform": "", "project_url": "https://pypi.org/project/asmgen/", "project_urls": { "Homepage": "https://github.com/robmcmullen/asmgen" }, "release_url": "https://pypi.org/project/asmgen/2.0/", "requires_dist": null, "requires_python": "", "summary": "6502 code generator for Apple ][ and Atari 8-bit", "version": "2.0" }, "last_serial": 4097751, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "edc0ba2ed3c2e6d5a286bc80b8b4b4b4", "sha256": "071027f91d6a1d4fb07153e165b94bd0a985d51da128dbf9c39f6fa8d53f7860" }, "downloads": -1, "filename": "asmgen-1.0.tar.gz", "has_sig": false, "md5_digest": "edc0ba2ed3c2e6d5a286bc80b8b4b4b4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14804, "upload_time": "2017-08-17T17:38:59", "url": "https://files.pythonhosted.org/packages/55/3c/1b4a6160d0675c41cfefcd8e2f5825fd7e279dbe69cb14ad18fcb1c20a92/asmgen-1.0.tar.gz" } ], "2.0": [ { "comment_text": "", "digests": { "md5": "cd5b33f099f3cf2548d954a43cded39b", "sha256": "0e5c2ded88d13c83f2c6a335817ffdbd32bd0e560c65611c7805df71cee35ee5" }, "downloads": -1, "filename": "asmgen-2.0.tar.gz", "has_sig": false, "md5_digest": "cd5b33f099f3cf2548d954a43cded39b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20091, "upload_time": "2018-07-24T17:17:11", "url": "https://files.pythonhosted.org/packages/06/d1/fbf0d1603e485ab4b80534015e21c9aa3cfab4f5ff8dc8989d9657b65b1c/asmgen-2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "cd5b33f099f3cf2548d954a43cded39b", "sha256": "0e5c2ded88d13c83f2c6a335817ffdbd32bd0e560c65611c7805df71cee35ee5" }, "downloads": -1, "filename": "asmgen-2.0.tar.gz", "has_sig": false, "md5_digest": "cd5b33f099f3cf2548d954a43cded39b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20091, "upload_time": "2018-07-24T17:17:11", "url": "https://files.pythonhosted.org/packages/06/d1/fbf0d1603e485ab4b80534015e21c9aa3cfab4f5ff8dc8989d9657b65b1c/asmgen-2.0.tar.gz" } ] }