StrikeBox/src/core/openxbox/hw/basic/i8254.h

34 lines
684 B
C
Raw Normal View History

#pragma once
#include <cstdint>
2018-03-10 15:05:10 -05:00
#include "i8259.h"
#include "openxbox/io.h"
namespace openxbox {
#define PORT_PIT_DATA_0 0x40
#define PORT_PIT_DATA_1 0x41
#define PORT_PIT_DATA_2 0x42
#define PORT_PIT_COMMAND 0x43
#define PORT_PIT_BASE PORT_PIT_DATA_0
#define PORT_PIT_COUNT (PORT_PIT_COMMAND - PORT_PIT_DATA_0 + 1)
class i8254 : public IODevice {
public:
2018-03-10 15:05:10 -05:00
i8254(i8259 *pic, float tickRate = 1000.0f);
void Reset();
void Run();
bool IORead(uint32_t port, uint32_t *value, uint8_t size) override;
bool IOWrite(uint32_t port, uint32_t value, uint8_t size) override;
private:
2018-03-10 15:05:10 -05:00
i8259 *m_pic;
float m_tickRate;
bool m_running;
};
}