188 161 301 B__WMCS_Link_Reference_Apr84 B WMCS Link Reference Apr84
188-161-301-B__WMCS_Link_Reference_Apr84 188-161-301-B__WMCS_Link_Reference_Apr84
User Manual: 188-161-301-B__WMCS_Link_Reference_Apr84
Open the PDF directly: View PDF .
Page Count: 58
Download | ![]() |
Open PDF In Browser | View PDF |
WI CAT Multi-user Control System (WMCS) LINK Programmer Reference Manual 188-161~301 8 April 1984. • Softvvare • Publications I WICATsystems I Copyright Statanent Copyright © 1981 by WICAT Systems Incorporated All Rights Reserved Printed in the United States of America Receipt of this rranual must not be construed as any kind of corranitrnent, on the tart of WICAT Systems Incorporated, regarding delivery or ownership of items manufactured by WICAT. This manual is subj ect to change without notice. Revision History First Printing Second Printing Septanber 1981 April 1984 The Purpose of This Manual The manual explains how to use the LINK Program for developnent. Reader's Guide to MCS Publications Instructions: Determine the audience to which you belong and then read only the publications at an arrowncac. Do:tted arrowheads indicate optional reading. System manager Mes user Systems programmer Programmer Reference Mf5tmt~:::::;e.l uals describing system utili1JeS::::·"s~~ Release Notices Software Bulletins I Volume 1 II Volume 2 II iii Volume 3 IjLy?I~~~ 4 II program An introductory user manual is a tutor ial introduction to a software product. In other words, use of the product is explained in a step-by-step, user-friendly format· that walks you through same fundamental aspects of the product. When you complete the introductory manual, you have· the experiential basis for understanding the products's user reference manual. User reference manuals are written for those who are new to the product (but who have read the introductory user manual) as well as for the experienced user. Systan manager reference manuals contain information for those who perform administrative tasks associated with routine system operation. Programmer reference manuals are written for programmers who at understand programming fundamentals. iv least WMCS LINK PrograIIlIIer Reference Manual Table Of Contents CHAPI'ER 1 1.1 1.1.1 1.1.2 1.2 1.2.1 1.2.2 CHAPI'ER 2 2.1 2.2 2.2.1 2.2.2 CHAPI'ER 3 3.1 3.2 3.2.1 3.2.2 3.2.3 3.2.4 CHAPI'ER 4 4.1 4.1.1 4.1.2 4.1.3 CHAPI'ER 5 5.1 5.2 5.3 5.3.1 OVERVIEW '!HE RCLE OF THE LINKER Program Modules • • • • • • Compilation And Assembly LINK FUNCTIONS ••••• Executable-irrage File Cross Reference Map File · . . . . 1-1 ••• 1-1 1-4 • 1-4 • 1-4 1-4 SYMBOLS AND REFERENCES DEFINITION TYPES Local Symbols Global Symbols . .. . . . . . . . . . • • • • • • • 2-1 2-2 2-2 2-3 OBJECI' MJDULES 3-1 • • • • • • • • • • 3-5 DEFINITION REroRD TYPES Delimiter • • Code • • • Constants/labels Global Symbols · . . . . • • • • • • • . . . . . . . . . . . 3-5 3-6 3-6 3-6 • • • • 4-5 4-6 4-6 4-7 • • • • • • • ., ., •• • • • • • • • 5-1 5-2 5-3 5-3 IMAGE CREATION BIT MAP • • • • • • • Disk Memory Correspondence Initial Memory Allocation •• Shared Memory Page ....,. .... LIBRARIES DEFINIro A LIBRARY PR.EI,INK • • • • • • • • • REFERENCrnG LmRARIES Default Library •• v ....• Table of Contents 5.3.2 APPENDIX A Other Libraries .............. 5-3 'mOOBLESEOOl'ING A.I LINK DIAGOOsrIC MESSAGES A.2 A.2.1 A.2.2 MISCELLANEaJS ERRORS .... File Empty Or Does Not Exist •• Invalid Symbol Address •••• APPENDIX B EXAMPLE OF PROGRAM DEVElDPMENl' APPENDIX C RELOCATABLE MJOULE FOR-mT APPENDIX D CROSS REFERENCE MAP LISTING APPENDIX E BIT MAPS AND RECORDS vi •• A-I • A-I •• A-2 • A-2 TYroGRAPHlCAL CDNVENTIONS USED rn '!HIS MANUAL Uppercase letters within text indicate sample command line character strings, file designations, diagnostic messages, and reports. Such samples are in upt:ercase when run into the text so that you can distinguish what would be typed (or what would appear) on the screen. Examples set off from the text are in lowercase. Bold facing indicates what you should type onto the screen, i.e., whereas uppercase characters indicate sample character strtngs, etc., that are part of an example, bold faced characters indicate what you must type as part of a procedure. Square brackets, [], indicate a function key, the name of which appears in uppercase within the brackets, e.g., [RETRN], [crRL], etc. Underlining is used for emphasis. vii CHAPI'ER 1 OVERVIEW The WICAT Multi-user Control Systen (WMCS) LrnK Program is a programming tool used to prepare the output of a compiler or assembler so that that output can be executed by the computer's hardware. Therefore, LINK produces a file that is an executable inage. The executable irrage has sharable and nonsharable segments. segments can be shared by more than one process. Sharable LINK also creates a listing of symbols and addresses useful for referencing. cross The description of the LINK Conmand, in the WIChT Mul ti-user Control System (WMCS' ~ Reference ~1anual, tells you how to execute LINK. 1.1 '!HE ROLE OF THE LINKER The object modules created by language translators (including assemblers) are nonexecutable. External symbol references are unresolved. Unresolved symbol references include run-time modules required by high level languages as well as user-specified external declarations. The linker binds the symbol reference with the symbol definition and creates a memory inage that can be read into memory and executed. Wi thout a linker, nodular prograrmning is irtp)ssible, and language translators would be much more complex. 1.1.1 Program Modules Modular programming, the process of combining separately compiled or assembled modules into an executable iItage, simplifies and enhances program development in the following ways: 1. Smaller modules are easier to write and maintain 1-1 because it is easier to find and fix errors in a smaller module. 2. Many modules are applicable to more than one task, and modules that have been used and tested in other programs can be included in new applications. This steeds program developnent. 3. Complicated programming requirements are simplified by breaking the requirements into smaller tasks, each of which can be allocated to a different person for implementation and debugging. 4• In sane cases, the best language for one module may not be best for another part of the program. Modular programming allows modules written in different programming languages to be combined in a single application. Thus the programmer can use the language most suited to the application. 1-2 Figure 1.1 illustrates the role of the linker in modular programming wherein TIME is a computer program that interacts with the user to set the system clock on a WlCAT system. The interaction is achieved through a main program written in WICAT Pascal. The clock is actually set by an assembly language program written in WICAT Assembler. SET.ASM TIME.PAS Assembler P."'_SCAL Compile!" TIME.MRL SET .MRL LINK TIME.EXE Figure 1.1. Modular Programming 1-3 1.1.2 Compilation And Assembly LINK simplifies the work done by language translators because it assigns code to executable p:iges. 1.2 LINK FUNCrIONS LINK produces two files: 1. An executable-inage file (EXE is the file extension for this file) • 2. A cross reference-map file for this file). (Mrn is the file extension These files are discussed in the following sections. 1.2.1 Executable-inage File An executable-inage file is file type number 1. The record size of the file is 1024 bytes and the first record of the image file contains bit maps. each of which is 256 bytes long. These maps represent logical address stace. Each of the bits in a map is a semaphore for a l-Kbyte segment of address Stace. The first map defines the corresp)ooence between the records on the disk and their ultimate location in memory. The secooo map defines the initial memory allocation. The third map indicates which pages can be shared. The fourth map is not used on a WlCAT computer. 1.2.2 Cross Reference Map File This file is a listing file name and starting address. 1-4 that specifies each module CHAPl'ER 2 SYMBOLS AND REFERENCES LINK's primary responsibility is to resolve between modules. symbolic references 2.1 DEFINITION A symbol is an identifying label or name associated with one or more program statanents or data area. A reference is the use of a symbol in a program statanent of data definition. Figure 2.1 illustrates a sample program called TEST. The program is written in Pascal and consists of one main routine and one subroutine. 2-1 SYMBOLS AND REFERENCES 1 PRcx:;RAM TEST; 2 3 VM I INl'EGER; . 4 5 PROCEDURE INCREl-1ENT ; 6 BOO IN 7 I := I + 1; 8 END; 9 10 BEGm 11 12 13 I := 0; INCRao1ENT ; END. Fig 2.1 Sample Program These are the symbols used in TEST: TEST The name of the main routine INCREl-1ENT The name of the subroutine I The name of a data area or variable These are the references used in TEST: line 7 2.2 I is referenced twice line 11 I is referenced once line 12 The subroutine IN~~ is called 'lYPES Symbols are one of two types: type differently. 2.2.1 local or global. LINK treats each Local Symbols Local symbols can be referenced only which the local symbols are defined. in the routine in Note that for a program such as that in figure 2.1 (where there are no local symbols) the compiler or assembler resolves all references to local symbols. 2-2 SYMBOLS AND REFERENCES 2.2.2 Global Symbols G100al symbols can be referenced by routines other than the routine that defines them. For example, in figure 2.1 all symbols are global because they are def ined by TES!' (the main routine) and are therefore global to all subroutines. LINK resolves global symbol references (see chapter 4). Global symbols are of two types: 1. Internally defined symbols, defined in program. 2. Externally def ined symbols, def ined in a routine that is external to the main program, and independently compiled (e.g., runtime routines used by Pascal) • 2-3 the main CHAPrER 3 OBJECr MJDULES 3 .1 DEFINITION The output (or object) file for the compiler or assembler is the input file for LINK. An object file consists of modules. In the case of the Pascal compiler, a discrete module is created for each procedure in the program along with one for the main program itself. An additional module is created for gldJal variables. In chapter 2, figure 2.1, we examined a simple Pascal program. Figure 3.1 illustrates the modules created by the compiler. Incranent Fig. 3.1 Test Modules Created By PASCAL Globals Compiler For TEST Program A module can contain several records. An object record has following hexadecimal format displayed in bytes: I IByte I I Code I Code I 1Type ICount 1Relative AddresslByte IIByte 21 Fig. 3.2 the I Code ICheck I IByte nl Sum I Object Record Format This is an explanation of the terms aPt:earing in figure 3.2: Type of object record described in a label. Byte Count 3.2, Number of bytes in the record following the record type (not including the byte 3-1 OBJECT M:>DULES count itself) • Relative Address Relative address of the the module. code bytes Code Byte In the case of a code type record, the code bytes contain the actual hexadecinal code for the module; in the case of a symbol, the code bytes contain in a name. Checksum The checksum is the one I s complanent the sum of the bytes. Diagrams showing the format of each type of record are app:ndix D. found of in Figure 3.3 shows the hexadecimal object file created by the Pascal compiler for program TEST (shown in figure 2.1). Note, the ~ree modules relating to figure 3.1. 3-2 OBJECl' MJOOLES Relative Tfl:e Coont Address RP Rl 05 R7 OA R8 05 00000000 00000000 00000000 00000002 00000006 R2 OB RP 05 OF 17 16 05 00000000 00000000 00000000 00000008 00000012 05 25 OB 16 16 OB 16 OF OB 05 00000000 00000000 00000000 00000020 00000002 00000008 OOOOOOOE 00000014 0000001C 00000022 00000026 05 16 05 05 00000000 00000000 0000004C 00000000 Rl R2 R7 R8 OC Code/ASCII String/Checksum FA 2E53544152542E09 4EF900000000AD 544553 543083 F4 Branch to start of main progran I FA INCRE%ttENT roodule I 494E4352454D454E5431lA I 4E56FFFC2DOD527go00000~E4E5E4E7503 I 2450415343414C2D474C4F42414C242D32A8 lEa I RP Rl R2 R2 R7 R7 R7 R7 R7 R7 R8 OA I I I I I I I I I I I TESl' module 2450415343414C2D474C4F42414C242D32AE 2450415343414C2D474C4F42414C242D32A8 52525230303060 2450415343414C2D474C4F42414C242D329C 494E43524s4D454E5431FE 5252523030314B D4 I RI Rl R8 R9 Fig. 3.3 GIDBAL module I FA I 2450415343414C2D474C4F42414C242D32B0 lAB IFA Object File For TEST Program Each record begins with a record label, 'R', followed by an integer ,between 0 and 9 or one of the alphabet characters 'I' or 'P'. References to global symbols (subroutines. variables, etc.) must be made using the M68000 absolute long addressing mode. In the object file, using figure 3.3 as an illustration, all references to internally and externally defined global symbols (refer to chapter 2) are enclosed in a box. Note, all references to internally def ined global symbols have an offset into the global module while all references to externally def ined global symbols have an address value of O. These global references can be better understood by studying a listing of the assembly code generated by the compiler for TEST. This listing is illustrated in figure 3.4. 3-3 OBJECT mDULES WICAT Pascal Version 1.3 iprocedure: increment ( 1) 0000 4E56 a6,i-4 link FFFC 0004 2DOD move. 1 as ,-(a6) 0006 5279 il,74 ad~.w 0000 glcbal 004A OOOC 2A5E (a6) +,a5 IOOve.l OOOE 4ESE unlk a6 0010 4E75 rts iprocedure: test ( 0) 0000 2F3C move. 1 0000 0006 0006 2F3C move. 1 0000 0028 OOOC 4EB9 jsr 0000 0000 0012 4279 clr.w 0000 004A 0018 2A4E IOOve.l OOlA 4EB9 jsr 0000 0000 0020 4EB9 jsr 0000 0000 Fig. 3.4 i6,-(sp) global i40,-(sp} global xxxxxx RRROOO 74 global a6,aS xxxxxx INCREMENTI xxxxxx RRROOI Assembly Code Generated By Compiler For TEsr Program Note the following: 1. Global reference for I following address 0006 in module: INCREMENT 2. Global references for address 0012. TEsr, following 3. External reference for runtime routine RRROOO address C. following 4. External reference for address lA. following 3-4 I in module: INCREMENT module 5. 3 .2 External reference of runtime routine address 20. RRROOI following REXDRI) TYPES There are four broad categories records can be classified: into which 1. Delimiter. 2. Code. 3. Constant/label definitions. 4. References to global symbols. 3.2.1 all cbject module Delimiter There are six record t~s in this category, as defined by the secooo character in the type field: RP Delimits a sharable segment; RI Delimits a nonsharable segment; RO Identifies the main program. The program name is coded in the code bytes. This record delimits the sequence of records pertaining to the main program. Rl Identifies a module or subroutine. The module name is coded in the code bytes. This record delimits the sequence of records pertaining to a module. R8 This record marks the end of a module. '!he address of the first free location };ast the end of the module. LINK uses this offset from the start of the rodule to determine where it can start loading the next module. 'Ihl.s record contains the amount of sp9.ce used by the module. R9 This record marks the end of pure storage. the irrpure storage. cbject An object file can contain several modules. 3-5 file. 0BJECr r-DDULES 3.2.2 Code An R2 label indicates that the record contains program code. 3.2.3 Constants/labels There are four types category: 3.2.4 of object records found in this R3 Identifies a local constant. The name is coded in the code bytes. The relative address field contains the value of the constant. R4 Identifies a local label. The name is coded in the code bytes. The relative address field contains an offset p:>inting to the labeled location. R5 Identifies a global constant. in the code bytes. R6 Identif ies a global label. the code bytes. The name is coded The name is coded in Global Symbols Record type R7 identifies a reference to any global symbol. The relative address field is the location (within the module) of the reference to the global symbol. 3-6 CHAPI'ER 4 I~E CREATION LINK reads relocatable object modules, resol ves references between modules, and creates an image file that the operating systen can load and execute. relocatable modules are read in, they are placed in a virtual address sI=Sce that resembles the address s{:Bce the program uses dur ing execution. By convention, this address sI;ace is divided in half with the lower half reserved for program code and constants. The upt;er half is reserved for the stack and other variables. '!he purpose of this convention is to allow the non-changing or pure portions of programs to be shared among several users. See figure 4.1. As 4-1 I~E CREATION 000000 Interrupt and Exception Vectors (This page physically resides in RCM and is shared by all users.) 001000 Pure Section (This area contains constants and code which may be shared between users. ) 100000 Impure Section (This area contains variables and data which may not be shared.) lFEFFF Fig. 4.1 User Stack (The stack starts at lFEFFF and grows towards low memory.) I I I Memory Map Of The 2-Mbyte Virtual Address Space Space is allocated consecutively in these two segments. Allocation in each area is controlled by a base };X)inter that };X)ints to the lowest unallocated memory location. The };X)inter into the lower tlalf of the address space is called Pure-Base and has an initial value of 1000 Hex. The };X)inter into the up~r half of the address sJ;Bce is called Impure-Base and has an initial value of 100000 Hex. As the relocatable modules are read in, they are placed into the virtual address spice relative to one of these two bases. The base p::>inter chosen depends on the I RP I or I RI' type record that must be the first record in a module. If the record is type 'RP' the module goes into the lower half of the address spice. If the record is type 'RI' the module goes into the uP};:er half of the address sJ;Bce. The end of a module is delimited by an IRS' type of a record. The address field of an ' RS I type record contains a count of the number of bytes of memory used by the module. When a module has been completely read in, the base };X)inter is incremented by the value of the address 4-2 I~E field in the R8 record. botton of free memory. Thus the pointer oree again CREATION points to the Between the start and end of a module, three classes of records may be encountered. 'nle first class causes data to be entered into the virtual memory address space. The second class causes ~bols to become defined. The third class marks a reference to a symbol. There is only one instance of the first record class. rrbis is the 'R2' type of record. This record causes bytes of data to be stored in the virtual memory sp:lce. The secooo and third record classes affect the linker symbol table that is defined by the series of Pascal statements in figure 4.2. TYPE Symbol-Table Next Name Value Referenced = Record Symbol-Table; Packed Array [1 •• 20] of Char; Address List-of-Undefined; End; List-of-Undefined = Record List-of-Undefined; Next Value : Address; End; Fig. 4.2 PASCAL Definition Of Linker Symbol Table Pictorially, the symbol table corresponds to 4.3. 4-3 the diagram in figure I~ ~TION I Syrnhead List-hea~ Next ~ /' 4t1 Name I Value I Referenced \ ~ List-head I Next, I Value I I t I 4 I .Main.O I FFFFFFFF I " I ~ ~ ~. 111111111111 I o I 00001002 I t t I o I Start I 00001000 I " """ I " I r- It I ~. I First I 00001010 I ~ r+f I I Fig. 4.3 Pictorial Representation of LINK Symbol 4-4 ~ 111111111111 ~. 111111111111 u I 00001050 I • I 00001058 I IMAGE CREATION The second record class consists of types ' RQ', 'Rl', , R5', and ' R6 ' • These result in a symbol table entry being built if one does not yet exist and cause the value field of the symbol table entry to become defined. The third record class consists of only record type 'R7 ' • An occurence of a type 'R7 I record causes a symbol table entry to be buil t if one does not yet exist. An entry is then made into a list of locations of undefined symbols that is associated with the symbol table entry. After all of the relocatable modules are read in, LINK procedes to add the value field of each symbol table entry to all of the locations where it is referenced as s~cified in the associated list of references to undefined symbols. After the undefined references image file is created. 4.1 have been resolved, the executable BIT MAP The executable inage file has a record length of 1024 bytes. The first record of this file contains bit maps each of which is 256 bytes long. These bit maps are: 1. Disk Memory Cor resI;X)ndence • 2. Initial Memory Allocation. 3• Shared Memory Page. 4. IDT USED. These maps are arranged as shown in figure 4.4. 4-5 disk-rnemory corresIX'Dlence map record 1 $OOa-OFF initial memory allocation map $lOa-lFF shared memory page map $200-2FF (not used) $30a-3FF record 2 $400-??? Fig. 4.4 4.1.1 ]mage File Format Disk Memory CorresIX'ndence The first bit map defines the relationship between the 2-Mbyte logical address st;:ace and the records of the executable inage file. Each bit of this map corresIX'oos to 1024 bytes of memory. If the bit is set, the next record from the executable inage file is read into memory at the location corresIX'ooing to the bit position. 4.1.2 Initial Memory Allocation The second bit map indicates which pages of memory should be allocated to the new process. Again, each bit corresIX'DlS to 1024 bytes in the 2-r-tJyte address spice. The operating systen allocates memory to 4096-byte pages. Therefore, the setting of any of the bits on the tBge causes the full 4096 bytes to be allocated. 4-6 IMl'GE CREATION 4.1.3 Shared Memory Page The third bit map is the memory-protection bit map. '!be setting of any of the bits within the range corresp:>rrling to a 4096-byte page causes the full 4096 bytes to be write protected by the operating systan. This process makes the page sharable because the contents cannot be changed. There is sI:Bce for a fourth bit map that is unused at this time and is assumed to be zero. 4-7 CHAPl'ER 5 LmRARIES LINK uses undefined input. 5.1 the content of a libraty definition file to resolve references after all the user-s~ified files have been DEFINING A LIBRARY To define a library, you create a file containing a list of equivalences. An entry in this file is a symbolic name that can be referenced followed by the filename of an object module that def ines the symbolic name. You can create this file as a normal text file by using the VEW Program (read the Virtual Editing Window (YEW) ~ Reference ~.anual). The standard extension for a library definition file is .DEF. When referencing a file in an entry, you should enter the filename in upt:ercase and include the file extension. A line that begins with an ampersand, @, indicates indirection through another library definition file. In this case, LINK resJ:X)rxls as though the contents of the other file had been inse rted at this J:X)int. Figure 5.1 is an example of a library definition file. 5-1 LIBRARIES ••• Symbolic Name ••• I •••••••••• File Name •••••••••• 1 2 3 12345678901234567890 4 5 123456789012345678901234567890 I RRRCCO I J)SO/PRTLm/INIT.MRL RRROOI I J)SO/PRTLm/EXIT.MRL JU'I'S'I'Iillli I J)SO/PRTLm.5VC/PUTSTR.MRL LDSO/RLm/AID'IHER-DEF Fig. 5.1 5.2 Libra~ Definition File PRELINK When LINK is ready to use a file, it must translate the name of the file to get the File Control Block (PCB) number assigned to the file. You can often save time during the linking process by performing this translation as a separate step. The PRELINK Program does this. Execute PRELINK by typing either of the following command-line character strings and then striking [RE'mN] : > prelink linklib.def or > prelink _dsO/syslib/linklib.def PRELINK assumes the file has a .DEF extension if no file extension is specified in the PRELINK command-line character string. PRELINK adds another column to the list of equivalences in the .DEF file. This column consists of the PCB numbers of the specified files. See figure 5.2 for an example of a libra~ definition file after processing by PRELINK • ••• Symbolic Name •• ~I •••••••••• File Name ••••••••••• 1••••• PCB Number •••••• I 1 I 3 21 4 51 6 7 12345678901234567890 I 123456789012345678901234567890 I 12345678901234567890 ------------------·~I--------------------------+----------------- RRRCCO I J)SO/PRI'Lm/INIT.MRL I J)SO//#96.1 RRROOI I J)SO/PRTLm/EXIT.MRL I J)SO//#97 .3 .....PUTSTRnX; I J)SO/PRI'Lm.5VC/PUTSTR.MRL I ,.])SO//#106.1 LI:M)/RLm/AID'IHER.DEF Fig. 5.2 Libra~ Definition File After Processing By Prelink Note: PRELINK creates a new version of the library definition file in the same directory as the original file. To 5-2 LIBRARIES conserve disk stBce, you may want to purge definition files after running PRELINK. 5.3 old library REFERENCING LIBRARIES 5.3.1 Default Library LINK always references the file LINKLm.DEF, found in directory /SYSLm/ on the systan disk. OUr ing initialization, LINK reads the contents of this file to make the names of library routines available to programs. 5.3.2 Other Libraries To reference another library definition file, use : LmRARY switch on the command line. For example: the > link one,two,three :library=test The foregoing command tells LINK to link files ONE, and THREE and reference TEST.DEF as a library file. 5-3 'IWO , APmNDIX A TRaJBLESBJOrING A.I LINK DIAGNJSl'IC MESSAGES These are the diagnostic message associated with LINK: Display Undefined Symbols Checksum Error In Reading Relocatable Module Unexpected End of File While Reading Relocatable Module Address Of Undefined Reference Accesses Unallocated Disk Page Open Error (WMCS diagnostic message number) Read Error (WMCS diagnostic message number) Write Error (WMCS diagnostic message number) Close Error (WMCS diagnostic message number) Delete Error (WMCS diagnostic message number) A.2 MISCELLANEClJS ERRORS Certain conditions lead to errors that do not give the preceding error messages. Same of these conditions are discussed in this section. A-I TRaJBLESHOal'ING A.2.l File Empty Or Does Not Exist If a s}:ecified file is empty or cbes not exist', the message I Unexpected end of file encountered while reading I is displayed followed by the name of the file. 'nle solution is to use the ~PE Command to display the contents of the file. Be certain to sI;Ecify the filename given in the diagnostic message. A.2.2 Invalid Symbol Address LINK does not check the validity of symbol addresses. If for sane reason, a symbol has an offset beyond the end of its module, this error can hapI;En to be caught during the process of adding the actual address to the location of an undefined reference. 'nle solution is to examine the source modules for unreasonable address offsets. A-2 APmIDIX B EXAMPLE OF PR~ DEVELOPMENr . The diagram on the next page shows how files produced by the assembler and higher-level language compilers nay be linked to form an executable inage. A number of relocatable code (.MRL) files can be linked in one operation. B-1 EXAMPLE OF PRCX'.iRAM DEVELOPMENT Assembly Source Pascal Source PRCGl.ASM PRCG2.PAS Assembler Pascal Ccmpiler Print File Print File PRCGl.PRN PRinter to form the address of the first free location :t;Bst the end of the module. The address of the first free location p:lst the end of the roodule then becomes the new location pointer. C-3 RELOCATABLE K:>DULE FORMAT ROC BYTE TYPE NV A7 x IP P/(B' 50 HnIN@ IL P A7/(B'HnIN@B' 4F B'B'HnIN@'-(O OC B 1nD / FC n8 lQ@11 04 n*Jo& f 20 S'rB(So 06 fvS'SHhR'V 4F 2F 2C ,?HoB'B'B' ,0/, 00 48 E7 /,/,NVHg 3C 00 01 I/.Bg'?<'?< 67 OC B9 B9 7C 04 00 04 24 55 OE 6E N9R/.HzBg N9$ IL • /.Bg'?<'? HzN9 -'-EXECUTING "J 4F 4F UMP TO HERE" LOO 4E 54 P IN PASCAL pr--n FO CO IMENVlHgp@ BIT MAPS AND REXDRDS OOOOOSAO 20 6E 000008BO 42 53 000008CO 00 OF 00000800 52 83 000008EO B2 83 000008FO 4A 81 ReCord 00 24 OC 4A 6C 67 OE 2E 01 82 OC 28 70 00 00 66 22 B6 14 OA 09 E2 4E 81 22 22 6F 32 20 6A 4E 4E 02 2E 01 08 13 22 5E 00 13 11 3C 02 01 08 3C 7C 00 E8 06 48 00 00 20 SA 01 Cl 2A 20 53 02 00 6A 53 00 80 81 30 02 80 20 66 00 13 22 6E 60 F8 00 01 03 F8 04 npnN< Sfx B$.nNnh OAO PJfb2 .HAj n 21 nN <*Snx Jg(6jl ' 00000900 11 59 00 20 11 7C 00 01 00 00 11 7C 00 01 00 01 00000910 2F 08 4E B9 00 00 15 30 53 81 60 D4 2D 6E 00 04 00000920 00 OE 4C DF 03 OF 4E 5E DF FC 00 00 00 OA 4E 75 00000930 4E 56 FF EE 2F 08 20 6E 00 08 4A 28 00 00 67 IE 00000940 61 00 00 92 52 A8 00 10 42 28 00 00 42 28 00 01 00000950 2D 6E 00 04 00 08 20 SF 4E 5E 58 SF 4E 75 48 7A 00000960 00 lC 60 04 48 7A 00 4C 4E B9 00 00 13 FE 2F 08 00000970 4E B9 00 00 13 9E 4E F9 00 00 14 50 52 52 52 30 00000900 32 32 20 2D 2D 20 50 55 54 20 2D 2D 20 20 46 49 00000990 4C 45 20 43 4F 4D 50 4F 4E 45 4E 54 20 44 41 54 000009AO 41 20 49 53 20 4E 4F 54 20 56 41 4C 49 44 OD OA 000009BO 00 00 52 52 52 30 32 32 20 20 2D 2D 20 50 55 54 000009C0 20 2D 2D 20 20 57 52 49 54 45 20 46 41 49 4C 45 000009DO 440D OA 00 48 E7 80 60 42 AE FF FC 4A 28 00 OC 000009EO 67 08 2D 7C 00 00 00 03 FF FC 4A 68 00 18 67 00 000009FO 00 SA 42 6E FF EE 3D 68 00 18 FF FO 42 6E FF F2 Y 1I /N90S'T-n k$'_INu NVn/ nJ(g aR(B(B( -n ~uHz 'HzLN9-/ N9NyPRRRO 22 - PUT - FI LE CDMIDNENT DAT A IS NOT VALID RRB022 -- PUT WRITE FAILE DHg'B.IJ( g-I IJhg Bnn=hpBnr 2 OOOOOAOO 3D 68 00 14 FF F4 20 28 00 10 90 A8 00 lC 52 OOOOOAlO BO AE FF EE 5C EE FF FA CO E8 00 14 43 E8 00 00000A20 24 49 D5 CO 20 2E FF F2 60 02 14 D9 51 C8 FF 00000A30 4A 2E FF FA 67 00 00 3E 2F 28 00 08 2F 28 00 00000A40 2F 2E FF FC 2F 3C FF FF FF FF 48 68 00 20 20 OOOOOASO FF F2 D1 97 2F 2E FF EE 48 6E FF F6 48 68 00 00000A60 4E 40 00 05 4A A8 00 04 66 00 FE FA 20 2E FF 00000A70 Dl A8 00 lC 4C DF 06 01 4E 75 2F 28 00 08 2F 00000A80 00 10 2F 2E FF FC 2F 3C FF FF FF FF 48 68 00 00000A90 2F 3C 00 00 00 01 48 6E FF F6 48 68 00 04 4E OOOOOAAO 00 OS· 4A A8 00 04 67 CC 60 00 FE BA 4E 56 00 OOOOOABO 2F 08 20 6E 00 08 4A 28 00 02 66 24 4A 28 00 OOOOOACO 66 08 2F 08 4E B9 00 00 17 28 42 28 00 00 52 OOOOOADO 00 10 2D 6E 00 04 00 08 20 SF 4E 5E 58 SF 4E OOOOOAEO 48 7A 00 16 4E B9 00 00 13 FE 2F 08 4E B9 00 OOOOOAFO 13 9E 4E F9 00 00 14 50 52 52 52 30 32 31 20 20 FC lC 2E 04 EE 28 20 40 00 00 A8 75 00 20 80 =ht «R OOOOOBOO OOOOOBlO 00000B20 00000B30 00000B40 OOOOOBSO 00000B60 00000B70 6E 00 03 lC OC 03 O.n\nz@hCh $IU@ .r'YQHI J.zg>/(/( / .I/ -d &,0 6HR TAj rxFf nt08 >$, 2 BIT MAPS AND RmJlIDS 00001700 00 00 00 00 00 00001710 00 00 00 00 00 00001720 00 00 00 00 00 00001730 00 00 00 00 00 00001740 00 00 00 00 00 00001750 00 00 00 00 00 00001760 00 00 00 00 00 00001770 00 00 00 00 00 00001780 00 00 00 00 00 00001790 00 00 00 00 00 000017AO 00 00 00 00 00 000017B0 00 00 00 00 00 000017CO 00 00 00 00 00 00001700 00 00 00 00 00 000017EO 00 00 00 00 00 000017F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E-10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 WICAT Systems, Inc. Product-documentation Comment Form 'IVe are constantly improving our documentation. and we welcome scecific comments on this manual. Cccument Title: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ~ Part Number: Your Position: CJ Experienced user o System manager o Systems analyst a AJ:)plications programmer o 0 Novice user Hardware technician Questions and Comments Brieffy describe examcles. illustrations. or information that you think should be added to this manual. What would you delete from the manual and wny? What areas need greater emphasis'? Ust any terms or symbols used incorrectly. ,7a~o, -009 a Page No. First Fold NC ::lCSiAGE NECESs;.~y IF MAILED IN rHE UNITEe SiATES BUSINESS REPLY MAIL ~,~ CL,;.SS ~SI'AGi Wlu., ~MIT ae ~IO ae NO. 00028 C~EM. ufAI-4 AOO~Essee WICAT Systems, Inc. Attn: Corporate Communications 1875 S. State St. Orem, UT 84058 Second Fold Tace - ........
Source Exif Data:
File Type : PDF File Type Extension : pdf MIME Type : application/pdf PDF Version : 1.3 Linearized : No XMP Toolkit : Adobe XMP Core 4.2.1-c043 52.372728, 2009/01/18-15:56:37 Create Date : 2011:08:02 13:58:27-08:00 Modify Date : 2011:08:02 16:56:49-07:00 Metadata Date : 2011:08:02 16:56:49-07:00 Producer : Adobe Acrobat 9.45 Paper Capture Plug-in Format : application/pdf Document ID : uuid:496b5476-2265-41ef-a57d-a91a751cc0ea Instance ID : uuid:b08cb4bf-64fe-4baa-9a5c-203442bb231b Page Layout : SinglePage Page Mode : UseNone Page Count : 58EXIF Metadata provided by EXIF.tools