mirror of
https://github.com/pfusik/xasm.git
synced 2025-07-16 16:24:04 +00:00
Compare commits
85 Commits
xasm-3.0.2
...
master
Author | SHA1 | Date | |
---|---|---|---|
|
f5903fb199 | ||
|
8eb2a5ae6f | ||
|
9732817a0b | ||
|
70c907bae6 | ||
|
7a666799ac | ||
|
95136d1546 | ||
|
ca5e88950f | ||
|
138331193a | ||
|
30c96357bc | ||
|
83d2f8ff1d | ||
|
9aae1ad4c4 | ||
|
f33c112ac6 | ||
|
57661276c2 | ||
|
a4225b6128 | ||
|
1da9f77458 | ||
|
2b7d21ae43 | ||
|
2f67b3bab4 | ||
|
afb9f7830e | ||
|
95cb5ae592 | ||
|
8f6621f079 | ||
|
52982169df | ||
|
8c7ef1a922 | ||
|
1a90ca04d3 | ||
|
73b382f9b7 | ||
|
7ba3f9f597 | ||
|
b815a448cd | ||
|
274dda9dd2 | ||
|
da58ad7950 | ||
|
52ef8c05d6 | ||
|
6f25038d95 | ||
|
57ef9b5c83 | ||
|
8f06fec50c | ||
|
d50d484e1f | ||
|
65a2c1fbdd | ||
|
d3908ec95e | ||
|
647cf9f3cf | ||
|
819701b9be | ||
|
301b904f60 | ||
|
420a83a897 | ||
|
2f8e97499d | ||
|
7ad066fc6f | ||
|
a0bfe1366d | ||
|
384643ab84 | ||
|
177ece15fc | ||
|
99099938b5 | ||
|
cb92f715a9 | ||
|
110d2c4dad | ||
|
ce134af833 | ||
|
92eac212cc | ||
|
90276dbe86 | ||
|
2e43507088 | ||
|
cc0eaf0e48 | ||
|
2dad630a75 | ||
|
36a4853b54 | ||
|
c4fc8ef51a | ||
|
ef297a78c7 | ||
|
061088aa62 | ||
|
dd3466a947 | ||
|
d2bd24a128 | ||
|
8d0870d1a1 | ||
|
d7c22cec84 | ||
|
b42f9dc2bf | ||
|
5680efc7f5 | ||
|
8c6ff185af | ||
|
5970a93423 | ||
|
389f7446e0 | ||
|
3cec1c8ee8 | ||
|
60d28a5c24 | ||
|
de22438740 | ||
|
cc5568795e | ||
|
d1276f3d97 | ||
|
2d8b3cde17 | ||
|
c357fba52c | ||
|
61327c8e5b | ||
|
167c441fed | ||
|
3a845f9a4f | ||
|
50bae061f7 | ||
|
520145268a | ||
|
059b631aab | ||
|
f2e7796c87 | ||
|
61bffbb8ec | ||
|
a2d6f9c864 | ||
|
3fc9b5c0f5 | ||
|
406354e06c | ||
|
6992795f55 |
16
.github/workflows/test.yml
vendored
Normal file
16
.github/workflows/test.yml
vendored
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
name: tests
|
||||||
|
on: [push, pull_request]
|
||||||
|
jobs:
|
||||||
|
test:
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
os: [windows-latest, ubuntu-latest]
|
||||||
|
dc: [dmd-latest, ldc-latest]
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@main
|
||||||
|
- uses: dlang-community/setup-dlang@v1
|
||||||
|
with:
|
||||||
|
compiler: ${{ matrix.dc }}
|
||||||
|
- run: dub build
|
||||||
|
- run: dub test
|
10
.gitignore
vendored
Normal file
10
.gitignore
vendored
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
/xasm
|
||||||
|
/xasm.exe
|
||||||
|
/xasm.obj
|
||||||
|
/xasm.html
|
||||||
|
/xasm.1
|
||||||
|
/xasm-test-*
|
||||||
|
/MANIFEST
|
||||||
|
/.dub
|
||||||
|
/.project
|
||||||
|
/signed
|
127
Makefile
127
Makefile
@@ -1,53 +1,74 @@
|
|||||||
VERSION = 3.0.2
|
VERSION = 3.2.1
|
||||||
|
|
||||||
ASCIIDOC = asciidoc -o $@ -a doctime
|
prefix = /usr/local
|
||||||
ASCIIDOC_POSTPROCESS = perl -pi.bak -e "s/527bbd;/20a0a0;/;END{unlink '$@.bak'}" $@
|
bindir = $(prefix)/bin
|
||||||
ASCIIDOC_VALIDATE = xmllint --valid --noout --nonet $@
|
mandir = $(prefix)/share/man/man1
|
||||||
RM = rm -f
|
ifeq ($(OS),Windows_NT)
|
||||||
ZIP = 7z a -mx=9 -tzip $@
|
EXEEXT = .exe
|
||||||
|
endif
|
||||||
all: xasm.exe xasm.html
|
|
||||||
|
SEVENZIP = 7z a -mx=9 -bd -bso0
|
||||||
xasm.exe: xasm.d
|
|
||||||
dmd -O -release $<
|
all: xasm$(EXEEXT) xasm.html
|
||||||
|
|
||||||
xasm.html: xasm.1.txt
|
xasm$(EXEEXT): source/app.d
|
||||||
$(ASCIIDOC) -d manpage $<
|
dmd -of$@ -O -release $<
|
||||||
$(ASCIIDOC_POSTPROCESS)
|
|
||||||
$(ASCIIDOC_VALIDATE)
|
xasm.html: xasm.1.asciidoc
|
||||||
|
asciidoc -o - $< | sed -e "s/527bbd;/20a0a0;/" >$@
|
||||||
dist: xasmpage-$(VERSION).zip
|
|
||||||
|
xasm.1: xasm.1.asciidoc
|
||||||
xasmpage-$(VERSION).zip: xasm261.zip xasm-$(VERSION)-src.zip xasm-$(VERSION)-windows.zip inflate6502.zip index.html inflate.html scite.png
|
a2x -f manpage $<
|
||||||
$(RM) $@
|
|
||||||
$(ZIP) $^
|
install: xasm xasm.1
|
||||||
|
mkdir -p $(DESTDIR)$(bindir) && install xasm $(DESTDIR)$(bindir)/xasm
|
||||||
xasm-$(VERSION)-src.zip: xasm.d Makefile xasm.1.txt
|
mkdir -p $(DESTDIR)$(mandir) && install -m 644 xasm.1 $(DESTDIR)$(mandir)/xasm.1
|
||||||
$(RM) $@
|
|
||||||
$(ZIP) $^
|
uninstall:
|
||||||
|
$(RM) $(DESTDIR)$(bindir)/xasm $(DESTDIR)$(mandir)/xasm.1
|
||||||
xasm-$(VERSION)-windows.zip: xasm.exe xasm.html xasm.properties
|
|
||||||
$(RM) $@
|
install-scite: xasm.properties
|
||||||
$(ZIP) $^
|
mkdir -p $(DESTDIR)$(prefix)/share/scite && install -m 644 $< $(DESTDIR)$(prefix)/share/scite/xasm.properties
|
||||||
|
|
||||||
inflate6502.zip: inflate.asx gzip2deflate.c gzip2deflate.exe
|
uninstall-scite:
|
||||||
$(RM) $@
|
$(RM) $(DESTDIR)$(prefix)/share/scite/xasm.properties
|
||||||
$(ZIP) $^
|
|
||||||
|
dist: srcdist ../xasm-$(VERSION)-windows.zip
|
||||||
gzip2deflate.exe: gzip2deflate.c
|
|
||||||
mingw32-gcc -s -O2 -Wall -o $@ $<
|
srcdist: MANIFEST
|
||||||
|
$(RM) ../xasm-$(VERSION).tar.gz && /usr/bin/tar -c --numeric-owner --owner=0 --group=0 --mode=644 -T MANIFEST --transform=s,,xasm-$(VERSION)/, | $(SEVENZIP) -tgzip -si ../xasm-$(VERSION).tar.gz
|
||||||
index.html: index.txt
|
|
||||||
$(ASCIIDOC) $<
|
MANIFEST:
|
||||||
$(ASCIIDOC_POSTPROCESS)
|
if test -e .git; then (git ls-files | grep -vF .gitignore && echo MANIFEST) | sort | dos2unix >$@ ; fi
|
||||||
$(ASCIIDOC_VALIDATE)
|
|
||||||
|
../xasm-$(VERSION)-windows.zip: xasm.exe xasm.html xasm.properties signed
|
||||||
inflate.html: inflate.txt
|
$(RM) $@ && $(SEVENZIP) -tzip $@ xasm.exe xasm.html xasm.properties
|
||||||
$(ASCIIDOC) $<
|
|
||||||
$(ASCIIDOC_POSTPROCESS)
|
signed: xasm$(EXEEXT)
|
||||||
$(ASCIIDOC_VALIDATE)
|
signtool sign -d "xasm $(VERSION)" -n "Open Source Developer, Piotr Fusik" -tr http://time.certum.pl -fd sha256 -td sha256 $< && touch $@
|
||||||
|
|
||||||
clean:
|
deb:
|
||||||
$(RM) xasmpage-$(VERSION).zip xasm-$(VERSION)-src.zip xasm-$(VERSION)-windows.zip xasm.exe xasm.html inflate6502.zip gzip2deflate.exe index.html inflate.html
|
debuild -b -us -uc
|
||||||
|
|
||||||
.DELETE_ON_ERROR:
|
osx: ../xasm-$(VERSION)-macos.dmg
|
||||||
|
|
||||||
|
../xasm-$(VERSION)-macos.dmg: osx/xasm osx/bin
|
||||||
|
ifdef PORK_CODESIGNING_IDENTITY
|
||||||
|
codesign --options runtime -f -s $(PORK_CODESIGNING_IDENTITY) osx/xasm
|
||||||
|
endif
|
||||||
|
hdiutil create -volname xasm-$(VERSION)-macos -srcfolder osx -format UDBZ -fs HFS+ -imagekey bzip2-level=3 -ov $@
|
||||||
|
/Applications/Xcode.app/Contents/Developer/usr/bin/notarytool submit --wait --keychain-profile recoilnotarization $@
|
||||||
|
|
||||||
|
osx/xasm: source/app.d
|
||||||
|
mkdir -p osx && dmd -of$@ -O -release $< && rm -f osx/xasm.o
|
||||||
|
|
||||||
|
osx/bin:
|
||||||
|
mkdir -p osx && ln -s /usr/local/bin $@
|
||||||
|
|
||||||
|
clean:
|
||||||
|
$(RM) xasm xasm.exe xasm.obj xasm.html xasm.1 signed
|
||||||
|
rm -rf osx
|
||||||
|
|
||||||
|
.PHONY: all install uninstall install-scite uninstall-scite dist srcdist MANIFEST deb osx clean
|
||||||
|
|
||||||
|
.DELETE_ON_ERROR:
|
||||||
|
112
README.md
Normal file
112
README.md
Normal file
@@ -0,0 +1,112 @@
|
|||||||
|
[](https://github.com/pfusik/xasm/actions/workflows/test.yml)
|
||||||
|
|
||||||
|
xasm
|
||||||
|
====
|
||||||
|
|
||||||
|
xasm is a 6502 cross-assembler with original syntax extensions.
|
||||||
|
By default it generates binaries
|
||||||
|
for [Atari 8-bit computers](http://en.wikipedia.org/wiki/Atari_8-bit_family).
|
||||||
|
|
||||||
|
Syntax
|
||||||
|
------
|
||||||
|
|
||||||
|
6502 assembly code is full of LDA, STA, LDA, STA sequences.
|
||||||
|
With xasm you can use MVA as a shortcut for an LDA/STA pair or even MWA for 16-bit transfers.
|
||||||
|
Short branches can be replaced with conditional skip and repeat pseudo-instructions.
|
||||||
|
You can use a pair of instructions with a shared argument.
|
||||||
|
These are just some of the features that help you program in a more concise way.
|
||||||
|
Let's look at typical 6502 code (which is also valid in xasm):
|
||||||
|
|
||||||
|
lda #<dest
|
||||||
|
sta ptr
|
||||||
|
lda #>dest
|
||||||
|
sta ptr+1
|
||||||
|
ldx #192
|
||||||
|
do_line
|
||||||
|
ldy #39
|
||||||
|
do_byte
|
||||||
|
lda pattern,y
|
||||||
|
sta (ptr),y
|
||||||
|
dey
|
||||||
|
bpl do_byte
|
||||||
|
lda #40
|
||||||
|
clc
|
||||||
|
adc ptr
|
||||||
|
sta ptr
|
||||||
|
bcc skip
|
||||||
|
inc ptr+1
|
||||||
|
skip
|
||||||
|
dex
|
||||||
|
bne do_line
|
||||||
|
|
||||||
|
Using xasm's features this code can be rewritten to:
|
||||||
|
|
||||||
|
mwa #dest ptr
|
||||||
|
ldx #192
|
||||||
|
do_line
|
||||||
|
ldy #39
|
||||||
|
mva:rpl pattern,y (ptr),y-
|
||||||
|
lda #40
|
||||||
|
add:sta ptr
|
||||||
|
scc:inc ptr+1
|
||||||
|
dex:bne do_line
|
||||||
|
|
||||||
|
xasm syntax is an extension of Quick Assembler's (created in 1991 for Atari 8-bit).
|
||||||
|
Accumulator shifts should be written as in `asl @`.
|
||||||
|
Whitespace is important: it is required before the instruction
|
||||||
|
and disallowed in the operands, because it separates a comment from the operand, e.g.
|
||||||
|
|
||||||
|
lda #0 this is a comment, no need for a semicolon
|
||||||
|
|
||||||
|
This may look weird at first, but it enables nice features such as instruction pairs
|
||||||
|
and two-argument pseudo-instructions.
|
||||||
|
|
||||||
|
Usage
|
||||||
|
-----
|
||||||
|
|
||||||
|
xasm is a command-line tool.
|
||||||
|
Therefore you additionally need a programmer's text editor.
|
||||||
|
|
||||||
|
I use [SciTE](http://www.scintilla.org/SciTE.html).
|
||||||
|
To install xasm syntax highlighting and single-keystroke compilation,
|
||||||
|
copy `xasm.properties` to the SciTE directory.
|
||||||
|
|
||||||
|
For single source file programs, press Ctrl+F7 to compile.
|
||||||
|
You can double-click error messages to go to the incorrect line.
|
||||||
|
Press F5 to run the program in the emulator.
|
||||||
|
|
||||||
|
For larger projects, I use GNU Make. Press F7 to build (and possibly run)
|
||||||
|
a project as described in the `Makefile`. You can find my Makefiles in
|
||||||
|
[my repositories](https://github.com/pfusik?tab=repositories) on GitHub.
|
||||||
|
|
||||||
|
If you prefer VIM, see a link below.
|
||||||
|
|
||||||
|
Poetic License
|
||||||
|
--------------
|
||||||
|
|
||||||
|
This work 'as-is' we provide.
|
||||||
|
No warranty express or implied.
|
||||||
|
We've done our best,
|
||||||
|
to debug and test.
|
||||||
|
Liability for damages denied.
|
||||||
|
|
||||||
|
Permission is granted hereby,
|
||||||
|
to copy, share, and modify.
|
||||||
|
Use as is fit,
|
||||||
|
free or for profit.
|
||||||
|
These rights, on this notice, rely.
|
||||||
|
|
||||||
|
Download
|
||||||
|
--------
|
||||||
|
|
||||||
|
[xasm 3.2.1](https://github.com/pfusik/xasm/releases) for Windows, macOS, Ubuntu and Fedora.
|
||||||
|
|
||||||
|
Links
|
||||||
|
-----
|
||||||
|
|
||||||
|
* [Atari800](https://atari800.github.io/) - portable emulator of Atari 8-bit computers
|
||||||
|
* [Atari XL/XE Source Archive](http://sources.pigwa.net/) - source code of Atari demos, utilities and games
|
||||||
|
* [cc65](https://cc65.github.io/) - C cross-compiler targeting 6502-based systems
|
||||||
|
* [MADS](http://mads.atari8.info/) - another 6502/65816 cross-assembler, partially supporting xasm's syntax
|
||||||
|
* [vim-xasm](https://github.com/lybrown/vim-xasm) - VIM syntax highlighting for xasm
|
||||||
|
* [WUDSN IDE](http://wudsn.com/) - Eclipse plugin, front-end to several 6502 cross-assemblers, including xasm
|
23
debian/changelog
vendored
Normal file
23
debian/changelog
vendored
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
xasm (3.2.1-1) UNRELEASED; urgency=low
|
||||||
|
|
||||||
|
* New release.
|
||||||
|
|
||||||
|
-- Piotr Fusik <fox@scene.pl> Thu, 8 Dec 2022 09:30:29 +0100
|
||||||
|
|
||||||
|
xasm (3.2.0-1) UNRELEASED; urgency=low
|
||||||
|
|
||||||
|
* New release.
|
||||||
|
|
||||||
|
-- Piotr Fusik <fox@scene.pl> Tue, 22 Jun 2021 20:59:45 +0200
|
||||||
|
|
||||||
|
xasm (3.1.1-1) UNRELEASED; urgency=low
|
||||||
|
|
||||||
|
* New release.
|
||||||
|
|
||||||
|
-- Piotr Fusik <fox@scene.pl> Wed, 20 Nov 2019 13:30:11 +0100
|
||||||
|
|
||||||
|
xasm (3.1.0-1) UNRELEASED; urgency=low
|
||||||
|
|
||||||
|
* First deb packaging.
|
||||||
|
|
||||||
|
-- Piotr Fusik <fox@scene.pl> Sun, 20 Jul 2014 19:08:15 +0200
|
1
debian/compat
vendored
Normal file
1
debian/compat
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
10
|
16
debian/control
vendored
Normal file
16
debian/control
vendored
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
Source: xasm
|
||||||
|
Maintainer: Piotr Fusik <fox@scene.pl>
|
||||||
|
Section: devel
|
||||||
|
Priority: optional
|
||||||
|
Standards-Version: 4.6.0
|
||||||
|
Build-Depends: debhelper (>= 7), dmd (>= 2), asciidoc-base
|
||||||
|
|
||||||
|
Package: xasm
|
||||||
|
Architecture: any
|
||||||
|
Depends: ${shlibs:Depends}
|
||||||
|
Description: 6502 cross-assembler with original syntax extensions.
|
||||||
|
|
||||||
|
Package: xasm-scite
|
||||||
|
Architecture: all
|
||||||
|
Depends: scite
|
||||||
|
Description: xasm syntax highlighting and single keystroke compilation for SciTE.
|
7
debian/copyright
vendored
Normal file
7
debian/copyright
vendored
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
||||||
|
Name: xasm
|
||||||
|
Source: https://github.com/pfusik/xasm
|
||||||
|
|
||||||
|
Files: *
|
||||||
|
Copyright: 1998-2021 Piotr Fusik <fox@scene.pl>
|
||||||
|
License: Poetic
|
6
debian/rules
vendored
Normal file
6
debian/rules
vendored
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
#!/usr/bin/make -f
|
||||||
|
%:
|
||||||
|
dh $@
|
||||||
|
|
||||||
|
override_dh_auto_install:
|
||||||
|
$(MAKE) DESTDIR=$$(pwd)/debian/tmp prefix=/usr install install-scite
|
1
debian/xasm-scite.install
vendored
Normal file
1
debian/xasm-scite.install
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
usr/share/scite/xasm.properties
|
2
debian/xasm.install
vendored
Normal file
2
debian/xasm.install
vendored
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
usr/bin/xasm
|
||||||
|
usr/share/man/man1/xasm.1
|
5
dub.sdl
Normal file
5
dub.sdl
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
name "xasm"
|
||||||
|
description "6502 cross-assembler with original syntax extensions"
|
||||||
|
authors "Piotr Fusik"
|
||||||
|
copyright "Copyright © 1998-2021, Piotr Fusik"
|
||||||
|
license "poetic"
|
File diff suppressed because it is too large
Load Diff
112
www/index.txt
112
www/index.txt
@@ -1,112 +0,0 @@
|
|||||||
xasm - 6502 cross-assembler
|
|
||||||
===========================
|
|
||||||
|
|
||||||
xasm is a free tool for programming
|
|
||||||
http://en.wikipedia.org/wiki/Atari_8-bit_family[Atari 8-bit family computers].
|
|
||||||
|
|
||||||
History
|
|
||||||
-------
|
|
||||||
|
|
||||||
First version of xasm was written in 1998. I needed a cross-assembler
|
|
||||||
that could understand the syntax of Quick Assembler
|
|
||||||
which I used for 8-bit Atari programming before I got a PC.
|
|
||||||
Initially xasm supported the syntax of QA and nothing more.
|
|
||||||
I quickly realized that I could extend the syntax to make it more expressive.
|
|
||||||
This led to xasm 2.0, still in 1998. I added some more features
|
|
||||||
next year. In 2002 I released many versions which contained
|
|
||||||
mostly bugfixes. In 2005 there were some minor enhancements and bug fixes,
|
|
||||||
as well as the whole assembler was rewritten from the x86 assembly language
|
|
||||||
it was initially written in to the http://www.digitalmars.com/d/[D programming language].
|
|
||||||
Current version 3.0.2 was released 17th October 2009.
|
|
||||||
|
|
||||||
Syntax
|
|
||||||
------
|
|
||||||
|
|
||||||
6502 assembler code is usually full of LDA, STA, LDA, STA sequences.
|
|
||||||
With xasm you can use MVA as a shortcut for LDA/STA pair
|
|
||||||
or even MWA for 16-bit transfers. You can avoid defining labels
|
|
||||||
when you need short jumps, thanks to conditional skip
|
|
||||||
and repeat pseudo-instructions. You can put two instructions
|
|
||||||
that share their argument in one line.
|
|
||||||
These are just some of the features that help you program
|
|
||||||
in a more concise way. Let's look at typical 6502 code
|
|
||||||
(which is also valid in xasm):
|
|
||||||
|
|
||||||
-----------------------------
|
|
||||||
lda #<dest
|
|
||||||
sta ptr
|
|
||||||
lda #>dest
|
|
||||||
sta ptr+1
|
|
||||||
ldx #192
|
|
||||||
do_line
|
|
||||||
ldy #39
|
|
||||||
do_byte
|
|
||||||
lda pattern,y
|
|
||||||
sta (ptr),y
|
|
||||||
dey
|
|
||||||
bpl do_byte
|
|
||||||
lda #40
|
|
||||||
clc
|
|
||||||
adc ptr
|
|
||||||
sta ptr
|
|
||||||
bcc skip
|
|
||||||
inc ptr+1
|
|
||||||
skip
|
|
||||||
dex
|
|
||||||
bne do_line
|
|
||||||
-----------------------------
|
|
||||||
|
|
||||||
Using xasm's features this code can be rewritten to:
|
|
||||||
|
|
||||||
-----------------------------
|
|
||||||
mwa #dest ptr
|
|
||||||
ldx #192
|
|
||||||
do_line
|
|
||||||
ldy #39
|
|
||||||
mva:rpl pattern,y (ptr),y-
|
|
||||||
lda #40
|
|
||||||
add:sta ptr
|
|
||||||
scc:inc ptr+1
|
|
||||||
dex:bne do_line
|
|
||||||
-----------------------------
|
|
||||||
|
|
||||||
|
|
||||||
Usage
|
|
||||||
-----
|
|
||||||
|
|
||||||
xasm is a command-line tool.
|
|
||||||
Therefore you additionally need a programmer's text editor.
|
|
||||||
|
|
||||||
I use http://www.scintilla.org/SciTE.html[SciTE].
|
|
||||||
Syntax highlighting definition for it is included with xasm.
|
|
||||||
To install it, copy `xasm.properties` to the SciTE directory,
|
|
||||||
select _Options / Open Global Options File_, type `import xasm`
|
|
||||||
at the end and save the global configuration file.
|
|
||||||
|
|
||||||
image::scite.png[xasm code in SciTE]
|
|
||||||
|
|
||||||
Download
|
|
||||||
--------
|
|
||||||
|
|
||||||
- link:xasm-3.0.2-windows.zip[xasm 3.0.2 for Windows]
|
|
||||||
- link:xasm-3.0.2-src.zip[xasm 3.0.2 source code]
|
|
||||||
- link:xasm261.zip[xasm 2.6.1 for DOS]
|
|
||||||
|
|
||||||
For other systems, such as GNU/Linux and MacOS X, install a D 1.x compiler
|
|
||||||
and compile xasm from source code.
|
|
||||||
|
|
||||||
Inflate
|
|
||||||
-------
|
|
||||||
|
|
||||||
Do you need a good decompression routine for 6502?
|
|
||||||
See my link:inflate.html[inflate routine].
|
|
||||||
|
|
||||||
Links
|
|
||||||
-----
|
|
||||||
|
|
||||||
- http://atari800.sourceforge.net/[Atari800 emulator] - portable emulator of Atari 8-bit computers
|
|
||||||
- http://sources.pigwa.net/[Atari XL/XE Source Archive] - source code of Atari demos, utilities and games
|
|
||||||
- http://www.cc65.org/[cc65] - C cross-compiler targeting 6502-based systems
|
|
||||||
- http://epi.atari8.info/hcasm.php[HardCore Assembler] - 6502/65816 cross-assembler, partially supporting xasm's syntax
|
|
||||||
- http://mads.atari8.info/[MADS] - another 6502/65816 cross-assembler, partially supporting xasm's syntax
|
|
||||||
- http://wudsn.com/[WUDSN IDE] - Eclipse plugin, front-end to several 6502 cross-assemblers including xasm
|
|
BIN
www/scite.png
BIN
www/scite.png
Binary file not shown.
Before Width: | Height: | Size: 24 KiB |
File diff suppressed because it is too large
Load Diff
@@ -1,40 +1,42 @@
|
|||||||
# xasm settings for SciTE (http://www.scintilla.org/SciTE.html)
|
# xasm settings for SciTE (http://www.scintilla.org/SciTE.html)
|
||||||
|
|
||||||
file.patterns.asx=*.asx
|
file.patterns.xasm=*.asx
|
||||||
filter.asx=xasm (asx)|$(file.patterns.asm)|
|
filter.xasm=xasm (asx)|$(file.patterns.xasm)|
|
||||||
lexer.$(file.patterns.asx)=asm
|
*filter.xasm=$(filter.xasm)
|
||||||
|
lexer.$(file.patterns.xasm)=asm
|
||||||
keywords.$(file.patterns.asx)= \
|
*language.xasm=xasm|asx||
|
||||||
adc add and asl bcc bcs beq bit \
|
|
||||||
bmi bne bpl brk bvc bvs clc cld \
|
keywords.$(file.patterns.xasm)= \
|
||||||
cli clv cmp cpx cpy dec dex dey \
|
adc add and asl bcc bcs beq bit \
|
||||||
dta eif eli els end eor equ ert \
|
bmi bne bpl brk bvc bvs clc cld \
|
||||||
icl ift inc ini ins inw inx iny \
|
cli clv cmp cpx cpy dec dex dey \
|
||||||
jcc jcs jeq jmi jmp jne jpl jsr \
|
dta eif eli els end eor equ ert \
|
||||||
jvc jvs lda ldx ldy lsr mva mvx \
|
icl ift inc ini ins inw inx iny \
|
||||||
mvy mwa mwx mwy nop opt ora org \
|
jcc jcs jeq jmi jmp jne jpl jsr \
|
||||||
pha php pla plp rcc rcs req rmi \
|
jvc jvs lda ldx ldy lsr mva mvx \
|
||||||
rne rol ror rpl rti rts run rvc \
|
mvy mwa mwx mwy nop opt ora org \
|
||||||
rvs sbc scc scs sec sed sei seq \
|
pha php pla plp rcc rcs req rmi \
|
||||||
smi sne spl sta stx sty sub svc \
|
rne rol ror rpl rti rts run rvc \
|
||||||
svs tax tay tsx txa txs tya
|
rvs sbc scc scs sec sed sei seq \
|
||||||
|
smi sne spl sta stx sty sub svc \
|
||||||
comment.block.asm=;
|
svs tax tay tsx txa txs tya
|
||||||
|
|
||||||
style.asm.32=
|
comment.block.asm=;
|
||||||
style.asm.1=$(colour.code.comment.line)
|
|
||||||
style.asm.2=
|
style.asm.32=
|
||||||
style.asm.3=$(colour.string)
|
style.asm.1=$(colour.code.comment.line)
|
||||||
style.asm.4=$(colour.operator)
|
style.asm.2=
|
||||||
style.asm.5=
|
style.asm.3=$(colour.string)
|
||||||
style.asm.6=$(colour.keyword)
|
style.asm.4=$(colour.operator)
|
||||||
style.asm.7=
|
style.asm.5=
|
||||||
style.asm.12=$(colour.char)
|
style.asm.6=$(colour.keyword)
|
||||||
style.asm.13=$(colour.error)
|
style.asm.7=
|
||||||
|
style.asm.12=$(colour.char)
|
||||||
command.compile.$(file.patterns.asx)=xasm /o:$(FileName).xex $(FilePath)
|
style.asm.13=$(colour.error)
|
||||||
command.build.$(file.patterns.asx)=make
|
|
||||||
if PLAT_WIN
|
command.compile.$(file.patterns.xasm)=xasm /o:$(FileName).xex $(FilePath)
|
||||||
command.go.$(file.patterns.asx)=start $(FileName).xex
|
command.build.$(file.patterns.xasm)=make
|
||||||
if PLAT_GTK
|
if PLAT_WIN
|
||||||
command.go.$(file.patterns.asx)=atari800 -run $(FileName).xex
|
command.go.$(file.patterns.xasm)=start $(FileName).xex
|
||||||
|
if PLAT_GTK
|
||||||
|
command.go.$(file.patterns.xasm)=atari800 -run $(FileName).xex
|
||||||
|
40
xasm.spec
Normal file
40
xasm.spec
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
Name: xasm
|
||||||
|
Version: 3.2.1
|
||||||
|
Release: 1
|
||||||
|
Summary: 6502 cross-assembler
|
||||||
|
License: Poetic
|
||||||
|
Source: http://pfusik.github.io/xasm/xasm-%{version}.tar.gz
|
||||||
|
URL: https://github.com/pfusik/xasm
|
||||||
|
BuildRequires: dmd >= 2, asciidoc
|
||||||
|
|
||||||
|
%description
|
||||||
|
xasm is a 6502 cross-assembler with original syntax extensions.
|
||||||
|
|
||||||
|
%global debug_package %{nil}
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%setup -q
|
||||||
|
|
||||||
|
%build
|
||||||
|
make xasm xasm.1
|
||||||
|
|
||||||
|
%install
|
||||||
|
make DESTDIR=%{buildroot} prefix=%{_prefix} install
|
||||||
|
|
||||||
|
%files
|
||||||
|
%{_bindir}/xasm
|
||||||
|
%{_mandir}/man1/xasm.1.gz
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* Thu Dec 8 2022 Piotr Fusik <fox@scene.pl>
|
||||||
|
- 3.2.1-1
|
||||||
|
|
||||||
|
* Tue Jun 22 2021 Piotr Fusik <fox@scene.pl>
|
||||||
|
- 3.2.0-1
|
||||||
|
|
||||||
|
* Wed Nov 20 2019 Piotr Fusik <fox@scene.pl>
|
||||||
|
- 3.1.1-1
|
||||||
|
|
||||||
|
* Sun Jul 20 2014 Piotr Fusik <fox@scene.pl>
|
||||||
|
- 3.1.0-1
|
||||||
|
- Initial packaging
|
Reference in New Issue
Block a user