From: <pa...@us...> - 2010-08-25 21:20:57
|
Revision: 4148 http://fuse-emulator.svn.sourceforge.net/fuse-emulator/?rev=4148&view=rev Author: pak21 Date: 2010-08-25 21:20:50 +0000 (Wed, 25 Aug 2010) Log Message: ----------- Reintegrate NTSC branch. Modified Paths: -------------- trunk/fuse/machine.c trunk/fuse/machines/Makefile.am trunk/fuse/machines/machines.h trunk/fuse/tape.c trunk/libspectrum/libspectrum.c trunk/libspectrum/libspectrum.h.in trunk/libspectrum/sna.c trunk/libspectrum/szx.c trunk/libspectrum/timings.c trunk/libspectrum/z80.c Added Paths: ----------- trunk/fuse/machines/spec48_ntsc.c Property Changed: ---------------- trunk/ trunk/fuse/ trunk/fuse/ide/divide.c trunk/fuse/ide/divide.h trunk/fuse/ide/ide.c trunk/fuse/ide/ide.h trunk/fuse/ide/simpleide.c trunk/fuse/ide/simpleide.h trunk/fuse/ide/zxatasp.c trunk/fuse/ide/zxatasp.h trunk/fuse/ide/zxcf.c trunk/fuse/ide/zxcf.h trunk/fuse-utils/ trunk/libspectrum/ Property changes on: trunk ___________________________________________________________________ Modified: svn:mergeinfo - /branches/opus-20090722:4046-4059 + /branches/ntsc-2009-04-11:4000-4147 /branches/opus-20090722:4046-4059 Property changes on: trunk/fuse ___________________________________________________________________ Modified: svn:mergeinfo - /branches/Release_0_10_0-branch:3813-3899,3931-3958 /branches/opus-20090722/fuse:4046-4059 /branches/wii-20080828/fuse:3757-3943 + /branches/Release_0_10_0-branch:3813-3899,3931-3958 /branches/ntsc-2009-04-11/fuse:4000-4147 /branches/opus-20090722/fuse:4046-4059 /branches/wii-20080828/fuse:3757-3943 Property changes on: trunk/fuse/ide/divide.c ___________________________________________________________________ Modified: svn:mergeinfo - /branches/Release_0_10_0-branch/divide.c:3813-3899 /branches/opus-20090722/fuse/ide/divide.c:4046-4059 /branches/wii-20080828/fuse/ide/divide.c:3757-3943 + /branches/Release_0_10_0-branch/divide.c:3813-3899 /branches/ntsc-2009-04-11/fuse/ide/divide.c:4000-4147 /branches/opus-20090722/fuse/ide/divide.c:4046-4059 /branches/wii-20080828/fuse/ide/divide.c:3757-3943 Property changes on: trunk/fuse/ide/divide.h ___________________________________________________________________ Modified: svn:mergeinfo - /branches/Release_0_10_0-branch/divide.h:3813-3899 /branches/opus-20090722/fuse/ide/divide.h:4046-4059 /branches/wii-20080828/fuse/ide/divide.h:3757-3943 + /branches/Release_0_10_0-branch/divide.h:3813-3899 /branches/ntsc-2009-04-11/fuse/ide/divide.h:4000-4147 /branches/opus-20090722/fuse/ide/divide.h:4046-4059 /branches/wii-20080828/fuse/ide/divide.h:3757-3943 Property changes on: trunk/fuse/ide/ide.c ___________________________________________________________________ Modified: svn:mergeinfo - /branches/Release_0_10_0-branch/ide.c:3813-3899 /branches/opus-20090722/fuse/ide/ide.c:4046-4059 /branches/wii-20080828/fuse/ide/ide.c:3757-3943 + /branches/Release_0_10_0-branch/ide.c:3813-3899 /branches/ntsc-2009-04-11/fuse/ide/ide.c:4000-4147 /branches/opus-20090722/fuse/ide/ide.c:4046-4059 /branches/wii-20080828/fuse/ide/ide.c:3757-3943 Property changes on: trunk/fuse/ide/ide.h ___________________________________________________________________ Modified: svn:mergeinfo - /branches/Release_0_10_0-branch/ide.h:3813-3899 /branches/opus-20090722/fuse/ide/ide.h:4046-4059 /branches/wii-20080828/fuse/ide/ide.h:3757-3943 + /branches/Release_0_10_0-branch/ide.h:3813-3899 /branches/ntsc-2009-04-11/fuse/ide/ide.h:4000-4147 /branches/opus-20090722/fuse/ide/ide.h:4046-4059 /branches/wii-20080828/fuse/ide/ide.h:3757-3943 Property changes on: trunk/fuse/ide/simpleide.c ___________________________________________________________________ Modified: svn:mergeinfo - /branches/Release_0_10_0-branch/simpleide.c:3813-3899 /branches/opus-20090722/fuse/ide/simpleide.c:4046-4059 /branches/wii-20080828/fuse/ide/simpleide.c:3757-3943 + /branches/Release_0_10_0-branch/simpleide.c:3813-3899 /branches/ntsc-2009-04-11/fuse/ide/simpleide.c:4000-4147 /branches/opus-20090722/fuse/ide/simpleide.c:4046-4059 /branches/wii-20080828/fuse/ide/simpleide.c:3757-3943 Property changes on: trunk/fuse/ide/simpleide.h ___________________________________________________________________ Modified: svn:mergeinfo - /branches/Release_0_10_0-branch/simpleide.h:3813-3899 /branches/opus-20090722/fuse/ide/simpleide.h:4046-4059 /branches/wii-20080828/fuse/ide/simpleide.h:3757-3943 + /branches/Release_0_10_0-branch/simpleide.h:3813-3899 /branches/ntsc-2009-04-11/fuse/ide/simpleide.h:4000-4147 /branches/opus-20090722/fuse/ide/simpleide.h:4046-4059 /branches/wii-20080828/fuse/ide/simpleide.h:3757-3943 Property changes on: trunk/fuse/ide/zxatasp.c ___________________________________________________________________ Modified: svn:mergeinfo - /branches/Release_0_10_0-branch/zxatasp.c:3813-3899 /branches/opus-20090722/fuse/ide/zxatasp.c:4046-4059 /branches/wii-20080828/fuse/ide/zxatasp.c:3757-3943 + /branches/Release_0_10_0-branch/zxatasp.c:3813-3899 /branches/ntsc-2009-04-11/fuse/ide/zxatasp.c:4000-4147 /branches/opus-20090722/fuse/ide/zxatasp.c:4046-4059 /branches/wii-20080828/fuse/ide/zxatasp.c:3757-3943 Property changes on: trunk/fuse/ide/zxatasp.h ___________________________________________________________________ Modified: svn:mergeinfo - /branches/Release_0_10_0-branch/zxatasp.h:3813-3899 /branches/opus-20090722/fuse/ide/zxatasp.h:4046-4059 /branches/wii-20080828/fuse/ide/zxatasp.h:3757-3943 + /branches/Release_0_10_0-branch/zxatasp.h:3813-3899 /branches/ntsc-2009-04-11/fuse/ide/zxatasp.h:4000-4147 /branches/opus-20090722/fuse/ide/zxatasp.h:4046-4059 /branches/wii-20080828/fuse/ide/zxatasp.h:3757-3943 Property changes on: trunk/fuse/ide/zxcf.c ___________________________________________________________________ Modified: svn:mergeinfo - /branches/Release_0_10_0-branch/zxcf.c:3813-3899 /branches/opus-20090722/fuse/ide/zxcf.c:4046-4059 /branches/wii-20080828/fuse/ide/zxcf.c:3757-3943 + /branches/Release_0_10_0-branch/zxcf.c:3813-3899 /branches/ntsc-2009-04-11/fuse/ide/zxcf.c:4000-4147 /branches/opus-20090722/fuse/ide/zxcf.c:4046-4059 /branches/wii-20080828/fuse/ide/zxcf.c:3757-3943 Property changes on: trunk/fuse/ide/zxcf.h ___________________________________________________________________ Modified: svn:mergeinfo - /branches/Release_0_10_0-branch/zxcf.h:3813-3899 /branches/opus-20090722/fuse/ide/zxcf.h:4046-4059 /branches/wii-20080828/fuse/ide/zxcf.h:3757-3943 + /branches/Release_0_10_0-branch/zxcf.h:3813-3899 /branches/ntsc-2009-04-11/fuse/ide/zxcf.h:4000-4147 /branches/opus-20090722/fuse/ide/zxcf.h:4046-4059 /branches/wii-20080828/fuse/ide/zxcf.h:3757-3943 Modified: trunk/fuse/machine.c =================================================================== --- trunk/fuse/machine.c 2010-08-19 12:25:15 UTC (rev 4147) +++ trunk/fuse/machine.c 2010-08-25 21:20:50 UTC (rev 4148) @@ -69,6 +69,8 @@ if (error ) return error; error = machine_add_machine( spec48_init ); if (error ) return error; + error = machine_add_machine( spec48_ntsc_init ); + if (error ) return error; error = machine_add_machine( spec128_init ); if (error ) return error; error = machine_add_machine( specplus2_init ); Modified: trunk/fuse/machines/Makefile.am =================================================================== --- trunk/fuse/machines/Makefile.am 2010-08-19 12:25:15 UTC (rev 4147) +++ trunk/fuse/machines/Makefile.am 2010-08-25 21:20:50 UTC (rev 4148) @@ -36,6 +36,7 @@ spec128.c \ spec16.c \ spec48.c \ + spec48_ntsc.c \ specplus2.c \ spec_se.c \ specplus2a.c \ Modified: trunk/fuse/machines/machines.h =================================================================== --- trunk/fuse/machines/machines.h 2010-08-19 12:25:15 UTC (rev 4147) +++ trunk/fuse/machines/machines.h 2010-08-25 21:20:50 UTC (rev 4148) @@ -36,6 +36,7 @@ int pentagon1024_init( fuse_machine_info *machine ); int spec16_init( fuse_machine_info *machine ); +int spec48_ntsc_init( fuse_machine_info *machine ); int spec_se_init( fuse_machine_info *machine ); int specplus2_init( fuse_machine_info *machine ); int specplus2a_init( fuse_machine_info *machine ); Copied: trunk/fuse/machines/spec48_ntsc.c (from rev 4147, branches/ntsc-2009-04-11/fuse/machines/spec48_ntsc.c) =================================================================== --- trunk/fuse/machines/spec48_ntsc.c (rev 0) +++ trunk/fuse/machines/spec48_ntsc.c 2010-08-25 21:20:50 UTC (rev 4148) @@ -0,0 +1,97 @@ +/* spec48_ntsc.c: NTSC Spectrum 48K specific routines + Copyright (c) 1999-2009 Philip Kendall + + $Id: spec48.c 3566 2008-03-18 12:59:16Z pak21 $ + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + Author contact information: + + E-mail: phi...@sh... + +*/ + +#include <config.h> + +#include <stdio.h> + +#include <libspectrum.h> + +#include "joystick.h" +#include "machine.h" +#include "memory.h" +#include "periph.h" +#include "printer.h" +#include "settings.h" +#include "spec48.h" +#include "spectrum.h" +#include "ula.h" +#include "if1.h" + +static int spec48_ntsc_reset( void ); + +static const periph_t peripherals[] = { + { 0x0001, 0x0000, ula_read, ula_write }, + { 0x0004, 0x0000, printer_zxp_read, printer_zxp_write }, + { 0x00e0, 0x0000, joystick_kempston_read, NULL }, +}; + +static const size_t peripherals_count = + sizeof( peripherals ) / sizeof( periph_t ); + +int spec48_ntsc_init( fuse_machine_info *machine ) +{ + machine->machine = LIBSPECTRUM_MACHINE_48_NTSC; + machine->id = "48_ntsc"; + + machine->reset = spec48_ntsc_reset; + + machine->timex = 0; + machine->ram.port_from_ula = spec48_port_from_ula; + machine->ram.contend_delay = spectrum_contend_delay_65432100; + machine->ram.contend_delay_no_mreq = spectrum_contend_delay_65432100; + + machine->unattached_port = spectrum_unattached_port; + + machine->shutdown = NULL; + + machine->memory_map = spec48_memory_map; + + return 0; + +} + +static int +spec48_ntsc_reset( void ) +{ + int error; + + error = machine_load_rom( 0, 0, settings_current.rom_48, + settings_default.rom_48, 0x4000 ); + if( error ) return error; + + error = periph_setup( peripherals, peripherals_count ); + if( error ) return error; + periph_setup_kempston( PERIPH_PRESENT_OPTIONAL ); + periph_setup_interface1( PERIPH_PRESENT_OPTIONAL ); + periph_setup_interface2( PERIPH_PRESENT_OPTIONAL ); + periph_setup_plusd( PERIPH_PRESENT_OPTIONAL ); + periph_update(); + + memory_current_screen = 5; + memory_screen_mask = 0xffff; + + return spec48_common_reset(); +} Modified: trunk/fuse/tape.c =================================================================== --- trunk/fuse/tape.c 2010-08-19 12:25:15 UTC (rev 4147) +++ trunk/fuse/tape.c 2010-08-25 21:20:50 UTC (rev 4148) @@ -564,6 +564,7 @@ switch( machine_current->machine ) { case LIBSPECTRUM_MACHINE_16: case LIBSPECTRUM_MACHINE_48: + case LIBSPECTRUM_MACHINE_48_NTSC: case LIBSPECTRUM_MACHINE_TC2048: return 1; /* Always OK here */ Property changes on: trunk/fuse-utils ___________________________________________________________________ Modified: svn:mergeinfo - /branches/fuse-utils_0_10_0-branch:3811-3900 /branches/opus-20090722/fuse-utils:4046-4059 + /branches/fuse-utils_0_10_0-branch:3811-3900 /branches/ntsc-2009-04-11/fuse-utils:4000-4147 /branches/opus-20090722/fuse-utils:4046-4059 Property changes on: trunk/libspectrum ___________________________________________________________________ Modified: svn:mergeinfo - /branches/libspectrum_0_5_0-branch:3809-3879 /branches/opus-20090722/libspectrum:4046-4059 /branches/wii-20080828/libspectrum:3757-3946 + /branches/libspectrum_0_5_0-branch:3809-3879 /branches/ntsc-2009-04-11/libspectrum:4000-4147 /branches/opus-20090722/libspectrum:4046-4059 /branches/wii-20080828/libspectrum:3757-3946 Modified: trunk/libspectrum/libspectrum.c =================================================================== --- trunk/libspectrum/libspectrum.c 2010-08-19 12:25:15 UTC (rev 4147) +++ trunk/libspectrum/libspectrum.c 2010-08-25 21:20:50 UTC (rev 4148) @@ -223,6 +223,7 @@ switch( type ) { case LIBSPECTRUM_MACHINE_16: return "Spectrum 16K"; case LIBSPECTRUM_MACHINE_48: return "Spectrum 48K"; + case LIBSPECTRUM_MACHINE_48_NTSC: return "Spectrum 48K (NTSC)"; case LIBSPECTRUM_MACHINE_TC2048: return "Timex TC2048"; case LIBSPECTRUM_MACHINE_TC2068: return "Timex TC2068"; case LIBSPECTRUM_MACHINE_TS2068: return "Timex TS2068"; @@ -409,6 +410,7 @@ /* NTSC display */ switch( type ) { + case LIBSPECTRUM_MACHINE_48_NTSC: case LIBSPECTRUM_MACHINE_TS2068: capabilities |= LIBSPECTRUM_MACHINE_CAPABILITY_NTSC; break; default: Modified: trunk/libspectrum/libspectrum.h.in =================================================================== --- trunk/libspectrum/libspectrum.h.in 2010-08-19 12:25:15 UTC (rev 4147) +++ trunk/libspectrum/libspectrum.h.in 2010-08-25 21:20:50 UTC (rev 4148) @@ -294,6 +294,8 @@ LIBSPECTRUM_MACHINE_PENT512, LIBSPECTRUM_MACHINE_PENT1024, + LIBSPECTRUM_MACHINE_48_NTSC, + } libspectrum_machine; WIN32_DLL const char* libspectrum_machine_name( libspectrum_machine type ); Modified: trunk/libspectrum/sna.c =================================================================== --- trunk/libspectrum/sna.c 2010-08-19 12:25:15 UTC (rev 4147) +++ trunk/libspectrum/sna.c 2010-08-25 21:20:50 UTC (rev 4148) @@ -333,6 +333,7 @@ switch( libspectrum_snap_machine( snap ) ) { + case LIBSPECTRUM_MACHINE_48_NTSC: case LIBSPECTRUM_MACHINE_TC2048: case LIBSPECTRUM_MACHINE_TC2068: case LIBSPECTRUM_MACHINE_TS2068: Modified: trunk/libspectrum/szx.c =================================================================== --- trunk/libspectrum/szx.c 2010-08-19 12:25:15 UTC (rev 4147) +++ trunk/libspectrum/szx.c 2010-08-25 21:20:50 UTC (rev 4148) @@ -48,6 +48,7 @@ SZX_MACHINE_TS2068, SZX_MACHINE_PENTAGON512, SZX_MACHINE_PENTAGON1024, + SZX_MACHINE_48_NTSC, } szx_machine_type; @@ -2179,6 +2180,7 @@ case LIBSPECTRUM_MACHINE_16: **ptr = SZX_MACHINE_16; break; case LIBSPECTRUM_MACHINE_48: **ptr = SZX_MACHINE_48; break; + case LIBSPECTRUM_MACHINE_48_NTSC: **ptr = SZX_MACHINE_48_NTSC; break; case LIBSPECTRUM_MACHINE_128: **ptr = SZX_MACHINE_128; break; case LIBSPECTRUM_MACHINE_PLUS2: **ptr = SZX_MACHINE_PLUS2; break; case LIBSPECTRUM_MACHINE_PLUS2A: **ptr = SZX_MACHINE_PLUS2A; break; @@ -2454,6 +2456,7 @@ case LIBSPECTRUM_MACHINE_16: case LIBSPECTRUM_MACHINE_48: + case LIBSPECTRUM_MACHINE_48_NTSC: case LIBSPECTRUM_MACHINE_TC2048: /* 1 ROM = 16k */ if( ( libspectrum_snap_custom_rom_pages( snap ) != 1 || Modified: trunk/libspectrum/timings.c =================================================================== --- trunk/libspectrum/timings.c 2010-08-19 12:25:15 UTC (rev 4147) +++ trunk/libspectrum/timings.c 2010-08-25 21:20:50 UTC (rev 4148) @@ -91,6 +91,8 @@ { 3584000, 1792000, 36, 128, 28, 32, 64, 192, 48, 16, 36, 17988 }, /* Pentagon 1024K */ { 3584000, 1792000, 36, 128, 28, 32, 64, 192, 48, 16, 36, 17988 }, + /* 48K NTSC */ + { 3527500, 0, 24, 128, 24, 48, 24, 192, 25, 23, 32, 8960 }, }; libspectrum_dword Modified: trunk/libspectrum/z80.c =================================================================== --- trunk/libspectrum/z80.c 2010-08-19 12:25:15 UTC (rev 4147) +++ trunk/libspectrum/z80.c 2010-08-25 21:20:50 UTC (rev 4148) @@ -1283,6 +1283,9 @@ libspectrum_write_word( ptr, libspectrum_snap_pc( snap ) ); switch( libspectrum_snap_machine( snap ) ) { + case LIBSPECTRUM_MACHINE_48_NTSC: + *flags |= LIBSPECTRUM_FLAG_SNAPSHOT_MAJOR_INFO_LOSS; + /* fall through */ case LIBSPECTRUM_MACHINE_16: case LIBSPECTRUM_MACHINE_48: if( libspectrum_snap_plusd_active( snap ) ) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |