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