To YT3MV de YT3MV 11.02.90 00:14 GMT 38749 Bytes dspuse.txt De YT3MV @ YT3A CONSTRUCTION AND USE OF THE DSP COMPUTER ======================================== 1. Construction Overview ------------------------ Although Digital Signal Processing was introduced to simplfy the hardware required and thus reduce costs, some hardware still has to be built. Assembling a computer type circuit is ceratinly not as demanding as building a radio-frequency analog circuit, especially not from ready-made building blocks, like microprocessors, peripherals or memories. However, these ready-made building blocks do not always conform to the published specifications, especially when there are more manufacturers offering apparently interchangeable products. Even with products from the same manufacturer there are sometimes sudden changes due to a new manufacturing process or simply a spread of important parameters well in eccess of what guaranteed on the data sheets. During circuit design, every effort was made to try as many different products as possible and the results are presented as a recommended "component selection". After assembly, the single modules have to be checked for correct operation. Some modules may require a few alignments of the on-board trimmers. Then the complete circuit has to be installed into a suitable case. To help correctly choose the latter, the mechanical, thermal and electrical constraints will be discussed. Installing the software includes the adjustment of the various parameters to other analog hardware available, like transmitter modulation levels or packet-radio delays. Since source files will be made available, it is also possible to "personalize" the software adding minor but important features. A few hints how to write DSP software are also described in this article. However, most users will probably find it necessary to refer to literature describing the microprocessor and peripherals used. Unfortunately there is not much literature discussing DSP techniques on an amateur level yet. Hopefully this will change in the near future. 2. Selection of Components -------------------------- Throughout the DSP computer design and developement I tried to use readily available components. Overall cost was also an important consideration. Most computer components are integrated circuits, either complex function blocks like the microprocessor or memories or simple TTL and CMOS SSI gates and filp-flops. The latter belong essentially to three logic families. The bipolar LS series is used for most functions. The new HC CMOS series is used where both speed and low power drain in stand-by are required. The old 40xx CMOS series is used where speed is not critical. Finally, there are also a few ICs from other logic families where required. Considering the decreasing prices of the HC family it is already convenient to replace the old LS series with the better HC series. If all LSs are changed to HCs, no additional pull-up resistors are required and many 3.3 khom pull-up resistors can be omitted. In fact, prototypes built with all HC circuits operated better than those with LS circuits. HC ICs have a higher noise margin and a stable output impedance compared to the LS series: both contribute to suppress crosstalk and ringing of the computer bus. An "all HC" design is recommended for CPU clock frequencies above 10 MHz. The 68010 microprocessor is manufactured by Motorola, Signetics, Thomson-CSF, Mostek and probably some other manufacturers. The MC68010 is usually available selected according to the maximum guaranteed clock frequency of 8 MHz, 10 MHz and 12.5 MHz. I only had available 11 samples from Motorola with different specified clock frequencies, different packages and different manufacturing dates and mask-set identifiers. In practice I noticed a very large spread of the maximum clock frequency: guaranteed 10 MHz samples reached from 9.5 MHz up to 15 MHz before crashing the software. For comparison, the 8 MHz sample reached 12.5 MHz and the 12.5 MHz sample reached 14.5 MHz. Some experimenting may therefore be very worthwhile! The maximum clock frequency decreases quickly with increasing chip temperature and also depends on the clock waveform. The best results were obtained with a Valvo 74HC00 as the clock oscillator. The video board uses special dual-port memories. In the prototypes I successfully tested both uPD41264 (NEC) and HM53461 (Hitachi) with identical results. Both 120ns and 150ns selections worked at 10 MHz CPU clock. The 120ns version is of course recommended for higher CPU clock frequencies. No problems were ever noticed using a refresh rate of 20ms (TV frame) in place of the 4ms required by the manufacturers. The DAC0800 D/A converter is available from many suppliers. The main computer memory uses static CMOS memories. Over 120 NEC uPD43256 120ns chips were tested without problems. The memory boards also worked with similar memories from other manufacturers. For processor clock frequencies above 10 MHz 100ns access time memories are recommended. The NEC 710xx series peripherals are CMOS versions of the famous 82xx series of microprocessor peripherals. The uPD71055 parallel I/O port on the processor board can be replaced with a NMOS 8255, the latter sometimes requires a 330pF capacitor to delay the CS\ signal for proper operation. The uPD71054 programmable counter can be straightforward replaced with a 8253 chip. On the other hand, the uPD71051 USART can not be replaced with a NMOS 8251, since the latter is unable to operate at a 6.144 MHz clock frequency. A 82C51 could work, but was not tested. The uPD4990 real-time calender/clock chip is also manufactured by NEC. Suitable CODEC chips are manufactured by Mostek: MK5156 and by SGS: M5156. The SGS samples had a lower DC offset in the A/D section than the Mostek parts. No differences were noted between the switched capacitor filters manufactured by National Semiconductor: TP3040 and its Thomson-CSF equivalent: ETC5040. The floppy disk controller IC is manufactured by Western Digital: WD2797 and by Siemens: SAB2797. The serial communications controller is available from Zilog: Z8530 and from Sharp: LH8530. The same companies also manufacture a CMOS Z80CPU (used in the rotator interface) marked Z84C00 and LH5080 respectively. The ADC0804 is manufactured by National Semiconductor and equivalents are available from other manufacturers too. For accurate tracking it is recommended to use the more accurate versions of the same chip marked ADC0802 or ADC0801. The computer modules include many crystal oscillators. Only two oscillators really need to be accurate and have trimmers for fine frequency correction: the real-time clock chip with a 32.768 kHz crystal and the 6144 kHz crystal on the analog I/O board that defines the sampling rates. Both these crystals are fundamental mode, 20pF parallel resonance. All the remaining crystal oscillators at 10 MHz (CPU), 12 MHz (video), 16 MHz (FDC), 6.144 MHz (serial I/O) and 10 MHz (rotator interface) need not be very accurate. "Computer-grade" fundamental mode crystals are adequeate and no fine adjustment trimmers are provided. Finally, the computer also requires a few larger units: a keyboard, a floppy drive and a TV monitor. The keyboard should be a standard ASCII keyboard with a parallel output including 7 data bits and a negative-going strobe. A keyboard that only requires a +5V supply is preferred. The 3.5" floppy drive should be suitable for double-sided 80 track floppies. The spindle motor speed should be 300rpm. The raw capacity is 1 Mbyte at 250 kbps MFM. I successfully tested three different floppy drives: NEC FD1036 and FD1037 and Matsushita JU363. Older models, like the FD1036 or the JU363, require two supply voltages, +5V and +12V. New models, like the FD1037, operate from a single +5V supply but do not provide a READY signal (move the corresponding jumper on the floppy controller board). Warning! Although all three floppy drives use the same 34 pole connector, the connections on one drive were found to be a "mirror image" of another drive! The video board will drive any (European) standard TV monitor. Only the vertical sync and size may need to be adjusted to the slightly different frame frequency. Due to the resolution of the picture displayed, a 12" or larger screen is recommended. If possible, the monitor should be installed in a metal case to avoid interferences to sensitive communicetions receivers. 3. Installation of Components ----------------------------- The processor board, the video board, the memory, the analog I/O and floppy controller are all built on double sided printed circuit boards, 170mm long and 120mm wide. All modules have a 64 pole "Eurocard" male right angle connectors with rows A and C equipped with pins and row B empty. The diameters of the two mounting holes on each connector have to be slightly enlarged to accept two 10mm long M3 screws to hold the connector in place on the printed circuit board. The detailed component location plans of the above modules are shown on Fig.1, Fig.2, Fig.3, Fig.4 and Fig.5 respectively. "*" symbols denote feedthrough holes: no component leads are installed in this holes, their only purpose is to connect traces on different sides of the printed circuit board. All integrated circuits can be installed on (good quality) sockets. Use the type with round lathed contacts with gold plated springs inside. For an eventual troubleshooting it is only important to have the complex function ICs on sockets, like the microprocessor or peripherals, it does not help much to have all the TTLs or 40xx series CMOS on sockets. All integrated circuits used in the DSP computer may be damaged by electrostatic discharges. While CMOS and NMOS circuits have protection networks to reduce the probablity of damage, new bipolar circuits with small geometries are also sensitive to static discharges. The best way to prevent these problems is to understand the damage mechanism. A certain amount of energy is required to destroy an integrated circuit. Since the induced electrostatic voltage is limited by effects like corona discharge, the only variable left is the capacity of the capacitor holding the charge. For example, simply touching a pin of an unconnected IC can never be harmful: the capacity of the relatively small IC package towards its surroundings is very small. On the other hand, if the IC is installed in a circuit and the circuit is grounded or connected to another high capacity object, the energy may be sufficient to destroy a bipolar TTL IC. Therefore, I do not recommend using conductive ground planes for working surfaces or grounding wrist straps since in the case of a mistake, the latter may be dangerous for the operator too. Simply avoiding "dangerous" situations, like a high capacity to high capacity discharge through a sensitive component like the one described above, I never had even a single failure of a MOS IC to be attributed to a static discharge! IC sockets are also used as jumper plugs (to select the interrupts) and as connectors. A very simple but reliable connector joint can be built from two identical IC sockets. One socket is soldered into the printed circuit board and is used as a female connector. The other socket is used as a male connector with wires soldered in the holes for the IC pins. The power supply is built on a single-sided printed circuit board 120mm long and 100mm wide. Since it includes a few heavier components, like the NiCd batteries or the ferrite pot core and requires a few connections, only 4 wires, with the computer bus, the unit is not equipped with an "Eurocard" connector. It is to be installed separately using four M3 screws in the corners. All electrolytic capacitors are vertical types. The NiCd cells are installed horizontally The connections are made soldering two pieces of 1mm thick copper wire to each battery cell terminals which also keep the cell in place. The BDX34 power darlington transistor is installed on a small heat sink with a M3 screw. The (approximately) 100uH 5A chokes include 25 turns of 1mm thick enamelled copper wire wound on a 5mm diameter ferrite screw. The storage coil L is wound on a 30mm diameter pot core with an approximately 0.5mm thick air gap. It has 10 turns of four times 0.5mm enamelled copper wire. The bus board only includes female "Eurocard" connectors and supply bypass capacitors. The location of the latter is shown on Fig.7. The board itself is made of 2.5mm thick laminate for mechanical strength. The connector pins should be 4mm long for easy soldering. The connectors are held in place with two 8mm long M3 screws. It is very important to install these screws first, before soldering the pins, otherwise the sensitive springs inside the female connectors will be damaged resulting in intermittent contacts! The rotator interface board, shown on Fig.8, is a stand-alone board but otherwise the installation of the components is identical to other computer modules. If all the integrated circuits used are CMOS versions as recommended, then the power drain is so low that the 7805 regulator does not require a heat sink. 4. Module Checkout and Alignment -------------------------------- It is not recommended to assemble the complete computer with all the modules and apply the supply voltage. With such a complex circuit chances that everything will work immediately are very small. Further, a malfunction in one of the modules, especially the power supply, could damage many expensive components on other modules. Finally, troubleshooting may be impossible in these conditions. After assembling the single modules, an accurate visual inspection of the printed circuit boards is highly recommended. My personal experience is that most mistakes are made during soldering: either missed connections or accidental shorts between adiacent lines. After this the modules should be checked in a reasonable order: using already tested modules to check another module. The first module to be tested is obviously the power supply. Its input should be connected to an adjustable voltage DC source to test both the switching regulator and the reset circuit. Due to manufacturing tolerances of zener diodes it may be necessary to change the nominally 820 ohm resistor (*) in series with the zener diode to obtain the correct output voltage of 5V (under load!). The reset circuit should have the required hysteresis and delay. The voltage across the NiCd battery should also be verified. Finally, the 1N5822 schottky diode used to charge the battery should be verified for leakage current (main power off) It should not be more than 20uA measuring the voltage fall across the 120ohm resistor. Do not unsolder the diode just for measuring purposes since the leakage current is very temperature dependent. Next, the bus mother board has to be checked. The latter has a very large number of close solder joints. It is recommended to test it with an ohmmeter for shorts before connecting the four wires to the power supply. Whenever inserting modules in the bus board, keep in mind that some supply voltages are always present, even with the main power off, due to the NiCd battery. The best way to insert a module with an "Eurocard" connector is to make the ground connection first. Since the latter is on the opposite side of the supply contacts, it is sufficient to remember to always plug-in the modules under such an angle that the ground connection is made first. Before plugging-in a module, a static discharge, touching both circuit grounds at the same time with naked hands is recommended too. The video board can now be plugged in the bus. Connect a TV monitor to the video output. Due to the random content of the dynamic RAMs after power-up, the video board should produce a rectangle containing a random pattern and surrounded by a black border on the TV screen. Adjust the horizontal position trimmer to center the picture. Also adjust the various commands on the TV monitor to obtain a reasonable quality TV picture. Also check the operation of the onboard flyback inverter, which should produce a negative supply voltage of about -4V. Once the video board is working the processor board can be added. Of course turn the power off before plugging in or out any module! Do not connect a keyboard to the processor board, nor the partial/total reset switch. The latter connection should be left open to enable a total reset. If everything is working properly, the random pattern on the TV monitor should disappear about one second after power-up (reset delay) and be replaced by a help message text covering almost all the screen. A blinking cursor should also appear. If the random pattern remains unchanged there is a problem on the processor board or on the video board that has to be repaired before you can proceed with other modules. In this case it is useful to check the behavior of the HALT\ line on the bus: a double bus error makes it go low. Please remember that for a correct start-up the software required is contained in the 27128 (or 27C256) EPROM. The operation can not be checked without a programmed EPROM! When the processor board is working correctly the keyboard can be connected. Under the operating system command mode, all the printable characters should be printed on the screen up to the maximum allowed line length. Any control character is interpreted as a carriage return. Any letters will only be printed in upper case in the command mode. The code required for the delete function is 7FH. After this, try to issue some simple commands as described in the operating system manual. Avoid commands that use peripherals that are not installed yet, like the floppy disk or the RS-232 port. The operation of the real-time calender/clock can be checked using the corresponding operating system command "U". It is a little more difficult to adjust the 32.768 kHz crystal to the correct frequency, since the oscillator circuit is a very high impedance circuit. The simplies way is to leave the trimmer in the middle position and correct the adjustment if a clock drift is detected a few days later. The processor board carries a nominally 10 MHz crystal oscillator and the MC68010 should also be a 10 MHz version. However, it is very useful to test your processor for its maximum speed. This can simply be done by replacing the crystal in the clock oscillator. Of course, the computer can not be operated reliably at the maximum clock frequency. The latter will be further reduced when loading the bus with additional modules. A safety margin of about 2 MHz below the maximum frequency was found appropriate in most occasions. All the software was designed for a minimum clock frequency of 9 MHz, but a higher clock frequency is very desirable. The remaining modules are easy to test once the processor is operating, since the latter can also be used as a powerful troubleshooting tool. The easiest to test are the memory modules. When installing the memory modules do not forget to program each of them for a different address range. Further, all the modules should form a contiguous memory area to be used efficiently by the operating system software. To test a memory module, try the "W" instruction first to write to or read from a few memory locations. Most defects are discovered in this way. However, it is a little impractical to test 1 Mbyte of memory in this way. The final check can be done later, for instance by loading a few files from a floppy disk. The analog I/O board first requires a few checks on its own. The onboard voltage inverter should supply a negative voltage of -5V. The crystal oscillator has to be adjusted exactly to 6.144 MHz with a frequency counter only connected after a buffer gate. If it is not possible to adjust the frequency with the given tuning range of the trimmer capacitor, then the fixed capacitor in parallel with the trimmer should be replaced. The operating system software does only include routines to use the RS-232 port on the same module. The analog I/O could be tested issuing a number of "W" commands to initialize the appropriate registers, but it is usually easier to load a DSP program that uses the analog I/O port. The A/D converter offset can be adjusted when running a program that is sensitive to A/D offset errors, like the APT picture receiving program. Before installing the floppy disk controller module, the floppy disk drive manual has to be consulted. All the connections between the drive and the controller should be verified and the jumpers adjusted for the drive used. The floppy controller itself requires three adjustments: VCO frequency, read pulse width and write precompensation. All three adjustments are to be performed by connecting the TEST\ input (pin 22) to GND only AFTER reset has been applied to the computer. Grounding TEST\ while reset is active will program the 2797 FDC for a different mode of operation! The divided VCO frequency, 250 kHz, can be measured on pin 16 (DIRC) with a frequency counter and adjusted with the VCO's capacitive trimmer. Then the RPW duty cycle can be observed with an oscilloscope on pin 29 (TG43) and has to be set to 12.5% using the 47kohm trimmer. The write precompensation pulse width can be observed on pin 31 (WD). Since however the floppy drive manuals seldom specify this value an experimental adjustment is required. Leave the 10kohm trimmer in center position and disconnect the TEST\ line from GND. Insert a new, empty floppy disk and try to format it as described in the operating system manual. An improper write precompensation will result in formatting errors appearing on the innermost tracks, usually on tracks 75 to 79. In the case of errors, try another setting of the 10kohm trimmer and retry formatting tracks 75 to 79 until all the tracks format properly. The rotator interface only carries a single trimmer. However, there are two trimmers in the rotator control unit and eight variables in the tracking program to be adjusted. All these adjustments are to be made with the actual rotator with the antennas installed. To understand all these adjustments an insight in the operation of the automatical tracking program is required. 5. Housing Constraints ---------------------- After assembly, the competed computer has to be installed in a suitable case. There are however mechanical, thermal and electrical constraints. The main mechanical requirement is to build a suitable guide structure to keep the modules in their respective connectors. Even when the computer is being transported to another location it is very inconvenient if all the memory content is lost due to an intermittent contact on the bus. The electrical performances of all integrated circuits used in the computer degrade quickly with increasing ambient temperature. In particular, the operating speeds of all logic families decrease with temperature. It is therefore highly desirable to keep the ambient temperature and the temperatures of the single chips as low as practical. It is very difficult to install heat sinks on all integrated circuits. The printed circuit boards can however be installed in a vertical position to allow an efficient air flow. Finally, the power supply unit (another heat source) should not be installed close to the processor board (the most sensitive to heat). A 16 bit microcomputer has at least twice the number of connections compared to an 8 bit microcomputer. A 16 bit computer also operates at a speed an order of magnitude faster than an 8 bit machine. The most immediate result is that a 16 bit microcomputer radiates 20 to 30dB stronger radio interferences when compared to an 8 bit microcomputer. Since a DSP computer is designed to work with communications equipment including sensitive receivers, a very accurate shielding is absolutely necessary. The computer has to be installed in a metal (aluminum) box. It is important that the box is completely closed and that the covers make good electrical contacts with the box frame on all edges. The latter should therefore not be painted or anodized. All the connections sholud be bypassed and/or should use shielded cables. Bypass capacitors should be installed immediately on the connectors and ground conductors should be grounded on the connectors too, otherwise they will work as coupling loops for the disturbs. The keyboard connections, the video output, the RS-232 port and the high-speed serial port can not have bypass capacitors and the use of shielded cables is mandatory. ASCII keyboards now use a single chip microcomputer to scan the keys and generate the codes. The latter could also cause some radio frequency interference since keyboards are usually packaged in non-conductive plastic cases, although the switching frequency is low and the disturb level is low too. A metal case keyboard is the best solution. A valid alternative is an old, surplus keyboard, with a dumb diode matrix logic, which can not generate RFI either. A more important source of interferences is the TV monitor, if packaged in a plastic case. It will generally only cause interference when fed with a computer generated video signal. The latter is amplified to about 20 to 30 Vpp to drive the CRT. A very efficient but cheap solution to limit interferences at VHF and higher frequencies is to filter the video signal before sending it to the TV monitor. Since the video signal does not contain useful information above 10 MHz, the spectrum above 10 MHz can simply be filtered away with a low-pass filter greatly reducing the interference without degrading the picture at all. 6. Software Installation ------------------------ Software installation is relatively simple compared to commercial computers. The operating system is completely contained in an EPROM. The actual version V7.1 is about 15 kbytes long and was written directly in MC68010 machine code. The EPROM can be a 27128 or a 27C256 programmed to fit in the same socket without modifications, since the 27128 and in particular the 27C128 are more expensive and not always available. For future upgrades the CPU printed circuit board already carries an additional address line to three solder pads close to the EPROM socket. The circuit can be thus modified to use all the 32 kbytes of a 27C256. Note however that the 27C256 EPROMs supplied with the V7.1 software are programmed to fit into an unmodified circuit (A14 always high) and will not work if this modification is made. After power-up the action taken by the computer depends on the position of the partial/total reset switch, which should be installed on the front panel. In the case of a first power-up (or after a catastrophic software crash...) the computer requires a total reset. During a total reset, the whole content of the EPROM is copied into the nonvolatile system RAM. All system variables are thus reset to their default values. The operating system software is always executed in the RAM, since the latter has a much lower access time than the EPROM and does not introduce any wait states. The partial/total reset switch is then moved to the partial reset position for normal operation. In this case the computer assumes the RAM already contains valid software and only a small part of the content of the EPROM is copied into the corresponding part of the RAM. Most of the software in the RAM is left unchanged including the operating system parameters. After a total reset some operating system parameters should be set. The most important is to tell the computer the location and amount of RAM available using the operating system command "N". This and other operating system commands are described in detail in the "Operating System Manual". The latter can not be published since it is too long but will be made available separately. A short description of all available commands can be obtained by issuing the "H" (Help) command. The latter is also programmed as the default autostart command. Application programs are supplied on floppy disks. Both source program files and compiled executable files are usually made available. Application programs have extensive menus and/or help messages activated only when a wrong command is issued. To use a program it is only necessary to load the compiled (.EXE) file from the floppy disk into the RAM (command "L"). A program can then be executed using the command "R". DSP programs contain many variables - parameters to be set by the user. In the supplied application programs these variables have been set according to my own analog hardware. Some programs also include an option in the main menu to reset all variables to their default values. Source program files are well commented to provide a better understanding of the operation and should enable users to modify the programs. Source program files are ASCII files that can be handled by any text editor program, including the text editor built in the operaating system. The high level language syntax is explained in the "Operating System Manual". Source files usually only contain symbolic variable names. After compiling a program, the compiler will also assign memory space to store the actual variable values inside the compiled executable file. The initial content of the variables is thus completely random. However, if an executable file with the same name already exsisted in the RAM directory, the compiler will try to copy all variable values into the new executable file. This is very useful since for example, after a small modification of the satellite tracking program it is not necessary to type in the Keplerian elements for 40 satellites again (only a few hours of typing...). Finally, if an application program tries to use an inexsistent peripheral or runs out of memory, the operating system will stop the execution in an orderly way indicating the bus error address, type of access and program counter value. 7. Writing DSP Software ----------------------- DSP programming usually includes both programming in machine code for the DSP algorithm itself and programming in a high-level language to support and use the DSP routines. To recall the DSP routines periodically interrupts have to be used. The following discussion describes how this can be done efficiently on the DSP computer described. When a MC68010 microprocessor receives an interrupt request with a priority level higher than the current processor priority (described with the corresponding bits in the status register) a call to the interrupt handling routine is made. Start addresses of interrupt handling routines are stored together with other exception vectors in the exception vector table in the computer memory. The exception vector table is located in the system RAM during normal program execution (except at power-up). Its start address is stored in the Vector Base Register (VBR). Hardwired logic on the processor board makes the MC68010 to operate in the autovector mode: each interrupt level is assigned a single vector in the exception vector table. After reset, all interrupt vectors are pointing to an error handling routine (except interrupt 7 - the operator keyboard) and the processor priority is set to 7. To use an interrupt, the following has to be made exactly in the order given: 1) Replace the current interrupt vector with a vector pointing to the interrupt handling routine. 2) Initialize the peripheral that will request the interrupt. 3) Adjust the processor priority level if required. After the interrupt is no longer being used, the following has to be made to restore the original conditions: 1) Disable the peripheral requesting the interrupt. 2) Return the default interrupt vector (pointing to the error handling routine). 3) Return the processor priority level if modified. The address of the memory location containing the interrupt vector is computed by adding the corresponding offset to the start address stored in the VBR. The offset is 64H for INT1 level autovector, 68H for INT2 ... up to 7CH for INT7. From the user point of view it is very convenient to build interrupt routines into high-level language programs that can be handled or compiled as any other program. The compiler produces relocatable .EXE program files: the operating system considers that an .EXE file can be executed on any memory address. However, the exception vector table contains absolute addresses. The program should therefore include a routine to compute the interrupt routine address dynamically each time the program is executed on a new memory location. In the case of the MC68010 it is convenient to use the Load Effective Address instruction, in particular LEA d(PC),An to find the actual program counter. The address-finding routine is usually located just in front of the interrupt routine so that the unknown start address can be computed easily. Interrupt routines are usually DSP routines written almost entirely in machine code. However, high-level language expressions are necessary to interface to the rest of the program. Whenever a call to an interrupt routine is made, it is necessary to save the content of the microprocessor internal registers on the stack and restore it before exiting from the routine. Considering the many MC68010 internal register this operation may be very time consuming. Since most DSP machine code routines only need a few registers, only the latter are saved and restored before exit to save CPU time. High-level language expressions however use all MC68010 registers! Programs designed for use in an interrupt driven multitasking environment require some additional features. Since different interrupt routines may belong to different main programs and the interrupt nesting is arbitrary, the content of all microprocessor registers is completely unknown when entering an interrupt routine. If high-level language expressions are used in interrupt routines, the values of registers containing base addresses, usually A4 and A5, have to restored for correct operation. 8. Conclusion ------------- As already mentioned in the first, theoretical part of the article, the DSP computer described is only a very successful prototype able to solve many practical problems. We will probably not have to wait long to see much more powerful computers built with new devices designed especially for DSP. We probably still have to invent most applications of DSP in amateur radio too. It is very difficult to describe a complex electronic circuit in the limited space of a few magazine article without omitting important details. I would recommend to all users to order a copy of the "Operating System Manual" (about 15 sheets A4) which includes a detailed description of all operating system commands, text editor and high-level language compiler. I preferred not to publish the manual in the magazine since it would be very boring to all readers not directly interested in this DSP computer. Those interested in writing DSP software will certainly need more information on the hardware used, especially the MC68010 microprocessor. During the developement of this computer I used the following publications from Motorola: 1) 16-bit Microprocessors Data Manual, 1983. 2) M68000 16/32-bit Microprocessor Programmer's Reference Manual, 1984. Data on memories and peripheral devices were obtained from several data-books and data-sheets from NEC, Western Digital, Zilog, National Semiconductor, Mostek, RCA, Fairchild and Matsushita. All the above information on the components used includes more than 1000 pages A4. Both design and construction articles mainly discussed the hardware and the operating system software. The application software was only briefly mentioned in the theoretical introduction article. A detailed description of the application software would require at least another article. However, all the application software includes extensive menus and help messages and maybe an additional description is not necessary at all. Software is also changing quickly and such a description would become soon obsolete. Besides the five application programs mentioned in the theoretical article, the hardware described offers several other possibilities. Some of these are now only planned. Others are tested, but the final version is not implemented yet. Finally, some are already fully implemented. The most interesting programs include: 1) AO-13 400bps PSK telemetry reception (implemented) 2) Meteosat WEFAX reception (tested) 3) SSTV RX/TX (planned) 4) Audio recorder with variable playback speed (tested) 5) FFT audio spectrum analyzer (planned) 6) AX.25 communication modems up to 2400bps (planned) 7) Advanced protocols with error correction coding (planned) 8) Ranging for satellite orbit determination (planned) Many other programs and some hardware (an EPROM programmer module) were developed just as tools to work on the hardware and on the operating system. I decided not to describe them since they are probably not interesting for the majority of readers. At the end I hope this series of articles will stimulate more amateurs to experiment in the DSP field. Maybe the capabilities of the DSP computer shown are not comparable to what are the leading semiconductor manufacturers advertising on their data-sheets, but do not forget that there is a long way from the data-sheet to a working DSP project. In any case, the described DSP computer was found much more versatile than the originally planned successor to the APT scan-converter and in some cases it performed even better than dedeicated DSP computers. YT3A >