Title: Zpráva

Sorry, it should stay **I regularly use...**, obviously not you.

Aley



-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] On Behalf Of Aley Keprt
Sent: Monday, January 31, 2005 10:20 AM
To: sam-users@nvg.ntnu.no
Subject: RE: Fastest memory transfer (on Sam)


I really miss some features in that debugger, and documentation as well.

**U regularly** use ZX Spin emulator. It can't emulate Sam Coupe, but contains a very strong debugger, and also assembler compiler.

But, of course, I use SimCoupe to develop my new demo. It has so tight timings, that I wonder how it will look on the real machine. (I will test
later.) ;-)

Aley


-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] On Behalf Of Simon Owen
Sent: Monday, January 31, 2005 4:15 AM
To: sam-users@nvg.ntnu.no
Subject: RE: Fastest memory transfer (on Sam)


Aley Keprt wrote:
> I need to move (video) memory on Sam, what's the fastest routine?

Despite its unfinished state, the SimCoupe debugger can be used to time blocks of code.  Whenever you enter the debugger the T-diff value in the bottom right of the display shows the number of _real_ tstates that have passed since the debugger was last active.  If you're single-stepping it shows the time for the previous instruction, and if you step over a call or hit a breakpoint you'll get the time for the whole block.

In the absence of a debugger page-change function, a DI and HALT can be used to conveniently stop execution at the start of your code.  Call your code then enter the debugger and use Ctrl-Down to advance past the blocked HALT. If you've followed that by a CALL to your test code, press '8' on the numeric keypad to step over the CALL and read off the T-diff value for the entire sub-routine (including the CALL and RET).  Alternatively, scroll down and double-click on the final RET to set a breakpoint, then press Esc to exit the debugger and continue execution until the breakpoint is hit.

Of course, the ASIC/memory contention will depend on the current raster position, so you'll need to anchor the test starting point for consistent results.  You could perhaps use an EI/HALT/DI after the blocked HALT above or simply disable the screen for the duration of the test.

Si








Reply via email to