No, it executes all 143 loops writing all 144 bytes. In fact I was so tired 
last evening I started counting loop iterations before it occurred to me to 
find the difference in line numbers between first and last loops and divide by 
lines per loop. 😊

 

Thinking out loud here…

 

The start of the cold boot routine sets the stack pointer thusly:

7DE7H  (31H) LXI SP,F5E6H   ; Load the SP with Cold Boot location

 

And stack grown downward. 

 

The 144 bytes is being copied into RAM at F5F0H, F5F0H + 90H = F690H. 

 

The 8K boundaries of each RAM bank are FFFFH-E000H, DFFFH-C000H, BFFFH-A000H, 
9FFFH-8000H.

 

Both the stack and location being copied to are in the same bank but do not 
overlap. Only A0-A10 routed to RAM, noted by spaces below.

 

F5F0H, 1111 0  101 1111 0000B   start of RAM copy destination

F690H, 1111 0  110 1001 0000B   end of RAM copy destination

F5E6H, 1111 0  101 1110 0110B   start of stack, grows down.  

 

I think the RAM module has four chips which would be 2K each.

FFFFH-F800H, F7FFH-F000, EFFFH-E800, E7FFH-E000

 

So, the address range in question is all on the same chip. It would seem odd 
that the bank decoding would work correctly for only some addresses in this 
same bank, i.e. A11-A15 are not changing. But this is possible. It could be in 
the RAM itself, perhaps it is bad at that particular offset into the stack?

 

This PCB is the early style with the odd Sharp ROM pinout. I believe the 
standard RAM module is the same footprint as the option RAMs, of which I have 
two. I guess M4/M5 are the easiest to swap out and try to pull and test.

 

Thanks for all your help,

Jeff

 

 

 

 

From: M100 <[email protected]> On Behalf Of Fugu ME100
Sent: Wednesday, May 9, 2018 11:43 PM
To: [email protected]
Subject: Re: [M100] SPAM-LOW: Re: New member - question on 'half' alive Model 
100

 

Does it only execute the loop once and get stuck for the first time at 2574H?   

 

The 49H in the data dump is most likely the C9H for the RET.  The next two byte 
are the return address from the stack.  They could be 0A57H, 0AD7H, 8A57, 8AD7H 
or  other permutations.  As this routine is writing to the RAM it is quite 
possible it is trashing the stack and destroying the return address - could be 
a bad RAM chip or decoder.  

 

There are at least two different versions of the M100 motherboard one has 
700mil RAM modules and the other 750mil.  Not sure if there are any ROM 
differences or other hardware differences.     

Reply via email to