fuse-for-macosx-commits Mailing List for Fuse for macOS
Brought to you by:
fredm
You can subscribe to this list here.
2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(9) |
Dec
(31) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
(24) |
Feb
(11) |
Mar
(6) |
Apr
(48) |
May
(9) |
Jun
(38) |
Jul
(33) |
Aug
(15) |
Sep
|
Oct
(3) |
Nov
(6) |
Dec
(3) |
2008 |
Jan
|
Feb
(24) |
Mar
(11) |
Apr
(22) |
May
(7) |
Jun
|
Jul
|
Aug
|
Sep
(2) |
Oct
(3) |
Nov
(18) |
Dec
(23) |
2009 |
Jan
(16) |
Feb
(1) |
Mar
(1) |
Apr
|
May
|
Jun
(7) |
Jul
(4) |
Aug
(11) |
Sep
(9) |
Oct
|
Nov
(3) |
Dec
(2) |
2010 |
Jan
(1) |
Feb
|
Mar
(1) |
Apr
(2) |
May
(8) |
Jun
|
Jul
|
Aug
(2) |
Sep
(2) |
Oct
(9) |
Nov
|
Dec
(8) |
2011 |
Jan
|
Feb
|
Mar
|
Apr
(7) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(5) |
Nov
(2) |
Dec
|
2012 |
Jan
(4) |
Feb
(5) |
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
(10) |
Nov
(13) |
Dec
(11) |
2013 |
Jan
(4) |
Feb
(1) |
Mar
(8) |
Apr
(8) |
May
(16) |
Jun
(5) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(4) |
2014 |
Jan
|
Feb
(6) |
Mar
(2) |
Apr
(1) |
May
|
Jun
|
Jul
(1) |
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
(6) |
2015 |
Jan
|
Feb
|
Mar
(2) |
Apr
|
May
|
Jun
(5) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2016 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
(10) |
Jun
(9) |
Jul
(6) |
Aug
(5) |
Sep
(3) |
Oct
(6) |
Nov
(5) |
Dec
|
From: <fr...@us...> - 2016-11-04 00:53:10
|
Revision: 837 http://sourceforge.net/p/fuse-for-macosx/code/837 Author: fredm Date: 2016-11-04 00:53:08 +0000 (Fri, 04 Nov 2016) Log Message: ----------- Merge up to vendor last SVN trunk (r5829) prior to git migration. Revision Links: -------------- http://sourceforge.net/p/fuse-for-macosx/code/5829 Modified Paths: -------------- trunk/fuse/ChangeLog trunk/fuse/README trunk/fuse/configure.ac trunk/fuse/hacking/ChangeLog trunk/fuse/settings.pl trunk/fuse/ui/win32/win32keyboard.c Property Changed: ---------------- trunk/fuse/ Index: trunk/fuse =================================================================== --- trunk/fuse 2016-11-04 00:44:22 UTC (rev 836) +++ trunk/fuse 2016-11-04 00:53:08 UTC (rev 837) Property changes on: trunk/fuse ___________________________________________________________________ Modified: svn:mergeinfo ## -1,5 +1,5 ## /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-828 +/vendor/fuse-emulator/current/fuse:530-836 /vendor/fuse-emulator/fuse-1.0.0a/fuse:668-669 /vendor/fuse-emulator/fuse-r4617/fuse:686 \ No newline at end of property Modified: trunk/fuse/ChangeLog =================================================================== --- trunk/fuse/ChangeLog 2016-11-04 00:44:22 UTC (rev 836) +++ trunk/fuse/ChangeLog 2016-11-04 00:53:08 UTC (rev 837) @@ -1373,4 +1373,4 @@ * Version 0.1.0 released. -$Id: ChangeLog 5818 2016-10-02 11:35:56Z fredm $ +$Id: ChangeLog 5829 2016-10-18 12:13:48Z fredm $ Modified: trunk/fuse/README =================================================================== --- trunk/fuse/README 2016-11-04 00:44:22 UTC (rev 836) +++ trunk/fuse/README 2016-11-04 00:53:08 UTC (rev 837) @@ -110,4 +110,4 @@ Philip Kendall <phi...@sh...> 2nd October, 2016 -$Id: README 5818 2016-10-02 11:35:56Z fredm $ +$Id: README 5829 2016-10-18 12:13:48Z fredm $ Modified: trunk/fuse/configure.ac =================================================================== --- trunk/fuse/configure.ac 2016-11-04 00:44:22 UTC (rev 836) +++ trunk/fuse/configure.ac 2016-11-04 00:53:08 UTC (rev 837) @@ -1,5 +1,5 @@ dnl Process this file with autoconf to produce a configure script. -dnl $Id: configure.ac 5809 2016-09-24 04:27:40Z fredm $ +dnl $Id: configure.ac 5829 2016-10-18 12:13:48Z fredm $ 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 @@ -724,7 +724,7 @@ if test "$libxml2" = yes; then PKG_CHECK_MODULES( [XML], - [libxml-2.0], + [libxml-2.0 >= 2.6.0], [AC_DEFINE([HAVE_LIB_XML2], 1, [Defined if we've got libxml2])], [AC_MSG_WARN([libxml2 not found - config file will use ini format]) libxml2="no"] Modified: trunk/fuse/hacking/ChangeLog =================================================================== --- trunk/fuse/hacking/ChangeLog 2016-11-04 00:44:22 UTC (rev 836) +++ trunk/fuse/hacking/ChangeLog 2016-11-04 00:53:08 UTC (rev 837) @@ -5446,3 +5446,9 @@ (Fred). 20160924 ChangeLog: tweak thanks for Recreated ZX feature and fix typo (Sergio). 20161002 ChangeLog,README,man/fuse.1: update release dates for 1.3.0 (Fred). +20161009 ui/win32/win32keyboard.c: must explicitly include glib.h as it is no + longer pulled in by libspectrum (fixes bug #362) (Guesser). +20161016 configure.ac,settings.pl: use xmlReadFile() from libxml2 instead of + xmlParseFile() (patch #381) (Sergio). +20161018 ChangeLog,README,configure.ac,man/fuse.1: merge changes from 1.3.0 + release (Fred). Modified: trunk/fuse/settings.pl =================================================================== --- trunk/fuse/settings.pl 2016-11-04 00:44:22 UTC (rev 836) +++ trunk/fuse/settings.pl 2016-11-04 00:53:08 UTC (rev 837) @@ -3,7 +3,7 @@ # settings.pl: generate settings.c from settings.dat # Copyright (c) 2002-2015 Philip Kendall, Fredrick Meunier -# $Id: settings.pl 5670 2016-07-08 21:33:08Z pak21 $ +# $Id: settings.pl 5826 2016-10-16 07:35:25Z sbaldovi $ # 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 Modified: trunk/fuse/ui/win32/win32keyboard.c =================================================================== --- trunk/fuse/ui/win32/win32keyboard.c 2016-11-04 00:44:22 UTC (rev 836) +++ trunk/fuse/ui/win32/win32keyboard.c 2016-11-04 00:53:08 UTC (rev 837) @@ -29,6 +29,12 @@ #include <stdlib.h> #include <windows.h> +#ifdef HAVE_LIB_GLIB +#include <glib.h> +#endif /* #ifdef HAVE_LIB_GLIB */ + +#include <libspectrum.h> + #include "display.h" #include "fuse.h" #include "keyboard.h" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2016-11-04 00:44:24
|
Revision: 836 http://sourceforge.net/p/fuse-for-macosx/code/836 Author: fredm Date: 2016-11-04 00:44:22 +0000 (Fri, 04 Nov 2016) Log Message: ----------- Merge up to vendor last SVN trunk (r5829) prior to git migration. Revision Links: -------------- http://sourceforge.net/p/fuse-for-macosx/code/5829 Modified Paths: -------------- trunk/libspectrum/libspectrum/ChangeLog trunk/libspectrum/libspectrum/Makefile.am trunk/libspectrum/libspectrum/README trunk/libspectrum/libspectrum/configure.ac trunk/libspectrum/libspectrum/doc/libspectrum.txt trunk/libspectrum/libspectrum/hacking/ChangeLog Property Changed: ---------------- trunk/libspectrum/libspectrum/ Index: trunk/libspectrum/libspectrum =================================================================== --- trunk/libspectrum/libspectrum 2016-11-04 00:30:44 UTC (rev 835) +++ trunk/libspectrum/libspectrum 2016-11-04 00:44:22 UTC (rev 836) Property changes on: trunk/libspectrum/libspectrum ___________________________________________________________________ Modified: svn:mergeinfo ## -1,5 +1,5 ## /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-828 +/vendor/fuse-emulator/current/libspectrum:530-835 /vendor/fuse-emulator/fuse-1.0.0a/libspectrum:668-669 /vendor/fuse-emulator/fuse-r4617/libspectrum:686 \ No newline at end of property Modified: trunk/libspectrum/libspectrum/ChangeLog =================================================================== --- trunk/libspectrum/libspectrum/ChangeLog 2016-11-04 00:30:44 UTC (rev 835) +++ trunk/libspectrum/libspectrum/ChangeLog 2016-11-04 00:44:22 UTC (rev 836) @@ -423,5 +423,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 5815 2016-10-02 11:27:20Z fredm $ +$Id: ChangeLog 5827 2016-10-18 11:43:10Z fredm $ Modified: trunk/libspectrum/libspectrum/Makefile.am =================================================================== --- trunk/libspectrum/libspectrum/Makefile.am 2016-11-04 00:30:44 UTC (rev 835) +++ trunk/libspectrum/libspectrum/Makefile.am 2016-11-04 00:44:22 UTC (rev 836) @@ -1,7 +1,7 @@ ## Process this file with automake to produce Makefile.in ## Copyright (c) 2001-2016 Philip Kendall -## $Id: Makefile.am 5810 2016-09-24 07:02:20Z sbaldovi $ +## $Id: Makefile.am 5827 2016-10-18 11:43:10Z 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 Modified: trunk/libspectrum/libspectrum/README =================================================================== --- trunk/libspectrum/libspectrum/README 2016-11-04 00:30:44 UTC (rev 835) +++ trunk/libspectrum/libspectrum/README 2016-11-04 00:44:22 UTC (rev 836) @@ -69,4 +69,4 @@ Philip Kendall <phi...@sh...> 2nd October, 2016 -$Id: README 5815 2016-10-02 11:27:20Z fredm $ +$Id: README 5827 2016-10-18 11:43:10Z fredm $ Modified: trunk/libspectrum/libspectrum/configure.ac =================================================================== --- trunk/libspectrum/libspectrum/configure.ac 2016-11-04 00:30:44 UTC (rev 835) +++ trunk/libspectrum/libspectrum/configure.ac 2016-11-04 00:44:22 UTC (rev 836) @@ -1,7 +1,7 @@ dnl Process this file with autoconf to produce a configure script. dnl Copyright (c) 1999-2013 Philip Kendall -dnl $Id: configure.ac 5806 2016-09-24 04:13:08Z fredm $ +dnl $Id: configure.ac 5827 2016-10-18 11:43:10Z fredm $ 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 Modified: trunk/libspectrum/libspectrum/doc/libspectrum.txt =================================================================== --- trunk/libspectrum/libspectrum/doc/libspectrum.txt 2016-11-04 00:30:44 UTC (rev 835) +++ trunk/libspectrum/libspectrum/doc/libspectrum.txt 2016-11-04 00:44:22 UTC (rev 836) @@ -1868,4 +1868,4 @@ Write `data' to register `reg' of the IDE channel `chn'. -$Id: libspectrum.txt 5808 2016-09-24 04:23:35Z fredm $ +$Id: libspectrum.txt 5827 2016-10-18 11:43:10Z fredm $ Modified: trunk/libspectrum/libspectrum/hacking/ChangeLog =================================================================== --- trunk/libspectrum/libspectrum/hacking/ChangeLog 2016-11-04 00:30:44 UTC (rev 835) +++ trunk/libspectrum/libspectrum/hacking/ChangeLog 2016-11-04 00:44:22 UTC (rev 836) @@ -1128,3 +1128,5 @@ since libspectrum 1.2.2 (Sergio). 20161002 ChangeLog,README,doc/libspectrum.3: update release dates for 1.3.0 (Fred). +20161018 ChangeLog,Makefile.am,README,configure.ac,doc/{libspectrum.3, + libspectrum.txt}: merge changes from 1.3.0 release (Fred). This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2016-11-04 00:30:46
|
Revision: 835 http://sourceforge.net/p/fuse-for-macosx/code/835 Author: fredm Date: 2016-11-04 00:30:44 +0000 (Fri, 04 Nov 2016) Log Message: ----------- Tag vendor/fuse-emulator/current as vendor/fuse-emulator/fuse-trunk-r5879. Revision Links: -------------- http://sourceforge.net/p/fuse-for-macosx/code/5879 Added Paths: ----------- vendor/fuse-emulator/fuse-trunk-r5879/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2016-11-04 00:30:20
|
Revision: 834 http://sourceforge.net/p/fuse-for-macosx/code/834 Author: fredm Date: 2016-11-04 00:30:18 +0000 (Fri, 04 Nov 2016) Log Message: ----------- Load . into vendor/fuse-emulator/current. Modified Paths: -------------- vendor/fuse-emulator/current/fuse/ChangeLog vendor/fuse-emulator/current/fuse/README vendor/fuse-emulator/current/fuse/configure.ac vendor/fuse-emulator/current/fuse/hacking/ChangeLog vendor/fuse-emulator/current/fuse/settings.pl vendor/fuse-emulator/current/fuse/ui/win32/win32keyboard.c vendor/fuse-emulator/current/libspectrum/ChangeLog vendor/fuse-emulator/current/libspectrum/Makefile.am vendor/fuse-emulator/current/libspectrum/README vendor/fuse-emulator/current/libspectrum/configure.ac vendor/fuse-emulator/current/libspectrum/doc/libspectrum.txt vendor/fuse-emulator/current/libspectrum/hacking/ChangeLog Modified: vendor/fuse-emulator/current/fuse/ChangeLog =================================================================== --- vendor/fuse-emulator/current/fuse/ChangeLog 2016-11-01 10:40:56 UTC (rev 833) +++ vendor/fuse-emulator/current/fuse/ChangeLog 2016-11-04 00:30:18 UTC (rev 834) @@ -1373,4 +1373,4 @@ * Version 0.1.0 released. -$Id: ChangeLog 5818 2016-10-02 11:35:56Z fredm $ +$Id: ChangeLog 5829 2016-10-18 12:13:48Z fredm $ Modified: vendor/fuse-emulator/current/fuse/README =================================================================== --- vendor/fuse-emulator/current/fuse/README 2016-11-01 10:40:56 UTC (rev 833) +++ vendor/fuse-emulator/current/fuse/README 2016-11-04 00:30:18 UTC (rev 834) @@ -110,4 +110,4 @@ Philip Kendall <phi...@sh...> 2nd October, 2016 -$Id: README 5818 2016-10-02 11:35:56Z fredm $ +$Id: README 5829 2016-10-18 12:13:48Z fredm $ Modified: vendor/fuse-emulator/current/fuse/configure.ac =================================================================== --- vendor/fuse-emulator/current/fuse/configure.ac 2016-11-01 10:40:56 UTC (rev 833) +++ vendor/fuse-emulator/current/fuse/configure.ac 2016-11-04 00:30:18 UTC (rev 834) @@ -1,5 +1,5 @@ dnl Process this file with autoconf to produce a configure script. -dnl $Id: configure.ac 5809 2016-09-24 04:27:40Z fredm $ +dnl $Id: configure.ac 5829 2016-10-18 12:13:48Z fredm $ 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 @@ -724,7 +724,7 @@ if test "$libxml2" = yes; then PKG_CHECK_MODULES( [XML], - [libxml-2.0], + [libxml-2.0 >= 2.6.0], [AC_DEFINE([HAVE_LIB_XML2], 1, [Defined if we've got libxml2])], [AC_MSG_WARN([libxml2 not found - config file will use ini format]) libxml2="no"] Modified: vendor/fuse-emulator/current/fuse/hacking/ChangeLog =================================================================== --- vendor/fuse-emulator/current/fuse/hacking/ChangeLog 2016-11-01 10:40:56 UTC (rev 833) +++ vendor/fuse-emulator/current/fuse/hacking/ChangeLog 2016-11-04 00:30:18 UTC (rev 834) @@ -5446,3 +5446,9 @@ (Fred). 20160924 ChangeLog: tweak thanks for Recreated ZX feature and fix typo (Sergio). 20161002 ChangeLog,README,man/fuse.1: update release dates for 1.3.0 (Fred). +20161009 ui/win32/win32keyboard.c: must explicitly include glib.h as it is no + longer pulled in by libspectrum (fixes bug #362) (Guesser). +20161016 configure.ac,settings.pl: use xmlReadFile() from libxml2 instead of + xmlParseFile() (patch #381) (Sergio). +20161018 ChangeLog,README,configure.ac,man/fuse.1: merge changes from 1.3.0 + release (Fred). Modified: vendor/fuse-emulator/current/fuse/settings.pl =================================================================== --- vendor/fuse-emulator/current/fuse/settings.pl 2016-11-01 10:40:56 UTC (rev 833) +++ vendor/fuse-emulator/current/fuse/settings.pl 2016-11-04 00:30:18 UTC (rev 834) @@ -4,7 +4,7 @@ # Copyright (c) 2002-2015 Philip Kendall # Copyright (c) 2016 BogDan Vatra -# $Id: settings.pl 5670 2016-07-08 21:33:08Z pak21 $ +# $Id: settings.pl 5826 2016-10-16 07:35:25Z sbaldovi $ # 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,7 +181,7 @@ return 0; } - doc = xmlParseFile( path ); + doc = xmlReadFile( path, NULL, 0 ); if( !doc ) { ui_error( UI_ERROR_ERROR, "error reading config file" ); return 1; Modified: vendor/fuse-emulator/current/fuse/ui/win32/win32keyboard.c =================================================================== --- vendor/fuse-emulator/current/fuse/ui/win32/win32keyboard.c 2016-11-01 10:40:56 UTC (rev 833) +++ vendor/fuse-emulator/current/fuse/ui/win32/win32keyboard.c 2016-11-04 00:30:18 UTC (rev 834) @@ -29,6 +29,12 @@ #include <stdlib.h> #include <windows.h> +#ifdef HAVE_LIB_GLIB +#include <glib.h> +#endif /* #ifdef HAVE_LIB_GLIB */ + +#include <libspectrum.h> + #include "display.h" #include "fuse.h" #include "keyboard.h" Modified: vendor/fuse-emulator/current/libspectrum/ChangeLog =================================================================== --- vendor/fuse-emulator/current/libspectrum/ChangeLog 2016-11-01 10:40:56 UTC (rev 833) +++ vendor/fuse-emulator/current/libspectrum/ChangeLog 2016-11-04 00:30:18 UTC (rev 834) @@ -423,5 +423,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 5815 2016-10-02 11:27:20Z fredm $ +$Id: ChangeLog 5827 2016-10-18 11:43:10Z fredm $ Modified: vendor/fuse-emulator/current/libspectrum/Makefile.am =================================================================== --- vendor/fuse-emulator/current/libspectrum/Makefile.am 2016-11-01 10:40:56 UTC (rev 833) +++ vendor/fuse-emulator/current/libspectrum/Makefile.am 2016-11-04 00:30:18 UTC (rev 834) @@ -1,7 +1,7 @@ ## Process this file with automake to produce Makefile.in ## Copyright (c) 2001-2016 Philip Kendall -## $Id: Makefile.am 5810 2016-09-24 07:02:20Z sbaldovi $ +## $Id: Makefile.am 5827 2016-10-18 11:43:10Z 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 Modified: vendor/fuse-emulator/current/libspectrum/README =================================================================== --- vendor/fuse-emulator/current/libspectrum/README 2016-11-01 10:40:56 UTC (rev 833) +++ vendor/fuse-emulator/current/libspectrum/README 2016-11-04 00:30:18 UTC (rev 834) @@ -69,4 +69,4 @@ Philip Kendall <phi...@sh...> 2nd October, 2016 -$Id: README 5815 2016-10-02 11:27:20Z fredm $ +$Id: README 5827 2016-10-18 11:43:10Z fredm $ Modified: vendor/fuse-emulator/current/libspectrum/configure.ac =================================================================== --- vendor/fuse-emulator/current/libspectrum/configure.ac 2016-11-01 10:40:56 UTC (rev 833) +++ vendor/fuse-emulator/current/libspectrum/configure.ac 2016-11-04 00:30:18 UTC (rev 834) @@ -1,7 +1,7 @@ dnl Process this file with autoconf to produce a configure script. dnl Copyright (c) 1999-2013 Philip Kendall -dnl $Id: configure.ac 5806 2016-09-24 04:13:08Z fredm $ +dnl $Id: configure.ac 5827 2016-10-18 11:43:10Z fredm $ 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 Modified: vendor/fuse-emulator/current/libspectrum/doc/libspectrum.txt =================================================================== --- vendor/fuse-emulator/current/libspectrum/doc/libspectrum.txt 2016-11-01 10:40:56 UTC (rev 833) +++ vendor/fuse-emulator/current/libspectrum/doc/libspectrum.txt 2016-11-04 00:30:18 UTC (rev 834) @@ -1868,4 +1868,4 @@ Write `data' to register `reg' of the IDE channel `chn'. -$Id: libspectrum.txt 5808 2016-09-24 04:23:35Z fredm $ +$Id: libspectrum.txt 5827 2016-10-18 11:43:10Z fredm $ Modified: vendor/fuse-emulator/current/libspectrum/hacking/ChangeLog =================================================================== --- vendor/fuse-emulator/current/libspectrum/hacking/ChangeLog 2016-11-01 10:40:56 UTC (rev 833) +++ vendor/fuse-emulator/current/libspectrum/hacking/ChangeLog 2016-11-04 00:30:18 UTC (rev 834) @@ -1128,3 +1128,5 @@ since libspectrum 1.2.2 (Sergio). 20161002 ChangeLog,README,doc/libspectrum.3: update release dates for 1.3.0 (Fred). +20161018 ChangeLog,Makefile.am,README,configure.ac,doc/{libspectrum.3, + libspectrum.txt}: merge changes from 1.3.0 release (Fred). This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2016-11-01 10:40:58
|
Revision: 833 http://sourceforge.net/p/fuse-for-macosx/code/833 Author: fredm Date: 2016-11-01 10:40:56 +0000 (Tue, 01 Nov 2016) Log Message: ----------- More attempts to fix stuck keys when Tab is combined with Command. Modified Paths: -------------- trunk/fuse/fusepb/keystate.c trunk/fuse/fusepb/keystate.h trunk/fuse/fusepb/models/Emulator.m Modified: trunk/fuse/fusepb/keystate.c =================================================================== --- trunk/fuse/fusepb/keystate.c 2016-10-28 11:30:23 UTC (rev 832) +++ trunk/fuse/fusepb/keystate.c 2016-11-01 10:40:56 UTC (rev 833) @@ -119,7 +119,8 @@ void action_sNORMAL_eRELEASE_NORMAL( input_key keysym ) { - normal_count--; + if( normal_count > 0 ) + normal_count--; // track depth, if depth is 0 switch back to NONE if( !normal_count ) current_state = NONE; release_key(keysym); @@ -172,3 +173,10 @@ /* invalid event/state - shouldn't happen, just ignore for now */ } } + +void +reset_keystate( void ) +{ + current_state = NONE; + normal_count = 0; +} Modified: trunk/fuse/fusepb/keystate.h =================================================================== --- trunk/fuse/fusepb/keystate.h 2016-10-28 11:30:23 UTC (rev 832) +++ trunk/fuse/fusepb/keystate.h 2016-11-01 10:40:56 UTC (rev 833) @@ -37,5 +37,6 @@ }; void process_keyevent( enum events event, input_key keysym ); +void reset_keystate( void ); #endif /* #ifndef KEYSTATE_H */ Modified: trunk/fuse/fusepb/models/Emulator.m =================================================================== --- trunk/fuse/fusepb/models/Emulator.m 2016-10-28 11:30:23 UTC (rev 832) +++ trunk/fuse/fusepb/models/Emulator.m 2016-11-01 10:40:56 UTC (rev 833) @@ -672,13 +672,19 @@ [self modifierChange:INPUT_KEY_Alt_L oldState:optDown newState:optDownNew]; [self modifierChange:INPUT_KEY_Control_L oldState:ctrlDown newState:ctrlDownNew]; [self modifierChange:INPUT_KEY_Shift_L oldState:shiftDown newState:shiftDownNew]; + + optDown = optDownNew; + ctrlDown = ctrlDownNew; + shiftDown = shiftDownNew; } else { keyboard_release_all(); + reset_keystate( ); + + optDown = NO; + ctrlDown = NO; + shiftDown = NO; } - optDown = optDownNew; - ctrlDown = ctrlDownNew; - shiftDown = shiftDownNew; commandDown = commandDownNew; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2016-10-28 11:30:27
|
Revision: 832 http://sourceforge.net/p/fuse-for-macosx/code/832 Author: fredm Date: 2016-10-28 11:30:23 +0000 (Fri, 28 Oct 2016) Log Message: ----------- Fix for Recreated Spectrum bottom key row handling See [bugs:#23] Modified Paths: -------------- trunk/fuse/fusepb/models/Emulator.h trunk/fuse/fusepb/models/Emulator.m trunk/fuse/ui/cocoa/keysyms.m Modified: trunk/fuse/fusepb/models/Emulator.h =================================================================== --- trunk/fuse/fusepb/models/Emulator.h 2016-10-21 11:27:17 UTC (rev 831) +++ trunk/fuse/fusepb/models/Emulator.h 2016-10-28 11:30:23 UTC (rev 832) @@ -40,6 +40,7 @@ float timerInterval; GHashTable *unicode_keysyms_hash; + GHashTable *recreated_keysyms_hash; BOOL optDown; BOOL ctrlDown; Modified: trunk/fuse/fusepb/models/Emulator.m =================================================================== --- trunk/fuse/fusepb/models/Emulator.m 2016-10-21 11:27:17 UTC (rev 831) +++ trunk/fuse/fusepb/models/Emulator.m 2016-10-28 11:30:23 UTC (rev 832) @@ -57,6 +57,7 @@ #include "zxcf.h" extern keysyms_map_t unicode_keysyms_map[]; +extern keysyms_map_t recreated_keysyms_map[]; #include "sound/sfifo.h" @@ -629,17 +630,23 @@ ui_mouse_button( 2, 0 ); } --(void) initKeyboard +-(GHashTable*) initKeySymsHash:(keysyms_map_t *)keysyms_map { keysyms_map_t *ptr3; + GHashTable* keysyms_hash = g_hash_table_new( g_int_hash, g_int_equal ); - unicode_keysyms_hash = g_hash_table_new( g_int_hash, g_int_equal ); + for( ptr3 = keysyms_map; ptr3->ui; ptr3++ ) + g_hash_table_insert( keysyms_hash, &( ptr3->ui ), &( ptr3->fuse ) ); - for( ptr3 = (keysyms_map_t *)unicode_keysyms_map; ptr3->ui; ptr3++ ) - g_hash_table_insert( unicode_keysyms_hash, &( ptr3->ui ), - &( ptr3->fuse ) ); + return keysyms_hash; } +-(void) initKeyboard +{ + unicode_keysyms_hash = [self initKeySymsHash:unicode_keysyms_map]; + recreated_keysyms_hash = [self initKeySymsHash:recreated_keysyms_map]; +} + -(void) modifierChange:(input_event_type)theType oldState:(BOOL)old newState:(BOOL)new { if( old != new ) { @@ -735,12 +742,17 @@ input_key fuse_keysym; enum events event_type; - fuse_keysym = keysyms_remap( keyCode ); - if( fuse_keysym == INPUT_KEY_NONE ) { - fuse_keysym = [self otherKeysymsRemap:[characters characterAtIndex:0] - inHash:unicode_keysyms_hash]; + // If recreated ZX spectrum is enabled, look up unshifted key in recreated_keysyms_map, + // else move on to normal path + if( !( settings_current.recreated_spectrum && + (fuse_keysym = [self otherKeysymsRemap:keyCode inHash:recreated_keysyms_hash]) != INPUT_KEY_NONE) ) { + fuse_keysym = keysyms_remap( keyCode ); + if( fuse_keysym == INPUT_KEY_NONE ) { + fuse_keysym = [self otherKeysymsRemap:[characters characterAtIndex:0] + inHash:unicode_keysyms_hash]; + } } - + if( [self isSpecial:fuse_keysym] == YES ) { event_type = type == INPUT_EVENT_KEYPRESS ? PRESS_SPECIAL : RELEASE_SPECIAL; Modified: trunk/fuse/ui/cocoa/keysyms.m =================================================================== --- trunk/fuse/ui/cocoa/keysyms.m 2016-10-21 11:27:17 UTC (rev 831) +++ trunk/fuse/ui/cocoa/keysyms.m 2016-10-28 11:30:23 UTC (rev 832) @@ -49,7 +49,7 @@ { 82, INPUT_KEY_0 }, { 65, INPUT_KEY_period }, { 75, INPUT_KEY_slash }, - { 67, INPUT_KEY_asterisk }, + { 67, INPUT_KEY_asterisk }, { 78, INPUT_KEY_minus }, { 69, INPUT_KEY_plus }, { 76, INPUT_KEY_Return }, @@ -97,6 +97,21 @@ }; +/* Map ADC keyboard scancode to Fuse input layer keysym for Recreated + ZX Spectrum keyboard */ +keysyms_map_t recreated_keysyms_map[] = { + + { 44, INPUT_KEY_slash }, + { 41, INPUT_KEY_semicolon }, + { 43, INPUT_KEY_comma }, + { 47, INPUT_KEY_period }, + { 33, INPUT_KEY_bracketleft }, + { 30, INPUT_KEY_bracketright }, + + { 0, 0 } /* End marker: DO NOT MOVE! */ + +}; + /* Map UCS-2(?) Unicode to Fuse input layer keysym for non-extended mode Spectrum symbols present on keyboards */ keysyms_map_t unicode_keysyms_map[] = { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2016-10-21 11:27:19
|
Revision: 831 http://sourceforge.net/p/fuse-for-macosx/code/831 Author: fredm Date: 2016-10-21 11:27:17 +0000 (Fri, 21 Oct 2016) Log Message: ----------- Downgrade HID USB errors to console warnings from UI dialogs. Modified Paths: -------------- trunk/fuse/ui/cocoa/SDL_joystick/SDL_sysjoystick.c Modified: trunk/fuse/ui/cocoa/SDL_joystick/SDL_sysjoystick.c =================================================================== --- trunk/fuse/ui/cocoa/SDL_joystick/SDL_sysjoystick.c 2016-10-04 08:52:50 UTC (rev 830) +++ trunk/fuse/ui/cocoa/SDL_joystick/SDL_sysjoystick.c 2016-10-21 11:27:17 UTC (rev 831) @@ -110,7 +110,7 @@ static void HIDReportErrorNum(char *strError, long numError) { - ui_error( UI_ERROR_ERROR, "%s", strError); + fprintf( stderr, "%s", strError); } static void HIDGetCollectionElements(CFMutableDictionaryRef deviceProperties, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2016-10-04 08:52:51
|
Revision: 830 http://sourceforge.net/p/fuse-for-macosx/code/830 Author: fredm Date: 2016-10-04 08:52:50 +0000 (Tue, 04 Oct 2016) Log Message: ----------- Tag 1.3.0 release. Added Paths: ----------- tags/Release-1_3_0/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2016-10-03 12:02:52
|
Revision: 829 http://sourceforge.net/p/fuse-for-macosx/code/829 Author: fredm Date: 2016-10-03 12:02:48 +0000 (Mon, 03 Oct 2016) Log Message: ----------- Merge up to vendor release 1.3.0. Modified Paths: -------------- trunk/FuseGenerator/config.h trunk/FuseImporter/config.h trunk/fuse/AUTHORS trunk/fuse/ChangeLog trunk/fuse/INSTALL trunk/fuse/Makefile.am trunk/fuse/README trunk/fuse/autogen.sh trunk/fuse/compat/Makefile.am trunk/fuse/configure.ac trunk/fuse/data/Makefile.am trunk/fuse/data/shell-completion/bash/fuse trunk/fuse/data/win32/distribution.mk trunk/fuse/data/win32/installer.nsi.in trunk/fuse/debugger/Makefile.am trunk/fuse/debugger/commandl.l trunk/fuse/debugger/commandy.y trunk/fuse/display.c trunk/fuse/fusepb/English.lproj/InfoPlist.strings trunk/fuse/fusepb/Info-Fuse.plist trunk/fuse/fusepb/config.h trunk/fuse/fusepb/keystate.c trunk/fuse/fusepb/libspectrum.h trunk/fuse/fusepb/models/Emulator.m trunk/fuse/fusepb/resources/Fuse Help/Fuse Help.helpindex trunk/fuse/fusepb/resources/Fuse Help/html/changelog.html trunk/fuse/fusepb/resources/Fuse Help/html/general.html trunk/fuse/fusepb/xibs/Preferences.xib trunk/fuse/hacking/ChangeLog trunk/fuse/hacking/Makefile.am trunk/fuse/input.c trunk/fuse/input.h trunk/fuse/keyboard.c trunk/fuse/keysyms.dat trunk/fuse/keysyms.pl trunk/fuse/lib/Makefile.am trunk/fuse/machines/Makefile.am trunk/fuse/man/Makefile.am trunk/fuse/man/fuse.1 trunk/fuse/menu_data.dat trunk/fuse/menu_data.pl trunk/fuse/peripherals/Makefile.am trunk/fuse/peripherals/disk/beta.c trunk/fuse/peripherals/disk/didaktik.c trunk/fuse/peripherals/disk/didaktik.h trunk/fuse/peripherals/disk/trdos.c trunk/fuse/peripherals/disk/trdos.h trunk/fuse/peripherals/disk/upd_fdc.c trunk/fuse/peripherals/usource.c trunk/fuse/peripherals/usource.h trunk/fuse/perl/Makefile.am trunk/fuse/pokefinder/Makefile.am trunk/fuse/roms/Makefile.am trunk/fuse/roms/plus3e-0.rom trunk/fuse/roms/plus3e-1.rom trunk/fuse/roms/plus3e-2.rom trunk/fuse/settings-header.pl trunk/fuse/settings.dat trunk/fuse/settings.pl trunk/fuse/sound/Makefile.am trunk/fuse/svg.c trunk/fuse/svg.h trunk/fuse/timer/Makefile.am trunk/fuse/ui/Makefile.am trunk/fuse/ui/cocoa/keysyms.m trunk/fuse/ui/fb/Makefile.am trunk/fuse/ui/gtk/Makefile.am trunk/fuse/ui/gtk/options.pl trunk/fuse/ui/options.dat trunk/fuse/ui/scaler/Makefile.am trunk/fuse/ui/sdl/Makefile.am trunk/fuse/ui/svga/Makefile.am trunk/fuse/ui/uimedia.h trunk/fuse/ui/widget/Makefile.am trunk/fuse/ui/widget/debugger.c trunk/fuse/ui/widget/filesel.c trunk/fuse/ui/widget/menu.c trunk/fuse/ui/widget/options.pl trunk/fuse/ui/widget/pokemem.c trunk/fuse/ui/widget/text.c trunk/fuse/ui/widget/widget.c trunk/fuse/ui/widget/widget.h trunk/fuse/ui/widget/widget_internals.h trunk/fuse/ui/wii/Makefile.am trunk/fuse/ui/win32/Makefile.am trunk/fuse/ui/win32/debugger.rc trunk/fuse/ui/win32/options-resource.pl trunk/fuse/ui/win32/options.pl trunk/fuse/ui/win32/win32internals.h trunk/fuse/ui/win32/win32joystick.rc trunk/fuse/ui/win32/win32keyboard.c trunk/fuse/ui/win32/win32ui.c trunk/fuse/ui/xlib/Makefile.am trunk/fuse/uimedia.c trunk/fuse/unittests/Makefile.am trunk/fuse/z80/Makefile.am trunk/fuse/z80/z80.pl trunk/fuse/z80/z80_debugger_variables.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/accessor.pl trunk/libspectrum/libspectrum/autogen.sh trunk/libspectrum/libspectrum/configure.ac trunk/libspectrum/libspectrum/doc/libspectrum.3 trunk/libspectrum/libspectrum/doc/libspectrum.txt trunk/libspectrum/libspectrum/hacking/ChangeLog trunk/libspectrum/libspectrum/libspectrum.h.in trunk/libspectrum/libspectrum/pzx_read.c trunk/libspectrum/libspectrum/snap_accessors.txt trunk/libspectrum/libspectrum/szx.c trunk/libspectrum/libspectrum/test/Makefile.am trunk/libspectrum/libspectrum/zip.c trunk/libspectrum/libspectrum/zip.h trunk/libspectrum/libspectrum.h trunk/libspectrum/libspectrum.xcodeproj/project.pbxproj Added Paths: ----------- trunk/fuse/ui/widget/about.c Property Changed: ---------------- trunk/fuse/ trunk/libspectrum/libspectrum/ Modified: trunk/FuseGenerator/config.h =================================================================== --- trunk/FuseGenerator/config.h 2016-10-03 04:43:34 UTC (rev 828) +++ trunk/FuseGenerator/config.h 2016-10-03 12:02:48 UTC (rev 829) @@ -83,7 +83,7 @@ #define STDC_HEADERS 1 /* Version number of package */ -#define VERSION "1.2.1" +#define VERSION "1.3.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 2016-10-03 04:43:34 UTC (rev 828) +++ trunk/FuseImporter/config.h 2016-10-03 12:02:48 UTC (rev 829) @@ -83,7 +83,7 @@ #define STDC_HEADERS 1 /* Version number of package */ -#define VERSION "1.2.1" +#define VERSION "1.3.0" /* Define to 1 if your processor stores words with the most significant byte first (like Motorola and SPARC, unlike Intel and VAX). */ Index: trunk/fuse =================================================================== --- trunk/fuse 2016-10-03 04:43:34 UTC (rev 828) +++ trunk/fuse 2016-10-03 12:02:48 UTC (rev 829) Property changes on: trunk/fuse ___________________________________________________________________ Modified: svn:mergeinfo ## -1,5 +1,5 ## /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-821 +/vendor/fuse-emulator/current/fuse:530-828 /vendor/fuse-emulator/fuse-1.0.0a/fuse:668-669 /vendor/fuse-emulator/fuse-r4617/fuse:686 \ No newline at end of property Modified: trunk/fuse/AUTHORS =================================================================== --- trunk/fuse/AUTHORS 2016-10-03 04:43:34 UTC (rev 828) +++ trunk/fuse/AUTHORS 2016-10-03 12:02:48 UTC (rev 829) @@ -54,4 +54,4 @@ * Philip Kendall: everything else. -$Id: AUTHORS 5569 2016-06-01 11:12:38Z fredm $ +$Id: AUTHORS 5606 2016-06-07 11:32:25Z fredm $ Modified: trunk/fuse/ChangeLog =================================================================== --- trunk/fuse/ChangeLog 2016-10-03 04:43:34 UTC (rev 828) +++ trunk/fuse/ChangeLog 2016-10-03 12:02:48 UTC (rev 829) @@ -1,3 +1,25 @@ +2016-10-02 Philip Kendall <phi...@sh...> + + * Fuse 1.3.0 released. + + * New features: + * Recreated ZX Spectrum Bluetooth keyboard support (thanks, thrice, + Philip Kendall and Sergio Baldoví) (Ekkehard Morgenstern). + + * Emulation core improvements: + * Reset machine when auto-loading TRD/SCL disks (thanks, BogDan Vatra + and Fredrick Meunier) (Sergio Baldoví). + + * Machine specific improvements: + * Update +3e ROMs to v1.43 (Sergio Baldoví; thanks, Garry Lancaster). + + * Miscellaneous improvements: + * WidgetUI: Add About Fuse dialog with less cluttered text (Sergio + Baldoví). + * Print summary of enabled features when building Fuse (Alberto + Garcia). + * Various minor bugfixes. + 2016-08-21 Philip Kendall <phi...@sh...> * Fuse 1.2.2 released. @@ -1351,4 +1373,4 @@ * Version 0.1.0 released. -$Id: ChangeLog 5761 2016-08-21 05:10:02Z fredm $ +$Id: ChangeLog 5818 2016-10-02 11:35:56Z fredm $ Modified: trunk/fuse/INSTALL =================================================================== --- trunk/fuse/INSTALL 2016-10-03 04:43:34 UTC (rev 828) +++ trunk/fuse/INSTALL 2016-10-03 12:02:48 UTC (rev 829) @@ -161,4 +161,4 @@ respectively. That will make a temporary subdirectory (fuse-VERSION-win32) in the build directory and then will create a package. -$Id: INSTALL 5407 2016-04-25 21:59:53Z sbaldovi $ +$Id: INSTALL 5406 2016-04-25 21:52:03Z sbaldovi $ Modified: trunk/fuse/Makefile.am =================================================================== --- trunk/fuse/Makefile.am 2016-10-03 04:43:34 UTC (rev 828) +++ trunk/fuse/Makefile.am 2016-10-03 12:02:48 UTC (rev 829) @@ -1,7 +1,7 @@ ## Process this file with automake to produce Makefile.in ## Copyright (c) 1999-2015 Philip Kendall -## $Id: Makefile.am 5735 2016-08-14 13:02:21Z fredm $ +## $Id: Makefile.am 5731 2016-08-12 13:18: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 Modified: trunk/fuse/README =================================================================== --- trunk/fuse/README 2016-10-03 04:43:34 UTC (rev 828) +++ trunk/fuse/README 2016-10-03 12:02:48 UTC (rev 829) @@ -1,4 +1,4 @@ -The Free Unix Spectrum Emulator (Fuse) 1.2.2 +The Free Unix Spectrum Emulator (Fuse) 1.3.0 ============================================ Fuse (the Free Unix Spectrum Emulator) was originally, and somewhat @@ -108,6 +108,6 @@ <http://www.worldofspectrum.org/forums/>. Philip Kendall <phi...@sh...> -21st August, 2016 +2nd October, 2016 -$Id: README 5761 2016-08-21 05:10:02Z fredm $ +$Id: README 5818 2016-10-02 11:35:56Z fredm $ Modified: trunk/fuse/autogen.sh =================================================================== --- trunk/fuse/autogen.sh 2016-10-03 04:43:34 UTC (rev 828) +++ trunk/fuse/autogen.sh 2016-10-03 12:02:48 UTC (rev 829) @@ -4,7 +4,7 @@ # Copyright (c) 2004 Philip Kendall # Copyright (c) 2014 Sergio Baldoví -# $Id: autogen.sh 5434 2016-05-01 04:22:45Z fredm $ +# $Id: autogen.sh 5432 2016-05-01 04:16:09Z 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 Modified: trunk/fuse/compat/Makefile.am =================================================================== --- trunk/fuse/compat/Makefile.am 2016-10-03 04:43:34 UTC (rev 828) +++ trunk/fuse/compat/Makefile.am 2016-10-03 12:02:48 UTC (rev 829) @@ -2,7 +2,7 @@ ## Copyright (c) 2003-2013 Philip Kendall ## Copyright (c) 2015 Sergio Baldoví -## $Id: Makefile.am 5677 2016-07-09 13:58:02Z fredm $ +## $Id: Makefile.am 5621 2016-06-09 10:29:12Z 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 Modified: trunk/fuse/configure.ac =================================================================== --- trunk/fuse/configure.ac 2016-10-03 04:43:34 UTC (rev 828) +++ trunk/fuse/configure.ac 2016-10-03 12:02:48 UTC (rev 829) @@ -1,5 +1,5 @@ dnl Process this file with autoconf to produce a configure script. -dnl $Id: configure.ac 5761 2016-08-21 05:10:02Z fredm $ +dnl $Id: configure.ac 5809 2016-09-24 04:27:40Z fredm $ 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 @@ -20,12 +20,12 @@ dnl E-mail: phi...@sh... dnl Package version -m4_define([fuse_version], [1.2.2]) +m4_define([fuse_version], [1.3.0]) dnl Product full version m4_define([fuse_major_version], [1]) -m4_define([fuse_minor_version], [2]) -m4_define([fuse_micro_version], [2]) +m4_define([fuse_minor_version], [3]) +m4_define([fuse_micro_version], [0]) m4_define([fuse_nano_version], [0]) m4_define([fuse_full_version], [fuse_major_version.fuse_minor_version.fuse_micro_version.fuse_nano_version]) m4_define([fuse_rc_version], [fuse_major_version,fuse_minor_version,fuse_micro_version,fuse_nano_version]) @@ -461,9 +461,10 @@ zlib=yes) AC_MSG_RESULT($zlib) if test "$zlib" = yes; then + zlib=no AC_CHECK_HEADERS( zlib.h, - AC_SEARCH_LIBS(compress2, z zdll) + AC_SEARCH_LIBS(compress2, z zdll, zlib=yes) ) fi @@ -511,7 +512,8 @@ [PNG], [libpng], [AC_DEFINE([USE_LIBPNG], 1, [Defined if we're going to be using the installed libpng])], - [AC_MSG_WARN([libpng not found - saving screenshots disabled])] + [AC_MSG_WARN([libpng not found - saving screenshots disabled]) + libpng=no] ) fi @@ -583,40 +585,44 @@ AC_MSG_CHECKING(which sound routines to use) if test "$UI" = sdl; then SOUND_LIBADD='sound/sdlsound.$(OBJEXT)' SOUND_LIBS='' sound_fifo=yes - AC_MSG_RESULT(SDL) + audio_driver="SDL" elif test "$dxsound_available" = yes; then SOUND_LIBADD='sound/dxsound.$(OBJEXT)' SOUND_LIBS='-ldsound -lole32 -ldxguid' - AC_MSG_RESULT(DirectX) + audio_driver="DirectX" AC_DEFINE([DIRECTSOUND_VERSION], 0x0700, [DirectX 7 or higher is required]) elif test "$win32sound_available" = yes; then SOUND_LIBADD='sound/win32sound.$(OBJEXT)' SOUND_LIBS='-lwinmm' - AC_MSG_RESULT(win32sound) + audio_driver="win32sound" elif test "$alsa_available" = yes; then SOUND_LIBADD='sound/alsasound.$(OBJEXT)' SOUND_LIBS='-lasound' - AC_MSG_RESULT(ALSA) + audio_driver="ALSA" elif test "$ao_available" = yes; then SOUND_LIBADD='sound/aosound.$(OBJEXT)' SOUND_LIBS='-lao' - AC_MSG_RESULT(libao) + audio_driver="libao" elif test "$ac_cv_header_dsound_h" = yes; then # Later selection between these two SOUND_LIBADD='sound/sunsound.$(OBJEXT) sound/hpsound.$(OBJEXT)' SOUND_LIBS='' - AC_MSG_RESULT(Solaris or HP/UX) + audio_driver="Solaris or HP/UX" elif test "$ac_cv_header_sys_soundcard_h" = yes; then SOUND_LIBADD='sound/osssound.$(OBJEXT)' SOUND_LIBS='' - AC_MSG_RESULT(OSS) + audio_driver="OSS" elif test "$ac_cv_header_sys_audioio_h" = yes; then dnl OpenBSD SOUND_LIBADD='sound/sunsound.$(OBJEXT)' SOUND_LIBS='' - AC_MSG_RESULT(OpenBSD) + audio_driver="OpenBSD" elif test "$coreaudio_available" = yes; then SOUND_LIBADD='sound/coreaudiosound.$(OBJEXT)' SOUND_LIBS='-framework CoreAudio -framework AudioUnit' sound_fifo=yes - AC_MSG_RESULT(CoreAudio) + audio_driver="CoreAudio" elif test "$wii" = yes; then SOUND_LIBADD='sound/wiisound.$(OBJEXT)' SOUND_LIBS='' sound_fifo=yes - AC_MSG_RESULT(Wii) + audio_driver="Wii" else SOUND_LIBADD='sound/nullsound.$(OBJEXT)' SOUND_LIBS='' - AC_MSG_RESULT(none) + audio_driver="none" +fi + +AC_MSG_RESULT($audio_driver) +if test "$audio_driver" = "none"; then AC_DEFINE([NO_SOUND], 1, [Defined if no sound code is present]) AC_MSG_WARN(No sound library has been found) fi @@ -683,7 +689,8 @@ SDL_VERSION=1.2.4 AM_PATH_SDL($SDL_VERSION, AC_DEFINE([USE_JOYSTICK], 1, [Defined if we're using hardware joysticks]), - AC_MSG_WARN([SDL version $SDL_VERSION not found - joystick support disabled])) + AC_MSG_WARN([SDL version $SDL_VERSION not found - joystick support disabled]) + stick=no) fi ;; wii) @@ -702,7 +709,8 @@ LIBS="$LIBS -ljsw"; AC_DEFINE([USE_JOYSTICK], 1, [Defined if we're using hardware joysticks]), - AC_MSG_WARN(jsw.h not found - joystick support disabled)) + AC_MSG_WARN(jsw.h not found - joystick support disabled) + stick=no) fi fi @@ -718,7 +726,8 @@ [XML], [libxml-2.0], [AC_DEFINE([HAVE_LIB_XML2], 1, [Defined if we've got libxml2])], - [AC_MSG_WARN([libxml2 not found - config file will use ini format])] + [AC_MSG_WARN([libxml2 not found - config file will use ini format]) + libxml2="no"] ) fi @@ -859,7 +868,7 @@ AC_ARG_ENABLE(desktop-integration, AS_HELP_STRING([--enable-desktop-integration], [add menu entry and file associations]), if test "$enableval" = yes; then desktopintegration=yes; else desktopintegration=no; fi, -desktdesktopintegration=no) +desktopintegration=no) AC_MSG_CHECKING(whether to install desktop file) AC_MSG_RESULT($desktopintegration) AM_CONDITIONAL(DESKTOP_INTEGRATION, test "$desktopintegration" = yes) @@ -937,3 +946,40 @@ ]) AC_OUTPUT + +dnl Status summary +echo "" +echo "****************************" +echo "*** Libspectrum features ***" +echo "****************************" +echo "" +echo "Internal GLib replacement: ${fakeglib}" +echo "zlib support: ${LIBSPEC_HAVE_ZLIB:-no}" +echo "bzip2 support: ${LIBSPEC_HAVE_BZ2:-no}" +echo "audiofile support: ${LIBSPEC_HAVE_AUDIOFILE:-no}" +echo "" +echo "********************" +echo "*** Fuse options ***" +echo "********************" +echo "" +echo "User interface: ${UI}" +if test "${UI}" = "gtk"; then + echo "Using GTK+ 3: ${gtk3}" +fi +if test x"${gpm}" != "x"; then + echo "libgpm support: ${gpm}" +fi +echo "Joystick support: ${stick}" +if test "${stick}" = "yes"; then + echo "Using libjsw for joystick support: ${libjsw}" +fi +echo "zlib support: ${zlib}" +echo "libxml2 support: ${libxml2}" +echo "libpng support: ${libpng}" +echo "Audio driver: ${audio_driver}" +echo "Spectranet support: ${build_spectranet}" +echo "SpeccyBoot support: ${linux_tap:-no}" +echo "Desktop integration: ${desktopintegration}" +echo "" +echo "Type 'make' to compile Fuse" +echo "" Modified: trunk/fuse/data/Makefile.am =================================================================== --- trunk/fuse/data/Makefile.am 2016-10-03 04:43:34 UTC (rev 828) +++ trunk/fuse/data/Makefile.am 2016-10-03 12:02:48 UTC (rev 829) @@ -2,7 +2,7 @@ ## Copyright (c) 2011 Philip Kendall ## Copyright (c) 2013-2015 Sergio Baldoví -## $Id: Makefile.am 5434 2016-05-01 04:22:45Z fredm $ +## $Id: Makefile.am 5432 2016-05-01 04:16:09Z 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 Modified: trunk/fuse/data/shell-completion/bash/fuse =================================================================== --- trunk/fuse/data/shell-completion/bash/fuse 2016-10-03 04:43:34 UTC (rev 828) +++ trunk/fuse/data/shell-completion/bash/fuse 2016-10-03 12:02:48 UTC (rev 829) @@ -220,7 +220,7 @@ --no-melodik --no-mouse-swap-buttons --no-movie-stop-after-rzx --no-opus --no-pal-tv2x --no-plus3-detect-speedlock --no-plusd --no-printer - --no-raw-s-net --no-rs232-handshake + --no-raw-s-net --no-recreated-spectrum --no-rs232-handshake --no-rzx-autosaves --no-simpleide --no-slt --no-sound --no-sound-force-8bit --no-speccyboot --no-specdrum --no-spectranet --no-spectranet-disable --no-statusbar @@ -229,7 +229,8 @@ --no-zxatasp-write-protect --no-zxcf --no-zxcf-upload --no-zxprinter --opus --opusdisk --pal-tv2x --playback --plus3-detect-speedlock --plus3disk --plusd --plusddisk - --printer --rate --raw-s-net --record --rom-128-0 --rom-128-1 + --printer --rate --raw-s-net --record --recreated-spectrum + --rom-128-0 --rom-128-1 --rom-16 --rom-48 --rom-beta128 --rom-didaktik80 --rom-disciple --rom-interface-1 --rom-opus --rom-pentagon-0 --rom-pentagon-1 --rom-pentagon-2 Modified: trunk/fuse/data/win32/distribution.mk =================================================================== --- trunk/fuse/data/win32/distribution.mk 2016-10-03 04:43:34 UTC (rev 828) +++ trunk/fuse/data/win32/distribution.mk 2016-10-03 12:02:48 UTC (rev 829) @@ -1,7 +1,7 @@ ## This file does not need automake. Include in the final Makefile. ## Copyright (c) 2013-2016 Sergio Baldoví -## $Id: distribution.mk 5434 2016-05-01 04:22:45Z fredm $ +## $Id: distribution.mk 5432 2016-05-01 04:16:09Z 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 Modified: trunk/fuse/data/win32/installer.nsi.in =================================================================== --- trunk/fuse/data/win32/installer.nsi.in 2016-10-03 04:43:34 UTC (rev 828) +++ trunk/fuse/data/win32/installer.nsi.in 2016-10-03 12:02:48 UTC (rev 829) @@ -2,7 +2,7 @@ ## Copyright (c) 2009 Marek Januszewski ## Copyright (c) 2016 Sergio Baldoví -## $Id: installer.nsi.in 5434 2016-05-01 04:22:45Z fredm $ +## $Id: installer.nsi.in 5432 2016-05-01 04:16:09Z 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 Modified: trunk/fuse/debugger/Makefile.am =================================================================== --- trunk/fuse/debugger/Makefile.am 2016-10-03 04:43:34 UTC (rev 828) +++ trunk/fuse/debugger/Makefile.am 2016-10-03 12:02:48 UTC (rev 829) @@ -2,7 +2,7 @@ ## Copyright (c) 2001-2016 Philip Kendall ## Copyright (c) 2015 Sergio Baldoví -## $Id: Makefile.am 5677 2016-07-09 13:58:02Z fredm $ +## $Id: Makefile.am 5661 2016-07-01 19:00:28Z 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 Modified: trunk/fuse/debugger/commandl.l =================================================================== --- trunk/fuse/debugger/commandl.l 2016-10-03 04:43:34 UTC (rev 828) +++ trunk/fuse/debugger/commandl.l 2016-10-03 12:02:48 UTC (rev 829) @@ -2,7 +2,7 @@ Copyright (c) 2002-2016 Philip Kendall Copyright (c) 2015 Sergio Baldoví - $Id: commandl.l 5677 2016-07-09 13:58:02Z fredm $ + $Id: commandl.l 5661 2016-07-01 19:00:28Z 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 Modified: trunk/fuse/debugger/commandy.y =================================================================== --- trunk/fuse/debugger/commandy.y 2016-10-03 04:43:34 UTC (rev 828) +++ trunk/fuse/debugger/commandy.y 2016-10-03 12:02:48 UTC (rev 829) @@ -2,7 +2,7 @@ Copyright (c) 2002-2016 Philip Kendall Copyright (c) 2015 Sergio Baldoví - $Id: commandy.y 5677 2016-07-09 13:58:02Z fredm $ + $Id: commandy.y 5661 2016-07-01 19:00:28Z 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 Modified: trunk/fuse/display.c =================================================================== --- trunk/fuse/display.c 2016-10-03 04:43:34 UTC (rev 828) +++ trunk/fuse/display.c 2016-10-03 12:02:48 UTC (rev 829) @@ -100,9 +100,6 @@ /* Used to signify that we're redrawing the entire screen */ static int display_redraw_all; -/* Value used to signify a border line has more than one colour on it. */ -static const int display_border_mixed = 0xff; - /* The last point at which we updated the screen display */ int critical_region_x = 0, critical_region_y = 0; Modified: trunk/fuse/fusepb/English.lproj/InfoPlist.strings =================================================================== (Binary files differ) Modified: trunk/fuse/fusepb/Info-Fuse.plist =================================================================== --- trunk/fuse/fusepb/Info-Fuse.plist 2016-10-03 04:43:34 UTC (rev 828) +++ trunk/fuse/fusepb/Info-Fuse.plist 2016-10-03 12:02:48 UTC (rev 829) @@ -582,11 +582,11 @@ <key>CFBundlePackageType</key> <string>APPL</string> <key>CFBundleShortVersionString</key> - <string>1.2.2</string> + <string>1.3.0</string> <key>CFBundleSignature</key> <string>FUSE</string> <key>CFBundleVersion</key> - <string>1.2.2</string> + <string>1.3.0</string> <key>NSMainNibFile</key> <string>MainMenu</string> <key>NSPrincipalClass</key> Modified: trunk/fuse/fusepb/config.h =================================================================== --- trunk/fuse/fusepb/config.h 2016-10-03 04:43:34 UTC (rev 828) +++ trunk/fuse/fusepb/config.h 2016-10-03 12:02:48 UTC (rev 829) @@ -167,7 +167,7 @@ /* #undef USE_WIDGET */ /* Version number of package */ -#define VERSION "1.2.2" +#define VERSION "1.3.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/fusepb/keystate.c =================================================================== --- trunk/fuse/fusepb/keystate.c 2016-10-03 04:43:34 UTC (rev 828) +++ trunk/fuse/fusepb/keystate.c 2016-10-03 12:02:48 UTC (rev 829) @@ -30,6 +30,7 @@ #include "input.h" #include "keyboard.h" #include "keystate.h" +#include "settings.h" enum states { NONE, @@ -151,7 +152,21 @@ void process_keyevent( enum events event, input_key keysym ) { - if(event < MAX_EVENTS && current_state < MAX_STATES) { + if( settings_current.recreated_spectrum ) { + switch( event ) { + case PRESS_NORMAL: + case PRESS_SPECIAL: + press_key( keysym ); + break; + case RELEASE_NORMAL: + case RELEASE_SPECIAL: + release_key( keysym ); + break; + default: + // do nothing + break; + } + } else if(event < MAX_EVENTS && current_state < MAX_STATES) { state_table[current_state][event]( keysym ); /* call the action procedure */ } else { /* invalid event/state - shouldn't happen, just ignore for now */ Modified: trunk/fuse/fusepb/libspectrum.h =================================================================== --- trunk/fuse/fusepb/libspectrum.h 2016-10-03 04:43:34 UTC (rev 828) +++ trunk/fuse/fusepb/libspectrum.h 2016-10-03 12:02:48 UTC (rev 829) @@ -1,7 +1,7 @@ /* libspectrum.h: the library for dealing with ZX Spectrum emulator files Copyright (c) 2001-2015 Philip Kendall, Darren Salt, Fredrick Meunier - $Id: libspectrum.h.in 5733 2016-08-14 12:45:40Z fredm $ + $Id: libspectrum.h.in 5718 2016-08-07 12:21:23Z 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 Modified: trunk/fuse/fusepb/models/Emulator.m =================================================================== --- trunk/fuse/fusepb/models/Emulator.m 2016-10-03 04:43:34 UTC (rev 828) +++ trunk/fuse/fusepb/models/Emulator.m 2016-10-03 12:02:48 UTC (rev 829) @@ -712,7 +712,7 @@ case INPUT_KEY_ampersand: case INPUT_KEY_parenleft: case INPUT_KEY_parenright: - case INPUT_KEY_carat: + case INPUT_KEY_asciicircum: case INPUT_KEY_asterisk: return YES; break; Modified: trunk/fuse/fusepb/resources/Fuse Help/Fuse Help.helpindex =================================================================== (Binary files differ) Modified: trunk/fuse/fusepb/resources/Fuse Help/html/changelog.html =================================================================== --- trunk/fuse/fusepb/resources/Fuse Help/html/changelog.html 2016-10-03 04:43:34 UTC (rev 828) +++ trunk/fuse/fusepb/resources/Fuse Help/html/changelog.html 2016-10-03 12:02:48 UTC (rev 829) @@ -12,6 +12,50 @@ <!-- AppleSegStart="What's New In Fuse?" --><a name="What's New In Fuse?" id="What's New In Fuse?"></a><!-- AppleSegDescription="This section describes the changes for version 1.2.1 of the Fuse emulator." --></font><br> <h2><font><font face="Lucida Grande,Helvetica,Arial">What's new in + Fuse For Mac OS X 1.3.0</font></font></h2> + <ul> + <li><font face="Lucida Grande,Helvetica,Arial"><font face="Lucida + Grande,Helvetica,Arial">New features</font>:</font></li> + <li style="list-style-type: none; list-style-image: none; + list-style-position: outside;"> + <ul> + <li><font face="Lucida Grande,Helvetica,Arial">Recreated ZX + Spectrum Bluetooth keyboard support (thanks, thrice, + Philip Kendall and Sergio Baldoví) (Ekkehard Morgenstern).</font></li> + </ul> + </li> + <li style="list-style-type: none; list-style-image: none; + list-style-position: outside;"><br> + </li> + <li><font face="Lucida Grande,Helvetica,Arial">Emulation core + improvements:</font></li> + <li style="list-style-type: none; list-style-image: none; + list-style-position: outside;"> + <ul> + <li><font face="Lucida Grande,Helvetica,Arial">Reset machine + when auto-loading </font><font face="Lucida + Grande,Helvetica,Arial"><font face="Lucida + Grande,Helvetica,Arial">TR-DOS</font> disks (thanks, + BogDan Vatra and Fredrick Meunier) (Sergio Baldoví).</font></li> + </ul> + </li> + <li style="list-style-type: none; list-style-image: none; + list-style-position: outside;"><br> + </li> + <li><font face="Lucida Grande,Helvetica,Arial">Machine specific + improvements:</font></li> + <li style="list-style-type: none; list-style-image: none; + list-style-position: outside;"> + <ul> + <li><font face="Lucida Grande,Helvetica,Arial">Update +3e ROMs + to v1.43 (Sergio Baldoví; thanks, Garry Lancaster).</font></li> + </ul> + <br> + </li> + <li><font face="Lucida Grande,Helvetica,Arial"><font face="Lucida + Grande,Helvetica,Arial">Various other minor bugfixes.</font></font></li> + </ul> + <h2><font><font face="Lucida Grande,Helvetica,Arial">What's new in Fuse For Mac OS X 1.2.2</font></font></h2> <ul> <li><font face="Lucida Grande,Helvetica,Arial"><font face="Lucida @@ -20,8 +64,8 @@ list-style-position: outside;"> <ul> <li><font face="Lucida Grande,Helvetica,Arial">Support loading - first tape, snapshot, dock cartridge or input recording (RZX) - file found inside .zip files (Patrik Rak and Sergio + first tape, snapshot, dock cartridge or input recording + (RZX) file found inside .zip files (Patrik Rak and Sergio Baldoví).</font></li> <li><font face="Lucida Grande,Helvetica,Arial">Support auto-booting TR-DOS disk images without a boot file @@ -329,183 +373,5 @@ <li><font face="Lucida Grande,Helvetica,Arial">Various other minor bugfixes.</font></li> </ul> - <h2><font><font face="Lucida Grande,Helvetica,Arial">What's new in - Fuse For Mac OS X 1.1.1.1</font></font></h2> - <ul> - <li><font face="Lucida Grande,Helvetica,Arial">Miscellaneous - improvements:</font></li> - <li style="list-style-type: none; list-style-image: none; - list-style-position: outside;"> - <ul> - <li><font face="Lucida Grande,Helvetica,Arial">Fix kernel - panic resizing window during screen updates (Fredrick - Meunier).</font></li> - <li><font face="Lucida Grande,Helvetica,Arial">Restore support - for playing emulator recordings (RZX files) with no - embedded snapshot</font><font face="Lucida - Grande,Helvetica,Arial"> (Fredrick Meunier).</font></li> - <li><font face="Lucida Grande,Helvetica,Arial">Restore support - for competition mode emulator recordings (RZX files) </font><font - face="Lucida Grande,Helvetica,Arial"><font face="Lucida - Grande,Helvetica,Arial">(Fredrick Meunier).</font></font></li> - <li><font face="Lucida Grande,Helvetica,Arial"><font - face="Lucida Grande,Helvetica,Arial">Fix sound loop when - pausing emulator</font></font><font face="Lucida - Grande,Helvetica,Arial"> (Fredrick Meunier).</font></li> - <li><font face="Lucida Grande,Helvetica,Arial">Now requires - Mac OS X 10.8+</font></li> - </ul> - </li> - </ul> - <h2><font><font face="Lucida Grande,Helvetica,Arial">What's new in - Fuse For Mac OS X 1.1.1</font></font></h2> - <ul> - <li><font face="Lucida Grande,Helvetica,Arial">New policy:</font></li> - <li style="list-style-type: none; list-style-image: none; - list-style-position: outside;"> - <ul> - <li><font face="Lucida Grande,Helvetica,Arial">Remove all ROMs - for which there isn't explicit permission to distribute - (Philip Kendall). All the affected hardware is still - supported, but the ROM images will need to be obtained - elsewhere and then the Fuse preferences set to refer to - these new ROM images. This applies to the following - machines; Pentagon series and Scorpion, and the following - interfaces; Interface I, Opus Discovery, Betadisk.</font></li> - <li><font face="Lucida Grande,Helvetica,Arial">Any changes - that enable and disable peripherals may result in a hard - reset of the emulated machine if required for proper - emulation of the hardware.<br> - </font></li> - </ul> - <br> - </li> - <li><font face="Lucida Grande,Helvetica,Arial">New features:</font></li> - <li style="list-style-type: none; list-style-image: none; - list-style-position: outside;"> - <ul> - <li><font face="Lucida Grande,Helvetica,Arial">Add Spectranet - Ethernet interface emulation (Philip Kendall).</font></li> - <li><font face="Lucida Grande,Helvetica,Arial">Add SpecDrum - sound interface emulation (Jon Mitchell).</font></li> - <li><font face="Lucida Grande,Helvetica,Arial">Add DISCiPLE - disk interface emulation (Stuart Brady), note that - Sinclair Network emulation is not provided, and the - interface is not available under 128K emulation in this - release.</font></li> - <li><font face="Lucida Grande,Helvetica,Arial">Support reading - PZX files (Fredrick Meunier).</font></li> - <li><font face="Lucida Grande,Helvetica,Arial">Add support for - POK files (Sergio Baldoví).</font></li> - <li><font face="Lucida Grande,Helvetica,Arial">Add recording - of movies to FMF files (Gergely Szasz).</font></li> - </ul> - </li> - <li style="list-style-type: none; list-style-image: none; - list-style-position: outside;"><br> - </li> - <li><font face="Lucida Grande,Helvetica,Arial">Emulation core - improvements:</font></li> - <li style="list-style-type: none; list-style-image: none; - list-style-position: outside;"> - <ul> - <li><font face="Lucida Grande,Helvetica,Arial">Add support for - ABC AY stereo (Stuart Brady).</font></li> - <li><font face="Lucida Grande,Helvetica,Arial">Correct - feedback in AY noise generator (Patrik Rak).</font></li> - <li><font face="Lucida Grande,Helvetica,Arial">MIC bit only - isn't enough to drive the speaker (Fredrick Meunier).</font></li> - <li><font face="Lucida Grande,Helvetica,Arial">Mirror - Interface 1 ROM to the second 8Kb of ROM as in the real - interface (Fredrick Meunier, with thanks to mcleod_ideafix - and zx81).</font></li> - <li><font face="Lucida Grande,Helvetica,Arial">Support the - Beta interface setting to not auto-boot the interface on - 48K machines (ketmar).</font></li> - <li><font face="Lucida Grande,Helvetica,Arial">Support setting - late timings from snapshots (Fredrick Meunier).</font></li> - <li><font face="Lucida Grande,Helvetica,Arial">Add separate - switch to enable ZX Printer emulation (Fredrick Meunier).</font></li> - <li><font face="Lucida Grande,Helvetica,Arial">Reset machine - when installed peripherals are changed (Fredrick Meunier).</font></li> - <li><font face="Lucida Grande,Helvetica,Arial">Fix memory disk - image corrupted after save (Sergio Baldoví).</font></li> - <li><font face="Lucida Grande,Helvetica,Arial">Allow up to 15 - joystick buttons to be defined to accommodate e.g. XBox - 360 ABXY button use (Fredrick Meunier).</font></li> - <li><font face="Lucida Grande,Helvetica,Arial">Fix loading of - EDSK files with redundant sector images (Fredrick - Meunier).<br> - </font></li> - </ul> - <br> - </li> - <li><font face="Lucida Grande,Helvetica,Arial">Machine specific - improvements:</font></li> - <li style="list-style: none outside none;"> - <ul> - <li><font face="Lucida Grande,Helvetica,Arial">Read and write - all potential 1024k worth of memory pages from a snap - (ketmar and Fredrick Meunier).</font></li> - <li><font face="Lucida Grande,Helvetica,Arial">Initialise the - Pentagon 1024k memory ports from a snapshot (ketmar and - Fredrick Meunier).</font></li> - <li><font face="Lucida Grande,Helvetica,Arial">Restore the - paged state of the Beta ROM when loading Pentagon - 128k/512k/1024k snapshots (ketmar and Fredrick Meunier).</font></li> - <li><font face="Lucida Grande,Helvetica,Arial">Fix SE writing - dock and exrom pages to snapshots (Fredrick Meunier).</font></li> - <li><font face="Lucida Grande,Helvetica,Arial">Update SE ROMs - to v4.04 (Fredrick Meunier).</font></li> - <li><font face="Lucida Grande,Helvetica,Arial">Update to v1.38 - of the +3e ROMs (thanks, Guesser) (Fredrick Meunier).<br> - </font></li> - </ul> - </li> - <li style="list-style-type: none; list-style-image: none; - list-style-position: outside;"><br> - </li> - <li><font face="Lucida Grande,Helvetica,Arial">Debugger - improvements:</font></li> - <li style="list-style-type: none; list-style-image: none; - list-style-position: outside;"> - <ul> - <li><font face="Lucida Grande,Helvetica,Arial">Disassemble ED - 4D as RETI (Simon Owen).</font></li> - <li><font face="Lucida Grande,Helvetica,Arial">Add IM, IFF1 - and IFF2 setting and getting to the debugger (Alex Badea).</font></li> - </ul> - <br> - </li> - <li><font face="Lucida Grande,Helvetica,Arial">Miscellaneous - improvements:</font></li> - <ul> - <li><font face="Lucida Grande,Helvetica,Arial">Support for the - TZX set signal level block (Fredrick Meunier).</font></li> - <li><font face="Lucida Grande,Helvetica,Arial">Support setting - late timings from snapshots (Fredrick Meunier).</font></li> - <li><font face="Lucida Grande,Helvetica,Arial">Fix 16x9 - panoramic widescreen and non-panoramic non-4/3 widescreen - (thanks, Adam Meath)</font><font face="Lucida - Grande,Helvetica,Arial"><font face="Lucida - Grande,Helvetica,Arial"> (Fredrick Meunier)</font>.</font></li> - <li><font face="Lucida Grande,Helvetica,Arial">Properly handle - opening and closing windows more than once</font><font - face="Lucida Grande,Helvetica,Arial"><font face="Lucida - Grande,Helvetica,Arial"> (Fredrick Meunier)</font>.</font></li> - <li><font face="Lucida Grande,Helvetica,Arial">Fix display of - memory map in debugger</font><font face="Lucida - Grande,Helvetica,Arial"><font face="Lucida - Grande,Helvetica,Arial"><font face="Lucida - Grande,Helvetica,Arial"> (Fredrick Meunier)</font></font>.</font></li> - <li><font face="Lucida Grande,Helvetica,Arial">Updated retina - icon images from Paul van der Laan.<br> - </font></li> - </ul> - <li style="list-style: none outside none;"><br> - </li> - <li><font face="Lucida Grande,Helvetica,Arial">Various other minor - bugfixes.</font></li> - </ul> </body> </html> Modified: trunk/fuse/fusepb/resources/Fuse Help/html/general.html =================================================================== --- trunk/fuse/fusepb/resources/Fuse Help/html/general.html 2016-10-03 04:43:34 UTC (rev 828) +++ trunk/fuse/fusepb/resources/Fuse Help/html/general.html 2016-10-03 12:02:48 UTC (rev 829) @@ -2,7 +2,7 @@ <html> <head> <meta http-equiv="content-type" content="text/html; - charset=ISO-8859-1"> + charset=windows-1252"> <!-- AppleSegStart="General Preferences" --> <title>General Preferences</title> </head> @@ -135,10 +135,21 @@ used a different value for unused bits on the keyboard input ports, and a few games depended on the old value of these bits. Enabling this option switches to the old - value, to let you </font><font face="Lucida - Grande,Helvetica,Arial">run those games.</font></td> + value, to let you run those games.</font></td> </tr> <tr> + <td valign="top"><span class="emphasis"><font face="Lucida + Grande,Helvetica,Arial"><em>Use Recreated ZX Spectrum + keyboard</em></font></span></td> + <td valign="top"><font face="Lucida Grande,Helvetica,Arial"><font + face="Lucida Grande,Helvetica,Arial">Enable the use of a + Recreated ZX Spectrum in game mode. This is a Bluetooth + keyboard in the shape of a 48K ZX Spectrum that can be paired + your Mac to give an authentic feeling of using a real ZX + Spectrum. While this mode is enabled, your Mac keyboard will + not give correct input to the emulator.</font></td> + </tr> + <tr> <td style="vertical-align: top;"><span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Late CPU timings</em></font></span></td> @@ -147,21 +158,17 @@ screen-related timings (for example, when the screen is rendered and when memory contention occurs) to be one tstate later than "normal", an effect which is present on - some real hardware.</font> <span class="emphasis"><font - face="Lucida Grande,Helvetica,Arial"><em></em></font></span></td> + some real hardware.</font></td> </tr> <tr> - <td style="vertical-align: top;"><span class="emphasis"><font - face="Lucida Grande,Helvetica,Arial"><em>Z80 - is CMOS</em></font></span></td> - <td style="vertical-align: top;"><font face="Lucida - Grande,Helvetica,Arial">If selected, Fuse will emulate a - CMOS Z80, as opposed to an NMOS Z80. The undocumented - `OUT (C),0' instruction will be replaced with - `OUT (C),255' and emulation of a minor timing bug in the - NMOS Z80's `LD A,I' and `LD A,R' instructions will be - disabled.</font> <span class="emphasis"><font - face="Lucida Grande,Helvetica,Arial"><em></em></font></span></td> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>Z80 is CMOS</em></font></span></td> + <td style="vertical-align: top;"><font face="Lucida + Grande,Helvetica,Arial">If selected, Fuse will emulate a + CMOS Z80, as opposed to an NMOS Z80. The undocumented `OUT + (C),0' instruction will be replaced with `OUT (C),255' and + emulation of a minor timing bug in the NMOS Z80's `LD A,I' + and `LD A,R' instructions will be disabled.</font></td> </tr> <tr> <td style="vertical-align: top;"><span class="emphasis"><font Modified: trunk/fuse/fusepb/xibs/Preferences.xib =================================================================== --- trunk/fuse/fusepb/xibs/Preferences.xib 2016-10-03 04:43:34 UTC (rev 828) +++ trunk/fuse/fusepb/xibs/Preferences.xib 2016-10-03 12:02:48 UTC (rev 829) @@ -1,9 +1,9 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> -<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="10116" systemVersion="15F34" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none"> +<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="11201" systemVersion="15G1004" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none"> <dependencies> <deployment version="1080" identifier="macosx"/> - <development version="6300" identifier="xcode"/> - <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="10116"/> + <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="11201"/> + <capability name="box content view" minToolsVersion="7.0"/> </dependencies> <objects> <customObject id="-2" userLabel="File's Owner" customClass="PreferencesController"> @@ -116,8 +116,8 @@ <action selector="resetUserDefaults:" target="-2" id="932"/> </connections> </button> - <button id="1348"> - <rect key="frame" x="293" y="149" width="151" height="18"/> + <button misplaced="YES" id="1348"> + <rect key="frame" x="293" y="129" width="151" height="18"/> <autoresizingMask key="autoresizingMask"/> <buttonCell key="cell" type="check" title="Late CPU timings" bezelStyle="regularSquare" imagePosition="left" alignment="left" inset="2" id="1379"> <behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/> @@ -127,8 +127,8 @@ <binding destination="270" name="value" keyPath="values.latetimings" id="1402"/> </connections> </button> - <button id="Uch-Bs-QML"> - <rect key="frame" x="293" y="129" width="151" height="18"/> + <button misplaced="YES" id="Uch-Bs-QML"> + <rect key="frame" x="293" y="109" width="151" height="18"/> <autoresizingMask key="autoresizingMask"/> <buttonCell key="cell" type="check" title="Z80 is CMOS" bezelStyle="regularSquare" imagePosition="left" alignment="left" inset="2" id="qDh-Th-upD"> <behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/> @@ -280,8 +280,8 @@ <binding destination="270" name="value" keyPath="values.rate" id="Zrv-JU-bcU"/> </connections> </textField> - <button id="1354"> - <rect key="frame" x="293" y="109" width="151" height="18"/> + <button misplaced="YES" id="1354"> + <rect key="frame" x="293" y="89" width="151" height="18"/> <autoresizingMask key="autoresizingMask"/> <buttonCell key="cell" type="check" title="Allow writes to ROM" bezelStyle="regularSquare" imagePosition="left" alignment="left" inset="2" id="1369"> <behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/> @@ -291,8 +291,8 @@ <binding destination="270" name="value" keyPath="values.writableroms" id="1403"/> </connections> </button> - <button id="1355"> - <rect key="frame" x="293" y="69" width="214" height="18"/> + <button misplaced="YES" id="1355"> + <rect key="frame" x="293" y="49" width="214" height="18"/> <autoresizingMask key="autoresizingMask"/> <buttonCell key="cell" type="check" title="Set joysticks on snapshot load" bezelStyle="regularSquare" imagePosition="left" alignment="left" inset="2" id="1368"> <behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/> @@ -302,8 +302,8 @@ <binding destination="270" name="value" keyPath="values.joyprompt" id="1407"/> </connections> </button> - <button id="1357"> - <rect key="frame" x="293" y="89" width="105" height="18"/> + <button misplaced="YES" id="1357"> + <rect key="frame" x="293" y="69" width="105" height="18"/> <autoresizingMask key="autoresizingMask"/> <buttonCell key="cell" type="check" title="Use .slt traps" bezelStyle="regularSquare" imagePosition="left" alignment="left" inset="2" id="1366"> <behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/> @@ -314,6 +314,17 @@ <outlet property="nextKeyView" destination="1354" id="1380"/> </connections> </button> + <button misplaced="YES" id="Oae-GO-4G1"> + <rect key="frame" x="293" y="149" width="255" height="18"/> + <autoresizingMask key="autoresizingMask"/> + <buttonCell key="cell" type="check" title="Use Recreated ZX Spectrum keyboard" bezelStyle="regularSquare" imagePosition="left" alignment="left" inset="2" id="qRM-aw-x1T"> + <behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/> + <font key="font" metaFont="system"/> + </buttonCell> + <connections> + <binding destination="270" name="value" keyPath="values.recreatedspectrum" id="7OV-FA-rfE"/> + </connections> + </button> </subviews> </customView> <customView id="1408" userLabel="Sound"> @@ -461,10 +472,10 @@ <rect key="frame" x="0.0" y="0.0" width="627" height="472"/> <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/> <subviews> - <box autoresizesSubviews="NO" title="External sound interface" borderType="line" id="1833"> + <box autoresizesSubviews="NO" borderType="line" title="External sound interface" id="1833"> <rect key="frame" x="398" y="334" width="212" height="118"/> <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/> - <view key="contentView"> + <view key="contentView" id="3G9-p5-WYZ"> <rect key="frame" x="1" y="1" width="210" height="102"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <subviews> @@ -513,13 +524,11 @@ </matrix> </subviews> </view> - <color key="borderColor" white="0.0" alpha="0.41999999999999998" colorSpace="calibratedWhite"/> - <color key="fillColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> </box> <box title="Mass storage/ROM Interfaces" id="1434"> <rect key="frame" x="18" y="154" width="378" height="298"/> <autoresizingMask key="autoresizingMask"/> - <view key="contentView"> + <view key="contentView" id="y0s-Gg-gqJ"> <rect key="frame" x="2" y="2" width="374" height="281"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <subviews> @@ -735,13 +744,11 @@ </matrix> </subviews> </view> - <color key="borderColor" white="0.0" alpha="0.41999999999999998" colorSpace="calibratedWhite"/> - <color key="fillColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> </box> <box title="Printers" id="1433"> <rect key="frame" x="17" y="16" width="591" height="134"/> <autoresizingMask key="autoresizingMask"/> - <view key="contentView"> + <view key="contentView" id="ojx-X9-Ioy"> <rect key="frame" x="2" y="2" width="587" height="117"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <subviews> @@ -833,8 +840,6 @@ </textField> </subviews> </view> - <color key="borderColor" white="0.0" alpha="0.41999999999999998" colorSpace="calibratedWhite"/> - <color key="fillColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> </box> </subviews> <point key="canvasLocation" x="325.5" y="-570"/> @@ -935,7 +940,7 @@ <box title="Keyboard" id="1509"> <rect key="frame" x="73" y="288" width="481" height="73"/> <autoresizingMask key="autoresizingMask"/> - <view key="contentView"> + <view key="contentView" id="e3X-3f-W4t"> <rect key="frame" x="2" y="2" width="477" height="53"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <subviews> @@ -972,14 +977,12 @@ </textField> </subviews> </view> - <color key="borderColor" white="0.0" alpha="0.41999999999999998" colorSpace="calibratedWhite"/> - <color key="fillColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> <font key="titleFont" metaFont="system"/> </box> <box title="Joystick 1" id="1508"> <rect key="frame" x="73" y="182" width="481" height="102"/> <autoresizingMask key="autoresizingMask"/> - <view key="contentView"> + <view key="contentView" id="iCW-jZ-kNN"> <rect key="frame" x="2" y="2" width="477" height="82"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <subviews> @@ -1052,14 +1055,12 @@ </button> </subviews> </view> - <color key="borderColor" white="0.0" alpha="0.41999999999999998" colorSpace="calibratedWhite"/> - <color key="fillColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> <font key="titleFont" metaFont="system"/> </box> <box title="Joystick 2" id="1507"> <rect key="frame" x="73" y="78" width="481" height="100"/> <autoresizingMask key="autoresizingMask"/> - <view key="contentView"> + <view key="contentView" id="c2z-Ze-SIE"> <rect key="frame" x="2" y="2" width="477" height="80"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <subviews> @@ -1131,8 +1132,6 @@ </button> </subviews> </view> - <color key="borderColor" white="0.0" alpha="0.41999999999999998" colorSpace="calibratedWhite"/> - <color key="fillColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> <font key="titleFont" metaFont="system"/> </box> <button id="1435"> @@ -1253,11 +1252,11 @@ <rect key="frame" x="20" y="20" width="137" height="303"/> <autoresizingMask key="autoresizingMask"/> <clipView key="contentView" id="RVo-Sg-mDk"> - <rect key="frame" x="1" y="17" width="135" height="285"/> + <rect key="frame" x="1" y="0.0" width="135" height="302"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <subviews> <tableView verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnReordering="NO" columnResizing="NO" multipleSelection="NO" emptySelection="NO" autosaveColumns="NO" headerView="1631" id="1634"> - <rect key="frame" x="0.0" y="0.0" width="120" height="19"/> + <rect key="frame" x="0.0" y="0.0" width="135" height="285"/> <autoresizingMask key="autoresizingMask"/> <size key="intercellSpacing" width="3" height="2"/> <color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/> @@ -1289,7 +1288,6 @@ </connections> </tableView> </subviews> - <color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/> </clipView> <scroller key="horizontalScroller" hidden="YES" verticalHuggingPriority="750" horizontal="YES" id="1632"> <rect key="frame" x="-100" y="-100" width="120" height="15"/> @@ -1404,11 +1402,11 @@ <rect key="frame" x="-149" y="171" width="137" height="303"/> <autoresizingMask key="autoresizingMask"/> <clipView key="contentView" id="7ih-tq-3PK"> - <rect key="frame" x="1" y="17" width="135" height="285"/> + <rect key="frame" x="1" y="0.0" width="135" height="302"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <subviews> <tableView verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnReordering="NO" columnResizing="NO" multipleSelection="NO" emptySelection="NO" autosaveColumns="NO" headerView="1612" id="1615"> - <rect key="frame" x="0.0" y="0.0" width="120" height="19"/> + <rect key="frame" x="0.0" y="0.0" width="135" height="285"/> <autoresizingMask key="autoresizingMask"/> <size key="intercellSpacing" width="3" height="2"/> <color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/> @@ -1429,7 +1427,6 @@ </tableColumns> </tableView> </subviews> - <color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/> </clipView> <scroller key="horizontalScroller" hidden="YES" verticalHuggingPriority="750" horizontal="YES" id="1613"> <rect key="frame" x="-100" y="-100" width="120" height="15"/> Modified: trunk/fuse/hacking/ChangeLog =================================================================== --- trunk/fuse/hacking/ChangeLog 2016-10-03 04:43:34 UTC (rev 828) +++ trunk/fuse/hacking/ChangeLog 2016-10-03 12:02:48 UTC (rev 829) @@ -5407,3 +5407,42 @@ (Sergio). 20160821 ChangeLog,README,configure.ac,man/fuse.1: update release dates and mark this release as 1.2.2 (Fred). +20160822 configure.ac: pr... [truncated message content] |
From: <fr...@us...> - 2016-10-03 04:43:36
|
Revision: 828 http://sourceforge.net/p/fuse-for-macosx/code/828 Author: fredm Date: 2016-10-03 04:43:34 +0000 (Mon, 03 Oct 2016) Log Message: ----------- Tag vendor/fuse-emulator/current as vendor/fuse-emulator/fuse-1.3.0-r5822. Revision Links: -------------- http://sourceforge.net/p/fuse-for-macosx/code/5822 Added Paths: ----------- vendor/fuse-emulator/fuse-1.3.0-r5822/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2016-10-03 04:43:14
|
Revision: 827 http://sourceforge.net/p/fuse-for-macosx/code/827 Author: fredm Date: 2016-10-03 04:43:11 +0000 (Mon, 03 Oct 2016) Log Message: ----------- Load . into vendor/fuse-emulator/current. Modified Paths: -------------- vendor/fuse-emulator/current/fuse/AUTHORS vendor/fuse-emulator/current/fuse/ChangeLog vendor/fuse-emulator/current/fuse/INSTALL vendor/fuse-emulator/current/fuse/Makefile.am vendor/fuse-emulator/current/fuse/README vendor/fuse-emulator/current/fuse/autogen.sh vendor/fuse-emulator/current/fuse/compat/Makefile.am vendor/fuse-emulator/current/fuse/configure.ac vendor/fuse-emulator/current/fuse/data/Makefile.am vendor/fuse-emulator/current/fuse/data/shell-completion/bash/fuse vendor/fuse-emulator/current/fuse/data/win32/distribution.mk vendor/fuse-emulator/current/fuse/data/win32/installer.nsi.in vendor/fuse-emulator/current/fuse/debugger/Makefile.am vendor/fuse-emulator/current/fuse/debugger/commandl.l vendor/fuse-emulator/current/fuse/debugger/commandy.y vendor/fuse-emulator/current/fuse/display.c vendor/fuse-emulator/current/fuse/hacking/ChangeLog vendor/fuse-emulator/current/fuse/hacking/Makefile.am vendor/fuse-emulator/current/fuse/input.c vendor/fuse-emulator/current/fuse/input.h vendor/fuse-emulator/current/fuse/keyboard.c vendor/fuse-emulator/current/fuse/keysyms.dat vendor/fuse-emulator/current/fuse/keysyms.pl vendor/fuse-emulator/current/fuse/lib/Makefile.am vendor/fuse-emulator/current/fuse/machines/Makefile.am vendor/fuse-emulator/current/fuse/man/Makefile.am vendor/fuse-emulator/current/fuse/man/fuse.1 vendor/fuse-emulator/current/fuse/menu_data.dat vendor/fuse-emulator/current/fuse/menu_data.pl vendor/fuse-emulator/current/fuse/peripherals/Makefile.am vendor/fuse-emulator/current/fuse/peripherals/disk/beta.c vendor/fuse-emulator/current/fuse/peripherals/disk/didaktik.c vendor/fuse-emulator/current/fuse/peripherals/disk/didaktik.h vendor/fuse-emulator/current/fuse/peripherals/disk/disk.c vendor/fuse-emulator/current/fuse/peripherals/disk/trdos.c vendor/fuse-emulator/current/fuse/peripherals/disk/trdos.h vendor/fuse-emulator/current/fuse/peripherals/disk/upd_fdc.c vendor/fuse-emulator/current/fuse/peripherals/usource.c vendor/fuse-emulator/current/fuse/peripherals/usource.h vendor/fuse-emulator/current/fuse/perl/Makefile.am vendor/fuse-emulator/current/fuse/pokefinder/Makefile.am vendor/fuse-emulator/current/fuse/roms/Makefile.am vendor/fuse-emulator/current/fuse/roms/plus3e-0.rom vendor/fuse-emulator/current/fuse/roms/plus3e-1.rom vendor/fuse-emulator/current/fuse/roms/plus3e-2.rom vendor/fuse-emulator/current/fuse/settings-header.pl vendor/fuse-emulator/current/fuse/settings.dat vendor/fuse-emulator/current/fuse/settings.pl vendor/fuse-emulator/current/fuse/sound/Makefile.am vendor/fuse-emulator/current/fuse/svg.c vendor/fuse-emulator/current/fuse/svg.h vendor/fuse-emulator/current/fuse/timer/Makefile.am vendor/fuse-emulator/current/fuse/ui/Makefile.am vendor/fuse-emulator/current/fuse/ui/fb/Makefile.am vendor/fuse-emulator/current/fuse/ui/gtk/Makefile.am vendor/fuse-emulator/current/fuse/ui/gtk/options.pl vendor/fuse-emulator/current/fuse/ui/options.dat vendor/fuse-emulator/current/fuse/ui/scaler/Makefile.am vendor/fuse-emulator/current/fuse/ui/sdl/Makefile.am vendor/fuse-emulator/current/fuse/ui/svga/Makefile.am vendor/fuse-emulator/current/fuse/ui/uimedia.h vendor/fuse-emulator/current/fuse/ui/widget/Makefile.am vendor/fuse-emulator/current/fuse/ui/widget/debugger.c vendor/fuse-emulator/current/fuse/ui/widget/filesel.c vendor/fuse-emulator/current/fuse/ui/widget/menu.c vendor/fuse-emulator/current/fuse/ui/widget/options.pl vendor/fuse-emulator/current/fuse/ui/widget/pokemem.c vendor/fuse-emulator/current/fuse/ui/widget/text.c vendor/fuse-emulator/current/fuse/ui/widget/widget.c vendor/fuse-emulator/current/fuse/ui/widget/widget.h vendor/fuse-emulator/current/fuse/ui/widget/widget_internals.h vendor/fuse-emulator/current/fuse/ui/wii/Makefile.am vendor/fuse-emulator/current/fuse/ui/win32/Makefile.am vendor/fuse-emulator/current/fuse/ui/win32/debugger.rc vendor/fuse-emulator/current/fuse/ui/win32/options-resource.pl vendor/fuse-emulator/current/fuse/ui/win32/options.pl vendor/fuse-emulator/current/fuse/ui/win32/win32internals.h vendor/fuse-emulator/current/fuse/ui/win32/win32joystick.rc vendor/fuse-emulator/current/fuse/ui/win32/win32keyboard.c vendor/fuse-emulator/current/fuse/ui/win32/win32ui.c vendor/fuse-emulator/current/fuse/ui/xlib/Makefile.am vendor/fuse-emulator/current/fuse/uimedia.c vendor/fuse-emulator/current/fuse/unittests/Makefile.am vendor/fuse-emulator/current/fuse/z80/Makefile.am vendor/fuse-emulator/current/fuse/z80/z80.pl vendor/fuse-emulator/current/fuse/z80/z80_debugger_variables.c vendor/fuse-emulator/current/libspectrum/ChangeLog vendor/fuse-emulator/current/libspectrum/Makefile.am vendor/fuse-emulator/current/libspectrum/README vendor/fuse-emulator/current/libspectrum/accessor.pl vendor/fuse-emulator/current/libspectrum/autogen.sh vendor/fuse-emulator/current/libspectrum/configure.ac vendor/fuse-emulator/current/libspectrum/doc/libspectrum.3 vendor/fuse-emulator/current/libspectrum/doc/libspectrum.txt vendor/fuse-emulator/current/libspectrum/hacking/ChangeLog vendor/fuse-emulator/current/libspectrum/libspectrum.h.in vendor/fuse-emulator/current/libspectrum/pzx_read.c vendor/fuse-emulator/current/libspectrum/snap_accessors.txt vendor/fuse-emulator/current/libspectrum/szx.c vendor/fuse-emulator/current/libspectrum/test/Makefile.am vendor/fuse-emulator/current/libspectrum/zip.c vendor/fuse-emulator/current/libspectrum/zip.h Added Paths: ----------- vendor/fuse-emulator/current/fuse/ui/widget/about.c Modified: vendor/fuse-emulator/current/fuse/AUTHORS =================================================================== --- vendor/fuse-emulator/current/fuse/AUTHORS 2016-09-30 12:48:19 UTC (rev 826) +++ vendor/fuse-emulator/current/fuse/AUTHORS 2016-10-03 04:43:11 UTC (rev 827) @@ -54,4 +54,4 @@ * Philip Kendall: everything else. -$Id: AUTHORS 5569 2016-06-01 11:12:38Z fredm $ +$Id: AUTHORS 5606 2016-06-07 11:32:25Z fredm $ Modified: vendor/fuse-emulator/current/fuse/ChangeLog =================================================================== --- vendor/fuse-emulator/current/fuse/ChangeLog 2016-09-30 12:48:19 UTC (rev 826) +++ vendor/fuse-emulator/current/fuse/ChangeLog 2016-10-03 04:43:11 UTC (rev 827) @@ -1,3 +1,25 @@ +2016-10-02 Philip Kendall <phi...@sh...> + + * Fuse 1.3.0 released. + + * New features: + * Recreated ZX Spectrum Bluetooth keyboard support (thanks, thrice, + Philip Kendall and Sergio Baldoví) (Ekkehard Morgenstern). + + * Emulation core improvements: + * Reset machine when auto-loading TRD/SCL disks (thanks, BogDan Vatra + and Fredrick Meunier) (Sergio Baldoví). + + * Machine specific improvements: + * Update +3e ROMs to v1.43 (Sergio Baldoví; thanks, Garry Lancaster). + + * Miscellaneous improvements: + * WidgetUI: Add About Fuse dialog with less cluttered text (Sergio + Baldoví). + * Print summary of enabled features when building Fuse (Alberto + Garcia). + * Various minor bugfixes. + 2016-08-21 Philip Kendall <phi...@sh...> * Fuse 1.2.2 released. @@ -1351,4 +1373,4 @@ * Version 0.1.0 released. -$Id: ChangeLog 5761 2016-08-21 05:10:02Z fredm $ +$Id: ChangeLog 5818 2016-10-02 11:35:56Z fredm $ Modified: vendor/fuse-emulator/current/fuse/INSTALL =================================================================== --- vendor/fuse-emulator/current/fuse/INSTALL 2016-09-30 12:48:19 UTC (rev 826) +++ vendor/fuse-emulator/current/fuse/INSTALL 2016-10-03 04:43:11 UTC (rev 827) @@ -161,4 +161,4 @@ respectively. That will make a temporary subdirectory (fuse-VERSION-win32) in the build directory and then will create a package. -$Id: INSTALL 5407 2016-04-25 21:59:53Z sbaldovi $ +$Id: INSTALL 5406 2016-04-25 21:52:03Z sbaldovi $ Modified: vendor/fuse-emulator/current/fuse/Makefile.am =================================================================== --- vendor/fuse-emulator/current/fuse/Makefile.am 2016-09-30 12:48:19 UTC (rev 826) +++ vendor/fuse-emulator/current/fuse/Makefile.am 2016-10-03 04:43:11 UTC (rev 827) @@ -1,7 +1,7 @@ ## Process this file with automake to produce Makefile.in ## Copyright (c) 1999-2015 Philip Kendall -## $Id: Makefile.am 5735 2016-08-14 13:02:21Z fredm $ +## $Id: Makefile.am 5731 2016-08-12 13:18: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 Modified: vendor/fuse-emulator/current/fuse/README =================================================================== --- vendor/fuse-emulator/current/fuse/README 2016-09-30 12:48:19 UTC (rev 826) +++ vendor/fuse-emulator/current/fuse/README 2016-10-03 04:43:11 UTC (rev 827) @@ -1,4 +1,4 @@ -The Free Unix Spectrum Emulator (Fuse) 1.2.2 +The Free Unix Spectrum Emulator (Fuse) 1.3.0 ============================================ Fuse (the Free Unix Spectrum Emulator) was originally, and somewhat @@ -108,6 +108,6 @@ <http://www.worldofspectrum.org/forums/>. Philip Kendall <phi...@sh...> -21st August, 2016 +2nd October, 2016 -$Id: README 5761 2016-08-21 05:10:02Z fredm $ +$Id: README 5818 2016-10-02 11:35:56Z fredm $ Modified: vendor/fuse-emulator/current/fuse/autogen.sh =================================================================== --- vendor/fuse-emulator/current/fuse/autogen.sh 2016-09-30 12:48:19 UTC (rev 826) +++ vendor/fuse-emulator/current/fuse/autogen.sh 2016-10-03 04:43:11 UTC (rev 827) @@ -4,7 +4,7 @@ # Copyright (c) 2004 Philip Kendall # Copyright (c) 2014 Sergio Baldoví -# $Id: autogen.sh 5434 2016-05-01 04:22:45Z fredm $ +# $Id: autogen.sh 5432 2016-05-01 04:16:09Z 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 Modified: vendor/fuse-emulator/current/fuse/compat/Makefile.am =================================================================== --- vendor/fuse-emulator/current/fuse/compat/Makefile.am 2016-09-30 12:48:19 UTC (rev 826) +++ vendor/fuse-emulator/current/fuse/compat/Makefile.am 2016-10-03 04:43:11 UTC (rev 827) @@ -2,7 +2,7 @@ ## Copyright (c) 2003-2013 Philip Kendall ## Copyright (c) 2015 Sergio Baldoví -## $Id: Makefile.am 5677 2016-07-09 13:58:02Z fredm $ +## $Id: Makefile.am 5621 2016-06-09 10:29:12Z 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 Modified: vendor/fuse-emulator/current/fuse/configure.ac =================================================================== --- vendor/fuse-emulator/current/fuse/configure.ac 2016-09-30 12:48:19 UTC (rev 826) +++ vendor/fuse-emulator/current/fuse/configure.ac 2016-10-03 04:43:11 UTC (rev 827) @@ -1,5 +1,5 @@ dnl Process this file with autoconf to produce a configure script. -dnl $Id: configure.ac 5761 2016-08-21 05:10:02Z fredm $ +dnl $Id: configure.ac 5809 2016-09-24 04:27:40Z fredm $ 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 @@ -20,12 +20,12 @@ dnl E-mail: phi...@sh... dnl Package version -m4_define([fuse_version], [1.2.2]) +m4_define([fuse_version], [1.3.0]) dnl Product full version m4_define([fuse_major_version], [1]) -m4_define([fuse_minor_version], [2]) -m4_define([fuse_micro_version], [2]) +m4_define([fuse_minor_version], [3]) +m4_define([fuse_micro_version], [0]) m4_define([fuse_nano_version], [0]) m4_define([fuse_full_version], [fuse_major_version.fuse_minor_version.fuse_micro_version.fuse_nano_version]) m4_define([fuse_rc_version], [fuse_major_version,fuse_minor_version,fuse_micro_version,fuse_nano_version]) @@ -461,9 +461,10 @@ zlib=yes) AC_MSG_RESULT($zlib) if test "$zlib" = yes; then + zlib=no AC_CHECK_HEADERS( zlib.h, - AC_SEARCH_LIBS(compress2, z zdll) + AC_SEARCH_LIBS(compress2, z zdll, zlib=yes) ) fi @@ -511,7 +512,8 @@ [PNG], [libpng], [AC_DEFINE([USE_LIBPNG], 1, [Defined if we're going to be using the installed libpng])], - [AC_MSG_WARN([libpng not found - saving screenshots disabled])] + [AC_MSG_WARN([libpng not found - saving screenshots disabled]) + libpng=no] ) fi @@ -583,40 +585,44 @@ AC_MSG_CHECKING(which sound routines to use) if test "$UI" = sdl; then SOUND_LIBADD='sound/sdlsound.$(OBJEXT)' SOUND_LIBS='' sound_fifo=yes - AC_MSG_RESULT(SDL) + audio_driver="SDL" elif test "$dxsound_available" = yes; then SOUND_LIBADD='sound/dxsound.$(OBJEXT)' SOUND_LIBS='-ldsound -lole32 -ldxguid' - AC_MSG_RESULT(DirectX) + audio_driver="DirectX" AC_DEFINE([DIRECTSOUND_VERSION], 0x0700, [DirectX 7 or higher is required]) elif test "$win32sound_available" = yes; then SOUND_LIBADD='sound/win32sound.$(OBJEXT)' SOUND_LIBS='-lwinmm' - AC_MSG_RESULT(win32sound) + audio_driver="win32sound" elif test "$alsa_available" = yes; then SOUND_LIBADD='sound/alsasound.$(OBJEXT)' SOUND_LIBS='-lasound' - AC_MSG_RESULT(ALSA) + audio_driver="ALSA" elif test "$ao_available" = yes; then SOUND_LIBADD='sound/aosound.$(OBJEXT)' SOUND_LIBS='-lao' - AC_MSG_RESULT(libao) + audio_driver="libao" elif test "$ac_cv_header_dsound_h" = yes; then # Later selection between these two SOUND_LIBADD='sound/sunsound.$(OBJEXT) sound/hpsound.$(OBJEXT)' SOUND_LIBS='' - AC_MSG_RESULT(Solaris or HP/UX) + audio_driver="Solaris or HP/UX" elif test "$ac_cv_header_sys_soundcard_h" = yes; then SOUND_LIBADD='sound/osssound.$(OBJEXT)' SOUND_LIBS='' - AC_MSG_RESULT(OSS) + audio_driver="OSS" elif test "$ac_cv_header_sys_audioio_h" = yes; then dnl OpenBSD SOUND_LIBADD='sound/sunsound.$(OBJEXT)' SOUND_LIBS='' - AC_MSG_RESULT(OpenBSD) + audio_driver="OpenBSD" elif test "$coreaudio_available" = yes; then SOUND_LIBADD='sound/coreaudiosound.$(OBJEXT)' SOUND_LIBS='-framework CoreAudio -framework AudioUnit' sound_fifo=yes - AC_MSG_RESULT(CoreAudio) + audio_driver="CoreAudio" elif test "$wii" = yes; then SOUND_LIBADD='sound/wiisound.$(OBJEXT)' SOUND_LIBS='' sound_fifo=yes - AC_MSG_RESULT(Wii) + audio_driver="Wii" else SOUND_LIBADD='sound/nullsound.$(OBJEXT)' SOUND_LIBS='' - AC_MSG_RESULT(none) + audio_driver="none" +fi + +AC_MSG_RESULT($audio_driver) +if test "$audio_driver" = "none"; then AC_DEFINE([NO_SOUND], 1, [Defined if no sound code is present]) AC_MSG_WARN(No sound library has been found) fi @@ -683,7 +689,8 @@ SDL_VERSION=1.2.4 AM_PATH_SDL($SDL_VERSION, AC_DEFINE([USE_JOYSTICK], 1, [Defined if we're using hardware joysticks]), - AC_MSG_WARN([SDL version $SDL_VERSION not found - joystick support disabled])) + AC_MSG_WARN([SDL version $SDL_VERSION not found - joystick support disabled]) + stick=no) fi ;; wii) @@ -702,7 +709,8 @@ LIBS="$LIBS -ljsw"; AC_DEFINE([USE_JOYSTICK], 1, [Defined if we're using hardware joysticks]), - AC_MSG_WARN(jsw.h not found - joystick support disabled)) + AC_MSG_WARN(jsw.h not found - joystick support disabled) + stick=no) fi fi @@ -718,7 +726,8 @@ [XML], [libxml-2.0], [AC_DEFINE([HAVE_LIB_XML2], 1, [Defined if we've got libxml2])], - [AC_MSG_WARN([libxml2 not found - config file will use ini format])] + [AC_MSG_WARN([libxml2 not found - config file will use ini format]) + libxml2="no"] ) fi @@ -859,7 +868,7 @@ AC_ARG_ENABLE(desktop-integration, AS_HELP_STRING([--enable-desktop-integration], [add menu entry and file associations]), if test "$enableval" = yes; then desktopintegration=yes; else desktopintegration=no; fi, -desktdesktopintegration=no) +desktopintegration=no) AC_MSG_CHECKING(whether to install desktop file) AC_MSG_RESULT($desktopintegration) AM_CONDITIONAL(DESKTOP_INTEGRATION, test "$desktopintegration" = yes) @@ -937,3 +946,40 @@ ]) AC_OUTPUT + +dnl Status summary +echo "" +echo "****************************" +echo "*** Libspectrum features ***" +echo "****************************" +echo "" +echo "Internal GLib replacement: ${fakeglib}" +echo "zlib support: ${LIBSPEC_HAVE_ZLIB:-no}" +echo "bzip2 support: ${LIBSPEC_HAVE_BZ2:-no}" +echo "audiofile support: ${LIBSPEC_HAVE_AUDIOFILE:-no}" +echo "" +echo "********************" +echo "*** Fuse options ***" +echo "********************" +echo "" +echo "User interface: ${UI}" +if test "${UI}" = "gtk"; then + echo "Using GTK+ 3: ${gtk3}" +fi +if test x"${gpm}" != "x"; then + echo "libgpm support: ${gpm}" +fi +echo "Joystick support: ${stick}" +if test "${stick}" = "yes"; then + echo "Using libjsw for joystick support: ${libjsw}" +fi +echo "zlib support: ${zlib}" +echo "libxml2 support: ${libxml2}" +echo "libpng support: ${libpng}" +echo "Audio driver: ${audio_driver}" +echo "Spectranet support: ${build_spectranet}" +echo "SpeccyBoot support: ${linux_tap:-no}" +echo "Desktop integration: ${desktopintegration}" +echo "" +echo "Type 'make' to compile Fuse" +echo "" Modified: vendor/fuse-emulator/current/fuse/data/Makefile.am =================================================================== --- vendor/fuse-emulator/current/fuse/data/Makefile.am 2016-09-30 12:48:19 UTC (rev 826) +++ vendor/fuse-emulator/current/fuse/data/Makefile.am 2016-10-03 04:43:11 UTC (rev 827) @@ -2,7 +2,7 @@ ## Copyright (c) 2011 Philip Kendall ## Copyright (c) 2013-2015 Sergio Baldoví -## $Id: Makefile.am 5434 2016-05-01 04:22:45Z fredm $ +## $Id: Makefile.am 5432 2016-05-01 04:16:09Z 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 Modified: vendor/fuse-emulator/current/fuse/data/shell-completion/bash/fuse =================================================================== --- vendor/fuse-emulator/current/fuse/data/shell-completion/bash/fuse 2016-09-30 12:48:19 UTC (rev 826) +++ vendor/fuse-emulator/current/fuse/data/shell-completion/bash/fuse 2016-10-03 04:43:11 UTC (rev 827) @@ -220,7 +220,7 @@ --no-melodik --no-mouse-swap-buttons --no-movie-stop-after-rzx --no-opus --no-pal-tv2x --no-plus3-detect-speedlock --no-plusd --no-printer - --no-raw-s-net --no-rs232-handshake + --no-raw-s-net --no-recreated-spectrum --no-rs232-handshake --no-rzx-autosaves --no-simpleide --no-slt --no-sound --no-sound-force-8bit --no-speccyboot --no-specdrum --no-spectranet --no-spectranet-disable --no-statusbar @@ -229,7 +229,8 @@ --no-zxatasp-write-protect --no-zxcf --no-zxcf-upload --no-zxprinter --opus --opusdisk --pal-tv2x --playback --plus3-detect-speedlock --plus3disk --plusd --plusddisk - --printer --rate --raw-s-net --record --rom-128-0 --rom-128-1 + --printer --rate --raw-s-net --record --recreated-spectrum + --rom-128-0 --rom-128-1 --rom-16 --rom-48 --rom-beta128 --rom-didaktik80 --rom-disciple --rom-interface-1 --rom-opus --rom-pentagon-0 --rom-pentagon-1 --rom-pentagon-2 Modified: vendor/fuse-emulator/current/fuse/data/win32/distribution.mk =================================================================== --- vendor/fuse-emulator/current/fuse/data/win32/distribution.mk 2016-09-30 12:48:19 UTC (rev 826) +++ vendor/fuse-emulator/current/fuse/data/win32/distribution.mk 2016-10-03 04:43:11 UTC (rev 827) @@ -1,7 +1,7 @@ ## This file does not need automake. Include in the final Makefile. ## Copyright (c) 2013-2016 Sergio Baldoví -## $Id: distribution.mk 5434 2016-05-01 04:22:45Z fredm $ +## $Id: distribution.mk 5432 2016-05-01 04:16:09Z 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 Modified: vendor/fuse-emulator/current/fuse/data/win32/installer.nsi.in =================================================================== --- vendor/fuse-emulator/current/fuse/data/win32/installer.nsi.in 2016-09-30 12:48:19 UTC (rev 826) +++ vendor/fuse-emulator/current/fuse/data/win32/installer.nsi.in 2016-10-03 04:43:11 UTC (rev 827) @@ -2,7 +2,7 @@ ## Copyright (c) 2009 Marek Januszewski ## Copyright (c) 2016 Sergio Baldoví -## $Id: installer.nsi.in 5434 2016-05-01 04:22:45Z fredm $ +## $Id: installer.nsi.in 5432 2016-05-01 04:16:09Z 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 Modified: vendor/fuse-emulator/current/fuse/debugger/Makefile.am =================================================================== --- vendor/fuse-emulator/current/fuse/debugger/Makefile.am 2016-09-30 12:48:19 UTC (rev 826) +++ vendor/fuse-emulator/current/fuse/debugger/Makefile.am 2016-10-03 04:43:11 UTC (rev 827) @@ -2,7 +2,7 @@ ## Copyright (c) 2001-2016 Philip Kendall ## Copyright (c) 2015 Sergio Baldoví -## $Id: Makefile.am 5677 2016-07-09 13:58:02Z fredm $ +## $Id: Makefile.am 5661 2016-07-01 19:00:28Z 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 Modified: vendor/fuse-emulator/current/fuse/debugger/commandl.l =================================================================== --- vendor/fuse-emulator/current/fuse/debugger/commandl.l 2016-09-30 12:48:19 UTC (rev 826) +++ vendor/fuse-emulator/current/fuse/debugger/commandl.l 2016-10-03 04:43:11 UTC (rev 827) @@ -2,7 +2,7 @@ Copyright (c) 2002-2016 Philip Kendall Copyright (c) 2015 Sergio Baldoví - $Id: commandl.l 5677 2016-07-09 13:58:02Z fredm $ + $Id: commandl.l 5661 2016-07-01 19:00:28Z 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 Modified: vendor/fuse-emulator/current/fuse/debugger/commandy.y =================================================================== --- vendor/fuse-emulator/current/fuse/debugger/commandy.y 2016-09-30 12:48:19 UTC (rev 826) +++ vendor/fuse-emulator/current/fuse/debugger/commandy.y 2016-10-03 04:43:11 UTC (rev 827) @@ -2,7 +2,7 @@ Copyright (c) 2002-2016 Philip Kendall Copyright (c) 2015 Sergio Baldoví - $Id: commandy.y 5677 2016-07-09 13:58:02Z fredm $ + $Id: commandy.y 5661 2016-07-01 19:00:28Z 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 Modified: vendor/fuse-emulator/current/fuse/display.c =================================================================== --- vendor/fuse-emulator/current/fuse/display.c 2016-09-30 12:48:19 UTC (rev 826) +++ vendor/fuse-emulator/current/fuse/display.c 2016-10-03 04:43:11 UTC (rev 827) @@ -100,9 +100,6 @@ /* Used to signify that we're redrawing the entire screen */ static int display_redraw_all; -/* Value used to signify a border line has more than one colour on it. */ -static const int display_border_mixed = 0xff; - /* The last point at which we updated the screen display */ int critical_region_x = 0, critical_region_y = 0; Modified: vendor/fuse-emulator/current/fuse/hacking/ChangeLog =================================================================== --- vendor/fuse-emulator/current/fuse/hacking/ChangeLog 2016-09-30 12:48:19 UTC (rev 826) +++ vendor/fuse-emulator/current/fuse/hacking/ChangeLog 2016-10-03 04:43:11 UTC (rev 827) @@ -5407,3 +5407,42 @@ (Sergio). 20160821 ChangeLog,README,configure.ac,man/fuse.1: update release dates and mark this release as 1.2.2 (Fred). +20160822 configure.ac: print summary of enabled features when building fuse + (patch #378) (Alberto Garcia). +20160822 ui/widget/{Makefile.am,about.c,menu.c,widget.[ch],widget_internals.h}: + add About Fuse dialog for widget UIs with less cluttered text (Sergio). +20160822 ui/widget/{debugger.c,filesel.c,options.pl,pokemem.c,text.c, + widget_internals.h}: set the length of text entry widgets on widget UIs + (Sergio). +20160823 ui/win32/options.pl: set the length of text entry widgets on win32 UI + (Sergio). +20160823 display.c,peripherals/disk/upd_fdc.c: fix compilation warnings (Phil). +20160823 input.[ch],keysyms.dat,keysyms.pl: integrate initial Recreated ZX + Spectrum patch (Sergio and ekkehard). +20160823 input.c,keysyms.dat: remove unused code (Phil). +20160825 input.c,man/fuse.1,settings.dat,ui/options.dat: add option to enable + the support of Recreated ZX Spectrum (Sergio). +20160825 keysyms.pl: support (hopefully) Recreated ZX Spectrum on win32 UI + (Sergio). +20160828 ui/win32/options-resource.pl: set the digit filter for text entry + widgets on win32 UI (Sergio). +20160828 peripherals/disk/disk.c: mark position_context_save() and + position_context_restore() as static (Fred). +20160906 z80/z80_debugger_variables.c: remove tautological comparison (Fred). +20160909 man/fuse.1: fix typos in Recreated ZX Spectrum option (Sergio). +20160909 data/shell-completion/bash/fuse: update shell completion with Recreated + ZX Spectrum option (Sergio). +20160910 input.h,keysyms.dat,keysyms.pl: allow the use of ~@\[]{}%?"_ symbol + characters in widget UIs (Sergio). +20160911 keyboard.c,keysyms.pl,ui/win32/{win32internals.h,win32keyboard.c, + win32ui.c}: map non-alphanumeric keys to appropriate spectrum + characters on win32 UI (fixes bug #361) (thanks, Lee Tonks) (Sergio). +20160911 keysyms.pl: detect more non-alphanumeric keys on win32 UI (more from + patches #358) (thanks, thrice) (Sergio). +20160920 man/fuse.1,plus3e-[012].rom: update to v1.43 of the +3e ROMs (Sergio). +20160920 peripherals/disk/beta.c: reset machine when auto-loading TRD/SCL disks + (fixes bug #358) (thanks, BogDan Vatra and Fred) (Sergio). +20160924 ChangeLog,README,configure.ac,man/fuse.1: bump versions to 1.3.0 + (Fred). +20160924 ChangeLog: tweak thanks for Recreated ZX feature and fix typo (Sergio). +20161002 ChangeLog,README,man/fuse.1: update release dates for 1.3.0 (Fred). Modified: vendor/fuse-emulator/current/fuse/hacking/Makefile.am =================================================================== --- vendor/fuse-emulator/current/fuse/hacking/Makefile.am 2016-09-30 12:48:19 UTC (rev 826) +++ vendor/fuse-emulator/current/fuse/hacking/Makefile.am 2016-10-03 04:43:11 UTC (rev 827) @@ -2,7 +2,7 @@ ## Copyright (c) 2002-2011 Philip Kendall ## Copyright (c) 2015 Sergio Baldoví -## $Id: Makefile.am 5434 2016-05-01 04:22:45Z fredm $ +## $Id: Makefile.am 5432 2016-05-01 04:16:09Z 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 Modified: vendor/fuse-emulator/current/fuse/input.c =================================================================== --- vendor/fuse-emulator/current/fuse/input.c 2016-09-30 12:48:19 UTC (rev 826) +++ vendor/fuse-emulator/current/fuse/input.c 2016-10-03 04:43:11 UTC (rev 827) @@ -61,11 +61,166 @@ } +static void +send_keyboard_press( input_key keysym ) +{ + const keyboard_spectrum_keys_t *ptr; + + ptr = keyboard_get_spectrum_keys( keysym ); + + if( ptr ) { + keyboard_press( ptr->key1 ); + keyboard_press( ptr->key2 ); + } +} + +static void +send_keyboard_release( input_key keysym ) +{ + const keyboard_spectrum_keys_t *ptr; + + ptr = keyboard_get_spectrum_keys( keysym ); + + if( ptr ) { + keyboard_release( ptr->key1 ); + keyboard_release( ptr->key2 ); + } +} + +static input_key +recreated_is_downkey( int code ) +{ + switch( code ) { + + case INPUT_KEY_a: return INPUT_KEY_1; + case INPUT_KEY_c: return INPUT_KEY_2; + case INPUT_KEY_e: return INPUT_KEY_3; + case INPUT_KEY_g: return INPUT_KEY_4; + case INPUT_KEY_i: return INPUT_KEY_5; + case INPUT_KEY_k: return INPUT_KEY_6; + case INPUT_KEY_m: return INPUT_KEY_7; + case INPUT_KEY_o: return INPUT_KEY_8; + case INPUT_KEY_q: return INPUT_KEY_9; + case INPUT_KEY_s: return INPUT_KEY_0; + case INPUT_KEY_u: return INPUT_KEY_q; + case INPUT_KEY_w: return INPUT_KEY_w; + case INPUT_KEY_y: return INPUT_KEY_e; + case INPUT_KEY_Shift_L | INPUT_KEY_a: return INPUT_KEY_r; + case INPUT_KEY_Shift_L | INPUT_KEY_c: return INPUT_KEY_t; + case INPUT_KEY_Shift_L | INPUT_KEY_e: return INPUT_KEY_y; + case INPUT_KEY_Shift_L | INPUT_KEY_g: return INPUT_KEY_u; + case INPUT_KEY_Shift_L | INPUT_KEY_i: return INPUT_KEY_i; + case INPUT_KEY_Shift_L | INPUT_KEY_k: return INPUT_KEY_o; + case INPUT_KEY_Shift_L | INPUT_KEY_m: return INPUT_KEY_p; + case INPUT_KEY_Shift_L | INPUT_KEY_o: return INPUT_KEY_a; + case INPUT_KEY_Shift_L | INPUT_KEY_q: return INPUT_KEY_s; + case INPUT_KEY_Shift_L | INPUT_KEY_s: return INPUT_KEY_d; + case INPUT_KEY_Shift_L | INPUT_KEY_u: return INPUT_KEY_f; + case INPUT_KEY_Shift_L | INPUT_KEY_w: return INPUT_KEY_g; + case INPUT_KEY_Shift_L | INPUT_KEY_y: return INPUT_KEY_h; + case INPUT_KEY_0: return INPUT_KEY_j; + case INPUT_KEY_2: return INPUT_KEY_k; + case INPUT_KEY_4: return INPUT_KEY_l; + case INPUT_KEY_6: return INPUT_KEY_Return; + case INPUT_KEY_8: return INPUT_KEY_Shift_L; + case INPUT_KEY_Shift_L | INPUT_KEY_comma: return INPUT_KEY_z; + case INPUT_KEY_minus: return INPUT_KEY_x; + case INPUT_KEY_bracketleft: return INPUT_KEY_c; + case INPUT_KEY_semicolon: return INPUT_KEY_v; + case INPUT_KEY_comma: return INPUT_KEY_b; + case INPUT_KEY_slash: return INPUT_KEY_n; + case INPUT_KEY_Shift_L | INPUT_KEY_bracketleft: return INPUT_KEY_m; + case INPUT_KEY_Shift_L | INPUT_KEY_1: return INPUT_KEY_Control_R; + case INPUT_KEY_Shift_L | INPUT_KEY_5: return INPUT_KEY_space; + + } + + return INPUT_KEY_NONE; +} + +static input_key +recreated_is_upkey( int code ) +{ + switch( code ) { + + case INPUT_KEY_b: return INPUT_KEY_1; + case INPUT_KEY_d: return INPUT_KEY_2; + case INPUT_KEY_f: return INPUT_KEY_3; + case INPUT_KEY_h: return INPUT_KEY_4; + case INPUT_KEY_j: return INPUT_KEY_5; + case INPUT_KEY_l: return INPUT_KEY_6; + case INPUT_KEY_n: return INPUT_KEY_7; + case INPUT_KEY_p: return INPUT_KEY_8; + case INPUT_KEY_r: return INPUT_KEY_9; + case INPUT_KEY_t: return INPUT_KEY_0; + case INPUT_KEY_v: return INPUT_KEY_q; + case INPUT_KEY_x: return INPUT_KEY_w; + case INPUT_KEY_z: return INPUT_KEY_e; + case INPUT_KEY_Shift_L | INPUT_KEY_b: return INPUT_KEY_r; + case INPUT_KEY_Shift_L | INPUT_KEY_d: return INPUT_KEY_t; + case INPUT_KEY_Shift_L | INPUT_KEY_f: return INPUT_KEY_y; + case INPUT_KEY_Shift_L | INPUT_KEY_h: return INPUT_KEY_u; + case INPUT_KEY_Shift_L | INPUT_KEY_j: return INPUT_KEY_i; + case INPUT_KEY_Shift_L | INPUT_KEY_l: return INPUT_KEY_o; + case INPUT_KEY_Shift_L | INPUT_KEY_n: return INPUT_KEY_p; + case INPUT_KEY_Shift_L | INPUT_KEY_p: return INPUT_KEY_a; + case INPUT_KEY_Shift_L | INPUT_KEY_r: return INPUT_KEY_s; + case INPUT_KEY_Shift_L | INPUT_KEY_t: return INPUT_KEY_d; + case INPUT_KEY_Shift_L | INPUT_KEY_v: return INPUT_KEY_f; + case INPUT_KEY_Shift_L | INPUT_KEY_x: return INPUT_KEY_g; + case INPUT_KEY_Shift_L | INPUT_KEY_z: return INPUT_KEY_h; + case INPUT_KEY_1: return INPUT_KEY_j; + case INPUT_KEY_3: return INPUT_KEY_k; + case INPUT_KEY_5: return INPUT_KEY_l; + case INPUT_KEY_7: return INPUT_KEY_Return; + case INPUT_KEY_9: return INPUT_KEY_Shift_L; + case INPUT_KEY_Shift_L | INPUT_KEY_period: return INPUT_KEY_z; + case INPUT_KEY_equal: return INPUT_KEY_x; + case INPUT_KEY_bracketright: return INPUT_KEY_c; + case INPUT_KEY_Shift_L | INPUT_KEY_semicolon: return INPUT_KEY_v; + case INPUT_KEY_period: return INPUT_KEY_b; + case INPUT_KEY_Shift_L | INPUT_KEY_slash: return INPUT_KEY_n; + case INPUT_KEY_Shift_L | INPUT_KEY_bracketright: return INPUT_KEY_m; + case INPUT_KEY_Shift_L | INPUT_KEY_4: return INPUT_KEY_Control_R; + case INPUT_KEY_Shift_L | INPUT_KEY_6: return INPUT_KEY_space; + + } + + return INPUT_KEY_NONE; +} + +static int recreated_key_down = 0; + +static void +recreated_keypress( input_key k ) +{ + input_key o; /* remapped key */ + + if( k == INPUT_KEY_Shift_L ) + recreated_key_down |= INPUT_KEY_Shift_L; + + if( k >= 0 && k < 256 ) + recreated_key_down = ( recreated_key_down & ~255 ) | k; + + o = recreated_is_upkey( recreated_key_down ); + if( o ) { + send_keyboard_release( o ); + recreated_key_down = 0; + return; + } + + o = recreated_is_downkey( recreated_key_down ); + if( o ) { + send_keyboard_press( o ); + recreated_key_down = 0; + return; + } +} + static int keypress( const input_event_key_t *event ) { int swallow; - const keyboard_spectrum_keys_t *ptr; if( ui_widget_level >= 0 ) { ui_widget_keyhandler( event->native_key ); @@ -98,11 +253,10 @@ if( swallow ) return 0; - ptr = keyboard_get_spectrum_keys( event->spectrum_key ); - - if( ptr ) { - keyboard_press( ptr->key1 ); - keyboard_press( ptr->key2 ); + if( settings_current.recreated_spectrum ) { + recreated_keypress( event->spectrum_key ); + } else { + send_keyboard_press( event->spectrum_key ); } ui_popup_menu( event->native_key ); @@ -113,13 +267,8 @@ static int keyrelease( const input_event_key_t *event ) { - const keyboard_spectrum_keys_t *ptr; - - ptr = keyboard_get_spectrum_keys( event->spectrum_key ); - - if( ptr ) { - keyboard_release( ptr->key1 ); - keyboard_release( ptr->key2 ); + if( !settings_current.recreated_spectrum ) { + send_keyboard_release( event->spectrum_key ); } /* Joystick emulation via keyboard keys */ Modified: vendor/fuse-emulator/current/fuse/input.h =================================================================== --- vendor/fuse-emulator/current/fuse/input.h 2016-09-30 12:48:19 UTC (rev 826) +++ vendor/fuse-emulator/current/fuse/input.h 2016-10-03 04:43:11 UTC (rev 827) @@ -50,10 +50,11 @@ INPUT_KEY_space = 0x20, INPUT_KEY_exclam, - - INPUT_KEY_numbersign = 0x23, + INPUT_KEY_quotedbl, + INPUT_KEY_numbersign, INPUT_KEY_dollar, - INPUT_KEY_ampersand = 0x26, + INPUT_KEY_percent, + INPUT_KEY_ampersand, INPUT_KEY_apostrophe, INPUT_KEY_parenleft, INPUT_KEY_parenright, @@ -80,6 +81,8 @@ INPUT_KEY_less, INPUT_KEY_equal, INPUT_KEY_greater, + INPUT_KEY_question, + INPUT_KEY_at, INPUT_KEY_A = 0x41, INPUT_KEY_B, @@ -107,9 +110,12 @@ INPUT_KEY_X, INPUT_KEY_Y, INPUT_KEY_Z, - + INPUT_KEY_bracketleft, + INPUT_KEY_backslash, + INPUT_KEY_bracketright, INPUT_KEY_asciicircum = 0x5e, INPUT_KEY_dead_circumflex = 0x5e, + INPUT_KEY_underscore = 0x5f, INPUT_KEY_a = 0x61, INPUT_KEY_b, @@ -137,8 +143,10 @@ INPUT_KEY_x, INPUT_KEY_y, INPUT_KEY_z, - - INPUT_KEY_bar = 0x7c, + INPUT_KEY_braceleft, + INPUT_KEY_bar, + INPUT_KEY_braceright, + INPUT_KEY_asciitilde, INPUT_KEY_BackSpace = 0x7f, INPUT_KEY_KP_Enter = 0x8d, Modified: vendor/fuse-emulator/current/fuse/keyboard.c =================================================================== --- vendor/fuse-emulator/current/fuse/keyboard.c 2016-09-30 12:48:19 UTC (rev 826) +++ vendor/fuse-emulator/current/fuse/keyboard.c 2016-10-03 04:43:11 UTC (rev 827) @@ -106,6 +106,14 @@ { INPUT_KEY_slash, { KEYBOARD_v, KEYBOARD_Symbol } }, { INPUT_KEY_Shift_R, { KEYBOARD_NONE, KEYBOARD_Caps } }, + { INPUT_KEY_asterisk, { KEYBOARD_b, KEYBOARD_Symbol } }, + { INPUT_KEY_dollar, { KEYBOARD_4, KEYBOARD_Symbol } }, + { INPUT_KEY_exclam, { KEYBOARD_1, KEYBOARD_Symbol } }, + { INPUT_KEY_less, { KEYBOARD_r, KEYBOARD_Symbol } }, + { INPUT_KEY_parenright, { KEYBOARD_9, KEYBOARD_Symbol } }, + { INPUT_KEY_colon, { KEYBOARD_z, KEYBOARD_Symbol } }, + { INPUT_KEY_plus, { KEYBOARD_k, KEYBOARD_Symbol } }, + { INPUT_KEY_Control_L, { KEYBOARD_NONE, KEYBOARD_Symbol } }, { INPUT_KEY_Alt_L, { KEYBOARD_NONE, KEYBOARD_Symbol } }, { INPUT_KEY_Meta_L, { KEYBOARD_NONE, KEYBOARD_Symbol } }, Modified: vendor/fuse-emulator/current/fuse/keysyms.dat =================================================================== --- vendor/fuse-emulator/current/fuse/keysyms.dat 2016-09-30 12:48:19 UTC (rev 826) +++ vendor/fuse-emulator/current/fuse/keysyms.dat 2016-10-03 04:43:11 UTC (rev 827) @@ -1,7 +1,7 @@ # keysyms.dat: data file for use by keysyms.pl to generate keysyms.c # Copyright (c) 2000-2001,2004 Philip Kendall, Matan Ziv-Av, Russell Marks -# $Id: keysyms.dat 4698 2012-05-07 02:38:35Z fredm $ +# $Id: keysyms.dat 5798 2016-09-10 15:22:31Z sbaldovi $ # 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 @@ -34,9 +34,10 @@ space exclam - +quotedbl numbersign dollar +percent ampersand apostrophe parenleft @@ -64,6 +65,8 @@ less equal greater +question +at A B @@ -92,8 +95,12 @@ Y Z +bracketleft +backslash +bracketright asciicircum dead_circumflex +underscore a b @@ -122,7 +129,10 @@ y z +braceleft bar +braceright +asciitilde BackSpace KP_Enter Modified: vendor/fuse-emulator/current/fuse/keysyms.pl =================================================================== --- vendor/fuse-emulator/current/fuse/keysyms.pl 2016-09-30 12:48:19 UTC (rev 826) +++ vendor/fuse-emulator/current/fuse/keysyms.pl 2016-10-03 04:43:11 UTC (rev 827) @@ -5,7 +5,7 @@ # Fredrick Meunier, Catalin Mihaila, Stuart Brady # Copyright (c) 2015 Sergio Baldoví -# $Id: keysyms.pl 5434 2016-05-01 04:22:45Z fredm $ +# $Id: keysyms.pl 5800 2016-09-11 06:21:58Z sbaldovi $ # 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 @@ -157,9 +157,10 @@ }, sdl => { headers => [ 'SDL.h' ], - max_length => 15, + max_length => 18, skips => { map { $_ => 1 } ( 'Hyper_L','Hyper_R','Caps_Lock', - 'A' .. 'Z', 'bar', 'dead_circumflex' ) }, + 'A' .. 'Z', 'asciitilde', 'bar', 'dead_circumflex', + 'braceleft', 'braceright', 'percent' ) }, unicode_skips => { map { $_ => 1 } qw( Hyper_L Hyper_R Caps_Lock Escape F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 BackSpace Tab Caps_Lock Return Shift_L Shift_R @@ -170,6 +171,8 @@ translations => { apostrophe => 'QUOTE', asciicircum => 'CARET', + bracketleft => 'LEFTBRACKET', + bracketright => 'RIGHTBRACKET', exclam => 'EXCLAIM', Control_L => 'LCTRL', Control_R => 'RCTRL', @@ -188,8 +191,18 @@ numbersign => '#', ampersand => "&", apostrophe => "'", + asciitilde => "~", + at => "@", + backslash => "\\\\", + braceleft => "{", + braceright => "}", + bracketleft => "[", + bracketright => "]", parenleft => "(", parenright => ")", + percent => "%", + question => "?", + quotedbl => '\\"', asterisk => "*", plus => "+", comma => ',', @@ -203,6 +216,7 @@ greater => '>', asciicircum => '^', bar => '|', + underscore => '_', }, function => \&sdl_keysym, unicode_function => \&sdl_unicode_keysym, @@ -244,18 +258,14 @@ 'dollar','less','greater','exclam', 'ampersand','parenleft','parenright', 'asterisk','plus','colon','bar', - 'asciicircum','dead_circumflex', + 'braceleft','braceright','bracketleft','bracketright', + 'apostrophe','asciicircum','dead_circumflex','asciitilde', + 'at','backslash','comma','equal','minus','numbersign', + 'percent','period','question','quotedbl', + 'semicolon','slash','underscore', 'A' .. 'Z' ) }, translations => { - numbersign => 'OEM_5', - apostrophe => 'OEM_7', - comma => 'OEM_COMMA', - minus => 'OEM_MINUS', - period => 'OEM_PERIOD', - slash => 'OEM_2', BackSpace => 'BACK', - semicolon => 'OEM_1', - equal => 'OEM_PLUS', Page_Up => 'PRIOR', Page_Down => 'NEXT', Caps_Lock => 'CAPITAL', @@ -376,13 +386,13 @@ for( my $i = 0; $i <= $#cooked_keysyms; $i++ ) { next unless defined $cooked_keysyms[$i] and $cooked_keysyms[$i] eq $ui_keysym; - printf " { %3i, INPUT_KEY_%-11s },\n", $i, $keysym; + printf " { %3i, INPUT_KEY_%-12s },\n", $i, $keysym; last; } } else { - printf " { %-$ui_data{$ui}{max_length}s INPUT_KEY_%-11s },\n", + printf " { %-$ui_data{$ui}{max_length}s INPUT_KEY_%-12s },\n", "$ui_keysym,", $keysym; } @@ -418,7 +428,7 @@ $ui_keysym = $ui_data{$ui}{unicode_function}->( $ui_keysym ); - printf " { %-$ui_data{$ui}{max_length}s INPUT_KEY_%-11s },\n", + printf " { %-$ui_data{$ui}{max_length}s INPUT_KEY_%-12s },\n", "$ui_keysym,", $keysym; } @@ -431,3 +441,46 @@ CODE } + +if( $ui eq 'win32' ) { + +print << "CODE"; +keysyms_map_t oem_keysyms_map[] = { + + { '&', INPUT_KEY_ampersand }, + { '\\'', INPUT_KEY_apostrophe }, + { '~', INPUT_KEY_asciitilde }, + { '*', INPUT_KEY_asterisk }, + { '\@', INPUT_KEY_at }, + { '\\\\', INPUT_KEY_backslash }, + { '|', INPUT_KEY_bar }, + { '{', INPUT_KEY_braceleft }, + { '}', INPUT_KEY_braceright }, + { '[', INPUT_KEY_bracketleft }, + { ']', INPUT_KEY_bracketright }, + { ':', INPUT_KEY_colon }, + { ',', INPUT_KEY_comma }, + { '\$', INPUT_KEY_dollar }, + { '=', INPUT_KEY_equal }, + { '!', INPUT_KEY_exclam }, + { '>', INPUT_KEY_greater }, + { '<', INPUT_KEY_less }, + { '-', INPUT_KEY_minus }, + { '#', INPUT_KEY_numbersign }, + { '(', INPUT_KEY_parenleft }, + { ')', INPUT_KEY_parenright }, + { '%', INPUT_KEY_percent }, + { '.', INPUT_KEY_period }, + { '+', INPUT_KEY_plus }, + { '?', INPUT_KEY_question }, + { '"', INPUT_KEY_quotedbl }, + { ';', INPUT_KEY_semicolon }, + { '/', INPUT_KEY_slash }, + { '_', INPUT_KEY_underscore }, + + { 0, 0 } /* End marker: DO NOT MOVE! */ + +}; + +CODE +} Modified: vendor/fuse-emulator/current/fuse/lib/Makefile.am =================================================================== --- vendor/fuse-emulator/current/fuse/lib/Makefile.am 2016-09-30 12:48:19 UTC (rev 826) +++ vendor/fuse-emulator/current/fuse/lib/Makefile.am 2016-10-03 04:43:11 UTC (rev 827) @@ -2,7 +2,7 @@ ## Copyright (c) 1999-2004 Philip Kendall ## Copyright (c) 2015 Sergio Baldoví -## $Id: Makefile.am 5537 2016-05-29 06:17:00Z sbaldovi $ +## $Id: Makefile.am 5536 2016-05-29 06:14:28Z sbaldovi $ ## 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 Modified: vendor/fuse-emulator/current/fuse/machines/Makefile.am =================================================================== --- vendor/fuse-emulator/current/fuse/machines/Makefile.am 2016-09-30 12:48:19 UTC (rev 826) +++ vendor/fuse-emulator/current/fuse/machines/Makefile.am 2016-10-03 04:43:11 UTC (rev 827) @@ -2,7 +2,7 @@ ## Copyright (c) 2004 Philip Kendall ## Copyright (c) 2015 Sergio Baldoví -## $Id: Makefile.am 5434 2016-05-01 04:22:45Z fredm $ +## $Id: Makefile.am 5432 2016-05-01 04:16:09Z 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 Modified: vendor/fuse-emulator/current/fuse/man/Makefile.am =================================================================== --- vendor/fuse-emulator/current/fuse/man/Makefile.am 2016-09-30 12:48:19 UTC (rev 826) +++ vendor/fuse-emulator/current/fuse/man/Makefile.am 2016-10-03 04:43:11 UTC (rev 827) @@ -2,7 +2,7 @@ ## Copyright (c) 1999-2002 Philip Kendall ## Copyright (c) 2015 Sergio Baldoví -## $Id: Makefile.am 5434 2016-05-01 04:22:45Z fredm $ +## $Id: Makefile.am 5432 2016-05-01 04:16:09Z 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 Modified: vendor/fuse-emulator/current/fuse/man/fuse.1 =================================================================== --- vendor/fuse-emulator/current/fuse/man/fuse.1 2016-09-30 12:48:19 UTC (rev 826) +++ vendor/fuse-emulator/current/fuse/man/fuse.1 2016-10-03 04:43:11 UTC (rev 827) @@ -23,7 +23,7 @@ .\" E-mail: phi...@sh... .\" .\" -.TH fuse 1 "21st August, 2016" "Version 1.2.2" "Emulators" +.TH fuse 1 "2nd October, 2016" "Version 1.3.0" "Emulators" .\" .\"------------------------------------------------------------------ .\" @@ -961,6 +961,15 @@ Specify an RZX file to begin recording to. .RE .PP +.B \-\-recreated\-spectrum +.RS +Enable the use of a Recreated ZX Spectrum. This is a Bluetooth keyboard +that can be paired to the device where Fuse is running. The same as +the General Options dialog's +.I "Recreated ZX Spectrum" +option. +.RE +.PP .B \-\-rom\-16 .I file .br @@ -1095,6 +1104,8 @@ .RI ( plus3\-0.rom ", " plus3\-1.rom ", " plus3\-2.rom " and " plus3\-3.rom ), the four ROMs for the +3 .RI ( plus3\-0.rom ", " plus3\-1.rom ", " plus3\-2.rom " and " plus3\-3.rom ), +the four enhanced ROMs for the +3e +.RI ( plus3e\-0.rom ", " plus3e\-1.rom ", " plus3e\-2.rom " and " plus3e\-3.rom ), the TC2048 ROM .RI ( tc2048.rom ), the two ROMs for the TC2068 @@ -2117,6 +2128,12 @@ you run them. .RE .PP +.I "Recreated ZX Spectrum" +.RS +Enable the use of a Recreated ZX Spectrum. This is a Bluetooth keyboard +that can be paired to the device where Fuse is running. +.RE +.PP .I "Allow writes to ROM" .RS If this option is selected, Fuse will happily allow programs to Modified: vendor/fuse-emulator/current/fuse/menu_data.dat =================================================================== --- vendor/fuse-emulator/current/fuse/menu_data.dat 2016-09-30 12:48:19 UTC (rev 826) +++ vendor/fuse-emulator/current/fuse/menu_data.dat 2016-10-03 04:43:11 UTC (rev 827) @@ -1,7 +1,7 @@ # menu_data.dat: Menu structure for Fuse # Copyright (c) 2004-2015 Philip Kendall -# $Id: menu_data.dat 5434 2016-05-01 04:22:45Z fredm $ +# $Id: menu_data.dat 5432 2016-05-01 04:16:09Z 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 Modified: vendor/fuse-emulator/current/fuse/menu_data.pl =================================================================== --- vendor/fuse-emulator/current/fuse/menu_data.pl 2016-09-30 12:48:19 UTC (rev 826) +++ vendor/fuse-emulator/current/fuse/menu_data.pl 2016-10-03 04:43:11 UTC (rev 827) @@ -3,7 +3,7 @@ # menu_data.pl: generate the menu structure from menu_data.dat # Copyright (c) 2004-2015 Philip Kendall, Stuart Brady, Marek Januszewski -# $Id: menu_data.pl 5434 2016-05-01 04:22:45Z fredm $ +# $Id: menu_data.pl 5432 2016-05-01 04:16:09Z 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 Modified: vendor/fuse-emulator/current/fuse/peripherals/Makefile.am =================================================================== --- vendor/fuse-emulator/current/fuse/peripherals/Makefile.am 2016-09-30 12:48:19 UTC (rev 826) +++ vendor/fuse-emulator/current/fuse/peripherals/Makefile.am 2016-10-03 04:43:11 UTC (rev 827) @@ -3,7 +3,7 @@ ## Copyright (c) 2015 Stuart Brady ## Copyright (c) 2015 Sergio Baldoví -## $Id: Makefile.am 5755 2016-08-17 12:10:38Z fredm $ +## $Id: Makefile.am 5746 2016-08-16 21:55:53Z sbaldovi $ ## 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 Modified: vendor/fuse-emulator/current/fuse/peripherals/disk/beta.c =================================================================== --- vendor/fuse-emulator/current/fuse/peripherals/disk/beta.c 2016-09-30 12:48:19 UTC (rev 826) +++ vendor/fuse-emulator/current/fuse/peripherals/disk/beta.c 2016-10-03 04:43:11 UTC (rev 827) @@ -392,9 +392,17 @@ static int ui_drive_autoload( void ) { - PC = 0; - machine_current->ram.last_byte |= 0x10; /* Select ROM 1 */ - beta_page(); + /* Clear AY registers (and more) from current machine */ + machine_reset(1); + + if( ( machine_current->capabilities & + LIBSPECTRUM_MACHINE_CAPABILITY_128_MEMORY ) || + !settings_current.beta128_48boot ) { + PC = 0; + machine_current->ram.last_byte |= 0x10; /* Select ROM 1 */ + beta_page(); + } + return 0; } Modified: vendor/fuse-emulator/current/fuse/peripherals/disk/didaktik.c =================================================================== --- vendor/fuse-emulator/current/fuse/peripherals/disk/didaktik.c 2016-09-30 12:48:19 UTC (rev 826) +++ vendor/fuse-emulator/current/fuse/peripherals/disk/didaktik.c 2016-10-03 04:43:11 UTC (rev 827) @@ -4,7 +4,7 @@ Copyright (c) 2016 Sergio Baldoví Copyright (c) 2016 Fredrick Meunier - $Id: didaktik.c 5677 2016-07-09 13:58:02Z fredm $ + $Id: didaktik.c 5670 2016-07-08 21:33:08Z 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 Modified: vendor/fuse-emulator/current/fuse/peripherals/disk/didaktik.h =================================================================== --- vendor/fuse-emulator/current/fuse/peripherals/disk/didaktik.h 2016-09-30 12:48:19 UTC (rev 826) +++ vendor/fuse-emulator/current/fuse/peripherals/disk/didaktik.h 2016-10-03 04:43:11 UTC (rev 827) @@ -1,7 +1,7 @@ /* didaktik.h: Routines for handling the Didaktik 40/80 disk interface Copyright (c) 2015 Gergely Szasz - $Id: didaktik.h 5677 2016-07-09 13:58:02Z fredm $ + $Id: didaktik.h 5670 2016-07-08 21:33:08Z 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 Modified: vendor/fuse-emulator/current/fuse/peripherals/disk/disk.c =================================================================== --- vendor/fuse-emulator/current/fuse/peripherals/disk/disk.c 2016-09-30 12:48:19 UTC (rev 826) +++ vendor/fuse-emulator/current/fuse/peripherals/disk/disk.c 2016-10-03 04:43:11 UTC (rev 827) @@ -134,7 +134,7 @@ return 0; } -void +static void position_context_save( const disk_t *d, disk_position_context_t *c ) { c->track = d->track; @@ -144,7 +144,7 @@ c->i = d->i; } -void +static void position_context_restore( disk_t *d, const disk_position_context_t *c ) { d->track = c->track; Modified: vendor/fuse-emulator/current/fuse/peripherals/disk/trdos.c =================================================================== --- vendor/fuse-emulator/current/fuse/peripherals/disk/trdos.c 2016-09-30 12:48:19 UTC (rev 826) +++ vendor/fuse-emulator/current/fuse/peripherals/disk/trdos.c 2016-10-03 04:43:11 UTC (rev 827) @@ -1,7 +1,7 @@ /* trdos.c: Routines for handling the TR-DOS filesystem Copyright (c) 2016 Sergio Baldoví - $Id: trdos.c 5755 2016-08-17 12:10:38Z fredm $ + $Id: trdos.c 5746 2016-08-16 21:55:53Z sbaldovi $ 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 Modified: vendor/fuse-emulator/current/fuse/peripherals/disk/trdos.h =================================================================== --- vendor/fuse-emulator/current/fuse/peripherals/disk/trdos.h 2016-09-30 12:48:19 UTC (rev 826) +++ vendor/fuse-emulator/current/fuse/peripherals/disk/trdos.h 2016-10-03 04:43:11 UTC (rev 827) @@ -1,7 +1,7 @@ /* trdos.h: Routines for handling the TR-DOS filesystem Copyright (c) 2016 Sergio Baldoví - $Id: trdos.h 5755 2016-08-17 12:10:38Z fredm $ + $Id: trdos.h 5746 2016-08-16 21:55:53Z sbaldovi $ 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 Modified: vendor/fuse-emulator/current/fuse/peripherals/disk/upd_fdc.c =================================================================== --- vendor/fuse-emulator/current/fuse/peripherals/disk/upd_fdc.c 2016-09-30 12:48:19 UTC (rev 826) +++ vendor/fuse-emulator/current/fuse/peripherals/disk/upd_fdc.c 2016-10-03 04:43:11 UTC (rev 827) @@ -35,10 +35,10 @@ #define MAX_SIZE_CODE 8 -static const int UPD_FDC_MAIN_DRV_0_SEEK = 0x01; -static const int UPD_FDC_MAIN_DRV_1_SEEK = 0x02; -static const int UPD_FDC_MAIN_DRV_2_SEEK = 0x04; -static const int UPD_FDC_MAIN_DRV_3_SEEK = 0x08; +/* static const int UPD_FDC_MAIN_DRV_0_SEEK = 0x01; */ +/* static const int UPD_FDC_MAIN_DRV_1_SEEK = 0x02; */ +/* static const int UPD_FDC_MAIN_DRV_2_SEEK = 0x04; */ +/* static const int UPD_FDC_MAIN_DRV_3_SEEK = 0x08; */ static const int UPD_FDC_MAIN_BUSY = 0x10; static const int UPD_FDC_MAIN_EXECUTION = 0x20; static const int UPD_FDC_MAIN_DATADIR = 0x40; @@ -49,9 +49,9 @@ static const int UPD_FDC_ST0_NOT_READY = 0x08; static const int UPD_FDC_ST0_EQUIP_CHECK = 0x10; static const int UPD_FDC_ST0_SEEK_END = 0x20; -static const int UPD_FDC_ST0_INT_NORMAL = 0x00; /* normal termination */ +/* static const int UPD_FDC_ST0_INT_NORMAL = 0x00; */ /* normal termination */ static const int UPD_FDC_ST0_INT_ABNORM = 0x40; /* abnormal termination */ -static const int UPD_FDC_ST0_INT_INVALID = 0x80; /* invalid command */ +/* static const int UPD_FDC_ST0_INT_INVALID = 0x80; */ /* invalid command */ static const int UPD_FDC_ST0_INT_READY = 0xc0; /* ready signal change */ static const int UPD_FDC_ST1_MISSING_AM = 0x01; @@ -70,7 +70,7 @@ static const int UPD_FDC_ST2_DATA_ERROR = 0x20; /* CRC error in data field */ static const int UPD_FDC_ST2_CONTROL_MARK= 0x40; -static const int UPD_FDC_ST3_TWO_SIDE = 0x08; +/* static const int UPD_FDC_ST3_TWO_SIDE = 0x08; */ static const int UPD_FDC_ST3_TR00 = 0x10; static const int UPD_FDC_ST3_READY = 0x20; static const int UPD_FDC_ST3_WRPROT = 0x40; Modified: vendor/fuse-emulator/current/fuse/peripherals/usource.c =================================================================== --- vendor/fuse-emulator/current/fuse/peripherals/usource.c 2016-09-30 12:48:19 UTC (rev 826) +++ vendor/fuse-emulator/current/fuse/peripherals/usource.c 2016-10-03 04:43:11 UTC (rev 827) @@ -2,7 +2,7 @@ Copyright (c) 2007-2016 Stuart Brady, Philip Kendall Copyright (c) 2016 Fredrick Meunier - $Id: usource.c 5677 2016-07-09 13:58:02Z fredm $ + $Id: usource.c 5670 2016-07-08 21:33:08Z 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 Modified: vendor/fuse-emulator/current/fuse/peripherals/usource.h =================================================================== --- vendor/fuse-emulator/current/fuse/peripherals/usource.h 2016-09-30 12:48:19 UTC (rev 826) +++ vendor/fuse-emulator/current/fuse/peripherals/usource.h 2016-10-03 04:43:11 UTC (rev 827) @@ -1,7 +1,7 @@ /* usource.h: Routines for handling the Currah uSource interface Copyright (c) 2007-2016 Stuart Brady, Philip Kendall - $Id: usource.h 5677 2016-07-09 13:58:02Z fredm $ + $Id: usource.h 5670 2016-07-08 21:33:08Z 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 Modified: vendor/fuse-emulator/current/fuse/perl/Makefile.am =================================================================== --- vendor/fuse-emulator/current/fuse/perl/Makefile.am 2016-09-30 12:48:19 UTC (rev 826) +++ vendor/fuse-emulator/current/fuse/perl/Makefile.am 2016-10-03 04:43:11 UTC (rev 827) @@ -2,7 +2,7 @@ ## Copyright (c) 2002 Philip Kendall ## Copyright (c) 2015 Sergio Baldoví -## $Id: Makefile.am 5434 2016-05-01 04:22:45Z fredm $ +## $Id: Makefile.am 5432 2016-05-01 04:16:09Z 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 Modified: vendor/fuse-emulator/current/fuse/pokefinder/Makefile.am =================================================================== --- vendor/fuse-emulator/current/fuse/pokefinder/Makefile.am 2016-09-30 12:48:19 UTC (rev 826) +++ vendor/fuse-emulator/current/fuse/pokefinder/Makefile.am 2016-10-03 04:43:11 UTC (rev 827) @@ -2,7 +2,7 @@ ## Copyright (c) 2003 Philip Kendall ## Copyright (c) 2015 Sergio Baldoví -## $Id: Makefile.am 5434 2016-05-01 04:22:45Z fredm $ +## $Id: Makefile.am 5432 2016-05-01 04:16:09Z 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 Modified: vendor/fuse-emulator/current/fuse/roms/Makefile.am =================================================================== --- vendor/fuse-emulator/current/fuse/roms/Makefile.am 2016-09-30 12:48:19 UTC (rev... [truncated message content] |
From: <fr...@us...> - 2016-09-30 12:48:21
|
Revision: 826 http://sourceforge.net/p/fuse-for-macosx/code/826 Author: fredm Date: 2016-09-30 12:48:19 +0000 (Fri, 30 Sep 2016) Log Message: ----------- Try to prevent collision between the tape open dialog and drawRect:. Modified Paths: -------------- trunk/fuse/fusepb/views/DisplayOpenGLView.m Modified: trunk/fuse/fusepb/views/DisplayOpenGLView.m =================================================================== --- trunk/fuse/fusepb/views/DisplayOpenGLView.m 2016-09-30 12:43:49 UTC (rev 825) +++ trunk/fuse/fusepb/views/DisplayOpenGLView.m 2016-09-30 12:48:19 UTC (rev 826) @@ -673,7 +673,9 @@ -(void) tapeOpen:(const char *)filename { + [view_lock lock]; [proxy_emulator tapeOpen:filename]; + [view_lock unlock]; } -(void) tapeWrite:(const char *)filename; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2016-09-30 12:43:51
|
Revision: 825 http://sourceforge.net/p/fuse-for-macosx/code/825 Author: fredm Date: 2016-09-30 12:43:49 +0000 (Fri, 30 Sep 2016) Log Message: ----------- Try to fix stuck keys when Tab is combined with Command and when window focus is lost (bugs# 22). Modified Paths: -------------- trunk/fuse/fusepb/models/Emulator.h trunk/fuse/fusepb/models/Emulator.m trunk/fuse/fusepb/views/DisplayOpenGLView.h trunk/fuse/fusepb/views/DisplayOpenGLView.m Modified: trunk/fuse/fusepb/models/Emulator.h =================================================================== --- trunk/fuse/fusepb/models/Emulator.h 2016-09-30 12:06:54 UTC (rev 824) +++ trunk/fuse/fusepb/models/Emulator.h 2016-09-30 12:43:49 UTC (rev 825) @@ -157,6 +157,7 @@ -(void) modifierChange:(input_event_type)theType oldState:(BOOL)old newState:(BOOL)new; -(void) flagsChanged:(NSEvent *)theEvent; -(input_key) otherKeysymsRemap:(libspectrum_dword)ui_keysym inHash:(GHashTable*)hash; +-(void) keyboardReleaseAll; -(void) keyChange:(NSEvent *)theEvent type:(input_event_type)type; -(void) keyDown:(NSEvent *)theEvent; -(void) keyUp:(NSEvent *)theEvent; Modified: trunk/fuse/fusepb/models/Emulator.m =================================================================== --- trunk/fuse/fusepb/models/Emulator.m 2016-09-30 12:06:54 UTC (rev 824) +++ trunk/fuse/fusepb/models/Emulator.m 2016-09-30 12:43:49 UTC (rev 825) @@ -665,6 +665,8 @@ [self modifierChange:INPUT_KEY_Alt_L oldState:optDown newState:optDownNew]; [self modifierChange:INPUT_KEY_Control_L oldState:ctrlDown newState:ctrlDownNew]; [self modifierChange:INPUT_KEY_Shift_L oldState:shiftDown newState:shiftDownNew]; + } else { + keyboard_release_all(); } optDown = optDownNew; @@ -719,6 +721,11 @@ } } +-(void) keyboardReleaseAll +{ + keyboard_release_all(); +} + -(void) keyChange:(NSEvent *)theEvent type:(input_event_type)type { if( [theEvent isARepeat] == YES ) return; Modified: trunk/fuse/fusepb/views/DisplayOpenGLView.h =================================================================== --- trunk/fuse/fusepb/views/DisplayOpenGLView.h 2016-09-30 12:06:54 UTC (rev 824) +++ trunk/fuse/fusepb/views/DisplayOpenGLView.h 2016-09-30 12:43:49 UTC (rev 825) @@ -221,6 +221,7 @@ -(void) windowWillMiniaturize:(NSNotification *)aNotification; -(void) windowDidMiniaturize:(NSNotification *)notification; -(BOOL) windowShouldClose:(id)window; +-(void) windowDidResignKey:(NSNotification *)notification; -(CVReturn) displayFrame:(const CVTimeStamp *)timeStamp; -(void) windowChangedScreen:(NSNotification*)inNotification; Modified: trunk/fuse/fusepb/views/DisplayOpenGLView.m =================================================================== --- trunk/fuse/fusepb/views/DisplayOpenGLView.m 2016-09-30 12:06:54 UTC (rev 824) +++ trunk/fuse/fusepb/views/DisplayOpenGLView.m 2016-09-30 12:43:49 UTC (rev 825) @@ -382,6 +382,11 @@ [self release]; } +- (void)windowDidResignKey:(NSNotification *)notification +{ + [proxy_emulator keyboardReleaseAll]; +} + -(void) loadPicture: (NSString *) name greenTex:(Texture*) greenTexture redTex:(Texture*) redTexture This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2016-09-30 12:06:55
|
Revision: 824 http://sourceforge.net/p/fuse-for-macosx/code/824 Author: fredm Date: 2016-09-30 12:06:54 +0000 (Fri, 30 Sep 2016) Log Message: ----------- Compilation fixes for Xcode 8. Modified Paths: -------------- trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj trunk/fuse/ui/cocoa/cocoaui.m Modified: trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj =================================================================== --- trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj 2016-08-23 04:28:56 UTC (rev 823) +++ trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj 2016-09-30 12:06:54 UTC (rev 824) @@ -274,6 +274,7 @@ B6DCBC97114FA67200DC9A11 /* snap_accessors.txt in Sources */ = {isa = PBXBuildFile; fileRef = B6DCBC16114FA1AF00DC9A11 /* snap_accessors.txt */; }; B6DDE53C0D67963600D6F905 /* ui.c in Sources */ = {isa = PBXBuildFile; fileRef = B6DDE53B0D67963600D6F905 /* ui.c */; }; B6E0252C0B38AFE500E23A0F /* keysyms.m in Sources */ = {isa = PBXBuildFile; fileRef = B6E0252B0B38AFE500E23A0F /* keysyms.m */; }; + B6E0CBA41D9E809000426949 /* unittests.c in Sources */ = {isa = PBXBuildFile; fileRef = B6E0CBA21D9E809000426949 /* unittests.c */; }; B6E1F19C14F6527300600EB0 /* pzx_read.c in Sources */ = {isa = PBXBuildFile; fileRef = B6E1F19B14F6527300600EB0 /* pzx_read.c */; }; B6E1F19E14F6528A00600EB0 /* utilities.c in Sources */ = {isa = PBXBuildFile; fileRef = B6E1F19D14F6528A00600EB0 /* utilities.c */; }; B6E1F1A114F652E300600EB0 /* pokemem.c in Sources */ = {isa = PBXBuildFile; fileRef = B6E1F19F14F652E300600EB0 /* pokemem.c */; }; @@ -281,7 +282,6 @@ B6E1F1AB14F653FB00600EB0 /* speccyboot.c in Sources */ = {isa = PBXBuildFile; fileRef = B6E1F1A714F653FB00600EB0 /* speccyboot.c */; }; B6E1F1AD14F653FB00600EB0 /* specdrum.c in Sources */ = {isa = PBXBuildFile; fileRef = B6E1F1A914F653FB00600EB0 /* specdrum.c */; }; B6E1F1B114F6555400600EB0 /* disciple.c in Sources */ = {isa = PBXBuildFile; fileRef = B6E1F1AF14F6555400600EB0 /* disciple.c */; }; - B6E1F24414F7A14200600EB0 /* enc28j60.c in Sources */ = {isa = PBXBuildFile; fileRef = B6E1F24214F7A14200600EB0 /* enc28j60.c */; }; B6E1F26E14F85BD500600EB0 /* speccyboot-1.4.rom in Resources */ = {isa = PBXBuildFile; fileRef = B6E1F26D14F85BD500600EB0 /* speccyboot-1.4.rom */; }; B6F047F60952A6D6006D8005 /* tape_se.szx in CopyFiles */ = {isa = PBXBuildFile; fileRef = B6F047F20952A6BA006D8005 /* tape_se.szx */; }; B6F047F70952A6D6006D8005 /* tape_ts2068.szx in CopyFiles */ = {isa = PBXBuildFile; fileRef = B6F047F30952A6BA006D8005 /* tape_ts2068.szx */; }; @@ -700,6 +700,8 @@ B6DDE5280D64D96E00D6F905 /* pentagon.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pentagon.h; sourceTree = "<group>"; }; B6DDE53B0D67963600D6F905 /* ui.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = ui.c; sourceTree = "<group>"; }; B6E0252B0B38AFE500E23A0F /* keysyms.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = keysyms.m; sourceTree = "<group>"; }; + B6E0CBA21D9E809000426949 /* unittests.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = unittests.c; sourceTree = "<group>"; }; + B6E0CBA31D9E809000426949 /* unittests.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = unittests.h; sourceTree = "<group>"; }; B6E1F19B14F6527300600EB0 /* pzx_read.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pzx_read.c; sourceTree = "<group>"; }; B6E1F19D14F6528A00600EB0 /* utilities.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = utilities.c; sourceTree = "<group>"; }; B6E1F19F14F652E300600EB0 /* pokemem.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pokemem.c; sourceTree = "<group>"; }; @@ -712,8 +714,6 @@ B6E1F1AA14F653FB00600EB0 /* specdrum.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = specdrum.h; sourceTree = "<group>"; }; B6E1F1AF14F6555400600EB0 /* disciple.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = disciple.c; sourceTree = "<group>"; }; B6E1F1B014F6555400600EB0 /* disciple.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = disciple.h; sourceTree = "<group>"; }; - B6E1F24214F7A14200600EB0 /* enc28j60.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = enc28j60.c; sourceTree = "<group>"; }; - B6E1F24314F7A14200600EB0 /* enc28j60.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = enc28j60.h; sourceTree = "<group>"; }; B6E1F26D14F85BD500600EB0 /* speccyboot-1.4.rom */ = {isa = PBXFileReference; lastKnownFileType = file; name = "speccyboot-1.4.rom"; path = "../roms/speccyboot-1.4.rom"; sourceTree = "<group>"; }; B6E811F0084B5117008CF718 /* profile.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = profile.c; path = ../profile.c; sourceTree = SOURCE_ROOT; }; B6E811F1084B5117008CF718 /* profile.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = profile.h; path = ../profile.h; sourceTree = SOURCE_ROOT; }; @@ -902,17 +902,18 @@ 29B97315FDCFA39411CA2CEA /* Other Sources */ = { isa = PBXGroup; children = ( - B6E1F19A14F6514000600EB0 /* peripherals */, B6DCBB5D114FA0E700DC9A11 /* libspectrum */, B63225E50C66B9D500BB081B /* compat */, B68CB2BC03DD91D800A804BA /* debugger */, F559859E038921E201A804BA /* fuse */, B68C32931D3BBEE50082CBD4 /* infrastructure */, B6AD8FE106221F7200C70D75 /* machines */, + B6E1F19A14F6514000600EB0 /* peripherals */, B64586CE059BC02C00934482 /* pokefinder */, B678E3E20608FAA600678A33 /* sound */, B63225EF0C66BA4B00BB081B /* timer */, F559859A038921CA01A804BA /* ui */, + B6E0CBA11D9E805900426949 /* unittests */, F559859C038921D601A804BA /* z80 */, F5598598038921C501A804BA /* config.h */, ); @@ -1361,6 +1362,15 @@ name = "Content Arrays"; sourceTree = "<group>"; }; + B6E0CBA11D9E805900426949 /* unittests */ = { + isa = PBXGroup; + children = ( + B6E0CBA21D9E809000426949 /* unittests.c */, + B6E0CBA31D9E809000426949 /* unittests.h */, + ); + path = unittests; + sourceTree = "<group>"; + }; B6E1F19A14F6514000600EB0 /* peripherals */ = { isa = PBXGroup; children = ( @@ -1405,8 +1415,6 @@ B6E1F24114F7A11C00600EB0 /* nic */ = { isa = PBXGroup; children = ( - B6E1F24214F7A14200600EB0 /* enc28j60.c */, - B6E1F24314F7A14200600EB0 /* enc28j60.h */, B69BE53D1660E02500C5D0CE /* w5100_internals.h */, B69BE53E1660E02500C5D0CE /* w5100_socket.c */, B69BE53F1660E02500C5D0CE /* w5100.c */, @@ -1807,6 +1815,7 @@ B61F469309121DF100C8096C /* profile.c in Sources */, B61F469409121DF100C8096C /* ide.c in Sources */, B6825549091817F30014B5EE /* divide.c in Sources */, + B6E0CBA41D9E809000426949 /* unittests.c in Sources */, B6403FD80A7E4B1A00E00B11 /* loader.c in Sources */, B6CE7F420B2830A300EB65B3 /* cocoajoystick.c in Sources */, B6CE7FCE0B28FBD600EB65B3 /* DisplayOpenGLView.m in Sources */, @@ -1898,7 +1907,6 @@ B6E1F1AB14F653FB00600EB0 /* speccyboot.c in Sources */, B6E1F1AD14F653FB00600EB0 /* specdrum.c in Sources */, B6E1F1B114F6555400600EB0 /* disciple.c in Sources */, - B6E1F24414F7A14200600EB0 /* enc28j60.c in Sources */, B61700F7163EAFC600142336 /* PokeMemoryController.m in Sources */, B69BE5331660DF5300C5D0CE /* socket.c in Sources */, B69BE5381660DF8B00C5D0CE /* movie.c in Sources */, Modified: trunk/fuse/ui/cocoa/cocoaui.m =================================================================== --- trunk/fuse/ui/cocoa/cocoaui.m 2016-08-23 04:28:56 UTC (rev 823) +++ trunk/fuse/ui/cocoa/cocoaui.m 2016-09-30 12:06:54 UTC (rev 824) @@ -155,3 +155,9 @@ withObject:nil waitUntilDone:NO]; } + +int +ui_get_rollback_point( GSList *points ) +{ + return -1; +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2016-08-23 04:28:58
|
Revision: 823 http://sourceforge.net/p/fuse-for-macosx/code/823 Author: fredm Date: 2016-08-23 04:28:56 +0000 (Tue, 23 Aug 2016) Log Message: ----------- Tag release 1.2.2 Added Paths: ----------- tags/Release-1_2_2/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2016-08-23 04:00:15
|
Revision: 822 http://sourceforge.net/p/fuse-for-macosx/code/822 Author: fredm Date: 2016-08-23 04:00:11 +0000 (Tue, 23 Aug 2016) Log Message: ----------- Merge up to vendor release 1.2.2. Modified Paths: -------------- trunk/FuseGenerator/English.lproj/InfoPlist.strings trunk/FuseGenerator/FuseGenerator.xcodeproj/project.pbxproj trunk/FuseGenerator/Info.plist trunk/FuseGenerator/libspectrum.h trunk/FuseImporter/English.lproj/InfoPlist.strings trunk/FuseImporter/FuseImporter.xcodeproj/project.pbxproj trunk/FuseImporter/GetMetadataForFile.h trunk/FuseImporter/Info.plist trunk/FuseImporter/libspectrum.h trunk/fuse/ChangeLog trunk/fuse/Makefile.am trunk/fuse/README trunk/fuse/configure.ac trunk/fuse/debugger/breakpoint.c trunk/fuse/fusepb/English.lproj/InfoPlist.strings trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj trunk/fuse/fusepb/Info-Fuse.plist trunk/fuse/fusepb/config.h trunk/fuse/fusepb/controllers/FuseController.m trunk/fuse/fusepb/libspectrum.h trunk/fuse/fusepb/resources/Fuse Help/Fuse Help.helpindex trunk/fuse/fusepb/resources/Fuse Help/html/changelog.html trunk/fuse/fusepb/resources/Fuse Help/html/compressed.html trunk/fuse/fusepb/resources/Fuse Help/html/formats.html trunk/fuse/hacking/ChangeLog trunk/fuse/lib/compressed/disk_plus3.szx trunk/fuse/lib/uncompressed/disk_plus3.szx trunk/fuse/machines/specplus3.c trunk/fuse/man/fuse.1 trunk/fuse/peripherals/Makefile.am trunk/fuse/peripherals/disk/disk.c trunk/fuse/peripherals/disk/disk.h trunk/fuse/peripherals/disk/upd_fdc.c trunk/fuse/sound/coreaudiosound.c trunk/fuse/tape.c trunk/fuse/ui/gtk/fileselector.c trunk/fuse/ui/options.dat trunk/fuse/ui/widget/browse.c trunk/fuse/ui/win32/fileselector.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.ac trunk/libspectrum/libspectrum/doc/libspectrum.3 trunk/libspectrum/libspectrum/doc/libspectrum.txt trunk/libspectrum/libspectrum/hacking/ChangeLog trunk/libspectrum/libspectrum/internals.h trunk/libspectrum/libspectrum/libspectrum.c trunk/libspectrum/libspectrum/libspectrum.h.in trunk/libspectrum/libspectrum/pzx_read.c trunk/libspectrum/libspectrum/tape.c trunk/libspectrum/libspectrum/tape_block.c trunk/libspectrum/libspectrum/tape_block.h trunk/libspectrum/libspectrum/test/Makefile.am trunk/libspectrum/libspectrum/test/test.c trunk/libspectrum/libspectrum/test/test.h trunk/libspectrum/libspectrum/tzx_write.c trunk/libspectrum/libspectrum/utilities.c trunk/libspectrum/libspectrum/zlib.c trunk/libspectrum/libspectrum.h trunk/libspectrum/libspectrum.xcodeproj/project.pbxproj Added Paths: ----------- trunk/fuse/peripherals/disk/trdos.c trunk/fuse/peripherals/disk/trdos.h trunk/libspectrum/libspectrum/test/no-pilot-gdb.tzx trunk/libspectrum/libspectrum/test/test_edges.c trunk/libspectrum/libspectrum/test/zero-tail.pzx trunk/libspectrum/libspectrum/zip.c trunk/libspectrum/libspectrum/zip.h Removed Paths: ------------- trunk/fuse/m4/glib-2.0.m4 trunk/fuse/m4/libxml.m4 trunk/libspectrum/libspectrum/test/test15.c Property Changed: ---------------- trunk/fuse/ trunk/libspectrum/libspectrum/ Modified: trunk/FuseGenerator/English.lproj/InfoPlist.strings =================================================================== (Binary files differ) Modified: trunk/FuseGenerator/FuseGenerator.xcodeproj/project.pbxproj =================================================================== --- trunk/FuseGenerator/FuseGenerator.xcodeproj/project.pbxproj 2016-08-22 12:00:26 UTC (rev 821) +++ trunk/FuseGenerator/FuseGenerator.xcodeproj/project.pbxproj 2016-08-23 04:00:11 UTC (rev 822) @@ -16,6 +16,8 @@ B63944FB0D18C7C30059DAA5 /* tape_accessors.txt in Sources */ = {isa = PBXBuildFile; fileRef = B6D30B2E0D162B910036CC54 /* tape_accessors.txt */; }; B63944FC0D18C7C30059DAA5 /* snap_accessors.txt in Sources */ = {isa = PBXBuildFile; fileRef = B6D30B2C0D162B810036CC54 /* snap_accessors.txt */; }; B63945090D18CA120059DAA5 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B63945080D18CA120059DAA5 /* Cocoa.framework */; }; + B64AC83B1D6B2D5C0024E7FE /* zip.c in Sources */ = {isa = PBXBuildFile; fileRef = B64AC8391D6B2D5C0024E7FE /* zip.c */; }; + B64AC83C1D6B2D5C0024E7FE /* zip.h in Headers */ = {isa = PBXBuildFile; fileRef = B64AC83A1D6B2D5C0024E7FE /* zip.h */; }; B67F1E790E93A39800246616 /* garray.c in Sources */ = {isa = PBXBuildFile; fileRef = B67F1E780E93A39800246616 /* garray.c */; }; B67F1E7B0E93A3AF00246616 /* memory.c in Sources */ = {isa = PBXBuildFile; fileRef = B67F1E7A0E93A3AF00246616 /* memory.c */; }; B6D30AE60D1627ED0036CC54 /* bzip2.c in Sources */ = {isa = PBXBuildFile; fileRef = B6D30AE50D1627ED0036CC54 /* bzip2.c */; }; @@ -111,6 +113,8 @@ B63944A90D18B0430059DAA5 /* LibspectrumSCRExtractor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LibspectrumSCRExtractor.m; sourceTree = "<group>"; }; B63944CB0D18C1CD0059DAA5 /* config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = config.h; sourceTree = SOURCE_ROOT; }; B63945080D18CA120059DAA5 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; }; + B64AC8391D6B2D5C0024E7FE /* zip.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip.c; path = ../../libspectrum/libspectrum/zip.c; sourceTree = "<group>"; }; + B64AC83A1D6B2D5C0024E7FE /* zip.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = zip.h; path = ../../libspectrum/libspectrum/zip.h; sourceTree = "<group>"; }; B67F1E780E93A39800246616 /* garray.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = garray.c; path = ../../../libspectrum/libspectrum/myglib/garray.c; sourceTree = "<group>"; }; B67F1E7A0E93A3AF00246616 /* memory.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = memory.c; path = ../../libspectrum/libspectrum/memory.c; sourceTree = "<group>"; }; B6D30AE30D1627C90036CC54 /* libspectrum.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = libspectrum.h; path = ../libspectrum.h; sourceTree = "<group>"; }; @@ -283,6 +287,8 @@ B6D30B170D1629C20036CC54 /* z80.c */, B6D30B180D1629C20036CC54 /* z80em.c */, B6D30B190D1629C20036CC54 /* zlib.c */, + B64AC8391D6B2D5C0024E7FE /* zip.c */, + B64AC83A1D6B2D5C0024E7FE /* zip.h */, B6D30B1A0D1629C20036CC54 /* zxs.c */, ); path = libspectrum; @@ -328,6 +334,7 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( + B64AC83C1D6B2D5C0024E7FE /* zip.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -419,6 +426,7 @@ B6D30AEC0D16280E0036CC54 /* creator.c in Sources */, B6D30AED0D16280E0036CC54 /* crypto.c in Sources */, B6D30AEE0D16280E0036CC54 /* csw.c in Sources */, + B64AC83B1D6B2D5C0024E7FE /* zip.c in Sources */, B6D30AEF0D16280E0036CC54 /* dck.c in Sources */, B6D30AF40D1628470036CC54 /* ide.c in Sources */, B6D30AF60D1628470036CC54 /* libspectrum.c in Sources */, @@ -484,13 +492,13 @@ GCC_PRECOMPILE_PREFIX_HEADER = NO; INFOPLIST_FILE = Info.plist; INSTALL_PATH = /Library/QuickLook; + LLVM_LTO = YES; OTHER_LDFLAGS = ( "-lbz2", "-lz", ); PRODUCT_BUNDLE_IDENTIFIER = "net.sourceforge.projects.fuse-emulator.quicklookgenerator"; PRODUCT_NAME = FuseGenerator; - VALID_ARCHS = "ppc x86_64 i386"; WRAPPER_EXTENSION = qlgenerator; ZERO_LINK = YES; }; @@ -509,13 +517,13 @@ GCC_WARN_UNUSED_VALUE = YES; INFOPLIST_FILE = Info.plist; INSTALL_PATH = /Library/QuickLook; + LLVM_LTO = YES; OTHER_LDFLAGS = ( "-lbz2", "-lz", ); PRODUCT_BUNDLE_IDENTIFIER = "net.sourceforge.projects.fuse-emulator.quicklookgenerator"; PRODUCT_NAME = FuseGenerator; - VALID_ARCHS = "ppc x86_64 i386"; WARNING_CFLAGS = ( "-Wmost", "-Wno-four-char-constants", Modified: trunk/FuseGenerator/Info.plist =================================================================== --- trunk/FuseGenerator/Info.plist 2016-08-22 12:00:26 UTC (rev 821) +++ trunk/FuseGenerator/Info.plist 2016-08-23 04:00:11 UTC (rev 822) @@ -59,7 +59,7 @@ <key>CFBundleShortVersionString</key> <string>1</string> <key>CFBundleVersion</key> - <string>1.2</string> + <string>1.2.2</string> <key>CFPlugInDynamicRegisterFunction</key> <string></string> <key>CFPlugInDynamicRegistration</key> Modified: trunk/FuseGenerator/libspectrum.h =================================================================== --- trunk/FuseGenerator/libspectrum.h 2016-08-22 12:00:26 UTC (rev 821) +++ trunk/FuseGenerator/libspectrum.h 2016-08-23 04:00:11 UTC (rev 822) @@ -1,7 +1,7 @@ /* libspectrum.h: the library for dealing with ZX Spectrum emulator files Copyright (c) 2001-2015 Philip Kendall, Darren Salt, Fredrick Meunier - $Id: libspectrum.h.in 5422 2016-04-29 12:54:59Z fredm $ + $Id: libspectrum.h.in 5733 2016-08-14 12:45:40Z 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 @@ -421,6 +421,10 @@ LIBSPECTRUM_ID_DISK_D80, /* .d80/.d40 Didaktik disk image */ + /* Below here, present only in 1.2.2 and later */ + + LIBSPECTRUM_ID_COMPRESSED_ZIP, /* zip compressed file */ + LIBSPECTRUM_ID_SCREEN_SCR, /* .scr screen file */ } libspectrum_id_t; Modified: trunk/FuseImporter/English.lproj/InfoPlist.strings =================================================================== (Binary files differ) Modified: trunk/FuseImporter/FuseImporter.xcodeproj/project.pbxproj =================================================================== --- trunk/FuseImporter/FuseImporter.xcodeproj/project.pbxproj 2016-08-22 12:00:26 UTC (rev 821) +++ trunk/FuseImporter/FuseImporter.xcodeproj/project.pbxproj 2016-08-23 04:00:11 UTC (rev 822) @@ -20,6 +20,8 @@ B69709730827C03F00904D8F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B69709720827C03F00904D8F /* Foundation.framework */; }; B69709CD082829BC00904D8F /* LibspectrumMetadataImporter.h in Headers */ = {isa = PBXBuildFile; fileRef = B69709CB082829BC00904D8F /* LibspectrumMetadataImporter.h */; }; B69709CE082829BC00904D8F /* LibspectrumMetadataImporter.m in Sources */ = {isa = PBXBuildFile; fileRef = B69709CC082829BC00904D8F /* LibspectrumMetadataImporter.m */; }; + B69D8D491D6B2FB70031BAFC /* zip.c in Sources */ = {isa = PBXBuildFile; fileRef = B69D8D471D6B2FB70031BAFC /* zip.c */; }; + B69D8D4A1D6B2FB70031BAFC /* zip.h in Headers */ = {isa = PBXBuildFile; fileRef = B69D8D481D6B2FB70031BAFC /* zip.h */; }; B6ACE4F2082BE15800B40758 /* GetMetadataForFile.h in Headers */ = {isa = PBXBuildFile; fileRef = B6ACE4F1082BE15800B40758 /* GetMetadataForFile.h */; }; B6BF29F90A5FFCC200D16624 /* ghash.c in Sources */ = {isa = PBXBuildFile; fileRef = B6BF29F80A5FFCC200D16624 /* ghash.c */; }; B6BF29FD0A5FFCD700D16624 /* gslist.c in Sources */ = {isa = PBXBuildFile; fileRef = B6BF29FC0A5FFCD700D16624 /* gslist.c */; }; @@ -126,6 +128,8 @@ B69709720827C03F00904D8F /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; }; B69709CB082829BC00904D8F /* LibspectrumMetadataImporter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LibspectrumMetadataImporter.h; sourceTree = "<group>"; }; B69709CC082829BC00904D8F /* LibspectrumMetadataImporter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LibspectrumMetadataImporter.m; sourceTree = "<group>"; }; + B69D8D471D6B2FB70031BAFC /* zip.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip.c; path = ../../libspectrum/libspectrum/zip.c; sourceTree = "<group>"; }; + B69D8D481D6B2FB70031BAFC /* zip.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = zip.h; path = ../../libspectrum/libspectrum/zip.h; sourceTree = "<group>"; }; B6ACE4F1082BE15800B40758 /* GetMetadataForFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GetMetadataForFile.h; sourceTree = "<group>"; }; B6BF29F80A5FFCC200D16624 /* ghash.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = ghash.c; sourceTree = "<group>"; }; B6BF29FC0A5FFCD700D16624 /* gslist.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = gslist.c; sourceTree = "<group>"; }; @@ -274,6 +278,8 @@ B6BF2A170A5FFD0100D16624 /* z80.c */, B639B7920A6BB2C100927E24 /* z80em.c */, B6BF2A180A5FFD0100D16624 /* zlib.c */, + B69D8D471D6B2FB70031BAFC /* zip.c */, + B69D8D481D6B2FB70031BAFC /* zip.h */, B6BF2A190A5FFD0100D16624 /* zxs.c */, ); path = libspectrum; @@ -297,6 +303,7 @@ buildActionMask = 2147483647; files = ( B69709CD082829BC00904D8F /* LibspectrumMetadataImporter.h in Headers */, + B69D8D4A1D6B2FB70031BAFC /* zip.h in Headers */, B6ACE4F2082BE15800B40758 /* GetMetadataForFile.h in Headers */, B6BF2A1B0A5FFD0100D16624 /* config.h in Headers */, B6BF2A200A5FFD0100D16624 /* internals.h in Headers */, @@ -420,6 +427,7 @@ B6BF2A350A5FFD0100D16624 /* zxs.c in Sources */, B639B7930A6BB2C100927E24 /* z80em.c in Sources */, B62C1CD00B761515000BA4E0 /* symbol_table.c in Sources */, + B69D8D491D6B2FB70031BAFC /* zip.c in Sources */, B61617260C1CE2980009ADF9 /* csw.c in Sources */, B616172A0C1CE2A50009ADF9 /* wav.c in Sources */, B61E31AF0E925C66008097AC /* memory.c in Sources */, @@ -475,6 +483,7 @@ INFOPLIST_FILE = Info.plist; INSTALL_PATH = /Library/Spotlight; LIBRARY_STYLE = Bundle; + LLVM_LTO = YES; OTHER_CFLAGS = ""; OTHER_LDFLAGS = ( "-lbz2", @@ -509,6 +518,7 @@ INFOPLIST_FILE = Info.plist; INSTALL_PATH = /Library/Spotlight; LIBRARY_STYLE = Bundle; + LLVM_LTO = YES; OTHER_CFLAGS = ""; OTHER_LDFLAGS = ( "-lbz2", @@ -542,6 +552,7 @@ INFOPLIST_FILE = Info.plist; INSTALL_PATH = /Library/Spotlight; LIBRARY_STYLE = Bundle; + LLVM_LTO = YES; OTHER_CFLAGS = ""; OTHER_LDFLAGS = ( "-lbz2", @@ -582,6 +593,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; + LLVM_LTO = YES; MACOSX_DEPLOYMENT_TARGET = 10.8; ONLY_ACTIVE_ARCH = YES; SDKROOT = macosx; @@ -609,6 +621,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; + LLVM_LTO = YES; MACOSX_DEPLOYMENT_TARGET = 10.8; SDKROOT = macosx; }; @@ -634,6 +647,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; + LLVM_LTO = YES; MACOSX_DEPLOYMENT_TARGET = 10.8; SDKROOT = macosx; }; Modified: trunk/FuseImporter/GetMetadataForFile.h =================================================================== --- trunk/FuseImporter/GetMetadataForFile.h 2016-08-22 12:00:26 UTC (rev 821) +++ trunk/FuseImporter/GetMetadataForFile.h 2016-08-23 04:00:11 UTC (rev 822) @@ -22,7 +22,7 @@ */ #ifndef GETMETADATAFORFILE_H -#define GETMETADATAFOR_FILE_H +#define GETMETADATAFORFILE_H #include <CoreFoundation/CoreFoundation.h> #include <CoreFoundation/CFPlugInCOM.h> Modified: trunk/FuseImporter/Info.plist =================================================================== --- trunk/FuseImporter/Info.plist 2016-08-22 12:00:26 UTC (rev 821) +++ trunk/FuseImporter/Info.plist 2016-08-23 04:00:11 UTC (rev 822) @@ -57,7 +57,7 @@ <key>CFBundleInfoDictionaryVersion</key> <string>6.0</string> <key>CFBundleVersion</key> - <string>1.2</string> + <string>1.2.2</string> <key>CFPlugInDynamicRegisterFunction</key> <string></string> <key>CFPlugInDynamicRegistration</key> Modified: trunk/FuseImporter/libspectrum.h =================================================================== --- trunk/FuseImporter/libspectrum.h 2016-08-22 12:00:26 UTC (rev 821) +++ trunk/FuseImporter/libspectrum.h 2016-08-23 04:00:11 UTC (rev 822) @@ -1,7 +1,7 @@ /* libspectrum.h: the library for dealing with ZX Spectrum emulator files Copyright (c) 2001-2015 Philip Kendall, Darren Salt, Fredrick Meunier - $Id: libspectrum.h.in 5422 2016-04-29 12:54:59Z fredm $ + $Id: libspectrum.h.in 5733 2016-08-14 12:45:40Z 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 @@ -421,6 +421,10 @@ LIBSPECTRUM_ID_DISK_D80, /* .d80/.d40 Didaktik disk image */ + /* Below here, present only in 1.2.2 and later */ + + LIBSPECTRUM_ID_COMPRESSED_ZIP, /* zip compressed file */ + LIBSPECTRUM_ID_SCREEN_SCR, /* .scr screen file */ } libspectrum_id_t; Index: trunk/fuse =================================================================== --- trunk/fuse 2016-08-22 12:00:26 UTC (rev 821) +++ trunk/fuse 2016-08-23 04:00:11 UTC (rev 822) Property changes on: trunk/fuse ___________________________________________________________________ Modified: svn:mergeinfo ## -1,5 +1,5 ## /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-816 +/vendor/fuse-emulator/current/fuse:530-821 /vendor/fuse-emulator/fuse-1.0.0a/fuse:668-669 /vendor/fuse-emulator/fuse-r4617/fuse:686 \ No newline at end of property Modified: trunk/fuse/ChangeLog =================================================================== --- trunk/fuse/ChangeLog 2016-08-22 12:00:26 UTC (rev 821) +++ trunk/fuse/ChangeLog 2016-08-23 04:00:11 UTC (rev 822) @@ -1,3 +1,29 @@ +2016-08-21 Philip Kendall <phi...@sh...> + + * Fuse 1.2.2 released. + + * New features: + * Support loading first tape, snapshot, dock cartridge or RZX file + found inside .zip files (Patrik Rak and Sergio Baldoví). + * Support auto-booting TR-DOS disk images without a boot file (thanks, + windale, BogDan Vatra and Fredrick Meunier) (Sergio Baldoví). + + * Emulation core improvements: + * Change microphone state when 0 tstate pulses do not have the no edge + flag set (Fredrick Meunier). + + * Machine specific improvements: + * Fix +3 disk autoload (thanks, windale and BogDan Vatra) (Sergio + Baldoví and Fredrick Meunier). + * Fix floppy drive selection when resetting a +3 (thanks, windale and + BogDan Vatra) (Sergio Baldoví). + + * Miscellaneous improvements: + * WidgetUI: Use description for tape blocks where available (Fredrick + Meunier). + * Use pkg-config to detect libpng and libxml2 (Alberto Garcia). + * Various minor bugfixes. + 2016-07-17 Philip Kendall <phi...@sh...> * Fuse 1.2.1 released. @@ -1325,4 +1351,4 @@ * Version 0.1.0 released. -$Id: ChangeLog 5686 2016-07-17 10:37:50Z fredm $ +$Id: ChangeLog 5761 2016-08-21 05:10:02Z fredm $ Modified: trunk/fuse/Makefile.am =================================================================== --- trunk/fuse/Makefile.am 2016-08-22 12:00:26 UTC (rev 821) +++ trunk/fuse/Makefile.am 2016-08-23 04:00:11 UTC (rev 822) @@ -1,7 +1,7 @@ ## Process this file with automake to produce Makefile.in ## Copyright (c) 1999-2015 Philip Kendall -## $Id: Makefile.am 5677 2016-07-09 13:58:02Z fredm $ +## $Id: Makefile.am 5735 2016-08-14 13:02: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 @@ -133,9 +133,7 @@ keysyms.pl \ m4/ax_create_stdint_h.m4 \ m4/ax_pthread.m4 \ - m4/glib-2.0.m4 \ m4/gtk-2.0.m4 \ - m4/libxml.m4 \ m4/pkg.m4 \ m4/sdl.m4 \ menu_data.dat \ Modified: trunk/fuse/README =================================================================== --- trunk/fuse/README 2016-08-22 12:00:26 UTC (rev 821) +++ trunk/fuse/README 2016-08-23 04:00:11 UTC (rev 822) @@ -1,4 +1,4 @@ -The Free Unix Spectrum Emulator (Fuse) 1.2.1 +The Free Unix Spectrum Emulator (Fuse) 1.2.2 ============================================ Fuse (the Free Unix Spectrum Emulator) was originally, and somewhat @@ -108,6 +108,6 @@ <http://www.worldofspectrum.org/forums/>. Philip Kendall <phi...@sh...> -17th July, 2016 +21st August, 2016 -$Id: README 5686 2016-07-17 10:37:50Z fredm $ +$Id: README 5761 2016-08-21 05:10:02Z fredm $ Modified: trunk/fuse/configure.ac =================================================================== --- trunk/fuse/configure.ac 2016-08-22 12:00:26 UTC (rev 821) +++ trunk/fuse/configure.ac 2016-08-23 04:00:11 UTC (rev 822) @@ -1,5 +1,5 @@ dnl Process this file with autoconf to produce a configure script. -dnl $Id: configure.ac 5686 2016-07-17 10:37:50Z fredm $ +dnl $Id: configure.ac 5761 2016-08-21 05:10:02Z fredm $ 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 @@ -20,12 +20,12 @@ dnl E-mail: phi...@sh... dnl Package version -m4_define([fuse_version], [1.2.1]) +m4_define([fuse_version], [1.2.2]) dnl Product full version m4_define([fuse_major_version], [1]) m4_define([fuse_minor_version], [2]) -m4_define([fuse_micro_version], [1]) +m4_define([fuse_micro_version], [2]) m4_define([fuse_nano_version], [0]) m4_define([fuse_full_version], [fuse_major_version.fuse_minor_version.fuse_micro_version.fuse_nano_version]) m4_define([fuse_rc_version], [fuse_major_version,fuse_minor_version,fuse_micro_version,fuse_nano_version]) @@ -507,40 +507,17 @@ libpng=yes) AC_MSG_RESULT($libpng) if test "$libpng" = yes; then - AC_PATH_PROG([LIBPNG_CONFIG], [libpng-config]) - if test -n "$LIBPNG_CONFIG"; then - PNG_CFLAGS=`libpng-config --cflags` - PNG_LIBS=`libpng-config --ldflags` - AC_DEFINE([USE_LIBPNG], 1, [Defined if we're going to be using the installed libpng]) - else - ac_save_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS $PNG_CFLAGS" - ac_save_LDFLAGS="$LDFLAGS" - LDFLAGS="$PNG_LIBS $LDFLAGS" + PKG_CHECK_MODULES( + [PNG], + [libpng], + [AC_DEFINE([USE_LIBPNG], 1, [Defined if we're going to be using the installed libpng])], + [AC_MSG_WARN([libpng not found - saving screenshots disabled])] + ) +fi - AC_CHECK_LIB( png, png_write_png, - [AC_CHECK_HEADER( - png.h, - [AC_DEFINE([USE_LIBPNG], 1, [Defined if we're going to be using the installed libpng]) PNG_LIBS='-lpng -lm -lz'], - [AC_CHECK_HEADERS(libpng/png.h, - [CPPFLAGS="$ac_save_CPPFLAGS $PNG_CFLAGS/libpng" - AC_DEFINE([USE_LIBPNG], 1, [Defined if we're going to be using the installed libpng]) PNG_LIBS='-lpng -lm -lz'], - [AC_MSG_WARN(png.h not found - saving screenshots disabled) - PNG_LIBS=''] - )], - )], - [AC_MSG_WARN(png_write_png not found - saving screenshots disabled) - PNG_LIBS=''] - ) +AC_SUBST(PNG_CFLAGS) +AC_SUBST(PNG_LIBS) - CPPFLAGS="$ac_save_CPPFLAGS" - LDFLAGS="$ac_save_LDFLAGS" - fi - - AC_SUBST(PNG_CFLAGS) - AC_SUBST(PNG_LIBS) -fi - dnl Check if a version of libasound which supplies pcm is available AC_MSG_CHECKING(whether ALSA requested) AC_ARG_WITH(alsa, @@ -595,7 +572,7 @@ dnl Check if CoreAudio is available AC_CHECK_HEADER( - CoreAudio/AudioHardware.h, + AudioToolbox/AudioToolbox.h, [coreaudio_available=yes],, ) @@ -632,7 +609,7 @@ SOUND_LIBADD='sound/sunsound.$(OBJEXT)' SOUND_LIBS='' AC_MSG_RESULT(OpenBSD) elif test "$coreaudio_available" = yes; then - SOUND_LIBADD='sound/coreaudiosound.$(OBJEXT)' SOUND_LIBS='-framework CoreAudio -framework AudioUnit -framework CoreServices' sound_fifo=yes + SOUND_LIBADD='sound/coreaudiosound.$(OBJEXT)' SOUND_LIBS='-framework CoreAudio -framework AudioUnit' sound_fifo=yes AC_MSG_RESULT(CoreAudio) elif test "$wii" = yes; then SOUND_LIBADD='sound/wiisound.$(OBJEXT)' SOUND_LIBS='' sound_fifo=yes @@ -737,11 +714,17 @@ libxml2=yes) AC_MSG_RESULT($libxml2) if test "$libxml2" = yes; then - AM_PATH_XML2(2.0.0,AC_DEFINE([HAVE_LIB_XML2], 1, - [Defined if we've got libxml2]), - AC_MSG_WARN(libxml2 not found - config file will use ini format)) + PKG_CHECK_MODULES( + [XML], + [libxml-2.0], + [AC_DEFINE([HAVE_LIB_XML2], 1, [Defined if we've got libxml2])], + [AC_MSG_WARN([libxml2 not found - config file will use ini format])] + ) fi +AC_SUBST(XML_CFLAGS) +AC_SUBST(XML_LIBS) + dnl Work out which timer routines to use AC_MSG_CHECKING(which timer routines to use) if test "$UI" = sdl; then Modified: trunk/fuse/debugger/breakpoint.c =================================================================== --- trunk/fuse/debugger/breakpoint.c 2016-08-22 12:00:26 UTC (rev 821) +++ trunk/fuse/debugger/breakpoint.c 2016-08-23 04:00:11 UTC (rev 822) @@ -136,8 +136,8 @@ int debugger_breakpoint_add_time( debugger_breakpoint_type type, - libspectrum_dword breakpoint_tstates, size_t ignore, - debugger_breakpoint_life life, + libspectrum_dword breakpoint_tstates, + size_t ignore, debugger_breakpoint_life life, debugger_expression *condition ) { debugger_breakpoint_value value; Modified: trunk/fuse/fusepb/English.lproj/InfoPlist.strings =================================================================== (Binary files differ) Modified: trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj =================================================================== --- trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj 2016-08-22 12:00:26 UTC (rev 821) +++ trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj 2016-08-23 04:00:11 UTC (rev 822) @@ -199,6 +199,8 @@ B69BE5411660E02500C5D0CE /* w5100_socket.c in Sources */ = {isa = PBXBuildFile; fileRef = B69BE53E1660E02500C5D0CE /* w5100_socket.c */; }; B69BE5421660E02500C5D0CE /* w5100.c in Sources */ = {isa = PBXBuildFile; fileRef = B69BE53F1660E02500C5D0CE /* w5100.c */; }; B69BE5451660E04000C5D0CE /* spectranet.c in Sources */ = {isa = PBXBuildFile; fileRef = B69BE5431660E04000C5D0CE /* spectranet.c */; }; + B69D8D4D1D6B34490031BAFC /* zip.c in Sources */ = {isa = PBXBuildFile; fileRef = B69D8D4B1D6B34490031BAFC /* zip.c */; }; + B69D8D501D6B388A0031BAFC /* trdos.c in Sources */ = {isa = PBXBuildFile; fileRef = B69D8D4E1D6B388A0031BAFC /* trdos.c */; }; B6A6F0960B3C108C000B88E9 /* coreaudiosound.c in Sources */ = {isa = PBXBuildFile; fileRef = B6A6F0950B3C108C000B88E9 /* coreaudiosound.c */; }; B6A6F0DA0B3D141B000B88E9 /* cocoaui.m in Sources */ = {isa = PBXBuildFile; fileRef = B6A6F0D90B3D141B000B88E9 /* cocoaui.m */; }; B6A6F0EE0B3D5F9E000B88E9 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B6A6F0ED0B3D5F9E000B88E9 /* CoreAudio.framework */; }; @@ -570,6 +572,10 @@ B69BE5401660E02500C5D0CE /* w5100.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = w5100.h; sourceTree = "<group>"; }; B69BE5431660E04000C5D0CE /* spectranet.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = spectranet.c; sourceTree = "<group>"; }; B69BE5441660E04000C5D0CE /* spectranet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = spectranet.h; sourceTree = "<group>"; }; + B69D8D4B1D6B34490031BAFC /* zip.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip.c; path = ../../../libspectrum/libspectrum/zip.c; sourceTree = "<group>"; }; + B69D8D4C1D6B34490031BAFC /* zip.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = zip.h; path = ../../../libspectrum/libspectrum/zip.h; sourceTree = "<group>"; }; + B69D8D4E1D6B388A0031BAFC /* trdos.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = trdos.c; sourceTree = "<group>"; }; + B69D8D4F1D6B388A0031BAFC /* trdos.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = trdos.h; sourceTree = "<group>"; }; B6A6F0950B3C108C000B88E9 /* coreaudiosound.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = coreaudiosound.c; path = sound/coreaudiosound.c; sourceTree = "<group>"; }; B6A6F0D90B3D141B000B88E9 /* cocoaui.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = cocoaui.m; sourceTree = "<group>"; }; B6A6F0ED0B3D5F9E000B88E9 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = "<absolute>"; }; @@ -1239,6 +1245,8 @@ B631B9FE10257CA400BE1EE1 /* opus.h */, B6CA2A2A0C33F8C10003CF90 /* plusd.c */, B6CA2A2B0C33F8C10003CF90 /* plusd.h */, + B69D8D4E1D6B388A0031BAFC /* trdos.c */, + B69D8D4F1D6B388A0031BAFC /* trdos.h */, B665FD470DD25D8900D21C79 /* upd_fdc.c */, B665FD480DD25D8900D21C79 /* upd_fdc.h */, B6CE3A0E0CD21617005ACDC8 /* wd_fdc.c */, @@ -1322,6 +1330,8 @@ B6DCBBB7114FA0E700DC9A11 /* z80.c */, B6DCBBB8114FA0E700DC9A11 /* z80em.c */, B6DCBBB9114FA0E700DC9A11 /* zlib.c */, + B69D8D4B1D6B34490031BAFC /* zip.c */, + B69D8D4C1D6B34490031BAFC /* zip.h */, B6DCBBBA114FA0E700DC9A11 /* zxs.c */, ); name = libspectrum; @@ -1835,6 +1845,7 @@ B684A19E0E93A8CD00A5B097 /* event.c in Sources */, B684A1A00E93A8D700A5B097 /* variable.c in Sources */, B684A1A20E93A8FC00A5B097 /* file.c in Sources */, + B69D8D501D6B388A0031BAFC /* trdos.c in Sources */, B6374FA50F178298003CE6E2 /* timer.c in Sources */, B64BD10C0FF6EE4E000B82AE /* timer.c in Sources */, B64BD1140FF6EE77000B82AE /* dir.c in Sources */, @@ -1894,6 +1905,7 @@ B69BE53C1660E01000C5D0CE /* am29f010.c in Sources */, B69BE5411660E02500C5D0CE /* w5100_socket.c in Sources */, B69BE5421660E02500C5D0CE /* w5100.c in Sources */, + B69D8D4D1D6B34490031BAFC /* zip.c in Sources */, B69BE5451660E04000C5D0CE /* spectranet.c in Sources */, B6B274061672AC8C00FC209B /* paths.c in Sources */, ); Modified: trunk/fuse/fusepb/Info-Fuse.plist =================================================================== --- trunk/fuse/fusepb/Info-Fuse.plist 2016-08-22 12:00:26 UTC (rev 821) +++ trunk/fuse/fusepb/Info-Fuse.plist 2016-08-23 04:00:11 UTC (rev 822) @@ -582,11 +582,11 @@ <key>CFBundlePackageType</key> <string>APPL</string> <key>CFBundleShortVersionString</key> - <string>1.2.1</string> + <string>1.2.2</string> <key>CFBundleSignature</key> <string>FUSE</string> <key>CFBundleVersion</key> - <string>1.2.1</string> + <string>1.2.2</string> <key>NSMainNibFile</key> <string>MainMenu</string> <key>NSPrincipalClass</key> @@ -643,6 +643,8 @@ </array> <key>UTTypeDescription</key> <string>Timex Sinclair Cartridge Image</string> + <key>UTTypeIconFile</key> + <string>dck</string> <key>UTTypeIdentifier</key> <string>net.sourceforge.projects.fuse-emulator.dck</string> <key>UTTypeReferenceURL</key> @@ -662,6 +664,8 @@ </array> <key>UTTypeDescription</key> <string>ZX Spectrum Hard Disk File</string> + <key>UTTypeIconFile</key> + <string>hdf</string> <key>UTTypeIdentifier</key> <string>net.sourceforge.projects.fuse-emulator.hdf</string> <key>UTTypeReferenceURL</key> @@ -681,6 +685,8 @@ </array> <key>UTTypeDescription</key> <string>ZX Spectrum +3 Disk Image</string> + <key>UTTypeIconFile</key> + <string>dsk</string> <key>UTTypeIdentifier</key> <string>net.sourceforge.projects.fuse-emulator.dsk</string> <key>UTTypeReferenceURL</key> @@ -700,6 +706,8 @@ </array> <key>UTTypeDescription</key> <string>ZX Spectrum DISCiPLE/+D Disk Image</string> + <key>UTTypeIconFile</key> + <string>blank</string> <key>UTTypeIdentifier</key> <string>net.sourceforge.projects.fuse-emulator.mgt</string> <key>UTTypeReferenceURL</key> @@ -719,6 +727,8 @@ </array> <key>UTTypeDescription</key> <string>ZX Spectrum Recording</string> + <key>UTTypeIconFile</key> + <string>rzx</string> <key>UTTypeIdentifier</key> <string>net.sourceforge.projects.fuse-emulator.rzx</string> <key>UTTypeReferenceURL</key> @@ -738,6 +748,8 @@ </array> <key>UTTypeDescription</key> <string>ZX Spectrum TR-DOS Disk Image</string> + <key>UTTypeIconFile</key> + <string>scl</string> <key>UTTypeIdentifier</key> <string>net.sourceforge.projects.fuse-emulator.scl</string> <key>UTTypeTagSpecification</key> @@ -755,6 +767,8 @@ </array> <key>UTTypeDescription</key> <string>ZX Spectrum Screen Image</string> + <key>UTTypeIconFile</key> + <string>scr</string> <key>UTTypeIdentifier</key> <string>net.sourceforge.projects.fuse-emulator.scr</string> <key>UTTypeReferenceURL</key> @@ -774,6 +788,8 @@ </array> <key>UTTypeDescription</key> <string>ZX Spectrum Multi Level Snapshot</string> + <key>UTTypeIconFile</key> + <string>slt</string> <key>UTTypeIdentifier</key> <string>net.sourceforge.projects.fuse-emulator.slt</string> <key>UTTypeReferenceURL</key> @@ -793,6 +809,8 @@ </array> <key>UTTypeDescription</key> <string>ZX Spectrum SNA Snapshot</string> + <key>UTTypeIconFile</key> + <string>sna</string> <key>UTTypeIdentifier</key> <string>net.sourceforge.projects.fuse-emulator.sna</string> <key>UTTypeReferenceURL</key> @@ -812,6 +830,8 @@ </array> <key>UTTypeDescription</key> <string>ZX Spectrum SP Snapshot</string> + <key>UTTypeIconFile</key> + <string>sp</string> <key>UTTypeIdentifier</key> <string>net.sourceforge.projects.fuse-emulator.sp</string> <key>UTTypeTagSpecification</key> @@ -829,6 +849,8 @@ </array> <key>UTTypeDescription</key> <string>ZX Spectrum SZX Snapshot</string> + <key>UTTypeIconFile</key> + <string>szx</string> <key>UTTypeIdentifier</key> <string>net.sourceforge.projects.fuse-emulator.szx</string> <key>UTTypeReferenceURL</key> @@ -848,6 +870,8 @@ </array> <key>UTTypeDescription</key> <string>ZX Spectrum SNP Snapshot</string> + <key>UTTypeIconFile</key> + <string>snp</string> <key>UTTypeIdentifier</key> <string>net.sourceforge.projects.fuse-emulator.snp</string> <key>UTTypeTagSpecification</key> @@ -865,6 +889,8 @@ </array> <key>UTTypeDescription</key> <string>ZX Spectrum TAP Tape Image</string> + <key>UTTypeIconFile</key> + <string>tap</string> <key>UTTypeIdentifier</key> <string>net.sourceforge.projects.fuse-emulator.tap</string> <key>UTTypeReferenceURL</key> @@ -884,6 +910,8 @@ </array> <key>UTTypeDescription</key> <string>ZX Spectrum TR-DOS Disk Image</string> + <key>UTTypeIconFile</key> + <string>trd</string> <key>UTTypeIdentifier</key> <string>net.sourceforge.projects.fuse-emulator.trd</string> <key>UTTypeReferenceURL</key> @@ -903,6 +931,8 @@ </array> <key>UTTypeDescription</key> <string>ZX Spectrum TZX Tape Image</string> + <key>UTTypeIconFile</key> + <string>tzx</string> <key>UTTypeIdentifier</key> <string>net.sourceforge.projects.fuse-emulator.tzx</string> <key>UTTypeReferenceURL</key> @@ -922,6 +952,8 @@ </array> <key>UTTypeDescription</key> <string>ZX Spectrum Z80 Snapshot</string> + <key>UTTypeIconFile</key> + <string>z80</string> <key>UTTypeIdentifier</key> <string>net.sourceforge.projects.fuse-emulator.z80</string> <key>UTTypeReferenceURL</key> @@ -941,6 +973,8 @@ </array> <key>UTTypeDescription</key> <string>ZX Spectrum ZXS Snapshot</string> + <key>UTTypeIconFile</key> + <string>zxs</string> <key>UTTypeIdentifier</key> <string>net.sourceforge.projects.fuse-emulator.zxs</string> <key>UTTypeTagSpecification</key> @@ -958,6 +992,8 @@ </array> <key>UTTypeDescription</key> <string>ZX Spectrum Microdrive Cartridge Image</string> + <key>UTTypeIconFile</key> + <string>mdr</string> <key>UTTypeIdentifier</key> <string>net.sourceforge.projects.fuse-emulator.mdr</string> <key>UTTypeReferenceURL</key> @@ -977,6 +1013,8 @@ </array> <key>UTTypeDescription</key> <string>ZX Spectrum DISCiPLE/+D Disk Image</string> + <key>UTTypeIconFile</key> + <string>blank</string> <key>UTTypeIdentifier</key> <string>net.sourceforge.projects.fuse-emulator.img</string> <key>UTTypeReferenceURL</key> @@ -996,6 +1034,8 @@ </array> <key>UTTypeDescription</key> <string>ZX Spectrum RAW Tape Image</string> + <key>UTTypeIconFile</key> + <string>raw</string> <key>UTTypeIdentifier</key> <string>net.sourceforge.projects.fuse-emulator.raw</string> <key>UTTypeTagSpecification</key> @@ -1013,6 +1053,8 @@ </array> <key>UTTypeDescription</key> <string>ZX Spectrum Opus Discovery Disk Image</string> + <key>UTTypeIconFile</key> + <string>blank</string> <key>UTTypeIdentifier</key> <string>net.sourceforge.projects.fuse-emulator.opd</string> <key>UTTypeReferenceURL</key> @@ -1032,6 +1074,8 @@ </array> <key>UTTypeDescription</key> <string>ZX Spectrum Opus Discovery Disk Image</string> + <key>UTTypeIconFile</key> + <string>blank</string> <key>UTTypeIdentifier</key> <string>net.sourceforge.projects.fuse-emulator.opu</string> <key>UTTypeReferenceURL</key> Modified: trunk/fuse/fusepb/config.h =================================================================== --- trunk/fuse/fusepb/config.h 2016-08-22 12:00:26 UTC (rev 821) +++ trunk/fuse/fusepb/config.h 2016-08-23 04:00:11 UTC (rev 822) @@ -8,7 +8,7 @@ #define FUSE_COPYRIGHT "(c) 1999-2016 Philip Kendall and others" /* Define version information for win32 executables */ -#define FUSE_RC_VERSION 1,2,1,0 +#define FUSE_RC_VERSION 1,2,2,0 /* Define to 1 if you have the `dirname' function. */ #define HAVE_DIRNAME 1 @@ -167,7 +167,7 @@ /* #undef USE_WIDGET */ /* Version number of package */ -#define VERSION "1.2.1" +#define VERSION "1.2.2" /* 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/fusepb/controllers/FuseController.m =================================================================== --- trunk/fuse/fusepb/controllers/FuseController.m 2016-08-22 12:00:26 UTC (rev 821) +++ trunk/fuse/fusepb/controllers/FuseController.m 2016-08-23 04:00:11 UTC (rev 822) @@ -226,7 +226,8 @@ [super init]; singleton = self; - NSArray *compressedFileTypes = @[@"gz", @"GZ", @"bz2", @"BZ2"]; + NSArray *compressedFileTypes = @[@"gz", @"GZ", @"bz2", @"BZ2", @"zip", + @"ZIP"]; snapFileTypes = [NSMutableArray arrayWithObjects:@"mgtsnp", @"MGTSNP", @"slt", @"SLT", @"sna", @"SNA", @"sp", @"SP", @"szx", Modified: trunk/fuse/fusepb/libspectrum.h =================================================================== --- trunk/fuse/fusepb/libspectrum.h 2016-08-22 12:00:26 UTC (rev 821) +++ trunk/fuse/fusepb/libspectrum.h 2016-08-23 04:00:11 UTC (rev 822) @@ -1,7 +1,7 @@ /* libspectrum.h: the library for dealing with ZX Spectrum emulator files Copyright (c) 2001-2015 Philip Kendall, Darren Salt, Fredrick Meunier - $Id: libspectrum.h.in 5422 2016-04-29 12:54:59Z fredm $ + $Id: libspectrum.h.in 5733 2016-08-14 12:45:40Z 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 @@ -435,6 +435,10 @@ LIBSPECTRUM_ID_DISK_D80, /* .d80/.d40 Didaktik disk image */ + /* Below here, present only in 1.2.2 and later */ + + LIBSPECTRUM_ID_COMPRESSED_ZIP, /* zip compressed file */ + LIBSPECTRUM_ID_SCREEN_SCR, /* .scr screen file */ } libspectrum_id_t; Modified: trunk/fuse/fusepb/resources/Fuse Help/Fuse Help.helpindex =================================================================== (Binary files differ) Modified: trunk/fuse/fusepb/resources/Fuse Help/html/changelog.html =================================================================== --- trunk/fuse/fusepb/resources/Fuse Help/html/changelog.html 2016-08-22 12:00:26 UTC (rev 821) +++ trunk/fuse/fusepb/resources/Fuse Help/html/changelog.html 2016-08-23 04:00:11 UTC (rev 822) @@ -12,6 +12,57 @@ <!-- AppleSegStart="What's New In Fuse?" --><a name="What's New In Fuse?" id="What's New In Fuse?"></a><!-- AppleSegDescription="This section describes the changes for version 1.2.1 of the Fuse emulator." --></font><br> <h2><font><font face="Lucida Grande,Helvetica,Arial">What's new in + Fuse For Mac OS X 1.2.2</font></font></h2> + <ul> + <li><font face="Lucida Grande,Helvetica,Arial"><font face="Lucida + Grande,Helvetica,Arial">New features</font>:</font></li> + <li style="list-style-type: none; list-style-image: none; + list-style-position: outside;"> + <ul> + <li><font face="Lucida Grande,Helvetica,Arial">Support loading + first tape, snapshot, dock cartridge or input recording (RZX) + file found inside .zip files (Patrik Rak and Sergio + Baldoví).</font></li> + <li><font face="Lucida Grande,Helvetica,Arial">Support + auto-booting TR-DOS disk images without a boot file + (thanks, windale, BogDan Vatra and Fredrick Meunier) + (Sergio Baldoví).</font></li> + </ul> + </li> + <li style="list-style-type: none; list-style-image: none; + list-style-position: outside;"><br> + </li> + <li><font face="Lucida Grande,Helvetica,Arial">Emulation core + improvements:</font></li> + <li style="list-style-type: none; list-style-image: none; + list-style-position: outside;"> + <ul> + <li><font face="Lucida Grande,Helvetica,Arial">Change + microphone state when 0 tstate pulses do not have the no + edge flag set (Fredrick Meunier).</font></li> + </ul> + </li> + <li style="list-style-type: none; list-style-image: none; + list-style-position: outside;"><br> + </li> + <li><font face="Lucida Grande,Helvetica,Arial">Machine specific + improvements:</font></li> + <li style="list-style-type: none; list-style-image: none; + list-style-position: outside;"> + <ul> + <li><font face="Lucida Grande,Helvetica,Arial">Fix +3 disk + autoload (thanks, windale and BogDan Vatra) (Sergio + Baldoví and Fredrick Meunier).</font></li> + <li><font face="Lucida Grande,Helvetica,Arial">Fix floppy + drive selection when resetting a +3 (thanks, windale and + BogDan Vatra) (Sergio Baldoví).</font></li> + </ul> + <br> + </li> + <li><font face="Lucida Grande,Helvetica,Arial"><font face="Lucida + Grande,Helvetica,Arial">Various other minor bugfixes.</font></font></li> + </ul> + <h2><font><font face="Lucida Grande,Helvetica,Arial">What's new in Fuse For Mac OS X 1.2.1</font></font></h2> <ul> <li><font face="Lucida Grande,Helvetica,Arial">Emulation core Modified: trunk/fuse/fusepb/resources/Fuse Help/html/compressed.html =================================================================== --- trunk/fuse/fusepb/resources/Fuse Help/html/compressed.html 2016-08-22 12:00:26 UTC (rev 821) +++ trunk/fuse/fusepb/resources/Fuse Help/html/compressed.html 2016-08-23 04:00:11 UTC (rev 822) @@ -1,24 +1,31 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> -<head> -<!-- AppleSegStart="Compressed Files" --> - <title>Compressed Files</title> -</head> -<body> -<font face="Lucida Grande,Helvetica,Arial"><a name="Compressed Files"></a><!-- AppleSegDescription="This section describes Fuses support of compressed files." --></font> -<div class="refsect1" xml:lang="en" lang="en"> -<h2><font face="Lucida Grande,Helvetica,Arial">Compressed -Files</font></h2> -</div> -<p> -<font face="Lucida Grande,Helvetica,Arial">Snapshots, tape images, dock -cartridges and input recording files -can be read from files compressed with -<span class="emphasis"><em>bzip2</em></span> or -<span class="emphasis"><em>gzip</em></span> just as if they were -uncompressed. There is currently no support for reading compressed +3, -+D or Beta disk -images.</font></p> -<!-- AppleSegEnd --> -</body> + <head> + + <meta http-equiv="content-type" content="text/html; charset=windows-1252"> + <!-- AppleSegStart="Compressed Files" --> + <title>Compressed Files</title> + </head> + <body> + <font face="Lucida Grande,Helvetica,Arial"><a name="Compressed + Files"></a><!-- AppleSegDescription="This section describes Fuses support of compressed files." --></font> + <div class="refsect1" xml:lang="en" lang="en"> + <h2><font face="Lucida Grande,Helvetica,Arial">Compressed + Files</font></h2> + </div> + <p> + <font face="Lucida Grande,Helvetica,Arial">Snapshots, tape images, + dock + cartridges and input recording files + (RZX) can be read from files compressed with + <span class="emphasis"><em>bzip2</em></span>,<em> </em><span + class="emphasis"><em>gzip</em></span> or <i>zip</i> just as + if they were + uncompressed. In the zip case, only the first supported file + found inside the archive is loaded. There is currently no + support for reading compressed +3, + +D, Opus or Beta disk + images.</font></p> + <!-- AppleSegEnd --> + </body> </html> Modified: trunk/fuse/fusepb/resources/Fuse Help/html/formats.html =================================================================== --- trunk/fuse/fusepb/resources/Fuse Help/html/formats.html 2016-08-22 12:00:26 UTC (rev 821) +++ trunk/fuse/fusepb/resources/Fuse Help/html/formats.html 2016-08-23 04:00:11 UTC (rev 822) @@ -11,32 +11,28 @@ <div class="refsect1" xml:lang="en" lang="en"> <h2><font face="Lucida Grande,Helvetica,Arial">Disk File Formats</font></h2> </div> - <p> - <font face="Lucida Grande,Helvetica,Arial">Fuse supports several - disk - image formats in its +D, Didaktik, DISCiPLE, Opus and Beta 128 emulation.<br> + <p> <font face="Lucida Grande,Helvetica,Arial">Fuse supports + several disk image formats in its +D, Didaktik, DISCiPLE, Opus + and Beta 128 emulation.<br> The following are supported for reading:</font></p> <p><font face="Lucida Grande,Helvetica,Arial">.UDI<br> </font></p> <div style="margin-left: 40px;"><font face="Lucida - Grande,Helvetica,Arial">Ultra Disk Image; for - specification details please see <a + Grande,Helvetica,Arial">Ultra Disk Image; for specification + details please see <a href="http://faqwiki.zxnet.co.uk/wiki/UDI_format">http://faqwiki.zxnet.co.uk/wiki/UDI_format</a>.</font><font face="Lucida Grande,Helvetica,Arial"> This is the only image - format - which can store all the relevant information</font><font + format which can store all the relevant information</font><font face="Lucida Grande,Helvetica,Arial"> of the recorded data on a magnetic disk, so it can be used for any <span style="font-style: italic;">non standard</span> disk format. - Fuse can - store and read both MFM and FM formatted disk data in/from this - container.</font><br> + Fuse can store and read both MFM and FM formatted disk data + in/from this container.</font><br> </div> <p><font face="Lucida Grande,Helvetica,Arial">.FDI<br> </font></p> <div style="margin-left: 40px;"><font face="Lucida - Grande,Helvetica,Arial">UKV Spectrum Debugger disk image - format.</font><br> + Grande,Helvetica,Arial">UKV Spectrum Debugger disk image format.</font><br> </div> <p><font face="Lucida Grande,Helvetica,Arial">.MGT<br> .IMG<br> @@ -47,22 +43,27 @@ <p><font face="Lucida Grande,Helvetica,Arial">.SAD<br> </font></p> <div style="margin-left: 40px;"><font face="Lucida - Grande,Helvetica,Arial">For compatibility with SAM - Coupé disk images using these formats. Note that SAM - Coupé - `.DSK' images share the same format as `.MGT'.</font><br> + Grande,Helvetica,Arial">For compatibility with SAM Coupé disk + images using these formats. Note that SAM Coupé `.DSK' images + share the same format as `.MGT'.</font><br> </div> <p><font face="Lucida Grande,Helvetica,Arial">.D80<br> .D40<br> - </font></p> + </font></p> <div style="margin-left: 40px;"><font face="Lucida - Grande,Helvetica,Arial">Didaktik 80 and Didaktik 40 file formats.</font><br> + Grande,Helvetica,Arial">Didaktik 80 and Didaktik 40 file + formats.</font><br> </div> <p><font face="Lucida Grande,Helvetica,Arial">.TRD<br> </font></p> <div style="margin-left: 40px;"><font face="Lucida - Grande,Helvetica,Arial">TR-DOS disk image; for detailed - information please see</font><br> + Grande,Helvetica,Arial">TR-DOS disk image. TRD and SCL sectors + are loaded interleaved, therefore<font face="Lucida + Grande,Helvetica,Arial"> </font>you might experience problems + when <font face="Lucida Grande,Helvetica,Arial">these images + are used </font>with TR-DOS ROMs that use the turbo<font + face="Lucida Grande,Helvetica,Arial"> </font>format + (sequential sectors); for detailed information please see</font><br> <a href="http://web.archive.org/web/20070808150548/http://www.ramsoft.bbk.org/tech/tr-info.zip"><font face="Lucida Grande,Helvetica,Arial">http://web.archive.org/web/20070808150548/http://www.ramsoft.bbk.org/tech/tr-info.zip</font></a><br> @@ -70,35 +71,32 @@ <p><font face="Lucida Grande,Helvetica,Arial">.SCL<br> </font></p> <div style="margin-left: 40px;"><font face="Lucida - Grande,Helvetica,Arial">A simple archive format for - TR-DOS disk files. For specification please see</font><br> - <a - href="http://www.zx-modules.de/fileformats/sclformat.html"><font - face="Lucida Grande,Helvetica,Arial">http://www.zx-modules.de/fileformats/sclformat.html</font></a><br> + Grande,Helvetica,Arial">A simple archive format for TR-DOS disk + files. For specification please see</font><br> + <a href="http://www.zx-modules.de/fileformats/sclformat.html"><font + face="Lucida Grande,Helvetica,Arial">http://www.zx-modules.de/fileformats/sclformat.html</font></a><br> </div> <p><font face="Lucida Grande,Helvetica,Arial">.TD0<br> </font></p> <div style="margin-left: 40px;"><font face="Lucida - Grande,Helvetica,Arial">Teledisk image format; Fuse - supports only files not created with "Advanced Compression". - Detailed + Grande,Helvetica,Arial">Teledisk image format; Fuse supports + only files not created with "Advanced Compression". Detailed description found in <a href="http://www.classiccmp.org/dunfield/img54306/td0notes.txt"><span style="text-decoration: underline;"></span>http://www.classiccmp.org/dunfield/img54306/td0notes.txt</a> - and <a href="https://web.archive.org/web/20130116072335/http://www.fpns.net/willy/wteledsk.htm">https://web.archive.org/web/20130116072335/http://www.fpns.net/willy/wteledsk.htm</a>.</font><br> + and <a +href="https://web.archive.org/web/20130116072335/http://www.fpns.net/willy/wteledsk.htm">https://web.archive.org/web/20130116072335/http://www.fpns.net/willy/wteledsk.htm</a>.</font><br> </div> <p><font face="Lucida Grande,Helvetica,Arial">.DSK<br> </font></p> <div style="margin-left: 40px;"><font face="Lucida - Grande,Helvetica,Arial">CPC disk image format; Fuse - supports the plain old and the new extended CPC format too. - Further + Grande,Helvetica,Arial">CPC disk image format; Fuse supports the + plain old and the new extended CPC format too. Further information please see the </font><font face="Lucida - Grande,Helvetica,Arial"><span class="emphasis"><em>The - .DSK Format</em></span></font> <font face="Lucida - Grande,Helvetica,Arial">section and the CPCEMU manual - section 7.7.1 <a - href="http://www.cpc-emu.org/linux/cpcemu_e.txt">http://www.cpc-emu.org/linux/cpcemu_e.txt</a> + Grande,Helvetica,Arial"><span class="emphasis"><em>The .DSK + Format</em></span></font> <font face="Lucida + Grande,Helvetica,Arial">section and the CPCEMU manual section + 7.7.1 <a href="http://www.cpc-emu.org/linux/cpcemu_e.txt">http://www.cpc-emu.org/linux/cpcemu_e.txt</a> or <a href="http://www.cpctech.org.uk/docs/extdsk.html">http://www.cpctech.org.uk/docs/extdsk.html</a>.</font><br> </div> <p><font face="Lucida Grande,Helvetica,Arial">.OPD<br> @@ -109,23 +107,19 @@ </div> <br> <p><font face="Lucida Grande,Helvetica,Arial">Fuse supports the <span - style="font-style: italic;">.UDI, .FDI, .MGT, .IMG, .SAD, - .D80 .D40 .TRD, .SCL, - .OPD, .OPU and .DSK</span> (only the old CPC format)</font><font - face="Lucida Grande,Helvetica,Arial"> formats for writing.</font></p> + style="font-style: italic;">.UDI, .FDI, .MGT, .IMG, .SAD, .D80 + .D40 .TRD, .SCL, .OPD, .OPU and .DSK</span> (only the old CPC + format)</font><font face="Lucida Grande,Helvetica,Arial"> + formats for writing.</font></p> <p><font face="Lucida Grande,Helvetica,Arial"><span style="font-style: italic;"></span></font><font face="Lucida - Grande,Helvetica,Arial">You can save disk images with any - output format, just select the appropriate type from the disk - save + Grande,Helvetica,Arial">You can save disk images with any output + format, just select the appropriate type from the disk save dialog.</font></p> <p><font face="Lucida Grande,Helvetica,Arial">Not all image formats - can - store all disk image information. You cannot save a disk image - with an - inappropriate format that loses some information (e.g. variable - track - length or sector length).<br> + can store all disk image information. You cannot save a disk + image with an inappropriate format that loses some information + (e.g. variable track length or sector length).<br> <br> </font></p> <!-- AppleSegEnd --> Modified: trunk/fuse/hacking/ChangeLog =================================================================== --- trunk/fuse/hacking/ChangeLog 2016-08-22 12:00:26 UTC (rev 821) +++ trunk/fuse/hacking/ChangeLog 2016-08-23 04:00:11 UTC (rev 822) @@ -5178,7 +5178,7 @@ 20160526 debugger/commandl.l,man/fuse.1: allow strings with escaped spaces in the debugger (bug #337) (Sergio). 20160528 ChangeLog: add even more recent changes (Fred). -20160528 deugger/system_variable.c: include file (thanks, Fred) (Phil). +20160528 debugger/system_variable.c: include file (thanks, Fred) (Phil). 20160529 Makefile.am,lib/Makefile.am,z80/Makefile.am: distribute m4/ax_create_stdint_h.m4,lib/tests/success.d80.bz2 and z80/tests/README (Sergio). @@ -5368,3 +5368,42 @@ (Fred). 20160717 ChangeLog,README,configure.ac,man/fuse.1: update release dates and mark this release as 1.2.1 (Fred). +20160719 z80/{z80_debugger_variables.c,z80_internals.h}: include header for + z80_debugger_variables_init() definition (Fred). +20160719 debugger/breakpoint.[ch]: rename local argument shadowing global + variable (Fred). +20160719 ui/widget/browse.c: use description for tape blocks where available + (Fred). +20160726 configure.ac,sound/coreaudiosound.c: remove lingering references to + deprecated Carbon APIs (Fred). +20160731 Makefile.am,m4/glib-2.0.m4: remove the unused (since r5349) glib-2.0.m4 + file (from patch #375) (Alberto Garcia). +20160801 ui/{gtk,win32}/fileselector.c: add ".zip" to the file filters in + open file dialogs (thanks, Phil) (Sergio). +20160807 utils.c: remove redundant whitespace (Fred). +20160807 machines/specplus3.c: fix +3 disk autoload (part of bug #356) + (thanks, windale and BogDan Vatra) (Fred). +20160807 peripherals/disk/upd_fdc.c: fix floppy drive selection when resetting a + +3 (part of bug #356) (thanks, windale and BogDan Vatra) (Sergio). +20160807 lib/{compressed,uncompressed}/disk_plus3.szx: update disk_plus3.szx to + set PC = 0x08E8 as the proper entry point for "Loader" menu option + (part of bug #356) (thanks, windale and BogDan Vatra) (Sergio). +20160812 tape.c: change microphone state when 0 tstate pulses do not have the no + edge flag set (Fred). +20160812 Makefile.am,configure.ac,m4/libxml.m4: use pkg-config to detect libpng + and libxml2 (more from patch #375) (Alberto Garcia). +20160816 ChangeLog,README,configure.ac,man/fuse.1: bump versions to 1.2.2(-pre1) + (Fred). +20160816 man/fuse.1,peripherals/{Makefile.am,disk/{disk.[ch],trdos.[ch]}}: + insert a boot loader in TRD/SCL disk images when autoload is enabled + (part of feature request #90) (thanks, windale, BogDan and Fred) + (Sergio). +20160817 ChangeLog: tweak zip support description (disks are not supported) + (Sergio). +20160817 man/fuse.1: document zip compression support (Sergio). +20160817 ui/gtk/fileselector.c: add ".png" to the file filters in save file + dialogs and check the support for ".svg" files (Sergio). +20160820 ui/options.dat: fix mnemonics in drives setup to avoid collisions + (Sergio). +20160821 ChangeLog,README,configure.ac,man/fuse.1: update release dates and mark + this release as 1.2.2 (Fred). Modified: trunk/fuse/lib/compressed/disk_plus3.szx =================================================================== (Binary files differ) Modified: trunk/fuse/lib/uncompressed/disk_plus3.szx =================================================================== (Binary files differ) Deleted: trunk/fuse/m4/glib-2.0.m4 =================================================================== --- trunk/fuse/m4/glib-2.0.m4 2016-08-22 12:00:26 UTC (rev 821) +++ trunk/fuse/m4/glib-2.0.m4 2016-08-23 04:00:11 UTC (rev 822) @@ -1,214 +0,0 @@ -# Configure paths for GLIB -# Owen Taylor 1997-2001 - -# Taken from Glib 2.4.2 by PAK 2004/07/06 - -dnl AM_PATH_GLIB_2_0([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]]) -dnl Test for GLIB, and define GLIB_CFLAGS and GLIB_LIBS, if gmodule, gobject or -dnl gthread is specified in MODULES, pass to pkg-config -dnl -AC_DEFUN([AM_PATH_GLIB_2_0], -[dnl -dnl Get the cflags and libraries from pkg-config -dnl -AC_ARG_ENABLE(glibtest, [ --disable-glibtest ... [truncated message content] |
From: <fr...@us...> - 2016-08-22 12:00:28
|
Revision: 821 http://sourceforge.net/p/fuse-for-macosx/code/821 Author: fredm Date: 2016-08-22 12:00:26 +0000 (Mon, 22 Aug 2016) Log Message: ----------- Tag vendor/fuse-emulator/current as vendor/fuse-emulator/fuse-1.2.2-r5770. Revision Links: -------------- http://sourceforge.net/p/fuse-for-macosx/code/5770 Added Paths: ----------- vendor/fuse-emulator/fuse-1.2.2-r5770/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2016-08-22 12:00:13
|
Revision: 820 http://sourceforge.net/p/fuse-for-macosx/code/820 Author: fredm Date: 2016-08-22 12:00:10 +0000 (Mon, 22 Aug 2016) Log Message: ----------- Load . into vendor/fuse-emulator/current. Modified Paths: -------------- vendor/fuse-emulator/current/fuse/ChangeLog vendor/fuse-emulator/current/fuse/Makefile.am vendor/fuse-emulator/current/fuse/README vendor/fuse-emulator/current/fuse/configure.ac vendor/fuse-emulator/current/fuse/debugger/breakpoint.c vendor/fuse-emulator/current/fuse/debugger/breakpoint.h vendor/fuse-emulator/current/fuse/hacking/ChangeLog vendor/fuse-emulator/current/fuse/lib/compressed/disk_plus3.szx vendor/fuse-emulator/current/fuse/lib/uncompressed/disk_plus3.szx vendor/fuse-emulator/current/fuse/machines/specplus3.c vendor/fuse-emulator/current/fuse/man/fuse.1 vendor/fuse-emulator/current/fuse/peripherals/Makefile.am vendor/fuse-emulator/current/fuse/peripherals/disk/disk.c vendor/fuse-emulator/current/fuse/peripherals/disk/disk.h vendor/fuse-emulator/current/fuse/peripherals/disk/upd_fdc.c vendor/fuse-emulator/current/fuse/sound/coreaudiosound.c vendor/fuse-emulator/current/fuse/tape.c vendor/fuse-emulator/current/fuse/ui/gtk/fileselector.c vendor/fuse-emulator/current/fuse/ui/options.dat vendor/fuse-emulator/current/fuse/ui/widget/browse.c vendor/fuse-emulator/current/fuse/ui/win32/fileselector.c vendor/fuse-emulator/current/fuse/utils.c vendor/fuse-emulator/current/fuse/z80/z80_debugger_variables.c vendor/fuse-emulator/current/fuse/z80/z80_internals.h vendor/fuse-emulator/current/libspectrum/ChangeLog vendor/fuse-emulator/current/libspectrum/Makefile.am vendor/fuse-emulator/current/libspectrum/README vendor/fuse-emulator/current/libspectrum/configure.ac vendor/fuse-emulator/current/libspectrum/doc/libspectrum.3 vendor/fuse-emulator/current/libspectrum/doc/libspectrum.txt vendor/fuse-emulator/current/libspectrum/hacking/ChangeLog vendor/fuse-emulator/current/libspectrum/internals.h vendor/fuse-emulator/current/libspectrum/libspectrum.c vendor/fuse-emulator/current/libspectrum/libspectrum.h.in vendor/fuse-emulator/current/libspectrum/myglib/ghash.c vendor/fuse-emulator/current/libspectrum/pzx_read.c vendor/fuse-emulator/current/libspectrum/tape.c vendor/fuse-emulator/current/libspectrum/tape_block.c vendor/fuse-emulator/current/libspectrum/tape_block.h vendor/fuse-emulator/current/libspectrum/test/Makefile.am vendor/fuse-emulator/current/libspectrum/test/test.c vendor/fuse-emulator/current/libspectrum/test/test.h vendor/fuse-emulator/current/libspectrum/test/test_edges.c vendor/fuse-emulator/current/libspectrum/tzx_write.c vendor/fuse-emulator/current/libspectrum/utilities.c vendor/fuse-emulator/current/libspectrum/zlib.c Added Paths: ----------- vendor/fuse-emulator/current/fuse/peripherals/disk/trdos.c vendor/fuse-emulator/current/fuse/peripherals/disk/trdos.h vendor/fuse-emulator/current/libspectrum/test/no-pilot-gdb.tzx vendor/fuse-emulator/current/libspectrum/test/zero-tail.pzx vendor/fuse-emulator/current/libspectrum/zip.c vendor/fuse-emulator/current/libspectrum/zip.h Removed Paths: ------------- vendor/fuse-emulator/current/fuse/m4/glib-2.0.m4 vendor/fuse-emulator/current/fuse/m4/libxml.m4 Modified: vendor/fuse-emulator/current/fuse/ChangeLog =================================================================== --- vendor/fuse-emulator/current/fuse/ChangeLog 2016-08-22 11:59:47 UTC (rev 819) +++ vendor/fuse-emulator/current/fuse/ChangeLog 2016-08-22 12:00:10 UTC (rev 820) @@ -1,3 +1,29 @@ +2016-08-21 Philip Kendall <phi...@sh...> + + * Fuse 1.2.2 released. + + * New features: + * Support loading first tape, snapshot, dock cartridge or RZX file + found inside .zip files (Patrik Rak and Sergio Baldoví). + * Support auto-booting TR-DOS disk images without a boot file (thanks, + windale, BogDan Vatra and Fredrick Meunier) (Sergio Baldoví). + + * Emulation core improvements: + * Change microphone state when 0 tstate pulses do not have the no edge + flag set (Fredrick Meunier). + + * Machine specific improvements: + * Fix +3 disk autoload (thanks, windale and BogDan Vatra) (Sergio + Baldoví and Fredrick Meunier). + * Fix floppy drive selection when resetting a +3 (thanks, windale and + BogDan Vatra) (Sergio Baldoví). + + * Miscellaneous improvements: + * WidgetUI: Use description for tape blocks where available (Fredrick + Meunier). + * Use pkg-config to detect libpng and libxml2 (Alberto Garcia). + * Various minor bugfixes. + 2016-07-17 Philip Kendall <phi...@sh...> * Fuse 1.2.1 released. @@ -1325,4 +1351,4 @@ * Version 0.1.0 released. -$Id: ChangeLog 5686 2016-07-17 10:37:50Z fredm $ +$Id: ChangeLog 5761 2016-08-21 05:10:02Z fredm $ Modified: vendor/fuse-emulator/current/fuse/Makefile.am =================================================================== --- vendor/fuse-emulator/current/fuse/Makefile.am 2016-08-22 11:59:47 UTC (rev 819) +++ vendor/fuse-emulator/current/fuse/Makefile.am 2016-08-22 12:00:10 UTC (rev 820) @@ -1,7 +1,7 @@ ## Process this file with automake to produce Makefile.in ## Copyright (c) 1999-2015 Philip Kendall -## $Id: Makefile.am 5677 2016-07-09 13:58:02Z fredm $ +## $Id: Makefile.am 5735 2016-08-14 13:02: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 @@ -133,9 +133,7 @@ keysyms.pl \ m4/ax_create_stdint_h.m4 \ m4/ax_pthread.m4 \ - m4/glib-2.0.m4 \ m4/gtk-2.0.m4 \ - m4/libxml.m4 \ m4/pkg.m4 \ m4/sdl.m4 \ menu_data.dat \ Modified: vendor/fuse-emulator/current/fuse/README =================================================================== --- vendor/fuse-emulator/current/fuse/README 2016-08-22 11:59:47 UTC (rev 819) +++ vendor/fuse-emulator/current/fuse/README 2016-08-22 12:00:10 UTC (rev 820) @@ -1,4 +1,4 @@ -The Free Unix Spectrum Emulator (Fuse) 1.2.1 +The Free Unix Spectrum Emulator (Fuse) 1.2.2 ============================================ Fuse (the Free Unix Spectrum Emulator) was originally, and somewhat @@ -108,6 +108,6 @@ <http://www.worldofspectrum.org/forums/>. Philip Kendall <phi...@sh...> -17th July, 2016 +21st August, 2016 -$Id: README 5686 2016-07-17 10:37:50Z fredm $ +$Id: README 5761 2016-08-21 05:10:02Z fredm $ Modified: vendor/fuse-emulator/current/fuse/configure.ac =================================================================== --- vendor/fuse-emulator/current/fuse/configure.ac 2016-08-22 11:59:47 UTC (rev 819) +++ vendor/fuse-emulator/current/fuse/configure.ac 2016-08-22 12:00:10 UTC (rev 820) @@ -1,5 +1,5 @@ dnl Process this file with autoconf to produce a configure script. -dnl $Id: configure.ac 5686 2016-07-17 10:37:50Z fredm $ +dnl $Id: configure.ac 5761 2016-08-21 05:10:02Z fredm $ 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 @@ -20,12 +20,12 @@ dnl E-mail: phi...@sh... dnl Package version -m4_define([fuse_version], [1.2.1]) +m4_define([fuse_version], [1.2.2]) dnl Product full version m4_define([fuse_major_version], [1]) m4_define([fuse_minor_version], [2]) -m4_define([fuse_micro_version], [1]) +m4_define([fuse_micro_version], [2]) m4_define([fuse_nano_version], [0]) m4_define([fuse_full_version], [fuse_major_version.fuse_minor_version.fuse_micro_version.fuse_nano_version]) m4_define([fuse_rc_version], [fuse_major_version,fuse_minor_version,fuse_micro_version,fuse_nano_version]) @@ -507,40 +507,17 @@ libpng=yes) AC_MSG_RESULT($libpng) if test "$libpng" = yes; then - AC_PATH_PROG([LIBPNG_CONFIG], [libpng-config]) - if test -n "$LIBPNG_CONFIG"; then - PNG_CFLAGS=`libpng-config --cflags` - PNG_LIBS=`libpng-config --ldflags` - AC_DEFINE([USE_LIBPNG], 1, [Defined if we're going to be using the installed libpng]) - else - ac_save_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS $PNG_CFLAGS" - ac_save_LDFLAGS="$LDFLAGS" - LDFLAGS="$PNG_LIBS $LDFLAGS" + PKG_CHECK_MODULES( + [PNG], + [libpng], + [AC_DEFINE([USE_LIBPNG], 1, [Defined if we're going to be using the installed libpng])], + [AC_MSG_WARN([libpng not found - saving screenshots disabled])] + ) +fi - AC_CHECK_LIB( png, png_write_png, - [AC_CHECK_HEADER( - png.h, - [AC_DEFINE([USE_LIBPNG], 1, [Defined if we're going to be using the installed libpng]) PNG_LIBS='-lpng -lm -lz'], - [AC_CHECK_HEADERS(libpng/png.h, - [CPPFLAGS="$ac_save_CPPFLAGS $PNG_CFLAGS/libpng" - AC_DEFINE([USE_LIBPNG], 1, [Defined if we're going to be using the installed libpng]) PNG_LIBS='-lpng -lm -lz'], - [AC_MSG_WARN(png.h not found - saving screenshots disabled) - PNG_LIBS=''] - )], - )], - [AC_MSG_WARN(png_write_png not found - saving screenshots disabled) - PNG_LIBS=''] - ) +AC_SUBST(PNG_CFLAGS) +AC_SUBST(PNG_LIBS) - CPPFLAGS="$ac_save_CPPFLAGS" - LDFLAGS="$ac_save_LDFLAGS" - fi - - AC_SUBST(PNG_CFLAGS) - AC_SUBST(PNG_LIBS) -fi - dnl Check if a version of libasound which supplies pcm is available AC_MSG_CHECKING(whether ALSA requested) AC_ARG_WITH(alsa, @@ -595,7 +572,7 @@ dnl Check if CoreAudio is available AC_CHECK_HEADER( - CoreAudio/AudioHardware.h, + AudioToolbox/AudioToolbox.h, [coreaudio_available=yes],, ) @@ -632,7 +609,7 @@ SOUND_LIBADD='sound/sunsound.$(OBJEXT)' SOUND_LIBS='' AC_MSG_RESULT(OpenBSD) elif test "$coreaudio_available" = yes; then - SOUND_LIBADD='sound/coreaudiosound.$(OBJEXT)' SOUND_LIBS='-framework CoreAudio -framework AudioUnit -framework CoreServices' sound_fifo=yes + SOUND_LIBADD='sound/coreaudiosound.$(OBJEXT)' SOUND_LIBS='-framework CoreAudio -framework AudioUnit' sound_fifo=yes AC_MSG_RESULT(CoreAudio) elif test "$wii" = yes; then SOUND_LIBADD='sound/wiisound.$(OBJEXT)' SOUND_LIBS='' sound_fifo=yes @@ -737,11 +714,17 @@ libxml2=yes) AC_MSG_RESULT($libxml2) if test "$libxml2" = yes; then - AM_PATH_XML2(2.0.0,AC_DEFINE([HAVE_LIB_XML2], 1, - [Defined if we've got libxml2]), - AC_MSG_WARN(libxml2 not found - config file will use ini format)) + PKG_CHECK_MODULES( + [XML], + [libxml-2.0], + [AC_DEFINE([HAVE_LIB_XML2], 1, [Defined if we've got libxml2])], + [AC_MSG_WARN([libxml2 not found - config file will use ini format])] + ) fi +AC_SUBST(XML_CFLAGS) +AC_SUBST(XML_LIBS) + dnl Work out which timer routines to use AC_MSG_CHECKING(which timer routines to use) if test "$UI" = sdl; then Modified: vendor/fuse-emulator/current/fuse/debugger/breakpoint.c =================================================================== --- vendor/fuse-emulator/current/fuse/debugger/breakpoint.c 2016-08-22 11:59:47 UTC (rev 819) +++ vendor/fuse-emulator/current/fuse/debugger/breakpoint.c 2016-08-22 12:00:10 UTC (rev 820) @@ -136,8 +136,8 @@ int debugger_breakpoint_add_time( debugger_breakpoint_type type, - libspectrum_dword tstates, size_t ignore, - debugger_breakpoint_life life, + libspectrum_dword breakpoint_tstates, + size_t ignore, debugger_breakpoint_life life, debugger_expression *condition ) { debugger_breakpoint_value value; @@ -153,8 +153,8 @@ } value.time.triggered = 0; - value.time.tstates = tstates; - value.time.initial_tstates = tstates; + value.time.tstates = breakpoint_tstates; + value.time.initial_tstates = breakpoint_tstates; return breakpoint_add( type, value, ignore, life, condition ); } Modified: vendor/fuse-emulator/current/fuse/debugger/breakpoint.h =================================================================== --- vendor/fuse-emulator/current/fuse/debugger/breakpoint.h 2016-08-22 11:59:47 UTC (rev 819) +++ vendor/fuse-emulator/current/fuse/debugger/breakpoint.h 2016-08-22 12:00:10 UTC (rev 820) @@ -136,7 +136,7 @@ int debugger_breakpoint_add_time( - debugger_breakpoint_type type, libspectrum_dword tstates, + debugger_breakpoint_type type, libspectrum_dword breakpoint_tstates, size_t ignore, debugger_breakpoint_life life, debugger_expression *condition ); Modified: vendor/fuse-emulator/current/fuse/hacking/ChangeLog =================================================================== --- vendor/fuse-emulator/current/fuse/hacking/ChangeLog 2016-08-22 11:59:47 UTC (rev 819) +++ vendor/fuse-emulator/current/fuse/hacking/ChangeLog 2016-08-22 12:00:10 UTC (rev 820) @@ -5178,7 +5178,7 @@ 20160526 debugger/commandl.l,man/fuse.1: allow strings with escaped spaces in the debugger (bug #337) (Sergio). 20160528 ChangeLog: add even more recent changes (Fred). -20160528 deugger/system_variable.c: include file (thanks, Fred) (Phil). +20160528 debugger/system_variable.c: include file (thanks, Fred) (Phil). 20160529 Makefile.am,lib/Makefile.am,z80/Makefile.am: distribute m4/ax_create_stdint_h.m4,lib/tests/success.d80.bz2 and z80/tests/README (Sergio). @@ -5368,3 +5368,42 @@ (Fred). 20160717 ChangeLog,README,configure.ac,man/fuse.1: update release dates and mark this release as 1.2.1 (Fred). +20160719 z80/{z80_debugger_variables.c,z80_internals.h}: include header for + z80_debugger_variables_init() definition (Fred). +20160719 debugger/breakpoint.[ch]: rename local argument shadowing global + variable (Fred). +20160719 ui/widget/browse.c: use description for tape blocks where available + (Fred). +20160726 configure.ac,sound/coreaudiosound.c: remove lingering references to + deprecated Carbon APIs (Fred). +20160731 Makefile.am,m4/glib-2.0.m4: remove the unused (since r5349) glib-2.0.m4 + file (from patch #375) (Alberto Garcia). +20160801 ui/{gtk,win32}/fileselector.c: add ".zip" to the file filters in + open file dialogs (thanks, Phil) (Sergio). +20160807 utils.c: remove redundant whitespace (Fred). +20160807 machines/specplus3.c: fix +3 disk autoload (part of bug #356) + (thanks, windale and BogDan Vatra) (Fred). +20160807 peripherals/disk/upd_fdc.c: fix floppy drive selection when resetting a + +3 (part of bug #356) (thanks, windale and BogDan Vatra) (Sergio). +20160807 lib/{compressed,uncompressed}/disk_plus3.szx: update disk_plus3.szx to + set PC = 0x08E8 as the proper entry point for "Loader" menu option + (part of bug #356) (thanks, windale and BogDan Vatra) (Sergio). +20160812 tape.c: change microphone state when 0 tstate pulses do not have the no + edge flag set (Fred). +20160812 Makefile.am,configure.ac,m4/libxml.m4: use pkg-config to detect libpng + and libxml2 (more from patch #375) (Alberto Garcia). +20160816 ChangeLog,README,configure.ac,man/fuse.1: bump versions to 1.2.2(-pre1) + (Fred). +20160816 man/fuse.1,peripherals/{Makefile.am,disk/{disk.[ch],trdos.[ch]}}: + insert a boot loader in TRD/SCL disk images when autoload is enabled + (part of feature request #90) (thanks, windale, BogDan and Fred) + (Sergio). +20160817 ChangeLog: tweak zip support description (disks are not supported) + (Sergio). +20160817 man/fuse.1: document zip compression support (Sergio). +20160817 ui/gtk/fileselector.c: add ".png" to the file filters in save file + dialogs and check the support for ".svg" files (Sergio). +20160820 ui/options.dat: fix mnemonics in drives setup to avoid collisions + (Sergio). +20160821 ChangeLog,README,configure.ac,man/fuse.1: update release dates and mark + this release as 1.2.2 (Fred). Modified: vendor/fuse-emulator/current/fuse/lib/compressed/disk_plus3.szx =================================================================== (Binary files differ) Modified: vendor/fuse-emulator/current/fuse/lib/uncompressed/disk_plus3.szx =================================================================== (Binary files differ) Deleted: vendor/fuse-emulator/current/fuse/m4/glib-2.0.m4 =================================================================== --- vendor/fuse-emulator/current/fuse/m4/glib-2.0.m4 2016-08-22 11:59:47 UTC (rev 819) +++ vendor/fuse-emulator/current/fuse/m4/glib-2.0.m4 2016-08-22 12:00:10 UTC (rev 820) @@ -1,214 +0,0 @@ -# Configure paths for GLIB -# Owen Taylor 1997-2001 - -# Taken from Glib 2.4.2 by PAK 2004/07/06 - -dnl AM_PATH_GLIB_2_0([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]]) -dnl Test for GLIB, and define GLIB_CFLAGS and GLIB_LIBS, if gmodule, gobject or -dnl gthread is specified in MODULES, pass to pkg-config -dnl -AC_DEFUN([AM_PATH_GLIB_2_0], -[dnl -dnl Get the cflags and libraries from pkg-config -dnl -AC_ARG_ENABLE(glibtest, [ --disable-glibtest do not try to compile and run a test GLIB program], - , enable_glibtest=yes) - - pkg_config_args=glib-2.0 - for module in . $4 - do - case "$module" in - gmodule) - pkg_config_args="$pkg_config_args gmodule-2.0" - ;; - gobject) - pkg_config_args="$pkg_config_args gobject-2.0" - ;; - gthread) - pkg_config_args="$pkg_config_args gthread-2.0" - ;; - esac - done - - AC_PATH_PROG(PKG_CONFIG, pkg-config, no) - - no_glib="" - - if test x$PKG_CONFIG != xno ; then - if $PKG_CONFIG --atleast-pkgconfig-version 0.7 ; then - : - else - echo *** pkg-config too old; version 0.7 or better required. - no_glib=yes - PKG_CONFIG=no - fi - else - no_glib=yes - fi - - min_glib_version=ifelse([$1], ,2.0.0,$1) - AC_MSG_CHECKING(for GLIB - version >= $min_glib_version) - - if test x$PKG_CONFIG != xno ; then - ## don't try to run the test against uninstalled libtool libs - if $PKG_CONFIG --uninstalled $pkg_config_args; then - echo "Will use uninstalled version of GLib found in PKG_CONFIG_PATH" - enable_glibtest=no - fi - - if $PKG_CONFIG --atleast-version $min_glib_version $pkg_config_args; then - : - else - no_glib=yes - fi - fi - - if test x"$no_glib" = x ; then - GLIB_GENMARSHAL=`$PKG_CONFIG --variable=glib_genmarshal glib-2.0` - GOBJECT_QUERY=`$PKG_CONFIG --variable=gobject_query glib-2.0` - GLIB_MKENUMS=`$PKG_CONFIG --variable=glib_mkenums glib-2.0` - - GLIB_CFLAGS=`$PKG_CONFIG --cflags $pkg_config_args` - GLIB_LIBS=`$PKG_CONFIG --libs $pkg_config_args` - glib_config_major_version=`$PKG_CONFIG --modversion glib-2.0 | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` - glib_config_minor_version=`$PKG_CONFIG --modversion glib-2.0 | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` - glib_config_micro_version=`$PKG_CONFIG --modversion glib-2.0 | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` - if test "x$enable_glibtest" = "xyes" ; then - ac_save_CFLAGS="$CFLAGS" - ac_save_LIBS="$LIBS" - CFLAGS="$CFLAGS $GLIB_CFLAGS" - LIBS="$GLIB_LIBS $LIBS" -dnl -dnl Now check if the installed GLIB is sufficiently new. (Also sanity -dnl checks the results of pkg-config to some extent) -dnl - rm -f conf.glibtest - AC_TRY_RUN([ -#include <glib.h> -#include <stdio.h> -#include <stdlib.h> - -int -main () -{ - int major, minor, micro; - char *tmp_version; - - system ("touch conf.glibtest"); - - /* HP/UX 9 (%@#!) writes to sscanf strings */ - tmp_version = g_strdup("$min_glib_version"); - if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { - printf("%s, bad version string\n", "$min_glib_version"); - exit(1); - } - - if ((glib_major_version != $glib_config_major_version) || - (glib_minor_version != $glib_config_minor_version) || - (glib_micro_version != $glib_config_micro_version)) - { - printf("\n*** 'pkg-config --modversion glib-2.0' returned %d.%d.%d, but GLIB (%d.%d.%d)\n", - $glib_config_major_version, $glib_config_minor_version, $glib_config_micro_version, - glib_major_version, glib_minor_version, glib_micro_version); - printf ("*** was found! If pkg-config was correct, then it is best\n"); - printf ("*** to remove the old version of GLib. You may also be able to fix the error\n"); - printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n"); - printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n"); - printf("*** required on your system.\n"); - printf("*** If pkg-config was wrong, set the environment variable PKG_CONFIG_PATH\n"); - printf("*** to point to the correct configuration files\n"); - } - else if ((glib_major_version != GLIB_MAJOR_VERSION) || - (glib_minor_version != GLIB_MINOR_VERSION) || - (glib_micro_version != GLIB_MICRO_VERSION)) - { - printf("*** GLIB header files (version %d.%d.%d) do not match\n", - GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION, GLIB_MICRO_VERSION); - printf("*** library (version %d.%d.%d)\n", - glib_major_version, glib_minor_version, glib_micro_version); - } - else - { - if ((glib_major_version > major) || - ((glib_major_version == major) && (glib_minor_version > minor)) || - ((glib_major_version == major) && (glib_minor_version == minor) && (glib_micro_version >= micro))) - { - return 0; - } - else - { - printf("\n*** An old version of GLIB (%d.%d.%d) was found.\n", - glib_major_version, glib_minor_version, glib_micro_version); - printf("*** You need a version of GLIB newer than %d.%d.%d. The latest version of\n", - major, minor, micro); - printf("*** GLIB is always available from ftp://ftp.gtk.org.\n"); - printf("***\n"); - printf("*** If you have already installed a sufficiently new version, this error\n"); - printf("*** probably means that the wrong copy of the pkg-config shell script is\n"); - printf("*** being found. The easiest way to fix this is to remove the old version\n"); - printf("*** of GLIB, but you can also set the PKG_CONFIG environment to point to the\n"); - printf("*** correct copy of pkg-config. (In this case, you will have to\n"); - printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n"); - printf("*** so that the correct libraries are found at run-time))\n"); - } - } - return 1; -} -],, no_glib=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) - CFLAGS="$ac_save_CFLAGS" - LIBS="$ac_save_LIBS" - fi - fi - if test "x$no_glib" = x ; then - AC_MSG_RESULT(yes (version $glib_config_major_version.$glib_config_minor_version.$glib_config_micro_version)) - ifelse([$2], , :, [$2]) - else - AC_MSG_RESULT(no) - if test "$PKG_CONFIG" = "no" ; then - echo "*** A new enough version of pkg-config was not found." - echo "*** See http://www.freedesktop.org/software/pkgconfig/" - else - if test -f conf.glibtest ; then - : - else - echo "*** Could not run GLIB test program, checking why..." - ac_save_CFLAGS="$CFLAGS" - ac_save_LIBS="$LIBS" - CFLAGS="$CFLAGS $GLIB_CFLAGS" - LIBS="$LIBS $GLIB_LIBS" - AC_TRY_LINK([ -#include <glib.h> -#include <stdio.h> -], [ return ((glib_major_version) || (glib_minor_version) || (glib_micro_version)); ], - [ echo "*** The test program compiled, but did not run. This usually means" - echo "*** that the run-time linker is not finding GLIB or finding the wrong" - echo "*** version of GLIB. If it is not finding GLIB, you'll need to set your" - echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" - echo "*** to the installed location Also, make sure you have run ldconfig if that" - echo "*** is required on your system" - echo "***" - echo "*** If you have an old version installed, it is best to remove it, although" - echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ], - [ echo "*** The test program failed to compile or link. See the file config.log for the" - echo "*** exact error that occured. This usually means GLIB is incorrectly installed."]) - CFLAGS="$ac_save_CFLAGS" - LIBS="$ac_save_LIBS" - fi - fi - GLIB_CFLAGS="" - GLIB_LIBS="" - GLIB_GENMARSHAL="" - GOBJECT_QUERY="" - GLIB_MKENUMS="" - ifelse([$3], , :, [$3]) - fi - AC_SUBST(GLIB_CFLAGS) - AC_SUBST(GLIB_LIBS) - AC_SUBST(GLIB_GENMARSHAL) - AC_SUBST(GOBJECT_QUERY) - AC_SUBST(GLIB_MKENUMS) - rm -f conf.glibtest -]) Deleted: vendor/fuse-emulator/current/fuse/m4/libxml.m4 =================================================================== --- vendor/fuse-emulator/current/fuse/m4/libxml.m4 2016-08-22 11:59:47 UTC (rev 819) +++ vendor/fuse-emulator/current/fuse/m4/libxml.m4 2016-08-22 12:00:10 UTC (rev 820) @@ -1,190 +0,0 @@ -# Configure paths for LIBXML2 -# Toshio Kuratomi 2001-04-21 -# Adapted from: -# Configure paths for GLIB -# Owen Taylor 97-11-3 -# Modified to use CPPFLAGS instead of CFLAGS -# Mike Hommey 2004-05-26 - -# Taken from libxml2 2.6.10 by PAK 2004/07/06 - -dnl AM_PATH_XML2([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]]) -dnl Test for XML, and define XML_CFLAGS and XML_LIBS -dnl -AC_DEFUN([AM_PATH_XML2],[ -AC_ARG_WITH(xml-prefix, - [ --with-xml-prefix=PFX Prefix where libxml is installed (optional)], - xml_config_prefix="$withval", xml_config_prefix="") -AC_ARG_WITH(xml-exec-prefix, - [ --with-xml-exec-prefix=PFX Exec prefix where libxml is installed (optional)], - xml_config_exec_prefix="$withval", xml_config_exec_prefix="") -AC_ARG_ENABLE(xmltest, - [ --disable-xmltest Do not try to compile and run a test LIBXML program],, - enable_xmltest=yes) - - if test x$xml_config_exec_prefix != x ; then - xml_config_args="$xml_config_args" - if test x${XML2_CONFIG+set} != xset ; then - XML2_CONFIG=$xml_config_exec_prefix/bin/xml2-config - fi - fi - if test x$xml_config_prefix != x ; then - xml_config_args="$xml_config_args --prefix=$xml_config_prefix" - if test x${XML2_CONFIG+set} != xset ; then - XML2_CONFIG=$xml_config_prefix/bin/xml2-config - fi - fi - - AC_PATH_PROG(XML2_CONFIG, xml2-config, no) - min_xml_version=ifelse([$1], ,2.0.0,[$1]) - AC_MSG_CHECKING(for libxml - version >= $min_xml_version) - no_xml="" - if test "$XML2_CONFIG" = "no" ; then - no_xml=yes - else - XML_CFLAGS=`$XML2_CONFIG $xml_config_args --cflags` - XML_LIBS=`$XML2_CONFIG $xml_config_args --libs` - xml_config_major_version=`$XML2_CONFIG $xml_config_args --version | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` - xml_config_minor_version=`$XML2_CONFIG $xml_config_args --version | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` - xml_config_micro_version=`$XML2_CONFIG $xml_config_args --version | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` - if test "x$enable_xmltest" = "xyes" ; then - ac_save_CPPFLAGS="$CPPFLAGS" - ac_save_LIBS="$LIBS" - CPPFLAGS="$CPPFLAGS $XML_CFLAGS" - LIBS="$XML_LIBS $LIBS" -dnl -dnl Now check if the installed libxml is sufficiently new. -dnl (Also sanity checks the results of xml2-config to some extent) -dnl - rm -f conf.xmltest - AC_TRY_RUN([ -#include <stdlib.h> -#include <stdio.h> -#include <string.h> -#include <libxml/xmlversion.h> - -int -main() -{ - int xml_major_version, xml_minor_version, xml_micro_version; - int major, minor, micro; - char *tmp_version; - - system("touch conf.xmltest"); - - /* Capture xml2-config output via autoconf/configure variables */ - /* HP/UX 9 (%@#!) writes to sscanf strings */ - tmp_version = (char *)strdup("$min_xml_version"); - if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { - printf("%s, bad version string from xml2-config\n", "$min_xml_version"); - exit(1); - } - free(tmp_version); - - /* Capture the version information from the header files */ - tmp_version = (char *)strdup(LIBXML_DOTTED_VERSION); - if (sscanf(tmp_version, "%d.%d.%d", &xml_major_version, &xml_minor_version, &xml_micro_version) != 3) { - printf("%s, bad version string from libxml includes\n", "LIBXML_DOTTED_VERSION"); - exit(1); - } - free(tmp_version); - - /* Compare xml2-config output to the libxml headers */ - if ((xml_major_version != $xml_config_major_version) || - (xml_minor_version != $xml_config_minor_version) || - (xml_micro_version != $xml_config_micro_version)) - { - printf("*** libxml header files (version %d.%d.%d) do not match\n", - xml_major_version, xml_minor_version, xml_micro_version); - printf("*** xml2-config (version %d.%d.%d)\n", - $xml_config_major_version, $xml_config_minor_version, $xml_config_micro_version); - return 1; - } -/* Compare the headers to the library to make sure we match */ - /* Less than ideal -- doesn't provide us with return value feedback, - * only exits if there's a serious mismatch between header and library. - */ - LIBXML_TEST_VERSION; - - /* Test that the library is greater than our minimum version */ - if ((xml_major_version > major) || - ((xml_major_version == major) && (xml_minor_version > minor)) || - ((xml_major_version == major) && (xml_minor_version == minor) && - (xml_micro_version >= micro))) - { - return 0; - } - else - { - printf("\n*** An old version of libxml (%d.%d.%d) was found.\n", - xml_major_version, xml_minor_version, xml_micro_version); - printf("*** You need a version of libxml newer than %d.%d.%d. The latest version of\n", - major, minor, micro); - printf("*** libxml is always available from ftp://ftp.xmlsoft.org.\n"); - printf("***\n"); - printf("*** If you have already installed a sufficiently new version, this error\n"); - printf("*** probably means that the wrong copy of the xml2-config shell script is\n"); - printf("*** being found. The easiest way to fix this is to remove the old version\n"); - printf("*** of LIBXML, but you can also set the XML2_CONFIG environment to point to the\n"); - printf("*** correct copy of xml2-config. (In this case, you will have to\n"); - printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n"); - printf("*** so that the correct libraries are found at run-time))\n"); - } - return 1; -} -],, no_xml=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) - CPPFLAGS="$ac_save_CPPFLAGS" - LIBS="$ac_save_LIBS" - fi - fi - - if test "x$no_xml" = x ; then - AC_MSG_RESULT(yes (version $xml_config_major_version.$xml_config_minor_version.$xml_config_micro_version)) - ifelse([$2], , :, [$2]) - else - AC_MSG_RESULT(no) - if test "$XML2_CONFIG" = "no" ; then - echo "*** The xml2-config script installed by LIBXML could not be found" - echo "*** If libxml was installed in PREFIX, make sure PREFIX/bin is in" - echo "*** your path, or set the XML2_CONFIG environment variable to the" - echo "*** full path to xml2-config." - else - if test -f conf.xmltest ; then - : - else - echo "*** Could not run libxml test program, checking why..." - CPPFLAGS="$CPPFLAGS $XML_CFLAGS" - LIBS="$LIBS $XML_LIBS" - AC_TRY_LINK([ -#include <libxml/xmlversion.h> -#include <stdio.h> -], [ LIBXML_TEST_VERSION; return 0;], - [ echo "*** The test program compiled, but did not run. This usually means" - echo "*** that the run-time linker is not finding LIBXML or finding the wrong" - echo "*** version of LIBXML. If it is not finding LIBXML, you'll need to set your" - echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" - echo "*** to the installed location Also, make sure you have run ldconfig if that" - echo "*** is required on your system" - echo "***" - echo "*** If you have an old version installed, it is best to remove it, although" - echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ], - [ echo "*** The test program failed to compile or link. See the file config.log for the" - echo "*** exact error that occured. This usually means LIBXML was incorrectly installed" - echo "*** or that you have moved LIBXML since it was installed. In the latter case, you" - echo "*** may want to edit the xml2-config script: $XML2_CONFIG" ]) - CPPFLAGS="$ac_save_CPPFLAGS" - LIBS="$ac_save_LIBS" - fi - fi - - XML_CFLAGS="" - XML_LIBS="" - ifelse([$3], , :, [$3]) - fi - AC_SUBST(XML_CFLAGS) - AC_SUBST(XML_LIBS) - rm -f conf.xmltest -]) Modified: vendor/fuse-emulator/current/fuse/machines/specplus3.c =================================================================== --- vendor/fuse-emulator/current/fuse/machines/specplus3.c 2016-08-22 11:59:47 UTC (rev 819) +++ vendor/fuse-emulator/current/fuse/machines/specplus3.c 2016-08-22 12:00:10 UTC (rev 820) @@ -69,6 +69,7 @@ static const fdd_params_t *ui_drive_get_params_a( void ); static const fdd_params_t *ui_drive_get_params_b( void ); static int ui_drive_inserted( const ui_media_drive_info_t *drive, int new ); +static int ui_drive_autoload( void ); static ui_media_drive_info_t ui_drives[ SPECPLUS3_NUM_DRIVES ] = { { @@ -83,6 +84,7 @@ /* .is_available = */ &ui_drive_is_available, /* .get_params = */ &ui_drive_get_params_a, /* .insert_hook = */ &ui_drive_inserted, + /* .autoload_hook = */ &ui_drive_autoload, }, { /* .name = */ "+3 Disk B:", @@ -96,6 +98,7 @@ /* .is_available = */ &ui_drive_is_available, /* .get_params = */ &ui_drive_get_params_b, /* .insert_hook = */ &ui_drive_inserted, + /* .autoload_hook = */ &ui_drive_autoload, }, }; @@ -179,7 +182,8 @@ fdd_init( &specplus3_drives[ 0 ], FDD_SHUGART, dt, 1 ); dt = &fdd_params[ option_enumerate_diskoptions_drive_plus3b_type() ]; - fdd_init( &specplus3_drives[ 1 ], dt->enabled ? FDD_SHUGART : FDD_TYPE_NONE, dt, 1 ); + fdd_init( &specplus3_drives[ 1 ], dt->enabled ? FDD_SHUGART : FDD_TYPE_NONE, + dt, 1 ); } static int @@ -362,14 +366,16 @@ } libspectrum_byte -specplus3_fdc_status( libspectrum_word port GCC_UNUSED, libspectrum_byte *attached ) +specplus3_fdc_status( libspectrum_word port GCC_UNUSED, + libspectrum_byte *attached ) { *attached = 0xff; /* TODO: check this */ return upd_fdc_read_status( specplus3_fdc ); } libspectrum_byte -specplus3_fdc_read( libspectrum_word port GCC_UNUSED, libspectrum_byte *attached ) +specplus3_fdc_read( libspectrum_word port GCC_UNUSED, + libspectrum_byte *attached ) { *attached = 0xff; /* TODO: check this */ return upd_fdc_read_data( specplus3_fdc ); @@ -437,3 +443,35 @@ { return 0; } + +static int +ui_drive_autoload( void ) +{ + int error; + utils_file snap; + libspectrum_id_t type; + + /* Look for an autoload snap. Try .szx first, then .z80 */ + type = LIBSPECTRUM_ID_SNAPSHOT_SZX; + error = utils_read_auxiliary_file( "disk_plus3.szx", &snap, + UTILS_AUXILIARY_LIB ); + if( error == -1 ) { + type = LIBSPECTRUM_ID_SNAPSHOT_Z80; + error = utils_read_auxiliary_file( "disk_plus3.z80", &snap, + UTILS_AUXILIARY_LIB ); + } + + /* If we couldn't find either, give up */ + if( error == -1 ) { + ui_error( UI_ERROR_ERROR, "Couldn't find autoload snap for +3 disk" ); + return 1; + } + if( error ) return error; + + error = snapshot_read_buffer( snap.buffer, snap.length, type ); + if( error ) { utils_close_file( &snap ); return error; } + + utils_close_file( &snap ); + + return 0; +} Modified: vendor/fuse-emulator/current/fuse/man/fuse.1 =================================================================== --- vendor/fuse-emulator/current/fuse/man/fuse.1 2016-08-22 11:59:47 UTC (rev 819) +++ vendor/fuse-emulator/current/fuse/man/fuse.1 2016-08-22 12:00:10 UTC (rev 820) @@ -23,7 +23,7 @@ .\" E-mail: phi...@sh... .\" .\" -.TH fuse 1 "17th July, 2016" "Version 1.2.1" "Emulators" +.TH fuse 1 "21st August, 2016" "Version 1.2.2" "Emulators" .\" .\"------------------------------------------------------------------ .\" @@ -68,9 +68,10 @@ See the .B "COMPRESSED FILES" section for details on reading files compressed with -.IR bzip2 "(3)" +.IR bzip2 "(3)," +.IR gzip "(3)" or -.IR gzip "(3)." +.IR zip "(3)." .\" .\"------------------------------------------------------------------ .\" @@ -121,7 +122,8 @@ Specify whether tape and disk files should be automatically loaded when they are opened using the .I "File, Open..." -menu option. (Enabled by default, but you can use +menu option. In the case of TRD/SCL disk images, inserts also a boot +loader file when none is available. (Enabled by default, but you can use .RB ` \-\-no\-auto\-load ' to disable). Same as the Media Options dialog's .I "Auto-load media" @@ -5006,7 +5008,9 @@ .PP .I .TRD .RS -TR-DOS disk image; for detailed information please see +TR-DOS disk image. TRD and SCL sectors are loaded interleaved, therefore +you might experience problems with TR\-DOS ROMs that use the turbo +format (sequential sectors); for detailed information please see .I http://web.archive.org/web/20070808150548/http://www.ramsoft.bbk.org/tech/tr\-info.zip .RE .PP @@ -5142,11 +5146,13 @@ Assuming the appropriate libraries were available when .IR libspectrum (3) was compiled, snapshots, tape images, dock cartridges and input -recording files can be read from files compressed with -.IR bzip2 (3) +recording files (RZX) can be read from files compressed with +.IR bzip2 "(3)," +.IR gzip (3) or -.IR gzip (3) -just as if they were uncompressed. +.IR zip (3) +just as if they were uncompressed. In the zip case, only the first +supported file found inside the archive is loaded. There is currently no support for reading compressed +3, DISCiPLE/+D or Beta disk images. .\" @@ -5185,7 +5191,8 @@ .IR libspectrum "(3)," .IR ogg123 "(1)," .IR xspect "(1)," -.IR xzx "(1)." +.IR xzx "(1)," +.IR zip "(3)." .PP The comp.sys.sinclair Spectrum FAQ, at .br Modified: vendor/fuse-emulator/current/fuse/peripherals/Makefile.am =================================================================== --- vendor/fuse-emulator/current/fuse/peripherals/Makefile.am 2016-08-22 11:59:47 UTC (rev 819) +++ vendor/fuse-emulator/current/fuse/peripherals/Makefile.am 2016-08-22 12:00:10 UTC (rev 820) @@ -3,7 +3,7 @@ ## Copyright (c) 2015 Stuart Brady ## Copyright (c) 2015 Sergio Baldoví -## $Id: Makefile.am 5434 2016-05-01 04:22:45Z fredm $ +## $Id: Makefile.am 5755 2016-08-17 12:10:38Z 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 @@ -47,6 +47,7 @@ peripherals/disk/fdd.c \ peripherals/disk/opus.c \ peripherals/disk/plusd.c \ + peripherals/disk/trdos.c \ peripherals/disk/upd_fdc.c \ peripherals/disk/wd_fdc.c \ peripherals/ide/divide.c \ @@ -90,6 +91,7 @@ peripherals/disk/fdd.h \ peripherals/disk/opus.h \ peripherals/disk/plusd.h \ + peripherals/disk/trdos.h \ peripherals/disk/upd_fdc.h \ peripherals/disk/wd_fdc.h \ peripherals/ide/divide.h \ Modified: vendor/fuse-emulator/current/fuse/peripherals/disk/disk.c =================================================================== --- vendor/fuse-emulator/current/fuse/peripherals/disk/disk.c 2016-08-22 11:59:47 UTC (rev 819) +++ vendor/fuse-emulator/current/fuse/peripherals/disk/disk.c 2016-08-22 12:00:10 UTC (rev 820) @@ -36,6 +36,7 @@ #include "crc.h" #include "disk.h" #include "settings.h" +#include "trdos.h" #include "ui/ui.h" #include "utils.h" @@ -133,6 +134,26 @@ return 0; } +void +position_context_save( const disk_t *d, disk_position_context_t *c ) +{ + c->track = d->track; + c->clocks = d->clocks; + c->fm = d->fm; + c->weak = d->weak; + c->i = d->i; +} + +void +position_context_restore( disk_t *d, const disk_position_context_t *c ) +{ + d->track = c->track; + d->clocks = c->clocks; + d->fm = c->fm; + d->weak = c->weak; + d->i = c->i; +} + static int id_read( disk_t *d, int *head, int *track, int *sector, int *length ) { @@ -1209,10 +1230,176 @@ return d->status = DISK_OK; } +/* 1 RANDOMIZE USR 15619: REM : RUN " " */ +static libspectrum_byte beta128_boot_loader[] = { + 0x00, 0x01, 0x1c, 0x00, 0xf9, 0xc0, 0x31, 0x35, 0x36, 0x31, 0x39, 0x0e, + 0x00, 0x00, 0x03, 0x3d, 0x00, 0x3a, 0xea, 0x3a, 0xf7, 0x22, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x0d, +}; + static int +trdos_insert_basic_file( disk_t *d, trdos_spec_t *spec, + const libspectrum_byte *data, unsigned int size ) +{ + unsigned int fat_sector, fat_entry, n_sec, n_bytes, n_copied; + int i, t, s, slen, len_pre_dam, len_pre_data; + disk_gap_t *g = &gaps[ GAP_TRDOS ]; + trdos_dirent_t entry; + libspectrum_byte trailing_data[] = { 0x80, 0xaa, 0x01, 0x00 }; /* line 1 */ + + /* Check free FAT entries (we don't purge deleted files) */ + if( spec->file_count >= 128 ) + return DISK_UNSUP; + + /* Check free sectors */ + n_sec = ( size + ARRAY_SIZE( trailing_data ) + 255 ) / 256; + if( spec->free_sectors < n_sec ) + return DISK_UNSUP; + + /* Calculate sector raw length */ + slen = calc_sectorlen( ( d->density != DISK_SD && d->density != DISK_8_SD ), + 256, GAP_TRDOS ); + + /* Calculate initial gap before data in a sector */ + len_pre_dam = 0; + len_pre_dam += g->sync_len + ( g->mark >= 0 ? 3 : 0 ) + 7; /* ID */ + len_pre_dam += g->len[2]; /* GAP II */ + + len_pre_data = len_pre_dam; + len_pre_data += g->sync_len + ( g->mark >= 0 ? 3 : 0 ) + 1; /* DAM */ + + /* Write file data */ + n_copied = 0; + s = spec->first_free_sector; + t = spec->first_free_track; + DISK_SET_TRACK_IDX( d, t ); + + for( i = 0; i < n_sec; i++ ) { + memset( head, 0, 256 ); + n_bytes = 0; + + /* Copy chunk of file body */ + if( n_copied < size ) { + n_bytes = ( size - n_copied > 256 )? 256 : size - n_copied; + memcpy( head, data + n_copied, n_bytes ); + n_copied += n_bytes; + } + + /* Copy trailing parameters */ + if( n_copied >= size ) { + while( n_copied - size < ARRAY_SIZE( trailing_data ) && n_bytes < 256 ) { + head[ n_bytes ] = trailing_data[ n_copied - size ]; + n_copied++; + n_bytes++; + } + } + + /* Write buffer to disk */ + d->i = g->len[1] + ( s % 8 * 2 + s / 8 ) * slen; /* 1 9 2 10 3 ... */ + d->i += len_pre_dam; + data_add( d, NULL, head, 256, NO_DDAM, GAP_TRDOS, CRC_OK, NO_AUTOFILL, + NULL ); + + /* Next sector */ + s = ( s + 1 ) % 16; + + /* Next track */ + if( s == 0 ) { + t = t + 1; + if( t >= d->cylinders ) return DISK_UNSUP; + DISK_SET_TRACK_IDX( d, t ); + } + } + + /* Write FAT entry */ + memcpy( entry.filename, "boot ", 8 ); + entry.file_extension = 'B'; + entry.param1 = size; /* assumes variables = 0 */ + entry.param2 = size; + entry.file_length = n_sec; + entry.start_sector = spec->first_free_sector; + entry.start_track = spec->first_free_track; + + /* Copy sector to buffer, modify and write back to disk recalculating CRCs */ + DISK_SET_TRACK_IDX( d, 0 ); + fat_sector = spec->file_count / 16; + d->i = g->len[1] + ( ( fat_sector ) % 8 * 2 + ( fat_sector ) / 8 ) * slen; + memcpy( head, d->track + d->i + len_pre_data, 256 ); + + fat_entry = spec->file_count % 16; + trdos_write_dirent( head + fat_entry * 16, &entry ); + + d->i += len_pre_dam; + data_add( d, NULL, head, 256, NO_DDAM, GAP_TRDOS, CRC_OK, NO_AUTOFILL, NULL ); + + /* Write specification sector */ + spec->file_count += 1; + spec->free_sectors -= n_sec; + spec->first_free_sector = s; + spec->first_free_track = t; + trdos_write_spec( head, spec ); + + d->i = g->len[1] + slen + len_pre_dam; /* sector-9: 1 9 2 10 3 ... */ + data_add( d, NULL, head, 256, NO_DDAM, GAP_TRDOS, CRC_OK, NO_AUTOFILL, NULL ); + + return DISK_OK; +} + +static void +trdos_insert_boot_loader( disk_t *d ) +{ + trdos_spec_t spec; + trdos_boot_info_t info; + int slen, del; + + /* TR-DOS specification sector */ + DISK_SET_TRACK_IDX( d, 0 ); + if( !id_seek( d, 9 ) || !datamark_read( d, &del ) ) + return; + + if( trdos_read_spec( &spec, d->track + d->i ) ) + return; + + /* Check free FAT entries (we don't purge deleted files) */ + if( spec.file_count >= 128 ) + return; + + /* Check there is at least one free sector */ + if( spec.free_sectors == 0 ) + return; + /* TODO: stealth mode? some boot loaders hide between sectors 10-16 */ + + /* Calculate sector raw length */ + slen = calc_sectorlen( ( d->density != DISK_SD && d->density != DISK_8_SD ), + 256, GAP_TRDOS ); + + /* Read FAT entries */ + if( !id_seek( d, 1 ) || !datamark_read( d, &del ) ) + return; + + if( trdos_read_fat( &info, d->track + d->i, slen ) ) + return; + + /* Check actual boot file (nothing to do) */ + if( info.have_boot_file ) + return; + + /* Insert a simple boot loader that runs the first program */ + if( info.basic_files_count >= 1 ) { + memcpy( beta128_boot_loader + 22, info.first_basic_file, 8 ); + + trdos_insert_basic_file( d, &spec, beta128_boot_loader, + ARRAY_SIZE( beta128_boot_loader ) ); + } + + /* TODO: use also a boot loader that can handle multiple basic pograms */ +} + +static int open_trd( buffer_t *buffer, disk_t *d ) { int i, j, sectors, seclen; + disk_position_context_t context; if( buffseek( buffer, 8*256, SEEK_CUR ) == -1 ) return d->status = DISK_OPEN; @@ -1243,10 +1430,17 @@ for( i = 0; i < d->cylinders; i++ ) { for( j = 0; j < d->sides; j++ ) { if( trackgen( d, buffer, j, i, 1, sectors, seclen, - NO_PREINDEX, GAP_TRDOS, INTERLEAVE_2, 0x00 ) ) - return d->status = DISK_GEOM; + NO_PREINDEX, GAP_TRDOS, INTERLEAVE_2, 0x00 ) ) + return d->status = DISK_GEOM; } } + + if( settings_current.auto_load ) { + position_context_save( d, &context ); + trdos_insert_boot_loader( d ); + position_context_restore( d, &context ); + } + return d->status = DISK_OK; } @@ -1567,6 +1761,7 @@ { int i, j, s, sectors, seclen; int scl_deleted, scl_files, scl_i; + disk_position_context_t context; d->sides = 2; d->cylinders = 80; @@ -1657,9 +1852,16 @@ /* now we continue with the data */ for( i = 1; i < d->sides * d->cylinders; i++ ) { if( trackgen( d, buffer, i % 2, i / 2, 1, 16, 256, - NO_PREINDEX, GAP_TRDOS, INTERLEAVE_2, 0x00 ) ) + NO_PREINDEX, GAP_TRDOS, INTERLEAVE_2, 0x00 ) ) return d->status = DISK_OPEN; } + + if( settings_current.auto_load ) { + position_context_save( d, &context ); + trdos_insert_boot_loader( d ); + position_context_restore( d, &context ); + } + return d->status = DISK_OK; } Modified: vendor/fuse-emulator/current/fuse/peripherals/disk/disk.h =================================================================== --- vendor/fuse-emulator/current/fuse/peripherals/disk/disk.h 2016-08-22 11:59:47 UTC (rev 819) +++ vendor/fuse-emulator/current/fuse/peripherals/disk/disk.h 2016-08-22 12:00:10 UTC (rev 820) @@ -130,6 +130,14 @@ #define DISK_SET_TRACK( d, head, cyl ) \ DISK_SET_TRACK_IDX( (d), (d)->sides * cyl + head ) +typedef struct disk_position_context_t { + libspectrum_byte *track; /* current track data bytes */ + libspectrum_byte *clocks; /* clock marks bits */ + libspectrum_byte *fm; /* FM/MFM marks bits */ + libspectrum_byte *weak; /* weak marks bits/weak data */ + int i; /* index for track and clocks */ +} disk_position_context_t; + const char *disk_strerror( int error ); /* create an unformatted disk sides -> (1/2) cylinders -> track/side, dens -> 'density' related to unformatted length of a track (SD = 3125, Added: vendor/fuse-emulator/current/fuse/peripherals/disk/trdos.c =================================================================== --- vendor/fuse-emulator/current/fuse/peripherals/disk/trdos.c (rev 0) +++ vendor/fuse-emulator/current/fuse/peripherals/disk/trdos.c 2016-08-22 12:00:10 UTC (rev 820) @@ -0,0 +1,142 @@ +/* trdos.c: Routines for handling the TR-DOS filesystem + Copyright (c) 2016 Sergio Baldoví + + $Id: trdos.c 5755 2016-08-17 12:10:38Z 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 + 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: ser...@gm... + +*/ + +#include <config.h> + +#include <string.h> +#include "trdos.h" + +int +trdos_read_spec( trdos_spec_t *spec, const libspectrum_byte *src ) +{ + if( *src ) return -1; + + spec->first_free_sector = src[225]; + spec->first_free_track = src[226]; + spec->disk_type = src[227]; + spec->file_count = src[228]; + spec->free_sectors = src[229] + src[230] * 0x100; + spec->id = src[231]; + if( spec->id != 16 ) return -1; + + memcpy( spec->password, src + 234, 9 ); + spec->deleted_files = src[244]; + memcpy( spec->disk_label, src + 245, 8 ); + + return 0; +} + +void +trdos_write_spec( libspectrum_byte *dest, const trdos_spec_t *spec ) +{ + memset( dest, 0, 256 ); + dest[225] = spec->first_free_sector; + dest[226] = spec->first_free_track; + dest[227] = spec->disk_type; + dest[228] = spec->file_count; + dest[229] = spec->free_sectors & 0xff; + dest[230] = spec->free_sectors >> 8; + dest[231] = spec->id; + memcpy( dest + 234, spec->password, 9 ); + dest[244] = spec->deleted_files; + memcpy( dest + 245, spec->disk_label, 8 ); +} + +int +trdos_read_dirent( trdos_dirent_t *entry, const libspectrum_byte *src ) +{ + memcpy( entry->filename, src, 8 ); + entry->file_extension = src[8]; + entry->param1 = src[9] + src[10] * 0x100; + entry->param2 = src[11] + src[12] * 0x100; + entry->file_length = src[13]; + entry->start_sector = src[14]; + entry->start_track = src[15]; + + return entry->filename[0]? 0 : 1; +} + +void +trdos_write_dirent( libspectrum_byte *dest, const trdos_dirent_t *entry ) +{ + memcpy( dest, entry->filename, 8 ); + dest[8] = entry->file_extension; + dest[9] = entry->param1 & 0xff; + dest[10] = entry->param1 >> 8; + dest[11] = entry->param2 & 0xff; + dest[12] = entry->param2 >> 8; + dest[13] = entry->file_length; + dest[14] = entry->start_sector; + dest[15] = entry->start_track; +} + +int +trdos_read_fat( trdos_boot_info_t *info, const libspectrum_byte *sectors, + unsigned int seclen ) +{ + int i, j, error; + trdos_dirent_t entry; + const libspectrum_byte *sector; + + info->have_boot_file = 0; + info->basic_files_count = 0; + + /* FAT sectors */ + for( i = 0; i < 8; i++ ) { + sector = sectors + i * seclen * 2; /* interleaved */ + + /* Note: some TR-DOS versions like 5.04T have a turbo format with + sequential sectors: 1, 2, 3, ..., 8, 9, 10, ... + The SCL/TRD image formats can't specify a format mode and Fuse + load the sectors as interleaved: 1, 9, 2, 10, 3, ... + */ + + /* FAT entries */ + for( j = 0; j < 16; j++ ) { + error = trdos_read_dirent( &entry, sector + j * 16 ); + if( error ) return 0; + + /* Basic files */ + if( entry.filename[0] > 0x01 && + entry.file_extension == 'B' ) { + + /* Boot file */ + if( !info->have_boot_file && + !strncmp( (const char *)entry.filename, "boot ", 8 ) ) { + info->have_boot_file = 1; + } + + /* First basic program */ + if( info->basic_files_count == 0 ) { + memcpy( info->first_basic_file, entry.filename, 8 ); + } + + info->basic_files_count++; + } + } + } + + return 0; +} Added: vendor/fuse-emulator/current/fuse/peripherals/disk/trdos.h =================================================================== --- vendor/fuse-emulator/current/fuse/peripherals/disk/trdos.h (rev 0) +++ vendor/fuse-emulator/current/fuse/peripherals/disk/trdos.h 2016-08-22 12:00:10 UTC (rev 820) @@ -0,0 +1,77 @@ +/* trdos.h: Routines for handling the TR-DOS filesystem + Copyright (c) 2016 Sergio Baldoví + + $Id: trdos.h 5755 2016-08-17 12:10:38Z 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 + 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: ser...@gm... + +*/ + +#ifndef FUSE_TRDOS_H +#define FUSE_TRDOS_H + +#include <config.h> + +#include <libspectrum.h> + +typedef struct trdos_spec_t { + libspectrum_byte first_free_sector; /* 0 to 15 */ + libspectrum_byte first_free_track; /* 0 to ? */ + libspectrum_byte disk_type; + libspectrum_byte file_count; + libspectrum_word free_sectors; + libspectrum_byte id; + char password[9]; /* not null-terminated */ + libspectrum_byte deleted_files; + char disk_label[8]; /* not null-terminated */ +} trdos_spec_t; + +typedef struct trdos_dirent_t { + char filename[8]; /* not null-terminated */ + char file_extension; + libspectrum_word param1; + libspectrum_word param2; + libspectrum_byte file_length; /* in sectors */ + libspectrum_byte start_sector; /* 0 to 15 */ + libspectrum_byte start_track; /* 0 to ? */ +} trdos_dirent_t; + +typedef struct trdos_boot_info_t { + int have_boot_file; + int basic_files_count; + char first_basic_file[8]; /* not null-terminated */ +} trdos_boot_info_t; + +int +trdos_read_spec( trdos_spec_t *spec, const libspectrum_byte *src ); + +void +trdos_write_spec( libspectrum_byte *dest, const trdos_spec_t *spec ); + +int +trdos_read_dirent( trdos_dirent_t *entry, const libspectrum_byte *src ); + +void +trdos_write_dirent( libspectrum_byte *dest, const trdos_dirent_t *entry ); + +int +trdos_read_fat( trdos_boot_info_t *info, const libspectrum_byte *sectors, + unsigned int seclen ); + +#endif /* #ifndef FUSE_TRDOS_H */ Modified: vendor/fuse-emulator/current/fuse/peripherals/disk/upd_fdc.c =================================================================== --- vendor/fuse-emulator/current/fuse/peripherals/disk/upd_fdc.c 2016-08-22 11:59:47 UTC (rev 819) +++ vendor/fuse-emulator/current/fuse/peripherals/disk/upd_fdc.c 2016-08-22 12:00:10 UTC (rev 820) @@ -130,10 +130,14 @@ upd_fdc_master_reset( upd_fdc *f ) { int i; + + f->current_drive = f->drive[0]; + + /* Caution with mirrored drives! The plus3 only use the US0 pin to select + drives, so drive 2 := drive 0 and drive 3 := drive 1 */ for( i = 0; i < 4; i++ ) if( f->drive[i] != NULL ) - fdd_select( f->drive[i], i == 0 ? 1 : 0 ); - f->current_drive = f->drive[0]; + fdd_select( f->drive[i], f->drive[i] == f->current_drive ? 1 : 0 ); f->main_status = UPD_FDC_MAIN_DATAREQ; for( i = 0; i < 4; i++ ) Modified: vendor/fuse-emulator/current/fuse/sound/coreaudiosound.c =================================================================== --- vendor/fuse-emulator/current/fuse/sound/coreaudiosound.c 2016-08-22 11:59:47 UTC (rev 819) +++ vendor/fuse-emulator/current/fuse/sound/coreaudiosound.c 2016-08-22 12:00:10 UTC (rev 820) @@ -24,9 +24,7 @@ #include <AssertMacros.h> -#include <AudioUnit/AudioComponent.h> -#include <AudioUnit/AudioUnit.h> -#include <CoreAudio/AudioHardware.h> +#include <AudioToolbox/AudioToolbox.h> #include "settings.h" #include "sfifo.h" Modified: vendor/fuse-emulator/current/fuse/tape.c =================================================================== --- vendor/fuse-emulator/current/fuse/tape.c 2016-08-22 11:59:47 UTC (rev 819) +++ vendor/fuse-emulator/current/fuse/tape.c 2016-08-22 12:00:10 UTC (rev 820) @@ -823,6 +823,7 @@ /* Invert the microphone state */ if( edge_tstates || + !( flags & LIBSPECTRUM_TAPE_FLAGS_NO_EDGE ) || ( flags & ( LIBSPECTRUM_TAPE_FLAGS_STOP | LIBSPECTRUM_TAPE_FLAGS_LEVEL_LOW | LIBSPECTRUM_TAPE_FLAGS_LEVEL_HIGH ) ) ) { Modified: vendor/fuse-emulator/current/fuse/ui/gtk/fileselector.c =================================================================== --- vendor/fuse-emulator/current/fuse/ui/gtk/fileselector.c 2016-08-22 11:59:47 UTC (rev 819) +++ vendor/fuse-emulator/current/fuse/ui/gtk/fileselector.c 2016-08-22 12:00:10 UTC (rev 820) @@ -43,6 +43,11 @@ static void add_filter_snapshot_files( GtkFileFilter *filter ); static void add_filter_tape_files( GtkFileFilter *filter ); +#if defined LIBSPECTRUM_SUPPORTS_BZ2_COMPRESSION || \ + defined LIBSPECTRUM_SUPPORTS_ZLIB_COMPRESSION +static void add_filter_compressed_files( GtkFileFilter *filter ); +#endif + static char* run_dialog( const char *title, GtkFileChooserAction action ) { @@ -64,7 +69,8 @@ gtk_dialog_set_default_response( GTK_DIALOG( dialog ), GTK_RESPONSE_ACCEPT ); - /* TODO: select filter based on UI operation */ + /* TODO: select filter based on UI operation (snapshot, recording, screenshot) */ + /* TODO: custom filter based file action (open, save) */ add_filter_defaults( dialog ); if( current_folder ) @@ -107,6 +113,10 @@ filter = gtk_file_filter_new(); gtk_file_filter_set_name( filter, "Supported Files" ); add_filter_auxiliary_files( filter ); +#if defined LIBSPECTRUM_SUPPORTS_BZ2_COMPRESSION || \ + defined LIBSPECTRUM_SUPPORTS_ZLIB_COMPRESSION + add_filter_compressed_files( filter ); +#endif add_filter_disk_files( filter ); add_filter_dock_files( filter ); add_filter_harddisk_files( filter ); @@ -127,16 +137,24 @@ gtk_file_chooser_add_filter( GTK_FILE_CHOOSER( file_chooser ), filter ); filter = gtk_file_filter_new(); - gtk_file_filter_set_name( filter, "Disk Files" ); - add_filter_disk_files( filter ); + gtk_file_filter_set_name( filter, "Cartridge Files" ); + add_filter_dock_files( filter ); gtk_file_chooser_add_filter( GTK_FILE_CHOOSER( file_chooser ), filter ); +#if defin... [truncated message content] |
From: <fr...@us...> - 2016-08-22 11:59:50
|
Revision: 819 http://sourceforge.net/p/fuse-for-macosx/code/819 Author: fredm Date: 2016-08-22 11:59:47 +0000 (Mon, 22 Aug 2016) Log Message: ----------- To prepare to load . into vendor/fuse-emulator/current, perform 1 rename. * vendor/fuse-emulator/current/libspectrum/test/test_edges.c: Renamed from vendor/fuse-emulator/current/libspectrum/test/test15.c. Added Paths: ----------- vendor/fuse-emulator/current/libspectrum/test/test_edges.c Removed Paths: ------------- vendor/fuse-emulator/current/libspectrum/test/test15.c Deleted: vendor/fuse-emulator/current/libspectrum/test/test15.c =================================================================== --- vendor/fuse-emulator/current/libspectrum/test/test15.c 2016-07-19 11:31:42 UTC (rev 818) +++ vendor/fuse-emulator/current/libspectrum/test/test15.c 2016-08-22 11:59:47 UTC (rev 819) @@ -1,120 +0,0 @@ -#include "test.h" - -static test_edge_sequence_t -complete_edges_list[] = -{ - /* Standard speed data block */ - { 2168, 3223, 0 }, /* Pilot */ - { 667, 1, 0 }, /* Sync 1 */ - { 735, 1, 0 }, /* Sync 2 */ - - { 1710, 2, 0 }, /* Bit 1 */ - { 855, 2, 0 }, /* Bit 2 */ - { 1710, 2, 0 }, /* Bit 3 */ - { 855, 2, 0 }, /* Bit 4 */ - { 1710, 2, 0 }, /* Bit 5 */ - { 855, 2, 0 }, /* Bit 6 */ - { 1710, 2, 0 }, /* Bit 7 */ - { 855, 2, 0 }, /* Bit 8 */ - - { 8207500, 1, 0 }, /* Pause */ - - /* Turbo speed data block */ - { 1000, 5, 0 }, /* Pilot */ - { 123, 1, 0 }, /* Sync 1 */ - { 456, 1, 0 }, /* Sync 2 */ - - { 789, 16, 0 }, /* Byte 1, bits 1-8 */ - { 400, 16, 0 }, /* Byte 2, bits 1-8 */ - - { 789, 2, 0 }, /* Byte 3, bit 1 */ - { 400, 2, 0 }, /* Byte 3, bit 2 */ - { 789, 2, 0 }, /* Byte 3, bit 3 */ - { 400, 2, 0 }, /* Byte 3, bit 4 */ - { 789, 2, 0 }, /* Byte 3, bit 5 */ - { 400, 2, 0 }, /* Byte 3, bit 6 */ - { 789, 2, 0 }, /* Byte 3, bit 7 */ - { 400, 2, 0 }, /* Byte 3, bit 8 */ - - { 400, 2, 0 }, /* Byte 4, bit 1 */ - { 789, 2, 0 }, /* Byte 4, bit 2 */ - { 400, 2, 0 }, /* Byte 4, bit 3 */ - { 789, 2, 0 }, /* Byte 4, bit 4 */ - - { 3454500, 1, 0 }, /* Pause */ - - /* Pure tone block */ - { 535, 666, 0 }, - - /* List of pulses */ - { 772, 1, 0 }, - { 297, 1, 0 }, - { 692, 1, 0 }, - - /* Pure data block */ - { 1639, 16, 0 }, /* Byte 1, bits 1-8 */ - { 552, 16, 0 }, /* Byte 2, bits 1-8 */ - { 1639, 12, 0 }, /* Byte 3, bits 1-6 */ - { 1939000, 1, 0 }, /* Pause */ - - /* Pause block */ - { 2163000, 1, 0 }, - - /* Group start block */ - { 0, 1, 0 }, - - /* Group end block */ - { 0, 1, 0 }, - - /* Jump block */ - { 0, 1, 0 }, - - /* Pure tone block skipped */ - - /* Loop start block */ - { 0, 1, 0 }, - - /* Iteration 1 */ - { 837, 185, 0 }, /* Pure tone block */ - { 0, 1, 0 }, /* Loop end block */ - - /* Iteration 2 */ - { 837, 185, 0 }, /* Pure tone block */ - { 0, 1, 0 }, /* Loop end block */ - - /* Iteration 3 */ - { 837, 185, 0 }, /* Pure tone block */ - { 0, 1, 0 }, /* Loop end block */ - - /* Stop tape if in 48K mode block */ - { 0, 1, 4 }, - - /* Text description block */ - { 0, 1, 0 }, - - /* Message block */ - { 0, 1, 0 }, - - /* Archive info block */ - { 0, 1, 0 }, - - /* Hardware info block */ - { 0, 1, 0 }, - - /* Custom info block */ - { 0, 1, 0 }, - - /* Pure tone block */ - { 820, 940, 0 }, - { 820, 1, 2 }, - - { -1, 0, 0 } /* End marker */ - -}; - -test_return_t -test_15( void ) -{ - return check_edges( DYNAMIC_TEST_PATH( "complete-tzx.tzx" ), complete_edges_list, - LIBSPECTRUM_TAPE_FLAGS_STOP | LIBSPECTRUM_TAPE_FLAGS_STOP48 ); -} Copied: vendor/fuse-emulator/current/libspectrum/test/test_edges.c (from rev 818, vendor/fuse-emulator/current/libspectrum/test/test15.c) =================================================================== --- vendor/fuse-emulator/current/libspectrum/test/test_edges.c (rev 0) +++ vendor/fuse-emulator/current/libspectrum/test/test_edges.c 2016-08-22 11:59:47 UTC (rev 819) @@ -0,0 +1,120 @@ +#include "test.h" + +static test_edge_sequence_t +complete_edges_list[] = +{ + /* Standard speed data block */ + { 2168, 3223, 0 }, /* Pilot */ + { 667, 1, 0 }, /* Sync 1 */ + { 735, 1, 0 }, /* Sync 2 */ + + { 1710, 2, 0 }, /* Bit 1 */ + { 855, 2, 0 }, /* Bit 2 */ + { 1710, 2, 0 }, /* Bit 3 */ + { 855, 2, 0 }, /* Bit 4 */ + { 1710, 2, 0 }, /* Bit 5 */ + { 855, 2, 0 }, /* Bit 6 */ + { 1710, 2, 0 }, /* Bit 7 */ + { 855, 2, 0 }, /* Bit 8 */ + + { 8207500, 1, 0 }, /* Pause */ + + /* Turbo speed data block */ + { 1000, 5, 0 }, /* Pilot */ + { 123, 1, 0 }, /* Sync 1 */ + { 456, 1, 0 }, /* Sync 2 */ + + { 789, 16, 0 }, /* Byte 1, bits 1-8 */ + { 400, 16, 0 }, /* Byte 2, bits 1-8 */ + + { 789, 2, 0 }, /* Byte 3, bit 1 */ + { 400, 2, 0 }, /* Byte 3, bit 2 */ + { 789, 2, 0 }, /* Byte 3, bit 3 */ + { 400, 2, 0 }, /* Byte 3, bit 4 */ + { 789, 2, 0 }, /* Byte 3, bit 5 */ + { 400, 2, 0 }, /* Byte 3, bit 6 */ + { 789, 2, 0 }, /* Byte 3, bit 7 */ + { 400, 2, 0 }, /* Byte 3, bit 8 */ + + { 400, 2, 0 }, /* Byte 4, bit 1 */ + { 789, 2, 0 }, /* Byte 4, bit 2 */ + { 400, 2, 0 }, /* Byte 4, bit 3 */ + { 789, 2, 0 }, /* Byte 4, bit 4 */ + + { 3454500, 1, 0 }, /* Pause */ + + /* Pure tone block */ + { 535, 666, 0 }, + + /* List of pulses */ + { 772, 1, 0 }, + { 297, 1, 0 }, + { 692, 1, 0 }, + + /* Pure data block */ + { 1639, 16, 0 }, /* Byte 1, bits 1-8 */ + { 552, 16, 0 }, /* Byte 2, bits 1-8 */ + { 1639, 12, 0 }, /* Byte 3, bits 1-6 */ + { 1939000, 1, 0 }, /* Pause */ + + /* Pause block */ + { 2163000, 1, 0 }, + + /* Group start block */ + { 0, 1, 0 }, + + /* Group end block */ + { 0, 1, 0 }, + + /* Jump block */ + { 0, 1, 0 }, + + /* Pure tone block skipped */ + + /* Loop start block */ + { 0, 1, 0 }, + + /* Iteration 1 */ + { 837, 185, 0 }, /* Pure tone block */ + { 0, 1, 0 }, /* Loop end block */ + + /* Iteration 2 */ + { 837, 185, 0 }, /* Pure tone block */ + { 0, 1, 0 }, /* Loop end block */ + + /* Iteration 3 */ + { 837, 185, 0 }, /* Pure tone block */ + { 0, 1, 0 }, /* Loop end block */ + + /* Stop tape if in 48K mode block */ + { 0, 1, 4 }, + + /* Text description block */ + { 0, 1, 0 }, + + /* Message block */ + { 0, 1, 0 }, + + /* Archive info block */ + { 0, 1, 0 }, + + /* Hardware info block */ + { 0, 1, 0 }, + + /* Custom info block */ + { 0, 1, 0 }, + + /* Pure tone block */ + { 820, 940, 0 }, + { 820, 1, 2 }, + + { -1, 0, 0 } /* End marker */ + +}; + +test_return_t +test_15( void ) +{ + return check_edges( DYNAMIC_TEST_PATH( "complete-tzx.tzx" ), complete_edges_list, + LIBSPECTRUM_TAPE_FLAGS_STOP | LIBSPECTRUM_TAPE_FLAGS_STOP48 ); +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2016-07-19 11:31:45
|
Revision: 818 http://sourceforge.net/p/fuse-for-macosx/code/818 Author: fredm Date: 2016-07-19 11:31:42 +0000 (Tue, 19 Jul 2016) Log Message: ----------- Tag release 1.2.1 Added Paths: ----------- tags/Release-1_2_1/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2016-07-18 11:56:37
|
Revision: 817 http://sourceforge.net/p/fuse-for-macosx/code/817 Author: fredm Date: 2016-07-18 11:56:29 +0000 (Mon, 18 Jul 2016) Log Message: ----------- Merge up to vendor release 1.2.1 Modified Paths: -------------- trunk/FuseGenerator/config.h trunk/FuseGenerator/generate.pl trunk/FuseImporter/config.h trunk/FuseImporter/generate.pl trunk/fuse/ChangeLog trunk/fuse/Makefile.am trunk/fuse/README trunk/fuse/compat/Makefile.am trunk/fuse/configure.ac trunk/fuse/data/fuse.desktop.in trunk/fuse/debugger/Makefile.am trunk/fuse/debugger/breakpoint.c trunk/fuse/debugger/breakpoint.h trunk/fuse/debugger/command.c trunk/fuse/debugger/commandl.l trunk/fuse/debugger/commandy.y trunk/fuse/debugger/debugger.c trunk/fuse/debugger/debugger.h trunk/fuse/debugger/debugger_internals.h trunk/fuse/debugger/event.c trunk/fuse/debugger/expression.c trunk/fuse/display.c trunk/fuse/display.h trunk/fuse/event.c trunk/fuse/event.h trunk/fuse/fuse.c trunk/fuse/fusepb/English.lproj/InfoPlist.strings trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj trunk/fuse/fusepb/Info-Fuse.plist trunk/fuse/fusepb/config.h trunk/fuse/fusepb/controllers/FuseController.m trunk/fuse/fusepb/controllers/PreferencesController.m trunk/fuse/fusepb/generate.pl trunk/fuse/fusepb/libspectrum.h trunk/fuse/fusepb/resources/Fuse Help/Fuse Help.helpindex trunk/fuse/fusepb/resources/Fuse Help/html/changelog.html trunk/fuse/fusepb/resources/Fuse Help/html/monitor.html trunk/fuse/fusepb/settings-header.pl trunk/fuse/fusepb/timer/timer.c trunk/fuse/hacking/ChangeLog trunk/fuse/infrastructure/startup_manager.c trunk/fuse/machine.c trunk/fuse/machine.h trunk/fuse/machines/machines_periph.c trunk/fuse/machines/machines_periph.h trunk/fuse/man/fuse.1 trunk/fuse/memory.c trunk/fuse/memory.h trunk/fuse/mempool.c trunk/fuse/mempool.h trunk/fuse/peripherals/ay.c trunk/fuse/peripherals/ay.h trunk/fuse/peripherals/disk/beta.c trunk/fuse/peripherals/disk/beta.h trunk/fuse/peripherals/disk/didaktik.c trunk/fuse/peripherals/disk/didaktik.h trunk/fuse/peripherals/disk/disciple.c trunk/fuse/peripherals/disk/disciple.h trunk/fuse/peripherals/disk/fdd.c trunk/fuse/peripherals/disk/fdd.h trunk/fuse/peripherals/disk/opus.c trunk/fuse/peripherals/disk/opus.h trunk/fuse/peripherals/disk/plusd.c trunk/fuse/peripherals/disk/plusd.h trunk/fuse/peripherals/fuller.c trunk/fuse/peripherals/fuller.h trunk/fuse/peripherals/ide/divide.c trunk/fuse/peripherals/ide/divide.h trunk/fuse/peripherals/ide/simpleide.c trunk/fuse/peripherals/ide/simpleide.h trunk/fuse/peripherals/ide/zxatasp.c trunk/fuse/peripherals/ide/zxatasp.h trunk/fuse/peripherals/ide/zxcf.c trunk/fuse/peripherals/ide/zxcf.h trunk/fuse/peripherals/if1.c trunk/fuse/peripherals/if1.h trunk/fuse/peripherals/if2.c trunk/fuse/peripherals/if2.h trunk/fuse/peripherals/joystick.c trunk/fuse/peripherals/kempmouse.c trunk/fuse/peripherals/kempmouse.h trunk/fuse/peripherals/melodik.c trunk/fuse/peripherals/melodik.h trunk/fuse/peripherals/printer.c trunk/fuse/peripherals/printer.h trunk/fuse/peripherals/scld.c trunk/fuse/peripherals/scld.h trunk/fuse/peripherals/speccyboot.c trunk/fuse/peripherals/speccyboot.h trunk/fuse/peripherals/specdrum.c trunk/fuse/peripherals/specdrum.h trunk/fuse/peripherals/spectranet.c trunk/fuse/peripherals/spectranet.h trunk/fuse/peripherals/ula.c trunk/fuse/peripherals/ula.h trunk/fuse/peripherals/usource.c trunk/fuse/peripherals/usource.h trunk/fuse/profile.c trunk/fuse/profile.h trunk/fuse/psg.c trunk/fuse/psg.h trunk/fuse/rzx.c trunk/fuse/rzx.h trunk/fuse/settings-header.pl trunk/fuse/settings.pl trunk/fuse/slt.c trunk/fuse/slt.h trunk/fuse/sound/alsasound.c trunk/fuse/sound.c trunk/fuse/sound.h trunk/fuse/spectrum.c trunk/fuse/spectrum.h trunk/fuse/tape.c trunk/fuse/tape.h trunk/fuse/timer/timer.c trunk/fuse/timer/timer.h trunk/fuse/ui/widget/menu.c trunk/fuse/ui/widget/query.c trunk/fuse/unittests/unittests.c trunk/fuse/utils.c trunk/fuse/utils.h trunk/fuse/z80/Makefile.am trunk/fuse/z80/coretest.c trunk/fuse/z80/z80.c trunk/fuse/z80/z80.h trunk/libspectrum/Info.plist trunk/libspectrum/config.h trunk/libspectrum/generate.pl trunk/libspectrum/libspectrum/ChangeLog trunk/libspectrum/libspectrum/Makefile.am trunk/libspectrum/libspectrum/README trunk/libspectrum/libspectrum/configure.ac trunk/libspectrum/libspectrum/doc/libspectrum.3 trunk/libspectrum/libspectrum/doc/libspectrum.txt trunk/libspectrum/libspectrum/hacking/ChangeLog trunk/libspectrum/libspectrum/make-perl.c trunk/libspectrum/libspectrum/myglib/garray.c trunk/libspectrum/libspectrum/myglib/ghash.c trunk/libspectrum/libspectrum.h trunk/libspectrum/libspectrum.xcodeproj/project.pbxproj Added Paths: ----------- trunk/fuse/debugger/system_variable.c trunk/fuse/infrastructure/ trunk/fuse/z80/z80_debugger_variables.c trunk/fuse/z80/z80_internals.h Removed Paths: ------------- trunk/fuse/compat/mkstemp.c Property Changed: ---------------- trunk/fuse/ trunk/libspectrum/libspectrum/ Modified: trunk/FuseGenerator/config.h =================================================================== --- trunk/FuseGenerator/config.h 2016-07-17 12:27:33 UTC (rev 816) +++ trunk/FuseGenerator/config.h 2016-07-18 11:56:29 UTC (rev 817) @@ -83,7 +83,7 @@ #define STDC_HEADERS 1 /* Version number of package */ -#define VERSION "1.1.0" +#define VERSION "1.2.1" /* Define to 1 if your processor stores words with the most significant byte first (like Motorola and SPARC, unlike Intel and VAX). */ Modified: trunk/FuseGenerator/generate.pl =================================================================== --- trunk/FuseGenerator/generate.pl 2016-07-17 12:27:33 UTC (rev 816) +++ trunk/FuseGenerator/generate.pl 2016-07-18 11:56:29 UTC (rev 817) @@ -17,6 +17,8 @@ if( /LIBSPECTRUM_GLIB_REPLACEMENT/ ) { $_ = << "CODE"; +#define LIBSPECTRUM_HAS_GLIB_REPLACEMENT 1 + #ifndef FALSE #define FALSE (0) #endif @@ -155,10 +157,13 @@ WIN32_DLL GArray* g_array_new( gboolean zero_terminated, gboolean clear, guint element_size ); +WIN32_DLL GArray* g_array_sized_new( gboolean zero_terminated, gboolean clear, + guint element_size, guint reserved_size ); #define g_array_append_val(a,v) g_array_append_vals( a, &(v), 1 ); WIN32_DLL GArray* g_array_append_vals( GArray *array, gconstpointer data, guint len ); #define g_array_index(a,t,i) (*(((t*)a->data)+i)) WIN32_DLL GArray* g_array_set_size( GArray *array, guint length ); +WIN32_DLL GArray* g_array_remove_index_fast( GArray *array, guint index ); WIN32_DLL gchar* g_array_free( GArray *array, gboolean free_segment ); #include <TargetConditionals.h> Modified: trunk/FuseImporter/config.h =================================================================== --- trunk/FuseImporter/config.h 2016-07-17 12:27:33 UTC (rev 816) +++ trunk/FuseImporter/config.h 2016-07-18 11:56:29 UTC (rev 817) @@ -83,7 +83,7 @@ #define STDC_HEADERS 1 /* Version number of package */ -#define VERSION "1.1.0" +#define VERSION "1.2.1" /* 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/generate.pl =================================================================== --- trunk/FuseImporter/generate.pl 2016-07-17 12:27:33 UTC (rev 816) +++ trunk/FuseImporter/generate.pl 2016-07-18 11:56:29 UTC (rev 817) @@ -17,6 +17,8 @@ if( /LIBSPECTRUM_GLIB_REPLACEMENT/ ) { $_ = << "CODE"; +#define LIBSPECTRUM_HAS_GLIB_REPLACEMENT 1 + #ifndef FALSE #define FALSE (0) #endif @@ -155,10 +157,13 @@ WIN32_DLL GArray* g_array_new( gboolean zero_terminated, gboolean clear, guint element_size ); +WIN32_DLL GArray* g_array_sized_new( gboolean zero_terminated, gboolean clear, + guint element_size, guint reserved_size ); #define g_array_append_val(a,v) g_array_append_vals( a, &(v), 1 ); WIN32_DLL GArray* g_array_append_vals( GArray *array, gconstpointer data, guint len ); #define g_array_index(a,t,i) (*(((t*)a->data)+i)) WIN32_DLL GArray* g_array_set_size( GArray *array, guint length ); +WIN32_DLL GArray* g_array_remove_index_fast( GArray *array, guint index ); WIN32_DLL gchar* g_array_free( GArray *array, gboolean free_segment ); #include <TargetConditionals.h> Index: trunk/fuse =================================================================== --- trunk/fuse 2016-07-17 12:27:33 UTC (rev 816) +++ trunk/fuse 2016-07-18 11:56:29 UTC (rev 817) Property changes on: trunk/fuse ___________________________________________________________________ Modified: svn:mergeinfo ## -1,5 +1,5 ## /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-806 +/vendor/fuse-emulator/current/fuse:530-816 /vendor/fuse-emulator/fuse-1.0.0a/fuse:668-669 /vendor/fuse-emulator/fuse-r4617/fuse:686 \ No newline at end of property Modified: trunk/fuse/ChangeLog =================================================================== --- trunk/fuse/ChangeLog 2016-07-17 12:27:33 UTC (rev 816) +++ trunk/fuse/ChangeLog 2016-07-18 11:56:29 UTC (rev 817) @@ -1,3 +1,33 @@ +2016-07-17 Philip Kendall <phi...@sh...> + + * Fuse 1.2.1 released. + + * Emulation core improvements: + * Fix bugs when the detect loaders feature is being used (thanks, Lee + Tonks and windale) (Fredrick Meunier). + + * Debugger improvements: + * Remove the need for "%" when accessing system variables (Philip + Kendall). + * Add Z80 registers as debugger variables (Philip Kendall). + * Expose last byte written to the ULA, tstates since interrupt, + primary and secondary memory control ports as debugger system + variables (Philip Kendall). + * Make breakpoints on events honour lifetime (Sergio Baldoví). + * Extend breakpoints on paging events to more peripherals: Beta 128, + +D, Didaktik 80, DISCiPLE, Opus Discovery and SpeccyBoot (Sergio + Baldoví). + * Split +D memory sources into RAM and ROM sections (Sergio Baldoví). + * Coalesce +D and DISCiPLE RAM pages so they show as 8K pages (Sergio + Baldoví). + + * Miscellaneous improvements: + * Update GNOME .desktop file (Alberto Garcia). + * Add an emulator module startup manager to automatically handle + dependency issues (Philip Kendall). + * Fix crash on widget UIs when hitting the close icon on the title bar + several times (Sergio Baldoví). + 2016-06-06 Philip Kendall <phi...@sh...> * Fuse 1.2.0 released. @@ -1295,4 +1325,4 @@ * Version 0.1.0 released. -$Id: ChangeLog 5594 2016-06-06 10:46:46Z fredm $ +$Id: ChangeLog 5686 2016-07-17 10:37:50Z fredm $ Modified: trunk/fuse/Makefile.am =================================================================== --- trunk/fuse/Makefile.am 2016-07-17 12:27:33 UTC (rev 816) +++ trunk/fuse/Makefile.am 2016-07-18 11:56:29 UTC (rev 817) @@ -1,7 +1,7 @@ ## Process this file with automake to produce Makefile.in ## Copyright (c) 1999-2015 Philip Kendall -## $Id: Makefile.am 5537 2016-05-29 06:17:00Z sbaldovi $ +## $Id: Makefile.am 5677 2016-07-09 13:58:02Z 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 @@ -170,6 +170,7 @@ include data/Makefile.am include debugger/Makefile.am include hacking/Makefile.am +include infrastructure/Makefile.am include lib/Makefile.am include machines/Makefile.am include man/Makefile.am Modified: trunk/fuse/README =================================================================== --- trunk/fuse/README 2016-07-17 12:27:33 UTC (rev 816) +++ trunk/fuse/README 2016-07-18 11:56:29 UTC (rev 817) @@ -1,4 +1,4 @@ -The Free Unix Spectrum Emulator (Fuse) 1.2.0 +The Free Unix Spectrum Emulator (Fuse) 1.2.1 ============================================ Fuse (the Free Unix Spectrum Emulator) was originally, and somewhat @@ -108,6 +108,6 @@ <http://www.worldofspectrum.org/forums/>. Philip Kendall <phi...@sh...> -6th June, 2016 +17th July, 2016 -$Id: README 5594 2016-06-06 10:46:46Z fredm $ +$Id: README 5686 2016-07-17 10:37:50Z fredm $ Modified: trunk/fuse/compat/Makefile.am =================================================================== --- trunk/fuse/compat/Makefile.am 2016-07-17 12:27:33 UTC (rev 816) +++ trunk/fuse/compat/Makefile.am 2016-07-18 11:56:29 UTC (rev 817) @@ -2,7 +2,7 @@ ## Copyright (c) 2003-2013 Philip Kendall ## Copyright (c) 2015 Sergio Baldoví -## $Id: Makefile.am 5434 2016-05-01 04:22:45Z fredm $ +## $Id: Makefile.am 5677 2016-07-09 13:58:02Z 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 @@ -32,10 +32,6 @@ fuse_SOURCES += compat/getopt.c compat/getopt1.c endif -if COMPAT_MKSTEMP -fuse_SOURCES += compat/mkstemp.c -endif - ## Amiga routines if COMPAT_AMIGA fuse_SOURCES += \ Deleted: trunk/fuse/compat/mkstemp.c =================================================================== --- trunk/fuse/compat/mkstemp.c 2016-07-17 12:27:33 UTC (rev 816) +++ trunk/fuse/compat/mkstemp.c 2016-07-18 11:56:29 UTC (rev 817) @@ -1,108 +0,0 @@ -/* Copyright (C) 1991-1999, 2000, 2001 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - Modifications (c) 2003 Philip Kendall - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301 USA. */ - -#include <config.h> - -#include <errno.h> -#include <stdlib.h> -#include <string.h> -#include <sys/types.h> -#include <sys/stat.h> -#include <fcntl.h> -#include <time.h> -#include <unistd.h> - -#include <libspectrum.h> - -#define uint64_t libspectrum_qword - -/* These are the characters used in temporary filenames. */ -static const char letters[] = -"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; - -/* Generate a temporary file name based on TMPL. TMPL must match the - rules for mk[s]temp (i.e. end in "XXXXXX"). The name constructed - does not exist at the time of the call to __gen_tempname. TMPL is - overwritten with the result. - - We use a clever algorithm to get hard-to-predict names. */ -int -mkstemp (char *tmpl) -{ - int len; - char *XXXXXX; - static uint64_t value; - unsigned int count; - int fd = -1; - int save_errno = errno; - - /* A lower bound on the number of temporary files to attempt to - generate. The maximum total number of temporary file names that - can exist for a given template is 62**6. It should never be - necessary to try all these combinations. Instead if a reasonable - number of names is tried (we define reasonable as 62**3) fail to - give the system administrator the chance to remove the problems. */ - unsigned int attempts = 62 * 62 * 62; - - len = strlen (tmpl); - if (len < 6 || strcmp (&tmpl[len - 6], "XXXXXX")) - { - errno = EINVAL; - return -1; - } - - /* This is where the Xs start. */ - XXXXXX = &tmpl[len - 6]; - - /* Get some more or less random data. */ - value += time (NULL) ^ getpid (); - - for (count = 0; count < attempts; value += 7777, ++count) - { - uint64_t v = value; - - /* Fill in the random bits. */ - XXXXXX[0] = letters[v % 62]; - v /= 62; - XXXXXX[1] = letters[v % 62]; - v /= 62; - XXXXXX[2] = letters[v % 62]; - v /= 62; - XXXXXX[3] = letters[v % 62]; - v /= 62; - XXXXXX[4] = letters[v % 62]; - v /= 62; - XXXXXX[5] = letters[v % 62]; - - fd = open (tmpl, O_RDWR | O_CREAT | O_EXCL | O_BINARY, S_IRUSR | S_IWUSR); - - if (fd >= 0) - { - errno = save_errno; - return fd; - } - else if (errno != EEXIST) - return -1; - } - - /* We got out of the loop because we ran out of combinations to try. */ - errno = EEXIST; - return -1; -} Modified: trunk/fuse/configure.ac =================================================================== --- trunk/fuse/configure.ac 2016-07-17 12:27:33 UTC (rev 816) +++ trunk/fuse/configure.ac 2016-07-18 11:56:29 UTC (rev 817) @@ -1,5 +1,5 @@ dnl Process this file with autoconf to produce a configure script. -dnl $Id: configure.ac 5594 2016-06-06 10:46:46Z fredm $ +dnl $Id: configure.ac 5686 2016-07-17 10:37:50Z fredm $ 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 @@ -20,12 +20,12 @@ dnl E-mail: phi...@sh... dnl Package version -m4_define([fuse_version], [1.2.0]) +m4_define([fuse_version], [1.2.1]) dnl Product full version m4_define([fuse_major_version], [1]) m4_define([fuse_minor_version], [2]) -m4_define([fuse_micro_version], [0]) +m4_define([fuse_micro_version], [1]) m4_define([fuse_nano_version], [0]) m4_define([fuse_full_version], [fuse_major_version.fuse_minor_version.fuse_micro_version.fuse_nano_version]) m4_define([fuse_rc_version], [fuse_major_version,fuse_minor_version,fuse_micro_version,fuse_nano_version]) @@ -104,7 +104,7 @@ AC_C_INLINE dnl Checks for library functions. -AC_CHECK_FUNCS(dirname geteuid getopt_long mkstemp fsync) +AC_CHECK_FUNCS(dirname geteuid getopt_long fsync) AC_CHECK_LIB([m],[cos]) dnl Allow the user to say that various libraries are in one place @@ -834,10 +834,6 @@ esac fi AM_CONDITIONAL(COMPAT_GETOPT, test "$compat_getopt" = yes) -if test "$ac_cv_func_mkstemp" = no; then - missing_routines="$missing_routines"'mkstemp ' -fi -AM_CONDITIONAL(COMPAT_MKSTEMP, test "$ac_cv_func_mkstemp" = no) if test "x$missing_routines" = x; then missing_routines='(none)' fi Modified: trunk/fuse/data/fuse.desktop.in =================================================================== --- trunk/fuse/data/fuse.desktop.in 2016-07-17 12:27:33 UTC (rev 816) +++ trunk/fuse/data/fuse.desktop.in 2016-07-18 11:56:29 UTC (rev 817) @@ -2,9 +2,10 @@ Version=1.0 Type=Application Categories=Game;Emulator;GTK; -Name=Fuse Spectrum Emulator +Name=Fuse +GenericName=Spectrum Emulator Comment=Emulator of the 1980s ZX Spectrum home computer and its various clones MimeType=@MIME_TYPES@ Exec=fuse %f Icon=fuse - +Keywords=sinclair;zx;game;retro; Modified: trunk/fuse/debugger/Makefile.am =================================================================== --- trunk/fuse/debugger/Makefile.am 2016-07-17 12:27:33 UTC (rev 816) +++ trunk/fuse/debugger/Makefile.am 2016-07-18 11:56:29 UTC (rev 817) @@ -1,8 +1,8 @@ ## Process this file with automake to produce Makefile.in -## Copyright (c) 2001-2008 Philip Kendall +## Copyright (c) 2001-2016 Philip Kendall ## Copyright (c) 2015 Sergio Baldoví -## $Id: Makefile.am 5434 2016-05-01 04:22:45Z fredm $ +## $Id: Makefile.am 5677 2016-07-09 13:58:02Z 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 @@ -31,6 +31,7 @@ debugger/disassemble.c \ debugger/event.c \ debugger/expression.c \ + debugger/system_variable.c \ debugger/variable.c debugger/commandl.c: debugger/commandy.c Modified: trunk/fuse/debugger/breakpoint.c =================================================================== --- trunk/fuse/debugger/breakpoint.c 2016-07-17 12:27:33 UTC (rev 816) +++ trunk/fuse/debugger/breakpoint.c 2016-07-18 11:56:29 UTC (rev 817) @@ -136,7 +136,7 @@ int debugger_breakpoint_add_time( debugger_breakpoint_type type, - libspectrum_dword tstates, size_t ignore, + libspectrum_dword breakpoint_tstates, size_t ignore, debugger_breakpoint_life life, debugger_expression *condition ) { @@ -153,8 +153,8 @@ } value.time.triggered = 0; - value.time.tstates = tstates; - value.time.initial_tstates = tstates; + value.time.tstates = breakpoint_tstates; + value.time.initial_tstates = breakpoint_tstates; return breakpoint_add( type, value, ignore, life, condition ); } Modified: trunk/fuse/debugger/breakpoint.h =================================================================== --- trunk/fuse/debugger/breakpoint.h 2016-07-17 12:27:33 UTC (rev 816) +++ trunk/fuse/debugger/breakpoint.h 2016-07-18 11:56:29 UTC (rev 817) @@ -136,7 +136,7 @@ int debugger_breakpoint_add_time( - debugger_breakpoint_type type, libspectrum_dword tstates, + debugger_breakpoint_type type, libspectrum_dword breakpoint_tstates, size_t ignore, debugger_breakpoint_life life, debugger_expression *condition ); Modified: trunk/fuse/debugger/command.c =================================================================== --- trunk/fuse/debugger/command.c 2016-07-17 12:27:33 UTC (rev 816) +++ trunk/fuse/debugger/command.c 2016-07-18 11:56:29 UTC (rev 817) @@ -95,51 +95,6 @@ } } -/* Convert a register name to a useful index value */ -int -debugger_register_hash( const char *name ) -{ - int hash = 0x0000, primed = 0; - size_t length; - const char *ptr; - - length = strlen( name ); - - if( name[ length - 1 ] == '\'' ) { primed = 1; length--; } - - for( ptr = name; ptr < name + length; ptr++ ) { - hash <<= 8; hash |= tolower( *ptr ); - } - - if( primed ) hash |= 0x8000; - - switch( hash ) { - case 0x0061: case 0x8061: /* A, A' */ - case 0x0066: case 0x8066: /* F, F' */ - case 0x0062: case 0x8062: /* B, B' */ - case 0x0063: case 0x8063: /* C, C' */ - case 0x0064: case 0x8064: /* D, D' */ - case 0x0065: case 0x8065: /* E, E' */ - case 0x0068: case 0x8068: /* H, H' */ - case 0x006c: case 0x806c: /* L, L' */ - case 0x0069: case 0x0072: /* I, R */ - case 0x6166: case 0xe166: /* AF, AF' */ - case 0x6263: case 0xe263: /* BC, BC' */ - case 0x6465: case 0xe465: /* DE, DE' */ - case 0x686c: case 0xe86c: /* HL, HL' */ - case 0x7370: /* SP */ - case 0x7063: /* PC */ - case 0x6978: /* IX */ - case 0x6979: /* IY */ - case 0x696d: /* IM */ - case 0x69666631: /* IFF1 */ - case 0x69666632: /* IFF2 */ - return hash; - - default: return -1; - } -} - /* Utility functions called by the bison parser */ /* The error callback if yyparse finds an error */ @@ -149,161 +104,13 @@ ui_error( UI_ERROR_ERROR, "Invalid debugger command: %s", s ); } -/* Get the value of a register */ -libspectrum_word -debugger_register_get( int which ) -{ - switch( which ) { - - /* 8-bit registers */ - case 0x0061: return A; - case 0x8061: return A_; - case 0x0066: return F; - case 0x8066: return F_; - case 0x0062: return B; - case 0x8062: return B_; - case 0x0063: return C; - case 0x8063: return C_; - case 0x0064: return D; - case 0x8064: return D_; - case 0x0065: return E; - case 0x8065: return E_; - case 0x0068: return H; - case 0x8068: return H_; - case 0x006c: return L; - case 0x806c: return L_; - - case 0x0069: return I; - case 0x0072: return ( R7 & 0x80 ) | ( R & 0x7f ); - - /* 16-bit registers */ - case 0x6166: return AF; - case 0xe166: return AF_; - case 0x6263: return BC; - case 0xe263: return BC_; - case 0x6465: return DE; - case 0xe465: return DE_; - case 0x686c: return HL; - case 0xe86c: return HL_; - - case 0x7370: return SP; - case 0x7063: return PC; - case 0x6978: return IX; - case 0x6979: return IY; - - /* interrupt flags */ - case 0x696d: return IM; - case 0x69666631: return IFF1; - case 0x69666632: return IFF2; - - default: - ui_error( UI_ERROR_ERROR, "attempt to get unknown register '%d'", which ); - return 0; - } -} - -/* Set the value of a register */ +/* Set the value of a register + + Now just a pass through to the appropriate system variable. + This function should be removed in Fuse 1.4 */ void -debugger_register_set( int which, libspectrum_word value ) +debugger_register_set( const char *which, libspectrum_word value ) { - switch( which ) { - - /* 8-bit registers */ - case 0x0061: A = value; break; - case 0x8061: A_ = value; break; - case 0x0066: F = value; break; - case 0x8066: F_ = value; break; - case 0x0062: B = value; break; - case 0x8062: B_ = value; break; - case 0x0063: C = value; break; - case 0x8063: C_ = value; break; - case 0x0064: D = value; break; - case 0x8064: D_ = value; break; - case 0x0065: E = value; break; - case 0x8065: E_ = value; break; - case 0x0068: H = value; break; - case 0x8068: H_ = value; break; - case 0x006c: L = value; break; - case 0x806c: L_ = value; break; - - case 0x0069: I = value; break; - case 0x0072: R = R7 = value; break; - - /* 16-bit registers */ - case 0x6166: AF = value; break; - case 0xe166: AF_ = value; break; - case 0x6263: BC = value; break; - case 0xe263: BC_ = value; break; - case 0x6465: DE = value; break; - case 0xe465: DE_ = value; break; - case 0x686c: HL = value; break; - case 0xe86c: HL_ = value; break; - - case 0x7370: SP = value; break; - case 0x7063: PC = value; break; - case 0x6978: IX = value; break; - case 0x6979: IY = value; break; - - /* interrupt flags */ - case 0x696d: if( value >= 0 && value <=2 ) IM = value; break; - case 0x69666631: IFF1 = !!value; break; - case 0x69666632: IFF2 = !!value; break; - - default: - ui_error( UI_ERROR_ERROR, "attempt to set unknown register '%d'", which ); - break; - } + debugger_system_variable_set( debugger_z80_system_variable_type, which, + value ); } - -/* Get the textual representation of a register */ -const char * -debugger_register_text( int which ) -{ - switch( which ) { - - /* 8-bit registers */ - case 0x0061: return "A"; - case 0x8061: return "A'"; - case 0x0066: return "F"; - case 0x8066: return "F'"; - case 0x0062: return "B"; - case 0x8062: return "B'"; - case 0x0063: return "C"; - case 0x8063: return "C'"; - case 0x0064: return "D"; - case 0x8064: return "D'"; - case 0x0065: return "E"; - case 0x8065: return "E'"; - case 0x0068: return "H"; - case 0x8068: return "H'"; - case 0x006c: return "L"; - case 0x806c: return "L'"; - - case 0x0069: return "I"; - case 0x0072: return "R"; - - /* 16-bit registers */ - case 0x6166: return "AF"; - case 0xe166: return "AF'"; - case 0x6263: return "BC"; - case 0xe263: return "BC'"; - case 0x6465: return "DE"; - case 0xe465: return "DE'"; - case 0x686c: return "HL"; - case 0xe86c: return "HL'"; - - case 0x7370: return "SP"; - case 0x7063: return "PC"; - case 0x6978: return "IX"; - case 0x6979: return "IY"; - - /* interrupt flags */ - case 0x696d: return "IM"; - case 0x69666631: return "IFF1"; - case 0x69666632: return "IFF2"; - - default: - ui_error( UI_ERROR_ERROR, "attempt to get unknown register '%d'", which ); - return "(invalid)"; - } -} Modified: trunk/fuse/debugger/commandl.l =================================================================== --- trunk/fuse/debugger/commandl.l 2016-07-17 12:27:33 UTC (rev 816) +++ trunk/fuse/debugger/commandl.l 2016-07-18 11:56:29 UTC (rev 817) @@ -1,8 +1,8 @@ /* commandl.l: Debugger command lexical scanner - Copyright (c) 2002-2013 Philip Kendall + Copyright (c) 2002-2016 Philip Kendall Copyright (c) 2015 Sergio Baldoví - $Id: commandl.l 5539 2016-05-29 10:49:51Z fredm $ + $Id: commandl.l 5677 2016-07-09 13:58:02Z 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 @@ -47,7 +47,7 @@ %} -ID [a-z]([a-z0-9]|\\[ ])+ +ID [a-z]([a-z0-9]|\\[ ])* %option caseless @@ -83,23 +83,10 @@ ti|tim|time { return TIME; } w|wr|wri|writ|write { return WRITE; } -a|b|c|d|e|f|h|l { yylval.reg = debugger_register_hash( yytext ); - return DEBUGGER_REGISTER; } +a|b|c|d|e|f|h|l|af|bc|de|hl|sp|pc|ix|iy|i|r|im|iff1|iff2|"a'"|"b'"|"c'"|"d'"|"e'"|"f'"|"h'"|"l'"|"af\'"|"bc\'"|"de\'"|"hl\'" { + yylval.string = mempool_strdup( debugger_memory_pool, yytext ); + return DEBUGGER_REGISTER; } -"a'"|"b'"|"c'"|"d'"|"e'"|"f'"|"h'"|"l'" { - yylval.reg = debugger_register_hash( yytext ); - return DEBUGGER_REGISTER; } - -af|bc|de|hl|"af\'"|"bc\'"|"de\'"|"hl\'" { - yylval.reg = debugger_register_hash( yytext ); - return DEBUGGER_REGISTER; } - -sp|pc|ix|iy|i|r { yylval.reg = debugger_register_hash( yytext ); - return DEBUGGER_REGISTER; } - -im|iff1|iff2 { yylval.reg = debugger_register_hash( yytext ); - return DEBUGGER_REGISTER; } - "(" { return '('; } ")" { return ')'; } Modified: trunk/fuse/debugger/commandy.y =================================================================== --- trunk/fuse/debugger/commandy.y 2016-07-17 12:27:33 UTC (rev 816) +++ trunk/fuse/debugger/commandy.y 2016-07-18 11:56:29 UTC (rev 817) @@ -1,8 +1,8 @@ /* commandy.y: Parse a debugger command - Copyright (c) 2002-2015 Philip Kendall + Copyright (c) 2002-2016 Philip Kendall Copyright (c) 2015 Sergio Baldoví - $Id: commandy.y 5539 2016-05-29 10:49:51Z fredm $ + $Id: commandy.y 5677 2016-07-09 13:58:02Z 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 @@ -47,7 +47,6 @@ %union { int token; - int reg; libspectrum_dword integer; char *string; @@ -98,7 +97,7 @@ %token TIME %token WRITE -%token <reg> DEBUGGER_REGISTER +%token <string> DEBUGGER_REGISTER %token <integer> NUMBER @@ -192,6 +191,10 @@ | SET NUMBER number { debugger_poke( $2, $3 ); } | SET DEBUGGER_REGISTER number { debugger_register_set( $2, $3 ); } | SET VARIABLE number { debugger_variable_set( $2, $3 ); } + | SET STRING ':' STRING number { debugger_system_variable_set( $2, $4, $5 ); } + /* Temporary hack while we deprecate the old unprefixed style + of register access. This should be removed in Fuse 1.4 */ + | SET STRING ':' DEBUGGER_REGISTER number { debugger_system_variable_set( $2, $4, $5 ); } | STEP { debugger_step(); } ; @@ -246,6 +249,14 @@ | DEBUGGER_REGISTER { $$ = debugger_expression_new_register( $1, debugger_memory_pool ); if( !$$ ) YYABORT; } + | STRING ':' STRING { $$ = debugger_expression_new_system_variable( $1, $3, debugger_memory_pool ); + if( !$$ ) YYABORT; + } + /* Temporary hack while we deprecate the old unprefixed style + of register access. This should be removed in Fuse 1.4 */ + | STRING ':' DEBUGGER_REGISTER { $$ = debugger_expression_new_system_variable( $1, $3, debugger_memory_pool ); + if( !$$ ) YYABORT; + } | VARIABLE { $$ = debugger_expression_new_variable( $1, debugger_memory_pool ); if( !$$ ) YYABORT; } Modified: trunk/fuse/debugger/debugger.c =================================================================== --- trunk/fuse/debugger/debugger.c 2016-07-17 12:27:33 UTC (rev 816) +++ trunk/fuse/debugger/debugger.c 2016-07-18 11:56:29 UTC (rev 817) @@ -1,5 +1,5 @@ /* debugger.c: Fuse's monitor/debugger - Copyright (c) 2002-2011 Philip Kendall + Copyright (c) 2002-2016 Philip Kendall $Id$ @@ -29,6 +29,7 @@ #include "debugger_internals.h" #include "event.h" #include "fuse.h" +#include "infrastructure/startup_manager.h" #include "memory.h" #include "mempool.h" #include "periph.h" @@ -48,8 +49,11 @@ /* The event type used for time breakpoints */ int debugger_breakpoint_event; -void -debugger_init( void ) +/* The system variable type used for Z80 registers */ +const char *debugger_z80_system_variable_type = "z80"; + +static int +debugger_init( void *context ) { debugger_breakpoints = NULL; debugger_output_base = 16; @@ -59,8 +63,11 @@ debugger_breakpoint_event = event_register( debugger_breakpoint_time_fn, "Breakpoint" ); debugger_event_init(); + debugger_system_variable_init(); debugger_variable_init(); debugger_reset(); + + return 0; } void @@ -70,14 +77,26 @@ debugger_mode = DEBUGGER_MODE_INACTIVE; } -int +static void debugger_end( void ) { debugger_breakpoint_remove_all(); debugger_variable_end(); + debugger_system_variable_end(); debugger_event_end(); +} - return 0; +void +debugger_register_startup( void ) +{ + startup_manager_module dependencies[] = { + STARTUP_MANAGER_MODULE_EVENT, + STARTUP_MANAGER_MODULE_MEMPOOL, + STARTUP_MANAGER_MODULE_SETUID, + }; + startup_manager_register( STARTUP_MANAGER_MODULE_DEBUGGER, dependencies, + ARRAY_SIZE( dependencies ), debugger_init, NULL, + debugger_end ); } /* Activate the debugger */ Modified: trunk/fuse/debugger/debugger.h =================================================================== --- trunk/fuse/debugger/debugger.h 2016-07-17 12:27:33 UTC (rev 816) +++ trunk/fuse/debugger/debugger.h 2016-07-18 11:56:29 UTC (rev 817) @@ -1,5 +1,5 @@ /* debugger.h: Fuse's monitor/debugger - Copyright (c) 2002-2013 Philip Kendall + Copyright (c) 2002-2016 Philip Kendall $Id$ @@ -49,11 +49,10 @@ /* Which base should we display things in */ extern int debugger_output_base; -void debugger_init( void ); +void debugger_register_startup( void ); + void debugger_reset( void ); -int debugger_end( void ); - int debugger_trap( void ); /* Activate the debugger */ int debugger_step( void ); /* Single step */ @@ -85,4 +84,13 @@ /* Exit the emulator */ void debugger_exit_emulator( void ); +/* Debugger system variables */ +typedef libspectrum_dword (*debugger_get_system_variable_fn_t)( void ); +typedef void (*debugger_set_system_variable_fn_t)( libspectrum_dword value ); + +void debugger_system_variable_register( + const char *type, const char *detail, + debugger_get_system_variable_fn_t get, + debugger_set_system_variable_fn_t set ); + #endif /* #ifndef FUSE_DEBUGGER_H */ Modified: trunk/fuse/debugger/debugger_internals.h =================================================================== --- trunk/fuse/debugger/debugger_internals.h 2016-07-17 12:27:33 UTC (rev 816) +++ trunk/fuse/debugger/debugger_internals.h 2016-07-18 11:56:29 UTC (rev 817) @@ -1,5 +1,5 @@ /* debugger_internals.h: The internals of Fuse's monitor/debugger - Copyright (c) 2002-2011 Philip Kendall + Copyright (c) 2002-2016 Philip Kendall $Id$ @@ -34,6 +34,9 @@ /* The event type used to trigger time breakpoints */ extern int debugger_breakpoint_event; +/* The system variable type used for Z80 registers */ +extern const char *debugger_z80_system_variable_type; + void debugger_breakpoint_time_fn( libspectrum_dword tstates, int type, void *user_data ); int debugger_breakpoint_remove( size_t id ); @@ -49,10 +52,7 @@ int debugger_poke( libspectrum_word address, libspectrum_byte value ); int debugger_port_write( libspectrum_word address, libspectrum_byte value ); -int debugger_register_hash( const char *reg ); -libspectrum_word debugger_register_get( int which ); -void debugger_register_set( int which, libspectrum_word value ); -const char* debugger_register_text( int which ); +void debugger_register_set( const char *which, libspectrum_word value ); void debugger_exit_emulator( void ); @@ -85,13 +85,16 @@ debugger_expression* debugger_expression_new_number( libspectrum_dword number, int pool ); -debugger_expression* debugger_expression_new_register( int which, int pool ); +debugger_expression* debugger_expression_new_register( const char *which, int pool ); debugger_expression* debugger_expression_new_unaryop( int operation, debugger_expression *operand, int pool ); debugger_expression* debugger_expression_new_binaryop( int operation, debugger_expression *operand1, debugger_expression *operand2, int pool ); debugger_expression* +debugger_expression_new_system_variable( const char *type, const char *detail, + int pool ); +debugger_expression* debugger_expression_new_variable( const char *name, int pool ); debugger_expression* debugger_expression_copy( debugger_expression *src ); @@ -106,6 +109,17 @@ int debugger_event_is_registered( const char *type, const char *detail ); void debugger_event_end( void ); +/* System variables handling */ + +void debugger_system_variable_init( void ); +void debugger_system_variable_end( void ); +int debugger_system_variable_find( const char *type, const char *detail ); +libspectrum_dword debugger_system_variable_get( int system_variable ); +void debugger_system_variable_set( const char *type, const char *detail, + libspectrum_dword value ); +void debugger_system_variable_text( char *buffer, size_t length, + int system_variable ); + /* Variables handling */ void debugger_variable_init( void ); Modified: trunk/fuse/debugger/event.c =================================================================== --- trunk/fuse/debugger/event.c 2016-07-17 12:27:33 UTC (rev 816) +++ trunk/fuse/debugger/event.c 2016-07-18 11:56:29 UTC (rev 817) @@ -88,8 +88,11 @@ debugger_event( int event_code ) { debugger_event_t event; - GSList *ptr; + debugger_breakpoint *bp; + GSList *ptr, *ptr_next; + int signal_breakpoints_updated = 0; + if( event_code >= registered_events->len ) { ui_error( UI_ERROR_ERROR, "internal error: invalid debugger event %d", event_code ); @@ -98,16 +101,28 @@ event = g_array_index( registered_events, debugger_event_t, event_code ); - for( ptr = debugger_breakpoints; ptr; ptr = ptr->next ) { - debugger_breakpoint *bp = ptr->data; + for( ptr = debugger_breakpoints; ptr; ptr = ptr_next ) { + + bp = ptr->data; + ptr_next = ptr->next; + if( bp->type != DEBUGGER_BREAKPOINT_TYPE_EVENT ) continue; if( event_matches( &bp->value.event, event.type, event.detail ) && debugger_breakpoint_trigger( bp ) ) { debugger_mode = DEBUGGER_MODE_HALTED; debugger_command_evaluate( bp->commands ); + + if( bp->life == DEBUGGER_BREAKPOINT_LIFE_ONESHOT ) { + debugger_breakpoints = g_slist_remove( debugger_breakpoints, bp ); + libspectrum_free( bp ); + signal_breakpoints_updated = 1; + } } } + + if( signal_breakpoints_updated ) + ui_breakpoints_updated(); } /* Tidy-up function called at end of emulation */ Modified: trunk/fuse/debugger/expression.c =================================================================== --- trunk/fuse/debugger/expression.c 2016-07-17 12:27:33 UTC (rev 816) +++ trunk/fuse/debugger/expression.c 2016-07-18 11:56:29 UTC (rev 817) @@ -1,5 +1,5 @@ /* expression.c: A numeric expression - Copyright (c) 2003-2015 Philip Kendall + Copyright (c) 2003-2016 Philip Kendall $Id$ @@ -38,9 +38,9 @@ typedef enum expression_type { DEBUGGER_EXPRESSION_TYPE_INTEGER, - DEBUGGER_EXPRESSION_TYPE_REGISTER, DEBUGGER_EXPRESSION_TYPE_UNARYOP, DEBUGGER_EXPRESSION_TYPE_BINARYOP, + DEBUGGER_EXPRESSION_TYPE_SYSVAR, DEBUGGER_EXPRESSION_TYPE_VARIABLE, } expression_type; @@ -86,10 +86,10 @@ union { int integer; - int reg; struct unaryop_type unaryop; struct binaryop_type binaryop; char *variable; + int system_variable; } types; }; @@ -163,18 +163,15 @@ return exp; } +/* Create a new expression representing a Z80 register + + Now just a pass through to the appropriate system variable. + This function should be removed in Fuse 1.4 */ debugger_expression* -debugger_expression_new_register( int which, int pool ) +debugger_expression_new_register( const char *which, int pool ) { - debugger_expression *exp; - - exp = mempool_new( pool, debugger_expression, 1 ); - - exp->type = DEBUGGER_EXPRESSION_TYPE_REGISTER; - exp->precedence = PRECEDENCE_ATOMIC; - exp->types.reg = which; - - return exp; + return debugger_expression_new_system_variable( + debugger_z80_system_variable_type, which, pool ); } debugger_expression* @@ -195,7 +192,6 @@ return exp; } - debugger_expression* debugger_expression_new_unaryop( int operation, debugger_expression *operand, int pool ) @@ -214,6 +210,29 @@ } debugger_expression* +debugger_expression_new_system_variable( const char *type, const char *detail, + int pool ) +{ + debugger_expression *exp; + int system_variable; + + system_variable = debugger_system_variable_find( type, detail ); + if( system_variable == -1 ) { + ui_error( UI_ERROR_WARNING, "System variable %s:%s not known", type, + detail ); + return NULL; + } + + exp = mempool_new( pool, debugger_expression, 1 ); + + exp->type = DEBUGGER_EXPRESSION_TYPE_SYSVAR; + exp->precedence = PRECEDENCE_ATOMIC; + exp->types.system_variable = system_variable; + + return exp; +} + +debugger_expression* debugger_expression_new_variable( const char *name, int pool ) { debugger_expression *exp; @@ -233,7 +252,7 @@ switch( exp->type ) { case DEBUGGER_EXPRESSION_TYPE_INTEGER: - case DEBUGGER_EXPRESSION_TYPE_REGISTER: + case DEBUGGER_EXPRESSION_TYPE_SYSVAR: break; case DEBUGGER_EXPRESSION_TYPE_UNARYOP: @@ -270,10 +289,6 @@ dest->types.integer = src->types.integer; break; - case DEBUGGER_EXPRESSION_TYPE_REGISTER: - dest->types.reg = src->types.reg; - break; - case DEBUGGER_EXPRESSION_TYPE_UNARYOP: dest->types.unaryop.operation = src->types.unaryop.operation; dest->types.unaryop.op = debugger_expression_copy( src->types.unaryop.op ); @@ -300,10 +315,13 @@ } break; + case DEBUGGER_EXPRESSION_TYPE_SYSVAR: + dest->types.system_variable = src->types.system_variable; + break; + case DEBUGGER_EXPRESSION_TYPE_VARIABLE: dest->types.variable = utils_safe_strdup( src->types.variable ); break; - } return dest; @@ -317,15 +335,15 @@ case DEBUGGER_EXPRESSION_TYPE_INTEGER: return exp->types.integer; - case DEBUGGER_EXPRESSION_TYPE_REGISTER: - return debugger_register_get( exp->types.reg ); - case DEBUGGER_EXPRESSION_TYPE_UNARYOP: return evaluate_unaryop( &( exp->types.unaryop ) ); case DEBUGGER_EXPRESSION_TYPE_BINARYOP: return evaluate_binaryop( &( exp->types.binaryop ) ); + case DEBUGGER_EXPRESSION_TYPE_SYSVAR: + return debugger_system_variable_get( exp->types.system_variable ); + case DEBUGGER_EXPRESSION_TYPE_VARIABLE: return debugger_variable_get( exp->types.variable ); @@ -435,16 +453,16 @@ } return 0; - case DEBUGGER_EXPRESSION_TYPE_REGISTER: - snprintf( buffer, length, "%s", debugger_register_text( exp->types.reg ) ); - return 0; - case DEBUGGER_EXPRESSION_TYPE_UNARYOP: return deparse_unaryop( buffer, length, &( exp->types.unaryop ) ); case DEBUGGER_EXPRESSION_TYPE_BINARYOP: return deparse_binaryop( buffer, length, &( exp->types.binaryop ) ); + case DEBUGGER_EXPRESSION_TYPE_SYSVAR: + debugger_system_variable_text( buffer, length, exp->types.system_variable ); + return 0; + case DEBUGGER_EXPRESSION_TYPE_VARIABLE: snprintf( buffer, length, "$%s", exp->types.variable ); return 0; Copied: trunk/fuse/debugger/system_variable.c (from rev 816, vendor/fuse-emulator/current/fuse/debugger/system_variable.c) =================================================================== --- trunk/fuse/debugger/system_variable.c (rev 0) +++ trunk/fuse/debugger/system_variable.c 2016-07-18 11:56:29 UTC (rev 817) @@ -0,0 +1,160 @@ +/* event.c: Debugger system variables + Copyright (c) 2016 Philip Kendall + + $Id$ + + 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 <string.h> + +#ifdef HAVE_LIB_GLIB +#include <glib.h> +#endif /* #ifdef HAVE_LIB_GLIB */ + +#include <libspectrum.h> + +#include "debugger_internals.h" +#include "fuse.h" +#include "ui/ui.h" +#include "utils.h" + +typedef struct system_variable_t { + char *type; + char *detail; + debugger_get_system_variable_fn_t get; + debugger_set_system_variable_fn_t set; +} system_variable_t; + +static GArray *system_variables; + +void +debugger_system_variable_init( void ) +{ + system_variables = g_array_new( FALSE, FALSE, sizeof( system_variable_t ) ); +} + +void +debugger_system_variable_register( const char *type, const char *detail, + debugger_get_system_variable_fn_t get, + debugger_set_system_variable_fn_t set ) +{ + system_variable_t sysvar; + + sysvar.type = utils_safe_strdup( type ); + sysvar.detail = utils_safe_strdup( detail ); + sysvar.get = get; + sysvar.set = set; + + g_array_append_val( system_variables, sysvar ); +} + +static int +system_variable_matches( system_variable_t *sysvar, const char *type, const char *detail ) +{ + return strcasecmp( type, sysvar->type ) == 0 && + strcasecmp( detail, sysvar->detail ) == 0; +} + +static int +find_system_variable( const char *type, const char *detail, system_variable_t *out ) +{ + size_t i; + + for( i = 0; i < system_variables->len; i++ ) { + system_variable_t sysvar = + g_array_index( system_variables, system_variable_t, i ); + + if( system_variable_matches( &sysvar, type, detail ) ) { + if( out != NULL ) *out = sysvar; + return i; + } + } + + return -1; +} + +int +debugger_system_variable_find( const char *type, const char *detail ) +{ + return find_system_variable( type, detail, NULL ); +} + +libspectrum_dword +debugger_system_variable_get( int system_variable ) +{ + system_variable_t sysvar = + g_array_index( system_variables, system_variable_t, system_variable ); + + return sysvar.get(); +} + +void +debugger_system_variable_set( const char *type, const char *detail, + libspectrum_dword value ) +{ + int index; + system_variable_t sysvar; + + index = find_system_variable( type, detail, &sysvar ); + if( index == -1 ) { + ui_error( UI_ERROR_ERROR, "Unknown system variable %s:%s", type, detail ); + return; + } + + if (sysvar.set == NULL) { + ui_error( UI_ERROR_ERROR, "System variable %s:%s cannot be set", type, + detail ); + return; + } + + sysvar.set( value ); +} + +void +debugger_system_variable_text( char *buffer, size_t length, + int system_variable ) +{ + system_variable_t sysvar = + g_array_index( system_variables, system_variable_t, system_variable ); + + snprintf( buffer, length, "%s:%s", sysvar.type, sysvar.detail ); +} + +/* Tidy-up function called at end of emulation */ +void +debugger_system_variable_end( void ) +{ + int i; + system_variable_t sysvar; + + if( !system_variables ) return; + + for( i = 0; i < system_variables->len; i++ ) { + sysvar = g_array_index( system_variables, system_variable_t, i ); + libspectrum_free( sysvar.detail ); + libspectrum_free( sysvar.type ); + } + + g_array_free( system_variables, TRUE ); + system_variables = NULL; +} Modified: trunk/fuse/display.c =================================================================== --- trunk/fuse/display.c 2016-07-17 12:27:33 UTC (rev 816) +++ trunk/fuse/display.c 2016-07-18 11:56:29 UTC (rev 817) @@ -32,8 +32,8 @@ #include <string.h> #include "display.h" -#include "event.h" #include "fuse.h" +#include "infrastructure/startup_manager.h" #include "machine.h" #include "movie.h" #include "peripherals/scld.h" @@ -207,6 +207,26 @@ return 0; } +static int +display_init_wrapper( void *context ) +{ + display_startup_context *typed_context = + (display_startup_context*) context; + + return display_init( typed_context->argc, typed_context->argv ); +} + +void +display_register_startup( display_startup_context *context ) +{ + /* The Wii has an explicit call to display_init for now */ +#ifndef GEKKO + startup_manager_register_no_dependencies( STARTUP_MANAGER_MODULE_DISPLAY, + display_init_wrapper, context, + NULL ); +#endif /* #ifndef GEKKO */ +} + /* Mark as 'dirty' the pixels which have been changed by a write to 'offset' within the RAM page containing the screen */ void Modified: trunk/fuse/display.h =================================================================== --- trunk/fuse/display.h 2016-07-17 12:27:33 UTC (rev 816) +++ trunk/fuse/display.h 2016-07-18 11:56:29 UTC (rev 817) @@ -75,7 +75,13 @@ extern libspectrum_word display_line_start[ DISPLAY_HEIGHT ]; extern libspectrum_word display_attr_start[ DISPLAY_HEIGHT ]; -int display_init(int *argc, char ***argv); +typedef struct display_startup_context { + int *argc; + char ***argv; +} display_startup_context; + +int display_init( int *argc, char ***argv ); +void display_register_startup( display_startup_context *context ); void display_line(void); typedef void (*display_dirty_fn)( libspectrum_word offset ); Modified: trunk/fuse/event.c =================================================================== --- trunk/fuse/event.c 2016-07-17 12:27:33 UTC (rev 816) +++ trunk/fuse/event.c 2016-07-18 11:56:29 UTC (rev 817) @@ -30,6 +30,7 @@ #include <libspectrum.h> #include "event.h" +#include "infrastructure/startup_manager.h" #include "fuse.h" #include "ui/ui.h" #include "utils.h" @@ -62,8 +63,8 @@ static GArray *registered_events; -void -event_init( void ) +static int +event_init( void *context ) { registered_events = g_array_new( FALSE, FALSE, sizeof( event_descriptor_t ) ); @@ -72,6 +73,8 @@ event_next_event = event_no_events; event_frame_end=0; event_timer=0; + + return 0; } int @@ -280,9 +283,18 @@ } /* Tidy-up function called at end of emulation */ -void +static void event_end( void ) { event_reset(); registered_events_free(); } + +void +event_register_startup( void ) +{ + startup_manager_module dependencies[] = { STARTUP_MANAGER_MODULE_SETUID }; + startup_manager_register( STARTUP_MANAGER_MODULE_EVENT, dependencies, + ARRAY_SIZE( dependencies ), event_init, NULL, + event_end ); +} Modified: trunk/fuse/event.h =================================================================== --- trunk/fuse/event.h 2016-07-17 12:27:33 UTC (rev 816) +++ trunk/fuse/event.h 2016-07-18 11:56:29 UTC (rev 817) @@ -54,9 +54,6 @@ /* We've had a timer event */ extern int event_timer; -/* Set up the event list */ -void event_init( void ); - /* Register a new event type */ int event_register( event_fn_t fn, const char *description ); @@ -94,7 +91,7 @@ /* A textual representation of each event type */ const char *event_name( int type ); -/* Called on exit to clean up */ -void event_end( void ); +/* Register the init and end functions */ +void event_register_startup( void ); #endif /* #ifndef FUSE_EVENT_H */ Modified: trunk/fuse/fuse.c =================================================================== --- trunk/fuse/fuse.c 2016-07-17 12:27:33 UTC (rev 816) +++ trunk/fuse/fuse.c 2016-07-18 11:56:29 UTC (rev 817) @@ -1,5 +1,5 @@ /* fuse.c: The Free Unix Spectrum Emulator - Copyright (c) 1999-2015 Philip Kendall and others + Copyright (c) 1999-2016 Philip Kendall and others $Id$ @@ -59,6 +59,7 @@ #include "display.h" #include "event.h" #include "fuse.h" +#include "infrastructure/startup_manager.h" #include "keyboard.h" #include "machine.h" #include "machines/machines_periph.h" @@ -145,7 +146,11 @@ } start_files_t; -static int creator_init( void ); +/* Context for the display startup routine */ +static display_startup_context display_context; + +static void creator_register_startup( void ); + static void fuse_show_copyright(void); static void fuse_show_version( void ); static void fuse_show_help( void ); @@ -189,6 +194,139 @@ } +static int +fuse_libspectrum_init( void *context ) +{ + if( libspectrum_check_version( LIBSPECTRUM_MIN_VERSION ) ) { + if( libspectrum_init() ) return 1; + } else { + ui_error( UI_ERROR_ERROR, + "libspectrum version %s found, but %s required", + libspectrum_version(), LIBSPECTRUM_MIN_VERSION ); + return 1; + } + + return 0; +} + +static void +libspectrum_register_startup( void ) +{ + startup_manager_module dependencies[] = { + STARTUP_MANAGER_MODULE_DISPLAY + }; + startup_manager_register( STARTUP_MANAGER_MODULE_LIBSPECTRUM, dependencies, + ARRAY_SIZE( dependencies ), fuse_libspectrum_init, + NULL, NULL ); +} + +static int +libxml2_init( void *context ) +{ +#ifdef HAVE_LIB_XML2 + LIBXML_TEST_VERSION +#endif + + return 0; +} + +static void +libxml2_register_startup( void ) +{ + startup_manager_module dependencies[] = { STARTUP_MANAGER_MODULE_SETUID }; + startup_manager_register( STARTUP_MANAGER_MODULE_LIBXML2, dependencies, + ARRAY_SIZE( dependencies ), libxml2_init, NULL, + NULL ); +} + +static int +setuid_init( void *context ) +{ +#ifdef HAVE_GETEUID + int error; + + /* Drop root privs if we have them */ + if( !geteuid() ) { + error = setuid( getuid() ); + if( error ) { + ui_error( UI_ERROR_ERROR, "Could not drop root privileges" ); + return 1; + } + } +#endif /* #ifdef HAVE_GETEUID */ + + return 0; +} + +static void +setuid_register_startup() +{ + startup_manager_module dependencies[] = { + STARTUP_MANAGER_MODULE_DISPLAY, + STARTUP_MANAGER_MODULE_LIBSPECTRUM, + }; + startup_manager_register( STARTUP_MANAGER_MODULE_SETUID, dependencies, + ARRAY_SIZE( dependencies ), setuid_init, NULL, + NULL ); +} + +static int +run_startup_manager( int *argc, char ***argv ) +{ + startup_manager_init(); + + display_context.argc = argc; + display_context.argv = argv; + + /* Get every module to register its init function */ + ay_register_startup(); + beta_register_startup(); + creator_register_startup(); + debugger_register_startup(); + didaktik80_register_startup(); + disciple_register_startup(); + display_register_startup( &display_context ); + divide_register_startup(); + event_register_startup(); + fdd_register_startup(); + fuller_register_startup(); + if1_register_startup(); + if2_register_startup(); + kempmouse_register_startup(); + libspectrum_register_startup(); + libxml2_register_startup(); + machine_register_startup(); + machines_periph_register_startup(); + melodik_register_startup(); + memory_register_startup(); + mempool_register_startup(); + opus_register_startup(); + plusd_register_startup(); + printer_register_startup(); + profile_register_startup(); + psg_register_startup(); + rzx_register_startup(); + scld_register_startup(); + settings_register_startup(); + setuid_register_startup(); + simpleide_register_startup(); + slt_register_startup(); + sound_register_startup(); + speccyboot_register_startup(); + specdrum_register_startup(); + spectranet_register_startup(); + spectrum_register_startup(); + tape_register_startup(); + timer_register_startup(); + ula_register_startup(); + usource_register_startup(); + z80_register_startup(); + zxatasp_register_startup(); + zxcf_register_startup(); + + return startup_manager_run(); +} + int fuse_init(int argc, char **argv) { int error, first_arg; @@ -231,96 +369,14 @@ fuse_show_copyright(); #endif - /* FIXME: order of these initialisation calls. Work out what depends on - what */ - /* FIXME FIXME 20030407: really do this soon. This is getting *far* too - hairy */ - fuse_joystick_init (); + fuse_joystick_init(); fuse_keyboard_init(); - event_init(); - -#ifndef GEKKO - if( display_init(&argc,&argv) ) return 1; -#endif + if( run_startup_manager( &argc, &argv ) ) return 1; - if( libspectrum_check_version( LIBSPECTRUM_MIN_VERSION ) ) { - if( libspectrum_init() ) return 1; - } else { - ui_error( UI_ERROR_ERROR, - "libspectrum version %s found, but %s required", - libspectrum_version(), LIBSPECTRUM_MIN_VERSION ); - return 1; - } - - /* Must be called after libspectrum_init() so we can get the gcrypt - version */ - if( creator_init() ) return 1; - -#ifdef HAVE_GETEUID - /* Drop root privs if we have them */ - if( !geteuid() ) { - error = setuid( getuid() ); - if( error ) { - ui_error( UI_ERROR_ERROR, "Could not drop root privileges" ); - return 1; - } - } -#endif /* #ifdef HAVE_GETEUID */ - - mempool_init(); - memory_init(); - -#ifdef HAVE_LIB_XML2 -LIBXML_TEST_VERSION -#endif - - debugger_init(); - - spectrum_init(); - printer_init(); - rzx_init(); - psg_init(); - beta_init(); - opus_init(); - plusd_init(); - didaktik80_init(); - disciple_init(); - fdd_init_events(); - if( simpleide_init() ) return 1; - if( zxatasp_init() ) return 1; - if( zxcf_init() ) return 1; - if1_init(); - if2_init(); - if( divide_init() ) return 1; - scld_init(); - ula_init(); - ay_init(); - slt_init(); - profile_init(); - kempmouse_init(); - fuller_init(); - melodik_init(); - speccyboot_init(); - specdrum_init(); - spectranet_init(); - usource_init(); - machines_periph_init(); - - z80_init(); - - if( timer_init() ) return 1; - - error = timer_estimate_reset(); if( error ) return error; - - error = machine_init_machines(); - if( error ) return error; - error = machine_select_id( settings_current.start_machine ); if( error ) return error; - tape_init(); - error = scaler_select_id( start_scaler ); libspectrum_free( start_scaler ); if( error ) return error; @@ -339,8 +395,8 @@ return 0; } -static -int creator_init( void ) +static int +creator_init( void *context ) { size_t i; unsigned int version[4] = { 0, 0, 0, 0 }; @@ -392,6 +448,21 @@ return 0; } +static void +creator_end( void ) +{ + libspectrum_creator_free( fuse_creator ); +} + +static void +creator_register_startup( void ) +{ + startup_manager_module dependencies[] = { STARTUP_MANAGER_MODULE_SETUID }; + startup_manager_register( STARTUP_MANAGER_MODULE_CREATOR, dependencies, + ARRAY_SIZE( dependencies ), creator_init, NULL, + creator_end ); +} + static void fuse_show_copyright(void) { printf( "\n" ); @@ -845,51 +916,19 @@ ... [truncated message content] |
From: <fr...@us...> - 2016-07-17 12:27:36
|
Revision: 816 http://sourceforge.net/p/fuse-for-macosx/code/816 Author: fredm Date: 2016-07-17 12:27:33 +0000 (Sun, 17 Jul 2016) Log Message: ----------- Tag vendor/fuse-emulator/current as vendor/fuse-emulator/fuse-1.2.1-r5687. Revision Links: -------------- http://sourceforge.net/p/fuse-for-macosx/code/5687 Added Paths: ----------- vendor/fuse-emulator/fuse-1.2.1-r5687/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2016-07-17 12:27:13
|
Revision: 815 http://sourceforge.net/p/fuse-for-macosx/code/815 Author: fredm Date: 2016-07-17 12:27:10 +0000 (Sun, 17 Jul 2016) Log Message: ----------- Load . into vendor/fuse-emulator/current. Modified Paths: -------------- vendor/fuse-emulator/current/fuse/ChangeLog vendor/fuse-emulator/current/fuse/README vendor/fuse-emulator/current/fuse/configure.ac vendor/fuse-emulator/current/fuse/hacking/ChangeLog vendor/fuse-emulator/current/fuse/man/fuse.1 Modified: vendor/fuse-emulator/current/fuse/ChangeLog =================================================================== --- vendor/fuse-emulator/current/fuse/ChangeLog 2016-07-17 12:20:31 UTC (rev 814) +++ vendor/fuse-emulator/current/fuse/ChangeLog 2016-07-17 12:27:10 UTC (rev 815) @@ -1,4 +1,4 @@ -2016-07-?? Philip Kendall <phi...@sh...> +2016-07-17 Philip Kendall <phi...@sh...> * Fuse 1.2.1 released. @@ -1325,4 +1325,4 @@ * Version 0.1.0 released. -$Id: ChangeLog 5677 2016-07-09 13:58:02Z fredm $ +$Id: ChangeLog 5686 2016-07-17 10:37:50Z fredm $ Modified: vendor/fuse-emulator/current/fuse/README =================================================================== --- vendor/fuse-emulator/current/fuse/README 2016-07-17 12:20:31 UTC (rev 814) +++ vendor/fuse-emulator/current/fuse/README 2016-07-17 12:27:10 UTC (rev 815) @@ -108,6 +108,6 @@ <http://www.worldofspectrum.org/forums/>. Philip Kendall <phi...@sh...> -10th July, 2016 +17th July, 2016 -$Id: README 5681 2016-07-10 13:06:44Z fredm $ +$Id: README 5686 2016-07-17 10:37:50Z fredm $ Modified: vendor/fuse-emulator/current/fuse/configure.ac =================================================================== --- vendor/fuse-emulator/current/fuse/configure.ac 2016-07-17 12:20:31 UTC (rev 814) +++ vendor/fuse-emulator/current/fuse/configure.ac 2016-07-17 12:27:10 UTC (rev 815) @@ -1,5 +1,5 @@ dnl Process this file with autoconf to produce a configure script. -dnl $Id: configure.ac 5681 2016-07-10 13:06:44Z fredm $ +dnl $Id: configure.ac 5686 2016-07-17 10:37:50Z fredm $ 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 @@ -20,7 +20,7 @@ dnl E-mail: phi...@sh... dnl Package version -m4_define([fuse_version], [1.2.1-pre1]) +m4_define([fuse_version], [1.2.1]) dnl Product full version m4_define([fuse_major_version], [1]) Modified: vendor/fuse-emulator/current/fuse/hacking/ChangeLog =================================================================== --- vendor/fuse-emulator/current/fuse/hacking/ChangeLog 2016-07-17 12:20:31 UTC (rev 814) +++ vendor/fuse-emulator/current/fuse/hacking/ChangeLog 2016-07-17 12:27:10 UTC (rev 815) @@ -5366,3 +5366,5 @@ 20160709 ChangeLog: tweak +D/DISCiPLE ROM/RAM change description (Fred). 20160710 README,configure.ac,man/fuse.1: bump some dates and mark as 1.2.1-pre1 (Fred). +20160717 ChangeLog,README,configure.ac,man/fuse.1: update release dates and mark + this release as 1.2.1 (Fred). Modified: vendor/fuse-emulator/current/fuse/man/fuse.1 =================================================================== --- vendor/fuse-emulator/current/fuse/man/fuse.1 2016-07-17 12:20:31 UTC (rev 814) +++ vendor/fuse-emulator/current/fuse/man/fuse.1 2016-07-17 12:27:10 UTC (rev 815) @@ -23,7 +23,7 @@ .\" E-mail: phi...@sh... .\" .\" -.TH fuse 1 "10th July, 2016" "Version 1.2.1" "Emulators" +.TH fuse 1 "17th July, 2016" "Version 1.2.1" "Emulators" .\" .\"------------------------------------------------------------------ .\" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2016-07-17 12:20:34
|
Revision: 814 http://sourceforge.net/p/fuse-for-macosx/code/814 Author: fredm Date: 2016-07-17 12:20:31 +0000 (Sun, 17 Jul 2016) Log Message: ----------- Tag vendor/fuse-emulator/current as vendor/fuse-emulator/fuse-1.2.1-r5685. Revision Links: -------------- http://sourceforge.net/p/fuse-for-macosx/code/5685 Added Paths: ----------- vendor/fuse-emulator/fuse-1.2.1-r5685/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2016-07-17 12:20:12
|
Revision: 813 http://sourceforge.net/p/fuse-for-macosx/code/813 Author: fredm Date: 2016-07-17 12:20:07 +0000 (Sun, 17 Jul 2016) Log Message: ----------- Load . into vendor/fuse-emulator/current. Modified Paths: -------------- vendor/fuse-emulator/current/fuse/ChangeLog vendor/fuse-emulator/current/fuse/Makefile.am vendor/fuse-emulator/current/fuse/README vendor/fuse-emulator/current/fuse/compat/Makefile.am vendor/fuse-emulator/current/fuse/configure.ac vendor/fuse-emulator/current/fuse/data/fuse.desktop.in vendor/fuse-emulator/current/fuse/debugger/Makefile.am vendor/fuse-emulator/current/fuse/debugger/command.c vendor/fuse-emulator/current/fuse/debugger/commandl.l vendor/fuse-emulator/current/fuse/debugger/commandy.y vendor/fuse-emulator/current/fuse/debugger/debugger.c vendor/fuse-emulator/current/fuse/debugger/debugger.h vendor/fuse-emulator/current/fuse/debugger/debugger_internals.h vendor/fuse-emulator/current/fuse/debugger/event.c vendor/fuse-emulator/current/fuse/debugger/expression.c vendor/fuse-emulator/current/fuse/display.c vendor/fuse-emulator/current/fuse/display.h vendor/fuse-emulator/current/fuse/event.c vendor/fuse-emulator/current/fuse/event.h vendor/fuse-emulator/current/fuse/fuse.c vendor/fuse-emulator/current/fuse/hacking/ChangeLog vendor/fuse-emulator/current/fuse/machine.c vendor/fuse-emulator/current/fuse/machine.h vendor/fuse-emulator/current/fuse/machines/machines_periph.c vendor/fuse-emulator/current/fuse/machines/machines_periph.h vendor/fuse-emulator/current/fuse/man/fuse.1 vendor/fuse-emulator/current/fuse/memory.c vendor/fuse-emulator/current/fuse/memory.h vendor/fuse-emulator/current/fuse/mempool.c vendor/fuse-emulator/current/fuse/mempool.h vendor/fuse-emulator/current/fuse/peripherals/ay.c vendor/fuse-emulator/current/fuse/peripherals/ay.h vendor/fuse-emulator/current/fuse/peripherals/disk/beta.c vendor/fuse-emulator/current/fuse/peripherals/disk/beta.h vendor/fuse-emulator/current/fuse/peripherals/disk/didaktik.c vendor/fuse-emulator/current/fuse/peripherals/disk/didaktik.h vendor/fuse-emulator/current/fuse/peripherals/disk/disciple.c vendor/fuse-emulator/current/fuse/peripherals/disk/disciple.h vendor/fuse-emulator/current/fuse/peripherals/disk/fdd.c vendor/fuse-emulator/current/fuse/peripherals/disk/fdd.h vendor/fuse-emulator/current/fuse/peripherals/disk/opus.c vendor/fuse-emulator/current/fuse/peripherals/disk/opus.h vendor/fuse-emulator/current/fuse/peripherals/disk/plusd.c vendor/fuse-emulator/current/fuse/peripherals/disk/plusd.h vendor/fuse-emulator/current/fuse/peripherals/fuller.c vendor/fuse-emulator/current/fuse/peripherals/fuller.h vendor/fuse-emulator/current/fuse/peripherals/ide/divide.c vendor/fuse-emulator/current/fuse/peripherals/ide/divide.h vendor/fuse-emulator/current/fuse/peripherals/ide/simpleide.c vendor/fuse-emulator/current/fuse/peripherals/ide/simpleide.h vendor/fuse-emulator/current/fuse/peripherals/ide/zxatasp.c vendor/fuse-emulator/current/fuse/peripherals/ide/zxatasp.h vendor/fuse-emulator/current/fuse/peripherals/ide/zxcf.c vendor/fuse-emulator/current/fuse/peripherals/ide/zxcf.h vendor/fuse-emulator/current/fuse/peripherals/if1.c vendor/fuse-emulator/current/fuse/peripherals/if1.h vendor/fuse-emulator/current/fuse/peripherals/if2.c vendor/fuse-emulator/current/fuse/peripherals/if2.h vendor/fuse-emulator/current/fuse/peripherals/joystick.c vendor/fuse-emulator/current/fuse/peripherals/kempmouse.c vendor/fuse-emulator/current/fuse/peripherals/kempmouse.h vendor/fuse-emulator/current/fuse/peripherals/melodik.c vendor/fuse-emulator/current/fuse/peripherals/melodik.h vendor/fuse-emulator/current/fuse/peripherals/printer.c vendor/fuse-emulator/current/fuse/peripherals/printer.h vendor/fuse-emulator/current/fuse/peripherals/scld.c vendor/fuse-emulator/current/fuse/peripherals/scld.h vendor/fuse-emulator/current/fuse/peripherals/speccyboot.c vendor/fuse-emulator/current/fuse/peripherals/speccyboot.h vendor/fuse-emulator/current/fuse/peripherals/specdrum.c vendor/fuse-emulator/current/fuse/peripherals/specdrum.h vendor/fuse-emulator/current/fuse/peripherals/spectranet.c vendor/fuse-emulator/current/fuse/peripherals/spectranet.h vendor/fuse-emulator/current/fuse/peripherals/ula.c vendor/fuse-emulator/current/fuse/peripherals/ula.h vendor/fuse-emulator/current/fuse/peripherals/usource.c vendor/fuse-emulator/current/fuse/peripherals/usource.h vendor/fuse-emulator/current/fuse/profile.c vendor/fuse-emulator/current/fuse/profile.h vendor/fuse-emulator/current/fuse/psg.c vendor/fuse-emulator/current/fuse/psg.h vendor/fuse-emulator/current/fuse/rzx.c vendor/fuse-emulator/current/fuse/rzx.h vendor/fuse-emulator/current/fuse/settings-header.pl vendor/fuse-emulator/current/fuse/settings.pl vendor/fuse-emulator/current/fuse/slt.c vendor/fuse-emulator/current/fuse/slt.h vendor/fuse-emulator/current/fuse/sound/alsasound.c vendor/fuse-emulator/current/fuse/sound.c vendor/fuse-emulator/current/fuse/sound.h vendor/fuse-emulator/current/fuse/spectrum.c vendor/fuse-emulator/current/fuse/spectrum.h vendor/fuse-emulator/current/fuse/tape.c vendor/fuse-emulator/current/fuse/tape.h vendor/fuse-emulator/current/fuse/timer/timer.c vendor/fuse-emulator/current/fuse/timer/timer.h vendor/fuse-emulator/current/fuse/ui/widget/menu.c vendor/fuse-emulator/current/fuse/ui/widget/query.c vendor/fuse-emulator/current/fuse/unittests/unittests.c vendor/fuse-emulator/current/fuse/utils.c vendor/fuse-emulator/current/fuse/utils.h vendor/fuse-emulator/current/fuse/z80/Makefile.am vendor/fuse-emulator/current/fuse/z80/coretest.c vendor/fuse-emulator/current/fuse/z80/z80.c vendor/fuse-emulator/current/fuse/z80/z80.h vendor/fuse-emulator/current/libspectrum/ChangeLog vendor/fuse-emulator/current/libspectrum/Makefile.am vendor/fuse-emulator/current/libspectrum/README vendor/fuse-emulator/current/libspectrum/configure.ac vendor/fuse-emulator/current/libspectrum/doc/libspectrum.3 vendor/fuse-emulator/current/libspectrum/doc/libspectrum.txt vendor/fuse-emulator/current/libspectrum/hacking/ChangeLog vendor/fuse-emulator/current/libspectrum/make-perl.c vendor/fuse-emulator/current/libspectrum/myglib/garray.c Added Paths: ----------- vendor/fuse-emulator/current/fuse/debugger/system_variable.c vendor/fuse-emulator/current/fuse/infrastructure/ vendor/fuse-emulator/current/fuse/infrastructure/Makefile.am vendor/fuse-emulator/current/fuse/infrastructure/startup_manager.c vendor/fuse-emulator/current/fuse/infrastructure/startup_manager.h vendor/fuse-emulator/current/fuse/z80/z80_debugger_variables.c vendor/fuse-emulator/current/fuse/z80/z80_internals.h Removed Paths: ------------- vendor/fuse-emulator/current/fuse/compat/mkstemp.c Modified: vendor/fuse-emulator/current/fuse/ChangeLog =================================================================== --- vendor/fuse-emulator/current/fuse/ChangeLog 2016-06-18 13:46:18 UTC (rev 812) +++ vendor/fuse-emulator/current/fuse/ChangeLog 2016-07-17 12:20:07 UTC (rev 813) @@ -1,3 +1,33 @@ +2016-07-?? Philip Kendall <phi...@sh...> + + * Fuse 1.2.1 released. + + * Emulation core improvements: + * Fix bugs when the detect loaders feature is being used (thanks, Lee + Tonks and windale) (Fredrick Meunier). + + * Debugger improvements: + * Remove the need for "%" when accessing system variables (Philip + Kendall). + * Add Z80 registers as debugger variables (Philip Kendall). + * Expose last byte written to the ULA, tstates since interrupt, + primary and secondary memory control ports as debugger system + variables (Philip Kendall). + * Make breakpoints on events honour lifetime (Sergio Baldoví). + * Extend breakpoints on paging events to more peripherals: Beta 128, + +D, Didaktik 80, DISCiPLE, Opus Discovery and SpeccyBoot (Sergio + Baldoví). + * Split +D memory sources into RAM and ROM sections (Sergio Baldoví). + * Coalesce +D and DISCiPLE RAM pages so they show as 8K pages (Sergio + Baldoví). + + * Miscellaneous improvements: + * Update GNOME .desktop file (Alberto Garcia). + * Add an emulator module startup manager to automatically handle + dependency issues (Philip Kendall). + * Fix crash on widget UIs when hitting the close icon on the title bar + several times (Sergio Baldoví). + 2016-06-06 Philip Kendall <phi...@sh...> * Fuse 1.2.0 released. @@ -1295,4 +1325,4 @@ * Version 0.1.0 released. -$Id: ChangeLog 5594 2016-06-06 10:46:46Z fredm $ +$Id: ChangeLog 5677 2016-07-09 13:58:02Z fredm $ Modified: vendor/fuse-emulator/current/fuse/Makefile.am =================================================================== --- vendor/fuse-emulator/current/fuse/Makefile.am 2016-06-18 13:46:18 UTC (rev 812) +++ vendor/fuse-emulator/current/fuse/Makefile.am 2016-07-17 12:20:07 UTC (rev 813) @@ -1,7 +1,7 @@ ## Process this file with automake to produce Makefile.in ## Copyright (c) 1999-2015 Philip Kendall -## $Id: Makefile.am 5537 2016-05-29 06:17:00Z sbaldovi $ +## $Id: Makefile.am 5677 2016-07-09 13:58:02Z 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 @@ -170,6 +170,7 @@ include data/Makefile.am include debugger/Makefile.am include hacking/Makefile.am +include infrastructure/Makefile.am include lib/Makefile.am include machines/Makefile.am include man/Makefile.am Modified: vendor/fuse-emulator/current/fuse/README =================================================================== --- vendor/fuse-emulator/current/fuse/README 2016-06-18 13:46:18 UTC (rev 812) +++ vendor/fuse-emulator/current/fuse/README 2016-07-17 12:20:07 UTC (rev 813) @@ -1,4 +1,4 @@ -The Free Unix Spectrum Emulator (Fuse) 1.2.0 +The Free Unix Spectrum Emulator (Fuse) 1.2.1 ============================================ Fuse (the Free Unix Spectrum Emulator) was originally, and somewhat @@ -108,6 +108,6 @@ <http://www.worldofspectrum.org/forums/>. Philip Kendall <phi...@sh...> -6th June, 2016 +10th July, 2016 -$Id: README 5594 2016-06-06 10:46:46Z fredm $ +$Id: README 5681 2016-07-10 13:06:44Z fredm $ Modified: vendor/fuse-emulator/current/fuse/compat/Makefile.am =================================================================== --- vendor/fuse-emulator/current/fuse/compat/Makefile.am 2016-06-18 13:46:18 UTC (rev 812) +++ vendor/fuse-emulator/current/fuse/compat/Makefile.am 2016-07-17 12:20:07 UTC (rev 813) @@ -2,7 +2,7 @@ ## Copyright (c) 2003-2013 Philip Kendall ## Copyright (c) 2015 Sergio Baldoví -## $Id: Makefile.am 5434 2016-05-01 04:22:45Z fredm $ +## $Id: Makefile.am 5677 2016-07-09 13:58:02Z 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 @@ -32,10 +32,6 @@ fuse_SOURCES += compat/getopt.c compat/getopt1.c endif -if COMPAT_MKSTEMP -fuse_SOURCES += compat/mkstemp.c -endif - ## Amiga routines if COMPAT_AMIGA fuse_SOURCES += \ Deleted: vendor/fuse-emulator/current/fuse/compat/mkstemp.c =================================================================== --- vendor/fuse-emulator/current/fuse/compat/mkstemp.c 2016-06-18 13:46:18 UTC (rev 812) +++ vendor/fuse-emulator/current/fuse/compat/mkstemp.c 2016-07-17 12:20:07 UTC (rev 813) @@ -1,108 +0,0 @@ -/* Copyright (C) 1991-1999, 2000, 2001 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - Modifications (c) 2003 Philip Kendall - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301 USA. */ - -#include <config.h> - -#include <errno.h> -#include <stdlib.h> -#include <string.h> -#include <sys/types.h> -#include <sys/stat.h> -#include <fcntl.h> -#include <time.h> -#include <unistd.h> - -#include <libspectrum.h> - -#define uint64_t libspectrum_qword - -/* These are the characters used in temporary filenames. */ -static const char letters[] = -"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; - -/* Generate a temporary file name based on TMPL. TMPL must match the - rules for mk[s]temp (i.e. end in "XXXXXX"). The name constructed - does not exist at the time of the call to __gen_tempname. TMPL is - overwritten with the result. - - We use a clever algorithm to get hard-to-predict names. */ -int -mkstemp (char *tmpl) -{ - int len; - char *XXXXXX; - static uint64_t value; - unsigned int count; - int fd = -1; - int save_errno = errno; - - /* A lower bound on the number of temporary files to attempt to - generate. The maximum total number of temporary file names that - can exist for a given template is 62**6. It should never be - necessary to try all these combinations. Instead if a reasonable - number of names is tried (we define reasonable as 62**3) fail to - give the system administrator the chance to remove the problems. */ - unsigned int attempts = 62 * 62 * 62; - - len = strlen (tmpl); - if (len < 6 || strcmp (&tmpl[len - 6], "XXXXXX")) - { - errno = EINVAL; - return -1; - } - - /* This is where the Xs start. */ - XXXXXX = &tmpl[len - 6]; - - /* Get some more or less random data. */ - value += time (NULL) ^ getpid (); - - for (count = 0; count < attempts; value += 7777, ++count) - { - uint64_t v = value; - - /* Fill in the random bits. */ - XXXXXX[0] = letters[v % 62]; - v /= 62; - XXXXXX[1] = letters[v % 62]; - v /= 62; - XXXXXX[2] = letters[v % 62]; - v /= 62; - XXXXXX[3] = letters[v % 62]; - v /= 62; - XXXXXX[4] = letters[v % 62]; - v /= 62; - XXXXXX[5] = letters[v % 62]; - - fd = open (tmpl, O_RDWR | O_CREAT | O_EXCL | O_BINARY, S_IRUSR | S_IWUSR); - - if (fd >= 0) - { - errno = save_errno; - return fd; - } - else if (errno != EEXIST) - return -1; - } - - /* We got out of the loop because we ran out of combinations to try. */ - errno = EEXIST; - return -1; -} Modified: vendor/fuse-emulator/current/fuse/configure.ac =================================================================== --- vendor/fuse-emulator/current/fuse/configure.ac 2016-06-18 13:46:18 UTC (rev 812) +++ vendor/fuse-emulator/current/fuse/configure.ac 2016-07-17 12:20:07 UTC (rev 813) @@ -1,5 +1,5 @@ dnl Process this file with autoconf to produce a configure script. -dnl $Id: configure.ac 5594 2016-06-06 10:46:46Z fredm $ +dnl $Id: configure.ac 5681 2016-07-10 13:06:44Z fredm $ 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 @@ -20,12 +20,12 @@ dnl E-mail: phi...@sh... dnl Package version -m4_define([fuse_version], [1.2.0]) +m4_define([fuse_version], [1.2.1-pre1]) dnl Product full version m4_define([fuse_major_version], [1]) m4_define([fuse_minor_version], [2]) -m4_define([fuse_micro_version], [0]) +m4_define([fuse_micro_version], [1]) m4_define([fuse_nano_version], [0]) m4_define([fuse_full_version], [fuse_major_version.fuse_minor_version.fuse_micro_version.fuse_nano_version]) m4_define([fuse_rc_version], [fuse_major_version,fuse_minor_version,fuse_micro_version,fuse_nano_version]) @@ -104,7 +104,7 @@ AC_C_INLINE dnl Checks for library functions. -AC_CHECK_FUNCS(dirname geteuid getopt_long mkstemp fsync) +AC_CHECK_FUNCS(dirname geteuid getopt_long fsync) AC_CHECK_LIB([m],[cos]) dnl Allow the user to say that various libraries are in one place @@ -834,10 +834,6 @@ esac fi AM_CONDITIONAL(COMPAT_GETOPT, test "$compat_getopt" = yes) -if test "$ac_cv_func_mkstemp" = no; then - missing_routines="$missing_routines"'mkstemp ' -fi -AM_CONDITIONAL(COMPAT_MKSTEMP, test "$ac_cv_func_mkstemp" = no) if test "x$missing_routines" = x; then missing_routines='(none)' fi Modified: vendor/fuse-emulator/current/fuse/data/fuse.desktop.in =================================================================== --- vendor/fuse-emulator/current/fuse/data/fuse.desktop.in 2016-06-18 13:46:18 UTC (rev 812) +++ vendor/fuse-emulator/current/fuse/data/fuse.desktop.in 2016-07-17 12:20:07 UTC (rev 813) @@ -2,9 +2,10 @@ Version=1.0 Type=Application Categories=Game;Emulator;GTK; -Name=Fuse Spectrum Emulator +Name=Fuse +GenericName=Spectrum Emulator Comment=Emulator of the 1980s ZX Spectrum home computer and its various clones MimeType=@MIME_TYPES@ Exec=fuse %f Icon=fuse - +Keywords=sinclair;zx;game;retro; Modified: vendor/fuse-emulator/current/fuse/debugger/Makefile.am =================================================================== --- vendor/fuse-emulator/current/fuse/debugger/Makefile.am 2016-06-18 13:46:18 UTC (rev 812) +++ vendor/fuse-emulator/current/fuse/debugger/Makefile.am 2016-07-17 12:20:07 UTC (rev 813) @@ -1,8 +1,8 @@ ## Process this file with automake to produce Makefile.in -## Copyright (c) 2001-2008 Philip Kendall +## Copyright (c) 2001-2016 Philip Kendall ## Copyright (c) 2015 Sergio Baldoví -## $Id: Makefile.am 5434 2016-05-01 04:22:45Z fredm $ +## $Id: Makefile.am 5677 2016-07-09 13:58:02Z 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 @@ -31,6 +31,7 @@ debugger/disassemble.c \ debugger/event.c \ debugger/expression.c \ + debugger/system_variable.c \ debugger/variable.c debugger/commandl.c: debugger/commandy.c Modified: vendor/fuse-emulator/current/fuse/debugger/command.c =================================================================== --- vendor/fuse-emulator/current/fuse/debugger/command.c 2016-06-18 13:46:18 UTC (rev 812) +++ vendor/fuse-emulator/current/fuse/debugger/command.c 2016-07-17 12:20:07 UTC (rev 813) @@ -95,51 +95,6 @@ } } -/* Convert a register name to a useful index value */ -int -debugger_register_hash( const char *name ) -{ - int hash = 0x0000, primed = 0; - size_t length; - const char *ptr; - - length = strlen( name ); - - if( name[ length - 1 ] == '\'' ) { primed = 1; length--; } - - for( ptr = name; ptr < name + length; ptr++ ) { - hash <<= 8; hash |= tolower( *ptr ); - } - - if( primed ) hash |= 0x8000; - - switch( hash ) { - case 0x0061: case 0x8061: /* A, A' */ - case 0x0066: case 0x8066: /* F, F' */ - case 0x0062: case 0x8062: /* B, B' */ - case 0x0063: case 0x8063: /* C, C' */ - case 0x0064: case 0x8064: /* D, D' */ - case 0x0065: case 0x8065: /* E, E' */ - case 0x0068: case 0x8068: /* H, H' */ - case 0x006c: case 0x806c: /* L, L' */ - case 0x0069: case 0x0072: /* I, R */ - case 0x6166: case 0xe166: /* AF, AF' */ - case 0x6263: case 0xe263: /* BC, BC' */ - case 0x6465: case 0xe465: /* DE, DE' */ - case 0x686c: case 0xe86c: /* HL, HL' */ - case 0x7370: /* SP */ - case 0x7063: /* PC */ - case 0x6978: /* IX */ - case 0x6979: /* IY */ - case 0x696d: /* IM */ - case 0x69666631: /* IFF1 */ - case 0x69666632: /* IFF2 */ - return hash; - - default: return -1; - } -} - /* Utility functions called by the bison parser */ /* The error callback if yyparse finds an error */ @@ -149,161 +104,13 @@ ui_error( UI_ERROR_ERROR, "Invalid debugger command: %s", s ); } -/* Get the value of a register */ -libspectrum_word -debugger_register_get( int which ) -{ - switch( which ) { - - /* 8-bit registers */ - case 0x0061: return A; - case 0x8061: return A_; - case 0x0066: return F; - case 0x8066: return F_; - case 0x0062: return B; - case 0x8062: return B_; - case 0x0063: return C; - case 0x8063: return C_; - case 0x0064: return D; - case 0x8064: return D_; - case 0x0065: return E; - case 0x8065: return E_; - case 0x0068: return H; - case 0x8068: return H_; - case 0x006c: return L; - case 0x806c: return L_; - - case 0x0069: return I; - case 0x0072: return ( R7 & 0x80 ) | ( R & 0x7f ); - - /* 16-bit registers */ - case 0x6166: return AF; - case 0xe166: return AF_; - case 0x6263: return BC; - case 0xe263: return BC_; - case 0x6465: return DE; - case 0xe465: return DE_; - case 0x686c: return HL; - case 0xe86c: return HL_; - - case 0x7370: return SP; - case 0x7063: return PC; - case 0x6978: return IX; - case 0x6979: return IY; - - /* interrupt flags */ - case 0x696d: return IM; - case 0x69666631: return IFF1; - case 0x69666632: return IFF2; - - default: - ui_error( UI_ERROR_ERROR, "attempt to get unknown register '%d'", which ); - return 0; - } -} - -/* Set the value of a register */ +/* Set the value of a register + + Now just a pass through to the appropriate system variable. + This function should be removed in Fuse 1.4 */ void -debugger_register_set( int which, libspectrum_word value ) +debugger_register_set( const char *which, libspectrum_word value ) { - switch( which ) { - - /* 8-bit registers */ - case 0x0061: A = value; break; - case 0x8061: A_ = value; break; - case 0x0066: F = value; break; - case 0x8066: F_ = value; break; - case 0x0062: B = value; break; - case 0x8062: B_ = value; break; - case 0x0063: C = value; break; - case 0x8063: C_ = value; break; - case 0x0064: D = value; break; - case 0x8064: D_ = value; break; - case 0x0065: E = value; break; - case 0x8065: E_ = value; break; - case 0x0068: H = value; break; - case 0x8068: H_ = value; break; - case 0x006c: L = value; break; - case 0x806c: L_ = value; break; - - case 0x0069: I = value; break; - case 0x0072: R = R7 = value; break; - - /* 16-bit registers */ - case 0x6166: AF = value; break; - case 0xe166: AF_ = value; break; - case 0x6263: BC = value; break; - case 0xe263: BC_ = value; break; - case 0x6465: DE = value; break; - case 0xe465: DE_ = value; break; - case 0x686c: HL = value; break; - case 0xe86c: HL_ = value; break; - - case 0x7370: SP = value; break; - case 0x7063: PC = value; break; - case 0x6978: IX = value; break; - case 0x6979: IY = value; break; - - /* interrupt flags */ - case 0x696d: if( value >= 0 && value <=2 ) IM = value; break; - case 0x69666631: IFF1 = !!value; break; - case 0x69666632: IFF2 = !!value; break; - - default: - ui_error( UI_ERROR_ERROR, "attempt to set unknown register '%d'", which ); - break; - } + debugger_system_variable_set( debugger_z80_system_variable_type, which, + value ); } - -/* Get the textual representation of a register */ -const char * -debugger_register_text( int which ) -{ - switch( which ) { - - /* 8-bit registers */ - case 0x0061: return "A"; - case 0x8061: return "A'"; - case 0x0066: return "F"; - case 0x8066: return "F'"; - case 0x0062: return "B"; - case 0x8062: return "B'"; - case 0x0063: return "C"; - case 0x8063: return "C'"; - case 0x0064: return "D"; - case 0x8064: return "D'"; - case 0x0065: return "E"; - case 0x8065: return "E'"; - case 0x0068: return "H"; - case 0x8068: return "H'"; - case 0x006c: return "L"; - case 0x806c: return "L'"; - - case 0x0069: return "I"; - case 0x0072: return "R"; - - /* 16-bit registers */ - case 0x6166: return "AF"; - case 0xe166: return "AF'"; - case 0x6263: return "BC"; - case 0xe263: return "BC'"; - case 0x6465: return "DE"; - case 0xe465: return "DE'"; - case 0x686c: return "HL"; - case 0xe86c: return "HL'"; - - case 0x7370: return "SP"; - case 0x7063: return "PC"; - case 0x6978: return "IX"; - case 0x6979: return "IY"; - - /* interrupt flags */ - case 0x696d: return "IM"; - case 0x69666631: return "IFF1"; - case 0x69666632: return "IFF2"; - - default: - ui_error( UI_ERROR_ERROR, "attempt to get unknown register '%d'", which ); - return "(invalid)"; - } -} Modified: vendor/fuse-emulator/current/fuse/debugger/commandl.l =================================================================== --- vendor/fuse-emulator/current/fuse/debugger/commandl.l 2016-06-18 13:46:18 UTC (rev 812) +++ vendor/fuse-emulator/current/fuse/debugger/commandl.l 2016-07-17 12:20:07 UTC (rev 813) @@ -1,8 +1,8 @@ /* commandl.l: Debugger command lexical scanner - Copyright (c) 2002-2013 Philip Kendall + Copyright (c) 2002-2016 Philip Kendall Copyright (c) 2015 Sergio Baldoví - $Id: commandl.l 5539 2016-05-29 10:49:51Z fredm $ + $Id: commandl.l 5677 2016-07-09 13:58:02Z 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 @@ -47,7 +47,7 @@ %} -ID [a-z]([a-z0-9]|\\[ ])+ +ID [a-z]([a-z0-9]|\\[ ])* %option caseless @@ -83,23 +83,10 @@ ti|tim|time { return TIME; } w|wr|wri|writ|write { return WRITE; } -a|b|c|d|e|f|h|l { yylval.reg = debugger_register_hash( yytext ); - return DEBUGGER_REGISTER; } +a|b|c|d|e|f|h|l|af|bc|de|hl|sp|pc|ix|iy|i|r|im|iff1|iff2|"a'"|"b'"|"c'"|"d'"|"e'"|"f'"|"h'"|"l'"|"af\'"|"bc\'"|"de\'"|"hl\'" { + yylval.string = mempool_strdup( debugger_memory_pool, yytext ); + return DEBUGGER_REGISTER; } -"a'"|"b'"|"c'"|"d'"|"e'"|"f'"|"h'"|"l'" { - yylval.reg = debugger_register_hash( yytext ); - return DEBUGGER_REGISTER; } - -af|bc|de|hl|"af\'"|"bc\'"|"de\'"|"hl\'" { - yylval.reg = debugger_register_hash( yytext ); - return DEBUGGER_REGISTER; } - -sp|pc|ix|iy|i|r { yylval.reg = debugger_register_hash( yytext ); - return DEBUGGER_REGISTER; } - -im|iff1|iff2 { yylval.reg = debugger_register_hash( yytext ); - return DEBUGGER_REGISTER; } - "(" { return '('; } ")" { return ')'; } Modified: vendor/fuse-emulator/current/fuse/debugger/commandy.y =================================================================== --- vendor/fuse-emulator/current/fuse/debugger/commandy.y 2016-06-18 13:46:18 UTC (rev 812) +++ vendor/fuse-emulator/current/fuse/debugger/commandy.y 2016-07-17 12:20:07 UTC (rev 813) @@ -1,8 +1,8 @@ /* commandy.y: Parse a debugger command - Copyright (c) 2002-2015 Philip Kendall + Copyright (c) 2002-2016 Philip Kendall Copyright (c) 2015 Sergio Baldoví - $Id: commandy.y 5539 2016-05-29 10:49:51Z fredm $ + $Id: commandy.y 5677 2016-07-09 13:58:02Z 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 @@ -47,7 +47,6 @@ %union { int token; - int reg; libspectrum_dword integer; char *string; @@ -98,7 +97,7 @@ %token TIME %token WRITE -%token <reg> DEBUGGER_REGISTER +%token <string> DEBUGGER_REGISTER %token <integer> NUMBER @@ -192,6 +191,10 @@ | SET NUMBER number { debugger_poke( $2, $3 ); } | SET DEBUGGER_REGISTER number { debugger_register_set( $2, $3 ); } | SET VARIABLE number { debugger_variable_set( $2, $3 ); } + | SET STRING ':' STRING number { debugger_system_variable_set( $2, $4, $5 ); } + /* Temporary hack while we deprecate the old unprefixed style + of register access. This should be removed in Fuse 1.4 */ + | SET STRING ':' DEBUGGER_REGISTER number { debugger_system_variable_set( $2, $4, $5 ); } | STEP { debugger_step(); } ; @@ -246,6 +249,14 @@ | DEBUGGER_REGISTER { $$ = debugger_expression_new_register( $1, debugger_memory_pool ); if( !$$ ) YYABORT; } + | STRING ':' STRING { $$ = debugger_expression_new_system_variable( $1, $3, debugger_memory_pool ); + if( !$$ ) YYABORT; + } + /* Temporary hack while we deprecate the old unprefixed style + of register access. This should be removed in Fuse 1.4 */ + | STRING ':' DEBUGGER_REGISTER { $$ = debugger_expression_new_system_variable( $1, $3, debugger_memory_pool ); + if( !$$ ) YYABORT; + } | VARIABLE { $$ = debugger_expression_new_variable( $1, debugger_memory_pool ); if( !$$ ) YYABORT; } Modified: vendor/fuse-emulator/current/fuse/debugger/debugger.c =================================================================== --- vendor/fuse-emulator/current/fuse/debugger/debugger.c 2016-06-18 13:46:18 UTC (rev 812) +++ vendor/fuse-emulator/current/fuse/debugger/debugger.c 2016-07-17 12:20:07 UTC (rev 813) @@ -1,5 +1,5 @@ /* debugger.c: Fuse's monitor/debugger - Copyright (c) 2002-2011 Philip Kendall + Copyright (c) 2002-2016 Philip Kendall $Id$ @@ -29,6 +29,7 @@ #include "debugger_internals.h" #include "event.h" #include "fuse.h" +#include "infrastructure/startup_manager.h" #include "memory.h" #include "mempool.h" #include "periph.h" @@ -48,8 +49,11 @@ /* The event type used for time breakpoints */ int debugger_breakpoint_event; -void -debugger_init( void ) +/* The system variable type used for Z80 registers */ +const char *debugger_z80_system_variable_type = "z80"; + +static int +debugger_init( void *context ) { debugger_breakpoints = NULL; debugger_output_base = 16; @@ -59,8 +63,11 @@ debugger_breakpoint_event = event_register( debugger_breakpoint_time_fn, "Breakpoint" ); debugger_event_init(); + debugger_system_variable_init(); debugger_variable_init(); debugger_reset(); + + return 0; } void @@ -70,14 +77,26 @@ debugger_mode = DEBUGGER_MODE_INACTIVE; } -int +static void debugger_end( void ) { debugger_breakpoint_remove_all(); debugger_variable_end(); + debugger_system_variable_end(); debugger_event_end(); +} - return 0; +void +debugger_register_startup( void ) +{ + startup_manager_module dependencies[] = { + STARTUP_MANAGER_MODULE_EVENT, + STARTUP_MANAGER_MODULE_MEMPOOL, + STARTUP_MANAGER_MODULE_SETUID, + }; + startup_manager_register( STARTUP_MANAGER_MODULE_DEBUGGER, dependencies, + ARRAY_SIZE( dependencies ), debugger_init, NULL, + debugger_end ); } /* Activate the debugger */ Modified: vendor/fuse-emulator/current/fuse/debugger/debugger.h =================================================================== --- vendor/fuse-emulator/current/fuse/debugger/debugger.h 2016-06-18 13:46:18 UTC (rev 812) +++ vendor/fuse-emulator/current/fuse/debugger/debugger.h 2016-07-17 12:20:07 UTC (rev 813) @@ -1,5 +1,5 @@ /* debugger.h: Fuse's monitor/debugger - Copyright (c) 2002-2013 Philip Kendall + Copyright (c) 2002-2016 Philip Kendall $Id$ @@ -49,11 +49,10 @@ /* Which base should we display things in */ extern int debugger_output_base; -void debugger_init( void ); +void debugger_register_startup( void ); + void debugger_reset( void ); -int debugger_end( void ); - int debugger_trap( void ); /* Activate the debugger */ int debugger_step( void ); /* Single step */ @@ -85,4 +84,13 @@ /* Exit the emulator */ void debugger_exit_emulator( void ); +/* Debugger system variables */ +typedef libspectrum_dword (*debugger_get_system_variable_fn_t)( void ); +typedef void (*debugger_set_system_variable_fn_t)( libspectrum_dword value ); + +void debugger_system_variable_register( + const char *type, const char *detail, + debugger_get_system_variable_fn_t get, + debugger_set_system_variable_fn_t set ); + #endif /* #ifndef FUSE_DEBUGGER_H */ Modified: vendor/fuse-emulator/current/fuse/debugger/debugger_internals.h =================================================================== --- vendor/fuse-emulator/current/fuse/debugger/debugger_internals.h 2016-06-18 13:46:18 UTC (rev 812) +++ vendor/fuse-emulator/current/fuse/debugger/debugger_internals.h 2016-07-17 12:20:07 UTC (rev 813) @@ -1,5 +1,5 @@ /* debugger_internals.h: The internals of Fuse's monitor/debugger - Copyright (c) 2002-2011 Philip Kendall + Copyright (c) 2002-2016 Philip Kendall $Id$ @@ -34,6 +34,9 @@ /* The event type used to trigger time breakpoints */ extern int debugger_breakpoint_event; +/* The system variable type used for Z80 registers */ +extern const char *debugger_z80_system_variable_type; + void debugger_breakpoint_time_fn( libspectrum_dword tstates, int type, void *user_data ); int debugger_breakpoint_remove( size_t id ); @@ -49,10 +52,7 @@ int debugger_poke( libspectrum_word address, libspectrum_byte value ); int debugger_port_write( libspectrum_word address, libspectrum_byte value ); -int debugger_register_hash( const char *reg ); -libspectrum_word debugger_register_get( int which ); -void debugger_register_set( int which, libspectrum_word value ); -const char* debugger_register_text( int which ); +void debugger_register_set( const char *which, libspectrum_word value ); void debugger_exit_emulator( void ); @@ -85,13 +85,16 @@ debugger_expression* debugger_expression_new_number( libspectrum_dword number, int pool ); -debugger_expression* debugger_expression_new_register( int which, int pool ); +debugger_expression* debugger_expression_new_register( const char *which, int pool ); debugger_expression* debugger_expression_new_unaryop( int operation, debugger_expression *operand, int pool ); debugger_expression* debugger_expression_new_binaryop( int operation, debugger_expression *operand1, debugger_expression *operand2, int pool ); debugger_expression* +debugger_expression_new_system_variable( const char *type, const char *detail, + int pool ); +debugger_expression* debugger_expression_new_variable( const char *name, int pool ); debugger_expression* debugger_expression_copy( debugger_expression *src ); @@ -106,6 +109,17 @@ int debugger_event_is_registered( const char *type, const char *detail ); void debugger_event_end( void ); +/* System variables handling */ + +void debugger_system_variable_init( void ); +void debugger_system_variable_end( void ); +int debugger_system_variable_find( const char *type, const char *detail ); +libspectrum_dword debugger_system_variable_get( int system_variable ); +void debugger_system_variable_set( const char *type, const char *detail, + libspectrum_dword value ); +void debugger_system_variable_text( char *buffer, size_t length, + int system_variable ); + /* Variables handling */ void debugger_variable_init( void ); Modified: vendor/fuse-emulator/current/fuse/debugger/event.c =================================================================== --- vendor/fuse-emulator/current/fuse/debugger/event.c 2016-06-18 13:46:18 UTC (rev 812) +++ vendor/fuse-emulator/current/fuse/debugger/event.c 2016-07-17 12:20:07 UTC (rev 813) @@ -88,8 +88,11 @@ debugger_event( int event_code ) { debugger_event_t event; - GSList *ptr; + debugger_breakpoint *bp; + GSList *ptr, *ptr_next; + int signal_breakpoints_updated = 0; + if( event_code >= registered_events->len ) { ui_error( UI_ERROR_ERROR, "internal error: invalid debugger event %d", event_code ); @@ -98,16 +101,28 @@ event = g_array_index( registered_events, debugger_event_t, event_code ); - for( ptr = debugger_breakpoints; ptr; ptr = ptr->next ) { - debugger_breakpoint *bp = ptr->data; + for( ptr = debugger_breakpoints; ptr; ptr = ptr_next ) { + + bp = ptr->data; + ptr_next = ptr->next; + if( bp->type != DEBUGGER_BREAKPOINT_TYPE_EVENT ) continue; if( event_matches( &bp->value.event, event.type, event.detail ) && debugger_breakpoint_trigger( bp ) ) { debugger_mode = DEBUGGER_MODE_HALTED; debugger_command_evaluate( bp->commands ); + + if( bp->life == DEBUGGER_BREAKPOINT_LIFE_ONESHOT ) { + debugger_breakpoints = g_slist_remove( debugger_breakpoints, bp ); + libspectrum_free( bp ); + signal_breakpoints_updated = 1; + } } } + + if( signal_breakpoints_updated ) + ui_breakpoints_updated(); } /* Tidy-up function called at end of emulation */ Modified: vendor/fuse-emulator/current/fuse/debugger/expression.c =================================================================== --- vendor/fuse-emulator/current/fuse/debugger/expression.c 2016-06-18 13:46:18 UTC (rev 812) +++ vendor/fuse-emulator/current/fuse/debugger/expression.c 2016-07-17 12:20:07 UTC (rev 813) @@ -1,5 +1,5 @@ /* expression.c: A numeric expression - Copyright (c) 2003-2015 Philip Kendall + Copyright (c) 2003-2016 Philip Kendall $Id$ @@ -38,9 +38,9 @@ typedef enum expression_type { DEBUGGER_EXPRESSION_TYPE_INTEGER, - DEBUGGER_EXPRESSION_TYPE_REGISTER, DEBUGGER_EXPRESSION_TYPE_UNARYOP, DEBUGGER_EXPRESSION_TYPE_BINARYOP, + DEBUGGER_EXPRESSION_TYPE_SYSVAR, DEBUGGER_EXPRESSION_TYPE_VARIABLE, } expression_type; @@ -86,10 +86,10 @@ union { int integer; - int reg; struct unaryop_type unaryop; struct binaryop_type binaryop; char *variable; + int system_variable; } types; }; @@ -163,18 +163,15 @@ return exp; } +/* Create a new expression representing a Z80 register + + Now just a pass through to the appropriate system variable. + This function should be removed in Fuse 1.4 */ debugger_expression* -debugger_expression_new_register( int which, int pool ) +debugger_expression_new_register( const char *which, int pool ) { - debugger_expression *exp; - - exp = mempool_new( pool, debugger_expression, 1 ); - - exp->type = DEBUGGER_EXPRESSION_TYPE_REGISTER; - exp->precedence = PRECEDENCE_ATOMIC; - exp->types.reg = which; - - return exp; + return debugger_expression_new_system_variable( + debugger_z80_system_variable_type, which, pool ); } debugger_expression* @@ -195,7 +192,6 @@ return exp; } - debugger_expression* debugger_expression_new_unaryop( int operation, debugger_expression *operand, int pool ) @@ -214,6 +210,29 @@ } debugger_expression* +debugger_expression_new_system_variable( const char *type, const char *detail, + int pool ) +{ + debugger_expression *exp; + int system_variable; + + system_variable = debugger_system_variable_find( type, detail ); + if( system_variable == -1 ) { + ui_error( UI_ERROR_WARNING, "System variable %s:%s not known", type, + detail ); + return NULL; + } + + exp = mempool_new( pool, debugger_expression, 1 ); + + exp->type = DEBUGGER_EXPRESSION_TYPE_SYSVAR; + exp->precedence = PRECEDENCE_ATOMIC; + exp->types.system_variable = system_variable; + + return exp; +} + +debugger_expression* debugger_expression_new_variable( const char *name, int pool ) { debugger_expression *exp; @@ -233,7 +252,7 @@ switch( exp->type ) { case DEBUGGER_EXPRESSION_TYPE_INTEGER: - case DEBUGGER_EXPRESSION_TYPE_REGISTER: + case DEBUGGER_EXPRESSION_TYPE_SYSVAR: break; case DEBUGGER_EXPRESSION_TYPE_UNARYOP: @@ -270,10 +289,6 @@ dest->types.integer = src->types.integer; break; - case DEBUGGER_EXPRESSION_TYPE_REGISTER: - dest->types.reg = src->types.reg; - break; - case DEBUGGER_EXPRESSION_TYPE_UNARYOP: dest->types.unaryop.operation = src->types.unaryop.operation; dest->types.unaryop.op = debugger_expression_copy( src->types.unaryop.op ); @@ -300,10 +315,13 @@ } break; + case DEBUGGER_EXPRESSION_TYPE_SYSVAR: + dest->types.system_variable = src->types.system_variable; + break; + case DEBUGGER_EXPRESSION_TYPE_VARIABLE: dest->types.variable = utils_safe_strdup( src->types.variable ); break; - } return dest; @@ -317,15 +335,15 @@ case DEBUGGER_EXPRESSION_TYPE_INTEGER: return exp->types.integer; - case DEBUGGER_EXPRESSION_TYPE_REGISTER: - return debugger_register_get( exp->types.reg ); - case DEBUGGER_EXPRESSION_TYPE_UNARYOP: return evaluate_unaryop( &( exp->types.unaryop ) ); case DEBUGGER_EXPRESSION_TYPE_BINARYOP: return evaluate_binaryop( &( exp->types.binaryop ) ); + case DEBUGGER_EXPRESSION_TYPE_SYSVAR: + return debugger_system_variable_get( exp->types.system_variable ); + case DEBUGGER_EXPRESSION_TYPE_VARIABLE: return debugger_variable_get( exp->types.variable ); @@ -435,16 +453,16 @@ } return 0; - case DEBUGGER_EXPRESSION_TYPE_REGISTER: - snprintf( buffer, length, "%s", debugger_register_text( exp->types.reg ) ); - return 0; - case DEBUGGER_EXPRESSION_TYPE_UNARYOP: return deparse_unaryop( buffer, length, &( exp->types.unaryop ) ); case DEBUGGER_EXPRESSION_TYPE_BINARYOP: return deparse_binaryop( buffer, length, &( exp->types.binaryop ) ); + case DEBUGGER_EXPRESSION_TYPE_SYSVAR: + debugger_system_variable_text( buffer, length, exp->types.system_variable ); + return 0; + case DEBUGGER_EXPRESSION_TYPE_VARIABLE: snprintf( buffer, length, "$%s", exp->types.variable ); return 0; Added: vendor/fuse-emulator/current/fuse/debugger/system_variable.c =================================================================== --- vendor/fuse-emulator/current/fuse/debugger/system_variable.c (rev 0) +++ vendor/fuse-emulator/current/fuse/debugger/system_variable.c 2016-07-17 12:20:07 UTC (rev 813) @@ -0,0 +1,160 @@ +/* event.c: Debugger system variables + Copyright (c) 2016 Philip Kendall + + $Id$ + + 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 <string.h> + +#ifdef HAVE_LIB_GLIB +#include <glib.h> +#endif /* #ifdef HAVE_LIB_GLIB */ + +#include <libspectrum.h> + +#include "debugger_internals.h" +#include "fuse.h" +#include "ui/ui.h" +#include "utils.h" + +typedef struct system_variable_t { + char *type; + char *detail; + debugger_get_system_variable_fn_t get; + debugger_set_system_variable_fn_t set; +} system_variable_t; + +static GArray *system_variables; + +void +debugger_system_variable_init( void ) +{ + system_variables = g_array_new( FALSE, FALSE, sizeof( system_variable_t ) ); +} + +void +debugger_system_variable_register( const char *type, const char *detail, + debugger_get_system_variable_fn_t get, + debugger_set_system_variable_fn_t set ) +{ + system_variable_t sysvar; + + sysvar.type = utils_safe_strdup( type ); + sysvar.detail = utils_safe_strdup( detail ); + sysvar.get = get; + sysvar.set = set; + + g_array_append_val( system_variables, sysvar ); +} + +static int +system_variable_matches( system_variable_t *sysvar, const char *type, const char *detail ) +{ + return strcasecmp( type, sysvar->type ) == 0 && + strcasecmp( detail, sysvar->detail ) == 0; +} + +static int +find_system_variable( const char *type, const char *detail, system_variable_t *out ) +{ + size_t i; + + for( i = 0; i < system_variables->len; i++ ) { + system_variable_t sysvar = + g_array_index( system_variables, system_variable_t, i ); + + if( system_variable_matches( &sysvar, type, detail ) ) { + if( out != NULL ) *out = sysvar; + return i; + } + } + + return -1; +} + +int +debugger_system_variable_find( const char *type, const char *detail ) +{ + return find_system_variable( type, detail, NULL ); +} + +libspectrum_dword +debugger_system_variable_get( int system_variable ) +{ + system_variable_t sysvar = + g_array_index( system_variables, system_variable_t, system_variable ); + + return sysvar.get(); +} + +void +debugger_system_variable_set( const char *type, const char *detail, + libspectrum_dword value ) +{ + int index; + system_variable_t sysvar; + + index = find_system_variable( type, detail, &sysvar ); + if( index == -1 ) { + ui_error( UI_ERROR_ERROR, "Unknown system variable %s:%s", type, detail ); + return; + } + + if (sysvar.set == NULL) { + ui_error( UI_ERROR_ERROR, "System variable %s:%s cannot be set", type, + detail ); + return; + } + + sysvar.set( value ); +} + +void +debugger_system_variable_text( char *buffer, size_t length, + int system_variable ) +{ + system_variable_t sysvar = + g_array_index( system_variables, system_variable_t, system_variable ); + + snprintf( buffer, length, "%s:%s", sysvar.type, sysvar.detail ); +} + +/* Tidy-up function called at end of emulation */ +void +debugger_system_variable_end( void ) +{ + int i; + system_variable_t sysvar; + + if( !system_variables ) return; + + for( i = 0; i < system_variables->len; i++ ) { + sysvar = g_array_index( system_variables, system_variable_t, i ); + libspectrum_free( sysvar.detail ); + libspectrum_free( sysvar.type ); + } + + g_array_free( system_variables, TRUE ); + system_variables = NULL; +} Modified: vendor/fuse-emulator/current/fuse/display.c =================================================================== --- vendor/fuse-emulator/current/fuse/display.c 2016-06-18 13:46:18 UTC (rev 812) +++ vendor/fuse-emulator/current/fuse/display.c 2016-07-17 12:20:07 UTC (rev 813) @@ -32,8 +32,8 @@ #include <string.h> #include "display.h" -#include "event.h" #include "fuse.h" +#include "infrastructure/startup_manager.h" #include "machine.h" #include "movie.h" #include "peripherals/scld.h" @@ -207,6 +207,26 @@ return 0; } +static int +display_init_wrapper( void *context ) +{ + display_startup_context *typed_context = + (display_startup_context*) context; + + return display_init( typed_context->argc, typed_context->argv ); +} + +void +display_register_startup( display_startup_context *context ) +{ + /* The Wii has an explicit call to display_init for now */ +#ifndef GEKKO + startup_manager_register_no_dependencies( STARTUP_MANAGER_MODULE_DISPLAY, + display_init_wrapper, context, + NULL ); +#endif /* #ifndef GEKKO */ +} + /* Mark as 'dirty' the pixels which have been changed by a write to 'offset' within the RAM page containing the screen */ void Modified: vendor/fuse-emulator/current/fuse/display.h =================================================================== --- vendor/fuse-emulator/current/fuse/display.h 2016-06-18 13:46:18 UTC (rev 812) +++ vendor/fuse-emulator/current/fuse/display.h 2016-07-17 12:20:07 UTC (rev 813) @@ -75,7 +75,13 @@ extern libspectrum_word display_line_start[ DISPLAY_HEIGHT ]; extern libspectrum_word display_attr_start[ DISPLAY_HEIGHT ]; -int display_init(int *argc, char ***argv); +typedef struct display_startup_context { + int *argc; + char ***argv; +} display_startup_context; + +int display_init( int *argc, char ***argv ); +void display_register_startup( display_startup_context *context ); void display_line(void); typedef void (*display_dirty_fn)( libspectrum_word offset ); Modified: vendor/fuse-emulator/current/fuse/event.c =================================================================== --- vendor/fuse-emulator/current/fuse/event.c 2016-06-18 13:46:18 UTC (rev 812) +++ vendor/fuse-emulator/current/fuse/event.c 2016-07-17 12:20:07 UTC (rev 813) @@ -30,6 +30,7 @@ #include <libspectrum.h> #include "event.h" +#include "infrastructure/startup_manager.h" #include "fuse.h" #include "ui/ui.h" #include "utils.h" @@ -56,14 +57,16 @@ static GArray *registered_events; -void -event_init( void ) +static int +event_init( void *context ) { registered_events = g_array_new( FALSE, FALSE, sizeof( event_descriptor_t ) ); event_type_null = event_register( NULL, "[Deleted event]" ); event_next_event = event_no_events; + + return 0; } int @@ -272,9 +275,18 @@ } /* Tidy-up function called at end of emulation */ -void +static void event_end( void ) { event_reset(); registered_events_free(); } + +void +event_register_startup( void ) +{ + startup_manager_module dependencies[] = { STARTUP_MANAGER_MODULE_SETUID }; + startup_manager_register( STARTUP_MANAGER_MODULE_EVENT, dependencies, + ARRAY_SIZE( dependencies ), event_init, NULL, + event_end ); +} Modified: vendor/fuse-emulator/current/fuse/event.h =================================================================== --- vendor/fuse-emulator/current/fuse/event.h 2016-06-18 13:46:18 UTC (rev 812) +++ vendor/fuse-emulator/current/fuse/event.h 2016-07-17 12:20:07 UTC (rev 813) @@ -48,9 +48,6 @@ /* When will the next event happen? */ extern libspectrum_dword event_next_event; -/* Set up the event list */ -void event_init( void ); - /* Register a new event type */ int event_register( event_fn_t fn, const char *description ); @@ -88,7 +85,7 @@ /* A textual representation of each event type */ const char *event_name( int type ); -/* Called on exit to clean up */ -void event_end( void ); +/* Register the init and end functions */ +void event_register_startup( void ); #endif /* #ifndef FUSE_EVENT_H */ Modified: vendor/fuse-emulator/current/fuse/fuse.c =================================================================== --- vendor/fuse-emulator/current/fuse/fuse.c 2016-06-18 13:46:18 UTC (rev 812) +++ vendor/fuse-emulator/current/fuse/fuse.c 2016-07-17 12:20:07 UTC (rev 813) @@ -1,5 +1,5 @@ /* fuse.c: The Free Unix Spectrum Emulator - Copyright (c) 1999-2015 Philip Kendall and others + Copyright (c) 1999-2016 Philip Kendall and others $Id$ @@ -59,6 +59,7 @@ #include "display.h" #include "event.h" #include "fuse.h" +#include "infrastructure/startup_manager.h" #include "keyboard.h" #include "machine.h" #include "machines/machines_periph.h" @@ -145,9 +146,13 @@ } start_files_t; +/* Context for the display startup routine */ +static display_startup_context display_context; + static int fuse_init(int argc, char **argv); -static int creator_init( void ); +static void creator_register_startup( void ); + static void fuse_show_copyright(void); static void fuse_show_version( void ); static void fuse_show_help( void ); @@ -199,6 +204,139 @@ } +static int +fuse_libspectrum_init( void *context ) +{ + if( libspectrum_check_version( LIBSPECTRUM_MIN_VERSION ) ) { + if( libspectrum_init() ) return 1; + } else { + ui_error( UI_ERROR_ERROR, + "libspectrum version %s found, but %s required", + libspectrum_version(), LIBSPECTRUM_MIN_VERSION ); + return 1; + } + + return 0; +} + +static void +libspectrum_register_startup( void ) +{ + startup_manager_module dependencies[] = { + STARTUP_MANAGER_MODULE_DISPLAY + }; + startup_manager_register( STARTUP_MANAGER_MODULE_LIBSPECTRUM, dependencies, + ARRAY_SIZE( dependencies ), fuse_libspectrum_init, + NULL, NULL ); +} + +static int +libxml2_init( void *context ) +{ +#ifdef HAVE_LIB_XML2 + LIBXML_TEST_VERSION +#endif + + return 0; +} + +static void +libxml2_register_startup( void ) +{ + startup_manager_module dependencies[] = { STARTUP_MANAGER_MODULE_SETUID }; + startup_manager_register( STARTUP_MANAGER_MODULE_LIBXML2, dependencies, + ARRAY_SIZE( dependencies ), libxml2_init, NULL, + NULL ); +} + +static int +setuid_init( void *context ) +{ +#ifdef HAVE_GETEUID + int error; + + /* Drop root privs if we have them */ + if( !geteuid() ) { + error = setuid( getuid() ); + if( error ) { + ui_error( UI_ERROR_ERROR, "Could not drop root privileges" ); + return 1; + } + } +#endif /* #ifdef HAVE_GETEUID */ + + return 0; +} + +static void +setuid_register_startup() +{ + startup_manager_module dependencies[] = { + STARTUP_MANAGER_MODULE_DISPLAY, + STARTUP_MANAGER_MODULE_LIBSPECTRUM, + }; + startup_manager_register( STARTUP_MANAGER_MODULE_SETUID, dependencies, + ARRAY_SIZE( dependencies ), setuid_init, NULL, + NULL ); +} + +static int +run_startup_manager( int *argc, char ***argv ) +{ + startup_manager_init(); + + display_context.argc = argc; + display_context.argv = argv; + + /* Get every module to register its init function */ + ay_register_startup(); + beta_register_startup(); + creator_register_startup(); + debugger_register_startup(); + didaktik80_register_startup(); + disciple_register_startup(); + display_register_startup( &display_context ); + divide_register_startup(); + event_register_startup(); + fdd_register_startup(); + fuller_register_startup(); + if1_register_startup(); + if2_register_startup(); + kempmouse_register_startup(); + libspectrum_register_startup(); + libxml2_register_startup(); + machine_register_startup(); + machines_periph_register_startup(); + melodik_register_startup(); + memory_register_startup(); + mempool_register_startup(); + opus_register_startup(); + plusd_register_startup(); + printer_register_startup(); + profile_register_startup(); + psg_register_startup(); + rzx_register_startup(); + scld_register_startup(); + settings_register_startup(); + setuid_register_startup(); + simpleide_register_startup(); + slt_register_startup(); + sound_register_startup(); + speccyboot_register_startup(); + specdrum_register_startup(); + spectranet_register_startup(); + spectrum_register_startup(); + tape_register_startup(); + timer_register_startup(); + ula_register_startup(); + usource_register_startup(); + z80_register_startup(); + zxatasp_register_startup(); + zxcf_register_startup(); + + return startup_manager_run(); +} + static int fuse_init(int argc, char **argv) { int error, first_arg; @@ -241,96 +379,14 @@ fuse_show_copyright(); #endif - /* FIXME: order of these initialisation calls. Work out what depends on - what */ - /* FIXME FIXME 20030407: really do this soon. This is getting *far* too - hairy */ - fuse_joystick_init (); + fuse_joystick_init(); fuse_keyboard_init(); - event_init(); - -#ifndef GEKKO - if( display_init(&argc,&argv) ) return 1; -#endif + if( run_startup_manager( &argc, &argv ) ) return 1; - if( libspectrum_check_version( LIBSPECTRUM_MIN_VERSION ) ) { - if( libspectrum_init() ) return 1; - } else { - ui_error( UI_ERROR_ERROR, - "libspectrum version %s found, but %s required", - libspectrum_version(), LIBSPECTRUM_MIN_VERSION ); - return 1; - } - - /* Must be called after libspectrum_init() so we can get the gcrypt - version */ - if( creator_init() ) return 1; - -#ifdef HAVE_GETEUID - /* Drop root privs if we have them */ - if( !geteuid() ) { - error = setuid( getuid() ); - if( error ) { - ui_error( UI_ERROR_ERROR, "Could not drop root privileges" ); - return 1; - } - } -#endif /* #ifdef HAVE_GETEUID */ - - mempool_init(); - memory_init(); - -#ifdef HAVE_LIB_XML2 -LIBXML_TEST_VERSION -#endif - - debugger_init(); - - spectrum_init(); - printer_init(); - rzx_init(); - psg_init(); - beta_init(); - opus_init(); - plusd_init(); - didaktik80_init(); - disciple_init(); - fdd_init_events(); - if( simpleide_init() ) return 1; - if( zxatasp_init() ) return 1; - if( zxcf_init() ) return 1; - if1_init(); - if2_init(); - if( divide_init() ) return 1; - scld_init(); - ula_init(); - ay_init(); - slt_init(); - profile_init(); - kempmouse_init(); - fuller_init(); - melodik_init(); - speccyboot_init(); - specdrum_init(); - spectranet_init(); - usource_init(); - machines_periph_init(); - - z80_init(); - - if( timer_init() ) return 1; - - error = timer_estimate_reset(); if( error ) return error; - - error = machine_init_machines(); - if( error ) return error; - error = machine_select_id( settings_current.start_machine ); if( error ) return error; - tape_init(); - error = scaler_select_id( start_scaler ); libspectrum_free( start_scaler ); if( error ) return error; @@ -349,8 +405,8 @@ return 0; } -static -int creator_init( void ) +static int +creator_init( void *context ) { size_t i; unsigned int version[4] = { 0, 0, 0, 0 }; @@ -402,6 +458,21 @@ return 0; } +static void +creator_end( void ) +{ + libspectrum_creator_free( fuse_creator ); +} + +static void +creator_register_startup( void ) +{ + startup_manager_module dependencies[] = { STARTUP_MANAGER_MODULE_SETUID }; + startup_manager_register( STARTUP_MANAGER_MODULE_CREATOR, dependencies, + ARRAY_SIZE( dependencies ), creator_init, NULL, + creator_end ); +} + static void fuse_show_copyright(void) { printf( "\n" ); @@ -855,51 +926,19 @@ static int fuse_end(void) { movie_stop(); /* stop movie recording */ - /* Must happen before memory is deallocated as we read the character - set from memory for the text output */ - printer_end(); - /* also required before memory is deallocated on Fuse for OS X where - settings need to look up machine names etc. */ - settings_end(); + startup_manager_run_end(); - psg_end(); - rzx_end(); - tape_end(); - debugger_end(); - simpleide_end(); - zxatasp_end(); - zxcf_end(); - if1_end(); - divide_end(); - beta_end(); - opus_end(); - plusd_end(); - didaktik80_end(); - disciple_end(); - spectranet_end(); - speccyboot_end(); - usource_end(); - - machine_end(); - - timer_end(); - - sound_end(); - event_end(); periph_end(); fuse_keyboard_end(); fuse_joystick_end(); ui_end(); ui_media_drive_end(); - memory_end(); - mempool_end(); module_end(); pokemem_end(); svg_capture_end(); - libspectrum_creator_free( fuse_creator ); libspectrum_end(); return 0; Modified: vendor/fuse-emulator/current/fuse/hacking/ChangeLog =================================================================== --- vendor/fuse-emulator/current/fuse/hacking/ChangeLog 2016-06-18 13:46:18 UTC (rev 812) +++ vendor/fuse-emulator/current/fuse/hacking/ChangeLog 2016-07-17 12:20:07 UTC (rev 813) @@ -5024,6 +5024,7 @@ Release-1_1_0-branch changes onto trunk (Fred). 20160424 ChangeLog,README,configure.ac,man/fuse.1: bump version number for 1.2.0 release (Fred). +20160425 tape.c: whitespace fix (Fred). 20160425 memory.c: use tape traps if we are using a custom ROM if the instructions at the entry points have been preserved (feature request #83) (thanks, Alberto Garcia) (Fred). @@ -5099,9 +5100,14 @@ 20160503 z80/z80c: complete revert accurate emulation of the HALT instruction in [r5160] as it causes [bugs:#329] and there is no current resolution (Fred). +20160503 machine.c: standardise setting of custom ROM field to 1 or 0 (Fred). 20160508 peripherals/disk/beta.c: don't enable the Beta128 interface when loa... [truncated message content] |