	TITLE 'SYNERROR - SUBROUTINE TO PRINT ERROR MESSAGE IN SYNAD'
* PGMID.  SYNERROR.ALC
* AUTHOR. DON HIGGINS
* DATE.   10/19/87
* REMARKS.
*         THIS SUBROUTINE MAY BE CALLED AT BEGINNING OF SYNAD EXIT TO
*         DECODE DCB FUNCTION AND ERROR CODE IN R1 AND R0.
* MAINTENANCE.
*
* 10/21/87 REVERSE R0 AND R1 FOR COMPATABILITY WITH NATIVE DCB SYNAD
*
SYNERROR CSECT
	USING *,R15
	STM   R0,R4,SAVE04
	LA    R3,FUNTAB
	LA    R4,MAXFUN
FUNSCH   EQU   *
	CLM   R1,3,0(R3)
	BE    FUNHIT
	LA    R3,12(R3)
	BCT   R4,FUNSCH
	LA    R2,=C'SYNAD FUNCTION NOT FOUND$'
	SVC   WTO
SYNEXT   EQU   *
	LM    R0,R4,SAVE04
	BR    R14
FUNHIT   EQU   *           FUNCTION FOUND
	MVC   DFUN,4(R3)  FUNCTION DESCRIPTION
	MH    R0,=H'20'
	AH    R0,2(R3)    R1 = OFFSET TO ERROR MESSAGE FOR FUNCTION
	LR    R1,R0
	LA    R1,ERRTAB-20(R1)
	MVC   DERR,0(R1)  ERROR DESCRIPTION
	LA    R3,DFILE
	LA    R4,L'DFILE
	L     R1,DCBDSN-IHADCB(R2)
DSNLOOP  EQU   *
	MVC   0(1,R3),0(R1) FILE NAME
	LA    R1,1(R1)
	LA    R3,1(R3)
	CLI   0(R1),0
	BE    DSNEND
	BCT   R4,DSNLOOP
DSNEND   EQU   *
	MVI   0(R3),C'$'
	LA    R2,ERRMSG
	SVC   WTO
	B     SYNEXT
	LTORG
SAVE04   DS    5F
ERRMSG   DC    C' I/O ERROR OP= '
DFUN     DC    CL8' ',C'  ERR= '
DERR     DC    CL20' ',C' FILE='
DFILE    DC    CL20' ',C'$'
FUNTAB   DS    0F
	DC    AL2(X'101',PCOPEN-ERRTAB),CL8'PC-OPEN'
	DC    AL2(X'03D',MSOPEN-ERRTAB),CL8'MS-OPEN'
	DC    AL2(X'03C',MSMAKE-ERRTAB),CL8'MS-MAKE'
	DC    AL2(X'102',PCCLOS-ERRTAB),CL8'PC-CLOSE'
	DC    AL2(X'03E',MSCLOS-ERRTAB),CL8'MS-CLOSE'
	DC    AL2(X'103',PCREAD-ERRTAB),CL8'PC-READ'
	DC    AL2(X'042',MSSETP-ERRTAB),CL8'MS-SET'
	DC    AL2(X'03F',MSREAD-ERRTAB),CL8'MS-READ'
	DC    AL2(X'104',PCWRIT-ERRTAB),CL8'PC-WRITE'
	DC    AL2(X'040',MSWRIT-ERRTAB),CL8'MS-WRITE'
	DC    AL2(X'105',PCGETR-ERRTAB),CL8'PC-GET'
	DC    AL2(X'106',PCPUTR-ERRTAB),CL8'PC-PUT'
	DC    AL2(X'107',PCDELF-ERRTAB),CL8'PC-DEL'
	DC    AL2(X'108',PCFIND-ERRTAB),CL8'PC-FIND'
	DC    AL2(X'109',PCRENF-ERRTAB),CL8'PC-REN'
MAXFUN   EQU   (*-FUNTAB)/8
ERRTAB   EQU   *
PCOPEN   EQU   *
	DC    CL20'ALREADY OPEN'         1
	DC    CL20'HANDLE NOT NULL'      2
	DC    CL20'LRECL LT MIN'         3
	DC    CL20'USER BUFFER GT MAX'   4
	DC    CL20'USER BUFFER LT MIN'   5
	DC    CL20'R/W BUFFER LT LRECL'  6
	DC    CL20'MIN BUFFER NOT FREE'  7
	DC    CL20'GET MEMORY ERROR'     8
	DC    CL20'LRECL LT MIN'         9
	DC    CL20'LRECL GT MAX'        10
	DC    CL20'BLKSZ LT MIN'        11
	DC    CL20'BLKSZ GT MAX'        12
MSOPEN   EQU   * 03D 1-5
MSMAKE   EQU   * 03C 3-5
MSCLOS   EQU   * 03E 6
MSREAD   EQU   * 03F 5,6
MSWRIT   EQU   * 040 5,6
MSDELF   EQU   * 041 2,5
MSSETP   EQU   * 042 1,6
MSRENF   EQU   * 056 2,3,5,11H             REN ERR'S
	DC    CL20'FUNCTION # INVALID'      1
	DC    CL20'FILE NOT FOUND'          2
	DC    CL20'PATH NOT FOUND'          3
	DC    CL20'NO HANDLE AVAILABLE'     4
	DC    CL20'ACCESS DENIED'           5
	DC    CL20'HANDLE INVALID'          6
PCCLOS   EQU   *
	DC    CL20'FILE NOT OPEN'      1    7
	DC    CL20'FREEMAIN ERROR'     2    8
PCREAD   EQU   *
	DC    CL20'FILE NOT OPEN'      1    9
	DC    CL20'SHORT BLK/BAD RBA'  2   10
	DC    CL20'ACCESS DENIED'      3   11
PCWRIT   EQU   * 042
	DC    CL20'FILE NOT OPEN'      1   12
	DC    CL20'NOT OUTPUT FILE'    2   13
	DC    CL20'SHORT BLK/BAD RBA'  3   14
	DC    CL20'ZERO BLK/BAD RBA'   4   15
	DC    CL20'DISK FULL'          5   16
	DC    CL20'NOT SAME DISK'          17 X'11' RENAME ERROR (SAVE SPACE)
PCGETR   EQU   *
	DC    CL20'FILE NOT OPEN'      1
	DC    CL20'RECFM INVALID'      2
	DC    CL20'RCD LNG LT MIN'     3
	DC    CL20'RCD LNG GT LRECL'   4
PCPUTR   EQU   *
	DC    CL20'FILE NOT OPEN'      1
	DC    CL20'RECFM INVALID'      2
	DC    CL20'RCD LNG GT LRECL'   3
	DC    CL20'RCD LNG LT MIN'     4
	DC    CL20'RCD LNG GT MAX'     5
	DC    CL20'NO EOR FOR TEXT'    6
PCDELF   EQU   *
PCFIND   EQU   *
PCRENF   EQU   *
	DC    CL20'FILE NOT CLOSED'    7
	DC    CL20'INVALID HANDLE'     8
	COPY  CPY\IHADCB
	COPY  CPY\EQUREGS
	COPY  CPY\EQUSVCS
	END
