.*T: Create MI Program .*O: CRTPNLGRP CHRID(*CHRIDCTL) .* This panel group source member contains help text for the .* CRTMIPGM command. .*--------------------------------------------------------------------- :PNLGRP. .*--------------------------------------------------------------------- .*‚Create MI program .*--------------------------------------------------------------------- :HELP NAME='CRTMIPGM'.Create MI Program :P. The command Create MI Program (CRTMIPGM) is used to create a Machine Interface (MI) program. :P. :IMHELP NAME='CRTMIPGM/ERROR/MESSAGES'. :IMHELP NAME='CRTMIPGM/COMMAND/EXAMPLES'. :EHELP. .*--------------------------------------------------------------------- .*‚Program (PGM) .*--------------------------------------------------------------------- :HELP NAME='CRTMIPGM/PGM'. Program (PGM) - &msg(CPX6AB4,QCPFMSG). :XH3. Program (PGM) :P. Specifies the program name and library for the compiled MI program. :P. Possible library values are: :PARML. :PT.:PK def.*CURLIB:EPK. :PD.The current library will be used. If you have not specified a current library, QGPL will be used. :PT.:PK.library-name:EPK. :PD.Enter the name of the library where the compiled program is to be stored. :EPARML. :EHELP. .*--------------------------------------------------------------------- .*‚Source file (SRCFILE) .*--------------------------------------------------------------------- :HELP NAME='CRTMIPGM/SRCFILE'. Source file (SRCFILE) - &msg(CPX6AB4,QCPFMSG). :XH3. Source file (SRCFILE) :P. Specifies the name of the source file that contains the MI source member to be compiled and the library where the source file is stored. :P. :PARML. :PT.:PK def.QMISRC:EPK. :PD.The default source file, QMISRC, contains the MI source member to be compiled. :PT.:PK.library-name:EPK. :PD.Enter the source file name that contains the MI source member to be compiled. :EPARML. :P. Possible library values are: :PARML. :PT.:PK def.*PGMLIB:EPK. :PD.The source file is located in the library specified in the :HP2.Program:EHP2. prompt (PGM parameter). :PT.:PK.*LIBL:EPK. :PD.The system searches the library list to find the library where the source file is located. :PT.:PK.*CURLIB:EPK. :PD.The current library will be used. If you have not specified a current library, QGPL will be used. :PT.:PK.library-name:EPK. :PD.Enter the name of the library where the source file is located. :EPARML. :EHELP. .*--------------------------------------------------------------------- .*‚Source member (SRCMBR) .*--------------------------------------------------------------------- :HELP NAME='CRTMIPGM/SRCMBR'. Source member (SRCMBR) - &msg(CPX6AB4,QCPFMSG). :XH3. Source member (SRCMBR) :P. Specifies the name of the member of the source file that contains the MI source statements to be compiled. :PARML. :PT.:PK def.*PGM:EPK. :PD.Use the name specified for the :HP2.Program:EHP2. prompt (PGM parameter) as the source file member name. The compiled program object will have the same name as the source file member. :PT.:PK.source-file-member-name:EPK. :PD.Enter the name of the member that contains the MI source statements. :EPARML. :EHELP. .*--------------------------------------------------------------------- .*‚Text 'description' (TEXT) .*--------------------------------------------------------------------- :HELP NAME='CRTMIPGM/TEXT'. Text 'description' (TEXT) - &msg(CPX6AB4,QCPFMSG). :XH3. Text 'description' (TEXT) :P. Specifies what text is used to describe the program function. :PARML. :PT.:PK def.*SRCMBRTXT:EPK. :PD.Use the text description from the source file member. :PT.:PK.*BLANK:EPK. :PD.No text appears. :PT.:PK.'description':EPK. :PD.Enter the text that briefly describes the function of the source specifications. The text can be a maximum of 50 characters and must be enclosed in apostrophes. The apostrophes are not part of the 50-character string. Apostrophes are not required if you are entering the text on the prompt screen. :EPARML. :EHELP. .*--------------------------------------------------------------------- .*‚Compiler options (OPTION) .*--------------------------------------------------------------------- :HELP NAME='CRTMIPGM/OPTION'. Compiler options (OPTION) - &msg(CPX6AB4,QCPFMSG). :XH3. Compiler options (OPTION) :P. Specifies the options to use when the source member is compiled. You can specify any or all of the options in any order. Only one value per option should be specified. If you specify more than one, the system only uses the first one. If you specify no value for a given option, the system uses the default value (underlined). :P. .*‚Create program object :H3.Create program object :P. Creates a program object. :P. The values allowed are: :PARML. :PT.:PK def.*GEN:EPK. :PD.Generates a program and places the program in the appropriate library. :PT.:PK.*NOGEN:EPK. :PD.No program is generated. The syntax of the intermediate representation of the program is checked, and if the generate listing option is *LIST, a listing is produced. :EPARML. :P. .*‚Replace program :H3.Replace program :P. Replaces the existing program if a program by the same name already exists in the specified library. :P. The values allowed are: :PARML. :PT.:PK def.*NOREPLACE:EPK. :PD.Does not replace an existing program by the same name in the specified library. :PT.:PK.*REPLACE:EPK. :PD.Replaces the existing program by moving it to the QRPLOBJ library. :EPARML. :P. .*‚Generate listing :H3.Generate listing :P. Generates an output listing. :P. The values allowed are: :PARML. :PT.:PK def.*NOLIST:EPK. :PD.Does not generate a listing. :PT.:PK.*LIST:EPK. :PD.Generates a listing. You must specify the name of a print file in the PRTFILE parameter. :EPARML. :P. .*‚Create cross-reference listing :H3.Create cross-reference listing :P. Whether the listing is to contain a cross-reference list of variable and data item references. :P. The values allowed are: :PARML. :PT.:PK def.*NOXREF:EPK. :PD.Does not create cross-reference listing. :PT.:PK.*XREF:EPK. :PD.Creates a cross-reference listing of references to variables, labels, or both. :EPARML. :P. .*‚Create summary listing :H3.Create summary listing :P. Whether the listing is to contain a list of program attributes. :P. The values allowed are: :PARML. :PT.:PK def.*NOATR:EPK. :PD.Does not create a summary listing section. :PT.:PK.*ATR:EPK. :PD.Creates a summary listing section. :EPARML. :P. .*‚User profile :H3.User profile :P. The values allowed are: :PARML. :PT.:PK def.*USER:EPK. :PD.The user profile of the user running the program is used as a source of authority when this program runs. :PT.:PK.*ADOPT:EPK. :PD.When the program runs, the object authority of both the program's owner and user are used. :PT.:PK.*OWNER:EPK. :PD.The system uses the user profile of the owner of the program as a source of authority when this program runs. Programs called by this program adopt this authority. :EPARML. :P. .*‚Use adopted authority :H3.Use adopted authority :P. Whether the system uses the program-adopted authority from the calling programs as a source of authority when this program is running. The user must be authorized to create programs with adopted authority for the *ADPAUT option to take effect. :P. The values allowed are: :PARML. :PT.:PK def.*ADPAUT:EPK. :PD.The system uses program-adopted authority from the calling program. :PT.:PK.*NOADPAUT:EPK. :PD.The system does not use program-adopted authority from the calling program. :EPARML. :NT. Authorization to create programs which can adopt authority is controlled by the QUSEADPAUT system value. :ENT. :P. .*‚Constrain arrays :H3.Constrain arrays :P. The values allowed are: :PARML. :PT.:PK def.*SUBSCR:EPK. :PD.Constrains arrays. This requests additional run-time checks to ensure that references to array elements are not outside the bounds of the declare statement. This option causes the resulting program to run slower. :PT.:PK.*NOSUBSCR:EPK. :PD.Does not constrain arrays. The results of references to array elements outside the bounds of the declare statement are not defined. :PT.:PK.*UNCON:EPK. :PD.Allows fully unconstrained arrays. This ensures that references to array elements outside the bounds of the declare statement act as if the array element actually exists. :EPARML. :NT. This program attribute may be changed at run-time using the Override Program Attributes (OVRPGATR) MI instruction. :ENT. :P. .*‚Constrain strings :H3.Constrain strings :P. The values allowed are: :PARML. :PT.:PK def.*SUBSTR:EPK. :PD.Constrains strings. This requests additional run-time checks to ensure that references to character strings are not outside the bounds of the declare statement. This option causes the resulting program to run slower. :PT.:PK.*NOSUBSTR:EPK. :PD.Does not constrain strings. The results of substring references outside the bounds of the declare statement are not defined. :EPARML. :NT. This program attribute may be changed at run-time using the Override Program Attributes (OVRPGATR) MI instruction. :ENT. :P. .*‚Initialize static storage :H3.Initialize static storage :P. Static storage is allocated the first time a program is called. It remains allocated until explicitly deallocated. :P. The values allowed are: :PARML. :PT.:PK def.*CLRPSSA:EPK. :PD.Initializes static storage. This code clears the program static storage area (PSSA) on entry using the Call External (CALLX) MI instruction. :PT.:PK.*NOCLRPSSA:EPK. :PD.Does not initialize the PSSA. :EPARML. :P. .*‚Initialize automatic storage :H3.Initialize automatic storage :P. Automatic storage is allocated each time a program runs and automatically deallocated when no longer needed. :P. The values allowed are: :PARML. :PT.:PK def.*CLRPASA:EPK. :PD.Initializes automatic storage. This code clears the program automatic storage area (PASA) on entry using the Call External (CALLX) MI instruction. :PT.:PK.*NOCLRPASA:EPK. :PD.Does not initialize the PASA. :EPARML. :P. .*‚Ignore decimal data errors :H3.Ignore decimal data errors :P. Whether errors found in decimal data result in exceptions. :P. The values allowed are: :PARML. :PT.:PK def.*NOIGNDEC:EPK. :PD.Does not ignore decimal data errors. When you specify *NOIGNDEC, decimal values used in numeric operations are checked for valid decimal digits and sign codes. If the system finds an error, it signals an exception. :PT.:PK.*IGNDEC:EPK. :PD.Ignores data decimal errors. When you specify *IGNDEC, decimal values used in numeric operations ensure they contain valid decimal digit and sign codes. However, the system treats digits that are not valid as zeros and signs that are not valid as positive signs. There is no exception signaled. :EPARML. :P. This option applies to only a subset of the numeric operations you specify. :NT. In all cases, the system signals decimal data errors if you use data pointers to address any of the instruction's operands. :ENT. :P. The following list contains the MI instructions this option affects: :P. :XMP. Inst. Packed Zoned Notes Support Support ADDN X CMPNV X CVTCN X X See manual CVTDFFP X CVTNC X X See manual CPYNV X X See manual DIV X DIVREM X EDIT X See manual EXTRMAG X MULT X NEG X REM X SCALE X SUBN X :EXMP. :P. When you specify *IGNDEC, the system may still signal the decimal data exception. That is, other MI instructions and instruction combinations not listed above may signal the decimal data exception when the system finds decimal data that is bad. :P. .*‚Ignore binary data size errors :H3.Ignore binary data size errors :P. The values allowed are: :PARML. :PT.:PK def.*NOIGNBIN:EPK. :PD.The system handles binary data size errors normally. When a binary size error occurs, an exception is signaled and the receiver contains the left-truncated result. :PT.:PK.*IGNBIN:EPK. :PD.The system ignores binary data size errors. This is used when an overflow or underflow occurs on a computation and when a control MI instruction has a receiver that is a binary field. The receiver contains the left-truncated result. :EPARML. :P. .*‚Support coincident operands :H3.Support coincident operands :P. The system overlaps coincident operands between the source and receiver operands in one or more program instructions. Coincident operands are operands that overlap physically, in storage. :P. The values allowed are: :PARML. :PT.:PK def.*NOOVERLAP:EPK. :PD.Does not support coincident operands. If you specify *NOOVERLAP, you guarantee that coincident operand overlap will not occur while running the instruction. Therefore, the system can use the receiver on an instruction as a work area during operations performed to produce the final result. Using the receiver as a work area does not use as much processor resource as would be required to move the final result from an internal work area to the receiver. :PT.:PK.*OVERLAP:EPK. :PD.Supports coincident operands. If you specify *OVERLAP, the operands on an MI instruction may overlap. Therefore, the system cannot use the receiver on an instruction as a work area during operations that produce the final result. This can require more processor resource for running the instruction but it ensures valid results if an overlap occurs. :EPARML. :P. The following is a list of instructions this option affects: :P. :UL. :LI.Add logical character (ADDLC) :LI.Add numeric (ADDN) :LI.And (AND) :LI.Compute math function using one input value (CMF1) :LI.Concatenate (CAT) :LI.Convert character to numeric (CVTCN) :LI.Convert decimal form to floating-point (CVTDFFP) :LI.Convert external form to numeric value (CVTEFN) :LI.Convert floating-point to decimal form (CVTFPDF) :LI.Convert numeric to character (CVTNC) :LI.Copy bytes left adjusted with pad (CPYBLAP) :LI.Copy bytes right adjusted with pad (CPYBRAP) :LI.Divide (DIV) :LI.Divide with remainder (DIVREM) :LI.Exclusive or (XOR) :LI.Multiply (MULT) :LI.Or (OR) :LI.Remainder (REM) :LI.Scale (SCALE) :LI.Subtract logical character (SUBLC) :LI.Subtract numeric (SUBN) :LI.Trim length (TRIML) :EUL. :P. .*‚Allow duplicate declares :H3.Allow duplicate declares :P. The values allowed are: :PARML. :PT.:PK def.*NODUP:EPK. :PD.This does not allow a program object to be declared more than once. This requests that duplicate declare (DCL) statements be diagnosed as errors. :PT.:PK.*DUP:EPK. :PD.This allows a program object to be declared more than once. This requests that program objects declared more than once be pooled and not be diagnosed as errors. :EPARML. :P. .*‚Optimize :H3.Optimize :P. The values allowed are: :PARML. :PT.:PK def.*OPT:EPK. :PD.This optimizes the program. In most instances, this produces the smallest and best running program. Occasionally, the source program may signal a MCH2802 escape message during processing. If this occurs, you should not optimize the program. :PT.:PK.*NOOPT:EPK. :PD.This does not optimize the program. This requests the normal level code optimization when you create the program. :EPARML. :EHELP. .*--------------------------------------------------------------------- .*‚Printer file (PRTFILE) .*--------------------------------------------------------------------- :HELP NAME='CRTMIPGM/PRTFILE'. Printer file (PRTFILE) - &msg(CPX6AB4,QCPFMSG). :XH3. Printer file (PRTFILE) :P. Specifies the name of the file where the compiler listing is to be placed and the library where the file is located. :P. This value is ignored if you specify *NOLIST for the generate listing option. :PARML. :PT.:PK def.QSYSPRT:EPK. :PD.The compiler listing is placed in the QSYSPRT file. :PT.:PK.print-file-name:EPK. :PD.Enter the name of the print file where the compiler listing is to be placed. :EPARML. Possible library values are: :PARML. :PT.:PK def.*LIBL:EPK. :PD.The system searches the library list to find the library where the print file is located. :PT.:PK.*CURLIB:EPK. :PD.The current library will be used. If you have not specified a current library, QGPL will be used. :PT.:PK.library-name:EPK. :PD.Enter the name of the library where the print file is located. :EPARML. :EHELP. .*--------------------------------------------------------------------- .*‚Authority (AUT) .*--------------------------------------------------------------------- :HELP NAME='CRTMIPGM/AUT'. Authority (AUT) - &msg(CPX6AB4,QCPFMSG). :XH3. Authority (AUT) :P. Specifies the authority that is granted for the program. :PARML. :PT.:PK def.*USE:EPK. :PD.The public can run the compiled program, but cannot debug or change it. :PT.:PK.*CHANGE:EPK. :PD.The public has only object operational rights for the compiled program. :PT.:PK.*ALL:EPK. :PD.The public has complete authority for the program except for transfer of object ownership. :PT.:PK.*EXCLUDE:EPK. :PD.The public cannot use the program. :PT.:PK.authorization-list:EPK. :PD.Enter the name of an authorization list of users and authorities to which the program is added. :EPARML. :EHELP. .*--------------------------------------------------------------------- .*‚Examples for CRTMIPGM .*--------------------------------------------------------------------- :HELP NAME='CRTMIPGM/COMMAND/EXAMPLES'. Examples for CRTMIPGM :XH3. Examples for CRTMIPGM :P. :HP1.Example 1::EHP1. :XMP. CRTMIPGM PGM(MYLIB/HELLO) SRCFILE(*PGMLIB/QMISRC) SRCMBR(*PGM) TEXT(*SRCMBRTXT) OPTION(*REPLACE *LIST *XREF) PRTFILE(*LIBL/QSYSPRT) :EXMP. :P. This example shows the user creating a program called HELLO in library MYLIB, using the source in member HELLO in file QMISRC in library MYLIB. The program will be compiled using the default compiler options except that if program HELLO already exists in library MYLIB, it will be replaced. A cross-reference listing of the variables and data item references used in program HELLO will be created. An output listing will also be created using printer file QSYSPRT. :EHELP. .*--------------------------------------------------------------------- .*‚Error messages for CRTMIPGM .*--------------------------------------------------------------------- :HELP NAME='CRTMIPGM/ERROR/MESSAGES'. &msg(CPX0005,QCPFMSG). CRTMIPGM :XH3. &msg(CPX0005,QCPFMSG). CRTMIPGM :P. :HP3.*ESCAPE &msg(CPX0006,QCPFMSG).:EHP3. :DL COMPACT. :DT.CPF9898:DD.General error message :DT.CPD0078:DD.&msg(CPD0078,QCPFMSG,). :DT.CPD3C50:DD.&msg(CPD3C50,QCPFMSG,). :DT.CPD3C52:DD.&msg(CPD3C52,QCPFMSG,). :DT.CPD3C53:DD.&msg(CPD3C53,QCPFMSG,). :DT.CPD3C54:DD.&msg(CPD3C54,QCPFMSG,). :DT.CPD3C55:DD.&msg(CPD3C55,QCPFMSG,). :DT.CPD3C56:DD.&msg(CPD3C56,QCPFMSG,). :DT.CPF2143:DD.&msg(CPF2143,QCPFMSG,). :DT.CPF2144:DD.&msg(CPF2144,QCPFMSG,). :DT.CPF2146:DD.&msg(CPF2146,QCPFMSG,). :DT.CPF2283:DD.&msg(CPF2283,QCPFMSG,). :DT.CPF223B:DD.&msg(CPF223B,QCPFMSG,). :DT.CPF223E:DD.&msg(CPF223E,QCPFMSG,). :DT.CPF3CF1:DD.&msg(CPF3CF1,QCPFMSG,). :DT.CPF3C35:DD.&msg(CPF3C35,QCPFMSG,). :DT.CPF3C5A:DD.&msg(CPF3C5A,QCPFMSG,). :DT.CPF3C5B:DD.&msg(CPF3C5B,QCPFMSG,). :DT.CPF3C5C:DD.&msg(CPF3C5C,QCPFMSG,). :DT.CPF3C5D:DD.&msg(CPF3C5D,QCPFMSG,). :DT.CPF3C5F:DD.&msg(CPF3C5F,QCPFMSG,). :DT.CPF3C50:DD.&msg(CPF3C50,QCPFMSG,). :DT.CPF3C56:DD.&msg(CPF3C56,QCPFMSG,). :DT.CPF3C60:DD.&msg(CPF3C60,QCPFMSG,). :DT.CPF3C61:DD.&msg(CPF3C61,QCPFMSG,). :DT.CPF3C62:DD.&msg(CPF3C62,QCPFMSG,). :DT.CPF3C63:DD.&msg(CPF3C63,QCPFMSG,). :DT.CPF3C64:DD.&msg(CPF3C64,QCPFMSG,). :DT.CPF3C90:DD.&msg(CPF3C90,QCPFMSG,). :DT.CPF6301:DD.&msg(CPF6301,QCPFMSG,). :DT.CPF6303:DD.&msg(CPF6303,QCPFMSG,). :DT.CPF6304:DD.&msg(CPF6304,QCPFMSG,). :DT.CPF6306:DD.&msg(CPF6306,QCPFMSG,). :DT.CPF6307:DD.&msg(CPF6307,QCPFMSG,). :DT.CPF6308:DD.&msg(CPF6308,QCPFMSG,). :DT.CPF6309:DD.&msg(CPF6309,QCPFMSG,). :DT.CPF6455:DD.&msg(CPF6455,QCPFMSG,). :DT.CPF6457:DD.&msg(CPF6457,QCPFMSG,). :DT.CPF6551:DD.&msg(CPF6551,QCPFMSG,). :DT.CPF6552:DD.&msg(CPF6552,QCPFMSG,). :DT.CPF6553:DD.&msg(CPF6553,QCPFMSG,). :DT.CPF6554:DD.&msg(CPF6554,QCPFMSG,). :DT.CPF6555:DD.&msg(CPF6555,QCPFMSG,). :DT.CPF6557:DD.&msg(CPF6557,QCPFMSG,). :DT.CPF6560:DD.&msg(CPF6560,QCPFMSG,). :DT.CPF6561:DD.&msg(CPF6561,QCPFMSG,). :DT.CPF6563:DD.&msg(CPF6563,QCPFMSG,). :DT.CPF6564:DD.&msg(CPF6564,QCPFMSG,). :DT.CPF6565:DD.&msg(CPF6565,QCPFMSG,). :DT.CPF9872:DD.&msg(CPF9872,QCPFMSG,). :EDL. :EHELP. :EPNLGRP.