Data Lights

Discuss construction, troubleshooting, and operation of the Altair 8800c computer

Data Lights

Postby toml_12953 » July 31st, 2019, 7:53 am

When a test program is run, the display of the AltairDuino is different than the display of the Altair Clone and Altair 8800c (and real Altair?). Here's an example:

Watch from 6:59 in this video: https://www.youtube.com/watch?v=EV1ki6LiEmg

The program is this simple one (numbers are in octal):

Code: Select all
0000 303 JMP 020
     020
     000
0020 303 JMP 000
     000
     000


There are at least three different displays:

1. Altair Clone (see video starting at 6:59) lights up D7, D6, D4, D1, D0.

2. AltairDuino lights up D7, D6, D1, D0. D4 is not lit.

3. Altair 8800c (and real Altair?), all the Data lights D7 - D0 are lit.

Which one should be correct?

Is this a bug in the Clone or AltairDuino emulation software or are there variations of the 8080A chip that would act this way?

Tom L
toml_12953
 
Posts: 297
Joined: June 7th, 2013, 12:54 pm

Re: Data Lights

Postby AltairClone » July 31st, 2019, 9:47 am

On the original 8800, the data LEDs are driven directly from the data-in bus. Each bit of the data-in bus is pulled up to 5v on the Altair CPU board, so if no memory or I/O board is driving the data-in bus, then all eight data LEDs are on. This gives slightly different behavior for front panel (stopped) mode versus run mode:

When in front panel mode, the CPU is stopped at a wait state, so for memory reads (and input operations) pDBIN is asserted. This means the addressed board is continuously driving the data-in bus and the data LEDs show the value from memory (or the input operation).

When the processor is running, all eight data LEDs are always on other than during the intervals that an addressed board is driving the data-in bus. The amount of time the data LEDs are all on, versus displaying data from memory or an input device, depends on how long an addressed board enables its output buffers during a CPU input cycle. Early RAM boards from MITS enable output buffers while the address matches and MREAD is asserted. Most newer boards only enable the data bus drives while pDBIN is also asserted. When qualified with pDBIN, the bus drivers are on for a much shorter percentage of time than with a RAM board that does not qualify with pDBIN. This means that for a RAM board that qualifies the bus drivers with pDBIN, the data LEDs will appear all on for the most part.

In the Altair Clone, the front panel LEDs behave as if the RAM bus drivers are not qualified with pDBIN (like early MITS RAM boards) so that the data LEDs give some indication of the values flowing across the data-in bus when the processor is running.

Mike
AltairClone
Site Admin
 
Posts: 632
Joined: April 5th, 2013, 10:55 am

Re: Data Lights

Postby TomXP411 » July 31st, 2019, 1:10 pm

For the sake of clarity, I believe the Altairduino delays updates to the LEDs.

I'd have to go back to find the specific statement David made, but he said that the emulator does not set the LEDs on every clock cycle, because it's too expensive. I haven't looked closely enough at the emulation code to see whether David is emulating at the T-State level or the instruction level, but 2 million updates per second is a lot to ask of the Due's MCU running C++ code.

So if the LED states are sampled at something less than 1:1, the LEDs will show a value that's a little different than the real thing.

In STOP mode and while single stepping through the code, the results should be the same... but while running at full speed, I totally expect some minor differences.
TomXP411
 
Posts: 42
Joined: March 8th, 2018, 4:13 pm

Re: Data Lights

Postby AltairClone » July 31st, 2019, 2:09 pm

David has previously posted that the Altair-Duino does not update the LEDs for every single machine cycle. The Altair Clone, however, does update all LEDs every machine cycle.

On an interesting side note, the Altair Clone runs on a 16-bit, 16 MHz processor while the Arduiono Due used in the Altair-Duino is a 32-bit, 84MHz processor.

Mike
AltairClone
Site Admin
 
Posts: 632
Joined: April 5th, 2013, 10:55 am

Re: Data Lights

Postby TomXP411 » August 1st, 2019, 12:37 pm

And yet David has managed to pack in a hard drive controller, SD card reader, Dazzler support, and a few other odds and ends. ;-)

I have, and like, both the clone and the Altairduino, but I find it's the Altairduino that I use when I actually want to do something with CP/M and the Clone that I use when I want to show someone the front panel. (In fact, my Clone is plugged in, but with no terminal attached.)

One thing I've been pondering is picking up or fabbing a front panel PCB to hook up to an Arduino, but I have just not been able to work up the ambition to actually do it...
TomXP411
 
Posts: 42
Joined: March 8th, 2018, 4:13 pm

Re: Data Lights

Postby toml_12953 » August 2nd, 2019, 7:25 pm

AltairClone wrote:David has previously posted that the Altair-Duino does not update the LEDs for every single machine cycle. The Altair Clone, however, does update all LEDs every machine cycle.

On an interesting side note, the Altair Clone runs on a 16-bit, 16 MHz processor while the Arduiono Due used in the Altair-Duino is a 32-bit, 84MHz processor.

Mike


It just shows what a great programmer you are!
toml_12953
 
Posts: 297
Joined: June 7th, 2013, 12:54 pm

Re: Data Lights

Postby AltairClone » August 3rd, 2019, 8:50 am

toml_12953 wrote:It just shows what a great programmer you are!


It’s actually just a good demonstration of the advantage of assembly code over compiled code in some applications - especially to take advantage of particular features in a processor.

Mike
AltairClone
Site Admin
 
Posts: 632
Joined: April 5th, 2013, 10:55 am


Return to Altair 8800c

Who is online

Users browsing this forum: No registered users and 10 guests

cron