]> git.sur5r.net Git - cc65/blobdiff - libsrc/atari/rwcommon.s
Removed (pretty inconsistently used) tab chars from source code base.
[cc65] / libsrc / atari / rwcommon.s
index 6775d99504c0dce8b2854c8731b212aa69685688..5f51cc5f7f8fa962599845a2916c0bb06295c4ed 100644 (file)
@@ -2,64 +2,42 @@
 ; common iocb setup routine for read, write
 ; expects __fastcall__ parameters (int fd, void *buf, int count)
 ;
-       .include "atari.inc"
-       .include "errno.inc"
-       .importzp tmp2,tmp3
-       .import incsp4,ldax0sp,ldaxysp
-       .import __errno,__oserror
-       .import fdtoiocb
+        .include "atari.inc"
+        .include "errno.inc"
+        .import popax
+        .import fdtoiocb
 
-       .export __rwsetup
+        .export __rwsetup
 
-__rwsetup:
-
-       sta     tmp2
-       stx     tmp3            ; remember size
-       ldy     #3
-       jsr     ldaxysp         ; get fd
-       jsr     fdtoiocb        ; convert to iocb
-       bmi     iocberr
-       tax
-       cpx     #$80            ; iocb must be 0...7
-       bcs     iocberr
-       lda     tmp2
-       sta     ICBLL,x
-       lda     tmp3            ; size hi
-       sta     ICBLH,x
-       stx     tmp3
-       jsr     ldax0sp         ; get buf addr
-       stx     tmp2
-       ldx     tmp3
-       sta     ICBAL,x
-       lda     tmp2
-       sta     ICBAH,x
-       jsr     incsp4          ; pop args
-       lda     ICBLL,x
-       ora     ICBLH,x         ; return with Z if length was 0
-       rts
-
-iocberr:jsr    incsp4          ; pop args
-       ldx     #$FF            ; indicate error + clear ZF
-       rts
 
+__rwsetup:
 
-;
-; this routine updates errno.  do a JMP here right after calling
-; CIOV.         we expect status in Y.
-;
-       .export __do_oserror,__inviocb
-__do_oserror:
-       sty     __oserror       ; save os dependent error code
-retminus:
-       lda     #$FF
-       tax                     ; return -1
-       rts
-
-;
-; sets EINVAL error code and returns -1
-;
+        pha                     ; push size in stack
+        txa
+        pha
+        jsr     popax           ; get buffer address
+        pha
+        txa
+        pha
+        jsr     popax           ; get handle
+        jsr     fdtoiocb        ; convert to iocb
+        bmi     iocberr         ; negative (X=$FF or A>$7F) on error.
+        tax
+        pla                     ; store address
+        sta     ICBAH,x
+        pla
+        sta     ICBAL,x
+        pla                     ; store length
+        sta     ICBLH,x
+        pla
+        sta     ICBLL,x
+        ora     ICBLH,x         ; returns Z if length is 0
+        rts
+
+iocberr:pla
+        pla
+        pla
+        pla
+        ldx     #$FF            ; indicate error + clear ZF
+        rts
 
-__inviocb:
-       lda     #<EINVAL
-       jsr     __seterrno
-       jmp     retminus        ; return -1