An 8 bit ISA to M20 converterby Davide Bucci and Christian Groessler
The ISA (Industry Standard Architecture) standard was adopted in the original PC-IBM computer and countless expansion cards have been developed for covering almost any need. We would like to discuss here the realization of an adapter which can be used to plug any standard 8 bit ISA expansion card on the Olivetti M20. Of course, the adapter is useful on adapting the hardware, but the software needs to be adapted too, and this is another business.
Here is the schematic of the adapter card. You can click on the two images to obtain an higher resolution version. Here you can download an archive with the schematics in the the very compact GPL v. 3 FidoCadJ file format.
Some photos of the first prototype
A photo of the card installed in a M20 system. The memory expansion described here can also be seen.
Another view of the installed adapter. The 14.31818 MHz crystal oscillator built around the BF244C JFET was still not present on the bord. This frequency was provided by the ISA bus and was used by some cards. It does not need to be synchronized with the system clock.
How to write the software
The I/O ports
The Olivetti M20 can access to the I/O addresses of the ISA card in the following way:
The segment <7> is (or should be...) unused by the M20 operating system. AN access at the segment <7> is translated by the adapter in the following way:
On the ISA side, the active interrupt is hardcoded to the IRQ5 line. On the M20 side, a jumper is available to select whether to activate the IR1 (COMVI2), IR2 (COMVI2) or IR7 (SYSINT) lines.
A complete example/test program
An example/test program has been written to see if an Olivetti M20 equipped with this adapter can access to an external ISA card. We chosen the 3Com 3C503 card (Etherlink II). The test program checks for the presence of the card, reads its MAC number and see if it corresponds to a 3Com address. The program is written in C, can be compiled by gcc and can be downloaded here. If you are curious about how to cross programming the Olivetti M20 using the gcc compiler, read this article.
The development of this adapter is not complete. Probably some serious tests should be made and probably some buffering is needed for the address bus if the ribbon cable is too long. More importantly, some interesting application should be found and the adapted software should be developed. In any case, we believe that this adapter can become an important key for the future expandability of the Olivetti M20 systems. If you have some ideas, or if you want to participate to the hardware or software work, please contact us!
Olivetti is a registered trademark of Telecom Italia. This site is not related to Olivetti nor Telecom Italia. The information presented is available for personal use only and is shared in a "fair use" spirit. If you own the copyright of some of the stuff presented here and you think it should not be available, please contact the webmaster and the offending material will be removed.