.define .cii .sect .text .sect .rom .sect .data .sect .bss .sect .text .cii: move.l (sp)+, a0 ! return address move.l (sp)+, d0 ! destination size sub.l (sp)+, d0 ! destination - source size bgt 1f sub.l d0, sp ! pop extra bytes jmp (a0) 1: clr.l d1 tst.l (sp) bne 4f not.l d1 ! d1 contains sign of source 4: asr.l #2, d0 sub.l #1, d0 2: move.l d1, -(sp) dbf d0, 2b jmp (a0) .align 2