📄 cmux.c
字号:
"MuxCom31: ",
};
char *pps[16] =
{
" Select:→ ← ↑ ↓ Enter Esc ",
" Select:→ ← ↑ ↓ Enter Esc ",
" Select:→ ← ↑ ↓ Enter Esc ",
" Select:→ ← ↑ ↓ Enter Esc ",
" Select:→ ← ↑ ↓ Enter Esc ",
" Select:→ ← ↑ ↓ Enter Esc ",
" Select:→ ← ↑ ↓ Enter Esc ",
" Select:→ ← ↑ ↓ Enter Esc ",
" Select:→ ← ↑ ↓ Enter Esc ",
" Select:→ ← ↑ ↓ Enter Esc ",
" Select:→ ← ↑ ↓ Enter Esc ",
" Select:→ ← ↑ ↓ Enter Esc ",
" Select:→ ← ↑ ↓ Enter Esc ",
" Select:→ ← ↑ ↓ Enter Esc ",
" Select:→ ← ↑ ↓ Enter Esc ",
" Select:→ ← ↑ ↓ Enter Esc "
};
unsigned int c = 0,wflag = 0;
int x[16] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
int y[16] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
WINDOWSTRU winp = { 3, 4, 28, 21, 0x7f, 6, 0, 1, NULL };
WINDOWSTRU winps = { 1, 24, 80, 25, 0x74, 1, 0, 0, NULL };
menu22.win = &winp; menu22.winp = &winps; menu22.pp = pp;
menu22.x = x; menu22.y = y; menu22.pps = pps;
save_win(&winp); save_win(&winps);
do{
c = menu_run(&menu22,c,wflag);
wflag = 1;
if(c == LEFT || c == RIGHT || c == Esc){
rest_win(&winp); rest_win(&winps);
return c;
}
switch(menu22.ch){
case 0 : /*--西关*/
if(c == Enter || c == UEnter){
cmux_cmd("1\x10\x0d");
system("MODE CO80"); system("WSMENU.EXE"); cursor(0);
c = OUT;
}
else
c = 0;
break;
case 1 : /*--曙光*/
if(c == Enter || c == UEnter){
cmux_cmd("1\x11\x0d");
system("MODE CO80"); system("WSMENU.EXE"); cursor(0);
c = OUT;
}
else
c = 0;
break;
case 2 : /*--北门*/
if(c == Enter || c == UEnter){
cmux_cmd("1\x12\x0d");
system("MODE CO80"); system("WSMENU.EXE"); cursor(0);
c = OUT;
}
else
c = 0;
break;
case 3 : /*--东四*/
if(c == Enter || c == UEnter){
cmux_cmd("1\x13\x0d");
system("MODE CO80"); system("WSMENU.EXE"); cursor(0);
c = OUT;
}
else
c = 0;
break;
case 4 : /*--201 */
if(c == Enter || c == UEnter){
cmux_cmd("1\x14\x0d");
system("MODE CO80"); system("WSMENU.EXE"); cursor(0);
c = OUT;
}
else
c = 0;
break;
case 5 : /*--宏伟*/
if(c == Enter || c == UEnter){
cmux_cmd("1\x15\x0d");
system("MODE CO80"); system("WSMENU.EXE"); cursor(0);
c = OUT;
}
else
c = 0;
break;
case 6 : /*--光华*/
if(c == Enter || c == UEnter){
cmux_cmd("1\x16\x0d");
system("MODE CO80"); system("WSMENU.EXE"); cursor(0);
c = OUT;
}
else
c = 0;
break;
case 7 : /*--东京陵*/
if(c == Enter || c == UEnter){
cmux_cmd("1\x17\x0d");
system("MODE CO80"); system("WSMENU.EXE"); cursor(0);
c = OUT;
}
else
c = 0;
break;
case 8 : /*--弓长岭*/
if(c == Enter || c == UEnter){
cmux_cmd("1\x18\x0d");
system("MODE CO80"); system("WSMENU.EXE"); cursor(0);
c = OUT;
}
else
c = 0;
break;
case 9 : /*--辽阳县*/
if(c == Enter || c == UEnter){
cmux_cmd("1\x19\x0d");
system("MODE CO80"); system("WSMENU.EXE"); cursor(0);
c = OUT;
}
else
c = 0;
break;
case 10 : /*--灯塔县*/
if(c == Enter || c == UEnter){
cmux_cmd("1\x1a\x0d");
system("MODE CO80"); system("WSMENU.EXE"); cursor(0);
c = OUT;
}
else
c = 0;
break;
case 11 : /*--辽化厂*/
if(c == Enter || c == UEnter){
cmux_cmd("1\x1b\x0d");
system("MODE CO80"); system("WSMENU.EXE"); cursor(0);
c = OUT;
}
else
c = 0;
break;
case 12 : /*--长途局*/
if(c == Enter || c == UEnter){
cmux_cmd("1\x1c\x0d");
system("MODE CO80"); system("WSMENU.EXE"); cursor(0);
c = OUT;
}
else
c = 0;
break;
case 13 : /*--移动局*/
if(c == Enter || c == UEnter){
cmux_cmd("1\x1d\x0d");
system("MODE CO80"); system("WSMENU.EXE"); cursor(0);
c = OUT;
}
else
c = 0;
break;
case 14 : /*--移动局*/
if(c == Enter || c == UEnter){
cmux_cmd("1\x1e\x0d");
system("MODE CO80"); system("WSMENU.EXE"); cursor(0);
c = OUT;
}
else
c = 0;
break;
case 15 : /*--移动局*/
if(c == Enter || c == UEnter){
cmux_cmd("1\x1f\x0d");
system("MODE CO80"); system("WSMENU.EXE"); cursor(0);
c = OUT;
}
else
c = 0;
break;
}
if(c == Esc) menu22.status = 0;
}while(c != OUT);
rest_win(&winp); rest_win(&winps);
return c;
}
/*=======================================*/
int sub_menu_12()
{
char *pp[2] =
{
" 系统自检 ",
" 系统复位 "
};
char *pps[2] =
{
" Select:→ ← ↑ ↓ Enter Esc 系统自检 ",
" Select:→ ← ↑ ↓ Enter Esc 系统复位 "
};
unsigned int c = 0,wflag = 0;
int x[2] = { 1, 1 };
int y[2] = { 1, 2 };
WINDOWSTRU winp = { 20, 3, 31, 10, 0x7f, 6, 0, 1, NULL };
WINDOWSTRU winps = { 1, 24, 80, 25, 0x70, 1, 0, 0, NULL };
menu12.win = &winp; menu12.winp = &winps; menu12.pp = pp;
menu12.x = x; menu12.y = y; menu12.pps = pps;
save_win(&winp); save_win(&winps);
do{
c = menu_run(&menu12,c,wflag);
wflag = 1;
if(c == LEFT || c == RIGHT || c == Esc){
rest_win(&winp); rest_win(&winps);
return c;
}
switch(menu12.ch){
case 0 : /*系统自检 */
c = 0;
break;
case 1 : /*系统复位 */
c = 0;
break;
}
if(c == Esc) menu12.status = 0;
}while(c != OUT);
rest_win(&winp); rest_win(&winps);
return c;
}
/*=======================================*/
int sub_menu_13()
{
char *pp[6] =
{
"主端口速率",
"DTR OFF",
"DSR OFF",
"CTS OFF",
"RST OFF",
"DCD OFF"
};
char *pps[6] =
{
" Select:→ ← ↑ ↓ Enter Esc 主端口速率",
" Select:→ ← ↑ ↓ Enter Esc DTR OFF",
" Select:→ ← ↑ ↓ Enter Esc DSR OFF",
" Select:→ ← ↑ ↓ Enter Esc CTS OFF",
" Select:→ ← ↑ ↓ Enter Esc RST OFF",
" Select:→ ← ↑ ↓ Enter Esc DCD OFF"
};
unsigned int c = 0,wflag = 0;
int x[6] = { 1, 1, 1, 1, 1, 1 };
int y[6] = { 1, 2, 3, 4, 5, 6 };
WINDOWSTRU winp = { 39, 3, 50, 10, 0x7f, 6, 0, 1, NULL };
WINDOWSTRU winps = { 1, 24, 80, 25, 0x70, 1, 0, 0, NULL };
menu13.win = &winp; menu13.winp = &winps; menu13.pp = pp;
menu13.x = x; menu13.y = y; menu13.pps = pps;
save_win(&winp); save_win(&winps);
do{
c = menu_run(&menu13,c,wflag);
wflag = 1;
if(c == LEFT || c == RIGHT || c == Esc){
rest_win(&winp); rest_win(&winps);
return c;
}
switch(menu13.ch){
case 0 : /*主端口速率*/
if(c == Enter || c == UEnter){
c = OUT;
}
else
c = 0;
break;
case 1 : /*DTR OFF*/
c = 0;
break;
case 2 : /*DSR OFF*/
c = 0;
break;
case 3 : /*CTS OFF*/
c = 0;
break;
case 4 : /*RST OFF*/
c = 0;
break;
case 5 : /*DCD OFF*/
c = 0;
break;
}
if(c == Esc) menu13.status = 0;
}while(c != OUT);
rest_win(&winp); rest_win(&winps);
return c;
}
/*=======================================*/
int sub_menu_14()
{
char *pp[1] =
{
"DOS SHELL "
};
char *pps[1] =
{
" Select:→ ← ↑ ↓ Enter Esc "
};
unsigned int c = 0,wflag = 0;
int x[1] = { 1 };
int y[1] = { 1 };
WINDOWSTRU winp = { 58, 3, 69, 10, 0x7f, 6, 0, 1, NULL };
WINDOWSTRU winps = { 1, 24, 80, 25, 0x70, 1, 0, 0, NULL };
menu14.win = &winp; menu14.winp = &winps; menu14.pp = pp;
menu14.x = x; menu14.y = y; menu14.pps = pps;
save_win(&winp); save_win(&winps);
do{
c = menu_run(&menu14,c,wflag);
wflag = 1;
if(c == LEFT || c == RIGHT || c == Esc){
rest_win(&winp); rest_win(&winps);
return c;
}
switch(menu14.ch){
case 0 : /*DOS SHELL */
if(c == Enter || c == UEnter){
system("\command.com");
c = OUT;
}
else
c = 0;
break;
}
if(c == Esc) menu14.status = 0;
}while(c != OUT);
rest_win(&winp); rest_win(&winps);
return c;
}
#include <bios.h>
#include <dos.h>
#include <string.h>
void cmux_cmd(char *cmux_cmd)
{
#define COM_PORT 1 /* 0:COM1 1:COM2 */
#define DATA_READY 0x100
#define SETTINGS ( _COM_2400 | _COM_CHR8 | _COM_NOPARITY | _COM_STOP1)
int status,i, j,m,n;
char in,cmux_rec;
char cmux_pwd[14]="PMUX-SWTO-";
strcat(cmux_pwd,cmux_cmd);
bioscom(0, SETTINGS, COM_PORT);
for(j=0;j<13;j++)
{
bioscom(1, cmux_pwd[j], COM_PORT);
delay(10);
}
status = bioscom(3, 0, COM_PORT);
status &= DATA_READY;
/*
if (status)
{
if ((cmux_rec = bioscom(2, 0, COM_PORT) & 0x7F) != 0)
putch(cmux_rec);
delay(4); //Delay Range: 4--6ms/
}
*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -