summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/pdp11.h
blob: ee0528676455829424a43c65549ec4e393038176 (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
// license:BSD-3-Clause
// copyright-holders:Sergey Svishchev
/*****************************************************************************
 *
 * machine/pdp11.h
 *
 ****************************************************************************/

#ifndef MAME_MACHINE_PDP11_H
#define MAME_MACHINE_PDP11_H

#pragma once

// bit definitions for generic device CSR

enum : uint16_t
{
	CSR_GO =    0000001,
	CSR_IE =    0000100,    // interrupt enable
	CSR_DONE =  0000200,
	CSR_BUSY =  0004000,
	CSR_ERR =   0100000
};


#define clear_virq(_callback, _csr, _ie, _intrq) \
	if ((_csr) & (_ie)) { (_intrq) = CLEAR_LINE; }

#define raise_virq(_callback, _csr, _ie, _intrq) \
	if ((_csr) & (_ie)) { (_intrq) = ASSERT_LINE; _callback (ASSERT_LINE); }


#define UPDATE_16BIT(_storage, _data, _mask) \
	do { *_storage = ((*_storage & ~_mask) | (_data & _mask)); } while (0)


#endif // MAME_MACHINE_PDP11_H