X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=libsrc%2Fruntime%2Ftoslong.s;h=9bf66a321c8d733fae859cff3a725083bb7c0b6e;hb=ef4a2e667da2b1486f62bda828450b3b46772f85;hp=d14915fa5b9ddd2bcf055435309f377aded3aa26;hpb=e3a8e6bbe4998a81052fa2c35ae4f683f4833aff;p=cc65 diff --git a/libsrc/runtime/toslong.s b/libsrc/runtime/toslong.s index d14915fa5..9bf66a321 100644 --- a/libsrc/runtime/toslong.s +++ b/libsrc/runtime/toslong.s @@ -8,45 +8,53 @@ .import decsp2 .importzp sp + .macpack cpu + ; Convert TOS from int to long tosulong: pha jsr decsp2 ; Make room - ldy #2 - lda (sp),y - ldy #0 + ldy #2 + lda (sp),y +.if (.cpu .bitand CPU_ISET_65SC02) + sta (sp) ; 65C02 version + iny ; Y = 3 +.else + ldy #0 sta (sp),y - ldy #3 - lda (sp),y - ldy #1 - sta (sp),y - lda #0 ; Zero extend + ldy #3 +.endif + lda (sp),y +toslong1: + ldy #1 + sta (sp),y + lda #0 ; Zero extend toslong2: - iny - sta (sp),y - iny - sta (sp),y - pla - rts + iny + sta (sp),y + iny + sta (sp),y + pla + rts toslong: pha - jsr decsp2 ; Make room - ldy #2 - lda (sp),y - ldy #0 + jsr decsp2 ; Make room + ldy #2 + lda (sp),y +.if (.cpu .bitand CPU_ISET_65SC02) + sta (sp) ; 65C02 version + iny ; Y = 3 +.else + ldy #0 sta (sp),y - ldy #3 - lda (sp),y - bmi toslong1 - ldy #1 - sta (sp),y - lda #$00 ; Positive, high word is zero - bne toslong2 -toslong1: - ldy #1 - sta (sp),y - lda #$FF - bne toslong2 + ldy #3 +.endif + lda (sp),y + bpl toslong1 ; Jump if positive, high word is zero + ldy #1 + sta (sp),y + lda #$FF + bne toslong2 ; Branch always