1
+ // license:BSD-3-Clause
2
+ // copyright-holders:Daniel Tremblay
1
3
#include " emu.h"
2
4
#include " f256.h"
3
5
@@ -57,21 +59,25 @@ f256_state::f256_state(const machine_config &mconfig, device_type type, const ch
57
59
void f256_state::f256k (machine_config &config)
58
60
{
59
61
W65C02 (config, m_maincpu, MASTER_CLOCK/4 );
62
+ m_maincpu->set_addrmap (AS_PROGRAM, &f256_state::program_map);
63
+
60
64
RAM (config, m_ram).set_default_size (" 512k" ).set_default_value (0x0 );
61
65
RAM (config, m_iopage0).set_default_size (" 8k" ).set_default_value (0x0 );
62
66
RAM (config, m_iopage1).set_default_size (" 8k" ).set_default_value (0x0 );
63
67
RAM (config, m_iopage2).set_default_size (" 8k" ).set_default_value (0x0 );
64
68
RAM (config, m_iopage3).set_default_size (" 8k" ).set_default_value (0x0 );
65
- SCREEN (config, m_screen, SCREEN_TYPE_RASTER);
66
- BQ4802 (config, m_rtc, MASTER_CLOCK / 1000 ); // RTC clock in kHz
67
-
68
- m_maincpu->set_addrmap (AS_PROGRAM, &f256_state::program_map);
69
69
70
+ SCREEN (config, m_screen, SCREEN_TYPE_RASTER);
70
71
m_screen->set_refresh_hz (60 ); // Refresh rate (e.g., 60Hz)
71
72
m_screen->set_size (800 ,525 );
72
73
// m_screen->set_visarea(160, 799, 45, 524); // this is how it should reall work, but the screen ends up offset
73
74
m_screen->set_visarea (0 , 639 , 0 , 479 );
74
75
m_screen->set_screen_update (m_video, FUNC (tiny_vicky_video_device::screen_update));
76
+
77
+ BQ4802 (config, m_rtc, MASTER_CLOCK / 1000 ); // RTC clock in kHz
78
+ // set interrupt handler for the RTC
79
+ m_rtc->int_handler ().set (FUNC (f256_state::rtc_interrupt_handler));
80
+
75
81
TINY_VICKY (config, m_video, MASTER_CLOCK);
76
82
m_video->sof_irq_handler ().set (FUNC (f256_state::sof_interrtupt));
77
83
m_video->sol_irq_handler ().set (FUNC (f256_state::sol_interrtupt));
@@ -88,6 +94,7 @@ void f256_state::f256k(machine_config &config)
88
94
// initialize the PS2 mouse
89
95
PC_KBDC (config, m_ps2_keyboard, XTAL (32'768 ));
90
96
HLE_PS2_MOUSE (config, m_mouse, XTAL (32'768 ));
97
+ m_mouse->set_pc_kbdc (m_ps2_keyboard);
91
98
92
99
MOS6522 (config, m_via6522_1, MASTER_CLOCK / 4 ); // Keyboard XTAL(14'318'181)/14)
93
100
m_via6522_1->readpa_handler ().set (FUNC (f256_state::via1_system_porta_r));
@@ -98,32 +105,30 @@ void f256_state::f256k(machine_config &config)
98
105
m_via6522_1->cb2_handler ().set (FUNC (f256_state::via1_cb2_write));
99
106
m_via6522_1->irq_handler ().set (FUNC (f256_state::via1_interrupt));
100
107
101
- SN76489 (config, m_sn0, MUSIC_CLOCK / 4 );
102
- SN76489 (config, m_sn1, MUSIC_CLOCK / 4 );
103
- YMF262 (config, m_opl3, MUSIC_CLOCK);
104
- MOS6581 (config, m_sid0, MUSIC_CLOCK/14 );
105
- MOS6581 (config, m_sid1, MUSIC_CLOCK/14 );
106
-
107
- SPEAKER (config, " lspeaker" ).front_left ();
108
- SPEAKER (config, " rspeaker" ).front_right ();
109
108
// Mix PSG
109
+ SN76489 (config, m_sn0, MUSIC_CLOCK / 4 );
110
110
m_sn0->add_route (ALL_OUTPUTS, " lspeaker" , 0.5 );
111
111
m_sn0->add_route (ALL_OUTPUTS, " rspeaker" , 0.5 );
112
+ SN76489 (config, m_sn1, MUSIC_CLOCK / 4 );
112
113
m_sn1->add_route (ALL_OUTPUTS, " lspeaker" , 0.5 );
113
114
m_sn1->add_route (ALL_OUTPUTS, " rspeaker" , 0.5 );
114
115
116
+ YMF262 (config, m_opl3, MUSIC_CLOCK);
115
117
m_opl3->add_route (0 , " lspeaker" , 1.0 );
116
118
m_opl3->add_route (1 , " rspeaker" , 1.0 );
117
119
m_opl3->add_route (2 , " lspeaker" , 1.0 );
118
120
m_opl3->add_route (3 , " rspeaker" , 1.0 );
121
+
119
122
// The SIDs are very noisy
123
+ MOS6581 (config, m_sid0, MUSIC_CLOCK/14 );
120
124
m_sid0->add_route (ALL_OUTPUTS, " lspeaker" , 0.5 );
121
125
m_sid0->add_route (ALL_OUTPUTS, " rspeaker" , 0.5 );
126
+ MOS6581 (config, m_sid1, MUSIC_CLOCK/14 );
122
127
m_sid1->add_route (ALL_OUTPUTS, " lspeaker" , 0.5 );
123
128
m_sid1->add_route (ALL_OUTPUTS, " rspeaker" , 0.5 );
124
129
125
- // set interrupt handler for the RTC
126
- m_rtc-> int_handler (). set ( FUNC (f256_state::rtc_interrupt_handler) );
130
+ SPEAKER (config, " lspeaker " ). front_left ();
131
+ SPEAKER (config, " rspeaker " ). front_right ( );
127
132
128
133
// Add an SD card device
129
134
SPI_SDCARD (config, m_sdcard, 0 );
@@ -134,9 +139,10 @@ void f256_state::f256k(machine_config &config)
134
139
m_in_latch |= state;
135
140
});
136
141
137
- m_mouse-> set_pc_kbdc (m_ps2_keyboard);
142
+
138
143
NS16550 (config, m_uart, MASTER_CLOCK);
139
144
145
+ // The IEC interface is not yet implemented
140
146
// cbm_iec_slot_device::add(config, m_iec, "c1581");
141
147
// m_iec->srq_callback().set(FUNC(f256_state::iec_srq_w));
142
148
// m_iec->data_callback().set(FUNC(f256_state::iec_data_w));
0 commit comments