Previous 199869 Revisions Next

r33992 Sunday 21st December, 2014 at 00:27:25 UTC by Robbbert
(MESS) excalibur : yet another attempt at hires graphics. (nw)
- Also added the missing hsync bit to the csync signal.
[src/mess/drivers]excali64.c

trunk/src/mess/drivers/excali64.c
r242503r242504
1919
2020ToDo:
2121- Colours are approximate.
22- Issues with bitmap graphics
2322- Disk controller, works with old wd17xx but crashes on new wd.
2423- Hardware supports 8 and 5.25 inch floppies, but we only support 5.25 as this
2524  is the only software that exists.
r242503r242504
9796   DECLARE_READ8_MEMBER(io_read_byte);
9897   DECLARE_WRITE8_MEMBER(io_write_byte);
9998   MC6845_UPDATE_ROW(update_row);
100   DECLARE_WRITE_LINE_MEMBER(crtc_de);
99   DECLARE_WRITE_LINE_MEMBER(crtc_hs);
101100   DECLARE_WRITE_LINE_MEMBER(crtc_vs);
102101   DECLARE_WRITE8_MEMBER(motor_w);
103102   DECLARE_MACHINE_RESET(excali64);
r242503r242504
110109   UINT8 m_sys_status;
111110   UINT8 m_kbdrow;
112111   bool m_crtc_vs;
113   bool m_crtc_de;
112   bool m_crtc_hs;
114113   bool m_motor;
115114   required_device<cpu_device> m_maincpu;
116115   required_device<cassette_image_device> m_cass;
r242503r242504
392391READ8_MEMBER( excali64_state::port50_r )
393392{
394393   UINT8 data = m_sys_status & 0x2f;
395   data |= (UINT8)m_crtc_vs << 4;
394   bool csync = m_crtc_hs | m_crtc_vs;
395   data |= (UINT8)csync << 4;
396396   return data;
397397}
398398
r242503r242504
457457   m_maincpu->reset();
458458}
459459
460WRITE_LINE_MEMBER( excali64_state::crtc_de )
460WRITE_LINE_MEMBER( excali64_state::crtc_hs )
461461{
462   m_crtc_de = state;
462   m_crtc_hs = state;
463463}
464464
465465WRITE_LINE_MEMBER( excali64_state::crtc_vs )
r242503r242504
561561
562562      if BIT(col, 0)
563563      {
564         UINT16 hires_bank = (m_p_videoram[mem+0x1000] ^ 4) << 24;
565         gfx = m_p_hiresram[hires_bank | (chr<<4) | ra]; // hires definition
564         UINT8 h = m_p_videoram[mem+0x1000] - 4;
565         if (h > 5)
566            h = 0; // keep us in bounds
567         // hires definition - pixels are opposite order to characters
568         gfx = BITSWAP8(m_p_hiresram[(h << 12) | (chr<<4) | ra], 0, 1, 2, 3, 4, 5, 6, 7);
566569      }
567570      else
568571         gfx = m_p_chargen[(chr<<4) | ra]; // normal character
r242503r242504
632635   MCFG_MC6845_SHOW_BORDER_AREA(false)
633636   MCFG_MC6845_CHAR_WIDTH(8)
634637   MCFG_MC6845_UPDATE_ROW_CB(excali64_state, update_row)
635   MCFG_MC6845_OUT_DE_CB(WRITELINE(excali64_state, crtc_de))
638   MCFG_MC6845_OUT_HSYNC_CB(WRITELINE(excali64_state, crtc_hs))
636639   MCFG_MC6845_OUT_VSYNC_CB(WRITELINE(excali64_state, crtc_vs))
637640
638641   /* Devices */


Previous 199869 Revisions Next


© 1997-2024 The MAME Team