Hi,
i´m Stef from Germany, recently bought a HX-20, unfortunaly apparently with a huge fault.
Well, the machine powers on, shows both the Initialisation hint and both Menu entries [1] and [2], The monitor [1] itself works, the
Initialisation Hint does -not- and running into Basic leads into a trap error every time at the same adress. The Keyboard itself
fully works, even with CTRL held down.
I´ve only measued so far for connectivity if the Data bus and Adress bus between CPU1 and all ROMs, RAMs, HC138s CS-Selector, but not the signals themselfes
via a logic Analyzer.
I nailed the TRAP on Opcode $00 down here:
DFCD : 06 " " tap
DFCE : DD BD " " std X00BD
;
DFD0 : 12 " " db $12
;
DFD1 : DC FD " " ldd X00FD
DFD3 : 0B " " sev
DFD4 : DC B8 " " ldd X00B8
DFD6 : 0C " " clc
DFD7 : DC C1 " " ldd X00C1
DFD9 : 1A " " slp
DFDA : DC C9 " " ldd X00C9
DFDC : 05 " " asld
DFDD : DC E3 " " ldd X00E3
DFDF : 08 " " inx
DFE0 : DD 36 " 6" std X0036
DFE2 : 0D " " sec
DFE3 : DD 93 " " std X0093
DFE5 : 0A " " clv
DFE6 : DD A9 " " std X00A9
;
DFE8 : 00 " " db $00 <========================
;
DFE9 : DD 60 " `" std X0060
DFEB : 60 FF "` " neg $FF,x
DFED : FF 7E DE " ~ " stx X7EDE
Where the Monitor shows:
A=FF B=00 C=C9 X=DFD2 S=04AD, P=DFE8
As i´m unable to find in the remaining ROMs some sort of "direct jump" into one of these adresses above,
i suppose the CPU is jumping into this location somehow via an indexed Jump. Unfortunaly, as being "only" for >25 Years an
AVR/8051 programmer, still some commands are new to me, especially "ldd" which i only know
as a "load with displacement", but the HC6301 says something about "Load double accumulator" or somewhat in that
direction.
I don´t understand if the X-Pointer is a read pointer and that thing tries to read Adress $dfd1 and $dfd2, ends up with an $ff in
the Accumulator, traps because of an illegal accumulator content; or the trap is done by intention (in order to jump somewhere else),
or if X shows an entry point of the subroutine.
So my question is: Does anybody of you dear fellows know whats the above Code Segment all about, what possibly
causes the HX to jump there? Possibly a ROM failure in one cell?
Kind regards
Stef
i´m Stef from Germany, recently bought a HX-20, unfortunaly apparently with a huge fault.
Well, the machine powers on, shows both the Initialisation hint and both Menu entries [1] and [2], The monitor [1] itself works, the
Initialisation Hint does -not- and running into Basic leads into a trap error every time at the same adress. The Keyboard itself
fully works, even with CTRL held down.
I´ve only measued so far for connectivity if the Data bus and Adress bus between CPU1 and all ROMs, RAMs, HC138s CS-Selector, but not the signals themselfes
via a logic Analyzer.
I nailed the TRAP on Opcode $00 down here:
DFCD : 06 " " tap
DFCE : DD BD " " std X00BD
;
DFD0 : 12 " " db $12
;
DFD1 : DC FD " " ldd X00FD
DFD3 : 0B " " sev
DFD4 : DC B8 " " ldd X00B8
DFD6 : 0C " " clc
DFD7 : DC C1 " " ldd X00C1
DFD9 : 1A " " slp
DFDA : DC C9 " " ldd X00C9
DFDC : 05 " " asld
DFDD : DC E3 " " ldd X00E3
DFDF : 08 " " inx
DFE0 : DD 36 " 6" std X0036
DFE2 : 0D " " sec
DFE3 : DD 93 " " std X0093
DFE5 : 0A " " clv
DFE6 : DD A9 " " std X00A9
;
DFE8 : 00 " " db $00 <========================
;
DFE9 : DD 60 " `" std X0060
DFEB : 60 FF "` " neg $FF,x
DFED : FF 7E DE " ~ " stx X7EDE
Where the Monitor shows:
A=FF B=00 C=C9 X=DFD2 S=04AD, P=DFE8
As i´m unable to find in the remaining ROMs some sort of "direct jump" into one of these adresses above,
i suppose the CPU is jumping into this location somehow via an indexed Jump. Unfortunaly, as being "only" for >25 Years an
AVR/8051 programmer, still some commands are new to me, especially "ldd" which i only know
as a "load with displacement", but the HC6301 says something about "Load double accumulator" or somewhat in that
direction.
I don´t understand if the X-Pointer is a read pointer and that thing tries to read Adress $dfd1 and $dfd2, ends up with an $ff in
the Accumulator, traps because of an illegal accumulator content; or the trap is done by intention (in order to jump somewhere else),
or if X shows an entry point of the subroutine.
So my question is: Does anybody of you dear fellows know whats the above Code Segment all about, what possibly
causes the HX to jump there? Possibly a ROM failure in one cell?
Kind regards
Stef