Loading ...
Sorry, an error occurred while loading the content.

Connecting an OP-80 paper tape reader to an Altair

Expand Messages
  • mfeberhard
    35 years ago I bought an OP-80 paper tape reader, but could never get it to work correctly with my Altair. I eventually sold the thing in frustration. Now,
    Message 1 of 5 , Jun 3, 2013
    • 0 Attachment
      35 years ago I bought an OP-80 paper tape reader, but could never get it to work correctly with my Altair. I eventually sold the thing in frustration.

      Now, with a couple of engineering degrees and a several decades' engineering experience behind me, the OP-80 is no big mystery :-) However, my replacement OP-80 (a recent eBay purchase) cost me double what my original one cost me. Ah well.

      So here is how you connect an OP-80 to an Altair parallel port, and make it work correctly.

      The Altair 88-4PIO and the Altair 680-UIO have the following DB-25 pinout for their parallel ports. You can easily wire an 88-PIO with the same pinout, and I recommend you do so, to keep it consistent with this (peculiar) Altair standard:

      DB25.88-4PIO..88-PIO
      Pin..signal...signal
      01
      02.....CA1.....SBI
      03.....CA2.....BIN
      04.....PA0.....DI0
      05.....PA1.....DI1
      06.....GND....<Note 1>
      07
      08...<Note 2>.<Note 1>
      09
      10.....PB6.....DO6
      11.....PB7.....DO7
      12.....CB1.....SBO
      13.....CB2.....BO
      14.....PA2.....DI2
      15.....PA3.....DI3
      16.....PA4.....DI4
      17.....PA5.....DI5
      18.....PA6.....DI6
      19.....PA7.....DI7
      20.....PB0.....DO0
      21.....PB1.....DO1
      22.....PB2.....DO2
      23.....PB3.....DO3
      24.....PB4.....DO4
      25.....PB5.....DO5

      <Note 1> The 88-PIO (amazingly) has no ground pin on its interface. Because the OP-80 is powered by the interface, it is necessary to provide both ground and +5V to the DB25, from the 88-PIO. I did this by soldering a 3-pin connector onto the back of the 88-PIO board, at the top, where the +5V trace is parallel to the ground trace. (I used a 3-pin connector so that I could key it, to prevent connecting it the wrong way.) I then put a mating connector on the wires from DB25 pins 06 and 08, and plugged this connector into the one on the 88-PIO.

      <Note 2> Pin 8 of the DB25 connects to pin 7 of the 24-pin DIP connector on the 88-4PIO (and also on the 680-UIO). You must install a jumper on the 88-4PIO (or 680-UIO) from pin 7 of the 24-pin DIP connector to +5V on the board.

      The OP-80 has a 16-pin DIP connector, and came with a rainbow ribbon cable for this connector. Here is how you wire the OP-80 to its own DB25 connector for the Altair parallel ports:

      OP-80..Wire...DB-25..OP-80
      Pin...Color...Pin...Signal
      01....Brown....04....D0
      02....Orange...14....D2
      03....Green....16....D4
      04....Violet...18....D6
      05....White....03...-ACK
      06....Brown....02...-RDA
      07....Orange...07....RDA
      08....Green....06....GND
      09....Blue.....08....+5V
      10....Yellow...20....S1
      11....Red......21....S2
      12....Black....22....SPARE
      13....Gray.....19....D7
      14....Blue.....17....D5
      15....Yellow...15....D3
      16....Red......05....D1

      The OP-80 has just one configuration jumper, that selects either active-high or active-low acknowledge. This jumper should be set for Active low acknowledge.

      Finally, a little bit of software. It is necessary to read once from the PIO data port during initialization. This clears the Data Available flip flop on the OP-80, so that the next data will produce a Data Available pulse on the RDA signal.

      The above wiring allows software to control the two LEDs (labeled S1 and S2) by writing to bits 0 and of the parallel output port. You can use these LEDs to signal whatever you want.

      The 88-PIO's data latch is triggered on the negative edge of its strobe signal. For this reason, the OP-80's -RDA signal is used to strobe the 88-PIO. (The positive RDA signal is connected to an unused pin on the DB25.)

      To actually use the OP-80 to load Altair Basic:

      1. Position the OP-80 under a light. Check that the light brightness is correct by observing the "SP" LED. It should be on when no tape is installed, and should be off when paper tape is blocking the optical sensors.

      2. toggle in your bootstrap loader program from the front panel, unless you have a loader in ROM. Note: you may need to modify your bootstrap loader to perform one read from the parallel port during its initialization, prior to reading data.

      3. Set your front panel switches to load from the 88-PIO (or 88-4PIO, if that's what you have). See the loader's documentation.

      4. Position the paper tape in the OP-80 so that the leader portion of the paper tape is over the optical sensors. adjust its position so that the optical sensors are all blocked by the paper, between two bytes of leader.

      5. Reset the Altair, and run the bootstrap loader program.

      6. Pull the papertape smoothly through the OP-80. You can actually pull it fairly quickly - the Altair can keep up.

      Loading with an OP-80 is significantly faster than loading with a Teletype! The march of progress...

      I uploaded a little test program that reads from the OP-80 connected to an 88-PIO and writes the data to a 2SIO. You can find this program in the "Working with Paper Tapes" directory in the files section of this site. The file is called TESTOP80.PRN.

      -Martin E
    • corey986
      Funny you must be reading my mind... So I m working in moving my Decitek high speed reader from rs232 to using my MITS PIO. Since I have an SIO-A as my serial
      Message 2 of 5 , Jun 4, 2013
      • 0 Attachment
        Funny you must be reading my mind...

        So I'm working in moving my Decitek high speed reader from rs232 to using my MITS PIO. Since I have an SIO-A as my serial card to avoid the serial switch box since it has only one port. I have started looking at what I need to do, plus I figure there are a lot of parallel only tape readers out there and it may help others to be able to buy a $150 surplus CNC tape reader if they didn't have to worry about serial which most don't have.

        So far I have used my trusty Briel Replica-1 as a lab rat. It tends to have that duty a lot in testing 6502's, 6820's and now paper tape readers.

        On the Briel, I was able to have it plug into the keyboard port, so no 8th bit yet, but I am able to easily read a test tape of text. The biggest trick is controlling the reader automatically. On, the Briel I hooked it up to a memory address decode and a quick little circuit to flip the signal to ground to run the spoolers and then +5 to "stop"

        Next up to work on my PIO. I guess I will rewire it to the PIO-4 standard.

        I will have to think a bit and double check for the strobe for the PIO based upon the negative edge triggering of the PIO strobe. I've also been trying to think of how to wire the motor controls so that I don't have to modify the boot loader but still have it automatically start the motors. I know I can easily control the motor using the output port, but I have to look at timing diagrams to see if maybe I can use the reader in slew mode using the -int signal that is latched and available on the PIO connector.

        This is kind of a side project while I work on everything else, so I'll keep you all posted as I get it going. But if I can get it to work on the standard CNC interfaces with motor control, I pick up a cheap Facit reader and try it and then I guess a lot more of us will be loading from tape since the Facit parallel only readers seem to be pretty common and can be cheap.

        Cheers,
        Corey

        --- In altaircomputerclub@yahoogroups.com, "mfeberhard" <eberhard@...> wrote:
        >
        > 35 years ago I bought an OP-80 paper tape reader, but could never get it to work correctly with my Altair. I eventually sold the thing in frustration.
        >
        > Now, with a couple of engineering degrees and a several decades' engineering experience behind me, the OP-80 is no big mystery :-) However, my replacement OP-80 (a recent eBay purchase) cost me double what my original one cost me. Ah well.
        >
        > So here is how you connect an OP-80 to an Altair parallel port, and make it work correctly.
        >
        > The Altair 88-4PIO and the Altair 680-UIO have the following DB-25 pinout for their parallel ports. You can easily wire an 88-PIO with the same pinout, and I recommend you do so, to keep it consistent with this (peculiar) Altair standard:
        >
        > DB25.88-4PIO..88-PIO
        > Pin..signal...signal
        > 01
        > 02.....CA1.....SBI
        > 03.....CA2.....BIN
        > 04.....PA0.....DI0
        > 05.....PA1.....DI1
        > 06.....GND....<Note 1>
        > 07
        > 08...<Note 2>.<Note 1>
        > 09
        > 10.....PB6.....DO6
        > 11.....PB7.....DO7
        > 12.....CB1.....SBO
        > 13.....CB2.....BO
        > 14.....PA2.....DI2
        > 15.....PA3.....DI3
        > 16.....PA4.....DI4
        > 17.....PA5.....DI5
        > 18.....PA6.....DI6
        > 19.....PA7.....DI7
        > 20.....PB0.....DO0
        > 21.....PB1.....DO1
        > 22.....PB2.....DO2
        > 23.....PB3.....DO3
        > 24.....PB4.....DO4
        > 25.....PB5.....DO5
        >
        > <Note 1> The 88-PIO (amazingly) has no ground pin on its interface. Because the OP-80 is powered by the interface, it is necessary to provide both ground and +5V to the DB25, from the 88-PIO. I did this by soldering a 3-pin connector onto the back of the 88-PIO board, at the top, where the +5V trace is parallel to the ground trace. (I used a 3-pin connector so that I could key it, to prevent connecting it the wrong way.) I then put a mating connector on the wires from DB25 pins 06 and 08, and plugged this connector into the one on the 88-PIO.
        >
        > <Note 2> Pin 8 of the DB25 connects to pin 7 of the 24-pin DIP connector on the 88-4PIO (and also on the 680-UIO). You must install a jumper on the 88-4PIO (or 680-UIO) from pin 7 of the 24-pin DIP connector to +5V on the board.
        >
        > The OP-80 has a 16-pin DIP connector, and came with a rainbow ribbon cable for this connector. Here is how you wire the OP-80 to its own DB25 connector for the Altair parallel ports:
        >
        > OP-80..Wire...DB-25..OP-80
        > Pin...Color...Pin...Signal
        > 01....Brown....04....D0
        > 02....Orange...14....D2
        > 03....Green....16....D4
        > 04....Violet...18....D6
        > 05....White....03...-ACK
        > 06....Brown....02...-RDA
        > 07....Orange...07....RDA
        > 08....Green....06....GND
        > 09....Blue.....08....+5V
        > 10....Yellow...20....S1
        > 11....Red......21....S2
        > 12....Black....22....SPARE
        > 13....Gray.....19....D7
        > 14....Blue.....17....D5
        > 15....Yellow...15....D3
        > 16....Red......05....D1
        >
        > The OP-80 has just one configuration jumper, that selects either active-high or active-low acknowledge. This jumper should be set for Active low acknowledge.
        >
        > Finally, a little bit of software. It is necessary to read once from the PIO data port during initialization. This clears the Data Available flip flop on the OP-80, so that the next data will produce a Data Available pulse on the RDA signal.
        >
        > The above wiring allows software to control the two LEDs (labeled S1 and S2) by writing to bits 0 and of the parallel output port. You can use these LEDs to signal whatever you want.
        >
        > The 88-PIO's data latch is triggered on the negative edge of its strobe signal. For this reason, the OP-80's -RDA signal is used to strobe the 88-PIO. (The positive RDA signal is connected to an unused pin on the DB25.)
        >
        > To actually use the OP-80 to load Altair Basic:
        >
        > 1. Position the OP-80 under a light. Check that the light brightness is correct by observing the "SP" LED. It should be on when no tape is installed, and should be off when paper tape is blocking the optical sensors.
        >
        > 2. toggle in your bootstrap loader program from the front panel, unless you have a loader in ROM. Note: you may need to modify your bootstrap loader to perform one read from the parallel port during its initialization, prior to reading data.
        >
        > 3. Set your front panel switches to load from the 88-PIO (or 88-4PIO, if that's what you have). See the loader's documentation.
        >
        > 4. Position the paper tape in the OP-80 so that the leader portion of the paper tape is over the optical sensors. adjust its position so that the optical sensors are all blocked by the paper, between two bytes of leader.
        >
        > 5. Reset the Altair, and run the bootstrap loader program.
        >
        > 6. Pull the papertape smoothly through the OP-80. You can actually pull it fairly quickly - the Altair can keep up.
        >
        > Loading with an OP-80 is significantly faster than loading with a Teletype! The march of progress...
        >
        > I uploaded a little test program that reads from the OP-80 connected to an 88-PIO and writes the data to a 2SIO. You can find this program in the "Working with Paper Tapes" directory in the files section of this site. The file is called TESTOP80.PRN.
        >
        > -Martin E
        >
      • mfeberhard
        I just modified the MITS PIO bootstrap loader to support the OP-80 paper tape reader, and successfully loaded 8K Basic 4.0. I uploaded a pdf file into
        Message 3 of 5 , Jun 4, 2013
        • 0 Attachment

          I just modified the MITS PIO bootstrap loader to support the OP-80 paper tape reader, and successfully loaded 8K Basic 4.0.

          I uploaded a pdf file into "Files>Working with paper tapes", called "Loading Basic with the PIO Board.pdf". This paper explains how the standard PIO loader works, and also includes a slightly modified version of this loader that initializes the OP-80 correctly. (It also documents a genuine bug in the PIO bootstrap loader that is in the Basic 4.0 manual.)

          Here's what it looks like to load Basic with an OP-80. Note that there is a pretty bright can-light in the ceiling just above the OP-80. (The hand-cranked winder on the right is really helpful.)


        • mfeberhard
          Sheesh. I sometimes think Yahoo is still loading their software from paper tape. They truncated the image off of my message because it was larger than 64K :-(
          Message 4 of 5 , Jun 4, 2013
          • 0 Attachment
            Sheesh. I sometimes think Yahoo is still loading their software from paper tape. They truncated the image off of my message because it was larger than 64K :-(

            Here is the image link, in the Photos section, under "8K Basic from Paper Tape" (The last photo there.)

            http://groups.yahoo.com/group/altaircomputerclub/photos/album/994218928/pic/1625209678/view?picmode=&mode=tn&order=ordinal&start=1&count=20&dir=asc

            -Martin

            --- In altaircomputerclub@yahoogroups.com, "mfeberhard" <eberhard@...> wrote:
            >
            >
            > I just modified the MITS PIO bootstrap loader to support the OP-80 paper
            > tape reader, and successfully loaded 8K Basic 4.0.
            >
            > I uploaded a pdf file into "Files>Working with paper tapes", called
            > "Loading Basic with the PIO Board.pdf". This paper explains how the
            > standard PIO loader works, and also includes a slightly modified version
            > of this loader that initializes the OP-80 correctly. (It also documents
            > a genuine bug in the PIO bootstrap loader that is in the Basic 4.0
            > manual.)
            >
            > Here's what it looks like to load Basic with an OP-80. Note that there
            > is a pretty bright can-light in the ceiling just above the OP-80. (The
            > hand-cranked winder on the right is really helpful.)
            >
          • deramp5113
            Cool mini-project. I m stunned that you found an error in an Altair manual! I wouldn t mind picking up one of those readers and PIC ing it to a serial port on
            Message 5 of 5 , Jun 5, 2013
            • 0 Attachment
              Cool mini-project. I'm stunned that you found an error in an Altair manual! I wouldn't mind picking up one of those readers and PIC'ing it to a serial port on my Altair. Do you offer paper tape punching services?

              Mike


              --- In altaircomputerclub@yahoogroups.com, "mfeberhard" <eberhard@...> wrote:
              >
              > Sheesh. I sometimes think Yahoo is still loading their software from paper tape. They truncated the image off of my message because it was larger than 64K :-(
              >
              > Here is the image link, in the Photos section, under "8K Basic from Paper Tape" (The last photo there.)
              >
              > http://groups.yahoo.com/group/altaircomputerclub/photos/album/994218928/pic/1625209678/view?picmode=&mode=tn&order=ordinal&start=1&count=20&dir=asc
              >
              > -Martin
              >
              > --- In altaircomputerclub@yahoogroups.com, "mfeberhard" <eberhard@> wrote:
              > >
              > >
              > > I just modified the MITS PIO bootstrap loader to support the OP-80 paper
              > > tape reader, and successfully loaded 8K Basic 4.0.
              > >
              > > I uploaded a pdf file into "Files>Working with paper tapes", called
              > > "Loading Basic with the PIO Board.pdf". This paper explains how the
              > > standard PIO loader works, and also includes a slightly modified version
              > > of this loader that initializes the OP-80 correctly. (It also documents
              > > a genuine bug in the PIO bootstrap loader that is in the Basic 4.0
              > > manual.)
              > >
              > > Here's what it looks like to load Basic with an OP-80. Note that there
              > > is a pretty bright can-light in the ceiling just above the OP-80. (The
              > > hand-cranked winder on the right is really helpful.)
              > >
              >
            Your message has been successfully submitted and would be delivered to recipients shortly.