From c81eb0dcb604dd055366e482a4e9973e8ebae921 Mon Sep 17 00:00:00 2001 From: Mike Naberezny Date: Sun, 15 Jan 2012 13:04:27 -0800 Subject: [PATCH] Document interactive assembly mode --- docs/index.rst | 109 ++++++++++++++++++++++++++----------------------- 1 file changed, 59 insertions(+), 50 deletions(-) diff --git a/docs/index.rst b/docs/index.rst index 0c3bf1d..6e4f409 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -34,18 +34,18 @@ Once the monitor has started, it will display a register dump and the dot prompt. You can then enter commands for the monitor at this prompt. Py65Mon uses commands that are very similar to those used by the monitor -included with the `VICE emulator `_ for Commodore -computers. You can get a list of available commands with ``help`` or +included with the `VICE emulator `_ for Commodore +computers. You can get a list of available commands with ``help`` or help on a specific command with ``help command``. Number Systems -------------- When working with Py65Mon, you will frequently need to enter numbers, addresses, -and ranges of addresses. Almost all Py65 command support entering numbers in +and ranges of addresses. Almost all Py65 command support entering numbers in binary, decimal, and hexadecimal. -Numbers can be entered with a prefix to specify the radix, e.g. ``$c000`` +Numbers can be entered with a prefix to specify the radix, e.g. ``$c000`` instructs Py65Mon that the number ``c000`` is hexadecimal. The following prefixes are supported: @@ -70,7 +70,7 @@ Some commands accept a range of memory addresses:: $ff84 a0 1c LDY #$1c The syntax for a range is ``start:end``. Each of the two parts may have -a prefix to indicate the radix, or no prefix to use the default radix. +a prefix to indicate the radix, or no prefix to use the default radix. Sometimes it is useful to have the starting and ending address in a range be the same, such as when you want to inspect a single byte of memory. In @@ -81,7 +81,7 @@ Assigning Labels Large assembly language programs may have hundreds of procedures. It is difficult to remember the memory address of each procedure and the addresses -may change if the program is reassembled. +may change if the program is reassembled. You can add a label for any memory address using the ``add_label`` command. This label can then be used anywhere the address could be used:: @@ -116,24 +116,33 @@ Command Reference commands. If a label already exists at the address, it will be silently overwritten. -.. describe:: assemble
- - Assemble a statement at the address:: +.. describe:: assemble
[] + + Assemble a single statement at an address:: .assemble c000 lda $a0,x $c000 b5 a0 LDA $a0,X - - The assembler supports all legal NMOS 6502 opcodes and addressing modes. If - you have defined labels with ``add_label``, you may use those labels in the - address and the operand. + + If no statement is given, interactive assembly mode will start:: + + .assemble c000 + $c000 + + Enter a statement and it will be assembled at the current address. The + address will then be incremented and another statement may be entered. + Press Enter or Return without entering a statement to exit interactive + assembly mode. + + If you have defined labels with add_label, you may use those labels in + the address and the operand. .. describe:: cd Change the current working directory to the path specified:: - + .cd /path/to/my/files /path/to/my/files - + After changing the directory, the new working directory will be displayed. The default working directory is the directory from which the monitor was started. @@ -142,16 +151,16 @@ Command Reference Display the number of cycles that the microprocessor has run since it was last reset:: - + .cycles - 12 + 12 .. describe:: delete_label