#302 Time breakpoints longer than a frame


Fuse don't manage well time breakpoints longer than a frame, e.g., while loading a disk the event list show:

  24569 Timer
  70908 End of frame
1383589 FDD motor on
1594240 UPD FDC head (un)load

Double clicking over FDD event add a new time breakpoint with value 1383589 and one-shot life, but this breakpoint never get activated. After manually breaking the emulation the event list shows a plethora of events:

  36337 Breakpoint
  70908 End of frame
 107245 Breakpoint
 157014 Timer
 178153 Breakpoint
 249061 Breakpoint
 319969 Breakpoint
 390877 Breakpoint
 461785 Breakpoint
 532693 Breakpoint
 603601 Breakpoint
 674509 Breakpoint
 745417 Breakpoint
 816325 Breakpoint
 887233 Breakpoint
 958141 Breakpoint
1029049 Breakpoint
1099957 Breakpoint
1170865 Breakpoint
1241773 Breakpoint
1312681 Breakpoint
1383589 Breakpoint
1396701 UPD FDC timeout

There are two problems to address here:
1. Time events are reduced in every frame, so when the final countdown ends the breakpoint has a value greater than a frame and does not get activated. The value of time breakpoints should also be reduced in every frame.
2. debugger_add_time_events() add events corresponding to time breakpoints that happen during this frame (1383589 in the former example), but this should only be done for permanent breakpoints that have been triggered.

The attached patch fix these issues. Comments and suggestions are more than welcome.

1 Attachments


  • Fredrick Meunier

    The change looks reasonable to me.

  • Sergio Baldoví

    Sergio Baldoví - 2013-09-28
    • status: open --> pending-fixed
  • Sergio Baldoví

    Sergio Baldoví - 2013-10-13
    • status: pending-fixed --> closed-fixed

Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

JavaScript is required for this form.

No, thanks