Commit Graph

158 Commits

Author SHA1 Message Date
tomcw
e8641555e8 Debugger: visually show that a 6522 is configured as bad in mini-mem window's title 2024-09-28 16:46:28 +01:00
TomCh
a88040c3ef
SSI263 - support for core functionality (#175, PR #1301)
. A phoneme will continue playing back infinitely; unless the phoneme is changed or CTL=1.
  . Reset doesn't affect SSI263/SC01 (so phonemes continue to play).
. CTL=1 sets "PD" (Power Down / "standby") mode, also set at power-on.
. CTL=0 brings device out of "PD" mode, the mode will be set to DR1,DR0 and the phoneme P5-P0 will play.
. Setting mode to DR1:0 = %00 just disables A/!R (ie. disables interrupts), but otherwise retains the previous DR1:0 mode.
. RESET is not connected to !PD/!RST pin 18.
 . Support edge-case where RESET can enable ints & assert IRQ.
. Power-on: PD=1 (so D7=0), reg4 (Filter Freq)=0xFF.
. Support SSI263 IRQ and D7 on a Phasor mode change (including Echo+).
. $Csxx I/O mapping (same for Mockingboard and Phasor mode).

Other:
. SSI263 save-state: support SC01 as a sub-unit of the card.
. 6522: Fix reg $F (ORA w/HS) to be identical to reg $1 (ORA).
2024-06-07 21:10:33 +01:00
TomCh
001f04c706
Phasor in Echo+ mode: fix the chip-select polarity (PR #1276) 2024-02-03 21:07:29 +00:00
TomCh
53fddfe41a
Fix SD Music card for mb-audit v1.50 (PR #1275)
. Fix for mb-audit's TestAYReadHiZ (bus-state wasn't being set correctly for SD Music's 6522 accessed via $Cs8x)
2024-01-30 19:48:34 +00:00
tomcw
56cc779351 MegaAudio card: Reads of 6522 IRB & IRA always return 0x00
. generalise the implementation: move AY READ logic down to 6522 read
2024-01-21 20:43:02 +00:00
tomcw
43daabec54 MegaAudio card: AY READ always drives bus with 0x00 2024-01-21 15:03:33 +00:00
tomcw
0888a25710 Small refactor for AY(s) driving bus for 6522 PortA 2024-01-06 18:20:33 +00:00
tomcw
69151a2aff MB/Phasor: support AY(s) driving bus for 6522 PortA (ie. for the PSG READ function)
. Bump MB/Phasor save-state unit to v11
. Tested against mb-audit v1.50
2024-01-03 21:22:25 +00:00
tomcw
a8de7f2030 6522: fix reading IRB - used as MB detection by Werewolf! (#1260) 2023-12-29 10:16:51 +00:00
tomcw
be427a6a30 Phasor: AY RESET resets both AYs attached to 6522 regardless of Phasor mode & CS bits. (#1197) 2023-09-07 21:40:13 +01:00
TomCh
5ba153c244
Add support for SD Music card (PR #1217)
Differences compared to Mockingboard:
. Only one 6522
. AY8913 is selected by address b7

Add cmd line: -sN sdmusic
Add cmd line: -mb-audit (to enable selection of additional sound cards, eg. for mb-audit)
2023-04-28 16:41:22 +01:00
TomCh
273d07d83f
Support MegaAudio card for testing mb-audit (PR #1211)
Differences compared to Mockingboard:
. TIMER1 underflows to $FFFE before it's reloaded with latch.
. TIMER1's LATCH=$0000 gets interpreted as $FFFF.
. Partial TIMER2 support: IFR.T2 gets set on underflow. But T2 reads as 0x00FF.
. AY register reads are unsupported (always read as 0).

Config->Sound: show 'MEGA Audio' in drop-down menus only if it was specified on the cmd line.
2023-04-12 18:19:18 +01:00
tomcw
5a7076135e Debugger: mini-view for AYs: show AY PSG function: RD, WR, LA (or '--' if INACTIVE) 2023-03-11 13:56:44 +00:00
tomcw
1416cc1676 Debugger: mini-mem views: support Phasor's AY1&AY2 pair in a single view.
. use: AYsn, where s=0-7 (slot), n=A|B (6522)
2023-03-09 22:53:09 +00:00
tomcw
055c299bb4 Debugger: use dedicated MB structs to populate mini-mem views.
Remove old v1 save-state header files.
2023-03-09 20:16:21 +00:00
tomcw
3f2f071fa6 MB: rename consts AY0/AY1 to AY1/AY2 (for consistency with mb-audit code) 2023-03-07 21:51:24 +00:00
tomcw
57c26c59b2 Update History.txt & some Phasor-related comments 2023-03-07 18:06:06 +00:00
tomcw
fb37310acd Phasor: support AY READ from both AYs (#1192) 2023-03-06 22:25:30 +00:00
tomcw
df0f4356ec Fix so that MB can still read AY regs after setting INACTIVE state (#1193) 2023-03-05 21:09:08 +00:00
tomcw
a3a89ad156 Phasor/MB: For AY INACTIVE state, bus floats high - so reflect this in 6522 PortA (fixes #1193) 2023-03-05 15:43:13 +00:00
tomcw
500f32071b Phasor/MB (#1192)
. For MB: isChipSelected[0] = true. So do this on Reset() or for Phasor when switching to MB mode.
. Add "Notes on Phasor's AY-3-8913 chip-select & r/w"
. Refactor some common code into SY6522::UpdatePortAForHiZ()
2023-03-05 15:37:52 +00:00
tomcw
7110e92f14 MB/Phasor save-state: persist 'Chip Select' & 'Reg Address Latch Valid' for MB card too 2023-03-04 23:25:53 +00:00
tomcw
d8e30e56be Phasor: support discrete LATCH & READ PSG functions (#1192)
. Recode 'MB_SUBUNIT::state' as a 2-element array
2023-03-04 22:41:07 +00:00
tomcw
3b53c882ab Phasor: improve odd Phasor logic for AY1 & AY2 chip select (#1192) 2023-03-04 19:38:11 +00:00
tomcw
34141b0c1d Phasor:
. add 2nd nAYCurrentRegister (Reg. Address Latch) for 2nd AY8913.
. add support for the odd Phasor logic when doing discrete LATCH and WRITE PSG functions.
(keep in sync with mb-audit v1.3)
2023-03-04 18:14:00 +00:00
tomcw
89eb0cb07b Mockingboard: After AY is reset, then latched addr isn't valid
. Save-state: save all 8 bits of latched addr.
. Debugger: for mini-AY dump, show latched addr (current register shown in white)
2023-03-01 21:01:59 +00:00
tomcw
db44b15c37 For Phasor (native/Echo+ modes) improve support for null AY chip-select case 2023-02-28 20:42:53 +00:00
tomcw
9cf3d00288 For Phasor (native/Echo+ modes) support the null AY chip-select case (for eg. mb-audit v0.9) 2023-02-26 21:52:46 +00:00
tomcw
0d0adc1f22 Phasor's Echo+: support dual-mono (R copied to L) 2023-02-25 21:25:46 +00:00
tomcw
bca99278b6 Simplify Phasor's Echo+ mode's chip-select (#1183) 2023-02-21 21:32:11 +00:00
tomcw
dc029a4700 Fix Phasor's Echo+ mode's dual chip-select (#1183) 2023-02-21 21:08:20 +00:00
tomcw
cc07dc7f7b Fix Phasor's Echo+ mode to use correct AYs (#1183) 2023-02-19 21:22:44 +00:00
tomcw
13ee80686c Phasor: support reading AY8913 regs for Echo+ mode 2023-02-19 18:28:37 +00:00
tomcw
bcdaa3e1c1 Phasor: support Echo+ mode (#1183) 2023-02-19 16:38:06 +00:00
Andrea
6b176f8ff5
Mockingboard: fix out of bounds access. (PR #1177) 2023-02-05 21:03:37 +00:00
tomcw
6a3a3114c7 MB:6522: fix edge case for IRQ not firing for very small latch values. (Fixes #1175) 2023-02-04 12:09:19 +00:00
tomcw
958c71de5f Phasor save-state v10: load older state's AYs in correct order. (Fixes #1174) 2023-01-30 21:27:49 +00:00
tomcw
749329b99f Phasor card fixes:
. Reset/Power-cycle: revert to PH_Mockingboard mode
. Load state: set SSI263() to 'm_phasorMode'
2023-01-29 19:20:07 +00:00
tomcw
d61d348f94 Fix comment 2023-01-29 13:37:07 +00:00
tomcw
cf722ff0cc Fix so that MockingboardCardMgr asserts IRQ based on the wired-OR sum of all MB card's 6522s. (Fixes #1173) 2023-01-29 13:32:55 +00:00
tomcw
c56d341bdb Remove old debug code 2023-01-28 20:56:54 +00:00
TomCh
71c67cf132
Refactor Mockingboard into a class (#1171)
Mockingboard or Phasor cards can be inserted into any slot.
Change Config->Sound to that slots 4+5 to be individually selected for the 3 soundcard types.
Add MockingboardCardManager class to manage multiple cards and mix the sound buffers.
2023-01-28 18:15:28 +00:00
tomcw
32c7babf51 Phasor load save-state:
. Fix regression when switched to using correct primary AY8913 (regressed at 1.30.10 and 1.30.11)
. Specifically fixes AppleWin-Test: phasor-fugue.aws.yaml
. NB. bumps Mockingingboard version in save-state to v8
2022-09-24 20:16:19 +01:00
tomcw
9e9996bee7 SSI263: support reg3's amplitude 2022-06-03 22:09:32 +01:00
tomcw
16f66da594 SSI263: support phoneme zero amplitude
Refine Phasor native mode's logic for SSI263 access
2022-06-02 20:32:16 +01:00
tomcw
5236bb95b6 Phasor: use correct primary AY8913 for Phasor & MB modes (now checked in mb-audit v1.2) 2022-05-21 11:15:01 +01:00
tomcw
08c730c647 Cmd line: add -wav-speaker <file> & -wav-mockingboard <file> 2022-04-17 16:23:51 +01:00
Kelvin Lee
80f3eaeb91
Various *Name() functions can simply return const std::string& (PR #1049) 2022-02-28 20:52:18 +00:00
tomcw
3fe06faf65 MB/6522: remove the legacy g_nMBTimerDevice variable.
Fix ASSERT from previous commit as SY6522.Reset() needs CriticalSection.
2022-02-12 18:42:58 +00:00
TomCh
f7c6ef397c
Split 6522 out of MB code and into own class (PR #1028)
NB. Update CpuInitialize() & CriticalSection creation:
. call CpuInitialize() on WM_CREATE to create CriticalSection
. needed as MB_Initialize() needs CriticalSection
2022-02-05 18:48:36 +00:00