diff --git a/libsrc/runtime/pushwsp.s b/libsrc/runtime/pushwsp.s index 1c940e038..d6baf9933 100644 --- a/libsrc/runtime/pushwsp.s +++ b/libsrc/runtime/pushwsp.s @@ -8,13 +8,24 @@ .import pushax .importzp sp + .macpack generic + pushw0sp: - ldy #1 + ldy #2 pushwysp: - lda (sp),y ; get hi byte - tax - dey - lda (sp),y ; get lo byte - jmp pushax ; push that - + lda sp ; 3 + sub #2 ; 4 + sta sp ; 3 + bcs @L1 ; 3(+1) + dec sp+1 ; (5) +@L1: lda (sp),y ; 5 =16 + tax ; 2 + dey ; 2 + lda (sp),y ; 5 + ldy #$00 ; 2 + sta (sp),y ; 5 + iny ; 2 + txa ; 2 + sta (sp),y ; 5 + rts