]> git.sur5r.net Git - cc65/blob - libsrc/cbm/rwcommon.s
Shorten a URL.
[cc65] / libsrc / cbm / rwcommon.s
1 ;
2 ; Ullrich von Bassewitz, 17.11.2002
3 ;
4 ; Common stuff for the read/write routines
5 ;
6
7         .export         rwcommon
8
9         .import         popax
10         .importzp       ptr1, ptr2, ptr3, tmp2
11
12         .include        "errno.inc"
13         .include        "filedes.inc"
14
15
16 ;--------------------------------------------------------------------------
17 ; rwcommon: Pop the parameters from stack, preprocess them and place them
18 ; into zero page locations. Return carry set if the handle is invalid,
19 ; return carry clear if it is ok. If the carry is clear, the handle is
20 ; returned in A.
21
22 .proc   rwcommon
23
24         eor     #$FF
25         sta     ptr1
26         txa
27         eor     #$FF
28         sta     ptr1+1          ; Remember -count-1
29
30         jsr     popax           ; Get buf
31         sta     ptr2
32         stx     ptr2+1
33
34         lda     #$00
35         sta     ptr3
36         sta     ptr3+1          ; Clear ptr3
37
38         jsr     popax           ; Get the handle
39         cpx     #$01
40         bcs     @L9
41         cmp     #MAX_FDS        ; Set carry if fd too large
42         sta     tmp2
43 @L9:    rts                     ; Return with result in carry
44
45 .endproc
46
47