{"id":17329212,"url":"https://github.com/pfusik/xasm","last_synced_at":"2025-04-11T11:10:48.469Z","repository":{"id":6249109,"uuid":"7481503","full_name":"pfusik/xasm","owner":"pfusik","description":"6502 cross-assembler with original syntax extensions","archived":false,"fork":false,"pushed_at":"2024-06-09T13:00:22.000Z","size":319,"stargazers_count":77,"open_issues_count":0,"forks_count":9,"subscribers_count":16,"default_branch":"master","last_synced_at":"2025-04-03T19:35:15.142Z","etag":null,"topics":["6502","assembler"],"latest_commit_sha":null,"homepage":"","language":"D","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pfusik.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2013-01-07T11:45:56.000Z","updated_at":"2025-03-04T11:06:32.000Z","dependencies_parsed_at":"2024-05-18T20:35:24.891Z","dependency_job_id":"e71d7532-30e4-4f02-9844-2f8ece5d4c8f","html_url":"https://github.com/pfusik/xasm","commit_stats":null,"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pfusik%2Fxasm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pfusik%2Fxasm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pfusik%2Fxasm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pfusik%2Fxasm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pfusik","download_url":"https://codeload.github.com/pfusik/xasm/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248381791,"owners_count":21094528,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["6502","assembler"],"created_at":"2024-10-15T14:46:35.599Z","updated_at":"2025-04-11T11:10:48.448Z","avatar_url":"https://github.com/pfusik.png","language":"D","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![GitHub Actions](https://github.com/pfusik/xasm/actions/workflows/test.yml/badge.svg)](https://github.com/pfusik/xasm/actions/workflows/test.yml)\n\nxasm\n====\n\nxasm is a 6502 cross-assembler with original syntax extensions.\nBy default it generates binaries\nfor [Atari 8-bit computers](http://en.wikipedia.org/wiki/Atari_8-bit_family).\n\nSyntax\n------\n\n6502 assembly code is full of LDA, STA, LDA, STA sequences.\nWith xasm you can use MVA as a shortcut for an LDA/STA pair or even MWA for 16-bit transfers.\nShort branches can be replaced with conditional skip and repeat pseudo-instructions.\nYou can use a pair of instructions with a shared argument.\nThese are just some of the features that help you program in a more concise way.\nLet's look at typical 6502 code (which is also valid in xasm):\n\n        lda #\u003cdest\n        sta ptr\n        lda #\u003edest\n        sta ptr+1\n        ldx #192\n    do_line\n        ldy #39\n    do_byte\n        lda pattern,y\n        sta (ptr),y\n        dey\n        bpl do_byte\n        lda #40\n        clc\n        adc ptr\n        sta ptr\n        bcc skip\n        inc ptr+1\n    skip\n        dex\n        bne do_line\n\nUsing xasm's features this code can be rewritten to:\n\n        mwa     #dest ptr\n        ldx     #192\n    do_line\n        ldy     #39\n        mva:rpl pattern,y (ptr),y-\n        lda     #40\n        add:sta ptr\n        scc:inc ptr+1\n        dex:bne do_line\n\nxasm syntax is an extension of Quick Assembler's (created in 1991 for Atari 8-bit).\nAccumulator shifts should be written as in `asl @`.\nWhitespace is important: it is required before the instruction\nand disallowed in the operands, because it separates a comment from the operand, e.g.\n\n        lda #0   this is a comment, no need for a semicolon\n\nThis may look weird at first, but it enables nice features such as instruction pairs\nand two-argument pseudo-instructions.\n\nUsage\n-----\n\nxasm is a command-line tool.\nTherefore you additionally need a programmer's text editor.\n\nI use [SciTE](http://www.scintilla.org/SciTE.html).\nTo install xasm syntax highlighting and single-keystroke compilation,\ncopy `xasm.properties` to the SciTE directory.\n\nFor single source file programs, press Ctrl+F7 to compile.\nYou can double-click error messages to go to the incorrect line.\nPress F5 to run the program in the emulator.\n\nFor larger projects, I use GNU Make. Press F7 to build (and possibly run)\na project as described in the `Makefile`. You can find my Makefiles in\n[my repositories](https://github.com/pfusik?tab=repositories) on GitHub.\n\nIf you prefer VIM, see a link below.\n\nPoetic License\n--------------\n\nThis work 'as-is' we provide.  \nNo warranty express or implied.  \nWe've done our best,  \nto debug and test.  \nLiability for damages denied.\n\nPermission is granted hereby,  \nto copy, share, and modify.  \nUse as is fit,  \nfree or for profit.  \nThese rights, on this notice, rely.  \n\nDownload\n--------\n\n[xasm 3.2.1](https://github.com/pfusik/xasm/releases) for Windows, macOS, Ubuntu and Fedora.\n\nLinks\n-----\n\n* [Atari800](https://atari800.github.io/) - portable emulator of Atari 8-bit computers\n* [Atari XL/XE Source Archive](http://sources.pigwa.net/) - source code of Atari demos, utilities and games\n* [cc65](https://cc65.github.io/) - C cross-compiler targeting 6502-based systems\n* [MADS](http://mads.atari8.info/) - another 6502/65816 cross-assembler, partially supporting xasm's syntax\n* [vim-xasm](https://github.com/lybrown/vim-xasm) - VIM syntax highlighting for xasm\n* [WUDSN IDE](http://wudsn.com/) - Eclipse plugin, front-end to several 6502 cross-assemblers, including xasm\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpfusik%2Fxasm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpfusik%2Fxasm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpfusik%2Fxasm/lists"}