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