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:
@@ -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
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user