Terminal screen error

X PROG 754: Order without its parameters

X PROG 754 means the host sent a 3270 order without the parameters it needs. The order was the last thing in the data stream, or the data ended partway through its parameters. IBM lists SBA, RA, EUA, SF, SFE, MF, SA and GE as the orders this applies to.

Other names for this code

Also written as PROG 754, PROG754, X PROG 754, 3270 PROG 754, program check 754, PROG 754 missing parameters, TN3270 PROG 754.

What it means

Most 3270 orders are a one-byte code followed by a fixed or counted number of parameter bytes. Set Buffer Address (SBA) needs a two-byte address. Repeat to Address (RA) needs an address and a character. Erase Unprotected to Address (EUA) needs an address. Start Field (SF) needs one attribute byte. Set Attribute (SA) needs a type and a value. Graphic Escape (GE) needs the character to draw. Start Field Extended (SFE) and Modify Field (MF) need a count and then that many type and value pairs.

If the data stream ends before those bytes arrive, the terminal is left holding half an order. It can't finish the write, so it shows X PROG 754 and locks the keyboard.

The order itself was correct. The bytes behind it are missing. That usually means the output was cut short or its length was wrong.

Common causes

  • The program passed a length that is too small when it sent the screen, so the last order lost some or all of its parameters. In CICS this is the LENGTH on SEND FROM.
  • The program built the buffer in a work area and ended it one or two bytes early, for example after adding a last SBA but before writing its address.
  • An SFE or MF order has a pair count larger than the number of pairs that follow.
  • Output was split into pieces somewhere along the path, and a piece boundary fell inside an order. That is rare and usually a defect in a server, gateway or emulator.

How to find the problem

  1. Note the screen and transaction. If PROG 754 happens on a screen that has more fields than usual, a length calculation is the first suspect.
  2. Take a data stream trace and look at the very end of the failing output. The last order there will be missing its address, attribute or pairs.
  3. In CICS, run the transaction under CEDF and look at the SEND command. Compare the LENGTH value with the size of the data the program meant to send.
  4. For SFE and MF orders, count the type and value pairs after each one and compare them with the count byte.

How to fix it

  • For the user, press Reset, then Clear, and start again. Report the screen if it repeats.
  • Correct the length the program passes when it sends the screen. Compute it from the buffer pointer after the last byte written, not from a fixed number.
  • Make sure the code that writes an order always writes its parameters in the same step, so a buffer can't end between the two.
  • Keep SFE and MF pair counts in step with the pairs written, especially when attributes are added conditionally.
  • If the host output is complete in a VTAM or CICS trace but arrives cut at the emulator, report it to the TN3270 server or emulator vendor.

Read this error in WND Terminal

For a visible X PROG 754 message, Explain this screen can help interpret the screen under IT’s configured AI policy. It does not establish the cause of a rejected host data stream. Preserve the exact status and follow the diagnostic steps in this article.

Try the WND Terminal sample with fictional data · 3270 emulator features and installation · 5250 emulator for IBM i

IBM documentation

IBM Personal Communications documentation. Use the documentation for your installed release.

This link opens the relevant IBM reference library or lookup instructions. Match the complete code and your installed product release; it is not a code-specific review.

Report a correction to WND Software.

Questions

Is PROG 754 caused by a slow network?

No. A slow network delays output but doesn't cut it. PROG 754 means the output that arrived was incomplete, which usually points to a length error in the program.

Why does PROG 754 come and go?

If the length is calculated from data, some records make the screen longer than the program allows for. The error then appears only for those records.

What is the difference between PROG 754 and PROG 753?

PROG 754 means bytes are missing after an order. PROG 753 means the bytes are there but one of the values isn't allowed.