summaryrefslogtreecommitdiff
path: root/README.txt
diff options
context:
space:
mode:
Diffstat (limited to 'README.txt')
-rw-r--r--README.txt54
1 files changed, 33 insertions, 21 deletions
diff --git a/README.txt b/README.txt
index d95258d..33d1c53 100644
--- a/README.txt
+++ b/README.txt
@@ -2,18 +2,18 @@
Copyright 2021-2023 Gabriel Jensen.
-This program is free software: you can redistribute it and/or modify it under
-the terms of the GNU Affero General Public License as published by the Free
-Software Foundation, either version 3 of the License, or (at your option) any
+This program is free software: you can redistribute it and/or modify it under
+the terms of the GNU Affero General Public License as published by the Free
+Software Foundation, either version 3 of the License, or (at your option) any
later version.
-This program is distributed in the hope that it will be useful, but WITHOUT
-ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
+This program is distributed in the hope that it will be useful, but WITHOUT
+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
details.
-You should have received a copy of the GNU Affero General Public License along
-with this program. If not, see <https://www.gnu.org/licenses/>.
+You should have received a copy of the GNU Affero General Public License along
+with this program. If not, see <https://www.gnu.org/licenses/>.
- ABOUT
@@ -27,7 +27,7 @@ Invoke the emulator via the 'luma' command.
- CONFIGURATION
-The emulator tries to read the configuration file at '${HOME}/.luma.toml'. If
+The emulator tries to read the configuration file at '${HOME}/.luma.toml'. If
this file is found, the following fields are read (if present):
luma:
@@ -44,30 +44,42 @@ These settings are overwritten by terminal parameters (see USAGE).
- COMPATIBILITY
-Currently, the emulator supports the following ARM instructions only. Others
+Currently, the emulator supports the following ARM instructions only. Others
will be skipped.
- * b{cond}{l} +/-offset_24
- * bx Rm
- * ldr{cond} Rn, +/-offset_12
+ * b{cond}{l} Immediate24
+ * bx{cond} Rm
+ * ldr{cond} Rd, [Rn, Immediate12]
* mov{cond} Rd, Rn
- * mov{cond} Rd, immediate_8
+ * mov{cond} Rd, #Immediate8
* mov{cons}s r15, Rn
- * str{cond} Rn, +/-offset_12
+ * str{cond} Rd, [Rn, Immediate12]
Moreover, the following Thumb instructions are supported:
- * b +/-offset_11
- * b{cond} +/-offset_8
+ * b Immediate11
+ * b{cond} Immediate8
+ * bl Immediate24
* bx Rm
+ * ldr Rd, [Rn, Immediate5]
+ * ldr Rd, [Rn, Rm]
+ * ldr Rd, [r13, Immediate8]
+ * ldr Rd, [r15, Immediate8]
+ * lsl Rd, Rm, Immediate5
+ * lsr Rd, Rm, Immediate5
* mov Rd, Rn
- * movs Rd, immediate_8
+ * movs Rd, Immediate8
* movs Rd, Rn
+ * pop Registers
+ * push Registers
+ * strh Rd, [Rn, Immediate5]
+ * svc Immediate8
-When the virtual processor boots, the default mode is the sys mode. As no
-supported instruction can change this mode, this is also the only mode for now.
+When the virtual processor boots, the default mode is the sys mode. This can be
+changed using the 'svc Immediate8' (Thumb) or 'svc Immediate24' (ARM)
+instructions, which changes this to the svc mode.
-The entire memory space (0x00000000 to 0x0E010000, exclusive) is available,
+The entire memory space (0x00000000 to 0x0E010000, exclusive) is available,
however, no I/O-mapped addresses are currently functional.
Improved support is, of course, planned.