1
0
mirror of https://github.com/cc65/cc65.git synced 2024-12-30 20:29:25 +00:00
cc65/libsrc/cbm/cbm_write.c

33 lines
726 B
C
Raw Normal View History

/*
* Marc 'BlackJack' Rintsch, 25.03.2001
*
* int cbm_write(unsigned char lfn, void* buffer, unsigned int size);
*/
#include <cbm.h>
extern unsigned char _oserror;
int cbm_write(unsigned char lfn, void* buffer, unsigned int size) {
static unsigned int byteswritten;
/* if we can't change to the outputchannel #lfn then return an error */
if (_oserror = cbm_k_ckout(lfn)) return -1;
byteswritten = 0;
while (byteswritten<size && !cbm_k_readst()) {
cbm_k_bsout(((unsigned char*)buffer)[byteswritten++]);
}
if (cbm_k_readst()) {
_oserror = 5; /* device not present */
byteswritten = -1;
}
cbm_k_clrch();
return byteswritten;
}