*DECK,DMP$UCB 
*IF,DEF,TRACE 
USETEXT DMP$PRT 
USETEXT UCB$DMP 
 PROC DMP$UCB(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 UCB8CURINPUT[0:21];
 ITEM UCB9CURINPUT C(00,00,10) = [
"NULLI",
"GOI",
"STOPEND",
"RESUME", 
"ABORT",
"IFCJOB", 
"EOS",
"CREMT",
"DSKERR", 
"CRERR",
"IFCEND", 
"IFCEOJ", 
"IFCABT", 
"BADJOB", 
"GOODJOB",
"INTRPT", 
"ENDCON", 
"CONCB",
"QFULL",
"IDLEDOWN", 
"LAST", 
"UNDEFINED."];
  
 ARRAY UCB8CURSTATE[0:10];
 ITEM UCB9CURSTATE C(00,00,10) = [
"NULL", 
"IDLE", 
"WTVEJ",
"GO", 
"WTID", 
"WTGO", 
"STOP", 
"ABTBY",
"ABTIM",
"ERROR",
"UNDEFINED."];
  
P<UCB$DMP> = ARRAY$ADDR;
FOR ITER=0 STEP 1 UNTIL 13
DO BUFF$BUFF[ITER] = " "; 
H$TABLE = "UCB";
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 UCB$COMPLETE THEN
TEMP$VAR  =  "TRUE" ; 
ELSE
TEMP$VAR  =  "FALSE" ;
BUFF$NAME1 = "COMPLETE";
BUFF$CHAR1 = TEMP$VAR ; 
TEMP$VAR  = XCOD(UCB$INPTYPE);
BUFF$NAME2 = "INPTYPE"; 
BUFF$OCTAL2 = C<5,5>TEMP$VAR ;
BUFF$SLASH2 = "/";
TEMP$VAR  = XCDD(UCB$INPTYPE);
BUFF$DEC2 = C<4,6>TEMP$VAR ;
TEMP$VAR  = XCOD(UCB$TIME); 
BUFF$NAME3 = "TIME";
BUFF$OCTAL3 = C<5,5>TEMP$VAR ;
BUFF$SLASH3 = "/";
TEMP$VAR  = XCDD(UCB$TIME); 
BUFF$DEC3 = C<4,6>TEMP$VAR ;
TEMP$VAR  = XCOD(UCB$EVENT);
BUFF$NAME4 = "EVENT"; 
BUFF$OCTAL4 = C<5,5>TEMP$VAR ;
BUFF$SLASH4 = "/";
TEMP$VAR  = XCOD(UCB$LINK); 
BUFF$NAME5 = "LINK";
BUFF$OCTAL5 = C<5,5>TEMP$VAR ;
BUFF$SLASH5 = "/";
TEMP$VAR  = XSFW(UCB$TERMNAME); 
DMP$ZB5(14,PRINT$BUFF,STAT);
FOR ITER=0 STEP 1 UNTIL 13
DO BUFF$BUFF[ITER] = " "; 
BUFF$NAME1 = "TERMNAME";
BUFF$CHAR1 = TEMP$VAR ; 
IF UCB$STPEND THEN
TEMP$VAR  =  "TRUE" ; 
ELSE
TEMP$VAR  =  "FALSE" ;
BUFF$NAME2 = "STPEND";
BUFF$CHAR2 = TEMP$VAR ; 
IF UCB$INTRPT THEN
TEMP$VAR  =  "TRUE" ; 
ELSE
TEMP$VAR  =  "FALSE" ;
BUFF$NAME3 = "INTRPT";
BUFF$CHAR3 = TEMP$VAR ; 
IF UCB$FILEACT THEN 
TEMP$VAR  =  "TRUE" ; 
ELSE
TEMP$VAR  =  "FALSE" ;
BUFF$NAME4 = "FILEACT"; 
BUFF$CHAR4 = TEMP$VAR ; 
IF UCB$AUTOGO THEN
TEMP$VAR  =  "TRUE" ; 
ELSE
TEMP$VAR  =  "FALSE" ;
BUFF$NAME5 = "AUTOGO";
BUFF$CHAR5 = TEMP$VAR ; 
TEMP$VAR  = XCOD(UCB$BUFFER); 
DMP$ZB5(14,PRINT$BUFF,STAT);
FOR ITER=0 STEP 1 UNTIL 13
DO BUFF$BUFF[ITER] = " "; 
BUFF$NAME1 = "BUFFER";
BUFF$OCTAL1 = C<5,5>TEMP$VAR ;
BUFF$SLASH1 = "/";
TEMP$VAR  = XCDD(UCB$BUFFER); 
BUFF$DEC1 = C<4,6>TEMP$VAR ;
TEMP$VAR  = XCOD(UCB$WORD2);
BUFF$NAME2 = "WORD2"; 
BUFF$OCTAL2 = C<5,5>TEMP$VAR ;
BUFF$SLASH2 = "/";
TEMP$VAR  = XCDD(UCB$WORD2);
BUFF$DEC2 = C<4,6>TEMP$VAR ;
S$MNEM = C<0,9>UCB9CURINPUT [UCB$CURINPUT]; 
TEMP$VAR  = XCDD(UCB$CURINPUT); 
S$VAL = C<8,2>TEMP$VAR ;
BUFF$NAME3 = "CURINPUT";
BUFF$CHAR3 = S$ENTIRE;
S$MNEM = C<0,9>UCB9CURSTATE [UCB$CURSTATE]; 
TEMP$VAR  = XCDD(UCB$CURSTATE); 
S$VAL = C<8,2>TEMP$VAR ;
BUFF$NAME4 = "CURSTATE";
BUFF$CHAR4 = S$ENTIRE;
TEMP$VAR  = XCOD(UCB$CURACTN);
BUFF$NAME5 = "CURACTN"; 
BUFF$OCTAL5 = C<5,5>TEMP$VAR ;
BUFF$SLASH5 = "/";
TEMP$VAR  = XCDD(UCB$CURACTN);
BUFF$DEC5 = C<4,6>TEMP$VAR ;
TEMP$VAR  = XCOD(UCB$MESSAGE);
DMP$ZB5(14,PRINT$BUFF,STAT);
FOR ITER=0 STEP 1 UNTIL 13
DO BUFF$BUFF[ITER] = " "; 
BUFF$NAME1 = "MESSAGE"; 
BUFF$OCTAL1 = C<5,5>TEMP$VAR ;
BUFF$SLASH1 = "/";
TEMP$VAR  = XCDD(UCB$MESSAGE);
BUFF$DEC1 = C<4,6>TEMP$VAR ;
TEMP$VAR  = XCOD(UCB$BUFSIZE);
BUFF$NAME2 = "BUFSIZE"; 
BUFF$OCTAL2 = C<5,5>TEMP$VAR ;
BUFF$SLASH2 = "/";
TEMP$VAR  = XCDD(UCB$BUFSIZE);
BUFF$DEC2 = C<4,6>TEMP$VAR ;
TEMP$VAR  = XCOD(UCB$DISKERR);
BUFF$NAME3 = "DISKERR"; 
BUFF$OCTAL3 = C<5,5>TEMP$VAR ;
BUFF$SLASH3 = "/";
TEMP$VAR  = XCDD(UCB$DISKERR);
BUFF$DEC3 = C<4,6>TEMP$VAR ;
TEMP$VAR  = XCOD(UCB$DSKCODE);
BUFF$NAME4 = "DSKCODE"; 
BUFF$OCTAL4 = C<5,5>TEMP$VAR ;
BUFF$SLASH4 = "/";
TEMP$VAR  = XCDD(UCB$DSKCODE);
BUFF$DEC4 = C<4,6>TEMP$VAR ;
DMP$ZB5(14,PRINT$BUFF,STAT);
  
END 
TERM
*ENDIF
