blob: 8f64d42563cc448da8c3d80b7a7d08a1946e6abb (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
|
/*****************************************************************************
*
* includes/c128.h
*
* Commodore C128 Home Computer
*
* peter.trauner@jk.uni-linz.ac.at
*
* Documentation: iDOC (http://www.softwolves.pp.se/idoc)
* Christian Janoff <mepk@c64.org>
*
****************************************************************************/
#ifndef __C128_H__
#define __C128_H__
#include "includes/c64_legacy.h"
#include "machine/6526cia.h"
class c128_state : public legacy_c64_state
{
public:
c128_state(const machine_config &mconfig, device_type type, const char *tag)
: legacy_c64_state(mconfig, type, tag) { }
DECLARE_READ8_MEMBER( vic_lightpen_x_cb );
DECLARE_READ8_MEMBER( vic_lightpen_y_cb );
DECLARE_READ8_MEMBER( vic_lightpen_button_cb );
DECLARE_READ8_MEMBER( vic_dma_read );
DECLARE_READ8_MEMBER( vic_dma_read_ultimax );
DECLARE_READ8_MEMBER( vic_dma_read_color );
DECLARE_WRITE_LINE_MEMBER( vic_interrupt );
DECLARE_READ8_MEMBER( vic_rdy_cb );
UINT8 *m_c128_basic;
UINT8 *m_c128_kernal;
UINT8 *m_c128_chargen;
UINT8 *m_z80;
UINT8 *m_editor;
UINT8 *m_internal_function;
UINT8 *m_external_function;
UINT8 *m_vdcram;
UINT8 m_mmu[0x0b];
int m_mmu_cpu;
int m_mmu_page0;
int m_mmu_page1;
int m_c64mode;
int m_write_io;
int m_ram_bottom;
int m_ram_top;
UINT8 *m_ram;
UINT8 m_c64_port_data;
UINT8 m_keyline[3];
int m_cnt1;
int m_sp1;
int m_data_out;
int m_va1617;
int m_monitor;
int m_nmilevel;
DECLARE_DRIVER_INIT(c128pal);
DECLARE_DRIVER_INIT(c128dcrp);
DECLARE_DRIVER_INIT(c128dcr);
DECLARE_DRIVER_INIT(c128dpal);
DECLARE_DRIVER_INIT(c128d);
DECLARE_DRIVER_INIT(c128);
DECLARE_DRIVER_INIT(c128d81);
};
/*----------- defined in machine/c128.c -----------*/
WRITE8_HANDLER(c128_mmu8722_port_w);
READ8_HANDLER(c128_mmu8722_port_r);
WRITE8_HANDLER(c128_mmu8722_ff00_w);
READ8_HANDLER(c128_mmu8722_ff00_r);
WRITE8_HANDLER(c128_write_0000);
WRITE8_HANDLER(c128_write_1000);
WRITE8_HANDLER(c128_write_4000);
WRITE8_HANDLER(c128_write_8000);
WRITE8_HANDLER(c128_write_a000);
WRITE8_HANDLER(c128_write_c000);
WRITE8_HANDLER(c128_write_d000);
WRITE8_HANDLER(c128_write_e000);
WRITE8_HANDLER(c128_write_ff00);
WRITE8_HANDLER(c128_write_ff05);
extern MACHINE_START( c128 );
extern MACHINE_RESET( c128 );
extern INTERRUPT_GEN( c128_frame_interrupt );
extern SCREEN_UPDATE_IND16( c128 );
void c128_bankswitch_64(running_machine &machine, int reset);
int c128_dma_read(running_machine &machine, int offset);
int c128_dma_read_color(running_machine &machine, int offset);
void c128_vic_interrupt(running_machine &machine, int level);
extern READ8_DEVICE_HANDLER(c128_m6510_port_read);
extern WRITE8_DEVICE_HANDLER(c128_m6510_port_write);
extern const mos6526_interface c128_ntsc_cia0, c128_pal_cia0;
extern const mos6526_interface c128_ntsc_cia1, c128_pal_cia1;
WRITE_LINE_DEVICE_HANDLER( c128_iec_srq_w );
WRITE_LINE_DEVICE_HANDLER( c128_iec_data_w );
#endif /* __C128_H__ */
|