DMA - Direct Memory Access

Total Page:16

File Type:pdf, Size:1020Kb

DMA - Direct Memory Access DMA - Direct Memory Access Part of Microprocessor course, Sharif U of Tech. This report can be used as a source for the DMA topic I introduced in the last session of the class. In a modern computer system, data transfer between a device (for example a hard disk, sound card, or an Ethernet card) and system memory is accomplished in two ways: programmed IO and DMA. 1. Programmed IO The first less efficient method uses programmed IO transfers. The device generates an interrupt to inform the CPU that it needs data transferred. The device interrupts service routine (ISR) causes the CPU to read from the device into one of its own registers. The ISR then tells the CPU to write from its register to memory. Similarly, if data is to be moved from memory to the device, the ISR tells the CPU to read from memory into its own register. The ISR then tells the CPU to write from its register to the device. It is apparent that the process is very inefficient for two reasons. First, there are two bus cycles (i.e. two load and store instructions) generated by the CPU for every data transfer, one to memory and one to the device. Second, the CPU is busy transferring data rather than performing its primary function of executing application code. 2. DMA The second more efficient method to transfer data is the DMA (direct memory access) technique. In the DMA technique, a DMA controller replaces the CPU and takes care of the access of both, the i/o device and the memory, for fast data transfers. Using DMA you get the fastest data transfer rates possible. In this technique, a special hardware, called DMA controller, writes to / reads from memory directly (without CPU intervention) and saves the timing associated with op-code fetch and decoding, increment and test addresses of source and destination that otherwise CPU should do. So, in normal x86 PCs, programmed IO transfer of one data byte takes up to 29 clock cycles, but the DMA transfer requires only 5 clock cycles. On the first PCs, there was a circuit in charge of such transfers called DMA controller. Originally this was a chip called “8237 IC”. In modern PCs, this circuit started to be embedded on the motherboard south bridge chip. To access to the memory in parallel with the normal accesses that CPU may do simulataneously, the DMA controller may either 1: stop the CPU and access the memory (cycle stealing DMA) 2: or use the bus while the CPU is not using it (hidden cycle DMA). The DMA controller has some control lines (to do a handshake with the CPU negotiating to be a bus master and to emulate the CPU behaviour while accessing the memory), an address register which is auto-incremented (or auto-decremented) at each memory access, and a counter used to check for byte (or word) count to make sure the required number of bytes are transferred. To perform a memory access, DMA controller should be programmed first. The DMA controller for reading data from a device is programmed with (at least): - initial memory address - number of bytes to be input - address of the source The sequence of events is: - Bus (CUP to memory bus) request from DMA controller to CPU (can I use the bus, please?) - Bus grant from CPU to DMA controller (yes, you can, at the end of this bus cycle) - Bus grant acknowledge from DMA controller to CPU (thank you. Here I go!) - DMA controller reads device - DMA controller writes to memory - DMA controller increments counter - DMA controller checks for End-of-Count - At the End-of-Count the DMA controller generates an interrupt request to tell the CPU: 'I have done a DMA operation. New data is available'. 3. DMA channels and programming A DMA controller may have several DMA channels, each of which can be programmed to perform a sequence of DMA transfers. Devices, usually I/O peripherals, that acquire data that must be read (or devices that must output data and be written to) signal the DMA controller to perform a DMA transfer by asserting a hardware DMA request signal. A DMA request signal for each channel is routed to the DMA controller. This signal is monitored and responded to in much the same way that a processor handles interrupts. When the DMA controller sees a DMA request, the DMA controller responds by performing one or many data transfers from that I/O device into system memory or vice versa. Channels must be enabled and programmed by the processor for the DMA controller to respond to DMA requests. The number of transfers performed, transfer modes used, and memory locations accessed depends on how the DMA channel is programmed. A DMA controller typically shares the system memory and I/O bus with the CPU and has both bus master and slave capability. In bus master mode, the DMA controller acquires the system bus (address, data, and control lines) from the CPU to perform the DMA transfers. In bus slave mode, the DMA controller is accessed by the CPU, which programs the DMA controller's internal registers to set up DMA transfers. The internal registers consist of source and destination address registers and transfer count registers for each DMA channel, as well as control and status registers for initiating, monitoring, and sustaining the operation of the DMA controller. Each channel is programmed by CPU (i.e. the driver of the device). CPU must specify the direction (memory-to-I/O or I/O-to-memory) and the address and length of the transfer. Once all the settings are ready, the DMA channel can be used. That DMA channel is now considered to be “armed'', and will respond when the corresponding devices asks for DMA transfer. A Sample DMA transfer (IBM-PC) For example assume that a hard disk controller (HDC) has just read a byte from a disk and wants the DMA to place it in memory at location 0x00123456. Also assume that the DMA channel 2 is assigned to the HDD. The process begins by the HDC asserting the DRQ2 signal (the DRQ line for DMA channel 2) to alert the DMA controller. The DMA controller will note that the DRQ2 signal is asserted. The DMA controller will then make sure that DMA channel 2 has been programmed by CPU and is enabled. The DMA controller also makes sure that none of the other DMA channels are active or want to be active and have a higher priority. Once these checks are complete, the DMA asks the CPU to release the bus so that the DMA may use the bus. The DMA requests the bus by asserting the HRQ signal which goes to the CPU. The CPU detects the HRQ signal, and will complete executing the current instruction. Once the processor has reached a state where it can release the bus, it will. Now all of the signals normally generated by the CPU (-MEMR, -MEMW, -IOR, -IOW and a few others) are placed in a tri-stated condition (to allow DMA controller manage them) and then the CPU asserts the HLDA signal which tells the DMA controller that it is now in charge of the bus. -MEMR, -MEMW, -IOR, -IOW are the signals that are used for memory read, memory write, IO read, and IO write, respectively. Depending on the processor, the CPU may be able to execute a few additional instructions now that it no longer has the bus, but the CPU will eventually have to wait when it reaches an instruction that must read something from memory that is not in the internal processor cache or pipeline. Now that the DMA ``is in charge'', the DMA activates its -MEMR, -MEMW, -IOR, -IOW output signals(-IOR, -MEMW in this case to copy data from disk to memory), and the address outputs from the DMA are set to 0x3456, which will be used to direct the byte that is about to transferred by HDC to a specific memory location. The DMA will then let the device that requested the DMA transfer know that the transfer is commencing. This is done by asserting the -DACK signal, or in the case of the floppy disk controller, -DACK2 is asserted. The floppy disk controller is now responsible for placing the byte to be transferred on the bus Data lines. The DMA will wait one DMA clock, and then de-assert the -MEMW and -IOR signals so that the memory will latch and store the byte that was on the bus, and the HDC will know that the byte has been transferred. Since the DMA cycle only transfers a single byte at a time, the HDC now drops the DRQ2 signal, so the DMA knows that it is no longer needed. The DMA will de-assert the -DACK2 signal, so that the FDC knows it must stop placing data on the bus. The DMA will now check to see if any of the other DMA channels have any work to do. If none of the channels have their DRQ lines asserted, the DMA controller has completed its work and will now tri-state the -MEMR, -MEMW, -IOR, -IOW and address signals. Finally, the DMA will de-assert the HRQ signal. The CPU sees this, and de-asserts the HOLDA signal. Now the CPU activates its -MEMR, -MEMW, -IOR, -IOW and address lines, and it resumes executing instructions and accessing main memory and the peripherals. For a typical HDD, the above process may be repeated several times, once for each byte.
Recommended publications
  • System Buses EE2222 Computer Interfacing and Microprocessors
    System Buses EE2222 Computer Interfacing and Microprocessors Partially based on Computer Organization and Architecture by William Stallings Computer Electronics by Thomas Blum 2020 EE2222 1 Connecting • All the units must be connected • Different type of connection for different type of unit • CPU • Memory • Input/Output 2020 EE2222 2 CPU Connection • Reads instruction and data • Writes out data (after processing) • Sends control signals to other units • Receives (& acts on) interrupts 2020 EE2222 3 Memory Connection • Receives and sends data • Receives addresses (of locations) • Receives control signals • Read • Write • Timing 2020 EE2222 4 Input/Output Connection(1) • Similar to memory from computer’s viewpoint • Output • Receive data from computer • Send data to peripheral • Input • Receive data from peripheral • Send data to computer 2020 EE2222 5 Input/Output Connection(2) • Receive control signals from computer • Send control signals to peripherals • e.g. spin disk • Receive addresses from computer • e.g. port number to identify peripheral • Send interrupt signals (control) 2020 EE2222 6 What is a Bus? • A communication pathway connecting two or more devices • Usually broadcast (all components see signal) • Often grouped • A number of channels in one bus • e.g. 32 bit data bus is 32 separate single bit channels • Power lines may not be shown 2020 EE2222 7 Bus Interconnection Scheme 2020 EE2222 8 Data bus • Carries data • Remember that there is no difference between “data” and “instruction” at this level • Width is a key determinant of performance • 8, 16, 32, 64 bit 2020 EE2222 9 Address bus • Identify the source or destination of data • e.g. CPU needs to read an instruction (data) from a given location in memory • Bus width determines maximum memory capacity of system • e.g.
    [Show full text]
  • ECESATUSB1 This Expresscard Power Esata Port Controller Card
    1 Port ExpressCard Power eSATA Controller Adapter Card StarTech ID: ECESATUSB1 This ExpressCard Power eSATA port controller card can be installed in an available ExpressCard 34/54 mm slot to provide a powered eSATA connection, and also alternatively provide either external SATA (data only) or USB 2.0 connectivity from one uniquely designed port if using with standard eSATA or USB devices. An ideal solution for using an eSATA SSD Flash drive on your laptop, the power eSATA card delivers both a high speed eSATA connection and power from the combined USB port. A versatile connectivity solution, the card features built-in port multiplier support, allowing multi-drive eSATA storage enclosures to be connected to the host computer using a single eSATA cable. Taking advantage of the transfer speed of eSATA connection and the 5V power output of the USB 2.0 port, the ExpressCard Power eSATA adapter is the perfect answer for connecting compatible mobile drive enclosures, similar to the built-in power eSATA port provided by the following laptop computers: Toshiba: Satellite E105, A350, Satellite Pro P300; Qosmio G50, X305, Portege A600, M750, R500, R600; and Tecra M10, R10, A10. Dell: Studio 15, 17; Latitude E6400, E6500; Precision M2400, M4400, M6400, M6400 Covet. Applications Connects to eSATA SSD Flash drives, such as OCZ Throttle, Kangaru e-Flash drives and Ridata Racer series flash drives Provides connectivity between Notebooks and PCs with ExpressCard slots to external drive enclosures with Power eSATA (eSATA+USB) port, or with regular eSATA
    [Show full text]
  • Computer Bus Characteristics
    Upendra Sharma (upsharma.in) Computer Bus A bus, in computing, is a set of physical connections (cables, printed circuits, etc.) which can be shared by multiple hardware components in order to communicate with one another. The purpose of buses is to reduce the number of "pathways" needed for communication between the components, by carrying out all communications over a single data channel. This is why the metaphor of a "data highway" is sometimes used. If only two hardware components communicate over the line, it is called a hardware port (such as a serial port or parallel port). Characteristics A bus is characterised by the amount of information that can be transmitted at once. This amount, expressed in bits, corresponds to the number of physical lines over which data is sent simultaneously. A 32-wire ribbon cable can transmit 32 bits in parallel. The term "width" is used to refer to the number of bits that a bus can transmit at once. Additionally, the bus speed is also defined by its frequency (expressed in Hertz), the number of data packets sent or received per second. Each time that data is sent or received is called a cycle. This way, it is possible to find the maximum transfer speed of the bus, the amount of data which it can transport per unit of time, by multiplying its width by its frequency. A bus with a width of 16 bits and a frequency of 133 MHz, therefore, has a transfer speed equal to: Upendra Sharma (upsharma.in) Types of Buses In reality, each bus is generally constituted of 50 to 100 distinct physical lines, divided into three subassemblies: The address bus (sometimes called the memory bus) transports memory addresses which the processor wants to access in order to read or write data.
    [Show full text]
  • Input/Output
    Lectures 24: Input/Output I. External devices A. External devices are not connected directly to the system bus because they have a wide range of control logics, as well as data transfer speeds and formats. B. Virtually all external devices have buffers, control signals, status signals, and data bits. C. Those that deal with other forms of energy have transducers that converts from non-electrical data to electrical data, (e.g. key press to ASCII in a keyboard), or electrical data to non-electrical data (e.g. bytes to light in a monitor). D. In the past, intra-system (less than 1 meter) connections were usually parallel, and inter-system were serial. Now almost all are serial. 1. To convert from parallel to serial use a shift register. 2. USB (universal serial bus) is a common standard for serial transmission with USB 3.0 transferring at 5Gb/s. II. I/O Modules (south bridge and north bridge on a PC) on the motherboard provide the logic, buffers, error detection, and ports to communicate with the external devices on one side, and a system-type bus on the other. For external device interfaces, the modules have data, status, and control lines. For the system bus they have data, address, and control lines. The south bridge handles slower I/O devices and is connected to the north bridge rather than the system bus directly. III. Programmed I/O A. Overview of Programmed I/O waits for the processor to query it. B. Four types of I/O commands: 1) control (e.g.
    [Show full text]
  • 2 Port Flush Mount Expresscard 54Mm Superspeed USB 3.0 Card Adapter Startech ID: ECUSB3S254F
    2 Port Flush Mount ExpressCard 54mm SuperSpeed USB 3.0 Card Adapter StarTech ID: ECUSB3S254F The ECUSB3S254F 2-Port Flush Mount USB 3.0 ExpressCard Adapter uses a unique form factor design that allows it to sit fully in a standard 54mm laptop ExpressCard slot without sticking out. When inserted, the USB 3.0 ports provided by the ExpressCard adapter sit flush with the sides of the laptop, creating a seamless add-on that can be left installed even while on the move, without having to worry about impact damage to either the card or the ExpressCard slot. The SuperSpeed USB 3.0 Card supports data transfer rates of up to 5Gbps, and is backward compatible with USB 2.0 (at up to 480Mbps), or USB 1.1/1.0 at up to 12/1.5 Mbps respectively - the perfect laptop accessory for users to connect USB devices, both new and old. Applications Users who need USB connectivity, but do not need to swap between other ExpressCard adapters, so will leave the card installed in the card slot Mobile users who want to leave ExpressCard adapters installed, without worry about damaging the card or slot while on the move Connect high performance USB 3.0 external storage devices to a laptop Upgrade an older laptop with USB 3.0 connectivity Expand on your laptop expansion capabilities with additional USB ports Features Unique flush-mount form factor design Two SuperSpeed USB 3.0 compliant ports with support for transfer rates up to 5 Gbps Backward compatible with USB 2.0/1.x devices Compliant with USB 3.0 base specification 1.0 and xHCI specification 0.95 Compliant with
    [Show full text]
  • Direct Memory Access
    International Journal of Research in Science And Technology http://www.ijrst.com (IJRST) 2014, Vol. No. 4, Issue No. III, Jul-Sep ISSN: 2249-0604 DIRECT MEMORY ACCESS LokeshMadan1, KislayAnand2and Bharat Bhushan3 1Department of Computer Science, Dronacharya College of Engineering, Gurgaon, India 2Department of Computer Science, Dronacharya College of Engineering, Gurgaon, India 3Department of Computer Science, Dronacharya College of Engineering, Gurgaon, India ABSTRACT Direct Memory Access (DMA) is a feature in all modern computers that allow devices to be able to move large blocks of data without any interaction with the processor. This can be useful, as you may have already seen from the floppy programming chapter. While the device transfers the block of data, the processor is free to continue running the software without worry about the data being transferred into memory, or to another device. The basic idea is that we can schedule the DMA device to perform the task on its own. Different buses and architecture designs have different methods of performing direct memory access. KEYWORDS: Processor register,cyclestealing,busmastering,countregisters,interleaved,c ache invalidation, schematics, gigabit Ethernet. INTRODUCTION A DMA controller can generate memory addresses and initiate memory read or write cycles. It contains several processor registers that can be written and read by the CPU. These include a memory address register, a byte count register, and one or more control registers. The control registers specify the I/O port to use, the direction of the transfer (reading from the I/O device or writing to the I/O device), the transfer unit (byte at a time or word at a time), and the number of bytes to transfer in one burst.
    [Show full text]
  • Tcss 422: Operating Systems
    TCSS 422 A – Fall 2018 12/6/2018 School of Engineering and Technology, TCSS 422: OPERATING SYSTEMS Beyond Physical Memory, I/O Devices Wes J. Lloyd School of Engineering and Technology, University of Washington - Tacoma TCSS422: Operating Systems [Fall 2018] December 5, 2018 School of Engineering and Technology, University of Washington - Tacoma FEEDBACK FROM 12/3 Program 3 Write to a proc file? Once we have a reference to a process, we then traverse pages on that process? TCSS422: Operating Systems [Fall 2018] December 5, 2018 L19.2 School of Engineering and Technology, University of Washington - Tacoma FEEDBACK - 2 Which I/O Devices work better with interrupts (other than keyboard)? Interrupt driven I/O - - is off-loaded from the CPU . Via Directory Memory Access (DMA) controller . CPU non involved in the data transfer . Interrupts enable a context-switch to notify data is available . Examples: ISA, PCI bus Polled I/O is - - programmed I/O Data transfers fully occupy CPU for entire data transfer CPU unavailable for other work Examples: ATA (parallel ports), legacy serial/parallel ports, PS/2 keyboard/mouse, MIDI, joysticks TCSS422: Operating Systems [Fall 2018] December 5, 2018 L19.3 School of Engineering and Technology, University of Washington - Tacoma Slides by Wes J. Lloyd L19.1 TCSS 422 A – Fall 2018 12/6/2018 School of Engineering and Technology, FEEDBACK - 3 Does the mouse use interrupts, polling, or a hybrid of both? . Interrupts . Where is the polling (BUSY) process? (see top –d .1) TCSS422: Operating Systems [Fall 2018] December 5, 2018 L19.4 School of Engineering and Technology, University of Washington - Tacoma CLOUD AND DISTRIBUTED SYSTEMS RESEARCH L19.5 CLOUD AND DISTRIBUTED SYSTEMS LAB WES LLOYD, [email protected], HTTP://FACULTY.WASHINGTON.EDU/WLLOYD Serverless Computing (FaaS): How should cloud native applications be composed from microservices to optimize performance and cost? Code structure directly influences hosting costs.
    [Show full text]
  • Setting up MPU-401 and Compatible Cards on Your PC
    ® Supplemental RAP-10 ®ÂØÒňΠRoland Audio Producer Notes May 21, 1996 Installing the RAP-10 in Windows 95 These notes are designed to help you install the Roland Audio Production Card (RAP-10) and configure it for use in Windows 95. This process will consist of the following four steps: I. First, we will look at computers and peripherals and how they work together. See “Typical Hardware Setup”. II. Second, we will prepare the RAP-10 for installation. See “Changing Hardware Settings”. III. Third, we will install the Windows software. See “Installing the Roland Audio Tools Software”. IV. Finally, we will test the RAP-10 to make sure it has been installed properly. See “Testing the RAP-10 Card”. If you were previously using the RAP-10 successfully under Windows 3.1 in the same computer, you can skip the first two steps and go directly to Section III. I. Typical Hardware Setup Interrupts and Addresses IBM-compatible computers can be expanded to accept many different devices such as a mouse, modem, printer, sound card, or MIDI card. Your computer uses interrupts (also called IRQs) and port addresses (or I/O addresses) to distinguish between these different devices. Since this guide is not intended to explain the concepts of IBM computers in detail, we will not jump into the particular definitions of IRQs and addresses. Just remember that the IRQ and port address numbers must be unique for EVERY device in your computer. DMA Channels The RAP-10 card also uses two DMA channels (Direct Memory Access) for the recording and playback of digital audio.
    [Show full text]
  • Computer Service Technician- CST Competency Requirements
    Computer Service Technician- CST Competency Requirements This Competency listing serves to identify the major knowledge, skills, and training areas which the Computer Service Technician needs in order to perform the job of servicing the hardware and the systems software for personal computers (PCs). The present CST COMPETENCIES only address operating systems for Windows current version, plus three older. Included also are general common Linux and Apple competency information, as proprietary service contracts still keep most details specific to in-house service. The Competency is written so that it can be used as a course syllabus, or the study directed towards the education of individuals, who are expected to have basic computer hardware electronics knowledge and skills. Computer Service Technicians must be knowledgeable in the following technical areas: 1.0 SAFETY PROCEDURES / HANDLING / ENVIRONMENTAL AWARENESS 1.1 Explain the need for physical safety: 1.1.1 Lifting hardware 1.1.2 Electrical shock hazard 1.1.3 Fire hazard 1.1.4 Chemical hazard 1.2 Explain the purpose for Material Safety Data Sheets (MSDS) 1.3 Summarize work area safety and efficiency 1.4 Define first aid procedures 1.5 Describe potential hazards in both in-shop and in-home environments 1.6 Describe proper recycling and disposal procedures 2.0 COMPUTER ASSEMBLY AND DISASSEMBLY 2.1 List the tools required for removal and installation of all computer system components 2.2 Describe the proper removal and installation of a CPU 2.2.1 Describe proper use of Electrostatic Discharge
    [Show full text]
  • FLEXBUS: a High-Performance System-On-Chip Communication
    34.4 FLEXBUS: A High-Performance System-on-Chip Communication Architecture with a Dynamically Configurable Topology ∗ Krishna Sekar Kanishka Lahiri Anand Raghunathan Sujit Dey Dept. of ECE NEC Laboratories America NEC Laboratories America Dept. of ECE UC San Diego, CA 92093 Princeton, NJ 08540 Princeton, NJ 08540 UC San Diego, CA 92093 [email protected] [email protected] [email protected] [email protected] ABSTRACT portunities for dynamically controlling the spatial allocation of com- munication architecture resources among different SoC components, In this paper, we describe FLEXBUS, a flexible, high-performance on- chip communication architecture featuring a dynamically configurable a capability, which if properly exploited, can yield substantial per- formance gains. We also describe techniques for choosing optimized topology. FLEXBUS is designed to detect run-time variations in com- munication traffic characteristics, and efficiently adapt the topology of FLEXBUS configurations under time-varying traffic profiles. We have the communication architecture, both at the system-level, through dy- conducted detailed experiments on FLEXBUS using a commercial de- namic bridge by-pass, as well as at the component-level, using compo- sign flow to analyze its area and performance under a wide variety of system-level traffic profiles, and applied it to an IEEE 802.11 MAC nent re-mapping. We describe the FLEXBUS architecture in detail and present techniques for its run-time configuration based on the char- processor design. The results demonstrate that FLEXBUS provides up acteristics of the on-chip communication traffic. The techniques un- to 31.5% performance gains compared to conventional architectures, with negligible hardware overhead.
    [Show full text]
  • PDP-11 Bus Handbook (1979)
    The material in this document is for informational purposes only and is subject to change without notice. Digital Equipment Corpo­ ration assumes no liability or responsibility for any errors which appear in, this document or for any use made as a result thereof. By publication of this document, no licenses or other rights are granted by Digital Equipment Corporation by implication, estoppel or otherwise, under any patent, trademark or copyright. Copyright © 1979, Digital Equipment Corporation The following are trademarks of Digital Equipment Corporation: DIGITAL PDP UNIBUS DEC DECUS MASSBUS DECtape DDT FLIP CHIP DECdataway ii CONTENTS PART 1, UNIBUS SPECIFICATION INTRODUCTION ...................................... 1 Scope ............................................. 1 Content ............................................ 1 UNIBUS DESCRIPTION ................................................................ 1 Architecture ........................................ 2 Unibus Transmission Medium ........................ 2 Bus Terminator ..................................... 2 Bus Segment ....................................... 3 Bus Repeater ....................................... 3 Bus Master ........................................ 3 Bus Slave .......................................... 3 Bus Arbitrator ...................................... 3 Bus Request ....................................... 3 Bus Grant ......................................... 3 Processor .......................................... 4 Interrupt Fielding Processor .........................
    [Show full text]
  • ~ ARTISAN® with Experienced Engineers and Technicians on Staff
    Full-service, independent repair center -~ ARTISAN® with experienced engineers and technicians on staff. TECHNOLOGY GROUP ~I We buy your excess, underutilized, and idle equipment along with credit for buybacks and trade-ins. Custom engineering Your definitive source so your equipment works exactly as you specify. for quality pre-owned • Critical and expedited services • Leasing / Rentals/ Demos equipment. • In stock/ Ready-to-ship • !TAR-certified secure asset solutions Expert team I Trust guarantee I 100% satisfaction Artisan Technology Group (217) 352-9330 | [email protected] | artisantg.com All trademarks, brand names, and brands appearing herein are the property o f their respective owners. Find the Measurement Computing / CEC PC-488 at our website: Click HERE Program and documentation copyrighted 1986, 1998, 2003 by Capital Equipment Corporation (CEC). The software interpreter contained in EPROM/ROM is copyrighted and all rights are reserved by Capital Equipment Corporation. Copying or duplicating this product is a violation of law. Application software libraries provided on disk are copyrighted by Capital Equipment Corporation. The purchaser is granted the right to include portions of this software in products which use one of CEC's IEEE-488 interface boards (including those sold through resellers such as Keithley Instruments, etc.). The software may not be distributed other than for the application just mentioned. Purchasers of this product may copy and use the programming examples contained in this book. No other parts of this book may be reproduced or transmitted in any form or by any means, electronic, optical, or mechanical, including photocopying and recording, or by any information storage and retrieval system, without permission in writing from Capital Equipment Corporation.
    [Show full text]