; ; File generated by cc65 v 2.19 - Git ab8bb268 ; .fopt compiler,"cc65 v 2.19 - Git ab8bb268" .setcpu "65C02" .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 __errno .import __cbm_filetype .export _readdir .import __dirread .import __dirread1 ; --------------------------------------------------------------- ; struct dirent *__near__ __fastcall__ readdir (register struct DIR *dir) ; --------------------------------------------------------------- .segment "CODE" .proc _readdir: near .segment "CODE" jsr pushax ldy #$00 ldx #$04 jsr regswap2 lda regbank+2 ldx regbank+3 jsr pushax lda regbank+1 jsr pusha lda regbank+0 jsr pusha ldy #$40 jsr subysp ldy #$03 lda (regbank+4),y sta M0003+17+1 dey lda (regbank+4),y sta M0003+17 lda regbank+4 ldx regbank+4+1 jsr pushax lda #$02 jsr leaa0sp jsr pushax lda #$02 jsr __dirread tax jeq L0001 lda regbank+4 ldx regbank+4+1 jsr pushax lda #<(M0003+19) ldx #>(M0003+19) jsr pushax lda #$02 jsr __dirread tax jeq L0001 stz regbank+0 lda sp+1 sta regbank+2+1 lda sp sta regbank+2 L0005: lda regbank+0 cmp #$40 bcs L0006 lda regbank+4 ldx regbank+4+1 jsr pushax lda regbank+2 ldx regbank+2+1 jsr __dirread1 tax jeq L0001 inc regbank+0 lda (regbank+2) beq L0006 inc regbank+2 bne L0005 inc regbank+2+1 bra L0005 L0006: ldy #$03 lda (regbank+4),y tax dey lda (regbank+4),y sta ptr1 stx ptr1+1 ldx #$00 lda regbank+0 jsr incax4 clc adc ptr1 pha txa adc ptr1+1 tax pla ldy #$02 sta (regbank+4),y iny txa sta (regbank+4),y ldx #$00 lda (sp) cmp #$42 jeq L002F stz regbank+1 stz M0002 stz M0001 lda sp+1 sta regbank+2+1 lda sp sta regbank+2 jmp L002E L0029: lda M0001 beq L0012 cmp #$01 beq L0014 cmp #$02 beq L001C cmp #$03 jeq L0020 jmp L002D L0012: lda (regbank+2) cmp #$22 jne L002D lda #$01 sta M0001 jmp L002D L0014: lda (regbank+2) cmp #$22 bne L002B ldy M0002 lda #$00 sta M0003,y lda M0002 sta M0003+22 lda M0003+17 cmp #$03 lda M0003+17+1 sbc #$00 bcc L002A lda #$02 sta M0001 bra L002D L002A: lda #$05 sta M0003+21 lda #<(M0003) ldx #>(M0003) bra L0001 L002B: lda M0002 cmp #$10 bcs L002D lda #<(M0003) ldx #>(M0003) clc adc M0002 bcc L001B inx L001B: sta ptr1 stx ptr1+1 lda (regbank+2) sta (ptr1) inc M0002 bra L002D L001C: lda (regbank+2) cmp #$20 beq L002D jsr __cbm_filetype sta M0003+21 lda (regbank+2) cmp #$44 bne L001E lda #$03 sta M0001 bra L002D L001E: lda #<(M0003) ldx #>(M0003) bra L0001 L0020: lda (regbank+2) cmp #$45 beq L0022 cmp #$49 bne L002C lda #$02 bra L0028 L002C: lda #$04 L0028: sta M0003+21 L0022: lda #<(M0003) ldx #>(M0003) bra L0001 L002D: inc regbank+1 inc regbank+2 bne L002E inc regbank+2+1 L002E: lda regbank+1 cmp regbank+0 jcc L0029 ldx #$00 lda #$0B sta __errno stz __errno+1 L002F: txa L0001: pha stx tmp1 ldy #$45 ldx #$05 L0027: lda (sp),y sta regbank+0,x dey dex bpl L0027 ldx tmp1 pla ldy #$46 jmp addysp .segment "RODATA" M0004: .word $0000 M0005: .word $0000 M0006: .word $0000 M0007: .word $0000 .segment "BSS" M0001: .res 1,$00 M0002: .res 1,$00 M0003: .res 23,$00 .endproc