Very demanding improvement request

A place to discuss current and future developments for STeem

Moderators: Mug UK, Steem Authors, Moderator Team

Post Reply
AtariZoll
Fuji Shaped Bastard
Fuji Shaped Bastard
Posts: 2978
Joined: Mon Feb 20, 2012 4:42 pm
Contact:

Very demanding improvement request

Post by AtariZoll »

There is option to output any section of Atari RAM disassembled in Steem Debugger .
It would be useful to make disassemble code located in very low RAM , which can not do with usual disassemblers as Devpac - since they need TOS workspace intact. But it produces not really good output. Something like disassembling with Devpac, or some other good tool would be very nice - generating labels, may set multiple areas with data ...
Maybe possible to use some open source 68000 disasm. to make it easier ...
Famous Schrodinger's cat hypothetical experiment says that cat is dead or alive until we open box and see condition of poor animal, which deserved better logic. Cat is always in some certain state - regardless from is observer able or not to see what the state is.

User avatar
Steven Seagal
Fuji Shaped Bastard
Fuji Shaped Bastard
Posts: 2018
Joined: Sun Dec 04, 2005 9:12 am
Location: Undisclosed
Contact:

Re: Very demanding improvement request

Post by Steven Seagal »

AtariZoll wrote:There is option to output any section of Atari RAM disassembled in Steem Debugger .
It would be useful to make disassemble code located in very low RAM , which can not do with usual disassemblers as Devpac - since they need TOS workspace intact. But it produces not really good output.
It's not too bad I'd say!
Recently I changed notation of some displacements, + - decimal instead of + hexa
Testing, could be bugged... question of taste too maybe.
Something like disassembling with Devpac, or some other good tool would be very nice - generating labels
Does Devpac do it on the fly?
What I've recently added is labels for VBi, TimerB etc on the fly, quite handy.
, may set multiple areas with data ...
You mean group edit?
Maybe possible to use some open source 68000 disasm. to make it easier ...
Don't you use Steem 3.2 boiler anyway?
In the CIA we learned that ST ruled
Steem SSE: http://sourceforge.net/projects/steemsse

AtariZoll
Fuji Shaped Bastard
Fuji Shaped Bastard
Posts: 2978
Joined: Mon Feb 20, 2012 4:42 pm
Contact:

Re: Very demanding improvement request

Post by AtariZoll »

Generating proper labels is what is necessary:

Code: Select all


	beq.s +4 {$00044E}                               ; 000448: 6704 
	movea.l d0,a0                                    ; 00044A: 2040 
	jsr (a0)                                         ; 00044C: 4E90 
	movem.l (a7)+,D0-7/A0-6                          ; 00044E: 4CDF 7FFF 
Above is how Steem, and SSE Boiler does - ant that's not good.

Need something like:

beq.s l00044E
movea.l d0,a0
jsr (a0)
l00044E movem.l (a7)+,D0-7/A0-6

Then modding is easy.

To avoid mess like this:
ori.b #$80,d0 ; 000C38: 0000 7580
ori.b #$2a,d0 ; 000C3C: 0000 082A
ori.b #$14,d0 ; 000C40: 0000 0814
ori.b #$4c,d0 ; 000C44: 0000 084C
ori.b #$60,d0 ; 000C48: 0000 0860
ori.b #$88,d0 ; 000C4C: 0000 0888
ori.b #$18,d0 ; 000C50: 0000 0918
ori.b #$d6,d0 ; 000C54: 0000 08D6
ori.b #$68,d0 ; 000C58: 0000 0968
ori.b #$14,d0 ; 000C5C: 0000 0814
ori.b #$74,d0 ; 000C60: 0000 0874
ori.b #$96,d0 ; 000C64: 0000 0B96
ori.b #$14,d0 ; 000C68: 0000 0814
ori.b #$aa,d0 ; 000C6C: 0000 09AA
ori.b #$c4,d0 ; 000C70: 0000 0AC4


We need option to define segment(s) in area given for disassembly which contain data, and not code, so disassembler will output that segment with
dc.b 0,1,$44,$F .....
And because may be multiple such segments, possibility to give more . See how disasm in Devpac (MON) works.
Famous Schrodinger's cat hypothetical experiment says that cat is dead or alive until we open box and see condition of poor animal, which deserved better logic. Cat is always in some certain state - regardless from is observer able or not to see what the state is.

User avatar
Steven Seagal
Fuji Shaped Bastard
Fuji Shaped Bastard
Posts: 2018
Joined: Sun Dec 04, 2005 9:12 am
Location: Undisclosed
Contact:

Re: Very demanding improvement request

Post by Steven Seagal »

AtariZoll wrote: Then modding is easy.
How is modding easy? In fact to mod you need to compute displacement yourself.
Maybe I'll revert columns of the disassembly, I prefer it this way, like I did
for the disassembly of the IKBD rom:

Code: Select all

f000	96 88		ldaa 88
f002	81 aa		cmpa #aa
f004	27 0a		beq  0a (F010)
f006	cc 00 80	ldd  #0080
f009	20 09		bra  09 (F014)
f00b	7b 01 11	tim 0111
f00e	26 fb		bne  fb (F00B)
Same info as labels is there, generating labels is more demanding as you said.
Anyway it seems clear enough like that, I don't agree that it's not good.

We need option to define segment(s) in area given for disassembly which contain data, and not code, so disassembler will output that segment with
dc.b 0,1,$44,$F .....
And because may be multiple such segments, possibility to give more . See how disasm in Devpac (MON) works.
Yes those ORI are annoying, but it's not trivial to do either.
And is it dc.b, dc.w... ?
In the CIA we learned that ST ruled
Steem SSE: http://sourceforge.net/projects/steemsse

AtariZoll
Fuji Shaped Bastard
Fuji Shaped Bastard
Posts: 2978
Joined: Mon Feb 20, 2012 4:42 pm
Contact:

Re: Very demanding improvement request

Post by AtariZoll »

Yes, word demanding is used in thread title too :D
Why should I compute displacements, when we have assembler for that ?

bra.s label1
move d0,d1
label1 ....

If I want to add new line, I just add it, and assembler will do the rest:

bra.s label1
move d0,d1
move d2,d3
label1 ...

If there is bra.s +2 it will need to be changed by coder - ant that's exactly what we need to avoid.
Of course, that means at least 2 pass disassembling - you need first to generate label list, and in second pass to insert labels in every line where that label is accessed. This is why MON asks for Cross-reference list address - user needs to give there enough big RAM area begin address, where disassembler will locate list of labels - with names and positions.

MON generates dc.b by default . There could be some extra options too, like ASCII output for texts in middle of code, but let's not go in that right at beginning ..
Famous Schrodinger's cat hypothetical experiment says that cat is dead or alive until we open box and see condition of poor animal, which deserved better logic. Cat is always in some certain state - regardless from is observer able or not to see what the state is.

Post Reply

Return to “Development”