2014-08-17 14:49:22 +00:00
|
|
|
package i6502
|
|
|
|
|
|
|
|
import (
|
2014-08-18 14:37:51 +00:00
|
|
|
"fmt"
|
2014-08-17 14:49:22 +00:00
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
"testing"
|
|
|
|
)
|
|
|
|
|
2014-08-18 14:37:51 +00:00
|
|
|
func AciaSubject() (*Acia6551, chan byte, chan byte) {
|
2014-08-17 15:18:14 +00:00
|
|
|
tx := make(chan byte)
|
|
|
|
rx := make(chan byte)
|
|
|
|
acia, _ := NewAcia6551(rx, tx)
|
|
|
|
|
2014-08-18 14:37:51 +00:00
|
|
|
return acia, rx, tx
|
2014-08-17 15:18:14 +00:00
|
|
|
}
|
|
|
|
|
2014-08-17 14:49:22 +00:00
|
|
|
func TestNewAcia6551(t *testing.T) {
|
|
|
|
tx := make(chan byte)
|
|
|
|
rx := make(chan byte)
|
|
|
|
acia, err := NewAcia6551(rx, tx)
|
|
|
|
|
|
|
|
assert.Nil(t, err)
|
|
|
|
assert.Equal(t, 0x4, acia.Size())
|
|
|
|
}
|
2014-08-17 15:18:14 +00:00
|
|
|
|
|
|
|
func TestAciaReset(t *testing.T) {
|
2014-08-18 14:37:51 +00:00
|
|
|
a, _, _ := AciaSubject()
|
|
|
|
|
2014-08-17 15:18:14 +00:00
|
|
|
a.Reset()
|
|
|
|
|
|
|
|
assert.Equal(t, a.txData, 0)
|
|
|
|
assert.True(t, a.txEmpty)
|
|
|
|
|
|
|
|
assert.Equal(t, a.rxData, 0)
|
|
|
|
assert.False(t, a.rxFull)
|
|
|
|
|
|
|
|
assert.False(t, a.txIrqEnabled)
|
|
|
|
assert.False(t, a.rxIrqEnabled)
|
2014-08-17 20:36:01 +00:00
|
|
|
|
|
|
|
assert.False(t, a.overrun)
|
|
|
|
assert.Equal(t, 0, a.controlData)
|
2014-08-17 15:18:14 +00:00
|
|
|
}
|
|
|
|
|
2014-08-18 14:37:51 +00:00
|
|
|
func TestAciaReadData(t *testing.T) {
|
|
|
|
a, _, _ := AciaSubject()
|
|
|
|
|
|
|
|
a.Rx <- 0x42
|
|
|
|
|
|
|
|
assert.True(t, a.rxFull)
|
|
|
|
|
|
|
|
fmt.Printf("Reading...\n")
|
|
|
|
value := a.Read(aciaData)
|
|
|
|
assert.Equal(t, 0x42, value)
|
|
|
|
assert.False(t, a.rxFull)
|
2014-08-17 15:18:14 +00:00
|
|
|
}
|