Commit Graph

2143 Commits

Author SHA1 Message Date
joevt cf0881b843 debugger: Fix compiler warnings. 2025-03-10 07:01:06 -07:00
joevt 6b82e15c14 Use ppc_state instead of get_reg.
Might be a speedup if stepping through a few million instructions.
2025-03-10 06:59:52 -07:00
joevt d2aee8af0f awacs: Fix "Add stubs for missing AWACS regs". 2025-03-10 06:51:01 -07:00
joevt 3da972ddc9 Add missing this. 2025-03-10 06:49:37 -07:00
dingusdev baa36cf571 Preparing Alpha 1.02 release 2025-03-09 14:36:36 -07:00
joevt ccea8ae8d1 Fix spelling of NuBus. 2025-03-08 18:19:48 -07:00
dingusdev 6664219057 Add stubs for missing AWACS regs 2025-03-08 18:17:46 -07:00
joevt 1453bd2778 main: Fix spelling of Open Firmware. 2025-03-06 06:52:24 -07:00
dingusdev cf7c102b93 Merge pull request #137 from mihaip/upstream-setenv
Add CLI flag to allow setting of OpenFirmware environment variables
2025-03-02 18:49:44 -07:00
Mihai Parparita a6e1b8c338 Add CLI flag to allow setting of OpenFirmware environment variables
Allows enabling of verbose booting via the command-line interface (instead of having to drop into the interactive debugger).
2025-03-02 16:10:01 -08:00
dingusdev 6e74146466 Don't forget to update CR1 in edge case of fdiv 2025-03-02 10:42:31 -07:00
dingusdev a972bd26f7 Corrected handling of MMU Mode 1 2025-03-02 10:41:42 -07:00
dingusdev b09dfa22ec Fix regression in fdiv(s)(.) 2025-03-01 15:18:24 -07:00
joevt f21d2bd4ea imgfile_sdl: Fix write seek and return result. 2025-02-28 18:50:42 -07:00
dingusdev f3dec30c27 Add missing PR bit checks 2025-02-26 20:40:41 -07:00
Maxim Poliakovski bcb453e7ea Named constants for PCI IDs for MacIO ASICs. 2025-02-26 19:31:22 +01:00
joevt 1b2d3d0e6e cmake: Add header files in CMakeLists.txt.
So the Xcode IDE can list and search them.
2025-02-25 07:33:51 -07:00
joevt 744c0d39b5 amic: Make interrupt flags atomic. 2025-02-23 15:35:29 -07:00
joevt b75dd075bc scsibus: Report error without aborting.
Also, use bus name in log messages.
2025-02-23 10:11:54 -07:00
joevt 1b48983bf6 atapicdrom: Rename descriptors. 2025-02-23 09:58:27 -07:00
joevt 9fbb705595 ohare: Restore NVRAM to subdevices.
It was accidentally removed in previous conflict resolution.
2025-02-17 06:03:57 -07:00
joevt 063a9a6859 machinegazelle: Update ohare to heathrow standard.
Add feature_control.
Add Ide0.
Remove Ide1.
Add Mesh.
Remove built-in Ethernet.
Add Swim3.
Implement device and DMA interrupts.
Fill in dma read and write methods.
Add ESCC compatible addressing.
2025-02-16 10:11:42 -07:00
joevt 434ceab25a Use explicit typecast of float to int. 2025-02-16 07:00:15 -07:00
dingusdev a848eb9e76 Fixed accidental removal in ppc_exec_until 2025-02-16 06:35:24 -07:00
joevt eb2253a23a debugger: Output register names as lowercase.
To match the register names in the disassembly.
2025-02-15 17:05:41 -07:00
joevt 50b57b2cc1 debugger: Fix repeating of until command.
It should show the command that is being repeated (including the address) and indicate how many times it was repeated so far.
2025-02-15 17:05:22 -07:00
dingusdev d82d9ac7b9 Added missing header - chrono 2025-02-15 16:02:32 -07:00
joevt 82a48899f0 Change ppc_opcode_grabber to a variable. 2025-02-10 07:01:32 -07:00
joevt 101bb826f1 Make irq_id 64 bits.
- So that DMA and other interrupts can fit without overlap.
- To simplify conversion to interrupt mask.
- To reduce variables, defines, and code.
2025-02-10 06:49:39 -07:00
Rairii 662166d7c6 heathrow: Add Media Bay ID accessor.
So that a machine can override the mb_id.
2025-02-09 16:51:42 -07:00
joevt 7e9bf45f3d scsihd: Fix data_buf size.
This fix will be replaced by having ScsiHardDisk use BlockStorageDevice.
2025-02-08 12:33:47 -07:00
dingusdev 49a97bd487 Added ability to set up keyboard 2025-01-31 17:06:15 -07:00
joevt 2f30395d00 Break long lines.
Make them 130 characters or less.
2025-01-30 06:30:51 -07:00
dingusdev 8de2c9dafc Start i18n 2025-01-29 21:14:36 -07:00
dingusdev 66f2c79605 Avoid MSVC compiler bug.
Use define instead of template for pm7500_settings<>

Co-Authored-By: joevt <950609+joevt@users.noreply.github.com>
2025-01-27 20:53:27 -07:00
dingusdev 1a7ccce774 Merge pull request #136 from mihaip/upstream-nofpu-perf
Mitigate performance impact of respecting FP bit
2025-01-26 05:42:11 -07:00
Mihai Parparita 134339ae9d Mitigate performance impact of respecting FP bit
In #135 we switched from a static OpcodeGrabber table to a
curOpcodeGrabber pointer in ppc_main_opcode. This results in an extra
indirection (as far as generated assembly having an additional load),
which reduces execution speed.

Switch to making the opcode grabber into a parameter to
ppc_main_opcode, and make ppc_exec_inner keep it up to date (via an
EXEF_OPCODE exception flag).

Also fixes FPU instructions in ppctests - we now need to set the FP
MSR bit when initializing the CPU.
2025-01-25 17:58:31 -08:00
dingusdev 7df166a99e Merge pull request #135 from mihaip/upstream-nofpu
Respect FP bit in MSR when running floating point instructions
2025-01-21 06:53:14 -07:00
Mihai Parparita acc6e77ec5 Respect FP bit in MSR when running floating point instructions
Rather than running them normally, they should trigger a "no FPU"
exception. This appears to be required to allow correct graphical
rendering under Mac OS X - the FP bit cleared via mtmsr and rfi
instructions and something else appears to be relying on the exception
to be thrown.

Implemented by maintaining a parallel version of the OpcodeGrabber
table (OpcodeGrabberNoFPU) which contains alternate implementations
for all the floating point instructions. We switch the table whenever
the MSR value changes. This should minimize the overhead of doing
these checks.
2025-01-20 23:19:37 -08:00
joevt 38c4f1e4cc memaccess: Fix comments for some 64 bit macros. 2025-01-14 19:06:28 -07:00
dingusdev a6483fa895 Merge pull request #133 from mihaip/upstream-max-scsi-size
scsi: Check for maximum transfer size
2025-01-08 07:35:07 -07:00
Mihai Parparita 40617692b8 scsi: Check for maximum transfer size
Better to fail immediately than to have a buffer overflow.
2025-01-07 22:52:00 -08:00
Maxim Poliakovski a5ba986666 debugger: set maximal 68k instruction length to 12. 2025-01-06 14:30:13 +01:00
Maxim Poliakovski 497ab52ff0 nubusutils.cpp: break long lines. 2025-01-04 23:00:11 +01:00
joevt 24baf77dba nubusutils: rom_size fixes.
Support 64-bit file size.
Abort if file size > 16 MiB.
Calculate lane expanded memory size using integer arithmetic only.
Allocated memory is rounded to 4096 bytes. This can be adjusted. The lowest rounding of 4 would be "+ 3) / 4 * 4" instead of "+ 4095) / 4096 * 4096".
Abort if ROM size after lane expansion is > 16 MiB.
Expand lanes starting with the last byte instead of the first since the last byte must align with the last used lane of the memory range.
Include ROM image name in exceptions.
2025-01-04 12:27:46 -07:00
Maxim Poliakovski ce245f8885 Move SAA7187 emulator to devices/video 2025-01-03 18:11:57 +01:00
Maxim Poliakovski e508031c98 Move Athens emulator to devices/common/clockgen 2025-01-03 17:47:04 +01:00
Maxim Poliakovski 4ed13cdd04 control: break long lines. 2025-01-02 23:27:23 +01:00
Maxim Poliakovski f31f13f77b Add nubusutils for handling DeclROMs for Nubus/PDS/VDS cards. 2024-12-30 13:04:47 +01:00
joevt e63f928a3c ppcexec: Simplify ppc_exec_inner.
One while loop instead of two.
One call to ppc_read_instruction instead of four.
2024-12-17 19:01:34 -07:00