XPO$TERMINATE - XPORT Program T 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 1 19-MAR-2002 10:12:28 [LASTOVICA.XPORT.VMSGEN]XTERM.BLI;1 0 1 MODULE XTERM ( IDENT = 'X00.06' %TITLE 'XPO$TERMINATE - XPORT Program Termination' 0 2 %BLISS32( ,ADDRESSING_MODE( EXTERNAL=LONG_RELATIVE ) ) 0 3 %BLISS36( ,ENTRY( XPO$TERMINATE ),OTS='' ) 0 4 ) = 0 5 BEGIN 1 6 1 7 ! 1 8 ! COPYRIGHT (c) 1980 BY 1 9 ! DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. 1 10 ! 1 11 ! THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED 1 12 ! ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE 1 13 ! INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER 1 14 ! COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY 1 15 ! OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY 1 16 ! TRANSFERRED. 1 17 ! 1 18 ! THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE 1 19 ! AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT 1 20 ! CORPORATION. 1 21 ! 1 22 ! DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS 1 23 ! SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL. 1 24 ! 1 25 1 26 !++ 1 27 ! 1 28 ! FACILITY: BLISS Library 1 29 ! 1 30 ! ABSTRACT: 1 31 ! 1 32 ! This module performs program termination. 1 33 ! 1 34 ! ENVIRONMENT: User mode - multiple host operating/file systems 1 35 ! 1 36 ! AUTHORS: Ward Clark, CREATION DATE: 10 January 1979 1 37 ! Linda Duffell 1 38 ! 1 39 !-- XTERM XPO$TERMINATE - XPORT Program T 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 2 X00.06 19-MAR-2002 10:12:28 [LASTOVICA.XPORT.VMSGEN]XTERM.BLI;1 1 41 ! 1 42 ! TABLE OF CONTENTS: 1 43 ! 1 44 1 45 FORWARD ROUTINE 1 46 XPO$TERMINATE : NOVALUE; ! Program termination routine 1 47 1 48 ! 1 49 ! INCLUDE FILES: 1 50 ! 1 51 1 52 LIBRARY 'XPORT' ; ! Public XPORT control block and macro definitions 1 54 LIBRARY 'XPOSYS' ; ! Internal XPORT macro definitions 1 56 1 57 $XPO_SYS_TEST( $TOPS10, $TOPS20, $VMS, $11M, $RSTS, $RT11 ) ; %PRINT: This module was compiled for VAX/VMS ; %PRINT: XPORT V1.3-51 XPOSYS V1.3-16 XPO$K_VERSION = 1 XPO$K_LEVEL = 3 1 58 1 59 %IF $TOPS10 %THEN U 1 60 REQUIRE 'XT10' ; ! TOPS-10 system interface macros U 1 61 %FI 1 62 1 63 %IF $TOPS20 %THEN U 1 64 REQUIRE 'XT20' ; ! TOPS-20 system interface macros U 1 65 %FI 1 66 1 67 %IF $VMS %THEN 1 68 REQUIRE 'XVMS' ; ! XPORT-specific VAX/VMS interface definitions 1 98 %FI 1 99 1 100 %IF $11M %THEN U 1 101 REQUIRE 'XRSX' ; ! XPORT-specific RSX-11M and FCS-11 interface definitions U 1 102 %FI 1 103 1 104 %IF $RSTS %THEN U 1 105 REQUIRE 'XRSTS' ; ! RSTS/E system interface definitions U 1 106 %FI 1 107 1 108 %IF $RT11 %THEN U 1 109 REQUIRE 'RT11' ; ! RT-11 system interface definitions U 1 110 %FI 1 111 1 112 ! 1 113 ! MACROS: 1 114 ! 1 115 1 116 ! 1 117 ! EQUATED SYMBOLS: 1 118 ! 1 119 1 120 ! 1 121 ! PSECT DECLARATIONS: 1 122 ! 1 123 1 124 $XPO_PSECTS ! Declare XPORT PSECT names and attributes 1 125 1 126 ! XTERM XPO$TERMINATE - XPORT Program T 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 3 X00.06 19-MAR-2002 10:12:28 [LASTOVICA.XPORT.VMSGEN]XTERM.BLI;1 1 127 ! OWN STORAGE: 1 128 ! 1 129 1 130 ! 1 131 ! EXTERNAL REFERENCES: 1 132 ! 1 133 1 134 %IF $VMS %THEN 1 135 EXTERNAL ROUTINE 1 136 SYS$EXIT : ADDRESSING_MODE(GENERAL); ! VAX/VMS image termination system service 1 137 %FI XTERM XPO$TERMINATE - XPORT Program T 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 4 X00.06 19-MAR-2002 10:12:28 [LASTOVICA.XPORT.VMSGEN]XTERM.BLI;1 1 139 GLOBAL ROUTINE XPO$TERMINATE( completion_code ) : NOVALUE = 1 140 1 141 !++ 1 142 ! 1 143 ! FUNCTIONAL DESCRIPTION: 1 144 ! 1 145 ! This routine sends a termination message and then terminates 1 146 ! program execution. 1 147 ! 1 148 ! FORMAL PARAMETERS: 1 149 ! 1 150 ! completion_code - termination completion code 1 151 ! 1 152 ! IMPLICIT INPUTS: 1 153 ! 1 154 ! None 1 155 ! 1 156 ! IMPLICIT OUTPUTS: 1 157 ! 1 158 ! None 1 159 ! 1 160 ! ROUTINE VALUE: 1 161 ! 1 162 ! None 1 163 ! 1 164 ! SIDE EFFECTS: 1 165 ! 1 166 ! None 1 167 ! 1 168 !-- 1 169 1 170 BEGIN 2 171 2 172 ! 2 173 ! Send the user a termination message. 2 174 ! 2 175 2 176 %IF NOT $VMS %THEN U 2 177 $XPO_PUT_MSG( CODE = .completion_code, ! Send a termination message. U 2 178 SEVERITY = ERROR, U 2 179 FAILURE = 0 ); U 2 180 %FI 2 181 2 182 ! 2 183 ! Terminate program execution. 2 184 ! 2 185 2 186 %IF $TOPS10 %THEN U 2 187 $T10_RESET; ! Clear all current I/O U 2 188 $T10_MONRT; ! and return to the TOPS-10 monitor. U 2 189 %FI 2 190 2 191 %IF $TOPS20 %THEN U 2 192 $T20_RESET; ! Clear all current I/O U 2 193 $T20_HALTF; ! and return to the TOPS-20 monitor. U 2 194 %FI 2 195 XTERM XPO$TERMINATE - XPORT Program T 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 5 X00.06 19-MAR-2002 10:12:28 [LASTOVICA.XPORT.VMSGEN]XTERM.BLI;1 2 196 %IF $VMS %THEN 2 197 SYS$EXIT( .completion_code ); ! Terminate the current image with a message. 2 198 %FI 2 199 2 200 %IF $11M %THEN U 2 201 EXIT$S( 0 ); ! Terminate the current task. If the directive fails, U 2 202 ! jump to location zero. U 2 203 %FI 2 204 2 205 %IF $RSTS %THEN U 2 206 $XRSTS_INI_FIRQB; ! Initialize the FIRQB. U 2 207 $XRSTS_INI_XRB; ! Initialize the XRB. U 2 208 $RTS; ! Terminate the user program. U 2 209 %FI 2 210 2 211 %IF $RT11 %THEN U 2 212 $EXIT( 1 ); ! Terminate the user program. U 2 213 %FI 2 214 2 215 END; 1 216 END 1 217 ELUDOM XTERM Machine Code Listing 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 6 X00.06 19-MAR-2002 10:12:28 [LASTOVICA.XPORT.VMSGEN]XTERM.BLI;1 .psect _XPO$CODE, CON, LCL, SHR, EXE, NOWRT, NOVEC .proc XPO$TERMINATE .align 32 .global XPO$TERMINATE XPO$TERMINATE: // 000139 { .mii 002C0040A880 0000 alloc r34 = rspfs, 1, 3, 1, 0 000188000840 0001 mov r33 = br0 0108001008C0 0002 mov r35 = r1 } { .mib 012000002640 0010 mov r25 = 1 // 000197 0000B2000900 0011 sxt4 r36 = COMPLETION_CODE // r36 = r32 004000000000 0012 nop.b 0 ;; } { .mfb 000008000000 0020 nop.m 0 000008000000 0021 nop.f 0 00A000001000 0022 br.call.sptk.many br0 = SYS$EXIT ;; } { .mii 010802300040 0030 mov r1 = r35 000154044000 0031 mov.i rspfs = r34 // 000215 000E00142000 0032 mov br0 = r33 ;; } { .mfb 000008000000 0040 nop.m 0 000008000000 0041 nop.f 0 000108001100 0042 br.ret.sptk.many br0 ;; } .endp XPO$TERMINATE Routine Size: 80 bytes, Routine Base: _XPO$CODE + 0000 .section .data .type SYS$EXIT, @function .global SYS$EXIT ; Library Statistics ; ; -------- Symbols -------- Pages ; File Total Loaded Percent Mapped ; ; DISK$NORMS_OWN:[LASTOVICA.XPORT.VMSGEN]XPORT.L32;14 ; 590 24 4 270 ; DISK$NORMS_OWN:[LASTOVICA.XPORT.VMSGEN]XPOSYS.L32;14 ; 91 9 9 27 ; SYS$COMMON:[SYSLIB]STARLET.L32;1 28352 1 0 2178 Source Listing 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 7 Source Listing 19-MAR-2002 10:12:28 [LASTOVICA.XPORT.VMSGEN]XTERM.BLI;1 COMMAND LINE: BLISSXTERM/VARIANT=3/LIST/DEBUG