Front panel operation

Discuss the new Altair 8800 Micro

Front panel operation

Postby Quaxo76 » Oct Sat 06, 2012 4:05 am

Now that I know my Altair is behaving sort of as intended, I've been trying to program it.
I wanted to mostly use it in "stand-alone" front-panel-only mode, because I don't have the space to set it up with monitor and keyboard, and also because that's how the early users used it.
But I found no way to control the panel LEDs from a program (the IMSAI and the COSMAC elf could do that), so I'm wondering what kind of programs could be done this way. I mean, I made the usual programs that add or subtract bytes in memory, I made one that sorts a chunk of bytes, but there's never any "user-interaction" or output of any kind. I can't even make the "Cylon-eyes" scrolling LEDs! :)
So, what kind of programs did people make on terminal-less Altairs back then?

Cristian
Quaxo76
 
Posts: 14
Joined: Sep Tue 25, 2012 6:50 pm

Re: Front panel operation

Postby Quaxo76 » Oct Sat 06, 2012 3:17 pm

OK, I'll answer my own question here.
There is a way to light up the LEDs after all, as I suppose you all know! :) I only found out about the 032 instruction right now, after finding the "Kill the bit" game listing. My bad. So now the Cylon eyes program is here, and I'm off to more programming...
Sorry for the mis-informed post above!

Cristian
Quaxo76
 
Posts: 14
Joined: Sep Tue 25, 2012 6:50 pm

Re: Front panel operation

Postby Quaxo76 » Oct Mon 08, 2012 4:30 pm

In case anyone's interested, I modified a program that I found on the net, written by Lawrence Woodman for the IMSAI using its "output LEDs" feature. It's just a program that sweeps a LED light, with a speed that varies depending on the position of the sense switches. Here's the listing:

Code: Select all
Label      Hex ad.      Oct ad.      Mnemonic   Hex value   Octal      Binary

      00      000      mvi c,FF   0E      013      00 001 110
                        FF      377      11 111 111
      02      002      mvi d,1      16      026      00 010 110
                        01      001      00 000 001
Loop      04      004      mov a,d      7A      172      01 111 010
      05      005      cpi 128      FE      376      11 111 110
                        80      200      10 000 000
      07      007      jz switch   CA      312      11 001 010
                        0F      017      00 001 111
                        00      000      00 000 000
      0A      012      cpi 1      FE      376      11 111 110
                        01      001      00 000 001
      0C      014      jnz move   C2      302      11 000 010
                        12      022      00 010 010
                        00      000      00 000 000
Switch      0F      017      mov a,c      79      171      01 111 001
      10      020      cma      2F      057      00 101 111
      11      021      mov c,a      4F      117      01 001 111
Move      12      022      mov a,c      79      171      01 111 001
      13      023      cpi 0      FE      376      11 111 110
                        00      000      00 000 000
      15      025      jnz right   C2      302      11 000 010
                        1E      036      00 011 110
                        00      000      00 000 000
Left      18      030      mov a,d      7A      172      01 111 010
      19      031      ral      17      027      00 010 111
      1A      032      mov d,a      57      127      01 010 111
      1B      033      jmp delay   C3      303      11 000 011
                        21      041      00 100 011
                        00      000      00 000 000
Right      1E      036      mov a,d      7A      172      01 111 010
      1F      037      rar      1F      037      00 011 111
      20      040      mov d,a      57      127      01 010 111
Delay      21      041      in FF      DB      333      11 011 011
                        FF      377      11 111 111
      23      043      inr a      3C      074      00 111 100
DelOut      24      044      mvi b,02   06      006      00 000 110
                        02      002      00 000 010
DelIn1      26      046      mvi e,FF   1E      036      00 011 110
                        FF      377      11 111 111
DelIn2      28      050      mov h,a      67      147      01 100 111
      29      051      ldax d      1A      032      00 011 010
      2A      052      ldax d      1A      032      00 011 010
      2B      053      ldax d      1A      032      00 011 010
      2C      054      mov a,h      7C      174      01 111 100
      2D      055      dcr e      1D      035      00 011 101
      2E      056      jnz DelIn2   C2      302      11 000 010
                        28      050      00 101 000
                        00      000      00 000 000
      31      061      dcr b      05      005      00 000 101
      32      062      jnz DelIn1   C2      302      11 000 010
                        26      046      00 100 110
                        00      000      00 000 000
      35      065      dcr a      3D      075      00 111 101
      36      066      jnz DelOut   C2      302      11 000 010
                        24      044      00 100 100
                        00      000      00 000 000
      39      071      jmp Loop   C3      303      11 000 011
                        04      004      00 000 100
                        00      000      00 000 000


The ldax instruction is less than optimal as a display output for two reasons:
1) the intended LEDs only stay on for a very short time, so the instruction must be in a tight loop, preferably repeated several times.
2) it's a LOAD instruction, so it modifies the accumulator. Thus the need for the "mov h,a" before and the "mov a,h" after. Luckily in this program there was a free register (h) to use as a temporary storage.
Does anyone know of a better way to display something? Or any comments on the listing?

Cristian
Quaxo76
 
Posts: 14
Joined: Sep Tue 25, 2012 6:50 pm

Re: Front panel operation

Postby tbtalbot » Oct Mon 08, 2012 8:55 pm

I think that Vince has discussed making the LEDs addressable in a future firmware release. Not sure where that post is, though.
tbtalbot
 
Posts: 9
Joined: Jun Sun 03, 2012 10:49 am

Re: Front panel operation

Postby bibrex » Oct Sun 14, 2012 9:08 pm

Hi Cristian,

Ok, I entered your program, using the Octal codes column, and it didn't work at first. I then found that there's a minor error on the very first line (@address 0000).

It reads:
00 000 mvi c,FF 0E 013 00 001 110

But should be:
00 000 mvi c,FF 0E 016 00 001 110

It now runs very nicely. Thank you.

Thought you'd like to know. :)

Best regards,
Billy

When you've eliminated the impossible,
whatever remains, however improbable, must be the truth. - Sir Arthur Conan Doyle
User avatar
bibrex
 
Posts: 65
Joined: Jul Sat 21, 2012 9:32 pm
Location: Monterrey, N.L. México

Re: Front panel operation

Postby Quaxo76 » Oct Tue 16, 2012 3:30 pm

Hi Billy,
Of course you're right! It's a typo. I didn't catch it because when I checked it, I used the binary column, thinking that typos would be more likely to happen there...

By the way, try running it step-by-step if you can, and check if the A15 led works in step mode? For me it doesn't, it just stays off even though it works fine in run mode....

Cristian
Quaxo76
 
Posts: 14
Joined: Sep Tue 25, 2012 6:50 pm

Re: Front panel operation

Postby bibrex » Oct Tue 16, 2012 5:58 pm

Yes, Cristian, I'll try that later this evening and post the result.
Billy

When you've eliminated the impossible,
whatever remains, however improbable, must be the truth. - Sir Arthur Conan Doyle
User avatar
bibrex
 
Posts: 65
Joined: Jul Sat 21, 2012 9:32 pm
Location: Monterrey, N.L. México

Re: Front panel operation

Postby bibrex » Oct Wed 17, 2012 2:21 am

Hi again Cristian,

I guess it is difficult to do that in a strictly 'step mode' with the Step switch. You'd have to Step so many, many times, because of the wait loops that slowdown the updating.

I ran it in 'AutoStep Mode' and yes, A15 led goes on (a little dimer than all other leds, but it does go on).

For 'AutoStep Mode' see:
https://docs.google.com/document/pub?id=1gZgcY7Fj2FvgT1kvAuzpf3qc9Gz-pNO75OwQEQpB27k

AutoStep does the Stepping for you. I suggest to try that. Let me know what you get. :)

IMHO: I guess the thing is that the LED's are not really ON all the time, but they are continually being refreshed while delaying for the LED shifting speed.
Billy

When you've eliminated the impossible,
whatever remains, however improbable, must be the truth. - Sir Arthur Conan Doyle
User avatar
bibrex
 
Posts: 65
Joined: Jul Sat 21, 2012 9:32 pm
Location: Monterrey, N.L. México

Re: Front panel operation

Postby Quaxo76 » Oct Wed 17, 2012 9:10 am

Hi Billy,
I seem to remember that to try the step mode, I just ran the program with the sweep at the lowest speed, then when A15 was lit I stopped it and started stepping from there! But I might be remembering wrong.
I'll try Autostep tonight when I get back home and post the results. Thanks for now!

Cristian
Quaxo76
 
Posts: 14
Joined: Sep Tue 25, 2012 6:50 pm

Re: Front panel operation

Postby bibrex » Oct Thu 18, 2012 2:33 am

Hey Cristian,

Yes, A15 turns on when running normaly or when stepping in auto mode. Still, it looks dimmer than the other LED's.

But then, I also tried what you did, run it slowly until A15 turns on and stop. And you're right, it DOES NOT turn on when you are just using single step with the toggle. So, ... :(

BTW: I named the program file LEDWALK.BIN. How did you name yours?

Try AMAZING.BIN (on the supplied CD) which generates nice mazes. You get to choose the size (memory pemitting). I like it.

Back then (circa 1976), I modified that program to also solve the mazes after having generated them. 8)

Best!
Billy

When you've eliminated the impossible,
whatever remains, however improbable, must be the truth. - Sir Arthur Conan Doyle
User avatar
bibrex
 
Posts: 65
Joined: Jul Sat 21, 2012 9:32 pm
Location: Monterrey, N.L. México

Re: Front panel operation

Postby Quaxo76 » Oct Thu 18, 2012 7:28 pm

I tried the Auto step mode, and I can confirm your observations - A15 lights but dimmer. But the Auto-step is much much faster than I thought!! I thought (and hoped) it would be a very slow mode, useful to see the "blinkenlights" - at say 5 steps per second or so... as it is now, it's not different (visually) from normal run mode.
Anyway back to A15, I wonder if maybe when it is turned on, it stays on for a very short time and then quits? That would explain why a running mode (which turns it on and off very fast) would show it lit.
At least now I know it's not a building error on my part; now it would be nice to see if it's a hardware problem or a firmware problem... though I think it might be related to the other Reset and A15 problems I reported here: http://www.brielcomputers.com/phpBB3/viewtopic.php?f=23&t=1146

I wonder if there's an easy fix for this?

PS - I haven't named my program at all, as I use the Altair in "true Animal fashion" - front panel only. I don't have a keyboard or monitor connected (the video connector in the kit was broken, so I couldn't use it even if I wanted).
Quaxo76
 
Posts: 14
Joined: Sep Tue 25, 2012 6:50 pm

Re: Front panel operation

Postby bibrex » Oct Thu 18, 2012 9:10 pm

Quaxo76 wrote:At least now I know it's not a building error on my part; now it would be nice to see if it's a hardware problem or a firmware problem... though I think it might be related to the other Reset and A15 problems I reported here: http://www.brielcomputers.com/phpBB3/viewtopic.php?f=23&t=1146

I wonder if there's an easy fix for this?


Hi Cristian,

I think there's nothing to fix, nothing wrong with your 8800Micro, it works as theoretically expected. :D

When you turn A15 on, and try to examine or deposit there, you are trying to reach beyond the 32K bytes we have in our basic Altairs. Ok, there's nothing there, no memory at all, so the lines are floating and you can verify that by passing your hand on top of the computer and the LED's wil change. I've just checked this on mine.

In order to try to access beyond 32K bytes we will have to buy (I already ordered one) and install Vince's new RAM Drive/32K expansion board.

So, nothing to worry about IMHO.
Billy

When you've eliminated the impossible,
whatever remains, however improbable, must be the truth. - Sir Arthur Conan Doyle
User avatar
bibrex
 
Posts: 65
Joined: Jul Sat 21, 2012 9:32 pm
Location: Monterrey, N.L. México


Return to Altair 8800 Micro

Who is online

Users browsing this forum: No registered users and 3 guests

cron