gbemu/lib/stack.c

24 lines
409 B
C
Raw Normal View History

2025-01-30 22:54:33 -07:00
#include <stack.h>
#include <cpu.h>
#include <bus.h>
void stack_push(u8 data){
cpu_get_regs()->sp--;
bus_write(cpu_get_regs()->sp, data);
}
void stack_push16(u16 data){
stack_push((data >> 8) & 0xFF);
stack_push(data & 0xFF);
}
u8 stack_pop(){
return bus_read(cpu_get_regs()->sp++);
}
u16 stack_pop16(){
u16 lo = stack_pop();
u16 hi = stack_pop();
2025-01-31 12:24:55 -07:00
return (hi << 8) | lo;
2025-01-30 22:54:33 -07:00
}