The Punched Paper Project website has moved.

This website is from 2008 and the information is most likely quite outdated. Please see the technikum29 Labs for the new website. You might also want to check the technikum29 Computer Museum main website.
-- Sven, July 2013

Contents of driver/FACIT-MANUAL.txt

  FACIT 4070 Tape Punch 75-CPS
  ============================

  The FACIT 4070 Tape Punch (from FACIT Data Productions) is a parallel
  port puncher. It has been manufactured long before the so called
  "centronics port" has been standarised as IEEE 1284. Therefore it's
  a bit complicated to connect this puncher to today's PCs. Of course,
  the PC must be some years old, because *real* high end Computers today
  no more feature a parallel port (so called "LPT" port in DOS days).
  
  I've got a really detailed manual for the FACIT puncher. It was printed
  in October 1979, and at these days electronics were quite well explained
  everywhere.
  
  I won't go very much in detail, but at first, the most important part
  is to take a normal parallel port cable (with about 15 wires) and connect
  it like this:
  
     FACIT    signal       PC pin    PC Reg    Function Notes
     4070     direction    and name  Bit       (for FACIT pins)
     -----    ----------   --------  -------   --------------------------------
       1 Ch1  <---------   2 Data0   D0        \                 
       2 Ch2  <---------   3 Data1   D1        |
       3 Ch3  <---------   4 Data2   D2        | 8 Data Out
       4 Ch4  <---------   5 Data3   D3        | registers, to be set
       5 Ch5  <---------   6 Data4   D4        | from the computer
       6 Ch6  <---------   7 Data5   D5        |
       7 Ch7  <---------   8 Data6   D6        |
       8 Ch8  <---------   9 Data7   D7        /
  +--- 9 Ch9                                   Feed hole channel (logic 1 => always feed hole)
  |^  10 SD                                    Stepping Direction signal, leave as is
  ||  11 PI   <---------   1 -Strobe C0-       Strobe = -Punch Instruction
  |c  12 PR   --------->  11 +Busy   S7-       Busy signal = Still punching
  |o  13 -                                     \                              
  |n  14 -                                     |
  |n  15 -                                     | not used at FACIT site
  |e  16 -                                     |
  |c  17 -                                     |
  |t  18 -                                     /
  ||  19 EXT                                   EXT: external data switch, leave as is
  |V  20 ERR1          +- 20 Ground            ERR1: Error signal, not important
  |   21 TL            |- 21 Ground            TL: Tape Low Signal, not important
  +-- 22 +24V          |- 22 Ground            +24V from internal power supply (log. 1)
      23 -             |- 23 Ground            
      24 +6V (5V)      |- 24 Ground            +6V from internal power supply
      25 0V -----------+- 25 Ground            Signal ground, not connected to chassis ground
     
     
  Now I'll go into detail with the FACIT pins. I've got a block diagram
  and electronic description. Here you get the light edition with the most
  important things:
   
		  0                                          13 milliseconds
   time --+------------------------------------------------+--->
		  .                                                .
   DATA   ._________________                               .
	______|         min 200 usec ... ______________________.
		 .                                                .
   PI     .______________________________                  .
	______| min 100us, max 10ms          |_________________. 
		  .                                                .
   PR __________                                           ._____
		  .     |__________________________________________|
		  .                                                .
   Motor shaft motion                                      .
		  .                           ________________________
		  .                       ...                      .
		  .                   ...                          .
		  .               ...                              .
   ___________________...                                  .
		  .                                                .
		--+------------------------------------------------+--->
   
  As you see, we need only 1 control pin, 1 signal input pin and
  8 data pins for the workflow. Unfortunately, the strobe (PI)
  and busy (PR) don't behave like expected in today's days. Therefore
  we cannot simply use commands like "cat $file > /dev/lp0" at Linux
  or "copy FILE.TXT LPT0:" in DOS/WINNT, but we need an own driver.
   
  In this subproject, we have implemented the diagram above as
  program logic. To keep it more simple, we didn't develop kernel
  driver, but userspace / user mode drivers, using ppdev at linux and
  the third party library "WinIo" at Windows NT.
 
 
  Sven Köppel,
  documentated at 02. September 2008