If anyone can shed some light on this one, I'd be much obliged:

Here's the disassembly from CW IDE:

                                // Check that we have the correct ROMS.
    suba.l    a2,a2
                        error = RomVersionCompatible( 0x02000000,
inLaunchFlags );
    move.w    d6,-(a7)
    move.l    #33554432,-(a7)
    pea       *+16           ; 0x00000034
    pea       *+6            ; 0x0000002e
    addi.l    RomVersionCompatible__FUlUs,(a7)
    rts
    move.l    d0,d3
                        if ( error == sysErrRomIncompatible ) { goto
ErrorExit; }



Here's the same disassembly from the Debugger targeting POSE/Mac:


                                // Check that we have the correct ROMS.
                        error = RomVersionCompatible( 0x02000000,
inLaunchFlags );
1006F8DE: 3F06            move.w   d6,-(sp)
1006F8E0: 2F3C02000000    move.l   #33554432,-(sp)
1006F8E6: 600A            bra.s    *+12                    ; 0x1006f8f2
1006F8E8: 2000            move.l   d0,d0
1006F8EA: 2000            move.l   d0,d0
1006F8EC: 2000            move.l   d0,d0
1006F8EE: 2000            move.l   d0,d0
1006F8F0: 2000            move.l   d0,d0
1006F8F2: 4EADFBC8        jsr      -1080(a5)
1006F8F6: 2600            move.l   d0,d3
                        if ( error == sysErrRomIncompatible ) { goto
ErrorExit; }
1006F8F8: 0C830000050C    cmpi.l   #1292,d3
1006F8FE: 5C4F            addq.w   #6,sp
1006F900: 67000134        beq.w    *+310                   ; 0x1006fa36




Now, someone could probably explaing to me why the POSE code  is the way it
is and I'd be happy.

BUT,  The code does not work.  the following line takes the code into lala
land:

1006F8F2: 4EADFBC8        jsr      -1080(a5)


Its as if the jump table is getting messed up.  If I move that segment of
code that holds RomVersionCompatible() nearer to the caller, it works.

I've got Smart Code model on and Far everything.  It doesn't seem that the
compiler/linker are doing the correct thing.


Anyone have a clue as to what is happening?




Douglas Corarito
mailto:[EMAIL PROTECTED]
http://www.infoequipt.com

INFOequipt
P.O. Box 299
Rowe, MA 01367
(413) 339-0120
FAX: (413) 339-4902

Reply via email to