📄 telnet2.c
字号:
#include <p18cxxx.h>
#include <usart.h>
#include <delays.h>
#include "sockets.h"
unsigned const rom char telnet_banner[]="\r\nEDTP ethernet 8088>";
unsigned const rom char goodbye_banner[]="\r\nGoodbye\r\n";
unsigned int inputBytes=0;
unsigned char flag;
#define NONE 0
#define ECHO 1
#define NEWLINE 2
void put8088(int bytesIn,FLAGS *flags,unsigned char *dataPacket)
{
unsigned char i,j,dataHex;
static unsigned char hexflag=0;
static unsigned char cntr=0;
static unsigned char byteout;
cntr++;
//if(FLAGbits.debug)
//{
//if(hexflag==1) putrsUSART("Hexflag on ");
//else putrsUSART("Hexflag off ");
//putrsUSART("cntr = ");
//printInteger(cntr);
//putrsUSART("\r\n");
//}
if(dataPacket[0] != 0x0A)
{
inputBytes=bytesIn;
flag=ECHO;
}
if(dataPacket[0] == '*')
{
//if(FLAGbits.debug) putrsUSART("Latch mode\r\n");
hexflag=1;
cntr=0;
}
else if(hexflag==1)
{
//putrsUSART("Hex on\r\n");
if(dataPacket[0] >= '0' && dataPacket[0] <= '9') dataHex=dataPacket[0] - 0x30;
else if(dataPacket[0] >= 'A' && dataPacket[0] <= 'F') dataHex=dataPacket[0] - 0x37;
else if(dataPacket[0] >= 'a' && dataPacket[0] <= 'f') dataHex=dataPacket[0] - 0x67;
else
{
hexflag=0;
cntr=0;
}
if(cntr == 1)
{
//putrsUSART("Top nibble\r\n");
byteout = dataHex << 4;
}
if(cntr == 2)
{
//putrsUSART("Bottom nibble\r\n");
byteout |= dataHex & 0x0F;
TRISD=0xff;
PORTD=byteout;
PORTCbits.RC1=1;
Delay10TCYx(1);
PORTCbits.RC1=0;
hexflag=0;
putrsUSART("Byte latched\r\n");
}
}
if(dataPacket[0] == 0x0A)
{
flag=NONE;
hexflag=0;
}
if ((dataPacket[0] == 0x0D||isFirstPacket(flags)))
{
inputBytes=0;
flag=NEWLINE;
}
//putrsUSART("8088: ");printInteger(bytesOut);putrsUSART("\r\n");
}
unsigned int get8088(FLAGS *flags,unsigned char *dataPacket)
{
unsigned int bytesOut,i;
switch(flag)
{
case ECHO:
bytesOut=inputBytes;
break;
case NEWLINE:
bytesOut = sizeof(telnet_banner);
for(i=0;i<bytesOut;++i) dataPacket[i] = telnet_banner[i];
break;
default:
bytesOut=0;
break;
}
flag=NONE;
return bytesOut;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -