#310 Tape Traps differ from non-tape trap loads

future
open
nobody
None
5
2014-08-12
2014-05-11
Fredrick Meunier
No

There was a thread by Woody on WoS a few weeks ago on checking proper register values in various cases of tape loading with tape traps.

Fuse fails a couple of the tests referenced there, and we have seen problems in the past where tape traps leaving wrong values in registers leads to software misbehaving ([bugs:#14], [patches:#41], [r2137]).

The failing tape trap tests from Woody suggests that in some cases IX, DE and AF can have unexpected values when tape traps are used.

Related

Bugs: #14
Commit: [r2137]
Patches: #41

Discussion

  • The failed tests are:
    Block 4

    Saved data block:
    IX = 0000, DE = 0020, A = FE

    ROM loader parameters:
    IX = 0000, DE = 0020, AF = FF01

    ROM loader results:
    IX = 00FF (expected 0000)
    DE = FF21 (expected 0020)
    AF = 0062 (expected 0100)

    Block 5

    Saved data block:
    IX = FFFF, DE = 805D, A = 05

    ROM loader parameters:
    IX = 0000, DE = 0000, AF = FF01

    ROM loader results:
    IX = 0000
    DE = 0000
    AF = 0093 (expected FF82)

     
  • Strangely test 4 and 5 are successful to me. The failed test is:

    Block 2
    
    Saved data block:
    IX = 0000, DE = 0020, A = FF
    
    ROM loader parameters:
    IX = 0000, DE = 0040, AF = FF01
    
    ROM loader results:
    IX = 0040 (expected 0021)
    DE = 0000 (expected 001F)
    AF = 8016 (expected 0050)
    
     
  • A surprise to me too. I'm thinking that other options like Detect loaders or Auto-load media are selected? I was testing with 1.1.1 release with Tape Traps, Fast tape loading, Detect tape loaders on and Auto-load media and Accelerate tape loaders disabled. I used the 48k machine.

     
  • I wonder how much different selected tape loading options affect the results?

    I started with the following: turned off all tape options and loaded tapetest.tap and all 6 blocks did load without reported errors.

    Turned on loader detection and tried again, this time block 6 failed to load:

    Saved data block:
    IX = 0000, DE = 0040, A = 01
    
    ROM loader parameters:
    IX = 0000. DE = 0020, AF = FF01
    
    ROM loader results:
    IX = 0020 (expected 0000)
    DE = 0000 (expected 0020)
    AF = 0093 (expected 0050)
    
     
    Last edit: Fredrick Meunier 2014-05-14
  • Ok, I see similar results:

    My first test (block 2 failed) was with all tape options enabled.

    All blocks load successfully with tape options disabled.

    Block 6 fails with only loader detection.

    I can't run any test with Tape Traps, Fastloading, Detect loaders on and Auto-load media and Accelerate loaders disabled.