I have made some edits to Sonic 1 (svn revision 208):
9 changes to @ type labels where ambiguous which label to use
sonic.asm: include of "maps\LZ Blocks.asm" was not the correct case
_incObj/85 Boss - Final.asm: asm68k sorts the registers for exg, so changed "exg d1,d0" to "exg d0,d1" so now both asmx and asm68k produce same binary (note asmx is true to the 68k programmers reference manual)
_inc/Object Pointers.asm: fixed warnings for undefined symbolic ptr_ObjectFall
With these updates and updates I made to asmx I can assemble Sonic 1 with either asm68k.exe or asmx to produce the same original binary. I have emailed Bruce Tomlin Saturday about my updates (in case he wanted to use any of them) and inquiring about his software license for asmx (to determine if and how I can release my asmx updates). Still no response from Bruce Tomlin though.
A list of the changes I made for asmx:
9 changes to @ type labels where ambiguous which label to use
sonic.asm: include of "maps\LZ Blocks.asm" was not the correct case
_incObj/85 Boss - Final.asm: asm68k sorts the registers for exg, so changed "exg d1,d0" to "exg d0,d1" so now both asmx and asm68k produce same binary (note asmx is true to the 68k programmers reference manual)
_inc/Object Pointers.asm: fixed warnings for undefined symbolic ptr_ObjectFall
With these updates and updates I made to asmx I can assemble Sonic 1 with either asm68k.exe or asmx to produce the same original binary. I have emailed Bruce Tomlin Saturday about my updates (in case he wanted to use any of them) and inquiring about his software license for asmx (to determine if and how I can release my asmx updates). Still no response from Bruce Tomlin though.
A list of the changes I made for asmx:
QUOTE
based on asm-2.0b5.zip
changes to asmx.h, asmx.c, and asm68k.c
68k changes
unopt (all of which make warnings when could make optimization)
make 0(a0) use a word for 0x00 displacement
always use Bxx.W for Bxx with no size specified
Bcc.1 and Bcc.2 support
clear upper byte of word for immediate byte instructions
added warning to addi/subi when quick instruction possible
added warning to move.l #<data>,Dn when quick instruction possible
added warning to cmpi #0 when tst is possible
added warning when instruction size is w/l and abs operand is odd
added warning when instruction size is w/l and d16(pc) is odd
added opt flag that this processor is word aligned
asmx changes
-u unopt support, currently only used by 68k
-n allows using narg in macros and \0 now is the macro suffix
-m allow multiply defined labels
adds -pu0, -pu1, -pa0, -pa1, -pd0, and -pd1 to control the padding for unused values, align, and ds
label support for if
better padding support for large pads (ds,bsz,fill)
added pad commands: bsz,zmb,fill
added conditional commands: endc,ifdef,ifndef,elsifdef,elsifndef
added align commands: balign,cnop
added ds aliases: blk.b,blk.w,blk.l,blkl,dcb.b,dcb.w,dcb.l,space
added repeat aliases commands: endr,rept
align can specify the fill value (second argument)
allow whitespace label colon to be use the label
if a file is not readable, try converting between / and \ and vice versa
if an equ has a unknown value on pass 1, call AddSym instead of DefSym
if processor is word aligned, add warning when not word aligned on word/line defines or pads
changes to asmx.h, asmx.c, and asm68k.c
68k changes
unopt (all of which make warnings when could make optimization)
make 0(a0) use a word for 0x00 displacement
always use Bxx.W for Bxx with no size specified
Bcc.1 and Bcc.2 support
clear upper byte of word for immediate byte instructions
added warning to addi/subi when quick instruction possible
added warning to move.l #<data>,Dn when quick instruction possible
added warning to cmpi #0 when tst is possible
added warning when instruction size is w/l and abs operand is odd
added warning when instruction size is w/l and d16(pc) is odd
added opt flag that this processor is word aligned
asmx changes
-u unopt support, currently only used by 68k
-n allows using narg in macros and \0 now is the macro suffix
-m allow multiply defined labels
adds -pu0, -pu1, -pa0, -pa1, -pd0, and -pd1 to control the padding for unused values, align, and ds
label support for if
better padding support for large pads (ds,bsz,fill)
added pad commands: bsz,zmb,fill
added conditional commands: endc,ifdef,ifndef,elsifdef,elsifndef
added align commands: balign,cnop
added ds aliases: blk.b,blk.w,blk.l,blkl,dcb.b,dcb.w,dcb.l,space
added repeat aliases commands: endr,rept
align can specify the fill value (second argument)
allow whitespace label colon to be use the label
if a file is not readable, try converting between / and \ and vice versa
if an equ has a unknown value on pass 1, call AddSym instead of DefSym
if processor is word aligned, add warning when not word aligned on word/line defines or pads


