QCTerm

QCTerm, the terminal emulator portion of the QueryCalc Display Terminal, is not constructed as a precise mimic of either Reflection or even an HP700/92 terminal, although it identifies itself as the latter. Rather, we wanted to make QCTerm simpler, more browser-like, and more intuitive, while retaining the full functionality that would be expected of an HP terminal - eventually becoming fully competitive with the other PC-based terminal emulators.

Our hope is that we can make QCTerm sufficiently self-explanatory so that not all that much of a manual will be necessary. Whatever documentation proves necessary will be put here on the web.



Some Features (& Tricks) of QCTerm

The Modifier Keys
For those of you who have extensively used Reflection terminal emulator in the past, some adjustments will be necessary. Very few of the Reflection key sequences are used in QCTerm. Instead, we've tried to bring some order to the key sequences. We have most especially attempted to make QCTerm's sequences be in agreement with the standard sequences that have recently come to PC-based software.

In QCTerm, the ALT key is used only for the pull-down menu at the top of the screen. It is not used to generate any other form of QCTerm command sequence - with the exception of modifying the arrow keys, as noted below.

Rather, the CTRL key is used as the primary modifier for all other purposes than the pull-down menu. You'll see these differences as you read through the text below.
The Size of the Display Screen
The displayable screen size for QCTerm may be set in the "Terminal Preferences..." option of the "Terminal" pull-down menu to be either:
  • 600 rows by 200 columns
  • 900 rows by 132 columns
  • 1400 rows by 80 columns
In addition, there are four display windows for you choose among. These displays may be characterized as:
  • A large font, 80-character-like display
  • A small font, 80-character-like display
  • A small font, 132-character-like display
  • A small font, full-screen display
The actual number of characters that will appear on your screen will depend on your PC's screen resolution (640x480, 600x800, etc.).

While QCTerm will work on PCs set to the lowest screen resolution, 640x480, we recommend that you use 600x800, if at all possible. Everything about QCTerm's design was formatted so that it would look best and text would appear most appropriately when set to a 600x800 (SVGA) resolution, using Windows' Small Fonts option.
The 132-column Display is Undistorted
Rather than having the fonts become quite tall and thin when a 132-column display is selected, we elected to have QCTerm compress its screen height and drop to a smaller font size instead. Doing this allows the screen to maintain its original proportions.

The font-distorting "feature" of the 132-column mode on a regular HP terminal is a necessary consequence of the constraints that govern the terminal's design. However, on a PC, those constraints disappear and we elected not to mimic them.
The  ←  →  ↑  ↓  Arrow Keys
The arrow keys work as you would expect while you remain within the boundaries of the display screen. However, unlike a terminal (or Reflection), when you reach the edge of the display screen, QCTerm's cursor does not flip to the opposite side of the screen and continue its motion there. Rather, the terminal begins to automatically scroll, as if it were a browser, three rows (or three character columns) at a time, depending on which way you're moving.

Each of the arrow keys can also be pressed with a modifer (SHIFT, CTRL, or ALT) key, somewhat akin to Reflection's behavior. If the arrow key is pressed in conjunction with one of the modifier keys, the screen immediately begins to scroll, leaving the cursor in its screen-relative position, without having to cause the cursor reach one of the screen edges. Moreover, the three different modifier keys cause the scroll to occur at differing rates:
ALT causes the screen to scroll 1 column (or row) at a time.

CTRL causes the screen to scroll 3 columns (or rows) at a time.

SHIFT causes the screen to scroll 10 columns (or rows) at a time.
The modifier keys were designed in such a manner so that you're left with the feeling of increasingly putting "the pedal to the metal," accelerating the rate at which you scroll, but leaving you with an easy mechanism to choose the rate at which you scroll.

If you wish to use these high-speed scroll features to their fullest, you may wish to go to your Windows Control Panel, select "Keyboard," and set the "Repeat delay" to its shortest possible setting and the "Repeat rate" to its fastest possible setting.
The Page Up/Page Down Keys
The Page Up/Down keys cause the display to scroll up or down, 24 rows at a time. Although no modifier key is necessary to engage their behavior, pressing the CTRL key does no harm. The CTRL key modifier is supported only for psychological compatibility with the Reflection terminal emulator.
The Home/End Keys
The Home/End keys cause the display to go to either its first screen row or its last screen row. As with the Page Up/Page Down keys, although no modifier key is necessary, simultaneously pressing the CTRL key will not modify their behavior. The CTRL key modifier is supported for psychological compatibility with Reflection.

Similar to Reflection, SHIFT+Home causes the cursor to return to the beginning of the current row while SHIFT+End places the cursor at the end of text on the current row.

As an additional functionality, pressing the CTRL+Home key combination twice rapidly (within a quarter second) will cause the terminal to perform a screen home and clear.
The Insert/Delete Keys
The Insert key puts the terminal into character insert mode. This mode is indicated by both an annuciator message at the bottom of QCTerm's window and by a change in the appearance of the cursor. If the terminal is in its normal mode, with an underline cursor, the insert cursor will be indicated by a block cursor. If the terminal cursor is reversed, the Insert Mode cursor will similarly be reversed.

The terminal will remain in Insert Mode until (i) the Insert key is pressed again, (ii) an appropriate escape sequence is received, or (iii) the terminal is reset.

The Delete key takes effect immediately, deleting the character at the cursor's current location.
Inserting and Deleting Lines
The Insert and Delete keys' functions may be modified with the CTRL key. If pressed simultaneously with the Insert or Delete keys, the keys become Row Insert and Row Delete, respectively.
The Pause/Break Key
If the Pause-Break key is pressed, an Xoff (CTRL-S) character is sent to the terminal, stopping the flow of data from the host computer to QCTerm. If the key is pressed again, an Xon (CTRL-Q) character is sent, resuming the data flow. The Pause button on the lower edge of QCTerm's window acts both as an annuciator, declaring the current state of the pause, and as somewhat of a twin to the Pause-Break key.

When the Pause-Break key is pressed with SHIFT modifier key, a BREAK signal is transmitted to the host computer. A BREAK may also be generated by pressing ALT+B.
ALT+B = Break
Shift+Pause = Break
The Scroll Lock Key
The Scroll Lock key is intercepted by Windows 95/NT at a processing level lower than QCTerm. It preforms a process something akin to Memory Lock in the terminal emulator, but not in a manner that is particularly useful. In general, it is recommended that you not use this key.
The Print Scrn/SysRq Key
The Print Scrn key is a second key that is intercepted in Windows 95/NT at a processing level lower than QCTerm, but in this case, the key's function can be very valuable for documentation purposes. Whenever the key is pressed, a bit-map snapshot of the entire current Windows display is put into the clipboard.

If Alt+Print Scrn is pressed, only the active window is placed into the clipboard. If QCTerm is the active window, a bit-map of the current screen, including high-lighted text and current function key settings, is made immediately available for pasting into other document-processing programs.
The Tab Key
When pressed as an unmodified key, the Tab key generates a horizontal tab character. When modified with the SHIFT modifier key, the Tab key generates a horizontal backtab character.
The Function Keys, F1 thru F12
The function keys F1 through F8 act in the normal manner appropriate to an HP Terminal. The remaining four function keys, F9 through F12, are assigned specific, non-modifiable functions. They are:
F9
System Keys. Pressing F9 will cause the topmost level of the terminal's System function keys to be displayed at the bottom of the screen.

F10
User Keys. Pressing F10 will cause the terminal's user-definable function keys to be displayed at the bottom of the screen.

F11
Special Characters. Not yet active. When activated, F11 will bring up a special (Roman-8) character form, allowing the user to pick one (or a sequence) of special characters that are otherwise unsupported on a standard PC keyboard.

F12
Enter Key. F12 is the ENTER key, as defined by a standard HP Terminal, not the RETURN key, which is often confusingly labeled as "Enter" on a PC's keyboard.
If your screen display is wide enough, you will be able to see all twelve function keys. But even if the screen size is too small and these four extra function keys are not visible, it still will not be necessary to memorize their functions. They are recapitulated in QCTerm's "Terminal" pull-down menu.
The CTRL+Function Keys, CTRL+F1 thru CTRL+F12
The function keys F1 through F12, when pressed with the CTRL modifier key, engage specific terminal display functions, allowing you to change the appearance of your screen "on the fly." The first four function keys control screen size. The next four control the font. The final four control the screen's color. You do not need to memorize these functions. They are repeated in QCTerm's "Screen" pull-down menu. They are:

CTRL+
F1
Large Font, 80-Character Display Window.
F2
Small Font, 80-Character Display Window.
F3
Small Font, 132-Character Display Window.
F4
Small Font, Full Width, Full Height Display Window.
F5
Bold Font.
F6
Elegant Font.
F7
Voyager Font.
F8
Courier Font.
F9
Inverts Color Motif.
F11
Previous Screen Color Motif.
F12
Next Screen Color Motif.
The CTRL+Alpha Keys
Certain CTRL+Alpha key combinations have become (or are on their way to becoming) standard on a PC. QCTerm enthusiastically supports the more standard of these combinations, simply because they greatly facilitate the ease at which one can move from program to program. These same key combinations are also supported by a growing number of software titles, including Netscape's Navigator, Microsoft's Excel, Word, Internet Explorer and Visual Basic, and America Online, among others.

These particular key sequences were originally defined in the early 1980's by Apple for the Macintosh. On that machine, Apple used a modifier key, called COMMAND, which unfortunately doesn't exist on a PC's keyboard. To compensate, people have used the CTRL key as the substitute modifier key when they've migrated these key combinations over onto the PC.

Among the more common of these sequences are:
CTRL+P = Print Current Screen
CTRL+S = Save Current Work

CTRL+A = Select All
CTRL+X = Cut
CTRL+C = Copy
CTRL+V = Paste
CTRL+F = Find

CTRL+Q = Quit Program
Some of these key sequences, however, clearly interfere with some of the same sequences that have been traditionally used on the HP3000, most notably CTRL+S, CTRL+Q, and CTRL+A.
The CTRL+Alpha Keys (Transparent Mode)
If you wish to use QCTerm as a traditional terminal emulator, a mode switch has been put into QCTerm that allows CTRL+Alpha characters to be passed on to the host and not processed locally. Two sequences have been defined to allow you to transmit any control key sequence to the HP3000. Once typed, QCTerm switches to Transparent Control Code mode. This mode is indicated to the user by having the text written in to communications control panel at the bottom of QCTerm's screen become bright blue.

To switch back to the newer user mode, use one of the two sequences shown below. Once done, the communications control panel returns to black lettering.
CTRL+T = Switch to Transparent Control Code mode
CTRL+Shift+F12 = Switch back to Local Process mode

ALT+T T = Switch to Transparent Control Code mode
ALT+T L = Switch back to Local Process mode
Some HP3000 sequences are common to both modes, however. They are:
CTRL+Y = Subsystem Break
CTRL+N = Line drawing set on
CTRL+O = Line drawing set off
CTRL+G = Bell
The CTRL+S and CTRL+Q (Xon/Xoff) pair of sequences, which act as a traditional data flow start/stop method, are transmitted to the host HP3000 only when in the CTRL+T mode. However, two additional flow control keys are present in QCTerm and they operate in either mode. They are the Pause-Break key on the keyboard and the Pause button at the bottom of QCTerm's screen.
The Screen Buttons: Size, Font, Color
Each of the three attributes of the screen display (size, font, and color) can be set independently, "on the fly," while QCTerm is receiving data.

The three on-screen buttons, Size, Font, and Color, cause their respective attributes to advance by one, instantaneously changing the screen size, font, or color.

Similarly, each of the buttons can be caused to decrement their respective indexes if the buttons are pressed simultaneously while holding down any of the modifier keys (SHIFT, CTRL, or ALT).


Connectivity

Current Options

Two connection methods are available in the current version of QCTerm. They are:
  • Serial Port Communication (to 19.2Kbaud)
  • Telnet TCP/IP Communication (Standard & Advanced)
A more complete explanation of these connection options and how they work is available by clicking on the link. Serial and network connectivity mechanisms are more alike than you might originally imagine.

How (and Why) QCTerm is Constructed

Introduction

Perhaps surprisingly, the question of how the QueryCalc Display Terminal is internally constructed is as intimately related to the nature of QueryCalc itself as it is to a second, more curious question: why are we distributing QCTerm, the terminal emulator portion of the Display Terminal, at no charge?

There will be two audiences reading this note. One, of course, will be QueryCalc customers themselves. The other will be people who are interested only in downloading and using QCTerm, the terminal emulator portion of the QueryCalc Display Terminal. This explanation is meant to satisfy both groups (ideally without boring either), but it is primarily an internal communication to the family of QueryCalc users.

As many of you know, work has been underway for sometime to create a new PC-based QueryCalc Display Terminal. It is important to emphasize that the basic nature and philosophy of QueryCalc is not changing. Only its display capabilities are being enhanced. Greatly enhanced.

The next version of QueryCalc will continue to be capable of being run from a standard HP terminal, as you always have done in the past, or it will be capable of being driven from the new PC-based QueryCalc Display Terminal. The effect will be, as Rob Perkins of Mizzou Credit Union has said, similar to the initial introduction of color television. The new color images were still renderable and fully compatible on a black-and-white television receiver, but the emotional effect when seen on a new color receiver was dramatically enhanced. We expect not only a similar increase in emotional impact with Display Terminal, but also a significant increase in productivity and ease-of-use as well.

We've always been adamant about not downloading anything from the HP3000 into a PC - and we certainly haven't changed our mind. Downloading information into a client PC inevitably converts what would otherwise be a simple task into one that becomes surprisingly complex, fragile, and tedious. It's a path we simply don't want you to be forced to take. More importantly, it represents a design approach that essentially eliminates any possibility that reports can be easily automated so that they may be run in batch, reliably for years on end.

But that's not to say that PCs don't make excellent display terminals. The modern user interface of pull-down menus, mice, and icons make programs easier to use and learn. These are attributes that are well worth imitating and they are among the features that we are especially working to seamlessly incorportate into the new PC-based QueryCalc Display Terminal.

The Display Terminal will have two primary screens. One will look and act very much like Reflection from WRQ (and indeed should eventually prove to be a completely satisfactory replacement, at no cost). The second screen will look much like Excel from Microsoft.

The Display Terminal will be the first enhancement to QueryCalc for which we've ever charged. The price will be 20% of the current QueryCalc list price for your CPU size, with a maximum price of $2500. We did seriously consider other pricing alternatives, such as a per seat charge, but there is no easy, low-maintenance way for us to implement such a pricing plan. But far more importantly, such a plan would have an overt tendency to minimize the use of QueryCalc (there would inevitably be some discussion as to who should get QueryCalc and who shouldn't) and that's quite contrary to the way that we want you to use QueryCalc.

Rather, we want to maximize QueryCalc's usage. By charging a fixed rate, the use of QueryCalc's Display Terminal is inherently made unlimited. The PC client portion of QueryCalc can be as widely distributed as you wish. Further, anyone - QueryCalc customer or not - may use the QCTerm portion of the software simply as a terminal emulator, at no cost at all.

Somewhat similarly, the new QueryCalc Display Terminal should significantly broaden the use of QueryCalc within those organizations that own QueryCalc. A great many people, who wouldn't otherwise want to write reports, will soon be able use QueryCalc as an excellent substitute for Excel, but now as an HP3000-based spreadsheet. What this will mean is that their spreadsheets will be instantly shareable with anyone who has access to the accounts in which the spreadsheets are stored. It will also mean that the spreadsheets are safe, guaranteed to be backed up on a regular basis.

In the past, we've discouraged people from purchasing QueryCalc if their intention was to use it only as a shareable spreadsheet. If you use QueryCalc in that manner, you're only using 3 to 5% of its power. We may, however, change our recommendations about such usage once the new Display Terminal is complete.

Nonetheless, QueryCalc's traditional power will always lie in your capacity to gather data from your IMAGE and KSAM databases, in any manner that you wish, and rather effortlessly manipulate the data to obtain whatever results you require. As many of you have heard us say in the past, the goal that we've been working towards with QueryCalc is to turn the HP3000 into a Macintosh - but this time, as the world's best, easiest-to-use personal database engine - by making the distance between you, your data, and the piece of paper be as short and direct and intuitive as possible.

The PC as a Display Terminal

QueryCalc has always required only three items: an HP3000, a terminal, and a printer. This simple list will never go away. With the addition of PostScript capabilities a few years ago, a PostScript printer is now, by far and away, the preferred form of printer, but QueryCalc continues to work with any form of ASCII-based printing device and always will.

Nor should the value of terminals be minimized. An HP terminal is a surprisingly complex device - and one that makes a surprisingly nice display "client" (to use the modern vernacular). For those of you who continue to use terminals, you know the strengths of terminals when they're well integrated to an HP3000-resident program: they are extremely simple to set up, they're exceptionally reliable, they're rock-hard and tolerant of an enormous amount of abuse, and they're virtually impossible to crash.

Unfortunately, we know that we're not going to be able to get the same level of reliability out of a PC. At the moment, a Windows 95 machine has to be rebooted about every day or so, simply to manage its internal memory requirements. But that doesn't mean that we're not going to try to recapitulate your experiences with standard terminals on the PC.

The QueryCalc model that we've been working towards for the last few years is based on the equipment and techniques that are either now in place or almost certain to show up in the very near future. The scenario that we've been working towards is an office of a small business, perhaps a dentist's office, a retail lumber store, or a construction management company. The machinery will include a small 4-user, HP3000 Series 908 (priced at about $6000), connected by LAN to a half dozen, inexpensive ($800), 200MHz Pentium-based, Windows 95 PCs, with one to several laser printers resident on the same LAN. With the arrival of reasonably simple-to-setup LANs, DTC's have become an unnecessary expense.

The "908" machine, at the moment, is a mythical device, but we believe its existence is inevitable. It's where the market is moving. In this environment, operating costs, solution robustness, and equipment reliability are everything. This is a business environment where things have to work reliably, day in and day out, for years on end, with essentially no human tinkering.

The HP3000 is better suited to this environment than other commercial-grade database engine currently in existence. And we know it works. For more than 10 years now, greater than half of all of QueryCalc customers run their HP3000s with no permanent data processing staffs on site, running machines as large as 987s, as if they were personal mainframes. The "system manager" in these organizations is either the office manager, the bookkeeper, the company president, or the mail clerk. More often than not, the system manager is the person whoever either first took a liking to the machine, was assigned the task, or whoever's desk was simply closest when the machine was moved in.

It's important to understand that this is the tough environment. What a small company does with its data is no less complicated than what a large organization does with theirs. In fact, most often, the situation is quite reversed. Small companies almost always make much more intensive use of the information held in their HP3000s, with much greater imagination, than do the larger organizations.

The host-terminal model - in stark contrast to the "client/server" model - is critical to success in this environment. An architecture constructed around ODBC, DDE, or OLE-based SQL queries, mediated by any number of agents, macros and scripts, downloading the extracted information into a ever-changing variety of PC programs, is far too fragile, inefficient, and tedious an architecture to work with any reliability. And that very lack of reliability translates directly into a lack of productivity and heightened frustration. Every aspect of the design of QueryCalc is meant to avoid or ameliorate these problems.

Building the Display Terminal

We've always known that we were going to have to build at least a minimal terminal emulator as an auxiliary screen for the QueryCalc Display Terminal's spreadsheet. The terminal emulator would be the mechanism by which you would first sign on to the HP3000 and then run QueryCalc. As we added up the functionalities that we would like to have in the terminal emulator (cut-and-paste, screen printing, serial and TCP/IP communications, etc.), we decided that we may as well go forward and create a full-function terminal emulator, fully competitive with the other emulators that are currently on the market. Because we decided early on not to charge for the Display Terminal PC-client software, the next step was obvious: we may as well distribute the emulator, free of charge, to anyone who would care to use the QCTerm portion of the Display Terminal.

The switchover to the Excel-like spreadsheet portion of the Display Terminal will be completely automatic and transparent to the user. QueryCalc has always interrogated the terminal you're using in order to determine its capabilities. At the moment, three categories of terminals are registered in QueryCalc: (i) those that do not have labelable function keys (now quite rare), (ii) those that do have labelable function keys but are limited to only 80-column screens, and (iii) those that have 132-column capable displays. QueryCalc automatically adjusts its behavior based on the quality of the terminal you're using. The Display Terminal will represent a fourth category - and will, of course, represent the largest change in QueryCalc's behavior on the HP3000 to date.

All data input to the Display Terminal is fed to a receive buffer, where the text lines, commands and escape sequences are parsed. If a new line that is received is of the form:

\qc cmd <an operand of any length> CR

where cmd is a legitimate three-letter command, then the Display Terminal will automatically switch from the terminal emulator to the spreadsheet display and perform whatever command was requested. The display will remain in the spreadsheet display mode so long as the received lines continue to match the necessary format. However, under the worse possible circumstances, should QueryCalc abort, all incoming text following that abort would be normal, HP3000-generated text and would be automatically captured and displayed on the terminal emulator. Because these lines would not contain the proper prefixes, the Display Terminal will automatically switch back to QCTerm. Text received in that manner will thus not be lost and may be cut-and-pasted into e-mail, or printed and faxed, so that we may see precisely what went wrong.

This design also makes QCTerm completely compatible with all prior uses on the HP3000. If the QCTerm user does not own QueryCalc, then he or she will never see any of this additional behavior. To such a user, the Display Terminal will be no more than a standard terminal emulator.

As PC prices continue to fall, and as PCs displace the last of the terminals, we expect a zero-cost terminal emulator to become a reasonably popular item. But because it will carry the QueryCalc name, we consider it critical that it be a fair representative of the quality of products that we produce - and its development will continue until the emulator can be declared to be quite excellent.

Although only two screens (the terminal emulator and the spreadsheet), will be present in the initial version of QueryCalc's Display Terminal, we have a number of exciting ideas yet to be implemented. Precisely in the same manner that the "\qc" switch has been imbedded into QCTerm, we can add as many similar switches as we care to. Some of the future technology we presently have planned we similarly intend on distributing, at no cost, in follow-on versions of QCTerm.

While writing such elaborate PC-based clients as a full-function terminal emulator and an Excel-like spreadsheet display may seem to be an exceptional expense, it is precisely the right thing to be do from an informational physics point of view. It is the simplest, most robust, and most reliable possible design from the user's point of view. The PC becomes no more than an elaborate terminal. All of the data remains safe on the HP3000 - because it never really leaves the HP3000. The PC's display becomes nothing more than an extension of the HP3000's memory, in exactly the same way a terminal's display has always been.

This is an exceptionally simple architecture, one that simply plugs together, and one that has proven itself to be very rugged over 30 years of use now. This simplicity means that the HP3000 can be used in an office without a resident data processing staff. But more than that, it means that if it works well in this environment, where reliability and functionality are everything, it will work at least as well in those environments where the largest HP3000s are used.


QCTerm   Escape Sequences

     Top    Atmar    Hosted by 3kRanger.com    email 3kRanger    Updated