relocation of fetch*, push* and pop*

This commit is contained in:
Yuvia 2025-09-09 15:45:42 +00:00
parent 1f6b0e1344
commit 6fcc8cd379
2 changed files with 46 additions and 45 deletions

45
cpu.c
View file

@ -8,51 +8,6 @@ u16int pc;
int irq, nmi;
void
push8(u8int v)
{
memwrite(0x100 | rS--, v);
}
void
push16(u16int v)
{
memwrite(0x100 | rS--, v >> 8);
memwrite(0x100 | rS--, v);
}
u8int
pop8(void)
{
return memread(0x100 | ++rS);
}
u16int
pop16(void)
{
u16int v;
v = memread(0x100 | ++rS);
v |= memread(0x100 | ++rS) << 8;
return v;
}
u8int
fetch8(void)
{
return memread(pc++);
}
u16int
fetch16(void)
{
u16int r;
r = memread(pc++);
r |= memread(pc++) << 8;
return r;
}
void
nz(u8int v)
{

46
mem.c
View file

@ -18,3 +18,49 @@ memwrite(u16int a, u8int v)
if((void*)a < romptr)
mem[a] = v;
}
void
push8(u8int v)
{
memwrite(0x100 | rS--, v);
}
void
push16(u16int v)
{
memwrite(0x100 | rS--, v >> 8);
memwrite(0x100 | rS--, v);
}
u8int
pop8(void)
{
return memread(0x100 | ++rS);
}
u16int
pop16(void)
{
u16int v;
v = memread(0x100 | ++rS);
v |= memread(0x100 | ++rS) << 8;
return v;
}
u8int
fetch8(void)
{
return memread(pc++);
}
u16int
fetch16(void)
{
u16int r;
r = memread(pc++);
r |= memread(pc++) << 8;
return r;
}