| 1459 |
void CS_h_Mode() |
void CS_h_Mode() |
| 1460 |
{ |
{ |
| 1461 |
switch (Param[1]) { |
switch (Param[1]) { |
| 1462 |
case 2: KeybEnabled = FALSE; break; |
case 2: // KAM |
| 1463 |
case 4: InsertMode = TRUE; break; |
KeybEnabled = FALSE; break; |
| 1464 |
case 12: |
case 4: // IRM |
| 1465 |
|
InsertMode = TRUE; break; |
| 1466 |
|
case 12: // SRM |
| 1467 |
ts.LocalEcho = 0; |
ts.LocalEcho = 0; |
| 1468 |
if (cv.Ready && cv.TelFlag && (ts.TelEcho>0)) |
if (cv.Ready && cv.TelFlag && (ts.TelEcho>0)) |
| 1469 |
TelChangeEcho(); |
TelChangeEcho(); |
| 1470 |
break; |
break; |
| 1471 |
case 20: |
case 20: // LF/NL |
| 1472 |
LFMode = TRUE; |
LFMode = TRUE; |
| 1473 |
ts.CRSend = IdCRLF; |
ts.CRSend = IdCRLF; |
| 1474 |
cv.CRSend = IdCRLF; |
cv.CRSend = IdCRLF; |
| 1475 |
break; |
break; |
| 1476 |
case 33: |
case 33: // WYSTCURM |
| 1477 |
ts.NonblinkingCursor = TRUE; |
ts.NonblinkingCursor = TRUE; |
| 1478 |
ChangeCaret(); |
ChangeCaret(); |
| 1479 |
break; |
break; |
| 1480 |
case 34: |
case 34: // WYULCURM |
| 1481 |
ts.CursorShape = IdHCur; |
ts.CursorShape = IdHCur; |
| 1482 |
ChangeCaret(); |
ChangeCaret(); |
| 1483 |
break; |
break; |
| 1507 |
void CS_l_Mode() |
void CS_l_Mode() |
| 1508 |
{ |
{ |
| 1509 |
switch (Param[1]) { |
switch (Param[1]) { |
| 1510 |
case 2: KeybEnabled = TRUE; break; |
case 2: // KAM |
| 1511 |
case 4: InsertMode = FALSE; break; |
KeybEnabled = TRUE; break; |
| 1512 |
case 12: |
case 4: // IRM |
| 1513 |
|
InsertMode = FALSE; break; |
| 1514 |
|
case 12: // SRM |
| 1515 |
ts.LocalEcho = 1; |
ts.LocalEcho = 1; |
| 1516 |
if (cv.Ready && cv.TelFlag && (ts.TelEcho>0)) |
if (cv.Ready && cv.TelFlag && (ts.TelEcho>0)) |
| 1517 |
TelChangeEcho(); |
TelChangeEcho(); |
| 1518 |
break; |
break; |
| 1519 |
case 20: |
case 20: // LF/NL |
| 1520 |
LFMode = FALSE; |
LFMode = FALSE; |
| 1521 |
ts.CRSend = IdCR; |
ts.CRSend = IdCR; |
| 1522 |
cv.CRSend = IdCR; |
cv.CRSend = IdCR; |
| 1523 |
break; |
break; |
| 1524 |
case 33: |
case 33: // WYSTCURM |
| 1525 |
ts.NonblinkingCursor = FALSE; |
ts.NonblinkingCursor = FALSE; |
| 1526 |
ChangeCaret(); |
ChangeCaret(); |
| 1527 |
break; |
break; |
| 1528 |
case 34: |
case 34: // WYULCURM |
| 1529 |
ts.CursorShape = IdBlkCur; |
ts.CursorShape = IdBlkCur; |
| 1530 |
ChangeCaret(); |
ChangeCaret(); |
| 1531 |
break; |
break; |
| 1539 |
|
|
| 1540 |
switch (Param[1]) { |
switch (Param[1]) { |
| 1541 |
case 5: |
case 5: |
| 1542 |
|
/* Device Status Report -> Ready */ |
| 1543 |
if (Send8BitMode) |
if (Send8BitMode) |
| 1544 |
CommBinaryOut(&cv,"\2330n",3); /* Device Status Report -> Ready */ |
CommBinaryOut(&cv,"\2330n",3); |
| 1545 |
else |
else |
| 1546 |
CommBinaryOut(&cv,"\033[0n",4); /* Device Status Report -> Ready */ |
CommBinaryOut(&cv,"\033[0n",4); |
| 1547 |
break; |
break; |
| 1548 |
case 6: |
case 6: |
| 1549 |
/* Cursor Position Report */ |
/* Cursor Position Report */ |
| 1766 |
if (NParam < 3) Param[3] = 0; |
if (NParam < 3) Param[3] = 0; |
| 1767 |
DispMoveWindow(Param[2], Param[3]); |
DispMoveWindow(Param[2], Param[3]); |
| 1768 |
break; |
break; |
| 1769 |
case 5: |
case 5: // Raise window |
| 1770 |
DispShowWindow(WINDOW_RAISE); |
DispShowWindow(WINDOW_RAISE); |
| 1771 |
break; |
break; |
| 1772 |
case 6: |
case 6: // Lower window |
| 1773 |
DispShowWindow(WINDOW_LOWER); |
DispShowWindow(WINDOW_LOWER); |
| 1774 |
break; |
break; |
| 1775 |
case 7: |
case 7: // Refresh window |
| 1776 |
DispShowWindow(WINDOW_REFRESH); |
DispShowWindow(WINDOW_REFRESH); |
| 1777 |
break; |
break; |
| 1778 |
case 8: /* set terminal size */ |
case 8: /* set terminal size */ |
| 1808 |
void CSGT(BYTE b) |
void CSGT(BYTE b) |
| 1809 |
{ |
{ |
| 1810 |
switch (b) { |
switch (b) { |
| 1811 |
case 'c': /* second terminal report */ |
case 'c': /* second terminal report (Secondary DA) */ |
| 1812 |
if (Send8BitMode) |
if (Send8BitMode) |
| 1813 |
CommBinaryOut(&cv,"\233>32;10;2c",11); /* VT382 */ |
CommBinaryOut(&cv,"\233>32;10;2c",11); /* VT382 */ |
| 1814 |
else |
else |
| 2246 |
/* no private parameter */ |
/* no private parameter */ |
| 2247 |
case 0: |
case 0: |
| 2248 |
switch (b) { |
switch (b) { |
| 2249 |
case '@': CSInsertCharacter(); break; |
// ISO/IEC 6429 / ECMA-48 Sequence |
| 2250 |
case 'A': CSCursorUp(); break; |
case '@': CSInsertCharacter(); break; // ICH |
| 2251 |
case 'B': CSCursorDown(); break; |
case 'A': CSCursorUp(); break; // CUU |
| 2252 |
case 'C': CSCursorRight(); break; |
case 'B': CSCursorDown(); break; // CUD |
| 2253 |
case 'D': CSCursorLeft(); break; |
case 'C': CSCursorRight(); break; // CUF |
| 2254 |
case 'E': CSCursorDown1(); break; |
case 'D': CSCursorLeft(); break; // CUB |
| 2255 |
case 'F': CSCursorUp1(); break; |
case 'E': CSCursorDown1(); break; // CNL |
| 2256 |
case 'G': CSMoveToColumnN(); break; |
case 'F': CSCursorUp1(); break; // CPL |
| 2257 |
case 'H': CSMoveToXY(); break; |
case 'G': CSMoveToColumnN(); break; // CHA |
| 2258 |
case 'I': CSForwardTab(); break; // CHT |
case 'H': CSMoveToXY(); break; // CUP |
| 2259 |
case 'J': CSScreenErase(); break; |
case 'I': CSForwardTab(); break; // CHT |
| 2260 |
case 'K': CSLineErase(); break; |
case 'J': CSScreenErase(); break; // ED |
| 2261 |
case 'L': CSInsertLine(); break; |
case 'K': CSLineErase(); break; // EL |
| 2262 |
case 'M': CSDeleteNLines(); break; |
case 'L': CSInsertLine(); break; // IL |
| 2263 |
case 'P': CSDeleteCharacter(); break; |
case 'M': CSDeleteNLines(); break; // DL |
| 2264 |
case 'S': CSScrollUP(); break; // SU |
// case 'N': break; // EF -- Not support |
| 2265 |
case 'T': CSScrollDown(); break; // SD |
// case 'O': break; // EA -- Not support |
| 2266 |
case 'X': CSEraseCharacter(); break; |
case 'P': CSDeleteCharacter(); break; // DCH |
| 2267 |
case 'Z': CSBackwardTab(); break; // CBT |
// case 'Q': break; // SEE -- Not support |
| 2268 |
case '`': CSMoveToColumnN(); break; |
// case 'R': break; // CPR -- Not support |
| 2269 |
case 'a': CSCursorRight(); break; |
case 'S': CSScrollUP(); break; // SU |
| 2270 |
case 'c': AnswerTerminalType(); break; |
case 'T': CSScrollDown(); break; // SD |
| 2271 |
case 'd': CSMoveToLineN(); break; |
// case 'U': break; // NP -- Not support |
| 2272 |
case 'e': CSCursorUp(); break; |
// case 'V': break; // PP -- Not support |
| 2273 |
case 'f': CSMoveToXY(); break; |
// case 'W': break; // CTC -- Not support |
| 2274 |
case 'g': CSDeleteTabStop(); break; |
case 'X': CSEraseCharacter(); break; // ECH |
| 2275 |
case 'h': CS_h_Mode(); break; |
// case 'Y': break; // CVT -- Not support |
| 2276 |
case 'i': CS_i_Mode(); break; |
case 'Z': CSBackwardTab(); break; // CBT |
| 2277 |
case 'l': CS_l_Mode(); break; |
// caes '[': break; // SRS -- Not support |
| 2278 |
case 'm': CSSetAttr(); break; |
// caes '\\': break; // PTX -- Not support |
| 2279 |
case 'n': CS_n_Mode(); break; |
// caes ']': break; // SDS -- Not support |
| 2280 |
case 'r': CSSetScrollRegion(); break; |
// caes '^': break; // SIMD -- Not support |
| 2281 |
case 's': SaveCursor(); break; |
case '`': CSMoveToColumnN(); break; // HPA |
| 2282 |
case 't': CSSunSequence(); break; |
case 'a': CSCursorRight(); break; // HPR |
| 2283 |
case 'u': RestoreCursor(); break; |
// caes 'b': break; // REP -- Not support |
| 2284 |
|
case 'c': AnswerTerminalType(); break; // DA |
| 2285 |
|
case 'd': CSMoveToLineN(); break; // VPA |
| 2286 |
|
case 'e': CSCursorUp(); break; // VPR |
| 2287 |
|
case 'f': CSMoveToXY(); break; // HVP |
| 2288 |
|
case 'g': CSDeleteTabStop(); break; // TBC |
| 2289 |
|
case 'h': CS_h_Mode(); break; // SM |
| 2290 |
|
case 'i': CS_i_Mode(); break; // MC |
| 2291 |
|
// caes 'b': break; // HPB -- Not support |
| 2292 |
|
// caes 'b': break; // VPB -- Not support |
| 2293 |
|
case 'l': CS_l_Mode(); break; // RM |
| 2294 |
|
case 'm': CSSetAttr(); break; // SGR |
| 2295 |
|
case 'n': CS_n_Mode(); break; // DSR |
| 2296 |
|
// caes 'o': break; // DAQ -- Not support |
| 2297 |
|
|
| 2298 |
|
// Private Sequence |
| 2299 |
|
case 'r': CSSetScrollRegion(); break; // DECSTBM |
| 2300 |
|
case 's': SaveCursor(); break; // SCP (Save cursor (ANSI.SYS/SCO?)) |
| 2301 |
|
case 't': CSSunSequence(); break; // DECSLPP / Window manipulation(dtterm?) |
| 2302 |
|
case 'u': RestoreCursor(); break; // RCP (Restore cursor (ANSI.SYS/SCO)) |
| 2303 |
} /* of case Prv=0 */ |
} /* of case Prv=0 */ |
| 2304 |
break; |
break; |
| 2305 |
/* private parameter = '>' */ |
/* private parameter = '>' */ |
| 2306 |
case '>': CSGT(b); break; |
case '>': CSGT(b); break; |
| 2307 |
/* private parameter = '?' */ |
/* private parameter = '?' */ |
| 2308 |
case '?': CSQuest(b); break; |
case '?': CSQuest(b); break; |
| 2309 |
} |
} /* end of siwtch (Prv) */ |
| 2310 |
break; |
break; |
| 2311 |
/* one intermediate char */ |
/* one intermediate char */ |
| 2312 |
case 1: |
case 1: |