• Please review our updated Terms and Rules here

8800b hangs on serial port test

inakito

Experienced Member
Joined
Oct 5, 2011
Messages
297
Location
Spain
I have used the short routine shown here

http://www.solivant.com/altair_bootloaders/index.php?album=altair_bootloaders&pagen=1

To check my serial port, prior to enter the bootstrap loader for loading Basic on my Altair 8800b.

I have found that when i press RUN the machine hangs. Thereafter Pressing reset does not have any effect. I need to power down the system to regain control. On the trminal side I cannot see any activity either (using teraterm).
My serial card is a SIO2. The test program is loaded at address zero, i have double checked it is correctly entered. Other boards present in the system are two 16Kb static ram.

Could the SIO by itself hang up the system this way?
 
Might be a good idea to use "single step" instead of run. That way you can see at what point in the echo program the system hangs. I'd say the serial card could quite easily hang the system if something is not working properly. Generally after the system hangs it should always come good by flicking up stop and reset simultaneously. I assume you're using both stop and reset.

Things to try:

- Try running a front panel program that's not related to the serial card to test the machine. For example there is a number adding program in the Altair manual that just uses the front panel.

- Check what address your serial card is set to, when I first got my 88-2SIO it was configured to a non-standard address, I had to re-configure it to the standard port 20 octal.

- Re-seat any removable chips on the serial card, this fixed one of my serial cards.

- Try the serial card in a different motherboard slot.
 
You've got two loops. The first tests for a character ready and stalls until the SIO status says there's one available. The routine echoes the character and then (second loop) loops back to the first one ad infinitum.

I can think of two easy things that could foul you up. The first is that the terminal isn't hooked to the SIO card correctly. That should be pretty easy to sniff out. The second easy thing is that the SIO card is configured at the ports that you think it is.
 
Is there has signal noise interfere with the SIO board? As I experienced, the SIO is best to close side to RAM board or CPU board.
 
Last edited:
1) Once the program is running, is the WAIT light on bright, barely glowing, or not on at all? If the computer is properly running the echo program, the WAIT light should be barely glowing (the 2SIO board asserts one WAIT state during a read of the status register).

2) Assuming the wait light glows very dimly as mentioned above, then it sounds like the program is running properly. While the program is running, raise and release STOP (not RESET). The computer should stop at an instruction fetch (M1) cycle (WAIT light should be on bright). Did this happen? If so, the address lights should show an address within the program's loop (octal 10-20). Is that what shows?

3) If both 1 and 2 seem to be correct, it sounds like the program is running properly, but as others have mentioned, the 2SIO may be addressed differently than expected and/or the interface wiring to the RS-232 cable may not be as expected.

Finally, to stop and reset the machine, do as tkc8800 mentioned: raise and hold the stop switch, and while holding the stop switch up, raise and release reset, then release stop. Raising and releasing RESET does not stop the machine, it just asserts RESET to the processor which resets the program counter to zero and the processor continues to run.

Mike
 
deramp5113,
1) When I press RUN, WAIT is dimm, almost off, but not totally off. Leds MEMR, INP and M1 are ON.
2) Raising and releasing STOP does nothing. All leds stay the same.

I need to power off and on again to see any changes on the fron pannel after I press the RUN lever.
And yes, I press both STOP and RESET levers at the same time.

The SIO is configured to use ports 04,05 (instead of 20,21) so I have fixed the code to account for this.
 
Based on #1, it sounds like the program is running correctly.

I'd single step through the program without every depressing run. As you execute the IN opcode at 10 (M1 light is on), then the port is fetched at 11 (M1 light is off), the very next step should be the read of the 6850's status register (the INP light is on and the port you programmed shows on the top 8 bits and the lower 8 bits of the address lights). D1 and D0 should be on and off respectively. What 8 bit value do you see on the data lights at this step?

Single step a couple of more times, then press a button on your keyboard, then single step until the code jumps back to 10, then 11, then the INP cycle. Read the data lights again. If the character came in, D1 and D0 should both be on.

On a separate note, your RUN/STOP circuit is not working. Since DEPOSIT, EXAMINE, etc., are working, the problem is probably not with IC X or O where this usually fails. It's probably back closer to the switch itself and is either the switch or IC V, S, or H. You're lucky your machine tends to power up stopped!

Mike
 
>>D1 and D0 should be on and off respectively. What 8 bit value do you see on the data lights at this step?
Correct, at this step it shows D0=0 D1=1.

>>If the character came in, D1 and D0 should both be on.
The value on D0 does not change, when I press keys on the terminal side. It is always zero.
 
Sounds like checking out signal routing from the 6850 to 1488/1489, to DB25, through cable, to DB9 and PC is the next step. Sounds like the program is running properly.

Mike
 
Sounds like checking out signal routing from the 6850 to 1488/1489, to DB25, through cable, to DB9 and PC is the next step. Sounds like the program is running properly.

A quick serial line check I like to use is to pull the ACIA and put a wire jumper between the TX and RX pins. You should get echo on your terminal. This tests the cable and the transceivers.
 
An inexpensive logic probe can get to the bottom of a lot of things, this included. For example, one that has a pulse detector will tell you what's coming in or out of the UART.
 
An inexpensive logic probe can get to the bottom of a lot of things, this included. For example, one that has a pulse detector will tell you what's coming in or out of the UART.

Also this. My logic probe and Simpson meter are the two most used tools in fixing digital circuits. Rarely do I need the logic analyzer or even the oscilloscope.
 
Well, thanks for your valuable help but, for now, I need to fix several basic issues before I proceed to fix the SIO problem.
The STOP/RESET is not working.
Led D4 gets ON and OFF. Sometimes it stays off.
Bit D4 becomes sometimes bit D5 (I enter 020 and I get 040).
Led D6 sometimes stays on forever.
etc.etc.
In your opinion, are these problems usually related to front pannel board itself or rather they point to the D/C board ?.
 
Just now realized you have an 8800b, not the original 8800. In this case, my previous comments regarding the stop switch and suspect IC's are completely meaningless!

In the 8800b, the front panel board is the Display/Control (D/C) board. The "normal" board that connects with ribbon cables to the D/C board is the Interface board, and next to the Interface board is the CPU board. A small 8-wire jumper directly connects the CPU board to the Interface board. The various problems you are describing can be caused by any of these three boards.

Before you do much circuit debugging, I would first carefully cycle the ribbon cable card-edge connectors on and off the side of the D/C board several times, cycle the CPU and interface board in and out of their motherboard connectors several times, and carefully cycle the connectors on and off the pins at both ends of the short 8-wire jumper between the Interface and CPU board several times (avoid flexing the wires as you do this).

After cycling these connections several times each, see if your list of problems changes.

Mike
 
Back
Top