= The Bull Analex Project = The Bull Anelex Project is the current major development project. You can already read a german abstract on the [http://www.technikum29.de/de/entwicklungsprojekte.shtm#Anpassung_eines_ANELEX_Druckers_an_einen_BULL-Computer official website]. It's about writing an interface for two quiet old devices, using at least two microcontrollers (see [wiki:AVR-P40]). == Current information == The project is already running for one year (since 2010), apparently we cannot afford as much time as we would like to continue development. Therefore programming and testing stages are quiete irregular. That fact requires us to do a lot of documentation for remembering the latest state (and bugs) weeks after testing. A missing internet uplink in the museum building and old Pentium III development computers complicate the development, in addition. I'd love to write some kind of development blog at least to document the progress. '''Current development progress:''' * Anelex project: Active development * Bull project: The computer is currently not running (germanium transistors are likely to fail) == The Anelex printer == [[Image(//shared/photos/rechnertechnik/anelex-drucker.jpg, link=http://www.technikum29.de/en/computer/gamma10.shtm#analex, right, 300px)]] This is kind of an ordinary line printer. We already contrived most of the pinouts and build some working interfaces. Unfortunately the spare documentation is all Dutch, and we are missing timing diagrams. Please read the '''[wiki:Anelex Anelex Project Page]''' for further information. {{{ #!html
}}} == The Bull GAMMA 10 Computer (''gamma10-interface'') == [[Image(//shared/photos/rechnertechnik/bull-gamma-10.jpg, right, link=http://www.technikum29.de/en/computer/gamma10.shtm, 300px)]] The Bull Gamma 10 computer features a dedicated printer buffer that is directly read out by the printer that originally belongs to the Gamma 10. Since that printer doesn't work any more, we are about to simulate the complete process (which is ''very'' low level, in terms of e.g. direct pass-through of electrical shift register control or direct output of object codes via flip-flops). We started this project in April 2010. Now (May 2010) we mounted the [http://www.olimex.com/dev/avr-p40-8535.html AVR-P40-8535] board on a bigger interface board that is equipped with an interface jack and plenty of selfmade logical converters that translate the TTL levels (0 = 0V, 1 = +5V) to the inverted and shifted Gamma 10 levels (0 = 0V, 1 = -5V). We will publish these circuits (as well as some photos) for documentation soon. We are currently still improving the performance/signal output of these translation components, but you can already see the correct voltages at the oscilloscope, as well as get trigger interrupts on the microcontroller. Programming the microcontroller will be a rather tricky work, since there's much concurrent work: * We must simulate the encoder disk from the original Gamma 10 printer with 300 chars/minute, each 6bit+1parity. This will be implemented (of course...) using 8bit or 16bit timers. This work is generally not so important, since it is really slow. * Furthermore there is a clock pulse with a short offset (some 10usec) from the signals. This is surely another good job for an accurate timer. * When the Gamma 10 gets the clock, it starts scanning its internal 160 character printer buffer. The output wires were directly connected to a shift register in the printer that was controled by the Gamma 10. This is really high speed (only some very few us per character), and we will trigger all important data and fetch them into RAM. For this purpose, we equipped our ATmega microcontroller with a 20MHZ crystal oscillator for maximum speed. The real timings are quite complex, since special operations like line feeds are externally controlled (not part of the streaming data). We have looked up all the timings by reverse engineering the internal circuit diagrams of the Gamma 10. So by now, these values are still untested. But there are plenty of diagrams and nice schemes available, and I will scan them in some time to publish them at this page :-) {{{ #!html
}}} == Microcontroller communication == The final layout currently schedules two microcontroller: The one in the Gamma 10 that reads out the data and (of course) translates them to ASCII, and the second microcontroller in the (real) printer that is fed with input data that will be (surprise!) printed out. The µC-µC communication is implemented presumably with an [http://en.wikipedia.org/wiki/Null_modem Null modem cable].