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