📄 rfxtopcx.c
字号:
#include<stdio.h>
#include<fcntl.h>
#include<sys\types.h>
#include<sys\stat.h>
#include<setjmp.h>
#define MAKEUP 0x1000
#define SEVENOHS 0x1fff
unsigned char curbyte, bitmask;
int rfxfd;
jmp_buf where;
int debug;
int getbit()
{
int result;
if(!bitmask)
{
if(!read(rfxfd, &curbyte, 1))
{
printf("Premature end of file.\n");
exit(1);
}
if(curbyte==0x10)
{
if(!read(rfxfd, &curbyte, 1))
{
printf("Premature end of file.\n");
exit(1);
}
if(curbyte==0x03)
{
longjmp(where, -1);
}
}
bitmask=0x80;
if(debug)
printf("(%02x)", curbyte);
}
result=curbyte&bitmask;
bitmask>>=1;
bitmask&=0x7f;
if(debug)
if(result)
putchar('1');
else
putchar('0');
return(result);
}
int getwhite()
{
if(getbit())
/* 1 */
if(getbit())
/* 11 */
if(getbit())
/* 111 */
if(getbit())
/* 1111 */
return(7);
else
/* 1110 */
return(6);
else
/* 110 */
if(getbit())
/* 1101 */
if(getbit())
/* 11011 */
return(MAKEUP|64);
else
/* 11010 */
if(getbit())
/* 110101 */
return(15);
else
/* 110100 */
return(14);
else
/* 1100 */
return(5);
else
/* 10 */
if(getbit())
/* 101 */
if(getbit())
/* 1011 */
return(4);
else
/* 1010 */
if(getbit())
/* 10101 */
if(getbit())
/* 101011 */
return(17);
else
/* 101010 */
return(16);
else
/* 10100 */
return(9);
else
/* 100 */
if(getbit())
/* 1001 */
if(getbit())
/* 10011 */
return(8);
else
/* 10010 */
return(MAKEUP|128);
else
/* 1000 */
return(3);
else
/* 0 */
if(getbit())
/* 01 */
if(getbit())
/* 011 */
if(getbit())
/* 0111 */
return(2);
else
/* 0110 */
if(getbit())
/* 01101 */
if(getbit())
/* 011011 */
if(getbit())
/* 0110111 */
return(MAKEUP|256);
else
/* 0110110 */
if(getbit())
/* 01101101 */
if(getbit())
/* 011011011 */
return(MAKEUP|1408);
else
/* 011011010 */
return(MAKEUP|1344);
else
/* 01101100 */
if(getbit())
/* 011011001 */
return(MAKEUP|1280);
else
/* 011011000 */
return(MAKEUP|1216);
else
/* 011010 */
if(getbit())
/* 0110101 */
if(getbit())
/* 01101011 */
if(getbit())
/* 011010111 */
return(MAKEUP|1152);
else
/* 011010110 */
return(MAKEUP|1088);
else
/* 01101010 */
if(getbit())
/* 011010101 */
return(MAKEUP|1024);
else
/* 011010100 */
return(MAKEUP|960);
else
/* 0110100 */
if(getbit())
/* 01101001 */
if(getbit())
/* 011010011 */
return(MAKEUP|896);
else
/* 011010010 */
return(MAKEUP|832);
else
/* 01101000 */
return(MAKEUP|576);
else
/* 01100 */
if(getbit())
/* 011001 */
if(getbit())
/* 0110011 */
if(getbit())
/* 01100111 */
return(MAKEUP|640);
else
/* 01100110 */
if(getbit())
/* 011001101 */
return(MAKEUP|768);
else
/* 011001100 */
return(MAKEUP|704);
else
/* 0110010 */
if(getbit())
/* 01100101 */
return(MAKEUP|512);
else
/* 01100100 */
return(MAKEUP|448);
else
/* 011000 */
return(MAKEUP|1664);
else
/* 010 */
if(getbit())
/* 0101 */
if(getbit())
/* 01011 */
if(getbit())
/* 010111 */
return(MAKEUP|192);
else
/* 010110 */
if(getbit())
/* 0101101 */
if(getbit())
/* 01011011 */
return(58);
else
/* 01011010 */
return(57);
else
/* 0101100 */
if(getbit())
/* 01011001 */
return(56);
else
/* 01011000 */
return(55);
else
/* 01010 */
if(getbit())
/* 010101 */
if(getbit())
/* 0101011 */
return(25);
else
/* 0101010 */
if(getbit())
/* 01010101 */
return(52);
else
/* 01010100 */
return(51);
else
/* 010100 */
if(getbit())
/* 0101001 */
if(getbit())
/* 01010011 */
return(50);
else
/* 01010010 */
return(49);
else
/* 0101000 */
return(24);
else
/* 0100 */
if(getbit())
/* 01001 */
if(getbit())
/* 010011 */
if(getbit())
/* 0100111 */
return(18);
else
/* 0100110 */
if(getbit())
/* 01001101 */
if(getbit())
/* 010011011 */
return(MAKEUP|1728);
else
/* 010011010 */
return(MAKEUP|1600);
else
/* 01001100 */
if(getbit())
/* 010011001 */
return(MAKEUP|1536);
else
/* 010011000 */
return(MAKEUP|1472);
else
/* 010010 */
if(getbit())
/* 0100101 */
if(getbit())
/* 01001011 */
return(60);
else
/* 01001010 */
return(59);
else
/* 0100100 */
return(27);
else
/* 01000 */
return(11);
else
/* 00 */
if(getbit())
/* 001 */
if(getbit())
/* 0011 */
if(getbit())
/* 00111 */
return(10);
else
/* 00110 */
if(getbit())
/* 001101 */
if(getbit())
/* 0011011 */
if(getbit())
/* 00110111 */
return(MAKEUP|384);
else
/* 00110110 */
return(MAKEUP|320);
else
/* 0011010 */
if(getbit())
/* 00110101 */
return(0);
else
/* 00110100 */
return(63);
else
/* 001100 */
if(getbit())
/* 0011001 */
if(getbit())
/* 00110011 */
return(62);
else
/* 00110010 */
return(61);
else
/* 0011000 */
return(28);
else
/* 0010 */
if(getbit())
/* 00101 */
if(getbit())
/* 001011 */
if(getbit())
/* 0010111 */
return(21);
else
/* 0010110 */
if(getbit())
/* 00101101 */
return(44);
else
/* 00101100 */
return(43);
else
/* 001010 */
if(getbit())
/* 0010101 */
if(getbit())
/* 00101011 */
return(42);
else
/* 00101010 */
return(41);
else
/* 0010100 */
if(getbit())
/* 00101001 */
return(40);
else
/* 00101000 */
return(39);
else
/* 00100 */
if(getbit())
/* 001001 */
if(getbit())
/* 0010011 */
return(26);
else
/* 0010010 */
if(getbit())
/* 00100101 */
return(54);
else
/* 00100100 */
return(53);
else
/* 001000 */
return(12);
else
/* 000 */
if(getbit())
/* 0001 */
if(getbit())
/* 00011 */
if(getbit())
/* 000111 */
return(1);
else
/* 000110 */
if(getbit())
/* 0001101 */
if(getbit())
/* 00011011 */
return(32);
else
/* 00011010 */
return(31);
else
/* 0001100 */
return(19);
else
/* 00010 */
if(getbit())
/* 000101 */
if(getbit())
/* 0001011 */
if(getbit())
/* 00010111 */
return(38);
else
/* 00010110 */
return(37);
else
/* 0001010 */
if(getbit())
/* 00010101 */
return(36);
else
/* 00010100 */
return(35);
else
/* 000100 */
if(getbit())
/* 0001001 */
if(getbit())
/* 00010011 */
return(34);
else
/* 00010010 */
return(33);
else
/* 0001000 */
return(20);
else
/* 0000 */
if(getbit())
/* 00001 */
if(getbit())
/* 000011 */
return(13);
else
/* 000010 */
if(getbit())
/* 0000101 */
if(getbit())
/* 00001011 */
return(48);
else
/* 00001010 */
return(47);
else
/* 0000100 */
return(23);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -