diff options
Diffstat (limited to 'src/devices/machine/pdp11.h')
-rw-r--r-- | src/devices/machine/pdp11.h | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/devices/machine/pdp11.h b/src/devices/machine/pdp11.h new file mode 100644 index 00000000000..303c94ca699 --- /dev/null +++ b/src/devices/machine/pdp11.h @@ -0,0 +1,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) \ + do { if ((_csr) & (_ie)) { (_intrq) = CLEAR_LINE; } } while (0) + +#define raise_virq(_callback, _csr, _ie, _intrq) \ + do { if ((_csr) & (_ie)) { (_intrq) = ASSERT_LINE; _callback (ASSERT_LINE); } } while (0) + + +#define UPDATE_16BIT(_storage, _data, _mask) \ + do { *_storage = ((*_storage & ~_mask) | (_data & _mask)); } while (0) + + +#endif // MAME_MACHINE_PDP11_H |