fuse-for-macosx-commits Mailing List for Fuse for macOS (Page 13)
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...> - 2008-11-03 11:44:47
|
Revision: 537 http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=537&view=rev Author: fredm Date: 2008-11-03 11:44:43 +0000 (Mon, 03 Nov 2008) 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/compat/unix/file.c vendor/fuse-emulator/current/fuse/configure.in vendor/fuse-emulator/current/fuse/disk/fdd.c vendor/fuse-emulator/current/fuse/disk/upd_fdc.c vendor/fuse-emulator/current/fuse/fuse.c vendor/fuse-emulator/current/fuse/hacking/ChangeLog vendor/fuse-emulator/current/fuse/man/fuse.1 vendor/fuse-emulator/current/fuse/menu.c vendor/fuse-emulator/current/fuse/rzx.c vendor/fuse-emulator/current/fuse/settings.dat vendor/fuse-emulator/current/fuse/ui/options.dat vendor/fuse-emulator/current/fuse/ui/win32/win32internals.h vendor/fuse-emulator/current/fuse/ui/win32/win32joystick.c vendor/fuse-emulator/current/fuse/ui/win32/win32joystick.h vendor/fuse-emulator/current/fuse/ui/win32/win32ui.c vendor/fuse-emulator/current/fuse/z80/tests/README vendor/fuse-emulator/current/fuse-utils/ChangeLog vendor/fuse-emulator/current/fuse-utils/hacking/ChangeLog vendor/fuse-emulator/current/fusetest/fusetest.asm vendor/fuse-emulator/current/fusetest/tests.asm vendor/fuse-emulator/current/libspectrum/ChangeLog vendor/fuse-emulator/current/libspectrum/README 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/rzx.c vendor/fuse-emulator/current/libspectrum/sna.c vendor/fuse-emulator/current/libspectrum/tap.c vendor/fuse-emulator/current/libspectrum/tape_block.c vendor/fuse-emulator/current/libspectrum/test/test.c vendor/fuse-emulator/current/libspectrum/tzx_read.c vendor/fuse-emulator/current/libspectrum/tzx_write.c vendor/fuse-emulator/current/libspectrum/warajevo_read.c vendor/fuse-emulator/current/libspectrum/z80.c Added Paths: ----------- vendor/fuse-emulator/current/libspectrum/test/empty.z80 Modified: vendor/fuse-emulator/current/fuse/ChangeLog =================================================================== --- vendor/fuse-emulator/current/fuse/ChangeLog 2008-10-28 13:18:28 UTC (rev 536) +++ vendor/fuse-emulator/current/fuse/ChangeLog 2008-11-03 11:44:43 UTC (rev 537) @@ -1,3 +1,54 @@ +2008-11-?? Philip Kendall <phi...@sh...> + + * Fuse 0.10.0 released + + * New upd765 FDC emulation; all known +3 DSK images now work (Gergely + Szasz; thanks to Simon Owen for expert technical advice). + * Loading acceleration (Philip Kendall). + * Automatic saves while using RZX recording (Philip Kendall). + * Many improvements to Win32 UI (mostly Marek Januszewski). + * Improved widget UI, with look and feel borrowed from that in FuseX + (Fredrick Meunier; thanks, crabfists). + + * Emulation core improvements: + * New --late-timings option to emulate machines with 1 tstate + later timings (Philip Kendall) + * Reading from the 128K's memory control port causes that byte to + be written back to the port (Philip Kendall; thanks, Marat + Fayzullin). + * NMI causes Z80 to unHALT (Philip Kendall; thanks, Simon Owen). + * Emulate C, H and P/V flags on repeated IO instructions (Philip + Kendall). + * Fix crash when using Interface 1 on unoptimised Fuse builds + (Philip Kendall). + + * Debugger improvements: + * Debugger events to allow the debugger to stop when various + Spectrum-level events happen (Philip Kendall). + * Allow debugger commands to be run when a breakpoint is hit. + No UI for this at present, but can be set from the command line. + (Philip Kendall). + * Command to exit emulator (Philip Kendall). + * Make time breakpoints work properly when more than one is present + (Philip Kendall). + + * Miscellaneous improvements: + * Loader detection now works with the Digital Integration loader + (Philip Kendall). + * New HQ2X and HQ3x scalers (Gergely Szasz). + * Revert Pentagon 128 to being the "base" machine without extra + ROMs (Fredrick Meunier). + * Updated +3e ROMs (Fredrick Meunier; thanks, Garry Lancaster). + * Allow DivIDE, custom ROMs, Kempston mouse status and Simple 8-bit + IDE interface to be saved in snapshots (Fredrick Meunier). + * Better (but probably not perfect) TS2068 contention (Philip + Kendall). + * OpenSolaris compilation fixes (Fredrick Meunier; thanks, Andrew + Owen). + * C89 compatibility fixes (Fredrick Meunier; thanks, sweetlilmr). + * Remove GTK+'s build explicit dependency on Xlib (Philip Kendall). + * Minor AmigaOS improvements (Chris Young). + 2008-01-05 Philip Kendall <phi...@sh...> * Fuse 0.9.0 released @@ -878,4 +929,4 @@ * Version 0.1.0 released. -$Id: ChangeLog 3482 2008-01-07 12:32:26Z pak21 $ +$Id: ChangeLog 3787 2008-10-22 19:10:25Z pak21 $ Modified: vendor/fuse-emulator/current/fuse/README =================================================================== --- vendor/fuse-emulator/current/fuse/README 2008-10-28 13:18:28 UTC (rev 536) +++ vendor/fuse-emulator/current/fuse/README 2008-11-03 11:44:43 UTC (rev 537) @@ -5,8 +5,9 @@ unsurprisingly, an emulator of the ZX Spectrum (a popular 1980s home computer, especially in the UK) for Unix. However, it has now also been ported to Mac OS X, which may or may not count as a Unix variant -depending on your advocacy position and emulates some of the -better-known ZX Spectrum clones as well. +depending on your advocacy position and Windows which definitely isn't +a Unix variant. Fuse also emulates some of the better-known ZX Spectrum +clones as well. What Fuse does have: @@ -15,7 +16,7 @@ Pentagon 128, "512" (Pentagon 128 with extra memory) and 1024 and Scorpion ZS 256 emulation. * Runs at true Speccy speed on any computer you're likely to try it on. -* Support for loading from .tzx files. +* Support for loading from .tzx files, including accelerated loading. * Sound (on systems supporting the Open Sound System, SDL, or OpenBSD/ Solaris's /dev/audio). * Emulation of most of the common joysticks used on the Spectrum @@ -151,4 +152,4 @@ Philip Kendall <phi...@sh...> 5 January 2008 -$Id: README 3718 2008-07-19 12:29:41Z pak21 $ +$Id: README 3801 2008-10-31 16:22:13Z pak21 $ Modified: vendor/fuse-emulator/current/fuse/compat/unix/file.c =================================================================== --- vendor/fuse-emulator/current/fuse/compat/unix/file.c 2008-10-28 13:18:28 UTC (rev 536) +++ vendor/fuse-emulator/current/fuse/compat/unix/file.c 2008-11-03 11:44:43 UTC (rev 537) @@ -1,7 +1,7 @@ /* file.c: File-related compatibility routines Copyright (c) 2008 Philip Kendall - $Id: file.c 3722 2008-07-22 03:12:28Z specu $ + $Id: file.c 3776 2008-10-06 00:49:45Z 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 @@ -48,7 +48,7 @@ compat_file_open( const char *path, int write ) { int flags = write ? O_WRONLY | O_CREAT | O_BINARY : O_RDONLY | O_BINARY; - return open( path, flags ); + return open( path, flags, 0666 ); } off_t Modified: vendor/fuse-emulator/current/fuse/configure.in =================================================================== --- vendor/fuse-emulator/current/fuse/configure.in 2008-10-28 13:18:28 UTC (rev 536) +++ vendor/fuse-emulator/current/fuse/configure.in 2008-11-03 11:44:43 UTC (rev 537) @@ -1,5 +1,5 @@ dnl Process this file with autoconf to produce a configure script. -dnl $Id: configure.in 3756 2008-08-24 13:41:23Z specu $ +dnl $Id: configure.in 3796 2008-10-28 20:44:45Z specu $ 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 @@ -380,7 +380,7 @@ dnl Check if libsamplerate is available AC_MSG_CHECKING(whether libsamplerate support requested) AC_ARG_WITH(libsamplerate, - [ --without-libsamplerate use libsamplerate], + [ --without-libsamplerate don't use libsamplerate], if test "$withval" = no; then libsamplerate=no; else libsamplerate=yes; fi, libsamplerate=yes) AC_MSG_RESULT($libsamplerate) Modified: vendor/fuse-emulator/current/fuse/disk/fdd.c =================================================================== --- vendor/fuse-emulator/current/fuse/disk/fdd.c 2008-10-28 13:18:28 UTC (rev 536) +++ vendor/fuse-emulator/current/fuse/disk/fdd.c 2008-11-03 11:44:43 UTC (rev 537) @@ -1,7 +1,7 @@ /* fdd.c: Routines for emulating floppy disk drives Copyright (c) 2007 Gergely Szasz - $Id: fdd.c 3681 2008-06-16 09:40:29Z pak21 $ + $Id: fdd.c 3802 2008-11-02 17:06:41Z 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 @@ -165,7 +165,7 @@ machine_current->timings.processor_speed / 10, motor_event, d ); } else { - event_add_with_data( tstates + 2 * /* 1 revolution */ + event_add_with_data( tstates + 3 * /* 1.5 revolution */ machine_current->timings.processor_speed / 10, motor_event, d ); } Modified: vendor/fuse-emulator/current/fuse/disk/upd_fdc.c =================================================================== --- vendor/fuse-emulator/current/fuse/disk/upd_fdc.c 2008-10-28 13:18:28 UTC (rev 536) +++ vendor/fuse-emulator/current/fuse/disk/upd_fdc.c 2008-11-03 11:44:43 UTC (rev 537) @@ -1,7 +1,7 @@ /* upd_fdc.c: NEC floppy disk controller emulation Copyright (c) 2007 Gergely Szasz - $Id: upd_fdc.c 3723 2008-07-22 07:49:06Z pak21 $ + $Id: upd_fdc.c 3802 2008-11-02 17:06:41Z 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 @@ -187,7 +187,7 @@ UPD_FDC_ST1_NO_DATA ); f->id_mark = UPD_FDC_AM_NONE; i = f->rev; - while( i == f->rev ) { + while( i == f->rev && d->fdd.ready ) { fdd_read_write_data( &d->fdd, FDD_READ ); if( d->fdd.index ) f->rev--; crc_preset( f ); if( f->mf ) { /* double density (MFM) */ @@ -242,6 +242,7 @@ return 0; /* found and OK */ } } + if(!d->fdd.ready) f->rev = 0; f->status_register[1] |= UPD_FDC_ST1_MISSING_AM | UPD_FDC_ST1_NO_DATA; /*FIXME _NO_DATA? */ return 2; /* not found */ } Modified: vendor/fuse-emulator/current/fuse/fuse.c =================================================================== --- vendor/fuse-emulator/current/fuse/fuse.c 2008-10-28 13:18:28 UTC (rev 536) +++ vendor/fuse-emulator/current/fuse/fuse.c 2008-11-03 11:44:43 UTC (rev 537) @@ -1,7 +1,7 @@ /* fuse.c: The Free Unix Spectrum Emulator Copyright (c) 1999-2008 Philip Kendall - $Id: fuse.c 3718 2008-07-19 12:29:41Z pak21 $ + $Id: fuse.c 3797 2008-10-29 12:04:34Z fredm $ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -751,6 +751,10 @@ 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(); + psg_end(); rzx_end(); debugger_end(); @@ -774,8 +778,6 @@ widget_end(); #endif /* #ifdef USE_WIDGET */ - settings_end(); - libspectrum_creator_free( fuse_creator ); return 0; Modified: vendor/fuse-emulator/current/fuse/hacking/ChangeLog =================================================================== --- vendor/fuse-emulator/current/fuse/hacking/ChangeLog 2008-10-28 13:18:28 UTC (rev 536) +++ vendor/fuse-emulator/current/fuse/hacking/ChangeLog 2008-11-03 11:44:43 UTC (rev 537) @@ -2895,3 +2895,29 @@ rollback.rc,select_template.rc}: Win32: Changed style for all dialogs to make those dialogs show on the taskbar, converted select_template.rc from DOS to UNIX (Marek). +20081006 compat/unix/file.c: make sure mode is specified when opening a file + for writing (fixes bug #2146742) (thanks, Cygnus) (Fred). +20081021 z80/tests/README: small documentation update (patch #2183257) + (Matthew Westcott). +20081021 ChangeLog: update for 0.10.0 release. +20081022 menu.c,rzx.c,settings.dat,ui/options.dat: support for autosaves + when using RZX recording. +20081024 man/fuse.1: update. Still TODO: debugger updates. +20081024 man/fuse.1: debugger updates. +20081024 man/fuse.1: minor update for disk formats and compressed disk images + (Fred). +20081028 configure.in: Fixed a typo in the configure script + (was '--without-libsamplerate use libsamplerate') (Marek). +20081029 fuse.c: move up settings_end to happen just after printer_end for + similar reasons - on OS X settings_end refers to machine and other + entries, so must be complete before deallocating the machine arrays + (Fred). +20081031 README: small update for 0.10.0. +20081102 disk/{fdd.c,upd_fdc.c}: stop hang if asked for index hole when disk + motor is off, and change spindown time so that The Running Man disk + works (bug #2212424) (Gergely Szasz; thanks, Mark Woodmass). +20081102 ui/win32/win32ui.c: Win32: Made ui_error_specific function work + similarly to the gtk ui equivalent (Marek). +20081102 ui/win32/{win32ui.c,win32internals.h,win32joystick.[ch}: Win32: + Implemented joystick handling using mmsystem API (and tested using PPJoy + joystick emulator, hope it works with real hardware) (Marek). Modified: vendor/fuse-emulator/current/fuse/man/fuse.1 =================================================================== --- vendor/fuse-emulator/current/fuse/man/fuse.1 2008-10-28 13:18:28 UTC (rev 536) +++ vendor/fuse-emulator/current/fuse/man/fuse.1 2008-11-03 11:44:43 UTC (rev 537) @@ -80,6 +80,17 @@ .\" the options list is in alphabetical order by long option name (or .\" short option name if none). .\" +.I \-\-accelerate\-loader +.RS +Specify whether Fuse should attempt to accelerate tape loaders by "short +circuiting" the loading loop. This will in general speed up loading, but +may cause some loaders to fail. (Enabled by default, but you can use +.RI ` \-\-no\-accelerate\-loader ' +to disable). The same as the General Options dialog's +.I "Accelerate loaders" +option. +.RE +.PP .I \-\-aspect\-hint .RS Specify whether the GTK+ and Xlib user interfaces should `hint' to the @@ -115,6 +126,14 @@ option. .RE .PP +.I \-\-beeper\-stereo +.RS +Specify whether fake stereo should be added to the emulation of the +Spectrum beeper. Same as the Sound Options dialog's +.I "Beeper pseudo-stereo" +option. +.RE +.PP .I \-\-beta128 .RS Emulate a Beta 128 interface. Same as the Peripherals Options dialog's @@ -122,12 +141,9 @@ option. .RE .PP -.I \-\-beeper\-stereo .RS -Specify whether fake stereo should be added to the emulation of the -Spectrum beeper. Same as the Sound Options dialog's -.I "Beeper pseudo-stereo" -option. +.I \-\-betadisk +Specify a Betadisk image to load. .RE .PP .I \-\-bw\-tv @@ -178,6 +194,15 @@ option. .RE .PP +.I "\-\-debugger\-command string" +.RS +Specify a debugger command to be run before emulator startup. This can +be used to set breakpoints or the like. Currently, this is the only +method to input multi-line debugger commands. (See the +.B "MONITOR/DEBUGGER" +section for more information). +.RE +.PP .I "\-\-detect\-loader" .RS Specify whether Fuse should attempt to detect when the tape is being @@ -189,12 +214,42 @@ option. .RE .PP +.I \-\-divide +.RS +Emulate the DivIDE interface. The same as the Peripherals Options +dialog's +.I "DivIDE interface" +option. +.RE +.PP +.I "\-\-divide\-masterfile file" +.br +.I "\-\-divide\-slavefile file" +.RS +Specify an IDE image to be loaded into the DivIDE's emulated master +and slave drives respectively. +.RE +.PP +.I \-\-divide\-write\-protect +.RS +Specify that the emulated DivIDE's write protect jumper should be +considered set. The same as the Peripherals Options dialog's +.I "DivIDE write protect" +option. +.RE +.PP .I "\-\-dock file" .RS Insert the specified file into the emulated Timex 2068 variant dock; also select the TC2068 on startup if available. .RE .PP +.I "\-\-doublescan\-mode" +.RS +Specify the the framebuffer UI should attempt to use a double scan mode +(where each line is displayed twice). +.RE +.PP .I "\-\-embed\-snapshot" .RS Specify whether a snapshot should be embedded in an RZX file when @@ -291,7 +346,9 @@ .PP .I \-\-interface2 .RS -Emulate a Sinclair Interface II. Same as the Peripherals Options dialog's +Emulate a Sinclair Interface II. (Enabled by default, but you can use +.RI ` \-\-no\-interface2 ' +to disable). Same as the Peripherals Options dialog's .I "Interface II" option. .RE @@ -326,6 +383,16 @@ .RI ` /dev/js1 "'." .RE .PP +.I \-\-joystick-prompt +.RS +If this option is specified, Fuse Fuse will prompt you which form of +joystick emulation you wish to use when loading a snapshot. No prompt +will be issued if the configuration in the snapshot matches what you +are currently using. The same as the General Options dialog's +.I "Snap joystick prompt" +option. +.RE +.PP .I \-\-kempston .RS Emulate a Kempston joystick. Same as the Peripherals Options dialog's @@ -340,6 +407,16 @@ option. .RE .PP +.I \-\-late\-timings +.RS +It has been observed that some real Spectrums run such that the screen +is rendered one tstate later than on other real hardware. This option +specifies that Fuse should emulate such a machine. Same as the General +Options dialog's +.I "Late timings" +option. +.RE +.PP .I \-\-loading\-sound .RS Specify whether the sound made while tapes are loading should be @@ -576,6 +653,16 @@ options. .RE .PP +.I \-\-rzx-autosaves +.RS +Specify that, while recording an RZX file, Fuse should automatically add +a snapshot to the recording stream every 5 seconds. (Default to on, but +you can use +.RI ` \-\-no-rzx-autosaves ' +to disable). Same as the RZX Options dialog's "Create autosaves" option; +see there for more details. +.RE +.PP .I \-\-separation .RS Give stereo separation of the 128's AY sound channels. Same as the @@ -1453,7 +1540,15 @@ to connect to the joystick interface enabled in the snapshot unless it already matches your current configuration. .RE +.PP +.I "Late timings" +.RS +If selected, Fuse will cause all 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. .RE +.RE .PP .I "Options, Sound..." .RS @@ -1677,6 +1772,20 @@ aborts). Note that any changed settings only apply to the currently-running Fuse. .PP +.I "Create autosaves" +.RS +If this option is selected, Fuse will add a snapshot into the recording +stream every 5 seconds while creating an RZX file, thus enabling the +rollback facilities to be used without having to explicitly add +snapshots into the stream. Older snapshots will be pruned from the +stream to keep the file size and number of snapshots down: each snapshot +up to 15 seconds will be kept, then one snapshot every 15 seconds until +one minute, then one snapshot every minute until 5 minutes, and then one +snapshot every 5 minutes. Note that this "pruning" applies only to +automatically inserted snapshots: snapshots manually inserted into the +stream will never be pruned. +.RE +.PP .I "Compress RZX data" .RS If this option is selected, and @@ -1960,11 +2069,11 @@ .RS Another Russian clone of the Spectrum. Some details can be found at -.IR "http://www.worldofspectrum.org/rusfaq/index.html" , like all the -Russian clones they they have built in 3.5" disk drives, accessed via -the Beta 128 disk interface and TR-DOS (the Technology Research Disk -Operating System). The most important distinction from the Pentagon -128k and similar machines is the display timing details. +.IR "http://www.worldofspectrum.org/rusfaq/index.html" , +like all the Russian clones they they have built in 3.5" disk drives, +accessed via the Beta 128 disk interface and TR-DOS (the Technology +Research Disk Operating System). The most important distinction from +the Pentagon 128k and similar machines is the display timing details. .RE .PP .I "Spectrum SE" @@ -2899,11 +3008,65 @@ .RS Set a breakpoint to occur .I time -tstates after the start of the current frame, assuming +tstates after the start of the every frame, assuming .I condition evaluates true (if one is given). .RE .PP +br{eakpoint} ev{ent} +.IR area : detail " [" condition ] +.RS +Set a breakpoint to occur when the event specified by +.IR area : detail +occurs and +.I condition +evaluates to true. The events which can be caught are: +.PP +divide:page +.br +divide:unpage +.RS +The DivIDE interface is paged into or out of memory respectively +.RE +.br +if1:page +.br +if1:unpage +.RS +The Interface 1 shadow ROM is paged into or out of memory +.RE +.br +rzx:end +.RS +An RZX recording finishes playing +.RE +.br +tape:play +.br +tape:stop +.RS +The emulated tape starts or stops playing +.RE +.br +zxcf:page +.br +zxcf:unpage +.RS +The ZXCF interface is paged into or out of memory +.RE +.br +zxatasp:page +.br +zxatasp:unpage +.RS +The ZXATASP interface is paged into or out of memory +.RE +.PP +In all cases, the event can be specified as +.IR area :* +to catch all events from that area. +.RE +.PP cl{ear} .RI [ address ] .RS @@ -2914,6 +3077,25 @@ is omitted. Port read/write breakpoints are unaffected. .RE .PP +com{mmands} +.I id <newline> +.br +.I <debugger command> <newline> +.br +.I <debugger command> <newline> +.br +.I ... +.br +end +.RS +Set things such that the specified debugger commands will be +automatically executed when breakpoint +.I id +is triggered. There is currently no user interface for entering +multi-line debugger commands, so the only way to specify this command is +on the command-line via the \-\-debugger\-command option. +.RE +.PP cond{ition} .IR "id " [ condition ] .RS @@ -2950,6 +3132,11 @@ .IR address . .RE .PP +ex{it} +.RS +Exit the emulator immediately. +.RE +.PP fi{nish} .RS Exit from the current CALL or equivalent. This isn't infallible: it @@ -3217,8 +3404,9 @@ .RE .PP .I .SAD +.I .SDF .RS -For compatibility with SAM Coup\('e disk images using this format. +For compatibility with SAM Coup\('e disk images using these formats. Note that SAM Coup\('e `.DSK' images share the same format as `.MGT'. .RE .PP @@ -3251,11 +3439,6 @@ .I http://www.cpc-emu.org/linux/cpcemu_e.txt .RE .PP -.I .SDF -.RS -TODO -.RE -.PP Fuse supports most of them for writing: .I .UDI .FDI .MGT .IMG .SAD .TRD .SCL .DSK (only the old CPC format). @@ -3285,9 +3468,7 @@ or .IR gzip (3) just as if they were uncompressed. -.I libdsk -provides an equivalent functionality for +3 images if available, -but there is currently no support for reading compressed +D or Beta +There is currently no support for reading compressed +3, +D or Beta disk images. .\" .\"------------------------------------------------------------------ @@ -3319,7 +3500,8 @@ .PP The libao file output devices not work properly with the GTK+ UI. No error reporting, but the created file does not contain any sound data. -If you use a `weak' machine alsa09 make a lot of click and pop with +If you use a `weak' machine alsa09 makes a lot of clicks and pops and +will output .RI ` "ALSA: underrun, at least 0ms." ' error messages. .\" Modified: vendor/fuse-emulator/current/fuse/menu.c =================================================================== --- vendor/fuse-emulator/current/fuse/menu.c 2008-10-28 13:18:28 UTC (rev 536) +++ vendor/fuse-emulator/current/fuse/menu.c 2008-11-03 11:44:43 UTC (rev 537) @@ -1,7 +1,7 @@ /* menu.c: general menu callbacks Copyright (c) 2004-2005 Philip Kendall - $Id: menu.c 3714 2008-07-06 18:10:29Z fredm $ + $Id: menu.c 3787 2008-10-22 19:10:25Z 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 @@ -93,7 +93,7 @@ error = snapshot_copy_to( snap ); if( error ) { libspectrum_snap_free( snap ); return; } - libspectrum_rzx_add_snap( rzx, snap ); + libspectrum_rzx_add_snap( rzx, snap, 0 ); libspectrum_rzx_start_input( rzx, tstates ); } Modified: vendor/fuse-emulator/current/fuse/rzx.c =================================================================== --- vendor/fuse-emulator/current/fuse/rzx.c 2008-10-28 13:18:28 UTC (rev 536) +++ vendor/fuse-emulator/current/fuse/rzx.c 2008-11-03 11:44:43 UTC (rev 537) @@ -1,7 +1,7 @@ /* rzx.c: .rzx files Copyright (c) 2002-2003 Philip Kendall - $Id: rzx.c 3703 2008-06-30 20:36:11Z pak21 $ + $Id: rzx.c 3787 2008-10-22 19:10:25Z pak21 $ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -58,6 +58,9 @@ /* The number of bytes read via IN during the current frame */ size_t rzx_in_count; +/* The number of frames we've recorded in this RZX file */ +static size_t autosave_frame_count; + /* And the values of those bytes */ libspectrum_byte *rzx_in_bytes; @@ -95,6 +98,9 @@ a competition mode RZX file */ static const float SPEED_TOLERANCE = 5; +/* How often will we create an autosave file */ +static const size_t AUTOSAVE_INTERVAL = 5 * 50; + /* Debugger events */ static const char *event_type_string = "rzx"; static const char *end_event_detail_string = "end"; @@ -152,7 +158,7 @@ return 1; } - error = libspectrum_rzx_add_snap( rzx, snap ); + error = libspectrum_rzx_add_snap( rzx, snap, 0 ); if( error ) { libspectrum_snap_free( snap ); return error; @@ -160,13 +166,12 @@ } - /* Put an input recording block into the RZX file */ libspectrum_rzx_start_input( rzx, tstates ); - /* Start the count of instruction fetches here */ - counter_reset(); rzx_in_count = 0; + counter_reset(); + rzx_in_count = 0; + autosave_frame_count = 0; - /* Note that we're recording */ rzx_recording = 1; ui_menu_activate( UI_MENU_ITEM_RECORDING, 1 ); @@ -366,6 +371,80 @@ return 0; } +typedef struct prune_info_t { + libspectrum_rzx_iterator it; + size_t frames; +} prune_info_t; + +static void +autosave_prune( void ) +{ + GArray *autosaves = g_array_new( FALSE, FALSE, sizeof( prune_info_t ) ); + libspectrum_rzx_iterator it; + size_t i, frames = 0; + + for( it = libspectrum_rzx_iterator_begin( rzx ); + it; + it = libspectrum_rzx_iterator_next( it ) ) { + + libspectrum_rzx_block_id id = libspectrum_rzx_iterator_get_type( it ); + + switch( id ) { + + case LIBSPECTRUM_RZX_INPUT_BLOCK: + frames += libspectrum_rzx_iterator_get_frames( it ); break; + + case LIBSPECTRUM_RZX_SNAPSHOT_BLOCK: + if( libspectrum_rzx_iterator_snap_is_automatic( it ) ) { + prune_info_t info = { it, frames }; + g_array_append_val( autosaves, info ); + } + break; + + default: + break; + } + } + + /* Convert 'time from start' into 'time before now' */ + for( i = 0; i < autosaves->len; i++ ) { + prune_info_t *info = &( g_array_index( autosaves, prune_info_t, i ) ); + info->frames = frames - info->frames; + } + + for( i = autosaves->len - 1; i > 0; i-- ) { + prune_info_t save1 = g_array_index( autosaves, prune_info_t, i ), + save2 = g_array_index( autosaves, prune_info_t, i - 1 ); + + if( ( save1.frames == 15 * 50 || + save1.frames == 60 * 50 || + save1.frames == 300 * 50 ) && + save2.frames < 2 * save1.frames + ) + /* FIXME: could possibly merge adjacent IRBs here */ + libspectrum_rzx_iterator_delete( rzx, save1.it ); + } + + g_array_set_size( autosaves, 0 ); +} + +static void +autosave_frame( void ) +{ + libspectrum_snap *snap; + + if( ++autosave_frame_count % AUTOSAVE_INTERVAL ) return; + + snap = libspectrum_snap_alloc(); + snapshot_copy_to( snap ); + + libspectrum_rzx_stop_input( rzx ); + libspectrum_rzx_add_snap( rzx, snap, 1 ); + libspectrum_rzx_start_input( rzx, tstates ); + + autosave_prune(); +} + static int recording_frame( void ) { libspectrum_error error; @@ -395,6 +474,8 @@ } + if( settings_current.rzx_autosaves ) autosave_frame(); + return 0; } Modified: vendor/fuse-emulator/current/fuse/settings.dat =================================================================== --- vendor/fuse-emulator/current/fuse/settings.dat 2008-10-28 13:18:28 UTC (rev 536) +++ vendor/fuse-emulator/current/fuse/settings.dat 2008-11-03 11:44:43 UTC (rev 537) @@ -1,7 +1,7 @@ # settings.dat: configuration options for Fuse # Copyright (c) 2002-2008 Philip Kendall -# $Id: settings.dat 3751 2008-08-19 15:46:09Z specu $ +# $Id: settings.dat 3787 2008-10-22 19:10:25Z 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 @@ -112,6 +112,7 @@ competition_mode, boolean, 0 competition_code, numeric, 0 embed_snapshot, boolean, 1 +rzx_autosaves, boolean, 1 snapshot, string, NULL, 's' tape_file, string, NULL, 't', tape, tapefile Modified: vendor/fuse-emulator/current/fuse/ui/options.dat =================================================================== --- vendor/fuse-emulator/current/fuse/ui/options.dat 2008-10-28 13:18:28 UTC (rev 536) +++ vendor/fuse-emulator/current/fuse/ui/options.dat 2008-11-03 11:44:43 UTC (rev 537) @@ -48,6 +48,7 @@ rzx RZX Options +Checkbox, Create (a)utosaves, rzx_autosaves, INPUT_KEY_a Checkbox, (C)ompress RZX data, rzx_compression, INPUT_KEY_c Checkbox, C(o)mpetition mode, competition_mode, INPUT_KEY_o Entry, Co(m)petition code, competition_code, INPUT_KEY_m, 8, Modified: vendor/fuse-emulator/current/fuse/ui/win32/win32internals.h =================================================================== --- vendor/fuse-emulator/current/fuse/ui/win32/win32internals.h 2008-10-28 13:18:28 UTC (rev 536) +++ vendor/fuse-emulator/current/fuse/ui/win32/win32internals.h 2008-11-03 11:44:43 UTC (rev 537) @@ -1,7 +1,7 @@ /* win32internals.h: stuff internal to the Win32 UI Copyright (c) 2004 Marek Januszewski - $Id: win32internals.h 3768 2008-09-07 01:33:19Z specu $ + $Id: win32internals.h 3804 2008-11-03 04:21:02Z specu $ 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,10 @@ #include <commdlg.h> #include <shellapi.h> +/* FIXME: this should be included as part of windows.h, but is not + because WIN32_LEAN_AND_MEAN is defined along the way somewhere */ +#include <mmsystem.h> + #include <libspectrum.h> #define ID_STATUSBAR 900 Modified: vendor/fuse-emulator/current/fuse/ui/win32/win32joystick.c =================================================================== --- vendor/fuse-emulator/current/fuse/ui/win32/win32joystick.c 2008-10-28 13:18:28 UTC (rev 536) +++ vendor/fuse-emulator/current/fuse/ui/win32/win32joystick.c 2008-11-03 11:44:43 UTC (rev 537) @@ -1,7 +1,7 @@ /* gtkjoystick.c: Joystick emulation Copyright (c) 2003-2008 Darren Salt, Philip Kendall, Marek Januszewski - $Id: win32joystick.c 3751 2008-08-19 15:46:09Z specu $ + $Id: win32joystick.c 3804 2008-11-03 04:21:02Z specu $ 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 @@ -27,17 +27,12 @@ #include <config.h> -#if !defined USE_JOYSTICK || defined HAVE_JSW_H -#include "../uijoystick.c" -#else - /* FIXME: implement win32 joystick using mmsystem, not jsw */ -#endif - #include <tchar.h> #include <windows.h> #include "fuse.h" #include "joystick.h" +#include "input.h" #include "keyboard.h" #include "menu.h" #include "settings.h" @@ -45,6 +40,126 @@ #include "win32joystick.h" +#if !defined USE_JOYSTICK || defined HAVE_JSW_H + +#include "../uijoystick.c" + +#else /* #if !defined USE_JOYSTICK || defined HAVE_JSW_H */ + +/* Functions to handle Joystick events */ +#include "ui/ui.h" +#include "ui/uijoystick.h" + +static void do_axis( int which, WORD value, + input_key negative, input_key positive ); + +int +ui_joystick_init( void ) +{ + int retval; + JOYINFO joyinfo; + + retval = joyGetNumDevs(); + + if( retval >= 2 ) { + + retval = 2; + + if( joyGetPos( JOYSTICKID2, &joyinfo ) == JOYERR_UNPLUGGED ) { + ui_error( UI_ERROR_ERROR, "failed to initialise joystick 2" ); + return 0; + } + } + + if( retval > 0 ) { + + if( joyGetPos( JOYSTICKID1, &joyinfo ) == JOYERR_UNPLUGGED ) { + ui_error( UI_ERROR_ERROR, "failed to initialise joystick 1" ); + return 0; + } + } + + return retval; +} + +void +ui_joystick_poll( void ) +{ + /* No action needed; joysticks already handled by the Window messages + sent by mmsystem */ +} + +void +win32joystick_buttonevent( int which_joystick, int button_down, + unsigned int wParam ) +{ + input_event_t event; + int button = 0; + + if( wParam & JOY_BUTTON1 ) button = INPUT_JOYSTICK_FIRE_1; + else if( wParam & JOY_BUTTON2 ) button = INPUT_JOYSTICK_FIRE_2; + else if( wParam & JOY_BUTTON3 ) button = INPUT_JOYSTICK_FIRE_3; + else if( wParam & JOY_BUTTON4 ) button = INPUT_JOYSTICK_FIRE_4; + else if( wParam & JOY_BUTTON5 ) button = INPUT_JOYSTICK_FIRE_5; + else if( wParam & JOY_BUTTON6 ) button = INPUT_JOYSTICK_FIRE_6; + else if( wParam & JOY_BUTTON7 ) button = INPUT_JOYSTICK_FIRE_7; + else if( wParam & JOY_BUTTON8 ) button = INPUT_JOYSTICK_FIRE_8; + else if( wParam & JOY_BUTTON9 ) button = INPUT_JOYSTICK_FIRE_9; + else if( wParam & JOY_BUTTON10 ) button = INPUT_JOYSTICK_FIRE_10; + else return; /* Fuse supports up to 10 joystick buttons */ + + event.types.joystick.which = which_joystick; + event.type = button_down + ? INPUT_EVENT_JOYSTICK_PRESS : INPUT_EVENT_JOYSTICK_RELEASE; + event.types.joystick.button = button; + input_event( &event ); +} + +void +win32joystick_move( int which_joystick, unsigned short pos_x, + unsigned short pos_y ) +{ + do_axis( which_joystick, pos_x, + INPUT_JOYSTICK_LEFT, INPUT_JOYSTICK_RIGHT ); + do_axis( which_joystick, pos_y, + INPUT_JOYSTICK_UP, INPUT_JOYSTICK_DOWN ); +} + +static void +do_axis( int which, WORD value, input_key negative, input_key positive ) +{ + input_event_t event1, event2; + + event1.types.joystick.which = event2.types.joystick.which = which; + + event1.types.joystick.button = negative; + event2.types.joystick.button = positive; + + /* MS Windows sends a value between 0 and 65535, hopefully those will work */ + if( value > 49152 ) { + event1.type = INPUT_EVENT_JOYSTICK_RELEASE; + event2.type = INPUT_EVENT_JOYSTICK_PRESS; + } else if( value < 16384 ) { + event1.type = INPUT_EVENT_JOYSTICK_PRESS; + event2.type = INPUT_EVENT_JOYSTICK_RELEASE; + } else { + event1.type = INPUT_EVENT_JOYSTICK_RELEASE; + event2.type = INPUT_EVENT_JOYSTICK_RELEASE; + } + + input_event( &event1 ); + input_event( &event2 ); +} + +void +ui_joystick_end( void ) +{ + /* Initialization and unitialization is handled by MS Windows */ +} + +#endif /* #if !defined USE_JOYSTICK || defined HAVE_JSW_H */ + +/* Win32 UI functions to handle Joystick options menus */ struct button_info { int *setting; TCHAR name[80]; Modified: vendor/fuse-emulator/current/fuse/ui/win32/win32joystick.h =================================================================== --- vendor/fuse-emulator/current/fuse/ui/win32/win32joystick.h 2008-10-28 13:18:28 UTC (rev 536) +++ vendor/fuse-emulator/current/fuse/ui/win32/win32joystick.h 2008-11-03 11:44:43 UTC (rev 537) @@ -1,7 +1,7 @@ /* win32joystick.h: Joystick emulation Copyright (c) 2008 Marek Januszewski - $Id: win32joystick.h 3588 2008-03-27 17:48:10Z zubzero $ + $Id: win32joystick.h 3804 2008-11-03 04:21:02Z specu $ 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 @@ -62,3 +62,15 @@ #define IDC_JOYSTICKS_BUTTON_BUTTON10 ( IDC_JOYSTICKS_BUTTON_BUTTON9 + 1 ) #define IDR_JOYSTICKS_POPUP ( IDC_JOYSTICKS_BUTTON_BUTTON10 + 1 ) + +/* + win32joystick_buttonevent parameters: + which_joystick = 0 => JOYSTICK1 + which_joystick = 1 => JOYSTICK2 + button_down = 1 => button pressed + button_down = 0 => button released +*/ +void win32joystick_buttonevent( int which_joystick, int button_down, + unsigned int wParam ); +void win32joystick_move( int which_joystick, + unsigned short pos_x, unsigned short pos_y ); Modified: vendor/fuse-emulator/current/fuse/ui/win32/win32ui.c =================================================================== --- vendor/fuse-emulator/current/fuse/ui/win32/win32ui.c 2008-10-28 13:18:28 UTC (rev 536) +++ vendor/fuse-emulator/current/fuse/ui/win32/win32ui.c 2008-11-03 11:44:43 UTC (rev 537) @@ -1,7 +1,7 @@ /* win32ui.c: Win32 routines for dealing with the user interface Copyright (c) 2003-2007 Marek Januszewski, Philip Kendall, Stuart Brady - $Id: win32ui.c 3768 2008-09-07 01:33:19Z specu $ + $Id: win32ui.c 3804 2008-11-03 04:21:02Z specu $ 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 @@ -28,6 +28,7 @@ #include "debugger/debugger.h" #include "display.h" #include "fuse.h" +#include "joystick.h" #include "keyboard.h" #include "menu.h" #include "menu_data.h" @@ -40,9 +41,9 @@ #include "tape.h" #include "timer/timer.h" #include "ui/ui.h" -#include "ui/uijoystick.h" #include "utils.h" #include "win32internals.h" +#include "win32joystick.h" /* fuse_hPrevInstance is needed only to register window class */ static HINSTANCE fuse_hPrevInstance; @@ -120,6 +121,20 @@ fuse_window_proc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam ) { switch( msg ) { + +#if defined USE_JOYSTICK && !defined HAVE_JSW_H + + case WM_CREATE: + if( joysticks_supported > 0 ) + if( joySetCapture( hWnd, JOYSTICKID1, 0, FALSE ) ) + ui_error( UI_ERROR_ERROR, "Couldn't start capture for joystick 1" ); + if( joysticks_supported > 1 ) + if( joySetCapture( hWnd, JOYSTICKID2, 0, FALSE ) ) + ui_error( UI_ERROR_ERROR, "Couldn't start capture for joystick 2" ); + break; + +#endif /* if defined USE_JOYSTICK && !defined HAVE_JSW_H */ + case WM_COMMAND: if( ! handle_menu( LOWORD( wParam ), hWnd ) ) return 0; @@ -228,8 +243,36 @@ else if( LOWORD( wParam ) == WA_INACTIVE ) return win32ui_lose_focus( hWnd, wParam, lParam ); break; + +#if defined USE_JOYSTICK && !defined HAVE_JSW_H + + case MM_JOY1BUTTONDOWN: + win32joystick_buttonevent( 0, 1, wParam ); + break; + + case MM_JOY1BUTTONUP: + win32joystick_buttonevent( 0, 0, wParam ); + break; + + case MM_JOY2BUTTONDOWN: + win32joystick_buttonevent( 1, 1, wParam ); + break; + + case MM_JOY2BUTTONUP: + win32joystick_buttonevent( 1, 0, wParam ); + break; + + case MM_JOY1MOVE: + win32joystick_move( 0, LOWORD( lParam ), HIWORD( lParam ) ); + break; + + case MM_JOY2MOVE: + win32joystick_move( 1, LOWORD( lParam ), HIWORD( lParam ) ); + break; + +#endif /* if defined USE_JOYSTICK && !defined HAVE_JSW_H */ + } - return( DefWindowProc( hWnd, msg, wParam, lParam ) ); } @@ -362,33 +405,27 @@ int ui_error_specific( ui_error_level severity, const char *message ) { - /* finish - can ui be not initialized? */ - HWND hWnd; + /* If we don't have a UI yet, we can't output widgets */ + if( !display_ui_initialised ) return 0; - fuse_emulation_pause(); - - hWnd = GetActiveWindow(); - switch( severity ) { case UI_ERROR_INFO: - MessageBox( hWnd, message, "Fuse - Info", MB_ICONINFORMATION | MB_OK ); + MessageBox( fuse_hWnd, message, "Fuse - Info", MB_ICONINFORMATION | MB_OK ); break; case UI_ERROR_WARNING: - MessageBox( hWnd, message, "Fuse - Warning", MB_ICONWARNING | MB_OK ); + MessageBox( fuse_hWnd, message, "Fuse - Warning", MB_ICONWARNING | MB_OK ); break; case UI_ERROR_ERROR: - MessageBox( hWnd, message, "Fuse - Error", MB_ICONERROR | MB_OK ); + MessageBox( fuse_hWnd, message, "Fuse - Error", MB_ICONERROR | MB_OK ); break; default: - MessageBox( hWnd, message, "Fuse - (Unknown Error Level)", + MessageBox( fuse_hWnd, message, "Fuse - (Unknown Error Level)", MB_ICONINFORMATION | MB_OK ); break; } - fuse_emulation_unpause(); - return 0; } @@ -644,25 +681,6 @@ return UI_CONFIRM_JOYSTICK_NONE; } -int -ui_joystick_init( void ) -{ - STUB; - return 0; -} - -void -ui_joystick_end( void ) -{ - STUB; -} - -void -ui_joystick_poll( void ) -{ - /* STUB; */ -} - /* * Font code */ Modified: vendor/fuse-emulator/current/fuse/z80/tests/README =================================================================== --- vendor/fuse-emulator/current/fuse/z80/tests/README 2008-10-28 13:18:28 UTC (rev 536) +++ vendor/fuse-emulator/current/fuse/z80/tests/README 2008-11-03 11:44:43 UTC (rev 537) @@ -8,10 +8,12 @@ <arbitrary test description> AF BC DE HL AF' BC' DE' HL' IX IY SP PC -I R IFF1 IFF2 <halted> <tstates> +I R IFF1 IFF2 IM <halted> <tstates> <halted> specifies whether the Z80 is halted. -<tstates> specifies the number of tstates to run the test for. +<tstates> specifies the number of tstates to run the test for, in + decimal; the number actually executed may be higher, as the final + instruction is allowed to complete. Then followed by lines specifying the initial memory setup. Each has the format: Modified: vendor/fuse-emulator/current/fuse-utils/ChangeLog =================================================================== --- vendor/fuse-emulator/current/fuse-utils/ChangeLog 2008-10-28 13:18:28 UTC (rev 536) +++ vendor/fuse-emulator/current/fuse-utils/ChangeLog 2008-11-03 11:44:43 UTC (rev 537) @@ -1,3 +1,23 @@ +2008-11-?? Philip Kendall <phi...@sh...> + + * Version 0.10.0 released + + * audio2tape can now recognise standard ROM loaders (Fredrick + Meunier). + + * tzxlist now outputs block and tape lengths (Fredrick Meunier). + + * snap2tzx: add 0.1s pause between blocks to ensure a gap between + edges (Fredrick Meunier). + + * tapeconv: add options for embedding metadata into the created + file (Fredrick Meunier). + + * tape2wav: ensure pulses do not get rounded down inappropriately + (Fredrick Meunier). + + * Allow building without libaudiofile (José Manuel Ferrer Ortiz). + 2008-01-05 Philip Kendall <phi...@sh...> * Version 0.9.0 released Modified: vendor/fuse-emulator/current/fuse-utils/hacking/ChangeLog =================================================================== --- vendor/fuse-emulator/current/fuse-utils/hacking/ChangeLog 2008-10-28 13:18:28 UTC (rev 536) +++ vendor/fuse-emulator/current/fuse-utils/hacking/ChangeLog 2008-11-03 11:44:43 UTC (rev 537) @@ -254,3 +254,4 @@ were enabled (Fred). 20080922 importer/soundfile.cc: initialise frequency table to 0 (Fred). 20080928 tzxlist.c: add block and tape lengths to output (Fred). +20081027 ChangeLog: bring up to date. Modified: vendor/fuse-emulator/current/fusetest/fusetest.asm =================================================================== --- vendor/fuse-emulator/current/fusetest/fusetest.asm 2008-10-28 13:18:28 UTC (rev 536) +++ vendor/fuse-emulator/current/fusetest/fusetest.asm 2008-11-03 11:44:43 UTC (rev 537) @@ -168,6 +168,9 @@ defb 'DAA', 0 defw daatest + defb 'OUTI', 0 + defw outitest + defb 'LDIR', 0 defw ldirtest Modified: vendor/fuse-emulator/current/fusetest/tests.asm =================================================================== --- vendor/fuse-emulator/current/fusetest/tests.asm 2008-10-28 13:18:28 UTC (rev 536) +++ vendor/fuse-emulator/current/fusetest/tests.asm 2008-11-03 11:44:43 UTC (rev 537) @@ -44,6 +44,33 @@ ret ENDP +; Check the behaviour of the undocumented flags after OUTI (revision 3634) + +outitest +PROC + ld de, _data + ld hl, 0x40fd + ld a, (hl) + ld (de), a + ld a, 0x12 + ld (hl), a + ld bc, 0x01fe + outi + push af + ld a, 0x07 + out (c), a + ld a, (de) + dec hl + ld (hl), a + pop bc + ld a, c + ld b, 0x00 + cp 0x55 + ret + +_data defb 0x00 +ENDP + ; Check the behaviour of LDIR at contended memory boundary (revision 2841). ldirtest Modified: vendor/fuse-emulator/current/libspectrum/ChangeLog =================================================================== --- vendor/fuse-emulator/current/libspectrum/ChangeLog 2008-10-28 13:18:28 UTC (rev 536) +++ vendor/fuse-emulator/current/libspectrum/ChangeLog 2008-11-03 11:44:43 UTC (rev 537) @@ -1,3 +1,47 @@ +2008-11-?? Philip Kendall <phi...@sh...> + + * libspectrum 0.5.0 released. + + * Memory management change: memory allocation functions now abort + on failure. Leads to simpler code both internally and for + users of the library (Philip Kendall). + + * Support for tape acceleration (Philip Kendall) + + * IDE improvements to allow DivIDE to support FATware (Philip + Kendall; thanks, http://www.dusky.sk/zxs/) + + * New API to deal with flagging automatic snapshots in RZX files + (Philip Kendall). + + * New function to get length (time) of a tape block (Philip Kendall, + Fredrick Meunier). + + * 128K SNA files are now treated as being for the Pentagon 128 + rather than the Spectrum 128 (Fredrick Meunier) + + * SNA files now written out correctly (Philip Kendall). + + * Handle MDR write protection flag correctly (Philip Kendall) + + * Allow MDR images with bad checksums to load (the error will + be handled by the If1 ROM) (Gergely Szasz) + + * Support saving custom ROMs in SZX snapshots (Fredrick Meunier, + Stuart Brady) + + * Support for DivIDE, Kempston mouse and the simple IDE interface + in SZX snapshots (Fredrick Meunier) + + * Allow building without libgcrypt (Stuart Brady) + + * Amiga and MorphOS compilation fixes (Chris Young, Q-Master) + + * Don't produce empty libraries to fix build process on + OpenSolaris (Fredrick Meunier) + + * Remove deprecated functions (Fredrick Meunier). + 2008-01-05 Philip Kendall <phi...@sh...> * libspectrum 0.4.0 released. @@ -225,5 +269,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 3480 2008-01-07 12:19:50Z pak21 $ +$Id: ChangeLog 3791 2008-10-27 20:20:40Z pak21 $ Modified: vendor/fuse-emulator/current/libspectrum/README =================================================================== --- vendor/fuse-emulator/current/libspectrum/README 2008-10-28 13:18:28 UTC (rev 536) +++ vendor/fuse-emulator/current/libspectrum/README 2008-11-03 11:44:43 UTC (rev 537) @@ -42,14 +42,14 @@ http://fuse-emulator.sourceforge.net/libspectrum.php -Compiling from CVS ------------------- +Compiling from Subversion +------------------------- -If you're using version of libspectrum from CVS rather than one of the -released tarballs, you'll need to run `autogen.sh' before running -'configure' for the first time. +If you're using version of libspectrum from Subversion rather than one +of the released tarballs, you'll need to run `autogen.sh' before +running 'configure' for the first time. Philip Kendall <phi...@sh...> 5 January 2008 -$Id: README 3480 2008-01-07 12:19:50Z pak21 $ +$Id: README 3795 2008-10-27 21:02:43Z pak21 $ Modified: vendor/fuse-emulator/current/libspectrum/doc/libspectrum.txt =================================================================== --- vendor/fuse-emulator/current/libspectrum/doc/libspectrum.txt 2008-10-28 13:18:28 UTC (rev 536) +++ vendor/fuse-emulator/current/libspectrum/doc/libspectrum.txt 2008-11-03 11:44:43 UTC (rev 537) @@ -61,9 +61,9 @@ libspectrum_error libspectrum_init( void ) This routine must be called before any other libspectrum routines, -other than `libspectrum_version' and `libspectrum_check_version' to -initialise the library. If it isn't called, undefined behaviour may -result. +other than `libspectrum_version', `libspectrum_check_version' and +`libspectrum_mem_set_vtable' to initialise the library. If it isn't +called, undefined behaviour may result. const char *libspectrum_version( void ) @@ -83,6 +83,34 @@ returns non-zero if the libspectrum version in use is at least `version' or zero if it is not. +Memory handling +=============== + +By default, libspectrum will use the standard library's malloc(), +calloc(), realloc() and free() for memory handling, but wrapped so that +they are "strong" (they will either succeed or abort the program). It is +possible to replace these with custom allocation routines if you wish. + +typedef void* (*libspectrum_malloc_fn_t)( size_t size ); +typedef void* (*libspectrum_calloc_fn_t)( size_t nmemb, size_t size ); +typedef void* (*libspectrum_realloc_fn_t)( void *ptr, size_t size ); +typedef void (*libspectrum_free_fn_t)( void *ptr ); + +typedef struct libspectrum_mem_vtable_t { + libspectrum_malloc_fn_t malloc; + libspectrum_calloc_fn_t calloc; + libspectrum_realloc_fn_t realloc; + libspectrum_free_fn_t free; +} libspectrum_mem_vtable_t; + +void libspectrum_mem_set_vtable( libspectrum_mem_vtable_t *table ) + +Set the memory handling routines to be those specified by `table'. This +function may *not* be called after libspectrum_init() has been called. +Note that libspectrum will ensure that the memory allocators are still +strong, and will abort the program if any of the allocators returns +NULL. + Error handling ============== @@ -391,7 +419,7 @@ libspectrum provides a `libspectrum_creator' structure to store this information. -libspectrum_error libspectrum_creator_alloc( libspectrum_creator **creator ) +libspectrum_creator* libspectrum_creator_alloc( void ) Allocate a new `libspectrum_creator' structure. @@ -451,7 +479,7 @@ `libspectrum_snap' structure, which can be accessed via the following routines: -libspectrum_error libspectrum_snap_alloc( libspectrum_snap **snap ) +libspectrum_snap* libspectrum_snap_alloc( void ) Allocate a new libspectrum_snap structure. @@ -695,34 +723,6 @@ The only formats for which serialisation is supported are .sna, .szx and .z80. -Deprecated snapshot routines ----------------------------- - -There are also three format-specific functions. However, *these -functions are deprecated and should not be used in new code*: - -libspectrum_error libspectrum_sna_read( libspectrum_snap *snap, - const libspectrum_byte *buffer, - size_t buffer_length ) - -Take the .sna snapshot of length `buffer_length' bytes at `buffer' and -convert it to a `libspectrum_snap' structure. - -libspectrum_error libspectrum_z80_read( libspectrum_snap *snap, - const libspectrum_byte *buffer, - size_t buffer_length ) - -Similarly for a .z80 snapshot. - -libspectrum_error libspectrum_z80_write( libspectrum_byte **buffer, - size_t *length, - libspectrum_snap *snap ) - -Take the snapshot in `snap' and serialise it into a .z80 file at -'*buffer'. On entry, '*buffer' is assumed to be allocated '*length' -bytes, and will grow if necessary; if '*length' is zero, '*buffer' can -be uninitialised on entry. - Tape functions ============== @@ -732,7 +732,7 @@ The routines for dealing with tapes are: -libspectrum_error libspectrum_tape_alloc( libspectrum_tape **tape ) +libspectrum_tape* libspectrum_tape_alloc( void ) Allocate a new libspectrum_tape object. @@ -793,6 +793,10 @@ forced high at this edge LIBSPECTRUM_TAPE_FLAGS_NO_EDGE This "edge" isn't really an edge and doesn't change the input signal from the tape. +LIBSPECTRUM_TAPE_FLAGS_LENGTH_SHORT This edge is a "short" edge; used + for loader acceleration +LIBSPECTRUM_TAPE_FLAGS_LENGTH_LONG This edge is a "long" edge; again + used for loader acceleration int libspectrum_tape_present( libspectrum_tape *tape ) @@ -809,12 +813,27 @@ Set the current block on the tape to be the `n'th block and initialise it. Again, the first block on the tape is block 0. -libspectrum_error +void libspectrum_tape_append_block( libspectrum_tape *tape, libspectrum_tape_block *block ) Append `block' to `tape'. +void +libspectrum_tape_remove_block( libspectrum_tape *tape, + libspectrum_tape_iterator it ) + +Remove the block pointed to by `it' (see the "Tape iterators" section) +from the tape. + +libspectrum_error +libspectrum_tape_insert_block( libspectrum_tape *tape, + libspectrum_tape_block *block, + size_t position ) + +Insert `block' into `tape` in position `position', where position 0 +would make the new block the first block on the tape. + libspectrum_tape_block* libspectrum_tape_current_block( libspectrum_tape *tape ) @@ -832,50 +851,6 @@ Move the tape along so it points to the next block, initialise that block and return it. -Deprecated tape routines ------------------------- - -*These functions are deprecated and should not be used in new code*: - -libspectrum_error -libspectrum_tap_read( libspectrum_tape *tape, const libspectrum_byte *buffer, - const size_t length ) - -Form a tape object in `tape' from the .tap file of `length' bytes -starting at `buffer'. This routine deals with the `normal' (Z80-style) -.tap files, not with Warajevo .tap files. - -libspectrum_error -libspectrum_tap_write( libspectrum_byte **buffer, size_t *length, - libspectrum_tape *tape ) - -Attempt to convert the tape in `tape' to a .tap file in `*buffer', which -has previously been allocated `*length' bytes by user code. The .tap -format can handle only standard speed loading blocks; a best guess -attempt will be made to convert other blocks, but the resultant .tap -file probably won't work. - -libspectrum_error -libspectrum_tzx_read( libspectrum_tape *tape, const libspectrum_byte *buffer, - const size_t length ) - -Just as `libspectrum_tap_read', but for .tzx format files. - -libspectrum_error -libspectrum_tzx_write( libspectrum_byte **buffer, size_t *length, - libspectrum_tape *tape ) - -Just as `libspectrum_tap_write', but for .tzx files. The conversion to -.tzx format is not lossy as it is with converting to .tap. - -libspectrum_error -libspectrum_warajevo_read( libspectrum_tape *tape, - const libspectrum_byte *buffer, - const size_t length ) - -Just as `libspectrum_tap_read', but for Warajevo-style .tap files. -There is no currently no function to write a Warajevo-style .tap file. - Tape iterators -------------- @@ -946,9 +921,8 @@ The basic routines for dealing with tape blocks are: -libspectrum_error -libspectrum_tape_block_alloc( libspectrum_tape_block **block, - libspectrum_tape_type type ) +libspectrum_tape_block* +libspectrum_tape_block_alloc( libspectrum_tape_type type ) Allocate a new tape block of `type'. @@ -994,6 +968,11 @@ Returns 1 if the block consists solely of metadata (comments, etc.) or 0 if it contains real data. +libspectrum_dword +libspectrum_tape_block_length( libspectrum_tape_block *block ) + +Returns the length (in tstates) of this block + The `get' and `set' functions follow the same pattern as for the snapshot routines: the `get' functions are like @@ -1160,7 +1139,7 @@ All input recording routines are accessed through the opaque `libspectrum_rzx' structure. -libspectrum_error libspectrum_rzx_alloc( libspectrum_rzx **rzx ) +libspectrum_rzx* libspectrum_rzx_alloc( void ) Allocate a new input recording object. @@ -1169,7 +1148,7 @@ Free the memory used by an input recording object as allocated by `libspectrum_rzx_alloc'. -libspectrum_error +void libspectrum_rzx_start_input( libspectrum_rzx *rzx, libspectrum_dword tstates ) Start an input recording block int the object. @@ -1179,9 +1158,13 @@ Stop the current input recording block. libspectrum_error -libspectrum_rzx_add_snap( libspectrum_rzx *rzx, libspectrum_snap *snap ) +libspectrum_rzx_add_snap( libspectrum_rzx *rzx, libspectrum_snap *snap, + int automatic ) -Add `snap' to the input recording at this point. +Add `snap' to the input recording at this point. `automatic' can be used +to indicate whether this block was automatically added by the calling +program (non-zero) or explicitly requested by the user (zero) and then +fetched with libspectrum_rzx_iterator_snap_is_automatic() (see below). libspectrum_error libspectrum_rzx_rollback( libspectrum_rzx *rzx, libspectrum_snap **snap ) @@ -1298,6 +1281,13 @@ Get the snapshot pointed to by `it'. If `it' does not point to a snapshot, NULL is returned. +int +libspectrum_rzx_iterator_snap_is_automatic( libspectrum_rzx_iterator it ) + +Returns non-zero if `it' points to a snap which has its "automatic" flag +(see libspectrum_rzx_add_snap()) set to true, or false if it doesn't (or +if `it' doesn't point to a snapshot). + Input recording iterators ------------------------- @@ -1466,8 +1456,8 @@ Routines for handling images of microdrive cartridges. As usual, these are accessed through an opaque structure, libspectrum_microdrive. -libspectrum_error -libspectrum_microdrive_alloc( libspectrum_microdrive **microdrive ) +libspectrum_microdrive* +libspectrum_microdrive_alloc( void ) Allocate a microdrive structure. @@ -1516,7 +1506,7 @@ libspectrum_error libspectrum_microdrive_mdr_read( libspectrum_microdrive *microdrive, libspectrum_byte *buffer, size_t length ) -libspectrum_error +void libspectrum_microdrive_mdr_write( const libspectrum_microdrive *microdrive, libspectrum_byte **buffer, size_t *length ) @@ -1566,7 +1556,7 @@ The actual routines for handling dock files: -libspectrum_error libspectrum_dck_alloc( libspectrum_dck **dck ) +libspectrum_dck* libspectrum_dck_alloc( void ) Allocate a dock structure. @@ -1592,9 +1582,8 @@ images are not handled entirely in memory as are the other file types, but require a real file. -libspectrum_error -libspectrum_ide_alloc( libspectrum_ide_channel **chn, - libspectrum_ide_database databus ) +libspectrum_ide_channel* +libspectrum_ide_alloc( libspectrum_ide_databus databus ) Allocate a new IDE channel in `*chn' of type `databus'. `databus' can take the following values: @@ -1677,4 +1666,4 @@ Write `data' to register `reg' of the IDE channel `chn'. -$Id: libspectrum.txt 3608 2008-04-25 01:59:46Z fredm $ +$Id: libspectrum.txt 3793 2008-10-27 20:55:47Z pak21 $ Modified: vendor/fuse-emulator/current/libspectrum/hacking/ChangeLog =================================================================== --- vendor/fuse-emulator/current/libspectrum/hacking/ChangeLog 2008-10-28 13:18:28 UTC (rev 536) +++ vendor/fuse-emulator/current/libspectrum/hacking/ChangeLog 2008-11-03 11:44:43 UTC (rev 537) @@ -677,3 +677,18 @@ function to get block length. 20080928 internals.h,tape.c,tape_block.[ch],test/test.c: extend timing support to raw data blocks, RLE pulse blocks and the block o' doom (Fred). +20081020 tape_block.c: remove warning. +20081021 sna.c,test/{empty.z80,test.c}: SP wasn't being decremented and + could have been written to freed memory. +20081021 libspectrum.h.in,sna.c,tap.c,tzx_read.c,tzx_write.c,warajevo_read.c, + z80.c: remove deprecated functions libspectrum_sna_read(... [truncated message content] |
From: <fr...@us...> - 2008-10-28 14:22:20
|
Revision: 536 http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=536&view=rev Author: fredm Date: 2008-10-28 13:18:28 +0000 (Tue, 28 Oct 2008) Log Message: ----------- Don't deallocate memory and similar arrays 'till we've had a chance to use them when writing settings back to the prefs database. Modified Paths: -------------- trunk/fuse/fuse.c Modified: trunk/fuse/fuse.c =================================================================== --- trunk/fuse/fuse.c 2008-10-28 11:37:49 UTC (rev 535) +++ trunk/fuse/fuse.c 2008-10-28 13:18:28 UTC (rev 536) @@ -741,6 +741,10 @@ 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(); + psg_end(); rzx_end(); debugger_end(); @@ -764,8 +768,6 @@ widget_end(); #endif /* #ifdef USE_WIDGET */ - settings_end(); - libspectrum_creator_free( fuse_creator ); return 0; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2008-10-28 13:39:45
|
Revision: 535 http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=535&view=rev Author: fredm Date: 2008-10-28 11:37:49 +0000 (Tue, 28 Oct 2008) Log Message: ----------- Log filename that causes an error. Modified Paths: -------------- trunk/FuseImporter/LibspectrumMetadataImporter.m Modified: trunk/FuseImporter/LibspectrumMetadataImporter.m =================================================================== --- trunk/FuseImporter/LibspectrumMetadataImporter.m 2008-10-21 12:05:43 UTC (rev 534) +++ trunk/FuseImporter/LibspectrumMetadataImporter.m 2008-10-28 11:37:49 UTC (rev 535) @@ -162,7 +162,7 @@ vsnprintf( err_msg, 256, format, ap ); - NSLog(@"LibspectrumMetadataImporter: error `%s': %s\n", err_msg ); + NSLog(@"LibspectrumMetadataImporter: error `%s': %s\n", fsrep, err_msg ); return LIBSPECTRUM_ERROR_NONE; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2008-10-21 12:05:59
|
Revision: 534 http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=534&view=rev Author: fredm Date: 2008-10-21 12:05:43 +0000 (Tue, 21 Oct 2008) Log Message: ----------- Merge up to vendor revision 3775. Revision Links: -------------- http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=3775&view=rev Modified Paths: -------------- trunk/FuseGenerator/FuseGenerator.xcodeproj/project.pbxproj trunk/FuseGenerator/LibspectrumSCRExtractor.m trunk/FuseGenerator/generate.pl trunk/FuseGenerator/libspectrum.h trunk/FuseImporter/FuseImporter.xcodeproj/project.pbxproj trunk/FuseImporter/LibspectrumMetadataImporter.m trunk/FuseImporter/generate.pl trunk/FuseImporter/libspectrum.h trunk/fuse/Makefile.am trunk/fuse/README trunk/fuse/compat/amiga/Makefile.am trunk/fuse/compat/morphos/Makefile.am trunk/fuse/compat/unix/Makefile.am trunk/fuse/compat/unix/osname.c trunk/fuse/compat/win32/Makefile.am trunk/fuse/compat.h trunk/fuse/configure.in trunk/fuse/dck.c 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/expression.c trunk/fuse/disk/beta.c trunk/fuse/disk/beta.h trunk/fuse/disk/disk.c trunk/fuse/disk/fdd.c trunk/fuse/disk/fdd.h trunk/fuse/disk/plusd.c trunk/fuse/disk/plusd.h trunk/fuse/disk/upd_fdc.c trunk/fuse/disk/upd_fdc.h trunk/fuse/disk/wd_fdc.c trunk/fuse/disk/wd_fdc.h trunk/fuse/divide.c 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/controllers/DebuggerController.m trunk/fuse/fusepb/models/Emulator.m trunk/fuse/hacking/ChangeLog trunk/fuse/if1.c trunk/fuse/input.c trunk/fuse/input.h trunk/fuse/keysyms.pl trunk/fuse/loader.c trunk/fuse/machine.c trunk/fuse/machines/specplus3.h trunk/fuse/memory.c trunk/fuse/menu.c trunk/fuse/menu.h trunk/fuse/menu_data.dat trunk/fuse/menu_data.pl trunk/fuse/periph.c trunk/fuse/periph.h trunk/fuse/profile.c trunk/fuse/rzx.c trunk/fuse/rzx.h trunk/fuse/screenshot.c trunk/fuse/settings.dat trunk/fuse/simpleide.c trunk/fuse/snapshot.c trunk/fuse/sound/alsasound.c trunk/fuse/sound/dxsound.c trunk/fuse/sound/win32sound.c 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/cocoa/cocoajoystick.c trunk/fuse/ui/fb/fbdisplay.c trunk/fuse/ui/gtk/debugger.c trunk/fuse/ui/gtk/gtkjoystick.c trunk/fuse/ui/gtk/gtkkeyboard.c trunk/fuse/ui/gtk/gtkui.c trunk/fuse/ui/options.dat trunk/fuse/ui/scaler/scalers.c trunk/fuse/ui/sdl/sdldisplay.c trunk/fuse/ui/sdl/sdljoystick.c trunk/fuse/ui/svga/svgadisplay.c trunk/fuse/ui/svga/svgajoystick.c trunk/fuse/ui/uidisplay.h trunk/fuse/ui/uijoystick.c trunk/fuse/ui/widget/Makefile.am trunk/fuse/ui/widget/browse.c trunk/fuse/ui/widget/debugger.c trunk/fuse/ui/widget/error.c trunk/fuse/ui/widget/filesel.c trunk/fuse/ui/widget/memory.c trunk/fuse/ui/widget/menu.c trunk/fuse/ui/widget/options.pl trunk/fuse/ui/widget/picture.c trunk/fuse/ui/widget/pokefinder.c trunk/fuse/ui/widget/query.c trunk/fuse/ui/widget/roms.c trunk/fuse/ui/widget/select.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/win32/Makefile.am trunk/fuse/ui/win32/binary.c trunk/fuse/ui/win32/binary.rc trunk/fuse/ui/win32/browse.c trunk/fuse/ui/win32/browse.h trunk/fuse/ui/win32/browse.rc trunk/fuse/ui/win32/debugger.c trunk/fuse/ui/win32/debugger.h trunk/fuse/ui/win32/debugger.rc trunk/fuse/ui/win32/memorybrowser.c trunk/fuse/ui/win32/memorybrowser.h trunk/fuse/ui/win32/memorybrowser.rc trunk/fuse/ui/win32/options-header.pl trunk/fuse/ui/win32/options-resource.pl trunk/fuse/ui/win32/options.pl trunk/fuse/ui/win32/picture.c trunk/fuse/ui/win32/picture.h trunk/fuse/ui/win32/picture.rc trunk/fuse/ui/win32/pokefinder.c trunk/fuse/ui/win32/pokefinder.h trunk/fuse/ui/win32/pokefinder.rc trunk/fuse/ui/win32/rollback.c trunk/fuse/ui/win32/rollback.rc trunk/fuse/ui/win32/roms.c trunk/fuse/ui/win32/roms.rc trunk/fuse/ui/win32/select_template.rc trunk/fuse/ui/win32/statusbar.c trunk/fuse/ui/win32/win32display.c trunk/fuse/ui/win32/win32internals.h trunk/fuse/ui/win32/win32joystick.c trunk/fuse/ui/win32/win32joystick.rc trunk/fuse/ui/win32/win32keyboard.c trunk/fuse/ui/win32/win32ui.c trunk/fuse/ui/xlib/xdisplay.c trunk/fuse/ui/xlib/xui.c trunk/fuse/unittests/unittests.c trunk/fuse/utils.c trunk/fuse/z80/coretest.c trunk/fuse/z80/tests/tests.expected trunk/fuse/z80/tests/tests.in trunk/fuse/z80/z80.c trunk/fuse/z80/z80.h trunk/fuse/z80/z80.pl trunk/fuse/z80/z80_ops.c trunk/fuse/zxatasp.c trunk/fuse/zxcf.c trunk/libspectrum/generate.pl trunk/libspectrum/libspectrum/Makefile.am trunk/libspectrum/libspectrum/accessor.pl trunk/libspectrum/libspectrum/bzip2.c trunk/libspectrum/libspectrum/configure.in trunk/libspectrum/libspectrum/creator.c trunk/libspectrum/libspectrum/crypto.c trunk/libspectrum/libspectrum/csw.c trunk/libspectrum/libspectrum/dck.c trunk/libspectrum/libspectrum/hacking/ChangeLog trunk/libspectrum/libspectrum/ide.c trunk/libspectrum/libspectrum/internals.h trunk/libspectrum/libspectrum/libspectrum.c trunk/libspectrum/libspectrum/libspectrum.h.in trunk/libspectrum/libspectrum/make-perl.c trunk/libspectrum/libspectrum/microdrive.c trunk/libspectrum/libspectrum/myglib/Makefile.am trunk/libspectrum/libspectrum/myglib/ghash.c trunk/libspectrum/libspectrum/myglib/gslist.c trunk/libspectrum/libspectrum/plusd.c trunk/libspectrum/libspectrum/rzx.c trunk/libspectrum/libspectrum/sna.c trunk/libspectrum/libspectrum/snapshot.c trunk/libspectrum/libspectrum/sp.c trunk/libspectrum/libspectrum/szx.c trunk/libspectrum/libspectrum/tap.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/edges.c trunk/libspectrum/libspectrum/test/test.c trunk/libspectrum/libspectrum/test/test.h trunk/libspectrum/libspectrum/test/test15.c trunk/libspectrum/libspectrum/tzx_read.c trunk/libspectrum/libspectrum/tzx_write.c trunk/libspectrum/libspectrum/warajevo_read.c trunk/libspectrum/libspectrum/wav.c trunk/libspectrum/libspectrum/z80.c trunk/libspectrum/libspectrum/z80em.c trunk/libspectrum/libspectrum/zlib.c trunk/libspectrum/libspectrum/zxs.c trunk/libspectrum/libspectrum.h trunk/libspectrum/libspectrum.xcodeproj/project.pbxproj Added Paths: ----------- trunk/fuse/PORTING trunk/fuse/compat/unix/file.c trunk/fuse/compat/wii/ trunk/fuse/compat/wii/Makefile.am trunk/fuse/compat/wii/file.c trunk/fuse/debugger/event.c trunk/fuse/debugger/variable.c trunk/fuse/mempool.c trunk/fuse/mempool.h trunk/fuse/ui/win32/confirm.c trunk/fuse/ui/win32/fileselector.c trunk/libspectrum/libspectrum/memory.c trunk/libspectrum/libspectrum/myglib/garray.c trunk/libspectrum/libspectrum/test/writeprotected.mdr Removed Paths: ------------- trunk/fuse/compat/wii/Makefile.am trunk/fuse/compat/wii/file.c trunk/fuse/ui/win32/error.c trunk/fuse/ui/win32/win32display.h trunk/fuse/ui/win32/win32keyboard.h Property Changed: ---------------- trunk/fuse/ trunk/libspectrum/libspectrum/ Modified: trunk/FuseGenerator/FuseGenerator.xcodeproj/project.pbxproj =================================================================== --- trunk/FuseGenerator/FuseGenerator.xcodeproj/project.pbxproj 2008-09-28 12:29:27 UTC (rev 533) +++ trunk/FuseGenerator/FuseGenerator.xcodeproj/project.pbxproj 2008-10-21 12:05:43 UTC (rev 534) @@ -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 */; }; + 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 */; }; B6D30AEC0D16280E0036CC54 /* creator.c in Sources */ = {isa = PBXBuildFile; fileRef = B6D30AE70D16280E0036CC54 /* creator.c */; }; B6D30AED0D16280E0036CC54 /* crypto.c in Sources */ = {isa = PBXBuildFile; fileRef = B6D30AE80D16280E0036CC54 /* crypto.c */; }; @@ -107,6 +109,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>"; }; + 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>"; }; B6D30AE50D1627ED0036CC54 /* bzip2.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bzip2.c; sourceTree = "<group>"; }; B6D30AE70D16280E0036CC54 /* creator.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = creator.c; sourceTree = "<group>"; }; @@ -251,6 +255,7 @@ B6D30AF20D1628470036CC54 /* internals.h */, B6D30AF30D1628470036CC54 /* libspectrum.c */, B6D30AE30D1627C90036CC54 /* libspectrum.h */, + B67F1E7A0E93A3AF00246616 /* memory.c */, B6D30AF70D16288A0036CC54 /* microdrive.c */, B6D30AF90D1628A10036CC54 /* plusd.c */, B6D30AFB0D1628DB0036CC54 /* rzx.c */, @@ -280,6 +285,7 @@ B6D30B230D1629DC0036CC54 /* myglib */ = { isa = PBXGroup; children = ( + B67F1E780E93A39800246616 /* garray.c */, B6D30B250D162A130036CC54 /* ghash.c */, B6D30B260D162A130036CC54 /* gslist.c */, ); @@ -431,6 +437,8 @@ B6D30B4C0D1653510036CC54 /* ColourMacros.c in Sources */, B6D30B510D1653730036CC54 /* JWSpectrumScreen.m in Sources */, B63944AB0D18B0430059DAA5 /* LibspectrumSCRExtractor.m in Sources */, + B67F1E790E93A39800246616 /* garray.c in Sources */, + B67F1E7B0E93A3AF00246616 /* memory.c in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; Modified: trunk/FuseGenerator/LibspectrumSCRExtractor.m =================================================================== --- trunk/FuseGenerator/LibspectrumSCRExtractor.m 2008-09-28 12:29:27 UTC (rev 533) +++ trunk/FuseGenerator/LibspectrumSCRExtractor.m 2008-10-21 12:05:43 UTC (rev 534) @@ -194,8 +194,7 @@ int seen_scr_header = 0; - error = libspectrum_tape_alloc( &tape ); - if( error != LIBSPECTRUM_ERROR_NONE ) { return; } + tape = libspectrum_tape_alloc(); error = libspectrum_tape_read( tape, buffer, length, LIBSPECTRUM_ID_UNKNOWN, [filename UTF8String] ); @@ -326,7 +325,7 @@ libspectrum_rzx *rzx; libspectrum_snap *snap; - error = libspectrum_rzx_alloc( &rzx ); if( error ) return; + rzx = libspectrum_rzx_alloc(); error = libspectrum_rzx_read( rzx, buffer, length ); if( error != LIBSPECTRUM_ERROR_NONE ) { return; } @@ -348,8 +347,7 @@ int error = 0; libspectrum_snap *snap; - error = libspectrum_snap_alloc( &snap ); - if( error != LIBSPECTRUM_ERROR_NONE ) { return; } + snap = libspectrum_snap_alloc(); error = libspectrum_snap_read( snap, buffer, length, type, [filename UTF8String] ); Modified: trunk/FuseGenerator/generate.pl =================================================================== --- trunk/FuseGenerator/generate.pl 2008-09-28 12:29:27 UTC (rev 533) +++ trunk/FuseGenerator/generate.pl 2008-10-21 12:05:43 UTC (rev 534) @@ -25,7 +25,9 @@ #define TRUE (!FALSE) #endif +typedef char gchar; typedef int gint; +typedef long glong; typedef gint gboolean; typedef unsigned int guint; typedef const void * gconstpointer; @@ -94,6 +96,9 @@ gint WIN32_DLL g_int_equal (gconstpointer v, gconstpointer v2); guint WIN32_DLL g_int_hash (gconstpointer v); +gint WIN32_DLL g_str_equal (gconstpointer v, + gconstpointer v2); +guint WIN32_DLL g_str_hash (gconstpointer v); GHashTable WIN32_DLL *g_hash_table_new (GHashFunc hash_func, GCompareFunc key_compare_func); @@ -113,6 +118,25 @@ guint WIN32_DLL g_hash_table_size (GHashTable *hash_table); +typedef struct _GArray GArray; + +struct _GArray { + /* Public */ + gchar *data; + size_t len; + + /* Private */ + guint element_size; + size_t allocated; +}; + +GArray* WIN32_DLL g_array_new( gboolean zero_terminated, gboolean clear, + guint element_size ); +#define g_array_append_val(a,v) g_array_append_vals( a, &(v), 1 ); +GArray* WIN32_DLL g_array_append_vals( GArray *array, gconstpointer data, guint len ); +#define g_array_index(a,t,i) (*(((t*)a->data)+i)) +GArray* WIN32_DLL g_array_set_size( GArray *array, guint length ); + #define GINT_TO_POINTER(i) ((gpointer) (i)) #define GPOINTER_TO_INT(p) ((gint) (p)) CODE Modified: trunk/FuseGenerator/libspectrum.h =================================================================== --- trunk/FuseGenerator/libspectrum.h 2008-09-28 12:29:27 UTC (rev 533) +++ trunk/FuseGenerator/libspectrum.h 2008-10-21 12:05:43 UTC (rev 534) @@ -1,7 +1,7 @@ /* libspectrum.h: the library for dealing with ZX Spectrum emulator files Copyright (c) 2001-2007 Philip Kendall, Darren Salt, Fredrick Meunier - $Id: libspectrum.h.in 3595 2008-04-01 10:51:58Z pak21 $ + $Id: libspectrum.h.in 3771 2008-09-11 11:23:17Z 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 @@ -84,7 +84,9 @@ #define TRUE (!FALSE) #endif +typedef char gchar; typedef int gint; +typedef long glong; typedef gint gboolean; typedef unsigned int guint; typedef const void * gconstpointer; @@ -153,6 +155,9 @@ gint WIN32_DLL g_int_equal (gconstpointer v, gconstpointer v2); guint WIN32_DLL g_int_hash (gconstpointer v); +gint WIN32_DLL g_str_equal (gconstpointer v, + gconstpointer v2); +guint WIN32_DLL g_str_hash (gconstpointer v); GHashTable WIN32_DLL *g_hash_table_new (GHashFunc hash_func, GCompareFunc key_compare_func); @@ -172,6 +177,25 @@ guint WIN32_DLL g_hash_table_size (GHashTable *hash_table); +typedef struct _GArray GArray; + +struct _GArray { + /* Public */ + gchar *data; + size_t len; + + /* Private */ + guint element_size; + size_t allocated; +}; + +GArray* WIN32_DLL g_array_new( gboolean zero_terminated, gboolean clear, + guint element_size ); +#define g_array_append_val(a,v) g_array_append_vals( a, &(v), 1 ); +GArray* WIN32_DLL g_array_append_vals( GArray *array, gconstpointer data, guint len ); +#define g_array_index(a,t,i) (*(((t*)a->data)+i)) +GArray* WIN32_DLL g_array_set_size( GArray *array, guint length ); + #define GINT_TO_POINTER(i) ((gpointer) (i)) #define GPOINTER_TO_INT(p) ((gint) (p)) @@ -225,6 +249,27 @@ libspectrum_default_error_function( libspectrum_error error, const char *format, va_list ap ); +/* Memory allocators */ + +typedef void* (*libspectrum_malloc_fn_t)( size_t size ); +typedef void* (*libspectrum_calloc_fn_t)( size_t nmemb, size_t size ); +typedef void* (*libspectrum_realloc_fn_t)( void *ptr, size_t size ); +typedef void (*libspectrum_free_fn_t)( void *ptr ); + +typedef struct libspectrum_mem_vtable_t { + libspectrum_malloc_fn_t malloc; + libspectrum_calloc_fn_t calloc; + libspectrum_realloc_fn_t realloc; + libspectrum_free_fn_t free; +} libspectrum_mem_vtable_t; + +void* WIN32_DLL libspectrum_malloc( size_t size ); +void* WIN32_DLL libspectrum_calloc( size_t nmemb, size_t size ); +void* WIN32_DLL libspectrum_realloc( void *ptr, size_t size ); +void WIN32_DLL libspectrum_free( void *ptr ); + +void WIN32_DLL libspectrum_mem_set_vtable( libspectrum_mem_vtable_t *table ); + /* Attempt to identify a given file */ /* Various types of file we might manage to identify */ @@ -445,9 +490,9 @@ typedef struct libspectrum_creator libspectrum_creator; +libspectrum_creator* WIN32_DLL +libspectrum_creator_alloc( void ); libspectrum_error WIN32_DLL -libspectrum_creator_alloc( libspectrum_creator **creator ); -libspectrum_error WIN32_DLL libspectrum_creator_free( libspectrum_creator *creator ); libspectrum_error WIN32_DLL @@ -490,7 +535,7 @@ typedef struct libspectrum_snap libspectrum_snap; -libspectrum_error WIN32_DLL libspectrum_snap_alloc( libspectrum_snap **snap ); +libspectrum_snap* WIN32_DLL libspectrum_snap_alloc( void ); libspectrum_error WIN32_DLL libspectrum_snap_free( libspectrum_snap *snap ); /* Read in a snapshot, optionally guessing what type it is */ @@ -605,7 +650,7 @@ void WIN32_DLL libspectrum_snap_set_interface1_drive_count( libspectrum_snap *snap, int interface1_drive_count ); int WIN32_DLL libspectrum_snap_interface1_custom_rom( libspectrum_snap *snap ); void WIN32_DLL libspectrum_snap_set_interface1_custom_rom( libspectrum_snap *snap, int interface1_custom_rom ); -libspectrum_byte WIN32_DLL * libspectrum_snap_interface1_rom( libspectrum_snap * snap, int idx ); +libspectrum_byte WIN32_DLL * libspectrum_snap_interface1_rom( libspectrum_snap *snap, int idx ); void WIN32_DLL libspectrum_snap_set_interface1_rom( libspectrum_snap *snap, int idx, libspectrum_byte* interface1_rom ); size_t WIN32_DLL libspectrum_snap_interface1_rom_length( libspectrum_snap *snap, int idx ); void WIN32_DLL libspectrum_snap_set_interface1_rom_length( libspectrum_snap *snap, int idx, size_t interface1_rom_length ); @@ -727,7 +772,7 @@ void WIN32_DLL libspectrum_snap_set_simpleide_active( libspectrum_snap *snap, int simpleide_active ); int WIN32_DLL libspectrum_snap_divide_active( libspectrum_snap *snap ); void WIN32_DLL libspectrum_snap_set_divide_active( libspectrum_snap *snap, int divide_active ); -int WIN32_DLL libspectrum_snap_divide_eprom_writeprotect( libspectrum_snap *snap); +int WIN32_DLL libspectrum_snap_divide_eprom_writeprotect( libspectrum_snap *snap ); void WIN32_DLL libspectrum_snap_set_divide_eprom_writeprotect( libspectrum_snap *snap, int divide_eprom_writeprotect ); int WIN32_DLL libspectrum_snap_divide_paged( libspectrum_snap *snap ); void WIN32_DLL libspectrum_snap_set_divide_paged( libspectrum_snap *snap, int divide_paged ); @@ -737,10 +782,9 @@ void WIN32_DLL libspectrum_snap_set_divide_pages( libspectrum_snap *snap, size_t divide_pages ); libspectrum_byte WIN32_DLL * libspectrum_snap_divide_eprom( libspectrum_snap *snap, int idx ); void WIN32_DLL libspectrum_snap_set_divide_eprom( libspectrum_snap *snap, int idx, libspectrum_byte* divide_eprom ); -libspectrum_byte WIN32_DLL * libspectrum_snap_divide_ram( libspectrum_snap *snap , int idx ); +libspectrum_byte WIN32_DLL * libspectrum_snap_divide_ram( libspectrum_snap *snap, int idx ); void WIN32_DLL libspectrum_snap_set_divide_ram( libspectrum_snap *snap, int idx, libspectrum_byte* divide_ram ); - /* DEPRECATED: use libspectrum_snap_read() instead */ DEPRECATED libspectrum_error WIN32_DLL @@ -835,10 +879,9 @@ } libspectrum_tape_state_type; /* Routines to manipulate tape blocks */ +libspectrum_tape_block* WIN32_DLL +libspectrum_tape_block_alloc( libspectrum_tape_type type ); libspectrum_error WIN32_DLL -libspectrum_tape_block_alloc( libspectrum_tape_block **block, - libspectrum_tape_type type ); -libspectrum_error WIN32_DLL libspectrum_tape_block_free( libspectrum_tape_block *block ); libspectrum_tape_type WIN32_DLL libspectrum_tape_block_type( libspectrum_tape_block *block ); @@ -857,6 +900,9 @@ int WIN32_DLL libspectrum_tape_block_metadata( libspectrum_tape_block *block ); +libspectrum_dword +libspectrum_tape_block_length( libspectrum_tape_block *block ); + /* Accessor functions */ libspectrum_dword WIN32_DLL libspectrum_tape_block_bit_length( libspectrum_tape_block *block ); libspectrum_error WIN32_DLL libspectrum_tape_block_set_bit_length( libspectrum_tape_block *block, libspectrum_dword bit_length ); @@ -916,7 +962,7 @@ /* A linked list of tape blocks */ typedef struct libspectrum_tape libspectrum_tape; -libspectrum_error WIN32_DLL libspectrum_tape_alloc( libspectrum_tape **tape ); +libspectrum_tape* WIN32_DLL libspectrum_tape_alloc( void ); libspectrum_error WIN32_DLL libspectrum_tape_clear( libspectrum_tape *tape ); libspectrum_error WIN32_DLL libspectrum_tape_free( libspectrum_tape *tape ); @@ -969,15 +1015,15 @@ libspectrum_tape_nth_block( libspectrum_tape *tape, int n ); /* Append a block to the current tape */ -libspectrum_error WIN32_DLL +void WIN32_DLL libspectrum_tape_append_block( libspectrum_tape *tape, libspectrum_tape_block *block ); -libspectrum_error +void WIN32_DLL libspectrum_tape_remove_block( libspectrum_tape *tape, libspectrum_tape_iterator it ); -libspectrum_error +libspectrum_error WIN32_DLL libspectrum_tape_insert_block( libspectrum_tape *tape, libspectrum_tape_block *block, size_t position ); @@ -1059,10 +1105,10 @@ typedef struct libspectrum_rzx libspectrum_rzx; -libspectrum_error WIN32_DLL libspectrum_rzx_alloc( libspectrum_rzx **rzx ); +libspectrum_rzx* WIN32_DLL libspectrum_rzx_alloc( void ); libspectrum_error WIN32_DLL libspectrum_rzx_free( libspectrum_rzx *rzx ); -libspectrum_error WIN32_DLL +void WIN32_DLL libspectrum_rzx_start_input( libspectrum_rzx *rzx, libspectrum_dword tstates ); libspectrum_error WIN32_DLL libspectrum_rzx_stop_input( libspectrum_rzx *rzx ); @@ -1125,8 +1171,6 @@ libspectrum_creator *creator, int compress, libspectrum_rzx_dsa_key *key ); -libspectrum_error WIN32_DLL libspectrum_rzx_alloc( libspectrum_rzx **rzx ); - /* Something to step through all the blocks in an input recording */ typedef struct _GSList *libspectrum_rzx_iterator; @@ -1181,9 +1225,9 @@ /* Constructor/destructor */ +libspectrum_microdrive* WIN32_DLL +libspectrum_microdrive_alloc( void ); libspectrum_error WIN32_DLL -libspectrum_microdrive_alloc( libspectrum_microdrive **microdrive ); -libspectrum_error WIN32_DLL libspectrum_microdrive_free( libspectrum_microdrive *microdrive ); /* Accessors */ @@ -1215,7 +1259,7 @@ libspectrum_error WIN32_DLL libspectrum_microdrive_mdr_read( libspectrum_microdrive *microdrive, libspectrum_byte *buffer, size_t length ); -libspectrum_error WIN32_DLL +void WIN32_DLL libspectrum_microdrive_mdr_write( const libspectrum_microdrive *microdrive, libspectrum_byte **buffer, size_t *length ); @@ -1251,7 +1295,7 @@ libspectrum_dck_block *dck[256]; /* dck block data */ } libspectrum_dck; -libspectrum_error WIN32_DLL libspectrum_dck_alloc( libspectrum_dck **dck ); +libspectrum_dck* WIN32_DLL libspectrum_dck_alloc( void ); libspectrum_error WIN32_DLL libspectrum_dck_free( libspectrum_dck *dck, int keep_pages ); @@ -1311,10 +1355,9 @@ typedef struct libspectrum_ide_channel libspectrum_ide_channel; +libspectrum_ide_channel* WIN32_DLL +libspectrum_ide_alloc( libspectrum_ide_databus databus ); libspectrum_error WIN32_DLL -libspectrum_ide_alloc( libspectrum_ide_channel **chn, - libspectrum_ide_databus databus ); -libspectrum_error WIN32_DLL libspectrum_ide_free( libspectrum_ide_channel *chn ); libspectrum_error WIN32_DLL Modified: trunk/FuseImporter/FuseImporter.xcodeproj/project.pbxproj =================================================================== --- trunk/FuseImporter/FuseImporter.xcodeproj/project.pbxproj 2008-09-28 12:29:27 UTC (rev 533) +++ trunk/FuseImporter/FuseImporter.xcodeproj/project.pbxproj 2008-10-21 12:05:43 UTC (rev 534) @@ -13,6 +13,8 @@ B60E533C082720EC00F2C004 /* GetMetadataForFile.m in Sources */ = {isa = PBXBuildFile; fileRef = B60E533B082720EC00F2C004 /* GetMetadataForFile.m */; }; B61617260C1CE2980009ADF9 /* csw.c in Sources */ = {isa = PBXBuildFile; fileRef = B61617250C1CE2980009ADF9 /* csw.c */; }; B616172A0C1CE2A50009ADF9 /* wav.c in Sources */ = {isa = PBXBuildFile; fileRef = B61617290C1CE2A50009ADF9 /* wav.c */; }; + B61E31AF0E925C66008097AC /* memory.c in Sources */ = {isa = PBXBuildFile; fileRef = B61E31AE0E925C66008097AC /* memory.c */; }; + B61E31B30E925C73008097AC /* garray.c in Sources */ = {isa = PBXBuildFile; fileRef = B61E31B20E925C73008097AC /* garray.c */; }; B62C1CD00B761515000BA4E0 /* symbol_table.c in Sources */ = {isa = PBXBuildFile; fileRef = B62C1CCF0B761515000BA4E0 /* symbol_table.c */; }; B639B7930A6BB2C100927E24 /* z80em.c in Sources */ = {isa = PBXBuildFile; fileRef = B639B7920A6BB2C100927E24 /* z80em.c */; }; B69709730827C03F00904D8F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B69709720827C03F00904D8F /* Foundation.framework */; }; @@ -114,6 +116,8 @@ B60E533B082720EC00F2C004 /* GetMetadataForFile.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GetMetadataForFile.m; sourceTree = "<group>"; }; B61617250C1CE2980009ADF9 /* csw.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = csw.c; path = ../../libspectrum/libspectrum/csw.c; sourceTree = "<group>"; }; B61617290C1CE2A50009ADF9 /* wav.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = wav.c; path = ../../libspectrum/libspectrum/wav.c; sourceTree = "<group>"; }; + B61E31AE0E925C66008097AC /* memory.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = memory.c; path = ../../libspectrum/libspectrum/memory.c; sourceTree = "<group>"; }; + B61E31B20E925C73008097AC /* garray.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = garray.c; path = ../../../libspectrum/libspectrum/myglib/garray.c; sourceTree = "<group>"; }; B62C1CCF0B761515000BA4E0 /* symbol_table.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = symbol_table.c; path = ../../libspectrum/libspectrum/symbol_table.c; sourceTree = "<group>"; }; B639B7920A6BB2C100927E24 /* z80em.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = z80em.c; path = ../../libspectrum/libspectrum/z80em.c; sourceTree = "<group>"; }; B6687E130A607F1D005D0FDE /* libspectrum.h.in */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; name = libspectrum.h.in; path = ../../libspectrum/libspectrum/libspectrum.h.in; sourceTree = "<group>"; }; @@ -242,6 +246,7 @@ B6BF2A040A5FFD0100D16624 /* internals.h */, B6BF2A050A5FFD0100D16624 /* libspectrum.c */, B6BF2A060A5FFD0100D16624 /* libspectrum.h */, + B61E31AE0E925C66008097AC /* memory.c */, B6BF2A070A5FFD0100D16624 /* microdrive.c */, B6BF2A080A5FFD0100D16624 /* plusd.c */, B6BF2A090A5FFD0100D16624 /* rzx.c */, @@ -271,6 +276,7 @@ B6BF29F10A5FFC9700D16624 /* myglib */ = { isa = PBXGroup; children = ( + B61E31B20E925C73008097AC /* garray.c */, B6BF29FC0A5FFCD700D16624 /* gslist.c */, B6BF29F80A5FFCC200D16624 /* ghash.c */, ); @@ -400,6 +406,8 @@ B62C1CD00B761515000BA4E0 /* symbol_table.c in Sources */, B61617260C1CE2980009ADF9 /* csw.c in Sources */, B616172A0C1CE2A50009ADF9 /* wav.c in Sources */, + B61E31AF0E925C66008097AC /* memory.c in Sources */, + B61E31B30E925C73008097AC /* garray.c in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; Modified: trunk/FuseImporter/LibspectrumMetadataImporter.m =================================================================== --- trunk/FuseImporter/LibspectrumMetadataImporter.m 2008-09-28 12:29:27 UTC (rev 533) +++ trunk/FuseImporter/LibspectrumMetadataImporter.m 2008-10-21 12:05:43 UTC (rev 534) @@ -177,35 +177,17 @@ libspectrum_tape *tape; libspectrum_tape_iterator iterator; libspectrum_tape_block *block; + libspectrum_dword tstates_total = 0; size_t i; - error = libspectrum_tape_alloc( &tape ); - if( error != LIBSPECTRUM_ERROR_NONE ) { - return NO; - } + tape = libspectrum_tape_alloc(); error = libspectrum_tape_read( tape, buffer, length, type, fsrep ); if( error != LIBSPECTRUM_ERROR_NONE ) { return NO; } - int flags = 0; - libspectrum_dword tstates_total = 0; - libspectrum_dword edge_tstates = 0; - - while( !(flags & LIBSPECTRUM_TAPE_FLAGS_STOP) ) { - error = libspectrum_tape_get_next_edge( &edge_tstates, &flags, tape ); - if( error != LIBSPECTRUM_ERROR_NONE ) return NO; - - tstates_total += edge_tstates; - } - - float duration = tstates_total/3500000.0; - - [attributes setObject:[NSNumber numberWithFloat:duration] - forKey:(NSString *)kMDItemDurationSeconds]; - [attributes setObject:[NSNumber numberWithInt:1] forKey:(NSString *)kMDItemAudioChannelCount]; @@ -385,10 +367,17 @@ break; } + tstates_total += libspectrum_tape_block_length( block ); + block = libspectrum_tape_iterator_next( &iterator ); } + float duration = tstates_total/3500000.0; + + [attributes setObject:[NSNumber numberWithFloat:duration] + forKey:(NSString *)kMDItemDurationSeconds]; + error = libspectrum_tape_free( tape ); if( error != LIBSPECTRUM_ERROR_NONE ) { munmap( buffer, length ); @@ -470,10 +459,7 @@ libspectrum_snap *snap; - error = libspectrum_snap_alloc( &snap ); - if( error != LIBSPECTRUM_ERROR_NONE ) { - return NO; - } + snap = libspectrum_snap_alloc(); error = libspectrum_snap_read( snap, buffer, length, type, fsrep ); if( error ) { @@ -501,10 +487,7 @@ libspectrum_rzx *rzx; libspectrum_snap *snap = NULL; - error = libspectrum_rzx_alloc( &rzx ); - if( error != LIBSPECTRUM_ERROR_NONE ) { - return NO; - } + rzx = libspectrum_rzx_alloc(); error = libspectrum_rzx_read( rzx, buffer, length ); if( error ) { Modified: trunk/FuseImporter/generate.pl =================================================================== --- trunk/FuseImporter/generate.pl 2008-09-28 12:29:27 UTC (rev 533) +++ trunk/FuseImporter/generate.pl 2008-10-21 12:05:43 UTC (rev 534) @@ -25,7 +25,9 @@ #define TRUE (!FALSE) #endif +typedef char gchar; typedef int gint; +typedef long glong; typedef gint gboolean; typedef unsigned int guint; typedef const void * gconstpointer; @@ -94,6 +96,9 @@ gint WIN32_DLL g_int_equal (gconstpointer v, gconstpointer v2); guint WIN32_DLL g_int_hash (gconstpointer v); +gint WIN32_DLL g_str_equal (gconstpointer v, + gconstpointer v2); +guint WIN32_DLL g_str_hash (gconstpointer v); GHashTable WIN32_DLL *g_hash_table_new (GHashFunc hash_func, GCompareFunc key_compare_func); @@ -113,6 +118,25 @@ guint WIN32_DLL g_hash_table_size (GHashTable *hash_table); +typedef struct _GArray GArray; + +struct _GArray { + /* Public */ + gchar *data; + size_t len; + + /* Private */ + guint element_size; + size_t allocated; +}; + +GArray* WIN32_DLL g_array_new( gboolean zero_terminated, gboolean clear, + guint element_size ); +#define g_array_append_val(a,v) g_array_append_vals( a, &(v), 1 ); +GArray* WIN32_DLL g_array_append_vals( GArray *array, gconstpointer data, guint len ); +#define g_array_index(a,t,i) (*(((t*)a->data)+i)) +GArray* WIN32_DLL g_array_set_size( GArray *array, guint length ); + #define GINT_TO_POINTER(i) ((gpointer) (i)) #define GPOINTER_TO_INT(p) ((gint) (p)) CODE Modified: trunk/FuseImporter/libspectrum.h =================================================================== --- trunk/FuseImporter/libspectrum.h 2008-09-28 12:29:27 UTC (rev 533) +++ trunk/FuseImporter/libspectrum.h 2008-10-21 12:05:43 UTC (rev 534) @@ -1,7 +1,7 @@ /* libspectrum.h: the library for dealing with ZX Spectrum emulator files Copyright (c) 2001-2007 Philip Kendall, Darren Salt, Fredrick Meunier - $Id: libspectrum.h.in 3595 2008-04-01 10:51:58Z pak21 $ + $Id: libspectrum.h.in 3771 2008-09-11 11:23:17Z 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 @@ -84,7 +84,9 @@ #define TRUE (!FALSE) #endif +typedef char gchar; typedef int gint; +typedef long glong; typedef gint gboolean; typedef unsigned int guint; typedef const void * gconstpointer; @@ -153,6 +155,9 @@ gint WIN32_DLL g_int_equal (gconstpointer v, gconstpointer v2); guint WIN32_DLL g_int_hash (gconstpointer v); +gint WIN32_DLL g_str_equal (gconstpointer v, + gconstpointer v2); +guint WIN32_DLL g_str_hash (gconstpointer v); GHashTable WIN32_DLL *g_hash_table_new (GHashFunc hash_func, GCompareFunc key_compare_func); @@ -172,6 +177,25 @@ guint WIN32_DLL g_hash_table_size (GHashTable *hash_table); +typedef struct _GArray GArray; + +struct _GArray { + /* Public */ + gchar *data; + size_t len; + + /* Private */ + guint element_size; + size_t allocated; +}; + +GArray* WIN32_DLL g_array_new( gboolean zero_terminated, gboolean clear, + guint element_size ); +#define g_array_append_val(a,v) g_array_append_vals( a, &(v), 1 ); +GArray* WIN32_DLL g_array_append_vals( GArray *array, gconstpointer data, guint len ); +#define g_array_index(a,t,i) (*(((t*)a->data)+i)) +GArray* WIN32_DLL g_array_set_size( GArray *array, guint length ); + #define GINT_TO_POINTER(i) ((gpointer) (i)) #define GPOINTER_TO_INT(p) ((gint) (p)) @@ -225,6 +249,27 @@ libspectrum_default_error_function( libspectrum_error error, const char *format, va_list ap ); +/* Memory allocators */ + +typedef void* (*libspectrum_malloc_fn_t)( size_t size ); +typedef void* (*libspectrum_calloc_fn_t)( size_t nmemb, size_t size ); +typedef void* (*libspectrum_realloc_fn_t)( void *ptr, size_t size ); +typedef void (*libspectrum_free_fn_t)( void *ptr ); + +typedef struct libspectrum_mem_vtable_t { + libspectrum_malloc_fn_t malloc; + libspectrum_calloc_fn_t calloc; + libspectrum_realloc_fn_t realloc; + libspectrum_free_fn_t free; +} libspectrum_mem_vtable_t; + +void* WIN32_DLL libspectrum_malloc( size_t size ); +void* WIN32_DLL libspectrum_calloc( size_t nmemb, size_t size ); +void* WIN32_DLL libspectrum_realloc( void *ptr, size_t size ); +void WIN32_DLL libspectrum_free( void *ptr ); + +void WIN32_DLL libspectrum_mem_set_vtable( libspectrum_mem_vtable_t *table ); + /* Attempt to identify a given file */ /* Various types of file we might manage to identify */ @@ -445,9 +490,9 @@ typedef struct libspectrum_creator libspectrum_creator; +libspectrum_creator* WIN32_DLL +libspectrum_creator_alloc( void ); libspectrum_error WIN32_DLL -libspectrum_creator_alloc( libspectrum_creator **creator ); -libspectrum_error WIN32_DLL libspectrum_creator_free( libspectrum_creator *creator ); libspectrum_error WIN32_DLL @@ -490,7 +535,7 @@ typedef struct libspectrum_snap libspectrum_snap; -libspectrum_error WIN32_DLL libspectrum_snap_alloc( libspectrum_snap **snap ); +libspectrum_snap* WIN32_DLL libspectrum_snap_alloc( void ); libspectrum_error WIN32_DLL libspectrum_snap_free( libspectrum_snap *snap ); /* Read in a snapshot, optionally guessing what type it is */ @@ -605,7 +650,7 @@ void WIN32_DLL libspectrum_snap_set_interface1_drive_count( libspectrum_snap *snap, int interface1_drive_count ); int WIN32_DLL libspectrum_snap_interface1_custom_rom( libspectrum_snap *snap ); void WIN32_DLL libspectrum_snap_set_interface1_custom_rom( libspectrum_snap *snap, int interface1_custom_rom ); -libspectrum_byte WIN32_DLL * libspectrum_snap_interface1_rom( libspectrum_snap * snap, int idx ); +libspectrum_byte WIN32_DLL * libspectrum_snap_interface1_rom( libspectrum_snap *snap, int idx ); void WIN32_DLL libspectrum_snap_set_interface1_rom( libspectrum_snap *snap, int idx, libspectrum_byte* interface1_rom ); size_t WIN32_DLL libspectrum_snap_interface1_rom_length( libspectrum_snap *snap, int idx ); void WIN32_DLL libspectrum_snap_set_interface1_rom_length( libspectrum_snap *snap, int idx, size_t interface1_rom_length ); @@ -727,7 +772,7 @@ void WIN32_DLL libspectrum_snap_set_simpleide_active( libspectrum_snap *snap, int simpleide_active ); int WIN32_DLL libspectrum_snap_divide_active( libspectrum_snap *snap ); void WIN32_DLL libspectrum_snap_set_divide_active( libspectrum_snap *snap, int divide_active ); -int WIN32_DLL libspectrum_snap_divide_eprom_writeprotect( libspectrum_snap *snap); +int WIN32_DLL libspectrum_snap_divide_eprom_writeprotect( libspectrum_snap *snap ); void WIN32_DLL libspectrum_snap_set_divide_eprom_writeprotect( libspectrum_snap *snap, int divide_eprom_writeprotect ); int WIN32_DLL libspectrum_snap_divide_paged( libspectrum_snap *snap ); void WIN32_DLL libspectrum_snap_set_divide_paged( libspectrum_snap *snap, int divide_paged ); @@ -737,10 +782,9 @@ void WIN32_DLL libspectrum_snap_set_divide_pages( libspectrum_snap *snap, size_t divide_pages ); libspectrum_byte WIN32_DLL * libspectrum_snap_divide_eprom( libspectrum_snap *snap, int idx ); void WIN32_DLL libspectrum_snap_set_divide_eprom( libspectrum_snap *snap, int idx, libspectrum_byte* divide_eprom ); -libspectrum_byte WIN32_DLL * libspectrum_snap_divide_ram( libspectrum_snap *snap , int idx ); +libspectrum_byte WIN32_DLL * libspectrum_snap_divide_ram( libspectrum_snap *snap, int idx ); void WIN32_DLL libspectrum_snap_set_divide_ram( libspectrum_snap *snap, int idx, libspectrum_byte* divide_ram ); - /* DEPRECATED: use libspectrum_snap_read() instead */ DEPRECATED libspectrum_error WIN32_DLL @@ -835,10 +879,9 @@ } libspectrum_tape_state_type; /* Routines to manipulate tape blocks */ +libspectrum_tape_block* WIN32_DLL +libspectrum_tape_block_alloc( libspectrum_tape_type type ); libspectrum_error WIN32_DLL -libspectrum_tape_block_alloc( libspectrum_tape_block **block, - libspectrum_tape_type type ); -libspectrum_error WIN32_DLL libspectrum_tape_block_free( libspectrum_tape_block *block ); libspectrum_tape_type WIN32_DLL libspectrum_tape_block_type( libspectrum_tape_block *block ); @@ -857,6 +900,9 @@ int WIN32_DLL libspectrum_tape_block_metadata( libspectrum_tape_block *block ); +libspectrum_dword +libspectrum_tape_block_length( libspectrum_tape_block *block ); + /* Accessor functions */ libspectrum_dword WIN32_DLL libspectrum_tape_block_bit_length( libspectrum_tape_block *block ); libspectrum_error WIN32_DLL libspectrum_tape_block_set_bit_length( libspectrum_tape_block *block, libspectrum_dword bit_length ); @@ -916,7 +962,7 @@ /* A linked list of tape blocks */ typedef struct libspectrum_tape libspectrum_tape; -libspectrum_error WIN32_DLL libspectrum_tape_alloc( libspectrum_tape **tape ); +libspectrum_tape* WIN32_DLL libspectrum_tape_alloc( void ); libspectrum_error WIN32_DLL libspectrum_tape_clear( libspectrum_tape *tape ); libspectrum_error WIN32_DLL libspectrum_tape_free( libspectrum_tape *tape ); @@ -969,15 +1015,15 @@ libspectrum_tape_nth_block( libspectrum_tape *tape, int n ); /* Append a block to the current tape */ -libspectrum_error WIN32_DLL +void WIN32_DLL libspectrum_tape_append_block( libspectrum_tape *tape, libspectrum_tape_block *block ); -libspectrum_error +void WIN32_DLL libspectrum_tape_remove_block( libspectrum_tape *tape, libspectrum_tape_iterator it ); -libspectrum_error +libspectrum_error WIN32_DLL libspectrum_tape_insert_block( libspectrum_tape *tape, libspectrum_tape_block *block, size_t position ); @@ -1059,10 +1105,10 @@ typedef struct libspectrum_rzx libspectrum_rzx; -libspectrum_error WIN32_DLL libspectrum_rzx_alloc( libspectrum_rzx **rzx ); +libspectrum_rzx* WIN32_DLL libspectrum_rzx_alloc( void ); libspectrum_error WIN32_DLL libspectrum_rzx_free( libspectrum_rzx *rzx ); -libspectrum_error WIN32_DLL +void WIN32_DLL libspectrum_rzx_start_input( libspectrum_rzx *rzx, libspectrum_dword tstates ); libspectrum_error WIN32_DLL libspectrum_rzx_stop_input( libspectrum_rzx *rzx ); @@ -1125,8 +1171,6 @@ libspectrum_creator *creator, int compress, libspectrum_rzx_dsa_key *key ); -libspectrum_error WIN32_DLL libspectrum_rzx_alloc( libspectrum_rzx **rzx ); - /* Something to step through all the blocks in an input recording */ typedef struct _GSList *libspectrum_rzx_iterator; @@ -1181,9 +1225,9 @@ /* Constructor/destructor */ +libspectrum_microdrive* WIN32_DLL +libspectrum_microdrive_alloc( void ); libspectrum_error WIN32_DLL -libspectrum_microdrive_alloc( libspectrum_microdrive **microdrive ); -libspectrum_error WIN32_DLL libspectrum_microdrive_free( libspectrum_microdrive *microdrive ); /* Accessors */ @@ -1215,7 +1259,7 @@ libspectrum_error WIN32_DLL libspectrum_microdrive_mdr_read( libspectrum_microdrive *microdrive, libspectrum_byte *buffer, size_t length ); -libspectrum_error WIN32_DLL +void WIN32_DLL libspectrum_microdrive_mdr_write( const libspectrum_microdrive *microdrive, libspectrum_byte **buffer, size_t *length ); @@ -1251,7 +1295,7 @@ libspectrum_dck_block *dck[256]; /* dck block data */ } libspectrum_dck; -libspectrum_error WIN32_DLL libspectrum_dck_alloc( libspectrum_dck **dck ); +libspectrum_dck* WIN32_DLL libspectrum_dck_alloc( void ); libspectrum_error WIN32_DLL libspectrum_dck_free( libspectrum_dck *dck, int keep_pages ); @@ -1311,10 +1355,9 @@ typedef struct libspectrum_ide_channel libspectrum_ide_channel; +libspectrum_ide_channel* WIN32_DLL +libspectrum_ide_alloc( libspectrum_ide_databus databus ); libspectrum_error WIN32_DLL -libspectrum_ide_alloc( libspectrum_ide_channel **chn, - libspectrum_ide_databus databus ); -libspectrum_error WIN32_DLL libspectrum_ide_free( libspectrum_ide_channel *chn ); libspectrum_error WIN32_DLL Property changes on: trunk/fuse ___________________________________________________________________ Added: svn:mergeinfo + /vendor/fuse-emulator/current/fuse:530-533 Modified: trunk/fuse/Makefile.am =================================================================== --- trunk/fuse/Makefile.am 2008-09-28 12:29:27 UTC (rev 533) +++ trunk/fuse/Makefile.am 2008-10-21 12:05:43 UTC (rev 534) @@ -1,7 +1,7 @@ # Process this file with automake to produce Makefile.in ## Copyright (c) 1999-2008 Philip Kendall -## $Id: Makefile.am 3609 2008-05-01 13:17:56Z fredm $ +## $Id: Makefile.am 3617 2008-05-17 08:09:47Z 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 @@ -72,6 +72,7 @@ loader.c \ machine.c \ memory.c \ + mempool.c \ menu.c \ module.c \ periph.c \ Copied: trunk/fuse/PORTING (from rev 533, vendor/fuse-emulator/current/fuse/PORTING) =================================================================== --- trunk/fuse/PORTING (rev 0) +++ trunk/fuse/PORTING 2008-10-21 12:05:43 UTC (rev 534) @@ -0,0 +1,22 @@ +Porting Fuse +============ + +Sorry, at the moment this isn't a helpful guide as to what you need to do +to port Fuse to a new platform. + +Unfortunately, various people have failed to read and understand the GNU +General Public License (see 'COPYING') before porting Fuse, so this is a +very brief guide to what you can and can't do with Fuse's code: + +* If you release a binary of Fuse, you *must* release *all* the source + code you used to create it at the same time. "Soon" or "when I've + tidied up the code" is NOT acceptable. + +* If you use any code which you haven't written yourself, it must be + available under a licence compatible with the GPL. As an example, this + means you may *not* use any code which "may not be used for commercial + purposes". Any code which is licenced under the GPL (v2), the modified + BSD license or which is truly in the public domain is OK. + +Note that above is not an exhaustive list of what you can and cannot +do with Fuse's code. For the full details, see the GPL. Modified: trunk/fuse/README =================================================================== --- trunk/fuse/README 2008-09-28 12:29:27 UTC (rev 533) +++ trunk/fuse/README 2008-10-21 12:05:43 UTC (rev 534) @@ -26,6 +26,14 @@ * Emulation of the DivIDE, Interface I, Kempston mouse, Spectrum +3e, ZXATASP, ZXCF, Beta 128 and +D interfaces. +Help! <xyz> doesn't work +------------------------ + +If you're having a problem using/running/building Fuse, the two places +you're most likely to get help are the development mailing list +<fus...@li...> or the official forums at +<http://sourceforge.net/forum/?group_id=91293>. + What you'll need to run Fuse ---------------------------- @@ -143,4 +151,4 @@ Philip Kendall <phi...@sh...> 5 January 2008 -$Id: README 3584 2008-03-25 10:27:30Z fredm $ +$Id: README 3718 2008-07-19 12:29:41Z pak21 $ Modified: trunk/fuse/compat/amiga/Makefile.am =================================================================== --- trunk/fuse/compat/amiga/Makefile.am 2008-09-28 12:29:27 UTC (rev 533) +++ trunk/fuse/compat/amiga/Makefile.am 2008-10-21 12:05:43 UTC (rev 534) @@ -1,7 +1,7 @@ ## Process this file with automake to produce Makefile.in -## Copyright (c) 2007 Philip Kendall +## Copyright (c) 2007-2008 Philip Kendall -## $Id: Makefile.am 3578 2008-03-22 20:51:36Z zubzero $ +## $Id: Makefile.am 3687 2008-06-23 11:55:23Z 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 @@ -27,7 +27,8 @@ noinst_LIBRARIES = libcompatos.a -libcompatos_a_SOURCES = osname.c \ +libcompatos_a_SOURCES = ../unix/file.c \ + osname.c \ paths.c INCLUDES = @GLIB_CFLAGS@ @GTK_CFLAGS@ @LIBSPEC_CFLAGS@ Modified: trunk/fuse/compat/morphos/Makefile.am =================================================================== --- trunk/fuse/compat/morphos/Makefile.am 2008-09-28 12:29:27 UTC (rev 533) +++ trunk/fuse/compat/morphos/Makefile.am 2008-10-21 12:05:43 UTC (rev 534) @@ -1,7 +1,7 @@ ## Process this file with automake to produce Makefile.in -## Copyright (c) 2007 Philip Kendall +## Copyright (c) 2007-2008 Philip Kendall -## $Id: Makefile.am 3115 2007-08-19 02:49:14Z fredm $ +## $Id: Makefile.am 3687 2008-06-23 11:55:23Z 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 @@ -27,7 +27,8 @@ noinst_LIBRARIES = libcompatos.a -libcompatos_a_SOURCES = osname.c \ +libcompatos_a_SOURCES = ../unix/file.c \ + osname.c \ ../amiga/paths.c INCLUDES = @GLIB_CFLAGS@ @GTK_CFLAGS@ @LIBSPEC_CFLAGS@ Modified: trunk/fuse/compat/unix/Makefile.am =================================================================== --- trunk/fuse/compat/unix/Makefile.am 2008-09-28 12:29:27 UTC (rev 533) +++ trunk/fuse/compat/unix/Makefile.am 2008-10-21 12:05:43 UTC (rev 534) @@ -1,7 +1,7 @@ ## Process this file with automake to produce Makefile.in -## Copyright (c) 2007 Philip Kendall +## Copyright (c) 2007-2008 Philip Kendall -## $Id: Makefile.am 3115 2007-08-19 02:49:14Z fredm $ +## $Id: Makefile.am 3687 2008-06-23 11:55:23Z 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 @@ -27,7 +27,8 @@ noinst_LIBRARIES = libcompatos.a -libcompatos_a_SOURCES = osname.c \ +libcompatos_a_SOURCES = file.c \ + osname.c \ paths.c INCLUDES = @GLIB_CFLAGS@ @GTK_CFLAGS@ @LIBSPEC_CFLAGS@ Copied: trunk/fuse/compat/unix/file.c (from rev 533, vendor/fuse-emulator/current/fuse/compat/unix/file.c) =================================================================== --- trunk/fuse/compat/unix/file.c (rev 0) +++ trunk/fuse/compat/unix/file.c 2008-10-21 12:05:43 UTC (rev 534) @@ -0,0 +1,107 @@ +/* file.c: File-related compatibility routines + Copyright (c) 2008 Philip Kendall + + $Id: file.c 3722 2008-07-22 03:12:28Z specu $ + + 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 <errno.h> +#include <fcntl.h> +#include <string.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <unistd.h> + +#include "compat.h" +#include "ui/ui.h" + +/* Certain brain damaged operating systems (DOS/Windows) treat text + and binary files different in open(2) and need to be given the + O_BINARY flag to tell them it's a binary file */ +#ifndef O_BINARY +#define O_BINARY 0 +#endif /* #ifndef O_BINARY */ + +const compat_fd COMPAT_FILE_OPEN_FAILED = -1; + +compat_fd +compat_file_open( const char *path, int write ) +{ + int flags = write ? O_WRONLY | O_CREAT | O_BINARY : O_RDONLY | O_BINARY; + return open( path, flags ); +} + +off_t +compat_file_get_length( compat_fd fd ) +{ + struct stat file_info; + + if( fstat( fd, &file_info ) ) { + ui_error( UI_ERROR_ERROR, "couldn't stat file: %s", strerror( errno ) ); + return -1; + } + + return file_info.st_size; +} + +int +compat_file_read( compat_fd fd, utils_file *file ) +{ + ssize_t bytes = read( fd, file->buffer, file->length ); + if( bytes != file->length ) { + if( bytes == -1 ) { + ui_error( UI_ERROR_ERROR, "error reading file: %s", strerror( errno ) ); + } else { + ui_error( UI_ERROR_ERROR, + "error reading file: expected %ld bytes, but read only %ld", + (unsigned long)file->length, (unsigned long)bytes ); + } + return 1; + } + + return 0; +} + +int +compat_file_write( compat_fd fd, const unsigned char *buffer, size_t length ) +{ + ssize_t bytes = write( fd, buffer, length ); + if( bytes != length ) { + if( bytes == -1 ) { + ui_error( UI_ERROR_ERROR, "error writing file: %s", strerror( errno ) ); + } else { + ui_error( UI_ERROR_ERROR, + "error writing file: expected %ld bytes, but wrote only %ld", + (unsigned long)length, (unsigned long)bytes ); + } + return 1; + } + + return 0; +} + +int +compat_file_close( compat_fd fd ) +{ + return close( fd ); +} Modified: trunk/fuse/compat/unix/osname.c =================================================================== --- trunk/fuse/compat/unix/osname.c 2008-09-28 12:29:27 UTC (rev 533) +++ trunk/fuse/compat/unix/osname.c 2008-10-21 12:05:43 UTC (rev 534) @@ -1,7 +1,7 @@ /* osname.c: Get a representation of the OS we're running on Copyright (c) 1999-2007 Philip Kendall - $Id: osname.c 3115 2007-08-19 02:49:14Z fredm $ + $Id: osname.c 3626 2008-05-23 10:30:30Z 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 @@ -38,7 +38,7 @@ int error; error = uname( &osname ); - if( error ) { + if( error < 0 ) { ui_error( UI_ERROR_ERROR, "error getting system information: %s", strerror( errno ) ); return 1; Deleted: trunk/fuse/compat/wii/Makefile.am =================================================================== --- vendor/fuse-emulator/current/fuse/compat/wii/Makefile.am 2008-09-28 12:29:27 UTC (rev 533) +++ trunk/fuse/compat/wii/Makefile.am 2008-10-21 12:05:43 UTC (rev 534) @@ -1,34 +0,0 @@ -## Process this file with automake to produce Makefile.in -## Copyright (c) 2007-2008 Philip Kendall - -## $Id: Makefile.am 3687 2008-06-23 11:55:23Z pak21 $ - -## This program is free software; you can redistribute it and/or modify -## it under the terms of the GNU General Public License as published by -## the Free Software Foundation; either version 2 of the License, or -## (at your option) any later version. -## -## This program is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -## GNU General Public License for more details. -## -## You should have received a copy of the GNU General Public License along -## with this program; if not, write to the Free Software Foundation, Inc., -## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -## -## Author contact information: -## -## E-mail: phi...@sh... - -AUTOMAKE_OPTIONS = foreign - -AM_CPPFLAGS = -I$(srcdir)/../.. - -noinst_LIBRARIES = libcompatos.a - -libcompatos_a_SOURCES = file.c \ - osname.c \ - paths.c - -INCLUDES = @GLIB_CFLAGS@ @GTK_CFLAGS@ @LIBSPEC_CFLAGS@ Copied: trunk/fuse/compat/wii/Makefile.am (from rev 533, vendor/fuse-emulator/current/fuse/compat/wii/Makefile.am) =================================================================== --- trunk/fuse/compat/wii/Makefile.am (rev 0) +++ trunk/fuse/compat/wii/Makefile.am 2008-10-21 12:05:43 UTC (rev 534) @@ -0,0 +1,34 @@ +## Process this file with automake to produce Makefile.in +## Copyright (c) 2007-2008 Philip Kendall + +## $Id: Makefile.am 3687 2008-06-23 11:55:23Z pak21 $ + +## This program is free software; you can redistribute it and/or modify +## it under the terms of the GNU General Public License as published by +## the Free Software Foundation; either version 2 of the License, or +## (at your option) any later version. +## +## This program is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +## GNU General Public License for more details. +## +## You should have received a copy of the GNU General Public License along +## with this program; if not, write to the Free Software Foundation, Inc., +## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +## +## Author contact information: +## +## E-mail: phi...@sh... + +AUTOMAKE_OPTIONS = foreign + +AM_CPPFLAGS = -I$(srcdir)/../.. + +noinst_LIBRARIES = libcompatos.a + +libcompatos_a_SOURCES = file.c \ + osname.c \ + paths.c + +INCLUDES = @GLIB_CFLAGS@ @GTK_CFLAGS@ @LIBSPEC_CFLAGS@ Deleted: trunk/fuse/compat/wii/file.c =================================================================== --- vendor/fuse-emulator/current/fuse/compat/wii/file.c 2008-09-28 12:29:27 UTC (rev 533) +++ trunk/fuse/compat/wii/file.c 2008-10-21 12:05:43 UTC (rev 534) @@ -1,90 +0,0 @@ -/* file.c: File-related compatibility routines - Copyright (c) 2008 Philip Kendall - - $Id: file.c 3688 2008-06-23 18:17:56Z pak21 $ - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - - Author contact information: - - E-mail: phi...@sh... - -*/ - -#include <config.h> - -#include <errno.h> -#include <fcntl.h> -#include <sys/types.h> -#include <sys/stat.h> -#include <unistd.h> - -#include "compat.h" -#include "ui/ui.h" - -const compat_fd COMPAT_FILE_OPEN_FAILED = NULL; - -compat_fd -compat_file_open( const char *path, int write ) -{ - return fopen( path, write ? "w" : "r" ); -} - -off_t -compat_file_get_length( compat_fd fd ) -{ - struct stat file_info; - - if( fstat( fileno( fd ), &file_info ) ) { - ui_error( UI_ERROR_ERROR, "couldn't stat file: %s", strerror( errno ) ); - return -1; - } - - return file_info.st_size; -} - -int -compat_file_read( compat_fd fd, utils_file *file ) -{ - size_t bytes = fread( file->buffer, 1, file->length, fd ); - if( bytes != file->length ) { - ui_error( UI_ERROR_ERROR, - "error reading file: expected %d bytes, but read only %d", - file->length, bytes ); - return 1; - } - - return 0; -} - -int -compat_file_write( compat_fd fd, const unsigned char *buffer, size_t length ) -{ - size_t bytes = fwrite( buffer, 1, length, fd ); - if( bytes != length ) { - ui_error( UI_ERROR_ERROR, - "error writing file: expected %d bytes, but wrote only %d", - length, bytes ); - return 1; - } - - return 0; -} - -int -compat_file_close( compat_fd fd ) -{ - return fclose( fd ); -} Copied: trunk/fuse/compat/wii/file.c (from rev 533, vendor/fuse-emulator/current/fuse/compat/wii/file.c) =================================================================== --- trunk/fuse/compat/wii/file.c (rev 0) +++ trunk/fuse/compat/wii/file.c 2008-10-21 12:05:43 UTC (rev 534) @@ -0,0 +1,90 @@ +/* file.c: File-related compatibility routines + Copyright (c) 2008 Philip Kendall + + $Id: file.c 3688 2008-06-23 18:17:56Z pak21 $ + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTI... [truncated message content] |
From: <fr...@us...> - 2008-09-28 12:29:30
|
Revision: 533 http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=533&view=rev Author: fredm Date: 2008-09-28 12:29:27 +0000 (Sun, 28 Sep 2008) Log Message: ----------- Tag vendor/fuse-emulator/current as vendor/fuse-emulator/fuse-r3775. Added Paths: ----------- vendor/fuse-emulator/fuse-r3775/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2008-09-28 12:27:37
|
Revision: 532 http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=532&view=rev Author: fredm Date: 2008-09-28 12:26:43 +0000 (Sun, 28 Sep 2008) Log Message: ----------- Load . into vendor/fuse-emulator/current. Modified Paths: -------------- vendor/fuse-emulator/current/fuse/Makefile.am vendor/fuse-emulator/current/fuse/README vendor/fuse-emulator/current/fuse/compat/amiga/Makefile.am vendor/fuse-emulator/current/fuse/compat/morphos/Makefile.am vendor/fuse-emulator/current/fuse/compat/unix/Makefile.am vendor/fuse-emulator/current/fuse/compat/unix/osname.c vendor/fuse-emulator/current/fuse/compat/win32/Makefile.am vendor/fuse-emulator/current/fuse/compat.h vendor/fuse-emulator/current/fuse/configure.in vendor/fuse-emulator/current/fuse/dck.c vendor/fuse-emulator/current/fuse/debugger/Makefile.am vendor/fuse-emulator/current/fuse/debugger/breakpoint.c vendor/fuse-emulator/current/fuse/debugger/breakpoint.h 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/expression.c vendor/fuse-emulator/current/fuse/disk/beta.c vendor/fuse-emulator/current/fuse/disk/beta.h vendor/fuse-emulator/current/fuse/disk/disk.c vendor/fuse-emulator/current/fuse/disk/fdd.c vendor/fuse-emulator/current/fuse/disk/fdd.h vendor/fuse-emulator/current/fuse/disk/plusd.c vendor/fuse-emulator/current/fuse/disk/plusd.h vendor/fuse-emulator/current/fuse/disk/upd_fdc.c vendor/fuse-emulator/current/fuse/disk/upd_fdc.h vendor/fuse-emulator/current/fuse/disk/wd_fdc.c vendor/fuse-emulator/current/fuse/disk/wd_fdc.h vendor/fuse-emulator/current/fuse/divide.c 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/if1.c vendor/fuse-emulator/current/fuse/input.c vendor/fuse-emulator/current/fuse/input.h vendor/fuse-emulator/current/fuse/keysyms.pl vendor/fuse-emulator/current/fuse/loader.c vendor/fuse-emulator/current/fuse/machine.c vendor/fuse-emulator/current/fuse/machines/specplus3.h vendor/fuse-emulator/current/fuse/memory.c vendor/fuse-emulator/current/fuse/menu.c vendor/fuse-emulator/current/fuse/menu.h vendor/fuse-emulator/current/fuse/menu_data.dat vendor/fuse-emulator/current/fuse/menu_data.pl vendor/fuse-emulator/current/fuse/periph.c vendor/fuse-emulator/current/fuse/periph.h vendor/fuse-emulator/current/fuse/profile.c vendor/fuse-emulator/current/fuse/rzx.c vendor/fuse-emulator/current/fuse/rzx.h vendor/fuse-emulator/current/fuse/screenshot.c vendor/fuse-emulator/current/fuse/settings.dat vendor/fuse-emulator/current/fuse/simpleide.c vendor/fuse-emulator/current/fuse/snapshot.c vendor/fuse-emulator/current/fuse/sound/alsasound.c vendor/fuse-emulator/current/fuse/sound/dxsound.c vendor/fuse-emulator/current/fuse/sound/win32sound.c 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/fb/fbdisplay.c vendor/fuse-emulator/current/fuse/ui/gtk/debugger.c vendor/fuse-emulator/current/fuse/ui/gtk/gtkjoystick.c vendor/fuse-emulator/current/fuse/ui/gtk/gtkkeyboard.c vendor/fuse-emulator/current/fuse/ui/gtk/gtkui.c vendor/fuse-emulator/current/fuse/ui/options.dat vendor/fuse-emulator/current/fuse/ui/scaler/scalers.c vendor/fuse-emulator/current/fuse/ui/sdl/sdldisplay.c vendor/fuse-emulator/current/fuse/ui/sdl/sdljoystick.c vendor/fuse-emulator/current/fuse/ui/svga/svgadisplay.c vendor/fuse-emulator/current/fuse/ui/svga/svgajoystick.c vendor/fuse-emulator/current/fuse/ui/uidisplay.h vendor/fuse-emulator/current/fuse/ui/uijoystick.c vendor/fuse-emulator/current/fuse/ui/widget/Makefile.am vendor/fuse-emulator/current/fuse/ui/widget/browse.c vendor/fuse-emulator/current/fuse/ui/widget/debugger.c vendor/fuse-emulator/current/fuse/ui/widget/error.c vendor/fuse-emulator/current/fuse/ui/widget/filesel.c vendor/fuse-emulator/current/fuse/ui/widget/memory.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/picture.c vendor/fuse-emulator/current/fuse/ui/widget/pokefinder.c vendor/fuse-emulator/current/fuse/ui/widget/query.c vendor/fuse-emulator/current/fuse/ui/widget/roms.c vendor/fuse-emulator/current/fuse/ui/widget/select.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/win32/Makefile.am vendor/fuse-emulator/current/fuse/ui/win32/binary.c vendor/fuse-emulator/current/fuse/ui/win32/binary.rc vendor/fuse-emulator/current/fuse/ui/win32/browse.c vendor/fuse-emulator/current/fuse/ui/win32/browse.h vendor/fuse-emulator/current/fuse/ui/win32/browse.rc vendor/fuse-emulator/current/fuse/ui/win32/debugger.c vendor/fuse-emulator/current/fuse/ui/win32/debugger.h vendor/fuse-emulator/current/fuse/ui/win32/debugger.rc vendor/fuse-emulator/current/fuse/ui/win32/memorybrowser.c vendor/fuse-emulator/current/fuse/ui/win32/memorybrowser.h vendor/fuse-emulator/current/fuse/ui/win32/memorybrowser.rc vendor/fuse-emulator/current/fuse/ui/win32/options-header.pl 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/picture.c vendor/fuse-emulator/current/fuse/ui/win32/picture.h vendor/fuse-emulator/current/fuse/ui/win32/picture.rc vendor/fuse-emulator/current/fuse/ui/win32/pokefinder.c vendor/fuse-emulator/current/fuse/ui/win32/pokefinder.h vendor/fuse-emulator/current/fuse/ui/win32/pokefinder.rc vendor/fuse-emulator/current/fuse/ui/win32/rollback.c vendor/fuse-emulator/current/fuse/ui/win32/rollback.rc vendor/fuse-emulator/current/fuse/ui/win32/roms.c vendor/fuse-emulator/current/fuse/ui/win32/roms.rc vendor/fuse-emulator/current/fuse/ui/win32/select_template.rc vendor/fuse-emulator/current/fuse/ui/win32/statusbar.c vendor/fuse-emulator/current/fuse/ui/win32/win32display.c vendor/fuse-emulator/current/fuse/ui/win32/win32internals.h vendor/fuse-emulator/current/fuse/ui/win32/win32joystick.c 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/xdisplay.c vendor/fuse-emulator/current/fuse/ui/xlib/xui.c vendor/fuse-emulator/current/fuse/unittests/unittests.c vendor/fuse-emulator/current/fuse/utils.c vendor/fuse-emulator/current/fuse/z80/coretest.c vendor/fuse-emulator/current/fuse/z80/tests/tests.expected vendor/fuse-emulator/current/fuse/z80/tests/tests.in vendor/fuse-emulator/current/fuse/z80/z80.c vendor/fuse-emulator/current/fuse/z80/z80.h vendor/fuse-emulator/current/fuse/z80/z80.pl vendor/fuse-emulator/current/fuse/z80/z80_ops.c vendor/fuse-emulator/current/fuse/zxatasp.c vendor/fuse-emulator/current/fuse/zxcf.c vendor/fuse-emulator/current/fuse-utils/Makefile.am vendor/fuse-emulator/current/fuse-utils/configure.in vendor/fuse-emulator/current/fuse-utils/hacking/ChangeLog vendor/fuse-emulator/current/fuse-utils/listbasic.c vendor/fuse-emulator/current/fuse-utils/man/audio2tape.1 vendor/fuse-emulator/current/fuse-utils/man/tapeconv.1 vendor/fuse-emulator/current/fuse-utils/rzxcheck.c vendor/fuse-emulator/current/fuse-utils/rzxtool.c vendor/fuse-emulator/current/fuse-utils/snap2tzx.c vendor/fuse-emulator/current/fuse-utils/snapconv.c vendor/fuse-emulator/current/fuse-utils/tape2wav.c vendor/fuse-emulator/current/fuse-utils/tapeconv.c vendor/fuse-emulator/current/fuse-utils/tzxlist.c vendor/fuse-emulator/current/fuse-utils/utils.c vendor/fuse-emulator/current/libspectrum/Makefile.am vendor/fuse-emulator/current/libspectrum/accessor.pl vendor/fuse-emulator/current/libspectrum/bzip2.c vendor/fuse-emulator/current/libspectrum/configure.in vendor/fuse-emulator/current/libspectrum/creator.c vendor/fuse-emulator/current/libspectrum/crypto.c vendor/fuse-emulator/current/libspectrum/csw.c vendor/fuse-emulator/current/libspectrum/dck.c vendor/fuse-emulator/current/libspectrum/hacking/ChangeLog vendor/fuse-emulator/current/libspectrum/ide.c 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/make-perl.c vendor/fuse-emulator/current/libspectrum/microdrive.c vendor/fuse-emulator/current/libspectrum/myglib/Makefile.am vendor/fuse-emulator/current/libspectrum/myglib/ghash.c vendor/fuse-emulator/current/libspectrum/myglib/gslist.c vendor/fuse-emulator/current/libspectrum/plusd.c vendor/fuse-emulator/current/libspectrum/rzx.c vendor/fuse-emulator/current/libspectrum/sna.c vendor/fuse-emulator/current/libspectrum/snapshot.c vendor/fuse-emulator/current/libspectrum/sp.c vendor/fuse-emulator/current/libspectrum/szx.c vendor/fuse-emulator/current/libspectrum/tap.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/edges.c vendor/fuse-emulator/current/libspectrum/test/test.c vendor/fuse-emulator/current/libspectrum/test/test.h vendor/fuse-emulator/current/libspectrum/test/test15.c vendor/fuse-emulator/current/libspectrum/tzx_read.c vendor/fuse-emulator/current/libspectrum/tzx_write.c vendor/fuse-emulator/current/libspectrum/warajevo_read.c vendor/fuse-emulator/current/libspectrum/wav.c vendor/fuse-emulator/current/libspectrum/z80.c vendor/fuse-emulator/current/libspectrum/z80em.c vendor/fuse-emulator/current/libspectrum/zlib.c vendor/fuse-emulator/current/libspectrum/zxs.c vendor/fuse-emulator/current/website/fuse.php vendor/fuse-emulator/current/website/libspectrum.php Added Paths: ----------- vendor/fuse-emulator/current/fuse/PORTING vendor/fuse-emulator/current/fuse/compat/unix/file.c vendor/fuse-emulator/current/fuse/compat/wii/ vendor/fuse-emulator/current/fuse/compat/wii/Makefile.am vendor/fuse-emulator/current/fuse/compat/wii/file.c vendor/fuse-emulator/current/fuse/debugger/event.c vendor/fuse-emulator/current/fuse/debugger/variable.c vendor/fuse-emulator/current/fuse/mempool.c vendor/fuse-emulator/current/fuse/mempool.h vendor/fuse-emulator/current/fuse/ui/win32/confirm.c vendor/fuse-emulator/current/fuse/ui/win32/fileselector.c vendor/fuse-emulator/current/fuse-basic/ vendor/fuse-emulator/current/fuse-basic/COPYING vendor/fuse-emulator/current/fuse-basic/Makefile.am vendor/fuse-emulator/current/fuse-basic/autogen.sh vendor/fuse-emulator/current/fuse-basic/basic.c vendor/fuse-emulator/current/fuse-basic/basic.h vendor/fuse-emulator/current/fuse-basic/basicl.l vendor/fuse-emulator/current/fuse-basic/basicy.y vendor/fuse-emulator/current/fuse-basic/check vendor/fuse-emulator/current/fuse-basic/configure.ac vendor/fuse-emulator/current/fuse-basic/dump.c vendor/fuse-emulator/current/fuse-basic/dump.h vendor/fuse-emulator/current/fuse-basic/explist.c vendor/fuse-emulator/current/fuse-basic/explist.h vendor/fuse-emulator/current/fuse-basic/line.c vendor/fuse-emulator/current/fuse-basic/line.h vendor/fuse-emulator/current/fuse-basic/numexp.c vendor/fuse-emulator/current/fuse-basic/numexp.h vendor/fuse-emulator/current/fuse-basic/parse.c vendor/fuse-emulator/current/fuse-basic/parse.h vendor/fuse-emulator/current/fuse-basic/printlist.c vendor/fuse-emulator/current/fuse-basic/printlist.h vendor/fuse-emulator/current/fuse-basic/program.c vendor/fuse-emulator/current/fuse-basic/program.h vendor/fuse-emulator/current/fuse-basic/spectrum-string.c vendor/fuse-emulator/current/fuse-basic/spectrum-string.h vendor/fuse-emulator/current/fuse-basic/statement.c vendor/fuse-emulator/current/fuse-basic/statement.h vendor/fuse-emulator/current/fuse-basic/strexp.c vendor/fuse-emulator/current/fuse-basic/strexp.h vendor/fuse-emulator/current/fuse-basic/tests/ vendor/fuse-emulator/current/fuse-basic/tests/abs.bas vendor/fuse-emulator/current/fuse-basic/tests/abs.out vendor/fuse-emulator/current/fuse-basic/tests/acs.bas vendor/fuse-emulator/current/fuse-basic/tests/acs.out vendor/fuse-emulator/current/fuse-basic/tests/and.bas vendor/fuse-emulator/current/fuse-basic/tests/and.out vendor/fuse-emulator/current/fuse-basic/tests/asn.bas vendor/fuse-emulator/current/fuse-basic/tests/asn.out vendor/fuse-emulator/current/fuse-basic/tests/atn.bas vendor/fuse-emulator/current/fuse-basic/tests/atn.out vendor/fuse-emulator/current/fuse-basic/tests/chrs.bas vendor/fuse-emulator/current/fuse-basic/tests/chrs.out vendor/fuse-emulator/current/fuse-basic/tests/code.bas vendor/fuse-emulator/current/fuse-basic/tests/code.out vendor/fuse-emulator/current/fuse-basic/tests/cos.bas vendor/fuse-emulator/current/fuse-basic/tests/cos.out vendor/fuse-emulator/current/fuse-basic/tests/dim.bas vendor/fuse-emulator/current/fuse-basic/tests/dim.out vendor/fuse-emulator/current/fuse-basic/tests/divide.bas vendor/fuse-emulator/current/fuse-basic/tests/divide.out vendor/fuse-emulator/current/fuse-basic/tests/equal.bas vendor/fuse-emulator/current/fuse-basic/tests/equal.out vendor/fuse-emulator/current/fuse-basic/tests/exp.bas vendor/fuse-emulator/current/fuse-basic/tests/exp.out vendor/fuse-emulator/current/fuse-basic/tests/for.bas vendor/fuse-emulator/current/fuse-basic/tests/for.out vendor/fuse-emulator/current/fuse-basic/tests/ge.bas vendor/fuse-emulator/current/fuse-basic/tests/ge.out vendor/fuse-emulator/current/fuse-basic/tests/gosub.bas vendor/fuse-emulator/current/fuse-basic/tests/gosub.out vendor/fuse-emulator/current/fuse-basic/tests/goto.bas vendor/fuse-emulator/current/fuse-basic/tests/goto.out vendor/fuse-emulator/current/fuse-basic/tests/greater.bas vendor/fuse-emulator/current/fuse-basic/tests/greater.out vendor/fuse-emulator/current/fuse-basic/tests/if.bas vendor/fuse-emulator/current/fuse-basic/tests/if.out vendor/fuse-emulator/current/fuse-basic/tests/int.bas vendor/fuse-emulator/current/fuse-basic/tests/int.out vendor/fuse-emulator/current/fuse-basic/tests/le.bas vendor/fuse-emulator/current/fuse-basic/tests/le.out vendor/fuse-emulator/current/fuse-basic/tests/len.bas vendor/fuse-emulator/current/fuse-basic/tests/len.out vendor/fuse-emulator/current/fuse-basic/tests/less.bas vendor/fuse-emulator/current/fuse-basic/tests/less.out vendor/fuse-emulator/current/fuse-basic/tests/let.bas vendor/fuse-emulator/current/fuse-basic/tests/let.out vendor/fuse-emulator/current/fuse-basic/tests/ln.bas vendor/fuse-emulator/current/fuse-basic/tests/ln.out vendor/fuse-emulator/current/fuse-basic/tests/minus.bas vendor/fuse-emulator/current/fuse-basic/tests/minus.out vendor/fuse-emulator/current/fuse-basic/tests/ne.bas vendor/fuse-emulator/current/fuse-basic/tests/ne.out vendor/fuse-emulator/current/fuse-basic/tests/not.bas vendor/fuse-emulator/current/fuse-basic/tests/not.out vendor/fuse-emulator/current/fuse-basic/tests/or.bas vendor/fuse-emulator/current/fuse-basic/tests/or.out vendor/fuse-emulator/current/fuse-basic/tests/pi.bas vendor/fuse-emulator/current/fuse-basic/tests/pi.out vendor/fuse-emulator/current/fuse-basic/tests/plus.bas vendor/fuse-emulator/current/fuse-basic/tests/plus.out vendor/fuse-emulator/current/fuse-basic/tests/power.bas vendor/fuse-emulator/current/fuse-basic/tests/power.out vendor/fuse-emulator/current/fuse-basic/tests/rnd.bas vendor/fuse-emulator/current/fuse-basic/tests/rnd.out vendor/fuse-emulator/current/fuse-basic/tests/sgn.bas vendor/fuse-emulator/current/fuse-basic/tests/sgn.out vendor/fuse-emulator/current/fuse-basic/tests/sin.bas vendor/fuse-emulator/current/fuse-basic/tests/sin.out vendor/fuse-emulator/current/fuse-basic/tests/slicer.bas vendor/fuse-emulator/current/fuse-basic/tests/slicer.out vendor/fuse-emulator/current/fuse-basic/tests/sqr.bas vendor/fuse-emulator/current/fuse-basic/tests/sqr.out vendor/fuse-emulator/current/fuse-basic/tests/stop.bas vendor/fuse-emulator/current/fuse-basic/tests/stop.out vendor/fuse-emulator/current/fuse-basic/tests/tan.bas vendor/fuse-emulator/current/fuse-basic/tests/tan.out vendor/fuse-emulator/current/fuse-basic/tests/times.bas vendor/fuse-emulator/current/fuse-basic/tests/times.out vendor/fuse-emulator/current/fuse-basic/token.h vendor/fuse-emulator/current/fuse-basic/utils.c vendor/fuse-emulator/current/fuse-basic/utils.h vendor/fuse-emulator/current/fuse-basic/val.c vendor/fuse-emulator/current/fuse-basic/val.h vendor/fuse-emulator/current/fuse-utils/audio2tape.cc vendor/fuse-emulator/current/fuse-utils/audio2tape.h vendor/fuse-emulator/current/fuse-utils/converter/ vendor/fuse-emulator/current/fuse-utils/converter/findpilot.cc vendor/fuse-emulator/current/fuse-utils/converter/findpilot.h vendor/fuse-emulator/current/fuse-utils/converter/findsync1.cc vendor/fuse-emulator/current/fuse-utils/converter/findsync1.h vendor/fuse-emulator/current/fuse-utils/converter/getpulse1.cc vendor/fuse-emulator/current/fuse-utils/converter/getpulse1.h vendor/fuse-emulator/current/fuse-utils/converter/getpulse2.cc vendor/fuse-emulator/current/fuse-utils/converter/getpulse2.h vendor/fuse-emulator/current/fuse-utils/converter/getsync2.cc vendor/fuse-emulator/current/fuse-utils/converter/getsync2.h vendor/fuse-emulator/current/fuse-utils/converter/romloader.cc vendor/fuse-emulator/current/fuse-utils/converter/romloader.h vendor/fuse-emulator/current/fuse-utils/converter/romloaderstate.h vendor/fuse-emulator/current/fuse-utils/importer/ vendor/fuse-emulator/current/fuse-utils/importer/interpolator.h vendor/fuse-emulator/current/fuse-utils/importer/schmitt.h vendor/fuse-emulator/current/fuse-utils/importer/simple.h vendor/fuse-emulator/current/fuse-utils/importer/soundfile.cc vendor/fuse-emulator/current/fuse-utils/importer/soundfile.h vendor/fuse-emulator/current/fuse-utils/importer/trigger.cc vendor/fuse-emulator/current/fuse-utils/importer/trigger.h vendor/fuse-emulator/current/libspectrum/memory.c vendor/fuse-emulator/current/libspectrum/myglib/garray.c vendor/fuse-emulator/current/libspectrum/test/writeprotected.mdr Removed Paths: ------------- vendor/fuse-emulator/current/fuse/ui/win32/error.c vendor/fuse-emulator/current/fuse/ui/win32/win32display.h vendor/fuse-emulator/current/fuse/ui/win32/win32keyboard.h vendor/fuse-emulator/current/fuse-utils/audio2tape.c Modified: vendor/fuse-emulator/current/fuse/Makefile.am =================================================================== --- vendor/fuse-emulator/current/fuse/Makefile.am 2008-05-10 23:53:25 UTC (rev 531) +++ vendor/fuse-emulator/current/fuse/Makefile.am 2008-09-28 12:26:43 UTC (rev 532) @@ -1,7 +1,7 @@ # Process this file with automake to produce Makefile.in ## Copyright (c) 1999-2008 Philip Kendall -## $Id: Makefile.am 3609 2008-05-01 13:17:56Z fredm $ +## $Id: Makefile.am 3617 2008-05-17 08:09:47Z 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 @@ -72,6 +72,7 @@ loader.c \ machine.c \ memory.c \ + mempool.c \ menu.c \ module.c \ periph.c \ Added: vendor/fuse-emulator/current/fuse/PORTING =================================================================== --- vendor/fuse-emulator/current/fuse/PORTING (rev 0) +++ vendor/fuse-emulator/current/fuse/PORTING 2008-09-28 12:26:43 UTC (rev 532) @@ -0,0 +1,22 @@ +Porting Fuse +============ + +Sorry, at the moment this isn't a helpful guide as to what you need to do +to port Fuse to a new platform. + +Unfortunately, various people have failed to read and understand the GNU +General Public License (see 'COPYING') before porting Fuse, so this is a +very brief guide to what you can and can't do with Fuse's code: + +* If you release a binary of Fuse, you *must* release *all* the source + code you used to create it at the same time. "Soon" or "when I've + tidied up the code" is NOT acceptable. + +* If you use any code which you haven't written yourself, it must be + available under a licence compatible with the GPL. As an example, this + means you may *not* use any code which "may not be used for commercial + purposes". Any code which is licenced under the GPL (v2), the modified + BSD license or which is truly in the public domain is OK. + +Note that above is not an exhaustive list of what you can and cannot +do with Fuse's code. For the full details, see the GPL. Modified: vendor/fuse-emulator/current/fuse/README =================================================================== --- vendor/fuse-emulator/current/fuse/README 2008-05-10 23:53:25 UTC (rev 531) +++ vendor/fuse-emulator/current/fuse/README 2008-09-28 12:26:43 UTC (rev 532) @@ -26,6 +26,14 @@ * Emulation of the DivIDE, Interface I, Kempston mouse, Spectrum +3e, ZXATASP, ZXCF, Beta 128 and +D interfaces. +Help! <xyz> doesn't work +------------------------ + +If you're having a problem using/running/building Fuse, the two places +you're most likely to get help are the development mailing list +<fus...@li...> or the official forums at +<http://sourceforge.net/forum/?group_id=91293>. + What you'll need to run Fuse ---------------------------- @@ -143,4 +151,4 @@ Philip Kendall <phi...@sh...> 5 January 2008 -$Id: README 3584 2008-03-25 10:27:30Z fredm $ +$Id: README 3718 2008-07-19 12:29:41Z pak21 $ Modified: vendor/fuse-emulator/current/fuse/compat/amiga/Makefile.am =================================================================== --- vendor/fuse-emulator/current/fuse/compat/amiga/Makefile.am 2008-05-10 23:53:25 UTC (rev 531) +++ vendor/fuse-emulator/current/fuse/compat/amiga/Makefile.am 2008-09-28 12:26:43 UTC (rev 532) @@ -1,7 +1,7 @@ ## Process this file with automake to produce Makefile.in -## Copyright (c) 2007 Philip Kendall +## Copyright (c) 2007-2008 Philip Kendall -## $Id: Makefile.am 3578 2008-03-22 20:51:36Z zubzero $ +## $Id: Makefile.am 3687 2008-06-23 11:55:23Z 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 @@ -27,7 +27,8 @@ noinst_LIBRARIES = libcompatos.a -libcompatos_a_SOURCES = osname.c \ +libcompatos_a_SOURCES = ../unix/file.c \ + osname.c \ paths.c INCLUDES = @GLIB_CFLAGS@ @GTK_CFLAGS@ @LIBSPEC_CFLAGS@ Modified: vendor/fuse-emulator/current/fuse/compat/morphos/Makefile.am =================================================================== --- vendor/fuse-emulator/current/fuse/compat/morphos/Makefile.am 2008-05-10 23:53:25 UTC (rev 531) +++ vendor/fuse-emulator/current/fuse/compat/morphos/Makefile.am 2008-09-28 12:26:43 UTC (rev 532) @@ -1,7 +1,7 @@ ## Process this file with automake to produce Makefile.in -## Copyright (c) 2007 Philip Kendall +## Copyright (c) 2007-2008 Philip Kendall -## $Id: Makefile.am 3115 2007-08-19 02:49:14Z fredm $ +## $Id: Makefile.am 3687 2008-06-23 11:55:23Z 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 @@ -27,7 +27,8 @@ noinst_LIBRARIES = libcompatos.a -libcompatos_a_SOURCES = osname.c \ +libcompatos_a_SOURCES = ../unix/file.c \ + osname.c \ ../amiga/paths.c INCLUDES = @GLIB_CFLAGS@ @GTK_CFLAGS@ @LIBSPEC_CFLAGS@ Modified: vendor/fuse-emulator/current/fuse/compat/unix/Makefile.am =================================================================== --- vendor/fuse-emulator/current/fuse/compat/unix/Makefile.am 2008-05-10 23:53:25 UTC (rev 531) +++ vendor/fuse-emulator/current/fuse/compat/unix/Makefile.am 2008-09-28 12:26:43 UTC (rev 532) @@ -1,7 +1,7 @@ ## Process this file with automake to produce Makefile.in -## Copyright (c) 2007 Philip Kendall +## Copyright (c) 2007-2008 Philip Kendall -## $Id: Makefile.am 3115 2007-08-19 02:49:14Z fredm $ +## $Id: Makefile.am 3687 2008-06-23 11:55:23Z 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 @@ -27,7 +27,8 @@ noinst_LIBRARIES = libcompatos.a -libcompatos_a_SOURCES = osname.c \ +libcompatos_a_SOURCES = file.c \ + osname.c \ paths.c INCLUDES = @GLIB_CFLAGS@ @GTK_CFLAGS@ @LIBSPEC_CFLAGS@ Added: vendor/fuse-emulator/current/fuse/compat/unix/file.c =================================================================== --- vendor/fuse-emulator/current/fuse/compat/unix/file.c (rev 0) +++ vendor/fuse-emulator/current/fuse/compat/unix/file.c 2008-09-28 12:26:43 UTC (rev 532) @@ -0,0 +1,107 @@ +/* file.c: File-related compatibility routines + Copyright (c) 2008 Philip Kendall + + $Id: file.c 3722 2008-07-22 03:12:28Z specu $ + + 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 <errno.h> +#include <fcntl.h> +#include <string.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <unistd.h> + +#include "compat.h" +#include "ui/ui.h" + +/* Certain brain damaged operating systems (DOS/Windows) treat text + and binary files different in open(2) and need to be given the + O_BINARY flag to tell them it's a binary file */ +#ifndef O_BINARY +#define O_BINARY 0 +#endif /* #ifndef O_BINARY */ + +const compat_fd COMPAT_FILE_OPEN_FAILED = -1; + +compat_fd +compat_file_open( const char *path, int write ) +{ + int flags = write ? O_WRONLY | O_CREAT | O_BINARY : O_RDONLY | O_BINARY; + return open( path, flags ); +} + +off_t +compat_file_get_length( compat_fd fd ) +{ + struct stat file_info; + + if( fstat( fd, &file_info ) ) { + ui_error( UI_ERROR_ERROR, "couldn't stat file: %s", strerror( errno ) ); + return -1; + } + + return file_info.st_size; +} + +int +compat_file_read( compat_fd fd, utils_file *file ) +{ + ssize_t bytes = read( fd, file->buffer, file->length ); + if( bytes != file->length ) { + if( bytes == -1 ) { + ui_error( UI_ERROR_ERROR, "error reading file: %s", strerror( errno ) ); + } else { + ui_error( UI_ERROR_ERROR, + "error reading file: expected %ld bytes, but read only %ld", + (unsigned long)file->length, (unsigned long)bytes ); + } + return 1; + } + + return 0; +} + +int +compat_file_write( compat_fd fd, const unsigned char *buffer, size_t length ) +{ + ssize_t bytes = write( fd, buffer, length ); + if( bytes != length ) { + if( bytes == -1 ) { + ui_error( UI_ERROR_ERROR, "error writing file: %s", strerror( errno ) ); + } else { + ui_error( UI_ERROR_ERROR, + "error writing file: expected %ld bytes, but wrote only %ld", + (unsigned long)length, (unsigned long)bytes ); + } + return 1; + } + + return 0; +} + +int +compat_file_close( compat_fd fd ) +{ + return close( fd ); +} Modified: vendor/fuse-emulator/current/fuse/compat/unix/osname.c =================================================================== --- vendor/fuse-emulator/current/fuse/compat/unix/osname.c 2008-05-10 23:53:25 UTC (rev 531) +++ vendor/fuse-emulator/current/fuse/compat/unix/osname.c 2008-09-28 12:26:43 UTC (rev 532) @@ -1,7 +1,7 @@ /* osname.c: Get a representation of the OS we're running on Copyright (c) 1999-2007 Philip Kendall - $Id: osname.c 3115 2007-08-19 02:49:14Z fredm $ + $Id: osname.c 3626 2008-05-23 10:30:30Z 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 @@ -38,7 +38,7 @@ int error; error = uname( &osname ); - if( error ) { + if( error < 0 ) { ui_error( UI_ERROR_ERROR, "error getting system information: %s", strerror( errno ) ); return 1; Added: vendor/fuse-emulator/current/fuse/compat/wii/Makefile.am =================================================================== --- vendor/fuse-emulator/current/fuse/compat/wii/Makefile.am (rev 0) +++ vendor/fuse-emulator/current/fuse/compat/wii/Makefile.am 2008-09-28 12:26:43 UTC (rev 532) @@ -0,0 +1,34 @@ +## Process this file with automake to produce Makefile.in +## Copyright (c) 2007-2008 Philip Kendall + +## $Id: Makefile.am 3687 2008-06-23 11:55:23Z pak21 $ + +## This program is free software; you can redistribute it and/or modify +## it under the terms of the GNU General Public License as published by +## the Free Software Foundation; either version 2 of the License, or +## (at your option) any later version. +## +## This program is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +## GNU General Public License for more details. +## +## You should have received a copy of the GNU General Public License along +## with this program; if not, write to the Free Software Foundation, Inc., +## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +## +## Author contact information: +## +## E-mail: phi...@sh... + +AUTOMAKE_OPTIONS = foreign + +AM_CPPFLAGS = -I$(srcdir)/../.. + +noinst_LIBRARIES = libcompatos.a + +libcompatos_a_SOURCES = file.c \ + osname.c \ + paths.c + +INCLUDES = @GLIB_CFLAGS@ @GTK_CFLAGS@ @LIBSPEC_CFLAGS@ Added: vendor/fuse-emulator/current/fuse/compat/wii/file.c =================================================================== --- vendor/fuse-emulator/current/fuse/compat/wii/file.c (rev 0) +++ vendor/fuse-emulator/current/fuse/compat/wii/file.c 2008-09-28 12:26:43 UTC (rev 532) @@ -0,0 +1,90 @@ +/* file.c: File-related compatibility routines + Copyright (c) 2008 Philip Kendall + + $Id: file.c 3688 2008-06-23 18:17:56Z pak21 $ + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + Author contact information: + + E-mail: phi...@sh... + +*/ + +#include <config.h> + +#include <errno.h> +#include <fcntl.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <unistd.h> + +#include "compat.h" +#include "ui/ui.h" + +const compat_fd COMPAT_FILE_OPEN_FAILED = NULL; + +compat_fd +compat_file_open( const char *path, int write ) +{ + return fopen( path, write ? "w" : "r" ); +} + +off_t +compat_file_get_length( compat_fd fd ) +{ + struct stat file_info; + + if( fstat( fileno( fd ), &file_info ) ) { + ui_error( UI_ERROR_ERROR, "couldn't stat file: %s", strerror( errno ) ); + return -1; + } + + return file_info.st_size; +} + +int +compat_file_read( compat_fd fd, utils_file *file ) +{ + size_t bytes = fread( file->buffer, 1, file->length, fd ); + if( bytes != file->length ) { + ui_error( UI_ERROR_ERROR, + "error reading file: expected %d bytes, but read only %d", + file->length, bytes ); + return 1; + } + + return 0; +} + +int +compat_file_write( compat_fd fd, const unsigned char *buffer, size_t length ) +{ + size_t bytes = fwrite( buffer, 1, length, fd ); + if( bytes != length ) { + ui_error( UI_ERROR_ERROR, + "error writing file: expected %d bytes, but wrote only %d", + length, bytes ); + return 1; + } + + return 0; +} + +int +compat_file_close( compat_fd fd ) +{ + return fclose( fd ); +} Modified: vendor/fuse-emulator/current/fuse/compat/win32/Makefile.am =================================================================== --- vendor/fuse-emulator/current/fuse/compat/win32/Makefile.am 2008-05-10 23:53:25 UTC (rev 531) +++ vendor/fuse-emulator/current/fuse/compat/win32/Makefile.am 2008-09-28 12:26:43 UTC (rev 532) @@ -1,7 +1,7 @@ ## Process this file with automake to produce Makefile.in -## Copyright (c) 2007 Philip Kendall +## Copyright (c) 2007-2008 Philip Kendall -## $Id: Makefile.am 3115 2007-08-19 02:49:14Z fredm $ +## $Id: Makefile.am 3687 2008-06-23 11:55:23Z 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 @@ -27,7 +27,8 @@ noinst_LIBRARIES = libcompatos.a -libcompatos_a_SOURCES = osname.c \ +libcompatos_a_SOURCES = ../unix/file.c \ + osname.c \ paths.c INCLUDES = @GLIB_CFLAGS@ @GTK_CFLAGS@ @LIBSPEC_CFLAGS@ Modified: vendor/fuse-emulator/current/fuse/compat.h =================================================================== --- vendor/fuse-emulator/current/fuse/compat.h 2008-05-10 23:53:25 UTC (rev 531) +++ vendor/fuse-emulator/current/fuse/compat.h 2008-09-28 12:26:43 UTC (rev 532) @@ -1,7 +1,7 @@ /* compat.h: various compatibility bits - Copyright (c) 2003 Philip Kendall + Copyright (c) 2003-2008 Philip Kendall - $Id: compat.h 3129 2007-08-30 12:46:32Z pak21 $ + $Id: compat.h 3687 2008-06-23 11:55:23Z 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 @@ -28,6 +28,8 @@ #include <stdlib.h> +#include <utils.h> + /* Remove the gcc-specific incantations if we're not using gcc */ #ifdef __GNUC__ @@ -43,14 +45,6 @@ #endif /* #ifdef __GNUC__ */ -/* Certain brain damaged operating systems (DOS/Windows) treat text - and binary files different in open(2) and need to be given the - O_BINARY flag to tell them it's a binary file */ -#ifndef O_BINARY -#define O_BINARY 0 -#endif /* #ifndef O_BINARY */ - -/* Replacement functions */ #ifndef HAVE_DIRNAME char *dirname( char *path ); #endif /* #ifndef HAVE_DIRNAME */ @@ -77,4 +71,19 @@ const char* compat_get_home_path( void ); int compat_is_absolute_path( const char *path ); +#ifndef UI_WII +typedef int compat_fd; +#else /* #ifndef UI_WII */ +typedef FILE* compat_fd; +#endif /* #ifndef UI_WII */ + +extern const compat_fd COMPAT_FILE_OPEN_FAILED; + +compat_fd compat_file_open( const char *path, int write ); +off_t compat_file_get_length( compat_fd fd ); +int compat_file_read( compat_fd fd, utils_file *file ); +int compat_file_write( compat_fd fd, const unsigned char *buffer, + size_t length ); +int compat_file_close( compat_fd fd ); + #endif /* #ifndef FUSE_COMPAT_H */ Modified: vendor/fuse-emulator/current/fuse/configure.in =================================================================== --- vendor/fuse-emulator/current/fuse/configure.in 2008-05-10 23:53:25 UTC (rev 531) +++ vendor/fuse-emulator/current/fuse/configure.in 2008-09-28 12:26:43 UTC (rev 532) @@ -1,5 +1,5 @@ dnl Process this file with autoconf to produce a configure script. -dnl $Id: configure.in 3609 2008-05-01 13:17:56Z fredm $ +dnl $Id: configure.in 3756 2008-08-24 13:41:23Z specu $ 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 @@ -94,6 +94,8 @@ AC_CHECK_HEADER(windows.h, LIBS="$LIBS -mwindows -lcomctl32"; AC_DEFINE([UI_WIN32], 1, [Defined if Win32 UI in use]) + AC_DEFINE([WINVER], 0x0400, [Minimal supported version of Windows is 95 or NT4]) + AC_DEFINE([_WIN32_IE], 0x400, [Internet Explorer is 4.0 or higher is required]) UI=win32; UI_LIBS="ui/win32/libuiwin32.a", AC_MSG_ERROR([Win32 UI not found])) fi @@ -363,7 +365,8 @@ AC_CHECK_HEADER( dsound.h, [dxsound_available=yes], - [AC_MSG_WARN(dsound.h not found - no DirectSound output)] + [AC_MSG_WARN(dsound.h not found - no DirectSound output)], + [#define DIRECTSOUND_VERSION 0x0700] ) dnl Check if MS Windows Multimedia API sound is available @@ -402,15 +405,16 @@ dnl AC_MSG_CHECKING(which sound routines to use) -if test "$dxsound_available" = yes; then +if test "$UI" = sdl; then + SOUND_LIBADD='sdlsound.$(OBJEXT)' SOUND_LIBS='' sound_fifo=yes + AC_MSG_RESULT(SDL) +elif test "$dxsound_available" = yes; then SOUND_LIBADD='dxsound.$(OBJEXT)' SOUND_LIBS='-ldsound -lole32 -ldxguid' AC_MSG_RESULT(DirectX) + AC_DEFINE([DIRECTSOUND_VERSION], 0x0700, [DirectX 7 or higher is required]) elif test "$win32sound_available" = yes; then SOUND_LIBADD='win32sound.$(OBJEXT)' SOUND_LIBS='-lwinmm' AC_MSG_RESULT(win32sound) -elif test "$UI" = sdl; then - SOUND_LIBADD='sdlsound.$(OBJEXT)' SOUND_LIBS='' sound_fifo=yes - AC_MSG_RESULT(SDL) elif test "$alsa_available" = yes; then SOUND_LIBADD='alsasound.$(OBJEXT)' SOUND_LIBS='-lasound' AC_MSG_RESULT(ALSA) Modified: vendor/fuse-emulator/current/fuse/dck.c =================================================================== --- vendor/fuse-emulator/current/fuse/dck.c 2008-05-10 23:53:25 UTC (rev 531) +++ vendor/fuse-emulator/current/fuse/dck.c 2008-09-28 12:26:43 UTC (rev 532) @@ -1,7 +1,7 @@ /* dck.c: dock snapshot (Warajevo .DCK) handling routines Copyright (c) 2003-2004 Darren Salt, Fredrick Meunier, Philip Kendall - $Id: dck.c 3609 2008-05-01 13:17:56Z fredm $ + $Id: dck.c 3703 2008-06-30 20:36:11Z 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 @@ -99,7 +99,7 @@ return 0; } - error = libspectrum_dck_alloc( &dck ); if( error ) return error; + dck = libspectrum_dck_alloc(); error = utils_read_file( settings_current.dck_file, &file ); if( error ) { libspectrum_dck_free( dck, 0 ); return error; } Modified: vendor/fuse-emulator/current/fuse/debugger/Makefile.am =================================================================== --- vendor/fuse-emulator/current/fuse/debugger/Makefile.am 2008-05-10 23:53:25 UTC (rev 531) +++ vendor/fuse-emulator/current/fuse/debugger/Makefile.am 2008-09-28 12:26:43 UTC (rev 532) @@ -1,7 +1,7 @@ ## Process this file with automake to produce Makefile.in -## Copyright (c) 2001-2004 Philip Kendall +## Copyright (c) 2001-2008 Philip Kendall -## $Id: Makefile.am 3150 2007-09-05 14:05:00Z pak21 $ +## $Id: Makefile.am 3657 2008-06-08 15:04:37Z 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 @@ -35,7 +35,9 @@ commandy.y \ debugger.c \ disassemble.c \ - expression.c + event.c \ + expression.c \ + variable.c commandl.c: commandy.c commandy.h: commandy.c Modified: vendor/fuse-emulator/current/fuse/debugger/breakpoint.c =================================================================== --- vendor/fuse-emulator/current/fuse/debugger/breakpoint.c 2008-05-10 23:53:25 UTC (rev 531) +++ vendor/fuse-emulator/current/fuse/debugger/breakpoint.c 2008-09-28 12:26:43 UTC (rev 532) @@ -1,7 +1,7 @@ /* breakpoint.c: a debugger breakpoint - Copyright (c) 2002-2007 Philip Kendall + Copyright (c) 2002-2008 Philip Kendall - $Id: breakpoint.c 3138 2007-09-02 12:19:16Z pak21 $ + $Id: breakpoint.c 3685 2008-06-21 12:37:24Z 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 @@ -26,6 +26,7 @@ #include <config.h> #include <ctype.h> +#include <string.h> #include <libspectrum.h> @@ -43,11 +44,11 @@ /* Textual representations of the breakpoint types and lifetimes */ const char *debugger_breakpoint_type_text[] = { - "Execute", "Read", "Write", "Port Read", "Port Write", "Time", + "Execute", "Read", "Write", "Port Read", "Port Write", "Time", "Event", }; const char debugger_breakpoint_type_abbr[][4] = { - "Exe", "Rd", "Wr", "PtR", "PtW", "Tm", + "Exe", "Rd", "Wr", "PtR", "PtW", "Tm", "Ev", }; const char *debugger_breakpoint_life_text[] = { @@ -146,11 +147,46 @@ fuse_abort(); } - value.tstates = tstates; + value.time.tstates = tstates; return breakpoint_add( type, value, ignore, life, condition ); } +int +debugger_breakpoint_add_event( debugger_breakpoint_type type, + const char *type_string, const char *detail, + size_t ignore, debugger_breakpoint_life life, + debugger_expression *condition ) +{ + debugger_breakpoint_value value; + + switch( type ) { + case DEBUGGER_BREAKPOINT_TYPE_EVENT: + break; + + default: + ui_error( UI_ERROR_ERROR, "%s given type %d", __func__, type ); + fuse_abort(); + } + + if( !debugger_event_is_registered( type_string, detail ) ) { + ui_error( UI_ERROR_WARNING, "Event type %s:%s not known", type_string, + detail ); + return 1; + } + + value.event.detail = NULL; + value.event.type = strdup( type_string ); + value.event.detail = strdup( detail ); + if( !value.event.type || !value.event.detail ) { + free( value.event.type ); + free( value.event.detail ); + return 1; + } + + return breakpoint_add( type, value, ignore, life, condition ); +} + static int breakpoint_add( debugger_breakpoint_type type, debugger_breakpoint_value value, size_t ignore, debugger_breakpoint_life life, @@ -158,7 +194,7 @@ { debugger_breakpoint *bp; - bp = malloc( sizeof( debugger_breakpoint ) ); + bp = malloc( sizeof( *bp ) ); if( !bp ) { ui_error( UI_ERROR_ERROR, "Out of memory at %s:%d", __FILE__, __LINE__ ); return 1; @@ -167,8 +203,18 @@ bp->id = next_breakpoint_id++; bp->type = type; bp->value = value; bp->ignore = ignore; bp->life = life; - bp->condition = condition; + if( condition ) { + bp->condition = debugger_expression_copy( condition ); + if( !bp->condition ) { + free( bp ); + return 1; + } + } else { + bp->condition = NULL; + } + bp->commands = NULL; + debugger_breakpoints = g_slist_append( debugger_breakpoints, bp ); if( debugger_mode == DEBUGGER_MODE_INACTIVE ) @@ -179,7 +225,7 @@ if( type == DEBUGGER_BREAKPOINT_TYPE_TIME ) { int error; - error = event_add( value.tstates, EVENT_TYPE_BREAKPOINT ); + error = event_add( value.time.tstates, debugger_breakpoint_event ); if( error ) return error; } @@ -203,16 +249,18 @@ if( breakpoint_check( bp, type, value ) ) { debugger_mode = DEBUGGER_MODE_HALTED; - return 1; + debugger_command_evaluate( bp->commands ); } } - return 0; + break; case DEBUGGER_MODE_HALTED: return 1; } - return 0; /* Keep gcc happy */ + + /* Debugger mode could have been reset by a breakpoint command */ + return ( debugger_mode == DEBUGGER_MODE_HALTED ); } static int @@ -296,6 +344,25 @@ return buffer; } +int +debugger_breakpoint_trigger( debugger_breakpoint *bp ) +{ + if( bp->ignore ) { bp->ignore--; return 0; } + + if( bp->condition && !debugger_expression_evaluate( bp->condition ) ) + return 0; + + if( bp->life == DEBUGGER_BREAKPOINT_LIFE_ONESHOT ) { + debugger_breakpoints = g_slist_remove( debugger_breakpoints, bp ); + free( bp ); + } + + if( bp->type == DEBUGGER_BREAKPOINT_TYPE_TIME ) + bp->value.time.triggered = 1; + + return 1; +} + /* Check whether 'bp' should trigger if we're looking for a breakpoint of 'type' with parameter 'value'. Returns non-zero if we should trigger */ static int @@ -332,7 +399,7 @@ /* Timed breakpoints trigger if we're past the relevant time */ case DEBUGGER_BREAKPOINT_TYPE_TIME: - if( bp->value.tstates > tstates ) return 0; + if( bp->value.time.triggered || bp->value.time.tstates > tstates ) return 0; break; default: @@ -341,17 +408,7 @@ } - if( bp->ignore ) { bp->ignore--; return 0; } - - if( bp->condition && !debugger_expression_evaluate( bp->condition ) ) - return 0; - - if( bp->life == DEBUGGER_BREAKPOINT_LIFE_ONESHOT ) { - debugger_breakpoints = g_slist_remove( debugger_breakpoints, bp ); - free( bp ); - } - - return 1; + return debugger_breakpoint_trigger( bp ); } struct remove_t { @@ -378,7 +435,7 @@ struct remove_t remove; - remove.tstates = bp->value.tstates; + remove.tstates = bp->value.time.tstates; remove.done = 0; event_foreach( remove_time, &remove ); @@ -424,9 +481,9 @@ if( remove->done ) return; - if( event->type == EVENT_TYPE_BREAKPOINT && + if( event->type == debugger_breakpoint_event && event->tstates == remove->tstates ) { - event->type = EVENT_TYPE_NULL; + event->type = event_type_null; remove->done = 1; } } @@ -447,7 +504,7 @@ found++; - free( ptr->data ); + free_breakpoint( ptr->data, NULL ); debugger_breakpoints = g_slist_remove( debugger_breakpoints, ptr->data ); if( debugger_mode == DEBUGGER_MODE_ACTIVE && !debugger_breakpoints ) @@ -503,7 +560,24 @@ { debugger_breakpoint *bp = data; + switch( bp->type ) { + case DEBUGGER_BREAKPOINT_TYPE_EVENT: + free( bp->value.event.type ); + free( bp->value.event.detail ); + break; + + case DEBUGGER_BREAKPOINT_TYPE_EXECUTE: + case DEBUGGER_BREAKPOINT_TYPE_READ: + case DEBUGGER_BREAKPOINT_TYPE_WRITE: + case DEBUGGER_BREAKPOINT_TYPE_PORT_READ: + case DEBUGGER_BREAKPOINT_TYPE_PORT_WRITE: + case DEBUGGER_BREAKPOINT_TYPE_TIME: + /* No action needed */ + break; + } + if( bp->condition ) debugger_expression_delete( bp->condition ); + if( bp->commands ) free( bp->commands ); free( bp ); } @@ -531,11 +605,29 @@ if( bp->condition ) debugger_expression_delete( bp->condition ); - bp->condition = condition; + if( condition ) { + bp->condition = debugger_expression_copy( condition ); + if( !bp->condition ) return 1; + } else { + bp->condition = NULL; + } return 0; } +int +debugger_breakpoint_set_commands( size_t id, const char *commands ) +{ + debugger_breakpoint *bp = get_breakpoint_by_id( id ); + if( !bp ) return 1; + + free( bp->commands ); + bp->commands = strdup( commands ); + if( !bp->commands ) return 1; + + return 0; +} + /* Add events corresponding to all the time events to happen during this frame */ int @@ -550,6 +642,15 @@ { debugger_breakpoint *bp = data; - if( bp->type == DEBUGGER_BREAKPOINT_TYPE_TIME ) - event_add( bp->value.tstates, EVENT_TYPE_BREAKPOINT ); + if( bp->type == DEBUGGER_BREAKPOINT_TYPE_TIME ) { + bp->value.time.triggered = 0; + event_add( bp->value.time.tstates, debugger_breakpoint_event ); + } } + +void +debugger_breakpoint_time_fn( libspectrum_dword tstates, int type GCC_UNUSED, + void *user_data GCC_UNUSED ) +{ + debugger_check( DEBUGGER_BREAKPOINT_TYPE_TIME, 0 ); +} Modified: vendor/fuse-emulator/current/fuse/debugger/breakpoint.h =================================================================== --- vendor/fuse-emulator/current/fuse/debugger/breakpoint.h 2008-05-10 23:53:25 UTC (rev 531) +++ vendor/fuse-emulator/current/fuse/debugger/breakpoint.h 2008-09-28 12:26:43 UTC (rev 532) @@ -1,7 +1,7 @@ /* breakpoint.h: a debugger breakpoint - Copyright (c) 2002-2004 Philip Kendall + Copyright (c) 2002-2008 Philip Kendall - $Id: breakpoint.h 2889 2007-05-26 17:45:08Z zubzero $ + $Id: breakpoint.h 3662 2008-06-09 11:19:29Z 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 @@ -34,6 +34,7 @@ DEBUGGER_BREAKPOINT_TYPE_PORT_READ, DEBUGGER_BREAKPOINT_TYPE_PORT_WRITE, DEBUGGER_BREAKPOINT_TYPE_TIME, + DEBUGGER_BREAKPOINT_TYPE_EVENT, } debugger_breakpoint_type; extern const char *debugger_breakpoint_type_text[]; @@ -71,11 +72,22 @@ } debugger_breakpoint_port; +typedef struct debugger_breakpoint_time { + libspectrum_dword tstates; + int triggered; +} debugger_breakpoint_time; + +typedef struct debugger_event_t { + char *type; + char *detail; +} debugger_event_t; + typedef union debugger_breakpoint_value { debugger_breakpoint_address address; debugger_breakpoint_port port; - libspectrum_dword tstates; + debugger_breakpoint_time time; + debugger_event_t event; } debugger_breakpoint_value; @@ -92,6 +104,9 @@ debugger_breakpoint_life life; debugger_expression *condition; /* Conditional expression to activate this breakpoint */ + + char *commands; + } debugger_breakpoint; /* The current breakpoints */ @@ -118,6 +133,12 @@ size_t ignore, debugger_breakpoint_life life, debugger_expression *condition ); +int +debugger_breakpoint_add_event( + debugger_breakpoint_type type, const char *type_string, const char *detail, + size_t ignore, debugger_breakpoint_life life, debugger_expression *condition +); + /* Add events corresponding to all the time breakpoints to happen during this frame */ int debugger_add_time_events( void ); Modified: vendor/fuse-emulator/current/fuse/debugger/command.c =================================================================== --- vendor/fuse-emulator/current/fuse/debugger/command.c 2008-05-10 23:53:25 UTC (rev 531) +++ vendor/fuse-emulator/current/fuse/debugger/command.c 2008-09-28 12:26:43 UTC (rev 532) @@ -1,7 +1,7 @@ /* command.c: Parse a debugger command - Copyright (c) 2002 Philip Kendall + Copyright (c) 2002-2008 Philip Kendall - $Id: command.c 3115 2007-08-19 02:49:14Z fredm $ + $Id: command.c 3631 2008-05-26 12:22:29Z 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 @@ -31,6 +31,7 @@ #include "debugger.h" #include "debugger_internals.h" +#include "mempool.h" #include "ui/ui.h" #include "z80/z80.h" #include "z80/z80_macros.h" @@ -64,6 +65,9 @@ /* Parse the command */ yyparse(); + /* And free any memory we allocated while parsing */ + mempool_free( debugger_memory_pool ); + ui_debugger_update(); return 0; Modified: vendor/fuse-emulator/current/fuse/debugger/commandl.l =================================================================== --- vendor/fuse-emulator/current/fuse/debugger/commandl.l 2008-05-10 23:53:25 UTC (rev 531) +++ vendor/fuse-emulator/current/fuse/debugger/commandl.l 2008-09-28 12:26:43 UTC (rev 532) @@ -1,7 +1,7 @@ /* commandl.l: Debugger command lexical scanner - Copyright (c) 2002 Philip Kendall + Copyright (c) 2002-2008 Philip Kendall - $Id: commandl.l 3503 2008-01-30 14:58:55Z pak21 $ + $Id: commandl.l 3712 2008-07-06 11:45:24Z 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 @@ -31,6 +31,7 @@ #include "debugger.h" #include "debugger_internals.h" +#include "mempool.h" #include "commandy.h" @@ -39,23 +40,29 @@ if( !debugger_command_input( buf, &result, max_size ) ) result = YY_NULL; \ } +#define YY_NO_INPUT + %} -DIGIT [0-9] -HEX [0-9a-f] +ID [a-z][a-z0-9]+ %option caseless +%s COMMANDSTATE1 +%x COMMANDSTATE2 + %% ba|bas|base { return BASE; } br|bre|brea|break|breakp|breakpo|breakpoi|breakpoin|breakpoint { return BREAK;} co|con|cont|contin|continu|continue { return CONTINUE; } +com|comm|comma|comman|command|commands { BEGIN(COMMANDSTATE1); return COMMANDS; } cond|condi|condit|conditi|conditio|condition { return CONDITION; } cl|cle|clea|clear { return CLEAR; } del|dele|delet|delete { return DEBUGGER_DELETE; } di|dis|disa|disas|disass|disasse|disassm|disassmb|diasassmbl|disassemble { return DISASSEMBLE; } +ev|eve|even|event { return EVENT; } ex|exi|exit { return EXIT; } fi|fin|fini|finis|finish { return FINISH; } if { return IF; } @@ -64,6 +71,7 @@ o|ou|out { return DEBUGGER_OUT; } /* Different name to avoid clashing with OUT from z80/z80_macros.h */ p|po|por|port { return PORT; } +pr|pri|prin|print { return DEBUGGER_PRINT; } r|re|rea|read { return READ; } se|set { return SET; } s|st|ste|step { return STEP; } @@ -119,16 +127,36 @@ ":" { return ':'; } -${HEX}+ { yylval.integer = strtol( yytext+1, NULL, 16 ); +$[[:xdigit:]]+ { yylval.integer = strtol( yytext+1, NULL, 16 ); + if( YY_START == COMMANDSTATE1 ) BEGIN( COMMANDSTATE2 ); return NUMBER; } -0x{HEX}+ { yylval.integer = strtol( yytext+2, NULL, 16 ); +0x[[:xdigit:]]+ { yylval.integer = strtol( yytext+2, NULL, 16 ); + if( YY_START == COMMANDSTATE1 ) BEGIN( COMMANDSTATE2 ); return NUMBER; } -{DIGIT}+ { yylval.integer = atoi( yytext ); return NUMBER; } +[[:digit:]]+ { yylval.integer = atoi( yytext ); + if( YY_START == COMMANDSTATE1 ) BEGIN( COMMANDSTATE2 ); + return NUMBER; } -[cdrx]{DIGIT}+ { yylval.integer = debugger_page_hash( yytext ); return PAGE; } +[cdrx][[:digit:]]+ { yylval.integer = debugger_page_hash( yytext ); return PAGE; } -[ \n]+ /* Swallow whitespace */ +{ID} { yylval.string = mempool_strdup( debugger_memory_pool, yytext ); return STRING; } +${ID} { yylval.string = mempool_strdup( debugger_memory_pool, yytext + 1 ); return VARIABLE; } +\n { return '\n'; } + +[ ]+ /* Swallow whitespace */ + . { if( 0 ) unput( '\0' ); /* Prevent warning about yyunput being defined and not used */ return DEBUGGER_ERROR; } + + /* Debugger command parsing */ + +<COMMANDSTATE2>{ + +end { BEGIN(INITIAL); return DEBUGGER_END; } + +[^\n]* { yylval.string = mempool_strdup( debugger_memory_pool, yytext ); return STRING; } +\n { return '\n'; } + +} Modified: vendor/fuse-emulator/current/fuse/debugger/commandy.y =================================================================== --- vendor/fuse-emulator/current/fuse/debugger/commandy.y 2008-05-10 23:53:25 UTC (rev 531) +++ vendor/fuse-emulator/current/fuse/debugger/commandy.y 2008-09-28 12:26:43 UTC (rev 532) @@ -1,7 +1,7 @@ /* commandy.y: Parse a debugger command - Copyright (c) 2002-2004 Philip Kendall + Copyright (c) 2002-2008 Philip Kendall - $Id: commandy.y 3503 2008-01-30 14:58:55Z pak21 $ + $Id: commandy.y 3657 2008-06-08 15:04:37Z 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 @@ -33,6 +33,7 @@ #include "debugger.h" #include "debugger_internals.h" +#include "mempool.h" #include "ui/ui.h" #include "z80/z80.h" #include "z80/z80_macros.h" @@ -48,6 +49,8 @@ int reg; libspectrum_dword integer; + char *string; + debugger_breakpoint_type bptype; debugger_breakpoint_life bplife; struct { int value1; libspectrum_word value2; } pair; @@ -56,6 +59,8 @@ } +%debug + /* Tokens as returned from the Flex scanner (commandl.l) */ /* Some tokens are named DEBUGGER_* to avoid clashes with <windows.h> */ @@ -71,10 +76,13 @@ %token BREAK %token TBREAK %token CLEAR +%token COMMANDS %token CONDITION %token CONTINUE %token DEBUGGER_DELETE %token DISASSEMBLE +%token DEBUGGER_END +%token EVENT %token EXIT %token FINISH %token IF @@ -82,6 +90,7 @@ %token NEXT %token DEBUGGER_OUT %token PORT +%token DEBUGGER_PRINT %token READ %token SET %token STEP @@ -93,6 +102,9 @@ %token <integer> NUMBER +%token <string> STRING +%token <string> VARIABLE + %token DEBUGGER_ERROR /* Derived types */ @@ -110,6 +122,9 @@ %type <exp> expressionornull %type <exp> expression; +%type <string> debuggercommand +%type <string> debuggercommands + /* Operator precedences */ /* Low precedence */ @@ -132,6 +147,7 @@ input: /* empty */ | command | error + | input '\n' command ; command: BASE number { debugger_output_base = $2; } @@ -149,7 +165,12 @@ debugger_breakpoint_add_time( DEBUGGER_BREAKPOINT_TYPE_TIME, $3, 0, $1, $4 ); } + | breakpointlife EVENT STRING ':' STRING optionalcondition { + debugger_breakpoint_add_event( DEBUGGER_BREAKPOINT_TYPE_EVENT, + $3, $5, 0, $1, $6 ); + } | CLEAR numberorpc { debugger_breakpoint_clear( $2 ); } + | COMMANDS number '\n' debuggercommands DEBUGGER_END { debugger_breakpoint_set_commands( $2, $4 ); } | CONDITION NUMBER expressionornull { debugger_breakpoint_set_condition( $2, $3 ); } @@ -164,8 +185,10 @@ } | NEXT { debugger_next(); } | DEBUGGER_OUT number NUMBER { debugger_port_write( $2, $3 ); } + | DEBUGGER_PRINT number { printf( "0x%x\n", $2 ); } | SET NUMBER number { debugger_poke( $2, $3 ); } | SET DEBUGGER_REGISTER number { debugger_register_set( $2, $3 ); } + | SET VARIABLE number { debugger_variable_set( $2, $3 ); } | STEP { debugger_step(); } ; @@ -204,66 +227,77 @@ number: expression { $$ = debugger_expression_evaluate( $1 ); } ; -expression: NUMBER { $$ = debugger_expression_new_number( $1 ); +expression: NUMBER { $$ = debugger_expression_new_number( $1, debugger_memory_pool ); if( !$$ ) YYABORT; } - | DEBUGGER_REGISTER { $$ = debugger_expression_new_register( $1 ); + | DEBUGGER_REGISTER { $$ = debugger_expression_new_register( $1, debugger_memory_pool ); if( !$$ ) YYABORT; } + | VARIABLE { $$ = debugger_expression_new_variable( $1, debugger_memory_pool ); + if( !$$ ) YYABORT; + } | '(' expression ')' { $$ = $2; } | '+' expression %prec NEGATE { $$ = $2; } | '-' expression %prec NEGATE { - $$ = debugger_expression_new_unaryop( '-', $2 ); + $$ = debugger_expression_new_unaryop( '-', $2, debugger_memory_pool ); if( !$$ ) YYABORT; } | NEGATE expression { - ... [truncated message content] |
From: <fr...@us...> - 2008-05-10 23:53:27
|
Revision: 531 http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=531&view=rev Author: fredm Date: 2008-05-10 16:53:25 -0700 (Sat, 10 May 2008) Log Message: ----------- Merge up to vendor revision 3612. Revision Links: -------------- http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=3612&view=rev Modified Paths: -------------- trunk/FuseGenerator/libspectrum.h trunk/FuseImporter/libspectrum.h trunk/README trunk/fuse/ChangeLog trunk/fuse/Makefile.am trunk/fuse/README trunk/fuse/ay.c trunk/fuse/compat/amiga/Makefile.am trunk/fuse/compat/amiga/paths.c trunk/fuse/configure.in trunk/fuse/dck.c trunk/fuse/debugger/commandl.l trunk/fuse/debugger/commandy.y trunk/fuse/debugger/debugger.c trunk/fuse/debugger/debugger_internals.h trunk/fuse/disk/Makefile.am trunk/fuse/disk/beta.c trunk/fuse/disk/disk.c trunk/fuse/disk/disk.h trunk/fuse/disk/fdd.c trunk/fuse/disk/fdd.h trunk/fuse/disk/plusd.c trunk/fuse/disk/wd_fdc.c trunk/fuse/disk/wd_fdc.h trunk/fuse/display.c trunk/fuse/divide.c trunk/fuse/event.c trunk/fuse/event.h trunk/fuse/fuse.cpp trunk/fuse/fuse.h trunk/fuse/fusepb/English.lproj/InfoPlist.strings trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj trunk/fuse/fusepb/Info-Fuse.plist trunk/fuse/fusepb/controllers/FuseController.h trunk/fuse/fusepb/controllers/FuseController.m trunk/fuse/fusepb/models/Emulator.h trunk/fuse/fusepb/models/Emulator.m trunk/fuse/fusepb/nibs/MainMenu.nib/classes.nib trunk/fuse/fusepb/nibs/MainMenu.nib/info.nib trunk/fuse/fusepb/nibs/MainMenu.nib/keyedobjects.nib trunk/fuse/fusepb/nibs/Preferences.nib/keyedobjects.nib trunk/fuse/fusepb/views/DisplayOpenGLView.h trunk/fuse/fusepb/views/DisplayOpenGLView.m trunk/fuse/hacking/ChangeLog trunk/fuse/hacking/cvs-tags trunk/fuse/if1.c trunk/fuse/input.c trunk/fuse/kempmouse.c trunk/fuse/kempmouse.h trunk/fuse/keysyms.pl trunk/fuse/loader.c trunk/fuse/loader.h trunk/fuse/machine.c trunk/fuse/machine.h trunk/fuse/machines/pentagon.c trunk/fuse/machines/pentagon.h trunk/fuse/machines/pentagon1024.c trunk/fuse/machines/pentagon512.c trunk/fuse/machines/scorpion.c trunk/fuse/machines/spec128.c trunk/fuse/machines/spec128.h trunk/fuse/machines/spec16.c trunk/fuse/machines/spec48.c trunk/fuse/machines/spec48.h trunk/fuse/machines/spec_se.c trunk/fuse/machines/specplus2.c trunk/fuse/machines/specplus2a.c trunk/fuse/machines/specplus3.c trunk/fuse/machines/specplus3.h trunk/fuse/machines/specplus3e.c trunk/fuse/machines/tc2048.c trunk/fuse/machines/tc2068.c trunk/fuse/machines/tc2068.h trunk/fuse/machines/ts2068.c trunk/fuse/man/fuse.1 trunk/fuse/memory.c trunk/fuse/memory.h trunk/fuse/menu.c trunk/fuse/menu_data.dat trunk/fuse/periph.c trunk/fuse/roms/plus3e-0.rom trunk/fuse/roms/plus3e-1.rom trunk/fuse/roms/plus3e-2.rom trunk/fuse/settings.dat trunk/fuse/settings.pl trunk/fuse/simpleide.c trunk/fuse/sound/Makefile.am trunk/fuse/sound/aosound.c trunk/fuse/spectrum.c trunk/fuse/spectrum.h trunk/fuse/tape.c trunk/fuse/tape.h trunk/fuse/timer/Makefile.am trunk/fuse/ui/Makefile.am trunk/fuse/ui/fb/fbkeyboard.c trunk/fuse/ui/gtk/Makefile.am trunk/fuse/ui/gtk/fileselector.c trunk/fuse/ui/gtk/gtkdisplay.c trunk/fuse/ui/options.dat trunk/fuse/ui/scaler/Makefile.am trunk/fuse/ui/sdl/Makefile.am trunk/fuse/ui/sdl/sdldisplay.c trunk/fuse/ui/sdl/sdlkeyboard.c trunk/fuse/ui/svga/svgakeyboard.c trunk/fuse/ui/win32/Makefile.am trunk/fuse/ui/win32/debugger.c trunk/fuse/ui/win32/debugger.h trunk/fuse/ui/win32/debugger.rc trunk/fuse/ui/win32/error.c trunk/fuse/ui/win32/icons/Makefile.am trunk/fuse/ui/win32/options-header.pl trunk/fuse/ui/win32/options-resource.pl trunk/fuse/ui/win32/options.pl trunk/fuse/ui/win32/pokefinder.c trunk/fuse/ui/win32/pokefinder.h trunk/fuse/ui/win32/pokefinder.rc trunk/fuse/ui/win32/statusbar.c trunk/fuse/ui/win32/win32display.c trunk/fuse/ui/win32/win32display.h trunk/fuse/ui/win32/win32internals.h trunk/fuse/ui/win32/win32keyboard.h trunk/fuse/ui/win32/win32ui.c trunk/fuse/ui/xlib/xdisplay.c trunk/fuse/ui/xlib/xerror.c trunk/fuse/ui/xlib/xkeyboard.c trunk/fuse/ui.c trunk/fuse/ula.c trunk/fuse/utils.c trunk/fuse/windres.rc trunk/fuse/z80/z80.c trunk/fuse/z80/z80_ops.c trunk/libspectrum/config.h trunk/libspectrum/libspectrum/ChangeLog trunk/libspectrum/libspectrum/README trunk/libspectrum/libspectrum/accessor.pl trunk/libspectrum/libspectrum/configure.in trunk/libspectrum/libspectrum/doc/libspectrum.txt trunk/libspectrum/libspectrum/hacking/ChangeLog trunk/libspectrum/libspectrum/ide.c trunk/libspectrum/libspectrum/internals.h trunk/libspectrum/libspectrum/libspectrum.c trunk/libspectrum/libspectrum/libspectrum.h.in trunk/libspectrum/libspectrum/sna.c trunk/libspectrum/libspectrum/snap_accessors.txt trunk/libspectrum/libspectrum/snapshot.c trunk/libspectrum/libspectrum/szx.c trunk/libspectrum/libspectrum/tape.c trunk/libspectrum/libspectrum/test/Makefile.am trunk/libspectrum/libspectrum/test/edges.c trunk/libspectrum/libspectrum/test/test.h trunk/libspectrum/libspectrum/test/test15.c trunk/libspectrum/libspectrum/z80.c trunk/libspectrum/libspectrum.h Added Paths: ----------- trunk/fuse/compat/amiga/osname.c trunk/fuse/disk/upd_fdc.c trunk/fuse/disk/upd_fdc.h trunk/fuse/fuse.c trunk/fuse/fusepb/main.m trunk/fuse/fusepb/scaler/scalers16.c trunk/fuse/sound/win32sound.c trunk/fuse/ui/scaler/scaler.c trunk/fuse/ui/scaler/scaler.h trunk/fuse/ui/scaler/scaler_hq2x.c trunk/fuse/ui/scaler/scaler_hq3x.c trunk/fuse/ui/scaler/scaler_internals.h trunk/fuse/ui/scaler/scalers.c trunk/fuse/ui/ui.h trunk/fuse/ui/widget/ trunk/fuse/ui/widget/Makefile.am trunk/fuse/ui/widget/browse.c trunk/fuse/ui/widget/debugger.c trunk/fuse/ui/widget/error.c trunk/fuse/ui/widget/filesel.c trunk/fuse/ui/widget/fuse.font.sbf trunk/fuse/ui/widget/memory.c trunk/fuse/ui/widget/menu.c trunk/fuse/ui/widget/mkfusefont.pl trunk/fuse/ui/widget/options-header.pl trunk/fuse/ui/widget/options.pl trunk/fuse/ui/widget/picture.c trunk/fuse/ui/widget/pokefinder.c trunk/fuse/ui/widget/query.c trunk/fuse/ui/widget/roms.c trunk/fuse/ui/widget/select.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/win32/binary.c trunk/fuse/ui/win32/binary.h trunk/fuse/ui/win32/binary.rc trunk/fuse/ui/win32/browse.c trunk/fuse/ui/win32/browse.h trunk/fuse/ui/win32/browse.rc trunk/fuse/ui/win32/icons/mdr_active.bmp trunk/fuse/ui/win32/icons/mdr_inactive.bmp trunk/fuse/ui/win32/icons/mouse_active.bmp trunk/fuse/ui/win32/icons/mouse_inactive.bmp trunk/fuse/ui/win32/icons/tape_marker_mask.bmp trunk/fuse/ui/win32/memorybrowser.c trunk/fuse/ui/win32/memorybrowser.h trunk/fuse/ui/win32/memorybrowser.rc trunk/fuse/ui/win32/picture.c trunk/fuse/ui/win32/picture.h trunk/fuse/ui/win32/picture.rc trunk/fuse/ui/win32/rollback.c trunk/fuse/ui/win32/rollback.h trunk/fuse/ui/win32/rollback.rc trunk/fuse/ui/win32/roms.c trunk/fuse/ui/win32/roms.h trunk/fuse/ui/win32/roms.rc trunk/fuse/ui/win32/select_template.h trunk/fuse/ui/win32/select_template.rc trunk/fuse/ui/win32/statusbar.rc trunk/fuse/ui/win32/win32joystick.c trunk/fuse/ui/win32/win32joystick.h trunk/fuse/ui/win32/win32joystick.rc trunk/fuse/ui/win32/win32mouse.c trunk/fuse/unittests/ trunk/fuse/unittests/Makefile.am trunk/fuse/unittests/unittests.c trunk/fuse/unittests/unittests.h trunk/fuse/winfuse.ico Removed Paths: ------------- trunk/fuse/fusepb/main.mm trunk/fuse/fusepb/scaler/hq2x.cpp trunk/fuse/fusepb/scaler/hq2x.h trunk/fuse/fusepb/scaler/hq3x.cpp trunk/fuse/fusepb/scaler/hq3x.h trunk/fuse/fusepb/scaler/intern.h trunk/fuse/fusepb/scaler/scalers16.cpp trunk/fuse/hacking/win32_todo.txt trunk/fuse/ui/scaler/scaler.c trunk/fuse/ui/scaler/scaler.h trunk/fuse/ui/scaler/scaler_internals.h trunk/fuse/ui/scaler/scalers.cpp trunk/fuse/ui/ui.h trunk/fuse/ui/widget/Makefile.am trunk/fuse/ui/widget/browse.c trunk/fuse/ui/widget/debugger.c trunk/fuse/ui/widget/error.c trunk/fuse/ui/widget/filesel.c trunk/fuse/ui/widget/fuse.font.sbf trunk/fuse/ui/widget/memory.c trunk/fuse/ui/widget/menu.c trunk/fuse/ui/widget/mkfusefont.pl trunk/fuse/ui/widget/options-header.pl trunk/fuse/ui/widget/options.pl trunk/fuse/ui/widget/picture.c trunk/fuse/ui/widget/pokefinder.c trunk/fuse/ui/widget/query.c trunk/fuse/ui/widget/roms.c trunk/fuse/ui/widget/select.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/win32/del_o.bat trunk/fuse/ui/win32/menu_data.c trunk/fuse/ui/win32/menu_data.h trunk/fuse/ui/win32/menu_data.rc trunk/fuse/ui/win32/win32ui.rc trunk/fuse/unittests/Makefile.am trunk/fuse/unittests/unittests.c trunk/fuse/unittests/unittests.h trunk/fuse/widget/ trunk/lib765/ trunk/libspectrum/libspectrum/TODO Modified: trunk/FuseGenerator/libspectrum.h =================================================================== --- trunk/FuseGenerator/libspectrum.h 2008-05-07 12:29:58 UTC (rev 530) +++ trunk/FuseGenerator/libspectrum.h 2008-05-10 23:53:25 UTC (rev 531) @@ -1,7 +1,7 @@ /* libspectrum.h: the library for dealing with ZX Spectrum emulator files Copyright (c) 2001-2007 Philip Kendall, Darren Salt, Fredrick Meunier - $Id: libspectrum.h.in 3426 2007-12-18 19:29:30Z zubzero $ + $Id: libspectrum.h.in 3595 2008-04-01 10:51:58Z pak21 $ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -613,6 +613,8 @@ void WIN32_DLL libspectrum_snap_set_beta_active( libspectrum_snap *snap, int beta_active ); int WIN32_DLL libspectrum_snap_beta_paged( libspectrum_snap *snap ); void WIN32_DLL libspectrum_snap_set_beta_paged( libspectrum_snap *snap, int beta_paged ); +int WIN32_DLL libspectrum_snap_beta_custom_rom( libspectrum_snap *snap ); +void WIN32_DLL libspectrum_snap_set_beta_custom_rom( libspectrum_snap *snap, int beta_custom_rom ); int WIN32_DLL libspectrum_snap_beta_direction( libspectrum_snap *snap ); void WIN32_DLL libspectrum_snap_set_beta_direction( libspectrum_snap *snap, int beta_direction ); libspectrum_byte WIN32_DLL libspectrum_snap_beta_system( libspectrum_snap *snap ); @@ -625,6 +627,8 @@ void WIN32_DLL libspectrum_snap_set_beta_data( libspectrum_snap *snap, libspectrum_byte beta_data ); libspectrum_byte WIN32_DLL libspectrum_snap_beta_status( libspectrum_snap *snap ); void WIN32_DLL libspectrum_snap_set_beta_status( libspectrum_snap *snap, libspectrum_byte beta_status ); +libspectrum_byte WIN32_DLL * libspectrum_snap_beta_rom( libspectrum_snap *snap, int idx ); +void WIN32_DLL libspectrum_snap_set_beta_rom( libspectrum_snap *snap, int idx, libspectrum_byte* beta_rom ); int WIN32_DLL libspectrum_snap_plusd_active( libspectrum_snap *snap ); void WIN32_DLL libspectrum_snap_set_plusd_active( libspectrum_snap *snap, int plusd_active ); int WIN32_DLL libspectrum_snap_plusd_paged( libspectrum_snap *snap ); @@ -647,6 +651,14 @@ void WIN32_DLL libspectrum_snap_set_plusd_rom( libspectrum_snap *snap, int idx, libspectrum_byte* plusd_rom ); libspectrum_byte WIN32_DLL * libspectrum_snap_plusd_ram( libspectrum_snap *snap, int idx ); void WIN32_DLL libspectrum_snap_set_plusd_ram( libspectrum_snap *snap, int idx, libspectrum_byte* plusd_ram ); +int WIN32_DLL libspectrum_snap_custom_rom( libspectrum_snap *snap ); +void WIN32_DLL libspectrum_snap_set_custom_rom( libspectrum_snap *snap, int custom_rom ); +size_t WIN32_DLL libspectrum_snap_custom_rom_pages( libspectrum_snap *snap ); +void WIN32_DLL libspectrum_snap_set_custom_rom_pages( libspectrum_snap *snap, size_t custom_rom_pages ); +libspectrum_byte WIN32_DLL * libspectrum_snap_roms( libspectrum_snap *snap, int idx ); +void WIN32_DLL libspectrum_snap_set_roms( libspectrum_snap *snap, int idx, libspectrum_byte* roms ); +size_t WIN32_DLL libspectrum_snap_rom_length( libspectrum_snap *snap, int idx ); +void WIN32_DLL libspectrum_snap_set_rom_length( libspectrum_snap *snap, int idx, size_t rom_length ); libspectrum_byte WIN32_DLL * libspectrum_snap_pages( libspectrum_snap *snap, int idx ); void WIN32_DLL libspectrum_snap_set_pages( libspectrum_snap *snap, int idx, libspectrum_byte* pages ); libspectrum_byte WIN32_DLL * libspectrum_snap_slt( libspectrum_snap *snap, int idx ); @@ -709,7 +721,26 @@ void WIN32_DLL libspectrum_snap_set_joystick_list( libspectrum_snap *snap, int idx, libspectrum_joystick joystick_list ); int WIN32_DLL libspectrum_snap_joystick_inputs( libspectrum_snap *snap, int idx ); void WIN32_DLL libspectrum_snap_set_joystick_inputs( libspectrum_snap *snap, int idx, int joystick_inputs ); +int WIN32_DLL libspectrum_snap_kempston_mouse_active( libspectrum_snap *snap ); +void WIN32_DLL libspectrum_snap_set_kempston_mouse_active( libspectrum_snap *snap, int kempston_mouse_active ); +int WIN32_DLL libspectrum_snap_simpleide_active( libspectrum_snap *snap ); +void WIN32_DLL libspectrum_snap_set_simpleide_active( libspectrum_snap *snap, int simpleide_active ); +int WIN32_DLL libspectrum_snap_divide_active( libspectrum_snap *snap ); +void WIN32_DLL libspectrum_snap_set_divide_active( libspectrum_snap *snap, int divide_active ); +int WIN32_DLL libspectrum_snap_divide_eprom_writeprotect( libspectrum_snap *snap); +void WIN32_DLL libspectrum_snap_set_divide_eprom_writeprotect( libspectrum_snap *snap, int divide_eprom_writeprotect ); +int WIN32_DLL libspectrum_snap_divide_paged( libspectrum_snap *snap ); +void WIN32_DLL libspectrum_snap_set_divide_paged( libspectrum_snap *snap, int divide_paged ); +libspectrum_byte WIN32_DLL libspectrum_snap_divide_control( libspectrum_snap *snap ); +void WIN32_DLL libspectrum_snap_set_divide_control( libspectrum_snap *snap, libspectrum_byte divide_control ); +size_t WIN32_DLL libspectrum_snap_divide_pages( libspectrum_snap *snap ); +void WIN32_DLL libspectrum_snap_set_divide_pages( libspectrum_snap *snap, size_t divide_pages ); +libspectrum_byte WIN32_DLL * libspectrum_snap_divide_eprom( libspectrum_snap *snap, int idx ); +void WIN32_DLL libspectrum_snap_set_divide_eprom( libspectrum_snap *snap, int idx, libspectrum_byte* divide_eprom ); +libspectrum_byte WIN32_DLL * libspectrum_snap_divide_ram( libspectrum_snap *snap , int idx ); +void WIN32_DLL libspectrum_snap_set_divide_ram( libspectrum_snap *snap, int idx, libspectrum_byte* divide_ram ); + /* DEPRECATED: use libspectrum_snap_read() instead */ DEPRECATED libspectrum_error WIN32_DLL @@ -786,6 +817,8 @@ extern const int WIN32_DLL LIBSPECTRUM_TAPE_FLAGS_NO_EDGE; /* Edge isn't really an edge */ extern const int WIN32_DLL LIBSPECTRUM_TAPE_FLAGS_LEVEL_LOW; /* Set level low */ extern const int WIN32_DLL LIBSPECTRUM_TAPE_FLAGS_LEVEL_HIGH; /* Set level high */ +extern const int WIN32_DLL LIBSPECTRUM_TAPE_FLAGS_LENGTH_SHORT; +extern const int WIN32_DLL LIBSPECTRUM_TAPE_FLAGS_LENGTH_LONG; /* The states which a block can be in */ typedef enum libspectrum_tape_state_type { Modified: trunk/FuseImporter/libspectrum.h =================================================================== --- trunk/FuseImporter/libspectrum.h 2008-05-07 12:29:58 UTC (rev 530) +++ trunk/FuseImporter/libspectrum.h 2008-05-10 23:53:25 UTC (rev 531) @@ -1,7 +1,7 @@ /* libspectrum.h: the library for dealing with ZX Spectrum emulator files Copyright (c) 2001-2007 Philip Kendall, Darren Salt, Fredrick Meunier - $Id: libspectrum.h.in 3426 2007-12-18 19:29:30Z zubzero $ + $Id: libspectrum.h.in 3595 2008-04-01 10:51:58Z pak21 $ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -613,6 +613,8 @@ void WIN32_DLL libspectrum_snap_set_beta_active( libspectrum_snap *snap, int beta_active ); int WIN32_DLL libspectrum_snap_beta_paged( libspectrum_snap *snap ); void WIN32_DLL libspectrum_snap_set_beta_paged( libspectrum_snap *snap, int beta_paged ); +int WIN32_DLL libspectrum_snap_beta_custom_rom( libspectrum_snap *snap ); +void WIN32_DLL libspectrum_snap_set_beta_custom_rom( libspectrum_snap *snap, int beta_custom_rom ); int WIN32_DLL libspectrum_snap_beta_direction( libspectrum_snap *snap ); void WIN32_DLL libspectrum_snap_set_beta_direction( libspectrum_snap *snap, int beta_direction ); libspectrum_byte WIN32_DLL libspectrum_snap_beta_system( libspectrum_snap *snap ); @@ -625,6 +627,8 @@ void WIN32_DLL libspectrum_snap_set_beta_data( libspectrum_snap *snap, libspectrum_byte beta_data ); libspectrum_byte WIN32_DLL libspectrum_snap_beta_status( libspectrum_snap *snap ); void WIN32_DLL libspectrum_snap_set_beta_status( libspectrum_snap *snap, libspectrum_byte beta_status ); +libspectrum_byte WIN32_DLL * libspectrum_snap_beta_rom( libspectrum_snap *snap, int idx ); +void WIN32_DLL libspectrum_snap_set_beta_rom( libspectrum_snap *snap, int idx, libspectrum_byte* beta_rom ); int WIN32_DLL libspectrum_snap_plusd_active( libspectrum_snap *snap ); void WIN32_DLL libspectrum_snap_set_plusd_active( libspectrum_snap *snap, int plusd_active ); int WIN32_DLL libspectrum_snap_plusd_paged( libspectrum_snap *snap ); @@ -647,6 +651,14 @@ void WIN32_DLL libspectrum_snap_set_plusd_rom( libspectrum_snap *snap, int idx, libspectrum_byte* plusd_rom ); libspectrum_byte WIN32_DLL * libspectrum_snap_plusd_ram( libspectrum_snap *snap, int idx ); void WIN32_DLL libspectrum_snap_set_plusd_ram( libspectrum_snap *snap, int idx, libspectrum_byte* plusd_ram ); +int WIN32_DLL libspectrum_snap_custom_rom( libspectrum_snap *snap ); +void WIN32_DLL libspectrum_snap_set_custom_rom( libspectrum_snap *snap, int custom_rom ); +size_t WIN32_DLL libspectrum_snap_custom_rom_pages( libspectrum_snap *snap ); +void WIN32_DLL libspectrum_snap_set_custom_rom_pages( libspectrum_snap *snap, size_t custom_rom_pages ); +libspectrum_byte WIN32_DLL * libspectrum_snap_roms( libspectrum_snap *snap, int idx ); +void WIN32_DLL libspectrum_snap_set_roms( libspectrum_snap *snap, int idx, libspectrum_byte* roms ); +size_t WIN32_DLL libspectrum_snap_rom_length( libspectrum_snap *snap, int idx ); +void WIN32_DLL libspectrum_snap_set_rom_length( libspectrum_snap *snap, int idx, size_t rom_length ); libspectrum_byte WIN32_DLL * libspectrum_snap_pages( libspectrum_snap *snap, int idx ); void WIN32_DLL libspectrum_snap_set_pages( libspectrum_snap *snap, int idx, libspectrum_byte* pages ); libspectrum_byte WIN32_DLL * libspectrum_snap_slt( libspectrum_snap *snap, int idx ); @@ -709,7 +721,26 @@ void WIN32_DLL libspectrum_snap_set_joystick_list( libspectrum_snap *snap, int idx, libspectrum_joystick joystick_list ); int WIN32_DLL libspectrum_snap_joystick_inputs( libspectrum_snap *snap, int idx ); void WIN32_DLL libspectrum_snap_set_joystick_inputs( libspectrum_snap *snap, int idx, int joystick_inputs ); +int WIN32_DLL libspectrum_snap_kempston_mouse_active( libspectrum_snap *snap ); +void WIN32_DLL libspectrum_snap_set_kempston_mouse_active( libspectrum_snap *snap, int kempston_mouse_active ); +int WIN32_DLL libspectrum_snap_simpleide_active( libspectrum_snap *snap ); +void WIN32_DLL libspectrum_snap_set_simpleide_active( libspectrum_snap *snap, int simpleide_active ); +int WIN32_DLL libspectrum_snap_divide_active( libspectrum_snap *snap ); +void WIN32_DLL libspectrum_snap_set_divide_active( libspectrum_snap *snap, int divide_active ); +int WIN32_DLL libspectrum_snap_divide_eprom_writeprotect( libspectrum_snap *snap); +void WIN32_DLL libspectrum_snap_set_divide_eprom_writeprotect( libspectrum_snap *snap, int divide_eprom_writeprotect ); +int WIN32_DLL libspectrum_snap_divide_paged( libspectrum_snap *snap ); +void WIN32_DLL libspectrum_snap_set_divide_paged( libspectrum_snap *snap, int divide_paged ); +libspectrum_byte WIN32_DLL libspectrum_snap_divide_control( libspectrum_snap *snap ); +void WIN32_DLL libspectrum_snap_set_divide_control( libspectrum_snap *snap, libspectrum_byte divide_control ); +size_t WIN32_DLL libspectrum_snap_divide_pages( libspectrum_snap *snap ); +void WIN32_DLL libspectrum_snap_set_divide_pages( libspectrum_snap *snap, size_t divide_pages ); +libspectrum_byte WIN32_DLL * libspectrum_snap_divide_eprom( libspectrum_snap *snap, int idx ); +void WIN32_DLL libspectrum_snap_set_divide_eprom( libspectrum_snap *snap, int idx, libspectrum_byte* divide_eprom ); +libspectrum_byte WIN32_DLL * libspectrum_snap_divide_ram( libspectrum_snap *snap , int idx ); +void WIN32_DLL libspectrum_snap_set_divide_ram( libspectrum_snap *snap, int idx, libspectrum_byte* divide_ram ); + /* DEPRECATED: use libspectrum_snap_read() instead */ DEPRECATED libspectrum_error WIN32_DLL @@ -786,6 +817,8 @@ extern const int WIN32_DLL LIBSPECTRUM_TAPE_FLAGS_NO_EDGE; /* Edge isn't really an edge */ extern const int WIN32_DLL LIBSPECTRUM_TAPE_FLAGS_LEVEL_LOW; /* Set level low */ extern const int WIN32_DLL LIBSPECTRUM_TAPE_FLAGS_LEVEL_HIGH; /* Set level high */ +extern const int WIN32_DLL LIBSPECTRUM_TAPE_FLAGS_LENGTH_SHORT; +extern const int WIN32_DLL LIBSPECTRUM_TAPE_FLAGS_LENGTH_LONG; /* The states which a block can be in */ typedef enum libspectrum_tape_state_type { Modified: trunk/README =================================================================== --- trunk/README 2008-05-07 12:29:58 UTC (rev 530) +++ trunk/README 2008-05-10 23:53:25 UTC (rev 531) @@ -22,9 +22,6 @@ cd audiofile xcodebuild -configuration Deployment cd .. -cd lib765 -xcodebuild -configuration Deployment -cd .. cd libgcrypt xcodebuild -configuration Deployment cd .. Modified: trunk/fuse/ChangeLog =================================================================== --- trunk/fuse/ChangeLog 2008-05-07 12:29:58 UTC (rev 530) +++ trunk/fuse/ChangeLog 2008-05-10 23:53:25 UTC (rev 531) @@ -878,4 +878,4 @@ * Version 0.1.0 released. -$Id: ChangeLog 3462 2008-01-04 09:34:40Z pak21 $ +$Id: ChangeLog 3482 2008-01-07 12:32:26Z pak21 $ Modified: trunk/fuse/Makefile.am =================================================================== --- trunk/fuse/Makefile.am 2008-05-07 12:29:58 UTC (rev 530) +++ trunk/fuse/Makefile.am 2008-05-10 23:53:25 UTC (rev 531) @@ -1,7 +1,7 @@ # Process this file with automake to produce Makefile.in -## Copyright (c) 1999-2004 Philip Kendall +## Copyright (c) 1999-2008 Philip Kendall -## $Id: Makefile.am 3318 2007-11-21 19:25:31Z zubzero $ +## $Id: Makefile.am 3609 2008-05-01 13:17:56Z 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 @@ -38,7 +38,7 @@ sound \ timer \ ui \ - @WIDGET@ \ + unittests \ z80 DIST_SUBDIRS = debugger \ @@ -53,7 +53,7 @@ sound \ timer \ ui \ - widget \ + unittests \ z80 fuse_SOURCES = ay.c \ @@ -112,20 +112,21 @@ fuse_LDADD = debugger/libdebugger.a \ @UI_LIBS@ \ +machines/libmachines.a \ disk/libdisk.a \ -machines/libmachines.a \ pokefinder/libpokefinder.a \ sound/libsound.a \ ui/scaler/libscaler.a \ +unittests/libunittests.a \ debugger/libdebugger.a \ timer/libtimer.a \ z80/libz80.a \ -@DSKLIBS@ \ @LIBSPEC_LIBS@ \ @GLIB_LIBS@ \ @PNG_LIBS@ \ @SOUND_LIBS@ \ @SAMPLERATE_LIBS@ \ +@SDL_LIBS@ \ @X_LIBS@ \ @XML_LIBS@ \ compat/@COMPAT_OSNAME@/libcompatos.a \ @@ -136,6 +137,7 @@ debugger/libdebugger.a \ machines/libmachines.a \ sound/libsound.a \ + unittests/libunittests.a\ z80/libz80.a \ @WINDRES_OBJ@ @@ -150,8 +152,8 @@ settings.h: settings-header.pl settings.dat @PERL@ -I$(srcdir)/perl $(srcdir)/settings-header.pl $(srcdir)/settings.dat > $@.tmp && mv $@.tmp $@ -INCLUDES = @GLIB_CFLAGS@ @GTK_CFLAGS@ @LIBSPEC_CFLAGS@ @DSK_CFLAGS@\ -@XML_CFLAGS@ @SAMPLERATE_CFLAGS@ -DFUSEDATADIR="\"${pkgdatadir}\"" +INCLUDES = @GLIB_CFLAGS@ @GTK_CFLAGS@ @LIBSPEC_CFLAGS@ \ +@XML_CFLAGS@ @SAMPLERATE_CFLAGS@ -DFUSEDATADIR="\"${pkgdatadir}\"" @SDL_CFLAGS@ noinst_HEADERS = ay.h \ bitmap.h \ @@ -201,7 +203,8 @@ menu_data.pl \ settings.pl \ settings-header.pl \ - settings.dat + settings.dat \ + winfuse.ico CLEANFILES = settings.c \ settings.h Modified: trunk/fuse/README =================================================================== --- trunk/fuse/README 2008-05-07 12:29:58 UTC (rev 530) +++ trunk/fuse/README 2008-05-10 23:53:25 UTC (rev 531) @@ -40,11 +40,6 @@ Optional: -* If you want +3 and +3e support, you'll need John Elliott's lib765 - installed; get it from http://www.seasip.demon.co.uk/Unix/LibDsk/ - If you also have libdsk (from the same location) installed, you'll - also get support for extended .dsk files (see 'THE .DSK FORMAT' - section in fuse(1) for more details on this). * Other libraries will give you some extended functionality: * libgcrypt: the ability to digitally sign input recordings (note that Fuse requires version 1.1.42 or later). @@ -117,8 +112,7 @@ --------------------------------- The native Cocoa port by Fredrick Meunier <fr...@sp...> comes as -a set of Xcode projects for libbz2, lib765, libdsk, libgcrypt, -libspectrum and Fuse itself. +a set of Xcode projects for libgcrypt, libspectrum and Fuse itself. Closing comments ---------------- @@ -149,4 +143,4 @@ Philip Kendall <phi...@sh...> 5 January 2008 -$Id: README 3462 2008-01-04 09:34:40Z pak21 $ +$Id: README 3584 2008-03-25 10:27:30Z fredm $ Modified: trunk/fuse/ay.c =================================================================== --- trunk/fuse/ay.c 2008-05-07 12:29:58 UTC (rev 530) +++ trunk/fuse/ay.c 2008-05-10 23:53:25 UTC (rev 531) @@ -1,7 +1,7 @@ /* ay.c: AY-8-3912 routines Copyright (c) 1999-2004 Philip Kendall - $Id: ay.c 3390 2007-12-03 12:59:54Z fredm $ + $Id: ay.c 3494 2008-01-15 16:37:50Z 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 @@ -66,7 +66,7 @@ } static void -ay_reset( int hard_reset ) +ay_reset( int hard_reset GCC_UNUSED ) { ayinfo *ay = &machine_current->ay; Modified: trunk/fuse/compat/amiga/Makefile.am =================================================================== --- trunk/fuse/compat/amiga/Makefile.am 2008-05-07 12:29:58 UTC (rev 530) +++ trunk/fuse/compat/amiga/Makefile.am 2008-05-10 23:53:25 UTC (rev 531) @@ -1,7 +1,7 @@ ## Process this file with automake to produce Makefile.in ## Copyright (c) 2007 Philip Kendall -## $Id: Makefile.am 3115 2007-08-19 02:49:14Z fredm $ +## $Id: Makefile.am 3578 2008-03-22 20:51:36Z zubzero $ ## 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 @@ -27,7 +27,7 @@ noinst_LIBRARIES = libcompatos.a -libcompatos_a_SOURCES = ../unix/osname.c \ +libcompatos_a_SOURCES = osname.c \ paths.c INCLUDES = @GLIB_CFLAGS@ @GTK_CFLAGS@ @LIBSPEC_CFLAGS@ Copied: trunk/fuse/compat/amiga/osname.c (from rev 530, vendor/fuse-emulator/current/fuse/compat/amiga/osname.c) =================================================================== --- trunk/fuse/compat/amiga/osname.c (rev 0) +++ trunk/fuse/compat/amiga/osname.c 2008-05-10 23:53:25 UTC (rev 531) @@ -0,0 +1,61 @@ +/* osname.c: Get a representation of the OS we're running on + Copyright (c) 1999-2007 Philip Kendall + + $Id: osname.c 3578 2008-03-22 20:51:36Z zubzero $ + + 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 <errno.h> +#include <stdlib.h> +#include <string.h> +#include <proto/exec.h> +#include <proto/expansion.h> + +#include "ui/ui.h" + +struct Library *ExpansionBase; +struct ExpansionIFace *IExpansion; + +int compat_osname( char *buffer, size_t length ) +{ + STRPTR machine; + + if( ExpansionBase = IExec->OpenLibrary( "expansion.library", 52 ) ) { + if( IExpansion = ( struct ExpansionIFace * ) IExec->GetInterface( ExpansionBase,"main",1,NULL ) ) { + + IExpansion->GetMachineInfoTags( GMIT_MachineString, &machine, + TAG_DONE ); + + snprintf( buffer, length, "%s %s %s", "AmigaOS", machine, "4.0" ); + + IExec->DropInterface( ( struct Interface * )IExpansion ); + } + IExec->CloseLibrary( ExpansionBase ); + } + else + { + return 1; + } + + return 0; +} Modified: trunk/fuse/compat/amiga/paths.c =================================================================== --- trunk/fuse/compat/amiga/paths.c 2008-05-07 12:29:58 UTC (rev 530) +++ trunk/fuse/compat/amiga/paths.c 2008-05-10 23:53:25 UTC (rev 531) @@ -1,7 +1,7 @@ /* paths.c: Path-related compatibility routines Copyright (c) 1999-2007 Philip Kendall - $Id: paths.c 3253 2007-10-26 02:02:17Z zubzero $ + $Id: paths.c 3578 2008-03-22 20:51:36Z zubzero $ 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.in =================================================================== --- trunk/fuse/configure.in 2008-05-07 12:29:58 UTC (rev 530) +++ trunk/fuse/configure.in 2008-05-10 23:53:25 UTC (rev 531) @@ -1,5 +1,5 @@ dnl Process this file with autoconf to produce a configure script. -dnl $Id: configure.in 3429 2007-12-18 20:02:35Z zubzero $ +dnl $Id: configure.in 3609 2008-05-01 13:17:56Z 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 @@ -113,7 +113,7 @@ AC_DEFINE([USE_WIDGET], 1, [Defined if we're using a widget-based UI]) UI=svga; WIDGET=widget; - UI_LIBS="ui/svga/libuisvga.a widget/libwidget.a", + UI_LIBS="ui/svga/libuisvga.a ui/widget/libwidget.a", AC_MSG_ERROR([svgalib not found])) fi @@ -129,7 +129,7 @@ AC_DEFINE([UI_FB], 1, [Defined if framebuffer UI in use]) AC_DEFINE([USE_WIDGET], 1, [Defined if we're using a widget-based UI]) UI=fb; WIDGET=widget; - UI_LIBS="ui/fb/libuifb.a widget/libwidget.a" + UI_LIBS="ui/fb/libuifb.a ui/widget/libwidget.a" dnl Look for libgpm (default=yes) AC_MSG_CHECKING(whether gpm requested) AC_ARG_WITH(gpm, @@ -162,35 +162,11 @@ AC_DEFINE([USE_WIDGET], 1, [Defined if we're using a widget-based UI]) UI=sdl; WIDGET=widget; - UI_LIBS="ui/sdl/libuisdl.a widget/libwidget.a", + UI_LIBS="ui/sdl/libuisdl.a ui/widget/libwidget.a", AC_MSG_ERROR([SDL version $SDL_VERSION not found])) - CFLAGS="$CFLAGS $SDL_CFLAGS" - CXXFLAGS="$CXXFLAGS $SDL_CFLAGS" - LIBS="$LIBS $SDL_LIBS" fi fi -dnl Look for GGI (default=no) -dnl Disabled -- doesn't work and unmaintained -- PAK 20040702 -dnl if test -z "$UI"; then -dnl AC_MSG_CHECKING(whether GGI UI requested) -dnl AC_ARG_WITH(ggi, -dnl [ --with-ggi use GGI for user interface], -dnl if test "$withval" = no; then sdl=no; else ggi=yes; fi, -dnl ggi=no) -dnl AC_MSG_RESULT($ggi) -dnl if test "$ggi" = yes; then -dnl AC_CHECK_HEADER(ggi/ggi.h, -dnl AC_DEFINE([UI_GGI], 1, [Defined if GGI UI in use]) -dnl AC_DEFINE([USE_WIDGET], 1, -dnl [Defined if we're using a widget-based UI]) -dnl UI=ggi; WIDGET=widget; -dnl UI_LIBS="ui/ggi/libuiggi.a widget/libwidget.a" -dnl LIBS="$LIBS -lggi", -dnl AC_MSG_ERROR([ggi/ggi.h not found])) -dnl fi -dnl fi - dnl Look for GTK+ (default=yes) if test -z "$UI"; then AC_MSG_CHECKING(whether GTK+ UI requested) @@ -244,7 +220,7 @@ AC_DEFINE([UI_X], 1, [Defined if Xlib UI in use]) UI=xlib; WIDGET=widget; AC_DEFINE([USE_WIDGET], 1, [Defined if we're using a widget-based UI]) - UI_LIBS="ui/xlib/libuixlib.a widget/libwidget.a" + UI_LIBS="ui/xlib/libuixlib.a ui/widget/libwidget.a" fi AC_SUBST(UI) @@ -336,30 +312,6 @@ lib/tape_se.szx lib/tape_ts2068.szx]) -dnl Do we want +3 disk support? -AC_MSG_CHECKING(whether +3 disk support requested) -AC_ARG_WITH(plus3-disk, - [ --without-plus3-disk disable +3 disk support], - if test "$withval" = no; then plus3disk = no; else plus3disk=yes; fi, - plus3disk=yes) -AC_MSG_RESULT($plus3disk) -if test "$plus3disk" = yes; then - AC_ARG_WITH(plus3-disk-prefix, - [ --with-plus3-disk-prefix=PFX where the +3 libraries are installed (optional)], - DSK_CFLAGS=-I$withval/include; DSKLIBS=-L$withval/lib, - DSK_CFLAGS=""; DSK_LIBS="") - ac_save_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS $DSK_CFLAGS" - AC_CHECK_HEADERS(765.h, DSKLIBS="$DSKLIBS -l765"; lib765=yes, - AC_MSG_WARN(765.h not found - disk support disabled)) - if test "$lib765" = yes; then - AC_CHECK_HEADERS(libdsk.h, DSKLIBS="$DSKLIBS -ldsk") - fi - CPPFLAGS="$ac_save_CPPFLAGS" -fi -AC_SUBST(DSK_CFLAGS) -AC_SUBST(DSKLIBS) - dnl Check if a version of libpng which supplies png_write_png is available AC_CHECK_LIB( png, png_write_png, [AC_CHECK_HEADER( @@ -415,6 +367,14 @@ [AC_MSG_WARN(dsound.h not found - no DirectSound output)] ) +dnl Check if MS Windows Multimedia API sound is available +AC_CHECK_HEADER( + mmsystem.h, + [win32sound_available=yes], + [AC_MSG_WARN(mmsystem.h not found - no MS Windows Multimedia API sound output)], + [#include <windows.h>] +) + dnl Check if libsamplerate is available AC_MSG_CHECKING(whether libsamplerate support requested) AC_ARG_WITH(libsamplerate, @@ -446,6 +406,9 @@ if test "$dxsound_available" = yes; then SOUND_LIBADD='dxsound.$(OBJEXT)' SOUND_LIBS='-ldsound -lole32 -ldxguid' AC_MSG_RESULT(DirectX) +elif test "$win32sound_available" = yes; then + SOUND_LIBADD='win32sound.$(OBJEXT)' SOUND_LIBS='-lwinmm' + AC_MSG_RESULT(win32sound) elif test "$UI" = sdl; then SOUND_LIBADD='sdlsound.$(OBJEXT)' SOUND_LIBS='' sound_fifo=yes AC_MSG_RESULT(SDL) @@ -509,7 +472,7 @@ dnl If there is none, or you override this here, we use libjsw. dnl (svgalib appears to dislike switched joysticks on the parallel port...) case "$UI" in - svga|sdl) + svga|sdl|win32) dnl Libraries such as svgalib provide their own joystick code. AC_MSG_CHECKING([whether to use $UI's joystick support]) AC_ARG_ENABLE(ui-joystick, @@ -687,9 +650,10 @@ ui/svga/Makefile \ ui/sdl/Makefile \ ui/scaler/Makefile \ +ui/widget/Makefile \ ui/win32/Makefile \ ui/win32/icons/Makefile \ ui/xlib/Makefile \ -widget/Makefile \ +unittests/Makefile \ z80/Makefile \ z80/tests/Makefile) Modified: trunk/fuse/dck.c =================================================================== --- trunk/fuse/dck.c 2008-05-07 12:29:58 UTC (rev 530) +++ trunk/fuse/dck.c 2008-05-10 23:53:25 UTC (rev 531) @@ -1,7 +1,7 @@ /* dck.c: dock snapshot (Warajevo .DCK) handling routines Copyright (c) 2003-2004 Darren Salt, Fredrick Meunier, Philip Kendall - $Id: dck.c 2995 2007-06-17 14:31:36Z pak21 $ + $Id: dck.c 3609 2008-05-01 13:17:56Z fredm $ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -42,7 +42,6 @@ #include "ui/ui.h" #include "utils.h" #include "debugger/debugger.h" -#include "widget/widget.h" /* Dock cart inserted? */ int dck_active = 0; Modified: trunk/fuse/debugger/commandl.l =================================================================== --- trunk/fuse/debugger/commandl.l 2008-05-07 12:29:58 UTC (rev 530) +++ trunk/fuse/debugger/commandl.l 2008-05-10 23:53:25 UTC (rev 531) @@ -1,7 +1,7 @@ /* commandl.l: Debugger command lexical scanner Copyright (c) 2002 Philip Kendall - $Id: commandl.l 3032 2007-06-28 22:48:54Z zubzero $ + $Id: commandl.l 3503 2008-01-30 14:58:55Z 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 @@ -56,6 +56,7 @@ del|dele|delet|delete { return DEBUGGER_DELETE; } di|dis|disa|disas|disass|disasse|disassm|disassmb|diasassmbl|disassemble { return DISASSEMBLE; } +ex|exi|exit { return EXIT; } fi|fin|fini|finis|finish { return FINISH; } if { return IF; } i|ig|ign|igno|ignor|ignore { return DEBUGGER_IGNORE; } Modified: trunk/fuse/debugger/commandy.y =================================================================== --- trunk/fuse/debugger/commandy.y 2008-05-07 12:29:58 UTC (rev 530) +++ trunk/fuse/debugger/commandy.y 2008-05-10 23:53:25 UTC (rev 531) @@ -1,7 +1,7 @@ /* commandy.y: Parse a debugger command Copyright (c) 2002-2004 Philip Kendall - $Id: commandy.y 3115 2007-08-19 02:49:14Z fredm $ + $Id: commandy.y 3503 2008-01-30 14:58:55Z 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 @@ -75,6 +75,7 @@ %token CONTINUE %token DEBUGGER_DELETE %token DISASSEMBLE +%token EXIT %token FINISH %token IF %token DEBUGGER_IGNORE @@ -156,6 +157,7 @@ | DEBUGGER_DELETE { debugger_breakpoint_remove_all(); } | DEBUGGER_DELETE number { debugger_breakpoint_remove( $2 ); } | DISASSEMBLE number { ui_debugger_disassemble( $2 ); } + | EXIT { debugger_exit_emulator(); } | FINISH { debugger_breakpoint_exit(); } | DEBUGGER_IGNORE NUMBER number { debugger_breakpoint_ignore( $2, $3 ); Modified: trunk/fuse/debugger/debugger.c =================================================================== --- trunk/fuse/debugger/debugger.c 2008-05-07 12:29:58 UTC (rev 530) +++ trunk/fuse/debugger/debugger.c 2008-05-10 23:53:25 UTC (rev 531) @@ -1,7 +1,7 @@ /* debugger.c: Fuse's monitor/debugger Copyright (c) 2002-2004 Philip Kendall - $Id: debugger.c 3115 2007-08-19 02:49:14Z fredm $ + $Id: debugger.c 3503 2008-01-30 14:58:55Z 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 @@ -28,6 +28,7 @@ #include "debugger.h" #include "debugger_internals.h" #include "event.h" +#include "fuse.h" #include "memory.h" #include "periph.h" #include "ui/ui.h" @@ -146,3 +147,11 @@ writeport_internal( port, value ); return 0; } + +/* Exit the emulator */ +void +debugger_exit_emulator( void ) +{ + fuse_exiting = 1; + debugger_run(); +} Modified: trunk/fuse/debugger/debugger_internals.h =================================================================== --- trunk/fuse/debugger/debugger_internals.h 2008-05-07 12:29:58 UTC (rev 530) +++ trunk/fuse/debugger/debugger_internals.h 2008-05-10 23:53:25 UTC (rev 531) @@ -1,7 +1,7 @@ /* debugger_internals.h: The internals of Fuse's monitor/debugger Copyright (c) 2002-2003 Philip Kendall - $Id: debugger_internals.h 3111 2007-08-17 12:42:10Z pak21 $ + $Id: debugger_internals.h 3503 2008-01-30 14:58:55Z 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 @@ -43,6 +43,8 @@ void debugger_register_set( int which, libspectrum_word value ); const char* debugger_register_text( int which ); +void debugger_exit_emulator( void ); + /* Utility functions called by the flex scanner */ int debugger_command_input( char *buf, int *result, int max_size ); Modified: trunk/fuse/disk/Makefile.am =================================================================== --- trunk/fuse/disk/Makefile.am 2008-05-07 12:29:58 UTC (rev 530) +++ trunk/fuse/disk/Makefile.am 2008-05-10 23:53:25 UTC (rev 531) @@ -1,7 +1,7 @@ ## Process this file with automake to produce Makefile.in ## Copyright (c) 2007 Stuart Brady -## $Id: Makefile.am 3207 2007-10-19 20:04:47Z zubzero $ +## $Id: Makefile.am 3584 2008-03-25 10:27:30Z 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 @@ -34,6 +34,7 @@ disk.c \ fdd.c \ plusd.c \ + upd_fdc.c \ wd_fdc.c noinst_HEADERS = beta.h \ @@ -41,4 +42,5 @@ disk.h \ fdd.h \ plusd.h \ + upd_fdc.h \ wd_fdc.h Modified: trunk/fuse/disk/beta.c =================================================================== --- trunk/fuse/disk/beta.c 2008-05-07 12:29:58 UTC (rev 530) +++ trunk/fuse/disk/beta.c 2008-05-10 23:53:25 UTC (rev 531) @@ -1,7 +1,7 @@ /* beta.c: Routines for handling the Beta disk interface - Copyright (c) 2004-2007 Stuart Brady + Copyright (c) 2004-2008 Stuart Brady - $Id: beta.c 3400 2007-12-04 18:24:31Z zubzero $ + $Id: beta.c 3556 2008-03-15 11:11:47Z 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 @@ -78,6 +78,7 @@ static void beta_reset( int hard_reset ); static void beta_memory_map( void ); +static void beta_enabled_snapshot( libspectrum_snap *snap ); static void beta_from_snapshot( libspectrum_snap *snap ); static void beta_to_snapshot( libspectrum_snap *snap ); @@ -85,7 +86,7 @@ beta_reset, beta_memory_map, - NULL, /* XXX: beta_enabled_snapshot */ + beta_enabled_snapshot, beta_from_snapshot, beta_to_snapshot, @@ -116,19 +117,32 @@ memory_map_read[1] = memory_map_write[1] = memory_map_romcs[ 1 ]; } +static void +beta_select_drive( int i ) +{ + if( beta_fdc->current_drive != &beta_drives[ i & 0x03 ] ) { + if( beta_fdc->current_drive != NULL ) + fdd_select( &beta_fdc->current_drive->fdd, 0 ); + beta_fdc->current_drive = &beta_drives[ i & 0x03 ]; + fdd_select( &beta_fdc->current_drive->fdd, 1 ); + } +} + int beta_init( void ) { int i; wd_fdc_drive *d; - beta_fdc = wd_fdc_alloc_fdc( FD1793 ); - beta_fdc->current_drive = &beta_drives[ 0 ]; + beta_fdc = wd_fdc_alloc_fdc( FD1793, 0, WD_FLAG_BETA128 ); + beta_fdc->current_drive = NULL; for( i = 0; i < BETA_NUM_DRIVES; i++ ) { d = &beta_drives[ i ]; - fdd_init( &d->fdd, 0, 0 ); /* drive geometry 'autodetect' */ + fdd_init( &d->fdd, FDD_SHUGART, 0, 0 ); /* drive geometry 'autodetect' */ + d->disk.flag = DISK_FLAG_NONE; } + beta_select_drive( 0 ); beta_fdc->dden = 1; beta_fdc->set_intrq = NULL; @@ -142,7 +156,7 @@ } static void -beta_reset( int hard_reset ) +beta_reset( int hard_reset GCC_UNUSED ) { int i; wd_fdc_drive *d; @@ -198,7 +212,7 @@ ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_BETA_D_WP_SET, !beta_drives[ BETA_DRIVE_D ].fdd.wrprot ); - beta_fdc->current_drive = &beta_drives[ 0 ]; + beta_select_drive( 0 ); machine_current->memory_map(); beta_event_index( 0 ); @@ -283,10 +297,11 @@ beta_sp_write( libspectrum_word port GCC_UNUSED, libspectrum_byte b ) { if( !beta_active ) return; - - beta_fdc->current_drive = &beta_drives[ b & 0x03 ]; + /* reset 0x04 and then set it to reset controller */ + beta_select_drive( b & 0x03 ); /* 0x08 = block hlt, normally set */ + wd_fdc_set_hlt( beta_fdc, ( ( b & 0x08 ) ? 1 : 0 ) ); fdd_set_head( &beta_fdc->current_drive->fdd, ( ( b & 0x10 ) ? 0 : 1 ) ); /* 0x20 = density, reset = FM, set = MFM */ beta_fdc->dden = b & 0x20 ? 1 : 0; @@ -539,10 +554,16 @@ } static void +beta_enabled_snapshot( libspectrum_snap *snap ) +{ + if( libspectrum_snap_beta_active( snap ) ) + settings_current.beta128 = 1; +} + +static void beta_from_snapshot( libspectrum_snap *snap ) { - if( !( machine_current->capabilities & LIBSPECTRUM_MACHINE_CAPABILITY_TRDOS_DISK ) ) - return; + if( !libspectrum_snap_beta_active( snap ) ) return; beta_active = libspectrum_snap_beta_paged( snap ); @@ -552,6 +573,15 @@ beta_unpage(); } + if( libspectrum_snap_beta_custom_rom( snap ) && + libspectrum_snap_beta_rom( snap, 0 ) && + machine_load_rom_bank_from_buffer( + memory_map_romcs, 0, 0, + libspectrum_snap_beta_rom( snap, 0 ), + MEMORY_PAGE_SIZE * 2, + 1 ) ) + return; + beta_fdc->direction = libspectrum_snap_beta_direction( snap ); beta_cr_write ( 0x001f, 0 ); @@ -566,8 +596,29 @@ { int attached; wd_fdc *f = beta_fdc; + libspectrum_byte *buffer; + if( !periph_beta128_active ) return; + libspectrum_snap_set_beta_active( snap, 1 ); + + if( memory_map_romcs[0].source == MEMORY_SOURCE_CUSTOMROM ) { + size_t rom_length = MEMORY_PAGE_SIZE * 2; + + buffer = malloc( rom_length ); + if( !buffer ) { + ui_error( UI_ERROR_ERROR, "Out of memory at %s:%d", __FILE__, __LINE__ ); + return; + } + + memcpy( buffer, memory_map_romcs[0].page, MEMORY_PAGE_SIZE ); + memcpy( buffer + MEMORY_PAGE_SIZE, memory_map_romcs[1].page, + MEMORY_PAGE_SIZE ); + + libspectrum_snap_set_beta_rom( snap, 0, buffer ); + libspectrum_snap_set_beta_custom_rom( snap, 1 ); + } + libspectrum_snap_set_beta_paged ( snap, beta_active ); libspectrum_snap_set_beta_direction( snap, beta_fdc->direction ); libspectrum_snap_set_beta_status( snap, beta_sr_read( 0x001f, &attached ) ); Modified: trunk/fuse/disk/disk.c =================================================================== --- trunk/fuse/disk/disk.c 2008-05-07 12:29:58 UTC (rev 530) +++ trunk/fuse/disk/disk.c 2008-05-10 23:53:25 UTC (rev 531) @@ -1,7 +1,7 @@ /* disk.c: Routines for handling disk images Copyright (c) 2007 Gergely Szasz - $Id: disk.c 3471 2008-01-05 18:14:15Z pak21 $ + $Id: disk.c 3583 2008-03-25 09:29:59Z 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 @@ -60,6 +60,7 @@ 10416, /* 8" DD */ 3125, /* SD */ 6250, /* DD */ + 6500, /* DD+ e.g. Coin Op Hits */ 12500, /* HD */ }; @@ -69,16 +70,17 @@ int gap; /* gap byte */ int sync; /* sync byte */ int sync_len; + int mark; /* mark byte 0xa1 for MFM -1 for MF */ int len[4]; } disk_gap_t; disk_gap_t gaps[] = { - { 0x4e, 0x00, 12, { 0, 60, 22, 24 } }, /* MGT MFM */ - { 0x4e, 0x00, 12, { 0, 10, 22, 60 } }, /* TRD MFM */ - { 0xff, 0x00, 6, { 40, 26, 11, 27 } }, /* IBM3740 FM */ - { 0x4e, 0x00, 12, { 80, 50, 22, 54 } }, /* IBM34 MFM */ - { 0xff, 0x00, 6, { 0, 16, 11, 10 } }, /* MINIMAL FM */ - { 0x4e, 0x00, 12, { 0, 32, 22, 24 } }, /* MINIMAL MFM */ + { 0x4e, 0x00, 12, 0xa1, { 0, 60, 22, 24 } }, /* MGT MFM */ + { 0x4e, 0x00, 12, 0xa1, { 0, 10, 22, 60 } }, /* TRD MFM */ + { 0xff, 0x00, 6, -1, { 40, 26, 11, 27 } }, /* IBM3740 FM */ + { 0x4e, 0x00, 12, 0xa1, { 80, 50, 22, 54 } }, /* IBM34 MFM */ + { 0xff, 0x00, 6, -1, { 0, 16, 11, 10 } }, /* MINIMAL FM */ + { 0x4e, 0x00, 12, 0xa1, { 0, 32, 22, 24 } }, /* MINIMAL MFM */ }; #define GAP_MGT_PLUSD 0 @@ -242,7 +244,6 @@ *mfm = d->track[ d->i ] == 0x4e ? 1 : 0; /* not so robust */ if( !datamark_read( d, &del ) ) r |= DISK_CORRUPT_SECTOR; - /* h != head? s != sectors? */ if( t != track ) r |= DISK_ID_NOTMATCH; if( s < *sector_base ) @@ -308,49 +309,70 @@ } static int -gap_add( disk_t *d, int gap, int mark, int gaptype ) +gap_add( disk_t *d, int gap, int gaptype ) { disk_gap_t *g = &gaps[ gaptype ]; - if( d->i + g->sync_len + g->len[gap] + - ( d->density != DISK_SD ? 3 : 0 ) >= d->bpt ) /* too many data bytes */ + if( d->i + g->len[gap] >= d->bpt ) /* too many data bytes */ return 1; /*-------------------------------- given gap --------------------------------*/ memset( d->track + d->i, g->gap, g->len[gap] ); d->i += g->len[gap]; - memset( d->track + d->i, g->sync, g->sync_len ); d->i += g->sync_len; - if( d->density != DISK_SD ) { - memset( d->track + d->i , mark, 3 ); - bitmap_set( d->clocks, d->i ); d->i++; - bitmap_set( d->clocks, d->i ); d->i++; - bitmap_set( d->clocks, d->i ); d->i++; - } return 0; } static int -preindex_add( disk_t *d, int gap ) /* preindex gap and index mark */ +preindex_len( disk_t *d, int gaptype ) /* preindex gap and index mark */ { + disk_gap_t *g = &gaps[ gaptype ]; + return g->len[0] + g->sync_len + ( g->mark >= 0 ? 3 : 0 ) + 1; +} + +/* + [ ....GAP.... ] [ ... SYNC ... ] [ . MARK . ] + |-------------------------------------------> + Preindex +*/ +static int +preindex_add( disk_t *d, int gaptype ) /* preindex gap and index mark */ +{ + disk_gap_t *g = &gaps[ gaptype ]; + if( d->i + preindex_len( d, gaptype ) >= d->bpt ) + return 1; /*------------------------------ pre-index gap -------------------------------*/ - if( gap_add( d, 0, 0xc2, gap ) ) + if( gap_add( d, 0, gaptype ) ) return 1; - if( d->i + 1 >= d->bpt ) /* too many data bytes */ - return 1; - if( d->density == DISK_SD ) +/*------------------------------ sync ---------------------------*/ + memset( d->track + d->i, g->sync, g->sync_len ); d->i += g->sync_len; + if( g->mark >= 0 ) { + memset( d->track + d->i , g->mark, 3 ); + bitmap_set( d->clocks, d->i ); d->i++; + bitmap_set( d->clocks, d->i ); d->i++; + bitmap_set( d->clocks, d->i ); d->i++; + } +/*------------------------------ mark ------------------------------*/ + if( g->mark < 0 ) /* FM */ bitmap_set( d->clocks, d->i ); /* set clock mark */ d->track[ d->i++ ] = 0xfc; /* index mark */ return 0; } static int -postindex_add( disk_t *d, int gap ) /* preindex gap and index mark */ +postindex_len( disk_t *d, int gaptype ) /* preindex gap and index mark */ { - return gap_add( d, 1, 0xa1, gap ); + disk_gap_t *g = &gaps[ gaptype ]; + return g->len[1]; } static int -gap4_add( disk_t *d, int gap ) +postindex_add( disk_t *d, int gaptype ) /* postindex gap */ { + return gap_add( d, 1, gaptype ); +} + +static int +gap4_add( disk_t *d, int gaptype ) +{ int len = d->bpt - d->i; - disk_gap_t *g = &gaps[ gap ]; + disk_gap_t *g = &gaps[ gaptype ]; if( len < 0 ) { return 1; @@ -368,22 +390,35 @@ #define CRC_OK 0 #define CRC_ERROR 1 +/* + [ ....GAP.... ] [ ... SYNC ... ] [ . MARK . ] [ .. DATA .. ] [ . CRC . ] + |-------------------------------------------------------> + ID +*/ static int -id_add( disk_t *d, int h, int t, int s, int l, int gap, int crc_error ) +id_add( disk_t *d, int h, int t, int s, int l, int gaptype, int crc_error ) { libspectrum_word crc = 0xffff; - if( d->i + 7 >= d->bpt ) /* too many data bytes */ + disk_gap_t *g = &gaps[ gaptype ]; + if( d->i + g->sync_len + ( g->mark >= 0 ? 3 : 0 ) + 7 >= d->bpt ) return 1; -/*------------------------------ header ------------------------------*/ - if( d->density == DISK_SD ) - bitmap_set( d->clocks, d->i ); /* set clock mark */ +/*------------------------------ sync ---------------------------*/ + memset( d->track + d->i, g->sync, g->sync_len ); d->i += g->sync_len; + if( g->mark >= 0 ) { + memset( d->track + d->i , g->mark, 3 ); + bitmap_set( d->clocks, d->i ); d->i++; + crc = crc_fdc( crc, g->mark ); + bitmap_set( d->clocks, d->i ); d->i++; + crc = crc_fdc( crc, g->mark ); + bitmap_set( d->clocks, d->i ); d->i++; + crc = crc_fdc( crc, g->mark ); + } +/*------------------------------ mark ------------------------------*/ + if( g->mark < 0 ) /* FM */ + bitmap_set( d->clocks, d->i ); /* set clock mark */ d->track[ d->i++ ] = 0xfe; /* ID mark */ - if( d->density != DISK_SD ) { - crc = crc_fdc( crc, 0xa1 ); - crc = crc_fdc( crc, 0xa1 ); - crc = crc_fdc( crc, 0xa1 ); - } crc = crc_fdc( crc, 0xfe ); +/*------------------------------ header ------------------------------*/ d->track[ d->i++ ] = t; crc = crc_fdc( crc, t ); d->track[ d->i++ ] = h; crc = crc_fdc( crc, h ); d->track[ d->i++ ] = s; crc = crc_fdc( crc, s ); @@ -395,41 +430,58 @@ d->track[ d->i++ ] = crc & 0xff; /* CRC */ } /*------------------------------ GAP II ------------------------------*/ - return gap_add( d, 2, 0xa1, gap ); + return gap_add( d, 2, gaptype ); } +/* + [ ....GAP.... ] [ ... SYNC ... ] [ . MARK . ] [ .. DATA .. ] [ . CRC . ] + |--------------------------------------------> + datamark +*/ static int -datamark_add( disk_t *d, int ddam ) +datamark_add( disk_t *d, int ddam, int gaptype ) { - if( d->i + 1 >= d->bpt ) /* too many data bytes */ + disk_gap_t *g = &gaps[ gaptype ]; + if( d->i + g->len[2] + g->sync_len + ( g->mark >= 0 ? 3 : 0 ) + 1 >= d->bpt ) return 1; -/*------------------------------ data ------------------------------*/ - if( d->density == DISK_SD ) - bitmap_set( d->clocks, d->i ); /* set clock mark */ +/*------------------------------ sync ---------------------------*/ + memset( d->track + d->i, g->sync, g->sync_len ); d->i += g->sync_len; + if( g->mark >= 0 ) { + memset( d->track + d->i , g->mark, 3 ); + bitmap_set( d->clocks, d->i ); d->i++; + bitmap_set( d->clocks, d->i ); d->i++; + bitmap_set( d->clocks, d->i ); d->i++; + } +/*------------------------------ mark ------------------------------*/ + if( g->mark < 0 ) /* FM */ + bitmap_set( d->clocks, d->i ); /* set clock mark */ d->track[ d->i++ ] = ddam ? 0xf8 : 0xfb; /* DATA mark 0xf8 -> deleted data */ return 0; } + #define NO_DDAM 0 #define DDAM 1 #define NO_AUTOFILL -1 /* if 'file' == NULL, then copy data bytes from 'data' */ static int -data_add( disk_t *d, FILE *file, unsigned char *data, int len, int ddam, int gap, int autofill ) +data_add( disk_t *d, FILE *file, unsigned char *data, int len, int ddam, int gaptype, int crc_error, int autofill ) { int length; libspectrum_word crc = 0xffff; + disk_gap_t *g = &gaps[ gaptype ]; - if( datamark_add( d, ddam ) ) + if( datamark_add( d, ddam, gaptype ) ) return 1; - if( d->density != DISK_SD ) { - crc = crc_fdc( crc, 0xa1 ); - crc = crc_fdc( crc, 0xa1 ); - crc = crc_fdc( crc, 0xa1 ); + + if( g->mark >= 0 ) { + crc = crc_fdc( crc, g->mark ); + crc = crc_fdc( crc, g->mark ); + crc = crc_fdc( crc, g->mark ); } - crc = crc_fdc( crc, 0xfb ); + crc = crc_fdc( crc, ddam ? 0xf8 : 0xfb ); /* deleted or normal */ if( len < 0 ) - goto header_crc_error; /* CRC error */ - if( d->i + len + 2 >= d->bpt ) /* too many data bytes */ + goto header_crc_error; /* CRC error */ + if( d->i + len + 2 >= d->bpt ) /* too many data bytes */ return 1; /*------------------------------ data ------------------------------*/ if( file == NULL ) { @@ -452,32 +504,29 @@ d->i++; length++; } + if( crc_error ) crc ^= 1; /* mess up CRC */ d->track[ d->i++ ] = crc >> 8; d->track[ d->i++ ] = crc & 0xff; /* CRC */ /*------------------------------ GAP III ------------------------------*/ header_crc_error: - return ( gap_add( d, 3, 0xa1, gap ) ); + return ( gap_add( d, 3, gaptype ) ); } static int -calc_sectorlen( int mfm, int sector_length, int gap ) +calc_sectorlen( int mfm, int sector_length, int gaptype ) { int len = 0; - disk_gap_t *g = &gaps[ gap ]; + disk_gap_t *g = &gaps[ gaptype ]; /*------------------------------ ID ------------------------------*/ - len += 7; + len += g->sync_len + ( g->mark >= 0 ? 3 : 0 ) + 7; /*------------------------------ GAP II ------------------------------*/ - len += g->len[2] + g->sync_len; - if( mfm ) - len += 3; + len += g->len[2]; /*--------------------------------- data ---------------------------------*/ - len += 1; /* DAM */ + len += g->sync_len + ( g->mark >= 0 ? 3 : 0 ) + 1; /* DAM */ len += sector_length; len += 2; /* CRC */ /*------------------------------ GAP III ------------------------------*/ - len += g->len[3] + g->sync_len; - if( mfm ) - len += 3; + len += g->len[3]; return len; } @@ -510,7 +559,7 @@ d->i = idx + ( pos + i ) * slen; if( id_add( d, head, track, s, sector_length >> 8, gap, CRC_OK ) ) return 1; - if( data_add( d, file, NULL, sector_length, NO_DDAM, gap, autofill ) ) + if( data_add( d, file, NULL, sector_length, NO_DDAM, gap, CRC_OK, autofill ) ) return 1; pos += interleave; if( pos >= sectors ) { @@ -546,18 +595,21 @@ if( d->density != DISK_DENS_AUTO ) { d->bpt = disk_bpt[ d->density ]; - } else if( d->bpt > 13000 ) { + } else if( d->bpt > 12500 ) { return d->status = DISK_UNSUP; - } else if( d->bpt > 10600 ) { + } else if( d->bpt > 10416 ) { d->density = DISK_HD; d->bpt = disk_bpt[ DISK_HD ]; } else if( d->bpt > 6500 ) { d->density = DISK_8_DD; d->bpt = disk_bpt[ DISK_8_DD ]; - } else if( d->bpt > 5300 ) { + } else if( d->bpt > 6250 ) { + d->density = DISK_DD_PLUS; + d->bpt = disk_bpt[ DISK_DD_PLUS ]; + } else if( d->bpt > 5208 ) { d->density = DISK_DD; d->bpt = disk_bpt[ DISK_DD ]; - } else if( d->bpt > 3250 ) { + } else if( d->bpt > 3125 ) { d->density = DISK_8_SD; d->bpt = disk_bpt[ DISK_8_SD ]; } else if( d->bpt > 0 ) { @@ -806,8 +858,10 @@ fseek( file, head_offset, SEEK_SET ); if( fread( head, 7, 1, file ) != 1 ) /* 7 := track head */ return d->status = DISK_OPEN; - bpt = bpt_fm = 0; - + bpt = postindex_len( d, GAP_MINIMAL_MFM ) + + ( preindex ? preindex_len( d, GAP_MINIMAL_MFM ) : 0 ) + 6; /* +gap4 */ + bpt_fm = postindex_len( d, GAP_MINIMAL_FM ) + + ( preindex ? preindex_len( d, GAP_MINIMAL_FM ) : 0 ) + 3; /* +gap4 */ for( j = 0; j < head[0x06]; j++ ) { /* calculate track len */ if( j % 35 == 0 ) { /* 35-sector header */ if( fread( head + 7, 245, 1, file ) != 1 ) /* 7*35 := max 35 sector head */ @@ -871,7 +925,7 @@ data_add( d, file, NULL, ( head[ 0x0b + 7 * ( j % 35 ) ] & 0x3f ) == 0 ? -1 : 0x80 << head[ 0x0a + 7 * ( j % 35 ) ], head[ 0x0b + 7 * ( j % 35 ) ] & 0x80 ? DDAM : NO_DDAM, - gap, NO_AUTOFILL ); + gap, CRC_OK, NO_AUTOFILL ); } head_offset += 7 + 7 * head[0x06]; gap4_add( d, gap ); @@ -882,57 +936,147 @@ static int open_cpc( FILE *file, disk_t *d, disk_type_t type, int preindex ) { - int i, j, seclen, gap; - int bpt, max_bpt = 0, max_bpt_fm = 0; + int i, j, seclen, idlen, gap; + int bpt, max_bpt = 0, trlen; + int fix[42], plus3_fix; d->sides = head[0x31]; - d->cylinders = head[0x30]; - if( type == DISK_CPC ) { - max_bpt = calc_sectorlen( 1, head[0x32] + 256 * head[0x33] - 0x100, GAP_MINIMAL_MFM ); - max_bpt_fm = calc_sectorlen( 0, head[0x32] + 256 * head[0x33] - 0x100, GAP_MINIMAL_FM ); - } else { - d->bpt = 0; - for( i = 0; i < d->sides * d->cylinders; i++ ) { - bpt = calc_sectorlen( 1, ( head[ 0x34 + i ] << 8 ) - 0x100, GAP_MINIMAL_MFM ); - if( bpt > max_bpt ) - max_bpt = bpt; - bpt = calc_sectorlen( 0, ( head[ 0x34 + i ] << 8 ) - 0x100, GAP_MINIMAL_FM ); - if( bpt > max_bpt_... [truncated message content] |
From: <fr...@us...> - 2008-05-07 13:41:55
|
Revision: 529 http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=529&view=rev Author: fredm Date: 2008-05-07 05:29:26 -0700 (Wed, 07 May 2008) 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/ay.c vendor/fuse-emulator/current/fuse/compat/amiga/Makefile.am vendor/fuse-emulator/current/fuse/compat/amiga/paths.c vendor/fuse-emulator/current/fuse/configure.in vendor/fuse-emulator/current/fuse/dck.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_internals.h vendor/fuse-emulator/current/fuse/disk/Makefile.am vendor/fuse-emulator/current/fuse/disk/beta.c vendor/fuse-emulator/current/fuse/disk/disk.c vendor/fuse-emulator/current/fuse/disk/disk.h vendor/fuse-emulator/current/fuse/disk/fdd.c vendor/fuse-emulator/current/fuse/disk/fdd.h vendor/fuse-emulator/current/fuse/disk/plusd.c vendor/fuse-emulator/current/fuse/disk/wd_fdc.c vendor/fuse-emulator/current/fuse/disk/wd_fdc.h vendor/fuse-emulator/current/fuse/display.c vendor/fuse-emulator/current/fuse/divide.c 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/hacking/cvs-tags vendor/fuse-emulator/current/fuse/if1.c vendor/fuse-emulator/current/fuse/input.c vendor/fuse-emulator/current/fuse/kempmouse.c vendor/fuse-emulator/current/fuse/kempmouse.h vendor/fuse-emulator/current/fuse/keysyms.pl vendor/fuse-emulator/current/fuse/loader.c vendor/fuse-emulator/current/fuse/loader.h vendor/fuse-emulator/current/fuse/machine.c vendor/fuse-emulator/current/fuse/machine.h vendor/fuse-emulator/current/fuse/machines/pentagon.c vendor/fuse-emulator/current/fuse/machines/pentagon.h vendor/fuse-emulator/current/fuse/machines/pentagon1024.c vendor/fuse-emulator/current/fuse/machines/pentagon512.c vendor/fuse-emulator/current/fuse/machines/scorpion.c vendor/fuse-emulator/current/fuse/machines/spec128.c vendor/fuse-emulator/current/fuse/machines/spec128.h vendor/fuse-emulator/current/fuse/machines/spec16.c vendor/fuse-emulator/current/fuse/machines/spec48.c vendor/fuse-emulator/current/fuse/machines/spec48.h vendor/fuse-emulator/current/fuse/machines/spec_se.c vendor/fuse-emulator/current/fuse/machines/specplus2.c vendor/fuse-emulator/current/fuse/machines/specplus2a.c vendor/fuse-emulator/current/fuse/machines/specplus3.c vendor/fuse-emulator/current/fuse/machines/specplus3.h vendor/fuse-emulator/current/fuse/machines/specplus3e.c vendor/fuse-emulator/current/fuse/machines/tc2048.c vendor/fuse-emulator/current/fuse/machines/tc2068.c vendor/fuse-emulator/current/fuse/machines/tc2068.h vendor/fuse-emulator/current/fuse/machines/ts2068.c 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/menu.c vendor/fuse-emulator/current/fuse/menu_data.dat vendor/fuse-emulator/current/fuse/periph.c 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.dat vendor/fuse-emulator/current/fuse/settings.pl vendor/fuse-emulator/current/fuse/simpleide.c vendor/fuse-emulator/current/fuse/sound/Makefile.am vendor/fuse-emulator/current/fuse/sound/aosound.c 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/Makefile.am vendor/fuse-emulator/current/fuse/ui/Makefile.am vendor/fuse-emulator/current/fuse/ui/fb/fbkeyboard.c vendor/fuse-emulator/current/fuse/ui/gtk/Makefile.am vendor/fuse-emulator/current/fuse/ui/gtk/fileselector.c vendor/fuse-emulator/current/fuse/ui/gtk/gtkdisplay.c vendor/fuse-emulator/current/fuse/ui/options.dat vendor/fuse-emulator/current/fuse/ui/scaler/Makefile.am vendor/fuse-emulator/current/fuse/ui/scaler/scaler.c vendor/fuse-emulator/current/fuse/ui/scaler/scaler.h vendor/fuse-emulator/current/fuse/ui/scaler/scaler_internals.h vendor/fuse-emulator/current/fuse/ui/scaler/scalers.c vendor/fuse-emulator/current/fuse/ui/sdl/Makefile.am vendor/fuse-emulator/current/fuse/ui/sdl/sdldisplay.c vendor/fuse-emulator/current/fuse/ui/sdl/sdlkeyboard.c vendor/fuse-emulator/current/fuse/ui/svga/svgakeyboard.c vendor/fuse-emulator/current/fuse/ui/ui.h vendor/fuse-emulator/current/fuse/ui/widget/Makefile.am vendor/fuse-emulator/current/fuse/ui/widget/browse.c vendor/fuse-emulator/current/fuse/ui/win32/Makefile.am vendor/fuse-emulator/current/fuse/ui/win32/debugger.c vendor/fuse-emulator/current/fuse/ui/win32/debugger.h vendor/fuse-emulator/current/fuse/ui/win32/debugger.rc vendor/fuse-emulator/current/fuse/ui/win32/error.c vendor/fuse-emulator/current/fuse/ui/win32/icons/Makefile.am vendor/fuse-emulator/current/fuse/ui/win32/options-header.pl 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/pokefinder.c vendor/fuse-emulator/current/fuse/ui/win32/pokefinder.h vendor/fuse-emulator/current/fuse/ui/win32/pokefinder.rc vendor/fuse-emulator/current/fuse/ui/win32/statusbar.c vendor/fuse-emulator/current/fuse/ui/win32/win32display.c vendor/fuse-emulator/current/fuse/ui/win32/win32display.h vendor/fuse-emulator/current/fuse/ui/win32/win32internals.h vendor/fuse-emulator/current/fuse/ui/win32/win32keyboard.h vendor/fuse-emulator/current/fuse/ui/win32/win32ui.c vendor/fuse-emulator/current/fuse/ui/xlib/xdisplay.c vendor/fuse-emulator/current/fuse/ui/xlib/xerror.c vendor/fuse-emulator/current/fuse/ui/xlib/xkeyboard.c vendor/fuse-emulator/current/fuse/ui.c vendor/fuse-emulator/current/fuse/ula.c vendor/fuse-emulator/current/fuse/utils.c vendor/fuse-emulator/current/fuse/windres.rc vendor/fuse-emulator/current/fuse/z80/z80.c vendor/fuse-emulator/current/fuse/z80/z80_ops.c vendor/fuse-emulator/current/fuse-mgt/COPYING vendor/fuse-emulator/current/fuse-mgt/fuse-mgt.c vendor/fuse-emulator/current/fuse-utils/ChangeLog vendor/fuse-emulator/current/fuse-utils/Makefile.am vendor/fuse-emulator/current/fuse-utils/README vendor/fuse-emulator/current/fuse-utils/audio2tape.c vendor/fuse-emulator/current/fuse-utils/compat.h vendor/fuse-emulator/current/fuse-utils/configure.in vendor/fuse-emulator/current/fuse-utils/createhdf.c vendor/fuse-emulator/current/fuse-utils/hacking/ChangeLog vendor/fuse-emulator/current/fuse-utils/hacking/cvs-tags vendor/fuse-emulator/current/fuse-utils/listbasic.c vendor/fuse-emulator/current/fuse-utils/man/Makefile.am vendor/fuse-emulator/current/fuse-utils/man/audio2tape.1 vendor/fuse-emulator/current/fuse-utils/man/createhdf.1 vendor/fuse-emulator/current/fuse-utils/man/fuse-utils.1 vendor/fuse-emulator/current/fuse-utils/man/listbasic.1 vendor/fuse-emulator/current/fuse-utils/man/raw2hdf.1 vendor/fuse-emulator/current/fuse-utils/man/rzxcheck.1 vendor/fuse-emulator/current/fuse-utils/man/rzxdump.1 vendor/fuse-emulator/current/fuse-utils/man/rzxtool.1 vendor/fuse-emulator/current/fuse-utils/man/scl2trd.1 vendor/fuse-emulator/current/fuse-utils/man/snap2tzx.1 vendor/fuse-emulator/current/fuse-utils/man/snapconv.1 vendor/fuse-emulator/current/fuse-utils/man/tape2wav.1 vendor/fuse-emulator/current/fuse-utils/man/tapeconv.1 vendor/fuse-emulator/current/fuse-utils/man/tzxlist.1 vendor/fuse-emulator/current/fuse-utils/rzxcheck.c vendor/fuse-emulator/current/fuse-utils/rzxdump.c vendor/fuse-emulator/current/fuse-utils/rzxtool.c vendor/fuse-emulator/current/fuse-utils/snap2tzx.c vendor/fuse-emulator/current/fuse-utils/snapconv.c vendor/fuse-emulator/current/fuse-utils/tape2wav.c vendor/fuse-emulator/current/fuse-utils/tapeconv.c vendor/fuse-emulator/current/fuse-utils/tzxlist.c vendor/fuse-emulator/current/fuse-utils/utils.c vendor/fuse-emulator/current/fusetest/Makefile vendor/fuse-emulator/current/fusetest/contention.asm vendor/fuse-emulator/current/fusetest/framelength.asm vendor/fuse-emulator/current/fusetest/fusetest.asm vendor/fuse-emulator/current/fusetest/guessmachine.asm vendor/fuse-emulator/current/fusetest/print.asm vendor/fuse-emulator/current/fusetest/sync.asm vendor/fuse-emulator/current/fusetest/tests.asm vendor/fuse-emulator/current/libspectrum/ChangeLog vendor/fuse-emulator/current/libspectrum/README vendor/fuse-emulator/current/libspectrum/accessor.pl vendor/fuse-emulator/current/libspectrum/configure.in vendor/fuse-emulator/current/libspectrum/doc/libspectrum.txt vendor/fuse-emulator/current/libspectrum/hacking/ChangeLog vendor/fuse-emulator/current/libspectrum/ide.c 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/sna.c vendor/fuse-emulator/current/libspectrum/snap_accessors.txt vendor/fuse-emulator/current/libspectrum/snapshot.c vendor/fuse-emulator/current/libspectrum/szx.c vendor/fuse-emulator/current/libspectrum/tape.c vendor/fuse-emulator/current/libspectrum/test/Makefile.am vendor/fuse-emulator/current/libspectrum/test/edges.c vendor/fuse-emulator/current/libspectrum/test/test.h vendor/fuse-emulator/current/libspectrum/test/test15.c vendor/fuse-emulator/current/libspectrum/z80.c vendor/fuse-emulator/current/website/.inc/fuse.inc vendor/fuse-emulator/current/website/fuse.php vendor/fuse-emulator/current/website/general.css vendor/fuse-emulator/current/website/libspectrum.php vendor/fuse-emulator/current/website/spectrum.css Added Paths: ----------- vendor/fuse-emulator/current/debian/ vendor/fuse-emulator/current/debian/fuse-emulator/ vendor/fuse-emulator/current/debian/fuse-emulator/changelog vendor/fuse-emulator/current/debian/fuse-emulator/compat vendor/fuse-emulator/current/debian/fuse-emulator/control vendor/fuse-emulator/current/debian/fuse-emulator/copyright vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-common.dirs vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-common.docs vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-common.install vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-common.manpages vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-gtk.dirs vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-gtk.install vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-gtk.links vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-gtk.menu vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-gtk.postinst vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-gtk.prerm vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-sdl.dirs vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-sdl.install vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-sdl.links vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-sdl.menu vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-sdl.postinst vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-sdl.prerm vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-x11.dirs vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-x11.install vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-x11.links vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-x11.menu vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-x11.postinst vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-x11.prerm vendor/fuse-emulator/current/debian/fuse-emulator/patches/ vendor/fuse-emulator/current/debian/fuse-emulator/patches/00list vendor/fuse-emulator/current/debian/fuse-emulator/patches/01_configure.dpatch vendor/fuse-emulator/current/debian/fuse-emulator/patches/01_man.dpatch vendor/fuse-emulator/current/debian/fuse-emulator/patches/01_noroms.dpatch vendor/fuse-emulator/current/debian/fuse-emulator/rules vendor/fuse-emulator/current/debian/fuse-emulator-utils/ vendor/fuse-emulator/current/debian/fuse-emulator-utils/changelog vendor/fuse-emulator/current/debian/fuse-emulator-utils/compat vendor/fuse-emulator/current/debian/fuse-emulator-utils/control vendor/fuse-emulator/current/debian/fuse-emulator-utils/copyright vendor/fuse-emulator/current/debian/fuse-emulator-utils/dirs vendor/fuse-emulator/current/debian/fuse-emulator-utils/docs vendor/fuse-emulator/current/debian/fuse-emulator-utils/rules vendor/fuse-emulator/current/debian/lib765/ vendor/fuse-emulator/current/debian/lib765/changelog vendor/fuse-emulator/current/debian/lib765/compat vendor/fuse-emulator/current/debian/lib765/control vendor/fuse-emulator/current/debian/lib765/copyright vendor/fuse-emulator/current/debian/lib765/dirs vendor/fuse-emulator/current/debian/lib765/docs vendor/fuse-emulator/current/debian/lib765/lib765-3.dirs vendor/fuse-emulator/current/debian/lib765/lib765-3.install vendor/fuse-emulator/current/debian/lib765/lib765-dev.dirs vendor/fuse-emulator/current/debian/lib765/lib765-dev.install vendor/fuse-emulator/current/debian/lib765/rules vendor/fuse-emulator/current/debian/libdsk/ vendor/fuse-emulator/current/debian/libdsk/changelog vendor/fuse-emulator/current/debian/libdsk/compat vendor/fuse-emulator/current/debian/libdsk/control vendor/fuse-emulator/current/debian/libdsk/copyright vendor/fuse-emulator/current/debian/libdsk/dirs vendor/fuse-emulator/current/debian/libdsk/docs vendor/fuse-emulator/current/debian/libdsk/libdsk-dev.dirs vendor/fuse-emulator/current/debian/libdsk/libdsk-dev.install vendor/fuse-emulator/current/debian/libdsk/libdsk3.dirs vendor/fuse-emulator/current/debian/libdsk/libdsk3.install vendor/fuse-emulator/current/debian/libdsk/rules vendor/fuse-emulator/current/debian/libspectrum/ vendor/fuse-emulator/current/debian/libspectrum/changelog vendor/fuse-emulator/current/debian/libspectrum/compat vendor/fuse-emulator/current/debian/libspectrum/control vendor/fuse-emulator/current/debian/libspectrum/copyright vendor/fuse-emulator/current/debian/libspectrum/dirs vendor/fuse-emulator/current/debian/libspectrum/docs vendor/fuse-emulator/current/debian/libspectrum/libspectrum-dev.dirs vendor/fuse-emulator/current/debian/libspectrum/libspectrum-dev.install vendor/fuse-emulator/current/debian/libspectrum/libspectrum-dev.manpages vendor/fuse-emulator/current/debian/libspectrum/libspectrum5.dirs vendor/fuse-emulator/current/debian/libspectrum/libspectrum5.install vendor/fuse-emulator/current/debian/libspectrum/rules vendor/fuse-emulator/current/fuse/compat/amiga/osname.c vendor/fuse-emulator/current/fuse/disk/upd_fdc.c vendor/fuse-emulator/current/fuse/disk/upd_fdc.h vendor/fuse-emulator/current/fuse/sound/win32sound.c vendor/fuse-emulator/current/fuse/ui/scaler/scaler_hq2x.c vendor/fuse-emulator/current/fuse/ui/scaler/scaler_hq3x.c vendor/fuse-emulator/current/fuse/ui/win32/binary.c vendor/fuse-emulator/current/fuse/ui/win32/binary.h vendor/fuse-emulator/current/fuse/ui/win32/binary.rc vendor/fuse-emulator/current/fuse/ui/win32/browse.c vendor/fuse-emulator/current/fuse/ui/win32/browse.h vendor/fuse-emulator/current/fuse/ui/win32/browse.rc vendor/fuse-emulator/current/fuse/ui/win32/icons/mdr_active.bmp vendor/fuse-emulator/current/fuse/ui/win32/icons/mdr_inactive.bmp vendor/fuse-emulator/current/fuse/ui/win32/icons/mouse_active.bmp vendor/fuse-emulator/current/fuse/ui/win32/icons/mouse_inactive.bmp vendor/fuse-emulator/current/fuse/ui/win32/icons/tape_marker_mask.bmp vendor/fuse-emulator/current/fuse/ui/win32/memorybrowser.c vendor/fuse-emulator/current/fuse/ui/win32/memorybrowser.h vendor/fuse-emulator/current/fuse/ui/win32/memorybrowser.rc vendor/fuse-emulator/current/fuse/ui/win32/picture.c vendor/fuse-emulator/current/fuse/ui/win32/picture.h vendor/fuse-emulator/current/fuse/ui/win32/picture.rc vendor/fuse-emulator/current/fuse/ui/win32/rollback.c vendor/fuse-emulator/current/fuse/ui/win32/rollback.h vendor/fuse-emulator/current/fuse/ui/win32/rollback.rc vendor/fuse-emulator/current/fuse/ui/win32/roms.c vendor/fuse-emulator/current/fuse/ui/win32/roms.h vendor/fuse-emulator/current/fuse/ui/win32/roms.rc vendor/fuse-emulator/current/fuse/ui/win32/select_template.h vendor/fuse-emulator/current/fuse/ui/win32/select_template.rc vendor/fuse-emulator/current/fuse/ui/win32/statusbar.rc vendor/fuse-emulator/current/fuse/ui/win32/win32joystick.c vendor/fuse-emulator/current/fuse/ui/win32/win32joystick.h vendor/fuse-emulator/current/fuse/ui/win32/win32joystick.rc vendor/fuse-emulator/current/fuse/ui/win32/win32mouse.c vendor/fuse-emulator/current/fuse/unittests/ vendor/fuse-emulator/current/fuse/unittests/Makefile.am vendor/fuse-emulator/current/fuse/unittests/unittests.c vendor/fuse-emulator/current/fuse/unittests/unittests.h vendor/fuse-emulator/current/fuse/winfuse.ico vendor/fuse-emulator/current/fuse-utils/man/profile2map.1 vendor/fuse-emulator/current/fuse-utils/profile2map.c vendor/fuse-emulator/current/fusetest/first.asm vendor/fuse-emulator/current/gdos-tools/ vendor/fuse-emulator/current/gdos-tools/AUTHORS vendor/fuse-emulator/current/gdos-tools/COPYING vendor/fuse-emulator/current/gdos-tools/ChangeLog vendor/fuse-emulator/current/gdos-tools/Makefile.am vendor/fuse-emulator/current/gdos-tools/README vendor/fuse-emulator/current/gdos-tools/autogen.sh vendor/fuse-emulator/current/gdos-tools/configure.in vendor/fuse-emulator/current/gdos-tools/gdoscat.c vendor/fuse-emulator/current/gdos-tools/gdosread.c vendor/fuse-emulator/current/gdos-tools/hacking/ vendor/fuse-emulator/current/gdos-tools/hacking/ChangeLog vendor/fuse-emulator/current/gdos-tools/hacking/Makefile.am vendor/fuse-emulator/current/gdos-tools/man/ vendor/fuse-emulator/current/gdos-tools/man/Makefile.am vendor/fuse-emulator/current/gdos-tools/man/gdos-tools.1 vendor/fuse-emulator/current/libgdos/ vendor/fuse-emulator/current/libgdos/AUTHORS vendor/fuse-emulator/current/libgdos/COPYING vendor/fuse-emulator/current/libgdos/ChangeLog vendor/fuse-emulator/current/libgdos/Makefile.am vendor/fuse-emulator/current/libgdos/README vendor/fuse-emulator/current/libgdos/THANKS vendor/fuse-emulator/current/libgdos/TODO vendor/fuse-emulator/current/libgdos/autogen.sh vendor/fuse-emulator/current/libgdos/configure.in vendor/fuse-emulator/current/libgdos/dir.c vendor/fuse-emulator/current/libgdos/dll.c vendor/fuse-emulator/current/libgdos/doc/ vendor/fuse-emulator/current/libgdos/doc/Makefile.am vendor/fuse-emulator/current/libgdos/doc/libgdos.3 vendor/fuse-emulator/current/libgdos/file.c vendor/fuse-emulator/current/libgdos/hacking/ vendor/fuse-emulator/current/libgdos/hacking/ChangeLog vendor/fuse-emulator/current/libgdos/hacking/Makefile.am vendor/fuse-emulator/current/libgdos/image.c vendor/fuse-emulator/current/libgdos/internals.h vendor/fuse-emulator/current/libgdos/libgdos.h Removed Paths: ------------- vendor/fuse-emulator/current/fuse/hacking/win32_todo.txt vendor/fuse-emulator/current/fuse/ui/win32/del_o.bat vendor/fuse-emulator/current/fuse/ui/win32/menu_data.c vendor/fuse-emulator/current/fuse/ui/win32/menu_data.h vendor/fuse-emulator/current/fuse/ui/win32/menu_data.rc vendor/fuse-emulator/current/fuse/ui/win32/win32ui.rc vendor/fuse-emulator/current/fuse/widget/ vendor/fuse-emulator/current/libspectrum/TODO vendor/fuse-emulator/current/website/.cvsignore Added: vendor/fuse-emulator/current/debian/fuse-emulator/changelog =================================================================== --- vendor/fuse-emulator/current/debian/fuse-emulator/changelog (rev 0) +++ vendor/fuse-emulator/current/debian/fuse-emulator/changelog 2008-05-07 12:29:26 UTC (rev 529) @@ -0,0 +1,27 @@ +fuse-emulator (0.9.0-3) unstable; urgency=low + + * Don't use --datadir, as it didn't work. + * Use dpatch, and add patches: + - 01-configure.dpatch: rename fuse to fuse-emulator. + - 01-noroms: don't distribute the ROMs, as they are non-free. + - 01-man: rename fuse to fuse-emulator in the man page. + * Add build-dependencies on dpatch, flex and bison. + * Make fuse-emulator-common depend on fuse-emulator-roms. + * Remove the reference to the non-free ROMs from the package + description for fuse-emulator-common. + + -- Stuart Brady <sd...@nt...> Tue, 15 Jan 2008 02:21:05 +0000 + +fuse-emulator (0.9.0-2) unstable; urgency=low + + * Remove comments from the rules and control files. + + -- Stuart Brady <sd...@nt...> Thu, 10 Jan 2008 15:14:32 +0000 + +fuse-emulator (0.9.0-1) unstable; urgency=low + + * Initial release. + + -- Stuart Brady <sd...@nt...> Wed, 09 Jan 2008 22:54:33 +0000 + + Added: vendor/fuse-emulator/current/debian/fuse-emulator/compat =================================================================== --- vendor/fuse-emulator/current/debian/fuse-emulator/compat (rev 0) +++ vendor/fuse-emulator/current/debian/fuse-emulator/compat 2008-05-07 12:29:26 UTC (rev 529) @@ -0,0 +1 @@ +5 Added: vendor/fuse-emulator/current/debian/fuse-emulator/control =================================================================== --- vendor/fuse-emulator/current/debian/fuse-emulator/control (rev 0) +++ vendor/fuse-emulator/current/debian/fuse-emulator/control 2008-05-07 12:29:26 UTC (rev 529) @@ -0,0 +1,54 @@ +Source: fuse-emulator +Section: contrib/otherosfs +Priority: extra +Maintainer: Stuart Brady <sd...@nt...> +Build-Depends: debhelper (>= 5), dpatch, autotools-dev, bison, flex, libspectrum-dev (>= 0.4.0), lib765-dev (>= 0.4.1), libdsk-dev (>= 1.2.0), libxml2-dev, libjsw-dev, libsamplerate0-dev, libpng12-dev, libasound2-dev, libgtk2.0-dev, libsdl1.2-dev, libx11-dev +Standards-Version: 3.7.2 +Homepage: http://fuse-emulator.sourceforge.net/ +Vcs-Svn: https://fuse-emulator.svn.sourceforge.net/svnroot/fuse-emulator/trunk/fuse +Vcs-Browser: http://fuse-emulator.svn.sourceforge.net/viewvc/fuse-emulator/trunk/fuse/ + +# fbdev also needs libgpm + +Package: fuse-emulator-common +Architecture: all +Depends: fuse-emulator-roms +Description: ZX Spectrum emulator - common files + Fuse is a ZX Spectrum emulator. It emulates the original 16K, 48K, 128K, + +2, +2A and +3 models, the Timex TC2048, TC2068 and TS2068, and several + clones of the ZX Spectrum. + . + This package contains files common to all user interfaces. + +Package: fuse-emulator-gtk +Architecture: any +Depends: fuse-emulator-common (>= 0.9.0), ${shlibs:Depends}, ${misc:Depends} +Provides: fuse-emulator +Description: ZX Spectrum emulator (with GTK+ user interface) + Fuse is a ZX Spectrum emulator. It emulates the original 16K, 48K, 128K, + +2, +2A and +3 models, the Timex TC2048, TC2068 and TS2068, and several + clones of the ZX Spectrum. + . + This is the GTK+ version of Fuse. + +Package: fuse-emulator-sdl +Architecture: any +Depends: fuse-emulator-common (>= 0.9.0), ${shlibs:Depends}, ${misc:Depends} +Provides: fuse-emulator +Description: ZX Spectrum emulator (with SDL user interface) + Fuse is a ZX Spectrum emulator. It emulates the original 16K, 48K, 128K, + +2, +2A and +3 models, the Timex TC2048, TC2068 and TS2068, and several + clones of the ZX Spectrum. + . + This is the SDL version of Fuse. + +Package: fuse-emulator-x11 +Architecture: any +Depends: fuse-emulator-common (>= 0.9.0), ${shlibs:Depends}, ${misc:Depends} +Provides: fuse-emulator +Description: ZX Spectrum emulator (with X11 user interface) + Fuse is a ZX Spectrum emulator. It emulates the original 16K, 48K, 128K, + +2, +2A and +3 models, the Timex TC2048, TC2068 and TS2068, and several + clones of the ZX Spectrum. + . + This is the X11 version of Fuse. Added: vendor/fuse-emulator/current/debian/fuse-emulator/copyright =================================================================== --- vendor/fuse-emulator/current/debian/fuse-emulator/copyright (rev 0) +++ vendor/fuse-emulator/current/debian/fuse-emulator/copyright 2008-05-07 12:29:26 UTC (rev 529) @@ -0,0 +1,44 @@ +This package was debianized by Stuart Brady <sd...@nt...> on +Tue, 08 Jan 2008 00:34:33 +0000. + +It was downloaded from http://fuse-emulator.sourceforge.net/ + +Upstream Authors: + + Philip Kendall <phi...@sh...> + Fredrick Meunier <fr...@sp...> + Stuart Brady <sd...@nt...> + Fuse Development <fus...@li...> + +Copyright: + + Copyright (C) 1999-2008 Philip Kendall and others + Contains code from the GNU C Library, + Copyright (C) 1987-2002 Free Software Foundation + +License: + + This package 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 package 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 package; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +On Debian systems, the complete text of the GNU General +Public License can be found in `/usr/share/common-licenses/GPL'. + +The Debian packaging is (C) 2008, Stuart Brady <sd...@nt...> and +is licensed under the GPL, see above. + + +The compat directory contains code from the GNU C Library, which may be +redistributed and/or modified under the terms of version 2.1 of the +GNU Lesser General Public License. Added: vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-common.dirs =================================================================== --- vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-common.dirs (rev 0) +++ vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-common.dirs 2008-05-07 12:29:26 UTC (rev 529) @@ -0,0 +1,2 @@ +usr/share/fuse-emulator +usr/share/man/man1 Added: vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-common.docs =================================================================== --- vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-common.docs (rev 0) +++ vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-common.docs 2008-05-07 12:29:26 UTC (rev 529) @@ -0,0 +1 @@ +README Added: vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-common.install =================================================================== --- vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-common.install (rev 0) +++ vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-common.install 2008-05-07 12:29:26 UTC (rev 529) @@ -0,0 +1 @@ +debian/tmp/usr/share/fuse-emulator Added: vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-common.manpages =================================================================== --- vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-common.manpages (rev 0) +++ vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-common.manpages 2008-05-07 12:29:26 UTC (rev 529) @@ -0,0 +1 @@ +debian/tmp/usr/share/man/man1/fuse-emulator.1 Added: vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-gtk.dirs =================================================================== --- vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-gtk.dirs (rev 0) +++ vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-gtk.dirs 2008-05-07 12:29:26 UTC (rev 529) @@ -0,0 +1,3 @@ +usr/bin +usr/share/man/man1 +usr/lib/menu Added: vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-gtk.install =================================================================== --- vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-gtk.install (rev 0) +++ vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-gtk.install 2008-05-07 12:29:26 UTC (rev 529) @@ -0,0 +1 @@ +debian/tmp/usr/bin/fuse-emulator-gtk Added: vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-gtk.links =================================================================== --- vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-gtk.links (rev 0) +++ vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-gtk.links 2008-05-07 12:29:26 UTC (rev 529) @@ -0,0 +1 @@ +/usr/share/man/man1/fuse-emulator.1.gz /usr/share/man/man1/fuse-emulator-gtk.1.gz Added: vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-gtk.menu =================================================================== --- vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-gtk.menu (rev 0) +++ vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-gtk.menu 2008-05-07 12:29:26 UTC (rev 529) @@ -0,0 +1,3 @@ +?package(fuse-emulator-gtk):needs="X11" section="Applications/Emulators"\ + title="Fuse emulator (GTK+ version)" command="/usr/bin/fuse-emulator-gtk" + Added: vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-gtk.postinst =================================================================== --- vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-gtk.postinst (rev 0) +++ vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-gtk.postinst 2008-05-07 12:29:26 UTC (rev 529) @@ -0,0 +1,12 @@ +#!/bin/sh +# postinst script for fuse-emulator-gtk + +set -e + +update-alternatives --install /usr/bin/fuse-emulator fuse-emulator /usr/bin/fuse-emulator-gtk 50 + +#DEBHELPER# + +exit 0 + + Added: vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-gtk.prerm =================================================================== --- vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-gtk.prerm (rev 0) +++ vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-gtk.prerm 2008-05-07 12:29:26 UTC (rev 529) @@ -0,0 +1,12 @@ +#!/bin/sh +# prerm script for fuse-emulator-gtk + +set -e + +update-alternatives --remove fuse-emulator /usr/bin/fuse-emulator-gtk + +#DEBHELPER# + +exit 0 + + Added: vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-sdl.dirs =================================================================== --- vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-sdl.dirs (rev 0) +++ vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-sdl.dirs 2008-05-07 12:29:26 UTC (rev 529) @@ -0,0 +1,3 @@ +usr/bin +usr/share/man/man1 +usr/lib/menu Added: vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-sdl.install =================================================================== --- vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-sdl.install (rev 0) +++ vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-sdl.install 2008-05-07 12:29:26 UTC (rev 529) @@ -0,0 +1 @@ +debian/tmp/usr/bin/fuse-emulator-sdl Added: vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-sdl.links =================================================================== --- vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-sdl.links (rev 0) +++ vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-sdl.links 2008-05-07 12:29:26 UTC (rev 529) @@ -0,0 +1 @@ +/usr/share/man/man1/fuse-emulator.1.gz /usr/share/man/man1/fuse-emulator-sdl.1.gz Added: vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-sdl.menu =================================================================== --- vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-sdl.menu (rev 0) +++ vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-sdl.menu 2008-05-07 12:29:26 UTC (rev 529) @@ -0,0 +1,3 @@ +?package(fuse-emulator-sdl):needs="X11" section="Applications/Emulators"\ + title="Fuse emulator (SDL version)" command="/usr/bin/fuse-emulator-sdl" + Added: vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-sdl.postinst =================================================================== --- vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-sdl.postinst (rev 0) +++ vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-sdl.postinst 2008-05-07 12:29:26 UTC (rev 529) @@ -0,0 +1,12 @@ +#!/bin/sh +# postinst script for fuse-emulator-sdl + +set -e + +update-alternatives --install /usr/bin/fuse-emulator fuse-emulator /usr/bin/fuse-emulator-sdl 40 + +#DEBHELPER# + +exit 0 + + Added: vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-sdl.prerm =================================================================== --- vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-sdl.prerm (rev 0) +++ vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-sdl.prerm 2008-05-07 12:29:26 UTC (rev 529) @@ -0,0 +1,12 @@ +#!/bin/sh +# prerm script for fuse-emulator-sdl + +set -e + +update-alternatives --remove fuse-emulator /usr/bin/fuse-emulator-sdl + +#DEBHELPER# + +exit 0 + + Added: vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-x11.dirs =================================================================== --- vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-x11.dirs (rev 0) +++ vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-x11.dirs 2008-05-07 12:29:26 UTC (rev 529) @@ -0,0 +1,3 @@ +usr/bin +usr/share/man/man1 +usr/lib/menu Added: vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-x11.install =================================================================== --- vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-x11.install (rev 0) +++ vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-x11.install 2008-05-07 12:29:26 UTC (rev 529) @@ -0,0 +1 @@ +debian/tmp/usr/bin/fuse-emulator-x11 Added: vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-x11.links =================================================================== --- vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-x11.links (rev 0) +++ vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-x11.links 2008-05-07 12:29:26 UTC (rev 529) @@ -0,0 +1 @@ +/usr/share/man/man1/fuse-emulator.1.gz /usr/share/man/man1/fuse-emulator-x11.1.gz Added: vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-x11.menu =================================================================== --- vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-x11.menu (rev 0) +++ vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-x11.menu 2008-05-07 12:29:26 UTC (rev 529) @@ -0,0 +1,3 @@ +?package(fuse-emulator-x11):needs="X11" section="Applications/Emulators"\ + title="Fuse emulator (X11 version)" command="/usr/bin/fuse-emulator-x11" + Added: vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-x11.postinst =================================================================== --- vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-x11.postinst (rev 0) +++ vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-x11.postinst 2008-05-07 12:29:26 UTC (rev 529) @@ -0,0 +1,12 @@ +#!/bin/sh +# postinst script for fuse-emulator-x11 + +set -e + +update-alternatives --install /usr/bin/fuse-emulator fuse-emulator /usr/bin/fuse-emulator-x11 45 + +#DEBHELPER# + +exit 0 + + Added: vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-x11.prerm =================================================================== --- vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-x11.prerm (rev 0) +++ vendor/fuse-emulator/current/debian/fuse-emulator/fuse-emulator-x11.prerm 2008-05-07 12:29:26 UTC (rev 529) @@ -0,0 +1,12 @@ +#!/bin/sh +# prerm script for fuse-emulator-x11 + +set -e + +update-alternatives --remove fuse-emulator /usr/bin/fuse-emulator-x11 + +#DEBHELPER# + +exit 0 + + Added: vendor/fuse-emulator/current/debian/fuse-emulator/patches/00list =================================================================== --- vendor/fuse-emulator/current/debian/fuse-emulator/patches/00list (rev 0) +++ vendor/fuse-emulator/current/debian/fuse-emulator/patches/00list 2008-05-07 12:29:26 UTC (rev 529) @@ -0,0 +1,3 @@ +01_configure +01_noroms +01_man Added: vendor/fuse-emulator/current/debian/fuse-emulator/patches/01_configure.dpatch =================================================================== --- vendor/fuse-emulator/current/debian/fuse-emulator/patches/01_configure.dpatch (rev 0) +++ vendor/fuse-emulator/current/debian/fuse-emulator/patches/01_configure.dpatch 2008-05-07 12:29:26 UTC (rev 529) @@ -0,0 +1,22 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 01-configure.dpatch by Stuart Brady <sd...@nt...> +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Rename to fuse-emulator, to avoid conflicting with +## DP: the Filesystem in USErspace packages. + +@DPATCH@ +--- fuse-emulator-0.9.0-old/configure.in 2008-01-12 21:02:32.000000000 +0000 ++++ fuse-emulator-0.9.0-new/configure.in 2008-01-08 22:15:59.000000000 +0000 +@@ -24,7 +24,7 @@ + AC_CANONICAL_SYSTEM + + dnl Use automake to produce `Makefile.in' +-AM_INIT_AUTOMAKE(fuse, 0.9.0) ++AM_INIT_AUTOMAKE(fuse-emulator, 0.9.0) + + dnl Checks for programs. + AC_PROG_CC + fi + fi + Added: vendor/fuse-emulator/current/debian/fuse-emulator/patches/01_man.dpatch =================================================================== --- vendor/fuse-emulator/current/debian/fuse-emulator/patches/01_man.dpatch (rev 0) +++ vendor/fuse-emulator/current/debian/fuse-emulator/patches/01_man.dpatch 2008-05-07 12:29:26 UTC (rev 529) @@ -0,0 +1,94 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 01-man.dpatch by Stuart Brady <sd...@nt...> +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Refer to fuse-emulator instead of fuse in the man page, due to the +## DP: altered binary name (so as not to conflict with the +## DP: Filesystem in USErspace packages.) + +@DPATCH@ +--- fuse-emulator-0.9.0.orig/man/fuse.1 ++++ fuse-emulator-0.9.0/man/fuse.1 +@@ -1,6 +1,6 @@ + .\" -*- nroff -*- + .\" +-.\" fuse.1: Fuse man page ++.\" fuse-emulator.1: Fuse man page + .\" Copyright (c) 2001-2007 Russell Marks, Philip Kendall, Darren Salt, + .\" Fredrick Meunier, Stuart Brady + .\" +@@ -23,12 +23,12 @@ + .\" E-mail: phi...@sh... + .\" + .\" +-.TH fuse 1 "5th January, 2008" "Version 0.9.0" "Emulators" ++.TH fuse-emulator 1 "5th January, 2008" "Version 0.9.0" "Emulators" + .\" + .\"------------------------------------------------------------------ + .\" + .SH NAME +-fuse \- Sinclair ZX Spectrum emulator ++fuse\-emulator \- Sinclair ZX Spectrum emulator + .\" + .\"------------------------------------------------------------------ + .\" +@@ -36,7 +36,7 @@ + .\" the trend for long-option-using programs is to give a largely + .\" generic synopsis, so... + .PD 0 +-.B fuse ++.B fuse\-emulator + .RI [ options ] + .P + .PD 1 +@@ -835,11 +835,11 @@ + .PP + Some examples of use: + .PP +-.I fuse \-d alsa09:dev=hw:1 ++.I fuse\-emulator \-d alsa09:dev=hw:1 + .PP + causes Fuse to use ALSA 0.9+ output with the second (#1) sound card. + .PP +-.I fuse \-d raw:byteorder=little,file=enigma.raw ++.I fuse\-emulator \-d raw:byteorder=little,file=enigma.raw + .PP + causes Fuse to save little endian words to + .RI ` enigma.raw "'." +@@ -898,13 +898,13 @@ + .PP + Some examples of use: + .PP +-.I fuse \-d verbose,buffer=2000 ++.I fuse\-emulator \-d verbose,buffer=2000 + .PP + causes Fuse to use the default ALSA device with 2000 frame length buffer and + report ALSA buffer underruns on + .IR stderr . + .PP +-.I fuse \-d tee:plughw:0,\(aq/tmp/aufwm.raw\(aq,raw ++.I fuse\-emulator \-d tee:plughw:0,\(aq/tmp/aufwm.raw\(aq,raw + .PP + causes Fuse to use the first card and parallel save the raw audio samples + into +@@ -3287,9 +3287,9 @@ + other than SDL. + .PP + Attempting to replay an RZX file without an embedded snapshot from the +-command-line doesn't work if you do `./fuse ++command-line doesn't work if you do `./fuse\-emulator + .IR "rzxfile snapshot" '. +-`./fuse ++`./fuse\-emulator + .IR "snapshot rzxfile" ' + does work though, so use that instead. + .PP +@@ -3322,7 +3322,7 @@ + .\" + .SH SEE ALSO + .IR bzip2 "(3)," +-.IR fuse\-utils "(1)," ++.IR fuse\-emulator\-utils "(1)," + .IR gzip "(3)," + .IR libspectrum "(3)," + .IR ogg123 "(1)," Added: vendor/fuse-emulator/current/debian/fuse-emulator/patches/01_noroms.dpatch =================================================================== --- vendor/fuse-emulator/current/debian/fuse-emulator/patches/01_noroms.dpatch (rev 0) +++ vendor/fuse-emulator/current/debian/fuse-emulator/patches/01_noroms.dpatch 2008-05-07 12:29:26 UTC (rev 529) @@ -0,0 +1,16 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 01-noroms.dpatch by Stuart Brady <sd...@nt...> +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Don't install the ROMs, as they are non-free. + +--- fuse-emulator-0.9.0-old/roms/Makefile.am 2008-01-13 19:31:46.000000000 +0000 ++++ fuse-emulator-0.9.0-new/roms/Makefile.am 2008-01-12 22:02:01.000000000 +0000 +@@ -36,6 +36,6 @@ + if1-1.rom if1-2.rom \ + plusd.rom + +-pkgdata_DATA = $(ROMS) ++#pkgdata_DATA = $(ROMS) + + EXTRA_DIST = $(ROMS) Added: vendor/fuse-emulator/current/debian/fuse-emulator/rules =================================================================== --- vendor/fuse-emulator/current/debian/fuse-emulator/rules (rev 0) +++ vendor/fuse-emulator/current/debian/fuse-emulator/rules 2008-05-07 12:29:26 UTC (rev 529) @@ -0,0 +1,156 @@ +#!/usr/bin/make -f +# -*- makefile -*- +# Created with the aid of dh_make. +# Borrows quite a bit from the Freeciv rules file. + +# Uncomment this to turn on verbose mode. +export DH_VERBOSE=1 + +# This has to be exported to make some magic below work. +export DH_OPTIONS + +include /usr/share/dpatch/dpatch.make + +# These are used for cross-compiling and for saving the configure script +# from having to guess our platform (since we know it already) +DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) +DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) + + +COMMON_CONFIG := --host=$(DEB_HOST_GNU_TYPE) \ + --build=$(DEB_BUILD_GNU_TYPE) \ + --prefix=/usr --mandir=\$${prefix}/share/man \ + --infodir=\$${prefix}/share/info \ + LDFLAGS="-Wl,-z,defs" + +build: patch build-arch-gtk build-arch-sdl build-arch-x11 build-indep + +build-arch-gtk: build-arch-gtk-stamp +build-arch-gtk-stamp: + dh_testdir + + -rm -f config.sub config.guess + ln -sf /usr/share/misc/config.sub config.sub + ln -sf /usr/share/misc/config.guess config.guess + + mkdir build-gtk + (cd build-gtk && \ + ../configure $(COMMON_CONFIG) --with-gtk --without-sdl --without-fb \ + --without-x --without-svgalib --without-fb --without-win32 && \ + $(MAKE)) + + touch build-arch-gtk-stamp + +build-arch-sdl: build-arch-sdl-stamp +build-arch-sdl-stamp: + dh_testdir + + -rm -f config.sub config.guess + ln -sf /usr/share/misc/config.sub config.sub + ln -sf /usr/share/misc/config.guess config.guess + + mkdir build-sdl + (cd build-sdl && \ + ../configure $(COMMON_CONFIG) --without-sdl --with-sdl --without-fb \ + --without-x --without-svgalib --without-fb --without-win32 && \ + $(MAKE)) + + touch build-arch-sdl-stamp + +build-arch-x11: build-arch-x11-stamp +build-arch-x11-stamp: + dh_testdir + + -rm -f config.sub config.guess + ln -sf /usr/share/misc/config.sub config.sub + ln -sf /usr/share/misc/config.guess config.guess + + mkdir build-x11 + (cd build-x11 && \ + ../configure $(COMMON_CONFIG) --without-gtk --without-sdl --with-x \ + --without-fb --without-svgalib --without-fb --without-win32 && \ + $(MAKE)) + + touch build-arch-x11-stamp + +build-indep: build-indep-stamp +build-indep-stamp: + + #$(MAKE) doc + touch $@ + +clean: unpatch + dh_testdir + dh_testroot + + -rm -rf build-gtk build-sdl build-x11 + -rm -f install-stamp build-arch-gtk-stamp build-arch-sdl-stamp build-arch-x11-stamp build-indep-stamp + -rm -f config.cache + -rm -f config.sub config.guess + + dh_clean + + -rm -f debian/*~ Makefile Makefile.bak core */Makefile + +install: install-stamp +install-stamp: build-arch-gtk build-arch-sdl build-arch-x11 + + dh_testdir + dh_testroot + dh_clean -k -i + dh_installdirs -i + + (cd build-gtk; $(MAKE) DESTDIR=$(CURDIR)/debian/tmp install) + mv debian/tmp/usr/bin/fuse debian/tmp/usr/bin/fuse-emulator-gtk + mv debian/tmp/usr/share/man/man1/fuse.1 debian/tmp/usr/share/man/man1/fuse-emulator.1 + + (cd build-sdl; $(MAKE) DESTDIR=$(CURDIR)/debian/tmp install) + mv debian/tmp/usr/bin/fuse debian/tmp/usr/bin/fuse-emulator-sdl + + (cd build-x11; $(MAKE) DESTDIR=$(CURDIR)/debian/tmp install) + mv debian/tmp/usr/bin/fuse debian/tmp/usr/bin/fuse-emulator-x11 + + #INSTALLDOC# + + dh_install + + touch install-stamp + +binary-indep: build install + dh_testdir -i + dh_testroot -i + dh_installchangelogs -i ChangeLog + dh_installdocs -i + dh_installexamples -i + dh_installman -i + dh_link -i + dh_strip -i + dh_compress -i + dh_fixperms -i + dh_makeshlibs -i + dh_installdeb -i + dh_shlibdeps -i + dh_gencontrol -i + dh_md5sums -i + dh_builddeb -i + +binary-arch: build install + dh_testdir -a + dh_testroot -a + dh_installchangelogs -a ChangeLog + dh_installdocs -a + dh_installexamples -a + dh_installman -a + dh_link -a + dh_strip -a + dh_compress -a + dh_fixperms -a + dh_makeshlibs -a + dh_installdeb -a + dh_shlibdeps -a + dh_gencontrol -a + dh_md5sums -a + dh_builddeb -a + +binary: binary-arch binary-indep +.PHONY: build clean binary-indep binary-arch binary Property changes on: vendor/fuse-emulator/current/debian/fuse-emulator/rules ___________________________________________________________________ Name: svn:executable + * Added: vendor/fuse-emulator/current/debian/fuse-emulator-utils/changelog =================================================================== --- vendor/fuse-emulator/current/debian/fuse-emulator-utils/changelog (rev 0) +++ vendor/fuse-emulator/current/debian/fuse-emulator-utils/changelog 2008-05-07 12:29:26 UTC (rev 529) @@ -0,0 +1,13 @@ +fuse-emulator-utils (0.9.0-2) unstable; urgency=low + + * Remove comments from the rules file. + + -- Stuart Brady <sd...@nt...> Thu, 10 Jan 2008 15:08:43 +0000 + +fuse-emulator-utils (0.9.0-1) unstable; urgency=low + + * Initial release. + + -- Stuart Brady <sd...@nt...> Wed, 09 Jan 2008 22:54:33 +0000 + + Added: vendor/fuse-emulator/current/debian/fuse-emulator-utils/compat =================================================================== --- vendor/fuse-emulator/current/debian/fuse-emulator-utils/compat (rev 0) +++ vendor/fuse-emulator/current/debian/fuse-emulator-utils/compat 2008-05-07 12:29:26 UTC (rev 529) @@ -0,0 +1 @@ +5 Added: vendor/fuse-emulator/current/debian/fuse-emulator-utils/control =================================================================== --- vendor/fuse-emulator/current/debian/fuse-emulator-utils/control (rev 0) +++ vendor/fuse-emulator/current/debian/fuse-emulator-utils/control 2008-05-07 12:29:26 UTC (rev 529) @@ -0,0 +1,16 @@ +Source: fuse-emulator-utils +Section: otherosfs +Priority: extra +Maintainer: Stuart Brady <sd...@nt...> +Build-Depends: debhelper (>= 5), autotools-dev, libspectrum-dev (>= 0.4.0), libaudiofile-dev +Standards-Version: 3.7.2 +Homepage: http://fuse-emulator.sourceforge.net/ +Vcs-Svn: https://fuse-emulator.svn.sourceforge.net/svnroot/fuse-emulator/trunk/fuse-utils +Vcs-Browser: http://fuse-emulator.svn.sourceforge.net/viewvc/fuse-emulator/trunk/fuse-utils/ + +Package: fuse-emulator-utils +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: ZX Spectrum-related utilities + The Fuse utilities are a set of programs for the manipulation of ZX Spectrum + related files, such as tape images and snapshots. Added: vendor/fuse-emulator/current/debian/fuse-emulator-utils/copyright =================================================================== --- vendor/fuse-emulator/current/debian/fuse-emulator-utils/copyright (rev 0) +++ vendor/fuse-emulator/current/debian/fuse-emulator-utils/copyright 2008-05-07 12:29:26 UTC (rev 529) @@ -0,0 +1,37 @@ +This package was debianized by Stuart Brady <sd...@nt...> on +Tue, 08 Jan 2008 00:33:40 +0000. + +It was downloaded from http://fuse-emulator.sourceforge.net/ + +Upstream Authors: + + Philip Kendall <phi...@sh...> + Fredrick Meunier <fr...@sp...> + Stuart Brady <sd...@nt...> + Fuse Development <fus...@li...> + +Copyright: + + Copyright (C) 1997-2008 Philip Kendall and others + +License: + + This package 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 package 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 package; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +On Debian systems, the complete text of the GNU General +Public License can be found in `/usr/share/common-licenses/GPL'. + +The Debian packaging is (C) 2008, Stuart Brady <sd...@nt...> and +is licensed under the GPL, see above. Added: vendor/fuse-emulator/current/debian/fuse-emulator-utils/dirs =================================================================== --- vendor/fuse-emulator/current/debian/fuse-emulator-utils/dirs (rev 0) +++ vendor/fuse-emulator/current/debian/fuse-emulator-utils/dirs 2008-05-07 12:29:26 UTC (rev 529) @@ -0,0 +1,2 @@ +usr/bin +usr/share/man/man1 Added: vendor/fuse-emulator/current/debian/fuse-emulator-utils/docs =================================================================== --- vendor/fuse-emulator/current/debian/fuse-emulator-utils/docs (rev 0) +++ vendor/fuse-emulator/current/debian/fuse-emulator-utils/docs 2008-05-07 12:29:26 UTC (rev 529) @@ -0,0 +1 @@ +README Added: vendor/fuse-emulator/current/debian/fuse-emulator-utils/rules =================================================================== --- vendor/fuse-emulator/current/debian/fuse-emulator-utils/rules (rev 0) +++ vendor/fuse-emulator/current/debian/fuse-emulator-utils/rules 2008-05-07 12:29:26 UTC (rev 529) @@ -0,0 +1,87 @@ +#!/usr/bin/make -f +# -*- makefile -*- +# Created with the aid of dh_make. + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + + +# These are used for cross-compiling and for saving the configure script +# from having to guess our platform (since we know it already) +DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) +DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) + + +config.status: configure + dh_testdir +ifneq "$(wildcard /usr/share/misc/config.sub)" "" + cp -f /usr/share/misc/config.sub config.sub +endif +ifneq "$(wildcard /usr/share/misc/config.guess)" "" + cp -f /usr/share/misc/config.guess config.guess +endif + ./configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) --prefix=/usr --mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info CFLAGS="$(CFLAGS)" LDFLAGS="-Wl,-z,defs" + + +build: build-stamp + +build-stamp: config.status + dh_testdir + + $(MAKE) + + touch $@ + +clean: + dh_testdir + dh_testroot + rm -f build-stamp + + -$(MAKE) distclean + rm -f config.sub config.guess + + dh_clean + +install: build + dh_testdir + dh_testroot + dh_clean -k + dh_installdirs + + $(MAKE) DESTDIR=$(CURDIR)/debian/fuse-emulator-utils install + + +binary-indep: build install + +binary-arch: build install + dh_testdir + dh_testroot + dh_installchangelogs ChangeLog + dh_installdocs + dh_installexamples + dh_install +# dh_installmenu +# dh_installdebconf +# dh_installlogrotate +# dh_installemacsen +# dh_installpam +# dh_installmime +# dh_python +# dh_installinit +# dh_installcron +# dh_installinfo + dh_installman + dh_link + dh_strip + dh_compress + dh_fixperms +# dh_perl +# dh_makeshlibs + dh_installdeb + dh_shlibdeps + dh_gencontrol + dh_md5sums + dh_builddeb + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary install Property changes on: vendor/fuse-emulator/current/debian/fuse-emulator-utils/rules ___________________________________________________________________ Name: svn:executable + * Added: vendor/fuse-emulator/current/debian/lib765/changelog =================================================================== --- vendor/fuse-emulator/current/debian/lib765/changelog (rev 0) +++ vendor/fuse-emulator/current/debian/lib765/changelog 2008-05-07 12:29:26 UTC (rev 529) @@ -0,0 +1,13 @@ +lib765 (0.4.1-2) unstable; urgency=low + + * Remove comments from the rules file. + + -- Stuart Brady <sd...@nt...> Thu, 10 Jan 2008 15:10:40 +0000 + +lib765 (0.4.1-1) unstable; urgency=low + + * Initial release. + + -- Stuart Brady <sd...@nt...> Wed, 09 Jan 2008 22:54:33 +0000 + + Added: vendor/fuse-emulator/current/debian/lib765/compat =================================================================== --- vendor/fuse-emulator/current/debian/lib765/compat (rev 0) +++ vendor/fuse-emulator/current/debian/lib765/compat 2008-05-07 12:29:26 UTC (rev 529) @@ -0,0 +1 @@ +5 Added: vendor/fuse-emulator/current/debian/lib765/control =================================================================== --- vendor/fuse-emulator/current/debian/lib765/control (rev 0) +++ vendor/fuse-emulator/current/debian/lib765/control 2008-05-07 12:29:26 UTC (rev 529) @@ -0,0 +1,26 @@ +Source: lib765 +Priority: extra +Maintainer: Stuart Brady <sd...@nt...> +Build-Depends: debhelper (>= 5), autotools-dev +Standards-Version: 3.7.2 +Section: libs +Homepage: http://www.seasip.demon.co.uk/Unix/LibDsk/ + +Package: lib765-dev +Section: libdevel +Architecture: any +Depends: lib765-3 (= ${Source-Version}) +Description: uPD 765 FDC emulation library (development) + lib765 is a library that provides emulation of the uPD 765 floppy disk + controller, for use in emulators. + . + This package contains development files that are needed to compile + applications which require lib765. + +Package: lib765-3 +Section: libs +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: uPD 765 FDC emulation library (development) + lib765 is a library that provides emulation of the uPD 765 floppy disk + controller, for use in emulators. Added: vendor/fuse-emulator/current/debian/lib765/copyright =================================================================== --- vendor/fuse-emulator/current/debian/lib765/copyright (rev 0) +++ vendor/fuse-emulator/current/debian/lib765/copyright 2008-05-07 12:29:26 UTC (rev 529) @@ -0,0 +1,34 @@ +This package was debianized by Stuart Brady <sd...@nt...> on +Wed, 09 Jan 2008 00:20:08 +0000. + +It was downloaded from http://www.seasip.demon.co.uk/Unix/LibDsk/ + +Upstream Author: + + John Elliot <jc...@se...> + +Copyright: + + Copyright (C) 2000-2007 John Elliot + +License: + + This package 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 of the License, or (at your option) any later version. + + This package 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 this package; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +On Debian systems, the complete text of the GNU Lesser General +Public License can be found in `/usr/share/common-licenses/LGPL'. + +The Debian packaging is (C) 2008, Stuart Brady <sd...@nt...> and +is licensed under the GPL, see `/usr/share/common-licenses/GPL'. Added: vendor/fuse-emulator/current/debian/lib765/dirs =================================================================== --- vendor/fuse-emulator/current/debian/lib765/dirs (rev 0) +++ vendor/fuse-emulator/current/debian/lib765/dirs 2008-05-07 12:29:26 UTC (rev 529) @@ -0,0 +1,2 @@ +usr/bin +usr/sbin Added: vendor/fuse-emulator/current/debian/lib765/docs =================================================================== Added: vendor/fuse-emulator/current/debian/lib765/lib765-3.dirs =================================================================== --- vendor/fuse-emulator/current/debian/lib765/lib765-3.dirs (rev 0) +++ vendor/fuse-emulator/current/debian/lib765/lib765-3.dirs 2008-05-07 12:29:26 UTC (rev 529) @@ -0,0 +1 @@ +usr/lib Added: vendor/fuse-emulator/current/debian/lib765/lib765-3.install =================================================================== --- vendor/fuse-emulator/current/debian/lib765/lib765-3.install (rev 0) +++ vendor/fuse-emulator/current/debian/lib765/lib765-3.install 2008-05-07 12:29:26 UTC (rev 529) @@ -0,0 +1 @@ +debian/tmp/usr/lib/lib*.so.* Added: vendor/fuse-emulator/current/debian/lib765/lib765-dev.dirs =================================================================== --- vendor/fuse-emulator/current/debian/lib765/lib765-dev.dirs (rev 0) +++ vendor/fuse-emulator/current/debian/lib765/lib765-d... [truncated message content] |
From: <fr...@us...> - 2008-05-07 12:43:56
|
Revision: 530 http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=530&view=rev Author: fredm Date: 2008-05-07 05:29:58 -0700 (Wed, 07 May 2008) Log Message: ----------- Tag vendor/fuse-emulator/current as vendor/fuse-emulator/fuse-r3612. Added Paths: ----------- vendor/fuse-emulator/fuse-r3612/ Copied: vendor/fuse-emulator/fuse-r3612 (from rev 529, vendor/fuse-emulator/current) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2008-05-07 12:25:37
|
Revision: 528 http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=528&view=rev Author: fredm Date: 2008-05-07 05:25:42 -0700 (Wed, 07 May 2008) Log Message: ----------- To prepare to load . into vendor/fuse-emulator/current, perform 20 renames. * vendor/fuse-emulator/current/fuse/ui/widget/fuse.font.sbf: Renamed from vendor/fuse-emulator/current/fuse/widget/fuse.font.sbf. * vendor/fuse-emulator/current/fuse/ui/widget/debugger.c: Renamed from vendor/fuse-emulator/current/fuse/widget/debugger.c. * vendor/fuse-emulator/current/fuse/ui/widget/browse.c: Renamed from vendor/fuse-emulator/current/fuse/widget/browse.c. * vendor/fuse-emulator/current/fuse/ui/widget/error.c: Renamed from vendor/fuse-emulator/current/fuse/widget/error.c. * vendor/fuse-emulator/current/fuse/ui/widget/filesel.c: Renamed from vendor/fuse-emulator/current/fuse/widget/filesel.c. * vendor/fuse-emulator/current/fuse/ui/widget/widget.c: Renamed from vendor/fuse-emulator/current/fuse/widget/widget.c. * vendor/fuse-emulator/current/fuse/ui/widget/widget.h: Renamed from vendor/fuse-emulator/current/fuse/widget/widget.h. * vendor/fuse-emulator/current/fuse/ui/widget/select.c: Renamed from vendor/fuse-emulator/current/fuse/widget/select.c. * vendor/fuse-emulator/current/fuse/ui/widget/widget_internals.h: Renamed from vendor/fuse-emulator/current/fuse/widget/widget_internals.h. * vendor/fuse-emulator/current/fuse/ui/widget/Makefile.am: Renamed from vendor/fuse-emulator/current/fuse/widget/Makefile.am. * vendor/fuse-emulator/current/fuse/ui/widget/picture.c: Renamed from vendor/fuse-emulator/current/fuse/widget/picture.c. * vendor/fuse-emulator/current/fuse/ui/widget/query.c: Renamed from vendor/fuse-emulator/current/fuse/widget/query.c. * vendor/fuse-emulator/current/fuse/ui/widget/menu.c: Renamed from vendor/fuse-emulator/current/fuse/widget/menu.c. * vendor/fuse-emulator/current/fuse/ui/widget/memory.c: Renamed from vendor/fuse-emulator/current/fuse/widget/memory.c. * vendor/fuse-emulator/current/fuse/ui/widget/mkfusefont.pl: Renamed from vendor/fuse-emulator/current/fuse/widget/mkfusefont.pl. * vendor/fuse-emulator/current/fuse/ui/widget/options-header.pl: Renamed from vendor/fuse-emulator/current/fuse/widget/options-header.pl. * vendor/fuse-emulator/current/fuse/ui/widget/options.pl: Renamed from vendor/fuse-emulator/current/fuse/widget/options.pl. * vendor/fuse-emulator/current/fuse/ui/widget/pokefinder.c: Renamed from vendor/fuse-emulator/current/fuse/widget/pokefinder.c. * vendor/fuse-emulator/current/fuse/ui/widget/text.c: Renamed from vendor/fuse-emulator/current/fuse/widget/text.c. * vendor/fuse-emulator/current/fuse/ui/widget/roms.c: Renamed from vendor/fuse-emulator/current/fuse/widget/roms.c. Added Paths: ----------- vendor/fuse-emulator/current/fuse/ui/widget/ vendor/fuse-emulator/current/fuse/ui/widget/Makefile.am vendor/fuse-emulator/current/fuse/ui/widget/browse.c vendor/fuse-emulator/current/fuse/ui/widget/debugger.c vendor/fuse-emulator/current/fuse/ui/widget/error.c vendor/fuse-emulator/current/fuse/ui/widget/filesel.c vendor/fuse-emulator/current/fuse/ui/widget/fuse.font.sbf vendor/fuse-emulator/current/fuse/ui/widget/memory.c vendor/fuse-emulator/current/fuse/ui/widget/menu.c vendor/fuse-emulator/current/fuse/ui/widget/mkfusefont.pl vendor/fuse-emulator/current/fuse/ui/widget/options-header.pl vendor/fuse-emulator/current/fuse/ui/widget/options.pl vendor/fuse-emulator/current/fuse/ui/widget/picture.c vendor/fuse-emulator/current/fuse/ui/widget/pokefinder.c vendor/fuse-emulator/current/fuse/ui/widget/query.c vendor/fuse-emulator/current/fuse/ui/widget/roms.c vendor/fuse-emulator/current/fuse/ui/widget/select.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 Removed Paths: ------------- vendor/fuse-emulator/current/fuse/widget/Makefile.am vendor/fuse-emulator/current/fuse/widget/browse.c vendor/fuse-emulator/current/fuse/widget/debugger.c vendor/fuse-emulator/current/fuse/widget/error.c vendor/fuse-emulator/current/fuse/widget/filesel.c vendor/fuse-emulator/current/fuse/widget/fuse.font.sbf vendor/fuse-emulator/current/fuse/widget/memory.c vendor/fuse-emulator/current/fuse/widget/menu.c vendor/fuse-emulator/current/fuse/widget/mkfusefont.pl vendor/fuse-emulator/current/fuse/widget/options-header.pl vendor/fuse-emulator/current/fuse/widget/options.pl vendor/fuse-emulator/current/fuse/widget/picture.c vendor/fuse-emulator/current/fuse/widget/pokefinder.c vendor/fuse-emulator/current/fuse/widget/query.c vendor/fuse-emulator/current/fuse/widget/roms.c vendor/fuse-emulator/current/fuse/widget/select.c vendor/fuse-emulator/current/fuse/widget/text.c vendor/fuse-emulator/current/fuse/widget/widget.c vendor/fuse-emulator/current/fuse/widget/widget.h vendor/fuse-emulator/current/fuse/widget/widget_internals.h Copied: vendor/fuse-emulator/current/fuse/ui/widget/Makefile.am (from rev 527, vendor/fuse-emulator/current/fuse/widget/Makefile.am) =================================================================== --- vendor/fuse-emulator/current/fuse/ui/widget/Makefile.am (rev 0) +++ vendor/fuse-emulator/current/fuse/ui/widget/Makefile.am 2008-05-07 12:25:42 UTC (rev 528) @@ -0,0 +1,77 @@ +## Process this file with automake to produce Makefile.in +## Copyright (c) 2001,2002 Philip Kendall + +## $Id: Makefile.am 3151 2007-09-05 15:41:46Z zubzero $ + +## 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... + +AUTOMAKE_OPTIONS = foreign + +AM_CPPFLAGS = -I$(srcdir)/.. + +noinst_LIBRARIES = libwidget.a + +libwidget_a_SOURCES = \ + browse.c \ + debugger.c \ + error.c \ + filesel.c \ + memory.c \ + menu.c \ + menu_data.c \ + options.c \ + picture.c \ + pokefinder.c \ + query.c \ + roms.c \ + select.c \ + text.c \ + widget.c + +INCLUDES = @GTK_CFLAGS@ @GLIB_CFLAGS@ @LIBSPEC_CFLAGS@ + +BUILT_SOURCES = menu_data.c \ + options.c \ + options.h \ + fuse.font + +menu_data.c: $(srcdir)/../perl/cpp-perl.pl $(srcdir)/../menu_data.dat $(srcdir)/../menu_data.pl ../config.h + @PERL@ $(srcdir)/../perl/cpp-perl.pl ../config.h $(srcdir)/../menu_data.dat | @PERL@ -I$(srcdir)/../perl $(srcdir)/../menu_data.pl widget > $@.tmp && mv $@.tmp $@ + +options.c: $(srcdir)/../perl/cpp-perl.pl ../config.h $(srcdir)/options.pl $(srcdir)/../ui/options.dat $(srcdir)/../perl/Fuse.pm $(srcdir)/../perl/Fuse/Dialog.pm + @PERL@ $(srcdir)/../perl/cpp-perl.pl ../config.h $(srcdir)/../ui/options.dat | @PERL@ -I$(srcdir)/../perl $(srcdir)/options.pl - > $@.tmp && mv $@.tmp $@ + +options.h: $(srcdir)/../perl/cpp-perl.pl ../config.h $(srcdir)/options-header.pl $(srcdir)/../ui/options.dat $(srcdir)/../perl/Fuse.pm $(srcdir)/../perl/Fuse/Dialog.pm + @PERL@ $(srcdir)/../perl/cpp-perl.pl ../config.h $(srcdir)/../ui/options.dat | @PERL@ -I$(srcdir)/../perl $(srcdir)/options-header.pl - > $@.tmp && mv $@.tmp $@ + +fuse.font: $(srcdir)/mkfusefont.pl $(srcdir)/fuse.font.sbf + @PERL@ $(srcdir)/mkfusefont.pl $(srcdir)/fuse.font.sbf > $@.tmp && mv $@.tmp $@ + +noinst_HEADERS = widget.h widget_internals.h \ + options.h options.pl options-header.pl + +pkgdata_DATA = fuse.font + +EXTRA_DIST = mkfusefont.pl \ + fuse.font.sbf + +CLEANFILES = menu_data.c \ + options.c \ + options.h \ + fuse.font Copied: vendor/fuse-emulator/current/fuse/ui/widget/browse.c (from rev 527, vendor/fuse-emulator/current/fuse/widget/browse.c) =================================================================== --- vendor/fuse-emulator/current/fuse/ui/widget/browse.c (rev 0) +++ vendor/fuse-emulator/current/fuse/ui/widget/browse.c 2008-05-07 12:25:42 UTC (rev 528) @@ -0,0 +1,226 @@ +/* browse.c: tape browser widget + Copyright (c) 2002-2004 Philip Kendall + + $Id: browse.c 3461 2008-01-03 13:42:54Z pak21 $ + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + Author contact information: + + E-mail: phi...@sh... + +*/ + +#include <config.h> + +#include <stdio.h> +#include <stdlib.h> + +#ifdef HAVE_LIB_GLIB +#include <glib.h> +#else /* #ifdef HAVE_LIB_GLIB */ +#include <libspectrum.h> +#endif /* #ifdef HAVE_LIB_GLIB */ + +#include "fuse.h" +#include "tape.h" +#include "widget_internals.h" + +/* The descriptions of the blocks */ +static GSList *blocks; + +/* How many blocks we have in total */ +size_t block_count; + +/* Which block is shown on the top line of the widget */ +static int top_line; + +/* Which block is currently highlighted */ +static int highlight; + +static void show_blocks( void ); +static void add_block_description( libspectrum_tape_block *block, + void *user_data ); +static void free_description( gpointer data, gpointer user_data ); + +int +widget_browse_draw( void *data GCC_UNUSED ) +{ + int error; + + blocks = NULL; block_count = 0; + error = tape_foreach( add_block_description, &blocks ); + if( error ) return error; + + widget_dialog_with_border( 1, 2, 30, 20 ); + + widget_print_title( 16, WIDGET_COLOUR_FOREGROUND, "Browse Tape" ); + widget_display_lines( 2, 1 ); + + highlight = tape_get_current_block(); + top_line = highlight - 8; if( top_line < 0 ) top_line = 0; + + show_blocks(); + + return 0; +} + +static void +add_block_description( libspectrum_tape_block *block, void *user_data ) +{ + GSList **ptr = user_data; + + char *buffer; + + buffer = malloc( 30 ); if( !buffer ) return; + libspectrum_tape_block_description( buffer, 30, block ); + + (*ptr) = g_slist_append( *ptr, buffer ); + + block_count++; +} + +static void +show_blocks( void ) +{ + size_t i; char buffer[64]; + GSList *ptr; + int numpos = g_slist_length( blocks ); + + if( numpos < 10 ) { + numpos = 24; + } else if( numpos < 100 ) { + numpos = 32; + } else { + numpos = 40; + } + + widget_rectangle( 2*8, 4*8, 28*8, 18*8, WIDGET_COLOUR_BACKGROUND ); + + for( i = 0, ptr = g_slist_nth( blocks, top_line ); + i < 18 && ptr; + i++, ptr = ptr->next ) { + + int colour = ( top_line + i == highlight ) + ? WIDGET_COLOUR_BACKGROUND : WIDGET_COLOUR_FOREGROUND; + + if( top_line + i == highlight ) + widget_rectangle( 16, i*8+32, 28*8, 1*8, WIDGET_COLOUR_FOREGROUND ); + + sprintf( buffer, "%lu", (unsigned long)( top_line + i + 1 ) ); + widget_printstring_right( numpos, i*8+32, colour, buffer ); + snprintf( buffer, sizeof( buffer ), ": %s", (char *)ptr->data ); + widget_printstring( numpos + 1, i*8+32, colour, buffer ); + } + + widget_display_lines( 4, 18 ); +} + +void +widget_browse_keyhandler( input_key key ) +{ + switch( key ) { + +#if 0 + case INPUT_KEY_Resize: /* Fake keypress used on window resize */ + widget_browse_draw( NULL ); + break; +#endif + + case INPUT_KEY_Escape: + widget_end_widget( WIDGET_FINISHED_CANCEL ); + return; + + case INPUT_KEY_Down: + case INPUT_KEY_6: + case INPUT_KEY_j: + if( highlight < block_count - 1 ) { + highlight++; + if( highlight >= top_line + 18 ) top_line += 18; + show_blocks(); + } + break; + + case INPUT_KEY_Up: + case INPUT_KEY_7: + case INPUT_KEY_k: + if( highlight > 0 ) { + highlight--; + if( highlight < top_line ) + { + top_line -= 18; + if( top_line < 0 ) top_line = 0; + } + show_blocks(); + } + break; + + case INPUT_KEY_Page_Up: + highlight -= 18; if( highlight < 0 ) highlight = 0; + top_line -= 18; if( top_line < 0 ) top_line = 0; + show_blocks(); + break; + + case INPUT_KEY_Page_Down: + highlight += 18; + if( highlight >= block_count ) highlight = block_count - 1; + top_line += 18; + if( top_line >= block_count ) { + top_line = block_count - 18; + if( top_line < 0 ) top_line = 0; + } + show_blocks(); + break; + + case INPUT_KEY_Home: + highlight = top_line = 0; + show_blocks(); + break; + + case INPUT_KEY_End: + highlight = block_count - 1; + top_line = block_count - 18; if( top_line < 0 ) top_line = 0; + show_blocks(); + break; + + case INPUT_KEY_Return: + widget_end_widget( WIDGET_FINISHED_OK ); + return; + + default: /* Keep gcc happy */ + break; + + } +} + +int +widget_browse_finish( widget_finish_state finished ) +{ + g_slist_foreach( blocks, free_description, NULL ); + g_slist_free( blocks ); + + if( finished == WIDGET_FINISHED_OK ) { + if( highlight != -1 ) tape_select_block( highlight ); + widget_end_all( WIDGET_FINISHED_OK ); + } + + return 0; +} + +static void +free_description( gpointer data, gpointer user_data ) +{ + free( data ); +} Copied: vendor/fuse-emulator/current/fuse/ui/widget/debugger.c (from rev 527, vendor/fuse-emulator/current/fuse/widget/debugger.c) =================================================================== --- vendor/fuse-emulator/current/fuse/ui/widget/debugger.c (rev 0) +++ vendor/fuse-emulator/current/fuse/ui/widget/debugger.c 2008-05-07 12:25:42 UTC (rev 528) @@ -0,0 +1,547 @@ +/* debugger.c: The debugger widget + Copyright (c) 2002-2004 Philip Kendall, Darren Salt + + $Id: debugger.c 3115 2007-08-19 02:49:14Z 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: phi...@sh... + +*/ + +#include <config.h> + +#include <stdio.h> +#include <string.h> + +#include <libspectrum.h> + +#include "display.h" +#include "keyboard.h" +#include "machine.h" +#include "scld.h" +#include "ui/uidisplay.h" +#include "ula.h" +#include "widget.h" +#include "debugger/debugger.h" +#include "widget_internals.h" +#include "z80/z80.h" +#include "z80/z80_macros.h" +#include "zxcf.h" + +static enum { + DB_REGISTERS, DB_BYTES, DB_TEXT, DB_DISASM, DB_BREAKPT +} display = DB_REGISTERS; + +struct { + libspectrum_word value; + size_t page; + char x, width, column; +} db_editv = { + 0, 0, 255, 0 +}; + +static libspectrum_word debugger_memaddr; +static int breakpt_no = 0, breakpt_show = 0; + +/* Various data displays */ +static void display_registers( void ); +static void display_bytes( void ); +static void display_text( void ); +static void display_disasm( void ); +static void display_breakpts( void ); + +/* Scrolling for the data displays */ +static void scroll( int step ); + +#define LC(X) ( (X)*8 - DISPLAY_BORDER_ASPECT_WIDTH ) +#define LR(Y) ( (Y)*8 - DISPLAY_BORDER_HEIGHT ) + +static inline const char *format_8_bit( void ) +{ + return debugger_output_base == 10 ? "%-3d" : "%02X"; +} + +static inline const char *format_16_bit( void ) +{ + return debugger_output_base == 10 ? "%-5d" : "%04X"; +} + +int ui_debugger_activate( void ) +{ + return widget_do( WIDGET_TYPE_DEBUGGER, NULL ); +} + +int ui_debugger_deactivate( int interruptible GCC_UNUSED ) +{ + /* Refresh the Spectrum's display, including the border */ + display_refresh_all(); + return widget_end_all( WIDGET_FINISHED_OK ); +} + +int ui_debugger_update( void ) +{ + return widget_debugger_draw( NULL ); +} + +int ui_debugger_disassemble( libspectrum_word addr ) +{ + debugger_memaddr = addr; + return 0; +} + +int widget_debugger_draw( void *data ) +{ + static const char state[][8] = { + "Running", "Halted", "Stepped", "Breakpt" + }; + int x; + char pbuf[8]; + + widget_rectangle( LC(0), LR(0), 40 * 8, 11 * 8 + 4, 1 ); + widget_rectangle( LC(0), LR(11) + 2, 320, 1, 7 ); + + switch ( display ) { + case DB_REGISTERS: display_registers(); break; + case DB_BYTES: display_bytes(); break; + case DB_TEXT: display_text(); break; + case DB_DISASM: display_disasm(); break; + case DB_BREAKPT: display_breakpts(); break; + } + + widget_printstring( LC(0), LR(9) - 4, 6, state[debugger_mode] ); + widget_printstring( LC(10), LR(9) - 4, 6, + "\012S\011ingle step \012C\011ontinue Co\012m\011mand" ); + + x = LC(-1); + if( display != DB_REGISTERS ) + x = widget_printstring( x + 8, LR(10), 7, "\012R\011egs" ); + if( display != DB_BYTES ) + x = widget_printstring( x + 8, LR(10), 7, "\012B\011ytes" ); + if( display != DB_TEXT ) + x = widget_printstring( x + 8, LR(10), 7, "\012T\011ext" ); + if( display != DB_DISASM ) + x = widget_printstring( x + 8, LR(10), 7, "\012D\011isasm" ); + if( display != DB_BREAKPT ) + x = widget_printstring( x + 8, LR(10), 7, "Brea\012k\011pts" ); + + widget_printstring_right( LC(25) + 4, LR(10), 5, "PC" ); + sprintf( pbuf, "%04X", PC ); + widget_printstring_fixed( LC(26) / 8, LR(10) / 8, 7, pbuf ); + + widget_printstring_right( LR(35) + 4, LR(10), 5, "Bas\012e\011" ); + sprintf( pbuf, "%d", debugger_output_base ); + widget_printstring( LR(36), LR(10), 7, pbuf ); + + widget_display_lines( LR(0) / 8, 12 ); + + return 0; +} + + +void widget_debugger_keyhandler( input_key key ) +{ + /* Display mode */ + switch ( key ) { + case INPUT_KEY_Escape: /* Close widget */ + widget_end_widget( WIDGET_FINISHED_CANCEL ); + debugger_run(); + break; + + case INPUT_KEY_c: + case INPUT_KEY_Return: /* Close widget */ + widget_end_all( WIDGET_FINISHED_OK ); + debugger_run(); + break; + + case INPUT_KEY_s: /* Single step & reopen widget */ + debugger_mode = DEBUGGER_MODE_HALTED; + widget_end_all( WIDGET_FINISHED_OK ); + break; + + case INPUT_KEY_r: /* Display the registers */ + display = DB_REGISTERS; + widget_debugger_draw( NULL ); + break; + + case INPUT_KEY_b: /* Display a memory dump (bytes) */ + display = DB_BYTES; + widget_debugger_draw( NULL ); + break; + + case INPUT_KEY_t: /* Display a memory dump (text) */ + display = DB_TEXT; + widget_debugger_draw( NULL ); + break; + + case INPUT_KEY_d: /* Display a disassembly */ + display = DB_DISASM; + widget_debugger_draw( NULL ); + break; + + case INPUT_KEY_k: /* Display the breakpoints */ + display = DB_BREAKPT; + widget_debugger_draw( NULL ); + break; + + case INPUT_KEY_e: /* Switch base */ + debugger_output_base = 26 - debugger_output_base; /* 10 or 16 */ + widget_debugger_draw( NULL ); + break; + + case INPUT_KEY_m: /* Enter a command */ + { + widget_text_t text_data; + + text_data.title = "Debugger command"; + text_data.allow = WIDGET_INPUT_ASCII; + text_data.text[0] = 0; + if( !widget_do( WIDGET_TYPE_TEXT, &text_data ) ) + debugger_command_evaluate( widget_text_text ); + } + break; + + case INPUT_KEY_Up: /* Back one line */ + scroll( -1 ); + break; + + case INPUT_KEY_Down: /* Back one instruction or four lines */ + scroll( 1 ); + break; + + case INPUT_KEY_Page_Up: /* Back eight lines */ + scroll( -8 ); + break; + + case INPUT_KEY_Page_Down: /* Forward eight lines */ + scroll( 8 ); + break; + + case INPUT_KEY_Home: /* To start of memory */ + debugger_memaddr = 0; + scroll( 0 ); + break; + + case INPUT_KEY_End: /* To end of RAM */ + debugger_memaddr = 0; + scroll( -8 ); + break; + + default:; + } +} + +static void show_register0( int x, int y, const char *label, int value ) +{ + char pbuf[8]; + + sprintf( pbuf, "%d", value ); + widget_printstring_right( x - 4, y, 5, label ); + widget_printstring_fixed( x / 8, y / 8, 7, pbuf ); +} + +static void show_register1( int x, int y, const char *label, int value ) +{ + char pbuf[8]; + + sprintf( pbuf, format_8_bit(), value ); + widget_printstring_right( x - 4, y, 5, label ); + widget_printstring_fixed( x / 8, y / 8, 7, pbuf ); +} + +static void show_register2( int x, int y, const char *label, int value ) +{ + char pbuf[8]; + + sprintf( pbuf, format_16_bit(), value ); + widget_printstring_right( x - 4, y, 5, label ); + widget_printstring_fixed( x / 8, y / 8, 7, pbuf ); +} + +static void display_registers( void ) +{ + char pbuf[16]; + int i, capabilities; + + show_register2( LC(3), LR(0), "AF", AF ); + show_register2( LC(12), LR(0), "AF'", AF_ ); + show_register2( LC(20), LR(0), "SP", SP ); + show_register2( LC(29), LR(0), "PC", PC ); + show_register1( LC(36), LR(0), "R", ( R & 0x7F ) | ( R7 & 0x80 ) ); + + show_register2( LC(3), LR(1), "BC", BC ); + show_register2( LC(12), LR(1), "BC'", BC_ ); + show_register2( LC(20), LR(1), "IX", IX ); + show_register2( LC(29), LR(1), "IY", IY ); + show_register1( LC(36), LR(1), "I", I ); + + show_register2( LC(3), LR(2), "DE", DE ); + show_register2( LC(12), LR(2), "DE'", DE_ ); + show_register0( LC(20), LR(2), "IM", IM ); + show_register0( LC(29), LR(2), "IFF1", IFF1 ); + show_register0( LC(36), LR(2), "IFF2", IFF2 ); + + show_register2( LC(3), LR(3), "HL", HL ); + show_register2( LC(12), LR(3), "HL'", HL_ ); + widget_printstring_fixed( LC(20) / 8, LR(3) / 8, 5, "SZ5H3PNC" ); + show_register1( LC(36), LR(3), "ULA", ula_last_byte() ); + + sprintf( pbuf, "%d", tstates ); + widget_printstring_right( LC(12) - 4, LR(4), 5, "Tstates" ); + widget_printstring_fixed( LC(12) / 8, LR(4) / 8, 7, pbuf ); + for( i = 0; i < 8; ++i ) + pbuf[i] = '0' + ( F >> i & 1 ); + pbuf[8] = 0; + widget_printstring_fixed( LC(20) / 8, LR(4) / 8, 7, pbuf ); + + capabilities = libspectrum_machine_capabilities( machine_current->machine ); + + if( capabilities & LIBSPECTRUM_MACHINE_CAPABILITY_AY ) + show_register1( LC(37), LR(4), "AY", + machine_current->ay.current_register ); + + if( capabilities & LIBSPECTRUM_MACHINE_CAPABILITY_128_MEMORY ) + show_register1( LC(6), LR(5), "128Mem", + machine_current->ram.last_byte ); + + if( capabilities & LIBSPECTRUM_MACHINE_CAPABILITY_128_MEMORY ) + show_register1( LC(15), LR(5), "+3Mem", + machine_current->ram.last_byte2 ); + + if( capabilities & LIBSPECTRUM_MACHINE_CAPABILITY_TIMEX_VIDEO || + capabilities & LIBSPECTRUM_MACHINE_CAPABILITY_TIMEX_MEMORY || + capabilities & LIBSPECTRUM_MACHINE_CAPABILITY_SE_MEMORY ) + show_register1( LC(24), LR(5), "TmxDec", scld_last_dec.byte ); + + if( capabilities & LIBSPECTRUM_MACHINE_CAPABILITY_TIMEX_MEMORY || + capabilities & LIBSPECTRUM_MACHINE_CAPABILITY_SE_MEMORY ) + show_register1( LC(33), LR(5), "TmxHSR", scld_last_hsr ); + + if( settings_current.zxcf_active ) + show_register1( LC(6), LR(5), "ZXCF", zxcf_last_memctl() ); + + for( i = 0; i < 8; ++i ) { + int x = LC(2 + 10 * ( i & 3) ), y = LR(i < 4 ? 6 : 7); + + sprintf( pbuf, "P%X", i ); + widget_printstring_right( x, y, 5, pbuf ); + snprintf( pbuf, sizeof( pbuf ), "%s %d", + memory_bank_name( &memory_map_read[i] ), + memory_map_read[i].page_num ); + x = widget_printstring( x + 4, y, 7, pbuf ) + 4; + if( memory_map_read[i].writable ) + x = widget_printstring( x, y, 4, "w" ); + if( memory_map_read[i].contended ) + x = widget_printstring( x, y, 4, "c" ); + } +} + + +static void display_bytes( void ) +{ + int x, y; + char pbuf[36]; + + for( y = 0; y < 8; ++y ) { + libspectrum_word addr = debugger_memaddr + y * 8; + + sprintf( pbuf, format_16_bit(), addr ); + widget_printstring_fixed( LC(1) / 8, LR(y) / 8, 7, pbuf ); + widget_printstring( LC(6), LR(y), 5, ":" ); + + for( x = 0; x < 8; ++x ) { + sprintf( pbuf + x * 4, format_8_bit(), + readbyte_internal( addr + x ) ); + if( x < 7 ) + strcat( pbuf, " " ); + } + widget_printstring_fixed( LC(7) / 8, LR(y) / 8, 7, pbuf ); + } +} + + +static void display_text( void ) +{ + int x, y; + char pbuf[8]; + + for( y = 0; y < 8; ++y ) { + libspectrum_word addr = debugger_memaddr + y * 32; + + sprintf( pbuf, format_16_bit(), addr ); + widget_printstring_fixed( LC(1) / 8, LR(y) / 8, 7, pbuf ); + widget_printstring( LC(6), LR(y), 5, ":" ); + + for( x = 0; x < 32; ++x ) + widget_printchar_fixed( LC(x + 8) / 8, LR(y) / 8, 7, + readbyte_internal( addr + x ) ); + } +} + + +static void display_disasm( void ) +{ + int y; + char pbuf[40]; + libspectrum_word addr = debugger_memaddr; + + for( y = 0; y < 8; ++y ) { + size_t length; + char *spc; + + sprintf( pbuf, format_16_bit(), addr ); + widget_printstring_fixed( LC(1) / 8, LR(y) / 8, 7, pbuf ); + widget_printstring( LC(6), LR(y), 5, ":" ); + + debugger_disassemble( pbuf, sizeof( pbuf ), &length, addr ); + addr += length; + spc = strchr( pbuf, ' ' ); + if( spc ) + *spc = 0; + widget_printstring( LC(8), LR(y), 7, pbuf ); + if( spc ) { + spc += 1 + strspn( spc + 1, " " ); + widget_printstring( LC(12) + 4, LR(y), 7, spc ); + } + } +} + + +static void display_breakpts( void ) +{ + GSList *ptr; + int i = -breakpt_show; + char pbuf[80], fmt[20]; + + if( i ) + widget_up_arrow( LC(0), LR(0), 7 ); + + for( ptr = debugger_breakpoints; i < 8 && ptr; ptr = ptr->next, ++i ) { + const debugger_breakpoint *bp = ptr->data; + + if( i < 0 ) + continue; + + sprintf( pbuf, "%lu", ( unsigned long )bp->id ); + widget_printstring( LC(1), LR(i), 5, pbuf ); + widget_printstring( LC(6), LR(i), 7, + debugger_breakpoint_type_abbr[bp->type] ); + + switch ( bp->type ) { + case DEBUGGER_BREAKPOINT_TYPE_EXECUTE: + case DEBUGGER_BREAKPOINT_TYPE_READ: + case DEBUGGER_BREAKPOINT_TYPE_WRITE: + if( bp->value.address.page == -1 ) + sprintf( pbuf, format_16_bit(), bp->value.address.offset ); + else { + debugger_breakpoint_decode_page( pbuf, sizeof( pbuf ) - 12, + bp->value.address.page ); + if( pbuf[0] == '[' ) + sprintf( pbuf, "?%d", bp->value.address.page ); + strcat( pbuf, ":" ); + sprintf( pbuf + strlen( pbuf ), format_16_bit(), + bp->value.address.offset ); + } + break; + + case DEBUGGER_BREAKPOINT_TYPE_PORT_READ: + case DEBUGGER_BREAKPOINT_TYPE_PORT_WRITE: + sprintf( fmt, "%s:%s", format_16_bit(), format_16_bit() ); + sprintf( pbuf, fmt, bp->value.port.mask, bp->value.port.port ); + break; + + case DEBUGGER_BREAKPOINT_TYPE_TIME: + sprintf( pbuf, "%5d", bp->value.tstates ); + break; + } + widget_printstring( LC(10), LR(i), 6, pbuf ); + + sprintf( pbuf, "%lu", ( unsigned long )bp->ignore ); + widget_printstring( LC(18) + 4, LR(i), 7, pbuf ); + + sprintf( pbuf, "%s", debugger_breakpoint_life_abbr[bp->life] ); + widget_printstring( LC(23), LR(i), 7, pbuf ); + + if( bp->condition ) { + debugger_expression_deparse( pbuf, sizeof( pbuf ), bp->condition ); + widget_printstring( LC(28) + 4, LR(i), 6, pbuf ); + } + } + + if( !i ) + widget_printstring( LC(1), LR(0), 5, "(No breakpoints)" ); + else if( ptr ) + widget_down_arrow( LC(0), LC(7), 7 ); +} + + +static void scroll( int step ) +{ + switch ( display ) { + case DB_BYTES: + debugger_memaddr += 8 * step; + break; + + case DB_TEXT: + debugger_memaddr += 32 * step; + break; + + case DB_DISASM: + if( step > 0 ) + for( ; step; --step ) { + size_t length; + + debugger_disassemble( NULL, 0, &length, debugger_memaddr ); + debugger_memaddr += length; + } else + for( ; step; ++step ) { + /* For details, see ui/gtk/debugger.c:move_disassembly() */ + size_t i, longest = 1; + + for( i = 1; i <= 8; ++i ) { + size_t length; + + debugger_disassemble( NULL, 0, &length, debugger_memaddr ); + if( length == i ) + longest = i; + } + debugger_memaddr -= longest; + } + break; + + case DB_BREAKPT: + { + int length = g_slist_length( debugger_breakpoints ); + + breakpt_no += step; + if( breakpt_no >= length ) + breakpt_no = length - 1; + if( breakpt_no < 0 ) + breakpt_no = 0; + if( breakpt_no < breakpt_show ) + breakpt_show = breakpt_no; + else if( breakpt_no > breakpt_show + 7 ) + breakpt_show = breakpt_no - 7; + } + break; + + default: + return; + } + + widget_debugger_draw( NULL ); +} Copied: vendor/fuse-emulator/current/fuse/ui/widget/error.c (from rev 527, vendor/fuse-emulator/current/fuse/widget/error.c) =================================================================== --- vendor/fuse-emulator/current/fuse/ui/widget/error.c (rev 0) +++ vendor/fuse-emulator/current/fuse/ui/widget/error.c 2008-05-07 12:25:42 UTC (rev 528) @@ -0,0 +1,183 @@ +/* error.c: The error reporting widget + Copyright (c) 2002-2005 Philip Kendall + + $Id: error.c 3115 2007-08-19 02:49:14Z 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: phi...@sh... + +*/ + +#include <config.h> + +#include <ctype.h> +#include <stddef.h> +#include <stdio.h> +#include <string.h> + +#include "fuse.h" +#include "widget_internals.h" + +widget_error_t *error_info; + +int +ui_error_specific( ui_error_level severity, const char *message ) +{ + widget_error_t error_info; + /* Can't output widgets if we don't have a display yet */ + if( !display_ui_initialised ) return 0; + + + error_info.severity = severity; + error_info.message = message; + + fuse_emulation_pause(); + widget_do( WIDGET_TYPE_ERROR, &error_info ); + fuse_emulation_unpause(); + + return 0; +} + +int widget_error_draw( void *data ) +{ + char **lines; size_t count; + size_t i; + + error_info = (widget_error_t*)data; + if( split_message( error_info->message, &lines, &count, 28 ) ) return 1; + + widget_dialog_with_border( 1, 2, 30, count+2 ); + + switch( error_info->severity ) { + case UI_ERROR_INFO: + widget_print_title( 16, WIDGET_COLOUR_FOREGROUND, "Info" ); + break; + case UI_ERROR_WARNING: + widget_print_title( 16, WIDGET_COLOUR_FOREGROUND, "Warning" ); + break; + case UI_ERROR_ERROR: + widget_print_title( 16, WIDGET_COLOUR_FOREGROUND, "Error" ); + break; + default: + widget_print_title( 16, WIDGET_COLOUR_FOREGROUND, "(Unknown message)" ); + break; + } + + for( i=0; i<count; i++ ) { + widget_printstring( 17, i*8+28, WIDGET_COLOUR_FOREGROUND, lines[i] ); + free( lines[i] ); + } + + free( lines ); + + widget_display_lines( 2, count + 4 ); + + return 0; +} + +int +split_message( const char *message, char ***lines, size_t *count, + size_t line_length ) +{ + const char *ptr = message; + int position; + + line_length *= 8; + + /* Setup so we'll allocate the first line as soon as we get the first + word */ + *lines = NULL; *count = 0; position = line_length; + + while( *ptr ) { + + /* Skip any whitespace */ + while( *ptr && isspace( *ptr ) ) ptr++; message = ptr; + + /* Find end of word */ + while( *ptr && !isspace( *ptr ) ) ptr++; + + /* message now points to a word of length (ptr-message); if + that's longer than an entire line (most likely filenames), just + take the last bit */ + while( widget_substringwidth( message, ptr - message ) >= line_length ) + message++; + + /* Check we've got room for the word, plus some prefixing space */ + if( position + widget_substringwidth( message, ptr - message ) + 4 + >= line_length ) { + + char **new_lines; size_t i; + + /* If we've filled the screen, stop */ + if( *count == 18 ) return 0; + + new_lines = realloc( (*lines), (*count + 1) * sizeof( char** ) ); + if( new_lines == NULL ) { + for( i=0; i<*count; i++ ) free( (*lines)[i] ); + if(*lines) free( (*lines) ); + return 1; + } + (*lines) = new_lines; + + (*lines)[*count] = malloc( (line_length+1) ); + if( (*lines)[*count] == NULL ) { + for( i=0; i<*count; i++ ) free( (*lines)[i] ); + free( (*lines) ); + return 1; + } + + strncpy( (*lines)[*count], message, ptr - message ); + position = widget_substringwidth( message, ptr - message ); + (*lines)[*count][ptr - message] = '\0'; + + (*count)++; + + } else { /* Enough room on this line */ + + strcat( (*lines)[*count-1], " " ); + (*lines)[*count-1][strlen( (*lines)[*count-1] ) + ptr - message] = '\0'; + strncat( (*lines)[*count-1], message, ptr - message ); + position += widget_substringwidth( message, ptr - message ) + 4; + + } + + message = ptr; + + } + + return 0; +} + +void +widget_error_keyhandler( input_key key ) +{ + switch( key ) { + + case INPUT_KEY_Escape: + widget_end_widget( WIDGET_FINISHED_CANCEL ); + return; + + case INPUT_KEY_Return: + widget_end_widget( WIDGET_FINISHED_OK ); + return; + + default: /* Keep gcc happy */ + break; + + } +} Copied: vendor/fuse-emulator/current/fuse/ui/widget/filesel.c (from rev 527, vendor/fuse-emulator/current/fuse/widget/filesel.c) =================================================================== --- vendor/fuse-emulator/current/fuse/ui/widget/filesel.c (rev 0) +++ vendor/fuse-emulator/current/fuse/ui/widget/filesel.c 2008-05-07 12:25:42 UTC (rev 528) @@ -0,0 +1,960 @@ +/* filesel.c: File selection dialog box + Copyright (c) 2001-2005 Matan Ziv-Av, Philip Kendall, Russell Marks, + Marek Januszewski + + $Id: filesel.c 3286 2007-11-09 16:41:57Z zubzero $ + + 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 <sys/types.h> +#include <dirent.h> +#include <errno.h> +#include <stdlib.h> +#include <stdio.h> +#include <string.h> +#include <sys/stat.h> +#include <unistd.h> + +#ifdef WIN32 +#include <windows.h> +#include <direct.h> +#include <ctype.h> +#endif /* #ifdef WIN32 */ + +#include "fuse.h" +#include "ui/ui.h" +#include "utils.h" +#include "widget_internals.h" + +#if defined AMIGA || defined __MORPHOS__ +#include <proto/asl.h> +#include <proto/dos.h> +#include <proto/exec.h> + +struct Library *AslBase; + +#ifndef __MORPHOS__ +struct AslIFace *IAsl; +struct Library *DOSBase; +#endif /* #ifndef __MORPHOS__ */ + +#ifndef __MORPHOS__ +struct DOSIFace *IDOS; +struct Library *ExecBase; +#endif /* #ifndef __MORPHOS__ */ + + +int err = 0; +#endif /* ifdef AMIGA */ + +struct widget_dirent **widget_filenames; /* Filenames in the current + directory */ +size_t widget_numfiles; /* The number of files in the current + directory */ + +static const char *title; +static int is_saving; + +#ifdef WIN32 +static int is_drivesel = 0; +static int is_rootdir; +#endif /* #ifdef WIN32 */ + +#define PAGESIZE (is_saving ? 32 : 36) + +/* The number of the filename in the top-left corner of the current + display, that of the filename which the `cursor' is on, and that + which it will be on after this keypress */ +static size_t top_left_file, current_file, new_current_file; + +static char *widget_get_filename( const char *title, int saving ); + +static int widget_add_filename( int *allocated, int *number, + struct widget_dirent ***namelist, char *name ); +static void widget_scan( char *dir ); +static int widget_select_file( const struct dirent *dirent ); +static int widget_scan_compare( const widget_dirent **a, + const widget_dirent **b ); + +#if !defined AMIGA && !defined __MORPHOS__ +static char* widget_getcwd( void ); +#endif /* ifndef AMIGA */ +static int widget_print_all_filenames( struct widget_dirent **filenames, int n, + int top_left, int current, + const char *dir ); +static int widget_print_filename( struct widget_dirent *filename, int position, + int inverted ); +#ifdef WIN32 +static void widget_filesel_chdrv( void ); +static void widget_filesel_drvlist( void ); +#endif /* #ifdef WIN32 */ +static int widget_filesel_chdir( void ); + +/* The filename to return */ +char* widget_filesel_name; + +/* Should we exit all widgets when we're done with this selector? */ +static int exit_all_widgets; + +static char * +widget_get_filename( const char *title, int saving ) +{ + char *filename = NULL; + widget_type wtype; + + widget_filesel_data data; + + data.exit_all_widgets = 1; + data.title = title; + + if( saving ) { + wtype = WIDGET_TYPE_FILESELECTOR_SAVE; + } else { + wtype = WIDGET_TYPE_FILESELECTOR; + } + widget_do( wtype, &data ); + if( widget_filesel_name ) { + filename = strdup( widget_filesel_name ); + if( !filename ) + ui_error( UI_ERROR_ERROR, "Out of memory at %s:%d", __FILE__, __LINE__ ); + } + + return filename; + +} + +char * +ui_get_open_filename( const char *title ) +{ + return widget_get_filename( title, 0 ); +} + +char * +ui_get_save_filename( const char *title ) +{ + return widget_get_filename( title, 1 ); +} + +static int widget_add_filename( int *allocated, int *number, + struct widget_dirent ***namelist, + char *name ) { + int i; size_t length; + + if( ++*number > *allocated ) { + struct widget_dirent **oldptr = *namelist; + + *namelist = realloc( (*namelist), 2 * *allocated * sizeof(**namelist) ); + if( *namelist == NULL ) { + for( i=0; i<*number-1; i++ ) { + free( oldptr[i]->name ); + free( oldptr[i] ); + } + free( oldptr ); + return -1; + } + *allocated *= 2; + } + + (*namelist)[*number-1] = malloc( sizeof(***namelist) ); + if( !(*namelist)[*number-1] ) { + for( i=0; i<*number-1; i++ ) { + free( (*namelist)[i]->name ); + free( (*namelist)[i] ); + } + free( *namelist ); + *namelist = NULL; + return -1; + } + + length = strlen( name ) + 1; + if( length < 16 ) length = 16; + + (*namelist)[*number-1]->name = malloc( length ); + if( !(*namelist)[*number-1]->name ) { + free( (*namelist)[*number-1] ); + for( i=0; i<*number-1; i++ ) { + free( (*namelist)[i]->name ); + free( (*namelist)[i] ); + } + free( *namelist ); + *namelist = NULL; + return -1; + } + + strncpy( (*namelist)[*number-1]->name, name, length ); + (*namelist)[*number-1]->name[ length - 1 ] = 0; + + return 0; +} + +#if defined AMIGA || defined __MORPHOS__ +static char * +amiga_asl( char *title ) { + char *filename; + struct FileRequester *filereq; + +#ifndef __MORPHOS__ + if( AslBase = IExec->OpenLibrary( "asl.library", 52 ) ) { + if( IAsl = ( struct AslIFace * ) IExec->GetInterface( AslBase,"main",1,NULL ) ) { + filereq = IAsl->AllocAslRequestTags( ASL_FileRequest, + ASLFR_RejectIcons,TRUE, + ASLFR_TitleText,title, + ASLFR_DoSaveMode,is_saving, + ASLFR_InitialPattern,"#?.(sna|z80|szx|sp|snp|zxs|tap|tzx|csw|rzx|dsk|trd|scl|mdr|dck|hdf|rom|psg|scr|png|gz|bz2)", + ASLFR_DoPatterns,TRUE, + TAG_DONE ); + if( err = IAsl->AslRequest( filereq, NULL ) ) { + filename = ( STRPTR ) IExec->AllocVec( 1024, MEMF_CLEAR ); +#else /* #ifndef __MORPHOS__ */ + if( AslBase = OpenLibrary( "asl.library", 0 ) ) { + filereq = AllocAslRequestTags( ASL_FileRequest, + ASLFR_RejectIcons,TRUE, + ASLFR_TitleText,title, + ASLFR_DoSaveMode,is_saving, + ASLFR_InitialPattern,"#?.(sna|z80|szx|sp|snp|zxs|tap|tzx|csw|rzx|dsk|trd|scl|mdr|dck|hdf|rom|psg|scr|png|gz|bz2)", + ASLFR_DoPatterns,TRUE, + TAG_DONE ); + if( err = AslRequest( filereq, NULL ) ) { + filename = ( STRPTR ) AllocVec( 1024, MEMF_CLEAR ); +#endif /* #ifndef __MORPHOS__ */ + + strcpy( filename,filereq->fr_Drawer ); +#ifndef __MORPHOS__ + IDOS->AddPart( filename, filereq->fr_File, 1024 ); +#else /* #ifndef __MORPHOS__ */ + AddPart( filename, filereq->fr_File, 1024 ); +#endif /* #ifndef __MORPHOS__ */ + widget_filesel_name = strdup( filename ); +#ifndef __MORPHOS__ + IExec->FreeVec( filename ); +#else /* #ifndef __MORPHOS__ */ + FreeVec( filename ); +#endif /* #ifndef __MORPHOS__ */ + err = WIDGET_FINISHED_OK; + } else { + err = WIDGET_FINISHED_CANCEL; + } +#ifndef __MORPHOS__ + IExec->DropInterface( ( struct Interface * )IAsl ); + } + IExec->CloseLibrary( AslBase ); +#else /* #ifndef __MORPHOS__ */ + CloseLibrary( AslBase ); +#endif /* #ifndef __MORPHOS__ */ + } + return widget_filesel_name; +} +#else /* ifdef AMIGA */ + +static int widget_scandir( const char *dir, struct widget_dirent ***namelist, + int (*select_fn)(const struct dirent*) ) +{ + DIR *directory; struct dirent *dirent; + + int allocated, number; + int i; + + *namelist = malloc( 32 * sizeof(**namelist) ); + if( !*namelist ) return -1; + + allocated = 32; number = 0; + + directory = opendir( dir ); + if( !directory ) { + free( *namelist ); + *namelist = NULL; + return -1; + } + +#ifdef WIN32 + /* Assume this is the root directory, unless we find an entry named ".." */ + is_rootdir = 1; +#endif /* #ifdef WIN32 */ + + while( 1 ) { + errno = 0; + dirent = readdir( directory ); + + if( !dirent ) { + if( errno == 0 ) { /* End of directory */ + break; + } else { + for( i=0; i<number; i++ ) { + free( (*namelist)[i]->name ); + free( (*namelist)[i] ); + } + free( *namelist ); + *namelist = NULL; + closedir( directory ); + return -1; + } + } + + if( select_fn( dirent ) ) { +#ifdef WIN32 + if( is_rootdir && !strcmp( dirent->d_name, ".." ) ) { + is_rootdir = 0; + } +#endif /* #ifdef WIN32 */ + if( widget_add_filename( &allocated, &number, namelist, + dirent->d_name ) ) { + closedir( directory ); + return -1; + } + } + } + + if( closedir( directory ) ) { + for( i=0; i<number; i++ ) { + free( (*namelist)[i]->name ); + free( (*namelist)[i] ); + } + free( *namelist ); + *namelist = NULL; + return -1; + } + +#ifdef WIN32 + if( is_rootdir ) { + /* Add a fake ".." entry for drive selection */ + if( widget_add_filename( &allocated, &number, namelist, ".." ) ) { + return -1; + } + } +#endif /* #ifdef WIN32 */ + + return number; +} + +#ifdef WIN32 +static int widget_scandrives( struct widget_dirent ***namelist ) +{ + int allocated, number; + unsigned long drivemask; + int i; + char drive[3]; + char *driveletters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; + + drive[1] = ':'; + drive[2] = '\0'; + + *namelist = malloc( 32 * sizeof(**namelist) ); + if( !*namelist ) return -1; + + allocated = 32; number = 0; + + drivemask = _getdrives(); + if( !drivemask ) { + free( *namelist ); + *namelist = NULL; + return -1; + } + + for( i = 0; i < 26; i++ ) { + if( drivemask & 1) { + drive[0] = driveletters[i]; + if( widget_add_filename( &allocated, &number, namelist, drive ) ) { + return -1; + } + } + drivemask >>= 1; + } + + return number; +} +#endif + +static void widget_scan( char *dir ) +{ + struct stat file_info; + + size_t i; int error; + + /* Free the memory belonging to the files in the previous directory */ + for( i=0; i<widget_numfiles; i++ ) { + free( widget_filenames[i]->name ); + free( widget_filenames[i] ); + } + +#ifdef WIN32 + if( dir ) { + widget_numfiles = widget_scandir( dir, &widget_filenames, + widget_select_file ); + } else { + widget_numfiles = widget_scandrives( &widget_filenames ); + } +#else /* #ifdef WIN32 */ + widget_numfiles = widget_scandir( dir, &widget_filenames, + widget_select_file ); +#endif /* #ifdef WIN32 */ + + if( widget_numfiles == (size_t)-1 ) return; + + for( i=0; i<widget_numfiles; i++ ) { + error = stat( widget_filenames[i]->name, &file_info ); + widget_filenames[i]->mode = error ? 0 : file_info.st_mode; + } + + qsort( widget_filenames, widget_numfiles, sizeof(struct widget_dirent*), + (int(*)(const void*,const void*))widget_scan_compare ); + +} + +static int widget_select_file(const struct dirent *dirent){ + return( dirent->d_name && strcmp( dirent->d_name, "." ) ); +} + +static int widget_scan_compare( const struct widget_dirent **a, + const struct widget_dirent **b ) +{ + int isdir1 = S_ISDIR( (*a)->mode ), + isdir2 = S_ISDIR( (*b)->mode ); + + if( isdir1 && !isdir2 ) { + return -1; + } else if( isdir2 && !isdir1 ) { + return 1; + } else { + return strcmp( (*a)->name, (*b)->name ); + } + +} +#endif /* ifdef AMIGA */ + +/* File selection widget */ + +static int +widget_filesel_draw( void *data ) +{ + widget_filesel_data *filesel_data = data; + char *directory; + int error; + + exit_all_widgets = filesel_data->exit_all_widgets; + title = filesel_data->title; + +#if !defined AMIGA && !defined __MORPHOS__ +#ifdef WIN32 + if( !is_drivesel ) { + directory = widget_getcwd(); + if( directory == NULL ) return 1; + } else { + directory = NULL; + } +#else /* #ifdef WIN32 */ + directory = widget_getcwd(); + if( directory == NULL ) return 1; +#endif /* #ifdef WIN32 */ + + widget_scan( directory ); + new_current_file = current_file = 0; + top_left_file = 0; + + /* Create the dialog box */ + error = widget_dialog_with_border( 1, 2, 30, 21 ); + if( error ) { + if( directory ) free( directory ); + return error; + } + +#ifdef WIN32 + if( directory == NULL ) { + directory = "Drive selection"; + } +#endif /* #ifdef WIN32 */ + + /* Show all the filenames */ + widget_print_all_filenames( widget_filenames, widget_numfiles, + top_left_file, current_file, directory ); +#else /* ifndef AMIGA */ + amiga_asl(title); +#endif /* ifndef AMIGA */ + + return 0; +} + +int widget_filesel_finish( widget_finish_state finished ) { + + /* Return with null if we didn't finish cleanly */ + if( finished != WIDGET_FINISHED_OK ) { + if( widget_filesel_name ) free( widget_filesel_name ); + widget_filesel_name = NULL; + } + + return 0; +} + +int +widget_filesel_load_draw( void *data ) +{ + is_saving = 0; + return widget_filesel_draw( data ); +} + +int +widget_filesel_save_draw( void *data ) +{ + is_saving = 1; + return widget_filesel_draw( data ); +} + +#if !defined AMIGA && !defined __MORPHOS__ +static char* widget_getcwd( void ) +{ + char *directory; size_t directory_length; + char *ptr; + + directory_length = 64; + directory = malloc( directory_length * sizeof( char ) ); + if( directory == NULL ) { + return NULL; + } + + do { + ptr = getcwd( directory, directory_length ); + if( ptr ) break; + if( errno == ERANGE ) { + ptr = directory; + directory_length *= 2; + directory = + (char*)realloc( directory, directory_length * sizeof( char ) ); + if( directory == NULL ) { + free( ptr ); + return NULL; + } + } else { + free( directory ); + return NULL; + } + } while(1); + +#ifdef WIN32 + if( directory[0] && directory[1] == ':' ) { + directory[0] = toupper( directory[0] ); + } +#endif + + return directory; +} + +static int widget_print_all_filenames( struct widget_dirent **filenames, int n, + int top_left, int current, + const char *dir ) +{ + int i; + int error; + + /* Give us a clean box to start with */ + error = widget_dialog( 1, 2, 30, 21 ); + if( error ) return error; + + widget_print_title( 16, WIDGET_COLOUR_FOREGROUND, title ); + if( widget_stringwidth( dir ) > 223 ) { + char buffer[128]; + int prefix = widget_stringwidth( "..." ) + 1; + while( widget_stringwidth( dir ) > 223 - prefix ) dir++; + snprintf( buffer, sizeof( buffer ), "...%s", dir ); + widget_print_title( 28, WIDGET_COLOUR_FOREGROUND, buffer ); + } else { + widget_print_title( 28, WIDGET_COLOUR_FOREGROUND, dir ); + } + + if( top_left ) widget_up_arrow( 1, 5, WIDGET_COLOUR_FOREGROUND ); + + /* Print the filenames, mostly normally, but with the currently + selected file inverted */ + for( i = top_left; i < n && i < top_left + PAGESIZE; i++ ) { + if( i == current ) { + widget_print_filename( filenames[i], i-top_left, 1 ); + } else { + widget_print_filename( filenames[i], i-top_left, 0 ); + } + } + + if( is_saving ) + { + widget_printstring( 12, 22 * 8, WIDGET_COLOUR_FOREGROUND, + "\012RETURN\011 = select" ); + widget_printstring_right( 244, 22 * 8, WIDGET_COLOUR_FOREGROUND, + "\012TAB\011 = enter name" ); + } + + if( i < n ) + widget_down_arrow( 1, is_saving ? 20 : 22, WIDGET_COLOUR_FOREGROUND ); + + /* Display that lot */ + widget_display_lines( 2, 21 ); + + return 0; +} + +/* Print a filename onto the dialog box */ +static int widget_print_filename( struct widget_dirent *filename, int position, + int inverted ) +{ + char buffer[64], suffix[64], *dot = 0; + int width, suffix_width = 0; + int dir = S_ISDIR( filename->mode ); + int truncated = 0, suffix_truncated = 0; + +#define FILENAME_WIDTH 112 +#define MAX_SUFFIX_WIDTH 56 + + int x = (position & 1) ? 132 : 16, + y = 40 + (position >> 1) * 8; + + int foreground = inverted ? WIDGET_COLOUR_BACKGROUND + : WIDGET_COLOUR_FOREGROUND, + + background = inverted ? WIDGET_COLOUR_FOREGROUND + : WIDGET_COLOUR_BACKGROUND; + + widget_rectangle( x, y, FILENAME_WIDTH, 8, background ); + + strncpy( buffer, filename->name, sizeof( buffer ) - dir - 1); + buffer[sizeof( buffer ) - dir - 1] = '\0'; + + if (dir) + dir = widget_charwidth( FUSE_DIR_SEP_CHR ); + else { + /* get filename extension */ + dot = strrchr( filename->name, '.' ); + + /* if .gz or .bz2, we want the previous component too */ + if( dot &&( !strcasecmp( dot, ".gz" ) || !strcasecmp( dot, ".bz2" ) ) ) { + char *olddot = dot; + *olddot = '\0'; + dot = strrchr( filename->name, '.' ); + *olddot = '.'; + if (!dot) + dot = olddot; + } + + /* if the dot is at the start of the name, ignore it */ + if( dot == filename->name ) + dot = 0; + } + + if( dot ) { + /* split filename at extension separator */ + if( dot - filename->name < sizeof( buffer ) ) + buffer[dot - filename->name] = '\0'; + + /* get extension width (for display purposes) */ + snprintf( suffix, sizeof( suffix ), "%s", dot ); + while( ( suffix_width = ( dot && !dir ) + ? widget_stringwidth( suffix ) : 0 ) > 110 ) { + suffix_truncated = 1; + suffix[strlen( suffix ) - 1] = '\0'; + } + } + + while( ( width = widget_stringwidth( buffer ) ) >= + FILENAME_WIDTH - dir - ( dot ? truncated + suffix_width : 0 ) ) { + truncated = 2; + if( suffix_width >= MAX_SUFFIX_WIDTH ) { + suffix_truncated = 2; + suffix[strlen (suffix) - 1] = '\0'; + suffix_width = widget_stringwidth (suffix); + } + else + buffer[strlen (buffer) - 1] = '\0'; + } + if( dir ) + strcat (buffer, FUSE_DIR_SEP_STR ); + + widget_printstring( x + 1, y, foreground, buffer ); + if( truncated ) + widget_rectangle( x + width + 2, y, 1, 8, 4 ); + if( dot ) + widget_printstring( x + width + 2 + truncated, y, + foreground ^ 2, suffix ); + if( suffix_truncated ) + widget_rectangle( x + FILENAME_WIDTH, y, 1, 8, 4 ); + + return 0; +} +#endif /* ifndef AMIGA */ + +#ifdef WIN32 +static void +widget_filesel_chdrv( void ) +{ + char *fn; + + if( chdir( widget_filenames[ current_file ]->name ) ) { + ui_error( UI_ERROR_ERROR, "Could not change directory" ); + return; + } + + is_drivesel = 0; + fn = widget_getcwd(); + widget_scan( fn ); free( fn ); + new_current_file = 0; + /* Force a redisplay of all filenames */ + current_file = 1; top_left_file = 1; +} + +static void +widget_filesel_drvlist( void ) +{ + is_drivesel = 1; + widget_scan( NULL ); + new_current_file = 0; + /* Force a redisplay of all filenames */ + current_file = 1; top_left_file = 1; +} +#endif /* #ifdef WIN32 */ + +static int +widget_filesel_chdir( void ) +{ + char *fn, *ptr; + + /* Get the new directory name */ + fn = widget_getcwd(); + if( fn == NULL ) { + widget_end_widget( WIDGET_FINISHED_CANCEL ); + return 1; + } + ptr = fn; + fn = realloc( fn, + ( strlen( fn ) + 1 + strlen( widget_filenames[ current_file ]->name ) + + 1 ) * sizeof(char) + ); + if( fn == NULL ) { + free( ptr ); + widget_end_widget( WIDGET_FINISHED_CANCEL ); + return 1; + } + strcat( fn, FUSE_DIR_SEP_STR ); + strcat( fn, widget_filenames[ current_file ]->name ); + +/* +in Win32 errno resulting from chdir on file is EINVAL which may mean many things +this will not be fixed in mingw - must use native function instead +http://thread.gmane.org/gmane.comp.gnu.mingw.user/9197 +*/ + + if( chdir( fn ) == -1 ) { +#ifndef WIN32 + if( errno == ENOTDIR ) { +#else /* #ifndef WIN32 */ + if( GetFileAttributes( fn ) != FILE_ATTRIBUTE_DIRECTORY ) { +#endif /* #ifndef WIN32 */ + widget_filesel_name = fn; + if( exit_all_widgets ) { + widget_end_all( WIDGET_FINISHED_OK ); + } else { + widget_end_widget( WIDGET_FINISHED_OK ); + } + } + } else { + widget_scan( fn ); free( fn ); + new_current_file = 0; + /* Force a redisplay of all filenames */ + current_file = 1; top_left_file = 1; + } + + return 0; +} + +void +widget_filesel_keyhandler( input_key key ) +{ +#if defined AMIGA || defined __MORPHOS__ + if( exit_all_widgets ) { + widget_end_all( err ); + } else { + widget_end_widget( err ); + } +#else /* ifndef AMIGA */ + char *fn; + char *dirtitle; + + new_current_file = current_file; + + switch(key) { + +#if 0 + case INPUT_KEY_Resize: /* Fake keypress used on window resize */ + widget_dialog_with_border( 1, 2, 30, 20 ); + widget_print_all_filenames( widget_filenames, widget_numfiles, + top_left_file, current_file ); + break; +#endif + + case INPUT_KEY_Escape: + widget_end_widget( WIDGET_FINISHED_CANCEL ); + break; + + case INPUT_KEY_Left: + case INPUT_KEY_5: + case INPUT_KEY_h: + if( current_file > 0 ) new_current_file--; + break; + + case INPUT_KEY_Down: + case INPUT_KEY_6: + case INPUT_KEY_j: + if( current_file+2 < widget_numfiles ) new_current_file += 2; + break; + + case INPUT_KEY_Up: + case INPUT_KEY_7: /* Up */ + case INPUT_KEY_k: + if( current_file > 1 ) new_current_file -= 2; + break; + + case INPUT_KEY_Right: + case INPUT_KEY_8: + case INPUT_KEY_l: + if( current_file < widget_numfiles-1 ) new_current_file++; + break; + + case INPUT_KEY_Page_Up: + new_current_file = ( current_file > PAGESIZE ) ? + current_file - PAGESIZE : + 0; + break; + + case INPUT_KEY_Page_Down: + new_current_file = current_file + PAGESIZE; + if( new_current_file >= widget_numfiles ) + new_current_file = widget_numfiles - 1; + break; + + case INPUT_KEY_Home: + new_current_file = 0; + break; + + case INPUT_KEY_End: + new_current_file = widget_numfiles - 1; + break; + + case INPUT_KEY_Tab: + if( is_saving ) { + widget_text_t text_data; + text_data.title = title; + text_data.allow = WIDGET_INPUT_ASCII; + text_data.text[0] = 0; + if( widget_do( WIDGET_TYPE_TEXT, &text_data ) || + !widget_text_text || !*widget_text_text ) + break; + if( !compat_is_absolute_path( widget_text_text ) ) { + /* relative name */ + /* Get current dir name and allocate space for the leafname */ + fn = widget_getcwd(); + if( fn ) + fn = realloc( fn, strlen( fn ) + strlen( widget_text_text ) + 2 ); + if( !fn ) { + widget_end_widget( WIDGET_FINISHED_CANCEL ); + return; + } + /* Append the leafname and return it */ + strcat( fn, FUSE_DIR_SEP_STR ); + strcat( fn, widget_text_text ); + } else { /* absolute name */ + fn = strdup( widget_text_text ); + if( !fn ) { + widget_end_widget( WIDGET_FINISHED_CANCEL ); + return; + } + } + widget_filesel_name = fn; + if( exit_all_widgets ) { + widget_end_all( WIDGET_FINISHED_OK ); + } else { + widget_end_widget( WIDGET_FINISHED_OK ); + } + } + break; + + case INPUT_KEY_Return: +#ifdef WIN32 + if( is_drivesel ) { + widget_filesel_chdrv(); + } else if( is_rootdir && + !strcmp( widget_filenames[ current_file ]->name, ".." ) ) { + widget_filesel_drvlist(); + } else { +#endif /* #ifdef WIN32 */ + if( widget_filesel_chdir() ) return; +#ifdef WIN32 + } +#endif /* #ifdef WIN32 */ + break; + + default: /* Keep gcc happy */ + break; + + } + +#ifdef WIN32 + if( is_drivesel ) { + dirtitle = "Drive selection"; + } else { +#endif /* #ifdef WIN32 */ + dirtitle = widget_getcwd(); +#ifdef WIN32 + } +#endif /* #ifdef WIN32 */ + + /* If we moved the cursor */ + if( new_current_file != current_file ) { + + /* If we've got off the top or bottom of the currently displayed + file list, then reset the top-left corner and display the whole + thing */ + if( new_current_file < top_left_file ) { + + top_left_file = new_current_file & ~1; + widget_print_all_filenames( widget_filenames, widget_numfiles, + top_left_file, new_current_file, dirtitle ); + + } else if( new_current_file >= top_left_file+PAGESIZE ) { + + top_left_file = ne... [truncated message content] |
From: <fr...@us...> - 2008-05-07 11:35:21
|
Revision: 527 http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=527&view=rev Author: fredm Date: 2008-05-07 04:35:23 -0700 (Wed, 07 May 2008) Log Message: ----------- Update TODO. Modified Paths: -------------- trunk/fuse/TODO Modified: trunk/fuse/TODO =================================================================== --- trunk/fuse/TODO 2008-05-04 10:38:45 UTC (rev 526) +++ trunk/fuse/TODO 2008-05-07 11:35:23 UTC (rev 527) @@ -20,5 +20,7 @@ * Make border display optional * Make activity icons transparent * SZX +3 block - seems to be redundant? +* Add pause function +* Add QuickLook HTML view showing Title, etc. like QuickLook on MP3s $Id: TODO 2026 2004-03-02 13:38:08Z pak21 $ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2008-05-04 10:38:42
|
Revision: 526 http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=526&view=rev Author: fredm Date: 2008-05-04 03:38:45 -0700 (Sun, 04 May 2008) Log Message: ----------- Have inlay images take priority over loading screens. Modified Paths: -------------- trunk/FuseGenerator/LibspectrumSCRExtractor.m Modified: trunk/FuseGenerator/LibspectrumSCRExtractor.m =================================================================== --- trunk/FuseGenerator/LibspectrumSCRExtractor.m 2008-05-04 09:11:05 UTC (rev 525) +++ trunk/FuseGenerator/LibspectrumSCRExtractor.m 2008-05-04 10:38:45 UTC (rev 526) @@ -210,8 +210,11 @@ case LIBSPECTRUM_TAPE_BLOCK_ROM: case LIBSPECTRUM_TAPE_BLOCK_TURBO: /* See if this looks like a standard Spectrum screen and if so - display it if we haben't already assigned an image */ - if( scrData ) continue; + display it if we haven't already assigned an image */ + if( scrData ) { + block = libspectrum_tape_iterator_next( &iterator ); + continue; + } if( seen_scr_header ) { // SCREEN$ is 6912 bytes plus flag and checksum @@ -223,11 +226,9 @@ length:STANDARD_SCR_SIZE]; image_type = TYPE_SCR; + } - goto done; - } else { - seen_scr_header = 0; - } + seen_scr_header = 0; } else { // Header is 17 bytes plus flag and checksum if( libspectrum_tape_block_data_length( block ) == 19 ) { @@ -245,7 +246,10 @@ case LIBSPECTRUM_TAPE_BLOCK_CUSTOM: { char* description = libspectrum_tape_block_text( block ); - if( !description ) { continue; } + if( !description ) { + block = libspectrum_tape_iterator_next( &iterator ); + continue; + } if( !scrData && strncmp( "Spectrum Screen ", description, 0x10 ) == 0 ) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2008-05-04 09:11:08
|
Revision: 525 http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=525&view=rev Author: fredm Date: 2008-05-04 02:11:05 -0700 (Sun, 04 May 2008) Log Message: ----------- Add support for TZX custom screenshot and tape inlay blocks. Modified Paths: -------------- trunk/FuseGenerator/GeneratePreviewForURL.m trunk/FuseGenerator/GenerateThumbnailForURL.m trunk/FuseGenerator/LibspectrumSCRExtractor.h trunk/FuseGenerator/LibspectrumSCRExtractor.m trunk/fuse/TODO Modified: trunk/FuseGenerator/GeneratePreviewForURL.m =================================================================== --- trunk/FuseGenerator/GeneratePreviewForURL.m 2008-04-29 13:50:38 UTC (rev 524) +++ trunk/FuseGenerator/GeneratePreviewForURL.m 2008-05-04 09:11:05 UTC (rev 525) @@ -1,5 +1,5 @@ /* GeneratePreviewForURL.m: Extract preview from libspectrum-supported Spectrum files - Copyright (c) 2005 Fredrick Meunier + Copyright (c) 2007-2008 Fredrick Meunier 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 @@ -24,6 +24,7 @@ #include <CoreFoundation/CoreFoundation.h> #include <CoreServices/CoreServices.h> #include <QuickLook/QuickLook.h> +#include <QuickLook/QLGenerator.h> #import "JWSpectrumScreen/JWSpectrumScreen.h" #import "LibspectrumSCRExtractor.h" @@ -36,42 +37,73 @@ OSStatus GeneratePreviewForURL(void *thisInterface, QLPreviewRequestRef preview, CFURLRef url, CFStringRef contentTypeUTI, CFDictionaryRef options) { - NSAutoreleasePool *pool; - LibspectrumSCRExtractor *speccyFile; + NSAutoreleasePool *pool; + LibspectrumSCRExtractor *speccyFile; - /* Don't assume that there is an autorelease pool around the calling of this function. */ - pool = [[NSAutoreleasePool alloc] init]; + /* Don't assume that there is an autorelease pool around the calling of + this function. */ + pool = [[NSAutoreleasePool alloc] init]; - speccyFile = [[[LibspectrumSCRExtractor alloc] initWithContentsOfURL:(NSURL*)url] autorelease]; + speccyFile = [[[LibspectrumSCRExtractor alloc] + initWithContentsOfURL:(NSURL*)url] autorelease]; - JWSpectrumScreen* screen = [[[JWSpectrumScreen alloc] initFromData:[speccyFile scrData]] autorelease]; - NSBitmapImageRep* imageRep = [[screen imageRep] retain]; - NSSize canvasSize = [screen canvasSize]; - - CGContextRef cgContext = QLPreviewRequestCreateContext(preview, *(CGSize *)&canvasSize, false, NULL); - if(cgContext) { - NSGraphicsContext* context = [NSGraphicsContext graphicsContextWithGraphicsPort:(void*)cgContext flipped:YES]; - if(context) { - [NSGraphicsContext saveGraphicsState]; - [NSGraphicsContext setCurrentContext:context]; - - // Now we're ready to draw using Cocoa. - NSImage* image = [[[NSImage alloc] initWithSize:canvasSize] autorelease]; - [image addRepresentation:imageRep]; - NSRect imageRect = NSMakeRect(0.0, 0.0, canvasSize.width, canvasSize.height); - [image drawAtPoint:NSMakePoint(0.0, 0.0) - fromRect:imageRect - operation:NSCompositeSourceOver - fraction:1.0]; - [NSGraphicsContext restoreGraphicsState]; - } - QLPreviewRequestFlushContext(preview, cgContext); - CFRelease(cgContext); - } - + /* No preview for tapes, these are going to have inlays etc. which are more + like album art in mp3s than file previews IMO */ + if( [speccyFile class] == LIBSPECTRUM_CLASS_TAPE ) { [pool release]; + return noErr; + } - return noErr; + switch( [speccyFile image_type] ) { + case TYPE_SCR: + { + JWSpectrumScreen* screen = + [[[JWSpectrumScreen alloc] initFromData:[speccyFile scrData]] + autorelease]; + NSBitmapImageRep* imageRep = [[screen imageRep] retain]; + NSSize canvasSize = [screen canvasSize]; + + CGContextRef cgContext = + QLPreviewRequestCreateContext( preview, *(CGSize *)&canvasSize, + false, NULL ); + if( cgContext ) { + NSGraphicsContext* context = + [NSGraphicsContext graphicsContextWithGraphicsPort:(void*)cgContext + flipped:YES]; + if(context) { + [NSGraphicsContext saveGraphicsState]; + [NSGraphicsContext setCurrentContext:context]; + + /* Now we're ready to draw using Cocoa. */ + NSImage* image = + [[[NSImage alloc] initWithSize:canvasSize] autorelease]; + [image addRepresentation:imageRep]; + NSRect imageRect = NSMakeRect( 0.0, 0.0, canvasSize.width, + canvasSize.height ); + [image drawAtPoint:NSMakePoint(0.0, 0.0) + fromRect:imageRect + operation:NSCompositeSourceOver + fraction:1.0]; + [NSGraphicsContext restoreGraphicsState]; + } + QLPreviewRequestFlushContext(preview, cgContext); + CFRelease(cgContext); + } + } + break; + case TYPE_IMAGEIO: + QLPreviewRequestSetDataRepresentation( preview, + (CFDataRef)[speccyFile scrData], + kUTTypeImage, + NULL ); + break; + default: + break; + } + + [pool release]; + + return noErr; } void CancelPreviewGeneration(void* thisInterface, QLPreviewRequestRef preview) Modified: trunk/FuseGenerator/GenerateThumbnailForURL.m =================================================================== --- trunk/FuseGenerator/GenerateThumbnailForURL.m 2008-04-29 13:50:38 UTC (rev 524) +++ trunk/FuseGenerator/GenerateThumbnailForURL.m 2008-05-04 09:11:05 UTC (rev 525) @@ -1,5 +1,5 @@ /* GenerateThumbnailForURL.m: Extract thumbnail from libspectrum-supported Spectrum files - Copyright (c) 2005 Fredrick Meunier + Copyright (c) 2007-2008 Fredrick Meunier 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 @@ -24,6 +24,7 @@ #include <CoreFoundation/CoreFoundation.h> #include <CoreServices/CoreServices.h> #include <QuickLook/QuickLook.h> +#include <QuickLook/QLGenerator.h> #import "JWSpectrumScreen/JWSpectrumScreen.h" #import "LibspectrumSCRExtractor.h" @@ -36,44 +37,64 @@ OSStatus GenerateThumbnailForURL(void *thisInterface, QLThumbnailRequestRef thumbnail, CFURLRef url, CFStringRef contentTypeUTI, CFDictionaryRef options, CGSize maxSize) { - NSAutoreleasePool *pool; - LibspectrumSCRExtractor *speccyFile; + NSAutoreleasePool *pool; + LibspectrumSCRExtractor *speccyFile; - /* Don't assume that there is an autorelease pool around the calling of this function. */ - pool = [[NSAutoreleasePool alloc] init]; + /* Don't assume that there is an autorelease pool around the calling of this + function. */ + pool = [[NSAutoreleasePool alloc] init]; - speccyFile = [[[LibspectrumSCRExtractor alloc] initWithContentsOfURL:(NSURL*)url] autorelease]; + speccyFile = [[[LibspectrumSCRExtractor alloc] + initWithContentsOfURL:(NSURL*)url] autorelease]; - if( [speccyFile scrData] ) { - JWSpectrumScreen* screen = [[[JWSpectrumScreen alloc] initFromData:[speccyFile scrData]] autorelease]; - NSBitmapImageRep* imageRep = [[screen imageRep] retain]; - NSSize canvasSize = [screen canvasSize]; - - CGContextRef cgContext = QLThumbnailRequestCreateContext(thumbnail, *(CGSize *)&canvasSize, false, NULL); - if(cgContext) { - NSGraphicsContext* context = [NSGraphicsContext graphicsContextWithGraphicsPort:(void*)cgContext flipped:YES]; - if(context) { - [NSGraphicsContext saveGraphicsState]; - [NSGraphicsContext setCurrentContext:context]; - - // Now we're ready to draw using Cocoa. - NSImage* image = [[[NSImage alloc] initWithSize:canvasSize] autorelease]; - [image addRepresentation:imageRep]; - NSRect imageRect = NSMakeRect(0.0, 0.0, canvasSize.width, canvasSize.height); - [image drawAtPoint:NSMakePoint(0.0, 0.0) - fromRect:imageRect - operation:NSCompositeSourceOver - fraction:1.0]; - [NSGraphicsContext restoreGraphicsState]; - } - QLThumbnailRequestFlushContext(thumbnail, cgContext); - CFRelease(cgContext); - } + switch( [speccyFile image_type] ) { + case TYPE_SCR: + { + JWSpectrumScreen* screen = + [[[JWSpectrumScreen alloc] initFromData:[speccyFile scrData]] autorelease]; + NSBitmapImageRep* imageRep = [[screen imageRep] retain]; + NSSize canvasSize = [screen canvasSize]; + + CGContextRef cgContext = + QLThumbnailRequestCreateContext( thumbnail, *(CGSize *)&canvasSize, + false, NULL ); + if( cgContext ) { + NSGraphicsContext* context = + [NSGraphicsContext graphicsContextWithGraphicsPort:(void*)cgContext + flipped:YES]; + if( context ) { + [NSGraphicsContext saveGraphicsState]; + [NSGraphicsContext setCurrentContext:context]; + + // Now we're ready to draw using Cocoa. + NSImage* image = + [[[NSImage alloc] initWithSize:canvasSize] autorelease]; + [image addRepresentation:imageRep]; + NSRect imageRect = + NSMakeRect( 0.0, 0.0, canvasSize.width, canvasSize.height ); + [image drawAtPoint:NSMakePoint(0.0, 0.0) + fromRect:imageRect + operation:NSCompositeSourceOver + fraction:1.0]; + [NSGraphicsContext restoreGraphicsState]; + } + QLThumbnailRequestFlushContext( thumbnail, cgContext ); + CFRelease( cgContext ); + } } - - [pool release]; + break; + case TYPE_IMAGEIO: + QLThumbnailRequestSetImageWithData( thumbnail, + (CFDataRef)[speccyFile scrData], + (CFDictionaryRef)[speccyFile scrOptions] ); + break; + default: + break; + } + + [pool release]; - return noErr; + return noErr; } void CancelThumbnailGeneration(void* thisInterface, QLThumbnailRequestRef thumbnail) Modified: trunk/FuseGenerator/LibspectrumSCRExtractor.h =================================================================== --- trunk/FuseGenerator/LibspectrumSCRExtractor.h 2008-04-29 13:50:38 UTC (rev 524) +++ trunk/FuseGenerator/LibspectrumSCRExtractor.h 2008-05-04 09:11:05 UTC (rev 525) @@ -26,9 +26,17 @@ #include <sys/types.h> #include <libspectrum.h> +typedef enum image_t { + TYPE_NONE, + TYPE_SCR, + TYPE_IMAGEIO, +} image_t; + @interface LibspectrumSCRExtractor : NSObject { NSString *filename; NSData *scrData; + NSDictionary *scrOptions; + image_t image_type; unsigned char *buffer; size_t length; libspectrum_id_t type; @@ -38,6 +46,8 @@ - (libspectrum_class_t) class; - (NSData*) scrData; +- (NSDictionary*) scrOptions; +- (image_t) image_type; - (void) processFile; Modified: trunk/FuseGenerator/LibspectrumSCRExtractor.m =================================================================== --- trunk/FuseGenerator/LibspectrumSCRExtractor.m 2008-04-29 13:50:38 UTC (rev 524) +++ trunk/FuseGenerator/LibspectrumSCRExtractor.m 2008-05-04 09:11:05 UTC (rev 525) @@ -1,5 +1,5 @@ /* LibspectrumSCRExtractor.m: Extract SCR image from libspectrum-supported Spectrum files - Copyright (c) 2007 Fredrick Meunier + Copyright (c) 2007-2008 Fredrick Meunier 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 @@ -43,193 +43,264 @@ static int mmap_file( const char *filename, unsigned char **buffer, size_t *length ) { - int fd; struct stat file_info; - - if( ( fd = open( filename, O_RDONLY ) ) == -1 ) { - NSLog(@"LibspectrumSCRExtractor: couldn't open `%s': %s\n", filename, - strerror( errno ) ); - return 1; - } + int fd; struct stat file_info; - if( fstat( fd, &file_info) ) { - NSLog(@"LibspectrumSCRExtractor: couldn't stat `%s': %s\n", filename, - strerror( errno ) ); - close(fd); - return 1; - } + if( ( fd = open( filename, O_RDONLY ) ) == -1 ) { + NSLog(@"LibspectrumSCRExtractor: couldn't open `%s': %s\n", filename, + strerror( errno ) ); + return 1; + } - (*length) = file_info.st_size; + if( fstat( fd, &file_info) ) { + NSLog(@"LibspectrumSCRExtractor: couldn't stat `%s': %s\n", filename, + strerror( errno ) ); + close(fd); + return 1; + } - (*buffer) = mmap( 0, *length, PROT_READ, MAP_SHARED, fd, 0 ); - if( (*buffer) == (void*)-1 ) { - NSLog(@"LibspectrumSCRExtractor: couldn't mmap `%s': %s\n", filename, - strerror( errno ) ); - close(fd); - return 1; - } + (*length) = file_info.st_size; - if( close(fd) ) { - NSLog(@"LibspectrumSCRExtractor: couldn't close `%s': %s\n", filename, - strerror( errno ) ); - munmap( *buffer, *length ); - return 1; - } + (*buffer) = mmap( 0, *length, PROT_READ, MAP_SHARED, fd, 0 ); + if( (*buffer) == (void*)-1 ) { + NSLog(@"LibspectrumSCRExtractor: couldn't mmap `%s': %s\n", filename, + strerror( errno ) ); + close(fd); + return 1; + } - return 0; + if( close(fd) ) { + NSLog(@"LibspectrumSCRExtractor: couldn't close `%s': %s\n", filename, + strerror( errno ) ); + munmap( *buffer, *length ); + return 1; + } + + return 0; } @implementation LibspectrumSCRExtractor - (id)initWithContentsOfURL:(NSURL*)aURL { - const char *fileString; - self = [super init]; - - fileString = [[NSFileManager defaultManager] fileSystemRepresentationWithPath:[aURL path]]; - filename = [NSString stringWithUTF8String:fileString]; + const char *fileString; + self = [super init]; - scrData = nil; + fileString = [[NSFileManager defaultManager] fileSystemRepresentationWithPath:[aURL path]]; + filename = [NSString stringWithUTF8String:fileString]; - return self; + scrData = nil; + scrOptions = nil; + + image_type = TYPE_NONE; + + return self; } - (libspectrum_class_t) class { - return lsclass; + if(!scrData) { [self processFile]; } + + return lsclass; } - (NSData*) scrData { - if(!scrData) { - [self processFile]; - } - - return scrData; + if(!scrData) { [self processFile]; } + + return scrData; } +- (NSDictionary*) scrOptions +{ + if(!scrData) { [self processFile]; } + + return scrOptions; +} + +- (image_t) image_type +{ + if(!scrData) { [self processFile]; } + + return image_type; +} + - (void) processFile { - if( mmap_file( [filename UTF8String], &buffer, &length ) ) return; + if( mmap_file( [filename UTF8String], &buffer, &length ) ) return; - if( libspectrum_identify_file( &type, [filename UTF8String], buffer, length ) ) { - munmap( buffer, length ); - return; - } + if( libspectrum_identify_file_with_class( &type, &lsclass, + [filename UTF8String], + buffer, length ) ) { + munmap( buffer, length ); + return; + } - if( libspectrum_identify_class( &lsclass, type ) ) { - munmap( buffer, length ); - return; - } + switch( lsclass ) { - switch( lsclass ) { + case LIBSPECTRUM_CLASS_UNKNOWN: + NSLog( @"LibspectrumSCRExtractor: couldn't identify `%s'\n", [filename UTF8String] ); + break; - case LIBSPECTRUM_CLASS_UNKNOWN: - NSLog( @"LibspectrumSCRExtractor: couldn't identify `%s'\n", [filename UTF8String] ); - break; + case LIBSPECTRUM_CLASS_RECORDING: + [self process_rzx]; + break; - case LIBSPECTRUM_CLASS_RECORDING: - [self process_rzx]; - break; + case LIBSPECTRUM_CLASS_SNAPSHOT: + [self process_snap]; + break; - case LIBSPECTRUM_CLASS_SNAPSHOT: - [self process_snap]; - break; + case LIBSPECTRUM_CLASS_TAPE: + [self process_tape]; + break; - case LIBSPECTRUM_CLASS_TAPE: - [self process_tape]; - break; + case LIBSPECTRUM_CLASS_SCREENSHOT: + [self process_scr]; + break; - case LIBSPECTRUM_CLASS_SCREENSHOT: - [self process_scr]; - break; + case LIBSPECTRUM_CLASS_MICRODRIVE: + [self process_mdr]; + break; - case LIBSPECTRUM_CLASS_MICRODRIVE: - [self process_mdr]; - break; + case LIBSPECTRUM_CLASS_DISK_PLUS3: + case LIBSPECTRUM_CLASS_DISK_TRDOS: + case LIBSPECTRUM_CLASS_HARDDISK: + case LIBSPECTRUM_CLASS_CARTRIDGE_TIMEX: + case LIBSPECTRUM_CLASS_CARTRIDGE_IF2: + break; - case LIBSPECTRUM_CLASS_DISK_PLUS3: - case LIBSPECTRUM_CLASS_DISK_TRDOS: - case LIBSPECTRUM_CLASS_HARDDISK: - case LIBSPECTRUM_CLASS_CARTRIDGE_TIMEX: - case LIBSPECTRUM_CLASS_CARTRIDGE_IF2: - break; + default: + NSLog(@"LibspectrumSCRExtractor: loadFile: unknown class %d!\n", type ); + } - default: - NSLog(@"LibspectrumSCRExtractor: loadFile: unknown class %d!\n", type ); - } - - if( munmap( buffer, length ) == -1 ) { - NSLog(@"LibspectrumSCRExtractor: couldn't munmap `%s': %s\n", [filename UTF8String], - strerror( errno ) ); - return; - } + if( munmap( buffer, length ) == -1 ) { + NSLog(@"LibspectrumSCRExtractor: couldn't munmap `%s': %s\n", [filename UTF8String], + strerror( errno ) ); + return; + } } -// If a tape has a ROM header block for Bytes length 6192, location 16384 followed by -// a ROM data block of 6192 bytes, use that as a SCR +// If a tape has a ROM header block for Bytes length 6192, location 16384 +// followed by a ROM data block of 6192 bytes, use that as a SCR +// Also have a look at turbo blocks as sometimes the timing is just a bit +// different from the ROM values, but are otherwise identical +// And finally look for TZX custom blocks with loading screens or tape inlays - (void) process_tape { - int error = 0; + int error = 0; - libspectrum_tape *tape; - libspectrum_tape_iterator iterator; - libspectrum_tape_block *block; + libspectrum_tape *tape; + libspectrum_tape_iterator iterator; + libspectrum_tape_block *block; - int seen_scr_header = 0; + int seen_scr_header = 0; - error = libspectrum_tape_alloc( &tape ); - if( error != LIBSPECTRUM_ERROR_NONE ) { - return; - } + error = libspectrum_tape_alloc( &tape ); + if( error != LIBSPECTRUM_ERROR_NONE ) { return; } - error = libspectrum_tape_read( tape, buffer, length, LIBSPECTRUM_ID_UNKNOWN, - [filename UTF8String] ); - if( error ) { return; } + error = libspectrum_tape_read( tape, buffer, length, LIBSPECTRUM_ID_UNKNOWN, + [filename UTF8String] ); + if( error ) { return; } - block = libspectrum_tape_iterator_init( &iterator, tape ); + block = libspectrum_tape_iterator_init( &iterator, tape ); - while( block ) { - - switch( libspectrum_tape_block_type( block ) ) { + while( block ) { + + switch( libspectrum_tape_block_type( block ) ) { - case LIBSPECTRUM_TAPE_BLOCK_ROM: - /* See if this looks like a standard Spectrum screen and if so - display it */ - if( seen_scr_header ) { - // SCREEN$ is 6912 bytes plus flag and checksum - if( libspectrum_tape_block_data_length( block ) == STANDARD_SCR_SIZE + 2 ) { - libspectrum_byte *data = libspectrum_tape_block_data( block ); + case LIBSPECTRUM_TAPE_BLOCK_ROM: + case LIBSPECTRUM_TAPE_BLOCK_TURBO: + /* See if this looks like a standard Spectrum screen and if so + display it if we haben't already assigned an image */ + if( scrData ) continue; - scrData = [NSData dataWithBytes:(const void *)(data+1) length:STANDARD_SCR_SIZE]; - goto done; - } else { - seen_scr_header = 0; - } - } else { - // Header is 17 bytes plus flag and checksum - if( libspectrum_tape_block_data_length( block ) == 19 ) { - libspectrum_byte *data = libspectrum_tape_block_data( block ); + if( seen_scr_header ) { + // SCREEN$ is 6912 bytes plus flag and checksum + if( libspectrum_tape_block_data_length( block ) == + STANDARD_SCR_SIZE + 2 ) { + libspectrum_byte *data = libspectrum_tape_block_data( block ); - /* Flag byte is 0x00 for headers, type is 3 for CODE, length is 6912 */ - if( data[0] == 0x00 && data[1] == 0x03 && - ( data[12] + data[13] * 0x100 == STANDARD_SCR_SIZE ) ) { - seen_scr_header = 1; - } - } - } - break; + scrData = [NSData dataWithBytes:(const void *)(data+1) + length:STANDARD_SCR_SIZE]; - default: - seen_scr_header = 0; - } - - block = libspectrum_tape_iterator_next( &iterator ); + image_type = TYPE_SCR; + goto done; + } else { + seen_scr_header = 0; + } + } else { + // Header is 17 bytes plus flag and checksum + if( libspectrum_tape_block_data_length( block ) == 19 ) { + libspectrum_byte *data = libspectrum_tape_block_data( block ); + + /* Flag byte is 0x00 for headers, type is 3 for CODE, length is 6912 */ + if( data[0] == 0x00 && data[1] == 0x03 && + ( data[12] + data[13] * 0x100 == STANDARD_SCR_SIZE ) ) { + seen_scr_header = 1; + } + } + } + break; + + case LIBSPECTRUM_TAPE_BLOCK_CUSTOM: + { + char* description = libspectrum_tape_block_text( block ); + if( !description ) { continue; } + + if( !scrData && + strncmp( "Spectrum Screen ", description, 0x10 ) == 0 ) { + size_t data_length = libspectrum_tape_block_data_length( block ); + libspectrum_byte *data = libspectrum_tape_block_data( block ); + size_t scr_length = data_length - data[0] - 2; + + if( scr_length == STANDARD_SCR_SIZE || + scr_length == HICOLOUR_SCR_SIZE || + scr_length == HIRES_SCR_SIZE ) { + scrData = [NSData dataWithBytes:(const void *)(data+data[0]+2) + length:scr_length]; + + image_type = TYPE_SCR; + } + } else if( strncmp( "Picture ", description, 0x10 ) == 0 ) { + size_t data_length = libspectrum_tape_block_data_length( block ); + libspectrum_byte *data = libspectrum_tape_block_data( block ); + size_t picture_length = data_length - data[1] - 2; + + /* Image is an 'Inlay Card' and is in GIF or JPEG format */ + if( data[1] == 0 && ( data[0] == 0 || data[0] == 1 ) ) { + id myValue = nil; + + switch( data[0] ) { + case 0: myValue = (NSString*)kUTTypeGIF; break; + case 1: myValue = (NSString*)kUTTypeJPEG; break; + } + + scrOptions = + [NSDictionary dictionaryWithObject:myValue + forKey:(NSString*)kCGImageSourceTypeIdentifierHint]; + + scrData = [NSData dataWithBytes:data + data[1] + 2 + length:picture_length]; + + image_type = TYPE_IMAGEIO; + + goto done; + } + } + } + break; + + default: + seen_scr_header = 0; } + + block = libspectrum_tape_iterator_next( &iterator ); + } + done: - error = libspectrum_tape_free( tape ); - if( error ) { return; } + error = libspectrum_tape_free( tape ); + if( error ) { return; } } // FIXME: Could look for first screen file on cart? @@ -240,152 +311,152 @@ // Populate scrData directly - (void) process_scr { - scrData = [NSData dataWithBytes:(const void *)buffer length:length]; + scrData = [NSData dataWithBytes:(const void *)buffer length:length]; + image_type = TYPE_SCR; } // Extract first snap then delegate to process_snap2 - (void) process_rzx { - int error = 0; - libspectrum_rzx *rzx; - libspectrum_snap *snap; - - error = libspectrum_rzx_alloc( &rzx ); if( error ) return; + int error = 0; + libspectrum_rzx *rzx; + libspectrum_snap *snap; - error = libspectrum_rzx_read( rzx, buffer, length ); - if( error != LIBSPECTRUM_ERROR_NONE ) { - return; - } + error = libspectrum_rzx_alloc( &rzx ); if( error ) return; - error = libspectrum_rzx_start_playback( rzx, 0, &snap ); - if( error ) { return; } + error = libspectrum_rzx_read( rzx, buffer, length ); + if( error != LIBSPECTRUM_ERROR_NONE ) { return; } - if( snap ) { - [self process_snap2:snap]; - } + error = libspectrum_rzx_start_playback( rzx, 0, &snap ); + if( error ) { return; } - error = libspectrum_rzx_free( rzx ); - if( error ) { return; } + if( snap ) { + [self process_snap2:snap]; + } + + error = libspectrum_rzx_free( rzx ); + if( error ) { return; } } // Extract active screen from snap - (void) process_snap { - int error = 0; - libspectrum_snap *snap; + int error = 0; + libspectrum_snap *snap; - error = libspectrum_snap_alloc( &snap ); - if( error != LIBSPECTRUM_ERROR_NONE ) { - return; - } + error = libspectrum_snap_alloc( &snap ); + if( error != LIBSPECTRUM_ERROR_NONE ) { return; } - error = libspectrum_snap_read( snap, buffer, length, type, [filename UTF8String] ); - if( error ) { - libspectrum_snap_free( snap ); - return; - } + error = libspectrum_snap_read( snap, buffer, length, type, + [filename UTF8String] ); + if( error ) { libspectrum_snap_free( snap ); return; } - [self process_snap2:snap]; + [self process_snap2:snap]; - error = libspectrum_snap_free( snap ); - if( error ) { return; } + error = libspectrum_snap_free( snap ); + if( error ) { return; } } - (void) process_snap2:(libspectrum_snap *)snap { - switch(libspectrum_snap_machine(snap)) { - case LIBSPECTRUM_MACHINE_16: - case LIBSPECTRUM_MACHINE_48: - [self process_snap_sinclair48:snap]; - break; - - case LIBSPECTRUM_MACHINE_TC2048: - case LIBSPECTRUM_MACHINE_TC2068: - case LIBSPECTRUM_MACHINE_TS2068: - [self process_snap_timex:snap]; - break; - - case LIBSPECTRUM_MACHINE_128: - case LIBSPECTRUM_MACHINE_PLUS2: - case LIBSPECTRUM_MACHINE_PENT: - case LIBSPECTRUM_MACHINE_PLUS2A: - case LIBSPECTRUM_MACHINE_PLUS3: - case LIBSPECTRUM_MACHINE_SCORP: - case LIBSPECTRUM_MACHINE_PLUS3E: - case LIBSPECTRUM_MACHINE_PENT512: - case LIBSPECTRUM_MACHINE_PENT1024: - [self process_snap_sinclair128:snap]; - break; + switch(libspectrum_snap_machine(snap)) { + case LIBSPECTRUM_MACHINE_16: + case LIBSPECTRUM_MACHINE_48: + [self process_snap_sinclair48:snap]; + break; + + case LIBSPECTRUM_MACHINE_TC2048: + case LIBSPECTRUM_MACHINE_TC2068: + case LIBSPECTRUM_MACHINE_TS2068: + [self process_snap_timex:snap]; + break; + + case LIBSPECTRUM_MACHINE_128: + case LIBSPECTRUM_MACHINE_PLUS2: + case LIBSPECTRUM_MACHINE_PENT: + case LIBSPECTRUM_MACHINE_PLUS2A: + case LIBSPECTRUM_MACHINE_PLUS3: + case LIBSPECTRUM_MACHINE_SCORP: + case LIBSPECTRUM_MACHINE_PLUS3E: + case LIBSPECTRUM_MACHINE_PENT512: + case LIBSPECTRUM_MACHINE_PENT1024: + [self process_snap_sinclair128:snap]; + break; - case LIBSPECTRUM_MACHINE_SE: - [self process_snap_se:snap]; - break; - - default: - break; - } + case LIBSPECTRUM_MACHINE_SE: + [self process_snap_se:snap]; + break; + + default: + break; + } } - (void) process_snap_sinclair48:(libspectrum_snap *)snap { - // Just need to copy out first 6912 bytes from page 5 - scrData = [NSData dataWithBytes:(const void *)libspectrum_snap_pages( snap, 5 ) length:STANDARD_SCR_SIZE]; + // Just need to copy out first 6912 bytes from page 5 + scrData = [NSData dataWithBytes:(const void *)libspectrum_snap_pages( snap, 5 ) + length:STANDARD_SCR_SIZE]; + image_type = TYPE_SCR; } - (void) process_snap_sinclair128:(libspectrum_snap *)snap { - // Check which screen page is active and copy standard 6912 bytes - int screen = ( libspectrum_snap_out_128_memoryport( snap ) & 0x08 ) ? 7 : 5; - scrData = [NSData dataWithBytes:(const void *)libspectrum_snap_pages( snap, screen ) length:STANDARD_SCR_SIZE]; + // Check which screen page is active and copy standard 6912 bytes + int screen = ( libspectrum_snap_out_128_memoryport( snap ) & 0x08 ) ? 7 : 5; + scrData = [NSData dataWithBytes:(const void *)libspectrum_snap_pages( snap, screen ) + length:STANDARD_SCR_SIZE]; + image_type = TYPE_SCR; } - (void) process_snap_timex:(libspectrum_snap *)snap inPage:(int)page { - // Check which screen mode and pages are active and copy as appropriate - libspectrum_byte scr_data[HIRES_SCR_SIZE]; - int scr_length; + // Check which screen mode and pages are active and copy as appropriate + libspectrum_byte scr_data[HIRES_SCR_SIZE]; + int scr_length; - memset( scr_data, 0, HIRES_SCR_SIZE ); + memset( scr_data, 0, HIRES_SCR_SIZE ); - if( libspectrum_snap_out_scld_dec( snap ) & 0x04 ) { - memcpy( scr_data, - libspectrum_snap_pages( snap, page ), - MONO_BITMAP_SIZE ); - memcpy( scr_data + MONO_BITMAP_SIZE, - libspectrum_snap_pages( snap, page ) + ALTDFILE_OFFSET, - MONO_BITMAP_SIZE ); - scr_data[HIRES_ATTR] = ( libspectrum_snap_out_scld_dec( snap ) & HIRESCOLMASK ) | 0x07; - scr_length = HIRES_SCR_SIZE; - } else if( libspectrum_snap_out_scld_dec( snap ) & 0x02 ) { - memcpy( scr_data, - libspectrum_snap_pages( snap, page ), - MONO_BITMAP_SIZE ); - memcpy( scr_data + MONO_BITMAP_SIZE, - libspectrum_snap_pages( snap, page ) + ALTDFILE_OFFSET, - MONO_BITMAP_SIZE ); - scr_length = HICOLOUR_SCR_SIZE; - } else { /* ALTDFILE and default */ - int offset = ( libspectrum_snap_out_scld_dec( snap ) & 0x01 ) ? ALTDFILE_OFFSET : 0x0000; - scr_length = STANDARD_SCR_SIZE; - memcpy( scr_data, - libspectrum_snap_pages( snap, page ) + offset, - scr_length ); - } + if( libspectrum_snap_out_scld_dec( snap ) & 0x04 ) { + memcpy( scr_data, + libspectrum_snap_pages( snap, page ), + MONO_BITMAP_SIZE ); + memcpy( scr_data + MONO_BITMAP_SIZE, + libspectrum_snap_pages( snap, page ) + ALTDFILE_OFFSET, + MONO_BITMAP_SIZE ); + scr_data[HIRES_ATTR] = ( libspectrum_snap_out_scld_dec( snap ) & HIRESCOLMASK ) | 0x07; + scr_length = HIRES_SCR_SIZE; + } else if( libspectrum_snap_out_scld_dec( snap ) & 0x02 ) { + memcpy( scr_data, + libspectrum_snap_pages( snap, page ), + MONO_BITMAP_SIZE ); + memcpy( scr_data + MONO_BITMAP_SIZE, + libspectrum_snap_pages( snap, page ) + ALTDFILE_OFFSET, + MONO_BITMAP_SIZE ); + scr_length = HICOLOUR_SCR_SIZE; + } else { /* ALTDFILE and default */ + int offset = ( libspectrum_snap_out_scld_dec( snap ) & 0x01 ) ? ALTDFILE_OFFSET : 0x0000; + scr_length = STANDARD_SCR_SIZE; + memcpy( scr_data, + libspectrum_snap_pages( snap, page ) + offset, + scr_length ); + } - scrData = [NSData dataWithBytes:(const void *)scr_data length:scr_length]; + scrData = [NSData dataWithBytes:(const void *)scr_data length:scr_length]; + image_type = TYPE_SCR; } - (void) process_snap_timex:(libspectrum_snap *)snap { - // Timex screens are always in page 5 - [self process_snap_timex:snap inPage:5]; + // Timex screens are always in page 5 + [self process_snap_timex:snap inPage:5]; } - (void) process_snap_se:(libspectrum_snap *)snap { - // SE uses the 128k port to decide which page, and then applies the Timex rule - int screen = ( libspectrum_snap_out_128_memoryport( snap ) & 0x08 ) ? 7 : 5; - [self process_snap_timex:snap inPage:screen]; + // SE uses the 128k port to decide which page, and then applies the Timex rule + int screen = ( libspectrum_snap_out_128_memoryport( snap ) & 0x08 ) ? 7 : 5; + [self process_snap_timex:snap inPage:screen]; } @end Modified: trunk/fuse/TODO =================================================================== --- trunk/fuse/TODO 2008-04-29 13:50:38 UTC (rev 524) +++ trunk/fuse/TODO 2008-05-04 09:11:05 UTC (rev 525) @@ -2,10 +2,10 @@ * Pentagon port #ff returning floating bus issues - it does it because the RusFAQ says so? * Timex 2068 fusetests -* Add TITLE tags to help files * Console mode GUI * C version of standard tape loader * Add "proper" preferences window +* Add TITLE tags to help files? * SZX ZX Printer block? * PAL Compsite emulation * Seperate out sound buffer interleaving code to allow for the use of hardware etc. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2008-04-29 13:55:39
|
Revision: 524 http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=524&view=rev Author: fredm Date: 2008-04-29 06:50:38 -0700 (Tue, 29 Apr 2008) Log Message: ----------- Add GNU style changelog. Added Paths: ----------- tags/Release-0_9_0_2/ChangeLog Added: tags/Release-0_9_0_2/ChangeLog =================================================================== --- tags/Release-0_9_0_2/ChangeLog (rev 0) +++ tags/Release-0_9_0_2/ChangeLog 2008-04-29 13:50:38 UTC (rev 524) @@ -0,0 +1,6754 @@ +2008-04-29 13:04 fredm + + * .: Create Release-0_9_0_2 tag. + +2008-04-29 12:59 fredm + + * trunk/fuse/fusepb/English.lproj/InfoPlist.strings: Bump version + to 0.9.0.2. + +2008-04-29 12:44 fredm + + * trunk/fuse/fusepb/controllers/FuseController.m: Fix betaFileTypes + declaration. + +2008-04-29 12:24 fredm + + * trunk/fuse/TODO, trunk/fuse/fusepb/controllers/FuseController.m, + trunk/fuse/fusepb/resources/Fuse Help/html/changelog.html: Add UI + support for .udi, .fdi and .scl files for Beta disk images. + +2008-04-28 13:55 fredm + + * trunk/FuseGenerator/GeneratePreviewForURL.m: Generate previews + for all docs, not just screenshots. + +2008-04-28 13:21 fredm + + * trunk/FuseImporter/COPYING, trunk/FuseImporter/Howto build.rtf, + trunk/FuseImporter/README.rtf: Remove obsolete files. + +2008-04-28 13:15 fredm + + * trunk/fuse/fusepb/resources/Fuse Help/Fuse Help idx, + 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/quicklook.html, + trunk/fuse/fusepb/resources/Fuse Help/html/tocstart.html: Add + Quick Look generator documentation, update index. + +2008-04-28 13:14 fredm + + * trunk/fuse/settings.dat: Change thumbnail icon generation default + to be off as it is superceded by Quick Look on Mac OS X 10.5 and + up. + +2008-04-28 11:32 fredm + + * trunk/FuseImporter/English.lproj/InfoPlist.strings, + trunk/FuseImporter/Info.plist: Bump version to 1.1, add + references for img, mgt and raw file formats. + +2008-04-28 10:45 fredm + + * trunk/fuse/TODO: Update TODO list. + +2008-04-28 10:42 fredm + + * trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj: Distribute + QuickLook generator. + +2008-04-28 10:17 fredm + + * trunk/FuseImporter/LibspectrumMetadataImporter.h: Add declaration + of process_tape. + +2008-04-28 10:14 fredm + + * trunk/FuseImporter/English.lproj/schema.strings: Add display name + for graphics mode. + +2008-04-09 21:13 fredm + + * trunk/fuse/ui/cocoa/SDL_joystick/SDL_sysjoystick.c: Don't report + errors back to the user when we fail to open a joystick device + that already has exclusive access given to someone else (e.g. a + Wacom tablet and it's associated driver) (James Weatherley). + +2008-04-08 13:38 fredm + + * trunk/fuse/ui/cocoa/cocoadisplay.m: Move lock allocation and + initialisation to DisplayOpenGLView. + +2008-04-08 13:36 fredm + + * trunk/fuse/fusepb/English.lproj/InfoPlist.strings: Update version + strings to 0.9.0.1. + +2008-04-08 13:34 fredm + + * trunk/fuse/fusepb/resources/Fuse Help/html/changelog.html, + trunk/fuse/fusepb/resources/Fuse Help/html/menus.html: Add + references for new menu options, update ChangeLog for recent + changes. + +2008-04-08 13:31 fredm + + * trunk/fuse/fusepb/nibs/MainMenu.nib/info.nib, + trunk/fuse/fusepb/nibs/MainMenu.nib/keyedobjects.nib, + trunk/fuse/fusepb/views/DisplayOpenGLView.m: Add 4x and 5x zoom + options for those with big screens. + +2008-04-08 12:08 fredm + + * trunk/fuse/ui/cocoa/SDL_joystick/SDL_sysjoystick.c: Merge up to + revision 3524 of SDL_sysjoystick.c, in hope of fixing errors + starting Fuse with a Wacom graphics tablet attached. + +2008-03-31 12:46 fredm + + * trunk/fuse/TODO, trunk/fuse/fusepb/controllers/FuseController.h, + trunk/fuse/fusepb/controllers/FuseController.m, + trunk/fuse/fusepb/models/Emulator.h, + trunk/fuse/fusepb/models/Emulator.m, + trunk/fuse/fusepb/nibs/MainMenu.nib/classes.nib, + trunk/fuse/fusepb/nibs/MainMenu.nib/keyedobjects.nib, + trunk/fuse/fusepb/views/DisplayOpenGLView.h, + trunk/fuse/fusepb/views/DisplayOpenGLView.m: Add +D and Beta disk + insert menu entries. Allow +D to save .img images. + +2008-03-31 11:51 fredm + + * trunk/fuse/TODO, trunk/fuse/fusepb/controllers/FuseController.m: + Allow .img files to be opened as +D images. + +2008-03-29 03:19 fredm + + * trunk/fuse/fusepb/controllers/PreferencesController.m, + trunk/fuse/fusepb/nibs/Preferences.nib/keyedobjects.nib: Add + preferences support for Beta 128 interface. + +2008-03-29 03:18 fredm + + * trunk/fuse/fusepb/English.lproj/InfoPlist.strings: Change + additional copyright date to 2008. + +2008-03-28 13:01 fredm + + * trunk/fuse/fusepb/English.lproj/InfoPlist.strings, + trunk/fuse/fusepb/Info-Fuse.plist, trunk/fuse/fusepb/config.h, + trunk/fuse/fusepb/resources/Fuse Help/html/changelog.html: Move + version to Fuse for Mac OS X 0.9.0. + +2008-03-27 12:04 fredm + + * trunk/fuse/fusepb/controllers/FuseController.h, + trunk/fuse/fusepb/controllers/FuseController.m, + trunk/fuse/fusepb/models/Emulator.h, + trunk/fuse/fusepb/models/Emulator.m, + trunk/fuse/fusepb/nibs/MainMenu.nib/classes.nib, + trunk/fuse/fusepb/nibs/MainMenu.nib/info.nib, + trunk/fuse/fusepb/nibs/MainMenu.nib/keyedobjects.nib, + trunk/fuse/fusepb/views/DisplayOpenGLView.h, + trunk/fuse/fusepb/views/DisplayOpenGLView.m: Add +D and Beta disk + write protect support. Fix Microdrive cartridge menus. Add + command key release for keyboard joystick binding shortcut. + +2008-03-27 12:03 fredm + + * trunk/fuse/fusepb/Info-Fuse.plist: Fix mdr type info, round out + mgt and img type exports. + +2008-03-26 10:36 fredm + + * trunk/fuse/TODO, trunk/fuse/fusepb/nibs/MainMenu.nib/info.nib, + trunk/fuse/fusepb/nibs/MainMenu.nib/keyedobjects.nib, + trunk/fuse/fusepb/nibs/Preferences.nib/keyedobjects.nib, + trunk/fuse/fusepb/resources/Fuse Help/html/menus.html, + trunk/fuse/fusepb/resources/Fuse Help/html/preferences.html: Move + Emulate keyboard joystick option to to Bind Keys to Joystick + option in Machine menu + +2008-03-26 08:46 fredm + + * trunk/fuse/fusepb/nibs/Preferences.nib/info.nib, + trunk/fuse/fusepb/nibs/Preferences.nib/keyedobjects.nib: Fix + keyboard joystick enabled preference binding. + +2008-02-18 09:48 fredm + + * trunk/README: Remove reference to bzip2 framework. + +2008-02-18 08:45 fredm + + * trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj, + trunk/fuse/fusepb/FuseMenus.m: Don't use standard Fuse menu.c, + move only function we use (menu_select_roms_with_title) to + FuseMenus.m. + +2008-02-18 07:25 fredm + + * trunk/fuse/fusepb/controllers/FuseController.m: Ignore any + shortcuts that raise dialogs in fullscreen mode. + +2008-02-18 07:20 fredm + + * trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj: Remove + pentagon.h from distribution binaries and remove references to + obsolete SDL and bzip2 frameworks. + +2008-02-18 04:00 fredm + + * trunk/libgcrypt/Info-gcrypt.plist, + trunk/libgcrypt/libgcrypt.xcodeproj/project.pbxproj, + trunk/libgcrypt/libgcrypt/AUTHORS, + trunk/libgcrypt/libgcrypt/ChangeLog, + trunk/libgcrypt/libgcrypt/INSTALL, + trunk/libgcrypt/libgcrypt/Makefile.am, + trunk/libgcrypt/libgcrypt/Makefile.in, + trunk/libgcrypt/libgcrypt/NEWS, trunk/libgcrypt/libgcrypt/README, + trunk/libgcrypt/libgcrypt/README.CVS, + trunk/libgcrypt/libgcrypt/README.SVN, + trunk/libgcrypt/libgcrypt/THANKS, trunk/libgcrypt/libgcrypt/TODO, + trunk/libgcrypt/libgcrypt/VERSION, + trunk/libgcrypt/libgcrypt/acinclude.m4, + trunk/libgcrypt/libgcrypt/aclocal.m4, + trunk/libgcrypt/libgcrypt/autogen.sh, + trunk/libgcrypt/libgcrypt/cipher/ChangeLog, + trunk/libgcrypt/libgcrypt/cipher/Makefile.in, + trunk/libgcrypt/libgcrypt/cipher/ac.c, + trunk/libgcrypt/libgcrypt/cipher/blowfish.c, + trunk/libgcrypt/libgcrypt/cipher/cast5.c, + trunk/libgcrypt/libgcrypt/cipher/cipher.c, + trunk/libgcrypt/libgcrypt/cipher/crc.c, + trunk/libgcrypt/libgcrypt/cipher/des.c, + trunk/libgcrypt/libgcrypt/cipher/dsa.c, + trunk/libgcrypt/libgcrypt/cipher/elgamal.c, + trunk/libgcrypt/libgcrypt/cipher/md.c, + trunk/libgcrypt/libgcrypt/cipher/primegen.c, + trunk/libgcrypt/libgcrypt/cipher/pubkey.c, + trunk/libgcrypt/libgcrypt/cipher/random.c, + trunk/libgcrypt/libgcrypt/cipher/random.h, + trunk/libgcrypt/libgcrypt/cipher/rfc2268.c, + trunk/libgcrypt/libgcrypt/cipher/rijndael.c, + trunk/libgcrypt/libgcrypt/cipher/rmd160.c, + trunk/libgcrypt/libgcrypt/cipher/rndlinux.c, + trunk/libgcrypt/libgcrypt/cipher/rndw32.c, + trunk/libgcrypt/libgcrypt/cipher/rsa.c, + trunk/libgcrypt/libgcrypt/cipher/serpent.c, + trunk/libgcrypt/libgcrypt/cipher/sha256.c, + trunk/libgcrypt/libgcrypt/cipher/sha512.c, + trunk/libgcrypt/libgcrypt/cipher/tiger.c, + trunk/libgcrypt/libgcrypt/cipher/twofish.c, + trunk/libgcrypt/libgcrypt/compile, + trunk/libgcrypt/libgcrypt/config.guess, + trunk/libgcrypt/libgcrypt/config.h.in, + trunk/libgcrypt/libgcrypt/config.sub, + trunk/libgcrypt/libgcrypt/configure, + trunk/libgcrypt/libgcrypt/configure.ac, + trunk/libgcrypt/libgcrypt/depcomp, + trunk/libgcrypt/libgcrypt/doc/ChangeLog, + trunk/libgcrypt/libgcrypt/doc/Makefile.in, + trunk/libgcrypt/libgcrypt/doc/gcrypt.info, + trunk/libgcrypt/libgcrypt/doc/gcrypt.texi, + trunk/libgcrypt/libgcrypt/doc/mdate-sh, + trunk/libgcrypt/libgcrypt/doc/stamp-vti, + trunk/libgcrypt/libgcrypt/doc/texinfo.tex, + trunk/libgcrypt/libgcrypt/doc/version.texi, + trunk/libgcrypt/libgcrypt/install-sh, + trunk/libgcrypt/libgcrypt/ltmain.sh, + trunk/libgcrypt/libgcrypt/m4, + trunk/libgcrypt/libgcrypt/m4/ChangeLog, + trunk/libgcrypt/libgcrypt/m4/Makefile.am, + trunk/libgcrypt/libgcrypt/m4/Makefile.in, + trunk/libgcrypt/libgcrypt/m4/libtool.m4, + trunk/libgcrypt/libgcrypt/m4/onceonly.m4, + trunk/libgcrypt/libgcrypt/m4/socklen.m4, + trunk/libgcrypt/libgcrypt/m4/sys_socket_h.m4, + trunk/libgcrypt/libgcrypt/missing, + trunk/libgcrypt/libgcrypt/mkinstalldirs, + trunk/libgcrypt/libgcrypt/mpi/ChangeLog, + trunk/libgcrypt/libgcrypt/mpi/Makefile.am, + trunk/libgcrypt/libgcrypt/mpi/Makefile.in, + trunk/libgcrypt/libgcrypt/mpi/config.links, + trunk/libgcrypt/libgcrypt/mpi/hppa1.1/udiv-qrnnd.S, + trunk/libgcrypt/libgcrypt/mpi/mpi-bit.c, + trunk/libgcrypt/libgcrypt/mpi/mpi-pow.c, + trunk/libgcrypt/libgcrypt/mpi/mpicoder.c, + trunk/libgcrypt/libgcrypt/mpi/mpiutil.c, + trunk/libgcrypt/libgcrypt/src/ChangeLog, + trunk/libgcrypt/libgcrypt/src/Makefile.am, + trunk/libgcrypt/libgcrypt/src/Makefile.in, + trunk/libgcrypt/libgcrypt/src/ath.c, + trunk/libgcrypt/libgcrypt/src/ath.h, + trunk/libgcrypt/libgcrypt/src/g10lib.h, + trunk/libgcrypt/libgcrypt/src/gcrypt-module.h, + trunk/libgcrypt/libgcrypt/src/gcrypt.h, + trunk/libgcrypt/libgcrypt/src/gcrypt.h.in, + trunk/libgcrypt/libgcrypt/src/global.c, + trunk/libgcrypt/libgcrypt/src/libgcrypt.m4, + trunk/libgcrypt/libgcrypt/src/missing-string.c, + trunk/libgcrypt/libgcrypt/src/secmem.c, + trunk/libgcrypt/libgcrypt/src/secmem.h, + trunk/libgcrypt/libgcrypt/src/sexp.c, + trunk/libgcrypt/libgcrypt/src/types.h, + trunk/libgcrypt/libgcrypt/tests/ChangeLog, + trunk/libgcrypt/libgcrypt/tests/Makefile.am, + trunk/libgcrypt/libgcrypt/tests/Makefile.in, + trunk/libgcrypt/libgcrypt/tests/ac.c, + trunk/libgcrypt/libgcrypt/tests/basic.c, + trunk/libgcrypt/libgcrypt/tests/benchmark.c, + trunk/libgcrypt/libgcrypt/tests/pubkey.c, + trunk/libgcrypt/libgcrypt/tests/random.c, + trunk/libgcrypt/libgcrypt/tests/t-mpi-bit.c, + trunk/libgcrypt/libgcrypt/tests/tsexp.c, + trunk/libgcrypt/libgcrypt/w32-dll/Makefile.in: Merge up to vendor + libgcrypt version 1.2.4. + +2008-02-17 22:06 fredm + + * trunk/FuseImporter/Info.plist, trunk/fuse/fusepb/Info-Fuse.plist, + trunk/fuse/fusepb/controllers/FuseController.m, + trunk/fuse/fusepb/resources/Fuse Help/html/changelog.html: Add + entries for newly-supported tape and snap formats. + +2008-02-17 02:02 fredm + + * trunk/fuse/ChangeLog, trunk/fuse/Makefile.am, trunk/fuse/README, + trunk/fuse/ay.c, trunk/fuse/compat/Makefile.am, + trunk/fuse/compat/win32/osname.c, trunk/fuse/configure.in, + trunk/fuse/disk/beta.c, trunk/fuse/disk/beta.h, + trunk/fuse/disk/disk.c, trunk/fuse/disk/disk.h, + trunk/fuse/disk/fdd.c, trunk/fuse/disk/fdd.h, + trunk/fuse/disk/plusd.c, trunk/fuse/disk/plusd.h, + trunk/fuse/disk/wd_fdc.c, trunk/fuse/disk/wd_fdc.h, + trunk/fuse/display.c, trunk/fuse/divide.c, + trunk/fuse/fusepb/English.lproj/InfoPlist.strings, + trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj, + trunk/fuse/fusepb/Info-Fuse.plist, + trunk/fuse/fusepb/controllers/FuseController.h, + trunk/fuse/fusepb/controllers/FuseController.m, + trunk/fuse/fusepb/models/Emulator.h, + trunk/fuse/fusepb/models/Emulator.m, + trunk/fuse/fusepb/nibs/MainMenu.nib/classes.nib, + trunk/fuse/fusepb/nibs/MainMenu.nib/keyedobjects.nib, + trunk/fuse/fusepb/resources/Fuse Help/Fuse Help idx, + 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/formats.html, + trunk/fuse/fusepb/resources/Fuse Help/html/menus.html, + trunk/fuse/fusepb/resources/Fuse Help/html/preferences.html, + trunk/fuse/fusepb/resources/Fuse Help/html/tocstart.html, + trunk/fuse/fusepb/resources/Fuse Help/html/trdos.html, + trunk/fuse/fusepb/views/DisplayOpenGLView.h, + trunk/fuse/fusepb/views/DisplayOpenGLView.m, + trunk/fuse/hacking/ChangeLog, trunk/fuse/hacking/cvs-tags, + trunk/fuse/hacking/tc2048_tech_notes.txt, trunk/fuse/if1.c, + trunk/fuse/if1.h, trunk/fuse/if2.c, trunk/fuse/input.c, + trunk/fuse/joystick.c, trunk/fuse/kempmouse.c, + trunk/fuse/keyboard.c, trunk/fuse/machine.c, + trunk/fuse/machines/Makefile.am, trunk/fuse/machines/machines.h, + trunk/fuse/machines/pentagon.c, trunk/fuse/machines/pentagon.h, + trunk/fuse/machines/pentagon1024.c, + trunk/fuse/machines/pentagon512.c, + trunk/fuse/machines/scorpion.c, trunk/fuse/machines/spec128.c, + trunk/fuse/machines/spec16.c, trunk/fuse/machines/spec48.c, + trunk/fuse/machines/spec48.h, trunk/fuse/machines/spec_se.c, + trunk/fuse/machines/specplus2.c, + trunk/fuse/machines/specplus2a.c, + trunk/fuse/machines/specplus3.c, trunk/fuse/machines/specplus3.h, + trunk/fuse/machines/specplus3e.c, trunk/fuse/machines/tc2048.c, + trunk/fuse/machines/tc2068.c, trunk/fuse/machines/ts2068.c, + trunk/fuse/man/fuse.1, trunk/fuse/memory.c, trunk/fuse/menu.c, + trunk/fuse/menu.h, trunk/fuse/menu_data.dat, + trunk/fuse/menu_data.pl, trunk/fuse/module.c, + trunk/fuse/module.h, trunk/fuse/periph.c, trunk/fuse/periph.h, + trunk/fuse/printer.c, trunk/fuse/profile.c, trunk/fuse/scld.c, + trunk/fuse/settings.dat, trunk/fuse/settings.pl, + trunk/fuse/simpleide.c, trunk/fuse/slt.c, trunk/fuse/snapshot.c, + trunk/fuse/sound/alsasound.c, trunk/fuse/sound/sdlsound.c, + trunk/fuse/spectrum.c, trunk/fuse/spectrum.h, trunk/fuse/tape.c, + trunk/fuse/tape.h, trunk/fuse/ui.c, + trunk/fuse/ui/cocoa/cocoaui.m, trunk/fuse/ui/fb/fbdisplay.c, + trunk/fuse/ui/fb/fbmouse.c, trunk/fuse/ui/gtk/binary.c, + trunk/fuse/ui/gtk/confirm.c, trunk/fuse/ui/gtk/fileselector.c, + trunk/fuse/ui/gtk/gtkjoystick.c, trunk/fuse/ui/gtk/gtkui.c, + trunk/fuse/ui/gtk/pokefinder.c, trunk/fuse/ui/gtk/rollback.c, + trunk/fuse/ui/gtk/roms.c, trunk/fuse/ui/options.dat, + trunk/fuse/ui/sdl/sdlui.c, trunk/fuse/ui/ui.h, + trunk/fuse/ui/win32/Makefile.am, trunk/fuse/ui/win32/error.c, + trunk/fuse/ui/win32/win32internals.h, + trunk/fuse/ui/win32/win32ui.c, trunk/fuse/ula.c, + trunk/fuse/utils.c, trunk/fuse/widget/browse.c, + trunk/fuse/widget/filesel.c, trunk/fuse/widget/menu.c, + trunk/fuse/widget/options.pl, trunk/fuse/widget/roms.c, + trunk/fuse/widget/widget.c, trunk/fuse/widget/widget.h, + trunk/fuse/widget/widget_internals.h, trunk/fuse/z80/coretest.c, + trunk/fuse/z80/tests/Makefile.am, trunk/fuse/z80/z80.c, + trunk/fuse/z80/z80.pl, trunk/fuse/z80/z80_macros.h, + trunk/fuse/z80/z80_ops.c, trunk/fuse/zxatasp.c, + trunk/fuse/zxcf.c: Merge up to vendor Fuse 0.9.0. + +2008-02-14 13:00 fredm + + * trunk/FuseGenerator/libspectrum.h, + trunk/FuseImporter/GetMetadataForFile.m, + trunk/FuseImporter/LibspectrumMetadataImporter.m, + trunk/FuseImporter/libspectrum.h, trunk/libspectrum/Info.plist, + trunk/libspectrum/libspectrum.h, + trunk/libspectrum/libspectrum.xcodeproj/project.pbxproj, + trunk/libspectrum/libspectrum/COPYING, + trunk/libspectrum/libspectrum/ChangeLog, + trunk/libspectrum/libspectrum/Makefile.am, + trunk/libspectrum/libspectrum/README, + trunk/libspectrum/libspectrum/accessor.pl, + trunk/libspectrum/libspectrum/configure.in, + trunk/libspectrum/libspectrum/csw.c, + trunk/libspectrum/libspectrum/dll.c, + trunk/libspectrum/libspectrum/doc/cvs-tags, + 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/plusd.c, + trunk/libspectrum/libspectrum/sna.c, + trunk/libspectrum/libspectrum/snap_accessors.txt, + trunk/libspectrum/libspectrum/snapshot.c, + trunk/libspectrum/libspectrum/szx.c, + trunk/libspectrum/libspectrum/tap.c, + trunk/libspectrum/libspectrum/tape.c, + trunk/libspectrum/libspectrum/tape_block.c, + trunk/libspectrum/libspectrum/test/Makefile.am, + trunk/libspectrum/libspectrum/test/empty.csw, + trunk/libspectrum/libspectrum/test/sp-2000.sna.gz, + trunk/libspectrum/libspectrum/test/sp-ffff.sna.gz, + trunk/libspectrum/libspectrum/test/test.c, + trunk/libspectrum/libspectrum/timings.c, + trunk/libspectrum/libspectrum/z80.c: Merge up to vendor version + 0.4.0. + +2008-02-13 12:54 fredm + + * trunk/fuse/fusepb/controllers/FuseController.h, + trunk/fuse/fusepb/controllers/FuseController.m, + trunk/fuse/fusepb/nibs/MainMenu.nib/classes.nib, + trunk/fuse/fusepb/nibs/MainMenu.nib/info.nib, + trunk/fuse/fusepb/nibs/MainMenu.nib/keyedobjects.nib, + trunk/fuse/fusepb/views/DisplayOpenGLView.h, + trunk/fuse/fusepb/views/DisplayOpenGLView.m: Fix the blocked + keyboard from Command-q (quit), Command-h (hide) and Command-m + (minimise) (fixes bug #1842577). + +2008-02-11 12:16 fredm + + * trunk/fuse/fusepb/controllers/FuseController.h, + trunk/fuse/fusepb/controllers/FuseController.m, + trunk/fuse/fusepb/views/DisplayOpenGLView.m: Clear stuck shortcut + keys for Command-{0,1,2,3,f,s,z,b,o,p,period}, still need to + handle Command-q (quit), Command-h (hide) and Command-m + (minimise). + +2008-02-10 20:47 fredm + + * trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj, + trunk/fuse/fusepb/controllers/FuseController.h, + trunk/fuse/fusepb/controllers/FuseController.m, + trunk/fuse/fusepb/nibs/MainMenu.nib/info.nib, + trunk/fuse/fusepb/nibs/MainMenu.nib/keyedobjects.nib, + trunk/fuse/fusepb/views/DisplayOpenGLView.h, + trunk/fuse/fusepb/views/DisplayOpenGLView.m: Make application + quit menu use performClose on the window, and switch exit confirm + dialog to windowShouldClose in DisplayOpenGLView (partial fix to + bug #1842576). + +2007-12-21 02:42 fredm + + * trunk/FuseGenerator/LibspectrumSCRExtractor.m: Some SCREEN$ were + saved from places other than 16384 (presumably due to art + packages and the like). + +2007-12-21 00:16 fredm + + * trunk/FuseGenerator, trunk/FuseGenerator/English.lproj, + trunk/FuseGenerator/English.lproj/InfoPlist.strings, + trunk/FuseGenerator/FuseGenerator.xcodeproj, + trunk/FuseGenerator/FuseGenerator.xcodeproj/project.pbxproj, + trunk/FuseGenerator/GeneratePreviewForURL.m, + trunk/FuseGenerator/GenerateThumbnailForURL.m, + trunk/FuseGenerator/Info.plist, + trunk/FuseGenerator/JWSpectrumScreen, + trunk/FuseGenerator/JWSpectrumScreen/AttributeBlock.h, + trunk/FuseGenerator/JWSpectrumScreen/AttributeBlock.m, + trunk/FuseGenerator/JWSpectrumScreen/AttributeBlockIterator.h, + trunk/FuseGenerator/JWSpectrumScreen/AttributeBlockIterator.m, + trunk/FuseGenerator/JWSpectrumScreen/AttributeBlockTimex.h, + trunk/FuseGenerator/JWSpectrumScreen/AttributeBlockTimex.m, + trunk/FuseGenerator/JWSpectrumScreen/AttributeBlockTimexHiRes.h, + trunk/FuseGenerator/JWSpectrumScreen/AttributeBlockTimexHiRes.m, + trunk/FuseGenerator/JWSpectrumScreen/AttributeManager.c, + trunk/FuseGenerator/JWSpectrumScreen/AttributeManager.h, + trunk/FuseGenerator/JWSpectrumScreen/ColourMacros.c, + trunk/FuseGenerator/JWSpectrumScreen/ColourMacros.h, + trunk/FuseGenerator/JWSpectrumScreen/English.lproj, + trunk/FuseGenerator/JWSpectrumScreen/English.lproj/InfoPlist.strings, + trunk/FuseGenerator/JWSpectrumScreen/Info.plist, + trunk/FuseGenerator/JWSpectrumScreen/JWSpectrumScreen.h, + trunk/FuseGenerator/JWSpectrumScreen/JWSpectrumScreen.m, + trunk/FuseGenerator/JWSpectrumScreen/JWSpectrumScreen.xcodeproj, + trunk/FuseGenerator/JWSpectrumScreen/JWSpectrumScreen.xcodeproj/project.pbxproj, + trunk/FuseGenerator/JWSpectrumScreen/JWSpectrumScreenConstants.h, + trunk/FuseGenerator/JWSpectrumScreen/JWSpectrumScreen_Prefix.pch, + trunk/FuseGenerator/JWSpectrumScreen/PixelData.h, + trunk/FuseGenerator/JWSpectrumScreen/README, + trunk/FuseGenerator/LibspectrumSCRExtractor.h, + trunk/FuseGenerator/LibspectrumSCRExtractor.m, + trunk/FuseGenerator/config.h, trunk/FuseGenerator/generate.pl, + trunk/FuseGenerator/libspectrum, + trunk/FuseGenerator/libspectrum.h, trunk/FuseGenerator/main.c, + trunk/FuseImporter/FuseImporter.xcodeproj/project.pbxproj, + trunk/README, trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj: + Add QuickLook generator for Speccy-related files, thanks to James + Weatherley for JWSpectrumScreen that makes it all possible. + +2007-12-20 11:04 fredm + + * trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj: Spotlight + importer should be in Contents/Library/Spotlight, not PlugIns + +2007-11-17 11:17 fredm + + * trunk/fuse/fusepb/resources/Fuse.icns: Add 512x512px icon for + Fuse. + +2007-11-17 07:49 fredm + + * trunk/fuse/fusepb/resources/Fuse Help/html/changelog.html: Add + some extra change entries. + +2007-11-16 23:51 fredm + + * trunk/fuse/fusepb/Info-Fuse.plist: Increment version number to + reflect merge state. + +2007-11-16 23:49 fredm + + * trunk/FuseImporter/libspectrum.h, + trunk/audiofile/audiofile.xcodeproj/project.pbxproj, + trunk/fuse/ChangeLog, trunk/fuse/Makefile.am, trunk/fuse/ay.c, + trunk/fuse/bitmap.h, trunk/fuse/compat.h, + trunk/fuse/compat/Makefile.am, + trunk/fuse/compat/amiga/Makefile.am, + trunk/fuse/compat/amiga/paths.c, + trunk/fuse/compat/morphos/Makefile.am, + trunk/fuse/compat/morphos/osname.c, + trunk/fuse/compat/unix/Makefile.am, + trunk/fuse/compat/unix/osname.c, trunk/fuse/compat/unix/paths.c, + trunk/fuse/compat/win32/Makefile.am, + trunk/fuse/compat/win32/osname.c, + trunk/fuse/compat/win32/paths.c, trunk/fuse/configure.in, + trunk/fuse/debugger/Makefile.am, + trunk/fuse/debugger/breakpoint.c, trunk/fuse/debugger/command.c, + trunk/fuse/debugger/commandy.y, trunk/fuse/debugger/debugger.c, + trunk/fuse/debugger/debugger_internals.h, + trunk/fuse/debugger/disassemble.c, + trunk/fuse/debugger/expression.c, trunk/fuse/disk/Makefile.am, + trunk/fuse/disk/beta.c, trunk/fuse/disk/beta.h, + trunk/fuse/disk/crc.c, trunk/fuse/disk/crc.h, + trunk/fuse/disk/disk.c, trunk/fuse/disk/disk.h, + trunk/fuse/disk/fdd.c, trunk/fuse/disk/fdd.h, + trunk/fuse/disk/plusd.c, trunk/fuse/disk/plusd.h, + trunk/fuse/disk/wd1770.c, trunk/fuse/disk/wd1770.h, + trunk/fuse/disk/wd_fdc.c, trunk/fuse/disk/wd_fdc.h, + trunk/fuse/divide.c, trunk/fuse/event.c, trunk/fuse/event.h, + trunk/fuse/fuse.cpp, + trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj, + trunk/fuse/fusepb/Makefile, + trunk/fuse/fusepb/controllers/FuseController.h, + trunk/fuse/fusepb/controllers/FuseController.m, + trunk/fuse/fusepb/models/Emulator.h, + trunk/fuse/fusepb/models/Emulator.m, + trunk/fuse/fusepb/nibs/MainMenu.nib/classes.nib, + trunk/fuse/fusepb/nibs/MainMenu.nib/info.nib, + trunk/fuse/fusepb/nibs/MainMenu.nib/keyedobjects.nib, + trunk/fuse/fusepb/nibs/Preferences.nib/classes.nib, + trunk/fuse/fusepb/nibs/Preferences.nib/info.nib, + trunk/fuse/fusepb/nibs/Preferences.nib/keyedobjects.nib, + trunk/fuse/fusepb/views/DisplayOpenGLView.h, + trunk/fuse/fusepb/views/DisplayOpenGLView.m, + trunk/fuse/hacking/ChangeLog, trunk/fuse/hacking/cvs-tags, + trunk/fuse/if1.c, trunk/fuse/if2.c, trunk/fuse/keyboard.h, + trunk/fuse/keysyms.pl, trunk/fuse/lib/Makefile.am, + trunk/fuse/machine.c, trunk/fuse/machines/Makefile.am, + trunk/fuse/machines/machines.h, trunk/fuse/machines/pentagon.c, + trunk/fuse/machines/pentagon1024.c, + trunk/fuse/machines/pentagon512.c, + trunk/fuse/machines/scorpion.c, trunk/fuse/machines/scorpion.h, + trunk/fuse/machines/spec128.c, trunk/fuse/machines/spec128.h, + trunk/fuse/machines/spec16.c, trunk/fuse/machines/spec48.c, + trunk/fuse/machines/spec48.h, trunk/fuse/machines/spec_se.c, + trunk/fuse/machines/specplus2.c, + trunk/fuse/machines/specplus2a.c, + trunk/fuse/machines/specplus3.c, trunk/fuse/machines/specplus3.h, + trunk/fuse/machines/specplus3e.c, trunk/fuse/machines/tc2048.c, + trunk/fuse/machines/tc2068.c, trunk/fuse/machines/tc2068.h, + trunk/fuse/machines/ts2068.c, trunk/fuse/man/fuse.1, + trunk/fuse/memory.h, trunk/fuse/menu.c, trunk/fuse/menu_data.dat, + trunk/fuse/menu_data.pl, trunk/fuse/periph.c, + trunk/fuse/periph.h, trunk/fuse/pokefinder/Makefile.am, + trunk/fuse/pokefinder/pokefinder.c, trunk/fuse/printer.c, + trunk/fuse/profile.c, trunk/fuse/profile.h, + trunk/fuse/roms/Makefile.am, trunk/fuse/roms/gluck.rom, + trunk/fuse/roms/plus3e-0.rom, trunk/fuse/roms/plus3e-1.rom, + trunk/fuse/roms/plus3e-2.rom, trunk/fuse/rzx.c, + trunk/fuse/settings.dat, trunk/fuse/settings.pl, + trunk/fuse/snapshot.c, trunk/fuse/sound.c, + trunk/fuse/sound/Makefile.am, trunk/fuse/sound/alsasound.c, + trunk/fuse/sound/aosound.c, trunk/fuse/sound/dxsound.c, + trunk/fuse/sound/hpsound.c, trunk/fuse/sound/nullsound.c, + trunk/fuse/sound/osssound.c, trunk/fuse/sound/sdlsound.c, + trunk/fuse/sound/sfifo.c, trunk/fuse/sound/sunsound.c, + trunk/fuse/spectrum.h, trunk/fuse/tape.c, + trunk/fuse/timer/Makefile.am, trunk/fuse/timer/timer.c, + trunk/fuse/timer/unix.c, trunk/fuse/trdos.c, trunk/fuse/trdos.h, + trunk/fuse/ui.c, trunk/fuse/ui/Makefile.am, + trunk/fuse/ui/cocoa/cocoaui.m, trunk/fuse/ui/fb/Makefile.am, + trunk/fuse/ui/fb/fbdisplay.c, trunk/fuse/ui/fb/fbjoystick.c, + trunk/fuse/ui/fb/fbkeyboard.c, trunk/fuse/ui/fb/fbmouse.c, + trunk/fuse/ui/fb/fbui.c, trunk/fuse/ui/ggi, + trunk/fuse/ui/gtk/Makefile.am, trunk/fuse/ui/gtk/binary.c, + trunk/fuse/ui/gtk/browse.c, trunk/fuse/ui/gtk/confirm.c, + trunk/fuse/ui/gtk/debugger.c, trunk/fuse/ui/gtk/fileselector.c, + trunk/fuse/ui/gtk/gtkdisplay.c, trunk/fuse/ui/gtk/gtkjoystick.c, + trunk/fuse/ui/gtk/gtkkeyboard.c, trunk/fuse/ui/gtk/gtkmouse.c, + trunk/fuse/ui/gtk/gtkui.c, trunk/fuse/ui/gtk/memory.c, + trunk/fuse/ui/gtk/options-header.pl, + trunk/fuse/ui/gtk/options.pl, trunk/fuse/ui/gtk/picture.c, + trunk/fuse/ui/gtk/pokefinder.c, trunk/fuse/ui/gtk/rollback.c, + trunk/fuse/ui/gtk/roms.c, trunk/fuse/ui/gtk/statusbar.c, + trunk/fuse/ui/options.dat, trunk/fuse/ui/scaler/Makefile.am, + trunk/fuse/ui/scaler/scaler.c, trunk/fuse/ui/scaler/scalers.cpp, + trunk/fuse/ui/sdl/Makefile.am, trunk/fuse/ui/sdl/sdldisplay.c, + trunk/fuse/ui/sdl/sdljoystick.c, trunk/fuse/ui/sdl/sdlkeyboard.c, + trunk/fuse/ui/sdl/sdlui.c, trunk/fuse/ui/svga/Makefile.am, + trunk/fuse/ui/svga/svgadisplay.c, + trunk/fuse/ui/svga/svgajoystick.c, + trunk/fuse/ui/svga/svgakeyboard.c, trunk/fuse/ui/svga/svgaui.c, + trunk/fuse/ui/ui.h, trunk/fuse/ui/uijoystick.c, + trunk/fuse/ui/win32/Makefile.am, trunk/fuse/ui/win32/debugger.c, + trunk/fuse/ui/win32/error.c, trunk/fuse/ui/win32/menu_data.c, + trunk/fuse/ui/win32/menu_data.h, + trunk/fuse/ui/win32/menu_data.rc, + trunk/fuse/ui/win32/options-header.pl, + trunk/fuse/ui/win32/options-resource.pl, + trunk/fuse/ui/win32/options.pl, trunk/fuse/ui/win32/pokefinder.c, + trunk/fuse/ui/win32/statusbar.c, + trunk/fuse/ui/win32/win32display.c, + trunk/fuse/ui/win32/win32display.h, + trunk/fuse/ui/win32/win32internals.h, + trunk/fuse/ui/win32/win32keyboard.c, + trunk/fuse/ui/win32/win32ui.c, trunk/fuse/ui/xlib/Makefile.am, + trunk/fuse/ui/xlib/xdisplay.c, trunk/fuse/ui/xlib/xerror.c, + trunk/fuse/ui/xlib/xjoystick.c, trunk/fuse/ui/xlib/xkeyboard.c, + trunk/fuse/ui/xlib/xui.c, trunk/fuse/utils.c, trunk/fuse/utils.h, + trunk/fuse/widget/Makefile.am, trunk/fuse/widget/browse.c, + trunk/fuse/widget/debugger.c, trunk/fuse/widget/error.c, + trunk/fuse/widget/filesel.c, trunk/fuse/widget/memory.c, + trunk/fuse/widget/menu.c, trunk/fuse/widget/options.pl, + trunk/fuse/widget/picture.c, trunk/fuse/widget/pokefinder.c, + trunk/fuse/widget/query.c, trunk/fuse/widget/roms.c, + trunk/fuse/widget/select.c, trunk/fuse/widget/text.c, + trunk/fuse/widget/widget.c, trunk/fuse/widget/widget.h, + trunk/fuse/widget/widget_internals.h, trunk/fuse/z80/Makefile.am, + trunk/fuse/z80/coretest.c, trunk/fuse/z80/z80.c, + trunk/fuse/z80/z80.pl, trunk/fuse/z80/z80_checks.h, + trunk/fuse/z80/z80_ops.c, trunk/libspectrum/libspectrum.h, + trunk/libspectrum/libspectrum/ChangeLog, + trunk/libspectrum/libspectrum/Makefile.am, + trunk/libspectrum/libspectrum/configure.in, + trunk/libspectrum/libspectrum/csw.c, + trunk/libspectrum/libspectrum/doc/libspectrum.txt, + trunk/libspectrum/libspectrum/generate.pl.in, + trunk/libspectrum/libspectrum/hacking/ChangeLog, + trunk/libspectrum/libspectrum/libspectrum.c, + trunk/libspectrum/libspectrum/libspectrum.h.in, + trunk/libspectrum/libspectrum/plusd.c, + trunk/libspectrum/libspectrum/rzx.c, + trunk/libspectrum/libspectrum/sna.c, + trunk/libspectrum/libspectrum/szx.c, + trunk/libspectrum/libspectrum/tape.c, + trunk/libspectrum/libspectrum/test/Makefile.am, + trunk/libspectrum/libspectrum/test/complete-tzx.pl, + trunk/libspectrum/libspectrum/test/edges.c, + trunk/libspectrum/libspectrum/test/invalid-warajevo-blockoffset.tap, + trunk/libspectrum/libspectrum/test/jump.tzx, + trunk/libspectrum/libspectrum/test/loop2.tzx, + trunk/libspectrum/libspectrum/test/test.c, + trunk/libspectrum/libspectrum/test/test.h, + trunk/libspectrum/libspectrum/test/test15.c, + trunk/libspectrum/libspectrum/timings.c, + trunk/libspectrum/libspectrum/z80.c: Merge up to vendor r3254. + +2007-11-09 23:10 fredm + + * trunk/FuseImporter/FuseImporter.xcodeproj/project.pbxproj, + trunk/audiofile/audiofile.xcodeproj/project.pbxproj, trunk/bzip2, + trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj, + trunk/lib765/lib765.xcodeproj/project.pbxproj, + trunk/libgcrypt/libgcrypt.xcodeproj/project.pbxproj, + trunk/libspectrum/libspectrum.xcodeproj/project.pbxproj: Move to + XCode 2.5 and 10.4 target for all frameworks. Link to libbz2 in + /usr/lib instead of framework. + +2007-11-09 22:38 fredm + + * trunk/fuse/TODO: Update for last few changes. + +2007-08-15 23:23 fredm + + * trunk/fuse/fusepb/nibs/MainMenu.nib/info.nib, + trunk/fuse/fusepb/nibs/MainMenu.nib/keyedobjects.nib: Disable + Tape->Record menu item when tape traps are enabled. + +2007-08-14 14:04 fredm + + * trunk/fuse/fusepb/nibs/Preferences.nib/keyedobjects.nib, + trunk/fuse/fusepb/views/DisplayOpenGLView.h, + trunk/fuse/fusepb/views/DisplayOpenGLView.m, + trunk/fuse/settings.dat: Refactor display link starting and + stopping and try to only stop and start the display link at + appropriate times, add support for panoramic fullscreen mode. + +2007-08-12 05:49 fredm + + * trunk/fuse/fusepb/controllers/PreferencesController.m, + trunk/fuse/fusepb/nibs/Preferences.nib/keyedobjects.nib, + trunk/fuse/fusepb/views/DisplayOpenGLView.h, + trunk/fuse/fusepb/views/DisplayOpenGLView.m, + trunk/fuse/settings.dat, trunk/fuse/ui/cocoa/cocoadisplay.m: + Rollback revision 434 now we understand what was causing the + texture distortion. + +2007-08-12 00:30 fredm + + * trunk/fuse/fusepb/views/DisplayOpenGLView.m: Use correct offset + for emulator top right texture. + +2007-08-06 02:39 fredm + + * trunk/lib765/lib765/config.h, trunk/lib765/libdsk/config.h: Bump + version numbers in config.h headers. + +2007-08-06 02:24 fredm + + * trunk/fuse/Makefile.am, trunk/fuse/compat.h, + trunk/fuse/compat/Makefile.am, trunk/fuse/compat/amiga, + trunk/fuse/compat/amiga/Makefile.am, + trunk/fuse/compat/amiga/paths.c, trunk/fuse/compat/dirname.c, + trunk/fuse/compat/getopt.c, trunk/fuse/compat/getopt1.c, + trunk/fuse/compat/mkstemp.c, trunk/fuse/compat/morphos, + trunk/fuse/compat/morphos/Makefile.am, + trunk/fuse/compat/morphos/osname.c, trunk/fuse/compat/unix, + trunk/fuse/compat/unix/Makefile.am, + trunk/fuse/compat/unix/osname.c, trunk/fuse/compat/unix/paths.c, + trunk/fuse/compat/win32, trunk/fuse/compat/win32/Makefile.am, + trunk/fuse/compat/win32/osname.c, + trunk/fuse/compat/win32/paths.c, trunk/fuse/configure.in, + trunk/fuse/event.c, trunk/fuse/fuse.cpp, + trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj, + trunk/fuse/fusepb/Info-Fuse.plist, trunk/fuse/fusepb/config.h, + trunk/fuse/hacking/ChangeLog, trunk/fuse/machines/tc2048.c, + trunk/fuse/menu_data.pl, trunk/fuse/printer.c, trunk/fuse/rzx.c, + trunk/fuse/settings.pl, trunk/fuse/sound.c, + trunk/fuse/sound/Makefile.am, trunk/fuse/sound/alsasound.c, + trunk/fuse/sound/aosound.c, trunk/fuse/sound/coreaudiosound.c, + trunk/fuse/sound/dxsound.c, trunk/fuse/sound/hpsound.c, + trunk/fuse/sound/lowlevel.h, trunk/fuse/sound/nullsound.c, + trunk/fuse/sound/osssound.c, trunk/fuse/sound/sdlsound.c, + trunk/fuse/sound/sfifo.c, trunk/fuse/sound/sunsound.c, + trunk/fuse/spectrum.c, trunk/fuse/tape.c, trunk/fuse/tape.h, + trunk/fuse/timer, trunk/fuse/timer.c, trunk/fuse/timer.h, + trunk/fuse/timer/Makefile.am, trunk/fuse/timer/sdl.c, + trunk/fuse/timer/timer.c, trunk/fuse/timer/timer.h, + trunk/fuse/timer/unix.c, trunk/fuse/timer/win32.c, + trunk/fuse/trdos.c, trunk/fuse/ui/gtk/debugger.c, + trunk/fuse/ui/gtk/gtkjoystick.c, trunk/fuse/ui/gtk/gtkmouse.c, + trunk/fuse/ui/gtk/gtkui.c, trunk/fuse/ui/gtk/pokefinder.c, + trunk/fuse/ui/gtk/stock.c, trunk/fuse/ula.c, trunk/fuse/utils.c, + trunk/fuse/widget/widget.c, trunk/fuse/z80/coretest.c: Merge up + to vendor revision 3095. + +2007-08-06 01:11 fredm + + * trunk/lib765/Info.plist, trunk/lib765/config.h, + trunk/lib765/lib765.xcodeproj/project.pbxproj, + trunk/lib765/lib765/ChangeLog, trunk/lib765/lib765/configure, + trunk/lib765/lib765/configure.in, + trunk/lib765/lib765/lib/765ldsk.c, + trunk/lib765/lib765/lib/Makefile.am, + trunk/lib765/lib765/lib/Makefile.in, + trunk/lib765/libdsk/ChangeLog, trunk/lib765/libdsk/configure, + trunk/lib765/libdsk/configure.in, + trunk/lib765/libdsk/doc/libdsk.lyx, + trunk/lib765/libdsk/doc/libdsk.pdf, + trunk/lib765/libdsk/doc/libdsk.txt, + trunk/lib765/libdsk/dos16ppd/Makefile, + trunk/lib765/libdsk/dos32gcc/Makefile, + trunk/lib765/libdsk/include/libdsk.h, + trunk/lib765/libdsk/lib/Makefile.am, + trunk/lib765/libdsk/lib/Makefile.in, + trunk/lib765/libdsk/lib/drivers.h, + trunk/lib765/libdsk/lib/drivers.inc, + trunk/lib765/libdsk/lib/drvlogi.c, + trunk/lib765/libdsk/lib/drvlogi.h, + trunk/lib765/libdsk/lib/drvtele.c, + trunk/lib765/libdsk/lib/drvtele.h, + trunk/lib765/libdsk/lib/dsksgeom.c, + trunk/lib765/libdsk/man/apriboot.1, + trunk/lib765/libdsk/man/dskdump.1, + trunk/lib765/libdsk/man/dskform.1, + trunk/lib765/libdsk/man/dskid.1, + trunk/lib765/libdsk/man/dskscan.1, + trunk/lib765/libdsk/man/dsktrans.1, + trunk/lib765/libdsk/man/dskutil.1, + trunk/lib765/libdsk/man/md3serial.1, + trunk/lib765/libdsk/tools/dsktrans.c, + trunk/lib765/libdsk/win16bc5/libdsk.ide, + trunk/lib765/libdsk/win16vc1/LIBDSK16.MAK, + trunk/lib765/libdsk/win32bc5/libdsk.ide, + trunk/lib765/libdsk/win32vc6/atlibdsk.dsp, + trunk/lib765/libdsk/win32vc6/atlibdsk.h, + trunk/lib765/libdsk/win32vc6/atlibdsk_i.c, + trunk/lib765/libdsk/win32vc6/atlibdsk_p.c, + trunk/lib765/libdsk/win32vc6/libdsk.dsp: Merge up to vendor + libdsk-1.1.14 and lib765-0.4.1. + +2007-08-03 10:15 fredm + + * trunk/fuse/fusepb/controllers/FuseController.h, + trunk/fuse/fusepb/controllers/FuseController.m: Remove obsolete + key release methods. + +2007-07-28 12:44 fredm + + * trunk/fuse/fusepb/views/DisplayOpenGLView.m: Don't run the + display link when the emulator is paused or we don't have a + screen texture initialised. + +2007-07-28 03:39 fredm + + * trunk/fuse/ChangeLog, trunk/fuse/configure.in, + trunk/fuse/disk/Makefile.am, trunk/fuse/disk/plusd.c, + trunk/fuse/disk/plusd.h, trunk/fuse/disk/wd1770.c, + trunk/fuse/disk/wd1770.h, trunk/fuse/divide.c, + trunk/fuse/fusepb/English.lproj/InfoPlist.strings, + trunk/fuse/fusepb/Info-Fuse.plist, trunk/fuse/fusepb/config.h, + trunk/fuse/hacking/ChangeLog, trunk/fuse/if1.c, trunk/fuse/if2.c, + trunk/fuse/joystick.c, trunk/fuse/kempmouse.c, + trunk/fuse/keyboard.c, trunk/fuse/machines/specplus3.c, + trunk/fuse/memory.c, trunk/fuse/module.c, trunk/fuse/module.h, + trunk/fuse/periph.c, trunk/fuse/printer.c, trunk/fuse/scld.c, + trunk/fuse/simpleide.c, trunk/fuse/sound/alsasound.c, + trunk/fuse/sound/sfifo.c, trunk/fuse/tape.c, + trunk/fuse/ui/ggi/ggi_internals.h, + trunk/fuse/ui/ggi/ggidisplay.c, trunk/fuse/ui/ggi/ggikeyboard.c, + trunk/fuse/ui/ggi/ggiui.c, trunk/fuse/ui/gtk/browse.c, + trunk/fuse/ui/gtk/debugger.c, trunk/fuse/ui/gtk/gtkjoystick.c, + trunk/fuse/ui/gtk/gtkmouse.c, trunk/fuse/ui/gtk/gtkui.c, + trunk/fuse/ui/gtk/pokefinder.c, trunk/fuse/ui/gtk/rollback.c, + trunk/fuse/ui/win32/debugger.c, trunk/fuse/ui/win32/error.c, + trunk/fuse/ui/win32/icons/Makefile.am, + trunk/fuse/ui/win32/menu_data.c, trunk/fuse/ui/win32/menu_data.h, + trunk/fuse/ui/win32/menu_data.rc, + trunk/fuse/ui/win32/statusbar.c, + trunk/fuse/ui/win32/win32display.c, + trunk/fuse/ui/win32/win32display.h, + trunk/fuse/ui/win32/win32ui.c, trunk/fuse/utils.c, + trunk/fuse/utils.h, trunk/fuse/z80/Makefile.am, + trunk/fuse/z80/coretest.c, trunk/fuse/z80/harness.pl, + trunk/fuse/z80/tests/00.in, trunk/fuse/z80/tests/00.out, + trunk/fuse/z80/tests/01.in, trunk/fuse/z80/tests/01.out, + trunk/fuse/z80/tests/02.in, trunk/fuse/z80/tests/02.out, + trunk/fuse/z80/tests/03.in, trunk/fuse/z80/tests/03.out, + trunk/fuse/z80/tests/04.in, trunk/fuse/z80/tests/04.out, + trunk/fuse/z80/tests/05.in, trunk/fuse/z80/tests/05.out, + trunk/fuse/z80/tests/06.in, trunk/fuse/z80/tests/06.out, + trunk/fuse/z80/tests/07.in, trunk/fuse/z80/tests/07.out, + trunk/fuse/z80/tests/08.in, trunk/fuse/z80/tests/08.out, + trunk/fuse/z80/tests/09.in, trunk/fuse/z80/tests/09.out, + trunk/fuse/z80/tests/0a.in, trunk/fuse/z80/tests/0a.out, + trunk/fuse/z80/tests/0b.in, trunk/fuse/z80/tests/0b.out, + trunk/fuse/z80/tests/0c.in, trunk/fuse/z80/tests/0c.out, + trunk/fuse/z80/tests/0d.in, trunk/fuse/z80/tests/0d.out, + trunk/fuse/z80/tests/0e.in, trunk/fuse/z80/tests/0e.out, + trunk/fuse/z80/tests/0f.in, trunk/fuse/z80/tests/0f.out, + trunk/fuse/z80/tests/10.in, trunk/fuse/z80/tests/10.out, + trunk/fuse/z80/tests/11.in, trunk/fuse/z80/tests/11.out, + trunk/fuse/z80/tests/12.in, trunk/fuse/z80/tests/12.out, + trunk/fuse/z80/tests/13.in, trunk/fuse/z80/tests/13.out, + trunk/fuse/z80/tests/14.in, trunk/fuse/z80/tests/14.out, + trunk/fuse/z80/tests/15.in, trunk/fuse/z80/tests/15.out, + trunk/fuse/z80/tests/16.in, trunk/fuse/z80/tests/16.out, + trunk/fuse/z80/tests/17.in, trunk/fuse/z80/tests/17.out, + trunk/fuse/z80/tests/18.in, trunk/fuse/z80/tests/18.out, + trunk/fuse/z80/tests/19.in, trunk/fuse/z80/tests/19.out, + trunk/fuse/z80/tests/1a.in, trunk/fuse/z80/tests/1a.out, + trunk/fuse/z80/tests/1b.in, trunk/fuse/z80/tests/1b.out, + trunk/fuse/z80/tests/1c.in, trunk/fuse/z80/tests/1c.out, + trunk/fuse/z80/tests/1d.in, trunk/fuse/z80/tests/1d.out, + trunk/fuse/z80/tests/1e.in, trunk/fuse/z80/tests/1e.out, + trunk/fuse/z80/tests/1f.in, trunk/fuse/z80/tests/1f.out, + trunk/fuse/z80/tests/20_1.in, trunk/fuse/z80/tests/20_1.out, + trunk/fuse/z80/tests/20_2.in, trunk/fuse/z80/tests/20_2.out, + trunk/fuse/z80/tests/21.in, trunk/fuse/z80/tests/21.out, + trunk/fuse/z80/tests/22.in, trunk/fuse/z80/tests/22.out, + trunk/fuse/z80/tests/23.in, trunk/fuse/z80/tests/23.out, + trunk/fuse/z80/tests/24.in, trunk/fuse/z80/tests/24.out, + trunk/fuse/z80/tests/25.in, trunk/fuse/z80/tests/25.out, + trunk/fuse/z80/tests/26.in, trunk/fuse/z80/tests/26.out, + trunk/fuse/z80/tests/27.in, trunk/fuse/z80/tests/27.out, + trunk/fuse/z80/tests/27_1.in, trunk/fuse/z80/tests/27_1.out, + trunk/fuse/z80/tests/28_1.in, trunk/fuse/z80/tests/28_1.out, + trunk/fuse/z80/tests/28_2.in, trunk/fuse/z80/tests/28_2.out, + trunk/fuse/z80/tests/29.in, trunk/fuse/z80/tests/29.out, + trunk/fuse/z80/tests/2a.in, trunk/fuse/z80/tests/2a.out, + trunk/fuse/z80/tests/2b.in, trunk/fuse/z80/tests/2b.out, + trunk/fuse/z80/tests/2c.in, trunk/fuse/z80/tests/2c.out, + trunk/fuse/z80/tests/2d.in, trunk/fuse/z80/tests/2d.out, + trunk/fuse/z80/tests/2e.in, trunk/fuse/z80/tests/2e.out, + trunk/fuse/z80/tests/2f.in, trunk/fuse/z80/tests/2f.out, + trunk/fuse/z80/tests/30_1.in, trunk/fuse/z80/tests/30_1.out, + trunk/fuse/z80/tests/30_2.in, trunk/fuse/z80/tests/30_2.out, + trunk/fuse/z80/tests/31.in, trunk/fuse/z80/tests/31.out, + trunk/fuse/z80/tests/32.in, trunk/fuse/z80/tests/32.out, + trunk/fuse/z80/tests/33.in, trunk/fuse/z80/tests/33.out, + trunk/fuse/z80/tests/34.in, trunk/fuse/z80/tests/34.out, + trunk/fuse/z80/tests/35.in, trunk/fuse/z80/tests/35.out, + trunk/fuse/z80/tests/36.in, trunk/fuse/z80/tests/36.out, + trunk/fuse/z80/tests/37.in, trunk/fuse/z80/tests/37.out, + trunk/fuse/z80/tests/37_1.in, trunk/fuse/z80/tests/37_1.out, + trunk/fuse/z80/tests/37_2.in, trunk/fuse/z80/tests/37_2.out, + trunk/fuse/z80/tests/37_3.in, trunk/fuse/z80/tests/37_3.out, + trunk/fuse/z80/tests/38_1.in, trunk/fuse/z80/tests/38_1.out, + trunk/fuse/z80/tests/38_2.in, trunk/fuse/z80/tests/38_2.out, + trunk/fuse/z80/tests/39.in, trunk/fuse/z80/tests/39.out, + trunk/fuse/z80/tests/3a.in, trunk/fuse/z80/tests/3a.out, + trunk/fuse/z80/tests/3b.in, trunk/fuse/z80/tests/3b.out, + trunk/fuse/z80/tests/3c.in, trunk/fuse/z80/tests/3c.out, + trunk/fuse/z80/tests/3d.in, trunk/fuse/z80/tests/3d.out, + trunk/fuse/z80/tests/3e.in, trunk/fuse/z80/tests/3e.out, + trunk/fuse/z80/tests/3f.in, trunk/fuse/z80/tests/3f.out, + trunk/fuse/z80/tests/40.in, trunk/fuse/z80/tests/40.out, + trunk/fuse/z80/tests/41.in, trunk/fuse/z80/tests/41.out, + trunk/fuse/z80/tests/42.in, trunk/fuse/z80/tests/42.out, + trunk/fuse/z80/tests/43.in, trunk/fuse/z80/tests/43.out, + trunk/fuse/z80/tests/44.in, trunk/fuse/z80/tests/44.out, + trunk/fuse/z80/tests/45.in, trunk/fuse/z80/tests/45.out, + trunk/fuse/z80/tests/46.in, trunk/fuse/z80/tests/46.out, + trunk/fuse/z80/tests/47.in, trunk/fuse/z80/tests/47.out, + trunk/fuse/z80/tests/48.in, trunk/fuse/z80/tests/48.out, + trunk/fuse/z80/tests/49.in, trunk/fuse/z80/tests/49.out, + trunk/fuse/z80/tests/4a.in, trunk/fuse/z80/tests/4a.out, + trunk/fuse/z80/tests/4b.in, trunk/fuse/z80/tests/4b.out, + trunk/fuse/z80/tests/4c.in, trunk/fuse/z80/tests/4c.out, + trunk/fuse/z80/tests/4d.in, trunk/fuse/z80/tests/4d.out, + trunk/fuse/z80/tests/4e.in, trunk/fuse/z80/tests/4e.out, + trunk/fuse/z80/tests/4f.in, trunk/fuse/z80/tests/4f.out, + trunk/fuse/z80/tests/50.in, trunk/fuse/z80/tests/50.out, + trunk/fuse/z80/tests/51.in, trunk/fuse/z80/tests/51.out, + trunk/fuse/z80/tests/52.in, trunk/fuse/z80/tests/52.out, + trunk/fuse/z80/tests/53.in, trunk/fuse/z80/tests/53.out, + trunk/fuse/z80/tests/54.in, trunk/fuse/z80/tests/54.out, + trunk/fuse/z80/tests/55.in, trunk/fuse/z80/tests/55.out, + trunk/fuse/z80/tests/56.in, trunk/fuse/z80/tests/56.out, + trunk/fuse/z80/tests/57.in, trunk/fuse/z80/tests/57.out, + trunk/fuse/z80/tests/58.in, trunk/fuse/z80/tests/58.out, + trunk/fuse/z80/tests/59.in, trunk/fuse/z80/tests/59.out, + trunk/fuse/z80/tests/5a.in, trunk/fuse/z80/tests/5a.out, + trunk/fuse/z80/tests/5b.in, trunk/fuse/z80/tests/5b.out, + trunk/fuse/z80/tests/5c.in, trunk/fuse/z80/tests/5c.out, + trunk/fuse/z80/tests/5d.in, trunk/fuse/z80/tests/5d.out, + trunk/fuse/z80/tests/5e.in, trunk/fuse/z80/tests/5e.out, + trunk/fuse/z80/tests/5f.in, trunk/fuse/z80/tests/5f.out, + trunk/fuse/z80/tests/60.in, trunk/fuse/z80/tests/60.out, + trunk/fuse/z80/tests/61.in, trunk/fuse/z80/tests/61.out, + trunk/fuse/z80/tests/62.in, trunk/fuse/z80/tests/62.out, + trunk/fuse/z80/tests/63.in, trunk/fuse/z80/tests/63.out, + trunk/fuse/z80/tests/64.in, trunk/fuse/z80/tests/64.out, + trunk/fuse/z80/tests/65.in, trunk/fuse/z80/tests/65.out, + trunk/fuse/z80/tests/66.in, trunk/fuse/z80/tests/66.out, + trunk/fuse/z80/tests/67.in, trunk/fuse/z80/tests/67.out, + trunk/fuse/z80/tests/68.in, trunk/fuse/z80/tests/68.out, + trunk/fuse/z80/tests/69.in, trunk/fuse/z80/tests/69.out, + trunk/fuse/z80/tests/6a.in, trunk/fuse/z80/tests/6a.out, + trunk/fuse/z80/tests/6b.in, trunk/fuse/z80/tests/6b.out, + trunk/fuse/z80/tests/6c.in, trunk/fuse/z80/tests/6c.out, + trunk/fuse/z80/tests/6d.in, trunk/fuse/z80/tests/6d.out, + trunk/fuse/z80/tests/6e.in, trunk/fuse/z80/tests/6e.out, + trunk/fuse/z80/tests/6f.in, trunk/fuse/z80/tests/6f.out, + trunk/fuse/z80/tests/70.in, trunk/fuse/z80/tests/70.out, + trunk/fuse/z80/tests/71.in, trunk/fuse/z80/tests/71.out, + trunk/fuse/z80/tests/72.in, trunk/fuse/z80/tests/72.out, + trunk/fuse/z80/tests/73.in, trunk/fuse/z80/tests/73.out, + trunk/fuse/z80/tests/74.in, trunk/fuse/z80/tests/74.out, + trunk/fuse/z80/tests/75.in, trunk/fuse/z80/tests/75.out, + trunk/fuse/z80/tests/76.in, trunk/fuse/z80/tests/76.out, + trunk/fuse/z80/tests/77.in, trunk/fuse/z80/tests/77.out, + trunk/fuse/z80/tests/78.in, trunk/fuse/z80/tests/78.out, + trunk/fuse/z80/tests/79.in, trunk/fuse/z80/tests/79.out, + trunk/fuse/z80/tests/7a.in, trunk/fuse/z80/tests/7a.out, + trunk/fuse/z80/tests/7b.in, trunk/fuse/z80/tests/7b.out, + trunk/fuse/z80/tests/7c.in, trunk/fuse/z80/tests/7c.out, + trunk/fuse/z80/tests/7d.in, trunk/fuse/z80/tests/7d.out, + trunk/fuse/z80/tests/7e.in, trunk/fuse/z80/tests/7e.out, + trunk/fuse/z80/tests/7f.in, trunk/fuse/z80/tests/7f.out, + trunk/fuse/z80/tests/80.in, trunk/fuse/z80/tests/80.out, + trunk/fuse/z80/tests/81.in, trunk/fuse/z80/tests/81.out, + trunk/fuse/z80/tests/82.in, trunk/fuse/z80/tests/82.out, + trunk/fuse/z80/tests/83.in, trunk/fuse/z80/tests/83.out, + trunk/fuse/z80/tests/84.in, trunk/fuse/z80/tests/84.out, + trunk/fuse/z80/tests/85.in, trunk/fuse/z80/tests/85.out, + trunk/fuse/z80/tests/86.in, trunk/fuse/z80/tests/86.out, + trunk/fuse/z80/tests/87.in, trunk/fuse/z80/tests/87.out, + trunk/fuse/z80/tests/88.in, trunk/fuse/z80/tests/88.out, + trunk/fuse/z80/tests/89.in, trunk/fuse/z80/tests/89.out, + trunk/fuse/z80/tests/8a.in, trunk/fuse/z80/tests/8a.out, + trunk/fuse/z80/tests/8b.in, trunk/fuse/z80/tests/8b.out, + trunk/fuse/z80/tests/8c.in, trunk/fuse/z80/tests/8c.out, + trunk/fuse/z80/tests/8d.in, trunk/fuse/z80/tests/8d.out, + trunk/fuse/z80/tests/8e.in, trunk/fuse/z80/tests/8e.out, + trunk/fuse/z80/tests/8f.in, trunk/fuse/z80/tests/8f.out, + trunk/fuse/z80/tests/90.in, trunk/fuse/z80/tests/90.out, + trunk/fuse/z80/tests/91.in, trunk/fuse/z80/tests/91.out, + trunk/fuse/z80/tests/92.in, trunk/fuse/z80/tests/92.out, + trunk/fuse/z80/tests/93.in, trunk/fuse/z80/tests/93.out, + trunk/fuse/z80/tests/94.in, trunk/fuse/z80/tests/94.out, + trunk/fuse/z80/tests/95.in, trunk/fuse/z80/tests/95.out, + trunk/fuse/z80/tests/96.in, trunk/fuse/z80/tests/96.out, + trunk/fuse/z80/tests/97.in, trunk/fuse/z80/tests/97.out, + trunk/fuse/z80/tests/98.in, trunk/fuse/z80/tests/98.out, + trunk/fuse/z80/tests/99.in, trunk/fuse/z80/tests/99.out, + trunk/fuse/z80/tests/9a.in, trunk/fuse/z80/tests/9a.out, + trunk/fuse/z80/tests/9b.in, trunk/fuse/z80/tests/9b.out, + trunk/fuse/z80/tests/9c.in, trunk/fuse/z80/tests/9c.out, + trunk/fuse/z80/tests/9d.in, trunk/fuse/z80/tests/9d.out, + trunk/fuse/z80/tests/9e.in, trunk/fuse/z80/tests/9e.out, + trunk/fuse/z80/tests/9f.in, trunk/fuse/z80/tests/9f.out, + trunk/fuse/z80/tests/README, trunk/fuse/z80/tests/a0.in, + trunk/fuse/z80/tests/a0.out, trunk/fuse/z80/tests/a1.in, + trunk/fuse/z80/tests/a1.out, trunk/fuse/z80/tests/a2.in, + trunk/fuse/z80/tests/a2.out, trunk/fuse/z80/tests/a3.in, + trunk/fuse/z80/tests/a3.out, trunk/fuse/z80/tests/a4.in, + trunk/fuse/z80/tests/a4.out, trunk/fuse/z80/tests/a5.in, + trunk/fuse/z80/tests/a5.out, trunk/fuse/z80/tests/a6.in, + trunk/fuse/z80/tests/a6.out, trunk/fuse/z80/tests/a7.in, + trunk/fuse/z80/tests/a7.out, trunk/fuse/z80/tests/a8.in, + trunk/fuse/z80/tests/a8.out, trunk/fuse/z80/tests/a9.in, + trunk/fuse/z80/tests/a9.out, trunk/fuse/z80/tests/aa.in, + trunk/fuse/z80/tests/aa.out, trunk/fuse/z80/tests/ab.in, + trunk/fuse/z80/tests/ab.out, trunk/fuse/z80/tests/ac.in, + trunk/fuse/z80/tests/ac.out, trunk/fuse/z80/tests/ad.in, + trunk/fuse/z80/tests/ad.out, trunk/fuse/z80/tests/ae.in, + trunk/fuse/z80/tests/ae.out, trunk/fuse/z80/tests/af.in, + trunk/fuse/z80/tests/af.out, trunk/fuse/z80/tests/b0.in, + trunk/fuse/z80/tests/b0.out, trunk/fuse/z80/tests/b1.in, + trunk/fuse/z80/tests/b1.out, trunk/fuse/z80/tests/b2.in, + trunk/fuse/z80/tests/b2.out, trunk/fuse/z80/tests/b3.in, + trunk/fuse/z80/tests/b3.out, trunk/fuse/z80/tests/b4.in, + trunk/fuse/z80/tests/b4.out, trunk/fuse/z80/tests/b5.in, + trunk/fuse/z80/tests/b5.out, trunk/fuse/z80/tests/b6.in, + trunk/fuse/z80/tests/b6.out, trunk/fuse/z80/tests/b7.in, + trunk/fuse/z80/tests/b7.out, trunk/fuse/z80/tests/b8.in, + trunk/fuse/z80/tests/b8.out, trunk/fuse/z80/tests/b9.in, + trunk/fuse/z80/tests/b9.out, trunk/fuse/z80/tests/ba.in, + trunk/fuse/z80/tests/ba.out, trunk/fuse/z80/tests/bb.in, + trunk/fuse/z80/tests/bb.out, trunk/fuse/z80/tests/bc.in, + trunk/fuse/z80/tests/bc.out, trunk/fuse/z80/tests/bd.in, + trunk/fuse/z80/tests/bd.out, trunk/fuse/z80/tests/be.in, + trunk/fuse/z80/tests/be.out, trunk/fuse/z80/tests/bf.in, + trunk/fuse/z80/tests/bf.out, trunk/fuse/z80/tests/c0_1.in, + trunk/fuse/z80/tests/c0_1.out, trunk/fuse/z80/tests/c0_2.in, + trunk/fuse/z80/tests/c0_2.out, trunk/fuse/z80/tests/c1.in, + trunk/fuse/z80/tests/c1.out, trunk/fuse/z80/tests/c2_1.in, + trunk/fuse/z80/tests/c2_1.out, trunk/fuse/z80/tests/c2_2.in, + trunk/fuse/z80/tests/c2_2.out, trunk/fuse/z80/tests/c3.in, + trunk/fuse/z80/tests/c3.out, trunk/fuse/z80/tests/c4_1.in, + trunk/fuse/z80/tests/c4_1.out, trunk/fuse/z80/tests/c4_2.in, + trunk/fuse/z80/tests/c4_2.out, trunk/fuse/z80/tests/c5.in, + trunk/fuse/z80/tests/c5.out, trunk/fuse/z80/tests/c6.in, + trunk/fuse/z80/tests/c6.out, trunk/fuse/z80/tests/c7.in, + trunk/fuse/z80/tests/c7.out, trunk/fuse/z80/tests/c8_1.in, + trunk/fuse/z80/tests/c8_1.out, trunk/fuse/z80/tests/c8_2.in, + trunk/fuse/z80/tests/c8_2.out, trunk/fuse/z80/tests/c9.in, + trunk/fuse/z80/tests/c9.out, trunk/fuse/z80/tests/ca_1.in, + trunk/fuse/z80/tests/ca_1.out, trunk/fuse/z80/tests/ca_2.in, + trunk/fuse/z80/tests/ca_2.out, trunk/fuse/z80/tests/cb00.in, + trunk/fuse/z80/tests/cb00.out, trunk/fuse/z80/tests/cb01.in, + trunk/fuse/z80/tests/cb01.out, trunk/fuse/z80/tests/cb02.in, + trunk/fuse/z80/tests/cb02.out, trunk/fuse/z80/tests/cb03.in, + trunk/fuse/z80/tests/cb03.out, trunk/fuse/z80/tests/cb04.in, + trunk/fuse/z80/tests/cb04.out, trunk/fuse/z80/tests/cb05.in, + trunk/fuse/z80/tests/cb05.out, trunk/fuse/z80/tests/cb06.in, + trunk/fuse/z80/tests/cb06.out, trunk/fuse/z80/tests/cb07.in, + trunk/fuse/z80/tests/cb07.out, trunk/fuse/z80/tests/cb08.in, + trunk/fuse/z80/tests/cb08.out, trunk/fuse/z80/tests/cb09.in, + trunk/fuse/z80/tests/cb09.out, trunk/fuse/z80/tests/cb0a.in, + trunk/fuse/z80/tests/cb0a.out, trunk/fuse/z80/tests/cb0b.in, + trunk/fuse/z80/tests/cb0b.out, trunk/fuse/z80/tests/cb0c.in, + trunk/fuse/z80/tests/cb0c.out, trunk/fuse/z80/tests/cb0d.in, + trunk/fuse/z80/tests/cb0d.out, trunk/fuse/z80/tests/cb0e.in, + trunk/fuse/z80/tests/cb0e.out, trunk/fuse/z80/tests/cb0f.in, + trunk/fuse/z80/tests/cb0f.out, trunk/fuse/z80/tests/cb10.in, + trunk/fuse/z80/tests/cb10.out, trunk/fuse/z80/tests/cb11.in, + trunk/fuse/z80/tests/cb11.out, trunk/fuse/z80/tests/cb12.in, + trunk/fuse/z80/tests/cb12.out, trunk/fuse/z80/tests/cb13.in, + trunk/fuse/z80/tests/cb13.out, trunk/fuse/z80/tests/cb14.in, + trunk/fuse/z80/tests/cb14.out, trunk/fuse/z80/tests/cb15.in, + trunk/fuse/z80/tests/cb15.out, trunk/fuse/z80/tests/cb16.in, + trunk/fuse/z80/tests/cb16.out, trunk/fuse/z80/tests/cb17.in, + trunk/fuse/z80/tests/cb17.out, trunk/fuse/z80/tests/cb18.in, + trunk/fuse/z80/tests/cb18.out, trunk/fuse/z80/tests/cb19.in, + trunk/fuse/z80/tests/cb19.out, trunk/fuse/z80/tests/cb1a.in, + trunk/fuse/z80/tests/cb1a.out, trunk/fuse/z80/tests/cb1b.in, + trunk/fuse/z80/tests/cb1b.out, trunk/fuse/z80/tests/cb1c.in, + trunk/fuse/z80/tests/cb1c.out, trunk/fuse/z80/tests/cb1d.in, + trunk/fuse/z80/tests/cb1d.out, trunk/fuse/z80/tests/cb1e.in, + trunk/fuse/z80/tests/cb1e.out, trunk/fuse/z80/tests/cb1f.in, + trunk/fuse/z80/tests/cb1f.out, trunk/fuse/z80/tests/cb20.in, + trunk/fuse/z80/tests/cb20.out, trunk/fuse/z80/tests/cb21.in, + trunk/fuse/z80/tests/cb21.out, trunk/fuse/z80/tests/cb22.in, + trunk/fuse/z80/tests/cb22.out, trunk/fuse/z80/tests/cb23.in, + trunk/fuse/z80/tests/cb23.out, trunk/fuse/z80/tests/cb24.in, + trunk/fuse/z80/tests/cb24.out, trunk/fuse/z80/tests/cb25.in, + trunk/fuse/z80/tests/cb25.out, trunk/fuse/z80/tests/cb26.in, + trunk/fuse/z80/tests/cb26.out, trunk/fuse/z80/tests/cb27.in, + trunk/fuse/z80/tests/cb27.out, trunk/fuse/z80/tests/cb28.in, + trunk/fuse/z80/tests/cb28.out, trunk/fuse/z80/tests/cb29.in, + trunk/fuse/z80/tests/cb29.out, trunk/fuse/z80/tests/cb2a.in, + trunk/fuse/z80/tests/cb2a.out, trunk/fuse/z80/tests/cb2b.in, + trunk/fuse/z80/tests/cb2b.out, trunk/fuse/z80/tests/cb2c.in, + trunk/fuse/z80/tests/cb2c.out, trunk/fuse/z80/tests/cb2d.in, + trunk/fuse/z80/tests/cb2d.out, trunk/fuse/z80/tests/cb2e.in, + trunk/fuse/z80/tests/cb2e.out, trunk/fuse/z80/tests/cb2f.in, + trunk/fuse/z80/tests/cb2f.out, trunk/fuse/z80/tests/cb30.in, + trunk/fuse/z80/tests/cb30.out, trunk/fuse/z80/tests/cb31.in, + trunk/fuse/z80/tests/cb31.out, trunk/fuse/z80/tests/cb32.in, + trunk/fuse/z80/tests/cb32.out, trunk/fuse/z80/tests/cb33.in, + trunk/fuse/z80/tests/cb33.out, trunk/fuse/z80/tests/cb34.in, + trunk/fuse/z80/tests/cb34.out, trunk/fuse/z80/tests/cb35.in, + trunk/fuse/z80/tests/cb35.out, trunk/fuse/z80/tests/cb36.in, + trunk/fuse/z80/tests/cb36.out, trunk/fuse/z80/tests/cb37.in, + trunk/fuse/z80/tests/cb37.out, trunk/fuse/z80/tests/cb38.in, + trunk/fuse/z80/tests/cb38.out, trunk/fuse/z80/tests/cb39.in, + trunk/fuse/z80/tests/cb39.out, trunk/fuse/z80/tests/cb3a.in, + trunk/fuse/z80/tests/cb3a.out, trunk/fuse/z80/tests/cb3b.in, + trunk/fuse/z80/tests/cb3b.out, trunk/fuse/z80/tests/cb3c.in, + trunk/fuse/z80/tests/cb3c.out, trunk/fuse/z80/tests/cb3d.in, + trunk/fuse/z80/tests/cb3d.out, trunk/fuse/z80/tests/cb3e.in, + trunk/fuse/z80/tests/cb3e.out, trunk/fuse/z80/tests/cb3f.in, + trunk/fuse/z80/tests/cb3f.out, trunk/fuse/z80/tests/cb40.in, + trunk/fuse/z80/tests/cb40.out, trunk/fuse/z80/tests/cb41.in, + trunk/fuse/z80/tests/cb41.out, trunk/fuse/z80/tests/cb42.in, + trunk/fuse/z80/tests/cb42.out, trunk/fuse/z80/tests/cb43.in, + trunk/fuse/z80/tests/cb43.out, trunk/fuse/z80/tests/cb44.in, + trunk/fuse/z80/tests/cb44.out, trunk/fuse/z80/tests/cb45.in, + trunk/fuse/z80/tests/cb45.out, trunk/fuse/z80/tests/cb46.in, + trunk/fuse/z80/tests/cb46.out, trunk/fuse/z80/tests/cb47.in, + trunk/fuse/z80/tests/cb47.out, trunk/fuse/z80/tests/cb47_1.in, + trunk/fuse/z80/tests/cb47_1.out, trunk/fuse/z80/tests/cb48.in, + trunk/fuse/z80/tests/cb48.out, trunk/fuse/z80/tests/cb49.in, + trunk/fuse/z80/tests/cb49.out, trunk/fuse/z80/tests/cb4a.in, + trunk/fuse/z80/tests/cb4a.out, trunk/fuse/z80/tests/cb4b.in, + trunk/fuse/z80/tests/cb4b.out, trunk/fuse/z80/tests/cb4c.in, + trunk/fuse/z80/tests/cb4c.out, trunk/fuse/z80/tests/cb4d.in, + trunk/fuse/z80/tests/cb4d.out, trunk/fuse/z80/tests/cb4e.in, + trunk/fuse/z80/tests/cb4e.out, trunk/fuse/z80/tests/cb4f.in, + trunk/fuse/z80/tests/cb4f.out, trunk/fuse/z80/tests/cb4f_1.in, + trunk/fuse/z80/tests/cb4f_1.out, trunk/fuse/z80/tests/cb50.in, + trunk/fuse/z80/tests/cb50.out, trunk/fuse/z80/tests/cb51.in, + trunk/fuse/z80/tests/cb51.out, trunk/fuse/z80/tests/cb52.in, + trunk/fuse/z80/tests/cb52.out, trunk/fuse/z80/tests/cb53.in, + trunk/fuse/z80/tests/cb53.out, trunk/fuse/z80/tests/cb54.in, + trunk/fuse/z80/tests/cb54.out, trunk/fuse/z80/tests/cb55.in, + trunk/fuse/z80/tests/cb55.out, trunk/fuse/z80/tests/cb56.in, + trunk/fuse/z80/tests/cb56.out, trunk/fuse/z80/tests/cb57.in, + trunk/fuse/z80/tests/cb57.out, trunk/fuse/z80/tests/cb57_1.in, + trunk/fuse/z80/tests/cb57_1.out, trunk/fuse/z80/tests/cb58.in, + trunk/fuse/z80/tests/cb58.out, trunk/fuse/z80/tests/cb59.in, + trunk/fuse/z80/tests/cb59.out, trunk/fuse/z80/tests/cb5a.in, + trunk/fuse/z80/tests/cb5a.out, trunk/fuse/z80/tests/cb5b.in, + trunk/fuse/z80/tests/cb5b.out, trunk/fuse/z80/tests/cb5c.in, + trunk/fuse/z80/tests/cb5c.out, trunk/fuse/z80/tests/cb5d.in, + trunk/fuse/z80/tests/cb5d.out, trunk/fuse/z80/tests/cb5e.in, + trunk/fuse/z80/tests/cb5e.out, trunk/fuse/z80/tests/cb5f.in, + trunk/fuse/z80/tests/cb5f.out, trunk/fuse/z80/tests/cb5f_1.in, + trunk/fuse/z80/tests/cb5f_1.out, trunk/fuse/z80/tests/cb60.in, + trunk/fuse/z80/tests/cb60.out, trunk/fuse/z80/tests/cb61.in, + trunk/fuse/z80/tests/cb61.out, trunk/fuse/z80/tests/cb62.in, + trunk/fuse/z80/tests/cb62.out, trunk/fuse/z80/tests/cb63.in, + trunk/fuse/z80/tests/cb63.out, trunk/fuse/z80/tests/cb64.in, + trunk/fuse/z80/tests/cb64.out, trunk/fuse/z80/tests/cb65.in, + trunk/fuse/z80/tests/cb65.out, trunk/fuse/z80/tests/cb66.in, + trunk/fuse/z80/tests/cb66.out, trunk/fuse/z80/tests/cb67.in, + trunk/fuse/z80/tests/cb67.out, trunk/fuse/z80/tests/cb67_1.in, + trunk/fuse/z80/tests/cb67_1.out, trunk/fuse/z80/tests/cb68.in, + trunk/fuse/z80/tests/cb68.out, trunk/fuse/z80/tests/cb69.in, + trunk/fuse/z80/tests/cb69.out, trunk/fuse/z80/tests/cb6a.in, + trunk/fuse/z80/tests/cb6a.out, trunk/fuse/z80/tests/cb6b.in, + trunk/fuse/z80/tests/cb6b.out, trunk/fuse/z80/tests/cb6c.in, + trunk/fuse/z80/tests/cb6c.out, trunk/fuse/z80/tests/cb6d.in, + trunk/fuse/z80/tests/cb6d.out, trunk/fuse/z80/tests/cb6e.in, + trunk/fuse/z80/tests/cb6e.out, trunk/fuse/z80/tests/cb6f.in, + trunk/fuse/z80/tests/cb6f.out, trunk/fuse/z80/tests/cb6f_1.in, + trunk/fuse/z80/tests/cb6f_1.out, trunk/fuse/z80/tests/cb70.in, + trunk/fuse/z80/tests/cb70.out, trunk/fuse/z80/tests/cb71.in, + trunk/fuse/z80/tests/cb71.out, trunk/fuse/z80/tests/cb72.in, + trunk/fuse/z80/tests/cb72.out, trunk/fuse/z80/tests/cb73.in, + trunk/fuse/z80/tests/cb73.out, trunk/fuse/z80/tests/cb74.in, + trunk/fuse/z80/tests/cb74.out, trunk/fuse/z80/tests/cb75.in, + trunk/fuse/z80/tests/cb75.out, trunk/fuse/z80/tests/cb76.in, + trunk/fuse/z80/tests/cb76.out, trunk/fuse/z80/tests/cb77.in, + trunk/fuse/z80/tests/cb77.out, trunk/fuse/z80/tests/cb77_1.in, + trunk/fuse/z80/tests/cb77_1.out, trunk/fuse/z80/tests/cb78.in, + trunk/fuse/z80/tests/cb78.out, trunk/fuse/z80/tests/cb79.in, + trunk/fuse/z80/tests... [truncated message content] |
From: <fr...@us...> - 2008-04-29 13:04:40
|
Revision: 523 http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=523&view=rev Author: fredm Date: 2008-04-29 06:04:41 -0700 (Tue, 29 Apr 2008) Log Message: ----------- Create Release-0_9_0_2 tag. Added Paths: ----------- tags/Release-0_9_0_2/ Copied: tags/Release-0_9_0_2 (from rev 522, trunk) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2008-04-29 12:59:14
|
Revision: 522 http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=522&view=rev Author: fredm Date: 2008-04-29 05:59:03 -0700 (Tue, 29 Apr 2008) Log Message: ----------- Bump version to 0.9.0.2. Modified Paths: -------------- trunk/fuse/fusepb/English.lproj/InfoPlist.strings Modified: trunk/fuse/fusepb/English.lproj/InfoPlist.strings =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2008-04-29 12:44:31
|
Revision: 521 http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=521&view=rev Author: fredm Date: 2008-04-29 05:44:33 -0700 (Tue, 29 Apr 2008) Log Message: ----------- Fix betaFileTypes declaration. Modified Paths: -------------- trunk/fuse/fusepb/controllers/FuseController.m Modified: trunk/fuse/fusepb/controllers/FuseController.m =================================================================== --- trunk/fuse/fusepb/controllers/FuseController.m 2008-04-29 12:24:00 UTC (rev 520) +++ trunk/fuse/fusepb/controllers/FuseController.m 2008-04-29 12:44:33 UTC (rev 521) @@ -204,7 +204,7 @@ [plus3FileTypes retain]; betaFileTypes = [NSMutableArray arrayWithObjects:@"trd", @"TRD", @"scl", - @"SCL", @"udi", @"UDI", @"fdi", "@FDI", nil]; + @"SCL", @"udi", @"UDI", @"fdi", @"FDI", nil]; [betaFileTypes retain]; plusdFileTypes = [NSMutableArray arrayWithObjects:@"dsk", @"DSK", @"mgt", This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2008-04-29 12:23:54
|
Revision: 520 http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=520&view=rev Author: fredm Date: 2008-04-29 05:24:00 -0700 (Tue, 29 Apr 2008) Log Message: ----------- Add UI support for .udi, .fdi and .scl files for Beta disk images. Modified Paths: -------------- trunk/fuse/TODO trunk/fuse/fusepb/controllers/FuseController.m trunk/fuse/fusepb/resources/Fuse Help/html/changelog.html Modified: trunk/fuse/TODO =================================================================== --- trunk/fuse/TODO 2008-04-28 13:55:35 UTC (rev 519) +++ trunk/fuse/TODO 2008-04-29 12:24:00 UTC (rev 520) @@ -2,9 +2,11 @@ * Pentagon port #ff returning floating bus issues - it does it because the RusFAQ says so? * Timex 2068 fusetests -* Other disk write formats +* Add TITLE tags to help files * Console mode GUI -* SZX ZX Printer block +* C version of standard tape loader +* Add "proper" preferences window +* SZX ZX Printer block? * PAL Compsite emulation * Seperate out sound buffer interleaving code to allow for the use of hardware etc. sound mixing Modified: trunk/fuse/fusepb/controllers/FuseController.m =================================================================== --- trunk/fuse/fusepb/controllers/FuseController.m 2008-04-28 13:55:35 UTC (rev 519) +++ trunk/fuse/fusepb/controllers/FuseController.m 2008-04-29 12:24:00 UTC (rev 520) @@ -204,7 +204,7 @@ [plus3FileTypes retain]; betaFileTypes = [NSMutableArray arrayWithObjects:@"trd", @"TRD", @"scl", - @"SCL", nil]; + @"SCL", @"udi", @"UDI", @"fdi", "@FDI", nil]; [betaFileTypes retain]; plusdFileTypes = [NSMutableArray arrayWithObjects:@"dsk", @"DSK", @"mgt", @@ -1756,7 +1756,10 @@ [[DisplayOpenGLView instance] pause]; NSString *title = [NSString stringWithFormat:@"Write Beta Disk %c: As", drive]; - filename = cocoaui_savepanel_get_filename( title, [NSArray arrayWithObjects:@"trd", nil] ); + filename = + cocoaui_savepanel_get_filename( title, + [NSArray arrayWithObjects:@"trd", @"scl", + @"udi", @"fdi", nil] ); if( !filename ) { [[DisplayOpenGLView instance] unpause]; return 1; } @@ -1785,8 +1788,10 @@ [[DisplayOpenGLView instance] pause]; NSString *title = [NSString stringWithFormat:@"Write +D Disk %c: As", drive]; - filename = cocoaui_savepanel_get_filename( title, - [NSArray arrayWithObjects:@"mgt", @"img", nil] ); + filename = + cocoaui_savepanel_get_filename( title, + [NSArray arrayWithObjects:@"mgt", @"img", + nil] ); if( !filename ) { [[DisplayOpenGLView instance] unpause]; return 1; } Modified: trunk/fuse/fusepb/resources/Fuse Help/html/changelog.html =================================================================== --- trunk/fuse/fusepb/resources/Fuse Help/html/changelog.html 2008-04-28 13:55:35 UTC (rev 519) +++ trunk/fuse/fusepb/resources/Fuse Help/html/changelog.html 2008-04-29 12:24:00 UTC (rev 520) @@ -30,6 +30,14 @@ </font><font face="Lucida Grande,Helvetica,Arial">graphics mode in SpotLight importer (Fredrick Meunier)</font><font face="Lucida Grande,Helvetica,Arial">.</font></li> + <li><font face="Lucida Grande,Helvetica,Arial">Add UI support for +.udi and .fdi files to +be opened as Beta disk images</font><font + face="Lucida Grande,Helvetica,Arial"> (Fredrick Meunier).</font></li> + <li><font face="Lucida Grande,Helvetica,Arial">Add UI support for </font><font + face="Lucida Grande,Helvetica,Arial">.udi, .fdi and .scl files to +be saved as Beta disk images</font><font + face="Lucida Grande,Helvetica,Arial"> (Fredrick Meunier).</font></li> </ul> </ul> <h2><font face="Lucida Grande,Helvetica,Arial">What's new in Fuse This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2008-04-28 13:55:29
|
Revision: 519 http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=519&view=rev Author: fredm Date: 2008-04-28 06:55:35 -0700 (Mon, 28 Apr 2008) Log Message: ----------- Generate previews for all docs, not just screenshots. Modified Paths: -------------- trunk/FuseGenerator/GeneratePreviewForURL.m Modified: trunk/FuseGenerator/GeneratePreviewForURL.m =================================================================== --- trunk/FuseGenerator/GeneratePreviewForURL.m 2008-04-28 13:21:50 UTC (rev 518) +++ trunk/FuseGenerator/GeneratePreviewForURL.m 2008-04-28 13:55:35 UTC (rev 519) @@ -44,31 +44,29 @@ speccyFile = [[[LibspectrumSCRExtractor alloc] initWithContentsOfURL:(NSURL*)url] autorelease]; - if( [speccyFile scrData] && [speccyFile class] == LIBSPECTRUM_CLASS_SCREENSHOT ) { - JWSpectrumScreen* screen = [[[JWSpectrumScreen alloc] initFromData:[speccyFile scrData]] autorelease]; - NSBitmapImageRep* imageRep = [[screen imageRep] retain]; - NSSize canvasSize = [screen canvasSize]; - - CGContextRef cgContext = QLPreviewRequestCreateContext(preview, *(CGSize *)&canvasSize, false, NULL); - if(cgContext) { - NSGraphicsContext* context = [NSGraphicsContext graphicsContextWithGraphicsPort:(void*)cgContext flipped:YES]; - if(context) { - [NSGraphicsContext saveGraphicsState]; - [NSGraphicsContext setCurrentContext:context]; - - // Now we're ready to draw using Cocoa. - NSImage* image = [[[NSImage alloc] initWithSize:canvasSize] autorelease]; - [image addRepresentation:imageRep]; - NSRect imageRect = NSMakeRect(0.0, 0.0, canvasSize.width, canvasSize.height); - [image drawAtPoint:NSMakePoint(0.0, 0.0) - fromRect:imageRect - operation:NSCompositeSourceOver - fraction:1.0]; - [NSGraphicsContext restoreGraphicsState]; - } - QLPreviewRequestFlushContext(preview, cgContext); - CFRelease(cgContext); - } + JWSpectrumScreen* screen = [[[JWSpectrumScreen alloc] initFromData:[speccyFile scrData]] autorelease]; + NSBitmapImageRep* imageRep = [[screen imageRep] retain]; + NSSize canvasSize = [screen canvasSize]; + + CGContextRef cgContext = QLPreviewRequestCreateContext(preview, *(CGSize *)&canvasSize, false, NULL); + if(cgContext) { + NSGraphicsContext* context = [NSGraphicsContext graphicsContextWithGraphicsPort:(void*)cgContext flipped:YES]; + if(context) { + [NSGraphicsContext saveGraphicsState]; + [NSGraphicsContext setCurrentContext:context]; + + // Now we're ready to draw using Cocoa. + NSImage* image = [[[NSImage alloc] initWithSize:canvasSize] autorelease]; + [image addRepresentation:imageRep]; + NSRect imageRect = NSMakeRect(0.0, 0.0, canvasSize.width, canvasSize.height); + [image drawAtPoint:NSMakePoint(0.0, 0.0) + fromRect:imageRect + operation:NSCompositeSourceOver + fraction:1.0]; + [NSGraphicsContext restoreGraphicsState]; + } + QLPreviewRequestFlushContext(preview, cgContext); + CFRelease(cgContext); } [pool release]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2008-04-28 13:21:53
|
Revision: 518 http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=518&view=rev Author: fredm Date: 2008-04-28 06:21:50 -0700 (Mon, 28 Apr 2008) Log Message: ----------- Remove obsolete files. Removed Paths: ------------- trunk/FuseImporter/COPYING trunk/FuseImporter/Howto build.rtf trunk/FuseImporter/README.rtf Deleted: trunk/FuseImporter/COPYING =================================================================== --- trunk/FuseImporter/COPYING 2008-04-28 13:15:55 UTC (rev 517) +++ trunk/FuseImporter/COPYING 2008-04-28 13:21:50 UTC (rev 518) @@ -1,340 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - <one line to give the program's name and a brief idea of what it does.> - Copyright (C) 19yy <name of author> - - 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) 19yy name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - <signature of Ty Coon>, 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. Deleted: trunk/FuseImporter/Howto build.rtf =================================================================== --- trunk/FuseImporter/Howto build.rtf 2008-04-28 13:15:55 UTC (rev 517) +++ trunk/FuseImporter/Howto build.rtf 2008-04-28 13:21:50 UTC (rev 518) @@ -1,23 +0,0 @@ -{\rtf1\mac\ansicpg10000\cocoartf824 -{\fonttbl\f0\fswiss\fcharset77 Helvetica-Bold;\f1\fswiss\fcharset77 Helvetica;\f2\fmodern\fcharset109 Courier; -} -{\colortbl;\red255\green255\blue255;} -\margl1440\margr1440\vieww9000\viewh8400\viewkind0 -\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural - -\f0\b\fs26 \cf0 Fuse Spotlight Importer how to build -\f1\b0\fs24 \ -\ -You will need to have the BSD subsystem and Xcode 2.0 installed. Compilation proceeds in two steps, first building the libspectrum library that the importer uses to handle emulator-related files, and second building the importer itself in Xcode.\ -\ -1) At the terminal, enter the libspectrum-0.2.2 directory and configure libspectrum for use on Mac OS X:\ - -\f2 \uc0\u36 \u32 \u46 \u47 \u99 \u111 \u110 \u102 \u105 \u103 \u117 \u114 \u101 \u32 \u45 \u45 \u119 \u105 \u116 \u104 \u111 \u117 \u116 \u45 \u103 \u108 \u105 \u98 \u32 \u45 \u45 \u101 \u110 \u97 \u98 \u108 \u101 \u45 \u115 \u116 \u97 \u116 \u105 \u99 \u32 \u45 \u45 \u100 \u105 \u115 \u97 \u98 \u108 \u101 \u45 \u115 \u104 \u97 \u114 \u101 \u100 \u32 \u45 \u45 \u112 \u114 \u101 \u102 \u105 \u120 \u61 \u96 \u112 \u119 \u100 \u96 \u47 \u46 \u46 \u47 \u108 \u115 -\f1 \ -\ -2) Build and install the library:\ - -\f2 \uc0\u36 \u32 \u109 \u97 \u107 \u101 \u32 \u38 \u38 \u32 \u109 \u97 \u107 \u101 \u32 \u105 \u110 \u115 \u116 \u97 \u108 \u108 -\f1 \ -\ -3) Now start Xcode and open FuseImporter.xcode, click build and you are done!} \ No newline at end of file Deleted: trunk/FuseImporter/README.rtf =================================================================== --- trunk/FuseImporter/README.rtf 2008-04-28 13:15:55 UTC (rev 517) +++ trunk/FuseImporter/README.rtf 2008-04-28 13:21:50 UTC (rev 518) @@ -1,56 +0,0 @@ -{\rtf1\mac\ansicpg10000\cocoartf824 -{\fonttbl\f0\fswiss\fcharset77 Helvetica-Bold;\f1\fswiss\fcharset77 Helvetica;} -{\colortbl;\red255\green255\blue255;} -\margl1440\margr1440\vieww9160\viewh10900\viewkind0 -\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural - -\f0\b\fs28 \cf0 Fuse Spotlight Importer 1.0 for Mac OS X 10.4 Tiger -\f1\b0\fs24 \ -\ -The Fuse Spotlight importer allows Spotlight to find ZX Spectrum emulation related files based on metadata in the files. The metadata supported is:\ -\ - -\fs26 TZX Tape images: -\fs24 \ -Title, publishers, authors, year of release, languages, category, original price, loader, origin, comment, audio channel count, supported machines and peripherals.\ -\ - -\fs26 Snapshots (SZX, Z80, SNA, etc.) -\fs24 \ -Machine type, and status of the enabled joysticks (Kempston, Cursor, Sinclair, Timex and Fuller), ZXATASP and ZXCF IDE peripherals, and the Interface II and Timex dock cartridges.\ -\ - -\fs26 RZX Spectrum recordings -\fs24 \ -As snapshots above.\ -\ - -\fs26 SCR Screen dumps -\fs24 \ -Graphics mode, width, height, orientation, colour space\ -\ -\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural - -\f0\b\fs26 \cf0 Custom Metadata Attribute Details\ -\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural - -\f1\b0\fs24 \cf0 There are several Fuse-specific metadata attributes added by this importer, detailed below:\ -Category: type of software (arcade adventure, puzzle, word processor, ...)\ -Price: the original price the software sold for (includes currency)\ -Loader: protection scheme used in the title (Speedlock 1, Alkatraz, ...)\ -Origin: (Original, Budget re-release, ...)\ -Machine: (Spectrum 16K, 48K (Issue 1), 48K, 128K, +2, +2A, +3, SE, Timex TC2048, Timex TC2068, Timex TS2068, Scorpion ZS 256, Pentagon 128K\ -Peripherals: \ - Joysticks: Kempston, Cursor, Sinclair 1, Sinclair 2, Timex 1, Timex 2, Fuller\ -GraphicsMode: Standard, HiColour, HiRes\ -\ -\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural - -\f0\b\fs26 \cf0 Credits -\f1\b0\fs24 \ -The Fuse Spotlight importer was written by Fredrick Meunier <fr...@sp...> and uses the libspectrum ZX Spectrum emulator-related file formats handling library, by Philip Kendall and contributors.\ -\ -The Fuse Spotlight importer is made available under the GNU General Public License, which means that it 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 `COPYING' for the full license.\ -\ -Source code for the Fuse Importer is available where you downloaded this software or at <http://prdownloads.sourceforge.net/fuse-emulator/FuseImporter1.0\ -.tar.bz2?download>} \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2008-04-28 13:15:53
|
Revision: 517 http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=517&view=rev Author: fredm Date: 2008-04-28 06:15:55 -0700 (Mon, 28 Apr 2008) Log Message: ----------- Add Quick Look generator documentation, update index. Modified Paths: -------------- trunk/fuse/fusepb/resources/Fuse Help/Fuse Help idx 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/tocstart.html Added Paths: ----------- trunk/fuse/fusepb/resources/Fuse Help/html/quicklook.html Modified: trunk/fuse/fusepb/resources/Fuse Help/Fuse Help idx =================================================================== (Binary files differ) 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 2008-04-28 13:14:35 UTC (rev 516) +++ trunk/fuse/fusepb/resources/Fuse Help/html/changelog.html 2008-04-28 13:15:55 UTC (rev 517) @@ -14,6 +14,25 @@ name="What's New In Fuse?" id="What's New In Fuse?"></a><!-- AppleSegDescription="This section describes the changes for version 0.8.0 of the Fuse emulator." --></font> <div class="refsect1" xml:lang="en" lang="en"> <h2><font face="Lucida Grande,Helvetica,Arial">What's new in Fuse +For Mac OS X 0.9.0.2</font></h2> +<ul> + <li><font face="Lucida Grande,Helvetica,Arial">New features:</font></li> + <ul> + <li><font face="Lucida Grande,Helvetica,Arial">Add Quick Look +generator for emulator file formats</font><font + face="Lucida Grande,Helvetica,Arial"> +(Fredrick Meunier, James Weatherley)</font><font + face="Lucida Grande,Helvetica,Arial">.</font></li> + </ul> + <li><font face="Lucida Grande,Helvetica,Arial">Miscellaneous bugfixes:</font></li> + <ul> + <li><font face="Lucida Grande,Helvetica,Arial">Fix importing of SCR + </font><font face="Lucida Grande,Helvetica,Arial">graphics mode +in SpotLight importer +(Fredrick Meunier)</font><font face="Lucida Grande,Helvetica,Arial">.</font></li> + </ul> +</ul> +<h2><font face="Lucida Grande,Helvetica,Arial">What's new in Fuse For Mac OS X 0.9.0.1</font></h2> <ul> <li><font face="Lucida Grande,Helvetica,Arial">Miscellaneous bugfixes:</font></li> Added: trunk/fuse/fusepb/resources/Fuse Help/html/quicklook.html =================================================================== --- trunk/fuse/fusepb/resources/Fuse Help/html/quicklook.html (rev 0) +++ trunk/fuse/fusepb/resources/Fuse Help/html/quicklook.html 2008-04-28 13:15:55 UTC (rev 517) @@ -0,0 +1,41 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<!-- AppleSegStart="Quick Look Generator" --> +</head> +<body> +<font face="Lucida Grande,Helvetica,Arial"><a + name="Quick Look Generator"></a><!-- AppleSegDescription="This section describes Fuses support of the Quick Look feature of Mac OS X 10.5 and newer." --></font> +<h2><font face="Lucida Grande,Helvetica,Arial">Quick Look Generator</font></h2> +<p><font face="Lucida Grande,Helvetica,Arial">On Mac OS X 10.5 and +newer, the Fuse Quick Look generator allows viewing thumbnails and +previews of ZX Spectrum +emulation related files. The supported types are:<br> +</font></p> +<h3><font face="Lucida Grande,Helvetica,Arial">SCR Screen dumps</font></h3> +<font face="Lucida Grande,Helvetica,Arial">Preview and thumbnails for +SCR screen dumps in all graphics modes. This support supercedes the +Save Thumbnail Icons option in the preferences dialog.</font> +<h3><font face="Lucida Grande,Helvetica,Arial">Snapshots (SZX, Z80, +SNA, etc.)</font></h3> +<font face="Lucida Grande,Helvetica,Arial">The screen image embedded in +the snapshot is extracted and used as the thumbnail for the file. </font><font + face="Lucida Grande,Helvetica,Arial">This support supercedes the Save +Thumbnail Icons option in the preferences dialog. Advanced graphics +effects produced in some demo programs cannot be reproduced in this way +in the same way as SCR files. </font> +<h3><font face="Lucida Grande,Helvetica,Arial">RZX Spectrum recordings</font></h3> +<p><font face="Lucida Grande,Helvetica,Arial">The first embedded +snapshot in the file is extracted and used as the thumbnail for the +file in the same way as snapshots above.<br> +</font></p> +<h3><font face="Lucida Grande,Helvetica,Arial">Tape images (TAP and TZX)<br> +</font></h3> +<font face="Lucida Grande,Helvetica,Arial">The first Spectrum screen +file (</font><span style="font-family: monospace;">SCREEN$</span><font + face="Lucida Grande,Helvetica,Arial">) stored with the standard ROM +loader in the tape is +extracted and used as the thumbnail of the file in the same way as +snapshot files above.</font> +</body> +</html> Modified: trunk/fuse/fusepb/resources/Fuse Help/html/tocstart.html =================================================================== --- trunk/fuse/fusepb/resources/Fuse Help/html/tocstart.html 2008-04-28 13:14:35 UTC (rev 516) +++ trunk/fuse/fusepb/resources/Fuse Help/html/tocstart.html 2008-04-28 13:15:55 UTC (rev 517) @@ -81,8 +81,8 @@ </font><font face="Lucida Grande,Helvetica,Arial"> </font> </p> <p> <font face="Lucida Grande,Helvetica,Arial"> <a href="spotlight.html">Spotlight Importer</a> </font> </p> - <p><br> - </p> + <p><font face="Lucida Grande,Helvetica,Arial"><a + href="quicklook.html">Quick Look Generator</a></font> </p> </td> <td colspan="3"> <p><font face="Lucida Grande,Helvetica,Arial">Click a topic to This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2008-04-28 13:14:29
|
Revision: 516 http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=516&view=rev Author: fredm Date: 2008-04-28 06:14:35 -0700 (Mon, 28 Apr 2008) Log Message: ----------- Change thumbnail icon generation default to be off as it is superceded by Quick Look on Mac OS X 10.5 and up. Modified Paths: -------------- trunk/fuse/settings.dat Modified: trunk/fuse/settings.dat =================================================================== --- trunk/fuse/settings.dat 2008-04-28 11:32:30 UTC (rev 515) +++ trunk/fuse/settings.dat 2008-04-28 13:14:35 UTC (rev 516) @@ -63,7 +63,7 @@ pal_tv2x, boolean, 0 plusd, boolean, 0 beta128, boolean, 0 -thumbnails, boolean, 1 +thumbnails, boolean, 0 sound_device, string, NULL, 'd' sound, boolean, 1 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2008-04-28 11:32:30
|
Revision: 515 http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=515&view=rev Author: fredm Date: 2008-04-28 04:32:30 -0700 (Mon, 28 Apr 2008) Log Message: ----------- Bump version to 1.1, add references for img, mgt and raw file formats. Modified Paths: -------------- trunk/FuseImporter/English.lproj/InfoPlist.strings trunk/FuseImporter/Info.plist Modified: trunk/FuseImporter/English.lproj/InfoPlist.strings =================================================================== (Binary files differ) Modified: trunk/FuseImporter/Info.plist =================================================================== --- trunk/FuseImporter/Info.plist 2008-04-28 10:45:14 UTC (rev 514) +++ trunk/FuseImporter/Info.plist 2008-04-28 11:32:30 UTC (rev 515) @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>CFBundleDevelopmentRegion</key> @@ -21,10 +21,13 @@ <string>net.sourceforge.projects.fuse-emulator.dck</string> <string>net.sourceforge.projects.fuse-emulator.dsk</string> <string>net.sourceforge.projects.fuse-emulator.hdf</string> + <string>net.sourceforge.projects.fuse-emulator.img</string> <string>net.sourceforge.projects.fuse-emulator.ltp</string> + <string>net.sourceforge.projects.fuse-emulator.mdr</string> <string>net.sourceforge.projects.fuse-emulator.mgt</string> <string>net.sourceforge.projects.fuse-emulator.mgtsnp</string> <string>net.sourceforge.projects.fuse-emulator.rzx</string> + <string>net.sourceforge.projects.fuse-emulator.raw</string> <string>net.sourceforge.projects.fuse-emulator.scl</string> <string>net.sourceforge.projects.fuse-emulator.scr</string> <string>net.sourceforge.projects.fuse-emulator.slt</string> @@ -51,7 +54,7 @@ <key>CFBundleInfoDictionaryVersion</key> <string>6.0</string> <key>CFBundleVersion</key> - <string>1.0</string> + <string>1.1</string> <key>CFPlugInDynamicRegisterFunction</key> <string></string> <key>CFPlugInDynamicRegistration</key> @@ -517,6 +520,80 @@ </array> </dict> </dict> + <dict> + <key>UTTypeConformsTo</key> + <array> + <string>net.sourceforge.projects.fuse-emulator.MassStorage</string> + </array> + <key>UTTypeDescription</key> + <string>ZX Spectrum DISCiPLE/+D Disk Image</string> + <key>UTTypeIdentifier</key> + <string>net.sourceforge.projects.fuse-emulator.img</string> + <key>UTTypeReferenceURL</key> + <string>http://www.worldofspectrum.org/faq/reference/formats.htm</string> + <key>UTTypeTagSpecification</key> + <dict> + <key>public.filename-extension</key> + <array> + <string>img</string> + </array> + </dict> + </dict> + <dict> + <key>UTTypeConformsTo</key> + <array> + <string>net.sourceforge.projects.fuse-emulator.MassStorage</string> + </array> + <key>UTTypeDescription</key> + <string>ZX Spectrum Microdrive Cartridge Image</string> + <key>UTTypeIdentifier</key> + <string>net.sourceforge.projects.fuse-emulator.mdr</string> + <key>UTTypeReferenceURL</key> + <string>http://www.worldofspectrum.org/faq/reference/formats.htm</string> + <key>UTTypeTagSpecification</key> + <dict> + <key>public.filename-extension</key> + <array> + <string>mdr</string> + </array> + </dict> + </dict> + <dict> + <key>UTTypeConformsTo</key> + <array> + <string>net.sourceforge.projects.fuse-emulator.MassStorage</string> + </array> + <key>UTTypeDescription</key> + <string>ZX Spectrum DISCiPLE/+D Disk Image</string> + <key>UTTypeIdentifier</key> + <string>net.sourceforge.projects.fuse-emulator.img</string> + <key>UTTypeReferenceURL</key> + <string>http://www.worldofspectrum.org/faq/reference/formats.htm</string> + <key>UTTypeTagSpecification</key> + <dict> + <key>public.filename-extension</key> + <array> + <string>img</string> + </array> + </dict> + </dict> + <dict> + <key>CFBundleTypeExtensions</key> + <array> + <string>raw</string> + <string>RAW</string> + </array> + <key>CFBundleTypeIconFile</key> + <string>raw</string> + <key>CFBundleTypeName</key> + <string>ZX Spectrum Tape Image</string> + <key>CFBundleTypeRole</key> + <string>Viewer</string> + <key>LSItemContentTypes</key> + <array> + <string>net.sourceforge.projects.fuse-emulator.raw</string> + </array> + </dict> </array> </dict> </plist> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2008-04-28 10:45:07
|
Revision: 514 http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=514&view=rev Author: fredm Date: 2008-04-28 03:45:14 -0700 (Mon, 28 Apr 2008) Log Message: ----------- Update TODO list. Modified Paths: -------------- trunk/fuse/TODO Modified: trunk/fuse/TODO =================================================================== --- trunk/fuse/TODO 2008-04-28 10:42:04 UTC (rev 513) +++ trunk/fuse/TODO 2008-04-28 10:45:14 UTC (rev 514) @@ -1,12 +1,7 @@ TODO -* SZX and Pentagon issues -* Pentagon port #ff returning floating bus issues +* Pentagon port #ff returning floating bus issues - it does it because the RusFAQ says so? * Timex 2068 fusetests -* SZX mouse block -* SZX +3 block -* SZX DivIDE block -* FuseGenerator * Other disk write formats * Console mode GUI * SZX ZX Printer block @@ -22,5 +17,6 @@ * Allow Cmd-w to close as many windows as possible * Make border display optional * Make activity icons transparent +* SZX +3 block - seems to be redundant? $Id: TODO 2026 2004-03-02 13:38:08Z pak21 $ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2008-04-28 10:42:05
|
Revision: 513 http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=513&view=rev Author: fredm Date: 2008-04-28 03:42:04 -0700 (Mon, 28 Apr 2008) Log Message: ----------- Distribute QuickLook generator. Modified Paths: -------------- trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj Modified: trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj =================================================================== --- trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj 2008-04-28 10:17:23 UTC (rev 512) +++ trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj 2008-04-28 10:42:04 UTC (rev 513) @@ -7,6 +7,7 @@ objects = { /* Begin PBXBuildFile section */ + B604B21B0DC182BE00981CC7 /* FuseGenerator.qlgenerator in CopyFiles */ = {isa = PBXBuildFile; fileRef = B61EEB950D1A917D006FEA80 /* FuseGenerator.qlgenerator */; }; B615BFE80B4261E50082D535 /* HIDJoysticks.m in Sources */ = {isa = PBXBuildFile; fileRef = B615BFE60B4261E50082D535 /* HIDJoysticks.m */; }; B61F459309121DF100C8096C /* Fuse Help in CopyFiles */ = {isa = PBXBuildFile; fileRef = B6F905ED05CDA24300C2F10D /* Fuse Help */; }; B61F459409121DF100C8096C /* disk_plus3.szx in CopyFiles */ = {isa = PBXBuildFile; fileRef = B650C3F2076596C700DE7E81 /* disk_plus3.szx */; }; @@ -231,12 +232,13 @@ /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ - B61EEB380D1A8FCB006FEA80 /* CopyFiles */ = { + B604B2190DC1827200981CC7 /* CopyFiles */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; dstPath = Contents/Library/QuickLook; dstSubfolderSpec = 1; files = ( + B604B21B0DC182BE00981CC7 /* FuseGenerator.qlgenerator in CopyFiles */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1239,7 +1241,7 @@ B61F463809121DF100C8096C /* Sources */, B61F469909121DF100C8096C /* Frameworks */, B61F46A309121DF100C8096C /* CopyFiles */, - B61EEB380D1A8FCB006FEA80 /* CopyFiles */, + B604B2190DC1827200981CC7 /* CopyFiles */, ); buildRules = ( ); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |