errno = EINVAL;
fprintf(stderr,
"\nUsage: %s [-8|-u] [-w <cols>] [-h <rows>] [-E <n>] [-s]\n"
- " [-C <color>] [-c] [-W] [-b] [-B <microseconds>] [-P]\n"
- " [-m <mode>] [-M] [-d] [-D] [-S] [-p <parameters>]\n"
+ " [-C <color>] [-c] [-W] [-b] [-r <ms>] [-B <ticks>] [-j <n>]\n"
+ " [-P] [-m <mode>] [-M] [-d] [-D] [-S] [-p <parameters>]\n"
" [-l <pixels>] [-f <delay>] [-e <command> [<arguments>]]\n\n"
"Where:\n"
" -8 / -u - 8-bit mode (Latin-1), unicode+UTF-8. 8-bit mode is\n"
" [?658467;65536h (color), [?658467;65537h (mono).\n"
" -W - Toggle X zoom between wide (2x) and condensed (1.5x)\n"
" -r - Set the maximum screen refresh speed when in jump scroll\n"
- " in microseconds.\n"
+ " in microseconds (limits: 11111 (90fps) - 100000 (10fps)).\n"
+ " Also affects the text/cursor blinking rate setting -B.\n"
+ " Low settings save CPU but affect interactive performance.\n"
+ " Jump scroll is the default but can be changed with the\n"
+ " DEC Private Mode sequence 4: [?4h and [?4l.\n"
" -b - Toggle blinking cursor.\n"
" -B - Set the cursor and text blinking speed, in refresh ticks.\n"
" This can also be changed with ESC [?658467;65538;<n>h\n"
+ " This depends on the refresh rate setting, -r.\n"
+ " -j - Maximum number of lines to jump in fast scrolling mode.\n"
+ " Also depends on the -r setting.\n"
" -P - If the cursor is blinking, reset its timer for printing.\n"
+ " By default, it is only reset \"on\" by user input.\n"
" -m - Set default cursor style (0 = block, 1 = line, 2 = bar).\n"
" -M - Enable very visible cursor mode by default.\n"
" Can also be controlled with the escape sequences \n"
" [?658467;65541h and [?658467;65542h.\n"
" -d - Log emulator debug messages to stderr.\n"
- " -D - Toggle if the cursor can be disabled or not.\n"
+ " -D - Toggle if the cursor can be disabled/invisible or not.\n"
" -S - Wait in a sleeping loop until the user closes the window\n"
" before exiting. This is useful to view the output of\n"
- " custom commands.\n"
+ " custom commands along with -e.\n"
" -p - Analog scanline parameters. These are described below.\n"
" -l - Add extra leading pixels between lines. This will also\n"
" affect the vertical connectivity of graphics characters.\n"
" -f - Number of frames to keep reverse video on for the flash\n"
- " of the visual bell. May not be visible with 0.\n"
+ " of the visual bell. May not be visible with very low\n"
+ " values. Also depends on -r.\n"
" -e - Execute command and its arguments instead of $SHELL.\n"
" Must be the last AnalogTerm2 argument if used, because\n"
" other arguments will be passed to the command.\n"
cfg_unicode = !locale_8bit();
progname = strdup(argv[0]);
- while ((ch = getopt(argc, argv, "?8uw:h:E:scC:Wr:bB:Pm:MdDSp:l:f:e:"))
- != -1) {
+ while ((ch = getopt(argc, argv,
+ "?8uw:h:E:scC:Wr:bB:j:Pm:MdDSp:l:f:e:")) != -1) {
switch (ch) {
case '8':
cfg_unicode = false;
cfg_condensed = !cfg_condensed;
break;
case 'r':
- if ((i = atoi(optarg)) >= 11111 && i <= 33333)
+ if ((i = atoi(optarg)) >= 11111 && i <= 100000)
cfg_refreshspeed = i;
break;
case 'b':
if ((i = atoi(optarg)) > 0 && i < 501)
cfg_blinkspeed = i;
break;
+ case 'j':
+ if ((i = atoi(optarg)) > 1 && i <= 16)
+ cfg_jumpscrolllines = i;
+ break;
case 'P':
cfg_cursorprintreset = !cfg_cursorprintreset;
break;