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:
31
tek4010.c
31
tek4010.c
@@ -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
2
tube.c
@@ -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");
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user