Boiler / Blitter and Memory Browser bug

A place to discuss current and future developments for STeem

Moderators: Mug UK, Steem Authors, Moderator Team

User avatar
Cyprian
Atari God
Atari God
Posts: 1298
Joined: Fri Oct 04, 2002 11:23 am
Location: Warsaw, Poland

Boiler / Blitter and Memory Browser bug

Postby Cyprian » Sun Mar 08, 2015 12:23 pm

I'm testing some blitter routines. I have open Memory Browser with location where blitter copies the data (destination point). Initially that part of memory is filled with 0's .
When I put a breakpoint after blitters code and run it, then I see valid new data in that Memory Browser. But when I use "Trace Into" button, Memory Browser isn't refreshed and shows old data - 0's.
Jaugar / TT030 / Mega STe / 800 XL / 1040 STe / Falcon030 / 65 XE / 520 STm / SM124 / SC1435
SDrive / PAK68/3 / CosmosEx / SatanDisk / UltraSatan / USB Floppy Drive Emulator / Eiffel / SIO2PC / Crazy Dots / PAM Net
Hatari / Aranym / Steem / Saint
http://260ste.appspot.com/

User avatar
Cyprian
Atari God
Atari God
Posts: 1298
Joined: Fri Oct 04, 2002 11:23 am
Location: Warsaw, Poland

Re: Boiler / Blitter and Memory Browser bug

Postby Cyprian » Sun Mar 08, 2015 11:19 pm

Steven,
it seems that issue exists also after pressing "RUN" button. Below you can find screnshoots done after each of thee breakpoints.
The first one is before blitting process, the second one is after blitting, and the third one is after saving the result to the file BLIT.BIN
Blitting is invoked at address 00F1EC - "move.b #$c3,60(a6)", and should be done before "nop" at 00F1F2
The Memory Browser window after the first breakpoint looks ok - there are only 0's. The Memory Browser after breakpoint 2 (after blitting) should be the same as after breakpoint 3 but it doesn't.

Breakpoint 1
BKP1.png



Breakpoint 2
BKP2.png



Breakpoint 3
BKP3.png
You do not have the required permissions to view the files attached to this post.
Jaugar / TT030 / Mega STe / 800 XL / 1040 STe / Falcon030 / 65 XE / 520 STm / SM124 / SC1435
SDrive / PAK68/3 / CosmosEx / SatanDisk / UltraSatan / USB Floppy Drive Emulator / Eiffel / SIO2PC / Crazy Dots / PAM Net
Hatari / Aranym / Steem / Saint
http://260ste.appspot.com/

User avatar
Steven Seagal
Atari God
Atari God
Posts: 1659
Joined: Sun Dec 04, 2005 9:12 am
Location: Undisclosed
Contact:

Re: Boiler / Blitter and Memory Browser bug

Postby Steven Seagal » Thu Mar 12, 2015 9:09 am

When you're stepping, Steem considers itself stopped.
Because of a test for "run state" in the blit procedure, the blit just doesn't happen.
I can fix it, but it looks a bit "dangerous" to me, though if it's boiler-only...

Code: Select all

#ifdef TEST01
  while (1 ){
    while (cpu_cycles>0 && 1){
#else
  while (runstate==RUNSTATE_RUNNING){
    while (cpu_cycles>0 && runstate==RUNSTATE_RUNNING){
#endif
In the CIA we learned that ST ruled
Steem SSE: http://ataristeven.exxoshost.co.uk/Steem.htm

User avatar
Cyprian
Atari God
Atari God
Posts: 1298
Joined: Fri Oct 04, 2002 11:23 am
Location: Warsaw, Poland

Re: Boiler / Blitter and Memory Browser bug

Postby Cyprian » Thu Mar 12, 2015 11:23 am

I've checked that, and this issue happens only when a breakpoint is set at the next instruction after blitter start.
When I set a breakpoint at the first NOP in that case below, MOVE will see 0's (initial value). But when a breakpoint will be at the second NOP, MOVE will see proper, blitted value.

Code: Select all

   move.b #$c3,60(a6)      ; Do Blit
   nop
   nop
   move.w   $4E(A4),D0


OK, I can live with that workaround.
Jaugar / TT030 / Mega STe / 800 XL / 1040 STe / Falcon030 / 65 XE / 520 STm / SM124 / SC1435
SDrive / PAK68/3 / CosmosEx / SatanDisk / UltraSatan / USB Floppy Drive Emulator / Eiffel / SIO2PC / Crazy Dots / PAM Net
Hatari / Aranym / Steem / Saint
http://260ste.appspot.com/


Social Media

     

Return to “Development”

Who is online

Users browsing this forum: No registered users and 1 guest