.import decsp2
.importzp sp
+ .macpack cpu
+
; Convert TOS from int to long
tosulong:
jsr decsp2 ; Make room
ldy #2
lda (sp),y
-.ifpc02
+.if (.cpu .bitand CPU_ISET_65SC02)
sta (sp) ; 65C02 version
iny ; Y = 3
.else
ldy #3
.endif
lda (sp),y
+toslong1:
ldy #1
sta (sp),y
lda #0 ; Zero extend
jsr decsp2 ; Make room
ldy #2
lda (sp),y
-.ifpc02
+.if (.cpu .bitand CPU_ISET_65SC02)
sta (sp) ; 65C02 version
iny ; Y = 3
.else
ldy #3
.endif
lda (sp),y
- bmi toslong1
- ldy #1
- sta (sp),y
- lda #$00 ; Positive, high word is zero
- bne toslong2
-toslong1:
+ bpl toslong1 ; Jump if positive, high word is zero
ldy #1
sta (sp),y
lda #$FF
- bne toslong2
+ bne toslong2 ; Branch always