rricharz / Tek4010

Free Tektronix 4010, 4013, 4014 and 4015 terminal emulator for Raspberry Pi, Linux and MacOS (Macintosh)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Implement Tektronix 4015 emulation with APL keyboard and character set

rricharz opened this issue · comments

The manual of the Tektronix 4015 is available at http://bitsavers.informatik.uni-stuttgart.de/pdf/tektronix/401x/

The 4015 has a APL keyboard and an alternative APL character set.

For now I will implement the APL character set using the scalable APL385 font and a code translation table.

Mark,
I have added the Tektronix APL codes in a test version of tek4010 (not yet uploaded).

This is the APL code set:

Screen - 1

The corresponding code is here:

convert.txt

There are a few problems:
Code 64 is most likely wrong, and code 73 and 76 do not display properly. We need to find the proper unicodes for these (using the APL385 font).

The APL code table is on page B-1 of the Tektronix 4015 manual (link above in the first comment on this issue.

Mark,
I wanted to play a little bit with RSX and APL to get ready for testing tek4010 with APL.
Your little example starting with .BXWA works fine, no problem.

Then I got into RSX using tek4010. This is quite messy because you have to bypass screens and because RXS produced lots of "garbage" during the startup. A pain with a non-scrolling terminal. Is there another way to get into RSX, or to turn off that "garbage"?

Then I started APL and set the terminal to 4013. .BXWA doesn't work anymore. Not a surprise, it expects now the apl glyphs. But if type "a"(97) on the keyboard, apl still responds "A"(65). It still capitalizes letters. But if you look at the apl code table in the 4015 manual (link above) it should really respond with (97), because that's now "A" and 65 is alpha. No wonder, if I switch to the APL character set, I get the alpha for typing "a" and "A". The top row of the keyboard works. If I enter 4 there, I get a 4 displayed, and with shift-4, I get the "smaller or equal". Something doesn't work the way I understand that it should work. You can actually test that with any terminal.

Rene,
The start-up garbage in RSX on the PiDP11 is going to go to the first terminal that executes pdp.sh
I would do that with a normal xterm screen, then log into RSX with telnet to a DZ11 port. The boot.ini Simh script for RSX puts the DZ ports at 10001 so telnet 127.0.0.1:10001 would connect you on a
port and none of the console messages will be interjected into the graphics.

On the characters, APL has a built in vector called the atomic vector .BXAV or Quad the box symbol AV Since it is a vector you can select an element like .BXAV[98] is the letter A .BXAV[99] is B
.BXAV will show all characters but it is a bit of a mess in TT mode. Also, APL has no lower case alphabetic letters.

.BXAX[65] is .NG which is negate a - symbol
.BXAV[97] is .DM a diamond shaped symbol

Also, APL has a )ORIGIN system command which changes the array indexing. The default in APL-11 is that )ORIGIN is 1 but it can be changed to 0 and I think that may be shifting the APL symbols  you see at a location in the Tektronix documents.

What you have displayed in the post above looks right except that the index may be off one 98 is A not 97 at least with )ORIGIN 1

I am amazed that you are this far already with the job. The other part that is tricky is the backspace overstrikes, but with a storage tube maybe that is not as hard as a character terminal.

Congrats on the progress!!

Mark

It seems to work quite well now, but some symbols need better unicodes. They can be corrected in tube.c, line 486 ff. Overstrike seems to work (using the backspace key). I tested it with the natural logarithm. But that example shows that either the circle is too small or the star too large. I think that a fine tuning of the unicodes should fix all of that. I think that somebody with a bit of APL experience should do that.

I just realized that https://en.m.wikipedia.org/wiki/APL_syntax_and_symbols has tables with proper unicodes. These could be used, but each one has to be tested. I got the impression that some of them did not work and many are not part of the Tek4013 code set.

Rene,
I was able to test a bit before I left for work this morning and it worked very well for me except for the overstrike characters. I realized at work this morning that some of my keystrokes are possibly being captured by the command line editor I use in RSX. RSX unlike VMS did not have a native command editing capability. It could be added with a CLEACD (Command Line Editor Auxillary Control Driver)
The Frodo disk image has this but the user needs to turn it on, which I do at login.

ACD LINK TI: TO NUMBER CLE$EMACS

after that command line editing with up, left and right arrows is possible.

The CLE$EMACS is a logical symbol that is defined at boot but connects with a table of edit functions that are defined in the file DU:[CLEACD]EMATAB.MAC

If you examine that file you can see what commands are trapped by the ACD and not sent to the running program like APL. For example B moves the cursor backward 1 word like the editor Emacs.

This table can be changed the ACD recompiled and installed to avoid any conflicts between the Tek4013 emulation and the line editing functions. Having the line editor is very helpful in APL because recalling a line fixing the error avoid retyping the whole line. I was trying that also but had trouble that I now realize is the combined trapping and execution of the Tek4010 (e.g. ^n and ^o work fine to switch character set) but some others may not. I'll have time this week end to look at this more closely.

Mark

ctrl-w and ctrl-q are handled directly by tek4010 at the keyboard interrupt level. In APL character set mode this is also true for ctrl-n and ctrl-o. This means that these control characters are not sent to the host. I think simh might also trapp ctrl-e. Of course any of that can be changed if necessary.

Take your time and let me just know what needs to be improved at your convenience. In June and July I have less time and means to fix anything, but the next 3 weeks are fine.

Rene,
If I turn the ACD off...

ACD UNLINK TI:

the APL works pretty good I think I getting all the overstrikes correctly displayed and pass teh correct action to APL for execution. I found an old workspace with some programs and it was great to be able to display them with proper APL symbols. I

'm going to tinker with the ACD editor a bit and see if I can figure out why the backspace is acting strange.

Thanks for a great job.
Mark

Works now very well. Issue closed.

Rene,
Yes it does! The one thing that I'm still going to work on is getting the RSX ACD command line editor to work well with APL and your Tek4010. Command line editing is very useful with APL. Do you have a copy of the APL-11 manual? I have a original printed one and there is a copy of it at:

http://www.bitsavers.org/pdf/dec/pdp11/apl/

APL-11 has some quirks that the manual explains. Also, the source for APL-11 is at DU1:[201,50] and DU1:[201,200] The installed APL-11 is single precision floating point. There is a double precision floating point version at DU1:[201,200]APL7OK.TSK

Also, I'm thinking about ordering some Avery stickers like

https://www.avery.com/blank/labels/94503?qty=5

to be able to print labels for a cheap wireless keyboard with the APL (and standard) symbols.

Yes, I need ACD too. I'm just not the kind of guy who can type in lengthy lines without making any mistake. That's why I used only very short lines in the example I just sent to the PiDP-11 discussion group. In the mean time, do you have a very, very simple example using plotting? I would just like to check whether it is possible to plot. For example just generating a one dimensional vector and plotting it as a bar chart? Or a simple math function like x square as a x/y chart.

I will download the manual and look into it.

Mark,
I am moving this discussion over to the github, and have reopened the issue. I am baffled regarding these strange character alignments. It definitely does not look like that on my Raspberry Pi in a 1024x780 window. I have added a overstrike test to the apltest, which should help to clarify the issue.

Can you please do a pull again, to get the updated test, and then
cd apl
../tek4010 -noexit -APL ./apltest

It should look like this:

2019-05-11-194233_1024x780_scrot

Then please do a ctrl-w and put the screendump here.

Rene,
I haven't used github much so to make sure I got the latest version I removed the Tek4010 directory and all directories below it. Then used the git clone to make sure I had the latest. It did have the apltest file that you asked me to try. This time I captured the entire screen in case that provides any clues. It looks like the APL font is several point sizes bigger than the standard font. I've tested some of your other files (fanastic trek.pic!!) and they render fine.

Thanks!
Mark

OK, I think I found the problem. When I delete the APL385 font, and run fc-cache to remove it also from the font cache, I get exactly what you get. Obviously the fallback font in gtk/cairo has APL glyphs, but not properly aligned ones. A remember having seen a note about that somewhere. Also, the J for example looks different.

What you need to do is to install the APL385 font from the apl directory in my repo. The shell script install_apl does that. See also the chapter "APL mode" in the README.md for details. If that fixes your problem (please let me know), I will tomorrow add a test and a proper error message if the user starts tek4010 in the APL mode without having the font installed.

A few more small remarks:
The error message at the start of tek4010 is a Raspbian bug without any implications. I will look again into trying to suppress it because it is annoying. Doing a „git pull“ will always give you the latest version, or an error message. But if you copy tek4010 in ~/bin or /usr/bin then you have to repeat that of course after every pull. I like that cool Star Trek picture too. The Tektronix 4010 was used in a few science fiction movies of that time. With some luck we will probably discover a few other nice plot files.

Rene,
That was it!! I ran the install_apl script in the apl directory and it fixed the problem perfectly!
Thanks!
Mark
2019-05-11-190456_1824x984_scrot

Added test for installation of APL font to APL mode. Issue resolved.