root/paper-tape-project/trunk/driver/FACIT-MANUAL.txt

Revision 17, 4.7 kB (checked in by sven, 4 years ago)

Directory restructuring: Due to the new reader project, I've deciced to
make a general "driver" directory which shall contain all drivers and
their tools or auxillary libraries, seperated by operating system. Thus
we'll get

driver/puncher-backend.h
driver/reader-backend.h

for the general interfaces and implementations in driver/linux and
driver/win32, respectively. While the linux implementation features some
command line tools, the win32/NT implementation has the DLL and DEF files
for user mode programming.

I have not decided already about the reader/ and puncher/ directories, but
I think they could be kept, implementing the reader and puncher both CLI
and GTK frontends.

In the meanwhile, I'm writing the visualisator project from the scratch.
I've already rewritten the LOCHSTREIFEN sources -- now they've got a much
cleaner interface and better source with no more stupid features at the
wrong place. Furthermore it renders according to the public ECMA standard
for paper tapes (ECMA 10).

I'm about to rewrite GtkPaperTape? in C++ with gtkmm using a
Controler-Model-View pattern. It is supposed to be able to open multiple
views, implement a full hexeditor (paper tape editor) and display having
many other neat futures. Furthermore the stupid repaint/scrolling bugs
should no more appear in the clean rewrite.

Great disadvantage of the rewriting: It's fairly much to do, and I nearly
speak no C++ some days ago, until I've read several books about it. Using
C++ gives me much more flexibility and a powerful real OO system, nothing
what GObject could serve with, at least not with as few code as Cpp does.

There is a time plan -- the new GTK gui and the driver implementations
shall be done in this week... So a lot of work pending :-)

-- Sven @ workstation la celeste

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