;
.export tossuba0, tossubax
- .import addysp1
- .importzp sp, ptr1
+ .import addysp1
+ .importzp sp
;
; AX = TOS - AX
tossuba0:
ldx #0
tossubax:
- ldy #0
- sta ptr1
- stx ptr1+1
- lda (sp),y ; lo byte
- sec
- sbc ptr1
- sta ptr1 ; save lo byte
+ sec
+ eor #$FF
+.ifpc02
+ adc (sp)
+ ldy #1
+.else
+ ldy #0
+ adc (sp),y ; Subtract low byte
iny
- lda (sp),y
- sbc ptr1+1
- tax
- lda ptr1
- jmp addysp1 ; drop TOS, set condition codes
+.endif
+ pha ; Save high byte
+ txa
+ eor #$FF
+ adc (sp),y ; Subtract high byte
+ tax ; High byte into X
+ pla ; Restore low byte
+ jmp addysp1 ; drop TOS