10 Feb 91 03:37
Bill Gribble: NRTS v.5, an HP48 terminal emulator.

NRTS ver. 0.5
HP48sx dumb terminal program
Bill Gribble


I. Introduction

This is the first release version of NRTS, a dumb terminal program.  After   
  fairly extensive betatesting I feel it's ready for general distribution.
  NRTS has about the functionality of other currently available terminal
  programs; that is, it doesn't process escape sequences and processes
  only a few control characters.  Its fundamental advantage is speed.  The
  bulk of the program is written in machine code, interspersed with RPL
  threads where I needed them, and is quite quick.  Also, NRTS has at least
  one feature that's different and, I think, sort of neat: the function
  keys, which I'll talk about later.

You may notice that the version number of this release is 0.5; I am still
  working on an ANSI code parser that will make NRTS a "real" terminal
  emulator, and hopefully allow anyone who feels the need to run an 8x22
  EMACS session :-)  That version will be 1.0, since I don't think the 
  program's finished until it has escape code processing.

NRTS is enclosed as an ASC'ed directory containing the program and the 
  FKEYS function key list with some sample function keys.  I don't have
  real documentation produced, but I will try to make this text thorough
  enough to make do.

II.  General information.

As mentioned before, NRTS uses an 8x22 text display screen.  It uses a 
  subset of the HP48's medium font including only the characters from
  ASCII 32 thru 127.  Control characters are all processed, meaning they
  aren't displayed as those irritating little squares.  Escape sequences
  appear as text.  
  
Each key on the keyboard has up to four assignments: unshifted, blue-shifted,
  orange-shifted, and alpha-shifted.  As a rule, unshifted = lowercase
  alpha, blue-shifted = uppercase alpha, orange-shifted = control, and 
  alpha-shifted are program control and function keys.  Complete keymaps
  follow in their own section.  Unfortunately, in the interests of speed 
  the key assignments are built in the program in a lookup table.  They 
  are easy to change in the source, but difficult once the program is 
  compiled.  This may change in a later version, but for now send me your
  key suggestions and I'll try to improve the keyboard as versions go by.
  The shift- alpha-keys work a little differently.  Hitting alpha or
  orange-shift causes the appropriate annunciator to be displayed and 
  the NEXT keystroke is shifted that way, unless the same (shift or alpha)
  key is hit again, in which case the annunciator goes off and the keyboard
  is returned to itsw unshifted state.  Blue shift, if hit once,
  causes the blue-shifted keyboard to appear for one keystroke, but hitting 
  it again causes the annunciator to stay on and shift to be locked until 
  the next time blue-shift is hit.  Make sense?  Fool around with it and
  you'll see.

Kermit file transfer is implemented in a limited way.  Alpha-R starts 
  kermit receive, but send is not well-implemented since I couldn't include
  an effective file selector.  Alpha-S starts kermit send but is bound to
  cause an error unless you've used a function key or something else 
  clever to put a file name on the stack.  This will be improved in
  later versions.

The function keys are the alpha-shifted "big keys" 789/456*123-0 .+.  
  Pressing one of them evaluates the corresponding element in the list
  FKEYS, going upper-right to lower-left - '7' corresponds to list element
  1, '8' to element 2 ... '-' to element 12, and so on down to '+' evaluating
  element 16.  I think the example function keys give a crude idea of what
  is possible.  Any sort of program that doesn't require arguments from the 
  stack and doesn't leave any behind is o.k. to put in FKEYS.  Since I use 
  the stack/menu grobs for graphics, don't expect anything with PICT to
  perform as expected, although it might.  Use DISP if you want to write to 
  the screen.  Future releases may include phonebooks, file browsers, etc. 
  in fkeys.

Alpha keys summary:

  B:  sends serial break
  C:  toggles between cr and cr/lf for received CR (just cr is default)
  Q:  quit NRTS
  R:  start Kermit receive
  S:  start Kermit send (see note above)

III.  Keyboard layout

Unshifted keyboard:
                 (screen)
     | |_____________________________| |
     |   a    b    c    d    e    f    |
     |   g    h    i    j    k    l    |
     |   m    n    o    p    q    r    |
     |   s    t    u    v    w    x    |
     |   < cr >    y    z   del   bs   |
     |  alf    7     8     9     /     |
     |  ctl    4     5     6     *     |
     |  shf    1     2     3     -     |
     |  on     0     .    spc    +     |
     +---------------------------------+

Blue-shifted keyboard: 
                  (screen)
     |  |____________________________| |
     |   A    B    C    D    E    F    |
     |   G    H    I    J    K    L    |
     |   M    N    O    P    Q    R    |
     |   S    T    U    V    W    X    |
     |   < cr >    Y    Z   del   bs   |
     |  alf    &     *     (     ~     |
     |  ctl    $     %     ^     _     |
     |  shf    !     @     #     "     |
     |  on     )     ,     ?     =     |
     +---------------------------------+

Orange-shifted keyboard:
                  (screen)
     | |_____________________________| |
     |  ^a   ^b   ^c   ^d   ^e   ^f    |
     |  ^g   ^h   ^i   ^j   ^k   ^l    |
     |  ^m   ^n   ^o   ^p   ^q   ^r    |
     |  ^s   ^t   ^u   ^v   ^w   ^x    |
     |  < cr >    ^y   ^z   del  bs    |
     |  alf    [     ]     {     }     |
     |  ctl    <     >     ;     :     |
     |  shf    \     |     '     `     |
     |  on                      tab    |
     +---------------------------------+ 

IV. Source code availability

I'm pretty embarassed about the condition of the source code, but I'll
  post it to wuarchive soon.  I guess I have to pay for sloppy code 
  by having everybody see it.  Hopefully it will be cleaned up by 
  version 1.0.  

V.  Random blathering

I think the idea of 'shareware' for calculator software of this scope is
  ridiculous.  If you like NRTS, please send me mail saying so.  That will
  certainly boost my ego and probably speed the release of version 1.0 :-)

I want to thank all of my betatesters, who kept me from making a total
  fool out of myself by releasing extremely buggy software to the world.

If this documentation is unclear or appears to be in error, or (heaven 
  forbid!) my code is not totally bug-free, please let me know by posting 
  or through email.  One small thing we do know about: if you hit the ON
  key while in the program, the next keystroke will exit the program and 
  leave two system binaries <70h> on the stack.  No big deal, but it
  is inconsistent and I'm sorry I can't figure out how to fix it, since
  the bug is rooted in the behaviour of the lastkey syseval which I don't
  fully understand. 

VI.  Disclaimer and Copyright Notice

      NRTS is (C) Copyright 1990 Bill Gribble

      Noncommercial distribution allowed, provided that this
      copyright message is preserved, and any modified versions
      are clearly marked     as such.  

      NRTS makes use of undocumented low-level features of
      the HP48SX calculator, and may or may not cause loss of data,
      excessive battery drainage, and/or damage to the calculator
      hardware.  The Author takes no responsibility whatsoever for 
      any damage caused by the use of this program.

      THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
      IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
      WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 
      PURPOSE.

*****************************************************************************
**   Bill Gribble                     Harvey Mudd College, Claremont, CA   **
**   bgribble@jarthur.claremont.edu   Never heard of it?  You're stupid.   **
*****************************************************************************

O   /
 \ /
  X  cut here ---------------------------------------------------------------
 / \ 
O   \ 



10 Feb 91 03:48
Bill Gribble: >NRTS v.5, an HP48 terminal emulator.

Oops - I forgot to say something in my little doc file:  NRTS, like all
  other HP term programs, works much better if you put a nonzero value 
  in place 3 of your IOPAR list.  This is the receive-pacing slot, and
  will prevent buffer overflow by having the HP send XON/XOFF when the 
  buffer fills.

And while we're on the subject:  the HP doesn't behave too well when 
  connected to a modem.  Despite XON/XOFF, the 256 character buffer 
  overflows in the time it takes the sending computer to stop sending, 
  even at 1200 baud.  I know it's not my program, because I've tested it by
  using NRTS to log on to my account through a modem, quitting NRTS, and
  doing a "ls -la" XMIT BUFLEN DROP SRECV.  Typically, about 70 or so 
  characters would be all that I found out of several hundred.  So
  you can expect some buffer problems through a modem.

And another small bug I just remembered:  it appears that sometimes the HP  
  sends an XOFF without sequential XON, so if the display 'hangs' hit
  cntrl-q (orange-shift - q) and everything should be alright.

Thanks, and enjoy!

*****************************************************************************
**   Bill Gribble                     Harvey Mudd College, Claremont, CA   **
**   bgribble@jarthur.claremont.edu   Never heard of it?  You're stupid.   **
*****************************************************************************
