Digital PDFs
Documents
Guest
Register
Log In
XX-C6EF2-2D
June 1973
32 pages
Original
1.1MB
view
download
OCR Version
1.2MB
view
download
Document:
06 utilities
Order Number:
XX-C6EF2-2D
Revision:
0
Pages:
32
Original Filename:
06_utilities.pdf
OCR Text
-923- UTILITIES This section of the handbook includes documentation on the following software: CREF Version 47 FILCOM Version 20 FUDGE2 GLOB Version 15 Version 5A These utilities are used by system programmers 1. 2, 3. 4. To obtain cross-referenced listings for all operand-type symbols, user-defined symbols, and/or op codes and pseudo-op codes. To Compare two versions of a file and then output any differences. To updai'e files containing relacatable binary programs and manipulate programs within program files. To obtain an olphabefical cross-reference listing of all global symbols encountered. With the exception of fhe CREF writeup, the utilities have been reproduced from the DECsysrem-10 Operating Sysi'em Commands manual (DEC 10-MRDC-D). -925- CREF CROSS-REFERENCE LISTING (CREF) CREF produces a sequence-numbered assembly listing followed by one to three tables, one showing cross references for all operand-type symbols (labels, assignments, etc.), another showing cross refer- ences for all user-defined operators (macro calls, OPDEFs etc.), and another (if the proper switch is specified) showing the cross references for all op codes and pseudo-op codes (MOVE, XALL, etc.). A number sign (*) appears on the definition line ofall symbols. The input to CREF is a modified assembly listing file created during @ MACRO-10 assembly or FORTRAN IV compilation when the /C switch is specified in the command string. CREF provides an invaluable aid for program debugging and modification. 1.0 REQUIREMENTS Minimum Core: 2K pure, 1K impure Additional Core: Takes advantage of any additional core available, as necessary. Equipment: One input device (normally disk) which contains the modified assembly listing file; one output device (normally the line printer) for the listing. 2.0 INITIALIZATION R CREF) Loads the Cross-Reference Listing program into core. * The program is ready to receive a command. NOTE If CREF cannot initialize the terminal, it exits. 3.0 COMMANDS 3.1 Command Formats a. output-dev:filename.ext[proj, prog]=input-dev:file1.ext[proj,prog] , file2.ext, . .. b. progname! Version 47 CREF CREF-1 June 1973 CREF -926output-dev:filename, ext The device on which the assembly listing and crossreference tables are to be printed. If no output file name is specified, the default file name is the same as that specified for the first input file, but with the extension .LST. In such a case, the default device is LPT. However, if an output file name is specified, the default output device is DSK. input~dev:filename. ext The device on which the modified assembly listing was written during MACRO-10 assembly. DSK: is assumed if the device is not specified. When looking for the input file, CREF tries the following default extensions in the order listed: .CRF, .LST, .TMP, or a null extension. A missing input file name is given the name CREF. If the input file ex- tension is .CRF or .LST and the /P switch is not included in the command string, the input file is deleted after the output file is successfully closed. Multiple input files can be specified to be combined into a single CREF listing by separating the input files with commas. Switches affecting the entire listing (/K, /M, /O, and /S) must be specified before the terminator for the first input file. Switches affecting the positioning of an input file are specified with each file. The ?CANNOT FIND FILE. .. message will be printed for each occurrence of a missing file. If the missing file is not part of a COMPIL-class command file (that is, if it was typed in directly), the command will be aborted, allowing the user to retype the command string. However, if the missing file is part of a COMPIL~class command file, processing will continue for the rest of the existing files in the command string. (Refer to section 4.0 of this document.) Note that if any file is in fact missing, no input file will be deleted. [proj, prog] The disk area on which the files are to be placed (output) or the disk area on which the source files reside (input). If omitted, the default is the user's disk area. The output device and the input device are separated by an equal sign. If the equal sign is omitted, output defaults occur as described above. Any files specified by the user are for input. progname ! The user can request CREF to run a system program by typing the program name followed by an exclamation point. Version 47 CREF CREF-2 June 1973 -927- CREF Examples of Commands: R MACKO,) Load the MACRO=-10 Assembler info core. MTP2,/C :DTAI :TXCALC)) Assemble the program TXCALC from DTA1; writes THERE ARE NO ERRORS the object program coding on the paper tape punch; PROGRAM BREAK 1S 2093771 and assigns it the filename CREF.LST. TK_CCRE writes a modified assembly listing on DSK: | %‘T CCRE F) (assumed) ~ Return to the monitor. Load CREF into core. ) Select the default assumptions of: - output-dev: LPT: input-dev: input filenamext e. DSK: CREF.CRF (.LST,.TMP) output filename.ext CREF.LST Equivalent to the command string LPT:CREF.LST=DSK :CREF.CRF *1C Return to the monitor. «R CREF XO0UTFIL=FILI ,FI12,FIL3 ' X LINK! *FILl,FI12,FIL3/G LINK: LOADING - | EXIT Make single merged cross-reference file for three program files. Run LINK10. - 3; 2 Switches Switches are used to specify such options as magnetic tape control and list selection. All switches are preceded by a slash (/). Examples of Switches: R CREF */M=MTAL $ /W o Load CREF into core. Rewind MTAT and process the first file, listing only the cross references for operand-type symbols (labels, assignments, etc.). *DTAStSAVEL/Z= ‘ Process the file named CREF.LST in the user's of disk; write the program area listing and operand-type ~ cross references on DTA5 and call the file SAVE]. *t(C Version 47 CREF Return to monitor. _CREF-3 June 1973 - CREF -928CREF Switch Options Switch A B Meaning Advance magnetic tape reel by one file. /A may be repeafed. Backspace magnetic tape reel by one file. /B may be repeated. Print help for running CREF. Kill listing of references to basic symbols (labels, assignments, etc.). M Suppress listing of references to user-defined operators O Allow listing of references to machine and pseudo- P Preserve an input file with the extension .CRF or R Request the line number at which the listing is fo (Macro calls, OPDEFs, etc.). operation codes (MOVE, XALL, etc.). .LST, which is normally deleted. Restart. CREF prints: RESTART LISTING AT LINE: N £ - at which time the user types the line number followed by a carriage return. (Such action might be necessary if the line printer ran out of paper, or jammed, etc.) Suppress program listing (list only the selected tables). Skip to logical end of magnetic Tape. ReWind magnetic tape. Zero the DECtape directory (DECtape must be output only). 4.0 MONITOR COMMANDS CREF-format listing files generated by COMPILE, LOAD, EXECUTE, and DEBUG commands (using the /CREF switch) can be printed on the line printer by typing ) .CREF The CREF command will print out all listing files that are specified in the COMPIL~class command file, nnnCRE.TMP (where nnn is the user's job number). It will also transfer control to a system program if its name is present in the form "prognamel". After completion of this operation, nnnCRE.TMP is deleted to prevent the listing files from being listed again by the next CREF command. The CREF files may also be listed by an R CREF command and a response of "filename" to each asterisk (*) typed by CREF. It is important to note that, if the user uses the R CREF command to list files created by the monitor's COMPIL-class commands, the names of the files to be listed must be typed in response to the asterisks. * Version 47 CREF CREF-4 June 1973 -9295.0 . CREF DIAGNOSTIC MESSAGES CREF Diagnostic Messages Message Meaning ?dev NOT AVAILABLE Device is assigned to another job. PCANNOT ENTER FILE, n dev: file.ext 2CANNOT FIND FILE, n dev: file.ext DTAor DSK directory is full; file cannot be en- tered; nindicates the cause of the failure and is obtained from the ENTER directory block. The file cannot be found on the device specified; n indicates the cause of the failure and is obtained from the LOOKUP directory block. ?COMMAND ERROR--TYPE /H FOR HELP - Error in last command string entered. 1. Device name, file name, or extension consisted of non- alphanumeric characters. 2. The project-programmer num- ber was not in standard format (i.e., it was not octal numbers in the form [proj, progl). 3. An undefined switch was specified, switches in parentheses were not separ= ated by commas, or the closing parenthesis was missing. 4. The /Z switch was used on the input side of the command string. ?COMMAND FILE INPUT ERROR, n dev:file.ext - Disk data error while reading nnnCRE.TMP; n is a six-digit (or less) octal number rep~ resenting the file status word returned from the GETSTS UUO. ?DATA ERROR DEVICE dev: READ or WRITE error. IMPROPER INPUT DATA, CONTINUING Input data not in CREF format. ?INPUT BUFFERS TOO BIG The monitor set up input buffers longef Output listing continues. than 203g. This is not a user error and hopefully will never occur. PINPUT ERROR, n dev:file.ext READ error has occurred on the dévice. PINSUFFICIENT CORE Additional core is required for execution but none is available from monitor. POUTPUT ERROR, n dev:file.ext Version 47 CREF WRITE error has occurred on the device. CREF-5 June 1973 -931- FILCOM Function . The FILCOM program is used to compare two versions of a file and to output any differences. Generally, this comparison is line by line for ASCII files or word by word for binary files. FILCOM determines the type of comparison to use by examining either the switches specified in the command string or the extensions of the files. file extensions. Switches always take precedence over Command Format <R FILCOM) ZXoutput dev:file.ext [directory] = input dev.| file.ext [directory], input devz:file.exf [directory] output dev: = the device on which the differences are to be output. input dev: = the device on which an input file resides. Defaults 1. If the entire output specification is omitted, the output device is assumed to be TTY. However, the equal sign must be given to separate the input and output specifications of the command string. 2. If an output filename is specified, the default output device is DSK. If the output filename is omitted, the second input filename is used, unless it is null. this case, the filename FILCOM is used. ' 4. If the output extension is omitted, on a binary compare. In .SCM is used on a source compare and .BCM is used If the [directory] is omitted (input or output side), ‘the user's default directory is assumed. If an input device is omitted, it is assumed to be DSK. If the filename and/or extension of the second input file is omitted, it is taken from the ‘ first input file. 8. A dot following the filename of the second input is necessary to explicitly indicate a null For example, to compare FILE.MAC and FILE. (i.e., with null extension), use the following command string: extension, if the extension of the first input file is not null. .R FILCOM ) *<FILE.MAC, FILE. ) Version 20 FILCOM 2-81 November 1972 -932- FILCOM Command Format (cont) 9. The second input file specification cannot be null unless a binary compare is being per= formed. - In a binary compare, if the first input file is not followed by a comma and a second input file descriptor, the input file is compared to a zero file and is output in its entirety. This gives the user a method of listing a binary file. Refer to Example 4. Switches The following switches can appear in the command string, depending on whether a source compare or a binary source compare is being performed. Binary Compare /H /nlL Type list of switches available (help text from device SYS:). Specify the lower limit for a partial binary compare (n is an octal number). This switch, when used with the /nU switch, allows a binary file to be compared only within the specified limits. /Q When the files are different, print the message ?FILES ARE DIFFERENT, but do not list the differences. This switch is useful when BATCH control files want to test for differences but do not want the log file filled with these differences. /nU Specify the upper limit for a partial binary compare (n is an octal number). This switch, when used with the /nL switch, allows a binary file to be compared only within the specified limits. /W Compare files in binary mode without expanding the files first (refer to Appendix D). This switch is used to compare two binary files with ASCII extensions. /X Expand SAV files before comparing them in binary mode. This actionre- moves differences resulting from zero compression (refer to Appendix D). Source Compare This switch is used to force a source com- /A Compare files in ASCII mode. pare on two ASCII files. /B Compare blank lines. Without this switch, blank lines are ignored. /C a line following a semicolon) and spacing Ignore comments (all text on (spaces and tabs). This switch does not cause a line consisting entirely of a comment to become a blank line, which is normally ignored. /H Type list of switches available (help text from device SYS:). (continued on next page) Version 20 FILCOM 2-82 November 1972 FILCOM _933Command Format (cont) Source Compare (conf) Specnfy the number of lines fhaf defermme a match (nis an octal number). /nL A match means that n successive linesin each input file have been found idéntical. When a matchiis found, all differences occurring before the match and after the previous mai‘ch are output. In addition, the first line of the current matchis output after the differences to aidin locating the place within each file at which the dlfFerences occurred. The default value for n is 3 : Print the message ?FILES ARE DIFFERENT when the files are different, /Q but do not list the differences. /S Ignore spaces and tabs. /U Compare iin updafe mode. This imeans that the output file consists of the second input file with vertical bars (or back slashes for 64-character prmfers) next to the lines that differ from the first input file. This feature is useful when updating a document because the changes made to the latest edition are flagged with change barsin the left margin. The latest edition of the documentis the second input file. If switches are not specifiedin the command string, the files are compored in the mode implied by the extension. The following extensions are recognized as binary and cause a binary compare if one or both of the input files have one oF the exrensmns. ¢ .BAC .BIN JHGH .LOW .CAL .OVR .MSB .BUG .CHN .DAE .DCR .DMP , | .QUE .QUF .REL .RIM - .RMT .RTB = .SAV .SFD JSHR. .SVE .SYS .UFD XPN Binary files are compared word by word starting ot word 0 except for the following two cases: 1. Files with extensions .SHR and .HGH are assumed to be high segment files. Since 2. the word count starts at 400000, upper and lower limits, if used, must be greater than (or equal to in the case of fhe lower limit) 400000, Files with extensions .SAV, .LOW, and .SVE are assumed to be compressed core image files and are expanded before comparing. Version 20 FILCOM 2-83 November 1972 FILCOM -934- Command Format (cont) Conflicts are resolved by switches or defaults. If a conflict arises in the absence of switches, the files are assumed to be ordinary binary files. Output In most cases, headers consisting of the device, filename, extension, and creation date of each input file are listed before the differences are output. However, headers do not appear on output from the /U switch (update mode on source compare) , Source compare output = After the headers are listed , the following notation appears in the left column of the output n)m where n is the number of the input file, and m is the page number of the input file (see examples). The right column lists the differences occurring between matches in the input files. Following the list of differences, a line identical to each file is output for reference purposes. The output from the /U switch differs from the above=described output in that created is the second input file with vertical bars in the left column different from the first input file. the output file next to the lines that are Binary compare output = When a difference is encountered between the two input files, a line in the following format appears on the output device: octal loc. first file=word second file=word XOR of both words If the exclusive OR (XOR) of the two words differs only in the ring half, the third word output is the absolute value of the difference of the two right halves. This usually indicates an ad=dress that changed. If one input file is shorter than the other, after the end of file is encountere file, the remainder of the longer file is output, Version 20 FILCOM | 2-84 d on the shorter November 1972 ~935- | ~ FILCOM Characteristics The R FILCOM command: Places the terminal in user mode. Runs the FILCOM program, thereby destroying the user's core image. Associated Messages 22K CORE NEEDED AND NOT AVAILABLE FILCOM needs 2K of core to initialize 1/O devices and this core is not available from the monitor. PBUFFER CAPACITY EXCEEDED AND NO CORE AVAILABLE The buffer is not large enough to handle the number of lines required for looking ahead for matches, and additional core is not available. ?COMMAND ERROR One of the following errors occured in the last command string typed. 1) There is no separator (+<or =) between the output and input specifications. 2) The input specification is completely null. 3) The two input files are not separated by a comma. 4) A file descriptor consists of characters other than alphanumeric characters. ?DEVICE dev: 5) FILCOM does not recognize the specified switch. 6) The project-programmer number is not in standard format, i.e., [proj,prog] . 7) The value of the spec.ified switch is not octal. 8) The first input file is followed by a comma but the second input file is null. NOT AVAILABLE Device is assigned to another job or does not exist. ?FILE n NOT IN SAV FORMAT | The user indicated via the /X switch that the file is to be expanded but the specified file is not in compressed file format. N is either 1 or 2 indicating the first file or the second file. Version 20 FILCOM 2-85 | November 1972 FILCOM -936- Associated Messages (Cont) ?FILE n READ ERROR An error has occurred on either the first or second input device. %FILES ARE DIFFERENT The two input files specified in the command string are different (i.e., the two files are not two versions of the same file but are two different files). ?INPUT~ ERROR - file.ext FILE NOT FOUND The specified file could not be found on the input device. NO DIFFERENCES ENCOUNTERED No differences were found between the two input files. ?0UTPUT DEVICE ERROR An error has occurred on the oufput device. POUTPUT INITIALIZATION ERROR The output device cannot be initialized for one of the following reasons: Version 20 FILCOM 1) The device does not exist or is assigned to another job. 2) The device is not an output device. 3) The file cannot be placed on the output device. 2-86 November 1972 -937- FILCOM Examples 1. The user has the following two ASCII files on disk: First File Second File FILE A FILF B A A C D C A G H E page 1 I F G H J 1 J 2 1 3 K L. v _Y First File Second File AN oN P p R R S S u ¥ ey A page 2 T T Vv Vv W 4 X Y Z W X 5 Y _Y va To compare the two files and output the differences on the terminal, the following sequence is used: sR FILCOM) *=F [LEA,F ILEE) Version 20 FILCOM Run the FILCOM program. Compare the two files on disk and output the dif- ferences on the terminal. By default, three consecutive identical lines determine a match. 2-87 FILCOM ~938- Examples (cont) head eaders l the identical FILE 1) DSK:F ILEA 1)1 FILE 1> [ N— 2)1 FILE B A 1)1 1) D E ok o oK oK ok oK K oK K K K \ K o d b 1> F J n bth 291 e files ook ok sk ok o ok ok oF o 3 ok K % K 1) 1. 1) v 12 N identical 231 in both 2) files G 1)1 - ) 22 . Second difference - !denhcol . line 17-JAN-1972 1456 17-JAN-1972 . 2 . 1456 First difference files line CREATED: A :n both . CREATED: FILE 2) DSKiFILFK . . Third difference 1 2 3 N Aok K K ok K ok ok ok K KOk ok line 12 identical :";;* t in both g) i g }< files 5y W Fourth difference Aok K ok ok 3 ok ok oK 3K oK ok ok K This column indicates the page number of the file. This column indicates either the first file or the second file. Version 20 FILCOM 2-88 | _939- FILCOM Excmpi_és (cont) To compare the two files and output the differences on the line printer, the following commands are used. Note that in this example the number of successive lines that determines a match has been set to 4 with the /4L switch. sK FILCOM) KPTe/4L=FILEASFILFE) FILE 1) DSK:FILEA CREATED: 1456 17-JAN-1972 FILE CREATED: 1456 2) DSKiFILFR 11 FILE 17-JAN-1972 A 1 1) 1) 1) 1) These lines are listed as being different because . the /AL switch specifies that 4 consecutive lines must be found identical in the two files before they are considered as a match. 1 1 ok %k 231 2) 2) 2) 2) sk ok ok ok ok 3k ok ok 3k ok K ok %k Z32rCX 1)1 1) 1) 1)2 Z W - skok % %k 251 23 2) 22 ske3k sk ok 3 sk ok 3k ok sk ok ok sk ok i)e ik ok K 2)e - W 4 2) 5 2) W Sk e ke e ok 3 ok % ok 3k ok ok %k (continued on next page) Version 20 FILCOM 2-89 FILCOM -940- Examples (cont) To compare the two files 50 that the second input file is output with vertical bars in the left column next to the lines that differ from the first input file, use the following command sequence. Rk FILCOM)) *LPT:/U=FILFASF1LEF) NS XENDMCT-WVMITDUVOZWN = mTITHnOOTD FILE 2. B The lines with vertical bars indicate the differences between the two files. The lines with vertical bars indicate the differences between the two files. To compare two binary files on the disk and output the differences on the terminal , use the following command sequence. sR FILCOM) ATTY:+«DSK:DIAL.REL,DIAL2Z) FILE 1) DSK:DIAL.REL CREATED: 00Q@ 23-DEC-1971 FILE 2) DSK:DIAL2.REL CREATED: 9000 AAAARD 4 no0ve PoRVNI1 VoROB4 VOVO6Y 002 nAGBAA nsatle 000311 372712 12-AUG=-1971 PBB311 B0 57 326004 PA00N3 wARen e 71510150 17573 510354 P17575 51@355 MOaN4 AoBYBY 2300004 A17573 513216 V17573 513216 (continued on next page) Version 20 FILCOM FILCOM -941- Examples (cont) 3. To compare two high segment files, the command sequence below is used. Note that the locations begin at 400000, sR FILCOM) «SHK, TAELE «SHK) FTTY:=SYS:TARLF FILE 1) SYS:TABLE.SHR FILE 2) DSK:TABLE.SHR 40000 400003 400004 40005 420010 420011 420012 430013 4, 001611 (QR6675 Q05600 545741 634000 474000 492000 200040 400010 DBOOGH NOOOT0 444562, VOG0 000000 VOB156 406354 CREATED: 2028 24-JAN-1972 CREATED: 1829 30-NOV-1971 PO1630 V15024 PB4700 554143 260740 200000 202000 2nl1onn 407157 4907670 0BO113 625700 403516 414036 00120 Ar0472 nooB21 P13651 Vo110 11602 454741 6740010 6V0VRD VVlvay QBT147 4bB7670 BVVL63 26126¢ 403516 414036 PBVETE 46726 To list a binary file, use the following command sequence. sR FILCOM,) *TTY:+SYS:DOT.REL) 00000 POORV4 VOBV 000001 000002 POOVOD QOOROG VOOBAV ANONR3 . NBOOV6 NOBAD] 00004 ROODOO ARV PORGRS MPE0DE ©A0ABT 000Nl 517716 BOOVO2 MAOPT BOGOOD POBROV 054716 Note that the following sequence will not work because of the terminating comma. ATTY:+«SYS:DOT+RELSJ 2COMMAND Version 20 FILCOM ERROR 2-91 FILCOM -942- Examples (cont) 5. To compare two binary files between locations 150-160 (octal). R FILCOM)) FTTY:/150L/160U+5SYS:SYSTATSAV,SYS:SYSDPY.S5AV) 6. FILE 1) SYS:SYSTAT.SAV CREATED: #818& 30-NOV=-1971 FILE 2) SYS:SYSDPY.SAV CREATED: 1642 29-NOV-1971 000150 200490 QD137 200740 023217 BOB340 BO3320 VAB151 260740 BO4226 404500 DO 4242 664240 VVVV64 WBALS2 260740 PB4A253 661500 202000 4812490 V06253 PRB153 200040 NGSO11 260740 AV2723 V6700 VOT132" MBA154 260740 004063 200040 VWD4243 V6PDT20 VLBZZED PPB155 2081041 777777 202040 0v3241 VO3001 774536 D156 047040 000042 202040 0D 4241 247000 004203 PR@157 254000 000174 251040 604l a2 VOSnan BBAB36 A16N 4T6000 AA6TT4 211040 - 008144 667040 V663D To compare two .SAV files. Note that the files are expanded before the comparison. sR FILCOM) *¥TTY:«SYS:TRY1 «SAV.SYS:TRY.SAV ) Version 20 FILCOM FILE 1) SYS:TRYI.SAV CREATED: 2043 85-JAN~1972 FILE 2) SYS:TRY.SAV CREATED: @818 306-NOV-1971 PAN114 0OG4000 V0140 00NBO0 ABLOVY PB40N0 BDV1 40 oAA116E 777536 BN5536 BPOBCNn BeROoY 777536 BB5536 DeB117T OVPORB GB5536 20P0RR VYRVOY ARB120 GO6900 0O0140 onT7222 VOO140 nan121 200000 BR6DVL Q0ooeY VoT222 WR132 Q10000 200095 NPAVND BRVOOD 010000 PRB133 0@B3727 P57 PR6E643 @BTTT7 PO5164 DV2LVO PWWO137T 003400 200070 46700 BOOOR4 D4ab300 BoBVT4 P14 264000 PB1454 V47000 BOVBVOY 223000 0VB1454 PRV14] 260040 KA1773 200040 Q0@5SPMT5 DeDVBL BB4ATV6 NBB142 201240 001447 402000 AR6644 603240 POT203 PBD143 542240 001634 251040 607221 713200 BPO641S POB144 260040 BO2774 0PB145 621000 VVOADIP PRA146 200240 AQ3504 200740 006606 bRYVSYE PB5302 NAB147 251240 0@@012 0511406 005076 2003060 ODSV64 200400 260740 BB4226 @BG137 D61'700 602400 A0V3T724 - DB5536 Y1222 QvHoOHY gelee2 VOBOOS 403000 POVB1S 663040 BR2761 476000 PR6715 2570060 006705 002150 402000 @03613 2P0151 201040 AB3730 000152 200260 BB3632 260740 ©R4253 D6nNsS20 BBT461 PPO153 321240 200164 2N0042 005011 121200 085175 2-92 BOTS16 -943- FUDGE2 Function - The FUDGE2 program is used to update files containing one or more reloctable binary modules and to manipulate the individual modules within these files. Relocatable binary modules are output by MACRO-10, FORTRAN-10, COBOL, ALGOL, and BLISS-10. A module can be a complete program or only a set of subroutines. One reason for collecting a group of relocatable modules into one file is to enable LINK=10 or LOADER to use the file as a library (refer to the LINK-10 or LOADER used in the updating process: documentation). Three files are 1. A master file confdining the file to be updated. 2. A transaction file containing the modules to be used when updating. 3. An output file containing the updated file. All three files can be on the same device if the device is DSK. on the same DECtape. The two input files can be The desired function of FUDGE2 is specified by a command string. code at the end of the command Only one command code can be specified in each command string. Switches can also be used to position a magnetic tape and to zero a DECtape directory is equivalent to deleting all the files on the tape). directory (zeroing a DECtape WARNING For execution to occur, the command string must be terminated with an ALTmode, represented in this manual by a dollar sign ($), instead of the usual carriage return=-l ine feed. - Command Format -R FUDGE2 ) Zoutput dev:file. ext=master dev:file.ext <nodule (command)$ output dev: s>, transaction dev:file. ext <modules> ' = the device on which the updated file is written. DSK is assumed. master dev: =the device containing the file to be updated default is DSK. . If omitted, If omitted, the A comma is used to separate the master file and the transaction file, transaction dev: = the device containing the modules to be used process, in the updating When more than one file is transferred from mag- netic tape or paper tape, a colon must follow the device name for each file. MTA: : : file, ext For example, Transfer 3 files If the device is omitted, DSK is assumed. =the filename and extension of each file. Filenames must be specified for directory devices, but the extensi on can be omifted, If the extension is not given, it is assumed to be +REL unless the /L switch appears in the command string. case, the output extension .LST is assumed. Version 15 FUDGE 2 2-101 | In this April 1973 -944- FUDGE2 Command Format (cont) file.ext (cont) Project-programmer numbers appearing after a filename apply to that file only. If the project-programmer number appears before the filename, it applies to all subsequent files until another device is specified. The protection code of the master file is given to the output file, The asterisk convention can be used with the input files (refer to Paragraph 1.4.2.4). <modules> =Names of modules (on DSK or DTA only) to be used in the updating process. They are grouped within angle brackets in the same order as they appear in the file and are separated by commas. When manipulating all the modules within a file, only the filename need be specified. Module names cannot appear for the output file. (command) =Code for the function to be performed. This code can be either preceded by a slash or enclosed in parentheses and must appear at the end of the command string. Each command results in the updated file being output to the output device. The command codes are as follows: A Append the specified modules in the transaction file(s) C Compress the master file by deleting local symbols. These symbols are included in relocatable binary modules to the master file. primarily because of their usefulness in debugging pro- cedures. Large libraries of debugged routines, such as LIBOL, frequently have the local symbols deleted in order to save disk space and reduce the amount of /0 required during the loading process. D E Delete the specified modules from the master file. Extract the specified files and/or modules from the input files. The entire file is extracted if module names are not specified. H Type the commands and switches available (help text I Insert modules from the specified transaction files into the master file. The modules from the transaction files are inserted immediately before the specified modules in the master file. A comma is used to separate the from device SYS:). transaction files. Version 15 FUDGE 2 2-102 (continued on next page) April 1973 -945- FUDGE2 - Command Format (cont) (command) (cont) L List the names and lengths of all relocatable modules within a file. The length is in one of two forms: low segment break, high segment break or program break, absolute break The length of FORTRAN modules is not output. The defaylt filename for spooled output is the name of the master file, ' R Replace the specified modules in the master file with the specified modules in the transaction file. The number of replacing modules must be the same as the number of modules to replace. S List all the entry points within a module. These entry points are listed across the page. The default filename for spooled output is the name of the master file. X Write index blocks into a library file on DECtape or disk. Indexes cannot be written on magnetic tape. Index blocks are used in a direct access library search (refer to the LOADER documentation). implies a C command. This command The method of numbering the blocks within a file is different on DECtape and disk. This can cause problems with indexed library files that are created on one device and loaded from the other. The index in an indexed library contains the name of each module in the library along with the block number within the library file of the beginning of that module. On disk, the blocks of a file are numbered relative to the beginning of the file; thus, an index references the same blocks properly no matter where the file is placed on the disk. lished relative to the beginning of the tape. However, on a DECtape, the block numbers are estab- Therefore, the area of the tape on which the file resides determines the block numbers that will be used in the index. When the LOADER references an indexed library on a device different from the one on which it was created, the block numbers in the index may no longer point to the correct location within the library. This problem can also arise when loading an indexed file that was created at one location on a DECtape and then was transferred to o different location on that tape or to another tape. To transfer indexed files to other devices and then to load them from that device, the index blocks should be deleted before transferrin g and recreated on new device. "Any FUDGE2 command which generates a new binary causes a warning message to be output. the file deletes the index blocks and The /X switch writes the index blocks. NOTE An indexed library created on the disk will work properly no matter how many times it is transferred to and from other devices, such as DECtape and magnetic tape, as long as the library is restored to the disk for use by the LOADER or LINK=10, (continued on next page) Version 15 FUDGE2 2-103 | April 1973 -946- FUDGE2 Command Format (cont) Comments are included on the FUDGE2 command string by preceding the comment with a semicolon. All characters after the semicolon, except for the ALTmode, are ignored until the next line feed, vertical tab, or form feed character is read. File directories can be manipulated and magnetic tapes positioned by including switches in the command string. These switches can appear anywhere in the command string and are preceded by a slash or enclosed in parentheses. The following switches are available: /B Backspace a magnetic tape one file. /K Advance a magnetic tape one file. /T Skip to the logical end of tape on a magnetic tape. /W Rewind a magnetic tape. /Z Clear the directory of the output DECtape. Characteristics The R FUDGE2 command: Places the terminal in user mode. Runs the FUDGE2 program, thereby destroying the user's core image. Associated Messages ?CANNOT DO I/O AS REQUESTED (outInput (or output) cannot be performed on one of the devices specified for input do outonly can that device a for put). For example, input may have been requested put. ?COMMAND SWITCH REQUIRED The given command string requires a FUDGE2 command code. ?DEVICE ERROR ON OUTPUT DEVICE A write error has occurred on the output file. ?DIRECTORY FULL ON OUTPUT DEVICE There is no room in the file directory on the output device to add the updated file (non-disk devices only). Version 15 FUDGE2 2-104 April 1973 FUDGE2 -947 - Associated Messages (Cont) PENTER FAILURE n The output filename is null; n is the error code for an illegal filename (non-disk ‘ devices only). PENTER FAILURE The ENTER to write the disk file failed. This message is followed by a line explaining the reason for failure. ?ENTRY BLOCK TOO LARGE, PROGRAM name The entry block of the named program is too large for the FUDGE2 entry table, which allows for 100 entry names. FUDGE2 can be reassembled with a larger table. PFUDGE2 SYNTAX ERROR An illegal command string was entered; for example, the left arrow was omitted or a program name was specified for the output file. ?ILLEGAL BLOCK TYPE dev:file.ext The block type used is not in the range 0-77. ?ILLEGAL DATA MODE FOR dev . The data mode specified for a device in the user's program is illegal, such as dump mode for the terminal. - ?(0)ILLEGAL FILENAME A filename of zero was specified. ?INPUT ERROR ON DEVICE dev: STATUS (hnnnnn) A data or device error occurred on input. ?x IS AN ILLEGAL {CHARACTER SWITCH An illegal character or switch was encountered in the command string. ?LOOKUP FAILURE The LOOKUP to read the disk file failed. This message is followed by a line explain- ing the reason for failure. Version 15 FUDGE2 2-105 April 1973 FUDGE2 -948- Associated Messages (Cont) ?dev:file.ext <> NO PROGRAM NAME SPECIFIED The switch (/D or /R) used in the command string requires that a program name be given. ?dev NOT AVAILABLE The specified device does not exist or is assigned to another user. NOT ENOUGH ARGUMENTS An insufficient number of files of one type has been specified. ?dev file.ext program NOT FOUND The file or the program was not found on the device or in the file specified. If a pro- gram name is printed, this message may indicate that the program names in the com- mand string appear in a sequence different from their sequence within the file. Therefore, the program may actually exist but was missed because of the incorrect sequence in the command string. ?PROGRAM ERROR WHILE RESETTING MASTER DEVICE FUDGE2 cannot find the master device or cannot find the program on the master device. ?TOO MANY FILENAMES OR PROGRAM NAMES More than 40 program names or filenames were specified in the command string. user should separate the job into several segments. The ?PTRANSMISSION ERROR ON INPUT DEVICE dev A transmission error has occurred while reading data from the specified device. PUNEQUAL NUMBER OF MASTER AND TRANSACTION PROGRAM S On a replace request, the number of master programs (or files) does not equal the number of transaction programs (or files). WARNING NO INDEX ON OUTPUT FILE~CONTINUING The user has changed the structure of the indexed library file when deleting, ing, or inserting, thereby invalidating the index. the new file. Version 15 FUDGE2 Reindexing is required. 2-106 append- The index has been removed from -949- FUDGE2 Examples R FUDGE2)) XPT:=DTA1:LIB4A(L)§ | List all relocatable modules from the file LIB40 -REL, located on DTAT1, on the line printer. #DSK:LIB4BE=DTA2:LIB4AA <EXP ¢35BXP «3C >, DTA1:F4<EXP «3A,EXP.3B>(K)$ Replace modules EXP.3 and EXP.3C located in file LIB4AA.REL on DTA2, with modules EXP,3A and EXP.3B in File F4.REL on DTA1; write out the new LIB4AA file on disk and call it LIB4BB.REL. fDTAl:NFILE=DSK=MFILE<M1:M?:M3:M4>, AYOMLE UL - : ’ Insert into MFILE the modules TA1 and TA2 from e TFILEA, and TB1 and TB2 from TFILEB. Create NFILE with the following order: TAl, M1, TA2, M2, TB1, M3, TB2, M4 Insertion is on a one-to-one basis. If there are more modules to be inserted than specified modules before which they are to be inserted, the extra files are ignored, MTALINFILE=DSK ILE<M1 s M2 »M3,5M4 IMF >, DTA3 :TFILEA, DTAZ4:TFILEB /1S However, in this example (where TFILEA.REL and TFILEB.REL contain the modules TA1 and TA2 and TB1 and TB2, respectively) create an NFILE.REL with the following order: TA1,TA2,M1,TB1,T M2, M3, B2, M4 XDTA2 :TESTA :=MT (WK)>MT AL AZ: :(ZA)S Clear the directory of DTA2; rewind MTA1 and advance the tape one file; append the first two pro- gram files from MTA2 to the second file on MTAI and write out the resultant file on DTA2, calling it TESTA.REL. ipUTPUT:LIBARY:DTAl:LIBARY<FIL EY:FILEZ>/A$ Append the modules FILEY and FILEZ contained in the file LIBARY.REL on DTA1 to the end of the file LIBARY.REL on disk. Write the new file on disk and call it OUTPUT.REL. INEWFIL=CLDFIL<TESTsSUBTRC»MULT I>»BASF IL<PRGG, ROUTINsANSWER >, SUBF IL <MATH> (E)'S$ Extract the specified modules from the files OLDFIL, BASFIL, and SUBFIL and create a new output file called NEWFIL. The order of the modules in NEWFIL is as follows: TEST, SUBTRC, MULTI, PROG, ROUTIN, ANSWER, MATH. (continued on next page) Version 15 FUDGE2 2-107 FUDGE2 -950- Examples (cont) iNFNFZJ(/." =DTA2 : OLDF 4 <SURBTLE sDATF ILKOUTINE >/D% Delete the modules SUBTLE, DATFIL, and RCUTNE from the file OLDF40.REL on DTA2 and create a new output file NEWF40,REL on disk containing the remainder of file OLDF40. MNOIDXREL=IDXsRFL(A)S Delete index blocks from the file IDX.REL and write the remainder of the file on the output file NOIDX.REL. The Append command (A) generates a new binary file and therefore removes the index blocks. *1C Version 15 F UDGE2 Return to the monitor. 2-108 -951- GLOB Function The GLOB program reads multiple binary program files and produces an alphabetical cross- referenced list of all the global symbols (symbols accessible to other programs) encountered. This program also searches files in library search mode, checking for globals, if the program file was loaded by the LOADER in library search mode (refer to the LOADER documentation). The GLOB program has two phases of operation; the first phase is to scan the input files and build an internal symbol table, and the second, to produce output based on the symbol table. Because of these phases, the user can input commands to GLOB in one of two ways. The first way is to specify one command string containing both the output and input specifications. (This is the command string format most system programs accept.) The second is to separate the command string into a series of input commands and output commands. Command Formats 1. RGLOB outdev:file.ext [directory] = input dev:file.ext [directory], file.ext,...,dev:file.ext [directory] 6 2. RGLOB followed by one or more input commands in the form dev:file.ext [directory], file.ext [directory], ..., dev:file.ext [directory], .. ) and then one or more output commands in the form outdev:file.ext [directory] = When the user separates his input to GLOB into input commands and output commands (Com- mand Format #2), the input commands contain only input specifications and the output com- mands, only output specifications. Each output command causes a listing to be generated; any number of listings can be printed from the symbol table generated from the current input files as long as no input commands.occur after the first output command. When an input com- mand is encountered aofter output has been generated, the current symbol table is destroyed and a new one begun. Defaults 1. If the device is omitted, it is assumed to be DSK. cation is omitted, the output device is TTY. However, if the entire output specifi- (continued on next page) Version 5A GLOB 2-107 , April 1973 -952- GLOB Command Format (conf) Defaults (cont) 2. If the output filename is omitted, it is the name of the last input file on the line 3. If the output extension is omitted, .GLB is used. If the input extension is omitted, it (Command Format #1) or is GLOB if the line contains only output commands (Command Format #2), The input filenames are required. is assumed to be .REL unless the null extension is explicitly specified by a dot following the filename, 4, If the project-programmer number [proj, prog] is omitted, the user's default directory is used, 5. An ALTmode terminates the command input and signals GLOB to output the cross-referenced listing. In other words, a listing is not output until GLOB encounters an ALTmode. The ALTmode appears at the end of the command string shown in Command Format #1 or at the end of each output command shown in Command Format #2. Switches Switches control the types of global listings to be output. Each switch can be preceded by o slash, or several switches can be enclosed in parentheses. Only the most recently specified switch (except for L, M, P, Q, and X, which are always in effect) is in effect at any given time. If no switches are specified, all global symbols are output. The following switches are available. /A Output all global symbols. This is the default if no switches are specified. /E List only erroneous (multiple defined or undefined) symbols. /F List nonrelocatable (fixed) symbols only. /H List the switches available (help text) from SYS:GLOB.HLP, /L Scan programs only if they contain globals previously defined and not yet satisfied (library search mode). Turn off library search mode scanning resulting from a /L switch. /N List only symbols which are never referenced. /P List all routines that define o symbol to have the same value. The routine that defines the symbol first is listed followed by a plus (+) sign. Subsequent routines that define the symbol are listed preceded by a plus sign. /Q Suppress the listing of subsequent definers that result from the /P switch. (continued on next page) Version 5A GLOB 2-108 April 1973 GLOB -953- Command Format (cont) Switches (cont) /R /S List only relocatable symbols. List symbols with non=conflicting values that are defined in more than one ‘ program . /X Do not print listing header when output device is not the terminal, and include listing header when it is the terminal. Without this switch, the header is printed on all devices except the terminal. The listing header is in the following format: FLAGS SYMBOL OCTAL VALUE DEFINED IN REFERENCED IN Symbols listed are in alphabetical order according fo their ASCII code values. The octal value is followed by a prime () if the symbol is relo= catable. The value is then relative to the beginning of the program in which the symbol is defined. Flags preceding the symbol are shown : below. M N S Multiply defined symbol (all values are shown). Never referred to (i.e., was not declared external in any of the binary programs). Multiply specified symbol (i.e., defined in more than one program but with non=conflicting values). The name of the first program in which the symbol was encountered is followed by a plus sign. U Undefined symbol. Characteristics The R GLOB command: Places the terminal in user mode. Runs the GLOB program, thereby destroying the user's core image. Associated Messages 2COMMAND SYNTAX ERROR TYPE/H FOR HELP An illegal command string was entered. 2DESTINATION DEVICE ERROR An /O error occurred on the output device. Version 5A GLOB 2-109 GLOB -954- Associated Messages (cont) PENTER ERROR n ?DIRECTORY FULL No additional files can be added to the directory of the output device; n is the disk error code. PILLEGAL SWITCH A non-recognizable switch was used in the command string. ?LOOKUP ERROR n ?file.ext FILE NOT FOUND The named file cannot be found in the directory on the specified device. ?dev NOT AVAILABLE The requested device does not exist or is assigned to another job. ?TABLE OVERFLOW - CORE UUO FAILED TRYING TO EXPAND TO xxx The GLOB program requested additional core from the monitor, but none was available. Examples «R GLOB,) Run the GLOB program. *LPT:=MAIN,DTA2 :SUB40,SUB5A All global symbols in the programs MAIN (on DSK), SUB40, and SUB50 (on DTA2) are listed on the line printer. Along with the symbol is listed its value, the program in which it is defined, all programs in which it is referenced, and any error flags. MMTA4:BATCH.REL,DATA: >DTAG NUMBER #SKIMATH L .REL IBARY. ) oR’EL:CLASS) The programs to be scanned are BATCH.REL, DATA.REL on DTA4; NUMBER.REL, CLASS.REL on DTAS; and MATH.REL, LIBARY .null on DSK. *LPT:=/F List only nonrelocatable symbols on the line printer. *DSK:SYMBOL=/R List only relocatable symbols in the file named SYMBOL in the user's default directory . *TTY:=/E (B U EXTSYM SUBRTE Print all erroneous symbols on the terminal. SUBRTE. *tC Version 5A GLOB EXTSYM is an undefined symbol appearing in the program Return to monitor mode. 2-110
Home
Privacy and Data
Site structure and layout ©2025 Majenko Technologies