diff --git a/README.md b/README.md index 801cc86..3851168 100644 --- a/README.md +++ b/README.md @@ -44,8 +44,10 @@ video of a an [animation using the tek4010](https://youtu.be/7FMewaoEOmk) and a - Can be compiled for other Linux distributions such as Ubuntu - Tested with SimH, PiDP-11, PDP-11/93, VAXstation 4000/90a, 2.11 BSD, RSX-11M+, PLOT10 - Stand alone version tested on Raspberry Pi Zero W - - Raspberry Pi 3 Model B+ recommended if run on same system as SimH/PiDP-11 - - Raspberry Pi 3 Model B+ recommended if run in -full mode on high resolution screens + - Raspberry Pi 3 Model B+ or faster recommended if run on same system as SimH/PiDP-11 + - Raspberry Pi 3 Model B+ or faster recommended if run in -full mode on high resolution screens + - Tested with Raspbian Stretch and Raspbian Buster + - Tested on Raspberry Pi 4 - Tested with directly attached HDMI screen and with VNC **Installation and first tests** @@ -273,9 +275,14 @@ tek4010 has the following options: -APL emulate Tektronix 4013/4015 with alternative APL character set. Details see below. - -autoClear erase screen if a line feed is executed at the bottom of the screen. + -autoClear erase screen if a line feed is executed at the bottom of the screen. This makes it sometimes easier to use tek4010 as the only terminal. It - is not the behaviour of the original hardware. + is not the behaviour of the original hardware. + + -keepsize tek4010 sets the fontsize to normal whenever the screen is erased. + This option keeps the currently selected font size until it is + changed with a new escape sequence. Some historic plot files will + not reset the font size back to normal if this option is set. **APL mode** diff --git a/tek4010 b/tek4010 index ae8007b..2bb4511 100755 Binary files a/tek4010 and b/tek4010 differ diff --git a/tek4010.c b/tek4010.c index 6497243..edc85fa 100755 --- a/tek4010.c +++ b/tek4010.c @@ -202,7 +202,8 @@ void tek4010_escapeCodeHandler(cairo_t *cr, cairo_t *cr2, int ch) tek4010_checkLimits(cr, cr2); mode = 0; break; case 12:// FF during ESC - tube_changeCharacterSize(cr, cr2, 74, 35, efactor); + if (!argKeepSize) + tube_changeCharacterSize(cr, cr2, 74, 35, efactor); tube_clearPersistent(cr,cr2); mode = 0; break; case 13:mode = 0; break; @@ -300,6 +301,7 @@ int tek4010_checkReturnToAlpha(int ch) } plotPointMode = 0; specialPlotMode = 0; + isGinMode = 0; return 1; } else return 0; @@ -333,7 +335,8 @@ void tek4010_draw(cairo_t *cr, cairo_t *cr2, int first) // clear persistent surface, if necessary if (tube_doClearPersistent) { tube_clearPersistent(cr,cr2); - tube_changeCharacterSize(cr, cr2, 74, 35, efactor); + if (!argKeepSize) + tube_changeCharacterSize(cr, cr2, 74, 35, efactor); } if (aplMode) diff --git a/tube.c b/tube.c index 51a574d..14add90 100755 --- a/tube.c +++ b/tube.c @@ -75,6 +75,7 @@ int argFull = 0; int argARDS = 0; int argAPL = 0; int argAutoClear = 0; +int argKeepSize = 0; int refresh_interval; // after this time in msec next refresh is done @@ -156,6 +157,10 @@ int tube_isInput() // is char available on getDataPipe? { int bytesWaiting; + // if (isGinMode) + // do not allow any further input from host during GIN mode + // this allows to test .plt files with GIN mode + // return 0; ioctl(getDataPipe[0], FIONREAD, &bytesWaiting); if (DEBUG) { debugCount++; @@ -274,7 +279,7 @@ void tube_init(int argc, char* argv[]) char *argv2[20]; size_t bufsize = 127; int firstArg = 1; - printf("tek4010 version 1.4.1\n"); + printf("tek4010 version 1.4.2\n"); windowName = "Tektronix 4010/4014 emulator"; if ((argc<2) || (argc>19)) { printf("Error:number of arguments\n"); @@ -310,6 +315,8 @@ void tube_init(int argc, char* argv[]) argFull = 1; else if (strcmp(argv[firstArg],"-autoClear") == 0) argAutoClear = 1; + else if (strcmp(argv[firstArg],"-keepsize") == 0) + argKeepSize = 1; else if (strcmp(argv[firstArg],"-APL") == 0) { argAPL = 1; windowName = "Tektronix 4013/4015 emulator (APL)"; diff --git a/tube.h b/tube.h index 94feda3..2e0bd71 100644 --- a/tube.h +++ b/tube.h @@ -18,6 +18,7 @@ extern int argTab1; extern int argRaw; extern int argAPL; extern int argAutoClear; +extern int argKeepSize; extern int hDotsPerChar; extern int vDotsPerChar; diff --git a/versions.txt b/versions.txt index 6deeff0..d933764 100644 --- a/versions.txt +++ b/versions.txt @@ -1,3 +1,7 @@ +Version 1.4.2 July 24, 2019 +=========================== +- argument -keepsize added +- going back to alpha mode forces now the end of GIN mode Version 1.4.1 June 20, 2019 ===========================