ASMB NAM SIZE,7 92069-16210 REV.1912 031579 * * ****************************************************************** * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1978. ALL RIGHTS RESERVED * NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, REPRODUCED, OR * TRANSLATED TO ANOTHER PROGRAM LANGUAGE WIOTH OUT THE PRIOR * WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. ******************************************************************* * * * SOURCE: 92069-18210 * RELOC: 92069-16210 * * *****************************************************************: * * * * * ENT SIZE EXT .ENTR * * * * * NREC NOP RECLN NOP IERR NOP SIZE NOP JSB .ENTR DEF NREC * LDA NREC,I DO LONG HAND DIVISION CREATING A 3 WORD RESULT MPY RECLN,I MULTIPLY THE HIGH ORDER WORD DST TEMP TEMP+1 = UPPER, TEMP = MIDDLE1 * ISZ NREC ADVANCE TO SECOND HALF OF NREC * LDA NREC,I MULTIPLY LOWER HALF OF NREC MPY RECLN,I B = MIDDLE2, A = LOWER * SSB IF BIT15 OF NREC(2) IS SET THEN TURN THE RESULT ADB RECLN,I BACK INTO A UNSIGNED INTEGER. * CLE ADD THE MIDDLE TWO VALUES PROPAGATING THE OVERFLOW ADB TEMP TO THE THIRD OR UPPER WORD. STB TEMP * SEZ PROPAGATE THE OVERFLOW ISZ TEMP+1 * * * THE OVERFLOW IS DONE, LEAVING THE THREE WORD RESULT * IN THE FOLLOWING MEMORY LOCATIONS: * TEMP+1, B, A * AND ALSO IN: * TEMP+1, TEMP, A * * * LSR 7 DIVID BY 128 STA RES SAVE THE LOWER WORD DLD TEMP PICK UP THE HIGH AND MIDDLE WORD LSR 7 * ASL 16 CHECK FOR OVERFLOW RESULT AFTER DIVID CLA SET THE ERROR INDICATOR SOC CCA STA IERR,I * LDA B LDB RES * JMP SIZE,I RES NOP TEMP BSS 2 A EQU 0 B EQU 1 END