Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.sys.acorn.programmer > #1139 > unrolled thread

Loading and executing address of an absolute file (filetype &ff8) ?

Started byXavier <xltardy@gmail.com>
First post2011-12-02 15:07 -0800
Last post2011-12-03 06:41 +0100
Articles 16 — 8 participants

Back to article view | Back to comp.sys.acorn.programmer


Contents

  Loading and executing address of an absolute file (filetype &ff8) ? Xavier <xltardy@gmail.com> - 2011-12-02 15:07 -0800
    Re: Loading and executing address of an absolute file (filetype &ff8) ? Martin Bazley <martin.bazley@blueyonder.co.uk> - 2011-12-03 00:59 +0000
      Re: Loading and executing address of an absolute file (filetype &ff8) ? Xavier Tardy <xt.xbecosolutions@gmail.com> - 2011-12-03 03:30 -0800
      Re: Loading and executing address of an absolute file (filetype &ff8) ? Xavier Tardy <xt.xbecosolutions@gmail.com> - 2011-12-03 03:49 -0800
        Re: Loading and executing address of an absolute file (filetype &ff8) ? cferris@freeRemoveuk.com.invalid - 2011-12-03 17:26 +0000
          Re: Loading and executing address of an absolute file (filetype &ff8) ? Xavier <xltardy@gmail.com> - 2011-12-03 13:55 -0800
            Re: Loading and executing address of an absolute file (filetype &ff8) ? cferris@freeRemoveuk.com.invalid - 2011-12-03 22:57 +0000
              Re: Loading and executing address of an absolute file (filetype &ff8) ? Xavier <xltardy@gmail.com> - 2011-12-07 14:28 -0800
      Re: Loading and executing address of an absolute file (filetype &ff8) ? Xavier Tardy <xt.xbecosolutions@gmail.com> - 2011-12-03 04:05 -0800
        Re: Loading and executing address of an absolute file (filetype &ff8) ? cferris@freeRemoveuk.com.invalid - 2011-12-03 12:27 +0000
        Re: Loading and executing address of an absolute file (filetype &ff8) ? Steve Fryatt <news@stevefryatt.org.uk> - 2011-12-03 12:30 +0000
        Re: Loading and executing address of an absolute file (filetype &ff8) ? Erik G <erikg@noname.invalid> - 2011-12-03 14:17 +0100
          Re: Loading and executing address of an absolute file (filetype &ff8) ? Xavier <xltardy@gmail.com> - 2011-12-03 13:57 -0800
          Re: Loading and executing address of an absolute file (filetype &ff8) ? Xavier <xltardy@gmail.com> - 2011-12-03 14:01 -0800
          Re: Loading and executing address of an absolute file (filet jgh@arcade.demon.co.uk (Jonathan Graham Harston) - 2011-12-07 23:58 +0000
    Re: Loading and executing address of an absolute file (filetype &ff8) ? Rick Murray <heyrickmail-usenet@yahoo.co.uk> - 2011-12-03 06:41 +0100

#1139 — Loading and executing address of an absolute file (filetype &ff8) ?

FromXavier <xltardy@gmail.com>
Date2011-12-02 15:07 -0800
SubjectLoading and executing address of an absolute file (filetype &ff8) ?
Message-ID<6c31fa5d-0753-4160-801c-51e9eed08a01@g7g2000vbd.googlegroups.com>
Hello everybody.

On a RISC OS 3.1 machine, I'd like to disassemble a demo (as from what
I see it masters extremely well the IOC timers, and I'm curious to
understand how it's achieved).
My problem is that it's one single absolute file (filetype &ff8).
How can I know where it loads in memory, and what the executing
address is (if they can be different) to start disassembling it from
the right place ?

My knowledge of how the filer launches files dates 15+ years ...so I
need your help.
Thank you.

PS : The demo writer is Karl Morton, if you've never seen his 3 demos
(Demo1, KarlDemo2, CopperSine), you've really missed something, I can
send them to you if you email me.

[toc] | [next] | [standalone]


#1140

FromMartin Bazley <martin.bazley@blueyonder.co.uk>
Date2011-12-03 00:59 +0000
Message-ID<f8e48a3b52.martin@blueyonder.co.uk>
In reply to#1139
The following bytes were arranged on 2 Dec 2011 by Xavier :

> On a RISC OS 3.1 machine, I'd like to disassemble a demo (as from what
> I see it masters extremely well the IOC timers, and I'm curious to
> understand how it's achieved).
> My problem is that it's one single absolute file (filetype &ff8).
> How can I know where it loads in memory, and what the executing
> address is (if they can be different) to start disassembling it from
> the right place ?

The loading and executing addresses of all absolute files are &8000.
Your disassembler should have told you this itself.

(...You *are* using a disassembler, right?)

-- 
  __<^>__
 / _   _ \  I don't have a problem with God; it's his fan club I can't stand.
( ( |_| ) )
 \_>   <_/  ======================= Martin Bazley ==========================

[toc] | [prev] | [next] | [standalone]


#1146

FromXavier Tardy <xt.xbecosolutions@gmail.com>
Date2011-12-03 03:30 -0800
Message-ID<7a3aa5be-8bbf-4448-b298-e89f37f32542@q11g2000vbq.googlegroups.com>
In reply to#1140
On 3 déc, 01:59, Martin Bazley <martin.baz...@blueyonder.co.uk> wrote:
> The following bytes were arranged on 2 Dec 2011 by Xavier :
>
> > On a RISC OS 3.1 machine, I'd like to disassemble a demo (as from what
> > I see it masters extremely well the IOC timers, and I'm curious to
> > understand how it's achieved).
> > My problem is that it's one single absolute file (filetype &ff8).
> > How can I know where it loads in memory, and what the executing
> > address is (if they can be different) to start disassembling it from
> > the right place ?
>
> The loading and executing addresses of all absolute files are &8000.
> Your disassembler should have told you this itself.
>
> (...You *are* using a disassembler, right?)
>
> --
>   __<^>__
>  / _   _ \  I don't have a problem with God; it's his fan club I can't stand.
> ( ( |_| ) )
>  \_>   <_/  ======================= Martin Bazley ==========================

[toc] | [prev] | [next] | [standalone]


#1147

FromXavier Tardy <xt.xbecosolutions@gmail.com>
Date2011-12-03 03:49 -0800
Message-ID<d43e0a12-96ac-4a7c-b318-81ffa3ca702b@w3g2000vbw.googlegroups.com>
In reply to#1140
On 3 déc, 01:59, Martin Bazley <martin.baz...@blueyonder.co.uk> wrote:
[SNIP]

> The loading and executing addresses of all absolute files are &8000.
> Your disassembler should have told you this itself.
>
> (...You *are* using a disassembler, right?)
[SNIP]

Well no, my dear friend, I've got a demo loading and starting at
&10000,
namely DEMO1 by Karl Morton, it's why I thought there was no general
rules.
I intend to use QDBug as it's the one I'm (more or less) familiar with
to debug my game, and I simply
wanted to load the file, and start QDBug  right before calling the
right starting address.
Sorry I'm not a pro, just an amateur with some good ideas once in a
while, with a lot to re learn or learn as nearly
15 years have passed since I was really into programming.
If I ask your help here it proves I admit my inferior knowledge, so
there's no need for your *irony/sarcasms*.
It's very frustrating and not constructive.
Have a good week end anyway.
Xavier.

[toc] | [prev] | [next] | [standalone]


#1157

Fromcferris@freeRemoveuk.com.invalid
Date2011-12-03 17:26 +0000
Message-ID<9e4de53b52.cferris@cferris.freeuk.com>
In reply to#1147
In message
<d43e0a12-96ac-4a7c-b318-81ffa3ca702b@w3g2000vbw.googlegroups.com>
          Xavier Tardy <xt.xbecosolutions@gmail.com> wrote:

> On 3 déc, 01:59, Martin Bazley <martin.baz...@blueyonder.co.uk> wrote:
> [SNIP]
> 
> > The loading and executing addresses of all absolute files are &8000.
> > Your disassembler should have told you this itself.
> >
> > (...You *are* using a disassembler, right?)

[snip]

> I intend to use QDBug as it's the one I'm (more or less) familiar with
> to debug my game,

Which version of QDBug are you using - I have a disc here - but it
didn't seem to work with RO3.1 - perhaps it was a RO2 compatable.

Do you have to use the 'key disc' - if not it might work with one of
the Archimedes emulators.

Thanks for any info.
-- 
Colin Ferris Cornwall UK

[toc] | [prev] | [next] | [standalone]


#1158

FromXavier <xltardy@gmail.com>
Date2011-12-03 13:55 -0800
Message-ID<dda82cb2-1eb0-4901-8e2b-fa5f30df5e23@13g2000vbu.googlegroups.com>
In reply to#1157
On 3 déc, 18:26, cfer...@freeRemoveuk.com.invalid wrote:

 [snip]
>
> > I intend to use QDBug as it's the one I'm (more or less) familiar with
> > to debug my game,
>
> Which version of QDBug are you using - I have a disc here - but it
> didn't seem to work with RO3.1 - perhaps it was a RO2 compatable.
>
> Do you have to use the 'key disc' - if not it might work with one of
> the Archimedes emulators.
>
> Thanks for any info.
> --
> Colin Ferris Cornwall UK

Good evening.

I use an RO 3.1 compatable QDBug.
I had lost my copy directly bought from its author (a French
compatriot, Christophe Thivend) and finally
managed to get a copy from sbdy who had one.
Sadly it's registered and I was asked not to share his copy.
There is no key disc on this version, though, or I don't understand
what you mean with these terms.
I find it to be a wondeful tool, as it works 'off' the RISC OS WIMP
environment.
I've never seen more than 1 review about QDBug in BBC Acorn User or
Archimedes World, and that's a pity.
The version I own is 1.01, and if there's been an update I'd be happy
to get a copy.

[toc] | [prev] | [next] | [standalone]


#1162

Fromcferris@freeRemoveuk.com.invalid
Date2011-12-03 22:57 +0000
Message-ID<139b033c52.cferris@cferris.freeuk.com>
In reply to#1158
In message <dda82cb2-1eb0-4901-8e2b-fa5f30df5e23@13g2000vbu.googlegroups.com>
          Xavier <xltardy@gmail.com> wrote:

> On 3 déc, 18:26, cfer...@freeRemoveuk.com.invalid wrote:
> 
>  [snip]
> >
> > > I intend to use QDBug as it's the one I'm (more or less) familiar with
> > > to debug my game,
> >
> > Which version of QDBug are you using - I have a disc here - but it
> > didn't seem to work with RO3.1 - perhaps it was a RO2 compatable.
> >
> > Do you have to use the 'key disc' - if not it might work with one of
> > the Archimedes emulators.
> >
> > Thanks for any info.
> > --
> > Colin Ferris Cornwall UK
> 
> Good evening.
> 
> I use an RO 3.1 compatable QDBug.
> I had lost my copy directly bought from its author (a French
> compatriot, Christophe Thivend) and finally
> managed to get a copy from sbdy who had one.
> Sadly it's registered and I was asked not to share his copy.
> There is no key disc on this version, though, or I don't understand
> what you mean with these terms.

Does the program floppy need to be in the drive - when the program is
run from the harddisc?

If not - can the program be run from one of the 'Archimedes' emulators?

Thanks
-- 
Colin Ferris Cornwall UK

[toc] | [prev] | [next] | [standalone]


#1167

FromXavier <xltardy@gmail.com>
Date2011-12-07 14:28 -0800
Message-ID<f71c3330-37b9-4405-9712-b2534cebd7a6@n10g2000vbg.googlegroups.com>
In reply to#1162
On 3 déc, 23:57, cfer...@freeRemoveuk.com.invalid wrote:
[SNIP]
> Does the program floppy need to be in the drive - when the program is
> run from the harddisc?
>
No, there's no protection. The only thing is that it's registered with
the owner's name.

> If not - can the program be run from one of the 'Archimedes' emulators?
>
I've not tried yet but will do it this week end and come back here to
answer.

> Thanks

You're welcome.

> --
> Colin Ferris Cornwall UK

[toc] | [prev] | [next] | [standalone]


#1148

FromXavier Tardy <xt.xbecosolutions@gmail.com>
Date2011-12-03 04:05 -0800
Message-ID<ab6a9ee8-0a2b-4b02-8084-149185ce55fe@n10g2000vbg.googlegroups.com>
In reply to#1140
On 3 déc, 01:59, Martin Bazley <martin.baz...@blueyonder.co.uk> wrote:
[SNIP]

> The loading and executing addresses of all absolute files are &8000.
> Your disassembler should have told you this itself.
>
> (...You *are* using a disassembler, right?)
>
OK.
Is there a way, with another filetype or another mean, to specify a
different loading and executing address.
I ask this as DEMO1, for example, is a single file, I tranfered it
using a PC diskette (and thus I've lost its filetype) and it appears
it has to be loaded and executed at &10000.
Thanks.

[toc] | [prev] | [next] | [standalone]


#1149

Fromcferris@freeRemoveuk.com.invalid
Date2011-12-03 12:27 +0000
Message-ID<90e3c93b52.cferris@cferris.freeuk.com>
In reply to#1148
In message <ab6a9ee8-0a2b-4b02-8084-149185ce55fe@n10g2000vbg.googlegroups.com>
          Xavier Tardy <xt.xbecosolutions@gmail.com> wrote:

> On 3 déc, 01:59, Martin Bazley <martin.baz...@blueyonder.co.uk> wrote:
> [SNIP]
> 
> > The loading and executing addresses of all absolute files are &8000.
> > Your disassembler should have told you this itself.
> >
> > (...You *are* using a disassembler, right?)
> >
> OK.
> Is there a way, with another filetype or another mean, to specify a
> different loading and executing address.
> I ask this as DEMO1, for example, is a single file, I tranfered it
> using a PC diskette (and thus I've lost its filetype) and it appears
> it has to be loaded and executed at &10000.

I suppose the question is does the program run on a Archimedes?
Usually programs are run and exec at &8000

On the older programs you had a choice of different loading and exec
addresses - and I think that info  was shown in !Zap - there was no file
type - and you get a blank box ie no icon in the 'Save as' window.

Have a look at '*help LOAD' & '*Help GO'

-- 
Colin Ferris Cornwall UK

[toc] | [prev] | [next] | [standalone]


#1150

FromSteve Fryatt <news@stevefryatt.org.uk>
Date2011-12-03 12:30 +0000
Message-ID<mpro.lvmo3l04jsry801p0.news@stevefryatt.org.uk>
In reply to#1148
On 3 Dec, Xavier Tardy wrote in message
    <ab6a9ee8-0a2b-4b02-8084-149185ce55fe@n10g2000vbg.googlegroups.com>:

> On 3 déc, 01:59, Martin Bazley <martin.baz...@blueyonder.co.uk> wrote:
> [SNIP]
> 
> > The loading and executing addresses of all absolute files are &8000.
> > Your disassembler should have told you this itself.
> >
> > (...You *are* using a disassembler, right?)
> >
> OK. Is there a way, with another filetype or another mean, to specify a
> different loading and executing address.

Not via a filetype.  The only way to specify load and execute addresses is
to use an /untyped/ file with the Load and Exec addresses set correctly.

The filetype details are stored in the space on disc originally used by the
Load and Exec addresses.

> I ask this as DEMO1, for example, is a single file, I tranfered it using a
> PC diskette (and thus I've lost its filetype) and it appears it has to be
> loaded and executed at &10000.

It probably never had a filetype, in that case.

-- 
Steve Fryatt - Leeds, England             Wakefield Acorn & RISC OS Show
                                             Saturday 28 April 2012
http://www.stevefryatt.org.uk/           http://www.wakefieldshow.org.uk/

[toc] | [prev] | [next] | [standalone]


#1151

FromErik G <erikg@noname.invalid>
Date2011-12-03 14:17 +0100
Message-ID<4eda2169$0$7954$e4fe514c@dreader35.news.xs4all.nl>
In reply to#1148
On 3-12-2011 13:05, Xavier Tardy wrote:
> Is there a way, with another filetype or another means, to specify a
> different loading and executing address.
> I ask this as DEMO1, for example, is a single file, I transferred it
> using a PC diskette (and thus I've lost its filetype) and it appears
> it has to be loaded and executed at &10000.
> Thanks.

Sadly for you the load/exec address information is stored by the filer,
and not in the file itself. So when the file was transferred this
information was lost.

The simplest that I can think of to add load/execution info to a file is
to use the *load and *save commands.

First find out the size in bytes of your file (menu-click on the file,
submenu of the file, select Info). Convert this size to a hexadecimal
number. The SciCalc application is good for this conversion. You can
find it in Apps. Enter the decimal value, then click Base until it shows
the value in hex.

(If the file is bigger than say 500 k bytes, increase the 'Next' window
slot so the Taskwindow you are about to open will have enough memory to
hold the file.)

Then open a Taskwindow, and type 'help load' and 'help save' to get the
syntax of these commands. Here is what I got:
------
*help load
==> Help on keyword Load
*Load with no specified address loads the named file at its own load
address. If a load address (hexadecimal) is specified, it will be used
instead.
Syntax: *Load <filename> [<load addr>]

*help save
==> Help on keyword Save
*Save copies the given area of memory to the named file. Length and
addresses are in hexadecimal.
Syntax: *Save <filename> <start addr> [<end addr> | +<length>] [<exec
addr> [<load addr>]]
------

If you simply type

*Load yourabsfile

that will, I believe, load your file at &8000.

You can then save it with

*Save othername 8000 +<size of the file in hex> 10000 10000

This will save the same block of memory, but with the execution address
and load address now both set at &10000. Note that the exec address goes
first, followed by the load address.

To save with other exec and load addresses all you need to do is change
the last two parameters of the Save command. The rest can stay the same.

Good luck.
-- 
Erik G.
From address is fake
See http://erikgrnh.home.xs4all.nl/

[toc] | [prev] | [next] | [standalone]


#1159

FromXavier <xltardy@gmail.com>
Date2011-12-03 13:57 -0800
Message-ID<1e102926-610b-4f0d-9e6c-ac4ebb92e07c@o1g2000vbe.googlegroups.com>
In reply to#1151
On 3 déc, 14:17, Erik G <er...@noname.invalid> wrote:
> On 3-12-2011 13:05, Xavier Tardy wrote:
>
> > Is there a way, with another filetype or another means, to specify a
> > different loading and executing address.
> > I ask this as DEMO1, for example, is a single file, I transferred it
> > using a PC diskette (and thus I've lost its filetype) and it appears
> > it has to be loaded and executed at &10000.
> > Thanks.
>
> Sadly for you the load/exec address information is stored by the filer,
> and not in the file itself. So when the file was transferred this
> information was lost.
>
> The simplest that I can think of to add load/execution info to a file is
> to use the *load and *save commands.
>
> First find out the size in bytes of your file (menu-click on the file,
> submenu of the file, select Info). Convert this size to a hexadecimal
> number. The SciCalc application is good for this conversion. You can
> find it in Apps. Enter the decimal value, then click Base until it shows
> the value in hex.
>
> (If the file is bigger than say 500 k bytes, increase the 'Next' window
> slot so the Taskwindow you are about to open will have enough memory to
> hold the file.)
>
> Then open a Taskwindow, and type 'help load' and 'help save' to get the
> syntax of these commands. Here is what I got:
> ------
> *help load
> ==> Help on keyword Load
> *Load with no specified address loads the named file at its own load
> address. If a load address (hexadecimal) is specified, it will be used
> instead.
> Syntax: *Load <filename> [<load addr>]
>
> *help save
> ==> Help on keyword Save
> *Save copies the given area of memory to the named file. Length and
> addresses are in hexadecimal.
> Syntax: *Save <filename> <start addr> [<end addr> | +<length>] [<exec
> addr> [<load addr>]]
> ------
>
> If you simply type
>
> *Load yourabsfile
>
> that will, I believe, load your file at &8000.
>
> You can then save it with
>
> *Save othername 8000 +<size of the file in hex> 10000 10000
>
> This will save the same block of memory, but with the execution address
> and load address now both set at &10000. Note that the exec address goes
> first, followed by the load address.
>
> To save with other exec and load addresses all you need to do is change
> the last two parameters of the Save command. The rest can stay the same.
>
> Good luck.
> --
> Erik G.
> From address is fake
> Seehttp://erikgrnh.home.xs4all.nl/

Thanks a lot Erik, I now know everything.

[toc] | [prev] | [next] | [standalone]


#1160

FromXavier <xltardy@gmail.com>
Date2011-12-03 14:01 -0800
Message-ID<6910f22a-bf14-48d2-b753-2cbb90a356fc@o1g2000vbe.googlegroups.com>
In reply to#1151
On 3 déc, 14:17, Erik G <er...@noname.invalid> wrote:
> On 3-12-2011 13:05, Xavier Tardy wrote:
>
> > Is there a way, with another filetype or another means, to specify a
> > different loading and executing address.
> > I ask this as DEMO1, for example, is a single file, I transferred it
> > using a PC diskette (and thus I've lost its filetype) and it appears
> > it has to be loaded and executed at &10000.
> > Thanks.
>
> Sadly for you the load/exec address information is stored by the filer,
> and not in the file itself. So when the file was transferred this
> information was lost.
>
> The simplest that I can think of to add load/execution info to a file is
> to use the *load and *save commands.
>
> First find out the size in bytes of your file (menu-click on the file,
> submenu of the file, select Info). Convert this size to a hexadecimal
> number. The SciCalc application is good for this conversion. You can
> find it in Apps. Enter the decimal value, then click Base until it shows
> the value in hex.
>
> (If the file is bigger than say 500 k bytes, increase the 'Next' window
> slot so the Taskwindow you are about to open will have enough memory to
> hold the file.)
>
> Then open a Taskwindow, and type 'help load' and 'help save' to get the
> syntax of these commands. Here is what I got:
> ------
> *help load
> ==> Help on keyword Load
> *Load with no specified address loads the named file at its own load
> address. If a load address (hexadecimal) is specified, it will be used
> instead.
> Syntax: *Load <filename> [<load addr>]
>
> *help save
> ==> Help on keyword Save
> *Save copies the given area of memory to the named file. Length and
> addresses are in hexadecimal.
> Syntax: *Save <filename> <start addr> [<end addr> | +<length>] [<exec
> addr> [<load addr>]]
> ------
>
> If you simply type
>
> *Load yourabsfile
>
> that will, I believe, load your file at &8000.
>
> You can then save it with
>
> *Save othername 8000 +<size of the file in hex> 10000 10000
>
> This will save the same block of memory, but with the execution address
> and load address now both set at &10000. Note that the exec address goes
> first, followed by the load address.
>
> To save with other exec and load addresses all you need to do is change
> the last two parameters of the Save command. The rest can stay the same.
>
> Good luck.
> --
> Erik G.
> From address is fake
> Seehttp://erikgrnh.home.xs4all.nl/

Thanks a lot Erik, I now know everything.
Thanks to all of you for your explanations.

[toc] | [prev] | [next] | [standalone]


#1168 — Re: Loading and executing address of an absolute file (filet

Fromjgh@arcade.demon.co.uk (Jonathan Graham Harston)
Date2011-12-07 23:58 +0000
SubjectRe: Loading and executing address of an absolute file (filet
Message-ID<111208002501@arcade.demon.co.uk>
In reply to#1151
erikg wrote:
> If you simply type
> 
> *Load yourabsfile
> 
> that will, I believe, load your file at &8000.
 
No, that will load the file with the file's default loading action.
 
If the file is filetyped, the default loading action is the command
in Alias$@LoadType_xxx.
 
If there is no Alias$@LoadType_xxx defined, the default loading
action for &FF8 (Absolute) is to load to the bottom of absolute
user space at &8000.
 
If the file is not filetyped, the default load action is to load to
the address in the file's load address field (the field that is
used to store the bottom 32 bits of the timestamp of a filetyped
file).
 
What you wanted above was:
 
*Load yourabsfile 8000
 
-- 
J.G.Harston - jgh@mdfs.net - mdfs.net/jgh
Whitby Yards Gazetteer - http://mdfs.net/Docs/Books/YofWhitby/Gazetteer

[toc] | [prev] | [next] | [standalone]


#1142

FromRick Murray <heyrickmail-usenet@yahoo.co.uk>
Date2011-12-03 06:41 +0100
Message-ID<4ed9b673$0$5691$ba4acef3@reader.news.orange.fr>
In reply to#1139
On 03/12/2011 00:07, Xavier wrote:

> My problem is that it's one single absolute file (filetype&ff8).

If it has a filetype, it does NOT have load/exec addresses. Therefore it 
will use the application default, which is at &8000.

What disassembler are you using that it didn't already set itself up 
appropriately?


> How can I know where it loads in memory, and what the executing
> address is (if they can be different)

*ALL* RISC OS applications load at &8000. Clever memory fiddling makes 
it possible. :-)

All applications begin at &8000 - and in an APCS program (i.e. compiled 
C, or desktop assembler code) the first four instructions will be 
branches (BL), followed by SWI OS_Exit. The first three are optional 
(can be MOV R0, R0 for a NOP) and are for decompress code, zero init 
code, etc. The fourth is a branch to the start of the program, which may 
not point to anything specific until *after* the code has been decompressed.
I mention this as it is often useful to break on the fourth branch and 
snapshot the program so you have a copy of the raw uncompressed code to 
refer to.

Problem is, demos and such might "do it my way" and skip the APCS stuff, 
and just start executing from &8000. Nothing wrong with this [*] but it 
helps to know what to expect.


> to start disassembling it from the right place ?

The beauty of the ARM is it is word aligned. If using Zap or StrongHelp, 
it'll do the lot. It might even (depending on options) detect strings 
and convert them to data statements. Then the lot can be spat out to a 
printer.

[I'm sorry, for hard code work I find paper easier on the eyes than the 
screen.]


Best wishes,

Rick.

* - except, IIRC, RO6 will fault applications with invalid headers

[toc] | [prev] | [standalone]


Back to top | Article view | comp.sys.acorn.programmer


csiph-web