diff --git a/README.md b/README.md index 423428c..042859e 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@ -# Tektronix 4010 Terminal Emulator +# Tektronix 4010 and 4014 Terminal Emulator -This is a [Tektronix 4010](https://en.wikipedia.org/wiki/Tektronix_4010) terminal emulator +This is a [Tektronix 4010 und 4014](https://en.wikipedia.org/wiki/Tektronix_4010) terminal emulator for the Raspberry Pi and other Linux systems. It can also be used on Windows an Macintosh systems with [Virtualbox](https://www.virtualbox.org/) and [Ubuntu](https://www.ubuntu.com/). -![screen_shot](teklogo.png?raw=true "Tektronix logo in tek4010 window") +![screen_shot](screendump.png?raw=true "tek4010 screendump") It attempts to emulate the storage tube display of the Tektronix 4010, including the bright drawing spot. @@ -126,12 +126,16 @@ in the terminal emulator and clear the persistent screen: home page up page down - control arrow up - control arrow left + arrow up + arrow left These keys emulate the "page" key of the Tektronix 4010. You need to use one of these keys frequently to avoid to get a mess on the screen, as on a real Tektronix 4010. +The hardcopy function on the Tektronix 4010 is emulated with a screen dump. + + w Make a screen dump in current directory using scrot + **Login into the system running simh (same or different Raspberry Pi)** This makes sense, if you have set up a virtual DZ11 for multiple user login, opening a diff --git a/main.c b/main.c index 008497c..bea70af 100644 --- a/main.c +++ b/main.c @@ -113,7 +113,7 @@ static void do_drawing(cairo_t *cr, GtkWidget *widget) static void on_key_press(GtkWidget *widget, GdkEventKey *event, gpointer user_data) { int ch; - // printf("key pressed, state =%04X, keyval=%04X\r\n", event->state, event->keyval); + //printf("key pressed, state =%04X, keyval=%04X\r\n", event->state, event->keyval); if ((event->keyval == 0xFF50) || // "home" key (event->keyval == 0xFF55) || // "page up" key @@ -134,6 +134,10 @@ static void on_key_press(GtkWidget *widget, GdkEventKey *event, gpointer user_da gtk_widget_queue_draw(widget); return; } + else if (event->keyval == 0x0077) { // "ctrl>w" makes screendump + system("scrot --focussed"); + return; + } else ch = event->keyval & 0x1F; } diff --git a/pltfiles/More_plt_files/audiostart.plt b/pltfiles/More_pltfiles/audiostart.plt similarity index 100% rename from pltfiles/More_plt_files/audiostart.plt rename to pltfiles/More_pltfiles/audiostart.plt diff --git a/pltfiles/More_plt_files/baz.plt b/pltfiles/More_pltfiles/baz.plt similarity index 100% rename from pltfiles/More_plt_files/baz.plt rename to pltfiles/More_pltfiles/baz.plt diff --git a/pltfiles/More_plt_files/bugss44.plt b/pltfiles/More_pltfiles/bugss44.plt similarity index 100% rename from pltfiles/More_plt_files/bugss44.plt rename to pltfiles/More_pltfiles/bugss44.plt diff --git a/pltfiles/More_plt_files/bugss45.plt b/pltfiles/More_pltfiles/bugss45.plt similarity index 100% rename from pltfiles/More_plt_files/bugss45.plt rename to pltfiles/More_pltfiles/bugss45.plt diff --git a/pltfiles/More_plt_files/calcomppreview.plt b/pltfiles/More_pltfiles/calcomppreview.plt similarity index 100% rename from pltfiles/More_plt_files/calcomppreview.plt rename to pltfiles/More_pltfiles/calcomppreview.plt diff --git a/pltfiles/More_plt_files/coriolis.plt b/pltfiles/More_pltfiles/coriolis.plt similarity index 100% rename from pltfiles/More_plt_files/coriolis.plt rename to pltfiles/More_pltfiles/coriolis.plt diff --git a/pltfiles/More_plt_files/coriolis2.plt b/pltfiles/More_pltfiles/coriolis2.plt similarity index 100% rename from pltfiles/More_plt_files/coriolis2.plt rename to pltfiles/More_pltfiles/coriolis2.plt diff --git a/pltfiles/More_plt_files/dmaker.plt b/pltfiles/More_pltfiles/dmaker.plt similarity index 100% rename from pltfiles/More_plt_files/dmaker.plt rename to pltfiles/More_pltfiles/dmaker.plt diff --git a/pltfiles/More_plt_files/dmerc.tek b/pltfiles/More_pltfiles/dmerc.tek similarity index 100% rename from pltfiles/More_plt_files/dmerc.tek rename to pltfiles/More_pltfiles/dmerc.tek diff --git a/pltfiles/More_plt_files/ds00.plt b/pltfiles/More_pltfiles/ds00.plt similarity index 100% rename from pltfiles/More_plt_files/ds00.plt rename to pltfiles/More_pltfiles/ds00.plt diff --git a/pltfiles/More_plt_files/factory.plt b/pltfiles/More_pltfiles/factory.plt similarity index 100% rename from pltfiles/More_plt_files/factory.plt rename to pltfiles/More_pltfiles/factory.plt diff --git a/pltfiles/More_plt_files/funandgames.plt b/pltfiles/More_pltfiles/funandgames.plt similarity index 100% rename from pltfiles/More_plt_files/funandgames.plt rename to pltfiles/More_pltfiles/funandgames.plt diff --git a/pltfiles/More_plt_files/gplanet.plt b/pltfiles/More_pltfiles/gplanet.plt similarity index 100% rename from pltfiles/More_plt_files/gplanet.plt rename to pltfiles/More_pltfiles/gplanet.plt diff --git a/pltfiles/More_plt_files/heart.plt b/pltfiles/More_pltfiles/heart.plt similarity index 100% rename from pltfiles/More_plt_files/heart.plt rename to pltfiles/More_pltfiles/heart.plt diff --git a/pltfiles/More_plt_files/isco00.plt b/pltfiles/More_pltfiles/isco00.plt similarity index 100% rename from pltfiles/More_plt_files/isco00.plt rename to pltfiles/More_pltfiles/isco00.plt diff --git a/pltfiles/More_plt_files/isco02.plt b/pltfiles/More_pltfiles/isco02.plt similarity index 100% rename from pltfiles/More_plt_files/isco02.plt rename to pltfiles/More_pltfiles/isco02.plt diff --git a/pltfiles/More_plt_files/isco07.plt b/pltfiles/More_pltfiles/isco07.plt similarity index 100% rename from pltfiles/More_plt_files/isco07.plt rename to pltfiles/More_pltfiles/isco07.plt diff --git a/pltfiles/More_plt_files/isco08.plt b/pltfiles/More_pltfiles/isco08.plt similarity index 100% rename from pltfiles/More_plt_files/isco08.plt rename to pltfiles/More_pltfiles/isco08.plt diff --git a/pltfiles/More_plt_files/isco10.plt b/pltfiles/More_pltfiles/isco10.plt similarity index 100% rename from pltfiles/More_plt_files/isco10.plt rename to pltfiles/More_pltfiles/isco10.plt diff --git a/pltfiles/More_plt_files/isco14.plt b/pltfiles/More_pltfiles/isco14.plt similarity index 100% rename from pltfiles/More_plt_files/isco14.plt rename to pltfiles/More_pltfiles/isco14.plt diff --git a/pltfiles/More_plt_files/isco27.plt b/pltfiles/More_pltfiles/isco27.plt similarity index 100% rename from pltfiles/More_plt_files/isco27.plt rename to pltfiles/More_pltfiles/isco27.plt diff --git a/pltfiles/More_plt_files/isco36.plt b/pltfiles/More_pltfiles/isco36.plt similarity index 100% rename from pltfiles/More_plt_files/isco36.plt rename to pltfiles/More_pltfiles/isco36.plt diff --git a/pltfiles/More_plt_files/mesh.plt b/pltfiles/More_pltfiles/mesh.plt similarity index 100% rename from pltfiles/More_plt_files/mesh.plt rename to pltfiles/More_pltfiles/mesh.plt diff --git a/pltfiles/More_plt_files/msdusa.plt b/pltfiles/More_pltfiles/msdusa.plt similarity index 100% rename from pltfiles/More_plt_files/msdusa.plt rename to pltfiles/More_pltfiles/msdusa.plt diff --git a/pltfiles/More_plt_files/ocpred.tek b/pltfiles/More_pltfiles/ocpred.tek similarity index 100% rename from pltfiles/More_plt_files/ocpred.tek rename to pltfiles/More_pltfiles/ocpred.tek diff --git a/pltfiles/More_plt_files/refin.plt b/pltfiles/More_pltfiles/refin.plt similarity index 100% rename from pltfiles/More_plt_files/refin.plt rename to pltfiles/More_pltfiles/refin.plt diff --git a/pltfiles/More_plt_files/sixcharts.plt b/pltfiles/More_pltfiles/sixcharts.plt similarity index 100% rename from pltfiles/More_plt_files/sixcharts.plt rename to pltfiles/More_pltfiles/sixcharts.plt diff --git a/pltfiles/More_plt_files/skidmore.plt b/pltfiles/More_pltfiles/skidmore.plt similarity index 100% rename from pltfiles/More_plt_files/skidmore.plt rename to pltfiles/More_pltfiles/skidmore.plt diff --git a/pltfiles/More_plt_files/som4.plt b/pltfiles/More_pltfiles/som4.plt similarity index 100% rename from pltfiles/More_plt_files/som4.plt rename to pltfiles/More_pltfiles/som4.plt diff --git a/pltfiles/More_plt_files/spockd.plt b/pltfiles/More_pltfiles/spockd.plt similarity index 100% rename from pltfiles/More_plt_files/spockd.plt rename to pltfiles/More_pltfiles/spockd.plt diff --git a/pltfiles/More_plt_files/tekbug.plt b/pltfiles/More_pltfiles/tekbug.plt similarity index 100% rename from pltfiles/More_plt_files/tekbug.plt rename to pltfiles/More_pltfiles/tekbug.plt diff --git a/pltfiles/More_plt_files/teklogo.plt b/pltfiles/More_pltfiles/teklogo.plt similarity index 100% rename from pltfiles/More_plt_files/teklogo.plt rename to pltfiles/More_pltfiles/teklogo.plt diff --git a/pltfiles/More_plt_files/voyagedanluna.plt b/pltfiles/More_pltfiles/voyagedanluna.plt similarity index 100% rename from pltfiles/More_plt_files/voyagedanluna.plt rename to pltfiles/More_pltfiles/voyagedanluna.plt diff --git a/pltfiles/More_plt_files/xsquared.plt b/pltfiles/More_pltfiles/xsquared.plt similarity index 100% rename from pltfiles/More_plt_files/xsquared.plt rename to pltfiles/More_pltfiles/xsquared.plt diff --git a/pltfiles/More_plt_files/yamitup.plt b/pltfiles/More_pltfiles/yamitup.plt similarity index 100% rename from pltfiles/More_plt_files/yamitup.plt rename to pltfiles/More_pltfiles/yamitup.plt diff --git a/pltfiles/More_plt_files/z_Einstein.plt b/pltfiles/More_pltfiles/z_Einstein.plt similarity index 100% rename from pltfiles/More_plt_files/z_Einstein.plt rename to pltfiles/More_pltfiles/z_Einstein.plt diff --git a/pltfiles/More_plt_files/z_aswan.plt b/pltfiles/More_pltfiles/z_aswan.plt similarity index 100% rename from pltfiles/More_plt_files/z_aswan.plt rename to pltfiles/More_pltfiles/z_aswan.plt diff --git a/screendump.png b/screendump.png new file mode 100644 index 0000000..5c833c9 Binary files /dev/null and b/screendump.png differ diff --git a/tek4010 b/tek4010 index f86c3f1..093a990 100755 Binary files a/tek4010 and b/tek4010 differ diff --git a/tek4010.c b/tek4010.c index 306efb9..8a3ecd0 100755 --- a/tek4010.c +++ b/tek4010.c @@ -535,6 +535,8 @@ int escapeCodeHandler(cairo_t *cr, cairo_t *cr2, int todo, int ch) mode = 0; break; + case 23: system("scrot --focussed"); mode= 0; break; + case 28: // file separator >> point plot mode mode = 5; plotPointMode= 1; diff --git a/tek4010.h b/tek4010.h index 000ef22..b816ade 100644 --- a/tek4010.h +++ b/tek4010.h @@ -1,7 +1,7 @@ #define A_WINDOW_WIDTH 1024 // proposed width of main window #define A_WINDOW_HEIGHT 780 // proposed height of main window -#define WINDOW_NAME "Tektronix 4010" // name of main window +#define WINDOW_NAME "Tektronix 4010/4014" // name of main window #define ICON_NAME "" // path to icon for window #define TIME_INTERVAL 30 // time interval for timer function in msec diff --git a/teklogo.png b/teklogo.png deleted file mode 100644 index 964717d..0000000 Binary files a/teklogo.png and /dev/null differ