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. ** *****************************************************************************