hallo sascha,
ist zwar schon etwas älter aber sollte noch funktionieren

***************** Datenanfang ******************************************
/************************************************** *******************/
/* */
/* Program: $PRFTAP */
/* */
/* Purpose: Determine if a given printer exists. */
/* */
/* Parms: &DEV IN 10A Name of printer */
/* &rtncde OUT 1A Y=Yes, N=No, ?=Error */
/* */
/************************************************** *******************/
PGM ( +
&DEV /* DEVICE name */ +
&rtncde /* Return code */ +
)

DCL &apierrcde *CHAR 8
DCL &DEV *CHAR 10
DCL &rcvvar *CHAR 64
DCL &rtncde *CHAR 1

DCL &#error *CHAR 1 '?'
DCL &#no *CHAR 1 'N'
DCL &#yes *CHAR 1 'Y'

MONMSG cpf0000 EXEC( GOTO error )

CHGVAR &rtncde &#yes

CHGVAR &apierrcde X'00000008'

CALL qdcrdevd ( +
&rcvvar /* Dummy receiving variable */ +
X'00000040' /* Length = 64 */ +
'DEVD0100' /* Use simplest data format */ +
&DEV /* DEVICE name */ +
&apierrcde /* API error code */ +
)

/* --------------------------------------------------------------- +
* Not a TAPE if QDCRDEVD ends in error, or +

* if the device category is not *TAPF. +
*/
IF ( %BIN( &apierrcde 5 4 ) > 0 ) DO
CHGVAR &rtncde &#no
ENDDO

IF ( %SST( &rcvvar 32 10 ) *NE '*PRT' ) DO
CHGVAR &rtncde &#no
ENDDO

RETURN

error:
CHGVAR &rtncde &#error

ENDPGM
******************Datenende *******************************************


LG
Hans-Joachim