; ; 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 __cbm_filetype .import _cbm_k_basin .import _cbm_k_chkin .import _cbm_k_clrch .import _cbm_k_readst .import _cbm_open .import _cbm_close .export _cbm_opendir .export _cbm_readdir .export _cbm_closedir .import __oserror .segment "RODATA" S0001: .byte $24,$00 ; --------------------------------------------------------------- ; unsigned char __near__ cbm_opendir (unsigned char lfn, unsigned char device, ...) ; --------------------------------------------------------------- .segment "CODE" .proc _cbm_opendir: near .segment "CODE" jsr enter jsr decsp2 lda #<(S0001) ldx #>(S0001) jsr pushax ldy #$04 lda (sp),y cmp #$04 bne L0006 jsr leaa0sp jsr incax3 ldy #$02 jsr staxysp ldx #$00 lda #$02 tay jsr subeqysp jsr ldaxi jsr stax0sp ldy #$04 L0006: lda (sp),y jsr leaa0sp jsr incax4 sta ptr1 stx ptr1+1 ldy #$00 lda (ptr1),y jsr pusha ldy #$05 lda (sp),y jsr leaa0sp jsr incax4 sta ptr1 stx ptr1+1 ldy #$00 lda (ptr1),y jsr pusha lda #$00 jsr pusha ldy #$04 jsr ldaxysp jsr _cbm_open cmp #$00 bne L0005 ldy #$04 lda (sp),y jsr leaa0sp jsr incax4 sta ptr1 stx ptr1+1 ldy #$00 lda (ptr1),y jsr _cbm_k_chkin sta __oserror cmp #$00 bne L0005 jsr _cbm_k_basin jsr _cbm_k_basin jsr _cbm_k_clrch jsr _cbm_k_readst tax beq L0007 ldy #$04 lda (sp),y jsr leaa0sp jsr incax4 sta ptr1 stx ptr1+1 ldy #$00 lda (ptr1),y jsr _cbm_close lda #$04 sta __oserror L0005: ldx #$00 L0007: lda __oserror ldy #$04 jmp leavey .endproc ; --------------------------------------------------------------- ; unsigned char __near__ __fastcall__ cbm_readdir (unsigned char lfn, register struct cbm_dirent *l_dirent) ; --------------------------------------------------------------- .segment "CODE" .proc _cbm_readdir: near .segment "CODE" jsr pushax ldy #$00 ldx #$04 jsr regswap2 jsr decsp1 lda #$00 jsr pusha jsr pusha lda #$01 jsr pusha ldy #$06 lda (sp),y jsr _cbm_k_chkin tax jne L0003 jsr _cbm_k_readst tax jne L0003 jsr _cbm_k_basin jsr _cbm_k_basin lda regbank+4 ldx regbank+4+1 jsr pushax jsr _cbm_k_basin jsr pushax jsr _cbm_k_basin tax lda #$00 jsr tosorax ldy #$11 jsr staxspidx jsr _cbm_k_basin ldy #$03 sta (sp),y cmp #$12 beq L002E cmp #$42 beq L0009 jmp L0030 L0007: jsr _cbm_k_basin L0009: jsr _cbm_k_readst tax beq L0007 lda #$02 jmp L0036 L002E: lda #$01 tay jmp L002D L000C: jsr _cbm_k_readst tax beq L000F lda #$03 jmp L0036 L000F: jsr _cbm_k_basin ldy #$03 L002D: sta (sp),y ldy #$03 L0030: lda (sp),y cmp #$22 bne L000C jmp L0014 L0010: jsr _cbm_k_readst tax beq L0013 lda #$04 jmp L0036 L0013: ldy #$02 lda (sp),y cmp #$10 bcs L0014 clc adc regbank+4 ldx regbank+4+1 bcc L002A inx L002A: sta ptr1 stx ptr1+1 iny lda (sp),y ldy #$00 sta (ptr1),y ldy #$02 clc lda #$01 adc (sp),y sta (sp),y L0014: jsr _cbm_k_basin ldy #$03 sta (sp),y cmp #$22 bne L0010 dey lda (sp),y clc adc regbank+4 ldx regbank+4+1 bcc L002B inx L002B: sta ptr1 stx ptr1+1 lda #$00 tay sta (ptr1),y iny lda (sp),y beq L001D lda #$05 ldy #$13 sta (regbank+4),y lda #$06 ldy #$02 sta (sp),y L0016: lda regbank+4 ldx regbank+4+1 jsr pushax jsr _cbm_k_basin ldy #$05 sta (sp),y ldy #$14 jsr staspidx ldy #$02 lda (sp),y sec sbc #$01 sta (sp),y cmp #$00 bne L0016 jmp L0028 L001A: jsr _cbm_k_readst tax beq L001D lda #$05 jmp L0036 L001D: jsr _cbm_k_basin ldy #$03 sta (sp),y cmp #$20 beq L001A tya ldy #$14 sta (regbank+4),y tay lda (sp),y cmp #$2A bne L001E lda #$02 ldy #$14 sta (regbank+4),y jsr _cbm_k_basin ldy #$03 sta (sp),y L001E: lda regbank+4 ldx regbank+4+1 jsr pushax ldy #$05 lda (sp),y jsr __cbm_filetype ldy #$13 jsr staspidx jsr _cbm_k_basin cmp #$49 bne L001F ldy #$03 lda (sp),y cmp #$44 bne L001F lda #$02 ldy #$13 sta (regbank+4),y L001F: jsr _cbm_k_basin jsr _cbm_k_basin ldy #$03 sta (sp),y cmp #$3C bne L0035 ldy #$14 lda (regbank+4),y cmp #$02 bne L0032 lda #$00 jmp L0034 L0032: lda #$01 L0034: sta (regbank+4),y jmp L0028 L0026: jsr _cbm_k_readst tax beq L0029 lda #$06 jmp L0036 L0029: jsr _cbm_k_basin ldy #$03 sta (sp),y L0028: ldy #$03 L0035: lda (sp),y bne L0026 L0036: ldy #$00 sta (sp),y L0003: jsr _cbm_k_clrch ldx #$00 lda (sp,x) pha ldy #$04 lda (sp),y sta regbank+4 iny lda (sp),y sta regbank+5 pla jmp incsp7 .segment "RODATA" M0001: .word $0000 M0002: .word $0000 M0003: .word $0000 M0004: .word $0000 M0005: .word $0000 M0006: .word $0000 .endproc ; --------------------------------------------------------------- ; void __near__ __fastcall__ cbm_closedir (unsigned char lfn) ; --------------------------------------------------------------- .segment "CODE" .proc _cbm_closedir: near .segment "CODE" jsr pusha ldy #$00 lda (sp),y jsr _cbm_close jmp incsp1 .endproc