I was able to verify that the keyboard is being read last night, well at
leat the CTRL-BRK is getting through (by capturing the data latch for the
keyboard).

 

I did another capture of the data bus last night but set the capture
frequency to 4MHz which helped, there is still a bit or spurious data that
is captured because the LA software can't be set to get the timing right.  I
still had to go through the dump carefully and account for the msb being
missing. Below is part of the data collected, this is after a reset without
the CTRL-BRK being held down. The first column is the time stamp. I copied
the source line to the right hand side to make it more clear to me what was
going on. It is a bit of an interesting exercise trying to follow the data
bus dump and match it up to the source code. 

 

It gets down to '7D6CH (CDH) CALL F605H  ; Call RAM routine to Detect Option
ROM (copied to RAM by cold boot)'. I'll have to capture this again after
doing a CTRL-BRK and see what happens. To me it looks like it tries to call
the option ROM detect code which 'should' be in RAM and is reading back
garbage.

 

I did contact Saleae and got a prompt response that said the 'simple
parallel' decoder can't do what I need as is but the source code for it is
in the SDK and it should be a simple thing to add in if I wanted to do that.
I don't know if I want to dig into that at this moment, but it might be fund
just to see how it would be done.

 

After doing another capture with CTRL-BRK down and see if it does go through
the cold boot routine and then does something sensible when calling the
option ROM detect code from RAM. It looks like it might be M4, M5 or even
the standard RAM module itself.

 

0.097676875000000,0x003E Source 7D50H  (3EH) MVI A,EDH      ; Load code to
disable key-scan col 9 (for CTRL-BREAK)

0.097678500000000,0x00ED

0.097679750000000,0x00D3 Source 7D52H   (D3H) OUT BAH       ; Disable
key-scan col 9

0.097681375000000,0x00BA

0.097683750000000,0x00CA Source 7D54H   (CAH) JZ 7DE7H      ; Jump to Cold
boot routine if CTRL-BREAK pressed

0.097685375000000,0x00E7

                 ,0x007D missing

0.097686625000000,0x002A Source 7D57H  (2AH) LHLD F5F0H     ; Active system
signature -- Warm vs Cold boot

0.097688250000000,0x0070 F0 -< sould have been

0.097689500000000,0x0075 F5 -< sould have been

0.097690750000000,0x004D ??

0.097692000000000,0x000A ??

0.097693125000000,0x0011 Source 7D5AH  (11H) LXI D,8A4DH    ; Compare value
to test if cold boot needed

0.097694750000000,0x004D

0.097696000000000,0x008A 

0.097697250000000,0x00DF Source 7D5DH (DFH) RST 3           ; Compare DE and
HL

0.097702125000000,0x007C ???

0.097703750000000,0x00C2 Source 7D5EH (C2H) JNZ 7DE7H       ; Cold boot
routine

0.097705375000000,0x0040 E7 -< sould have been

0.097707750000000,0x007D

0.097709500000000,0x0013 ??

0.097711125000000,0x0049 ??

0.097712750000000,0x005E ??

0.097713875000000,0x007D ??

0.097715125000000,0x0042 ??

0.097716750000000,0x0067 ??

0.097718000000000,0x003A Source 7D61H   (3AH) LDA FAC1H      ; Load MSB of
lowest known RAM address

0.097719625000000,0x0041 C1

0.097720875000000,0x007A FA

0.097722000000000,0x0060 ????

0.097723250000000,0x0057 Source 7D64H   (57H) MOV D,A        ; Save value of
last physical RAM

0.097724875000000,0x004D CD Source 7D65H   (CDH) CALL 7EE1H     ; Calculate
physical RAM available

0.097727375000000,0x0061 E1-< should have been

0.097728500000000,0x007E ??

0.097732250000000,0x0021 Source 7EE1H (21H) LXI H,C000H    ; Ram modules
start at High memory (8K chunks)

0.097733875000000,0x0000

0.097735125000000,0x0040 C0

0.097736250000000,0x007E Source 7EE4H (7EH) MOV A,M        ; Load current
value at this address

0.097737875000000,0x0000 ????

0.097739125000000,0x002F Source 7EE5H (2FH) CMA            ; Compliment the
value

0.097740750000000,0x0077 Source 7EE6H  (77H) MOV M,A       ; And write it
back (non-destructive test)

0.097743625000000,0x003E BE Source 7EE7H (BEH) CMP M       ; Compare if the
value "took" (i.e. there's RAM there)

0.097745250000000,0x0000 ??

0.097746500000000,0x002F Source 7EE8H (2FH) CMA            ; Compliment data
back to original value

0.097748125000000,0x0077 Source 7EE9H (77H) MOV M,A        ; Save original
value (in case there IS RAM there

0.097750875000000,0x007C Source 7EEAH (7CH) MOV A,H        ; Load MSB of
current RAM bank to A

0.097752500000000,0x0042 C2 Source 7EEBH (C2H) JNZ 7EF8H   ; Jump if no RAM
present in this bank

0.097754250000000,0x0078 F8

0.097755375000000,0x007E 

0.097756625000000,0x002E Source 7EF8H (2EH) MVI L,00H      ; Clear LSB of
lowest RAM address

0.097758250000000,0x0000

0.097759500000000,0x0046 C6 Source (C6H) ADI 20H           ; Add 8K back to
address (we over shot)

0.097761125000000,0x0020

0.097762375000000,0x0067 Source 7EFCH (67H) MOV H,A        ; Save the new
MSB of this 8K range

0.097764000000000,0x0022 Source 7EFDH  (22H) SHLD FAC0H    ; Save as Lowest
RAM address used by system

0.097765625000000,0x0040 C0

0.097766750000000,0x007A FA

0.097770500000000,0x0049 C9 Source 7F00H (C9H) RET

0.097772125000000,0x0068 RET address?

0.097773250000000,0x007D RET address?

0.097774500000000,0x003A BA Source 7D68H (BAH) CMP D       ; Test if more or
less RAM than last boot-up

0.097776125000000,0x0042 C2 Source 7D69H (C2H) JNZ 7DE7H   ; Jump to Cold
boot routine if RAM size changed

0.097777750000000,0x0067 E7

                 ,0x007D was missing

0.097779000000000,0x004D CD Source 7D6CH (CDH) CALL F605H  ; Call RAM
routine to Detect Option ROM (copied to RAM by cold-boot)

0.097781500000000,0x0005 

0.097782625000000,0x0076 F6

 

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

 

Yes quite possible a bad 81C55, M15 or keyboard would cause an issue.  Try
putting in one of the RAM modules see if that helps.  Unfortunately the
81C55 also controls the LCD.  

 

 

I should try and see if it is actually reading the ctrl-brk, what if there
is a problem with the keyboard or key decoding?  Looking at the source it
looks like it will trigger a cold boot when it senses a change in memory
size or a new option ROM being installed to.

Reply via email to