gbemu/lib/stack.c

24 lines
410 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();
return (hi << 8) || lo;
}