From: Shawn Jefferson (sjefferson_at_sd62.bc.ca)
Date: 2002-05-14 21:36:57
Hi there, I was playing around with the Atari file routines a little bit more and I don't think that feof is working properly. I created a test program that: 1. creates file, writes into it, closes it. 2. opens the file for r/w, reads until feof, then writes to the file. However, the program doesn't signal FEOF ever, and the the program just keeps reading from the file past the end until the emulator locks up or I hit RESET. Here is the code for read.s in the atari library: _read: jsr __rwsetup ; do common setup for read and write beq done ; if size 0, it's a no-op cpx #$FF ; invalid iocb? beq _inviocb lda #GETCHR ; iocb command code sta ICCOM,x jsr CIOV ; read it bpl done cpy #EOFERR ; eof is treated specially beq done jmp __do_oserror ; update errno done: lda ICBLL,x ; buf len lo pha ; save lda ICBLH,x ; get buf len hi tax ; to X lda #0 sta __oserror ; clear system dependend error code pla ; get buf len lo rts _inviocb: jmp __inviocb I took a look into the source, and I don't fully understand it, but shouldn't read.s in the atari library be setting a flag for EOF in the file pointer structure somehow, instead of just BEQing to done? Thanks, Shawn ---------------------------------------------------------------------- To unsubscribe from the list send mail to majordomo_at_musoftware.de with the string "unsubscribe cc65" in the body(!) of the mail.
This archive was generated by hypermail 2.1.3 : 2002-05-14 21:37:46 CEST