Altair DOS 1.0 Memory Issue

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

Altair DOS 1.0 Memory Issue

Postby toml_12953 » September 28th, 2021, 2:30 pm

I'm trying to boot Altair DOS 1.0 on my 8800C. I have an FDC+ card with the 64K mod so the RAM address space goes all the way to FFFFh. AMON switches itself out when I execute the BO command to boot from floppy.

When I try to boot DOS, I answer as follows:

MEMORY SIZE <enter>
INTERRUPTS? N
HIGHEST DISK NUMBER? 1
HOW MANY DISK FILES? 3
HOW MANY RANDOM FILES? 3

Then I get INSUFFICIENT MEMORY and the system stops responding.
I've tried answering MEMORY SIZE with a number but only very low numbers (like 4000) work and I've tried various numbers of files, including 0 but I still get INSUFFICIENT MEMORY.

Has anyone run this DOS on a 64K machine? Were there any tricks involved?
toml_12953
 
Posts: 297
Joined: June 7th, 2013, 12:54 pm

Re: Altair DOS 1.0 Memory Issue

Postby AltairClone » September 28th, 2021, 10:47 pm

Altair DOS thinks 64K is zero. You’ll need to specify something less at the memory size prompt. You may be able to type 65535.

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

Re: Altair DOS 1.0 Memory Issue

Postby toml_12953 » September 29th, 2021, 7:06 pm

AltairClone wrote:Altair DOS thinks 64K is zero. You’ll need to specify something less at the memory size prompt. You may be able to type 65535.

Mike


I found out that, for DOS (and unlike BASIC), MEMORY SIZE doesn't mean how much memory to use, it means how much memory to reserve for the user's routines. In other words, if you specify 8192, then DOS gets 64K - 8192 = 56K bytes and you get 8192 bytes for your own routines. In order to maximize DOS RAM, I need to specify 1 at the prompt. Usually, just pressing Enter or entering 0 would be OK but, of course, with a full 64K, that doesn't work. The coders of DOS didn't foresee someone having a full 64K RAM with no ROM at all.
toml_12953
 
Posts: 297
Joined: June 7th, 2013, 12:54 pm

Re: Altair DOS 1.0 Memory Issue

Postby AltairClone » September 30th, 2021, 9:38 pm

toml_12953 wrote:I found out that, for DOS (and unlike BASIC), MEMORY SIZE doesn't mean how much memory to use, it means how much memory to reserve for the user's routines. In other words, if you specify 8192, then DOS gets 64K - 8192 = 56K bytes and you get 8192 bytes for your own routines. In order to maximize DOS RAM, I need to specify 1 at the prompt. Usually, just pressing Enter or entering 0 would be OK but, of course, with a full 64K, that doesn't work. The coders of DOS didn't foresee someone having a full 64K RAM with no ROM at all.


Very interesting! Now that you mention it, I've never actually tried typing anything other than CR into Altair DOS. Where did you find this information? I don't see it described like this in the Altair DOS manual I have and I'd like to learn more about it.

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

Re: Altair DOS 1.0 Memory Issue

Postby toml_12953 » September 30th, 2021, 10:46 pm

AltairClone wrote:
toml_12953 wrote:I found out that, for DOS (and unlike BASIC), MEMORY SIZE doesn't mean how much memory to use, it means how much memory to reserve for the user's routines. In other words, if you specify 8192, then DOS gets 64K - 8192 = 56K bytes and you get 8192 bytes for your own routines. In order to maximize DOS RAM, I need to specify 1 at the prompt. Usually, just pressing Enter or entering 0 would be OK but, of course, with a full 64K, that doesn't work. The coders of DOS didn't foresee someone having a full 64K RAM with no ROM at all.


Very interesting! Now that you mention it, I've never actually tried typing anything other than CR into Altair DOS. Where did you find this information? I don't see it described like this in the Altair DOS manual I have and I'd like to learn more about it.

Mike


It seemed to be the case since 1 worked but large numbers gave an INSUFFICIENT MEMORY error. Now analyzing the actual numbers, I don't really know what's going on!

I tried the following values for MEMORY SIZE (keeping all other prompts the same, of course) If you can figure out what's going on from these numbers, good for you! It looks like that number is adding to some fixed base number although why that would be useful, I don't know. It's possible there an automatic reserve of RAM at startup and the number entered releases some of it to DOS.

Code: Select all
Value Entered                     RAM size at DOS sign-on
                  1                                         56410
                  10                                       56419
                  100                                     56509
                  150                                     56559
                  200                                      56609  but locksup before the dot prompt.
toml_12953
 
Posts: 297
Joined: June 7th, 2013, 12:54 pm

Re: Altair DOS 1.0 Memory Issue

Postby AltairClone » October 1st, 2021, 8:40 pm

So it looks like the Altair DOS memory size command actually does work as documented and is very similar to BASIC. The problem you’ve run into - as expected - is because you have a full 64K of RAM.

You’ve probably noticed you can see Altair DOS sequencing through RAM on the front panel lights just before the MEMORY SIZE? prompt is displayed. Unlike BASIC, DOS has already sized RAM before it asks the operator for input. It then uses the known size of memory to validate the memory size you might input.

The problem arises when the memory size loop doesn’t find an address without RAM, so it just keeps going past 64K, wrapping to zero, and then eventually clobbering a byte in the RAM size loop itself which finally causes the loop to jump out. This make DOS thinks the RAM size is only about 7800 bytes, which is why DOS won’t accept memory size values over this. Values less than this incorrect value for the top of RAM are accepted, but most won’t let the system run. It looks like small values (e.g., 0, 10, etc.) result in a reverse wrap around 64K and let the system run.

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

Re: Altair DOS 1.0 Memory Issue

Postby toml_12953 » October 1st, 2021, 8:57 pm

AltairClone wrote:So it looks like the Altair DOS memory size command actually does work as documented and is very similar to BASIC. The problem you’ve run into - as expected - is because you have a full 64K of RAM.

You’ve probably noticed you can see Altair DOS sequencing through RAM on the front panel lights just before the MEMORY SIZE? prompt is displayed. Unlike BASIC, DOS has already sized RAM before it asks the operator for input. It then uses the known size of memory to validate the memory size you might input.

The problem arises when the memory size loop doesn’t find an address without RAM, so it just keeps going past 64K, wrapping to zero, and then eventually clobbering a byte in the RAM size loop itself which finally causes the loop to jump out. This make DOS thinks the RAM size is only about 7800 bytes, which is why DOS won’t accept memory size values over this. Values less than this incorrect value for the top of RAM are accepted, but most won’t let the system run. It looks like small values (e.g., 0, 10, etc.) result in a reverse wrap around 64K and let the system run.

Mike


Now that makes sense!
toml_12953
 
Posts: 297
Joined: June 7th, 2013, 12:54 pm


Return to Altair 8800c

Who is online

Users browsing this forum: No registered users and 10 guests

cron