[Fuse-for-macosx-commits] SF.net SVN: fuse-for-macosx:[558] trunk
Brought to you by:
fredm
From: <fr...@us...> - 2008-12-04 11:42:06
|
Revision: 558 http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=558&view=rev Author: fredm Date: 2008-12-04 11:37:00 +0000 (Thu, 04 Dec 2008) Log Message: ----------- Merge in changes from vendor 0.10.0 release. Modified Paths: -------------- trunk/FuseGenerator/config.h trunk/FuseImporter/config.h trunk/fuse/README trunk/fuse/compat/amiga/paths.c trunk/fuse/configure.in trunk/fuse/disk/disk.c trunk/fuse/disk/upd_fdc.c trunk/fuse/fuse.c trunk/fuse/fusepb/English.lproj/InfoPlist.strings trunk/fuse/fusepb/Info-Fuse.plist trunk/fuse/fusepb/config.h trunk/fuse/hacking/ChangeLog trunk/fuse/man/fuse.1 trunk/fuse/rzx.c trunk/fuse/scld.c trunk/fuse/utils.c trunk/libspectrum/Info.plist trunk/libspectrum/config.h trunk/libspectrum/libspectrum/ChangeLog trunk/libspectrum/libspectrum/Makefile.am trunk/libspectrum/libspectrum/README trunk/libspectrum/libspectrum/configure.in trunk/libspectrum/libspectrum/doc/libspectrum.3 trunk/libspectrum/libspectrum/doc/libspectrum.txt trunk/libspectrum/libspectrum/hacking/ChangeLog trunk/libspectrum/libspectrum/test/Makefile.am trunk/libspectrum/libspectrum/timings.c trunk/libspectrum/libspectrum.xcodeproj/project.pbxproj Property Changed: ---------------- trunk/fuse/ trunk/libspectrum/libspectrum/ Modified: trunk/FuseGenerator/config.h =================================================================== --- trunk/FuseGenerator/config.h 2008-12-04 10:57:47 UTC (rev 557) +++ trunk/FuseGenerator/config.h 2008-12-04 11:37:00 UTC (rev 558) @@ -83,7 +83,7 @@ #define STDC_HEADERS 1 /* Version number of package */ -#define VERSION "0.2.2" +#define VERSION "0.5.0" /* Define to 1 if your processor stores words with the most significant byte first (like Motorola and SPARC, unlike Intel and VAX). */ Modified: trunk/FuseImporter/config.h =================================================================== --- trunk/FuseImporter/config.h 2008-12-04 10:57:47 UTC (rev 557) +++ trunk/FuseImporter/config.h 2008-12-04 11:37:00 UTC (rev 558) @@ -83,7 +83,7 @@ #define STDC_HEADERS 1 /* Version number of package */ -#define VERSION "0.2.2" +#define VERSION "0.5.0" /* Define to 1 if your processor stores words with the most significant byte first (like Motorola and SPARC, unlike Intel and VAX). */ Property changes on: trunk/fuse ___________________________________________________________________ Modified: svn:mergeinfo - /vendor/fuse-emulator/0.10.0-pre1/fuse:545-546 /vendor/fuse-emulator/current/fuse:530-538 + /vendor/fuse-emulator/0.10.0/fuse:556-557 /vendor/fuse-emulator/0.10.0-pre1/fuse:545-546 /vendor/fuse-emulator/current/fuse:530-538 Modified: trunk/fuse/README =================================================================== --- trunk/fuse/README 2008-12-04 10:57:47 UTC (rev 557) +++ trunk/fuse/README 2008-12-04 11:37:00 UTC (rev 558) @@ -1,5 +1,5 @@ -The Free Unix Spectrum Emulator (Fuse) 0.9.0 -============================================ +The Free Unix Spectrum Emulator (Fuse) 0.10.0 +============================================= Fuse (the Free Unix Spectrum Emulator) was originally, and somewhat unsurprisingly, an emulator of the ZX Spectrum (a popular 1980s home @@ -150,6 +150,6 @@ ( http://www.worldofspectrum.org/faq/index.html ) first! Philip Kendall <phi...@sh...> -5 January 2008 +3 December 2008 -$Id: README 3801 2008-10-31 16:22:13Z pak21 $ +$Id: README 3866 2008-11-29 17:05:40Z pak21 $ Modified: trunk/fuse/compat/amiga/paths.c =================================================================== --- trunk/fuse/compat/amiga/paths.c 2008-12-04 10:57:47 UTC (rev 557) +++ trunk/fuse/compat/amiga/paths.c 2008-12-04 11:37:00 UTC (rev 558) @@ -1,7 +1,7 @@ /* paths.c: Path-related compatibility routines Copyright (c) 1999-2007 Philip Kendall - $Id: paths.c 3578 2008-03-22 20:51:36Z zubzero $ + $Id: paths.c 3844 2008-11-19 21:31:07Z fredm $ 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 @@ -42,6 +42,5 @@ int compat_is_absolute_path( const char *path ) { - /* Is this correct? */ - return path[0] == '/'; + return strchr(path,':'); } Modified: trunk/fuse/configure.in =================================================================== --- trunk/fuse/configure.in 2008-12-04 10:57:47 UTC (rev 557) +++ trunk/fuse/configure.in 2008-12-04 11:37:00 UTC (rev 558) @@ -1,5 +1,5 @@ dnl Process this file with autoconf to produce a configure script. -dnl $Id: configure.in 3827 2008-11-17 21:19:48Z pak21 $ +dnl $Id: configure.in 3866 2008-11-29 17:05:40Z pak21 $ dnl This program is free software; you can redistribute it and/or modify dnl it under the terms of the GNU General Public License as published by @@ -24,7 +24,7 @@ AC_CANONICAL_SYSTEM dnl Use automake to produce `Makefile.in' -AM_INIT_AUTOMAKE(fuse, 0.10.0-pre1) +AM_INIT_AUTOMAKE(fuse, 0.10.0) dnl Checks for programs. AC_PROG_CC Modified: trunk/fuse/disk/disk.c =================================================================== --- trunk/fuse/disk/disk.c 2008-12-04 10:57:47 UTC (rev 557) +++ trunk/fuse/disk/disk.c 2008-12-04 11:37:00 UTC (rev 558) @@ -1,7 +1,7 @@ /* disk.c: Routines for handling disk images Copyright (c) 2007 Gergely Szasz - $Id: disk.c 3815 2008-11-09 19:19:59Z pak21 $ + $Id: disk.c 3858 2008-11-29 11:15:22Z fredm $ 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 @@ -966,6 +966,13 @@ return d->status = DISK_OK; } +#define CPC_ISSUE_NONE 0 +#define CPC_ISSUE_1 1 +#define CPC_ISSUE_2 2 +#define CPC_ISSUE_3 3 +#define CPC_ISSUE_4 4 +#define CPC_ISSUE_5 5 + static int open_cpc( buffer_t *buffer, disk_t *d, int preindex ) { @@ -1009,35 +1016,45 @@ 256 * buff[ 0x1f + 8 * j ] : 0x80 << buff[ 0x1b + 8 * j ]; idlen = 0x80 << buff[ 0x1b + 8 * j ]; /* sector length from ID */ - bpt += calc_sectorlen( gap == GAP_MINIMAL_MFM ? 1 : 0, idlen, gap ); - trlen += seclen; + if( idlen != 0 && idlen <= ( 0x80 << 0x08 ) && /* idlen is o.k. */ + seclen > idlen && seclen % idlen ) /* seclen != N * len */ + return d->status = DISK_OPEN; + + bpt += calc_sectorlen( gap == GAP_MINIMAL_MFM ? 1 : 0, seclen > idlen ? idlen : seclen, gap ); if( i < 84 && d->flag & DISK_FLAG_PLUS3_CPC ) { if( j == 0 && buff[ 0x1b + 8 * j ] == 6 && seclen > 6144 ) - plus3_fix = 4; - else if( j == 0 && buff[ 0x1b + 8 * j ] == 6 ) - plus3_fix = 1; + plus3_fix = CPC_ISSUE_4; + else if( j == 0 && buff[ 0x1b + 8 * j ] == 6 ) + plus3_fix = CPC_ISSUE_1; else if( j == 0 && buff[ 0x18 + 8 * j ] == j && buff[ 0x19 + 8 * j ] == j && buff[ 0x1a + 8 * j ] == j && buff[ 0x1b + 8 * j ] == j ) - plus3_fix = 3; - else if( j == 1 && plus3_fix == 1 && buff[ 0x1b + 8 * j ] == 2 ) - plus3_fix = 2; - else if( j > 1 && plus3_fix == 2 && buff[ 0x1b + 8 * j ] != 2 ) - plus3_fix = 0; - else if( j > 0 && plus3_fix == 3 && + plus3_fix = CPC_ISSUE_3; + else if( j == 1 && plus3_fix == CPC_ISSUE_1 && + buff[ 0x1b + 8 * j ] == 2 ) + plus3_fix = CPC_ISSUE_2; + else if( i == 38 && j == 0 && buff[ 0x1b + 8 * j ] == 2 ) + plus3_fix = CPC_ISSUE_5; + else if( j > 1 && plus3_fix == CPC_ISSUE_2 && buff[ 0x1b + 8 * j ] != 2 ) + plus3_fix = CPC_ISSUE_NONE; + else if( j > 0 && plus3_fix == CPC_ISSUE_3 && ( buff[ 0x18 + 8 * j ] != j || buff[ 0x19 + 8 * j ] != j || buff[ 0x1a + 8 * j ] != j || buff[ 0x1b + 8 * j ] != j ) ) - plus3_fix = 0; - else if( j > 10 && plus3_fix == 2 ) - plus3_fix = 0; + plus3_fix = CPC_ISSUE_NONE; + else if( j > 10 && plus3_fix == CPC_ISSUE_2 ) + plus3_fix = CPC_ISSUE_NONE; + else if( i == 38 && j > 0 && plus3_fix == CPC_ISSUE_5 && + buff[ 0x1b + 8 * j ] != 2 - ( j & 1 ) ) + plus3_fix = CPC_ISSUE_NONE; } + trlen += seclen; if( seclen == 0x80 ) /* every 128byte length sector padded */ sector_pad++; } if( i < 84 ) { fix[i] = plus3_fix; - if( fix[i] == 4 ) bpt = 6500;/* Type 1 variant DD+ (e.g. Coin Op Hits) */ - else if( fix[i] != 0 ) bpt = 6250;/* we assume a standard DD track */ + if( fix[i] == CPC_ISSUE_4 ) bpt = 6500;/* Type 1 variant DD+ (e.g. Coin Op Hits) */ + else if( fix[i] != CPC_ISSUE_NONE ) bpt = 6250;/* we assume a standard DD track */ } buffer->index += trlen + sector_pad * 128 + 256; if( bpt > max_bpt ) @@ -1064,20 +1081,16 @@ if( preindex) preindex_add( d, gap ); postindex_add( d, gap ); - trlen = 0; + for( j = 0; j < hdrb[0x15]; j++ ) { /* each sector */ seclen = d->type == DISK_ECPC ? hdrb[ 0x1e + 8 * j ] + /* data length in sector */ 256 * hdrb[ 0x1f + 8 * j ] : 0x80 << hdrb[ 0x1b + 8 * j ]; idlen = 0x80 << hdrb[ 0x1b + 8 * j ]; /* sector length from ID */ - trlen += seclen; if( idlen == 0 || idlen > ( 0x80 << 0x08 ) ) /* error in sector length code -> ignore */ idlen = seclen; - if( seclen > idlen && seclen % idlen ) /* seclen != N * len */ - return d->status = DISK_OPEN; - if( i < 84 && fix[i] == 2 && j == 0 ) { /* repositionate the dummy track */ d->i = 8; } @@ -1086,35 +1099,49 @@ hdrb[ 0x1c + 8 * j ] & 0x20 && !( hdrb[ 0x1d + 8 * j ] & 0x20 ) ? CRC_ERROR : CRC_OK ); - if( i < 84 && fix[i] == 1 && j == 0 ) { /* 6144 */ + if( i < 84 && fix[i] == CPC_ISSUE_1 && j == 0 ) { /* 6144 */ data_add( d, buffer, NULL, seclen, hdrb[ 0x1d + 8 * j ] & 0x40 ? DDAM : NO_DDAM, gap, hdrb[ 0x1c + 8 * j ] & 0x20 && hdrb[ 0x1d + 8 * j ] & 0x20 ? CRC_ERROR : CRC_OK, 0x00 ); - } else if( i < 84 && fix[i] == 2 && j == 0 ) { /* 6144, 10x512 */ + } else if( i < 84 && fix[i] == CPC_ISSUE_2 && j == 0 ) { /* 6144, 10x512 */ datamark_add( d, hdrb[ 0x1d + 8 * j ] & 0x40 ? DDAM : NO_DDAM, gap ); gap_add( d, 2, gap ); buffer->index += seclen; - } else if( i < 84 && fix[i] == 3 ) { /* 128, 256, 512, ... 4096k */ + } else if( i < 84 && fix[i] == CPC_ISSUE_3 ) { /* 128, 256, 512, ... 4096k */ data_add( d, buffer, NULL, 128, hdrb[ 0x1d + 8 * j ] & 0x40 ? DDAM : NO_DDAM, gap, hdrb[ 0x1c + 8 * j ] & 0x20 && hdrb[ 0x1d + 8 * j ] & 0x20 ? CRC_ERROR : CRC_OK, 0x00 ); buffer->index += seclen - 128; - } else if( i < 84 && fix[i] == 4 ) { /* Nx8192 (max 6384 byte ) */ + } else if( i < 84 && fix[i] == CPC_ISSUE_4 ) { /* Nx8192 (max 6384 byte ) */ data_add( d, buffer, NULL, 6384, hdrb[ 0x1d + 8 * j ] & 0x40 ? DDAM : NO_DDAM, gap, hdrb[ 0x1c + 8 * j ] & 0x20 && hdrb[ 0x1d + 8 * j ] & 0x20 ? CRC_ERROR : CRC_OK, 0x00 ); buffer->index += seclen - 6384; + } else if( i < 84 && fix[i] == CPC_ISSUE_5 ) { /* 9x512 */ + /* 512 256 512 256 512 256 512 256 512 */ + if( idlen == 256 ) { + data_add( d, NULL, buff, 512, + hdrb[ 0x1d + 8 * j ] & 0x40 ? DDAM : NO_DDAM, gap, + hdrb[ 0x1c + 8 * j ] & 0x20 && hdrb[ 0x1d + 8 * j ] & 0x20 ? + CRC_ERROR : CRC_OK, 0x00 ); + buffer->index += idlen; + } else { + data_add( d, buffer, NULL, idlen, + hdrb[ 0x1d + 8 * j ] & 0x40 ? DDAM : NO_DDAM, gap, + hdrb[ 0x1c + 8 * j ] & 0x20 && hdrb[ 0x1d + 8 * j ] & 0x20 ? + CRC_ERROR : CRC_OK, 0x00 ); + } } else { - data_add( d, buffer, NULL, seclen > idlen ? idlen : seclen, - hdrb[ 0x1d + 8 * j ] & 0x40 ? DDAM : NO_DDAM, gap, + data_add( d, buffer, NULL, seclen > idlen ? idlen : seclen, + hdrb[ 0x1d + 8 * j ] & 0x40 ? DDAM : NO_DDAM, gap, hdrb[ 0x1c + 8 * j ] & 0x20 && hdrb[ 0x1d + 8 * j ] & 0x20 ? CRC_ERROR : CRC_OK, 0x00 ); if( seclen > idlen ) { /* weak sector with multiple copy */ - buffer->index +=( seclen / ( 0x80 << hdrb[ 0x1b + 8 * j ] ) - 1 ) * - ( 0x80 << hdrb[ 0x1b + 8 * j ] ); + buffer->index +=( seclen / ( 0x80 << hdrb[ 0x1b + 8 * j ] ) - 1 ) * + ( 0x80 << hdrb[ 0x1b + 8 * j ] ); /* ( ( N * len ) / len - 1 ) * len */ } } Modified: trunk/fuse/disk/upd_fdc.c =================================================================== --- trunk/fuse/disk/upd_fdc.c 2008-12-04 10:57:47 UTC (rev 557) +++ trunk/fuse/disk/upd_fdc.c 2008-12-04 11:37:00 UTC (rev 558) @@ -1,7 +1,7 @@ /* upd_fdc.c: NEC floppy disk controller emulation Copyright (c) 2007 Gergely Szasz - $Id: upd_fdc.c 3802 2008-11-02 17:06:41Z pak21 $ + $Id: upd_fdc.c 3858 2008-11-29 11:15:22Z fredm $ 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 @@ -905,15 +905,18 @@ f->data_offset++; } } - if( f->data_offset == f->sector_length ) { /* read the CRC */ + if( ( f->cmd->id == UPD_CMD_READ_DIAG && f->data_offset == f->rlen ) || + ( f->cmd->id == UPD_CMD_READ_DATA && f->data_offset == f->sector_length ) ) { /* read the CRC */ fdd_read_write_data( &d->fdd, FDD_READ ); crc_add( f, d ); fdd_read_write_data( &d->fdd, FDD_READ ); crc_add( f, d ); if( f->crc != 0x000 ) { f->status_register[2] |= UPD_FDC_ST2_DATA_ERROR; f->status_register[1] |= UPD_FDC_ST1_CRC_ERROR; - f->status_register[0] |= UPD_FDC_ST0_INT_ABNORM; - cmd_result( f ); /* set up result phase */ - return r; + if( f->cmd->id == UPD_CMD_READ_DATA ) { /* READ DIAG not aborted! */ + f->status_register[0] |= UPD_FDC_ST0_INT_ABNORM; + cmd_result( f ); /* set up result phase */ + return r; + } } if( f->cmd->id == UPD_CMD_READ_DATA ) { Modified: trunk/fuse/fuse.c =================================================================== --- trunk/fuse/fuse.c 2008-12-04 10:57:47 UTC (rev 557) +++ trunk/fuse/fuse.c 2008-12-04 11:37:00 UTC (rev 558) @@ -1,7 +1,7 @@ /* fuse.c: The Free Unix Spectrum Emulator Copyright (c) 1999-2008 Philip Kendall - $Id: fuse.c 3807 2008-11-08 15:17:00Z pak21 $ + $Id: fuse.c 3868 2008-12-01 21:00:58Z 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 @@ -103,7 +103,7 @@ libspectrum_creator *fuse_creator; /* The earliest version of libspectrum we need */ -static const char *LIBSPECTRUM_MIN_VERSION = "0.2.0.1"; +static const char *LIBSPECTRUM_MIN_VERSION = "0.5.0"; /* The various types of file we may want to run on startup */ typedef struct start_files_t { Modified: trunk/fuse/fusepb/English.lproj/InfoPlist.strings =================================================================== (Binary files differ) Modified: trunk/fuse/fusepb/Info-Fuse.plist =================================================================== --- trunk/fuse/fusepb/Info-Fuse.plist 2008-12-04 10:57:47 UTC (rev 557) +++ trunk/fuse/fusepb/Info-Fuse.plist 2008-12-04 11:37:00 UTC (rev 558) @@ -476,11 +476,11 @@ <key>CFBundlePackageType</key> <string>APPL</string> <key>CFBundleShortVersionString</key> - <string>0.9.0</string> + <string>0.10.0</string> <key>CFBundleSignature</key> <string>FUSE</string> <key>CFBundleVersion</key> - <string>0.10.0-pre1</string> + <string>0.10.0</string> <key>NSMainNibFile</key> <string>MainMenu</string> <key>NSPrincipalClass</key> Modified: trunk/fuse/fusepb/config.h =================================================================== --- trunk/fuse/fusepb/config.h 2008-12-04 10:57:47 UTC (rev 557) +++ trunk/fuse/fusepb/config.h 2008-12-04 11:37:00 UTC (rev 558) @@ -152,7 +152,7 @@ /* #undef USE_WIDGET */ /* Version number of package */ -#define VERSION "0.10.0-pre1" +#define VERSION "0.10.0" /* Define to 1 if your processor stores words with the most significant byte first (like Motorola and SPARC, unlike Intel and VAX). */ Modified: trunk/fuse/hacking/ChangeLog =================================================================== --- trunk/fuse/hacking/ChangeLog 2008-12-04 10:57:47 UTC (rev 557) +++ trunk/fuse/hacking/ChangeLog 2008-12-04 11:37:00 UTC (rev 558) @@ -2936,3 +2936,21 @@ register port (thanks, Mark Woodmass). 20081117 ocnfigure.in: bump version number for 0.10.0-pre1 release (Release_0_10_0-branch). +20081118 rzx.c: don't autosave rzx snapshots when we are recording in compo + mode (Fred). +20081119 disk/{disk.c,upd_fdc.c}: fix READ_DIAG emlation bugs to support + LERM Plus-3-Mate (fixes bug #2312217) (Gergely Szasz). +20081120 compat/amiga/paths.c: implement compat_is_absolute_path for Amiga + (final part of patch #1712260) (Chris Young). +20081120 utils.c: don't switch machine on autoloading a Timex dock cart if we + can already support them (Fred). +20081122 disk/disk.c: fix a track length calculation bug (more of bug #2312217) + (Gergely Szasz). +20081125 scld.c: fix loading of dock/exrom information from snapshots (Fred). +20081129 disk/disk.c: limit weak sector handling to fix Coin-Op Hits (more of + bug #2312217) (Gergely Szasz). +20081129 disk/disk.c: one instance of plus3_fix wasn't updated (thanks, Stuart + Brady) (Fred). +20081129 configure.in,man/fuse.1,README: final tweaks for 0.10.0 release + (Release_0_10_0-branch). +20081201 fuse.c: update libspectrum version needed (Release_0_10_0-branch). Modified: trunk/fuse/man/fuse.1 =================================================================== --- trunk/fuse/man/fuse.1 2008-12-04 10:57:47 UTC (rev 557) +++ trunk/fuse/man/fuse.1 2008-12-04 11:37:00 UTC (rev 558) @@ -1,7 +1,7 @@ .\" -*- nroff -*- .\" .\" fuse.1: Fuse man page -.\" Copyright (c) 2001-2007 Russell Marks, Philip Kendall, Darren Salt, +.\" Copyright (c) 2001-2008 Russell Marks, Philip Kendall, Darren Salt, .\" Fredrick Meunier, Stuart Brady .\" .\" This program is free software; you can redistribute it and/or modify @@ -23,7 +23,7 @@ .\" E-mail: phi...@sh... .\" .\" -.TH fuse 1 "5th January, 2008" "Version 0.9.0" "Emulators" +.TH fuse 1 "3rd December, 2008" "Version 0.10.0" "Emulators" .\" .\"------------------------------------------------------------------ .\" Modified: trunk/fuse/rzx.c =================================================================== --- trunk/fuse/rzx.c 2008-12-04 10:57:47 UTC (rev 557) +++ trunk/fuse/rzx.c 2008-12-04 11:37:00 UTC (rev 558) @@ -1,7 +1,7 @@ /* rzx.c: .rzx files Copyright (c) 2002-2003 Philip Kendall - $Id: rzx.c 3787 2008-10-22 19:10:25Z pak21 $ + $Id: rzx.c 3836 2008-11-18 04:24:34Z fredm $ 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 @@ -474,7 +474,8 @@ } - if( settings_current.rzx_autosaves ) autosave_frame(); + if( !rzx_competition_mode && settings_current.rzx_autosaves ) + autosave_frame(); return 0; } Modified: trunk/fuse/scld.c =================================================================== --- trunk/fuse/scld.c 2008-12-04 10:57:47 UTC (rev 557) +++ trunk/fuse/scld.c 2008-12-04 11:37:00 UTC (rev 558) @@ -1,7 +1,7 @@ /* scld.c: Routines for handling the Timex SCLD Copyright (c) 2002-2006 Fredrick Meunier, Philip Kendall, Witold Filipczyk - $Id: scld.c 3389 2007-12-03 12:54:17Z fredm $ + $Id: scld.c 3849 2008-11-25 02:10:31Z fredm $ 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 @@ -181,6 +181,27 @@ } } +static int +scld_dock_exrom_from_snapshot( memory_page *dest, int page_num, int writable, + void *source ) +{ + dest->offset = 0; + dest->page_num = page_num; + dest->writable = writable; + dest->source = MEMORY_SOURCE_CARTRIDGE; + dest->page = + memory_pool_allocate( MEMORY_PAGE_SIZE * sizeof( libspectrum_byte ) ); + if( !dest->page ) { + ui_error( UI_ERROR_ERROR, "Out of memory at %s:%d", __FILE__, + __LINE__ ); + return 1; + } + + memcpy( dest->page, source, MEMORY_PAGE_SIZE ); + + return 0; +} + static void scld_from_snapshot( libspectrum_snap *snap ) { @@ -201,43 +222,17 @@ for( i = 0; i < 8; i++ ) { if( libspectrum_snap_dock_cart( snap, i ) ) { - if( !memory_map_dock[i]->page ) { - memory_map_dock[i]->offset = 0; - memory_map_dock[i]->page_num = 0; - memory_map_dock[i]->writable = libspectrum_snap_dock_ram( snap, i ); - memory_map_dock[i]->source = MEMORY_SOURCE_CARTRIDGE; - memory_map_dock[i]->page = memory_pool_allocate( - MEMORY_PAGE_SIZE * - sizeof( libspectrum_byte ) ); - if( !memory_map_dock[i]->page ) { - ui_error( UI_ERROR_ERROR, "Out of memory at %s:%d", __FILE__, - __LINE__ ); - return; - } - } - - memcpy( memory_map_dock[i]->page, libspectrum_snap_dock_cart( snap, i ), - MEMORY_PAGE_SIZE ); + if( scld_dock_exrom_from_snapshot( memory_map_dock[i], i, + libspectrum_snap_dock_ram( snap, i ), + libspectrum_snap_dock_cart( snap, i ) ) ) + return; } if( libspectrum_snap_exrom_cart( snap, i ) ) { - if( !memory_map_dock[i]->page ) { - memory_map_exrom[i]->offset = 0; - memory_map_exrom[i]->page_num = 0; - memory_map_exrom[i]->writable = libspectrum_snap_exrom_ram( snap, i ); - memory_map_exrom[i]->source = MEMORY_SOURCE_CARTRIDGE; - memory_map_exrom[i]->page = memory_pool_allocate( - MEMORY_PAGE_SIZE * - sizeof( libspectrum_byte ) ); - if( !memory_map_exrom[i]->page ) { - ui_error( UI_ERROR_ERROR, "Out of memory at %s:%d", __FILE__, - __LINE__ ); - return; - } - } - - memcpy( memory_map_exrom[i]->page, - libspectrum_snap_exrom_cart( snap, i ), MEMORY_PAGE_SIZE ); + if( scld_dock_exrom_from_snapshot( memory_map_exrom[i], i, + libspectrum_snap_exrom_ram( snap, i ), + libspectrum_snap_exrom_cart( snap, i ) ) ) + return; } } @@ -247,6 +242,7 @@ machine_current->memory_map(); } + } static void Modified: trunk/fuse/utils.c =================================================================== --- trunk/fuse/utils.c 2008-12-04 10:57:47 UTC (rev 557) +++ trunk/fuse/utils.c 2008-12-04 11:37:00 UTC (rev 558) @@ -1,7 +1,7 @@ /* utils.c: some useful helper functions Copyright (c) 1999-2008 Philip Kendall, Fredrick Meunier - $Id: utils.c 3807 2008-11-08 15:17:00Z pak21 $ + $Id: utils.c 3846 2008-11-20 07:17:21Z fredm $ 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 @@ -156,7 +156,10 @@ break; case LIBSPECTRUM_CLASS_CARTRIDGE_TIMEX: - error = machine_select( LIBSPECTRUM_MACHINE_TC2068 ); if( error ) break; + if( !( machine_current->capabilities & + LIBSPECTRUM_MACHINE_CAPABILITY_TIMEX_DOCK ) ) { + error = machine_select( LIBSPECTRUM_MACHINE_TC2068 ); if( error ) break; + } error = dck_insert( filename ); break; Modified: trunk/libspectrum/Info.plist =================================================================== --- trunk/libspectrum/Info.plist 2008-12-04 10:57:47 UTC (rev 557) +++ trunk/libspectrum/Info.plist 2008-12-04 11:37:00 UTC (rev 558) @@ -23,6 +23,6 @@ <key>CFBundleSignature</key> <string>????</string> <key>CFBundleVersion</key> - <string>0.5.0-pre1</string> + <string>0.5.0</string> </dict> </plist> Modified: trunk/libspectrum/config.h =================================================================== --- trunk/libspectrum/config.h 2008-12-04 10:57:47 UTC (rev 557) +++ trunk/libspectrum/config.h 2008-12-04 11:37:00 UTC (rev 558) @@ -86,7 +86,7 @@ #define STDC_HEADERS 1 /* Version number of package */ -#define VERSION "0.4.0" +#define VERSION "0.5.0" /* Define to 1 if your processor stores words with the most significant byte first (like Motorola and SPARC, unlike Intel and VAX). */ Property changes on: trunk/libspectrum/libspectrum ___________________________________________________________________ Modified: svn:mergeinfo - /vendor/fuse-emulator/0.10.0-pre1/libspectrum:545-546 /vendor/fuse-emulator/current/libspectrum:530-538 + /vendor/fuse-emulator/0.10.0/libspectrum:556-557 /vendor/fuse-emulator/0.10.0-pre1/libspectrum:545-546 /vendor/fuse-emulator/current/libspectrum:530-538 Modified: trunk/libspectrum/libspectrum/ChangeLog =================================================================== --- trunk/libspectrum/libspectrum/ChangeLog 2008-12-04 10:57:47 UTC (rev 557) +++ trunk/libspectrum/libspectrum/ChangeLog 2008-12-04 11:37:00 UTC (rev 558) @@ -42,6 +42,8 @@ * Remove deprecated functions (Fredrick Meunier). + * Tweak timings for TS2068 (Fredrick Meunier; thanks Philip Kendall). + 2008-01-05 Philip Kendall <phi...@sh...> * libspectrum 0.4.0 released. @@ -269,5 +271,5 @@ * libspectrum separated from Fuse just before the 0.5.0 release of Fuse; see Fuse's ChangeLog for changes up to this point -$Id: ChangeLog 3791 2008-10-27 20:20:40Z pak21 $ +$Id: ChangeLog 3867 2008-11-29 23:43:28Z fredm $ Modified: trunk/libspectrum/libspectrum/Makefile.am =================================================================== --- trunk/libspectrum/libspectrum/Makefile.am 2008-12-04 10:57:47 UTC (rev 557) +++ trunk/libspectrum/libspectrum/Makefile.am 2008-12-04 11:37:00 UTC (rev 558) @@ -1,7 +1,7 @@ ## Process this file with automake to produce Makefile.in ## Copyright (c) 2001-2004 Philip Kendall -## $Id: Makefile.am 3698 2008-06-30 15:12:02Z pak21 $ +## $Id: Makefile.am 3864 2008-11-29 16:45:36Z 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 @@ -58,7 +58,7 @@ zlib.c \ zxs.c -libspectrum_la_LDFLAGS = -version-info 6:0:1 -no-undefined +libspectrum_la_LDFLAGS = -version-info 7:0:0 -no-undefined libspectrum_la_LIBADD = @AUDIOFILE_LIBS@ -lm Modified: trunk/libspectrum/libspectrum/README =================================================================== --- trunk/libspectrum/libspectrum/README 2008-12-04 10:57:47 UTC (rev 557) +++ trunk/libspectrum/libspectrum/README 2008-12-04 11:37:00 UTC (rev 558) @@ -1,4 +1,4 @@ -libspectrum 0.4.0 +libspectrum 0.5.0 ================= libspectrum is a library which is designed to make the input and @@ -13,6 +13,8 @@ * Tape images: .tzx, .tap, .spc, .sta and .ltp (read/write) and Warajevo .tap, Z80Em and CSW version 1 (read only). * Input recordings: .rzx (read/write). +* Disk images: .dsk (both plain and extended), .fdi, .sad, .scl, .td0, + .trd and .udi (identification only). * Timex cartridges: .dck (read only). * IDE hard disk images: .hdf (read/write). * Microdrive cartridge images: .mdr (read/write). @@ -50,6 +52,6 @@ running 'configure' for the first time. Philip Kendall <phi...@sh...> -5 January 2008 +3 December 2008 -$Id: README 3795 2008-10-27 21:02:43Z pak21 $ +$Id: README 3864 2008-11-29 16:45:36Z pak21 $ Modified: trunk/libspectrum/libspectrum/configure.in =================================================================== --- trunk/libspectrum/libspectrum/configure.in 2008-12-04 10:57:47 UTC (rev 557) +++ trunk/libspectrum/libspectrum/configure.in 2008-12-04 11:37:00 UTC (rev 558) @@ -1,7 +1,7 @@ dnl Process this file with autoconf to produce a configure script. -dnl Copyright (c) 1999-2004 Philip Kendall +dnl Copyright (c) 1999-2008 Philip Kendall -dnl $Id: configure.in 3825 2008-11-17 21:10:27Z pak21 $ +dnl $Id: configure.in 3864 2008-11-29 16:45:36Z pak21 $ dnl This program is free software; you can redistribute it and/or modify dnl it under the terms of the GNU General Public License as published by @@ -25,7 +25,7 @@ AM_CONFIG_HEADER(config.h) dnl Use automake to produce `Makefile.in' -AM_INIT_AUTOMAKE(libspectrum, 0.5.0-pre1) +AM_INIT_AUTOMAKE(libspectrum, 0.5.0) dnl Checks for programs. AC_PROG_CC @@ -108,6 +108,7 @@ 1.2.0, AC_DEFINE([HAVE_LIB_GLIB], 1, [Defined if we've got glib]) LIBS="$LIBS `glib-config --libs`", + glib=no AC_MSG_WARN(glib not found - using internal replacement) ) fi Modified: trunk/libspectrum/libspectrum/doc/libspectrum.3 =================================================================== --- trunk/libspectrum/libspectrum/doc/libspectrum.3 2008-12-04 10:57:47 UTC (rev 557) +++ trunk/libspectrum/libspectrum/doc/libspectrum.3 2008-12-04 11:37:00 UTC (rev 558) @@ -1,7 +1,7 @@ .\" -*- nroff -*- .\" .\" libspectrum.3: libspectrum summary -.\" Copyright (c) 2004-2007 Philip Kendall +.\" Copyright (c) 2004-2008 Philip Kendall .\" .\" 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 @@ -22,7 +22,7 @@ .\" E-mail: phi...@sh... .\" .\" -.TH libspectrum 3 "5th January, 2008" "Version 0.4.0" "Emulators" +.TH libspectrum 3 "3rd December, 2008" "Version 0.5.0" "Emulators" .\" .\"------------------------------------------------------------------ .\" @@ -50,6 +50,9 @@ .IP \(bu 2 Input recordings: .rzx (read/write). .IP \(bu 2 +Disk images: .dsk (both plain and extended), .fdi, .sad, .scl, .td0, .trd +and .udi (identification only). +.IP \(bu 2 Timex cartridges: .dck (read only). .IP \(bu 2 IDE hard disk images: .hdf (read/write). Modified: trunk/libspectrum/libspectrum/doc/libspectrum.txt =================================================================== --- trunk/libspectrum/libspectrum/doc/libspectrum.txt 2008-12-04 10:57:47 UTC (rev 557) +++ trunk/libspectrum/libspectrum/doc/libspectrum.txt 2008-12-04 11:37:00 UTC (rev 558) @@ -1,4 +1,4 @@ -libspectrum 0.4.0 +libspectrum 0.5.0 ================= libspectrum is a fairly simple library designed to make the handling @@ -1687,4 +1687,4 @@ Write `data' to register `reg' of the IDE channel `chn'. -$Id: libspectrum.txt 3816 2008-11-10 11:13:18Z pak21 $ +$Id: libspectrum.txt 3864 2008-11-29 16:45:36Z pak21 $ Modified: trunk/libspectrum/libspectrum/hacking/ChangeLog =================================================================== --- trunk/libspectrum/libspectrum/hacking/ChangeLog 2008-12-04 10:57:47 UTC (rev 557) +++ trunk/libspectrum/libspectrum/hacking/ChangeLog 2008-12-04 11:37:00 UTC (rev 558) @@ -700,3 +700,13 @@ (libspectrum_0_5_0-branch). 20081117 configure.in: bump version number for 0.5.0-pre1 release (libspectrum_0_5_0-branch). +20081118 test/Makefile.am: distribute empty.z80 and writeprotected.mdr test + data files (Fred). +20081118 configure.in: set glib status off if we can't find it (thanks, Chris + Young) (Fred). +20081129 timings.c: correct first contended tstate for TS2068 based on updated + fusetest from Phil (Fred). +20081129 configure.in,doc/libspectrum.{3,txt},hacking/ChangeLog,Makefile.am, + README: final tweaks for 0.5.0 release (libspectrum_0_5_0-branch). +20081130 ChangeLog: add reference to TS2068 timing update + (libspectrum_0_5_0-branch) (Fred). Modified: trunk/libspectrum/libspectrum/test/Makefile.am =================================================================== --- trunk/libspectrum/libspectrum/test/Makefile.am 2008-12-04 10:57:47 UTC (rev 557) +++ trunk/libspectrum/libspectrum/test/Makefile.am 2008-12-04 11:37:00 UTC (rev 558) @@ -1,7 +1,7 @@ ## Process this file with automake to produce Makefile.in ## Copyright (c) 2007 Philip Kendall -## $Id: Makefile.am 3691 2008-06-25 15:26:10Z pak21 $ +## $Id: Makefile.am 3834 2008-11-18 04:17:15Z fredm $ ## 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 @@ -42,23 +42,25 @@ EXTRA_DIST += \ test/Makefile.am \ test/complete-tzx.pl \ + test/empty-drb.tzx \ test/empty.csw \ - test/empty-drb.tzx \ - test/invalid.gz \ - test/invalid.szx \ - test/invalid.tzx \ + test/empty.z80 \ test/invalid-archiveinfo.tzx \ test/invalid-custominfo.tzx \ test/invalid-gdb.tzx \ test/invalid-hardwareinfo.tzx \ test/invalid-warajevo-blockoffset.tap \ + test/invalid.gz \ + test/invalid.szx \ + test/invalid.tzx \ test/jump.tzx \ test/loop.tzx \ test/loop2.tzx \ test/loopend.tzx \ test/sp-2000.sna.gz \ test/sp-ffff.sna.gz \ - test/turbo-zeropilot.tzx + test/turbo-zeropilot.tzx \ + test/writeprotected.mdr CLEANFILES += \ test/.libs/test \ Modified: trunk/libspectrum/libspectrum/timings.c =================================================================== --- trunk/libspectrum/libspectrum/timings.c 2008-12-04 10:57:47 UTC (rev 557) +++ trunk/libspectrum/libspectrum/timings.c 2008-12-04 11:37:00 UTC (rev 558) @@ -1,7 +1,7 @@ /* timings.c: Timing routines Copyright (c) 2003 Philip Kendall - $Id: timings.c 3296 2007-11-12 11:45:22Z fredm $ + $Id: timings.c 3859 2008-11-29 11:24:42Z fredm $ 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 @@ -86,7 +86,7 @@ /* SE */ { 3500000, 1750000, 24, 128, 24, 48, 47, 192, 48, 25, 32, 14336 }, /* TS2068 */ - { 3528000, 1764000, 24, 128, 24, 48, 24, 192, 25, 21, 32, 9184 }, + { 3528000, 1764000, 24, 128, 24, 48, 24, 192, 25, 21, 32, 9169 }, /* Pentagon 512K */ { 3584000, 1792000, 36, 128, 28, 32, 64, 192, 48, 16, 36, 17988 }, /* Pentagon 1024K */ Modified: trunk/libspectrum/libspectrum.xcodeproj/project.pbxproj =================================================================== --- trunk/libspectrum/libspectrum.xcodeproj/project.pbxproj 2008-12-04 10:57:47 UTC (rev 557) +++ trunk/libspectrum/libspectrum.xcodeproj/project.pbxproj 2008-12-04 11:37:00 UTC (rev 558) @@ -391,8 +391,8 @@ isa = XCBuildConfiguration; buildSettings = { COPY_PHASE_STRIP = NO; - DYLIB_COMPATIBILITY_VERSION = 6; - DYLIB_CURRENT_VERSION = 6.0.1; + DYLIB_COMPATIBILITY_VERSION = 7; + DYLIB_CURRENT_VERSION = 7.0.0; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "$(FRAMEWORK_SEARCH_PATHS_QUOTED_1)", @@ -402,7 +402,7 @@ FRAMEWORK_SEARCH_PATHS_QUOTED_1 = "\"$(SRCROOT)/../bzip2/build/Deployment\""; FRAMEWORK_SEARCH_PATHS_QUOTED_2 = "\"$(SRCROOT)/../libgcrypt/build/Deployment\""; FRAMEWORK_SEARCH_PATHS_QUOTED_3 = "\"$(SRCROOT)/../audiofile/build/Deployment\""; - FRAMEWORK_VERSION = "0.5.0-pre1"; + FRAMEWORK_VERSION = 0.5.0; GCC_DYNAMIC_NO_PIC = NO; GCC_ENABLE_FIX_AND_CONTINUE = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |