; ; File generated by cc65 v 2.19 - Git ab8bb268 ; .fopt compiler,"cc65 v 2.19 - Git ab8bb268" .setcpu "6502" .smart on .autoimport on .case on .debuginfo off .importzp sp, sreg, regsave, regbank .importzp tmp1, tmp2, tmp3, tmp4, ptr1, ptr2, ptr3, ptr4 .macpack longbranch .import _isdigit .import _islower .import _isspace .import _isupper .import __seterrno .export _strtol ; --------------------------------------------------------------- ; long __near__ __fastcall__ strtol (const char *nptr, char **endptr, int base) ; --------------------------------------------------------------- .segment "CODE" .proc _strtol: near .segment "CODE" jsr pushax lda regbank+4 ldx regbank+5 jsr pushax ldy #$07 jsr ldaxysp sta regbank+4 stx regbank+4+1 jsr pushl0 jsr pusha jsr pusha jsr push0 jsr decsp6 jmp L0004 L0002: inc regbank+4 bne L0004 inc regbank+4+1 L0004: ldx #$00 lda (regbank+4,x) jsr _isspace stx tmp1 ora tmp1 bne L0002 tay lda (regbank+4),y cmp #$2B beq L0009 cmp #$2D bne L0007 lda #$01 ldy #$09 sta (sp),y L0009: inc regbank+4 bne L0007 inc regbank+4+1 L0007: ldy #$10 lda (sp),y iny ora (sp),y bne L0043 tax lda (regbank+4,x) cmp #$30 bne L0042 inc regbank+4 bne L000E inc regbank+4+1 L000E: lda (regbank+4,x) cmp #$78 beq L0040 cmp #$58 bne L0041 L0040: inc regbank+4 bne L0012 inc regbank+4+1 L0012: lda #$10 jmp L0053 L0041: lda #$08 dey jsr staxysp jmp L0016 L0042: lda #$0A L0053: dey jsr staxysp jmp L0016 L0043: lda (sp),y bne L0016 dey lda (sp),y cmp #$10 bne L0016 ldy #$00 lda (regbank+4),y cmp #$30 bne L0016 iny lda (regbank+4),y cmp #$78 beq L0048 cmp #$58 bne L0016 L0048: lda #$02 clc adc regbank+4 sta regbank+4 bcc L0016 inc regbank+4+1 L0016: ldy #$09 lda (sp),y beq L001E ldx #$00 stx sreg lda #$80 jmp L005B L001E: ldx #$FF stx sreg lda #$7F L005B: sta sreg+1 txa ldy #$01 jsr steaxysp ldy #$04 jsr ldeaxysp jsr pusheax ldy #$15 jsr ldaxysp jsr axlong jsr tosumodeax ldy #$00 sta (sp),y ldy #$04 jsr ldeaxysp jsr pusheax ldy #$15 jsr ldaxysp jsr axlong jsr tosudiveax ldy #$01 jsr steaxysp L0020: ldx #$00 lda (regbank+4,x) jsr _isdigit stx tmp1 ora tmp1 beq L0023 ldx #$00 lda (regbank+4,x) ldy #$30 jmp L0059 L0023: tax lda (regbank+4,x) jsr _isupper stx tmp1 ora tmp1 beq L0025 ldx #$00 lda (regbank+4,x) ldy #$37 jmp L0059 L0025: tax lda (regbank+4,x) jsr _islower stx tmp1 ora tmp1 jeq L0021 ldx #$00 lda (regbank+4,x) ldy #$57 L0059: jsr decaxy ldy #$05 sta (sp),y ldy #$10 cmp (sp),y lda #$00 iny sbc (sp),y bvs L003B eor #$80 L003B: bmi L0021 ldy #$0D jsr ldeaxysp jsr pusheax ldy #$08 jsr ldeaxysp jsr tosugteax bne L002B ldy #$0D jsr ldeaxysp jsr pusheax ldy #$08 jsr ldeaxysp jsr toseqeax beq L002A ldy #$05 lda (sp),y ldy #$00 cmp (sp),y beq L002A bcc L002A L002B: lda #$01 ldy #$08 sta (sp),y L002A: ldy #$08 lda (sp),y bne L0030 ldy #$0D jsr ldeaxysp jsr pusheax ldy #$15 jsr ldaxysp jsr axlong jsr tosumuleax jsr pusheax ldy #$09 ldx #$00 lda (sp),y jsr axulong jsr tosaddeax ldy #$0A jsr steaxysp ldy #$06 ldx #$00 lda #$01 jsr addeqysp L0030: inc regbank+4 jne L0020 inc regbank+4+1 jmp L0020 L0021: ldy #$13 lda (sp),y dey ora (sp),y beq L0035 ldy #$06 lda (sp),y iny ora (sp),y beq L0033 ldy #$13 jsr ldaxysp sta sreg stx sreg+1 lda regbank+4 ldy #$00 sta (sreg),y iny lda regbank+4+1 jmp L0056 L0033: ldy #$13 jsr ldaxysp sta sreg stx sreg+1 ldy #$15 jsr ldaxysp ldy #$00 sta (sreg),y iny txa L0056: sta (sreg),y L0035: ldy #$08 lda (sp),y beq L0038 lda #$0F jsr __seterrno ldy #$09 lda (sp),y beq L0037 ldx #$00 stx sreg lda #$80 sta sreg+1 txa jmp L003A L0037: ldx #$FF stx sreg lda #$7F sta sreg+1 txa jmp L003A L0038: iny lda (sp),y beq L0039 ldy #$0D jsr ldeaxysp jsr negeax jmp L003A L0039: ldy #$0D jsr ldeaxysp L003A: pha ldy #$0E lda (sp),y sta regbank+4 iny lda (sp),y sta regbank+5 pla ldy #$16 jmp addysp .endproc