*COMDECK PBTOAD 
_$J+  PAGE EJECT? 
_*****************************
*                            *
*         PBTOAD             *
*  CONVERT TO ASCII DECIMAL  *
*                            *
*****************************?
_$R+,G+,I-     RECURSIVE
               INTERRUPTABLE ?
_***********************************************************************
*                                                                      *
**OVERVIEW- PBTOAD CONVERTS A GIVEN INTEGER TO UP TO 5 ASCII           *
*           DECIMAL DIGITS WITH LEADING ZEROES SUPPRESSED.             *
*           THE CONVERTED DIGITS ARE PLACED INTO A USER SPEC-          *
*           IFIED PLACE IN A BUFFER.  A CHECK IS PERFORMED TO          *
*           PREVENT THE DIGITS FROM BEING PLACED INTO OTHER            *
*           THAN THE DATA PORTION OF A BUFFER.                         *
*                                                                      *
**INPUT- WORD TO CONVERT, BUFFER TO PLACE DIGITS AND START AND         *
*           STOP INDICES IN THE BUFFER.                                *
*                                                                      *
**OUTPUT- WORD CONVERTED.                                              *
*                                                                      *
**EXTERNAL SUBROUTINES-                                                *
*              1) PBMAX            CALCULATE MAX OF 2 NUMBERS          *
*                                                                      *
***********************************************************************?
PROCEDURE PBTOAD(WORD : INTEGER; BFR : B0BUFPTR; START,STOP : INTEGER); 
VAR NOTFRST : BOOLEAN;
    I : INTEGER;
BEGIN 
  IF START+5 > STOP                         _CHECK INDEX RANGE         ?
  THEN START := PBMAX(J1FRSTCHAR,STOP-5);   _ADJUST INDEX RANGE        ?
  WITH BFR' DO
  BEGIN 
    NOTFRST := FALSE;                       _ZERO SUPPRESS FLAG        ?
    FOR I := START+4 DOWNTO START DO
    IF NOTFRST & (0 = WORD) 
    THEN BFDATAC[I] :=# #                   _SUPPRESS A ZERO           ?
    ELSE
    BEGIN 
      BFDATAC[I] := JMCNVTO[WORD MOD 10];   _CONVERT A DIGIT           ?
      WORD := WORD DIV 10;
      NOTFRST := TRUE;                      _TURN ON ZERO SUPPRESS     ?
    END;
  END; _WITH? 
END; _PBTOAD? 
