LisaList2

General Category => LisaList2 => Topic started by: rayarachelian on December 06, 2020, 04:53:07 pm

Title: LisaTerminal limitations (rant)
Post by: rayarachelian on December 06, 2020, 04:53:07 pm
So LisaTerminal has a lot of limitations.
The most obvious is that it doesn't have file transfer capabilities, X/Y/Zmodem and possibly Kermit would have been very helpful.
A big issue I've noticed is that the cursor keys aren't standard. This isn't a bug in LisaEm because I tried the cursor keys in LisaCalc and there, they work properly.
In LisaTerm, cursor up produces ESC O S, cursor down produces ESC O R, these are not standard escape sequences at all. It may be possible to redfine a termcaps on your host OS to handle these.

Much worse, however, cursor left and right produce , (comma) and - (minus)! These are not escaped, which makes it impossible to distinguish between an actual comma/dash and a cursor movement.
 LisaTerm manual (http://bitsavers.org/pdf/apple/lisa/office_system/A6L0147_LisaTerminal_1983.pdf) (page 78) indicates that you'd have to hold down control to send a cursor key, else it will send PF1-PF4 on the top right numeric keypad keys. With LisaEm on Linux (well, the GTK build of wxWidgets more specifically), you can switch to the raw keyboard and use ALT cursor-key instead of control and that works to send the right codes. But it's certainly annoying when compared to using a normal terminal app like KiTTY/Terminator, AlacriTTY, Iterm2, etc.

Personally when connecting to *nix systems, I use the cursor keys far more than I've ever had a need for PF1-4. But I suppose they wanted to match the keyboard layout of a real VT100 which unfortunately conflicts with the placement of the Lisa's cursor keys, causing this issue. I suppose some older services such as compuserve or perhaps some vaxen or mainframes had more use for PF1-4 than cursor keys.

This makes it very hard to use LisaTerm with a native host PTY.  I suppose you could enable VI editing mode, but...

(As an aside, yes, PTY mode works pretty well now. There's random cases where we get stuck in a read() call even though I use poll to check if we received a character before calling read - as far as I can tell, it's doing the right things, but sometimes, poll returns that there's data waiting to be read, which then when read hangs LisaEm. I haven't yet tested this on macos, I'm working on adding support for physical serial ports (well USB/serial adapters on modern systems...)

Perhaps once I get past LisaEm 2.0 and get some more experience with writing LOS apps, I'll try writing a Lisa Terminal replacement. Unless someone wants to try that now.
I'm thinking something somewhat like ZTerm/Qodem/Minocom, with full VT100/ANSI support (well as much as possible given a black and white screen), and possibly using the standard IBM PC fonts so the high characters can be useful. (A Petscii mode would be good too for us commodore fans) and then adding at least XModem.
The LisaTerm stationary/paper model is a good thing so you can connect with some pre-saved settings and most of the features are nice (never saw a ruler before, and it's nice that it has an early form of scrollback), and that you can reverse it to white on black, etc.
Title: Re: LisaTerminal limitations (rant)
Post by: stepleton on December 06, 2020, 06:46:05 pm
This is a fair rant. LisaTerminal isn't that much fun. I think at least that the VT100 emulation is fairly OK, but I haven't tested it too much, and I could be wrong.

ymodem and zmodem are both newer than LisaTerminal, but xmodem and kermit were already around. To me one question though is: once you downloaded the files, what would the Office System do with them? There aren't any tools that create documents for other tools -- would it convert downloaded files in various formats to files that the tools understand?
Title: Re: LisaTerminal limitations (rant)
Post by: rayarachelian on December 07, 2020, 05:29:26 am
To me one question though is: once you downloaded the files, what would the Office System do with them? There aren't any tools that create documents for other tools -- would it convert downloaded files in various formats to files that the tools understand?

The key to this would be the Desktop Manager (aka System.Shell). These q's could be answered by some experimentation to:

1. see whether or not it will recognize a new document that pops up out of nowhere, but has the right name, and if it will happily add it to drive that it was downloaded to, or if there's some API that can be called to make that happen. Perhaps the desktop database file would need editing, and if so, how do you signal to it that it should reload it? The model right now is of tearing off a sheet of stationary for the right kind of document, and then launching the appropriate tool with that document as a parameter (optionally signalling that the tool should print the document and then close *)

2. There's no drag and drop in LOS, but if there were it would be possible to signal to LisaTerm that you'd want to upload a document over some protocol that could be setup in preferences.

There is some documentation around Desktop Manager, but not sure that it's enough.

Alternatively, as a first pass, a file picker like in early macos can be added.

* Perhaps it might be possible to add other methods than just "Print" - perhaps an upload method could be added which would instead of invoking the app, would invoke LisaTerminal - but then which LisaTerminal paper (service connection) would you upload to?

I think for a first pass adding a file picker would be a good start, and then a lot of reverse engineering of the Desktop Manager would be needed. ofc, if Lisa OS Source is released, and it includes the Desktop Manager, it would make that a lot easier.  As it would adding new features to the existing LisaTerminal tool.)

I suppose, as this is just a "Nice to do" in the future thought exercise, and not something I'm planning on doing immediately, it leaves enough time to plan it out and experiment. It certainly hints at something bigger - that we could eventually perhaps make an updated Lisa Office System 3.2 or even 4.0.