As RTW has updated his Beebasm, I had a word with my old partner in crime BitD and I've decided (with his permission) to release part of a product that we were working on to release commercially, but we never finished due to work/apathy/things more interesting.
The release (attached as a zipped up Spark archive) is a fully fledged AOF aware assembler for ARM2/3 with co-pro and floating point support. It was originally meant to be half of the package, with an ARM disassembler/debugger, but I don't have permission to distribute that (and no local copy).
Unfortunately I can only find some of the documentation I wrote, which is included. Other stuff I can add as I remember.
To use (command line ATM as I don't have a local copy of the throwback aware GUI), run the ArmTool module[1], then use:
Code:
Syntax: Assembler [flags] infile [outfile]
Where flags are:
-a Print a '#' every 10 lines assembled
-v Shows all informationals
-i Time the assembly to nearest second
-t Start throwback - will cancel itself if it cannot find any of the resources needed for throwback.
-w n Changes the assembler swi to n, this is included for cross-assembling purposes... Not Implemented yet
-d n Report errors to desktop task n
-s file Save the labels to file file
-l file Load labels from file file
-?|-h Show the syntax
-o Show the owner
-- file Assemble file - if you want to assemble a file starting with a '-' this is the only way to do it
The assembler is a mix of the BASIC assembler and the DDE assembler with whatever we thought was cool at the time, unfortunately I got bored of it just before I fully added data structures. Some sample scripts are included in the Scripts directory, but it supports most common things including loops, conditional assembly, macros, strings, register redefinition etc.
I have the source and am prepared to attempt to recompile to add/fix new features, but there's not going to be a source release as the source is too embarrassing (I was learning C as I wrote it).
[1] The ARMTool modules does a lot of funky things (mostly through SWIs), including an interactive debugger if you press ALT+ENTER. It is used for the assembler core. This module is (C) Ian Jeffray and used with permission, it is not for distribution outside of the Script Assembler code.