[comp.sys.atari.st] Uniterm version numbers - What's the latest?

parora@gpu.utcs.toronto.edu (Pavneet Arora) (01/24/88)

Could someone post what the latest Uniterm version number is?  Is this
the one archived at oregon?

If so then this is another request to please post it on the binaries
newsgroup for all of us who don't have FTP.

hakanson@mist.cs.orst.edu (Marion Hakanson) (01/29/88)

The latest that Simon Poole has distributed is 2.0a 006.  Since he
emails them directly to me, I generally have the latest (and make them
available for FTP here when they unpack and run ok).  Simon has
repeatedly asked people to NOT post UniTerm to the net, and to leave
it to him to do that, since only he knows when he will come out with a
newer version.

As an example, I just got a note saying 2.0a 017 is on its way here.
If I had posted 006 (even a couple weeks ago), the effort and Usenet
resources (UniTerm has grown to be quite large, especially if you
include the whole manual) would have been wasted.  This is the kind of
situation we try to avoid.  When Simon thinks v2.0a is stable enough,
I'm sure he will post it to the net.  And you can be sure that I will
not post UniTerm unless Simon asks me to do so.

Meanwhile, if you can send email to a BITNET site, you can retrieve
UniTerm from LISTSERV@CANADA01.BITNET.  Sorry I couldn't help more.

Oh, and just to whet people's appetites (I'll put this up for FTP
as soon as I get the whole thing here):

Date: Thu, 28 Jan 88 16:23:32 GMT
From: K538915%CZHRZU1A.BITNET@cunyvm.cuny.edu

ReadMe for UniTerm V2.0a 017 <-|
----------------------------   |
                               |This number is displayed on the
                                'About UniTerm...' dialog box and
                                indicates the "Edit Number"

Changes 2.0 to 2.0a
--------------------

General:

        At last colour works again. The colour registers are saved and
        restored, so there shouldn't be any mixing up of your normal
        color settings anymore (this is important, since in some future
        version of UniTerm more fancy things may be done :-)).

V2.0a 003
---------

Fixed an error in loading the setup file (the tabs didn't get set).

V2.0a 004
---------

The tab dialog trashes (for some deep unknown reason in GEM) the line-a
variable source_y, fix: set it before every invocation of txtblt.
Expanding and shrinking box added before and after each (nearly) dialog
(this is really stupid, since it just slows things down).

V2.0a 005
---------

<Alternate> works slightly different again (Meta mode stays the same):
If no command value is defined (command = 0) for the key, the character
provided by the BIOS is used for output, hopefully this will set an
end to all the various complaints about the way it worked previously.

V2.0a 006
---------

One file didn't get recompiled after I sorted one of the dialogs in
UNITERM.RSC, lead to a major distortion of the popup :-). Fixed for
most people with a patch and for myself with recompiling.

V2.0a 007
---------

Changed a few internal things in Kermit, which may lead to some
user-visible changes one day........

V2.0a 008
---------

The problem with the cursor disapearing now and then
(happend sometimes after a change in the LED's), has hopefully
been fixed.

V2.0a 009
---------

<Shift><F5> couldn't be used as a downloadable key, due to a typo
in the code.

V2.0a 010
---------

Changed the 'Show Space' code so that it uses the same  critical
error handler as the fileselectors, one less place where you can
bomb UniTerm (just to show off, find any other program that you can't
bomb by using a fileselector on an empty floppy drive!).

The Light<->Dark buttons in the Terminal Setup 1 dialog have changed
from totally useless, to semi-useless. This switch is really redundant
since from V2.0a on UniTerm actually keeps it's own complete copy
of the color pallette, so it's much more resonable to change
fore- and background color with the control panel, none the less
V2.0a 010 has been fixed so that changing the state  of the
buttons inverts the screen (but there is no fixed relationship to
what is dark and light).

V2.0a 011
---------

Changed a few things in the organisation of the internal screen buffer,
double height/width characters should work more consistent with the
different character sets available, in particular implementing NRC sets
should be a lot easier now. Some useless tech info:

   Information stored per character (50 Rows * 132 Columns):

       1 byte : character
       1 word : character set and attribute info:

               -------------------------------------
               | Bit | Function                    |
               -------------------------------------
               | 15  | 1 = Protected               |
               -------------------------------------
               | 14  |                             |
               | 13  | Unused                      |
               | 12  |                             |
               -------------------------------------
               | 11  | Character Set (nibble value)|
               | 10  | currently values from 0 to 8|
               |  9  | are legal (but not all are  |
               |  8  | used) (this is what changed)|
               -------------------------------------
               |  7  | Attribute                   |
               |  6  |  0 : no attributes          |
               |  5  |  1 : bold                   |
               |  4  |  2 : blink                  |
               |  3  |  8 : underscore             |
               |  2  | 32 : inverse                |
               |  1  |                             |
               |  0  |                             |
               -------------------------------------

The first VT300 escape sequences have been implemented:

    ESC?67h  Backspace sends ASCII BS and Delete sends DEL
    ESC?67l  Backspace sends DEL and Delete sends BS

this is not quite how it's implemented on a VT3XX, since
there it only effects the Backspace key.

V2.0a 012
---------

New macro commands:

     %MESSAGE(string)

     Displays 'string' on the statusline. If 'string' is empty the
     normal statusline is restored.

     %SUSPEND()

     Displays 'Press any key...' on the statusline and waits for
     a keypress (particulary useful for people that want to have
     a single key noscroll button).

     %INLINE(mode)

     Reads a line from the keyboard (until <Return> is pressed or a
     maximum of 80 characters are read), if 'mode' is TRUE the characters
     are echoed. The line read is copied into $TEMP.

V2.0a 014
---------

Small changes to the dialer:

    - if the number and macro field is emtpy, the dialer returns straight
      away
    - if the number field is empty, but the macro field has an entry
      the macro file is executed

A tip for people that want the macro to handle the waiting for the CONNECT
or whatever it may be message, just leave out the 'Connect msg' entry. The
dialer will then immediatley start the macro file after sending the number
string (this is not 014 specific!).

V2.0a 015
---------

At last I've produced a documented interface to the internal buffers etc.
of UniTerm. Access is through the macro variable $VARBLOCK (short $V), to
see how it works have a look at the stupid sample program, to start
the program reserve something like 20kB of system memory and put the
following string on one of the function keys:

         %RUN('UNITEST.TOS',$V)

Don't try this if you have started UniTerm from the CCD/OSS Pascal manager,
it's sure to go wrong (this is not a bug in UniTerm!).

$VARBLOCK is a string containing the decimal address of following Pascal
record (should be no problem using a C struct instead):


   {ParmBlock contains buffer addresses etc. to be passed on to other
    processes}
   ParmBlock = Record
                  PBLength       : Integer;
                  {Length of ParmBlock in bytes, handy as a version
                   check}
                  PBFlags        : Long_Integer;
                  {Not used yet}
                  PBTextScreen   : Long_Integer;
                  {Address of text screen}
                  PBGraphScreen  : Long_Integer;
                  {Address of graph screen, same as PBTextScreen
                   if not available}
                  PBScreenBuffer : Long_Integer;
                  {Address of buffer for screen ops etc.}
                  PBTransBuffer  : Long_Integer;
                  {Address of buffer used for the various file transfer
                   protocols}
                  PBTransSize    : Long_Integer;
                  {Size of the transfer buffer (in bytes)}
                  PBTransPtrAdr  : Long_Integer;
                  {Address of the pointer to the current
                   position in the buffer}
                  PBHistBuffer   : Long_Integer;
                  {Address of the history buffer}
                  PBHistSize     : Long_Integer;
                  {Size of the history buffer}
                  PBHistBotAdr   : Long_Integer;
                  {Address of the pointer to the current bottom
                   of the history buffer}
                  PBHistPtrAdr   : Long_Integer;
                  {Address of the pointer to the current position
                   in the history buffer}
               End;

New fields will be added at the end of the record, so applications
just have to check the length field to know what facilities are available.
More information will follow under seperate cover......

V2.0a 016
---------

Initialized cursor properly after ESC Pu.....ESC\ command (host command
to have a line executed by UniTerm's macro processor). One remark to this
escape sequence: it is a bit of a security hole: a nasty person could get
UniTerm to delete you entire disk this way..........
Added a call to form_error after a PExec that goes wrong, is not very
helpful (TOS Error #39 is not enough memory).

V2.0a 017
---------

Checked that every 'Case' statement has an 'Else' label if the range of
the selector variable is larger than the range of case labels. This
started causing trouble with release 2.0 of OSS/CCD Pascal, prior to 2.0
non-matched values just caused a fall-through, in 2.0 depending on how
the the compiler is feeling this causes a lot of bombs (possibly random
code being executed). One place where the problem turned up was in the
escape sequence ESC[2m , 2 is actually an illegal value which didn't have
a corresponding case label (BTW there were only 5 'Else's missing in 500kB
of Pascal source).

**************************************************************************

Marion Hakanson         Domain: hakanson@cs.orst.edu
                        CSNET : hakanson%cs.orst.edu@relay.cs.net
                        UUCP  : {hp-pcd,tektronix}!orstcs!hakanson