[Altair Computer Club] Re: solivant.com instructions for loading 4K BASIC using 2SIO
- Hi Bill,
Yes, I do load Basic from my PC at 9600 baud - it works great. I also load from a high-speed paper tape reader that loads at 9600 baud - no problem. And no memory at F000.
When I load Basic, I follow the instructions in the Altair manual EXACTLY, and it works perfectly. This includes toggling the Reset switch, etc. And it loads 100% of the time.
A while back, I posted some files on this site regarding loading Basic from paper tape. Take a look at "Files>Working With Paper Tapes". I disassembled the original Altair Checksum Loaders and documented them. You might find it interesting.
I also just uploaded several versions of Altair Basic into "Files>Altair 8800 Paper Tape Images" Note that Basic 3.X uses a different loader than does 4.X. These loaders are both listed in my "Working with Paper Tapes" directory. (Basic 1.X had another loader, and did not support the 2SIO. I don't have a copy of that old version.)
(If you get really curious, check out the file MELOD4.asm. This is the 4.X Checksum Loader, modified to support loading from the 2SIO's second port.)
I believe that the version of Basic 3.2 that I uploaded is the same as the one you loaded from the Solivent site. And mine does not require memory at F000...
I am quite curious about why your system requires memory at F000. This really should not be the case. One hair-brained guess is that you have several address lines shorted on your bus. Thus, writing to low memory is actually writing into high memory instead - and the read-back is reading from the high memory. But this would mean that Basic might not run properly either, and as far as I can tell, you are getting Basic to run. Weird.
Does your Basic run correctly? Can you write a Basic program and run it?
A couple of questions:
Do you actually see memory (via the front panel) at all the correct addresses for where you jumpered the boards?
Here is an interesting experiment you might try: Use the front panel to load a super-simple program into memory at 000000: (in octal)
000000 303 (JMP 000)
Now, hit the reset switch. The front panel address should read 000000, regardless of the switch settings. If not, something is wrong. Then try single-stepping through the program. Does it work correctly? Try running it - you should see just A) and A1 leds lit, the rest off...
--- In firstname.lastname@example.org, B Degnan <billdeg@...> wrote:
> I am using the BASIC found on solivant.com and specific to the directions there on that sight, I am adding my comments for someone who does not have a lot of experience. As-is the directions did not work for me without extra stuff. I doubt I have a problem with my RESET switch.
> About RAM in F000: For quite a while I was perplexed about what was wrong when attempting the solivant.com directions, until I concluded I needed to put RAM in F000. Doing so caused the "MMMM..." that had been being triggered at the 1300byte-mark to be eliminated. Perhaps yes there is a difference with what one downloads from solivant.com and other versions of 4K BASIC. The download 4kbas32m.tap includes the 2nd level bootstrap that may have been customized.
> I am using a 8800B. It seems to help in my situation to add the delay, but I believe it will work without the delay, yes. This was a tip passed along to me from fellow group member Dan Ragonti so I included it with my comments.
> I agree that there are other ways to skin this cat especially if I just use my teletype and copy of BASIC on papertape, but not everyone has this.
> Thanks for checking. Did you actually try the directions without using a real papertape? I know you'd have to re-wire your 2SIO may not be worth it, but I'd be curious if anyone is able to complete the load without RAM in F000.
> -----Original Message-----
> From: mfeberhard <eberhard@...>
> To: altaircomputerclub <email@example.com>
> Sent: Wed, Nov 30, 2011 11:18 am
> Subject: [Altair Computer Club] Re: solivant.com instructions for loading 4K BASIC using 2SIO
> Hi Bill,
> I found your message to be a little confusing - are you using the standard
> version of MITS 4K basic? What version number? Also, which Altair do you have
> is it an 8800a or an 8800b?
> I load 4K Basic (and 8K Basic and also Extended Basic) into an Altair 8800a from
> my 2SIO, using a Teletype, and using my PC via RealTerm. I do not have any
> memory at F000, and none is required according to the manual. Basic loads
> perfectly every time - I never get MMMM (or other) errors. When the load is
> complete, I don't need to do anything with the front panel - Basic starts almost
> immediately by asking MEMORY SIZE?.
> Here are some specific observations:
> 1) No character delay is needed when loading at baud rates up to 9600 baud. The
> Altair can keep up just fine. Because you seem to need a character delay, and
> also because you say it takes a moment for Basic to print the MEMORY SIZE
> message, I suspect that your Altair is not running at the correct speed. You
> might put a scope on the clock and have a look. (If you have an 8800b, you might
> also have a problem with the "slow" circuit in the front panel.)
> 2) The MITS paper tapes are (usually) punched with even parity, but BASIC does
> not check the parity, nor does it setup the 2SIO to generate parity. The
> simplest solution is to set your terminal program up to ignore parity, and leave
> it that way. Then you don't have to go through the step at the end, where you
> change your terminal's parity setup. 7M1 should work with Teraterm, I think.
> 3) There should be no problem with toggling the Reset switch before loading. The
> MITS instructions say to reset before starting the load, and I do this every
> time. It works perfectly. Again, I suspect your Altair has an issue, and this
> looks like a problem with the Reset circuitry in your front panel.
> 4) You are right about the front panel lights changing after the first section
> of tape is loaded. This first section of the tape is the "Checksum Loader."
> Here's what is going on: The loader program that you toggle into the front panel
> is a very simple program that loads without any checksums, memory checks, etc.
> This little program just loads the more robust Checksum Loader at the beginning
> of the tape, which in turn loads Basic. (The front panel lights change pattern
> when the Checksum Loader runs.)
> Basic is stored on the tape in records, each with an assigned address, a
> checksum, and a length (usually 255 bytes). The Checksum loader reads these
> records from tape, writes them to memory, reads each byte back from memory to
> verify the write (the MMM... error test), and checks the checksum (the CCC...
> error test). The third possible error is "OOO...", which indicates that a record
> tried to overwrite the checksum loader.
> 5) One other possible reason that you require memory at F000 is that your copy
> of Basic may be corrupted in some weird way, and contains a record that loads at
> F000. Have you looked in memory to see what is being loaded in the F000 page?
> --- In firstname.lastname@example.org, "billdeg" <billdeg@> wrote:
> > I just wanted to add some info for anyone who attempts to use the instructions
> for loading BASIC onto their Altair 8800(x) computer. I have practiced the
> process and have it down to a science. From this experience I have a few
> adjustments to the solivant.com directions. Most of it is clear, just few
> > 1. You need a RAM card assigned to cover the F000 page. Personally I have
> three 8K RAM cards in my system, one for 0000-1FFF, the 2nd for 2000-3FFF, and
> the third for F000 -
> > 2. After you have toggled in the bootstrap and tested: Examine 000 000 000 000
> (all switches down). Raise A11 and A10. Press RUN. The computer is now waiting
> for a "tape" to be sent to it. DO NOT Reset (as solivant.com says). Light #12
> should be dimmer than the others.
> > 3. Dan Roganti suggested (and it works) that you slow down the characters per
> second transmitted through TeraTerm (assuming you're using that to send the 2nd
> stage bootloader and BASIC). I used 32 msec/char delay.
> > 4. At about byte 1300 or so of the download note that the lights on the front
> of the Altair will change. If at this point the terminal sends a long string of
> MMMMM characters to the screen, this means that the RAM at F000 is not writable,
> not working, or not present. Stop the process and resolve. On the bright side,
> if you see the MMMM characters on your terminal you at least know the 2SIO card
> is working.
> > 5. solivant.com does not describe clearly what happens after the last byte of
> 4K BASIC has been sent. The system will freeze for a minute. Wait for 10-15
> seconds for the lights on the front panel to change and then press the RUN
> button (do not RESET). If everything worked with the download, you'll then see a
> partially garbled MEMORY SIZE? message. Change the terminal to 7/N/1 just like
> solivant.com says and you're good to go.
> > Bill
> Yahoo! Groups Links