.LIST TTM .TITLE SENTS ; ; FORTRAN CALLABLE SUBROUTINE TO SEND A MESSAGE TO A TIME-SHARED TASK ; ; MARK F. LEWIS ; 18-OCT-77 ; ; FORTRAN CALLING SEQUENCE -- ; CALL SENTS(BUFF, IDEST [,ISTAT]) ; BUFF - BUFFER CONTAINING MESSAGE. BUFFER MUST ; START ON A WORD BOUNDARY AND FIRST WORD MUST BE ; LENGTH OF BUFFER IN BYTES. ; IDEST - WORD CONTAINING DESTINATION: ; = -1 DESTINATION IS OWNER TASK ; = 0 DESTINATION IS CHAIN TASK ; = OTHER: IDEST CONTAINS THE TDB ADDRESS OF DESTINATION TASK ; ISTAT - OPTIONAL 2-WORD ARRAY TO RECEIVE STATUS INFORMATION .MCALL TCSMC$, RETURN TCSMC$ SDB: SDBDF$ ,,,ESB ESB: ESBDF$ .EVEN SENTS:: MOVB (R5)+,R2 ;NUMBER OF ARGUMENTS BLE EXIT ;INVALID ARGUMENT LIST INC R5 MOV #SDB,R4 MOV (R5)+,T.SNDA(R4) ;SET UP BUFFER ADDRESS BLE EXIT ;INVALID ADDRESS CMP #2,R2 BGT EXIT ;MUST HAVE AT LEAST TWO ARGUMENTS MOV (R5)+,R1 ;R1=ADDRESS OF IDEST MOV (R1),T.SNDT(R4) ;SET DESTINATION ADDRESS MOV (R5)+,R1 ;ADDRESS OF ISTAT SEND$T #SDB BCS ERR EXIT: RETURN ERR: ;IF AN ERROR OCCURS TST R1 ;VALID ADDRESS? BLE EXIT MOV ERR,(R1)+ ;RETURN ERROR CODE MOV ERR+2,(R1) ; AND SUBCODE BR EXIT .END