i6502/cpu_stack_test.go

29 lines
535 B
Go

package i6502
import (
"github.com/stretchr/testify/assert"
"testing"
)
func TestStackPushPopPeek(t *testing.T) {
assert := assert.New(t)
cpu, _, _ := NewRamMachine()
assert.Equal(0xFF, cpu.SP)
cpu.stackPush(0x42)
cpu.stackPush(0xA0)
assert.Equal(0xFD, cpu.SP)
assert.Equal(0x42, cpu.bus.Read(0x1FF))
assert.Equal(0xA0, cpu.bus.Read(0x1FE))
peekValue := cpu.stackPeek()
assert.Equal(0xFD, cpu.SP)
assert.Equal(0xA0, peekValue)
popValue := cpu.stackPop()
assert.Equal(0xFE, cpu.SP)
assert.Equal(0xA0, popValue)
}