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] |