
ASMB,R,B,L
      NAM FFP.A
      END


ASMB,R,B,L
      HED FAST FORTRAN PROCESSOR LIBRARY   10DEC73  JSO
      NAM DBLE,6
      ENT DBLE
      EXT .FFP.
*
DBLE  NOP
      JSB .FFP.    GO TO STUFFER
      RAM DBL
DBL   EQU 201B
      END


ASMB,R,B,L
      NAM SNGL,6
      ENT SNGL
      EXT .FFP.
SNGL  NOP
      JSB .FFP.    GO TO STUFFER
      RAM SING
SING  EQU 202B
      END


ASMB,R,B,L
      NAM XMPY,6
      ENT .XMPY
      EXT .FFP.
.XMPY NOP
      JSB .FFP.    GO TO STUFFER
      RAM XMPY
XMPY  EQU 203B
      END


ASMB,R,B,L
      NAM XDIV,6
      ENT .XDIV 
      EXT .FFP. 
* 
.XDIV NOP 
      JSB .FFP.    GO TO STUFFER
      RAM XDIV
XDIV  EQU 204B
      END 


ASMB,R,B,L
      NAM .XFER,6 
      ENT .XFER,.DFER 
      EXT .FFP. 
      EXT $LIBR,$LIBX,.ZRLB 
* 
.XFER NOP 
      JSB $LIBR 
      NOP 
      JSB .ZRLB 
      DEF EXIT
      STA TA
      STB TB
      RAM DFER
TB    BSS 1 
TA    BSS 1 
EXIT  JSB $LIBX 
      DEF .XFER 
      JMP .XFER,I  RETURN TO USER PROGRAM 
* 
.DFER NOP 
      JSB .FFP.    GO TO STUFFER
      RAM DFER
DFER  EQU 205B
      END


ASMB,R,B,L
      NAM XADSB,6
      ENT .XADD,.XSUB
      EXT .FFP.
*
.XADD NOP
      JSB .FFP.    GO TO STUFFER
      RAM XADD
XADD  EQU 213B
*
.XSUB NOP
      JSB .FFP.    GO TO STUFFER
      RAM XSUB
XSUB  EQU 214B
      END


ASMB,R,B,L
      NAM .GOTO,6
      ENT .GOTO
      EXT .FFP.
.GOTO NOP
      JSB .FFP.
      RAM GOTO
GOTO  EQU 221B
      END


ASMB,R,B,L
      NAM ..MAP,6
      ENT ..MAP
      EXT .FFP.
*
..MAP NOP
      JSB .FFP.    GO TO STUFFER
      RAM .MAP
.MAP  EQU 222B
      END


ASMB,R,B,L
      NAM .ENTR,6
      ENT .ENTR,.ENTP
      EXT .FFP.
*
.ENTR NOP
      JSB .FFP.    GO TO STUFFER
      RAM ENTR
ENTR  EQU 223B
*
.ENTP NOP
      JSB .FFP.    GO TO STUFFER
      RAM ENTP
ENTP  EQU 224B
      END


ASMB,R,B,L
      NAM .SETP,6
      ENT .SETP
      EXT .FFP.
.SETP NOP
      JSB .FFP.
      RAM SETP
SETP  EQU 227B
      END


ASMB,R,B,L,C
      NAM .FFP.,6
      ENT .FFP.
*
      EXT $LIBR,$LIBX,.ZRLB
*
*     .FFP. IS A GENERAL PURPOSE ROUTINE USED TO REPLACE
*        A JSB TO A SUBROUTINE WITH THE PROPER MACRO-CODE
*        AND TO TRANSFER CONTROL TO THE MACRO-CODE.
*
*        CALLING SEQUENCE:
*             MAIN PROGRAM:
*                  START JSB SUBR    CALL TO EXTERNAL SUBROUTINE
*
*             SUBROUTINE CALLED:
*                  SUBR  NOP     ENTRY POINT
*                        JSB .FFP.   CALL TO STUFFER
*                        RAM CODE     OPCODE TO REPLACE JSB
*
*        RETURN :
*             REGISTERS UNCHANGED
*             .FFP. RETURNS TO LOCATION START
*
.FFP. NOP          ROUTINE TO REPLACE JSB WITH MACRO
      JSB $LIBR    PRIVILEDGED CALL FOR RTE
      NOP
      JSB .ZRLB    REMOVE $LIBR/X CALLS IN DOS
      DEF EXIT
*
      STA ASAVE    SAVE A REGISTER
      LDA .FFP.    COMPUTE ADDRESS OF
      ADA DM2      EXTERNAL ENTRY POINT
      LDA A,I      COMPUTE ADDRESS OF
      ADA DM1      JSB TO BE REPLACED
      STA TEMP     SAVE ADDRESS
      LDA .FFP.,I  LOAD RAM OPCODE
      STA TEMP,I   REPLACE JSB WITH IT
      LDA ASAVE    RESTORE A REGISTER
EXIT  JSB $LIBX    EXIT CALL FOR RTE
      DEF TEMP
      JMP TEMP,I   EXIT FOR DOS
*
ASAVE BSS 1        TEMPORARY FOR A REGISTER
TEMP  BSS 1
DM1   DEC -1
DM2   DEC -2
A     EQU 0
*
      END
