MODULE XFUNCT ( IDENT = 'V1.2-01' %TITLE 'TOPS-10/20 OTS replacement' %BLISS36( ,ENTRY( %NAME( 'FUNCT.' ) ),OTS='' ) ) = BEGIN ! COPYRIGHT (c) 1983 BY ! DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. ! ! THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED ! ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE ! INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER ! COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY ! OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY ! TRANSFERRED. ! ! THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE ! AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT ! CORPORATION. ! ! DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS ! SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL. !++ ! FACILITY: ! BLISS Library ! ! ABSTRACT: ! This module contains an XPORT routine to take the place of the FORTRAN OTS ! routine "FUNCT." on TOPS-10/20. It is used whenever the user does not link ! with the FORTRAN OTS. ! ! ENVIRONMENT: ! User mode - TOPS-10/20 only. ! ! AUTHOR: ! Edward Freedman ! ! CREATION DATE: 1 October 1983 ! ! MODIFIED BY: !-- ! ! INCLUDE FILES: ! LIBRARY 'XPORT' ; ! Public XPORT control block and macro definitions LIBRARY 'XPOSYS' ; ! Internal XPORT macro definitions $XPO_SYS_TEST( $TOPS10, $TOPS20 ) ! ! MACROS: ! MACRO funct$ = %NAME ( 'FUNCT.' ) %; ! BLISS doesn't allow "." character in names. ! ! TABLE OF CONTENTS: ! FORWARD ROUTINE funct$ : NOVALUE FORTRAN_SUB; ! takes the place of FORTRAN OTS routine ! ! EQUATED SYMBOLS: ! %((literal-and-bind-decls-tbs))% ! ! PSECT DECLARATIONS: ! $XPO_PSECTS ! Declare XPORT PSECT names and attributes ! ! OWN STORAGE: ! %((own-decls-tbs))% ! ! EXTERNAL REFERENCES: ! %((external-decls-tbs))% %SBTTL 'FUNCT$ - Inform XPORT that no OTS is present' GLOBAL ROUTINE FUNCT$ ( function, error, status ) : NOVALUE FORTRAN_SUB = !++ ! FUNCTIONAL DESCRIPTION: ! ! FUNCT$ is linked with the user's BLISS program BY DEFAULT when no other ! langauge OTS is used. This is the usual situation. It's purpose is to ! inform other XPORT routines that the program is NOT linked with an OTS ! and no calls to an OTS should be made. When linking WITH an OTS, this ! module must be excluded. E.g. to link BLISS code with a FORTRAN main ! routine: ! ! @ link ! *my-fortran-prog ! FORTRAN main ! *my-bliss-prog ! BLISS code which uses XPORT ! *bli:xport/search/exclude:xfunct ! exclude the BLISS-only XFUNCT ! *bli:xport/search/exclude:xfunct ! LINK only does a one pass search ! /go ! ! FORMAL PARAMETERS: ! ! function - FUNCT. function code ! error - 3 letter mnemonic output by OTS ! status - return status ! ! IMPLICIT INPUTS: ! ! none ! ! IMPLICIT OUTPUTS: ! ! none ! ! COMPLETION CODES: ! ! status = 0 inform XPORT "NO OTS" ! status = -1 "FUNCTION NOT IMPLEMENTED" ! ! SIDE EFFECTS: ! ! none !-- BEGIN !+ ! XPORT should only call this routine with a function code of zero (ILL). The real FUNCT. considers zero an ! illegal function code and always returns a status of -1 (Function not implemented). We return a status of ! zero (Success) instead, thereby informing the calling XPORT routine that no OTS is present. The error ! mnemonic is thrown in for good measure, though it is currently not used by the calling routine. If some ! routine erroniously calls here with a legitimate function code (non-zero), we return -1, since we can't ! perform the desired function. ! ! This routine is currently used only by XMEM. !- IF ..function EQL 0 THEN .status = 0 ELSE .status = -1; .error = %ASCII'XPO'; END; END ! End of module ELUDOM