ASMB,R,L,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. * * **************************************************************** * * NAME: PART OF MATH LIBRARY * SOURCE: 24998-18XXX SEE NAM FOR LAST THREE DIGITS * RELOC: PART OF 24998-12001 * PGMR: BG & JTS * HED ".RCNG" FTN2 TO FTN4 LIBRARY 2DN LEVEL INTERFACE NAM .RCNG,7 24998-1X127 REV.2001 780921 * ENT .RCNG B EQU 1 * * THIS ROUTINE WILL PATCH CALLS TO VARIOUS FTN4 LIBRARY ROUTINES USING * THE ".ENTR" CONVENTION TO THE ".ENTC" CONVENTION. ENTRY POINTS * CURRENTLY IMPLEMENTED ARE XADD,XSUB,XMPY,XDIV,CADD,CSUB,CMPY,CDIV. * THESE ARE THE NON-INTRINSIC ENTRY POINTS TO THE SAME ROUTINE WITH * THE SAME NAME WITH A "." IN FRONT. * CAUTION!!!! * THIS ROUTINE WILL CHANGE THE IN-LINE CODE OF CALLS TO THESE * ROUTINES, THEREFORE THE "JSB'S" TO THESE ROUTINES SHOULD NOT BE * USED AS DATA. THIS IS ONLY POSSIBLE IN ASSEMBLY LANGUAGE, * THEREFORE THE ACTUAL INTRINSIC ROUTINES SHOULD BE USED * * BEFORE CALL: AFTER CALL: HOW THIS ROUTINE IS USED * * JSB XADD NOP XADD NOP * DEF *+4 JSB .XADD JSB .RCNG * DEF Z DEF Z DEF @XADD+0 * DEF X DEF X ORB * DEF Y DEF Y @XADD DEF .XADD+0 * ORR SPC 2 .RCNG NOP ENTRY SAVE ALL REGISTERSERS STB SAVB LDB .RCNG GET P+1 OF CALLER CMB,INB SUBTRACT 2 TO GET HIS INB CALLERS ADDRESS CMB P+1 LDB B,I ADDRESS OF IE. XADD CMB,INB SUBTRACT ONE TO GET P+0 CMB OF HIS CALLER STB RETRN SAVE JSB XADD ADDRESS CLB NOW STORE BACK A "NOP" STB RETRN,I IN PLACE OF JSB XADD ISZ RETRN NOW STORE A JSB .XADD LDB .RCNG,I IN PLACE OF THE "DEF *+N+1" LDB B,I PTR TO ROUTINE OR ITS OPCODE. SSB,RSS PTR ? LDB .RCNG,I YES, CONSTRUCT JSB THRU BASE PAGE. SSB,RSS ADB JSBI0 STB RETRN,I LDB SAVB RESTORE ALL REGISTERS JMP RETRN,I NOW GO EXECUTE SPC 1 RETRN NOP SAVB NOP JSBI0 JSB 0,I END