Move microPD1990ac.go
This commit is contained in:
parent
f9ba9256b5
commit
8e1bbdef0e
|
@ -1,5 +1,7 @@
|
||||||
package izapple2
|
package izapple2
|
||||||
|
|
||||||
|
import "github.com/ivanizag/izapple2/component"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
ThunderClock`, real time clock card.
|
ThunderClock`, real time clock card.
|
||||||
|
|
||||||
|
@ -22,7 +24,8 @@ uPD1990AC hookup:
|
||||||
// CardThunderClockPlus represents a ThunderClock+ card
|
// CardThunderClockPlus represents a ThunderClock+ card
|
||||||
type CardThunderClockPlus struct {
|
type CardThunderClockPlus struct {
|
||||||
cardBase
|
cardBase
|
||||||
microPD1990ac
|
upd1990 component.MicroPD1990ac
|
||||||
|
//component.microPD1990ac
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewCardThunderClockPlus creates a new CardThunderClockPlus
|
// NewCardThunderClockPlus creates a new CardThunderClockPlus
|
||||||
|
@ -35,7 +38,7 @@ func NewCardThunderClockPlus() *CardThunderClockPlus {
|
||||||
|
|
||||||
func (c *CardThunderClockPlus) assign(a *Apple2, slot int) {
|
func (c *CardThunderClockPlus) assign(a *Apple2, slot int) {
|
||||||
c.addCardSoftSwitchR(0, func(*ioC0Page) uint8 {
|
c.addCardSoftSwitchR(0, func(*ioC0Page) uint8 {
|
||||||
bit := c.microPD1990ac.out()
|
bit := c.upd1990.Out()
|
||||||
// Get the next data bit from uPD1990AC on the MSB
|
// Get the next data bit from uPD1990AC on the MSB
|
||||||
if bit {
|
if bit {
|
||||||
return 0x80
|
return 0x80
|
||||||
|
@ -51,7 +54,7 @@ func (c *CardThunderClockPlus) assign(a *Apple2, slot int) {
|
||||||
/* fmt.Printf("[cardThunderClock] dataIn %v, clock %v, strobe %v, command %v.\n",
|
/* fmt.Printf("[cardThunderClock] dataIn %v, clock %v, strobe %v, command %v.\n",
|
||||||
dataIn, clock, strobe, command) */
|
dataIn, clock, strobe, command) */
|
||||||
|
|
||||||
c.microPD1990ac.in(clock, strobe, command, dataIn)
|
c.upd1990.In(clock, strobe, command, dataIn)
|
||||||
}, "THUNDERCLOCKW")
|
}, "THUNDERCLOCKW")
|
||||||
|
|
||||||
c.cardBase.assign(a, slot)
|
c.cardBase.assign(a, slot)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package izapple2
|
package component
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"time"
|
"time"
|
||||||
|
@ -21,8 +21,7 @@ import (
|
||||||
byte 0: seconds, BCD 0 to 59
|
byte 0: seconds, BCD 0 to 59
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
type MicroPD1990ac struct {
|
||||||
type microPD1990ac struct {
|
|
||||||
clock bool // CLK state
|
clock bool // CLK state
|
||||||
strobe bool // STB state
|
strobe bool // STB state
|
||||||
command uint8 // C0, C1, C2 command. From 0 to 7
|
command uint8 // C0, C1, C2 command. From 0 to 7
|
||||||
|
@ -36,7 +35,7 @@ const (
|
||||||
mpd1990commandTimeRead = 3
|
mpd1990commandTimeRead = 3
|
||||||
)
|
)
|
||||||
|
|
||||||
func (m *microPD1990ac) in(clock bool, strobe bool, command uint8, dataIn bool) {
|
func (m *MicroPD1990ac) In(clock bool, strobe bool, command uint8, dataIn bool) {
|
||||||
// Detect signal raise
|
// Detect signal raise
|
||||||
clockRaise := clock && !m.clock
|
clockRaise := clock && !m.clock
|
||||||
strobeRaise := strobe && !m.strobe
|
strobeRaise := strobe && !m.strobe
|
||||||
|
@ -69,7 +68,7 @@ func (m *microPD1990ac) in(clock bool, strobe bool, command uint8, dataIn bool)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *microPD1990ac) out() bool {
|
func (m *MicroPD1990ac) Out() bool {
|
||||||
if m.command == mpd1990commandRegHold {
|
if m.command == mpd1990commandRegHold {
|
||||||
//panic("Output on RegHold should be a 1Hz signal. Not implemented.")
|
//panic("Output on RegHold should be a 1Hz signal. Not implemented.")
|
||||||
}
|
}
|
||||||
|
@ -82,7 +81,7 @@ func (m *microPD1990ac) out() bool {
|
||||||
return (m.register & 1) == 1
|
return (m.register & 1) == 1
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *microPD1990ac) loadTime() {
|
func (m *MicroPD1990ac) loadTime() {
|
||||||
now := time.Now()
|
now := time.Now()
|
||||||
|
|
||||||
var register uint64
|
var register uint64
|
Loading…
Reference in New Issue