1
0
mirror of https://github.com/rricharz/Tek4010.git synced 2026-04-16 08:27:26 +00:00

Version 1.5.6 Improved handling of PLOT 10 data

This commit is contained in:
Rene Richarz
2019-12-02 07:32:16 +01:00
parent 7f262a5320
commit 772a23bb0e
4 changed files with 23 additions and 15 deletions

BIN
tek4010

Binary file not shown.

View File

@@ -196,6 +196,7 @@ void tek4010_escapeCodeHandler(cairo_t *cr, cairo_t *cr2, int ch)
// handle escape sequencies, see 4014 user manual, table page G-1
// codes identical for all modes are handled elsewhere
{
if (DEBUG) printf("Escape %02X, savemode=%d\n",ch,savemode);
switch (ch) {
case 0: break; // ignore filler 0
@@ -267,14 +268,14 @@ void tek4010_escapeCodeHandler(cairo_t *cr, cairo_t *cr2, int ch)
break;
// normal mode
case '`': ltype = SOLID; writeThroughMode = 0; mode = 0; break;
case 'a': ltype = DOTTED; writeThroughMode = 0; mode = 0; break;
case 'b': ltype = DOTDASH; writeThroughMode = 0; mode = 0; break;
case 'c': ltype = SHORTDASH;writeThroughMode = 0; mode = 0; break;
case 'd': ltype = LONGDASH; writeThroughMode = 0; mode = 0; break;
case 'e': ltype = SOLID; writeThroughMode = 0; mode = 0; break;
case 'f': ltype = SOLID; writeThroughMode = 0; mode = 0; break;
case 'g': ltype = SOLID; writeThroughMode = 0; mode = 0; break;
case '`': ltype = SOLID; writeThroughMode = 0; mode = savemode; break;
case 'a': ltype = DOTTED; writeThroughMode = 0; mode = savemode; break;
case 'b': ltype = DOTDASH; writeThroughMode = 0; mode = savemode; break;
case 'c': ltype = SHORTDASH;writeThroughMode = 0; mode = savemode; break;
case 'd': ltype = LONGDASH; writeThroughMode = 0; mode = savemode; break;
case 'e': ltype = SOLID; writeThroughMode = 0; mode = savemode; break;
case 'f': ltype = SOLID; writeThroughMode = 0; mode = savemode; break;
case 'g': ltype = SOLID; writeThroughMode = 0; mode = savemode; break;
// defocussed mode
case 'h':
@@ -308,6 +309,8 @@ int tek4010_checkReturnToAlpha(int ch)
// test for return to alpha character set
// see 4014 manual, page F-10, note 1
{
if (ch == 27)
savemode = mode;
if ((ch==31) || (ch==13) || (ch==27) || (ch==12)) {
if (DEBUG && mode) printf("Going to alpha mode\n");
mode = 0;
@@ -540,11 +543,6 @@ void tek4010_draw(cairo_t *cr, cairo_t *cr2, int first)
if (DEBUG) printf("setting yh to %d\n", yh);
break;
case 2: yl = (ch & 31);
if (windowWidth != 1024) {
int yb = (xy4014 >> 2) & 3;
tube_y0 = (int)(efactor * (double)(((yh+yl) << 2) + yb) / 4.0);
}
else tube_y0 = yh + yl;
mode++;
if (DEBUG) printf("setting yl to %d\n", yl);
break;
@@ -555,8 +553,13 @@ void tek4010_draw(cairo_t *cr, cairo_t *cr2, int first)
if (windowWidth != 1024) {
int xb = xy4014 & 3;
tube_x0 = (int)(efactor * (double)(((xh+xl) << 2) + xb) / 4.0);
int yb = (xy4014 >> 2) & 3;
tube_y0 = (int)(efactor * (double)(((yh+yl) << 2) + yb) / 4.0);
}
else {
tube_x0 = xh + xl;
tube_y0 = yh + yl;
}
else tube_x0 = xh + xl;
mode++;
tube_emulateDeflectionTime();
if (DEBUG) printf("setting xl to %d\n", xl);

2
tube.c
View File

@@ -284,7 +284,7 @@ void tube_init(int argc, char* argv[])
char *argv2[20];
size_t bufsize = 127;
int firstArg = 1;
printf("tek4010 version 1.5.5\n");
printf("tek4010 version 1.5.6\n");
windowName = "Tektronix 4010/4014 emulator";
if ((argc<2) || (argc>19)) {
printf("Error:number of arguments\n");

View File

@@ -1,3 +1,8 @@
Version 1.5.6 of December 2, 2019
=================================
- Improved handling of PLOT 10 data
- Fixed a bug displaying vectors at certain boundaries
Version 1.5.5 of November 25, 2019
==================================
- Properly ignore ANSI CSI escape sequencies,