ASMB,Q,C
* 
*  ***************************************************************
*  * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1979.  ALL RIGHTS     *
*  * RESERVED.  NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED,      *
*  * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT*
*  * THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY.       *
*  ***************************************************************
* 
*     SOURCE PART NUMBER :92067-18404 
* 
*     RELOCATABLE PART NUMBER : 92067-16361 
* 
*     PROGRAMER(S)   : J.M.N. 
* 
* 
* 
* 
*     ROUTINE TO DIVIDE DOUBLE WORD INTEGER 
*     AND RETURN QUOTIENT AND REMAINDER 
* 
*     CALLING SEQUENCE: 
*      CALL ACDDV (IDBLE,IDIVR,IQUOT,IREMN) 
*        WHERE: IDBLE  IS DOUBLE WORD INTEGER 
*               IDIVR  IS DIVISOR 
*               IQUOT  IS QUOTIENT
*               IREMN  IS REMAINDER 
* 
      NAM ACDDV,7 92067-16361 REV.1940 790306 
      ENT ACDDV 
* 
      EXT .ENTR 
* 
IDBL  BSS 1 
IDIV  BSS 1 
IQUO  BSS 1 
IREM  BSS 1 
ACDDV NOP 
      JSB .ENTR 
      DEF IDBL
* 
      DLD IDBL,I    GET DIVIDEND
      SWP           SWAP A & B BECAUSE NOBODY AGREES
      SSB           IF NEGATIVE IT'S BAD
      JMP BAD 
* 
      DIV IDIV,I    DIVIDE
      SOS           IF OVERFLOW SET MAX VALUE 
      JMP OK
* 
BAD   LDA O7777     SET QUOTIENT TO MAX 
      CCB 
      ADB IDIV,I    SET REMAINDER TO MAX MOD VALUE
OK    STA IQUO,I
      STB IREM,I
      JMP ACDDV,I     AND RETURN
* 
O7777 OCT 77777 
      END 
                                                                                                                                                                                                                                                      