BeebAsm
From Retrosoftware
(Added release info) |
|||
| Line 30: | Line 30: | ||
| - | [[Media:BeebASM-v0.01.zip|BeebASM-v0.01.zip]]<br> | + | [[Media:BeebASM-v0.01.zip|BeebASM-v0.01.zip]] Dec 20 2007 13:50:25 210048 bytes<br> |
| - | [[Media:BeebASM-v0.02.zip|BeebASM-v0.02.zip]]<br> | + | [[Media:BeebASM-v0.02.zip|BeebASM-v0.02.zip]] Dec 20 2007 13:41:35 218016 bytes<br> |
| - | [[Media:BeebASM-v0.04.zip|BeebASM-v0.04.zip]]<br> | + | [[Media:BeebASM-v0.04.zip|BeebASM-v0.04.zip]] Jan 07 2008 09:14:08 220084 bytes<br> |
| - | [[Media:BeebASM-v0.05.zip|BeebASM-v0.05.zip]] | + | [[Media:BeebASM-v0.05.zip|BeebASM-v0.05.zip]] Jan 10 2008 10:55:42 231063 bytes |
Any bug reports, feature requests or anything, just give me a shout [http://www.retrosoftware.co.uk/forum/viewforum.php?f=17 here] or via [http://www.retrosoftware.co.uk/forum/memberlist.php?mode=viewprofile&u=57 email]. | Any bug reports, feature requests or anything, just give me a shout [http://www.retrosoftware.co.uk/forum/viewforum.php?f=17 here] or via [http://www.retrosoftware.co.uk/forum/memberlist.php?mode=viewprofile&u=57 email]. | ||
Revision as of 01:09, 14 January 2008
BeebAsm
Introduction
BeebAsm is a portable 6502 assembler by Rich Talbot-Watkins designed specially for developing assembler programs for the BBC Micro. It uses syntax reminiscent of BBC BASIC's built-in assembler, and is able to output its object code directly into emulator-ready DFS disc images.
"It started life when I was looking for an assembler to plug into Swift, and after trying a few (of which P65 and xa seemed to be the best), none of them seemed to fulfil all my needs, which if I'm honest, was to keep me within the comfort zone of the BBC BASIC assembler, including the ability to build arbitrary lookup tables with maths functions, the ability to cram many instructions onto a line where they 'belonged' together, and to have rudimentary control structures like FOR..NEXT for unrolling loops.
So I thought I'd write my own, and BeebAsm is the result. In this time, it changed from its original spec as a 'straight' assembler which takes a source file and spits out an object code file, to something more useful to BBC Micro development. In its current form, its most useful mode allows a source file to save out one or more object code files straight to a DFS disc image of your choice, ready to try out in an emulator. It will also be able to output an object code file directly to Windows or whatever."
Here are the features so far:
- Uses standard 6502 syntax
- Denote hex with '&'
- Multiple statement lines, statements separated by colons
- Define labels with .label, like BBC BASIC
- Assign variables with addr=&70, like BBC BASIC
- Add bytes, words and strings with EQUB, EQUW and EQUS - as an extension to BBC BASIC, these can take a comma-separated list
- FOR...NEXT
- IF...ELSE...ENDIF
- Supports all of the BBC BASIC functions and operators in expressions, e.g. SIN, COS, SQR, DIV, MOD, etc etc
- Save object code to a disc image or to a standalone file
- INCLUDE "file" to include another source file
- Ability to set a guard on a memory address so it will warn you if it is assembled over
- Use braces { } to enclose blocks of code so that all labels and variables defined within will be local to that block.
- INCBIN directive to include a binary file in the object code.
- SKIPTO <addr> to move the address pointer to the specified address, generating an error if we are already beyond this address.
- Added a few missing functions (NOT, LOG, LN, EXP)
- added MAPCHAR command to allow strings to be assembled using non-ASCII codes (this is maybe more useful than it sounds; there's an example in the documentation).
- Warns if there is no SAVE command in the source code.
BeebASM-v0.01.zip Dec 20 2007 13:50:25 210048 bytes
BeebASM-v0.02.zip Dec 20 2007 13:41:35 218016 bytes
BeebASM-v0.04.zip Jan 07 2008 09:14:08 220084 bytes
BeebASM-v0.05.zip Jan 10 2008 10:55:42 231063 bytes
Any bug reports, feature requests or anything, just give me a shout here or via email.