]> git.sur5r.net Git - cc65/blob - libsrc/atari/rwcommon.s
Fix comments and TELEMON uppercase
[cc65] / libsrc / atari / rwcommon.s
1 ;
2 ; common iocb setup routine for read, write
3 ; expects __fastcall__ parameters (int fd, void *buf, int count)
4 ;
5         .include "atari.inc"
6         .include "errno.inc"
7         .import popax
8         .import fdtoiocb
9
10         .export __rwsetup
11
12
13 __rwsetup:
14
15         pha                     ; push size in stack
16         txa
17         pha
18         jsr     popax           ; get buffer address
19         pha
20         txa
21         pha
22         jsr     popax           ; get handle
23         jsr     fdtoiocb        ; convert to iocb
24         bmi     iocberr         ; negative (X=$FF or A>$7F) on error.
25         tax
26         pla                     ; store address
27         sta     ICBAH,x
28         pla
29         sta     ICBAL,x
30         pla                     ; store length
31         sta     ICBLH,x
32         pla
33         sta     ICBLL,x
34         ora     ICBLH,x         ; returns Z if length is 0
35         rts
36
37 iocberr:pla
38         pla
39         pla
40         pla
41         ldx     #$FF            ; indicate error + clear ZF
42         rts
43