mirror of
https://github.com/pfusik/xasm.git
synced 2024-06-12 14:29:53 +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
|
||||
endif
|
||||
hdiutil create -volname xasm-$(VERSION)-macos -srcfolder osx -format UDBZ -fs HFS+ -imagekey bzip2-level=3 -ov $@
|
||||
ifdef PORK_NOTARIZING_CREDENTIALS
|
||||
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
|
||||
/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
|
||||
|
|
18
source/app.d
18
source/app.d
|
@ -139,7 +139,7 @@ bool repeating; // line
|
|||
int repeatCounter; // line
|
||||
|
||||
bool instructionBegin;
|
||||
bool pairing;
|
||||
bool sequencing;
|
||||
|
||||
bool willSkip;
|
||||
bool skipping;
|
||||
|
@ -1329,7 +1329,7 @@ void directive() {
|
|||
noOpcode();
|
||||
if (repeating)
|
||||
throw new AssemblyError("Can't repeat this directive");
|
||||
if (pairing)
|
||||
if (sequencing)
|
||||
throw new AssemblyError("Can't pair this directive");
|
||||
}
|
||||
|
||||
|
@ -2660,12 +2660,12 @@ unittest {
|
|||
== representation(hexString!"400100000000 401200000000 410123000000 441234567890 461234567890 3f5000000000 3f0300000000 3f1664534589 701000000000"));
|
||||
}
|
||||
|
||||
void assemblyPair() {
|
||||
void assemblySequence() {
|
||||
assert(!inOpcode);
|
||||
string instruction = readInstruction();
|
||||
string[] extraInstructions;
|
||||
while (!eol() && line[column] == ':') {
|
||||
pairing = true;
|
||||
sequencing = true;
|
||||
column++;
|
||||
extraInstructions ~= readInstruction();
|
||||
}
|
||||
|
@ -2676,13 +2676,13 @@ void assemblyPair() {
|
|||
assemblyInstruction(instruction);
|
||||
checkNoExtraCharacters();
|
||||
wereManyInstructions = false;
|
||||
foreach (instruction2; extraInstructions) {
|
||||
foreach (nextInstruction; extraInstructions) {
|
||||
column = savedColumn;
|
||||
assemblyInstruction(instruction2);
|
||||
assemblyInstruction(nextInstruction);
|
||||
wereManyInstructions = true;
|
||||
}
|
||||
} else {
|
||||
pairing = false;
|
||||
sequencing = false;
|
||||
assemblyInstruction(instruction);
|
||||
wereManyInstructions = false;
|
||||
}
|
||||
|
@ -2759,7 +2759,7 @@ void assemblyLine() {
|
|||
int savedColumn = column;
|
||||
for (repeatCounter = 0; repeatCounter < repeatLimit; repeatCounter++) {
|
||||
column = savedColumn;
|
||||
assemblyPair();
|
||||
assemblySequence();
|
||||
}
|
||||
checkNoExtraCharacters();
|
||||
listLine();
|
||||
|
@ -2795,7 +2795,7 @@ void assemblyLine() {
|
|||
listCommentLine();
|
||||
return;
|
||||
}
|
||||
assemblyPair();
|
||||
assemblySequence();
|
||||
checkNoExtraCharacters();
|
||||
listLine();
|
||||
}
|
||||
|
|
|
@ -162,7 +162,7 @@ to start a comment.
|
|||
-------------------------------------------------------------
|
||||
|
||||
[[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:
|
||||
------------
|
||||
eor:sta foo
|
||||
|
@ -262,7 +262,7 @@ The following 'unary operators' are supported:
|
|||
- `<` Low (extracts the low 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:
|
||||
|
||||
- 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.
|
||||
|
||||
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
|
||||
----------
|
||||
|
@ -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
|
||||
marks. You can include the quotation marks in the string by doubling them.
|
||||
Placing a `*` character after a string inverts
|
||||
the highest bit in every byte of the string.
|
||||
If the string is suffixed with a `*` character, bit 7 in every byte gets inverted.
|
||||
--
|
||||
+
|
||||
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
|
||||
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.
|
||||
Unlike in Quick Assembler, you can alternatively use
|
||||
the more common syntax: `#<` and `#>`.
|
||||
|
@ -767,7 +766,7 @@ Version 3.0.0 (2005-05-22)
|
|||
- rewritten from the x86 assembly language to the
|
||||
http://dlang.org/[D programming language] - Linux version
|
||||
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
|
||||
- the */e* option is removed
|
||||
- the label table is now sorted alphabetically
|
||||
|
@ -883,7 +882,7 @@ Version 2.2 (1999-09-10)
|
|||
- allow Unix, Macintosh and Atari EOLs
|
||||
- value of 'true' changed to 1
|
||||
- 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_linerep,repeat line>>
|
||||
- <<new_pairing,two instructions in line>>
|
||||
|
|
|
@ -3,11 +3,9 @@ Version: 3.2.1
|
|||
Release: 1
|
||||
Summary: 6502 cross-assembler
|
||||
License: Poetic
|
||||
Group: Applications/Programming
|
||||
Source: http://pfusik.github.io/xasm/xasm-%{version}.tar.gz
|
||||
URL: https://github.com/pfusik/xasm
|
||||
BuildRequires: dmd >= 2, asciidoc
|
||||
BuildRoot: %{_tmppath}/%{name}-root
|
||||
|
||||
%description
|
||||
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
|
||||
|
||||
%install
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
make DESTDIR=$RPM_BUILD_ROOT prefix=%{_prefix} install
|
||||
|
||||
%clean
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
make DESTDIR=%{buildroot} prefix=%{_prefix} install
|
||||
|
||||
%files
|
||||
%defattr(-,root,root)
|
||||
%{_bindir}/xasm
|
||||
%{_mandir}/man1/xasm.1.gz
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user