1
0
mirror of https://github.com/rricharz/Tek4010.git synced 2026-01-11 23:53:16 +00:00

version 1.0.2, see versions.txt

This commit is contained in:
¨Rene Richarz 2019-04-10 10:53:02 +02:00
parent 3f9ef54a7f
commit cb6d9f2356
14 changed files with 57 additions and 9 deletions

10
install Executable file
View File

@ -0,0 +1,10 @@
# install tek4010 in ~/bin
# create ~/bin directory, if it does not exist
[ ! -d ~/bin ] && mkdir ~/bin
# copy the file to ~/bin, make it executable
cp tek4010 ~/bin
chmod +x ~/bin/tek4010
echo "tek4010 installed"

View File

@ -8,4 +8,4 @@ tek4010: main.c tek4010.c tek4010.h main.h
gcc -o tek4010 main.c tek4010.c tek4010.h main.h $(LIBS) $(CFLAGS) gcc -o tek4010 main.c tek4010.c tek4010.h main.h $(LIBS) $(CFLAGS)
install: install:
cp tek4010 ~/bin ./install

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

BIN
tek4010

Binary file not shown.

View File

@ -27,8 +27,8 @@
#define DEBUG 0 // print debug info #define DEBUG 0 // print debug info
#define DEBUGMAX 0 // exit after DEBUGMAX chars, 0 means no exit #define DEBUGMAX 0 // exit after DEBUGMAX chars, 0 means no exit
#define WRITE_TROUGH_INTENSITY 0.6 // green only #define WRITE_TROUGH_INTENSITY 0.5 // green only
#define NORMAL_INTENSITY 0.7 #define NORMAL_INTENSITY 0.8
#define CURSOR_INTENSITY 0.8 #define CURSOR_INTENSITY 0.8
#define BRIGHT_SPOT_COLOR 1.0,1.0,1.0 #define BRIGHT_SPOT_COLOR 1.0,1.0,1.0
#define BRIGHT_SPOT_COLOR_HALF 0.3,0.6,0.3 #define BRIGHT_SPOT_COLOR_HALF 0.3,0.6,0.3
@ -196,7 +196,7 @@ void tek4010_init(int argc, char* argv[])
char *argv2[20]; char *argv2[20];
size_t bufsize = 127; size_t bufsize = 127;
int firstArg = 1; int firstArg = 1;
printf("tek4010 version 1.01\n"); printf("tek4010 version 1.0.2\n");
if ((argc<2) || (argc>19)) { if ((argc<2) || (argc>19)) {
printf("Error:number of arguments\n"); printf("Error:number of arguments\n");
exit(1); exit(1);
@ -325,7 +325,7 @@ void tek4010_init(int argc, char* argv[])
// parent process // parent process
free(str); free(str);
close(getDataPipe[1]); // not used close(getDataPipe[1]); // not used
close(putKeysPipe[0]); // not used close(putKeysPipe[0]); // not used
@ -527,6 +527,7 @@ void escapeCodeHandler(cairo_t *cr, cairo_t *cr2, int ch)
{ {
if (DEBUG) printf("Escape mode, ch=%02X\n",ch); if (DEBUG) printf("Escape mode, ch=%02X\n",ch);
switch (ch) { switch (ch) {
case 0: break;
case 5: // ENQ: ask for status and position case 5: // ENQ: ask for status and position
// not yet implemented, needs to send 7 bytes // not yet implemented, needs to send 7 bytes
printf("ENQ not implemented\n"); printf("ENQ not implemented\n");
@ -551,6 +552,11 @@ void escapeCodeHandler(cairo_t *cr, cairo_t *cr2, int ch)
mode = 5; mode = 5;
plotPointMode= 1; plotPointMode= 1;
break; break;
case 29: // group separator >> graphics mode
mode = 1;
plotPointMode = 0;
break;
// start of ignoring ANSI escape sequencies, could be improved (but the Tek4010 couldn't do this either!) // start of ignoring ANSI escape sequencies, could be improved (but the Tek4010 couldn't do this either!)
case '0': case '0':
@ -700,7 +706,7 @@ void tek4010_draw(cairo_t *cr, cairo_t *cr2, int first)
todo = 4 * TODO; // for text speed todo = 4 * TODO; // for text speed
else else
todo = TODO; todo = TODO;
do { do {
ch = getInputChar(); ch = getInputChar();
@ -794,7 +800,9 @@ void tek4010_draw(cairo_t *cr, cairo_t *cr2, int first)
if ((mode == 7) && (tag != 1)) mode = 8; if ((mode == 7) && (tag != 1)) mode = 8;
} }
else { else {
if (ch == 0) return;
if (ch == 29) mode = 1; // group separator if (ch == 29) mode = 1; // group separator
else if (ch == 28) { plotPointMode = 1; todo = 16 * todo; }
else printf("Plot mode, unknown char %d, plotPointMode = %d\n",ch,plotPointMode); else printf("Plot mode, unknown char %d, plotPointMode = %d\n",ch,plotPointMode);
return; return;
} }
@ -905,7 +913,7 @@ void tek4010_draw(cairo_t *cr, cairo_t *cr2, int first)
case 30: case 30:
escapeCodeHandler(cr, cr2, ch); escapeCodeHandler(cr, cr2, ch);
break; break;
case 40: // incremental plot mode, wait for end mark case 40: // incremental plot mode, not implemented
if (ch == 31) mode = 0; // leave this mode if (ch == 31) mode = 0; // leave this mode
break; break;
case 101: case 101:
@ -996,4 +1004,5 @@ void tek4010_draw(cairo_t *cr, cairo_t *cr2, int first)
// display cursor // display cursor
if (showCursor && (isInput() == 0)) doCursor(cr2); if (showCursor && (isInput() == 0)) doCursor(cr2);
} }

7
uninstall Executable file
View File

@ -0,0 +1,7 @@
# uninstall tek4010 in ~/bin
# remove file from /home/pi/bin
rm ~/bin/tek4010
echo "tek4010 uninstalled"

View File

@ -1,5 +1,18 @@
Version 1.01 April 9, 2019 Version 1.0.2 April 10, 2019
========================== ============================
Phase: beta test
New features:
- added install and uninstall scripts
Bug fixes:
- ignore 0 in ESC mode
- ESC GS: alternative way to go to graphics mode
- ignore 0 in graphics mode
Appearance:
- increased normal intensity slighly
- reduced write-through intensity slighly
Version 1.0.1 April 9, 2019
===========================
Phase: beta test Phase: beta test
New features: New features:
- Baud rate emulation accounts for 1 start and 1 stop bit - Baud rate emulation accounts for 1 start and 1 stop bit