Problem: Passing a null string as a command (which is not a valid command) to the CMD interpreter will return the SYS0008 error message after the 32nd iteration.
Example:
/* example for the SYS0008 bug */
do i=1 to 33
/* the next stmt returns a */
/* null string to the CMD */
/* which leads to the */
/* SYS0008 error after the */
/* 32nd execution. */
Beep(220,250)
say "i is " || i || ", rc is " || RC
end /* do i=1 to 33 */
Note that you can replace the statement Beep(220,250) with every other statement returning a null string -- even with a function defined in your REXX program!
This seems to be an OS/2 interpreter bug. Note that 4OS2 does handle this situation correctly.
Hint: Do not use a function returning a null string this way (see also SYS0008).
This bug seems to be fixed in WARP 4 Fixpack #5.