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