*DECK,DMP$DCB 
*IF,DEF,TRACE 
USETEXT DMP$PRT 
USETEXT DCB$DMP 
 PROC DMP$DCB(ARRAY$ADDR,ITEM$TAG,ORD); 
BEGIN 
  
ITEM
 ARRAY$ADDR U,
 STAT U,
 TEMP$VAR C(10),
TEMP$VAR2 C(12),
 ITEM$TAG U,
 ORD, 
 ITER I;
 XREF BEGIN 
FUNC XCOD C(10) ; 
 FUNC XCDD C(10) ;
 FUNC XSFW C(10) ;
PROC DMP$ZB5 ;
 END
ARRAY STAT$BLD S(2);
 BEGIN
 ITEM S$MNEM   C(00,00,09); 
 ITEM S$SLASH  C(00,54,01)=["/"]; 
 ITEM S$VAL    C(01,00,02); 
 ITEM S$ENTIRE C(00,00,12); 
 END
  
 ARRAY DCB8CURINPUT[0:25];
 ITEM DCB9CURINPUT C(00,00,10) = [
"NULLI",
"GOI",
"STOPI",
"RESUME", 
"DEVFL",
"STOPEND",
"SKP",
"SKPEND", 
"REWIND", 
"ABORT",
"RETURN", 
"OFCEOO", 
"OFCABT", 
"INTRPT", 
"PM", 
"LIMIT",
"NOTRDY", 
"DSKERR", 
"OFCSTP", 
"OFCDAT", 
"FILEFND",
"BANCOMP",
"ENDCON", 
"CONCB",
"LAST", 
"UNDEFINED."];
  
 ARRAY DCB8CURSTATE[0:19];
 ITEM DCB9CURSTATE C(00,00,10) = [
"NULL", 
"IDLE", 
"GO", 
"GOBAN",
"GOEOF",
"WAIT1",
"WAIT2",
"WTBAN",
"WTEOF",
"STOP", 
"SKIP", 
"SKPEND", 
"ABORT",
"ABTBAN", 
"ABTEOF", 
"RETURN", 
"RETBAN", 
"RETEOF", 
"ERROR",
"UNDEFINED."];
  
P<DCB$DMP> = ARRAY$ADDR;
FOR ITER=0 STEP 1 UNTIL 13
DO BUFF$BUFF[ITER] = " "; 
H$TABLE = "DCB";
TEMP$VAR  = XCOD(ARRAY$ADDR); 
H$ADD = C<2,8>TEMP$VAR ;
H$DESCR = "  (NONE)  "; 
TEMP$VAR  = XCDD(ORD);
H$ORDD = C<7,3>TEMP$VAR ; 
TEMP$VAR  = XCOD(ORD);
H$ORDB = C<7,3>TEMP$VAR ; 
DMP$ZB5(10,HEAD$BUFF,STAT); 
IF DCB$COMPLETE THEN
TEMP$VAR  =  "TRUE" ; 
ELSE
TEMP$VAR  =  "FALSE" ;
BUFF$NAME1 = "COMPLETE";
BUFF$CHAR1 = TEMP$VAR ; 
TEMP$VAR  = XCOD(DCB$INPTYPE);
BUFF$NAME2 = "INPTYPE"; 
BUFF$OCTAL2 = C<5,5>TEMP$VAR ;
BUFF$SLASH2 = "/";
TEMP$VAR  = XCDD(DCB$INPTYPE);
BUFF$DEC2 = C<4,6>TEMP$VAR ;
TEMP$VAR  = XCOD(DCB$TIME); 
BUFF$NAME3 = "TIME";
BUFF$OCTAL3 = C<5,5>TEMP$VAR ;
BUFF$SLASH3 = "/";
TEMP$VAR  = XCDD(DCB$TIME); 
BUFF$DEC3 = C<4,6>TEMP$VAR ;
TEMP$VAR  = XCOD(DCB$EVENT);
BUFF$NAME4 = "EVENT"; 
BUFF$OCTAL4 = C<5,5>TEMP$VAR ;
BUFF$SLASH4 = "/";
TEMP$VAR  = XCOD(DCB$LINK); 
BUFF$NAME5 = "LINK";
BUFF$OCTAL5 = C<5,5>TEMP$VAR ;
BUFF$SLASH5 = "/";
TEMP$VAR  = XCOD(DCB$WORD0);
DMP$ZB5(14,PRINT$BUFF,STAT);
FOR ITER=0 STEP 1 UNTIL 13
DO BUFF$BUFF[ITER] = " "; 
BUFF$NAME1 = "WORD0"; 
BUFF$OCTAL1 = C<5,5>TEMP$VAR ;
BUFF$SLASH1 = "/";
TEMP$VAR  = XCDD(DCB$WORD0);
BUFF$DEC1 = C<4,6>TEMP$VAR ;
TEMP$VAR  = XSFW(DCB$TERMNAME); 
BUFF$NAME2 = "TERMNAME";
BUFF$CHAR2 = TEMP$VAR ; 
IF DCB$STPEND THEN
TEMP$VAR  =  "TRUE" ; 
ELSE
TEMP$VAR  =  "FALSE" ;
BUFF$NAME3 = "STPEND";
BUFF$CHAR3 = TEMP$VAR ; 
IF DCB$SETFILE THEN 
TEMP$VAR  =  "TRUE" ; 
ELSE
TEMP$VAR  =  "FALSE" ;
BUFF$NAME4 = "SETFILE"; 
BUFF$CHAR4 = TEMP$VAR ; 
IF DCB$FILEACT THEN 
TEMP$VAR  =  "TRUE" ; 
ELSE
TEMP$VAR  =  "FALSE" ;
BUFF$NAME5 = "FILEACT"; 
BUFF$CHAR5 = TEMP$VAR ; 
IF DCB$RSMTM THEN 
TEMP$VAR  =  "TRUE" ; 
ELSE
TEMP$VAR  =  "FALSE" ;
DMP$ZB5(14,PRINT$BUFF,STAT);
FOR ITER=0 STEP 1 UNTIL 13
DO BUFF$BUFF[ITER] = " "; 
BUFF$NAME1 = "RSMTM"; 
BUFF$CHAR1 = TEMP$VAR ; 
IF DCB$AUTOGO THEN
TEMP$VAR  =  "TRUE" ; 
ELSE
TEMP$VAR  =  "FALSE" ;
BUFF$NAME2 = "AUTOGO";
BUFF$CHAR2 = TEMP$VAR ; 
IF DCB$EOJ THEN 
TEMP$VAR  =  "TRUE" ; 
ELSE
TEMP$VAR  =  "FALSE" ;
BUFF$NAME3 = "EOJ"; 
BUFF$CHAR3 = TEMP$VAR ; 
TEMP$VAR  = XCOD(DCB$QABBUFO);
BUFF$NAME4 = "QABBUFO"; 
BUFF$OCTAL4 = C<5,5>TEMP$VAR ;
BUFF$SLASH4 = "/";
TEMP$VAR  = XCDD(DCB$QABBUFO);
BUFF$DEC4 = C<4,6>TEMP$VAR ;
S$MNEM = C<0,9>DCB9CURINPUT [DCB$CURINPUT]; 
TEMP$VAR  = XCDD(DCB$CURINPUT); 
S$VAL = C<8,2>TEMP$VAR ;
BUFF$NAME5 = "CURINPUT";
BUFF$CHAR5 = S$ENTIRE;
S$MNEM = C<0,9>DCB9CURSTATE [DCB$CURSTATE]; 
TEMP$VAR  = XCDD(DCB$CURSTATE); 
S$VAL = C<8,2>TEMP$VAR ;
DMP$ZB5(14,PRINT$BUFF,STAT);
FOR ITER=0 STEP 1 UNTIL 13
DO BUFF$BUFF[ITER] = " "; 
BUFF$NAME1 = "CURSTATE";
BUFF$CHAR1 = S$ENTIRE;
TEMP$VAR  = XCOD(DCB$CURACTN);
BUFF$NAME2 = "CURACTN"; 
BUFF$OCTAL2 = C<5,5>TEMP$VAR ;
BUFF$SLASH2 = "/";
TEMP$VAR  = XCDD(DCB$CURACTN);
BUFF$DEC2 = C<4,6>TEMP$VAR ;
TEMP$VAR  = XCOD(DCB$PMTXT);
BUFF$NAME3 = "PMTXT"; 
BUFF$OCTAL3 = C<5,5>TEMP$VAR ;
BUFF$SLASH3 = "/";
TEMP$VAR  = XCDD(DCB$PMTXT);
BUFF$DEC3 = C<4,6>TEMP$VAR ;
TEMP$VAR  = XCOD(DCB$BUFSIZE);
BUFF$NAME4 = "BUFSIZE"; 
BUFF$OCTAL4 = C<5,5>TEMP$VAR ;
BUFF$SLASH4 = "/";
TEMP$VAR  = XCDD(DCB$BUFSIZE);
BUFF$DEC4 = C<4,6>TEMP$VAR ;
IF DCB$DEVSTOP THEN 
TEMP$VAR  =  "TRUE" ; 
ELSE
TEMP$VAR  =  "FALSE" ;
BUFF$NAME5 = "DEVSTOP"; 
BUFF$CHAR5 = TEMP$VAR ; 
IF DCB$TEMPSTP THEN 
TEMP$VAR  =  "TRUE" ; 
ELSE
TEMP$VAR  =  "FALSE" ;
DMP$ZB5(14,PRINT$BUFF,STAT);
FOR ITER=0 STEP 1 UNTIL 13
DO BUFF$BUFF[ITER] = " "; 
BUFF$NAME1 = "TEMPSTP"; 
BUFF$CHAR1 = TEMP$VAR ; 
TEMP$VAR  = XCOD(DCB$OFCSTPD);
BUFF$NAME2 = "OFCSTPD"; 
BUFF$OCTAL2 = C<5,5>TEMP$VAR ;
BUFF$SLASH2 = "/";
TEMP$VAR  = XCDD(DCB$OFCSTPD);
BUFF$DEC2 = C<4,6>TEMP$VAR ;
IF DCB$INTRPT THEN
TEMP$VAR  =  "TRUE" ; 
ELSE
TEMP$VAR  =  "FALSE" ;
BUFF$NAME3 = "INTRPT";
BUFF$CHAR3 = TEMP$VAR ; 
IF DCB$PMINT THEN 
TEMP$VAR  =  "TRUE" ; 
ELSE
TEMP$VAR  =  "FALSE" ;
BUFF$NAME4 = "PMINT"; 
BUFF$CHAR4 = TEMP$VAR ; 
IF DCB$LIMIT THEN 
TEMP$VAR  =  "TRUE" ; 
ELSE
TEMP$VAR  =  "FALSE" ;
BUFF$NAME5 = "LIMIT"; 
BUFF$CHAR5 = TEMP$VAR ; 
IF DCB$NREADY THEN
TEMP$VAR  =  "TRUE" ; 
ELSE
TEMP$VAR  =  "FALSE" ;
DMP$ZB5(14,PRINT$BUFF,STAT);
FOR ITER=0 STEP 1 UNTIL 13
DO BUFF$BUFF[ITER] = " "; 
BUFF$NAME1 = "NREADY";
BUFF$CHAR1 = TEMP$VAR ; 
IF DCB$DSKERR THEN
TEMP$VAR  =  "TRUE" ; 
ELSE
TEMP$VAR  =  "FALSE" ;
BUFF$NAME2 = "DSKERR";
BUFF$CHAR2 = TEMP$VAR ; 
TEMP$VAR = XCOD(DCB$PLTEMP);
BUFF$NAME3 = "PLTEMP";
BUFF$OCTAL3 = C<5,5>TEMP$VAR; 
BUFF$SLASH3 = "/";
TEMP$VAR = XCDD(DCB$PLTEMP);
BUFF$DEC3 = C<4,6>TEMP$VAR; 
DMP$ZB5(14,PRINT$BUFF,STAT);
  
END 
TERM
*ENDIF
