In an RPG400 program you can call a program without passing the expected number of parameters by using the *PSDS (program status data structure) in the called program and using it to determine which parameters (if any) were passed. The trick is to only refer to the parameter variable if it was passed otherwise you will get a pointer/resolve error. To do this, define work variables that will be populated with the parameter values by your program and refer to these in the rest of your code.