; 0001 0 ! ; 0002 0 %TITLE 'Display an image of the Mandelbrot set, precomputed by COMPUTE' ; 0003 0 MODULE display (MAIN = display, ; 0004 0 IDENT = 'V001-1' ! File: display.bli ; 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 ! This routine will show the use of: ; 0013 1 ! ; 0014 1 ! Run-time library routines ; 0015 1 ! System services ; 0016 1 ! RMS ; 0017 1 ! Keyword macro ; 0018 1 ! Simple macro ; 0019 1 ! Require file ; 0020 1 ! Library file ; 0021 1 ! Builtins ; 0022 1 ! Floating point computation ; 0023 1 ! INCR loops ; 0024 1 ! OWN storage ; 0025 1 ! BLOCK ; 0026 1 ! VECTOR ; 0027 1 ! ASCID ; 0028 1 ! PLIT ; 0029 1 ! ; 0030 1 ! ABSTRACT: ; 0031 1 ! ; 0032 1 ! ENVIRONMENT: VAX/VMS, user mode ; 0033 1 ! ; 0034 1 ! AUTHOR: Brian K Catlin ; 0035 1 ! ; 0036 1 ! CREATED: 11-MAY-1988 ; 0037 1 ! ; 0038 1 ! MODIFICATION ; 0039 1 ! HISTORY: ; 0040 1 ! ; 0041 1 ! V001-1 BKC001 Brian K Catlin 11-MAY-1988 ; 0042 1 ! Original version ; 0043 1 ! ; 0044 1 ! ; 0045 1 !-- ; 0046 1 ; 0048 1 %SBTTL 'Declarations' ; 0049 1 !+ ; 0050 1 ! SWITCHES: ; 0051 1 !- ; 0052 1 ; 0053 1 SWITCHES ADDRESSING_MODE (EXTERNAL = GENERAL, NONEXTERNAL = WORD_RELATIVE); ; 0054 1 ; 0055 1 !+ ; 0056 1 ! LINKAGES: ; 0057 1 !- ; 0058 1 ; 0059 1 ! None. ; 0060 1 ; 0061 1 !+ ; 0062 1 ! TABLE OF CONTENTS: ; 0063 1 ! ; 0064 1 ! display ; 0065 1 !- ; 0066 1 ; 0067 1 FORWARD ROUTINE ; 0068 1 display; ; 0069 1 ; 0070 1 !+ ; 0071 1 ! INCLUDE FILES: ; 0072 1 ! ; 0073 1 !- ; 0074 1 ; 0075 1 LIBRARY 'SYS$LIBRARY:LIB'; ! VMS executive macros/symbols. ; 0076 1 ; 0077 1 LIBRARY 'USR$LIBRARY:USRLIB'; ! User Definitions. ; 0078 1 ; 0079 1 REQUIRE 'structs'; ! Header definitions ; 0119 1 ; 0120 1 !+ ; 0121 1 ! MACROS: ; 0122 1 !- ; 0123 1 ; 0124 1 MACRO ; 0125 1 ; 0126 1 !+ ; 0127 1 ! Find first whitespace character (space, tab, cr, lf, vt, nul) ; 0128 1 !- ; 0129 1 ; M 0130 1 _find_whitespace (string) = ; M 0131 1 BEGIN ; M 0132 1 ; M 0133 1 LOCAL ; M 0134 1 i : LONG INITIAL (0); ; M 0135 1 ; M 0136 1 BIND ; M 0137 1 line = .string [dsc$a_pointer] : VECTOR [, BYTE]; ; M 0138 1 ; M 0139 1 WHILE ( NOT (_cvt_is_white (.line [.i]) OR _cvt_is_mechan (.line [.i])) AND (.i LSSU .string [ ; M 0140 1 dsc$w_length])) DO ; M 0141 1 i = .i + 1; ; M 0142 1 ; M 0143 1 .i ; M 0144 1 END ; 0145 1 %; ; 0146 1 ; 0147 1 ; 0148 1 !+ ; 0149 1 ! FIELDS: ; 0150 1 !- ; 0151 1 ; 0152 1 ! None. ; 0153 1 ; 0154 1 !+ ; 0155 1 ! STRUCTURES: ; 0156 1 !- ; 0157 1 ; 0158 1 ! None. ; 0159 1 ; 0160 1 !+ ; 0161 1 ! PSECTS: ; 0162 1 !- ; 0163 1 ; 0164 1 ! None. ; 0165 1 ; 0166 1 !+ ; 0167 1 ! EQUATED SYMBOLS: ; 0168 1 !- ; 0169 1 ; 0170 1 ! None. ; 0171 1 ; 0172 1 !+ ; 0173 1 ! OWN STORAGE: ; 0174 1 !- ; 0175 1 ; 0176 1 ! None. ; 0177 1 ; 0178 1 !+ ; 0179 1 ! BUILTIN DECLARATIONS: ; 0180 1 !- ; 0181 1 ; 0182 1 BUILTIN ; 0183 1 CVTDL, ; 0184 1 CVTLD, ; 0185 1 ADDD, ; 0186 1 DIVD, ; 0187 1 MULD, ; 0188 1 SUBD; ; 0189 1 ; 0190 1 !+ ; 0191 1 ! EXTERNAL REFERENCES: ; 0192 1 ! ; 0193 1 ! LIB$GET_INPUT Get input from the user ; 0194 1 !- ; 0195 1 ; 0196 1 EXTERNAL ROUTINE ; 0197 1 lib$get_input, ; 0198 1 usr_close_device, ; 0199 1 usr_dummy, ; 0200 1 usr_display_header, ; 0201 1 usr_display_image, ; 0202 1 usr_load_color_table, ; 0203 1 usr_open_device; ; 0204 1 ; 0206 1 %SBTTL 'DISPLAY - Main entry point for this program' ; 0207 1 ROUTINE display = ; 0208 1 ; 0209 1 !++ ; 0210 1 ! ; 0211 1 ! FUNCTIONAL DESCRIPTION: ; 0212 1 ! ; 0213 1 ! CALLING SEQUENCE: ; 0214 1 ! ; 0215 1 ! display () Called by VMS as the entry point of this program ; 0216 1 ! ; 0217 1 ! FORMAL PARAMETERS: ; 0218 1 ! ; 0219 1 ! None. ; 0220 1 ! ; 0221 1 ! IMPLICIT INPUTS: ; 0222 1 ! ; 0223 1 ! None. ; 0224 1 ! ; 0225 1 ! IMPLICIT OUTPUTS: ; 0226 1 ! ; 0227 1 ! None. ; 0228 1 ! ; 0229 1 ! COMPLETION CODES: ; 0230 1 ! ; 0231 1 ! SS$_NORMAL Normal successful completion. ; 0232 1 ! ; 0233 1 ! SIDE AFFECTS: ; 0234 1 ! ; 0235 1 ! None. ; 0236 1 ! ; 0237 1 !-- ; 0238 1 ; 0239 2 BEGIN ; 0240 2 ; 0241 2 LOCAL ; 0242 2 status : LONG, ; 0243 2 color_table : REF BLOCKVECTOR [255, ctbl_s_ctbldef, 1] FIELD (ctbl_ctbldef_fieldset), ; 0244 2 screen : REF VECTOR [, BYTE], ; 0245 2 header : REF BLOCK [, BYTE] FIELD (hdr_hdrdef_fieldset), ; 0246 2 image_fab : $fab_decl, ; 0247 2 color_fab : $fab_decl, ; 0248 2 retadr : VECTOR [2, LONG], ; 0249 2 color_desc : _string_desc (class = d), ; 0250 2 file_desc : _string_desc (class = d); ; 0251 2 ; 0252 2 !+ ; 0253 2 ! Get the name of the image file ; 0254 2 !- ; 0255 2 ; 0256 3 IF NOT (status = lib$get_input (file_desc, %ASCID'File name > ')) ! ; 0257 2 THEN ; 0258 2 SIGNAL (.status); ; 0259 2 ; 0260 2 file_desc [dsc$w_length] = _find_whitespace (file_desc); ! Trim off white space ; 0261 2 ; 0262 2 !+ ; 0263 2 ! Declare the image file ; 0264 2 !- ; 0265 2 ; P 0266 2 $fab_init (fab = image_fab, ! Address of File Access Block ; P 0267 2 fna = .file_desc [dsc$a_pointer], ! Address of file name ; P 0268 2 fns = .file_desc [dsc$w_length], ! Length of file name ; P 0269 2 dnm = '.pic', ! Default file name ; P 0270 2 rtv = -1, ! Mapping pointers - map entire file ; 0271 2 fop = ufo); ! File operations - User File Open ; 0272 2 ; 0273 2 !+ ; 0274 2 ! Open the image file ; 0275 2 !- ; 0276 2 ; 0277 3 IF NOT (status = $open (fab = image_fab)) ! Open the file ; 0278 2 THEN ; 0279 2 SIGNAL (.image_fab [fab$l_sts], .image_fab [fab$l_stv]); ; 0280 2 ; 0281 2 !+ ; 0282 2 ! Map the image file into my address space ; 0283 2 !- ; 0284 2 ; P 0285 3 IF NOT (status = $crmpsc (inadr = UPLIT (0, 0), retadr = retadr, flags = (sec$m_expreg), ; 0286 3 chan = .image_fab [fab$l_stv])) ; 0287 2 THEN ; 0288 2 SIGNAL (.status); ; 0289 2 ; 0290 2 header = .retadr [0]; ; 0291 2 screen = .retadr [0] + 512; ; 0292 2 ; 0293 2 !+ ; 0294 2 ! Get the name of the color table file ; 0295 2 !- ; 0296 2 ; 0297 3 IF NOT (status = lib$get_input (color_desc, %ASCID'Color table name > ')) ! ; 0298 2 THEN ; 0299 2 SIGNAL (.status); ; 0300 2 ; 0301 2 color_desc [dsc$w_length] = _find_whitespace (color_desc); ! Trim off white space ; 0302 2 ; 0303 2 !+ ; 0304 2 ! Declare the color table file ; 0305 2 !- ; 0306 2 ; P 0307 2 $fab_init (fab = color_fab, ! Address of File Access Block ; P 0308 2 fna = .color_desc [dsc$a_pointer], ! Address of file name ; P 0309 2 fns = .color_desc [dsc$w_length], ! Length of file name ; P 0310 2 dnm = '.ctbl', ! Default file name ; P 0311 2 rtv = -1, ! Mapping pointers - map entire file ; 0312 2 fop = ufo); ! File operations - User File Open ; 0313 2 ; 0314 2 !+ ; 0315 2 ! Open the color table file ; 0316 2 !- ; 0317 2 ; 0318 3 IF NOT (status = $open (fab = color_fab)) ! Open the file ; 0319 2 THEN ; 0320 2 SIGNAL (.color_fab [fab$l_sts], .color_fab [fab$l_stv]); ; 0321 2 ; 0322 2 !+ ; 0323 2 ! Map the color table file into my address space ; 0324 2 !- ; 0325 2 ; P 0326 3 IF NOT (status = $crmpsc (inadr = UPLIT (0, 0), retadr = retadr, flags = (sec$m_expreg), ; 0327 3 chan = .color_fab [fab$l_stv])) ; 0328 2 THEN ; 0329 2 SIGNAL (.status); ; 0330 2 ; 0331 2 color_table = .retadr [0]; ; 0332 2 ; 0333 2 !+ ; 0334 2 ! Pass the header to a user routine to do what ever the user ; 0335 2 ! wants to do. ; 0336 2 !- ; 0337 2 ; 0338 2 usr_display_header (header [0, 0, 0, 0]); ; 0339 2 ; 0340 2 !+ ; 0341 2 ! Call the user routine to open the graphics device ; 0342 2 !- ; 0343 2 ; 0344 2 usr_open_device (); ; 0345 2 ; 0346 2 !+ ; 0347 2 ! Call the user routine to load the color table ; 0348 2 !- ; 0349 2 ; 0350 2 usr_load_color_table (color_table [0, 0, 0, 0, 0]); ; 0351 2 ; 0352 2 !+ ; 0353 2 ! Call the user routine to display the image data ; 0354 2 !- ; 0355 2 ; 0356 2 usr_display_image (screen [0]); ; 0357 2 ; 0358 2 !+ ; 0359 2 ! Call the user dummy routine to do something else while ; 0360 2 ! the graphics device is open ; 0361 2 !- ; 0362 2 ; 0363 2 usr_dummy (); ; 0364 2 ; 0365 2 !+ ; 0366 2 ! Call the user routine to close the graphics device ; 0367 2 !- ; 0368 2 ; 0369 2 usr_close_device (); ; 0370 2 ! ; 0371 2 ss$_normal ! Routine value ; 0372 1 END; ! End of routine DISPLAY .TITLE DISPLAY Display an image of the Mandelbrot set, precomp .IDENT \V001-1\ .PSECT $PLIT$,NOWRT,NOEXE,2 P.AAB: .ASCII \File name > \ ; 6D 61 6E 20 65 6C 69 46 00000 ; 20 3E 20 65 00008 P.AAA: .LONG 17694732 ; 010E000C 0000C .ADDRESS P.AAB ; 00000000' 00010 P.AAC: .ASCII \.pic\ ; 63 69 70 2E 00014 P.AAD: .LONG 0, 0 ; 00000000 00000000 00018 P.AAF: .ASCII \Color table name > \<0> ; 61 74 20 72 6F 6C 6F 43 00020 ; 65 6D 61 6E 20 65 6C 62 00028 ; 00 20 3E 20 00030 P.AAE: .LONG 17694739 ; 010E0013 00034 .ADDRESS P.AAF ; 00000000' 00038 P.AAG: .ASCII \.ctbl\ ; 6C 62 74 63 2E 0003C .BLKB 3 ; 00041 P.AAH: .LONG 0, 0 ; 00000000 00000000 00044 .EXTRN LIB$GET_INPUT, USR_CLOSE_DEVICE, USR_DUMMY, USR_DISPLAY_HEADER, USR_DISPLAY_IMAGE .EXTRN USR_LOAD_COLOR_TABLE, USR_OPEN_DEVICE, SYS$OPEN, SYS$CRMPSC .PSECT $CODE$,NOWRT,2 ;DISPLAY U.1: .WORD ^M ;Save R2,R3,R4,R5,R6,R7,R8 0207 01FC 00000 MOVAB -180(SP), SP ;-180(SP), SP 5E FF4C CE 9E 00002 MOVL #34471936, 4(SP) ;#34471936, COLOR_DESC 0249 04 AE 020E0000 8F D0 00007 CLRL 8(SP) ;COLOR_DESC+4 08 AE D4 0000F PUSHL #34471936 ;#34471936 0250 020E0000 8F DD 00012 CLRL 4(SP) ;FILE_DESC+4 04 AE D4 00018 PUSHAB W^P.AAA ;P.AAA 0256 0000' CF 9F 0001B PUSHAB 4(SP) ;FILE_DESC 04 AE 9F 0001F CALLS #2, G^LIB$GET_INPUT ;#2, LIB$GET_INPUT 00000000G 00 02 FB 00022 MOVL R0, R6 ;R0, STATUS 56 50 D0 00029 BLBS R6, 1$ ;STATUS, 1$ 09 56 E8 0002C PUSHL R6 ;STATUS 0258 56 DD 0002F CALLS #1, G^LIB$SIGNAL ;#1, LIB$SIGNAL 00000000G 00 01 FB 00031 1$: CLRL R1 ;I 0260 51 D4 00038 BRB 3$ ;3$ 02 11 0003A 2$: INCL R1 ;I 51 D6 0003C 3$: MOVZBL @4(SP)[R1], R0 ;@FILE_DESC+4[I], R0 50 04 BE41 9A 0003E CLRL R2 ;R2 52 D4 00043 CMPB R0, #9 ;R0, #9 09 50 91 00045 BNEQ 4$ ;4$ 04 12 00048 INCL R2 ;R2 52 D6 0004A BRB 5$ ;5$ 27 11 0004C 4$: CMPB R0, #32 ;R0, #32 20 50 91 0004E BEQL 5$ ;5$ 22 13 00051 TSTL R0 ;R0 50 D5 00053 BEQL 5$ ;5$ 1E 13 00055 CMPB R0, #7 ;R0, #7 07 50 91 00057 BEQL 5$ ;5$ 19 13 0005A BLBS R2, 5$ ;R2, 5$ 16 52 E8 0005C CMPB R0, #10 ;R0, #10 0A 50 91 0005F BEQL 5$ ;5$ 11 13 00062 CMPB R0, #12 ;R0, #12 0C 50 91 00064 BEQL 5$ ;5$ 0C 13 00067 CMPB R0, #13 ;R0, #13 0D 50 91 00069 BEQL 5$ ;5$ 07 13 0006C CMPZV #0, #16, (SP), R1 ;#0, #16, FILE_DESC, I 10 00 ED 0006E ; 51 6E 00071 BGTRU 2$ ;2$ C7 1A 00073 5$: MOVW R1, (SP) ;I, FILE_DESC 6E 51 B0 00075 MOVC5 #0, (SP), #0, #80, 104(SP) ;#0, (SP), #0, #80, $RMS_PTR 0271 6E 00 2C 00078 ; 0050 8F 00 0007B ; 68 AE 0007F MOVW #20483, 104(SP) ;#20483, $RMS_PTR 68 AE 5003 8F B0 00081 MOVL #131072, 108(SP) ;#131072, $RMS_PTR+4 6C AE 00020000 8F D0 00087 MOVB #2, 126(SP) ;#2, $RMS_PTR+22 7E AE 02 90 0008F MNEGB #1, -52(FP) ;#1, $RMS_PTR+28 CC AD 01 8E 00093 MOVB #2, -49(FP) ;#2, $RMS_PTR+31 CF AD 02 90 00097 MOVL 4(SP), -36(FP) ;FILE_DESC+4, $RMS_PTR+44 DC AD 04 AE D0 0009B MOVAB W^P.AAC, -32(FP) ;P.AAC, $RMS_PTR+48 E0 AD 0000' CF 9E 000A0 MOVB (SP), -28(FP) ;FILE_DESC, $RMS_PTR+52 E4 AD 6E 90 000A6 MOVB #4, -27(FP) ;#4, $RMS_PTR+53 E5 AD 04 90 000AA PUSHAB 104(SP) ;IMAGE_FAB 0277 68 AE 9F 000AE CALLS #1, G^SYS$OPEN ;#1, SYS$OPEN 00000000G 00 01 FB 000B1 MOVL R0, R6 ;R0, STATUS 56 50 D0 000B8 BLBS R6, 6$ ;STATUS, 6$ 0D 56 E8 000BB PUSHL 116(SP) ;IMAGE_FAB+12 0279 74 AE DD 000BE PUSHL 116(SP) ;IMAGE_FAB+8 74 AE DD 000C1 CALLS #2, G^LIB$SIGNAL ;#2, LIB$SIGNAL 00000000G 00 02 FB 000C4 6$: CLRQ -(SP) ;-(SP) 0286 7E 7C 000CB CLRQ -(SP) ;-(SP) 7E 7C 000CD PUSHL -68(FP) ;IMAGE_FAB+12 BC AD DD 000CF CLRQ -(SP) ;-(SP) 7E 7C 000D2 CLRL -(SP) ;-(SP) 7E D4 000D4 PUSHL #131072 ;#131072 00020000 8F DD 000D6 CLRL -(SP) ;-(SP) 7E D4 000DC PUSHAB 56(SP) ;RETADR 38 AE 9F 000DE PUSHAB W^P.AAD ;P.AAD 0000' CF 9F 000E1 CALLS #12, G^SYS$CRMPSC ;#12, SYS$CRMPSC 00000000G 00 0C FB 000E5 MOVL R0, R6 ;R0, STATUS 56 50 D0 000EC BLBS R6, 7$ ;STATUS, 7$ 09 56 E8 000EF PUSHL R6 ;STATUS 0288 56 DD 000F2 CALLS #1, G^LIB$SIGNAL ;#1, LIB$SIGNAL 00000000G 00 01 FB 000F4 7$: MOVL 16(SP), R7 ;RETADR, HEADER 0290 57 10 AE D0 000FB ADDL3 #512, 16(SP), R8 ;#512, RETADR, SCREEN 0291 10 AE 00000200 8F C1 000FF ; 58 00107 PUSHAB W^P.AAE ;P.AAE 0297 0000' CF 9F 00108 PUSHAB 12(SP) ;COLOR_DESC 0C AE 9F 0010C CALLS #2, G^LIB$GET_INPUT ;#2, LIB$GET_INPUT 00000000G 00 02 FB 0010F MOVL R0, R6 ;R0, STATUS 56 50 D0 00116 BLBS R6, 8$ ;STATUS, 8$ 09 56 E8 00119 PUSHL R6 ;STATUS 0299 56 DD 0011C CALLS #1, G^LIB$SIGNAL ;#1, LIB$SIGNAL 00000000G 00 01 FB 0011E 8$: CLRL R1 ;I 0301 51 D4 00125 BRB 10$ ;10$ 02 11 00127 9$: INCL R1 ;I 51 D6 00129 10$: MOVZBL @12(SP)[R1], R0 ;@COLOR_DESC+4[I], R0 50 0C BE41 9A 0012B CLRL R2 ;R2 52 D4 00130 CMPB R0, #9 ;R0, #9 09 50 91 00132 BNEQ 11$ ;11$ 04 12 00135 INCL R2 ;R2 52 D6 00137 BRB 12$ ;12$ 28 11 00139 11$: CMPB R0, #32 ;R0, #32 20 50 91 0013B BEQL 12$ ;12$ 23 13 0013E TSTL R0 ;R0 50 D5 00140 BEQL 12$ ;12$ 1F 13 00142 CMPB R0, #7 ;R0, #7 07 50 91 00144 BEQL 12$ ;12$ 1A 13 00147 BLBS R2, 12$ ;R2, 12$ 17 52 E8 00149 CMPB R0, #10 ;R0, #10 0A 50 91 0014C BEQL 12$ ;12$ 12 13 0014F CMPB R0, #12 ;R0, #12 0C 50 91 00151 BEQL 12$ ;12$ 0D 13 00154 CMPB R0, #13 ;R0, #13 0D 50 91 00156 BEQL 12$ ;12$ 08 13 00159 CMPZV #0, #16, 8(SP), R1 ;#0, #16, COLOR_DESC, I 10 00 ED 0015B ; 51 08 AE 0015E BGTRU 9$ ;9$ C6 1A 00161 12$: MOVW R1, 8(SP) ;I, COLOR_DESC 08 AE 51 B0 00163 MOVC5 #0, (SP), #0, #80, 24(SP) ;#0, (SP), #0, #80, $RMS_PTR 0312 6E 00 2C 00167 ; 0050 8F 00 0016A ; 18 AE 0016E MOVW #20483, 24(SP) ;#20483, $RMS_PTR 18 AE 5003 8F B0 00170 MOVL #131072, 28(SP) ;#131072, $RMS_PTR+4 1C AE 00020000 8F D0 00176 MOVB #2, 46(SP) ;#2, $RMS_PTR+22 2E AE 02 90 0017E MNEGB #1, 52(SP) ;#1, $RMS_PTR+28 34 AE 01 8E 00182 MOVB #2, 55(SP) ;#2, $RMS_PTR+31 37 AE 02 90 00186 MOVL 12(SP), 68(SP) ;COLOR_DESC+4, $RMS_PTR+44 44 AE 0C AE D0 0018A MOVAB W^P.AAG, 72(SP) ;P.AAG, $RMS_PTR+48 48 AE 0000' CF 9E 0018F MOVB 8(SP), 76(SP) ;COLOR_DESC, $RMS_PTR+52 4C AE 08 AE 90 00195 MOVB #5, 77(SP) ;#5, $RMS_PTR+53 4D AE 05 90 0019A PUSHAB 24(SP) ;COLOR_FAB 0318 18 AE 9F 0019E CALLS #1, G^SYS$OPEN ;#1, SYS$OPEN 00000000G 00 01 FB 001A1 MOVL R0, R6 ;R0, STATUS 56 50 D0 001A8 BLBS R6, 13$ ;STATUS, 13$ 0D 56 E8 001AB PUSHL 36(SP) ;COLOR_FAB+12 0320 24 AE DD 001AE PUSHL 36(SP) ;COLOR_FAB+8 24 AE DD 001B1 CALLS #2, G^LIB$SIGNAL ;#2, LIB$SIGNAL 00000000G 00 02 FB 001B4 13$: CLRQ -(SP) ;-(SP) 0327 7E 7C 001BB CLRQ -(SP) ;-(SP) 7E 7C 001BD PUSHL 52(SP) ;COLOR_FAB+12 34 AE DD 001BF CLRQ -(SP) ;-(SP) 7E 7C 001C2 CLRL -(SP) ;-(SP) 7E D4 001C4 PUSHL #131072 ;#131072 00020000 8F DD 001C6 CLRL -(SP) ;-(SP) 7E D4 001CC PUSHAB 56(SP) ;RETADR 38 AE 9F 001CE PUSHAB W^P.AAH ;P.AAH 0000' CF 9F 001D1 CALLS #12, G^SYS$CRMPSC ;#12, SYS$CRMPSC 00000000G 00 0C FB 001D5 MOVL R0, R6 ;R0, STATUS 56 50 D0 001DC BLBS R6, 14$ ;STATUS, 14$ 09 56 E8 001DF PUSHL R6 ;STATUS 0329 56 DD 001E2 CALLS #1, G^LIB$SIGNAL ;#1, LIB$SIGNAL 00000000G 00 01 FB 001E4 14$: MOVL 16(SP), R2 ;RETADR, COLOR_TABLE 0331 52 10 AE D0 001EB PUSHL R7 ;HEADER 0338 57 DD 001EF CALLS #1, G^USR_DISPLAY_HEADER ;#1, USR_DISPLAY_HEADER 00000000G 00 01 FB 001F1 CALLS #0, G^USR_OPEN_DEVICE ;#0, USR_OPEN_DEVICE 0344 00000000G 00 00 FB 001F8 PUSHL R2 ;COLOR_TABLE 0350 52 DD 001FF CALLS #1, G^USR_LOAD_COLOR_TABLE ;#1, USR_LOAD_COLOR_TABLE 00000000G 00 01 FB 00201 PUSHL R8 ;SCREEN 0356 58 DD 00208 CALLS #1, G^USR_DISPLAY_IMAGE ;#1, USR_DISPLAY_IMAGE 00000000G 00 01 FB 0020A CALLS #0, G^USR_DUMMY ;#0, USR_DUMMY 0363 00000000G 00 00 FB 00211 CALLS #0, G^USR_CLOSE_DEVICE ;#0, USR_CLOSE_DEVICE 0369 00000000G 00 00 FB 00218 MOVL #1, R0 ;#1, R0 0372 50 01 D0 0021F RET ; 04 00222 ; Routine Size: 547 bytes, Routine Base: $CODE$ + 0000 ; 0373 1 END ! End of module DISPLAY ; 0374 1 ; 0375 0 ELUDOM .EXTRN LIB$SIGNAL ; PSECT SUMMARY ; ; Name Bytes Attributes ; ; $PLIT$ 76 NOVEC,NOWRT, RD ,NOEXE,NOSHR, LCL, REL, CON,NOPIC,ALIGN(2) ; $CODE$ 547 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 57 0 1156 00:02.2 ; DUA0:[NEW_USRLIB]USRLIB.L32;1 234 11 4 29 00:00.7 ; COMMAND QUALIFIERS ; BLIS/LIS=DISPLAY.MAR/SOU=NOHEAD/MACH=(ASS,UNI)/OPT=(SPEED,LEV=3) DISPLAY ; Compilation Complete .END U.1