.MCALL .MODULE .MODULE CMPSUP,VERSION=02,COMMENT=,AUDIT=NO ; Copyright (c) 1998 by Mentec, Inc., Nashua, NH. ; All rights reserved ; ; This software is furnished under a license for use only on a ; single computer system and may be copied only 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 except for use on such ; system and to one who agrees to these license terms. Title ; to and ownership of the software shall at all times remain ; in Mentec, Inc. ; ; The information in this document is subject to change without ; notice and should not be construed as a commitment by Digital ; Equipment Corporation, or Mentec, Inc. ; ; Digital and Mentec assume no responsibility for the use or ; reliability of its software on equipment which is not supplied ; by Digital or Mentec, and listed in the Software Product ; Description. ;+ ; Hook routines to make the syslib assmbly completion routines callable ; from Fortran. ;- .MCALL .GVAL .PRINT .TWAIT $CNFG1 =: 300 ; Configuration word 1 FBMON$ =: 1 .SBTTL Completion Data .PSECT LIB00,D,GBL,OVR CMDONE::.WORD 0 ; Completion done flag CMPID:: .WORD 0 ; Completion ID AREA: .BLKW 5 ; EMT arg block for .TWAIT DELAY: .WORD 0,50 ; delay time ticks IDPRM3: .WORD 1 .BLKW .PSECT $IDATA,D MSG1: .ASCIZ <12>/... entered CRTN1 - completion routine 1/ MSG2: .ASCIZ <12>/... entered CRTN2 - completion routine 2/ MSG3: .ASCII / Entered Assembly Language / .ASCIZ /Completion Routine/ .EVEN .SBTTL Completion Routines .PSECT $CODE1,I Crtn1:: MOV R0,CMPID ; Save the completion ID MOV #1,CMDONE ; Declare completion done .PRINT #MSG1 ; Announce completion RETURN Crtn2:: MOV R0,CMPID ; Save the completion ID MOV #1,CMDONE ; Declare completion done .PRINT #MSG2 ; Announce completion RETURN Acmpl:: MOV R5,-(SP) MOV R0, IDPRM3+2 ; Save completion ID in param block ; MOV #IDPRM3,R5 ; MOV #CMPLRE,R0 ; CALL Call$F MOV R0,CMPID ; Save the completion ID MOV #1,CMDONE ; Declare completion done .PRINT #MSG3 ; Announce completion .GVAL #AREA,#$CNFG1 ; is this SJ? BIT #FBMON$,R0 BEQ 10$ ; branch around RESUME if so .TWAIT #AREA,#DELAY ; Wait for about 1 second, CALL RESUME ; Restart mainline code 10$: MOV (SP)+,R5 RETURN .END