Terminal processing: Difference between revisions

From m204wiki
Jump to navigation Jump to search
(→‎Issuing a backpage request: This message has changed to M204.0480: Invalid backpage request: <request>)
(Replace *INVALID PAGE REQUEST* with M204.0480: Invalid backpage request)
 
Line 119: Line 119:
<li>Passwords and responses to the $READINV function</li>
<li>Passwords and responses to the $READINV function</li>
<li>Responses to the end-of-page prompt</li>
<li>Responses to the end-of-page prompt</li>
<li>Responses to certain <var class="term">indented</var> error prompts (for example, INVALID BACKPAGE REQUEST) </li>
<li>User input resulting in certain error messages (for example, M204.0480: Invalid backpage request) </li>
<li>All lines saved for retrieval are cleared if the RESET MODEL command is used to change from MODEL 5 to some other value.</li>
<li>All lines saved for retrieval are cleared if the RESET MODEL command is used to change from MODEL 5 to some other value.</li>
<li>The Retrieve PF key is not recognized if the input line entered is a line that is directly handled by a system interface (for example, the CMS SUBSET string).</li>
<li>The Retrieve PF key is not recognized if the input line entered is a line that is directly handled by a system interface (for example, the CMS SUBSET string).</li>

Latest revision as of 21:43, 19 July 2017

Overview

This topic provides information about the different types of terminals and system interfaces that Model 204 supports. It also provides general information that applies to all these types of terminals.

The Terminal session topic provides a sample terminal session in which a user connects to Model 204, logs in, opens a file, and retrieves selected data. The rest of the Terminal topics summarize the distinctive characteristics of each terminal type, access method, or system interface.

Each terminal category, system interface, and access method has its own unique operating characteristics such as display formats, keying procedures, pause and disconnect capabilities, and other special features. Read this topic and Terminal session for general information, and then refer to the topics that describe your own terminal type, system interface, and access method.

Supported terminals, access methods, and interfaces

Supported access methods

Model 204 provides support for a variety of terminals that use the SNA Communications Server (formerly VTAM, Virtual Telecommunications Access Method).

Supported SNA Communications Server terminals

SNA Communications Server supports the following terminals:

  • IBM 3270s and compatible terminals
  • IBM 3767 terminals
  • Terminal types supported by the IBM Network Terminal Option (NTO)

Note: The last two items in this list are no longer supported as of Model 204 version 7.6.

Supported system interfaces

Model 204 also can be accessed by means of one of the following system interfaces:

  • CICS (as a transaction)
  • TSO (as a command processor or as a called program)
  • CMS (through the Inter-User Communication Vehicle)

Note: The INTERCOMM interface (supporting the use of Teletype and 3270 terminals in line-at-a-time mode) is no longer supported as of Model 204 version 7.5.

Terminal emulators and the LANGUSER parameter

Many different terminal emulators are in existence today. You must ensure that the terminal emulator you use sends characters to the mainframe that are compatible with the characters that are defined in the IBM code page for the particular LANGUSER value set at your site. (See Model 204 language support.)

If certain characters from the your terminal emulator are not compatible with the IBM code page, you must provide translation commands for those particular characters. For example, the terminal emulator hexadecimal code for a particular character must be translated to the IBM hexadecimal code for the same character.

Note: An underlying problem could appear if you store incompatible characters into a Model 204 file using one terminal emulator and attempt to retrieve them with a different terminal emulator that has different hexadecimal codes for the particular characters.

In z/VM, for example, if LANGUSER=US you could use the following SET OUTPUT commands to translate the left ([) and right (]) bracket characters:

'SET OUTPUT ad' 'ba'x /* Display TN square brackets */ 'SET OUTPUT bd' 'bb'x 'SET INPUT 'ba'x ad /* Transform Chameleon sq brackets */ 'SET INPUT 'bb'x 'bd' /* to ones that C/370, LEXMARK, 7171 use */

Entering input

INMRL and INCCC parameters

In general, terminal input lines should not be longer than the line length of the terminal. However, the settings of the INMRL and INCCC parameters actually determine the maximum input line length at a particular terminal. INMRL and INCCC usually are set by the system manager for each terminal in the system. For 3270s, INMRL and INCCC also can be reset as a result of resetting the MODEL parameter. MODEL allows for alternate screen sizes within the 3270 family.

For information on these parameters, refer to: INMRL parameter, INCCC parameter, and MODEL parameter.

The INMRL parameter specifies the maximum number of characters that the user can enter on an input line. If the user attempts to enter a line that is longer than the value of INMRL, the following error message is displayed:

*** M204.0481: TERMINAL INPUT LINE TOO LONG - IGNORED

and Model 204 ignores the entire line.

Line continuation

Lines that are longer than the value of INMRL can be continued. There are two types of line continuations. When entering a SOUL (User Language) request or a response to a $READ or $ENTER prompt, the user can enter a long line by breaking it into several shorter lines and entering each one separately, adding a hyphen to the end of all but the last line. Lines continued in this manner have no maximum length. For more information on line continuation, refer to Input line continuation.

Other types of input lines can be broken up by entering a nonblank character in the column position specified by the INCCC parameter on all but the last line. The number of characters in all portions of the input line (the original line and all continuations, not including the continuation characters) is limited to the value of the LIBUFF (length of the input buffer) parameter. If the complete line exceeds LIBUFF, the line is lost and the following message is displayed:

*** M204.1251: LINE TOO LONG

If the value of INMRL is greater than the value of INCCC, and a nonblank character is in the column position specified by the INCCC parameter, any characters past this column position are lost. IF INCCC is set to zero, lines cannot be continued by using the INCCC facility; however, these lines can be continued by using hyphens.

Note: Any attempt to enter input while a terminal is displaying a line of output produces unpredictable results.

Retrieving input

For all 3270 or compatible full-screen terminals, previously-entered line input can be retrieved for review or modification by using a PF key. Full-screen Editor or SOUL screen input, however, cannot be retrieved in this way. Retrieved input lines are returned to the command line of the user's terminal from where they can be reissued.

RETRVKEY parameter

For a 3270 or compatible full-screen terminals, setting the Model 204 RETRVKEY parameter to a value from 1 to 24 designates a PF (program function) key whose number equals that value as the user's Retrieve PF Key. For example, RETRVKEY = 3 means that PF key 3 is the Retrieve PF Key.

Using the Retrieve PF key

If the Retrieve PF key is pressed when Model 204 requests a new input line from the user's terminal, Model 204 displays the user's most recently entered input line. The user can then perform any of the following actions:

  • Press Enter; the unmodified input line is sent to Model 204.
  • Using the 3270 cursor, insert, and delete keys, and the normal character keys, modify the input line and press Enter. The modified input line is sent to Model 204.
  • Press the Retrieve PF key again. Model 204 displays the input line preceding the one just displayed, and the user can repeat any of the actions in this list.

Only a limited amount (as many as 268 bytes) of the user's previous input is available for retrieval. The input lines are kept in a circular format: if the Retrieve PF key is pressed enough times to display the oldest available input line and then is pressed again, the most recent input line (the first retrieved) is redisplayed and the entire sequence begins again.

Irretrievable input

Input for which or situations in which the Retrieve PF Key does not work are listed below. The following input lines are not saved for retrieval:

  • Passwords and responses to the $READINV function
  • Backpage requests
  • Null input lines
  • Lines directly handled by a system interface (for example, the z/OS SUBSET string)
  • All but the first of a sequence of duplicate input lines (if a null input line is entered between the duplicate input lines)

Retrieval example

For example, if the following input lines are entered:

LOGIN JON <password> TIME V VERSION (a null input line) V VERSION

Two lines are available for retrieval:

V VERSION TIME

Null input lines

In the following cases, the Retrieve PF key returns a null input line to the terminal rather than performing the retrieve function:

  • Passwords and responses to the $READINV function
  • Responses to the end-of-page prompt
  • User input resulting in certain error messages (for example, M204.0480: Invalid backpage request)
  • All lines saved for retrieval are cleared if the RESET MODEL command is used to change from MODEL 5 to some other value.
  • The Retrieve PF key is not recognized if the input line entered is a line that is directly handled by a system interface (for example, the CMS SUBSET string).

Controlling output

Output on most terminals is displayed one line at a time. The format of terminal output is controlled by the settings of several parameters.
This section discusses three of them:

  • OUTMRL and OUTCCC parameter settings specify the maximum output line length at a particular terminal.
  • OUTLPP determines the number of lines on an output page.

OUTMRL, OUTCCC, and OUTLPP usually are set by the system manager for each terminal in the system. For 3270s, these three parameters can be reset as a result of resetting the MODEL parameter. MODEL allows for alternate screen sizes within the 3270 family.

OUTMRL and OUTCCC can be reset individually, independent of the MODEL parameter setting, but OUTLPP is determined by MODEL, and can only be reset as the result of resetting the MODEL parameter for 3270s.

Settings of the HDRCTL and TERMOPT parameters that can affect output displays and pauses are discussed in other Terminal topics, which discuss individual types of terminals.

Note: Any attempt to enter input while a terminal is displaying a line of output will produce unpredictable results.

Setting OUTMRL

The OUTMRL parameter specifies the maximum number of characters that Model 204 can display on an output line at a particular terminal. Note, however, that the number of characters specified in OUTMRL can be greater than the physical line length of the terminal being used. If the terminal is a CRT device, a long line wraps around and some of the characters are displayed on a second line. If the terminal is a hard-copy device, the characters beyond the last character on the physical line can be lost.

Setting OUTCCC

The OUTCCC parameter specifies the last available output position on the line. When Model 204 displays a line, it uses the smaller value of OUTMRL and OUTCCC as a line length. If the line is longer than this, a hyphen is placed in the column position specified by OUTCCC, and the rest of the characters are continued on subsequent lines. Any number of lines can be continued in this fashion.

OUTCCC can be reset by the user for 3270 terminals. The reset value remains in effect for the thread even after the user logs out.

If OUTCCC is set to zero, the value of OUTMRL is the maximum line length. No continuation occurs, and any text beyond the value of OUTMRL is lost.

Setting OUTLPP

The OUTLPP parameter specifies the number of lines on an output page, including headers and trailers. OUTLPP can be reset by the user. However, for 3270s, OUTLPP can only be reset as a result of resetting the MODEL parameter.

Model 204normally displays a line showing the current date in Julian date format, the current date in mon dd format, the time in hh.mm.ss format, and page number at the top of each page of output. For example:

91.010 JAN 10 05.15.29 PAGE 37

The page number is incremented automatically as new pages are produced. The user can specify alternative headers as described in Formatting page headers and trailers.

If the user has requested a page trailer, Model 204 displays it at the bottom of every page. Model 204 also pauses at the end of each page of output to allow the user to cancel future output, to change the terminal paper, or to read text that is displayed on a screen.

Production of all headers and trailers, except for the header on the first page, can be cancelled by setting the OUTLPP parameter to zero on hard-copy terminals. Setting OUTLPP = 0 also causes the pause at the bottom of each page to be suppressed. Output is displayed in a steady stream. Setting the OUTLPP parameter to -1 eliminates page counting, but it displays headers and trailers when a NEW PAGE command causes output of a new page.

Pausing

On all terminals described in this guide, Model 204 can pause at the bottom of the page and wait for the user to respond before continuing. If output consists of more than a single page, Model 204 will display one page or screen, pause at the bottom of the page or screen to await a user response, and continue displaying output at the top of the next page or screen after the user has requested continuation.

When Model 204 pauses at the bottom of a page while displaying output, the user's response depends upon the terminal being used. (A variety of responses are described in subsequent sections.) If the user enters an input line instead of one of the expected responses, Model 204 saves this line in most cases. Output continues on the next page, and the saved input line is processed after the output is completed. However, if Model 204 fills another complete page or screen with output and once again pauses for a user response, the response causes the saved input line to be lost. Input lines entered in this fashion are never saved by the CICS, TSO or CMS interfaces.

If the last line of a page is used for input, Model 204 does not pause at the bottom of the page.

Backpaging

Model 204 supports a backpaging feature that allows the user to review previous pages of output. This feature is very useful to users of terminals that do not produce hard copy. The backpaging feature is available only if the system manager sets the NBKPG (number of backpages) parameter to a positive number during system initialization. See NBKPG parameter for details.

Note: The backpaging feature is not available on all types of terminals and is not available during editing sessions.

Issuing a backpage request

When the terminal is ready to accept input, the user can request (except during editing) to have a backpage displayed by entering the backpage character, a single space, and a negative number. An appropriate backpage character can be selected by the system manager and specified as the value of the PAGE parameter. PAGE has a default value of P and can be reset by the user. See PAGE parameter for details.

For example, a user who is on page 17 and who wants to see page 16 enters:

P -1

Because Model 204 prepares for a new page before pausing at the bottom of a full page, the following backpage request, entered at the end-of-page pause, displays the page just ended:

P -1

A backpage request entered after an editing session refers only to output prior to the editing. That is, the user cannot page back into output generated as part of an editing session. Model 204 treats the backpage request as if that session did not occur.

If the user tries to page back beyond the number of backpages saved, the oldest available backpage is displayed. If the user tries to page forward beyond the most recent page (by using P followed by a positive number), that page is displayed. If the syntax of the PAGE parameter is invalid or the backpaging facility is not available to the terminal user, Model 204 responds:

M204.0480: Invalid backpage request: <request>

where <request> is the backpage request the user entered followed by that string translated into hexadecimal.

This system response is followed by another prompt.

If the MODEL parameter is reset during a terminal session, the page size is redefined, and any existing backpages can no longer be displayed.

Whether or not the backpage request is valid, the terminal returns to input mode. The user can backpage again or enter a new line of input, which then is displayed in its proper place on the next most recent page.

Full-screen formatting

The Model 204 full-screen formatting feature, described in detail on the Rocket Model 204 documentation wiki SOUL pages, is designed for use with display terminals (that is, IBM 3270 and compatible terminals). This feature allows an enere screen to be formatted and displayed as a single entity.

When the full-screen feature is being used, the ordinary input, output, and pausing characteristics are not in effect.

In data entry applications, the terminal user can enter input fields in response to screen prompts and menus. Model 204 automatically validates these entered fields according to criteria specified in the SOUL request that defines the screen.

For example, the request can specify that a particular field can contain only digits, or that a field must contain one of a set of legal codes. The request also can control the terminal's brightness, color, and highlighting facilities.

Prerequisites

The LFSCB (size of full-screen buffer) parameter must be set to a value that allows enough space for presentation of the screen. The system manager can set LFSCB during system initialization, or the user can set LFSCB online with the UTABLE command.

Menu feature

Two major capabilities are provided with the full-screen feature. The first full-screen capability is the menu feature. When a menu is displayed, the user is expected to choose from a set of numbered selection items, as in the example below:

EMPLOYEE MENU 1. ADD EMPLOYEE 2. CHANGE ADDRESS 3. CHANGE INSURANCE 4. ADD DEPENDENT

The user chooses either by indicating the appropriate number with a Program Function (PF) key or by tabbing (using ==>|, |<==, or <==) to the desired selection number and pressing the ENTER key. The tab key automatically moves from one selection number to another.

Fill-in screens

The second full-screen capability supports data entry by displaying a screen to be filled in. When such a screen is displayed to the user, it contains formatted prompting information as well as areas in which the user enters data. For example:

FILL IN FOR NEW EMPLOYEE NAME: STREET: CITY: STATE: ZIP: AGE: SEX: SPOUSE'S NAME:

In this example, each prompt is followed by an input area. The user presses the tab key on the terminal to move between input areas, filling in data. The user can tab backward or forward on the screen, entering and correcting data.

When the entire screen is filled in, the user presses the ENTER key or a PF key and the data is transmitted from the terminal. The prompts are protected and cannot be modified by the user. Pressing the tab key automatically positions the user at an input area.

Although the full-screen feature is designed to utilize the full-screen capabilities available on 3270-type devices, SOUL requests that contain full-screen statements also can run on line-at-a-time terminals such as Teletypes. Line-at-a-time terminals print all screen inputs and outputs on a line-by-line basis.

Backpaging screens and menus

The Model 204 backpaging feature can be used to store and retrieve screens and menus that have been defined by the full-screen capabilities. (For more information about the backpaging feature, see Backpaging.) When a backpage is displayed, any display attributes (such as BLINK or BRIGHT) that originally were specified for fields on the screen are lost. Any input values shown on the screen indicate final values entered by the terminal user, and they reflect any changes in response to validation errors. When a backpage that contains a menu is displayed, the display does not show the menu selection made by the terminal user.

Line-editing characters

Every terminal provides special keys that can be used for line-editing functions. On many terminals:

  • At sign (@) backspaces and erases the most recently entered character. A series of @ symbols can be entered to delete successive characters in the input line.
  • Pound sign (#) deletes the current line from the beginning of the line to the most recently entered character.

ERASE and FLUSH parameters

The characters used for line-editing functions at a particular terminal can be specified as the values of the ERASE and FLUSH parameters. The @ and # characters are the default values of these parameters. Use of these parameters depends on the setting of the EDIT parameter. The ERASE, FLUSH, and EDIT parameters are introduced in the Terminal session topic and are discussed in detail in the ERASE parameter, FLUSH parameter, and EDIT parameter topics.

Model 204 editors

Once the user has pressed the carriage return (or other character that signifies the end of the input line), the line-editing characters no longer can be used for the line just entered. The line can be corrected only by using the Model 204 full-screen or line editor. For more information on Model 204 editors, see the Model 204 editor topics.

Attention interrupt feature

The attention interrupt feature is used to abort the operation that is currently being performed and to cancel any output that is being displayed. The specific action taken by Model 204 depends upon the access method or system interface that is being used and the operation that is currently being performed at the terminal.

Invoking the attention interrupts

The attention interrupt feature can be invoked using any of the following keys or commands:

Keys

ATTN BREAK PA1

Commands

Use this command... Here...
*CANCEL In the first seven positions of a terminal input line
C Only at the pause point
K Only at the pause point

The keys and commands available to a Model 204 user depend upon the terminal and access method or system interface being used. Throughout the terminal processing topics, references to the attention key imply the use of any of these keys or commands.

ON ATTENTION statement

In SOUL, an ON ATTENTION statement can be specified in a request. Through this statement, the user specifies the action that Model 204 takes (that is, the flag to be set or the branch to be executed) when an end user invokes an attention interrupt.

If an ON ATTENTION statement has been specified, and the attention key is pressed while Model 204 is evaluating a SOUL request and not performing I/O to the terminal, the operation specified in the ON ATTENTION statement is performed.

If no ON ATTENTION statement has been specified, the action Model 204 takes when the attention key is pressed depends upon the operation being performed at the terminal. The following list summarizes the actions that are possible.

Model 204 responses to the attention key are:

  • If the attention key is pressed at any terminal when the user is entering a system control command or an Editor command, the current input line is ignored and the command is not executed. The user can reenter the command or statement. However, if an editor command has been completely entered at the time of the attention interrupt, the attention key has no effect on editor operations.
  • If the user presses the attention key when entering an ad hoc request, Model 204 stops compilation and returns to command level.
  • If the user presses the attention key while a procedure is compiling, Model 204 flushes the procedure and returns to command level.
  • If the user responds to a dummy string prompt by pressing the attention key, and if an ON ATTENTION statement has not been specified, Model 204 terminates compilation, ends all procedures, and returns to command level.
  • If the attention key is pressed in response to a $READ or $ENTER prompt, and if an ON ATTENTION statement has not been specified, the current request is aborted. Model 204 ends all procedures and returns to command level.
  • If the user is entering a procedure after typing a PROCEDURE command, Model 204 treats the attention interrupt as an END PROCEDURE statement. Model 204 does not expect the user to enter additional statements, but the statements that already have been entered are saved.
  • If the user is at the pause point on a 3270-type terminal, and if an ON ATTENTION statement has not been specified, the attention key cancels output from the current request. If a procedure is being executed, Model 204 flushes all input lines in the procedure and returns to command level.

Echoing

When echoing is enabled, Model 204 displays each input line on the user's output device as it is entered. Three classes of input lines can be echoed:

  • Direct input to Model 204, either from the user's terminal or from an included procedure (see Examples using LECHO and CECHO).
  • Lines in which the FLUSH and ERASE editing characters were used (see Examples using LEECHO and CEECHO). The line is echoed as it appears after line-editing.
  • Lines that contain dummy strings. The line is echoed after the dummy string substitution has been made (see Echoing parameters).

A common example of echoing is the display of the input cards for a batch run on the line printer. If echoing is in effect, input from a terminal is displayed on the same terminal because it serves as both the input and the output device for that user.

For more examples, see Echoing examples.

Physical and logical line echo

Echoing can take place at two levels: physical line echo and logical line echo. The Model 204 echo feature distinguishes between physical and logical input lines. A physical line is a single line entered on the terminal. A logical line consists of one or more physical lines of input.

Echoing can be specified at physical line level, logical line level, or both. Normally only one class of echoing is specified. If both physical and logical line echoing are enabled, the line is echoed twice.

If a physical line must be continued on another line, a nonblank character can be inserted in the specified continuation column indicated by the INCCC parameter. See INMRL and INCCC parameters for more information about the INCCC parameter.

Echoing parameters

The following parameters control echoing functions:

  • CECHO controls the echoing of user and procedure input at the physical line level.
  • LECHO controls the echoing of user and procedure input at the logical line level.
  • CEECHO controls the echoing of physical lines that contain ERASE or FLUSH characters.
  • LEECHO controls the echoing of logical lines that contain ERASE or FLUSH characters.
  • CSECHO controls the echoing of physical lines entered as dummy string substitutes.
  • LSECHO controls the echoing of logical lines in which dummy string substitutes have been entered.

The initial Model 204 values for these parameters cause terminal input lines to be echoed. No other echoing takes place. The system manager can change these initial settings for an installation at the time of system initialization.

Model 204 echoes a given portion of input no more than once at each level. If the bits are set as follows and a given line includes editing characters and dummy strings, it is echoed only once at the line level, even though all three parameters call for the line to be echoed:

LECHO = X'05' LEECHO = X'05' LSECHO = X'05'

For more information on these parameters, see the List of Model 204 parameters.

PROMPT and SUB parameters

Use of LSECHO and CSECHO is related to the settings of the parameters PROMPT and SUB, although the actual echoing process operates independently of PROMPT and SUB.

For more information on these parameters, see the List of Model 204 parameters.

Operations for line echo

Before lines are echoed, Model 204 performs the following operations on the input in this order:

  1. FLUSH and ERASE editing characters are applied, if enabled (that is, if EDIT = 1 or 5).
  2. Physical line is echoed, if specified by the physical line echo parameters CECHO, CEECHO, and CSECHO.
  3. Line continuation is interpreted using INCCC, and succeeding physical lines are read in, if necessary. Physical input lines are echoed as in Step 2, until the reading of the logical line is completed.
  4. All characters that follow the last nonblank character in a logical line are deleted.
  5. Specified substitutions are made in dummy strings.
  6. Logical line is echoed in accordance with the settings of the logical line echo parameters: LECHO, LEECHO, and LSECHO.

Echoing examples

Examples using LECHO and CECHO

In the first series of examples, LECHO and CECHO initially are set to 0, and no echoing occurs. LECHO is then set to values of 1, 4, and 5.

Example 1

No echoing: LECHO = 0

BEGIN PRINT 'CASH' END CASH INCLUDE 0 CASH

Example 2

Terminal echo, no procedure echo: LECHO = 1

BEGIN BEGIN PRINT 'CASH ON HAND' PRINT 'CASH ON HAND' END END CASH ON HAND INCLUDE 0 INCLUDE 0 CASH ON HAND

Example 3

No terminal echo, procedure echo: LECHO = 4

INCLUDE 0 BEGIN PRINT 'CASH ON HAND' END CASH ON HAND

Example 4

Terminal echo and procedure echo: LECHO = 5

INCLUDE 0 INCLUDE 0 BEGIN PRINT 'CASH ON HAND' END CASH ON HAND

Examples using LEECHO and CEECHO

The next two examples illustrate how LEECHO and CEECHO can be used to control echoing of lines that include ERASE or FLUSH characters.

Example 1

No line-edit echo: LEECHO = 0

V ERASE, FLUSH ERASE @ X'7C' ERASE-CHARACTER SYMBOL FLUSH # X'7B' ERASE-LINE SYMBOL BEGIN PRINT 'CSL@@@CASH' TODAT#END CASH

Example 2

Terminal line-edit echo: LEECHO = 1

BEGIN PRINT 'CSL@@@CASH' PRINT 'CASH' TODAT#END END CASH

Echoing also can be controlled for lines in which dummy string substitutes have been entered. In the echoed line, the substituted character string is displayed in place of the original dummy string. For example, the following line is entered in a request:

PRINT '??ENTER.NAME'

Model 204 responds with the prompt:

??ENTER.NAME

The user can reply with:

RICHARD JONES

If LSECHO is properly set, Model 204 now echoes the original PRINT'??ENTER.NAME' line as:

PRINT 'RICHARD JONES'