| Key combination | Function | Key combination | Function |
| Ctrl-A | Select All (in source window) | Ctrl-P | Pause execution |
| Ctrl-B | (Reserved) | Ctrl-Q | (Reserved) |
| Ctrl-C | Copy selected text to clipboard (in source window) | Ctrl-R | Replace selected text (in source window) |
| Ctrl-D | Delete selected text (in source window) | Ctrl-S | Save File (in source window) |
| Ctrl-E | Execute loaded program | Ctrl-T | Step through execution |
| Ctrl-F | Find (in source window) | Ctrl-U | Resume execution from step mode |
| Ctrl-G | Find Next (in source window) | Ctrl-V | Paste text from clipboard (in source window) |
| Ctrl-H | Help | Ctrl-W | (Reserved) |
| Ctrl-I | (Reserved) | Ctrl-X | Cut selected text to clipboard (in source window) |
| Ctrl-J | (Reserved) | Ctrl-Y | (Reserved) |
| Ctrl-K | (Reserved) | Ctrl-Z | (Reserved) |
| Ctrl-L | Go to Line (in source window) | Ctrl-1 | Change to Assembler window |
| Ctrl-M | Assemble | Ctrl-2 | Change to Terminal window |
| Ctrl-N | New File (in source window) | Key combination | Function |
| Ctrl-O | Open File (in source window) | Ctrl-P | Pause execution |
| Entry | Example | Explanation |
| Space(" ") or tab(\t) | LBL ADDA #0 ;comment | After a label or an instruction and before a comment on the same line |
| Comma (,) | PULS A,X
EXG A,B |
In indexed addressing mode: Between operands in the address field and
ahead of the designations for zero offset indexing, autoincrementing or
autodecrementing
In operands of TFR, EXG, PULS, PULU, PSHS, PULS: Separating registers |
| Square brackets ([]) | LDA [LBL]
LDB [,X] |
Around indirect addresses |
| Asterisk (*) or semicolon (;) | * comment 1
INCA ;comment 2 |
Before comment |
| Entry | Example | Explanation |
| END | END | End of program; lines after it will be discarded. |
| EQU | TWO EQU 2 | Equate; define the attached symbol |
| FCB | FCB 1,,'a,$2 | Form constant byte; enter byte-length data |
| FCC | FCC /string/ | Form constant character; enter character data |
| FDB | FDB $FFFF,-2 | Form double byte constant; enter word-length data |
| ORG | ORG $100 | Set origin; place subsequent object code starting at the specified address |
| RMB | BUFFER RMB 20 | Reserve memory bytes; allocate a specified number of bytes |
| RTN | RTN | Return to monitor (neglected by J6809) |
| SETDP | SETDP $20 | Specify memory page for subsequent assembly |
| Entry | Example | Explanation |
| % | LDA #%10100011 | Binary |
| LDA #25 | Decimal (default) | |
| $ | LDA #$A3 | Hexadecimal |
| @ | LDA #@66 | Octal |
| Entry | Example | Explanation |
| A | ADDA #1 | Accumulator A (8-bit) |
| B | SUBB #2 | Accumulator B (8-bit) |
| CC | ANDCC #$1 | Condition code register (8-bit) |
| DP | TFR A,DP | Direct page register (8-bit). Default value is 0 |
| D | ADDD #$CF01 | Double accumulator, formed by A and B combined |
| PC | LDA -2,PC | Program counter (16-bit) |
| S | PULS A,B | System stack pointer (16-bit) |
| U | PSHU CC | User stack pointer (16-bit) |
| X | LEAX ,Y | Index register X (16-bit) |
| Y | LDY #$CF00 | Index register Y (16-bit) |
| Entry | Example | Explanation |
| ' | LDA #'a | ASCII character |
| - | LDA ,-X | Autodecrementing by 1 |
| -- | LDD ,--X | Autodecrementing by 2 |
| + | LDA ,X+ | Autoincrementing by 1 |
| ++ | LDD ,X++ | Autoincrementing by 2 |
| $ | LDX $+2 | Current value of location (PC) |
| < | ADDA <ADDR | Force the assembler to use direct addressing |
| > | ADDA >ADDR2 | Force the assembler to use extended addressing |
| # | SUBA $#A0 | Immediate addressing |
| PC | LDA -$F,PC | Constant offset from PC |
| Error Number | Error | Explanation |
| 0 | Invalid label. | The label contains invalid characters. The label must start with alphabets and contain only alphabets, digits, dollar sign ($) or period (.). |
| 1 | Label too long. | The label can have one to six characters only. |
| 2 | Label not allowed. | Labels are not allowed with the following directives: ORG, SETDP, RTN and END. |
| 3 | Label missing. | Label must be present for EQU directive. |
| 4 | Invalid instruction. | The instruction is not a valid 6809 instruction. For a list of valid 6809 instructions, please refer to appendix B. |
| 5 | Instruction missing. | Dangling labels are not allowed. There must be an instruction after every label. |
| 6 | Invalid operand. | The operand is invalid. |
| 7 | Invalid expression. | The expression is invalid. A valid expression is an arithmetical combination of operators, symbols or numbers. |
| 8 | Expression value out of bounds. | 6809 is an 8-bit processor that supports some 16-bit operations. If a value is not out of valid range this error will happen. |
| 9 | Operand missing. | An operand is required in all instructions except those with inherent addressing mode. |
| 10 | Invalid Addressing mode. | There are six addressing modes. All instructions support only some of them but not all. If an operand with an addressing mode not supported by the corresponding instruction, this error will happen. |
| 11 | Undefined label. | A symbol is referred but is never defined in the program. |
| 12 | Label already defined. | A symbol is defined more than once. |
| 13 | Program address out of bounds. | 6809 support 16-bit memory address. Therefore addresses must be in the range 000016 to FFFF16. The program must fit in this range. |
| 14 | Directive END missing. | The directive END must be present in every program. |
Created by Sam Wong
Copyright (C) 2002 S.C.W.
All rights reserved.