[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Idea for dump mode



In message <58f6a1b55fwebpages@xxxxxxxxxxx>
          Sprow <webpages@xxxxxxxxxxx> wrote:

> In article <efb61cf658.fjgraute@xxxxxxxxx>,
>    Fred Graute <fjgraute@xxxxxxxxx> wrote:
> > In message <58f400a79cwebpages@xxxxxxxxxxx>
> >           Sprow <webpages@xxxxxxxxxxx> wrote:
> > > As an extra embellishment* it would be nice if the Ursula "fast" service
> > > table was annotated.
> >
> > This has now been added. Here's the annotations for the WindowManager's
> > fast service table:
> >
> >   ; ufst: offset to handler code
> >   ; ufst: = Reset
> >   ; ufst: = NewApplication
> >   ; ufst: = ModeChange
> >   ; ufst: = MemoryMoved
> >   ; ufst: = ResourceFSStarted
> >   ; ufst: = ResourceFSDying
> >   ; ufst: = ResourceFSStarting
> >   ; ufst: = SwitchingOutputToSprite
> >   ; ufst: = InvalidateCache
> >   ; ufst: = ModeChanging
> >   ; ufst: = ModeFileChanged
> >   ; ufst: end of service table
> >   ; ufst: offset to table start
> >   ; ufst: service table magic word
> 
> I wasn't expecting the service call numbers to be decoded, that's fancy.

It's just a MessageTrans lookup. The service number is converted to a 6
digit hex string and appended to a base token. Then it's looked up in
the Dump mode Messages file. Most annotations are done in a similar way.

> I tend to agree with Martin that the Ursula of 'ufst' is probably redundant,
> how about just 'fast'?

No problem, 'ufst' was just a first stab because I needed something.
I've changed it to 'fast' but if someone wants something else, it's an
easy change in the Messages file.

> Also, I think you're missing a flags word (the word before the "offset to
> handler code"), whose bits should currently be zero.

That was a copy/paste error. The flags word has an annotation too.

> Where there is certainty of what the field is can the opcode be hidden?

Sure. Here's how the annotations (WindowManager again) look now.

  000015F4 : 00000070 : p@@@ : ANDeq   R0,R0,R0,ROR R0
  000015F8 : 00000000 : @@@@ : ; fast: service table flags word
  000015FC : 00001668 : hV@@ : ; fast: offset to handler code
  00001600 : 00000027 : '@@@ : ; fast: = Reset
  00001604 : 0000002A : *@@@ : ; fast: = NewApplication
  00001608 : 00000046 : F@@@ : ; fast: = ModeChange
  0000160C : 0000004E : N@@@ : ; fast: = MemoryMoved
  00001610 : 00000059 : Y@@@ : ; fast: = ResourceFSStarted
  00001614 : 0000005A : Z@@@ : ; fast: = ResourceFSDying
  00001618 : 00000060 : `@@@ : ; fast: = ResourceFSStarting
  0000161C : 00000072 : r@@@ : ; fast: = SwitchingOutputToSprite
  00001620 : 00000082 : ?@@@ : ; fast: = InvalidateCache
  00001624 : 00000089 : ?@@@ : ; fast: = ModeChanging
  00001628 : 00000094 : ?@@@ : ; fast: = ModeFileChanged
  0000162C : 00000000 : @@@@ : ; fast: end of service table
  00001630 : 000015F8 : øU@@ : ; fast: offset to table start
  00001634 : E1A00000 : @@ á : ; fast: service table magic word
  00001638 : E3310027 : '@1ã : TEQ     R1,#&27            ; ="'"

> then the cursor keys could follow the -> like they do for BL and the
> other module header fields.

This is something I still need to look at but it seems easy enough.

Cheers,
Fred.

-- 
StrongED Developer
http://www.stronged.iconbar.com/