Image Map Image Map
Results 1 to 6 of 6

Thread: HX-20 Trap error

  1. #1

    Default HX-20 Trap error

    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

  2. #2
    Join Date
    Jun 2016
    Location
    Guisborough, England
    Posts
    153

    Default

    Hello Stef,

    I've just fired up my HX, and had a quick look in the manual.

    I note that memory addresses D000-DFFF are in ROM2, and this ROM stores the routines for Menu, Monitor and Virtual Screen routines.

    When I use the monitor, to dump the same addresses as you list, then all those bytes show as &FF, NOT as the data you list. I do have actual code running from DFEE, which shows 7E,DE,A4,7E,D7,EF etc. Again, this is ROM, so this is all fixed/permanent?

    How come the monitor on your device shows something different for these addresses? Are you thinking that the monitor may be saying it's looking at these addresses, but the data is coming from somewhere else?

    I may be able to find a more detailed breakdown of the routines in the ROM2 space. I've certainly seen routines directly using these routines somewhere.

    Geoff

  3. #3
    Join Date
    Jun 2016
    Location
    Guisborough, England
    Posts
    153

    Default

    After a further look, I note that the data you show for DFEC -> seems to agree with my machine. DFEF is in fact a Jump Table at the end of the D000-DFFF area, giving access points to various routines within that ROM block. However, the addresses just prior to DFEC should all the FF. Not checked just how far back. I guess there's some unused space in the ROM between the end of the actual code and the Jump Table. Well, there is in MY machine. Maybe you've got a different ROM?

    What is the history of your HX-20?

    Check out the Technical Manuals (software) via
    http://www.retrocomputing.net/parts/...docs/files.htm

    A while later...

    I've checked my HX again. On my machine, the addresses starting DFD8 thru to DFED are all FF.

    Looking at the code on my machine before DFED, I'd say this is NOT prog, but data, comprising a table (?) each line being a single byte, followed by a two byte address. On your machine, there are extra items on the end of the list, with the same format. Need to look more at the code, spot if the addresses on this list are the entry points of sunroutines, or just data?


    Geoff
    Last edited by GeoffB17; May 17th, 2018 at 01:25 PM.

  4. #4

    Default

    i remember having that problem and for me, the command GFF8B fixed it.

    Quote Originally Posted by Stef View Post
    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

  5. #5
    Join Date
    Jun 2016
    Location
    Guisborough, England
    Posts
    153

    Default

    Gff8B will 'Go' to FF8B, which is within a Jump Table. Specifically, this will do JMP E34D which is an area of ROM for I/O routines.

    Don't know what this specific block does, but it starts with BD E2CE which is a JSR to an earlier nearby block.

    As this code is all ROM code, I'd assume that the real problem is that BASIC has jumped hereabouts in the first place. Maybe BASIC is following a vector set for something else in low RAM. If this is one of the Bundeswehr machines that have been on the market recently, the machine may have been set up to work with a specific - and non-standard - configuration, and if something that is supposed to be there, but no longer is there, then this may be source of the problem?

    Happy to keep investigating, mind you.

    Geoff

  6. #6
    Join Date
    Jun 2016
    Location
    Guisborough, England
    Posts
    153

    Default

    'aushilfe444'

    Can you remember where you found out about this 'fix' for the problem? Was the 'fix' permanent, or did the operation need to be repeated?

    What was the source of the HX-20 that you had, and was it a totally standard HX, or was it modified in any way?

    Thanks for any clarification that you can offer.

    Geoff - HX-20 owner since 1983

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •