Hello!

I have this piece of code:
        int myint;
        Handle  h_str;
        CharPtr progn_string;

        switch (myint){
                case 1:
                        h_str = DmGetResource('tSTR', 1010);
                        progn_string = MemHandleLock(h_str);
                        /* .......blablabla.......... */
                        break;
                case 2:
                        h_str = DmGetResource('tSTR', 1020);
                        progn_string = MemHandleLock(h_str);
                        /* .......blablabla.......... */
                        break;

Then I disassembled this code and get:

        switch (myint){
                case 1:
00000156: 4FEF 0016          lea       22(a7),a7
0000015A: 3004               move.w    d4,d0
0000015C: 0C40 000C          cmpi.w    #12,d0
00000160: 6200 0548          bhi.w     *+1354        
; 0x000006aa
00000164: D040               add.w     d0,d0
00000166: 303B 0006          move.w    (6,pc,d0.w),d0
0000016A: 4EFB 0002          jmp       (2,pc,d0.w)
0000016E: 053C 001A 0088     btst      d2,#1704072
00000174: 00F6 0164          dc.w      0x00f6        
; Invalid opcode
00000178: 01D2               bset      d0,(a2)
0000017A: 0240 02AE          andi.w    #0x2ae,d0
0000017E: 031C               btst      d1,(a4)+
00000180: 038A               bclr      d1,a2
00000182: 03F8 0466          bset      d1,0x00000466
                        h_str = DmGetResource('tSTR', 1010);
00000186: 04D2 3F3C          dc.w      0x04d2        
; Invalid opcode
0000018A: 03F2 2F3C 7453     bset     
d1,([1951618130,a2],d2.l*8)
          5452           
00000192: 4E4F               trap      #15
00000194: A05F               sysTrapDmGetResource
00000196: 2448               movea.l   a0,a2
                        progn_string = MemHandleLock(h_str);
00000198: 2F0A               move.l    a2,-(a7)
0000019A: 4E4F               trap      #15
0000019C: A021               sysTrapMemHandleLock


I wonder, what does �Invalid opcode� mean. My
application work fine, but I have two �Invalid opcode�
in �case 1� and I have NO �Invalid opcode� in �case 2�

                case 2:
000001EE: 4FEF 003A          lea       58(a7),a7
000001F2: 6000 04B6          bra.w     *+1208        
; 0x000006aa
                        h_str = DmGetResource('tSTR', 1020);
000001F6: 3F3C 03FC          move.w    #1020,-(a7)
000001FA: 2F3C 7453 5452     move.l   
#1951618130,-(a7)
00000200: 4E4F               trap      #15
00000202: A05F               sysTrapDmGetResource
00000204: 2448               movea.l   a0,a2
                        progn_string = MemHandleLock(h_str);
00000206: 2F0A               move.l    a2,-(a7)
00000208: 4E4F               trap      #15
0000020A: A021               sysTrapMemHandleLock
0000020C: 2648               movea.l   a0,a3

Thanks,
Soj


__________________________________________________
Do You Yahoo!?
Get email at your own domain with Yahoo! Mail. 
http://personal.mail.yahoo.com/

-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/tech/support/forums/

Reply via email to