Abstract:
A distributed time synchronization system and method synchronizes nodes within a frequency hopping spread spectrum (FHSS) local area network (LAN) group to a virtual master clock value. Each node system of the present invention comprises a CPU, an input device, a display device, a printer or hard copy device, a given amount of RAM and ROM memory, a data storage device, a local clock, a transmitter/receiver, an antenna, a virtual master clock processor, and a common data bus. The method of the present invention comprises the inclusion of a node's local clock value in a message just prior to transmission over the network, storage of a node's local clock value in RAM after an incoming message has been received, and the calculation of the time delay between the sending node and the receiving node by the virtual master clock processor. The virtual master clock processor utilizes this time delay in maintaining a virtual master clock value, which it uses in adjusting the value of the node's local clock at periodic intervals. This synchronizes the receiving node to the virtual master clock value. If the magnitude of the time delay exceeds a maximum allowed value, the magnitude is clamped to the maximum allowed value, thereby maintaining synchronization withing a predetermined tolerance. A node can receive a message transmitted over the FHSS LAN regardless of the message address. Synchronization is therefore maintained without requiring a node to be able to communicate with any specific node within the FHSS LAN group.
Abstract:
A system is provided for managing code resources for use by client applications in a computer, wherein the computer has internal memory storing at least one client application. The apparatus comprises a resource set catalog stored in the internal memory. The resource set catalog identifies a plurality of function sets of functions by respective function set IDs. Further, the resource set catalog includes set records which characterize the functions within the respective sets. A dispatch engine, in the internal memory, linked with a client application, supplies a particular function set ID in response to a call by the client application of a particular function which is a member of a corresponding function set identified by the particular function set ID. A lookup engine in the internal memory, coupled with the resource set catalog and the dispatch engine, is responsive to the particular function set ID to look up a set record for a corresponding function set in the resource set catalog. Finally, a link engine in the internal memory and coupled with the dispatch engine returns the particular function to the client application in response to the set record. Thus, because the link engine is responsive to the set record, which is not linked with the client, the client need not be aware of changes in the structure of the library in which the particular function set resides. Thus, the function set can be moved into and out of internal memory, revised, placed in different sections of internal memory, and otherwise handled independently of the client, without requiring re-compilation of the client application.
Abstract:
A window management mechanism allows a user to open a window as a drawer or, perhaps more appropriately named, a pop-up window. The drawer is an opened window that a user has dragged down to a drawer region at the bottom of the screen such that only the title bar or some drawer handle illustration is left showing. When the user does this, the window remains open but is kept offscreen. The user may momentarily pop the window back onto the screen by clicking on the window title bar or drawer handle, or by dragging the cursor into the window icon during a drag. The window stays onscreen as long as no other windows are selected. As soon as a user selects another window, or opens a file with a double click within the drawer, the window slides back offscreen. This allows the user to set up easy access windows. Another feature of a drawer window allows the user to open them during a drag. To do so, the user drags an object or the cursor into the drawer window that is desired to be opened. When the cursor touches the bottom of the screen, or an area within a threshold of the bottom of the screen, the drawer window slides open a notch at a time. As long as the user pushes against the bottom or remains in this threshold region, the drawer slides open.
Abstract:
A document-centered user interface architecture for a computer system employs parts as the fundamental building blocks of all documents. All data is stored in the system as a part, which is comprised of contents and an associated editor. The contents and the functionality of the editor are available to the user wherever the part is located, whether in a document, on a desktop or in a folder. Parts function as containers for other parts, thereby facilitating the compilation and editing of multimedia or compound documents.
Abstract:
A method and apparatus for generating patching resources in an information processing system having operating instructions on a Read Only Memory Device. The present invention simplifies the patch generation and installation processes. A patch resource is generated and used by a patch installation process. Patch resources are generated for each ROM version by comparing previous ROM versions to the new ROM version. A patch resource is comprised of a plurality of entries, each of which defines a vector table address, an offset into the vector table and the routine to be inserted. By comparing routines between the ROM versions, routines which are different or new are identified. These routines will become patch resource entries. For patch installation, the ROM version number for the installed ROM is determined; the proper patching resource is retrieved, and the patch resource entries cause the patches to be installed. Patch installation is performed by the steps of modifying vector tables to include the addresses for the new routines.
Abstract:
Emulator performance can be improved by recognizing repeated sequences of the same instruction, or commonly groups of instructions. For example, it is very common to see a three instruction sequence of MOVEM, UNLK A6, and RTS instructions for a 68020 processor in procedure exit code. By looking for these sequences, and combining the operations performed by the separate sequences, overhead of decoding and dispatching the individual instructions in the sequence can be eliminated, and performance improved. Common instruction sequences or repeated sequences in a guest program are detected during emulation of the guest program on a host processor, and performance of the emulation optimized based on the detected sequences. Thus, the emulation logic comprising host instructions embedded within a particular emulation program for a particular guest instruction, detects a particular sequence of guest instructions and in response to detection of the particular sequence bypasses the dispatch logic for guest instructions within the particular sequence. The sequences detected can comprise repeated guest instructions, or common sequences of two or more than two guest instructions.
Abstract:
The present invention provides a bus transceiver incorporating a high speed, binary transfer mode for the half-duplex transfer of data signals with a ternary control transfer mode having a full duplex dominant logic transmission scheme for the full duplex transfer of control signals. In one embodiment of the present invention, the above-noted transfer modes are implemented in a bus architecture which includes at least a first communications node coupled to a second communications node via a twisted pair, serial bus. Each node comprises first transceiver and second transceivers having a differential driver for driving on the bus signal states comprising first and second signal states having equal current amplitudes opposite in sign and a third signal state having approximately a zero current amplitude, a high speed binary receiver for receiving high speed data signals during data transfer phases and a ternary receiver for receiving control signals during control transfer phases. To permit the receivers of the present invention to receive the transmitted signals at the amplitude required to detect the proper bus voltage values, the present invention further provides a means for common mode shifting of the signals at the front end of the receivers while providing for a voltage offset independent of the fabrication process. This common mode shifting means also permits the implementation of a single ternary receiver in place of each of the binary, ternary and preemptive signaling receivers for each transceiver. In this manner, the present invention can be modified so that both transfer modes in addition to the preemptive signaling method can be performed using a single ternary receiver.
Abstract:
Relocation table entries in an executable object code file are interpreted as relocation instructions rather than as individual specifications for a particular respective relocatable information item. An abstract machine is provided for interpreting the relocation instructions and performing various relocation operations and various control functions for the abstract machine, in response to the relocation instructions. The abstract machine maintains certain variables containing information which is referenced and updated in response to certain types of the relocation instructions, thereby obviating the need to include such information as part of each relocation instruction. Certain of the relocation instruction types can also specify a particular relocation operation to be performed on a run of n consecutive reloactable information items, where n is specified as part of the relocation instruction. Certain of these relocation instruction types also consider each information item as including two or more individual relocations of the same or different types to perform, thus effectively specifying a run of n repetitions of a pattern of relocations. Other types of relocation instructions are also made available. The file also contains a hashed symbol export table and pattern-initialized data expansion instructions.
Abstract:
A concatenator for a first digital frame with a second digital frame, such as the ending and beginning of adjacent diphone strings being concatenated to form speech is based on determining an optimun blend point for the first and second digital frames in response to the magnitudes of samples in the first and second digital frames. The frames are then blended to generate a digital sequence representing a concatenation of the first and second frames with reference to the optimum blend point. The system operates by first computing an extended frame in response to the first digital frame, and then finding a subset of the extended frame with matches the second digital frame using a minimum average magnitude difference function over the samples in the subset. The blend point is the first sample of the matching subset. To generate the concatenated waveform, the subset of the extended frame is combined with the second digital frame and concatenated with the beginning segments of the extended frame to produce the concatenate waveform.
Abstract:
Improved method and apparatus for vector quantization (VQ) to build a codebook for the compression of data. The codebook (600) or "tree" is initialized by establishing N initial nodes (610) and creating the remainder of the codebook as a binary codebook (650). Children entries (670) are split upon determination of various attributes, such as maximum distortion, population, etc. Vectors obtained from the data are associated with the children nodes, and then representative children entries are recalculated. This splitting/reassociation continues iteratively until a difference in error associated with the previous children and current children becomes less than a threshold. This splitting and reassociating process continues until the maximum number of terminal nodes is created in the tree, a total error or distortion threshold has been reached or some other criterion. The data may then be transmitted as a compressed bitstream comprising a codebook and indices referencing the codebook.