blob: fb8e5e0a0ab465cdb1d1387be97e1fadf7a96dc3 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
// license:BSD-3-Clause
// copyright-holders:Tim Lindner
/*********************************************************************
ds1315.h
Dallas Semiconductor's Phantom Time Chip DS1315.
by tim lindner, November 2001.
*********************************************************************/
#ifndef MAME_MACHINE_DS1315_H
#define MAME_MACHINE_DS1315_H
#pragma once
class ds1315_device : public device_t
{
public:
ds1315_device(const machine_config &mconfig, const char *tag, device_t *owner, const XTAL &clock);
~ds1315_device() {}
auto read_backing() { return m_backing_read.bind(); }
// this handler automates the bits 0/2 stuff
uint8_t read(offs_t offset);
uint8_t read_0();
uint8_t read_1();
uint8_t read_data();
uint8_t write_data(offs_t offset);
bool chip_enable();
void chip_reset();
protected:
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
private:
devcb_read8 m_backing_read;
enum mode_t : u8
{
DS_SEEK_MATCHING,
DS_CALENDAR_IO
};
// internal state
mode_t m_mode;
void fill_raw_data();
void input_raw_data();
int m_count;
uint8_t m_raw_data[8*8];
};
ALLOW_SAVE_TYPE(ds1315_device::mode_t);
DECLARE_DEVICE_TYPE(DS1315, ds1315_device)
#endif // MAME_MACHINE_DS1315_H
|