1
0
mirror of https://github.com/rricharz/Tek4010.git synced 2026-04-13 15:34:44 +00:00

version 1.4, see versions.txt

This commit is contained in:
¨Rene Richarz
2019-05-15 09:38:33 +02:00
parent b1477b1d28
commit 28763fed08
5 changed files with 50 additions and 16 deletions

View File

@@ -1,9 +1,9 @@
[![Build Status](https://travis-ci.org/rricharz/Tek4010.svg?branch=master)](https://travis-ci.org/rricharz/Tek4010)
# Tektronix 4010 and 4014 Storage Tube Terminal Emulator
# Tektronix 4010 and 4014 Storage Tube Terminal Emulator (version 1.4)
This is a [Tektronix 4010 and 4014](https://en.wikipedia.org/wiki/Tektronix_4010) terminal emulator
for the Raspberry Pi (Raspberry Pi 3 or faster) and other Linux systems.
This is a [Tektronix 4010, 4013, 4014 and 4015](https://en.wikipedia.org/wiki/Tektronix_4010)
terminal emulator for the Raspberry Pi and other Linux systems.
![screen_shot](screendump.png?raw=true "tek4010 screendump")
@@ -28,7 +28,30 @@ This [video of a tek4010 demo](https://youtu.be/ioYiu6oUT88) was generated using
video of a an [animation using the tek4010](https://youtu.be/7FMewaoEOmk) and a video showing
[tek4010 alongside the PiDP-11](https://youtu.be/4jZzypvxoHU).
Install the tek4010 emulator from this repo on a Raspberry Pi or Ubuntu. I propose using
**Important features of tek4010**
- Emulation of Tektronix 4010, Tektronix 4013, Tektronix 4014, Tektronix 4015 and ARDS
- Emulation of the bright drawing spot
- Standard resolution of window 1024 x 780 points
- Scaled smaller resolution for lower resolution screens
- Full screen resolution in -full mode
- Coordinate system: 1024 x 780 and 4096 x 3072 tek points
- All Tektronix 4014 modes, including graphical input mode (GIN) and write-through mode
- APL character set and keyboard for Tektronix 4013 and Tektronix 4015
- telnet and rsh connection to host and direct display of plot files
- baud rates: 300 to 19200
- Compiled binary for Raspbian included
- 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+
- 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
- Tested with directly attached HDMI screen and with VNC
**Installation and first tests**
Install the tek4010 emulator from this repo on a Raspberry Pi (desktop version required) or Ubuntu.
I propose using
sudo apt-get install git
git clone git://github.com/rricharz/Tek4010
@@ -245,7 +268,7 @@ tek4010 has the following options:
-ARDS display ARDS data
-APL emulate Tektronix 4013/4015 with alternative APL character set.
This mode is experimental. Details see below.
Details see below.
**APL mode**
@@ -368,9 +391,16 @@ The ARDS decoder was written by Lars Brinkhoff. He also provided some interestin
and the ARDS plot files.
The historical plot data for the Tektronix 4014 was obtained from Jos Dreesen.
Thanks to Ian Schofield for his critical comments and a code snippet for drawing dashed and dotted lines,
and to Oscar Vermeulen for his support.
and to Oscar Vermeulen and Mark Matlock for their support.
The manuals were obtained from bitsavers.org.
Thanks also to all others who contributed important ideas, helped with the debugging and preserved
the historical data. This program is the result of a community effort.
**The usual disclaimer**
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

4
main.c
View File

@@ -110,7 +110,7 @@ static void do_drawing(cairo_t *cr, GtkWidget *widget)
windowHeight = (int)((double)windowWidth / aspectRatio + 0.5);
}
printf("Window dimensions: %d x %d\n", windowWidth, windowHeight);
// printf("Window dimensions: %d x %d\n", windowWidth, windowHeight);
permanent_surface = cairo_surface_create_similar(cairo_get_target(cr),
CAIRO_CONTENT_COLOR, windowWidth, windowHeight);
@@ -277,7 +277,7 @@ int main (int argc, char *argv[])
GdkScreen *screen = gtk_window_get_screen(GTK_WINDOW(window));
int screenWidth = gdk_screen_get_width(screen);
int screenHeight = gdk_screen_get_height(screen);
printf("Screen dimensions: %d x %d\n", screenWidth, screenHeight);
// printf("Screen dimensions: %d x %d\n", screenWidth, screenHeight);
if (argFull) {
// DISPLAY UNDECORATED FULL SCREEN WINDOW

BIN
tek4010

Binary file not shown.

12
tube.c
View File

@@ -273,7 +273,7 @@ void tube_init(int argc, char* argv[])
char *argv2[20];
size_t bufsize = 127;
int firstArg = 1;
printf("tek4010 version 1.3.4B\n");
printf("tek4010 version 1.4\n");
windowName = "Tektronix 4010/4014 emulator";
if ((argc<2) || (argc>19)) {
printf("Error:number of arguments\n");
@@ -459,11 +459,11 @@ int tube_on_timer_event()
int status;
if ((!argNoexit) && (tube_isInput() == 0) && (waitpid(-1, &status, WNOHANG))) {
long t = tube_mSeconds();
printf("Execution time: %0.3f sec\n", (double)t/1000.0);
if (t > 0) {
printf("Average screen refresh rate: %0.1f Hz\n",(double)(1000.0*refreshCount)/t);
printf("Average character rate: %0.0f baud\n",(double)(8000.0*charCount)/t);
}
// printf("Execution time: %0.3f sec\n", (double)t/1000.0);
// if (t > 0) {
// printf("Average screen refresh rate: %0.1f Hz\n",(double)(1000.0*refreshCount)/t);
// printf("Average character rate: %0.0f baud\n",(double)(8000.0*charCount)/t);
// }
tube_quit();
gtk_main_quit();
printf("Process has been terminated\n");

View File

@@ -1,12 +1,16 @@
Version 1.4 May 15
==================
- APL support released, Tek4010, 4013, 4014, 4015 emulation complete
Version 1.3.4 May 13, 2019
=========================
New features:
- support of keyboard translation table added for APL character set
- experimental support of keyboard translation table for APL character set
Version 1.3.3 May 12, 2019
=========================
New features
- APL mode with APL character set added
- experimental APL mode with APL character set added
Version 1.3.1 May 4, 2019
=========================