1
0
mirror of https://github.com/pfusik/xasm.git synced 2024-06-16 09:29:27 +00:00

xasm 2.5 release.

This commit is contained in:
Piotr Fusik 2002-07-08 15:22:54 +02:00
parent 22438199b9
commit 67621cb32c
5 changed files with 59 additions and 37 deletions

View File

@ -13,11 +13,14 @@ Unfortunately xasm is written in x86 assembly language, so it is
not portable. not portable.
<P><B>Why xasm, not X-ASM as in previous versions?</B><BR> <P><B>Why xasm, not X-ASM as in previous versions?</B><BR>
It's easier to pronounce. ;-) It's easier to pronounce. ;-)
<P><B>Why final edition?</B><BR> <P><B>Why 'second final edition'?</B><BR>
<I>Quote from FAQ in version 2.4, regarding 'final edition':</I><BR>
Because I don't plan adding any new features. xasm is already a very Because I don't plan adding any new features. xasm is already a very
sophisticated tool, much more powerful than Quick Assembler. sophisticated tool, much more powerful than Quick Assembler.
Of course, it does not mean there won't be any new releases. Of course, it does not mean there won't be any new releases.
Very likely there will be bug fixes. Very likely there will be bug fixes.<BR>
<I>Comment to 'second':</I><BR>
I found that new features are quite useful and easy to implement. :-)
<P><B>What about supporting other 6502-based machines, other processors (65816 etc.) ?</B><BR> <P><B>What about supporting other 6502-based machines, other processors (65816 etc.) ?</B><BR>
xasm is not a universal 6502 cross-assembler. If you need a portable xasm is not a universal 6502 cross-assembler. If you need a portable
cross-assembler (and maybe even an excellent C compiler), then visit cross-assembler (and maybe even an excellent C compiler), then visit

View File

@ -1,13 +1,13 @@
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>xasm 2.4.2 final edition</TITLE> <TITLE>xasm 2.5 second final edition</TITLE>
</HEAD> </HEAD>
<BODY BGCOLOR=black TEXT=white LINK="#c0c0ff" VLINK="#c040c0" ALINK="#d06060"> <BODY BGCOLOR=black TEXT=white LINK="#c0c0ff" VLINK="#c040c0" ALINK="#d06060">
<TABLE ALIGN=center WIDTH=70%><TR><TD> <TABLE ALIGN=center WIDTH=70%><TR><TD>
<CENTER> <CENTER>
<IMG SRC="6502proc.gif" ALT="intel outside - 6502 processor"> <IMG SRC="6502proc.gif" ALT="intel outside - 6502 processor">
<BR CLEAR=all> <BR CLEAR=all>
<H1>xasm 2.4.2 final edition</H1> <H1>xasm 2.5 second final edition</H1>
Copyright (c) 1998-2002 by <A HREF="mailto:fox@scene.pl">Piotr Fusik</A> Copyright (c) 1998-2002 by <A HREF="mailto:fox@scene.pl">Piotr Fusik</A>
</CENTER> </CENTER>
<P> <P>

View File

@ -1,13 +1,13 @@
<HTML><HEAD><TITLE>X-Assembler 2.4.2</TITLE></HEAD> <HTML><HEAD><TITLE>X-Assembler 2.5</TITLE></HEAD>
<BODY BACKGROUND="6502proc.gif"> <BODY BACKGROUND="6502proc.gif">
<CENTER> <CENTER>
<H1>X-Assembler version 2.4.2</H1> <H1>X-Assembler version 2.5</H1>
<HR> <HR>
<H2>TABLE OF CONTENTS</H2> <H2>TABLE OF CONTENTS</H2>
<TABLE><TR><TD VALIGN=top> <TABLE><TR><TD VALIGN=top>
<UL><LI><A HREF="#intro">INTRODUCTION</A> <UL><LI><A HREF="#intro">INTRODUCTION</A>
<UL><LI><A HREF="#changes">Changes</A> <UL><LI><A HREF="#changes">Changes</A>
<UL><LI><A HREF="#ver242">Version 2.4.2</A> <UL><LI><A HREF="#ver25">Version 2.5</A>
<LI><A HREF="#ver241">Version 2.4.1</A> <LI><A HREF="#ver241">Version 2.4.1</A>
<LI><A HREF="#ver24">Version 2.4</A> <LI><A HREF="#ver24">Version 2.4</A>
<LI><A HREF="#ver23">Version 2.3</A> <LI><A HREF="#ver23">Version 2.3</A>
@ -47,7 +47,7 @@ The X-Assembler is a cross-assembler, which generates code for the 6502 processo
It has been designed to be easy to use for Quick Assembler programmers, It has been designed to be easy to use for Quick Assembler programmers,
therefore its syntax is an extension of QA's one.<BR> therefore its syntax is an extension of QA's one.<BR>
<A NAME="changes"><H3>Changes</H3> <A NAME="changes"><H3>Changes</H3>
<A NAME="ver242"><H4>Version 2.4.2</H4> <A NAME="ver25"><H4>Version 2.5</H4>
<UL> <UL>
<LI> fixed another bug, very similar to previous one, e.g. <LI> fixed another bug, very similar to previous one, e.g.
<PRE> ift 0 <PRE> ift 0
@ -55,6 +55,9 @@ therefore its syntax is an extension of QA's one.<BR>
eif eif
</PRE> </PRE>
reported <TT>Label not defined before</TT> error for the repeat count. reported <TT>Label not defined before</TT> error for the repeat count.
<LI> <A HREF="#new_opt"><TT>OPT F+</TT> causes <TT>ORG</TT>s to fill the space between old and new
location with <TT>$FF</TT>s</A>
<LI> <A HREF="#new_opt"><TT>OPT G+</TT> enables Atari 5200 mode for hardware register abbreviations</A>
</UL> </UL>
<A NAME="ver241"><H4>Version 2.4.1</H4> <A NAME="ver241"><H4>Version 2.4.1</H4>
<UL> <UL>
@ -82,7 +85,7 @@ separator (Unix convention)
<LI> <A HREF="#new_fullpaths">added <TT>/p</TT> option: print full paths in listing and error messages</A> <LI> <A HREF="#new_fullpaths">added <TT>/p</TT> option: print full paths in listing and error messages</A>
<LI> <A HREF="#new_quiet">added <TT>/q</TT> option: quiet mode</A> <LI> <A HREF="#new_quiet">added <TT>/q</TT> option: quiet mode</A>
<LI> <A HREF="#new_unlabels">added <TT>/u</TT> option: warn of unused labels</A> <LI> <A HREF="#new_unlabels">added <TT>/u</TT> option: warn of unused labels</A>
<LI> <A HREF="#new_opto">writing to the object file may be suppressed with <TT>OPT O-</TT></A> <LI> <A HREF="#new_opt">writing to the object file may be suppressed with <TT>OPT O-</TT></A>
<LI> <A HREF="#new_eli">added <TT>ELI</TT> (else if) directive</A> <LI> <A HREF="#new_eli">added <TT>ELI</TT> (else if) directive</A>
<LI> <A HREF="#new_mwinde"><TT>MWX</TT> and <TT>MWY</TT> may use <TT>INX</TT>/<TT>DEX</TT> <LI> <A HREF="#new_mwinde"><TT>MWX</TT> and <TT>MWY</TT> may use <TT>INX</TT>/<TT>DEX</TT>
and <TT>INY</TT>/<TT>DEY</TT>, respectively, for generating smaller code</A> and <TT>INY</TT>/<TT>DEY</TT>, respectively, for generating smaller code</A>
@ -234,7 +237,7 @@ only if full path is given.<P>
<A NAME="new_quiet"> <A NAME="new_quiet">
<DT><TT>/q</TT> <DT><TT>/q</TT>
<DD>Suppress info messages.<BR> <DD>Suppress info messages.<BR>
Prevents X-Asm from printing "<TT>X-Assembler 2.4.2 by Fox/Taquart</TT>" Prevents X-Asm from printing "<TT>X-Assembler 2.5 by Fox/Taquart</TT>"
and the summary (how many lines assembled and bytes written). and the summary (how many lines assembled and bytes written).
Good if you are building a project from many source files and don't want Good if you are building a project from many source files and don't want
tons of messages.<P> tons of messages.<P>
@ -387,38 +390,47 @@ for 6502 indirect addressing.
<A NAME="numbers"><H4>Numbers</H4> <A NAME="numbers"><H4>Numbers</H4>
Numbers are 32-bit signed integers, in the range of -$7fffffff..$7fffffff. Numbers are 32-bit signed integers, in the range of -$7fffffff..$7fffffff.
A number may be: A number may be:<P>
<TABLE> <TABLE>
<TR><TD WIDTH=300><UL><LI> a decimal number</TD><TD><TT>-12345</TT></TD></TR> <TR><TD WIDTH=300><UL><LI> a decimal number</TD><TD><TT>-12345</TT></TD></TR>
<TR><TD><UL><LI> a hexadecimal number</TD><TD><TT>$abcd</TT></TD></TR> <TR><TD><UL><LI> a hexadecimal number</TD><TD><TT>$abcd</TT></TD></TR>
<TR><TD><UL><LI> a binary number</TD><TD><TT>%10100101</TT></TD></TR> <TR><TD><UL><LI> a binary number</TD><TD><TT>%10100101</TT></TD></TR>
<TR><TD><UL><LI> an ASCII character</TD><TD><TT>'a'</TT> or <TT>"a"</TT></TD></TR> <TR><TD><UL><LI> an ASCII character</TD><TD><TT>'a'</TT> or <TT>"a"</TT></TD></TR>
<TR><TD><UL><LI> the origin counter value</TD><TD><TT>*</TT></TD></TR> <TR><TD><UL><LI> the origin counter value</TD><TD><TT>*</TT></TD></TR>
<TR><TD><UL><LI> a hardware register</TD><TD><TT>^31</TT></TD></TR> <TR><TD><UL><LI> a hardware register</TD><TD><TT>^4e</TT></TD></TR>
</UL></TABLE> </UL></TABLE>
<DIV STYLE="MARGIN-LEFT: 54"> <BLOCKQUOTE>
An abbreviation of Atari hardware register:<BR> An abbreviation of Atari hardware register is provided to save you trouble of typing
<TT>^0x</TT> means <TT>$d00x</TT><BR> two extra characters (<TT>^4e</TT> vs <TT>$d40e</TT>) and to support porting software
<TT>^1x</TT> means <TT>$d01x</TT><BR> between Atari 8-bit computers and Atari 5200 console. These are very similar machines,
<TT>^2x</TT> means <TT>$d20x</TT><BR> one of biggest differences is different location of hardware registers.<P>
<TT>^3x</TT> means <TT>$d30x</TT><BR> <TABLE>
<TT>^4x</TT> means <TT>$d40x</TT><BR> <TR><TD><B>Syntax&nbsp;</B></TD><TD><B>Chip&nbsp;</B></TD>
where x is a hexadecimal digit. <TD><B>Value in Atari 8-bit<BR>computer mode (<TT>OPT G-</TT>)&nbsp;</B></TD>
</DIV> <TD><B>Value in Atari 5200<BR>game console mode (<TT>OPT G+</TT>)&nbsp;</B></TD>
</TR>
<TR><TD><TT>^0x</TT></TD><TD>GTIA&nbsp;</TD><TD><TT>$d00x</TT></TD><TD><TT>$c00x</TT></TD></TR>
<TR><TD><TT>^1x</TT></TD><TD>GTIA&nbsp;</TD><TD><TT>$d01x</TT></TD><TD><TT>$c01x</TT></TD></TR>
<TR><TD><TT>^2x</TT></TD><TD>POKEY&nbsp;</TD><TD><TT>$d20x</TT></TD><TD><TT>$e80x</TT></TD></TR>
<TR><TD><TT>^3x</TT></TD><TD>PIA&nbsp;</TD><TD><TT>$d30x</TT></TD><TD><I>error</I> (there's no PIA chip)</TD></TR>
<TR><TD><TT>^4x</TT></TD><TD>ANTIC&nbsp;</TD><TD><TT>$d40x</TT></TD><TD><TT>$d40x</TT></TD></TR>
</TABLE>
(<TT>x</TT> is a hexadecimal digit).
</BLOCKQUOTE>
<A NAME="new_opcode"> <A NAME="new_opcode">
<TABLE> <TABLE>
<TR><TD WIDTH=300><UL><LI> an op-code</TD><TD><TT>{lda #0}</TT></TD></TR> <TR><TD WIDTH=300><UL><LI> an op-code</TD><TD><TT>{lda #0}</TT></TD></TR>
</UL></TABLE> </UL></TABLE>
<DIV STYLE="MARGIN-LEFT: 54"> <BLOCKQUOTE>
Single-byte op-code of the instruction inside braces. Operand is discarded Single-byte op-code of the instruction inside braces (e.g. value of <TT>{nop}</TT> is <TT>$ea</TT>).
and is necessary only for identifying addressing mode. Operand is discarded and is necessary only for identifying addressing mode.
Instruction should begin just after the left brace and the right brace should Instruction should begin just after the left brace and the right brace should
immediately follow the operand or the command in implied addressing mode.<BR> immediately follow the operand or the command.<BR>
<A NAME="new_op_op">You can skip the operand, if the addressing mode is fixed. <A NAME="new_op_op">You can skip the operand, if the addressing mode is fixed.
Examples:<BR> Examples:<BR>
<TT>{lda #}</TT>, <TT>{jsr}</TT>, <TT>{bne}</TT>, <TT>{jmp ()}</TT>, <TT>{lda #}</TT>, <TT>{jsr}</TT>, <TT>{bne}</TT>, <TT>{jmp ()}</TT>,
<TT>{sta a:,x}</TT>. <TT>{sta a:,x}</TT>.
</DIV> </BLOCKQUOTE>
<P> <P>
<A NAME="operators"><H4>Operators</H4> <A NAME="operators"><H4>Operators</H4>
@ -483,24 +495,31 @@ Examples:
here equ * here equ *
</PRE> </PRE>
<A NAME="new_opto"> <A NAME="new_opt">
<DT><TT><B>OPT</B></TT> - set assembly options <DT><TT><B>OPT</B></TT> - set assembly options
<DD>Three options are available: <DD>Five options are available:
<UL> <UL>
<LI> <TT>F</TT> - fill space between <TT>ORG</TT>s
(details <A HREF="#org_fill">here</A>)
<LI> <TT>G</TT> - Atari 5200 mode for hardware register abbreviations
(details <A HREF="#numbers">here</A>)
<LI> <TT>H</TT> - generate Atari executable headers <LI> <TT>H</TT> - generate Atari executable headers
<LI> <TT>L</TT> - generate listing <LI> <TT>L</TT> - generate listing
<LI> <TT>O</TT> - generate object file <LI> <TT>O</TT> - generate object file
</UL> </UL>
You can turn any of these on or off.<BR> You can turn any of these on or off.<BR>
Default (if no <TT>OPT</TT> specified) is <TT>opt h+l+o+</TT>.<BR> Default (if no <TT>OPT</TT> specified) is <TT>opt f-g-h+l+o+</TT>.<BR>
Examples: Examples:
<PRE> opt l- listing off <PRE> opt l- listing off
opt h- headers off opt l+o- listing on, object file off
opt l+o- listing on, object file off opt f+g+h- useful for Atari 5200 cartridges - raw output format, 5200 hw regs
</PRE> </PRE>
<A NAME="org_fill">
<DT><TT><B>ORG</B></TT> - change value of the origin counter <DT><TT><B>ORG</B></TT> - change value of the origin counter
<DD>You can set some options applied to the new header (if headers are <DD>
<!-- Option '<TT>F</TT> affects all <TT>ORG</TT> directives except for the first one. -->
You can set some options applied to the new header (if headers are
enabled): enabled):
<UL> <UL>
<LI> <TT>a:</TT> tells X-Asm to always make a header, even it is unnecessary, <LI> <TT>a:</TT> tells X-Asm to always make a header, even it is unnecessary,

View File

@ -1,4 +1,4 @@
--== xasm 2.4.2 final edition ==-- --== xasm 2.5: second final edition ==--
interactive visual development environment interactive visual development environment
only for 8-bit Atari programming gurus only for 8-bit Atari programming gurus

View File

@ -17,14 +17,14 @@ for Atari 8-bit computers on a PC with MS-DOS or Windows.">
<B>xasm</B> is a set of a few tools for developing software for Atari 8-bit computers <B>xasm</B> is a set of a few tools for developing software for Atari 8-bit computers
on a PC with MS-DOS or Windows.<P> on a PC with MS-DOS or Windows.<P>
<UL> <UL>
<LI> <A HREF="xasm242.zip">Download (37 KB)</A> <LI> <A HREF="xasm25.zip">Download (38 KB)</A>
<LI> <A HREF="doc/index.htm">Browse documentation on-line</A> <LI> <A HREF="doc/index.htm">Browse documentation on-line</A>
<LI> <A HREF="mailto:fox@scene.pl">E-mail me</A> <LI> <A HREF="mailto:fox@scene.pl">E-mail me</A>
</UL> </UL>
<P><HR><P> <P><HR><P>
<B>News:</B> <B>News:</B>
<UL> <UL>
<LI> 07-07-2002: released version 2.4.2 (another small bug fix) <LI> 08-07-2002: released version 2.5
<LI> 27-06-2002: released version 2.4.1 (a small bug fix) <LI> 27-06-2002: released version 2.4.1 (a small bug fix)
<LI> 22-05-2002: released version 2.4 <LI> 22-05-2002: released version 2.4
</UL> </UL>