; 0001 0 ! ; 0002 0 %TITLE 'HELLO' ; 0003 0 MODULE hello (IDENT = 'V001-01', ! File: HELLO.BLI ; 0004 0 MAIN = say_hello ; 0005 0 ) = ; 0006 1 BEGIN ; 0007 1 ; 0008 1 !++ ; 0009 1 ! ; 0010 1 ! FACILITY: DECUS pre-symposium seminar 'BLISS for Macro users' examples ; 0011 1 ! ; 0012 1 ! ABSTRACT: This is a simple example program that will display the ; 0013 1 ! string "Hello BLISS user" on the user's terminal. ; 0014 1 ! ; 0015 1 ! ; 0016 1 ! ENVIRONMENT: VAX/VMS, user-mode ; 0017 1 ! ; 0018 1 ! AUTHOR: Brian K Catlin ; 0019 1 ! ; 0020 1 ! CREATED: 11-MAY-1988 ; 0021 1 ! ; 0022 1 ! MODIFICATION ; 0023 1 ! HISTORY: ; 0024 1 ! ; 0025 1 ! V001-1 BKC001 Brian K Catlin 11-MAY-1988 ; 0026 1 ! Original version ; 0027 1 ! ; 0028 1 !-- ; 0029 1 ; 0031 1 %SBTTL 'Declarations' ; 0032 1 ; 0033 1 !+ ; 0034 1 ! SWITCHES: ; 0035 1 !- ; 0036 1 ; 0037 1 SWITCHES ADDRESSING_MODE (EXTERNAL = GENERAL, NONEXTERNAL = WORD_RELATIVE); ; 0038 1 ; 0039 1 !+ ; 0040 1 ! LINKAGE/GLOBAL REGISTERS: ; 0041 1 !- ; 0042 1 ; 0043 1 ! None. ; 0044 1 ; 0045 1 !+ ; 0046 1 ! LINKAGES: ; 0047 1 !- ; 0048 1 ; 0049 1 ! None. ; 0050 1 ; 0051 1 !+ ; 0052 1 ! TABLE OF CONTENTS: ; 0053 1 !- ; 0054 1 ; 0055 1 FORWARD ROUTINE ; 0056 1 say_hello; ! Main entry point ; 0057 1 ; 0058 1 !+ ; 0059 1 ! INCLUDE FILES: ; 0060 1 !- ; 0061 1 ; 0062 1 LIBRARY 'SYS$LIBRARY:LIB'; ! VMS executive macros/symbols. ; 0063 1 ; 0064 1 !+ ; 0065 1 ! MACROS: ; 0066 1 !- ; 0067 1 ; 0068 1 ! None. ; 0069 1 ; 0070 1 !+ ; 0071 1 ! FIELDS: ; 0072 1 !- ; 0073 1 ; 0074 1 ! None. ; 0075 1 ; 0076 1 !+ ; 0077 1 ! STRUCTURES: ; 0078 1 !- ; 0079 1 ; 0080 1 ! None. ; 0081 1 ; 0082 1 !+ ; 0083 1 ! PROGRAM SECTION DECLARATIONS: ; 0084 1 !- ; 0085 1 ; 0086 1 ! None. ; 0087 1 ; 0088 1 !+ ; 0089 1 ! EQUATED SYMBOLS: ; 0090 1 !- ; 0091 1 ; 0092 1 ! None. ; 0093 1 ; 0094 1 !+ ; 0095 1 ! OWN (R/O) STORAGE: ; 0096 1 !- ; 0097 1 ; 0098 1 ! None. ; 0099 1 ; 0100 1 !+ ; 0101 1 ! OWN (R/W) STORAGE: ; 0102 1 !- ; 0103 1 ; 0104 1 ! None. ; 0105 1 ; 0106 1 !+ ; 0107 1 ! BUILTIN DECLARATIONS: ; 0108 1 !- ; 0109 1 ; 0110 1 ! None. ; 0111 1 ; 0112 1 !+ ; 0113 1 ! EXTERNAL ROUTINES: ; 0114 1 !- ; 0115 1 ; 0116 1 EXTERNAL ROUTINE ; 0117 1 lib$put_output; ! Write an ASCII string to the user's terminal ; 0118 1 ; 0119 1 !+ ; 0120 1 ! EXTERNAL REFERENCES: ; 0121 1 !- ; 0122 1 ; 0123 1 ! None. ; 0125 1 %SBTTL 'SAY_HELLO - Write hello string to the user terminal' ; 0126 1 ROUTINE say_hello = ; 0127 1 ; 0128 1 !++ ; 0129 1 ! ; 0130 1 ! FUNCTIONAL DESCRIPTION: ; 0131 1 ! ; 0132 1 ! This routine will write the hello string to the user's ; 0133 1 ! terminal, using the Run-time library routine LIB$PUT_OUTPUT ; 0134 1 ! ; 0135 1 ! ENVIRONMENT: ; 0136 1 ! ; 0137 1 ! All access modes, AST reentrant. ; 0138 1 ! ; 0139 1 ! CALLING SEQUENCE: ; 0140 1 ! ; 0141 1 ! say_hello () Called by VMS as the entry point of the program ; 0142 1 ! ; 0143 1 ! LINKAGE: ; 0144 1 ! ; 0145 1 ! CALL ; 0146 1 ! ; 0147 1 ! FORMAL PARAMETERS: ; 0148 1 ! ; 0149 1 ! None. ; 0150 1 ! ; 0151 1 ! IMPLICIT INPUTS: ; 0152 1 ! ; 0153 1 ! None. ; 0154 1 ! ; 0155 1 ! IMPLICIT OUTPUTS: ; 0156 1 ! ; 0157 1 ! None. ; 0158 1 ! ; 0159 1 ! COMPLETION CODES: ; 0160 1 ! ; 0161 1 ! SS$_NORMAL Normal successful completion. ; 0162 1 ! ; 0163 1 ! SIDE EFFECTS: ; 0164 1 ! ; 0165 1 ! Text string displayed on the user's terminal ; 0166 1 ! ; 0167 1 !-- ; 0168 1 ; 0169 2 BEGIN ; 0170 2 ; 0171 2 LOCAL ; 0172 2 status : LONG; ; 0173 2 ; 0174 3 IF NOT (status = lib$put_output (%ASCID'Hello BLISS user')) ! ; 0175 2 THEN ; 0176 2 SIGNAL (.status); ; 0177 2 ; 0178 2 ss$_normal ! Routine value ; 0179 1 END; ! End of routine say_hello .TITLE HELLO HELLO .IDENT \V001-01\ .PSECT $PLIT$,NOWRT,NOEXE,2 P.AAB: .ASCII \Hello BLISS user\ ; 4C 42 20 6F 6C 6C 65 48 00000 ; 72 65 73 75 20 53 53 49 00008 P.AAA: .LONG 17694736 ; 010E0010 00010 .ADDRESS P.AAB ; 00000000' 00014 .EXTRN LIB$PUT_OUTPUT .PSECT $CODE$,NOWRT,2 ;SAY_HELLO U.1: .WORD ^M<> ;Save nothing 0126 0000 00000 PUSHAB W^P.AAA ;P.AAA 0174 0000' CF 9F 00002 CALLS #1, G^LIB$PUT_OUTPUT ;#1, LIB$PUT_OUTPUT 00000000G 00 01 FB 00006 BLBS R0, 1$ ;STATUS, 1$ 09 50 E8 0000D PUSHL R0 ;STATUS 0176 50 DD 00010 CALLS #1, G^LIB$SIGNAL ;#1, LIB$SIGNAL 00000000G 00 01 FB 00012 1$: MOVL #1, R0 ;#1, R0 0179 50 01 D0 00019 RET ; 04 0001C ; Routine Size: 29 bytes, Routine Base: $CODE$ + 0000 ; 0180 1 END ! End of module hello ; 0181 1 ; 0182 0 ELUDOM .EXTRN LIB$SIGNAL ; PSECT SUMMARY ; ; Name Bytes Attributes ; ; $PLIT$ 24 NOVEC,NOWRT, RD ,NOEXE,NOSHR, LCL, REL, CON,NOPIC,ALIGN(2) ; $CODE$ 29 NOVEC,NOWRT, RD , EXE,NOSHR, LCL, REL, CON,NOPIC,ALIGN(2) ; Library Statistics ; ; -------- Symbols -------- Pages Processing ; File Total Loaded Percent Mapped Time ; ; SYS$SYSROOT:[SYSLIB]LIB.L32;6 21522 1 0 1156 00:02.2 ; COMMAND QUALIFIERS ; BLISS/LIS=HELLO.MAR/SOU=NOHEAD/MACH=(ASS,UNI)/OPT=(SPEED,LEV=3) HELLO ; Compilation Complete .END U.1