joevt
529fff7d4d
timermanager: Pre-allocate TimerInfo.
...
Remove std::shared_ptr allocation/deallocation of TimerInfo structs.
2026-09-25 20:12:05 -07:00
joevt
14bae3d789
timermanager: Add time parameters to callback.
2026-09-23 07:04:04 -07:00
dingusdev
79f1edc102
Adding additional regs in AMIC
2026-07-24 20:58:04 -07:00
Tim Jarzombek and joevt
3ecf59233c
amic: Make RcvDma fields unique_ptr like XmitDma.
...
From earlier commit:
"amic: Emulate SCC receive DMA registers instead of returning random
values."
Co-Authored-By: joevt <joevt@shaw.ca >
2026-07-24 07:44:02 -07:00
joevt
2a3b6d9cb7
dmacore: Rename is_ready.
...
So that it is not confused with other contexts.
2026-07-14 18:48:10 -07:00
joevt
37da4d3162
dmacore: Add DmaPushResult.
2026-07-02 08:10:04 -07:00
Maxim Poliakovski
30d95e1409
dmacore: add support for several channels per device.
2026-05-29 23:22:16 +02:00
Tim Jarzombek
ad4515721b
amic: Emulate SCC receive DMA registers instead of returning random values.
...
The SCC DMA Receive control registers previously returned std::rand(),
a workaround to unblock Mac OS 8.5/8.5.1 boot which polls these
registers expecting specific bit patterns. This caused non-deterministic
bimodal boot times (~10s vs ~18s) on Power Mac 6100 as the guest would
sometimes enter a ~7s polling loop depending on the random value.
Add AmicSerialRcvDma to properly track the control register and byte
count state for both SCC receive channels. Writes now update the status
byte using the same bit manipulation as the transmit DMA channels, and
reads return the tracked state. Also wire up the RX byte count registers
(SCC_RXA/B_Byte_Cnt_Hi/Lo) which were previously ignored on write.
2026-03-08 18:34:00 -07:00
dingusdev
213dd4c16e
Update copyright info further
2026-01-30 08:12:04 -07:00
Maxim Poliakovski
e75ee8d32a
Update copyright year.
2026-01-30 12:15:00 +01:00
joevt
5412fbc198
Remove superfluous semicolons.
2025-06-27 19:01:14 -07:00
Maxim Poliakovski
2068803c6b
amic: simplify VIA2_IFR writes.
2025-05-29 15:40:26 +02:00
joevt
35f2ce14f1
Add type and description to device descriptors.
...
Add supports_types to device descriptors so that we can determine
supported types without having to create the hardware device.
Add description so that each device can have an optional description.
2025-05-28 17:58:08 +02:00
joevt
a8b6a16e1a
Move ScsiCurio to Sc53C94.
2025-05-27 07:56:26 -07:00
dingusdev
65d414bd4e
Fixing compile issues
2025-04-28 15:05:40 +02:00
joevt
fa5e8b0bf8
amic: Return random value for SCC DMA Rcv.
...
This allows Mac OS 8.5 and Mac OS 8.5.1 to boot from SCSI of Power Mac 6100.
2025-04-28 15:05:40 +02:00
joevt
24a18f7769
amic: Define local variable in minimum scope.
2025-04-27 07:33:30 -07:00
Maxim Poliakovski
ab8abf39cc
amic: remove deprecated SCSI DMA code.
2025-04-11 19:24:56 +02:00
Maxim Poliakovski
f6f11e81e9
Switch AMIC SCSI DMA to the new DMA API.
2025-04-01 04:02:51 +02: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
joevt
1bf4073fa7
macio: Range check scc compatible register index.
...
Also, non-compatible registers don't begin until 0x60 for SCC compatible addressing.
2024-12-04 21:03:09 -07:00
Mihai Parparita
4479387580
Remove using namespace std from remaining header files
...
It's somewhat of an anti-pattern, and can lead to conflicts with
other symbols (e.g. the Windows build failure in https://github.com/dingusdev/dingusppc/actions/runs/11762906342/job/32766290288 ,
I removed `using namespace std` from timermanager.h to fix that one).
2024-11-30 20:01:09 -08:00
joevt
6154b7cbe2
amic: Add modem port transmit DMA read.
2024-11-11 21:10:17 -07:00
joevt
4c9b125cc8
amic: Add modem port transmit DMA.
2024-03-14 08:05:42 -07:00
joevt
e1e00c951b
sc53c94: Split real_dma_xfer.
...
Create real_dma_xfer_out and real_dma_xfer_in methods.
2024-03-14 08:01:07 -07:00
Mihai Parparita
f218a38294
Ensure that AMIC pseudo-VBL timer is stopped when the object is destroyed.
2024-03-07 23:31:44 -08:00
joevt
1e78512c95
Rename Curio and Mesh.
2024-03-02 11:12:45 -07:00
joevt
b0dc893a05
dma: Add name to dma classes.
...
For logging purposes, each DMA channel should have a name.
2024-02-19 15:30:20 +01:00
Maxim Poliakovski
5902cd5c28
Wire SCSI_CURIO interrupt.
2024-02-12 01:46:21 +01:00
Maxim Poliakovski
58281520d3
Implement writes to SCSI Pseudo-DMA register.
2023-12-04 21:41:55 +01:00
Maxim Poliakovski
58dacfa263
amic: improve VIA2_IFR and VIA2_IER emulation.
2023-12-04 21:41:55 +01:00
Maxim Poliakovski
ae903082d8
amic: implement SCSI DRQ callback.
2023-12-04 21:41:55 +01:00
Maxim Poliakovski
46961711e4
amic: stub for Ch-B serial xmit DMA.
2023-12-01 22:01:48 +01:00
Maxim Poliakovski
b7341d0ab8
amic: implement sound out DMA IRQ.
2023-11-15 19:01:54 +01:00
Mihai Parparita
e011d86742
amic: don't reset cur_buf_pos if we've drained the DMA buffer
...
Otherwise if pull_data is called again, it will think that it still
has data available in the buffer (rem_len will be non-zero) and
random data at the buffer location will be returned.
This manifested itself as noise being played back in the JS
implementation of the SoundServer. The cubeb implementation was not
affected because it stops polling once it's told it has no more
data in the buffer. Both approaches are valid (the JS version pads
data with silence), and the DMA buffer should support both.
2023-11-06 22:33:00 -08:00
Maxim Poliakovski
72d45fb0de
amic: switch DMA code to mmu_map_dma_mem.
2023-10-02 14:48:25 +02:00
Maxim Poliakovski
5b90a3e21d
AMIC: rework and improve interrupts.
2023-08-01 17:42:52 +02:00
Maxim Poliakovski
f809124a2e
Improve SCSI bus registration.
2023-05-30 19:46:27 +02:00
Maxim Poliakovski
03595c3940
Merge remote-tracking branch 'origin/machine-yosemite'
2023-04-21 12:49:58 +02:00
Maxim Poliakovski
4093c6e83c
amic: fix SCSI DMA to match newer MMU API.
2023-04-17 01:32:29 +02:00
Maxim Poliakovski
cf0d361918
Merge 'hard-disks' branch.
2023-04-17 01:20:38 +02:00
Maxim Poliakovski
3234f21cab
Overhaul audio codec classes.
2023-02-25 18:14:42 +01:00
Maxim Poliakovski
9f4c248e4c
Rework DBDMA logic for bidirectional channels.
2022-11-17 18:03:18 +01:00
Maxim Poliakovski
c87fc10376
amic: implement SCSI DMA.
2022-11-07 21:56:27 +01:00
Maxim Poliakovski
6ffe28a8a4
Implement SCSI Pseudo-DMA register on PDM.
2022-11-01 01:17:50 +01:00
Maxim Poliakovski
3f2b77fd59
amic: basic writing to the VIA2 IFR.
2022-10-31 23:21:35 +01:00
Maxim Poliakovski
293c5a40f3
amic: fix PDM interrupts.
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
Maxim Poliakovski
3c062443f6
PDM: factory test control.
2022-07-20 01:36:05 +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