#pragma once

uint LOADUINT( uint* address );
void STOREUINT( uint* address, uint value );

struct CacheLine
{
	uint data[16]; // 64 bytes
	bool valid, dirty;
};

class Cache
{
public:
	Cache();
	~Cache();
	uint Read32bit( uint address );
	void Write32bit( uint address, uint value );
	float GetDummyValue() const { return dummy; }
private:
	void LoadLineFromMem( uint address, CacheLine& line );
	void WriteLineToMem( uint address, CacheLine& line );
	float dummy;
};