izapple2/cardLogger.go

37 lines
841 B
Go
Raw Normal View History

2020-10-03 21:38:26 +00:00
package izapple2
2019-05-18 21:40:59 +00:00
import (
"fmt"
)
/*
Logger card. It never existed, I use it to trace accesses to the card.
*/
2020-10-14 19:54:51 +00:00
// CardLogger is a fake card to log soft switch invocations
type CardLogger struct {
2019-05-18 21:40:59 +00:00
cardBase
}
2020-10-14 19:54:51 +00:00
// NewCardLogger creates a new VidHD card
func NewCardLogger() *CardLogger {
var c CardLogger
c.name = "Softswitch log card"
return &c
}
func (c *CardLogger) assign(a *Apple2, slot int) {
2019-10-20 22:00:42 +00:00
for i := uint8(0x0); i <= 0xf; i++ {
2019-05-18 21:40:59 +00:00
iCopy := i
2019-10-20 22:00:42 +00:00
c.addCardSoftSwitchR(i, func(*ioC0Page) uint8 {
2019-05-18 21:40:59 +00:00
fmt.Printf("[cardLogger] Read access to softswith 0x%x for slot %v.\n", iCopy, slot)
return 0
2019-10-20 22:00:42 +00:00
}, "LOGGERR")
c.addCardSoftSwitchW(i, func(_ *ioC0Page, value uint8) {
fmt.Printf("[cardLogger] Write access to softswith 0x%x for slot %v, value 0x%02x.\n", iCopy, slot, value)
2019-10-20 22:00:42 +00:00
}, "LOGGERW")
2019-05-18 21:40:59 +00:00
}
c.cardBase.assign(a, slot)
}