From: <fr...@us...> - 2016-07-19 12:27:33
|
Revision: 5694 http://sourceforge.net/p/fuse-emulator/code/5694 Author: fredm Date: 2016-07-19 12:27:30 +0000 (Tue, 19 Jul 2016) Log Message: ----------- Mark g_direct_hash() as static as it isn't used outside of ghash.c and isn't in a header. Modified Paths: -------------- trunk/libspectrum/hacking/ChangeLog trunk/libspectrum/myglib/ghash.c Modified: trunk/libspectrum/hacking/ChangeLog =================================================================== --- trunk/libspectrum/hacking/ChangeLog 2016-07-19 12:18:41 UTC (rev 5693) +++ trunk/libspectrum/hacking/ChangeLog 2016-07-19 12:27:30 UTC (rev 5694) @@ -1083,3 +1083,5 @@ (Fred). 20160717 ChangeLog,README,configure.ac,doc/libspectrum.3: update release dates and mark this release as 1.2.1 (Fred). +20160719 myglib/ghash.c: mark g_direct_hash() as static as it isn't used outside + of ghash.c and isn't in a header (Fred). Modified: trunk/libspectrum/myglib/ghash.c =================================================================== --- trunk/libspectrum/myglib/ghash.c 2016-07-19 12:18:41 UTC (rev 5693) +++ trunk/libspectrum/myglib/ghash.c 2016-07-19 12:27:30 UTC (rev 5694) @@ -64,7 +64,7 @@ static GHashNode *node_free_list = NULL; static GHashNode *node_allocated_list = NULL; -guint +static guint g_direct_hash (gconstpointer v) { return GPOINTER_TO_UINT (v); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2016-07-21 13:29:07
|
Revision: 5697 http://sourceforge.net/p/fuse-emulator/code/5697 Author: fredm Date: 2016-07-21 13:29:04 +0000 (Thu, 21 Jul 2016) Log Message: ----------- Fix handling of 0 length tail pulses after PZX data blocks and ensure the first PZX pulse block pulse is marked as high or low level as required. Modified Paths: -------------- trunk/libspectrum/hacking/ChangeLog trunk/libspectrum/tape.c trunk/libspectrum/tape_block.c trunk/libspectrum/test/Makefile.am trunk/libspectrum/test/test.c trunk/libspectrum/test/test.h Added Paths: ----------- trunk/libspectrum/test/test_edges.c trunk/libspectrum/test/zero-tail.pzx Removed Paths: ------------- trunk/libspectrum/test/test15.c Modified: trunk/libspectrum/hacking/ChangeLog =================================================================== --- trunk/libspectrum/hacking/ChangeLog 2016-07-20 12:30:37 UTC (rev 5696) +++ trunk/libspectrum/hacking/ChangeLog 2016-07-21 13:29:04 UTC (rev 5697) @@ -1085,3 +1085,7 @@ and mark this release as 1.2.1 (Fred). 20160719 myglib/ghash.c: mark g_direct_hash() as static as it isn't used outside of ghash.c and isn't in a header (Fred). +20160721 tape.c,tape_block.c,test/{Makefile.am,test.[ch],test15.c->test_edges.c, + zero-tail.pzx}: fix handling of 0 length tail pulses after PZX data + blocks and ensure the first PZX pulse block pulse is marked as high or + low level as required (Fred). Modified: trunk/libspectrum/tape.c =================================================================== --- trunk/libspectrum/tape.c 2016-07-20 12:30:37 UTC (rev 5696) +++ trunk/libspectrum/tape.c 2016-07-21 13:29:04 UTC (rev 5697) @@ -1186,6 +1186,10 @@ /* The pulse at the end of the block */ *tstates = block->tail_length; *end_of_block = 1; + if( *tstates == 0 ) { + /* The tail pulse is optional - if there is no tail, there is no edge */ + *flags |= LIBSPECTRUM_TAPE_FLAGS_NO_EDGE; + } break; default: @@ -1196,9 +1200,11 @@ } - *flags |= state->level ? LIBSPECTRUM_TAPE_FLAGS_LEVEL_HIGH : - LIBSPECTRUM_TAPE_FLAGS_LEVEL_LOW; - state->level = !state->level; + if( !(*flags & LIBSPECTRUM_TAPE_FLAGS_NO_EDGE )) { + *flags |= state->level ? LIBSPECTRUM_TAPE_FLAGS_LEVEL_HIGH : + LIBSPECTRUM_TAPE_FLAGS_LEVEL_LOW; + state->level = !state->level; + } return LIBSPECTRUM_ERROR_NONE; } Modified: trunk/libspectrum/tape_block.c =================================================================== --- trunk/libspectrum/tape_block.c 2016-07-20 12:30:37 UTC (rev 5696) +++ trunk/libspectrum/tape_block.c 2016-07-21 13:29:04 UTC (rev 5697) @@ -244,7 +244,7 @@ case LIBSPECTRUM_TAPE_BLOCK_PULSE_SEQUENCE: state->block_state.pulse_sequence.index = 0; state->block_state.pulse_sequence.pulse_count = 0; - state->block_state.pulse_sequence.level = 1; + state->block_state.pulse_sequence.level = -1; return LIBSPECTRUM_ERROR_NONE; case LIBSPECTRUM_TAPE_BLOCK_DATA_BLOCK: return data_block_init( &(block->types.data_block), Modified: trunk/libspectrum/test/Makefile.am =================================================================== --- trunk/libspectrum/test/Makefile.am 2016-07-20 12:30:37 UTC (rev 5696) +++ trunk/libspectrum/test/Makefile.am 2016-07-21 13:29:04 UTC (rev 5697) @@ -26,7 +26,7 @@ test_test_SOURCES = \ test/edges.c \ test/test.c \ - test/test15.c + test/test_edges.c test_test_CFLAGS = -DSRCDIR='"$(srcdir)"' @@ -62,7 +62,8 @@ test/sp-2000.sna.gz \ test/sp-ffff.sna.gz \ test/turbo-zeropilot.tzx \ - test/writeprotected.mdr + test/writeprotected.mdr \ + test/zero-tail.pzx CLEANFILES += \ test/.libs/test \ Modified: trunk/libspectrum/test/test.c =================================================================== --- trunk/libspectrum/test/test.c 2016-07-20 12:30:37 UTC (rev 5696) +++ trunk/libspectrum/test/test.c 2016-07-21 13:29:04 UTC (rev 5697) @@ -769,6 +769,7 @@ { test_25, "Writing SNA file", 0 }, { test_26, "Writing +3 .Z80 file", 0 }, { test_27, "Reading old SZX file", 0 }, + { test_28, "Zero tail length PZX file", 0 }, }; static size_t test_count = ARRAY_SIZE( tests ); Modified: trunk/libspectrum/test/test.h =================================================================== --- trunk/libspectrum/test/test.h 2016-07-20 12:30:37 UTC (rev 5696) +++ trunk/libspectrum/test/test.h 2016-07-21 13:29:04 UTC (rev 5697) @@ -29,5 +29,6 @@ int flags_mask ); test_return_t test_15( void ); +test_return_t test_28( void ); #endif Deleted: trunk/libspectrum/test/test15.c =================================================================== --- trunk/libspectrum/test/test15.c 2016-07-20 12:30:37 UTC (rev 5696) +++ trunk/libspectrum/test/test15.c 2016-07-21 13:29:04 UTC (rev 5697) @@ -1,120 +0,0 @@ -#include "test.h" - -static test_edge_sequence_t -complete_edges_list[] = -{ - /* Standard speed data block */ - { 2168, 3223, 0 }, /* Pilot */ - { 667, 1, 0 }, /* Sync 1 */ - { 735, 1, 0 }, /* Sync 2 */ - - { 1710, 2, 0 }, /* Bit 1 */ - { 855, 2, 0 }, /* Bit 2 */ - { 1710, 2, 0 }, /* Bit 3 */ - { 855, 2, 0 }, /* Bit 4 */ - { 1710, 2, 0 }, /* Bit 5 */ - { 855, 2, 0 }, /* Bit 6 */ - { 1710, 2, 0 }, /* Bit 7 */ - { 855, 2, 0 }, /* Bit 8 */ - - { 8207500, 1, 0 }, /* Pause */ - - /* Turbo speed data block */ - { 1000, 5, 0 }, /* Pilot */ - { 123, 1, 0 }, /* Sync 1 */ - { 456, 1, 0 }, /* Sync 2 */ - - { 789, 16, 0 }, /* Byte 1, bits 1-8 */ - { 400, 16, 0 }, /* Byte 2, bits 1-8 */ - - { 789, 2, 0 }, /* Byte 3, bit 1 */ - { 400, 2, 0 }, /* Byte 3, bit 2 */ - { 789, 2, 0 }, /* Byte 3, bit 3 */ - { 400, 2, 0 }, /* Byte 3, bit 4 */ - { 789, 2, 0 }, /* Byte 3, bit 5 */ - { 400, 2, 0 }, /* Byte 3, bit 6 */ - { 789, 2, 0 }, /* Byte 3, bit 7 */ - { 400, 2, 0 }, /* Byte 3, bit 8 */ - - { 400, 2, 0 }, /* Byte 4, bit 1 */ - { 789, 2, 0 }, /* Byte 4, bit 2 */ - { 400, 2, 0 }, /* Byte 4, bit 3 */ - { 789, 2, 0 }, /* Byte 4, bit 4 */ - - { 3454500, 1, 0 }, /* Pause */ - - /* Pure tone block */ - { 535, 666, 0 }, - - /* List of pulses */ - { 772, 1, 0 }, - { 297, 1, 0 }, - { 692, 1, 0 }, - - /* Pure data block */ - { 1639, 16, 0 }, /* Byte 1, bits 1-8 */ - { 552, 16, 0 }, /* Byte 2, bits 1-8 */ - { 1639, 12, 0 }, /* Byte 3, bits 1-6 */ - { 1939000, 1, 0 }, /* Pause */ - - /* Pause block */ - { 2163000, 1, 0 }, - - /* Group start block */ - { 0, 1, 0 }, - - /* Group end block */ - { 0, 1, 0 }, - - /* Jump block */ - { 0, 1, 0 }, - - /* Pure tone block skipped */ - - /* Loop start block */ - { 0, 1, 0 }, - - /* Iteration 1 */ - { 837, 185, 0 }, /* Pure tone block */ - { 0, 1, 0 }, /* Loop end block */ - - /* Iteration 2 */ - { 837, 185, 0 }, /* Pure tone block */ - { 0, 1, 0 }, /* Loop end block */ - - /* Iteration 3 */ - { 837, 185, 0 }, /* Pure tone block */ - { 0, 1, 0 }, /* Loop end block */ - - /* Stop tape if in 48K mode block */ - { 0, 1, 4 }, - - /* Text description block */ - { 0, 1, 0 }, - - /* Message block */ - { 0, 1, 0 }, - - /* Archive info block */ - { 0, 1, 0 }, - - /* Hardware info block */ - { 0, 1, 0 }, - - /* Custom info block */ - { 0, 1, 0 }, - - /* Pure tone block */ - { 820, 940, 0 }, - { 820, 1, 2 }, - - { -1, 0, 0 } /* End marker */ - -}; - -test_return_t -test_15( void ) -{ - return check_edges( DYNAMIC_TEST_PATH( "complete-tzx.tzx" ), complete_edges_list, - LIBSPECTRUM_TAPE_FLAGS_STOP | LIBSPECTRUM_TAPE_FLAGS_STOP48 ); -} Copied: trunk/libspectrum/test/test_edges.c (from rev 5696, trunk/libspectrum/test/test15.c) =================================================================== --- trunk/libspectrum/test/test_edges.c (rev 0) +++ trunk/libspectrum/test/test_edges.c 2016-07-21 13:29:04 UTC (rev 5697) @@ -0,0 +1,144 @@ +#include "test.h" + +static test_edge_sequence_t +complete_edges_list[] = +{ + /* Standard speed data block */ + { 2168, 3223, 0 }, /* Pilot */ + { 667, 1, 0 }, /* Sync 1 */ + { 735, 1, 0 }, /* Sync 2 */ + + { 1710, 2, 0 }, /* Bit 1 */ + { 855, 2, 0 }, /* Bit 2 */ + { 1710, 2, 0 }, /* Bit 3 */ + { 855, 2, 0 }, /* Bit 4 */ + { 1710, 2, 0 }, /* Bit 5 */ + { 855, 2, 0 }, /* Bit 6 */ + { 1710, 2, 0 }, /* Bit 7 */ + { 855, 2, 0 }, /* Bit 8 */ + + { 8207500, 1, 0 }, /* Pause */ + + /* Turbo speed data block */ + { 1000, 5, 0 }, /* Pilot */ + { 123, 1, 0 }, /* Sync 1 */ + { 456, 1, 0 }, /* Sync 2 */ + + { 789, 16, 0 }, /* Byte 1, bits 1-8 */ + { 400, 16, 0 }, /* Byte 2, bits 1-8 */ + + { 789, 2, 0 }, /* Byte 3, bit 1 */ + { 400, 2, 0 }, /* Byte 3, bit 2 */ + { 789, 2, 0 }, /* Byte 3, bit 3 */ + { 400, 2, 0 }, /* Byte 3, bit 4 */ + { 789, 2, 0 }, /* Byte 3, bit 5 */ + { 400, 2, 0 }, /* Byte 3, bit 6 */ + { 789, 2, 0 }, /* Byte 3, bit 7 */ + { 400, 2, 0 }, /* Byte 3, bit 8 */ + + { 400, 2, 0 }, /* Byte 4, bit 1 */ + { 789, 2, 0 }, /* Byte 4, bit 2 */ + { 400, 2, 0 }, /* Byte 4, bit 3 */ + { 789, 2, 0 }, /* Byte 4, bit 4 */ + + { 3454500, 1, 0 }, /* Pause */ + + /* Pure tone block */ + { 535, 666, 0 }, + + /* List of pulses */ + { 772, 1, 0 }, + { 297, 1, 0 }, + { 692, 1, 0 }, + + /* Pure data block */ + { 1639, 16, 0 }, /* Byte 1, bits 1-8 */ + { 552, 16, 0 }, /* Byte 2, bits 1-8 */ + { 1639, 12, 0 }, /* Byte 3, bits 1-6 */ + { 1939000, 1, 0 }, /* Pause */ + + /* Pause block */ + { 2163000, 1, 0 }, + + /* Group start block */ + { 0, 1, 0 }, + + /* Group end block */ + { 0, 1, 0 }, + + /* Jump block */ + { 0, 1, 0 }, + + /* Pure tone block skipped */ + + /* Loop start block */ + { 0, 1, 0 }, + + /* Iteration 1 */ + { 837, 185, 0 }, /* Pure tone block */ + { 0, 1, 0 }, /* Loop end block */ + + /* Iteration 2 */ + { 837, 185, 0 }, /* Pure tone block */ + { 0, 1, 0 }, /* Loop end block */ + + /* Iteration 3 */ + { 837, 185, 0 }, /* Pure tone block */ + { 0, 1, 0 }, /* Loop end block */ + + /* Stop tape if in 48K mode block */ + { 0, 1, 4 }, + + /* Text description block */ + { 0, 1, 0 }, + + /* Message block */ + { 0, 1, 0 }, + + /* Archive info block */ + { 0, 1, 0 }, + + /* Hardware info block */ + { 0, 1, 0 }, + + /* Custom info block */ + { 0, 1, 0 }, + + /* Pure tone block */ + { 820, 940, 0 }, + { 820, 1, 2 }, + + { -1, 0, 0 } /* End marker */ + +}; + +test_return_t +test_15( void ) +{ + return check_edges( DYNAMIC_TEST_PATH( "complete-tzx.tzx" ), complete_edges_list, + LIBSPECTRUM_TAPE_FLAGS_STOP | LIBSPECTRUM_TAPE_FLAGS_STOP48 ); +} + +static test_edge_sequence_t +zero_tail_edges_list[] = +{ + /* Data block with 0 tail */ + { 855, 1, 96 }, /* Data short pulse 1 high */ + { 855, 1, 80 }, /* Data short pulse 2 low */ + { 0, 1, 9 }, /* No edge for tail, end of block */ + + /* Pulse block */ + { 200, 1, 32 }, /* Following pulse 1 high */ + { 200, 1, 275 }, /* Following pulse 2 low, end of block, end of tape, + stop the tape */ + + { -1, 0, 0 } /* End marker */ + +}; + +test_return_t +test_28( void ) +{ + return check_edges( DYNAMIC_TEST_PATH( "zero-tail.pzx" ), + zero_tail_edges_list, 0x1ff ); +} Added: trunk/libspectrum/test/zero-tail.pzx =================================================================== (Binary files differ) Index: trunk/libspectrum/test/zero-tail.pzx =================================================================== --- trunk/libspectrum/test/zero-tail.pzx 2016-07-20 12:30:37 UTC (rev 5696) +++ trunk/libspectrum/test/zero-tail.pzx 2016-07-21 13:29:04 UTC (rev 5697) Property changes on: trunk/libspectrum/test/zero-tail.pzx ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2016-08-10 12:03:23
|
Revision: 5724 http://sourceforge.net/p/fuse-emulator/code/5724 Author: fredm Date: 2016-08-10 12:03:21 +0000 (Wed, 10 Aug 2016) Log Message: ----------- TZX spec says that 0 duration pauses should have no effect on the current level. Modified Paths: -------------- trunk/libspectrum/hacking/ChangeLog trunk/libspectrum/tape.c Modified: trunk/libspectrum/hacking/ChangeLog =================================================================== --- trunk/libspectrum/hacking/ChangeLog 2016-08-07 22:07:22 UTC (rev 5723) +++ trunk/libspectrum/hacking/ChangeLog 2016-08-10 12:03:21 UTC (rev 5724) @@ -1100,3 +1100,5 @@ 20160801 zip.c: activate the const-enabled zlib API (Sergio). 20160802 zip.c: avoid mixing declarations and code for C89 compilers (Sergio). 20160802 zip.c: minor tweaks to make things a bit more idiomatic (Fred). +20160810 tape.c: TZX spec says that 0 duration pauses should have no effect on + the current level (Fred). Modified: trunk/libspectrum/tape.c =================================================================== --- trunk/libspectrum/tape.c 2016-08-07 22:07:22 UTC (rev 5723) +++ trunk/libspectrum/tape.c 2016-08-10 12:03:21 UTC (rev 5724) @@ -528,6 +528,21 @@ &(tape->state) ); } +/* TZX pauses should have no edge if there is no duration, from the spec: + A 'Pause' block of zero duration is completely ignored, so the 'current pulse + level' will NOT change in this case. This also applies to 'Data' blocks that + have some pause duration included in them. */ +static void +do_tail_pause( libspectrum_dword *tstates, + int *end_of_block, int *flags ) +{ + *end_of_block = 1; + if( *tstates == 0 ) { + /* The tail pause is optional - if there is no tail, there is no edge */ + *flags |= LIBSPECTRUM_TAPE_FLAGS_NO_EDGE; + } +} + static libspectrum_error rom_edge( libspectrum_tape_rom_block *block, libspectrum_tape_rom_block_state *state, @@ -579,7 +594,7 @@ case LIBSPECTRUM_TAPE_STATE_PAUSE: /* The pause at the end of the block */ *tstates = block->pause_tstates; - *end_of_block = 1; + do_tail_pause( tstates, end_of_block, flags ); break; default: @@ -676,7 +691,7 @@ case LIBSPECTRUM_TAPE_STATE_PAUSE: /* The pause at the end of the block */ *tstates = block->pause_tstates; - *end_of_block = 1; + do_tail_pause( tstates, end_of_block, flags ); break; default: @@ -784,7 +799,7 @@ case LIBSPECTRUM_TAPE_STATE_PAUSE: /* The pause at the end of the block */ *tstates = block->pause_tstates; - *end_of_block = 1; + do_tail_pause( tstates, end_of_block, flags ); break; default: @@ -857,7 +872,7 @@ case LIBSPECTRUM_TAPE_STATE_PAUSE: /* The pause at the end of the block */ *tstates = block->pause_tstates; - *end_of_block = 1; + do_tail_pause( tstates, end_of_block, flags ); break; default: @@ -1017,7 +1032,7 @@ case LIBSPECTRUM_TAPE_STATE_PAUSE: /* The pause at the end of the block */ *tstates = block->pause_tstates; - *end_of_block = 1; + do_tail_pause( tstates, end_of_block, flags ); break; default: @@ -1185,11 +1200,7 @@ case LIBSPECTRUM_TAPE_STATE_TAIL: /* The pulse at the end of the block */ *tstates = block->tail_length; - *end_of_block = 1; - if( *tstates == 0 ) { - /* The tail pulse is optional - if there is no tail, there is no edge */ - *flags |= LIBSPECTRUM_TAPE_FLAGS_NO_EDGE; - } + do_tail_pause( tstates, end_of_block, flags ); break; default: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2016-08-11 12:18:15
|
Revision: 5725 http://sourceforge.net/p/fuse-emulator/code/5725 Author: fredm Date: 2016-08-11 12:18:13 +0000 (Thu, 11 Aug 2016) Log Message: ----------- Fix playback of TZX GDB blocks with no pilot tones. Modified Paths: -------------- trunk/libspectrum/hacking/ChangeLog trunk/libspectrum/tape.c trunk/libspectrum/tape_block.c trunk/libspectrum/tape_block.h trunk/libspectrum/test/test.c trunk/libspectrum/test/test.h trunk/libspectrum/test/test_edges.c Added Paths: ----------- trunk/libspectrum/test/no-pilot-gdb.tzx Modified: trunk/libspectrum/hacking/ChangeLog =================================================================== --- trunk/libspectrum/hacking/ChangeLog 2016-08-10 12:03:21 UTC (rev 5724) +++ trunk/libspectrum/hacking/ChangeLog 2016-08-11 12:18:13 UTC (rev 5725) @@ -1102,3 +1102,5 @@ 20160802 zip.c: minor tweaks to make things a bit more idiomatic (Fred). 20160810 tape.c: TZX spec says that 0 duration pauses should have no effect on the current level (Fred). +20160810 tape.c,tape_block.[ch],test/{no-pilot-gdb.tzx,test.[ch],test_edges.c}: + fix playback of TZX GDB blocks with no pilot tones (Fred). Modified: trunk/libspectrum/tape.c =================================================================== --- trunk/libspectrum/tape.c 2016-08-10 12:03:21 UTC (rev 5724) +++ trunk/libspectrum/tape.c 2016-08-11 12:18:13 UTC (rev 5725) @@ -932,7 +932,7 @@ return r; } -static libspectrum_byte +libspectrum_byte get_generalised_data_symbol( libspectrum_tape_generalised_data_block *block, libspectrum_tape_generalised_data_block_state *state ) { Modified: trunk/libspectrum/tape_block.c =================================================================== --- trunk/libspectrum/tape_block.c 2016-08-10 12:03:21 UTC (rev 5724) +++ trunk/libspectrum/tape_block.c 2016-08-11 12:18:13 UTC (rev 5725) @@ -348,9 +348,6 @@ generalised_data_init( libspectrum_tape_generalised_data_block *block, libspectrum_tape_generalised_data_block_state *state ) { - state->state = block->pilot_table.symbols_in_block ? - LIBSPECTRUM_TAPE_STATE_PILOT : LIBSPECTRUM_TAPE_STATE_DATA1; - state->run = 0; state->symbols_through_run = 0; state->edges_through_symbol = 0; @@ -362,6 +359,16 @@ state->bits_through_byte = 0; state->bytes_through_stream = 0; + if( block->pilot_table.symbols_in_block ) { + state->state = LIBSPECTRUM_TAPE_STATE_PILOT; + } else if( block->data_table.symbols_in_block ) { + state->state = LIBSPECTRUM_TAPE_STATE_DATA1; + state->current_byte = block->data[ 0 ]; + state->current_symbol = get_generalised_data_symbol( block, state ); + } else { + state->state = LIBSPECTRUM_TAPE_STATE_PAUSE; + } + return LIBSPECTRUM_ERROR_NONE; } Modified: trunk/libspectrum/tape_block.h =================================================================== --- trunk/libspectrum/tape_block.h 2016-08-10 12:03:21 UTC (rev 5724) +++ trunk/libspectrum/tape_block.h 2016-08-11 12:18:13 UTC (rev 5725) @@ -503,6 +503,9 @@ void libspectrum_tape_raw_data_next_bit( libspectrum_tape_raw_data_block *block, libspectrum_tape_raw_data_block_state *state ); +libspectrum_byte +get_generalised_data_symbol( libspectrum_tape_generalised_data_block *block, + libspectrum_tape_generalised_data_block_state *state ); libspectrum_error generalised_data_edge( libspectrum_tape_generalised_data_block *block, libspectrum_tape_generalised_data_block_state *state, Added: trunk/libspectrum/test/no-pilot-gdb.tzx =================================================================== (Binary files differ) Index: trunk/libspectrum/test/no-pilot-gdb.tzx =================================================================== --- trunk/libspectrum/test/no-pilot-gdb.tzx 2016-08-10 12:03:21 UTC (rev 5724) +++ trunk/libspectrum/test/no-pilot-gdb.tzx 2016-08-11 12:18:13 UTC (rev 5725) Property changes on: trunk/libspectrum/test/no-pilot-gdb.tzx ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property Modified: trunk/libspectrum/test/test.c =================================================================== --- trunk/libspectrum/test/test.c 2016-08-10 12:03:21 UTC (rev 5724) +++ trunk/libspectrum/test/test.c 2016-08-11 12:18:13 UTC (rev 5725) @@ -770,6 +770,7 @@ { test_26, "Writing +3 .Z80 file", 0 }, { test_27, "Reading old SZX file", 0 }, { test_28, "Zero tail length PZX file", 0 }, + { test_29, "No pilot pulse GDB TZX file", 0 }, }; static size_t test_count = ARRAY_SIZE( tests ); Modified: trunk/libspectrum/test/test.h =================================================================== --- trunk/libspectrum/test/test.h 2016-08-10 12:03:21 UTC (rev 5724) +++ trunk/libspectrum/test/test.h 2016-08-11 12:18:13 UTC (rev 5725) @@ -30,5 +30,6 @@ test_return_t test_15( void ); test_return_t test_28( void ); +test_return_t test_29( void ); #endif Modified: trunk/libspectrum/test/test_edges.c =================================================================== --- trunk/libspectrum/test/test_edges.c 2016-08-10 12:03:21 UTC (rev 5724) +++ trunk/libspectrum/test/test_edges.c 2016-08-11 12:18:13 UTC (rev 5725) @@ -142,3 +142,56 @@ return check_edges( DYNAMIC_TEST_PATH( "zero-tail.pzx" ), zero_tail_edges_list, 0x1ff ); } + +static test_edge_sequence_t +no_pilot_gdb_list[] = +{ + /* Set signal level block */ + { 0, 1, 17 }, /* Set signal level low, end of block */ + + /* GDB with 0 tail */ + { 771, 1, 0 }, /* Byte 1, bit 1, pulse 1 */ + { 1542, 1, 0 }, /* Byte 1, bit 1, pulse 2 */ + { 771, 1, 0 }, /* Byte 1, bit 2, pulse 1 */ + { 1542, 1, 0 }, /* Byte 1, bit 2, pulse 2 */ + { 771, 1, 0 }, /* Byte 1, bit 3, pulse 1 */ + { 1542, 1, 0 }, /* Byte 1, bit 3, pulse 2 */ + { 771, 1, 0 }, /* Byte 1, bit 4, pulse 1 */ + { 1542, 1, 0 }, /* Byte 1, bit 4, pulse 2 */ + { 771, 1, 0 }, /* Byte 1, bit 5, pulse 1 */ + { 1542, 1, 0 }, /* Byte 1, bit 5, pulse 2 */ + { 771, 1, 0 }, /* Byte 1, bit 6, pulse 1 */ + { 1542, 1, 0 }, /* Byte 1, bit 6, pulse 2 */ + { 771, 1, 0 }, /* Byte 1, bit 7, pulse 1 */ + { 1542, 1, 0 }, /* Byte 1, bit 7, pulse 2 */ + { 771, 1, 0 }, /* Byte 1, bit 8, pulse 1 */ + { 1542, 1, 0 }, /* Byte 1, bit 8, pulse 2 */ + { 771, 1, 0 }, /* Byte 2, bit 1, pulse 1 */ + { 1542, 1, 0 }, /* Byte 2, bit 1, pulse 2 */ + { 771, 1, 0 }, /* Byte 2, bit 2, pulse 1 */ + { 1542, 1, 0 }, /* Byte 2, bit 2, pulse 2 */ + { 771, 1, 0 }, /* Byte 2, bit 3, pulse 1 */ + { 1542, 1, 0 }, /* Byte 2, bit 3, pulse 2 */ + { 771, 1, 0 }, /* Byte 2, bit 4, pulse 1 */ + { 1542, 1, 0 }, /* Byte 2, bit 4, pulse 2 */ + { 771, 1, 0 }, /* Byte 2, bit 5, pulse 1 */ + { 1542, 1, 0 }, /* Byte 2, bit 5, pulse 2 */ + { 771, 1, 0 }, /* Byte 2, bit 6, pulse 1 */ + { 1542, 1, 0 }, /* Byte 2, bit 6, pulse 2 */ + { 771, 1, 0 }, /* Byte 2, bit 7, pulse 1 */ + { 1542, 1, 0 }, /* Byte 2, bit 7, pulse 2 */ + { 771, 1, 0 }, /* Byte 2, bit 8, pulse 1 */ + { 1542, 1, 0 }, /* Byte 2, bit 8, pulse 2 */ + { 0, 1, 259 }, /* End of block, end of tape, stop the tape (normally no + edge but not at end of tape) */ + + { -1, 0, 0 } /* End marker */ + +}; + +test_return_t +test_29( void ) +{ + return check_edges( DYNAMIC_TEST_PATH( "no-pilot-gdb.tzx" ), + no_pilot_gdb_list, 0x1ff ); +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2016-08-11 12:20:55
|
Revision: 5726 http://sourceforge.net/p/fuse-emulator/code/5726 Author: fredm Date: 2016-08-11 12:20:53 +0000 (Thu, 11 Aug 2016) Log Message: ----------- Distribute no-pilot-gdb.tzx. Modified Paths: -------------- trunk/libspectrum/hacking/ChangeLog trunk/libspectrum/test/Makefile.am Modified: trunk/libspectrum/hacking/ChangeLog =================================================================== --- trunk/libspectrum/hacking/ChangeLog 2016-08-11 12:18:13 UTC (rev 5725) +++ trunk/libspectrum/hacking/ChangeLog 2016-08-11 12:20:53 UTC (rev 5726) @@ -1102,5 +1102,6 @@ 20160802 zip.c: minor tweaks to make things a bit more idiomatic (Fred). 20160810 tape.c: TZX spec says that 0 duration pauses should have no effect on the current level (Fred). -20160810 tape.c,tape_block.[ch],test/{no-pilot-gdb.tzx,test.[ch],test_edges.c}: +20160811 tape.c,tape_block.[ch],test/{no-pilot-gdb.tzx,test.[ch],test_edges.c}: fix playback of TZX GDB blocks with no pilot tones (Fred). +20160811 test/Makefile.am: distribute no-pilot-gdb.tzx (Fred). Modified: trunk/libspectrum/test/Makefile.am =================================================================== --- trunk/libspectrum/test/Makefile.am 2016-08-11 12:18:13 UTC (rev 5725) +++ trunk/libspectrum/test/Makefile.am 2016-08-11 12:20:53 UTC (rev 5726) @@ -58,7 +58,8 @@ test/loop.tzx \ test/loop2.tzx \ test/loopend.tzx \ - test/plus3.z80 \ + test/no-pilot-gdb.tzx \ + test/plus3.z80 \ test/sp-2000.sna.gz \ test/sp-ffff.sna.gz \ test/turbo-zeropilot.tzx \ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2016-08-12 11:45:38
|
Revision: 5728 http://sourceforge.net/p/fuse-emulator/code/5728 Author: fredm Date: 2016-08-12 11:45:36 +0000 (Fri, 12 Aug 2016) Log Message: ----------- Fix writing GDB blocks with no pilot tones and add support for converting PZX data blocks with asymmetric pulses to TZX files. Modified Paths: -------------- trunk/libspectrum/hacking/ChangeLog trunk/libspectrum/internals.h trunk/libspectrum/tzx_write.c trunk/libspectrum/utilities.c Modified: trunk/libspectrum/hacking/ChangeLog =================================================================== --- trunk/libspectrum/hacking/ChangeLog 2016-08-11 21:52:00 UTC (rev 5727) +++ trunk/libspectrum/hacking/ChangeLog 2016-08-12 11:45:36 UTC (rev 5728) @@ -1105,3 +1105,6 @@ 20160811 tape.c,tape_block.[ch],test/{no-pilot-gdb.tzx,test.[ch],test_edges.c}: fix playback of TZX GDB blocks with no pilot tones (Fred). 20160811 test/Makefile.am: distribute no-pilot-gdb.tzx (Fred). +20160812 internals.h,pzx_read.c,tzx_write.c,utilities.c: fix writing GDB blocks + with no pilot tones and add support for converting PZX data blocks with + asymmetric pulses to TZX files (Fred). Modified: trunk/libspectrum/internals.h =================================================================== --- trunk/libspectrum/internals.h 2016-08-11 21:52:00 UTC (rev 5727) +++ trunk/libspectrum/internals.h 2016-08-12 11:45:36 UTC (rev 5728) @@ -102,6 +102,11 @@ #define strncasecmp _strnicmp #endif /* #if !defined(HAVE_STRNCASECMP) && defined(HAVE__STRNICMP) */ +#ifndef MAX +#define MAX(a,b) (((a) > (b)) ? (a) : (b)) +#define MIN(a,b) (((a) < (b)) ? (a) : (b)) +#endif + /* Print using the user-provided error function */ libspectrum_error libspectrum_print_error( libspectrum_error error, const char *format, ... ) @@ -295,6 +300,9 @@ libspectrum_set_pause_tstates( libspectrum_tape_block *block, libspectrum_dword pause_tstates ); +size_t +libspectrum_bits_to_bytes( size_t bits ); + extern const int LIBSPECTRUM_BITS_IN_BYTE; /* glib replacement functions */ Modified: trunk/libspectrum/tzx_write.c =================================================================== --- trunk/libspectrum/tzx_write.c 2016-08-11 21:52:00 UTC (rev 5727) +++ trunk/libspectrum/tzx_write.c 2016-08-12 11:45:36 UTC (rev 5728) @@ -387,63 +387,46 @@ } static size_t -generalised_data_length( libspectrum_tape_block *block ) +generalised_data_length( libspectrum_tape_generalised_data_symbol_table *pilot, + libspectrum_tape_generalised_data_symbol_table *data, + size_t data_bits_per_symbol ) { - libspectrum_tape_generalised_data_symbol_table *table; - size_t symbol_count; - size_t data_length = 14; /* Minimum if no tables or symbols present */ - table = libspectrum_tape_block_pilot_table( block ); - - symbol_count = libspectrum_tape_generalised_data_symbol_table_symbols_in_block( table ); - if( symbol_count ) { + if( pilot->symbols_in_block ) { - size_t max_pulses = libspectrum_tape_generalised_data_symbol_table_max_pulses( table ); - size_t symbols_in_table = libspectrum_tape_generalised_data_symbol_table_symbols_in_table( table ); + data_length += ( 2 * pilot->max_pulses + 1 ) * pilot->symbols_in_table; + data_length += 3 * pilot->symbols_in_block; - data_length += ( 2 * max_pulses + 1 ) * symbols_in_table; - data_length += 3 * symbol_count; - } - table = libspectrum_tape_block_data_table( block ); + if( data->symbols_in_block ) { - symbol_count = libspectrum_tape_generalised_data_symbol_table_symbols_in_block( table ); - if( symbol_count ) { + data_length += ( 2 * data->max_pulses + 1 ) * data->symbols_in_table; + data_length += + libspectrum_bits_to_bytes( data_bits_per_symbol * data->symbols_in_block ); - size_t max_pulses = libspectrum_tape_generalised_data_symbol_table_max_pulses( table ); - size_t symbols_in_table = libspectrum_tape_generalised_data_symbol_table_symbols_in_table( table ); - - size_t bits_per_symbol; - - data_length += ( 2 * max_pulses + 1 ) * symbols_in_table; - - bits_per_symbol = libspectrum_tape_block_bits_per_data_symbol( block ); - - data_length += ( ( bits_per_symbol * symbol_count ) + 7 ) / 8; - } return data_length; } static libspectrum_error -serialise_generalised_data_table( libspectrum_byte **ptr, libspectrum_tape_generalised_data_symbol_table *table ) +serialise_generalised_data_table( libspectrum_byte **ptr, + libspectrum_tape_generalised_data_symbol_table *table ) { libspectrum_dword symbols_in_block; libspectrum_word symbols_in_table; symbols_in_block = libspectrum_tape_generalised_data_symbol_table_symbols_in_block( table ); - if( !symbols_in_block ) return LIBSPECTRUM_ERROR_NONE; - libspectrum_write_dword( ptr, symbols_in_block ); *(*ptr)++ = libspectrum_tape_generalised_data_symbol_table_max_pulses( table ); symbols_in_table = libspectrum_tape_generalised_data_symbol_table_symbols_in_table( table ); - if( symbols_in_table == 0 || symbols_in_table > 256 ) { + if( symbols_in_block != 0 && + ( symbols_in_table == 0 || symbols_in_table > 256 ) ) { libspectrum_print_error( LIBSPECTRUM_ERROR_INVALID, "%s: invalid number of symbols in table: %d", __func__, symbols_in_table ); return LIBSPECTRUM_ERROR_INVALID; } else if( symbols_in_table == 256 ) { @@ -479,27 +462,27 @@ } static libspectrum_error -tzx_write_generalised_data( libspectrum_tape_block *block, - libspectrum_byte **buffer, libspectrum_byte **ptr, - size_t *length ) +write_generalised_data_block( libspectrum_tape_block *block, + libspectrum_byte **buffer, libspectrum_byte **ptr, + size_t *length, size_t bits_per_symbol, + libspectrum_tape_generalised_data_symbol_table *pilot_table, + libspectrum_tape_generalised_data_symbol_table *data_table, + libspectrum_word pause_ms ) { - size_t data_length, bits_per_symbol; + size_t data_length; libspectrum_error error; - libspectrum_tape_generalised_data_symbol_table *pilot_table, *data_table; libspectrum_dword pilot_symbol_count, data_symbol_count, i; - data_length = generalised_data_length( block ); + data_length = generalised_data_length( pilot_table, data_table, + bits_per_symbol ); libspectrum_make_room( buffer, 5 + data_length, ptr, length ); *(*ptr)++ = LIBSPECTRUM_TAPE_BLOCK_GENERALISED_DATA; libspectrum_write_dword( ptr, data_length ); - libspectrum_write_word( ptr, libspectrum_tape_block_pause( block ) ); + libspectrum_write_word( ptr, pause_ms ); - pilot_table = libspectrum_tape_block_pilot_table( block ); - data_table = libspectrum_tape_block_data_table( block ); - error = serialise_generalised_data_table( ptr, pilot_table ); if( error != LIBSPECTRUM_ERROR_NONE ) return error; @@ -517,10 +500,10 @@ serialise_generalised_data_symbols( ptr, data_table ); - bits_per_symbol = libspectrum_tape_block_bits_per_data_symbol( block ); data_symbol_count = libspectrum_tape_generalised_data_symbol_table_symbols_in_block( data_table ); - data_length = ( ( bits_per_symbol * data_symbol_count ) + 7 ) / 8; + data_length = + libspectrum_bits_to_bytes( bits_per_symbol * data_symbol_count ); memcpy( *ptr, libspectrum_tape_block_data( block ), data_length ); (*ptr) += data_length; @@ -528,6 +511,24 @@ return LIBSPECTRUM_ERROR_NONE; } +static libspectrum_error +tzx_write_generalised_data( libspectrum_tape_block *block, + libspectrum_byte **buffer, libspectrum_byte **ptr, + size_t *length ) +{ + size_t bits_per_symbol; + libspectrum_tape_generalised_data_symbol_table *pilot_table, *data_table; + + pilot_table = libspectrum_tape_block_pilot_table( block ); + data_table = libspectrum_tape_block_data_table( block ); + + bits_per_symbol = libspectrum_tape_block_bits_per_data_symbol( block ); + + return write_generalised_data_block( block, buffer, ptr, length, + bits_per_symbol, pilot_table, data_table, + libspectrum_tape_block_pause( block ) ); +} + static void tzx_write_pause( libspectrum_tape_block *block, libspectrum_byte **buffer, libspectrum_byte **ptr, size_t *length ) @@ -938,6 +939,7 @@ add_pulses_block( uncommitted_pulse_count, lengths, block, buffer, ptr, length ); uncommitted_pulse_count = 0; + max_pulse_count = 0; lengths = NULL; } @@ -969,10 +971,14 @@ tzx_write_data_block( libspectrum_tape_block *block, libspectrum_byte **buffer, libspectrum_byte **ptr, size_t *length ) { + libspectrum_error error; libspectrum_tape_block *pure_data; - size_t data_length; + size_t data_length, i; libspectrum_byte *data; + libspectrum_tape_generalised_data_symbol_table pilot_table, data_table; + tzx_write_set_signal_level( block, buffer, ptr, length ); + /* Pure data block can only have two identical pulses for bit 0 and bit 1 */ if( libspectrum_tape_block_bit0_pulse_count( block ) != 2 || ( libspectrum_tape_block_bit0_pulses( block, 0 ) != @@ -980,34 +986,65 @@ libspectrum_tape_block_bit1_pulse_count( block ) != 2 || ( libspectrum_tape_block_bit1_pulses( block, 0 ) != libspectrum_tape_block_bit1_pulses( block, 1 ) ) ) { - /* Could use generalised data block for these cases if a suitable test file - is located, right now I haven't seen any */ - return LIBSPECTRUM_ERROR_UNKNOWN; - } + pilot_table.symbols_in_block = 0; + pilot_table.max_pulses = 0; + pilot_table.symbols_in_table = 0; - tzx_write_set_signal_level( block, buffer, ptr, length ); + data_table.symbols_in_block = libspectrum_tape_block_count( block ); + data_table.max_pulses = MAX( libspectrum_tape_block_bit0_pulse_count( block ), + libspectrum_tape_block_bit1_pulse_count( block ) ); + data_table.symbols_in_table = 2; - pure_data = libspectrum_tape_block_alloc( LIBSPECTRUM_TAPE_BLOCK_PURE_DATA ); + data_table.symbols = + libspectrum_new( libspectrum_tape_generalised_data_symbol, + data_table.symbols_in_table ); - libspectrum_tape_block_set_bit0_length( pure_data, - libspectrum_tape_block_bit0_pulses( block, 0 ) ); - libspectrum_tape_block_set_bit1_length( pure_data, - libspectrum_tape_block_bit1_pulses( block, 0 ) ); - libspectrum_tape_block_set_bits_in_last_byte( pure_data, - libspectrum_tape_block_bits_in_last_byte( block ) ); - libspectrum_set_pause_tstates( pure_data, 0 ); + data_table.symbols[0].edge_type = + LIBSPECTRUM_TAPE_GENERALISED_DATA_SYMBOL_EDGE; + data_table.symbols[0].lengths = + libspectrum_new( libspectrum_word, + libspectrum_tape_block_bit0_pulse_count( block ) ); + for( i = 0; i < libspectrum_tape_block_bit0_pulse_count( block ); i++ ) { + data_table.symbols[0].lengths[i] = + libspectrum_tape_block_bit0_pulses( block, i ); + } - /* And the actual data */ - data_length = libspectrum_tape_block_data_length( block ); - libspectrum_tape_block_set_data_length( pure_data, data_length ); - data = libspectrum_new( libspectrum_byte, data_length ); - memcpy( data, libspectrum_tape_block_data( block ), data_length ); - libspectrum_tape_block_set_data( pure_data, data ); + data_table.symbols[1].edge_type = + LIBSPECTRUM_TAPE_GENERALISED_DATA_SYMBOL_EDGE; + data_table.symbols[1].lengths = + libspectrum_new( libspectrum_word, + libspectrum_tape_block_bit1_pulse_count( block ) ); + for( i = 0; i < libspectrum_tape_block_bit1_pulse_count( block ); i++ ) { + data_table.symbols[1].lengths[i] = + libspectrum_tape_block_bit1_pulses( block, i ); + } - tzx_write_data( pure_data, buffer, ptr, length ); + error = write_generalised_data_block( block, buffer, ptr, length, 1, + &pilot_table, &data_table, 0 ); + if( error != LIBSPECTRUM_ERROR_NONE ) return error; + } else { + pure_data = libspectrum_tape_block_alloc( LIBSPECTRUM_TAPE_BLOCK_PURE_DATA ); - libspectrum_tape_block_free( pure_data ); + libspectrum_tape_block_set_bit0_length( pure_data, + libspectrum_tape_block_bit0_pulses( block, 0 ) ); + libspectrum_tape_block_set_bit1_length( pure_data, + libspectrum_tape_block_bit1_pulses( block, 0 ) ); + libspectrum_tape_block_set_bits_in_last_byte( pure_data, + libspectrum_tape_block_bits_in_last_byte( block ) ); + libspectrum_set_pause_tstates( pure_data, 0 ); + /* And the actual data */ + data_length = libspectrum_tape_block_data_length( block ); + libspectrum_tape_block_set_data_length( pure_data, data_length ); + data = libspectrum_new( libspectrum_byte, data_length ); + memcpy( data, libspectrum_tape_block_data( block ), data_length ); + libspectrum_tape_block_set_data( pure_data, data ); + + tzx_write_data( pure_data, buffer, ptr, length ); + + libspectrum_tape_block_free( pure_data ); + } + if( libspectrum_tape_block_tail_length( block ) ) { add_pure_tone_block( buffer, ptr, length, libspectrum_tape_block_tail_length( block ), 1 ); Modified: trunk/libspectrum/utilities.c =================================================================== --- trunk/libspectrum/utilities.c 2016-08-11 21:52:00 UTC (rev 5727) +++ trunk/libspectrum/utilities.c 2016-08-12 11:45:36 UTC (rev 5728) @@ -60,3 +60,9 @@ libspectrum_tape_block_set_pause( block, libspectrum_tstates_to_ms( pause_tstates ) ); } + +size_t +libspectrum_bits_to_bytes( size_t bits ) +{ + return ( bits + LIBSPECTRUM_BITS_IN_BYTE - 1 ) / LIBSPECTRUM_BITS_IN_BYTE; +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2016-08-14 00:03:14
|
Revision: 5732 http://sourceforge.net/p/fuse-emulator/code/5732 Author: fredm Date: 2016-08-14 00:03:12 +0000 (Sun, 14 Aug 2016) Log Message: ----------- Use libspectrum_bits_to_bytes(). Modified Paths: -------------- trunk/libspectrum/hacking/ChangeLog trunk/libspectrum/pzx_read.c Modified: trunk/libspectrum/hacking/ChangeLog =================================================================== --- trunk/libspectrum/hacking/ChangeLog 2016-08-12 13:18:42 UTC (rev 5731) +++ trunk/libspectrum/hacking/ChangeLog 2016-08-14 00:03:12 UTC (rev 5732) @@ -1108,3 +1108,4 @@ 20160812 internals.h,pzx_read.c,tzx_write.c,utilities.c: fix writing GDB blocks with no pilot tones and add support for converting PZX data blocks with asymmetric pulses to TZX files (Fred). +20160814 pzx_read.c: use libspectrum_bits_to_bytes() (Fred). Modified: trunk/libspectrum/pzx_read.c =================================================================== --- trunk/libspectrum/pzx_read.c 2016-08-12 13:18:42 UTC (rev 5731) +++ trunk/libspectrum/pzx_read.c 2016-08-14 00:03:12 UTC (rev 5732) @@ -26,7 +26,6 @@ #include <config.h> -#include <math.h> #include <stddef.h> #include <stdio.h> #include <string.h> @@ -258,7 +257,7 @@ count = libspectrum_read_dword( buffer ); initial_level = !!(count & 0x80000000); count &= 0x7fffffff; - count_bytes = ceil( count / (double)LIBSPECTRUM_BITS_IN_BYTE ); + count_bytes = libspectrum_bits_to_bytes( count ); bits_in_last_byte = count % LIBSPECTRUM_BITS_IN_BYTE ? count % LIBSPECTRUM_BITS_IN_BYTE : LIBSPECTRUM_BITS_IN_BYTE; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2016-08-15 11:15:15
|
Revision: 5736 http://sourceforge.net/p/fuse-emulator/code/5736 Author: fredm Date: 2016-08-15 11:15:13 +0000 (Mon, 15 Aug 2016) Log Message: ----------- Print summary of enabled features when building libspectrum (patch #376) (Alberto Garcia). Modified Paths: -------------- trunk/libspectrum/configure.ac trunk/libspectrum/hacking/ChangeLog Modified: trunk/libspectrum/configure.ac =================================================================== --- trunk/libspectrum/configure.ac 2016-08-14 13:02:21 UTC (rev 5735) +++ trunk/libspectrum/configure.ac 2016-08-15 11:15:13 UTC (rev 5736) @@ -126,10 +126,12 @@ if test "$withval" = no; then zlib=no; else zlib=yes; fi, zlib=yes) AC_MSG_RESULT($zlib) +have_zlib="no" if test "$zlib" = yes; then AC_CHECK_HEADERS( zlib.h, - AC_SEARCH_LIBS(compress2, z zdll) + [AC_SEARCH_LIBS(compress2, z zdll) + have_zlib="yes"] ) fi AM_CONDITIONAL([HAVE_ZLIB], [test "$ac_cv_header_zlib_h" = yes]) @@ -141,8 +143,11 @@ if test "$withval" = no; then libgcrypt=no; else libgcrypt=yes; fi, libgcrypt=yes) AC_MSG_RESULT($libgcrypt) +have_libgcrypt="no" if test "$libgcrypt" = yes; then - AC_CHECK_HEADERS(gcrypt.h,LIBS="$LIBS -lgcrypt") + AC_CHECK_HEADERS(gcrypt.h, + [LIBS="$LIBS -lgcrypt" + have_libgcrypt="yes"]) fi dnl Check whether to use libbz2 (1.0 or greater) @@ -152,10 +157,12 @@ if test "$withval" = no; then bzip2=no; else bzip2=yes; fi, bzip2=yes) AC_MSG_RESULT($bzip2) +have_bzip2="no" if test "$bzip2" = yes; then AC_CHECK_HEADER( bzlib.h, - AC_CHECK_LIB(bz2,BZ2_bzDecompressInit) + [AC_CHECK_LIB(bz2,BZ2_bzDecompressInit) + have_bzip2="yes"] ) fi @@ -203,17 +210,20 @@ if test "$withval" = no; then libaudiofile=no; else libaudiofile=yes; fi, libaudiofile=yes) AC_MSG_RESULT($libaudiofile) +have_libaudiofile="no" AS_IF([test "$libaudiofile" = yes], [ PKG_CHECK_MODULES( AUDIOFILE, audiofile, - AC_DEFINE([HAVE_LIB_AUDIOFILE], 1, [Defined if we've got audiofile]), + [AC_DEFINE([HAVE_LIB_AUDIOFILE], 1, [Defined if we've got audiofile]) + have_libaudiofile="yes"], [true] ) if test -z "$AUDIOFILE_LIBS"; then AM_PATH_AUDIOFILE( 0.2.3, - AC_DEFINE([HAVE_LIB_AUDIOFILE], 1, [Defined if we've got audiofile]) + [AC_DEFINE([HAVE_LIB_AUDIOFILE], 1, [Defined if we've got audiofile]) + have_libaudiofile="yes"], ) fi ]) @@ -224,3 +234,18 @@ ]) AC_OUTPUT + +dnl Status summary +echo "" +echo "*******************************************" +echo "*** libspectrum is ready to be compiled ***" +echo "*******************************************" +echo "" +echo "zlib support: $have_zlib" +echo "bzip2 support: $have_bzip2" +echo "libgcrypt support: $have_libgcrypt" +echo "libaudiofile support: $have_libaudiofile" +echo "Internal GLib replacement: $myglib" +echo "" +echo "Type 'make' to compile libspectrum" +echo "" Modified: trunk/libspectrum/hacking/ChangeLog =================================================================== --- trunk/libspectrum/hacking/ChangeLog 2016-08-14 13:02:21 UTC (rev 5735) +++ trunk/libspectrum/hacking/ChangeLog 2016-08-15 11:15:13 UTC (rev 5736) @@ -1109,3 +1109,5 @@ with no pilot tones and add support for converting PZX data blocks with asymmetric pulses to TZX files (Fred). 20160814 pzx_read.c: use libspectrum_bits_to_bytes() (Fred). +20160815 configure.ac: print summary of enabled features when building + libspectrum (patch #376) (Alberto Garcia). This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sba...@us...> - 2016-08-16 22:26:18
|
Revision: 5750 http://sourceforge.net/p/fuse-emulator/code/5750 Author: sbaldovi Date: 2016-08-16 22:26:15 +0000 (Tue, 16 Aug 2016) Log Message: ----------- Document zip compression support. Modified Paths: -------------- trunk/libspectrum/doc/libspectrum.3 trunk/libspectrum/doc/libspectrum.txt trunk/libspectrum/hacking/ChangeLog Modified: trunk/libspectrum/doc/libspectrum.3 =================================================================== --- trunk/libspectrum/doc/libspectrum.3 2016-08-16 22:22:34 UTC (rev 5749) +++ trunk/libspectrum/doc/libspectrum.3 2016-08-16 22:26:15 UTC (rev 5750) @@ -60,9 +60,10 @@ Microdrive cartridge images: .mdr (read/write). .PP Additionally, any files compressed with -.IR bzip2 "(3)" +.IR bzip2 "(3)," +.IR gzip "(3)" or -.IR gzip "(3)" +.IR zip "(3)" can be read and will be transparently decompressed. .PP Full documentation for @@ -76,7 +77,8 @@ .IR bzip2 "(3)," .IR fuse "(1)," .IR fuse\-utils "(1)," -.IR gzip "(3)" +.IR gzip "(3)," +.IR zip "(3)." .PP The comp.sys.sinclair Spectrum FAQ, at .br Modified: trunk/libspectrum/doc/libspectrum.txt =================================================================== --- trunk/libspectrum/doc/libspectrum.txt 2016-08-16 22:22:34 UTC (rev 5749) +++ trunk/libspectrum/doc/libspectrum.txt 2016-08-16 22:26:15 UTC (rev 5750) @@ -281,6 +281,7 @@ LIBSPECTRUM_ID_COMPRESSED_BZ2 A bzip2 compressed file LIBSPECTRUM_ID_COMPRESSED_GZ A gzip compressed file +LIBSPECTRUM_ID_COMPRESSED_ZIP A zip compressed file LIBSPECTRUM_ID_DISK_DSK A .dsk +3 disk file LIBSPECTRUM_ID_DISK_CPC A plain .dsk +3 disk file Modified: trunk/libspectrum/hacking/ChangeLog =================================================================== --- trunk/libspectrum/hacking/ChangeLog 2016-08-16 22:22:34 UTC (rev 5749) +++ trunk/libspectrum/hacking/ChangeLog 2016-08-16 22:26:15 UTC (rev 5750) @@ -1095,7 +1095,7 @@ 20160722 zip.c: mark a bunch of internal functions as static (Fred). 20160724 zip.c: make error reporting a bit more libspectrum-like (Fred). 20160723 zip.c: fix loading ZIP files with comments (Sergio). -20160801 Makefile.am,configure.ac,zlib.c: disable zip suport when zlib is +20160801 Makefile.am,configure.ac,zlib.c: disable zip support when zlib is missing (Sergio). 20160801 zip.c: activate the const-enabled zlib API (Sergio). 20160802 zip.c: avoid mixing declarations and code for C89 compilers (Sergio). @@ -1111,3 +1111,5 @@ 20160814 pzx_read.c: use libspectrum_bits_to_bytes() (Fred). 20160815 configure.ac: print summary of enabled features when building libspectrum (patch #376) (Alberto Garcia). +20160817 doc/{libspectrum.3,libspectrum.txt}: document zip compression support + (Sergio). This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2016-08-22 11:23:22
|
Revision: 5768 http://sourceforge.net/p/fuse-emulator/code/5768 Author: fredm Date: 2016-08-22 11:23:20 +0000 (Mon, 22 Aug 2016) Log Message: ----------- Reintegrate merge from libspectrum_1_2_0-branch. Modified Paths: -------------- trunk/libspectrum/ChangeLog trunk/libspectrum/Makefile.am trunk/libspectrum/README trunk/libspectrum/configure.ac trunk/libspectrum/doc/libspectrum.3 trunk/libspectrum/doc/libspectrum.txt trunk/libspectrum/hacking/ChangeLog Property Changed: ---------------- trunk/libspectrum/ Index: trunk/libspectrum =================================================================== --- trunk/libspectrum 2016-08-21 22:37:49 UTC (rev 5767) +++ trunk/libspectrum 2016-08-22 11:23:20 UTC (rev 5768) Property changes on: trunk/libspectrum ___________________________________________________________________ Modified: svn:mergeinfo ## -9,7 +9,7 ## /branches/libspectrum_0_5_0-branch:3809-3956 /branches/libspectrum_1_0_0-branch:4185-4222 /branches/libspectrum_1_1_0-branch:4928-5385 -/branches/libspectrum_1_2_0-branch:5387-5689 +/branches/libspectrum_1_2_0-branch:5387-5767 /branches/ntsc-2009-04-11/libspectrum:4000-4147 /branches/opus-20090722/libspectrum:4046-4059 /branches/wii-20080828/libspectrum:3757-3946 \ No newline at end of property Modified: trunk/libspectrum/ChangeLog =================================================================== --- trunk/libspectrum/ChangeLog 2016-08-21 22:37:49 UTC (rev 5767) +++ trunk/libspectrum/ChangeLog 2016-08-22 11:23:20 UTC (rev 5768) @@ -1,3 +1,25 @@ +2016-08-21 Philip Kendall <phi...@sh...> + + * libspectrum 1.2.2 released. + + * Support for reading zip files (Patrik Rak and Sergio Baldoví). + + * Support for converting PZX data blocks with asymmetric pulses to TZX + GDB blocks (Fredrick Meunier). + + * Various minor bug fixes/improvements: + * Print summary of enabled features when building libspectrum (Alberto + Garcia). + * Fix playback of TZX GDB blocks with no pilot tones (Fredrick + Meunier). + * Fix writing GDB blocks with no pilot tones (Fredrick Meunier). + * Fix handling of 0 length tail pulses after PZX data blocks (Fredrick + Meunier). + * TZX spec says that 0 duration pauses should have no effect on the + current level (Fredrick Meunier). + * Ensure the first PZX pulse block pulse is marked as high or low + level as required (Fredrick Meunier). + 2016-07-17 Philip Kendall <phi...@sh...> * libspectrum 1.2.1 released. Modified: trunk/libspectrum/Makefile.am =================================================================== --- trunk/libspectrum/Makefile.am 2016-08-21 22:37:49 UTC (rev 5767) +++ trunk/libspectrum/Makefile.am 2016-08-22 11:23:20 UTC (rev 5768) @@ -71,12 +71,12 @@ ## We update the version when we release according to the guide at ## https://autotools.io/libtool/version.html ## The rules of thumb, when dealing with these values are: -## * Always increase the revision value. ## * Increase the current value whenever an interface has been added, removed or ## changed. +## * Always increase the revision value. ## * Increase the age value only if the changes made to the ABI are backward ## compatible. -libspectrum_la_LDFLAGS = -version-info 11:1:3 -no-undefined @WINDRES_LDFLAGS@ +libspectrum_la_LDFLAGS = -version-info 12:2:4 -no-undefined @WINDRES_LDFLAGS@ libspectrum_la_LIBADD = @AUDIOFILE_LIBS@ @GLIB_LIBS@ -lm Modified: trunk/libspectrum/README =================================================================== --- trunk/libspectrum/README 2016-08-21 22:37:49 UTC (rev 5767) +++ trunk/libspectrum/README 2016-08-22 11:23:20 UTC (rev 5768) @@ -1,4 +1,4 @@ -libspectrum 1.2.1 +libspectrum 1.2.2 ================= libspectrum is a library which is designed to make the input and @@ -67,6 +67,6 @@ Then, type "make" and if everything went well, "make install". Philip Kendall <phi...@sh...> -17th July, 2016 +21st August, 2016 $Id$ Modified: trunk/libspectrum/configure.ac =================================================================== --- trunk/libspectrum/configure.ac 2016-08-21 22:37:49 UTC (rev 5767) +++ trunk/libspectrum/configure.ac 2016-08-22 11:23:20 UTC (rev 5768) @@ -22,12 +22,12 @@ dnl E-mail: phi...@sh... dnl Package version -m4_define([libspectrum_version], [1.2.1]) +m4_define([libspectrum_version], [1.2.2]) dnl Product full version m4_define([libspectrum_major_version], [1]) m4_define([libspectrum_minor_version], [2]) -m4_define([libspectrum_micro_version], [1]) +m4_define([libspectrum_micro_version], [2]) m4_define([libspectrum_nano_version], [0]) m4_define([libspectrum_full_version], [libspectrum_major_version.libspectrum_minor_version.libspectrum_micro_version.libspectrum_nano_version]) Modified: trunk/libspectrum/doc/libspectrum.3 =================================================================== --- trunk/libspectrum/doc/libspectrum.3 2016-08-21 22:37:49 UTC (rev 5767) +++ trunk/libspectrum/doc/libspectrum.3 2016-08-22 11:23:20 UTC (rev 5768) @@ -22,7 +22,7 @@ .\" E-mail: phi...@sh... .\" .\" -.TH libspectrum 3 "17th July, 2016" "Version 1.2.1" "Emulators" +.TH libspectrum 3 "21st August, 2016" "Version 1.2.2" "Emulators" .\" .\"------------------------------------------------------------------ .\" Modified: trunk/libspectrum/doc/libspectrum.txt =================================================================== --- trunk/libspectrum/doc/libspectrum.txt 2016-08-21 22:37:49 UTC (rev 5767) +++ trunk/libspectrum/doc/libspectrum.txt 2016-08-22 11:23:20 UTC (rev 5768) @@ -1,4 +1,4 @@ -libspectrum 1.2.1 +libspectrum 1.2.2 ================= libspectrum is a fairly simple library designed to make the handling Modified: trunk/libspectrum/hacking/ChangeLog =================================================================== --- trunk/libspectrum/hacking/ChangeLog 2016-08-21 22:37:49 UTC (rev 5767) +++ trunk/libspectrum/hacking/ChangeLog 2016-08-22 11:23:20 UTC (rev 5768) @@ -1111,5 +1111,11 @@ 20160814 pzx_read.c: use libspectrum_bits_to_bytes() (Fred). 20160815 configure.ac: print summary of enabled features when building libspectrum (patch #376) (Alberto Garcia). +20160816 ChangeLog,README: first updates for a "1.2.2" release (Fred). +20160816 configure.ac,doc/{libspectrum.3,libspectrum.txt}: mark release as + 1.2.2-pre1 (Fred). +20160816 Makefile.am: bump libtool version (Fred). 20160817 doc/{libspectrum.3,libspectrum.txt}: document zip compression support (Sergio). +20160821 ChangeLog,README,configure.ac,doc/libspectrum.3: update release dates + and mark this release as 1.2.2 (Fred). This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pa...@us...> - 2016-08-23 18:20:57
|
Revision: 5775 http://sourceforge.net/p/fuse-emulator/code/5775 Author: pak21 Date: 2016-08-23 18:20:55 +0000 (Tue, 23 Aug 2016) Log Message: ----------- Fix compilation warnings. Modified Paths: -------------- trunk/libspectrum/hacking/ChangeLog trunk/libspectrum/pzx_read.c trunk/libspectrum/szx.c Modified: trunk/libspectrum/hacking/ChangeLog =================================================================== --- trunk/libspectrum/hacking/ChangeLog 2016-08-23 04:13:50 UTC (rev 5774) +++ trunk/libspectrum/hacking/ChangeLog 2016-08-23 18:20:55 UTC (rev 5775) @@ -1119,3 +1119,4 @@ (Sergio). 20160821 ChangeLog,README,configure.ac,doc/libspectrum.3: update release dates and mark this release as 1.2.2 (Fred). +20160823 pzx_read.c,szx.c: fix compilation warnings (Phil). Modified: trunk/libspectrum/pzx_read.c =================================================================== --- trunk/libspectrum/pzx_read.c 2016-08-23 04:13:50 UTC (rev 5774) +++ trunk/libspectrum/pzx_read.c 2016-08-23 18:20:55 UTC (rev 5775) @@ -40,9 +40,6 @@ } pzx_context; -static const libspectrum_byte PZX_VERSION_MAJOR = 1; -static const libspectrum_byte PZX_VERSION_MINOR = 0; - /* Constants etc for each block type */ #define PZX_HEADER "PZXT" Modified: trunk/libspectrum/szx.c =================================================================== --- trunk/libspectrum/szx.c 2016-08-23 04:13:50 UTC (rev 5774) +++ trunk/libspectrum/szx.c 2016-08-23 18:20:55 UTC (rev 5775) @@ -139,10 +139,10 @@ #define ZXSTBID_PLUS3DISK "+3\0\0" #define ZXSTBID_DSKFILE "DSK\0" #define ZXSTBID_LEC "LEC\0" -static const libspectrum_word ZXSTLECF_PAGED = 1; +/* static const libspectrum_word ZXSTLECF_PAGED = 1; */ #define ZXSTBID_LECRAMPAGE "LCRP" -static const libspectrum_word ZXSTLCRPF_COMPRESSED = 1; +/* static const libspectrum_word ZXSTLCRPF_COMPRESSED = 1; */ #define ZXSTBID_TIMEXREGS "SCLD" @@ -179,7 +179,7 @@ static const libspectrum_dword ZXSTPLUSDF_COMPRESSED = 2; static const libspectrum_dword ZXSTPLUSDF_SEEKLOWER = 4; static const libspectrum_byte ZXSTPDRT_GDOS = 0; -static const libspectrum_byte ZXSTPDRT_UNIDOS = 1; +/* static const libspectrum_byte ZXSTPDRT_UNIDOS = 1; */ static const libspectrum_byte ZXSTPDRT_CUSTOM = 2; #define ZXSTBID_PLUSDDISK "PDSK" @@ -193,7 +193,7 @@ #define ZXSTBID_OPUSDISK "ODSK" #define ZXSTBID_SIMPLEIDE "SIDE" -static const libspectrum_word ZXSTSIDE_ENABLED = 1; +/* static const libspectrum_word ZXSTSIDE_ENABLED = 1; */ #define ZXSTBID_DIVIDE "DIDE" static const libspectrum_word ZXSTDIVIDE_EPROM_WRITEPROTECT = 1; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2016-10-18 11:43:13
|
Revision: 5827 http://sourceforge.net/p/fuse-emulator/code/5827 Author: fredm Date: 2016-10-18 11:43:10 +0000 (Tue, 18 Oct 2016) Log Message: ----------- Merge changes from 1.3.0 release. Modified Paths: -------------- trunk/libspectrum/ChangeLog trunk/libspectrum/Makefile.am trunk/libspectrum/README trunk/libspectrum/configure.ac trunk/libspectrum/doc/libspectrum.3 trunk/libspectrum/doc/libspectrum.txt trunk/libspectrum/hacking/ChangeLog Property Changed: ---------------- trunk/libspectrum/ Index: trunk/libspectrum =================================================================== --- trunk/libspectrum 2016-10-16 07:35:25 UTC (rev 5826) +++ trunk/libspectrum 2016-10-18 11:43:10 UTC (rev 5827) Property changes on: trunk/libspectrum ___________________________________________________________________ Modified: svn:mergeinfo ## -10,6 +10,7 ## /branches/libspectrum_1_0_0-branch:4185-4222 /branches/libspectrum_1_1_0-branch:4928-5385 /branches/libspectrum_1_2_0-branch:5387-5767 +/branches/libspectrum_1_3_0-branch:5803-5826 /branches/ntsc-2009-04-11/libspectrum:4000-4147 /branches/opus-20090722/libspectrum:4046-4059 /branches/wii-20080828/libspectrum:3757-3946 \ No newline at end of property Modified: trunk/libspectrum/ChangeLog =================================================================== --- trunk/libspectrum/ChangeLog 2016-10-16 07:35:25 UTC (rev 5826) +++ trunk/libspectrum/ChangeLog 2016-10-18 11:43:10 UTC (rev 5827) @@ -1,3 +1,9 @@ +2016-10-02 Philip Kendall <phi...@sh...> + + * libspectrum 1.3.0 released. + + * Fix some compilation warnings (Philip Kendall). + 2016-08-21 Philip Kendall <phi...@sh...> * libspectrum 1.2.2 released. Modified: trunk/libspectrum/Makefile.am =================================================================== --- trunk/libspectrum/Makefile.am 2016-10-16 07:35:25 UTC (rev 5826) +++ trunk/libspectrum/Makefile.am 2016-10-18 11:43:10 UTC (rev 5827) @@ -76,7 +76,7 @@ ## * Always increase the revision value. ## * Increase the age value only if the changes made to the ABI are backward ## compatible. -libspectrum_la_LDFLAGS = -version-info 12:2:4 -no-undefined @WINDRES_LDFLAGS@ +libspectrum_la_LDFLAGS = -version-info 12:3:4 -no-undefined @WINDRES_LDFLAGS@ libspectrum_la_LIBADD = @AUDIOFILE_LIBS@ @GLIB_LIBS@ -lm Modified: trunk/libspectrum/README =================================================================== --- trunk/libspectrum/README 2016-10-16 07:35:25 UTC (rev 5826) +++ trunk/libspectrum/README 2016-10-18 11:43:10 UTC (rev 5827) @@ -1,4 +1,4 @@ -libspectrum 1.2.2 +libspectrum 1.3.0 ================= libspectrum is a library which is designed to make the input and @@ -67,6 +67,6 @@ Then, type "make" and if everything went well, "make install". Philip Kendall <phi...@sh...> -21st August, 2016 +2nd October, 2016 $Id$ Modified: trunk/libspectrum/configure.ac =================================================================== --- trunk/libspectrum/configure.ac 2016-10-16 07:35:25 UTC (rev 5826) +++ trunk/libspectrum/configure.ac 2016-10-18 11:43:10 UTC (rev 5827) @@ -22,12 +22,12 @@ dnl E-mail: phi...@sh... dnl Package version -m4_define([libspectrum_version], [1.2.2]) +m4_define([libspectrum_version], [1.3.0]) dnl Product full version m4_define([libspectrum_major_version], [1]) -m4_define([libspectrum_minor_version], [2]) -m4_define([libspectrum_micro_version], [2]) +m4_define([libspectrum_minor_version], [3]) +m4_define([libspectrum_micro_version], [0]) m4_define([libspectrum_nano_version], [0]) m4_define([libspectrum_full_version], [libspectrum_major_version.libspectrum_minor_version.libspectrum_micro_version.libspectrum_nano_version]) Modified: trunk/libspectrum/doc/libspectrum.3 =================================================================== --- trunk/libspectrum/doc/libspectrum.3 2016-10-16 07:35:25 UTC (rev 5826) +++ trunk/libspectrum/doc/libspectrum.3 2016-10-18 11:43:10 UTC (rev 5827) @@ -22,7 +22,7 @@ .\" E-mail: phi...@sh... .\" .\" -.TH libspectrum 3 "21st August, 2016" "Version 1.2.2" "Emulators" +.TH libspectrum 3 "2nd October, 2016" "Version 1.3.0" "Emulators" .\" .\"------------------------------------------------------------------ .\" Modified: trunk/libspectrum/doc/libspectrum.txt =================================================================== --- trunk/libspectrum/doc/libspectrum.txt 2016-10-16 07:35:25 UTC (rev 5826) +++ trunk/libspectrum/doc/libspectrum.txt 2016-10-18 11:43:10 UTC (rev 5827) @@ -1,4 +1,4 @@ -libspectrum 1.2.2 +libspectrum 1.3.0 ================= libspectrum is a fairly simple library designed to make the handling Modified: trunk/libspectrum/hacking/ChangeLog =================================================================== --- trunk/libspectrum/hacking/ChangeLog 2016-10-16 07:35:25 UTC (rev 5826) +++ trunk/libspectrum/hacking/ChangeLog 2016-10-18 11:43:10 UTC (rev 5827) @@ -1120,3 +1120,13 @@ 20160821 ChangeLog,README,configure.ac,doc/libspectrum.3: update release dates and mark this release as 1.2.2 (Fred). 20160823 pzx_read.c,szx.c: fix compilation warnings (Phil). +20160924 ChangeLog,Makefile.am,README,configure.ac: first updates for a "1.3.0" + release (Fred). +20160924 doc/{libspectrum.3,libspectrum.txt}: more updates for a "1.3.0" release + (Fred). +20160924 Makefile.am: change version to 12:3:4 as there are not ABI changes + since libspectrum 1.2.2 (Sergio). +20161002 ChangeLog,README,doc/libspectrum.3: update release dates for 1.3.0 + (Fred). +20161018 ChangeLog,Makefile.am,README,configure.ac,doc/{libspectrum.3, + libspectrum.txt}: merge changes from 1.3.0 release (Fred). This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |