1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" |
---|
2 | "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> |
---|
3 | <html xmlns="http://www.w3.org/1999/xhtml" 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> |
---|
13 | |
---|
14 | <!--#include virtual="/en/inc/head.inc.shtm" --> |
---|
15 | |
---|
16 | <!-- Well... quite simple ;-) --> |
---|
17 | <link href="http://page2rss.com/rss/15c37d8c11d3729e650502a0881277e4" 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" /> |
---|
20 | </head> |
---|
21 | <body> |
---|
22 | <!--#echo encoding="none" var="heading" --> |
---|
23 | <div id="content"> |
---|
24 | |
---|
25 | <h2><!--#echo var="title" --></h2> |
---|
26 | |
---|
27 | <p>This page lists some of our development projects where old hardware meets modern |
---|
28 | computer equipment. All projects are selfmade, with partly enormous hardware and |
---|
29 | software efforts, like routed PCBs, kernel drivers and microcontrollers. |
---|
30 | <br/>Upcoming projects:</p> |
---|
31 | <ul> |
---|
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> |
---|
35 | </ul> |
---|
36 | <br/> |
---|
37 | |
---|
38 | <h3>Paper tape processing with contemporary computers</h3> |
---|
39 | |
---|
40 | <p>We were often in a situation when some data stored on a punched paper needed |
---|
41 | to be sent over long distances. Having Internet access and e-mail, that's no matter |
---|
42 | for todays computers, once you can read in paper tapes. The other way around, |
---|
43 | punching new or modified data on punched papers is also a frequent need in our daily |
---|
44 | business. <br/>Therefore we initiated the <b>Paper Tape Project</b>, having the |
---|
45 | pronounced goal to handle paper tapes with contemporary computers, that is, to |
---|
46 | read, change and write (punch) them.</p> |
---|
47 | <p>We use comparatively new punched paper devices that already feature a Centronics |
---|
48 | interface at TTL level. Unfortunately the devices (in detail: reader |
---|
49 | Ghilmetti FER 201, puncher FACIT 4070) didn't yet implement the Centronics |
---|
50 | common standard from the 1970s (officially standardized as IEEE-1284 not until 1994), |
---|
51 | therefore simply connecting those devices with a standard parallel port printer cable |
---|
52 | won't do the job.</p> |
---|
53 | |
---|
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> |
---|
57 | </div> |
---|
58 | |
---|
59 | <p>The very first step was to read the manual carefully to assemble a specially wired |
---|
60 | cable 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 |
---|
62 | don't implement the standarized hand shake, the second step was to implement a suitable |
---|
63 | driver to emulate the right communication behaviour for the punch card devices.</p> |
---|
64 | |
---|
65 | <p>Development started on the free GNU/Linux Operating System where we used the ppdev |
---|
66 | framework of the Linux 2.6 kernel series to program a user space driver in the programming |
---|
67 | language C with a little effort compared to a real kernel space driver.</p> |
---|
68 | |
---|
69 | <p>The parallel port consists of three 8-bit hardware registers: a bidirectional data |
---|
70 | register, a control register and a signal register. Since paper tapes are made of |
---|
71 | 8-bit words (octetts), we just connected these eight bits on the data register to save |
---|
72 | them directly to one byte in the computer. Using the control and signal pins, we could |
---|
73 | implement a interrupt (device cycle) driven communication, since the status register |
---|
74 | features one interrupt enabled bit (strobe). Our devices punch at 80 chars/sec and read in |
---|
75 | 250 chars/sec, so even older PCs can easily run the driver programs.</p> |
---|
76 | |
---|
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> |
---|
80 | </div> |
---|
81 | |
---|
82 | <p>As already told, there's not really the question how to model punched papers on |
---|
83 | computers, since they use the same word length (8 bit) and computer files are |
---|
84 | conceptually the same as paper tapes: byte arrays. A 250 byte binary file therefore |
---|
85 | represents a 250 chars long punched paper. Thus processing punch card files |
---|
86 | with Unix command line tools or hex editors is very easy. To speed up the workflow, |
---|
87 | we wrote some simple perl scripts to label paper tapes. Afterwards we wrote a |
---|
88 | graphical editor, called "Paper Tape Editor", where binary files could be visualized |
---|
89 | and directly edited as paper tapes on the screen. This program was written in C, using |
---|
90 | the Gtk+ toolkit. After writing drivers for the Microsoft Windows Operating System, |
---|
91 | this program was extended to the "Paper Tape Suite" to read, edit, save and punch |
---|
92 | paper tapes graphically. That way every possible procedures with paper tapes can be |
---|
93 | performed with ordinary PCs.</p> |
---|
94 | |
---|
95 | <p>You can get further details with a lot of documentation material on the homepage of |
---|
96 | <a class="go" href="http://dev.technikum29.de/projekte/paper-tape-project/documentation/" |
---|
97 | >The Paper Tape Project</a>. The source code was released as open source can be checked |
---|
98 | out from the <a |
---|
99 | href="http://dev.technikum29.de/svn/listing.php?repname=paper-tape-project">technikum29.de subversion repository</a>.</p> |
---|
100 | |
---|
101 | </div><!-- end of content --> |
---|
102 | <!--#include virtual="/en/inc/menu.inc.shtm" --> |
---|
103 | </body> |
---|
104 | </html> |
---|