]> git.sur5r.net Git - cc65/blob - libsrc/cbm/cbm_write.c
Fixed a bug
[cc65] / libsrc / cbm / cbm_write.c
1 /*
2  * Marc 'BlackJack' Rintsch, 25.03.2001
3  *
4  * int cbm_write(unsigned char lfn, void* buffer, unsigned int size);
5  */
6
7 #include <cbm.h>
8 #include <errno.h>
9
10 int cbm_write(unsigned char lfn, void* buffer, unsigned int size) {
11
12     static unsigned int byteswritten;
13     
14     /* if we can't change to the outputchannel #lfn then return an error */
15     if (_oserror = cbm_k_ckout(lfn)) return -1;
16     
17     byteswritten = 0;
18     
19     while (byteswritten<size && !cbm_k_readst()) {
20         cbm_k_bsout(((unsigned char*)buffer)[byteswritten++]);
21     }
22
23     if (cbm_k_readst()) {
24         _oserror = 5;       /* device not present */
25         byteswritten = -1;
26     }
27         
28     cbm_k_clrch();
29     
30     return byteswritten;
31 }