diff options
Diffstat (limited to 'src/mame/includes/lynx.h')
-rw-r--r-- | src/mame/includes/lynx.h | 217 |
1 files changed, 110 insertions, 107 deletions
diff --git a/src/mame/includes/lynx.h b/src/mame/includes/lynx.h index 6ed055e9406..17e321cf868 100644 --- a/src/mame/includes/lynx.h +++ b/src/mame/includes/lynx.h @@ -5,10 +5,11 @@ * includes/lynx.h * ****************************************************************************/ - #ifndef MAME_INCLUDES_LYNX_H #define MAME_INCLUDES_LYNX_H +#pragma once + #include "audio/lynx.h" #include "imagedev/snapquik.h" #include "bus/generic/slot.h" @@ -18,86 +19,86 @@ #define LYNX_QUICKLOAD 1 -struct BLITTER -{ - // global - uint16_t screen; - uint16_t colbuf; - uint16_t colpos; // byte where value of collision is written - int16_t xoff, yoff; - // in command - int mode; - uint8_t spr_coll; - uint8_t spritenr; - int16_t x_pos,y_pos; - uint16_t width, height; // uint16 important for blue lightning - int16_t tilt_accumulator; - uint16_t height_accumulator, width_accumulator; - uint16_t width_offset, height_offset; - int16_t stretch, tilt; - uint8_t color[16]; // or stored - uint16_t bitmap; - int use_rle; - int line_color; - - uint8_t spr_ctl0; - uint8_t spr_ctl1; - uint16_t scb; - uint16_t scb_next; - uint8_t sprite_collide; - - int everon; - uint8_t fred; - int memory_accesses; - attotime time; - - int no_collide; - int vstretch; - int lefthanded; - int busy; -}; +#define NR_LYNX_TIMERS 8 -struct UART +class lynx_state : public driver_device { - uint8_t serctl; - uint8_t data_received, data_to_send, buffer; - int received; - int sending; - int buffer_loaded; -}; +public: + struct BLITTER + { + // global + uint16_t screen; + uint16_t colbuf; + uint16_t colpos; // byte where value of collision is written + int16_t xoff, yoff; + // in command + int mode; + uint8_t spr_coll; + uint8_t spritenr; + int16_t x_pos,y_pos; + uint16_t width, height; // uint16 important for blue lightning + int16_t tilt_accumulator; + uint16_t height_accumulator, width_accumulator; + uint16_t width_offset, height_offset; + int16_t stretch, tilt; + uint8_t color[16]; // or stored + uint16_t bitmap; + int use_rle; + int line_color; + + uint8_t spr_ctl0; + uint8_t spr_ctl1; + uint16_t scb; + uint16_t scb_next; + uint8_t sprite_collide; + + int everon; + uint8_t fred; + int memory_accesses; + attotime time; + + int no_collide; + int vstretch; + int lefthanded; + int busy; + }; -struct SUZY -{ - uint8_t data[0x100]; - uint8_t high; - int low; - int signed_math; - int accumulate; - int accumulate_overflow; -}; + struct UART + { + uint8_t serctl; + uint8_t data_received, data_to_send, buffer; + int received; + int sending; + int buffer_loaded; + }; -struct MIKEY -{ - uint8_t data[0x100]; - uint16_t disp_addr; - uint8_t vb_rest; -}; + struct SUZY + { + uint8_t data[0x100]; + uint8_t high; + int low; + int signed_math; + int accumulate; + int accumulate_overflow; + }; -struct LYNX_TIMER -{ - uint8_t bakup; - uint8_t cntrl1; - uint8_t cntrl2; - uint8_t counter; - emu_timer *timer; - int timer_active; -}; + struct MIKEY + { + uint8_t data[0x100]; + uint16_t disp_addr; + uint8_t vb_rest; + }; -#define NR_LYNX_TIMERS 8 + struct LYNX_TIMER + { + uint8_t bakup; + uint8_t cntrl1; + uint8_t cntrl2; + uint8_t counter; + emu_timer *timer; + int timer_active; + }; -class lynx_state : public driver_device -{ -public: enum { TIMER_BLITTER, @@ -106,8 +107,8 @@ public: TIMER_UART }; - lynx_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag), + lynx_state(const machine_config &mconfig, device_type type, const char *tag) : + driver_device(mconfig, type, tag), m_mem_0000(*this, "mem_0000"), m_mem_fc00(*this, "mem_fc00"), m_mem_fd00(*this, "mem_fd00"), @@ -116,36 +117,11 @@ public: m_maincpu(*this, "maincpu"), m_sound(*this, "custom"), m_cart(*this, "cartslot"), - m_palette(*this, "palette") { } - - virtual void video_start() override; + m_palette(*this, "palette") + { } uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - required_shared_ptr<uint8_t> m_mem_0000; - required_shared_ptr<uint8_t> m_mem_fc00; - required_shared_ptr<uint8_t> m_mem_fd00; - required_shared_ptr<uint8_t> m_mem_fe00; - required_shared_ptr<uint8_t> m_mem_fffa; - required_device<cpu_device> m_maincpu; - required_device<lynx_sound_device> m_sound; - required_device<generic_slot_device> m_cart; - required_device<palette_device> m_palette; - uint16_t m_granularity; - int m_sign_AB; - int m_sign_CD; - uint32_t m_lynx_palette[0x10]; - int m_rotate; - uint8_t m_memory_config; - - BLITTER m_blitter; - SUZY m_suzy; - MIKEY m_mikey; - UART m_uart; - LYNX_TIMER m_timer[NR_LYNX_TIMERS]; - - bitmap_ind16 m_bitmap; - bitmap_ind16 m_bitmap_temp; DECLARE_READ8_MEMBER(suzy_read); DECLARE_WRITE8_MEMBER(suzy_write); DECLARE_WRITE8_MEMBER(lynx_uart_w); @@ -158,8 +134,6 @@ public: void lynx_multiply(); uint8_t lynx_timer_read(int which, int offset); void lynx_timer_write(int which, int offset, uint8_t data); - virtual void machine_start() override; - virtual void machine_reset() override; DECLARE_PALETTE_INIT(lynx); void sound_cb(); TIMER_CALLBACK_MEMBER(lynx_blitter_timer); @@ -183,11 +157,40 @@ public: void lynx_uart_reset(); image_verify_result lynx_verify_cart(char *header, int kind); DECLARE_QUICKLOAD_LOAD_MEMBER( lynx ); - void lynx(machine_config &config); - void lynx_mem(address_map &map); + protected: + virtual void machine_start() override; + virtual void machine_reset() override; + virtual void video_start() override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + void lynx_mem(address_map &map); + +private: + required_shared_ptr<uint8_t> m_mem_0000; + required_shared_ptr<uint8_t> m_mem_fc00; + required_shared_ptr<uint8_t> m_mem_fd00; + required_shared_ptr<uint8_t> m_mem_fe00; + required_shared_ptr<uint8_t> m_mem_fffa; + required_device<cpu_device> m_maincpu; + required_device<lynx_sound_device> m_sound; + required_device<generic_slot_device> m_cart; + required_device<palette_device> m_palette; + uint16_t m_granularity; + int m_sign_AB; + int m_sign_CD; + uint32_t m_lynx_palette[0x10]; + int m_rotate; + uint8_t m_memory_config; + + BLITTER m_blitter; + SUZY m_suzy; + MIKEY m_mikey; + UART m_uart; + LYNX_TIMER m_timer[NR_LYNX_TIMERS]; + + bitmap_ind16 m_bitmap; + bitmap_ind16 m_bitmap_temp; }; |