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
742003b6f3
Basic BigMac Ethernet controller emulation.
...
Emulates MII and some PHY configuration registers.
2023-07-08 01:27:01 +02:00
Maxim Poliakovski
f733859e28
heathrow: support for IDE interrupts.
2023-06-18 23:31:28 +02:00
Maxim Poliakovski
f809124a2e
Improve SCSI bus registration.
2023-05-30 19:46:27 +02:00
Maxim Poliakovski
22798fe14e
Fix compilation of the audio codec classes.
2023-04-23 21:04:24 +02:00
Maxim Poliakovski
44478b6937
heathrow: implement floppy DMA interrupts.
2023-04-22 22:53:20 +02:00
Maxim Poliakovski
03595c3940
Merge remote-tracking branch 'origin/machine-yosemite'
2023-04-21 12:49:58 +02:00
Maxim Poliakovski
cf0d361918
Merge 'hard-disks' branch.
2023-04-17 01:20:38 +02:00
Maxim Poliakovski
d76433f112
heathrow: properly relocate memory space.
2023-02-25 18:14:42 +01:00
Maxim Poliakovski
5d7450df90
heathrow: locate sound HW by type.
...
That allows using sound codecs other than Screamer with Heathrow.
2023-02-25 18:14:42 +01:00
Maxim Poliakovski
3234f21cab
Overhaul audio codec classes.
2023-02-25 18:14:42 +01:00
Maxim Poliakovski
cc17035e67
pcidevice: improve BAR configuration.
2023-02-04 17:57:46 +01:00
joevt
2a64f547cc
Add 64-bit BAR support.
...
While dingusppc only emulates 32-bit Macs (for now), it is possible for a 32-bit Power Mac to use a PCIe card that has 64-bit BARs.
finish_config_bars is added to scan the cfg values of the BARs and determine their type. The type is stored separately so that it does not need to be determined again.
The type can be I/O (16 or 32 bit) or Mem (20 or 32 or 64 bit). A 64 bit bar is two BARs, the second contains the most significant 32 bits.
set_bar_value uses the stored type instead of trying to determine the type itself. It is always called even when the firmware is doing sizing. For sizing, It does the job of setting the bar value so do_bar_sizing is now just a stub.
Every PCIDevice that has a BAR needs to call finish_config_bars after setting up the cfg values just as they need to setup the cfg values. Since they need to do both, maybe the cfg values should be arguments of finish_config_bars, then finish_config_bars() should be renamed config_bars().
2023-02-02 02:47:34 -08:00
Maxim Poliakovski
449cc96612
Basic MESH emulation.
2023-01-25 20:58:30 +01:00
Maxim Poliakovski
8002737124
Basic O'Hare I/O controller emulation.
2022-12-23 17:19:46 +01:00
Maxim Poliakovski
a892842b8f
Refactor ATA/IDE classes.
2022-12-07 22:36:25 +01:00
dingusdev
58908621e6
IDE refinements
2022-12-05 08:42:51 -07:00
dingusdev
311538b81d
Fix IDE functionality
2022-11-26 21:34:54 -07:00
Maxim Poliakovski
a0dd1884b3
macio: properly wire floppy DMA.
2022-11-17 18:03:18 +01:00
dingusdev
b480903c7a
Slight code clean-up
...
Prevents crashing
2022-10-30 15:38:09 -07:00
dingusdev
aa1d23e08b
Fixed hard disk support
...
Compiles, still unfinished
2022-10-22 11:41:52 -07:00
dingusdev
ee9573327c
Reorganized hard disk code
...
Not compiling yet.
2022-10-08 16:51:54 -07:00
Maxim Poliakovski
6c59bf4203
heathrow: fix interrupt processing.
2022-08-24 14:58:07 +02:00
joevt
3ee2ea1871
Fix read/write argument names
...
base class uses reg_start so derived classes should do the same.
Some derived class already uses reg_start for read method.
2022-08-22 17:16:22 -07:00
joevt
b76bfedf4b
Remove unnecessary linefeeds from log
...
To remove blank lines in the dingusppc.log file or in the console output when -d is used.
2022-08-14 05:26:56 -07:00
Maxim Poliakovski
56db0426a4
heathrow: fix EMMO bit.
2022-08-08 21:06:57 +02:00
Maxim Poliakovski
c3939e3b25
Gossamer: factory test control.
2022-07-20 20:08:37 +02:00
Maxim Poliakovski
c0078ce97d
Refactor MachineBase and MachineFactory classes.
...
Adding new machines is much easier now.
A significant amount of duplicated code has been reduced.
2022-07-18 20:27:34 +02:00
Maxim Poliakovski
9056d53474
macio: self-registration with the device registry.
2022-07-18 20:27:34 +02:00
Maxim Poliakovski
5668fc161f
macio: fix SWIM3 register space accesses.
2022-06-13 23:15:48 +02:00
Maxim Poliakovski
d4c08bbe31
Fix ESCC register addressing.
2022-05-07 21:47:22 +02:00
Maxim Poliakovski
4d87ed9b38
Make NVRAM a full-fledged HW component.
2022-03-29 01:55:11 +02:00
Maxim Poliakovski
276cd37cfe
Heathrow: interrupt registers & mode 1 interrupts.
2022-03-14 18:13:47 +01:00
Maxim Poliakovski
4c45b3dfa2
Heathrow: use common PCI configuration code.
2022-03-14 18:13:47 +01:00
Maxim Poliakovski
c946693450
escc: unify compatible and MacRISC addressing.
2022-02-26 10:57:13 +01:00
Maxim Poliakovski
5c177cc50f
Simplify registration of HW component types.
2022-01-26 16:45:21 +01:00
Maxim Poliakovski
9a0c340712
Basic SWIM3 and Superdrive emulation.
2021-12-12 21:40:04 +01:00
Maxim Poliakovski
fc44cdcc83
Heathrow: logging monitor sense status.
2021-11-09 13:41:48 +01:00
Maxim Poliakovski
87b8e1759a
Connect ESCC to AMIC and Heathrow.
2021-10-25 22:19:45 +02:00
Maxim Poliakovski
3f20d0a700
heathrow: use unique_ptr with internal objects.
2021-10-25 22:19:45 +02:00
Maxim Poliakovski
9329d56d83
Move devices into dedicated subdirectories.
2021-10-23 20:17:47 +02:00