.TITLE SPOLER.MAC 84j03a 17-SEP-80/03-Oct-84. .ENABL LC ; AUTHOR: N. A. BOURGEOIS, JR. ; of ; NAB Software Services, Inc. ; PO Box 20009 ; Albuquerque, NM 87154 ; and ; SANDIA NATIONAL LABORATORIES ; PO BOX 5800 ; ALBUQUERQUE, NM 87185 .SBTTL EDIT RECORD 17-SEP-80/03-Oct-84. ;17-SEP-80 ORIGINAL CREATION. ;18-SEP-80 ADDED GLOBAL TO LOCATE DATA IN LINK MAP. ;10-OCT-80 CHANGED TITLE, REVISED AND ADDED ISPBLK. ;25-MAR-81 CORRECTED ADDRESSING ERROR. CORRECTED EMT # ERRORS. ;08-APR-81 ADDED THE "MEMSET" AND ITSLIC" ROUTINES. RENAMED ; "TSXTST" TO "ITSLIN". ADDED FUNCTION CALLING CODE. ; MADE CODE REENTRANT. ;14-APR-81 ADDED STATEMENT ABOUT REENTRANT CODE TO DESCRIPTION. ;26-FEB-82 ADDED IDENTIFICATION CODE. ;06-Jan-84 Maintenance assumed by NAB Software Services, Inc. ;28-Jan-84 Added the IFLINF, ISTFTM, GTUNAM, STUNAM, ISTPRV, ; ISPCTL, DOIT2, DOIT3, and DOIT4 routines. ;31-Jul-84 Corrected stack error in DOIT2, DOIT3, and DOIT4 ; routines. ;03-Oct-84 Converted from TSXLIB.MAC. Minor revisions for V5.1. ; THIS SOFTWARE WAS ORIGINALLY ISSUED BY SANDIA NATIONAL ; LABORATORIES, OPERATED FOR THE UNITED STATES DEPARTMENT ; OF ENERGY BY SANDIA CORPORATION. ; ; NOTICE ; ; THIS SOFTWARE WAS ORIGINALLY SPONSORED BY THE UNITED ; STATES GOVERNMENT. NEITHER THE UNITED STATES GOVERNMENT ; NOR THE UNITED STATES DEPARTMENT OF ENERGY, NOR ANY OF ; THEIR EMPLOYEES, NOR ANY OF THEIR CONTRACTORS, ; SUBCONTRACTORS, OR THEIR EMPLOYEES MAKES ANY WARRANTY, ; EXPRESS OR IMPLIED, OR ASSUMES ANY LEGAL LIABILITY OR ; RESPONSIBILITY FOR THE ACCURACY, COMPLETENESS OR ; USEFULNESS OF ANY INFORMATION, APPARATUS, PRODUCT OR ; PROCESS DISCLOSED, OR REPRESENTS THAT ITS USE WOULD NOT ; INFRINGE PRIVATELY OWNED RIGHTS. ; ; THIS WORK WAS ORIGINALLY FUNDED BY: ; ; HEADQUARTERS, ESD / OCB / STOP 36 ; HANSCOM AIR FORCE BASE, MA 01731 .PAGE .SBTTL DESCRIPTION 17-SEP-80/28-Sep-84. ; This module contains the spooler support routines. The module is ; a part of the library of FORTRAN callable TSX-Plus EMT support ; routines. The code is reentrant. ; ;THE "ISPBLK" ROUTINE RETURNS THE INTEGER VALUE OF THE NUMBER OF FREE ;BLOCKS IN THE SPOOL FILE. ; ;CALLING SEQUENCES: ; ; CALL ISPBLK ( IRET ) ; OR ; IRET = ISPBLK () ; ; where: IRET is the number of free blocks in the spool ; file. ; ; Control the release time of a spooled file. ; ; Calling sequence: ; ; CALL ISPCTL (ICHAN,IFLAG) ; ; where: ICHAN is the number of the channel that is open to ; the file. ; ; IFLAG is an integer value as follows: ; ; 0 Release the file immediately. ; ; 1 Hold the release until the file is ; closed. .PAGE .SBTTL DIRECTIVES 17-SEP-80/03-Oct-84. .IDENT \84j03a\ ;TELL LINKER OUR VERSION .PSECT TSXLIB,I .GLOBL TSLBID .WORD TSLBID .DSABL GBL .SBTTL ASSIGNMENTS 28-Jan-84/. ERRBYT = 52 ;EMT error code locationn NOERR = -1 ;code for no error condition .PAGE .SBTTL ENTRY POINTS 17-SEP-80/28-Jan-84. ;DETERMINE THE NUMBER OF FREE BLOCKS IN THE SPOOL FILE. ; ISPBLK::MOV #107 ,R1 ;EMT CODE JSR PC ,DOIT ;GET THE NUMBER OF BLOCKS RTS PC ; Control the release time of a spooled file. ; ISPCTL::MOV #151 ,R1 ;EMT code CALL DOIT4 ;control the release RETURN .PAGE .SBTTL SUPPORTING SUBROUTINES 17-SEP-80/28-Sep-84. DOIT: CLR -(SP) ;LO BYTE = 0 MOV SP ,R0 ;SET UP THE POINTER MOVB R1 ,1(R0) ;HI BYTE = EMT CODE EMT 375 ;LET TSX DO IT BCC 1$ ; IF NO ERROR CLR R0 ; RETURN ZERO ON ERROR 1$: TSTB (R5) ;FUNCTION CALL? BEQ 2$ ; YES MOV R0 ,@2(R5) ; NO, SUBROUTINE CALL 2$: TST (SP)+ ;FIX THE STACK POINTER RTS PC DOIT4: MOV @4(R5) ,-(SP) ;pass argument 2 value MOV @2(R5) ,-(SP) ;pass argument 1 value CLR -(SP) ;lo byte = EMT id MOV SP ,R0 ;set up the EMT pointer MOVB R1 ,1(R0) ;hi byte = EMT code EMT 375 ;let TSX do it ADD #6 ,SP ;fix the stack pointer RETURN .SBTTL END 17-SEP-80/. .END