; ; Ullrich von Bassewitz, 06.06.1998 ; ; int setjmp (jmp_buf buf); ; .export __setjmp .importzp sp, ptr1 __setjmp: sta ptr1 ; Save buf stx ptr1+1 ldy #0 ; The parameter stack is now empty, put it into buf lda sp sta (ptr1),y iny lda sp+1 sta (ptr1),y iny ; Put the return stack pointer next tsx inx inx ; drop return address txa sta (ptr1),y iny ; Last thing is the return address. pla tax pla sta (ptr1),y ; high byte first iny pha txa sta (ptr1),y pha ; Return zero lda #0 tax rts