Previous 15994 Revisions Next

r12450 Tuesday 2nd August, 2011 at 00:52:31 UTC by R. Belmont
mac: Corrected register meanings for vikbw (nw)
[src/mess/video]nubus_vikbw.c nubus_vikbw.h

src/mess/video/nubus_vikbw.c
r12449r12450
44 
55  Apparently incompatible with System 7.0 and later(!)
66 
7  VRAM from Fs040000 to Fs0517FF
8  Read from Fs000000 enables VBL, write to Fs000000 disables VBL
9  Write to Fs080000 acks VBL
10 
711***************************************************************************/
812
913#include "emu.h"
r12449r12450
97101//   printf("[vikbw %p] slotspace = %x\n", this, slotspace);
98102
99103   m_vram = auto_alloc_array(machine(), UINT8, VRAM_SIZE);
100   install_bank(slotspace, slotspace+VRAM_SIZE-1, 0, 0, "bank_vikbw1", m_vram);
101104   install_bank(slotspace+0x40000, slotspace+0x40000+VRAM_SIZE-1, 0, 0, "bank_vikbw", m_vram);
102105
103   m_nubus->install_device(slotspace+0x40000+VRAM_SIZE, slotspace+0x40000+VRAM_SIZE+0x3ffff, read32_delegate(FUNC(nubus_vikbw_device::viking_r), this), write32_delegate(FUNC(nubus_vikbw_device::viking_w), this));
106   m_nubus->install_device(slotspace, slotspace+3, read32_delegate(FUNC(nubus_vikbw_device::viking_enable_r), this), write32_delegate(FUNC(nubus_vikbw_device::viking_disable_w), this));
107   m_nubus->install_device(slotspace+0x80000, slotspace+0x80000+3, read32_delegate(FUNC(nubus_vikbw_device::viking_ack_r), this), write32_delegate(FUNC(nubus_vikbw_device::viking_ack_w), this));
104108}
105109
106//-------------------------------------------------
110//-------------------------------------------------         
107111//  device_reset - device-specific reset
108112//-------------------------------------------------
109113
r12449r12450
155159   return 0;
156160}
157161
158WRITE32_MEMBER( nubus_vikbw_device::viking_w )
162WRITE32_MEMBER( nubus_vikbw_device::viking_ack_w )
159163{
160//   printf("viking_w: %08x @ %x (mask %08x)\n", data, offset, mem_mask);
164   m_nubus->set_irq_line(m_slot, CLEAR_LINE);
165}
161166
162   if (offset == 0 && data == 0)
163   {
164      m_vbl_disable = 0;
165   }
166   else if (offset == 0xa000)
167   {
168      m_nubus->set_irq_line(m_slot, CLEAR_LINE);
169   }
167READ32_MEMBER( nubus_vikbw_device::viking_ack_r )
168{
169   return 0;
170170}
171171
172READ32_MEMBER( nubus_vikbw_device::viking_r )
172WRITE32_MEMBER( nubus_vikbw_device::viking_disable_w )
173173{
174//   printf("viking_r: @ %x (mask %08x)\n", offset, mem_mask);
174   m_vbl_disable = 1;
175}
176
177READ32_MEMBER( nubus_vikbw_device::viking_enable_r )
178{
179   m_vbl_disable = 0;
175180   return 0;
176181}
177182
src/mess/video/nubus_vikbw.h
r12449r12450
3131        virtual void device_start();
3232        virtual void device_reset();
3333
34        DECLARE_READ32_MEMBER(viking_r);
35        DECLARE_WRITE32_MEMBER(viking_w);
34        DECLARE_READ32_MEMBER(viking_ack_r);
35        DECLARE_WRITE32_MEMBER(viking_ack_w);
36        DECLARE_READ32_MEMBER(viking_enable_r);
37        DECLARE_WRITE32_MEMBER(viking_disable_w);
3638
3739public:
3840        UINT8 *m_vram;

Previous 15994 Revisions Next


© 1998-2018 The MESS Team