mirror of
https://github.com/ivanizag/izapple2.git
synced 2025-02-08 20:30:47 +00:00
Language cards, disable write on softswitches writes.
This commit is contained in:
parent
3f7e3b3013
commit
61dae23726
@ -57,15 +57,11 @@ func (c *cardLanguage) assign(a *Apple2, slot int) {
|
||||
for i := 0x0; i <= 0xf; i++ {
|
||||
iCopy := i
|
||||
c.ssr[iCopy] = func(*ioC0Page) uint8 {
|
||||
c.ssAction(iCopy)
|
||||
c.ssAction(iCopy, false)
|
||||
return 0
|
||||
}
|
||||
c.ssw[iCopy] = func(*ioC0Page, uint8) {
|
||||
c.ssAction(iCopy)
|
||||
|
||||
// Writing shoud reset write count per A2AUDIT
|
||||
// but doing that makes ProDos to not load.
|
||||
// c.writeState = lcWriteDisabled
|
||||
c.ssAction(iCopy, true)
|
||||
}
|
||||
}
|
||||
|
||||
@ -73,7 +69,7 @@ func (c *cardLanguage) assign(a *Apple2, slot int) {
|
||||
c.applyState()
|
||||
}
|
||||
|
||||
func (c *cardLanguage) ssAction(ss int) {
|
||||
func (c *cardLanguage) ssAction(ss int, write bool) {
|
||||
c.activeBank = (ss >> 3) & 1
|
||||
action := ss & 0x3
|
||||
switch action {
|
||||
@ -99,6 +95,11 @@ func (c *cardLanguage) ssAction(ss int) {
|
||||
c.writeState = lcWriteEnabled
|
||||
}
|
||||
|
||||
// Writing to the softswtich disables writes.
|
||||
if write {
|
||||
c.writeState = lcWriteDisabled
|
||||
}
|
||||
|
||||
c.applyState()
|
||||
}
|
||||
|
||||
|
@ -48,19 +48,18 @@ func (c *cardSaturn) assign(a *Apple2, slot int) {
|
||||
for i := 0x0; i <= 0xf; i++ {
|
||||
iCopy := i
|
||||
c.ssr[iCopy] = func(*ioC0Page) uint8 {
|
||||
c.ssAction(iCopy)
|
||||
c.ssAction(iCopy, false)
|
||||
return 0
|
||||
}
|
||||
c.ssw[iCopy] = func(*ioC0Page, uint8) {
|
||||
// Writing does not reset write count
|
||||
c.ssAction(iCopy)
|
||||
c.ssAction(iCopy, true)
|
||||
}
|
||||
}
|
||||
c.cardBase.assign(a, slot)
|
||||
c.applyState()
|
||||
}
|
||||
|
||||
func (c *cardSaturn) ssAction(ss int) {
|
||||
func (c *cardSaturn) ssAction(ss int, write bool) {
|
||||
switch ss {
|
||||
case 0:
|
||||
// RAM read, no writes
|
||||
@ -124,6 +123,11 @@ func (c *cardSaturn) ssAction(ss int) {
|
||||
c.writeState = lcWriteEnabled
|
||||
}
|
||||
|
||||
// Writing to the softswtich disables writes.
|
||||
if write {
|
||||
c.writeState = lcWriteDisabled
|
||||
}
|
||||
|
||||
c.applyState()
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user