ASMB,Q,L
      NAM XDCAS,7 92067-1X543 REV. 2001 791101
***************************************************************** 
*                                                               * 
*  (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1979. ALL RIGHTS       * 
*  RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED,        * 
*  REPRODUCED OR TRANSLATED TO ANOTHER PROGRAMMING LANGUAGE     * 
*  WITHOUT THE PRIOR WRITTEN CONSENT OF THE HEWLETT-PACKARD     * 
*  COMPANY.                                                     * 
*                                                               * 
***************************************************************** 
* 
*    NAME:  XDCAS 
*  SOURCE:  92067-18543 
*   RELOC:  PART OF 92067-12003 
*    PGMR:  J.S.W 
* 
      ENT XDCAS     ROUTINE TO CONVERT DECIMAL INTEGERS TO ASCII
XDCAS NOP 
      CLA 
      STA IFLAG 
      STA CWORD 
      LDA XDCAS,I 
      STA RETRN 
      ISZ XDCAS 
      LDA XDCAS,I 
      STA INAM      BUFFER ADDRESS
      ISZ XDCAS 
      LDA XDCAS,I 
      LDA A,I 
      ADA N1
      STA NWORD     LENGTH OF BUFFER-1
      LDA INAM      BUFFER TO BE BLANKED
LOOP0 LDB SPACE 
      STB A,I       BLANK OUT A WORD IN BUFFER
      LDB CWORD     USE CWORD AS COUNTER TO POINT IN TO BUFFER
      CPB NWORD     ALL WORDS IN BUFFER DONE? 
      JMP DCAS1     YES, GO ON
      INA 
      ISZ CWORD     INCREMENT COUNTER 
      JMP LOOP0 
DCAS1 ISZ XDCAS 
      LDA XDCAS,I 
      LDA A,I       LOAD INTEGER TO BE CONVERTED
LOOP  CLB 
      DIV D10       DIVIDE INTEGER BY BASE 10 
      STA QOTNT     QOTNT IS USED TO EXTRACT REMAINING DIGITS 
      ADB .60       B REG CONTAINS REMAINDER WHICH IS THE LATEST DIGIT
*                                   TO BE CONVERTED BY ADDING OCTAL 60
      STB BYTE      ASCII INTEGER SAVED 
      LDA IFLAG     CHECK TO SEE IF THIS IS A LOW ORDER BYTE
      SZA           LOW ORDER BYTE IF IFLAG=0, ELSE HIGH ORDER BYTE 
      JMP HIGH
      LDA BYTE
      STA CWORD     STORE BYTE IN LOWER HALF OF CWORD 
      LDA QOTNT     GET READY TO EXTRACT AND CONVERT NEXT DIGIT 
      ISZ IFLAG      SET FLAG TO INDICATE WORKING ON HIGH ORDER BYTE
      JMP LOOP      START CONVERSION AGAIN
HIGH  LDA BYTE      BIT 0 NOT SET IF HIGH ORDER BYTE
      ALF,ALF       STORE BYTE IN UPPER HALF OF CWORD 
      ADA CWORD 
      STA CWORD 
      LDA NWORD 
      ADA INAM      REG A POINTS TO BUFFER WHERE CWORD IS PLACED
      LDB CWORD 
      STB A,I 
      LDA NWORD 
      SZA,RSS       HAS THE BUFFER BEEN FILLED? 
      JMP RETRN,I   YES,RETURN TO CALLING ROUTINE 
      ADA N1        NO,DECREASE NWORD TO POINT TO NEXT WORD IN BUFFER 
      STA NWORD 
      CLA 
      STA IFLAG     CLEAR FLAG TO INDICATE WORKING ON LOW ORDER BYTE
      LDA QOTNT     GET READY TO EXTRACT NEXT DIGIT 
      SZA           IF QOTNT=0 THEN NO MORE DIGITS LEFT TO CONVERT
      JMP LOOP
      JMP RETRN,I 
* 
A     EQU 0 
B     EQU 1 
RETRN BSS 1 
NWORD BSS 1 
CWORD BSS 1 
IFLAG BSS 1 
QOTNT BSS 1 
BYTE  BSS 1 
N1    DEC -1
D10   DEC 10
.60   OCT 60
INAM  BSS 1 
SPACE ASC 1,
      END 
                                                                                                                                                                            