[Fuse-for-macosx-commits] SF.net SVN: fuse-for-macosx:[725] trunk/fuse/fusepb/controllers/ Debugger
Brought to you by:
fredm
From: <fr...@us...> - 2013-01-16 12:10:56
|
Revision: 725 http://sourceforge.net/p/fuse-for-macosx/code/725 Author: fredm Date: 2013-01-16 12:10:52 +0000 (Wed, 16 Jan 2013) Log Message: ----------- Fix display of memory map in debugger. Modified Paths: -------------- trunk/fuse/fusepb/controllers/DebuggerController.m Modified: trunk/fuse/fusepb/controllers/DebuggerController.m =================================================================== --- trunk/fuse/fusepb/controllers/DebuggerController.m 2013-01-02 04:55:28 UTC (rev 724) +++ trunk/fuse/fusepb/controllers/DebuggerController.m 2013-01-16 12:10:52 UTC (rev 725) @@ -186,7 +186,6 @@ - (void)debugger_update:(id)sender { - size_t i; char buffer[40]; NSString *format_16_bit, *format_8_bit; int capabilities; @@ -195,6 +194,9 @@ NSString *stack_address, *stack_value; GSList *ptr; libspectrum_word address; + int source, page_num, writable, contended; + libspectrum_word offset; + size_t i, j, block, row; if( debugger_output_base == 10 ) { format_16_bit = @"%5d"; @@ -430,21 +432,44 @@ [memoryMapContents retain]; - for( i = 0; i < 8; i++ ) { + source = page_num = writable = contended = -1; + offset = 0; + row = 0; + + for( i = 0; i < MEMORY_PAGES_IN_64K; i++ ) { + memory_page *page = &memory_map_read[i]; - NSString *memory_map_address = [NSString stringWithFormat:format_16_bit, i*MEMORY_PAGE_SIZE ]; - NSString *memory_map_type = [NSString stringWithFormat:@"%s", memory_source_description( memory_map_read[i].source )]; - NSNumber *memory_map_page = @(memory_map_read[i].page_num); - NSString *memory_map_writeable = [NSString stringWithFormat:@"%s", memory_map_read[i].writable ? "Y" : "N" ]; - NSString *memory_map_contended = [NSString stringWithFormat:@"%s", memory_map_read[i].contended ? "Y" : "N" ]; + if( page->source != source || + page->page_num != page_num || + page->offset != offset || + page->writable != writable || + page->contended != contended ) { - [memoryMapContents addObject: - @{@"address": memory_map_address, - @"type": memory_map_type, - @"page": memory_map_page, - @"writeable": memory_map_writeable, - @"contended": memory_map_contended} - ]; + NSString *memory_map_address = [NSString stringWithFormat:format_16_bit, i*MEMORY_PAGE_SIZE ]; + NSString *memory_map_type = [NSString stringWithFormat:@"%s", memory_source_description( page->source )]; + NSNumber *memory_map_page = @(memory_map_read[i].page_num); + NSString *memory_map_writeable = [NSString stringWithFormat:@"%s", page->writable ? "Y" : "N" ]; + NSString *memory_map_contended = [NSString stringWithFormat:@"%s", page->contended ? "Y" : "N" ]; + + [memoryMapContents addObject: + @{@"address": memory_map_address, + @"type": memory_map_type, + @"page": memory_map_page, + @"writeable": memory_map_writeable, + @"contended": memory_map_contended} + ]; + + row++; + + source = page->source; + page_num = page->page_num; + writable = page->writable; + contended = page->contended; + offset = page->offset; + } + + /* We expect the next page to have an increased offset */ + offset += MEMORY_PAGE_SIZE; } [memoryMap reloadData]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |