source: t29-www/en/development-projects.shtm @ 123

Last change on this file since 123 was 123, checked in by heribert, 10 years ago

Grosses Homepage-Update durch Heribert

  • zahlreiche neue Bilder
  • en: Groesstenteils Bilder ausgewechselt

en/miscellaneous: erstellt, muss gefuellt werden

  • de: Bilder ausgewechselt, Texte ueberarbeitet (Heribert)
  • Property svn:keywords set to Id
File size: 5.9 KB
1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2     "">
3<html xmlns="" xml:lang="en">
4<head><!--#set var="title"        value="Development Projects"
5   --><!--#set var="location"     value="entwicklungsprojekte"
6   --><!--#set var="url_de"       value="entwicklungsprojekte.shtm"
7   --><!--#set var="prev"         value="miscellaneous.shtm"
8   --><!--#set var="prev_title"   value="Miscellaneous"
9   --><!--#set var="next"         value="news.shtm"
10   --><!--#set var="next_title"   value="What's new?"
11   -->
12     <title>Technikum29 - <!--#echo var="title" --></title>
14    <!--#include virtual="/en/inc/" -->
16    <!-- Well... quite simple ;-) -->
17    <link href="" title="Get a nifty RSS feed from this list" type="application/rss+xml" rel="alternate" />
18    <meta name="t29.SVN" content="$Id: development-projects.shtm 123 2009-11-11 22:56:33Z heribert $" />
19    <meta name="t29.initialdate" content="04.10.2009" />
22<!--#echo encoding="none" var="heading" -->
23<div id="content">
25<h2><!--#echo var="title" --></h2>
27<p>This page lists some of our development projects where old hardware meets modern
28computer equipment. All projects are selfmade, with partly enormous hardware and
29software efforts, like routed PCBs, kernel drivers and microcontrollers.
30<br/>Upcoming projects:</p>
32  <li>punch card I/O with AVR ATmega microcontrollers via RS232 to computers,
33      Qt platform independent processing, with various hardware</li>
34  <li>Analex printer interface to the Bull Gamma 10 computer (uC based)</li>
38<h3>Paper tape processing with contemporary computers</h3>
40<p>We were often in a situation when some data stored on a punched paper needed
41to be sent over long distances. Having Internet access and e-mail, that's no matter
42for todays computers, once you can read in paper tapes. The other way around,
43punching new or modified data on punched papers is also a frequent need in our daily
44business. <br/>Therefore we initiated the <b>Paper Tape Project</b>, having the
45pronounced goal to handle paper tapes with contemporary computers, that is, to
46read, change and write (punch) them.</p>
47<p>We use comparatively new punched paper devices that already feature a Centronics
48interface at TTL level. Unfortunately the devices (in detail: reader
49Ghilmetti FER 201, puncher FACIT 4070) didn't yet implement the Centronics
50common standard from the 1970s (officially standardized as IEEE-1284 not until 1994),
51therefore simply connecting those devices with a standard parallel port printer cable
52won't do the job.</p>
54<div class="desc-left">
55   <img src="/shared/photos/rechnertechnik/fer201.jpg" width="239" height="148" alt="Photography of the paper tape reader Ghilmetti FER 201" />
56   <p class="bildtext" style="width:239px;"><b>Ghilmetti FER 201</b> reader with framework for reading zig-zag tapes</p>
59<p>The very first step was to read the manual carefully to assemble a specially wired
60cable to connect the punch card device with the parallel port of a PC (commonly known as
61"LPT port", a standard port on PC motherboards just a few years ago). Since the devices
62don't implement the standarized hand shake, the second step was to implement a suitable
63driver to emulate the right communication behaviour for the punch card devices.</p>
65<p>Development started on the free GNU/Linux Operating System where we used the ppdev
66framework of the Linux 2.6 kernel series to program a user space driver in the programming
67language C with a little effort compared to a real kernel space driver.</p>
69<p>The parallel port consists of three 8-bit hardware registers: a bidirectional data
70register, a control register and a signal register. Since paper tapes are made of
718-bit words (octetts), we just connected these eight bits on the data register to save
72them directly to one byte in the computer. Using the control and signal pins, we could
73implement a interrupt (device cycle) driven communication, since the status register
74features one interrupt enabled bit (strobe). Our devices punch at 80 chars/sec and read in
75250 chars/sec, so even older PCs can easily run the driver programs.</p>
77<div class="desc-right">
78   <img src="/shared/photos/rechnertechnik/facit4070.jpg" width="144" height="196" alt="Photography of the paper tape puncher FACIT 4070" />
79   <p class="bildtext" style="width:145px;">The legendary puncher <b>FACIT 4070</b></p>
82<p>As already told, there's not really the question how to model punched papers on
83computers, since they use the same word length (8 bit) and computer files are
84conceptually the same as paper tapes: byte arrays. A 250 byte binary file therefore
85represents a 250 chars long punched paper. Thus processing punch card files
86with Unix command line tools or hex editors is very easy. To speed up the workflow,
87we wrote some simple perl scripts to label paper tapes. Afterwards we wrote a
88graphical editor, called "Paper Tape Editor", where binary files could be visualized
89and directly edited as paper tapes on the screen. This program was written in C, using
90the Gtk+ toolkit. After writing drivers for the Microsoft Windows Operating System,
91this program was extended to the "Paper Tape Suite" to read, edit, save and punch
92paper tapes graphically. That way every possible procedures with paper tapes can be
93performed with ordinary PCs.</p>
95<p>You can get further details with a lot of documentation material on the homepage of
96<a class="go" href=""
97>The Paper Tape Project</a>. The source code was released as open source can be checked
98out from the <a
99href="">  subversion repository</a>.</p>
101</div><!-- end of content -->
102<!--#include virtual="/en/inc/" -->
Note: See TracBrowser for help on using the repository browser.
© 2008 - 2013 technikum29 • Sven Köppel • Some rights reserved
Powered by Trac
Expect where otherwise noted, content on this site is licensed under a Creative Commons 3.0 License