]> git.sur5r.net Git - cc65/blob - libsrc/telemon30/_read.s
e8bcc3fd012708d0064e6e70814d6609c47a87e6
[cc65] / libsrc / telemon30 / _read.s
1 ;
2 ; jede jede@oric.org 2017-01-22
3 ;
4
5
6                 .FEATURE                c_comments,labels_without_colons,pc_assignment, loose_char_term
7         .export         _read
8         .import         popax
9         
10         .include        "zeropage.inc"
11         .include        "telemon30.inc"
12 ;               int read (int fd, void* buf, unsigned count);
13
14 .proc   _read
15         
16         sta                     ptr1 ; count
17         stx                     ptr1+1 ; count
18         jsr                     popax ; get buf
19
20         sta                             PTR_READ_DEST
21         stx                     PTR_READ_DEST+1
22         sta                             ptr2 ; in order to calculate nb of bytes read
23         stx                     ptr2+1 ;
24         
25         ;jsr popax ; fp pointer don't care in this version
26         
27         lda                     ptr1 ; 
28         ldy                             ptr1+1 ;
29         BRK_TELEMON     XFREAD ; calls telemon30 routine
30         ;  compute nb of bytes read
31         lda                     PTR_READ_DEST+1
32         sec
33         sbc                     ptr2+1
34         tax                             
35         lda                     PTR_READ_DEST
36         sec
37         sbc                             ptr2
38         
39
40         
41         ; Here A and X contains number of bytes read
42         
43         rts
44
45 .endproc
46
47