Beebdis symbols

handy tools that can assist in the development of new software
Post Reply
iainfm
Posts: 404
Joined: Thu Jan 02, 2020 8:31 pm
Location: Dumbarton
Contact:

Beebdis symbols

Post by iainfm »

Hi,

I've found a possible bug in beebdis tonight. If I define a symbol in a file it is replaced for the standard .Lxxxx label if the address referred to is a code area. However, if I've defined the address in question as a byte or a string it doesn't get substituted.

For example, if symbols.asm contains

Code: Select all

mystring = $1E00
mybyte = $1F00
and the control file contains

Code: Select all

.
.
string $1E00 8
byte $1F00 1
.
.
symbols symbols.asm
then the disassembly will look like

Code: Select all

.L1E00 EQUS "12345678"
.
.
.L1F00 EQUB $00
instead of

Code: Select all

.mystring EQUS "12345678"
.
.
.mybyte EQUB $00
Not sure if I'm doing something wrong or if this is a bug. I notice the latest exe on github "Fixed several bugs introduced by lables in config file", but I'm not sure what those bugs were.

I can raise an issue on github if necessary :)
User avatar
MarkMoxon
Posts: 196
Joined: Thu Jul 18, 2019 4:38 pm
Contact:

Re: Beebdis symbols

Post by MarkMoxon »

iainfm wrote:
Thu Jun 03, 2021 10:36 pm
Not sure if I'm doing something wrong or if this is a bug. I notice the latest exe on github "Fixed several bugs introduced by lables in config file", but I'm not sure what those bugs were.

I can raise an issue on github if necessary :)
Not sure I can add much to this, Iain, other than to say I have this exact problem when using BeebDis. I too assumed it was probably something wrong in my control file, but then I saw your post. It would be great to fix - BeebDis has been a really useful tool, but this bug is a bit annoying.

I guess submitting a bug via GitHub would at least record the issue? I might even be tempted to take a look at it myself, if it doesn't get fixed by someone else; it's been a fair while since I did any Pascal, but it'd be worth having a go!

Mark
iainfm
Posts: 404
Joined: Thu Jan 02, 2020 8:31 pm
Location: Dumbarton
Contact:

Re: Beebdis symbols

Post by iainfm »

MarkMoxon wrote:
Fri Jun 04, 2021 7:06 pm
Not sure I can add much to this, Iain, other than to say I have this exact problem when using BeebDis. I too assumed it was probably something wrong in my control file, but then I saw your post. It would be great to fix - BeebDis has been a really useful tool, but this bug is a bit annoying.

I guess submitting a bug via GitHub would at least record the issue? I might even be tempted to take a look at it myself, if it doesn't get fixed by someone else; it's been a fair while since I did any Pascal, but it'd be worth having a go!

Mark
Thanks Mark, I opened an issue on github earlier today. It has crossed my mind to have a look at it as well (it's been a long (25 years) time since I looked at Pascal as well). I wonder how easy it'd be to port to python, for example... One for a rainy day!

I've only used it a handful of times, but there are a few other improvements I could think of. 1) For some reason, with some control files, the BeebDisStartAddr label is absent and 2) an auto-string finder would be useful, or failing that being able to specify a string within a byte-block would be good. (At the moment doing this duplicates the string as EQUBs and an EQUS. Again, this could be down to me not knowing what I'm doing entirely :lol:
melchett
Posts: 398
Joined: Tue Jan 28, 2003 9:52 am
Contact:

Re: Beebdis symbols

Post by melchett »

It's definitely a bug - I have the same issue and just work around it, it is a pain but the rest of the benefits the tool gives are wonderful. I thought it might just be how I was using it but I tried every before/after permutation I could think of in the control file and it won't replace the label after it has found it and processed it as a data area. My Pascal is a similar age and, actually, I cut and paste into a master file once I figure out what something is doing so it doesn't get in the way too much.
Prime
Posts: 2926
Joined: Mon Jun 01, 2009 12:52 am
Contact:

Re: Beebdis symbols

Post by Prime »

Hi all,

I'm a little busy at the mo, but will try and find some time to look into this.

@iainfm: There is a stringscan function, it's documented in the doc file on the Github repo.....

Cheers.

Phill.
Prime
Posts: 2926
Joined: Mon Jun 01, 2009 12:52 am
Contact:

Re: Beebdis symbols

Post by Prime »

Hi both,

Would it be possible to provide me with a zip file containing an example of where the bug hits?
Ideally this would contain symbol file, control file and binary (to disassemble).

Cheers.

Phill.
iainfm
Posts: 404
Joined: Thu Jan 02, 2020 8:31 pm
Location: Dumbarton
Contact:

Re: Beebdis symbols

Post by iainfm »

Hi,

Thanks very much for this, and for the stringscan tip - I'll try that next time. A quick example is attached. Assembling this source:

Code: Select all

org &3000

.start
LDA #65
STA &7C00
JMP over

.string
EQUS "This is a string"

.data
EQUB $01,$02,$03,$04

.over
LDA #66
STA &7C01
RTS
.end

SAVE "orig.bin",start,end
and disassembling it with this control file:

Code: Select all

load $3000 orig.bin
entry $3000
symbols orig.symbols
string $3008 16
byte $3018 4
# hexdump
# stringscan
save disassembled.asm
cpu 6502
and this symbols file:

Code: Select all

start  = $3000
over   = $301C
string = $3008
data   = $3018
m7_ss0 = $7C00
m7_ss1 = &7C01
Yields:

Code: Select all

m7_ss0  = $7C00
m7_ss1  = $7C01

        org     $3000
.start
        LDA     #$41
        STA     m7_ss0
        JMP     over

.L3008
        EQUS    "This is a string"

.L3018
        EQUB    $01,$02,$03,$04

.over
        LDA     #$42
        STA     m7_ss1
        RTS

.BeebDisEndAddr
SAVE ".\disassembled.bin",BeebDisStartAddr,BeebDisEndAddr
Note the labels for the string and the data have not been translated from the symbols file. Also, there's no entry for BeebDisStartAddr which is a problem I have with some disassemblies but not others. Not sure what the common factor is in the ones that worked - I may have been using an older version of beebdis though.

Thanks again for your help (and the disassembler)!
Attachments
BeebDisExample.zip
(1.18 KiB) Downloaded 1 time
Post Reply

Return to “development tools”