• Please review our updated Terms and Rules here

4k basic running on my Altair!

kingchops

Experienced Member
Joined
Aug 11, 2011
Messages
179
Location
Adelaide, AUSTRALIA
After a two year search, I finally managed to get my hands on a MITS 882-SIO serial card for my Altair. This one came from an Altair8800BT, which I now own (see my other post). The card was wired to work on ports 24,26, because the BT that it came from was set up to use the serial port on the turnkey module as the main console, set to port 20. I managed to test it in my 8800 by modifying the serial echo program from the basic manual to work on ports 24,25. This gave a successfull echo using Teraterm on my pc. Being highly motivated at getting a successful echo, I re-jumpered the card to work on the standard port 20. Luckily it was only one jumper wire to set it to the standard 20,22 octal address for MITS software. Back into the machine it went and after some mucking about with terminal settings and I was able to get a consistenly correct echo of all characters through Teraterm. So then I followed the instructions for loading 4k basic. I Followed the directions of the Solviant site:

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

and also the good info provided on vingatecomputer.net here:

http://www.vintagecomputer.net/browse_thread.cfm?id=318

And after a couple of attemps success! I've now managed to get 4k basic running on my Altair twice, with only a single 4k memory card installed.

The MITS 88-2SIO:
5.jpg

Here it is connected the Altair 8800 and via serial cable to the pc:
10.jpg

Here's the response I got when I sent the 4k basic tape file:
15.jpg

Then made the terminal adjustments from 8 databits and no parity, to 7 databits and even parity:
20.jpg
 
Last edited:
Always exciting when "Memory Size" first pops up on a restore job!

You'll find the Altairs keep up with loading Basic at 9600 baud with the per-character and per-line delays both set to zero in TeraTerm. This also eliminates the "system will freeze for 15 seconds or so" note made on the vintagecomputer.net thread. The system isn't really frozen -- the download is actually still in progress, but due to buffering, the progress dialog process thinks the transfer is complete and closes. This effect is also noticeable at slow baud rates.
 
At 9600 baud I have found you need a delay when using a 2SIO card, at least the versions I have. This is a "sure fire" way to make sure it works especially when troubleshooting. So, I sort of agree with you, but in practice your statement is not always what I have found with all the Altairs I have worked with. IF you can get away with no delay then all the better, but if you're having trouble try putting in a delay to see if that works. Note vintagecomputer.net uses 9600b.
 
That's interesting. At 9600 baud, I haven't needed the delay for 2SIO or SIO in either an 8800 or an 8800b. Gotta love the "personality" the vintage computers throw at us!
 
That's interesting. At 9600 baud, I haven't needed the delay for 2SIO or SIO in either an 8800 or an 8800b. Gotta love the "personality" the vintage computers throw at us!

Yes, I think the "personality" is the issue. I tried again today to load basic, trying all sorts of different delay settings from zero and up, but no go. I've now got the first stage bootloader written to an eprom in my Bytesaver card, so it makes testing the transfer through Teraterm much easier. But I've noticed that the quality of my serial connection is not always good. Sometimes I'll be able to get a reliable echo and other times, I'll get incorrect characters echoed back on certain key presses. I've noticed that I can get a fully reliable echo at times and this is a good indicator that basic will load properly. I just have to nail down the process of getting a good serial connection every time.
 
Kingchops: Would you be able to run a few lines of Basic on your real Altair for me?

The reason being I have written an Altair emulator for my TRS-80 Model III (it's really an 8080 emulator with some Altair i/o attached). It runs 4K Basic fine, and I'm dying to know how slow my emulator is to the real thing. I've tried getting comparisons with two PC-Altair emulators but can't conclusively get them to run at original speed.

The Basic program is:
10 FOR A=1 TO 1000
20 B=B+A
30 NEXT A

How many seconds does this take on a real Altair 8800 running 4K Basic please? I assume it's running at 2MHz? Otherwise please state.

Greatly appreciated
Philip
 
Last edited:
Congrats! I'm hopefully going to join the club later this year with my 8800. I'm still restoring mine and will find out if my 8080 CPU and 2SIO are functional.
 
Does anyone know if this is possible to boot and load via 88-SIOA? I don't have a 2SIO but I do have an SIOA.

Thanks
 
Kingchops: Would you be able to run a few lines of Basic on your real Altair for me?

The reason being I have written an Altair emulator for my TRS-80 Model III (it's really an 8080 emulator with some Altair i/o attached). It runs 4K Basic fine, and I'm dying to know how slow my emulator is to the real thing. I've tried getting comparisons with two PC-Altair emulators but can't conclusively get them to run at original speed.

The Basic program is:
10 FOR A=1 TO 1000
20 B=B+A
30 NEXT A

How many seconds does this take on a real Altair 8800 running 4K Basic please? I assume it's running at 2MHz? Otherwise please state.

Greatly appreciated
Philip

Yes, my Altair runs at 2MHz, if you are willing to wait (hopefully a few days), I will run this test for you. I've currently removed my serial card and I'm getting some mods done to it, so it's with a tech at the moment. I'm getting a 16 pin socket put in so I can change baud rates on the fly, and I'm also getting him to hard wire the port jumper which I only wire wrapped initially to change it to port 20. Hopefully I should have it back by the weekend.
 
Last edited:
Does anyone know if this is possible to boot and load via 88-SIOA? I don't have a 2SIO but I do have an SIOA.

Thanks

The SIOA should work. I think the main issue is to check what port the board is configured for. If it's set to port 20, you should be ok to run Basic. My 2-SIO was initially set to port 24 (oct), so once I changed it to work on port 20 (oct), I could load Basic. Prior to that I could still check that the card functioned by changing the echo program to work on port 24.
 
Actually I have to check the docs or my SIO-A card. But I think it's a different port that basic expects for the SIO-A. Also you need to know if yours is a rev-0 that has been updated or not. There is a slightly different boot loader to toggle in.

But yes it should work and depending on how old a version of basic may be more historically correct since it predates the 2SIO. I have been using mine, though my 3P+S setup to emulate a 2-SIO is what is in my system now because I didn't want to risk my SIO-A while I sorted out my ebay purchased high speed paper tape reader.

Good luck,
Cheers,
Corey
 
Actually I have to check the docs or my SIO-A card. But I think it's a different port that basic expects for the SIO-A. Also you need to know if yours is a rev-0 that has been updated or not. There is a slightly different boot loader to toggle in.

But yes it should work and depending on how old a version of basic may be more historically correct since it predates the 2SIO. I have been using mine, though my 3P+S setup to emulate a 2-SIO is what is in my system now because I didn't want to risk my SIO-A while I sorted out my ebay purchased high speed paper tape reader.

Good luck,
Cheers,
Corey


Corey,

I just checked this page on solviant.com (see bottom of page), and it confirms what you're saying. The SIOA should be set up on ports 0,1 not 20,21 like the 88-2SIO. This has always confused me, does that mean that Basic can run on a different port? And what if you set the SIOA to use port 20 instead, will that work?
 
All versions of BASIC will run fine on the older SIO boards. The front panel switches must be set by the user to identify the type of serial I/O board being used. Both the loader and BASIC read these switches so they operate the specified serial board properly.

The switch settings are specific to the version of BASIC and the loader you are using. Two versions are common with the BASIC files circulating on the internet: The version 3.2 BASIC and loader, and versions 4 (and up) of BASIC which all use the version 4 loader switch settings. The Multi-Boot Loader ROM, Altair DOS and Disk BASIC versions also use the version 4 loader switch settings.

As Corey stated, the SIOA board should be strapped at port 0,1 since when you specify "SIO" with the front panel switches, both BASIC and the loader expect the SIO to be at 0,1. Also as Corey stated, there are two flavors of the SIO board that must be uniquely identified: Rev 0 and "not Rev 0" (as it is typically referred to in Altair docs).

Mike
 
Fantastic. I'm really glad to hear that I should be able to make it work. I think the first step will be to get everything configured and working right using the SIOA but ultimately I'd like to have 4k or 8k basic on an eprom and booting on power on. Does anyone have a setup like that? I don't know the first thing about how I could build or find an eprom card to buy (Which ones are best, where to get them, etc).
 
I don't think it will run basic on port 20 because it uses a differently UART with different status bits than the 2SIO. Cards that have the same or a compatible UART can "fake" being a 2SIO like the 3P+S and SSM io4

When you tell basic to use a different io card it's more than port sometimes.

Good luck,
Corey
 
Fantastic. I'm really glad to hear that I should be able to make it work. I think the first step will be to get everything configured and working right using the SIOA but ultimately I'd like to have 4k or 8k basic on an eprom and booting on power on. Does anyone have a setup like that? I don't know the first thing about how I could build or find an eprom card to buy (Which ones are best, where to get them, etc).


This is my plan also, and I'm not too far off. The eprom card I have is the Cromemco 8k Bytesaver, it has space for eight 1k 2708 eproms. This is enough to load 8k basic. The Bytesaver card is great, to date it has saved me a lot of time. Currently I have the serial echo program; 4k Basic fist stage bootloader and the Bytemover software loaded onto the eproms. The main issue with this card is working with the 2708 eproms. Unfortunately because they are an old eprom, many modern programmers won't program them, so it's not possible to program the eprom on a pc and then transfer it to the Altair. However you can toggle in a program through the front panel and then write it to a 2708, so at least you only have to do it once.

I've done some research recently on using 2716 eproms with the Bytesaver, apparently all you need to do is bend out and ground pins 19 and 21 to pin 12 on the 2716's and they will work as a 2708. 2716's can be programmed on many modern eprom programmers, so if this works, it will be a great way to transfer programs from a pc to the Altair. I've currently got some 24 pin adapter sockets and 24 pin zif sockets on order, and my plan is to do the 2716 hack in the adapter socket and then also install a zif socket on top of that. This should enable me to easily remove the eproms from the Bytesaver in the Altair without taking the card out. I'll post details on this once I get everything going (hopefully).
 
All versions of BASIC will run fine on the older SIO boards. The front panel switches must be set by the user to identify the type of serial I/O board being used. Both the loader and BASIC read these switches so they operate the specified serial board properly.

The switch settings are specific to the version of BASIC and the loader you are using. Two versions are common with the BASIC files circulating on the internet: The version 3.2 BASIC and loader, and versions 4 (and up) of BASIC which all use the version 4 loader switch settings. The Multi-Boot Loader ROM, Altair DOS and Disk BASIC versions also use the version 4 loader switch settings.

As Corey stated, the SIOA board should be strapped at port 0,1 since when you specify "SIO" with the front panel switches, both BASIC and the loader expect the SIO to be at 0,1. Also as Corey stated, there are two flavors of the SIO board that must be uniquely identified: Rev 0 and "not Rev 0" (as it is typically referred to in Altair docs).

Mike

Ok so what this means is that Basic can run on both ports 0,1 and 20,21. And it's the loader that determines which port it's configured to. If this is the case then why can't the loader be modded to load and run Basic on other ports?
 
BASIC expects the console at 0,1 and the status register of an SIO board if you specify an SIO board on the front panel switches. BASIC expects the console at 20,21 and the status register of a 2SIO board if you specify a 2SIO board via the front panel. The status registers are different between the two boards.

The loader reads the switches to determine serial port info so it can read the paper tape. The loader does not set anything up for BASIC. When BASIC starts running, it reads the switches itself so it can determine serial port assignment. This means that non-standard port usage requires patching both the loader and BASIC.

In general, modifying your serial board for standard port assignments is easier/better than patching the loader and BASIC.
 
Back
Top