mirror of
https://github.com/pfusik/xasm.git
synced 2025-07-05 06:23:55 +00:00
Compare commits
6 Commits
xasm-3.2.1
...
master
Author | SHA1 | Date | |
---|---|---|---|
f5903fb199 | |||
8eb2a5ae6f | |||
9732817a0b | |||
70c907bae6 | |||
7a666799ac | |||
95136d1546 |
5
Makefile
5
Makefile
@ -57,10 +57,7 @@ ifdef PORK_CODESIGNING_IDENTITY
|
|||||||
codesign --options runtime -f -s $(PORK_CODESIGNING_IDENTITY) osx/xasm
|
codesign --options runtime -f -s $(PORK_CODESIGNING_IDENTITY) osx/xasm
|
||||||
endif
|
endif
|
||||||
hdiutil create -volname xasm-$(VERSION)-macos -srcfolder osx -format UDBZ -fs HFS+ -imagekey bzip2-level=3 -ov $@
|
hdiutil create -volname xasm-$(VERSION)-macos -srcfolder osx -format UDBZ -fs HFS+ -imagekey bzip2-level=3 -ov $@
|
||||||
ifdef PORK_NOTARIZING_CREDENTIALS
|
/Applications/Xcode.app/Contents/Developer/usr/bin/notarytool submit --wait --keychain-profile recoilnotarization $@
|
||||||
xcrun altool --notarize-app --primary-bundle-id com.github.pfusik.xasm $(PORK_NOTARIZING_CREDENTIALS) --file $@ \
|
|
||||||
| perl -pe 's/^RequestUUID =/xcrun altool $$ENV{PORK_NOTARIZING_CREDENTIALS} --notarization-info/ or next; $$c = $$_; until (/Status: success/) { sleep 20; $$_ = `$$c`; print; } last;'
|
|
||||||
endif
|
|
||||||
|
|
||||||
osx/xasm: source/app.d
|
osx/xasm: source/app.d
|
||||||
mkdir -p osx && dmd -of$@ -O -release $< && rm -f osx/xasm.o
|
mkdir -p osx && dmd -of$@ -O -release $< && rm -f osx/xasm.o
|
||||||
|
18
source/app.d
18
source/app.d
@ -139,7 +139,7 @@ bool repeating; // line
|
|||||||
int repeatCounter; // line
|
int repeatCounter; // line
|
||||||
|
|
||||||
bool instructionBegin;
|
bool instructionBegin;
|
||||||
bool pairing;
|
bool sequencing;
|
||||||
|
|
||||||
bool willSkip;
|
bool willSkip;
|
||||||
bool skipping;
|
bool skipping;
|
||||||
@ -1329,7 +1329,7 @@ void directive() {
|
|||||||
noOpcode();
|
noOpcode();
|
||||||
if (repeating)
|
if (repeating)
|
||||||
throw new AssemblyError("Can't repeat this directive");
|
throw new AssemblyError("Can't repeat this directive");
|
||||||
if (pairing)
|
if (sequencing)
|
||||||
throw new AssemblyError("Can't pair this directive");
|
throw new AssemblyError("Can't pair this directive");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2660,12 +2660,12 @@ unittest {
|
|||||||
== representation(hexString!"400100000000 401200000000 410123000000 441234567890 461234567890 3f5000000000 3f0300000000 3f1664534589 701000000000"));
|
== representation(hexString!"400100000000 401200000000 410123000000 441234567890 461234567890 3f5000000000 3f0300000000 3f1664534589 701000000000"));
|
||||||
}
|
}
|
||||||
|
|
||||||
void assemblyPair() {
|
void assemblySequence() {
|
||||||
assert(!inOpcode);
|
assert(!inOpcode);
|
||||||
string instruction = readInstruction();
|
string instruction = readInstruction();
|
||||||
string[] extraInstructions;
|
string[] extraInstructions;
|
||||||
while (!eol() && line[column] == ':') {
|
while (!eol() && line[column] == ':') {
|
||||||
pairing = true;
|
sequencing = true;
|
||||||
column++;
|
column++;
|
||||||
extraInstructions ~= readInstruction();
|
extraInstructions ~= readInstruction();
|
||||||
}
|
}
|
||||||
@ -2676,13 +2676,13 @@ void assemblyPair() {
|
|||||||
assemblyInstruction(instruction);
|
assemblyInstruction(instruction);
|
||||||
checkNoExtraCharacters();
|
checkNoExtraCharacters();
|
||||||
wereManyInstructions = false;
|
wereManyInstructions = false;
|
||||||
foreach (instruction2; extraInstructions) {
|
foreach (nextInstruction; extraInstructions) {
|
||||||
column = savedColumn;
|
column = savedColumn;
|
||||||
assemblyInstruction(instruction2);
|
assemblyInstruction(nextInstruction);
|
||||||
wereManyInstructions = true;
|
wereManyInstructions = true;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
pairing = false;
|
sequencing = false;
|
||||||
assemblyInstruction(instruction);
|
assemblyInstruction(instruction);
|
||||||
wereManyInstructions = false;
|
wereManyInstructions = false;
|
||||||
}
|
}
|
||||||
@ -2759,7 +2759,7 @@ void assemblyLine() {
|
|||||||
int savedColumn = column;
|
int savedColumn = column;
|
||||||
for (repeatCounter = 0; repeatCounter < repeatLimit; repeatCounter++) {
|
for (repeatCounter = 0; repeatCounter < repeatLimit; repeatCounter++) {
|
||||||
column = savedColumn;
|
column = savedColumn;
|
||||||
assemblyPair();
|
assemblySequence();
|
||||||
}
|
}
|
||||||
checkNoExtraCharacters();
|
checkNoExtraCharacters();
|
||||||
listLine();
|
listLine();
|
||||||
@ -2795,7 +2795,7 @@ void assemblyLine() {
|
|||||||
listCommentLine();
|
listCommentLine();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
assemblyPair();
|
assemblySequence();
|
||||||
checkNoExtraCharacters();
|
checkNoExtraCharacters();
|
||||||
listLine();
|
listLine();
|
||||||
}
|
}
|
||||||
|
@ -162,7 +162,7 @@ to start a comment.
|
|||||||
-------------------------------------------------------------
|
-------------------------------------------------------------
|
||||||
|
|
||||||
[[new_pairing]]
|
[[new_pairing]]
|
||||||
You may put two or more instructions in one line so they share their operand.
|
You may put two or more instructions in one line, so they share their operand.
|
||||||
For example:
|
For example:
|
||||||
------------
|
------------
|
||||||
eor:sta foo
|
eor:sta foo
|
||||||
@ -262,7 +262,7 @@ The following 'unary operators' are supported:
|
|||||||
- `<` Low (extracts the low byte)
|
- `<` Low (extracts the low byte)
|
||||||
- `>` High (extracts the high byte)
|
- `>` High (extracts the high byte)
|
||||||
|
|
||||||
Although the operators are similar to those used in C, C++, C# and Java,
|
Although the operators are like those used in C, C++, C# and Java,
|
||||||
their precedence is different:
|
their precedence is different:
|
||||||
|
|
||||||
- first: `[]` (brackets)
|
- first: `[]` (brackets)
|
||||||
@ -278,7 +278,7 @@ The compare and logical operators assume that zero is false
|
|||||||
and a non-zero is true. They return 1 for true.
|
and a non-zero is true. They return 1 for true.
|
||||||
|
|
||||||
Expressions are calculated in signed 32-bit arithmetic.
|
Expressions are calculated in signed 32-bit arithmetic.
|
||||||
An overflow is signalled with an "Arithmetic overflow" error.
|
An overflow is signaled with an "Arithmetic overflow" error.
|
||||||
|
|
||||||
DIRECTIVES
|
DIRECTIVES
|
||||||
----------
|
----------
|
||||||
@ -412,8 +412,7 @@ Real numbers are stored in the 6-byte Atari Floating-Point format.
|
|||||||
|
|
||||||
A character string consists of any number of characters surrounded by quotation
|
A character string consists of any number of characters surrounded by quotation
|
||||||
marks. You can include the quotation marks in the string by doubling them.
|
marks. You can include the quotation marks in the string by doubling them.
|
||||||
Placing a `*` character after a string inverts
|
If the string is suffixed with a `*` character, bit 7 in every byte gets inverted.
|
||||||
the highest bit in every byte of the string.
|
|
||||||
--
|
--
|
||||||
+
|
+
|
||||||
Examples of `DTA`:
|
Examples of `DTA`:
|
||||||
@ -670,7 +669,7 @@ Addressing modes are entered in the standard 6502 convention.
|
|||||||
An exception is the accumulator mode marked with the `@` character
|
An exception is the accumulator mode marked with the `@` character
|
||||||
for compatibility with Quick Assembler.
|
for compatibility with Quick Assembler.
|
||||||
|
|
||||||
Also for Quick Assembler compatibility there are two extra immediate
|
Also for Quick Assembler compatibility, there are two extra immediate
|
||||||
addressing modes: `<` and `>`, which use the low/high byte of a 16-bit word constant.
|
addressing modes: `<` and `>`, which use the low/high byte of a 16-bit word constant.
|
||||||
Unlike in Quick Assembler, you can alternatively use
|
Unlike in Quick Assembler, you can alternatively use
|
||||||
the more common syntax: `#<` and `#>`.
|
the more common syntax: `#<` and `#>`.
|
||||||
@ -767,7 +766,7 @@ Version 3.0.0 (2005-05-22)
|
|||||||
- rewritten from the x86 assembly language to the
|
- rewritten from the x86 assembly language to the
|
||||||
http://dlang.org/[D programming language] - Linux version
|
http://dlang.org/[D programming language] - Linux version
|
||||||
is now available and DOS is no longer supported
|
is now available and DOS is no longer supported
|
||||||
- no limits on line length, number of `ICLs`, `ORGs`,`IFTs` and labels
|
- no limits on line length, number of `ICLs`, `ORGs`, `IFTs` and labels
|
||||||
- Unix-style command-line options are supported
|
- Unix-style command-line options are supported
|
||||||
- the */e* option is removed
|
- the */e* option is removed
|
||||||
- the label table is now sorted alphabetically
|
- the label table is now sorted alphabetically
|
||||||
@ -883,7 +882,7 @@ Version 2.2 (1999-09-10)
|
|||||||
- allow Unix, Macintosh and Atari EOLs
|
- allow Unix, Macintosh and Atari EOLs
|
||||||
- value of 'true' changed to 1
|
- value of 'true' changed to 1
|
||||||
- command-line option to set environment variables on error
|
- command-line option to set environment variables on error
|
||||||
- commane-line option to assemble only if the source is newer than the object file
|
- command-line option to assemble only if the source is newer than the object file
|
||||||
- <<new_opcode,opcode extracting>>
|
- <<new_opcode,opcode extracting>>
|
||||||
- <<new_linerep,repeat line>>
|
- <<new_linerep,repeat line>>
|
||||||
- <<new_pairing,two instructions in line>>
|
- <<new_pairing,two instructions in line>>
|
||||||
|
@ -3,11 +3,9 @@ Version: 3.2.1
|
|||||||
Release: 1
|
Release: 1
|
||||||
Summary: 6502 cross-assembler
|
Summary: 6502 cross-assembler
|
||||||
License: Poetic
|
License: Poetic
|
||||||
Group: Applications/Programming
|
|
||||||
Source: http://pfusik.github.io/xasm/xasm-%{version}.tar.gz
|
Source: http://pfusik.github.io/xasm/xasm-%{version}.tar.gz
|
||||||
URL: https://github.com/pfusik/xasm
|
URL: https://github.com/pfusik/xasm
|
||||||
BuildRequires: dmd >= 2, asciidoc
|
BuildRequires: dmd >= 2, asciidoc
|
||||||
BuildRoot: %{_tmppath}/%{name}-root
|
|
||||||
|
|
||||||
%description
|
%description
|
||||||
xasm is a 6502 cross-assembler with original syntax extensions.
|
xasm is a 6502 cross-assembler with original syntax extensions.
|
||||||
@ -21,14 +19,9 @@ xasm is a 6502 cross-assembler with original syntax extensions.
|
|||||||
make xasm xasm.1
|
make xasm xasm.1
|
||||||
|
|
||||||
%install
|
%install
|
||||||
rm -rf $RPM_BUILD_ROOT
|
make DESTDIR=%{buildroot} prefix=%{_prefix} install
|
||||||
make DESTDIR=$RPM_BUILD_ROOT prefix=%{_prefix} install
|
|
||||||
|
|
||||||
%clean
|
|
||||||
rm -rf $RPM_BUILD_ROOT
|
|
||||||
|
|
||||||
%files
|
%files
|
||||||
%defattr(-,root,root)
|
|
||||||
%{_bindir}/xasm
|
%{_bindir}/xasm
|
||||||
%{_mandir}/man1/xasm.1.gz
|
%{_mandir}/man1/xasm.1.gz
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user