Parallel Card Question

64 views
Skip to first unread message

D “DT” T

unread,
Apr 19, 2025, 10:03:57 AM4/19/25
to Altair-Duino
Hi Guys,

I've been busy building numerous cards for my Altair and have just assembled Dave Hansel's Parallel card.

Firstly, general question - how do the three rows of jumpers work to configure the base IO address of the cards? is there a table i can refer to?

Secondly, as I have yet to atach anything to the Input and Output ports of the parallel card, is there a basic program I could write to test using the OUT command please? Does anyone have any other info on what can be connected please?

I know you may be asking - "why build a card if you dont know what to do with it, or how it works, but hey, its all good fun - :-). "

Thanks in advance guys.

Darren

Richard Fadden

unread,
Apr 19, 2025, 3:32:51 PM4/19/25
to D “DT” T, Altair-Duino
I may not be the best person on the forum to address your questions.  I assume that others will come on and offer their input.

My answers might be a little different from the mainstream.

First, back in the day, when the Altair was new, relatively inexpensive printers used a Serial Interface.  The first printer interface I used drove, I believe, an Okidata dot matrix impact printer from the Altair and its 2SIO Serial Port.
Later the printers seemed to use a Parallel Port interface.

The cables coming off of the Parallel Ports boards (for my Altair) these have DB-25 cables with all of the parallel input and output lines being supported, and this style of connector was used with printers, but another standard that got started and then took off was the use of "Printronix Style" connectors.

So I believe I'm giving you generally useful information about use of Parallel Ports:  My guess is you would easily find cables like the ones I'm using where the cable you plug into your board (I'm not so familiar with your actual board - I've seen it in passing in images) that ends in a DB-25 connector that looks rather like the old original Serial Port standard (but it's supplies parallel, not serial) and that cable could plug in to a certain vintage of printer.

Or you could end up with a cable that has the Centronics Printer standard end, and then you'll find many small (vintage?) printers with this connector, then drive the parallel port based printer with your board.

Now for something completely different:

You can take whatever cable you find that plugs in to your board (and a short cable is good for this use) and you connect (with a little adapter, and I've recently ordered a number of these little inexpensive units) and you connect individual wires to these plug-end adapters and you plug the other end into a Breadboard.   You probably know that the little white breadboard units are inexpensive and available everywhere.   So these various output and input lines can directly interface with (just about) any chips which you may plug in to your breadboard.

So then note: if you go this route your Altair-Duino is controlling external logic and/or it is getting the signals from external digital logic.   What could be better?

This is great for hobby activity.  Digital logic I/O to/from your Altair-Duino.   Perhaps you already do breadboard activities and so the parallel port is the best way to control external logic and/or read from external logic.

I was sort-of heading for the following idea that you might like:  Once you have the wires and the breadboard, use your parallel port lines to drive eight or more LED on your breadboard.
Then code running on your Altair-Duino can toggle the LEDs, and you have LEDs that update in any pattern that you want.

Add a little bit to your breadboard and you can be sensing the input of switches, knobs, sliders, or with a little bit of D/A chip usage you can drive Analog Dials, Meters and you can turn things on and off perhaps with relays, etc.

------------------

Now I'll describe my new use of a Parallel Port on my Altair.  (Keep in mind I do have an Altair-Duino, in addition to my original Altair - it's a long story.  I love my Altair-Duino.  It's an awesome unit.).

Your Parallel Port on your Altair-Duino is pretty darn close to my S-100 board Parallel Ports on my actual Altair.  Roughly speaking we have the same capability.  Use of the port is almost the same.

In my case I'm using one Parallel Port with a cable connected to just one of my available Parallel Ports (I'm using a CompuPro Interfacer II which has 3 Parallel and 1 Serial port) and at the end of the short cable, using a 'cable-end' adapter I have all 8 output data lines going to my breadboard, all eight input lines connected, plus one output control line and two input control lines.

This all was part of a project (not just experimenting with general I/O) and so what I describe next is a higher level goal/project and this Parallel Port is one of the key components.

On the breadboard I have a Teensy 3.1 microcontroller plugged in and I'm using its GPIO (General Purpose Input Output) digital I/O lines directly connected to these parallel port wires.

[My Altair parallel port is all 5 volt, and my Teensy 3.1 is a 5 volt tolerant 3.3 volt microcontroller, plus its naturally lower voltage swing of its output, they are properly detected by the parallel port board.  For those who are interested, I did purchase voltage level converter chips and I am presently using a chip to convert one important output control line to 5 volt signalling levels coming out of the basically 3.3 volt Teensy 3.1.  So although the interface works great as-is I still may use the voltage conversion chips for the final version.  It is surprising that the 3.3 volt Teensy (which indicates 5 v tolerant in the design) does drive an Altair parallel port, input, output and control at the full speed that an 8080 can read from a port or write to a port.]

And I control my Altair (everything you can imagine) from my own C++ program system on my PC.   Everything I do is high level on my workstation, for example using Tcl/Tk and my own GUI and from there I click on buttons and use the full featured GUI and these controls are loading programs into my Altair and I'm running them and making the Altair dance.

This is the Veejer project.   I've described the Veejer project over on the S-100 Computers forum and I did intend to bring this up in the Altair-Duino forum since this generates some interesting ideas.

So with your Parallel Port you could also implement the Veejer project (not that you would want to, but I mention this just to help give ideas).

In other words, starting with my PC workstation I could attach a Teensy 3.1 (Arduino compatible) and there are many other microcontrollers that could be used for that purpose and I have all of the parallel digital I/O lines that I control from that, and then one needs a Parallel Port to connect to (sort of the reverse of what you are asking about - my project requires a parallel port to be available on my Altair).  The micro drives the parallel port.  Altair 8080 code accesses the parallel port, and the software allows commands to come in from my controlling program.

Note: the Veejer project is all about using a parallel port to take over all I/O operations performed on an actual Altair.  It could work nearly identically with an Altair-Duino.

------------------

But to make this post a little too complicated, maybe...  My longer term (fun) plans for my Altair-Duino:   since my fancy code on my workstation already controls an Altair via use of the USB interface to my Teensy 3.1:
The Altair-Duino is an Arduino Due, so my code can directly drive what I load into the Due and I can have my own version of the 8080 simulator where almost all of the code will match what is in the Altair-Duino, and so Veejer would also perform the same functions on an Altair-Duino but via use of the main USB Interface (one wouldn't need to go through the Teensy 3.1 and through to the parallel port).  With the A-D one simply adds to the software which is compiled and run on the Arduino Due.

That also would be a very fun project.

Now for others here to comment and help answer your questions:

Cheers!


--
You received this message because you are subscribed to the Google Groups "Altair-Duino" group.
To unsubscribe from this group and stop receiving emails from it, send an email to altair-duino...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/altair-duino/175a6714-c9ff-4e43-9788-f4454ff16b01n%40googlegroups.com.

John Galt

unread,
Apr 19, 2025, 3:33:21 PM4/19/25
to Altair-Duino

I never looked into the parallel card. keep that in mind.

this post may not be much help either.

you need to start with the 88-PIO manual:
The manual is very painful to read and really gives you zero information on using it.
many of the manuals would give you some demo code, but the 88-PIO does not.

The 88-PIO could only see 128 addresses according to the manual yet it gives a chart showing 255 positions. 

there are ZERO guidelines on what address the 88-PIO should use because there was no software that was designed to use it.
it was suppose to be up to the programmer to connect to the parallel device how they see fit.

most parallel devices we might have been exposed to was a printer.

Serial can only move one Bit at a time. 8 bits for a byte means 8 moves. parallel moves 8 bits in one shot so it should be 8 times faster. due to all the extra wires needed parallel did not make sense for long distance. 

Cp/m never had official drivers for parallel devices. They might be something out there in the archives not something it looked into before.

if you wanted to drive a printer then you would have to create the device driver for parallel for that printer and then the application around it.
i don't think Cp/M Wordstar supported parallel printers, everything was driven through the LST: device which was serial based.

the io-bus card also does not support interrupts like the original 88-pio but i think you needed a 88-VI board as well.

the 88-4pio manual has a little more information on parallel. it gives some assembler code which might help understand the 88-PIO


this manual shows loading basic off a 88-PIO device


There are Cp/M archives you can spend forever looking through but i'm not sure your going to find something you can play with using that parallel card right now.

I do not have the 88-PIO to play around with i guess you would need to put a scope on the outputs and write data to the device and see what the scope picks up.

sorry i couldn't help much maybe this will spark somebody else to post.
 


David Brunell

unread,
Apr 20, 2025, 4:56:56 PM4/20/25
to Altair-Duino
IO port address selection for all of David Hansel's I/O boards work similarly using a set of inverters and an 8-input AND gate. In the case of the parallel port card, A1-A7 select the base address, and A0 selects the data vs control channels on the card. The J1 through J7 jumpers correspond to A1-A7, respectively. Placing a jumper in the upper position (towards the top of the card) selects the card when the corresponding address line is 1, or 0 when the jumper is in the lower position. For example, to set the base address to 10h, you would set J4 up and the rest down.
Reply all
Reply to author
Forward
0 new messages