mirror of
https://github.com/ksherlock/TwoTerm.git
synced 2025-01-05 05:29:36 +00:00
misc updates.
git-svn-id: svn://qnap.local/TwoTerm/trunk@3139 5590a31f-7b70-45f8-8c82-aa3a8e5f4507
This commit is contained in:
parent
4da42afc94
commit
e1cf110542
@ -24,7 +24,7 @@
|
|||||||
|
|
||||||
int _vp[4];
|
int _vp[4];
|
||||||
|
|
||||||
int _cursorType;
|
Screen::CursorType _cursorType;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -207,7 +207,7 @@ enum {
|
|||||||
case CTRL('A'):
|
case CTRL('A'):
|
||||||
// set cursor to flashing block.
|
// set cursor to flashing block.
|
||||||
_cursorType = Screen::CursorTypeBlock;
|
_cursorType = Screen::CursorTypeBlock;
|
||||||
screen->setCursorType((Screen::CursorType)_cursorType);
|
screen->setCursorType(_cursorType);
|
||||||
break;
|
break;
|
||||||
case CTRL('B'):
|
case CTRL('B'):
|
||||||
_cursorType = Screen::CursorTypeUnderscore;
|
_cursorType = Screen::CursorTypeUnderscore;
|
||||||
@ -222,7 +222,7 @@ enum {
|
|||||||
|
|
||||||
case CTRL('E'):
|
case CTRL('E'):
|
||||||
// cursor on
|
// cursor on
|
||||||
screen->setCursorType((Screen::CursorType)_cursorType);
|
screen->setCursorType(_cursorType);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CTRL('F'):
|
case CTRL('F'):
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
|
|
||||||
std::vector<TextPort> _tpStack;
|
std::vector<TextPort> _tpStack;
|
||||||
|
|
||||||
unsigned _scratch[4];
|
int _scratch[4];
|
||||||
|
|
||||||
int _cursorType;
|
int _cursorType;
|
||||||
bool _consLF;
|
bool _consLF;
|
||||||
|
@ -11,16 +11,18 @@
|
|||||||
#include "OutputChannel.h"
|
#include "OutputChannel.h"
|
||||||
#include "Screen.h"
|
#include "Screen.h"
|
||||||
|
|
||||||
|
#include "algorithm.h"
|
||||||
|
|
||||||
%%{
|
%%{
|
||||||
machine console;
|
machine console;
|
||||||
alphtype unsigned int;
|
alphtype unsigned int;
|
||||||
|
|
||||||
action nop {}
|
action nop {}
|
||||||
|
|
||||||
arg1 = any ${ _scratch[0] = (fc - 32) & 0xff; };
|
arg1 = any ${ _scratch[0] = (fc - 32); };
|
||||||
arg2 = any ${ _scratch[1] = (fc - 32) & 0xff; };
|
arg2 = any ${ _scratch[1] = (fc - 32); };
|
||||||
arg3 = any ${ _scratch[2] = (fc - 32) & 0xff; };
|
arg3 = any ${ _scratch[2] = (fc - 32); };
|
||||||
arg4 = any ${ _scratch[3] = (fc - 32) & 0xff; };
|
arg4 = any ${ _scratch[3] = (fc - 32); };
|
||||||
|
|
||||||
main := (
|
main := (
|
||||||
0x00 $nop
|
0x00 $nop
|
||||||
@ -38,12 +40,11 @@
|
|||||||
|
|
||||||
// left, top, right, bottom
|
// left, top, right, bottom
|
||||||
|
|
||||||
_scratch[0] = std::max(_scratch[0], 0u);
|
_scratch[0] = clamp(_scratch[0], 0, 80-1);
|
||||||
_scratch[1] = std::max(_scratch[1], 0u);
|
_scratch[1] = clamp(_scratch[1], 0, 24-1);
|
||||||
|
|
||||||
_scratch[2] = std::max(_scratch[2]+1, 80u);
|
|
||||||
_scratch[3] = std::max(_scratch[3]+1, 24u);
|
|
||||||
|
|
||||||
|
_scratch[2] = clamp(_scratch[2], 0, 80-1)+1;
|
||||||
|
_scratch[3] = clamp(_scratch[3], 0, 24-1)+1;
|
||||||
|
|
||||||
|
|
||||||
iRect r(_scratch[0],
|
iRect r(_scratch[0],
|
||||||
@ -54,7 +55,7 @@
|
|||||||
|
|
||||||
_textPort.frame = r;
|
_textPort.frame = r;
|
||||||
|
|
||||||
screen->setCursor(&_textPort, _scratch[0], _scratch[1]);
|
screen->setCursor(&_textPort, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
| 0x03 ${
|
| 0x03 ${
|
||||||
@ -83,7 +84,7 @@
|
|||||||
|
|
||||||
| 0x06 any ${
|
| 0x06 any ${
|
||||||
/* set vertical position */
|
/* set vertical position */
|
||||||
unsigned n = fc - 32;
|
unsigned n = clamp(fc - 32, 0, 24-1);
|
||||||
screen->setY(&_textPort, n);
|
screen->setY(&_textPort, n);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -139,7 +140,7 @@
|
|||||||
| 0x10 any ${
|
| 0x10 any ${
|
||||||
/* DLE expansion */
|
/* DLE expansion */
|
||||||
if (_consDLE) {
|
if (_consDLE) {
|
||||||
unsigned count = (fc - 0x20) & 0xff;
|
unsigned count = (fc - 32) & 0xff;
|
||||||
while (count--) screen->putc(&_textPort, ' ');
|
while (count--) screen->putc(&_textPort, ' ');
|
||||||
}
|
}
|
||||||
else { fhold; }
|
else { fhold; }
|
||||||
@ -156,7 +157,8 @@
|
|||||||
|
|
||||||
| 0x14 any ${
|
| 0x14 any ${
|
||||||
/* set horizontal position */
|
/* set horizontal position */
|
||||||
screen->setX(&_textPort, fc - 0x20);
|
unsigned n = clamp(fc - 32, 0, 80 - 1);
|
||||||
|
screen->setX(&_textPort, n);
|
||||||
}
|
}
|
||||||
|
|
||||||
| 0x15 any ${
|
| 0x15 any ${
|
||||||
@ -214,8 +216,8 @@
|
|||||||
| 0x1e arg1 arg2
|
| 0x1e arg1 arg2
|
||||||
${ /* goto x y */
|
${ /* goto x y */
|
||||||
iPoint dca;
|
iPoint dca;
|
||||||
dca.x = _scratch[0];
|
dca.x = clamp(_scratch[0], 0, 80 - 1);
|
||||||
dca.y = _scratch[1];
|
dca.y = clamp(_scratch[1], 0, 24 - 1);
|
||||||
screen->setCursor(&_textPort, dca);
|
screen->setCursor(&_textPort, dca);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user