*DECK PATTDISP
PROC PATTDISPLAY (PATTADDR,PATTLEN);
BEGIN 
ITEM I,J,K,L,PATTADDR,PATTLEN,OFFSET; 
ITEM TEMPCHAR C(10);
  
XREF BEGIN PROC CBLIST; 
           PROC DISPLAY;
           FUNC DEC C(10);
         FUNC OCT C(40); END
  
BASED ARRAY A$PATTERN[0] S(24); 
ITEM PATTERN C(0,0,240);
  
ARRAY[6]; 
ITEM COMMANDNAME C(0,0,2) = 
[" D", " S", " I", "  ", "TF", "TS", "TI"]; 
  
ARRAY[6]; 
ITEM COMMANDLEN = 
[1, 3, 2, 0, 2, 3, 2];
  
ARRAY[0]; 
BEGIN 
ITEM COMMAND    U(0,0,3); 
ITEM RPTCOUNT   U(0,3,3); 
ITEM INS1       C(0,6,1); 
ITEM INS2       C(0,12,1);
END 
  
ITEM BLANKS C(121) = " "; 
ITEM PRINTLINE C(121);
  
# BEGINNING OF EXECUTABLE CODE #
  
OFFSET = 0; 
P<A$PATTERN> = PATTADDR;
PRINTLINE = BLANKS; 
IF C<0,1> PATTERN[0] EQ " " THEN
C<OFFSET+1,1> PRINTLINE = "'";
ELSE
C<OFFSET+1,1> PRINTLINE = C<0,1> PATTERN[0];
J = 1;
OFFSET = OFFSET + 4;
LOOP:        # TOP OF LOOP THROUGH PATTERN #
C<0,3> COMMAND[0] = C<J,3> PATTERN[0];
IF INS1[0] EQ " " THEN INS1[0] = "'"; 
IF INS2[0] EQ " " THEN INS2[0] = "'"; 
J = J + COMMANDLEN[COMMAND[0]]; 
C<OFFSET,2> PRINTLINE = COMMANDNAME[COMMAND[0]];
K = RPTCOUNT[0];
TEMPCHAR = DEC(K);
C<OFFSET+2,1> PRINTLINE = C<0,1> TEMPCHAR;
L = COMMANDLEN[COMMAND[0]]; 
IF L GQ 2 THEN
   C<OFFSET+5,1> PRINTLINE = INS1[0]; 
IF L EQ 3 THEN
   C<OFFSET+9,1> PRINTLINE = INS2[0]; 
OFFSET = OFFSET + 4 * L;
IF OFFSET LS 109 AND J LS PATTLEN THEN
   GOTO LOOP; 
CBLIST(2, PRINTLINE, 121);
END   # END PATTDISPLAY#
TERM
