Skip to content

Conversation

@arekkusu42
Copy link
Contributor

@arekkusu42 arekkusu42 commented Nov 2, 2025

This PR supercedes #14456 and fixes the behavior of C060 and C063 softswitches:

  • Apple II/II+ with SHIFT key mod enabled now act as expected (MT#8917)

  • SHIFT key mod is no longer applied to the IIe or IIe Enhanced (pad X6 is a broken diamond) but is still applied to the IIe Platinum (pad X6 is a connected bowtie)

  • Some cassettes (i.e. "hi" quality WAVs via "Apple Game Server") which previously failed to LOAD with CHKSUM ERROR, now work (and the "lo" WAVs continue to work):
    before:
    apple2p_cass_282_before
    after:
    apple2p_cass_282_after

Documentation:

  • It is unintuitive that PB2 (and SW3 on the IIgs) behaves differently than PB0/PB1.

  • Apple's documentation about the gameio pushbuttons says things like "the appropriate game input is connected to bit 7 of the data bus" without specifying if they are high or low. But the //c Tech Ref explicitly mentions C063 in context of the shift-key mod and says "0 if it is pressed".

  • Sather's UTA2E Fig 7.2 shows pull-down resistors on PB0 and PB1, but not PB2.

  • Also, there is good anecdotal corroboration of what's happening from respected source Michael J. Mahon.

  • Sather also describes the LM741 inverting the cassette input, in UTA2E 7-8.

Testing:

  • The previous SWITCHES test shows that the default state of C06X softswitch reads (with or without a joystick attached) now matches hardware behavior, verified against a ][+ clone, //c, Apple IIe Enhanced and Apple IIgs ROM 3: both C060 and C063 default to high bit ON, except on a //c, C060 depends instead on the 40/80 switch.

  • This PR is a group effort: Shift key behavior was verified across various hardware by folks on Slack; kudos to: SpecLad, Will Scullin, Joshua Bell, and Tom Greene.

Caveats:

  • This PR applies to common clones (and the tk3000) but I did not touch the tk2000 or the Apple 1 cassette.
  • The shift-key mod could be added back to the IIe and IIe Enhanced via an m_sysconfig option bit, if someone wants that.

Invert C060 cassette input (and SW3) and C063 PB2, to match
behavior verified across various hardware.

Fixes MT#8917 shift key mod behavior, and improves cassette LOAD.
@rb6502 rb6502 merged commit e81c49b into mamedev:master Nov 2, 2025
5 of 6 checks passed
@arekkusu42
Copy link
Contributor Author

(I would update MT#8917 but it seems to be impossible to create a MT account.)

@rb6502
Copy link
Contributor

rb6502 commented Nov 2, 2025

I'll update the MT issue.

@arekkusu42 arekkusu42 deleted the apple2-shift branch November 3, 2025 05:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants