Loading ...
Sorry, an error occurred while loading the content.

[Altair Computer Club] Re: solivant.com instructions for loading 4K BASIC using 2SIO

Expand Messages
  • mfeberhard
    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.
    Message 1 of 5 , Nov 30, 2011
      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)
      000001 000
      000002 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 altaircomputerclub@yahoogroups.com, 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.
      > Bill
      > -----Original Message-----
      > From: mfeberhard <eberhard@...>
      > To: altaircomputerclub <altaircomputerclub@yahoogroups.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?
      > Martin
      > --- In altaircomputerclub@yahoogroups.com, "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
      > things.
      > >
      > > 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
    Your message has been successfully submitted and would be delivered to recipients shortly.