The first line of a jCL program defines the program as one of two basic types, a PQ or a PQN style program.
Wherever possible, you should use the PQN style.
There are several differences between the two styles, as outlined in the following topics.
PQ-style programs usually use a blank as the delimiter between parameters in the buffers. PQN-style programs usually use a field mark.
PQN allows parameters to be null or contain blanks and more closely mirrors the native record structure.
PQ commands are still supported for compatibility but you should use the functionally superior PQN commands in new or revised jCL programs.
When pointers are moved, PQ commands will generally leave the pointer at the first character of a parameter. PQN commands will generally leave the pointer at a field mark.
Commands affected by this difference are A, B, BO, F, H, IH and IP.
Buffer referencing, file buffers and select registers are only available with PQN commands.
These commands are only used in PQN-style jCL programs:
F;, F-KLOSE, F-WRITE, L, MVD F-CLEAR, F-OPEN, FB, MS,
F-DELETE, F-READ, IBH, MV,
F-FREE, F-UREAD, IBP, MVA,
These commands are functionally equivalent in both PQ and PQN-style programs:
( ), G, IF E, RSUB, U
[], GO B, IFN, RTN, X
+, GO F, M, S,
-, GOSUB, P, STOFF,
C, IF, RI, STON,
JCL