3
#include "../fileio/machdr.h"
4
#include "../fileio/rdfile.h"
5
#include "../util/masks.h"
11
extern void tputrec();
13
static void send_part();
14
static int send_sync();
15
static void send_rec();
19
if(send_sync() == ACK) {
20
send_part(file_info, DATABYTES, 1);
21
send_part(data_fork, data_size, 1);
22
send_part(rsrc_fork, rsrc_size, 0);
26
static void send_part(info, size, more)
30
int recno = 1, i, status;
33
for(i = 0; i < RETRIES; i++) {
34
send_rec(info, DATABYTES, recno);
35
status = tgetc(ACKTIMO);
40
if(status == NAK || status == CAN) {
45
recno = (recno + 1) & MAXRECNO;
49
status = tgetc(ACKTIMO);
52
status = tgetc(ACKTIMO);
56
static int send_sync()
60
for(i = 0; i < 3; i++) {
63
while((c = tgetc(ACKTIMO)) != TMO) {
77
static void send_rec(buf, bufsize, recno)
86
for(i = 0; i < bufsize; i++) {
87
cksum += *bp++ & BYTEMASK;
90
tputc((unsigned char)recno);
91
tputc((unsigned char)(MAXRECNO - recno));
92
tputrec(buf, bufsize);
93
tputc((char)(cksum & BYTEMASK));
97
int xm_to; /* Keep lint and some compilers happy */