Previous 199869 Revisions Next

r20532 Sunday 27th January, 2013 at 15:09:55 UTC by Curt Coder
(MESS) Tagmap lookup cleanup. (nw)
[src/mess/drivers]abc1600.c mpz80.c
[src/mess/includes]abc1600.h mpz80.h
[src/mess/machine]terminal.h
[src/mess/video]abc1600.c

trunk/src/mess/machine/terminal.h
r20531r20532
6060   virtual ioport_constructor device_input_ports() const;
6161   virtual machine_config_constructor device_mconfig_additions() const;
6262protected:
63   required_ioport m_io_term_frame;
63   optional_ioport m_io_term_frame;
6464   required_ioport m_io_term_conf;
6565
6666   virtual void term_write(UINT8 data);
trunk/src/mess/includes/mpz80.h
r20531r20532
2727         m_ram(*this, RAM_TAG),
2828         m_terminal(*this, TERMINAL_TAG),
2929         m_s100(*this, S100_TAG),
30         m_rom(*this, Z80_TAG),
3031         m_map_ram(*this, "map_ram"),
3132         m_16c(*this, "16C"),
3233         m_nmi(1),
r20531r20532
4647   required_device<ram_device> m_ram;
4748   required_device<generic_terminal_device> m_terminal;
4849   required_device<s100_device> m_s100;
50   required_memory_region m_rom;
4951   optional_shared_ptr<UINT8> m_map_ram;
5052   required_ioport m_16c;
5153
trunk/src/mess/includes/abc1600.h
r20531r20532
7474         m_bus0x(*this, BUS0X_TAG),
7575         m_bus1(*this, BUS1_TAG),
7676         m_bus2(*this, BUS2_TAG),
77         m_rom(*this, MC68008P8_TAG),
78         m_wrmsk_rom(*this, "wrmsk"),
79         m_shinf_rom(*this, "shinf"),
80         m_drmsk_rom(*this, "drmsk"),
7781         m_segment_ram(*this, "segment_ram"),
7882         m_page_ram(*this, "page_ram"),
7983         m_video_ram(*this, "video_ram")
r20531r20532
98102   required_device<abc1600bus_slot_device> m_bus0x;
99103   required_device<abc1600bus_slot_device> m_bus1;
100104   required_device<abc1600bus_slot_device> m_bus2;
105   required_memory_region m_rom;
106   required_memory_region m_wrmsk_rom;
107   required_memory_region m_shinf_rom;
108   required_memory_region m_drmsk_rom;
101109   optional_shared_ptr<UINT8> m_segment_ram;
102110   optional_shared_ptr<UINT16> m_page_ram;
103111   optional_shared_ptr<UINT16> m_video_ram;
r20531r20532
223231   int m_btce;                 // V.24 channel B external clock enable
224232
225233   // video
226   const UINT8 *m_wrmsk_rom;   // write mask ROM
227   const UINT8 *m_shinf_rom;   // shifter info ROM
228   const UINT8 *m_drmsk_rom;   // data read mask ROM
229234   int m_endisp;               // enable display
230235   int m_clocks_disabled;      // clocks disabled
231236   UINT16 m_gmdi;              // video RAM data latch
trunk/src/mess/video/abc1600.c
r20531r20532
779779   */
780780
781781   UINT16 shinf_addr = (m_udx << 8) | ((m_xto & 0x0f) << 4) | (m_xfrom & 0x0f);
782   UINT8 shinf = m_shinf_rom[shinf_addr];
782   UINT8 shinf = m_shinf_rom->base()[shinf_addr];
783783
784784   m_sh = shinf & 0x0f;
785785   m_hold_1w_cyk = BIT(shinf, 5);
r20531r20532
805805   */
806806
807807   UINT16 drmsk_addr = (m_udx << 4) | (m_sh & 0x0f);
808   UINT8 drmskl = m_drmsk_rom[drmsk_addr];
809   UINT8 drmskh = m_drmsk_rom[drmsk_addr + 0x20];
808   UINT8 drmskl = m_drmsk_rom->base()[drmsk_addr];
809   UINT8 drmskh = m_drmsk_rom->base()[drmsk_addr + 0x20];
810810   UINT16 drmsk = (drmskh << 8) | drmskl;
811811
812812   return drmsk;
r20531r20532
839839   */
840840
841841   UINT16 wrmsk_addr = (m_wrms1 << 11) | (m_wrms0 << 10) | ((!m_wrms1 && !m_wrms0) << 9) | (m_udx << 8) | ((m_xsize & 0x0f) << 4) | (m_xto & 0x0f);
842   UINT8 wrmskl = m_wrmsk_rom[wrmsk_addr];
843   UINT8 wrmskh = m_wrmsk_rom[wrmsk_addr + 0x1000];
842   UINT8 wrmskl = m_wrmsk_rom->base()[wrmsk_addr];
843   UINT8 wrmskh = m_wrmsk_rom->base()[wrmsk_addr + 0x1000];
844844   UINT16 wrmsk = (wrmskh << 8) | wrmskl;
845845
846846   return wrmsk ^ 0xffff;
r20531r20532
10541054   // allocate video RAM
10551055   m_video_ram.allocate(VIDEORAM_SIZE);
10561056
1057   // find memory regions
1058   m_wrmsk_rom = memregion("wrmsk")->base();
1059   m_shinf_rom = memregion("shinf")->base();
1060   m_drmsk_rom = memregion("drmsk")->base();
1061
10621057   // state saving
10631058   save_item(NAME(m_endisp));
10641059   save_item(NAME(m_clocks_disabled));
trunk/src/mess/drivers/abc1600.c
r20531r20532
839839   if (!BOOTE && !A19 && !A18 && !A17)
840840   {
841841      // _BOOTCE
842      UINT8 *rom = memregion(MC68008P8_TAG)->base();
843      data = rom[offset & 0x3fff];
842      data = m_rom->base()[offset & 0x3fff];
844843   }
845844   else if (A19 && !m_ifc2 && !FC1)
846845   {
trunk/src/mess/drivers/mpz80.c
r20531r20532
163163READ8_MEMBER( mpz80_state::mmu_r )
164164{
165165   m_addr = get_address(offset);
166   UINT8 *rom = memregion(Z80_TAG)->base();
167166   UINT8 data = 0;
168167
169168   if (m_pretrap)
r20531r20532
180179   {
181180      if (offset < 0x400)
182181      {
183         UINT8 *ram = m_ram->pointer();
184         data = ram[offset & 0x3ff];
182         data = m_ram->pointer()[offset & 0x3ff];
185183      }
186184      else if (offset == 0x400)
187185      {
r20531r20532
206204      else if (offset < 0xc00)
207205      {
208206         UINT16 rom_addr = (m_trap_reset << 10) | (offset & 0x3ff);
209         data = rom[rom_addr];
207         data = m_rom->base()[rom_addr];
210208      }
211209      else
212210      {
r20531r20532
234232   {
235233      if (offset < 0x400)
236234      {
237         UINT8 *ram = m_ram->pointer();
238         ram[offset & 0x3ff] = data;
235         m_ram->pointer()[offset & 0x3ff] = data;
239236      }
240237      else if (offset == 0x400)
241238      {
r20531r20532
813810{
814811   if (m_trap && address >= m_trap_start && address <= m_trap_start + 0xf)
815812   {
816      direct.explicit_configure(m_trap_start, m_trap_start + 0xf, 0xf, memregion(Z80_TAG)->base() + ((m_trap_reset << 10) | 0x3f0));
813      direct.explicit_configure(m_trap_start, m_trap_start + 0xf, 0xf, m_rom->base() + ((m_trap_reset << 10) | 0x3f0));
817814      return ~0;
818815   }
819816

Previous 199869 Revisions Next


© 1997-2024 The MAME Team