A16 Assembler v0.80 Documentation
Command line based assembler for the AiO A16 series of microprocessors.
See the included instruction set file for more information.
Execution syntax:
assembler.exe
Input file The assembly file to read from. Store as plaintext.
Output file Name of the file to be created. Includes extension.
Export Nonzero exports as a CROM formatted file
Zero exports as separated BIN files
Log Nonzero creates an assembly log
Warn Nonzero disables console warnings
If no input file is specified, you will receive an error message.
If no output file is specified, the assembler will use the default name of "OUTPUT.ROM"
If no export mode is specified, the output will be a CROM formatted file
If no log mode is specified, the assembler will automatically create a log
Software assembled into RAM regions WILL CLOBBER RAM and make it inaccessible!
Available directives:
; Comment / remark
Ignore the rest of the line
/ Label reference
Insert the address of a label at this position
\ Constant reference
Insert a constant at this position
c Define constant
Define the name and value of a constant
d Data
Insert a 16-bit number at this position
a ASCII character
Insert a single ASCII character at this position
z Zero-terminated string
Insert a string, followed by a 0 terminator
s Nonterminated string
Insert a string with no terminator character
org Set Origin
Move the origin pointer to a new address
rel Relative move
Move the pointer forward or back a specified number of positions
start Start of file
Start assembly at this address
end End of file
Stop assembly at this address
lim File size limit
Set a word limit to stop assembling at
out Set file name
Rename the output file
mess Display console message
Print the rest of the line to the console
addr Current address
Print the current address to the console
pause Pause assembly here
Pause assembly and wait for user input
*prompt Prompt user
Pause assembly and prompt the user to continue
THIS ISN'T IMPLEMENTED PROPERLY YET
lfree Free bytes before word limit
Print the number of bytes free before the word limit is reached
free Free bytes before address limit
Print the number of bytes free before the address limit is reached
*general Enter general assembly mode
Switch to the general assembly interpreter
THIS ISN'T IMPLEMENTED AT ALL YET
literal Enter literal assembly mode
Switch to the literal assembly interpreter
binary Toggle output mode
Toggle between CROM and BIN output modes
nowarn Disable console warnings
Stop printing warning messages to the console
dowarn Enable console warnings
Print warning messages to the console
cstart Counter start
Start the word counter
cstop Counter stop
Stop the word counter
creset Counter reset
Reset the word counter to zero
cshow Counter show
Print the value of the counter
align Align address
Move to the next 16-base address
reset Set reset vector
Define reset vector as the current address
intn Set Interrupt vector "n"
Define interrupt vector "n" as the current address
novec Disable storing vectors
Don't allow defining and storing vectors automatically
dovec Enable storing vectors
Force defining and storing vectors automatically
Pre-defined constants and labels:
LABEL AssembleAddress Current address of the assembler
CONST AssembleAddress Current address of the assembler
Possible errors, warnings, and messages:
ERROR "No input file specified, nothing to assemble!"
No input file was given.
WARN "No output file specified, using default!"
No output file was given
ERROR "Load error: No such file "" exists!"
The given input file does not exist or is inaccessible
WARN "Word limit reached, stopping assembly early"
The specified word limit was reached during assembly
ERROR "Out of memory or address out of range"
The current address exceeded available memory
ERROR "Invalid directive ""!"
A given directive could not be processed
MESSAGE "Stopped assembling at line ."
Encountered the END directive
ERROR "Unspecified address"
An origin directive was encountered with no address
WARN "Origin changed to address lower than current!"
An origin directive was encountered with a given address before the current address
ERROR "Unspecified relative"
A relative move directive was encountered with no direction or distance
ERROR "Invalid sign"
A relative move directive was encountered with a sign that was not +/-
ERROR "Filesize cannot be unlimited!"
Encountered a word limit directive with no specified value
ERROR "Unspecified filename"
Encountered a filename directive with no given name
MESSAGE "Assembly paused. Press any key to continue."
Encountered the PAUSE directive
MESSAGE "AASM: "
Encountered a console message directive
MESSAGE "PROMPT Continue assembling?"
Encountered the PROMPT directive
ERROR "Invalid instruction !"
Encountered an invalid instruction
ERROR "Number of constant name tokens is different from constant address tokens"
Internal error
ERROR "Undefined constant ""
Tried to insert a constant that was never created
WARN "Unused constant ""!"
A constant was defined but never used
ERROR "Undefined label """
Tried to insert a label that was never created
WARN "Unused label ""!"
A label was created but never used
ERROR "Couldn't create file ""!"
Could not create or access the specified output file
WARN "Origin changed to address normally in RAM!"
Software clobbers address space reserved for RAM ($1FFF)
Changelog:
0.70 First public release
0.75 Added binary file exporter
0.80 Added vector definition directives and changed default assembly start address to $2000
Credits:
Written by Joseph Rettler
(C)2019-2022 AiO Softworks