make FIFO size static whene possible

This commit is contained in:
RSDuck
2020-12-30 23:37:46 +01:00
parent 162a0f4fb6
commit fa4363ede6
9 changed files with 409 additions and 367 deletions

View File

@ -84,40 +84,40 @@ private:
u16 MB_Read16(int n)
{
u16 ret = Mailbox[n]->Read();
ret |= (Mailbox[n]->Read() << 8);
u16 ret = Mailbox[n].Read();
ret |= (Mailbox[n].Read() << 8);
return ret;
}
void MB_Write16(int n, u16 val)
{
Mailbox[n]->Write(val & 0xFF); val >>= 8;
Mailbox[n]->Write(val & 0xFF);
Mailbox[n].Write(val & 0xFF); val >>= 8;
Mailbox[n].Write(val & 0xFF);
}
u32 MB_Read32(int n)
{
u32 ret = Mailbox[n]->Read();
ret |= (Mailbox[n]->Read() << 8);
ret |= (Mailbox[n]->Read() << 16);
ret |= (Mailbox[n]->Read() << 24);
u32 ret = Mailbox[n].Read();
ret |= (Mailbox[n].Read() << 8);
ret |= (Mailbox[n].Read() << 16);
ret |= (Mailbox[n].Read() << 24);
return ret;
}
void MB_Write32(int n, u32 val)
{
Mailbox[n]->Write(val & 0xFF); val >>= 8;
Mailbox[n]->Write(val & 0xFF); val >>= 8;
Mailbox[n]->Write(val & 0xFF); val >>= 8;
Mailbox[n]->Write(val & 0xFF);
Mailbox[n].Write(val & 0xFF); val >>= 8;
Mailbox[n].Write(val & 0xFF); val >>= 8;
Mailbox[n].Write(val & 0xFF); val >>= 8;
Mailbox[n].Write(val & 0xFF);
}
void MB_Drain(int n)
{
while (!Mailbox[n]->IsEmpty()) Mailbox[n]->Read();
while (!Mailbox[n].IsEmpty()) Mailbox[n].Read();
}
FIFO<u8>* Mailbox[9];
DynamicFIFO<u8> Mailbox[9];
u8 F0_IRQEnable;
u8 F0_IRQStatus;