bgribble@jarthur.claremont.edu (Bill Gribble) (02/10/91)
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 \ %%HP: T(3)A(D)F(.); "69A20FF73D200000005064B45495355047A20D9D20E1632C2A20910001647464 70283233333A057E128DBF1C2A20520003416C6C696E67602375627675627E2E 29C2A2485A193632B2130D9D20E1632C2A2011000C702D6F6275657E128DBF19 3632B2130D9D20E163293632B2130D9D20E163293632B2130D9D20E163233920 3000000000000210C0022C2A20720003507565646023756470247F6021323030 39C2A2485A193632B2130D9D20E1632339203000000000000420C0022C2A2072 0003507565646023756470247F602234303039C2A2485A193632B2130D9D20E1 632339203000000000000690C0022C2A20720003507565646023756470247F60 2936303039C2A2485A193632B2130D9D20E163293632B2130D9D20E163293632 B2130D9D20E163293632B2130D9D20E163293632B2130D9D20E163293632B213 0D9D20E163293632B2130D9D20E163293632B2130D9D20E163293632B2130D9D 20E163293632B2130B21304C20040E425453540D9D20ACC4626BE2CCD2045000 8FB97608ECCF0AF0101AF03465507135143818F09818F09102AF01038F2D7608 ECFF0142164808C2A170CCD207200014334ACC468A2B0174E76BEF142164808C 417408DA16D9D2044EF30DB461BE309FF3029D1406FA2AEC81CCD20F32008E7C F014313317414706133174E78FB976007D511980824150008A4808CE60080824 740008A4808C7D0080824D30008A4808C7E00808A2808C1510808A3808C2F008 08A0808CBF00808A1808CC0108082088C0610808A36180883808808082086920 808A061808808089380820A6E008089080820A109344C6071342015008082410 00081AF008F735608F2D7608E46E08CB0F0808A1118088180820860BF8089180 820961AF808A211808828082086B8F8089280820C6C7F8082446000C880820A6 1808082446000C8808801098082086360808248C000C88088180820810965401 198088220808244C6071308082081500109AF2D981AF088F735608E68D08CD2E 0AF2D981AF0820344C60713415008F2D7608F735608E15D08CCDD08DA16D9D20 CCD20060008FB97601431331741470634200008FD7B5007DA3461E00C4C281B4 CA13114F14C8F2D76081AF10141142164808CF6EE244230B2130D9D2088130D8 732D9D2088130D4140167E18A732D9D204423044230CCD20620008EECC011980 8941098E57C0142164808C5DE12B21305DF228813017040167E18A732D9D2044 23044230CCD20630008E17C011180877B0808576800808471018E80C01421648 08CB21305DF228813075140167E18A732D9D20442304423069F12B21305DF228 813076040167E18A732D9D2044230442302C022B21305DF22881308813098140 167E18A732D9D2044230442300FE12B21305DF226CB46167E18A732D9D204423 0442304563284E205064B4549535976329C2A26C7D1EB3A1B21305DF2288130A 9CC1167E18A732D9D2044230442304563284E205064B454953597632ED2A26C7 D1EB3A1B21305DF2288130ADB46167E18A732D9D2044230442304563284E2050 64B4549535976323F2A26C7D1EB3A1B21305DF22881304EB46167E18A732D9D2 044230442304563284E205064B454953597632803A26C7D1EB3A1B21305DF228 81301192084000167E18A732D9D20442304563284E205064B454953597632D13 A26C7D1EB3A1B21305DF22881301192094000167E18A732D9D20442304423045 63284E205064B4549535233A26C7D1EB3A1B21305DF228813011920A4000167E 18A732D9D2044230442304563284E205064B4549535743A26C7D1EB3A1B21305 DF228813011920B4000167E18A732D9D2044230442304563284E205064B45495 35C53A26C7D1EB3A1B21305DF22881301192025000167E18A732D9D204423044 2304563284E205064B4549535173A26C7D1EB3A1B21305DF2288130119203500 0167E18A732D9D2044230442304563284E205064B45495357E0566C7D1EB3A1B 21305DF22881301192045000167E18A732D9D2044230442304563284E205064B 454953530CC16C7D1EB3A1B21305DF22881301192055000167E18A732D9D2044 230442304563284E205064B4549535D1CC16C7D1EB3A1B21305DF22881301192 0C5000167E18A732D9D2044230442304563284E205064B454953573CC16C7D1E B3A1B21305DF228813011920D5000167E18A732D9D2044230442304563284E20 5064B454953515CC16C7D1EB3A1B21305DF228813011920E5000167E18A732D9 D2044230442304563284E205064B454953558CC16C7D1EB3A1B21305DF228813 011920F5000167E18A732D9D2044230442304563284E205064B4549535A3DC16 C7D1EB3A1B21305DF2244230B21305DF22B2130B2130D9D20B3313CCD20F3000 174E78FB9760143818F0413114796AF08F2D7608C52608F2D7608C43608DA16D 9D205E413D9D2044230CCD20684008E6A50143133174147818FA481E17413313 0BF0BF0AEA103AF014A8084731029EE72D2D6C6C6CA3406E00CA81B5CA131143 CA81B28EB7008ECC104606C108E48108EF62046069008E4330113AE6BF4BF4A6 EAFC96A12AFC818F01130BF0BF0AEA103AF06B6FAFC8F2D7608E9840174E7142 164808C3102B6ABF034AC700CA81B5CA13115778082FC0C0C0C0C0C0C0C0AF81 1180866C28082F0303030303030303AF88E7C0081E81E8EBB00AF781AF121302 F15600D16015600E750E7F15400C180154016E16E1638926189111890C00D0D8 C0CFF20018E45008EF31046069DE8E40208CECEF8E530011180867518E611046 060BE8EBD108C5AEF8E6A008C99EF8C39EF8E490059F0320D0818F02CC8A821A 0655F8180206CEF89F800C69DF200111AD5BF6BF6BF6BF6BF6808225109E6400 2B66BF2BF2BF2BF2BF2D911180876D0E6808566E00818F218084610110A0311A D5BF6BF6BF6BF6BF696E4002A6EBF2BF2BF2BF2BF2D911180866D0CE808466E0 0818FA18085610110A032011AD5BF6BF6BF6BF6BF6BF1BF1AE5BF6BF68082069 86909027302B06BF2BF2AE9BF5BF5BF2BF2BF2BF2BF2D98082401100C26660B0 6BF2BF2AE9BF5BF5BF2BF2BF2BF2BF2D98082465507131143D88082447600C8E D8082415507131143818F09818F09C0D610A038082465507131143D83442100C A131D413016916934C60001537150717E16ECE8AEDE15BB158B16B8082415507 13114313117917934210001537150716E17ECE8AEDE808241550713114313117 91793421000AF01517CE17E8AE4F01B2130B2130D9D2044230B2130B2130CCD2 0720008EDF008EFA0011180874808CC4108CA2108C170CCD204AA0014334ACC4 6174E78A2606BEF142164808C808246550713114313117917934E7000AF01517 CE17E8AE4F159A80824155071311431311791793421000AF01517CE17E8AE4F0 18FB9760808240B00081B5CA131111151717F112151717F113151717F1141517 8F2D760018FB976034B600081B4CA131153710117F153710217F153710317F15 371048F2D760011C4CF8082418A30141142164808C1C4CF808240CA301411421 64808C05000000000000005680790700000000104BBC7DC2470510B0347DC247 0510000000000000000000020202020202020202020216263646566602020202 768696A6B6C602020202D6E6F60717270202020237475767778702020202D097 A7F780020202020202738393F2020202020202435363A2020202020202132333 D202020202020203E202B2020202020202020202020202020202142434445464 02020202748494A4B4C402020202D4E4F4051525020202023545556575850202 0202D095A5F78002020202020262A282E70202020202024252E5F50202020202 021204322202020202020292C2F3D30202020202020202020202020202021020 3040506000000000708090A0B0C000000000D0E0F00111210000000031415161 718100000000D091A1F780000000000000B5D5B7D7000000000000C3E3B3A300 0000000000C5C772060000000000000000009000000000000000000000040004 0404040400000000000A0A0A000A0A1F0A1F0A0A00040F140E051E0400181902 0408130300160915020505020000000000040404000804020202040800020408 0808040200000A041F040A00000004041F040400020406060000000000000000 1F00000000060600000000000000010204081000000E11131519110E000E0404 04040604001F01020C10110E000E11100E10110E0008081F090A0C08000E1110 100F011F000E11110F01020C000202020408101F000E11110E11110E00060810 1E11110E0000060600060600020406060006060000080402010204080000001F 001F00000001020408040201000400040810110E001E01051D15110E00111111 1F11110E000F11110F11110F000E11010101110E0007091111110907001F0101 0F01011F000101010F01011F001E11190101110E001111111F111111000E0404 0404040E000E1111101010100011090503050911001F01010101010100111111 15151B110011111915131111000E11111111110E000101010F11110F00160915 1111110E001109050F11110F000E11100E01110E000404040404041F000E1111 111111110004040A0A11111100111B15151111110011110A040A111100040404 040A1111001F01020408101F000E02020202020E0000100804020100000E0808 0808080E0000000000110A04001F0000000000000000000000040202001E111E 100E0000000F1111110F0101001E0101011E0000001E1111111E1010000E011F 110E00000002020207020A040E101E11110E000000111111110F0101000E0404 0406000406090808080C00080009050305090101000E04040404040600111515 150B000000111111110F0000000E1111110E000001010F11110F000010101E11 111E000000010101031D0000000F100E011E000000040A0202070202001E1111 1111000000040A1111110000000A15151111000000110A040A1100000E101E11 11110000001F0204081F0000000C02020102020C000404040404040400060808 1008080600000008150200005A1005A1005A1005A1005A1005A1005A1005A100 991005A100151001510015100071005A1005A1005A1005A1005A1005A1005A10 05A1005A1005A1005A1005A1005A1005A1005A1005A1005A1005A1005A1005A1 005A1005A1005A1005A100B21306F93"