fix ftpget

This commit is contained in:
2025-10-06 22:46:40 +02:00
parent 540f42b21b
commit 91cf76c251
4 changed files with 36 additions and 15 deletions

View File

@@ -5,6 +5,16 @@
#define kDefaultChunkSize 0x20
static int recv(uint8_t* buf, uint8_t size) {
uint16_t ds = 0;
asm volatile ("push %%ds \n\t"
"mov %0, %%ds \n\t"
"pop %0 \n" : "+r"(ds));
int len = read(kLpt1, buf, size);
asm volatile ("mov %0, %%ds" :: "r"(ds));
return len;
}
int main(int argc, uint16_t argv[]) {
if (argc < 2) {
return -1;
@@ -17,17 +27,26 @@ int main(int argc, uint16_t argv[]) {
chunksize = argv[2];
}
uint8_t ok = 0x42;
uint8_t ack = 0x42;
int i;
for (int i = 0; i < size;) {
runcomms(kUntilIdle);
for (i = 0; i < size;) {
// delay?
int len = read(kLpt1, dest + i, chunksize);
int len;
for (int j = 0; j < 3; j++) {
int r = runcomms(kUntilIdle);
len = recv(dest + i, chunksize);
if (len > 0) {
break;
}
}
if (len <= 0) {
break;
}
write(kLpt1, &ok, 1);
write(kLpt1, &ack, 1);
i += len;
}
return i;
}