; ; File generated by cc65 v 2.11.0 ; .fopt compiler,"cc65 v 2.11.0" .setcpu "6502" .smart on .autoimport on .case on .debuginfo on .importzp sp, sreg, regsave, regbank, tmp1, ptr1, ptr2 .macpack longbranch .dbg file, "fgetc.c", 1059, 1084482831 .dbg file, "../../include/stdio.h", 5945, 1113916546 .dbg file, "../../include/stddef.h", 2974, 1061022172 .dbg file, "../../include/stdarg.h", 2817, 1102777145 .dbg file, "../../include/unistd.h", 3912, 1061022172 .dbg file, "../../include/errno.h", 3647, 1060696125 .dbg file, "./_file.h", 742, 1084367783 .export _fgetc .import _read ; --------------------------------------------------------------- ; int __fastcall__ fgetc (register struct _FILE*) ; --------------------------------------------------------------- .segment "CODE" .proc _fgetc .segment "CODE" ; ; { ; .dbg line, "fgetc.c", 24 jsr pushax ldy #$00 ldx #$04 jsr regswap2 ; ; if ((f->f_flags & _FOPEN) == 0 || (f->f_flags & (_FERROR | _FEOF)) != 0) { ; .dbg line, "fgetc.c", 28 jsr decsp1 ldy #$01 lda (regbank+4),y and #$01 beq L0005 lda (regbank+4),y and #$06 beq L0004 ; ; return EOF; ; .dbg line, "fgetc.c", 29 L0005: ldx #$FF txa jmp L0017 ; ; if (f->f_flags & _FPUSHBACK) { ; .dbg line, "fgetc.c", 33 L0004: lda (regbank+4),y and #$08 beq L000D ; ; f->f_flags &= ~_FPUSHBACK; ; .dbg line, "fgetc.c", 34 lda (regbank+4),y and #$F7 sta (regbank+4),y ; ; return f->f_pushback; ; .dbg line, "fgetc.c", 35 iny ldx #$00 lda (regbank+4),y jmp L0017 ; ; switch (read (f->f_fd, &c, 1)) { ; .dbg line, "fgetc.c", 39 L000D: jsr decsp4 dey lda (regbank+4),y ldy #$02 sta (sp),y iny lda #$00 sta (sp),y txa jsr leaasp ldy #$00 sta (sp),y iny txa sta (sp),y ldx #$00 tya jsr _read ; ; } ; .dbg line, "fgetc.c", 55 cpx #$00 bne L0024 cmp #$00 beq L001E jmp L0022 L0024: cpx #$FF bne L0022 cmp #$FF bne L0022 ; ; f->f_flags |= _FERROR; ; .dbg line, "fgetc.c", 43 ldy #$01 lda (regbank+4),y ora #$04 sta (regbank+4),y ; ; return EOF; ; .dbg line, "fgetc.c", 44 txa jmp L0017 ; ; f->f_flags |= _FEOF; ; .dbg line, "fgetc.c", 48 L001E: ldy #$01 lda (regbank+4),y ora #$02 sta (regbank+4),y ; ; return EOF; ; .dbg line, "fgetc.c", 49 dex txa jmp L0017 ; ; return c; ; .dbg line, "fgetc.c", 53 L0022: ldy #$00 ldx #$00 lda (sp),y ; ; } ; .dbg line, "fgetc.c", 56 L0017: pha ldy #$01 lda (sp),y sta regbank+4 iny lda (sp),y sta regbank+5 pla jmp incsp3 .dbg line .endproc