Mercurial > repos > blastem
comparison blastem.h @ 421:d0cacb4ade0b
Move IO code to a separate file and do a tiny bit of refactoring
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Tue, 25 Jun 2013 19:20:39 -0700 |
parents | dbf4e1c86f3c |
children | 7f84090ab1cd |
comparison
equal
deleted
inserted
replaced
420:9fb111b5641f | 421:d0cacb4ade0b |
---|---|
5 #include "m68k_to_x86.h" | 5 #include "m68k_to_x86.h" |
6 #include "z80_to_x86.h" | 6 #include "z80_to_x86.h" |
7 #include "ym2612.h" | 7 #include "ym2612.h" |
8 #include "vdp.h" | 8 #include "vdp.h" |
9 #include "psg.h" | 9 #include "psg.h" |
10 | 10 #include "io.h" |
11 typedef struct { | |
12 uint32_t th_counter; | |
13 uint32_t timeout_cycle; | |
14 uint8_t output; | |
15 uint8_t control; | |
16 uint8_t input[3]; | |
17 } io_port; | |
18 | 11 |
19 #define RAM_FLAG_ODD 0x1800 | 12 #define RAM_FLAG_ODD 0x1800 |
20 #define RAM_FLAG_EVEN 0x1000 | 13 #define RAM_FLAG_EVEN 0x1000 |
21 #define RAM_FLAG_BOTH 0x0000 | 14 #define RAM_FLAG_BOTH 0x0000 |
15 | |
16 #define CYCLE_NEVER 0xFFFFFFFF | |
22 | 17 |
23 typedef struct { | 18 typedef struct { |
24 m68k_context *m68k; | 19 m68k_context *m68k; |
25 z80_context *z80; | 20 z80_context *z80; |
26 vdp_context *vdp; | 21 vdp_context *vdp; |
28 psg_context *psg; | 23 psg_context *psg; |
29 uint8_t *save_ram; | 24 uint8_t *save_ram; |
30 uint32_t save_ram_mask; | 25 uint32_t save_ram_mask; |
31 uint32_t save_flags; | 26 uint32_t save_flags; |
32 uint8_t bank_regs[8]; | 27 uint8_t bank_regs[8]; |
28 io_port ports[3]; | |
33 } genesis_context; | 29 } genesis_context; |
34 | 30 |
35 #define GAMEPAD_TH0 0 | 31 extern genesis_context * genesis; |
36 #define GAMEPAD_TH1 1 | 32 extern int break_on_sync; |
37 #define GAMEPAD_EXTRA 2 | |
38 #define GAMEPAD_NONE 0xF | |
39 | 33 |
40 extern io_port gamepad_1; | |
41 extern io_port gamepad_2; | |
42 | |
43 void io_adjust_cycles(io_port * pad, uint32_t current_cycle, uint32_t deduction); | |
44 uint16_t read_dma_value(uint32_t address); | 34 uint16_t read_dma_value(uint32_t address); |
45 m68k_context * debugger(m68k_context * context, uint32_t address); | 35 m68k_context * debugger(m68k_context * context, uint32_t address); |
46 void handle_keydown(int keycode); | |
47 void handle_keyup(int keycode); | |
48 void handle_joydown(int joystick, int button); | |
49 void handle_joyup(int joystick, int button); | |
50 void handle_joy_dpad(int joystick, int dpad, uint8_t state); | |
51 | 36 |
52 #endif //BLASTEM_H_ | 37 #endif //BLASTEM_H_ |
53 | 38 |