home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HAM Radio 1
/
HamRadio.cdr
/
packet
/
tncv13
/
faxdump.c
< prev
next >
Wrap
Text File
|
1990-06-13
|
2KB
|
110 lines
#include <conio.h>
#include <fcntl.h>
#include <io.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <bios.h>
void prnc(int c);
void main(int argc, char *argv[])
{
int fax;
char buff[700];
int t, i;
int z, c, d, l;
long lines;
int li;
int inv = 0;
int rev = 0;
char *mess = "FAXDUMP V 1.01 - (C) Jon Welch 12/06/90\n\n"
"Syntax : FAXDUMP <filename> (-I) (-R)\n";
if (argc < 2) {
_write(fileno(stdout), mess, strlen(mess));
exit(1);
}
for (i = 2; i < argc; ++i) {
if (argv[i][0] == '-') {
switch (argv[i][1]) {
case 'i' :
case 'I' : inv = 255;
break;
case 'r' :
case 'R' : rev = 1;
break;
}
}
}
prnc(27);
prnc('3');
prnc(23);
fax = _open(argv[1], O_RDONLY | O_BINARY);
lines = filelength(fax) / 80L;
li = (int) lines;
/* printf("%d lines in %s\n", li, argv[1]); */
li = li / 8;
for (z = 0; z < li; ++z) {
memset(buff, inv, 640);
_read(fax, buff, 640);
#ifdef IAN
prnc(27);
prnc('L');
prnc(128);
prnc(2);
#else
prnc(27);
prnc(42);
prnc(4);
prnc(128);
prnc(2);
#endif
for (c = 0; c < 640; c = c + 8) {
for (d = 0; d < 8; ++d) {
t = 0;
for (l = 0; l < 8; ++l) {
if (rev == 0) {
i = l * 80 + c / 8;
t = t * 2 + (buff[i] & 128) / 128;
buff[i] = (buff[i] * 2) & 255;
} else {
i = l * 80 + 79 - c / 8;
t = t * 2 + (buff[i] & 1);
buff[i] = (buff[i] / 2) & 255;
}
}
prnc(t ^ inv);
}
}
prnc(10);
prnc(13);
if (bioskey(1) != 0) {
bioskey(0);
break;
}
}
close(fax);
prnc(27);
prnc('3');
prnc(36);
}
void prnc(int c)
{
biosprint(0, c, 0);
}