Maxim Poliakovski
762319055c
Merge pull request #50 from joevt/mmu-changes-branch
...
mmu changes
2023-08-07 12:58:46 +02:00
Maxim Poliakovski
cd9ccb66ed
adbkeyboard: fix compiler warning.
2023-08-07 12:51:09 +02:00
joevt
ac64f9e30d
ppcmmu: Fix mmio read/write offset calculation.
...
For TLBs referencing an mmio region, calculate an offset that will translate a guest virtual address to an offset in the mmio region.
2023-08-04 20:16:13 -07:00
joevt
16123dea45
ppcmmu: Add 64-bit accesses to I/O
...
Also add an exception for unaligned 64 bit. 64 bit accesses require dword alignment.
2023-08-04 20:16:13 -07:00
joevt
814260f0b6
ppcmmu: Reduce unmapped physical memory logging.
...
Don't log consecutive accesses to unmapped physical memory addresses. This saves a couple hundred thousand lines in the log in some cases.
This is only a partial fix. Any access that isn't logged should be queued and output if a log message is output that is not this log message or after a time period.
2023-08-04 20:16:13 -07:00
joevt
439509b408
Fix New World NVRAM limits calculations.
...
It was possible to corrupt New World nvram using dingusppc setenv command.
- setenv must call get_config_vars to set data_length so that it can calculate free space.
- data_length represents the number of bytes taken by nvram variables including the terminating null for the value (name, '=', value, '\0'). Previously, it did not include the terminating null.
- The list of variables and values ends at a '\0' or at pos == 4096 bytes. Previously, data_length wouldn't get set if pos >= 4096.
- Allow setenv to create new nvram variables.
- Since data_length now represents the total number of used bytes, free_space now represents the actual free space, so use > free_space (instead of >= free_space) to determine insufficient space.
- While parsing nvram variable name, do not read beyond 4096 bytes.
- Use a different error message for each problem that can occur while parsing nvram variable name.
2023-08-04 20:11:59 -07:00
joevt
07f57a1e9b
Remove extra semi-colons.
2023-08-04 20:11:59 -07:00
joevt
0c9ddaccf7
Fix dppc debugger printenv of multiline variables.
...
If a nvram variable has CRLF or CR, replace them with LF so each line appears on a new line in the console output.
Also, add indent to each line so that each line appears only in the value column and not in the name column.
2023-08-04 20:11:59 -07:00
dingusdev
b23bb04dac
Start fix for SCSI Hard Drive
2023-08-02 07:53:19 -07:00
dingusdev
a7601c36bd
Started work on keyboard input
2023-08-01 22:43:11 -07:00
Maxim Poliakovski
1a883ba73e
viacuda: implement basic autopolling.
2023-08-02 00:07:17 +02:00
Maxim Poliakovski
2e50b364c4
adbmouse: emulate single button mouse.
2023-08-01 23:58:29 +02:00
Maxim Poliakovski
b4b41a47b2
hostevents: dispatch mouse button events.
2023-08-01 23:57:16 +02:00
Maxim Poliakovski
5b90a3e21d
AMIC: rework and improve interrupts.
2023-08-01 17:42:52 +02:00
Maxim Poliakovski
ca83f7e8ef
pdmonboard: switch to new video controller API.
2023-08-01 17:41:02 +02:00
Maxim Poliakovski
337a9d6dd0
videoctrl: generate VBL interrupts.
2023-08-01 17:37:50 +02:00
Maxim Poliakovski
ddf139a659
Extend TimerManager API a bit.
2023-08-01 17:36:29 +02:00
Maxim Poliakovski
6b8fe50f50
hostevents: add prost-processing signal.
2023-08-01 17:21:17 +02:00
Maxim Poliakovski
233ab778b6
adbmouse: support for movement data in R0.
2023-08-01 17:18:46 +02:00
Maxim Poliakovski
4872af1053
control: use new refresh task control.
2023-07-31 03:53:13 +02:00
Maxim Poliakovski
0ca1ebf724
atimach64gx: use new refresh task control.
2023-07-31 03:52:17 +02:00
Maxim Poliakovski
632479b1ba
atirage: use new refresh task control.
2023-07-31 03:46:16 +02:00
Maxim Poliakovski
9b81891467
pdmonboard: use new refresh task control.
2023-07-31 03:36:17 +02:00
Maxim Poliakovski
7b2e1d90e6
Move refresh task control to VideoCtrlBase.
2023-07-31 03:34:02 +02:00
Maxim Poliakovski
6fa6b4d4dc
Rework the EventManager to use CoreSignal.
2023-07-27 02:40:32 +02:00
Maxim Poliakovski
6efe6f13a9
Add new CoreSignal class.
2023-07-27 02:38:21 +02:00
Maxim Poliakovski
c254749493
viacuda: connect to new AdbBus device.
2023-07-26 04:50:05 +02:00
Maxim Poliakovski
fd9f8c90a5
Basic ADB mouse device emulation.
...
For now, it solely handles the basic ADB commands.
2023-07-26 04:40:20 +02:00
Maxim Poliakovski
0a0761c7e0
AdbDevice - the base class for ADB devices.
2023-07-26 04:35:07 +02:00
Maxim Poliakovski
e9d91175c4
Add AdbBus class and device.
2023-07-26 04:29:08 +02:00
Maxim Poliakovski
0c0166b565
viacuda: fix packet response protocol.
...
Cuda needs to negate TREQ before sending the last byte of a
fixed-length response to avoid transfering an extraneous byte.
2023-07-26 04:22:08 +02:00
Maxim Poliakovski
7bb7ff9f0f
heathrow: human-readable DBDMA channel names.
2023-07-24 15:20:52 +02:00
Maxim Poliakovski
c2cd076662
machinebase: fix log statement warning.
2023-07-23 16:50:14 +02:00
Maxim Poliakovski
a9f73e7384
hwcomponent: fix size of the component type enum.
2023-07-23 16:32:00 +02:00
Maxim Poliakovski
14c7d18bdb
Revert "Prevents crashing for Big Mac"
...
This reverts commit 5787d49e9b
.
2023-07-23 16:28:31 +02:00
dingusdev
5787d49e9b
Prevents crashing for Big Mac
...
For some reason, on Windows, whether it be VS2022 or Clang, it will crash when trying to write to a Big Mac register if you don't specify the exact name of the component within Heathrow.
This commit fixes that.
2023-07-22 15:15:33 -07:00
Maxim Poliakovski
25150268cd
ppcexceptions: fix ISI exception target address.
2023-07-10 14:06:20 +02:00
Maxim Poliakovski
f7a1412ec7
atapibasedevice: fix task file initialization on reset.
2023-07-09 02:10:48 +02:00
Maxim Poliakovski
a424d48447
bigmac: implement software reset registers.
2023-07-08 23:30:44 +02:00
Maxim Poliakovski
e76e3afa87
Improve zdoc/bmac documentation.
2023-07-08 21:33:10 +02:00
Maxim Poliakovski
482fe3eb80
bigmac: MAC serial EEPROM emulation.
2023-07-08 21:32:26 +02:00
Maxim Poliakovski
4de2afc0c5
bigmac: fix Gossamer PHY stuff.
2023-07-08 14:35:23 +02:00
Maxim Poliakovski
742003b6f3
Basic BigMac Ethernet controller emulation.
...
Emulates MII and some PHY configuration registers.
2023-07-08 01:27:01 +02:00
Maxim Poliakovski
10b8366219
hwcomponent: add Ethernet MAC type.
2023-07-08 01:23:18 +02:00
dingusdev
4364c89fd4
Slight clean-up for execution type
2023-06-19 22:36:27 -07:00
dingusdev
d11d693b52
Compilation fix for VS
2023-06-19 22:36:09 -07:00
Maxim Poliakovski
357fc3a73a
machineyosemite: attach ATAPI CD-ROM.
2023-06-18 23:44:12 +02:00
Maxim Poliakovski
1051a7fb9b
machinegossamer: attach ATAPI CD-ROM.
2023-06-18 23:43:08 +02:00
Maxim Poliakovski
0687b0c60e
New ATAPI CD-ROM implementation.
2023-06-18 23:36:46 +02:00
Maxim Poliakovski
fc26be3e24
atapibasedevice: implement PIO transfers.
...
Also move ATAPI CD-ROM related stuff to separate
source and implement various helpers.
2023-06-18 23:33:57 +02:00