; ; 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 _malloc .import _free .import _read .import _open .import _close .import __oserror .import __directerrno .export _opendir .import __cwd ; --------------------------------------------------------------- ; struct DIR *__near__ __fastcall__ opendir (register const char *name) ; --------------------------------------------------------------- .segment "CODE" .proc _opendir: near .segment "CODE" jsr pushax ldy #$00 ldx #$04 jsr regswap2 lda regbank+2 ldx regbank+3 jsr pushax ldx #$02 lda #$05 jsr _malloc sta regbank+2 stx regbank+2+1 cpx #$00 bne L0002 cmp #$00 bne L0002 lda #$02 jsr __directerrno jmp L000D L0002: lda (regbank+4) cmp #$2E bne L0004 lda #>(__cwd) sta regbank+4+1 lda #<(__cwd) sta regbank+4 L0004: lda regbank+2 ldx regbank+2+1 jsr pushax lda regbank+4 ldx regbank+4+1 jsr pushax lda #$01 jsr pusha0 ldy #$04 jsr _open ldy #$00 jsr staxspidx cpx #$FF bne L000C cmp #$FF beq L0005 L000C: iny lda (regbank+2),y tax lda (regbank+2) jsr pushax lda regbank+2 ldx regbank+2+1 jsr incax5 jsr pushax ldx #$02 lda #$00 jsr _read cpx #$02 bne L0007 cmp #$00 bne L0007 ldy #$28 lda (regbank+2),y ldy #$02 sta (regbank+2),y ldy #$29 lda (regbank+2),y ldy #$03 sta (regbank+2),y lda #$01 iny sta (regbank+2),y lda regbank+2 ldx regbank+2+1 bra L0001 L0007: lda __oserror bne L0009 lda #$07 jsr __directerrno L0009: ldy #$01 lda (regbank+2),y tax lda (regbank+2) jsr _close L0005: lda regbank+2 ldx regbank+2+1 jsr _free L000D: ldx #$00 txa L0001: pha ldy #$00 L000A: lda (sp),y sta regbank+2,y iny cpy #$04 bne L000A pla jmp incsp4 .endproc