The Comparison of Block Mode and Character Mode

There were basically two philosophies (or perhaps ‘religions’ can be a better description based on who you speak to) that determined what sort of Terminal communicated having a host system. They were the Block Setting or ‘smart’ products and Character Setting, or ‘dumb’ products and, just in order to confuse matters, there is also a course of terminal which could operate in possibly mode and easily switch between all of them.

So what had been the differences between both of these ideas? Essentially, when utilizing a Block Mode terminal when the host system had setup the terminal display, the operator could enter data into ‘Fields’ about the screen without getting together with the host. Once the operator had completed the terminal collected all of the input and sent it to host as the ‘block’ of information. On the additional hand a Personality Mode terminal needed to constantly send and receive every single keystroke and bit of data to and in the host system throughout normal operation.

The smoothness Mode terminal utilized the host system to complete all validation of data how the operator entered. Every time a key was pressed the smoothness code for which key was delivered to the host program. Whatever the web host processor was performing was interrupted in order that it could process the smoothness and the software then decide what course of action, and finally carry out that action. This may be merely to echo the smoothness back to the terminal in order to act on among the control characters that was sent.

Applications that make use of Character mode terminals required laboriously setup of the displays in a manner that allowed the operator to create sense of all of them. This involved shifting the cursor round the screen, turning character Attributes off and on and printing text about the screen. In these terminals everything happened in the current screen location from the cursor.

As an easy example consider the situation where we would like the operator to enter a person number, validate this as well as display the title and address of the customer. Assuming we’re using a VT100 fatal the host program would initially send the next data (note which data prefixed with Esc is definitely an escape sequence, a unique command used through terminals):

    Esc[2J:- clear the entire screen byEsc[H:- Locate the cursor at the top left hand side of the screen Esc[1m:- Turn on Bold to make the prompt stand outCustomer No.:- Type the prompt for the operator to enter the dataEsc[0m:- Turn off BoldEsc[0;9:- Move the cursor to the place we want to see the customer number

Once this is all done, the operator can type the customer number, as each character is typed the host is sent the character before it is displayed, and will echo it back to the terminal so that it shows up on the screen. Special characters such as backspace are used to allow some simple editing. Finally the Enter key indicates that the customer number is complete. At this point the host has what it needs to see if the customer exists and display the details of that customer by moving the cursor as above and printing the formatted information.

Obviously in a real world scenario the amount of screen configuration involved was considerably greater. It should be clear that a lot of work needed to be done at the host end for any useful application, and that a lot of developer time was required to create a host applications that worked with useful screens.

Block mode terminals had limited local intelligence and treated the screen as a window into a form. The form did not need to fit on the screen in one piece since the operator was able to move the off screen parts into view so that these could be accessed as required. Block mode terminals were able to have several pages into which data could be entered, or on which data could be displayed. The operator was able to move to different parts of the form and to different pages by issuing commands to the Terminal which were acted on locally. There was little or no host involvement during the data entry phase.

Take the case of a Block Mode terminal such as an IBM 3279, used on older IBM mainframes such as the System 360. When interacting with this terminal the host would first send a block of data to the terminal that represented the form to be filled including a list characters that are legal within each of the fields.

Once the form was displayed on the screen the operator could fill in the fields and move around the form to any fields that could legally be accessed. This happened locally with no interaction required from the host. On completion of the data entry the operator pressed the ‘Send’ key. Only at that point was the data sent to the host as a block. The host then extracted the fields it is interested in, in our case the customer number, looked up the customer details and sent these to the terminal so that they can be displayed in the form at the appropriate location.

From the above it is clear that there was a lot more work for the host system when coupled with character based terminals in comparison to their Block Mode equivalent. The advantage of the Character Terminals is that they were much less expensive than the Block Mode equivalent, and as long as the total number of terminals connected was not too large it was a cost effective solution.

On the other hand Block Mode terminals have an advantage in that the load on the host was greatly reduced, and while the monetary cost of these terminals was greater, they used the expensive host processor much more sparingly. Block mode terminals were most cost effective solution in situations where there were many terminals connected to a host system.

There were advantages and disadvantages to both types of terminal and the situation in which the device was to be used dictated which was the best solution. Today, this argument is largely irrelevant as the advent of PC based Terminal Emulation software has lead to disappearance of physical terminals and therefore any cost benefit argument. Terminal emulation software is now the application that will determined whether or not a Character or Block Mode terminal is to be used..