.TITLE EXITWS .IDENT /V01/ .SBTTL DESCRIPTION ; ; ; COMPONENT: EXITWS ; ; DATE: 06-JUN-79 ; ; AUTHOR: GR JOHNSON ; BATTELLE NORTHWEST ; P O BOX 999 ; RICHLAND WA 99352 ; ; SOURCE: MACRO-11 ; ; CALLER: FORTRAN IV-PLUS ; ; CALLING SEQUENCE: ; ; CALL EXITWS([ISW]) ; ; ISW = INTEGER SPECIFYING EXIT STATUS; ; ; 00 TASK SUCCESSFUL (DEFAULT) ; ; 01 TASK SUCCESSFUL, WARNING DIAGNOSTICS OCCURED ; 02 TASK SUCCESSFUL, NON-FATAL ERRORS OCCURED ; 04 TASK FAILED, FATAL ERRORS OCCURED ; ; OTHER TASK FAILED, FATAL ERRORS OCCURED ; ; ; DESCRIPTION: ; ; "EXITWS" ESTABLISHES A LINK FROM USER PROGRAMS TO IAS CONDITIONAL ; PROGRAM EXECUTION COMMANDS BY PROVIDING TASK STATUS INFORMATION UPON ; EXIT. THE ROUTINE IS EQUIVALENT TO THE STANDARD "CALL EXIT" SUBROUTINE ; WITH THE EXCEPTION THAT TASK STATUS IS REPORTED TO THE OPERATING SYSTEM ; IMMEDIATELY BEFORE CONTROL IS RELINQUISHED. ; ; .SBTTL ENTRY POINT -- EXIT WITH STATUS ; ; ; .PSECT ; .MCALL EXST$S ; .MCALL OTSWA,$AOTS ; IN [11,40]F4P.MAC OTSWA ; DEFINE OTS OFFSETS ; EXITWS:: ; ; $AOTS ; ADDRESS OF IMPURE OTS INTO R3 TSTB (R5) ; ANY ARGUMENTS? BEQ EXIT ; NO, EXIT WITH SUCCESS STATUS ; 2$: CMP #ES.SUC,@2(R5) ; 'SUCCESS'? BEQ EXIT ; YES, EXIT WITH SUCCESS STATUS CMP #ES.WAR,@2(R5) ; 'WARNING'? BNE 4$ ; NO, TRY ERROR MOV #EXWAR,EXADDR(R3) ; YES, SET EXIT ADDRESS BR EXIT ; AND EXIT WITH WARNING 4$: CMP #ES.ERR,@2(R5) ; 'ERROR'? BNE 6$ ; NO, MUST BE 'SEVERE' MOV #EXERR,EXADDR(R3) ; YES, SET EXIT ADDRESS BR EXIT ; AND EXIT WITH ERROR 6$: MOV #EXSEV,EXADDR(R3) ; MUST BE SEVERE, SET EXIT ADDRESS ; AND EXIT WITH SEVERE ERROR ; EXIT: JMP $EXIT ; JUMP TO FORTRAN EXIT ROUTINE ; ; EXSUC: EXST$S #EX$SUC ; EXIT WITH SUCCESS STATUS EXWAR: EXST$S #EX$WAR ; EXIT WITH WARNING STATUS EXERR: EXST$S #EX$ERR ; EXIT WITH ERROR STATUS EXSEV: EXST$S #EX$SEV ; EXIT WITH SEVERE ERROR STATUS ; ES.SUC = 0 ; ISW = SUCCESS ES.WAR = 1 ; ISW = WARNING ES.ERR = 2 ; ISW = ERROR ES.SEV = 4 ; ISW = SEVERE ERROR ; .END ;