fix return Z flag: it was set if the LSB of the length was zero and

didn't care about the MSB


git-svn-id: svn://svn.cc65.org/cc65/trunk@1207 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
cpg
2002-03-24 23:44:16 +00:00
parent 9cfcdfab53
commit f709fd679b

View File

@@ -5,7 +5,7 @@
.include "atari.inc" .include "atari.inc"
.include "../common/errno.inc" .include "../common/errno.inc"
.importzp tmp2,tmp3 .importzp tmp2,tmp3
.import incsp6,ldaxysp .import incsp6,ldax0sp,ldaxysp
.import __errno,__oserror .import __errno,__oserror
.import fdtoiocb .import fdtoiocb
@@ -17,14 +17,8 @@ __rwsetup:
jsr ldaxysp ; get fd jsr ldaxysp ; get fd
jsr fdtoiocb ; convert to iocb jsr fdtoiocb ; convert to iocb
bmi iocberr bmi iocberr
; asl a ; iocb # --> iocb index
; asl a
; asl a
; asl a
sta tmp3 ; save it sta tmp3 ; save it
ldy #1 jsr ldax0sp ; get size
jsr ldaxysp ; get size
php ; save cond codes, for zero-ness
stx tmp2 stx tmp2
ldx tmp3 ; iocb ldx tmp3 ; iocb
cpx #$80 ; iocb must be 0...7 cpx #$80 ; iocb must be 0...7
@@ -40,11 +34,11 @@ __rwsetup:
lda tmp2 lda tmp2
sta ICBAH,x sta ICBAH,x
jsr incsp6 ; pop args jsr incsp6 ; pop args
plp lda ICBLL,x
ora ICBLH,x ; return with Z if length was 0
rts rts
iocberr:jsr incsp6 ; pop args iocberr:jsr incsp6 ; pop args
plp ; throw away
ldx #$FF ; indicate error + clear ZF ldx #$FF ; indicate error + clear ZF
rts rts