4.0(.1) updates across the board

This commit is contained in:
RichardG867
2023-10-09 15:54:35 -03:00
parent b5c6b3347d
commit f65511df03
5 changed files with 22 additions and 15 deletions

View File

@@ -3,7 +3,7 @@ Threads
Compute-intensive tasks can be offloaded from the main emulation flow with **threads**. Unless otherwise stated, all structures, functions and constants in this page are provided by ``86box/plat.h``.
.. warning:: 86Box API functions (excluding those in this page) are generally **not thread-safe** and must be called from the **main emulation thread**. Thread-unsafe actions (like raising an interrupt) can be performed by the callback of a free-running :doc:`timer <timer>` which looks for data written to the device's :ref:`state structure <dev/api/device:State structure>` by a thread, as timers run on the main emulation thread.
.. warning:: 86Box API functions (excluding those in this page) are generally **not thread-safe** and must be called from the **main emulation thread**. Thread-unsafe actions (such as raising an interrupt) can be performed by the callback of a free-running :doc:`timer <timer>` which looks for data written to the device's :ref:`state structure <dev/api/device:State structure>` by a thread, as timers run on the main emulation thread.
.. note:: The contents of ``thread_t`` and other structures used by ``thread_*`` functions are platform-specific; therefore, pointers to those structures should be treated as opaque pointers.

View File

@@ -3,7 +3,7 @@ Timers
**Timers** allow devices to perform tasks after a set period. This period is **automatically scaled** to match the emulation speed, which helps 86Box stay relatively accurate, unlike other emulators and virtualizers which may operate timers in real time independently of speed. Unless otherwise stated, all structures, functions and constants in this page are provided by ``86box/timer.h``.
.. note:: Timers are processed after each CPU instruction in interpreter mode, or each recompiled code block in dynamic recompiler mode (unless an instruction requests a Time Stamp Counter (TSC) update). In both cases, timer accuracy **should** be in the single-digit microsecond range at a minimum, which is good enough for most time-sensitive applications like 48 KHz audio.
.. note:: Timers are processed after each CPU instruction in interpreter mode, or each recompiled code block in dynamic recompiler mode (unless an instruction requests a Time Stamp Counter (TSC) update). In both cases, timer accuracy **should** be in the single-digit microsecond range at a minimum, which is good enough for most time-sensitive applications such as 48 KHz audio.
Adding
------

View File

@@ -11,11 +11,13 @@ The following resources are used by these additional controllers:
+----------+-------------+---------------+---+
|Channel |Main I/O port|Status I/O port|IRQ|
+==========+=============+===============+===+
|Tertiary |0168h |036Eh |10 |
|Tertiary |01E8h |03EEh |11 |
+----------+-------------+---------------+---+
|Quaternary|01E8h |03EEh |11 |
|Quaternary|0168h |036Eh |10 |
+----------+-------------+---------------+---+
.. important:: The tertiary and quaternary I/O ports and IRQs were incorrectly switched in older 86Box versions; the table above applies to **4.0.1 and higher**.
Each controller's IRQ can be configured through its respective *Settings* button on :ref:`settings/storage:Tertiary / Quaternary IDE Controller`. The *Plug and Play* option on the *IRQ* box enables Plug and Play functionality, allowing a PnP compliant operating system to automatically set the controller's IRQ, while all other options set a static IRQ with no Plug and Play.
.. note:: * When using a non-Plug and Play IDE controller on an emulated machine which supports Plug and Play, remember to mark the IRQ as being used by a legacy ISA device in the BIOS setup utility.
@@ -50,7 +52,7 @@ The **Windows 9x family** will automatically detect Plug and Play IDE controller
7. Select *Basic configuration 4* in the *Settings based on* box.
8. Change the resource settings to match the I/O ports on the :ref:`table above <hardware/ideterqua:System resources>` and the configured IRQ. The first *Input/Output Range* range corresponds to the **main** I/O port, the second one corresponds to the **status** I/O port, and *Interrupt Request* corresponds to the IRQ.
* The status I/O port range is off by 6. Select 0368 for the tertiary channel or 03E8 for the quaternary channel.
* The status I/O port range is off by 6. Select 03E8 for the tertiary channel or 0368 for the quaternary channel.
* The screenshot below shows an example configuration for the tertiary channel.
9. If both the tertiary and quaternary channels are enabled, repeat the steps above to enable the other controller.
@@ -65,7 +67,7 @@ Windows NT, 2000 and XP
.. note:: If you install the system to a hard disk on one of the additional controllers, it will not be bootable unless :ref:`the BIOS supports booting from these controllers <hardware/ideterqua:BIOS support>`.
On **Windows 2000 only**, non-Plug and Play controllers can be enabled on an already-installed system through *Add New Hardware* similarly to :ref:`Windows 9x as shown above <hardware/ideterqua:Windows 95, 98 and Me>`. The resource parameters cannot be changed, and therefore, only the :ref:`default IRQs for each controller <hardware/ideterqua:System resources>` are supported. *Basic configuration 0003* corresponds to the **tertiary** channel, while *Basic configuration 0002* corresponds to the **quaternary** channel.
On **Windows 2000 only**, non-Plug and Play controllers can be enabled on an already-installed system through *Add New Hardware* similarly to :ref:`Windows 9x as shown above <hardware/ideterqua:Windows 95, 98 and Me>`. The resource parameters cannot be changed, and therefore, only the :ref:`default IRQs for each controller <hardware/ideterqua:System resources>` are supported. *Basic configuration 0002* corresponds to the **tertiary** channel, while *Basic configuration 0003* corresponds to the **quaternary** channel.
Windows Vista and 7
^^^^^^^^^^^^^^^^^^^
@@ -79,17 +81,17 @@ There are different steps for enabling additional IDE controllers on Linux, depe
Modules can be loaded at any time with the ``modprobe`` command, or loaded on boot by adding the module's name (and parameters if required) to a file in ``/etc/modules-load.d`` on newer systemd-based distributions, or the ``/etc/modules`` file on older distributions.
* **libATA** (typically kernels **2.6.19 and above**):
* Load the ``pata_isapnp`` module to enable Plug and Play controllers.
* Load the ``pata_legacy`` module with the ``probe_all=1`` parameter to automatically detect and enable non-Plug and Play controllers. Only the :ref:`default IRQs for each controller <hardware/ideterqua:System resources>` are supported.
* **Legacy IDE** (typically kernels **older than 2.6.19**):
* Load the ``ide-pnp`` module to enable Plug and Play controllers.
* Non-Plug and Play controllers require editing the kernel command line on your bootloader to add each controller's I/O ports and IRQ:
* **Tertiary:** ``ide2=0x168,0x36e,10`` (assuming IRQ 10)
* **Quaternary:** ``ide3=0x1e8,0x3ee,11`` (assuming IRQ 11)
* **Tertiary:** ``ide2=0x1e8,0x3ee,11`` (assuming IRQ 11)
* **Quaternary:** ``ide3=0x168,0x36e,10`` (assuming IRQ 10)
* **libATA** (typically kernels **2.6.19 and above**):
* Load the ``pata_isapnp`` module to enable Plug and Play controllers.
* Load the ``pata_legacy`` module with the ``probe_all=1`` parameter to automatically detect and enable non-Plug and Play controllers. Only the :ref:`default IRQs for each controller <hardware/ideterqua:System resources>` are supported.
.. note:: Some distributions may automatically detect additional IDE controllers; however, that is very rarely the case.

View File

@@ -10,7 +10,6 @@ Action
* **Keyboard requires capture:** require the mouse to be captured for keypresses to be forwarded to the emulated machine. Enabling this option allows the use of keyboard combinations (such as Alt+Tab) on the host system while 86Box is focused.
* **Right CTRL is left ALT:** let the right Ctrl key act as a left Alt key, to simulate some special keyboards where the Alt key is located on the right side of the space bar.
* **Tablet tool:** select the pointing tool to use on the :ref:`drawing tablet <settings/input:Mouse>`. This option will only be available when emulating a tablet.
* **Hard Reset:** force a reset of the emulated machine. Requires confirmation, which can be disabled by checking the *Don't show this message again* box.
* **Ctrl+Alt+Del:** send a *Ctrl+Alt+Del* key combination to the emulated machine. You can alternatively press *Ctrl+F12* to send that combination.
* **Ctrl+Alt+Esc:** send a *Ctrl+Alt+Esc* key combination to the emulated machine.
@@ -44,7 +43,7 @@ View
* **Specify dimensions:** open a window where an exact size (in pixels) for the emulated display can be set. If checked, the *Lock to this size* box prevents changes in the emulated display's resolution from overriding the specified size.
* **Force 4:3 display ratio:** stretch the emulated display to a 4:3 aspect ratio, independently of the emulated machine's screen resolution.
* **Window scale factor:** scale the emulated display to half (*0.5x*), normal (*1x*), 50% larger (*1.5x*) or double (*2x*) sizes.
* **Window scale factor:** scale the emulated display to half (*0.5x*), normal (*1x*), 50% larger (*1.5x*), double (*2x*) or larger (up to *8x*) sizes.
* **Filter method:** select the filtering method (*Nearest* or *Linear*) to be used when scaling the emulated display.
* **HiDPI scaling:** automatically scale the emulated display to real size if your host system has a HiDPI display. This option can be used alongside *Window scale factor* above.
@@ -58,6 +57,7 @@ View
* **Square pixels (keep ratio):** scale the emulated display to fit the host display, without changing the aspect ratio.
* **Integer scale:** scale the emulated display to the largest integer scale factor to fit the host display. This provides the highest possible picture quality, at the cost of black bars if the host display's resolution is not divisible by the emulated display's resolution.
* **Apply fullscreen stretch mode when maximized:** apply the picture mode selected above in windowed mode if *Resizeable window* is enabled and the window is maximized.
* **EGA/(S)VGA settings:** contains display settings specific to EGA, VGA and Super VGA video hardware.
* **Inverted VGA monitor:** emulate a VGA monitor with inverted colors.

View File

@@ -17,6 +17,11 @@ Pause emulation of the machine. Press again to resume emulation.
Force a reset of the emulated machine. Requires confirmation, which can be disabled by checking the *Don't show this message again* box.
|acpi_shutdown| ACPI shutdown
-----------------------------
Send a power button press to the emulated machine. Only available on machines with ACPI soft power off support.
|send_cad| |send_cae| Press Ctrl+Alt+Del/Ctrl+Alt+Esc
-------------------------------------------------------