TITLE DIV11 FOR RPGLIB %1 SUBTTL SINGLE-PRECISION DIVIDE AL BLACKINGTON/CAM/RBC ;USED TO BE ;COPYRIGHT 1974, DIGITAL EQUIPMENT CORP., MAYNARD, MA. ;BUT CONVERTED TO RPGII VERSION 24-NOV-75 HISEG ENTRY DIV.11 ;CALLING SEQUENCE: ; MOVE 16,[Z AC,OPERAND] ; PUSHJ 17,DIV.11 ;ENTER WITH DIVIDEND IN ACCUMULATOR AC. ;EXIT WITH QUOTIENT IN ACCUMULATOR AC, REMAINDER IN AC+2 DIV.11: SKIPN RS,0(PA) ;IS DIVISOR ZERO? JRST OVRFLO ;YES--TROUBLE TLZ RS,1B18 ;NO--IS IT 2**-35? JUMPE RS,OVRFLO ;YES--TROUBLE (IF JUMP) LDB RS,[POINT 4,PA,12]; GET OPERAND AC MOVE TA,0(RS) ;GET OPERAND JOV .+1 ;CLEAR OVERFLOW FLAG IDIV TA,0(PA) ;DO THE DIVIDE MOVEM TA,0(RS) ;STASH QUOTIENT MOVEM TA+1,2(RS) ;STASH REMAINDER JOV OVRFLO ;SET ANY OVERFLOW INDICATION POPJ PP, OVRFLO: OUTSTR [ASCIZ /Arithmetic overflow during DIVide /] POPJ PP, TA=13 ;TEMPORARY (2 AC'S) RS=15 ;RESULT AC ADDRESS PA=16 ;ADDRESS OF DIVISOR PP=17 ;PUSH-DOWN POINTER END