Google
 

Trailing-Edge - PDP-10 Archives - BB-P363B-SM_1985 - mcb/blis16/b16ftn.lst
There are no other files named b16ftn.lst in the archive.
B16FTN BLISS-16 FORTRAN LINKAGE SUPPORT	DNMAC X24.07-563  25-JAN-83  17:02  PAGE 1
B16FTN.MAC    25-JAN-83 17:02

     1					 	.TITLE B16FTN BLISS-16 FORTRAN LINKAGE SUPPORT
     2						.IDENT /2.3/
     3					;
     4					; COPYRIGHT (C) 1979, 1980, 1981, 1982
     5					; DIGITAL EQUIPMENT CORPORATION,  MAYNARD, MASSACHUSETTS  01754
     6					;
     7					; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ON  A
     8					; SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH THE INCLU-
     9					; SION OF THE ABOVE COPYRIGHT NOTICE.  THIS  SOFTWARE,  OR  ANY
    10					; OTHER  COPIES  THEREOF, MAY NOT BE PROVIDED OR OTHERWISE MADE
    11					; AVAILABLE TO ANY TOHER PERSON EXCEPT FOR USE ON  SUCH  SYSTEM
    12					; AND  TO  ONE WHO AGREES TO THESE LICENSE TERMS.  TITLE TO AND
    13					; OWNERSHIP OF THE SOFTWARE SHALL AT ALL TIMES REMAIN IN DEC.
    14					;
    15					; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT
    16					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
    17					; EQUIPMENT CORPORATION.
    18					;
    19					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR  RELIABILITY  OF
    20					; ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
    21					;
    22					;++
    23					; FACILITY:  
    24					;	BLISS-16 OBJECT TIME SYSTEM (OTS)
    25					;
    26					; ABSTRACT:
    27					;	THIS IS A BLISS-16 SUPPORTING ROUTINE FOR FORTRAN INTERFACE
    28					;
    29					; ENVIRONMENT:
    30					;	PDP-11 OR COMPATIBILITY MODE OF THE VAX, EIS AND NOEIS
    31					;
    32					; AUTHOR: BOSE S. GHANTA CREATION DATE:  22-FEB-79
    33					;
    34					; MODIFIED BY:
    35					;
    36					; 1.	14-FEB-80	DGF	NOW CONFORMS TO SOFTWARE STANDARDS.
    37					;
    38					; 2.	14-MAR-80	DL	CORRECT DISCUSSION TO REFLECT REALITY,
    39					;				ALSO, CALL $SAVE5 NOT $SAV5.
    40					;
    41					; 3.	5-DEC-80	DGF	FIX PSECT ATTRIBUTES
    42					;--
    43					; DISCUSSION:
    44					;
    45					; WHEN ROUTINE CROUT CALLS FORTRAN LINKAGE ROUTINE FROUT WITH ARGUMENTS
    46					; ARG1,ARG2,...ARGN THE ARGUMENTS ARE PUSHED ONTO THE STACK FROM RIGHT
    47					; TO LEFT, THEN THE NUMBER OF ARGUMENTS IS PUSHED (LOW BYTE HAS THE COUNT
    48					; AND THE HIGH BYTE IS UNDEFINED).  THEN THE ADDRESS OF THE ROUTINE TO BE
    49					; CALLED IS PUSHED.  FINALLY, THIS OTS ROUTINE IS CALLED WHICH SAVES ALL
    50					; OF THE REGISTERS, ESTABLISHES AN ARGUMENT POINTER IN R5, AND JUMPS TO
    51					; THE FORTRAN ROUTINE FROUT.  SEE THE NOTES BELOW DESCRIBING STACK HANDLING
    52					; AND THE RETURN SEQUENCE.
    53					;
    54					;
    55					; THE STACK AT ENTRY TO $CALL:		THE STACK AFTER THE CALL TO $SAVE5
    56					;	------------		-------------
B16FTN BLISS-16 FORTRAN LINKAGE SUPPORT	DNMAC X24.07-563  25-JAN-83  17:02  PAGE 1-1
B16FTN.MAC    25-JAN-83 17:02

    57					;	!   ARG N  !		! ARG N     !
    58					;	------------		-------------
    59					;	!  ARG N-1 !		! ARG N-1   !   
    60					;	------------		-------------
    61					;	     .			      .
    62					;	     .			      .
    63					;	------------		-------------
    64					;	!   ARG 1  !		! ARG 1     !
    65					;	------------		-------------
    66					;	! ?  ! NUM !	20(SP):	! ?  ! NUM  !<== NUMBER OF ARGS (LOW BYTE)
    67					;	------------		-------------
    68					;	! #FROUT   !	16(SP):	!   #FROUT  !<== FORTRAN ROUTINE'S ADDRESS
    69					;	------------		-------------
    70					;				! CROUT+MM  !<== RETURN POINT IN CALLER
    71					;				-------------
    72					;				!   R1	    !
    73					;				-------------
    74					;				!   R2      !
    75					;				-------------
    76					;				!   R3      !
    77					;				-------------
    78					;				!   R4      !
    79					;				-------------
    80					;				!   R5      !
    81					;				-------------
    82					;			  (SP):	! $SAVE5+NN ! <== CO-RETURN PC TO $SAVE5
    83					;				-------------   
    84					;
    85					;
    86					;
    87					; NOTE THAT SINCE $SAVE5 IS A CO-ROUTINE (SEE B16SAV.MAC) THE CALLED
    88					; FORTRAN ROUTINE (FROUT) RETURNS TO $SAVE5+NN WHICH RESTORES THE REGISTERS
    89					; AND RETURNS TO THE CALLING ROUTINE (CROUT).
    90					;
B16FTN BLISS-16 FORTRAN LINKAGE SUPPORT	DNMAC X24.07-563  25-JAN-83  17:02  PAGE 2
B16FTN.MAC    25-JAN-83 17:02

    91		000000			R0=%0
    92		000001			R1=%1
    93		000002			R2=%2
    94		000003			R3=%3
    95		000004			R4=%4
    96		000005			R5=%5
    97		000006			SP=%6
    98		000007			PC=%7
    99
   100		000000'			    	.PSECT	BL$COD,RO,I,LCL,CON
   101					    
   102	000000'	004167	000000G		$CALL:	JSR	R1,$SAVE5	; FORTRAN ROUTINES MAY CLOBBER REGISTERS
   103	000004'	010605				MOV	SP,R5
   104	000006'	062705	000020			ADD	#20,R5		; ESTABLISH ARGUMENT POINTER
   105	000012'	000176	000016			JMP	@16(SP)		; GO TO THE FORTRAN ROUTINE
   106
   107						.GLOBL	$SAVE5
   108						.GLOBL	$CALL
   109		000001				.END
B16FTN BLISS-16 FORTRAN LINKAGE SUPPORT	DNMAC X24.07-563  25-JAN-83  17:02  PAGE 3
B16FTN.MAC    25-JAN-83 17:02		SYMBOL TABLE

$CALL   000000RG   002    $SAVE5= ****** G          .     = 000016R    002    

. ABS.  000000     000       CON   RW    ABS   LCL   I  
        000000     001       CON   RW    ABS   LCL   I  
BL$COD  000016     002       CON   RO    REL   LCL   I  


 ERRORS DETECTED:  0
 DEFAULT GLOBALS GENERATED:  0

 B16FTN,B16FTN=B16FTN
 RUN-TIME: .3 .2 0 SECONDS
 RUN-TIME RATIO: 7/1=7.8
 CORE USED:  4K  (7 PAGES)