diff options
Diffstat (limited to 'README.txt')
-rw-r--r-- | README.txt | 54 |
1 files changed, 33 insertions, 21 deletions
@@ -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. |