Replies: 4 comments 2 replies
-
If we refer here: https://www.minuszerodegrees.net/5150/ram/5150_ram_16_64.htm The first two characters of the error code The enabled banks of memory are controlled by switch block S1. This implies that we are not setting switches 3 and 4 correctly. With 16K of RAM, switch 3 and switch 4 should be ON. debug output shows us how S1 is set:
Switch #3 is zero! Why?
This is a simple off-by-one error. The switches are numbered 1-indexed, but I calculated the bits as if they were 0-indexed. So all the bank masks are shifted one too far to the left. |
Beta Was this translation helpful? Give feedback.
-
Fixing that, we can get into ROM BASIC. I was not able to get DOS 1.0 to boot with only 16K of RAM. It seems to attempt to execute at address 0; which is where the IVT lives, and gets stuck. |
Beta Was this translation helpful? Give feedback.
-
GLaBIOS also supports less than 64KB. |
Beta Was this translation helpful? Give feedback.
-
Here's some information on the 5150's dip switches, courtesy of minuszerodegrees:
https://www.minuszerodegrees.net/5150/ram/5150_ram_16_64_SW2.jpg
On the 5150, MartyPC will take the specified conventional memory size from the machine configuration and "round up" to the nearest valid DIP setting. Specifying 0x04000 bytes of RAM produces a DIP switch of 00011111, which looks to match the diagram.
Note that we cannot use the latest 1982 BIOS if we want to have less than 64K of RAM - that version of the BIOS assumes that all RAM banks are populated.
Even so, if we attempt to boot using the '81 BIOS and 0x4000 bytes of memory, we get an error:
Beta Was this translation helpful? Give feedback.
All reactions