6 Stack::Stack(Bus
& bus
, MMU
& mmu
, word mask
)
7 : Hardware(bus
), mmu(mmu
), mask(mask
), sp(0) {
10 void Stack::push(unsigned char val
) {
11 mmu
.writeByte(sp
, val
);
16 unsigned char Stack::pop() {
20 return mmu
.readByte(sp
);
23 void Stack::setSP(word sp
) {
29 bool Stack::attachReg(const char *name
, IORegister
*reg
) {
30 if( strcmp(name
, "sph") == 0 )
32 else if( strcmp(name
, "spl") == 0 )
37 reg
->registerHW(this);
41 void Stack::regChanged(IORegister
*reg
) {
43 setSPH( (unsigned char)*sph
);
45 setSPL( (unsigned char)*spl
);