24 lines
409 B
C
24 lines
409 B
C
#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;
|
|
}
|