mirror of
https://github.com/86Box/docs.git
synced 2026-02-23 18:08:21 -07:00
Add ISABugger documentation and make a bunch of other small changes
This commit is contained in:
@@ -79,4 +79,4 @@ On kernels without ``libata`` (typically older than 2.6.19), add the following p
|
||||
* **Tertiary:** ``ide2=0x168,0x36e,10`` (assuming IRQ 10)
|
||||
* **Quaternary:** ``ide3=0x1e8,0x3ee,11`` (assuming IRQ 11)
|
||||
|
||||
.. note:: Some Linux distributions may automatically detect and enable both additional channels, however, that is very rarely the case.
|
||||
.. note:: Some Linux distributions may automatically detect and enable both additional channels; however, that is very rarely the case.
|
||||
|
||||
BIN
hardware/images/isabugger.png
Normal file
BIN
hardware/images/isabugger.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 7.8 KiB |
70
hardware/isabugger.rst
Normal file
70
hardware/isabugger.rst
Normal file
@@ -0,0 +1,70 @@
|
||||
ISABugger
|
||||
=========
|
||||
|
||||
The ISABugger card provides a debugging interface for software developers, consisting of two 8-bit hexadecimal displays and two banks of 8 LEDs, all controlled by the emulated machine. It can be enabled through the :ref:`Peripherals settings page <settings/peripherals:ISABugger>`.
|
||||
|
||||
These displays and LEDs are shown on the :ref:`status bar <usage/statusbar:ISABugger>` as described in the diagram below:
|
||||
|
||||
.. image:: images/isabugger.png
|
||||
:align: center
|
||||
|
||||
Background
|
||||
----------
|
||||
|
||||
From ``src/device/bugger.c``:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
Implementation of the ISA Bus (de)Bugger expansion card
|
||||
sold as a DIY kit in the late 1980's in The Netherlands.
|
||||
This card was a assemble-yourself 8bit ISA addon card for
|
||||
PC and AT systems that had several tools to aid in low-
|
||||
level debugging (mostly for faulty BIOSes, bootloaders
|
||||
and system kernels...)
|
||||
|
||||
The standard version had a total of 16 LEDs (8 RED, plus
|
||||
8 GREEN), two 7-segment displays and one 8-position DIP
|
||||
switch block on board for use as debugging tools.
|
||||
|
||||
The "Plus" version, added an extra 2 7-segment displays,
|
||||
as well as a very simple RS-232 serial interface that
|
||||
could be used as a mini-console terminal.
|
||||
|
||||
Registers
|
||||
---------
|
||||
|
||||
The ISABugger's control registers can be accessed through the following operations on I/O ports 7Ah and 7Bh:
|
||||
|
||||
* **Writing:** write the register's index to port 7Ah, then write the value to port 7Bh.
|
||||
* **Reading:** write the register's index to port 7Ah, then read the value from port 7Bh.
|
||||
* **Index reading:** the last register index written to port 7Ah can be read back from the same port. The most significant bit is always set, as an indicator that the ISABugger is enabled.
|
||||
|
||||
.. note:: The ISABugger I/O ports only support byte (inb/outb) operations. Word (inw/outw) and dword (inl/outl) operations will result in undefined behavior; so will selecting or attempting to read back an unknown register index, or performing an illegal operation such as reading from a write-only register.
|
||||
|
||||
Register reference
|
||||
^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. rubric:: Index 0x00 - Red LEDs (write-only)
|
||||
.. rubric:: Index 0x01 - Green LEDs (write-only)
|
||||
|
||||
Each LED bank shows a binary representation of the 8-bit value written to its register, from the most significant bit on the left to the least significant bit on the right. Setting a bit will light up its corresponding LED (displayed as **G** or **R**), and clearing a bit will dim its LED (displayed as **g** or **r**).
|
||||
|
||||
.. rubric:: Index 0x02 - Right display (write-only)
|
||||
.. rubric:: Index 0x04 - Left display (write-only)
|
||||
|
||||
Each display shows a hexadecimal representation of the 8-bit value written to its register.
|
||||
|
||||
.. rubric:: Index 0x20 - Serial port data (not implemented) (read/write)
|
||||
.. rubric:: Index 0x40 - Serial port configuration (not implemented) (read/write)
|
||||
|
||||
While the aforementioned real ISABugger card is equipped with an independent RS-232 serial interface, that feature is currently not implemented on 86Box in an user-facing manner.
|
||||
|
||||
.. rubric:: Index 0x80 - Initialize (not implemented) (write-only)
|
||||
|
||||
This register has no effect on 86Box, as the emulated ISABugger is always enabled and ready.
|
||||
|
||||
.. rubric:: Index 0xFF - Reset (special)
|
||||
|
||||
Writing register index 0xFF to port 7Ah will immediately reset all registers to their startup value, clearing all displays and LED banks.
|
||||
|
||||
This is a special register which cannot be read or written; writing to port 7Bh immediately after a reset will result in the value being sent to the default register index of 0x00, which corresponds to the red LEDs.
|
||||
@@ -10,7 +10,7 @@ This page contains important notes related to specific machine models emulated b
|
||||
|
||||
.. rubric:: IBM AT
|
||||
|
||||
* The IBM Personal Computer Diagnostics disks will produce a *0152 ERROR - SYSTEM BOARD* code if :ref:`time synchronization <settings/machine:Time synchronization>` is enabled, due to a lack of Y2K compliance. This code can be cleared by disabling time synchronization, then clearing the CMOS by deleting ``ibmat.nvr`` from the ``nvr`` directory.
|
||||
* The IBM Personal Computer Diagnostics disks are not Y2K-compliant and will produce a *0152 ERROR - SYSTEM BOARD* code if :ref:`time synchronization <settings/machine:Time synchronization>` is enabled. This code can be cleared by disabling time synchronization, then clearing the CMOS by deleting ``ibmat.nvr`` from the ``nvr`` directory.
|
||||
|
||||
Socket 7
|
||||
--------
|
||||
@@ -62,7 +62,7 @@ Slot 2
|
||||
* Hybrid motherboard supporting both Slot 1 and Slot 2 CPUs.
|
||||
* The maximum amount of RAM is limited to 2032 MB due to a BIOS bug with 2048 MB.
|
||||
* ACPI is disabled by default. It can be enabled through the *ACPI Aware O/S* option of the *Power Management Setup* menu on the BIOS setup.
|
||||
* Once enabled, ACPI does not work correctly if a VIA Cyrix III CPU is selected. See :ref:`brokenacpi` for more information.
|
||||
* Once enabled, ACPI :ref:`does not work correctly <brokenacpi>` if a non-Intel CPU is selected.
|
||||
|
||||
Socket 370
|
||||
----------
|
||||
|
||||
Reference in New Issue
Block a user