2023-11-17 02:46:16 +00:00
|
|
|
#include <rp6502.h>
|
|
|
|
#include <unistd.h>
|
|
|
|
|
2023-11-17 19:08:51 +00:00
|
|
|
int __fastcall__ write (int fildes, const void* buf, unsigned count)
|
2023-11-17 02:46:16 +00:00
|
|
|
{
|
|
|
|
int ax, total = 0;
|
2023-11-17 19:08:51 +00:00
|
|
|
while (count) {
|
2023-11-17 02:46:16 +00:00
|
|
|
int blockcount = (count > 256) ? 256 : count;
|
2023-11-17 19:08:51 +00:00
|
|
|
ax = write_xstack (&((char*)buf)[total], blockcount, fildes);
|
|
|
|
if (ax < 0) {
|
2023-11-17 02:46:16 +00:00
|
|
|
return ax;
|
|
|
|
}
|
|
|
|
total += ax;
|
|
|
|
count -= ax;
|
2023-11-17 19:08:51 +00:00
|
|
|
if (ax < blockcount) {
|
2023-11-17 02:46:16 +00:00
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return total;
|
|
|
|
}
|