diff options
| author | Ian C <ianc@noddybox.co.uk> | 2023-01-09 17:58:38 +0000 | 
|---|---|---|
| committer | Ian C <ianc@noddybox.co.uk> | 2023-01-09 17:58:38 +0000 | 
| commit | f1e1f14c3de0015d1c21f8f8e226b91ba86e5e6d (patch) | |
| tree | 9dd08966669267bacc30e213fc686df0d70be446 | |
| parent | 51ed2a1a304361ee33c76b6bd0fc038ebb88f661 (diff) | |
Tried to fix TAP loading.  Still dodgy on bad TAP files.
| -rw-r--r-- | source/snap.c | 10 | 
1 files changed, 8 insertions, 2 deletions
| diff --git a/source/snap.c b/source/snap.c index 9ff0ae6..3ef3690 100644 --- a/source/snap.c +++ b/source/snap.c @@ -127,15 +127,21 @@ int TAPLoad(Z80Byte id, Z80Word *addr, Z80Word *len, SNAP_Poke poke)  	while(blen && *len)  	{  	    b = GetTAPByte(); -	    csum ^= b; -	    poke(*addr,b); +            if (blen > 1) +            { +                csum ^= b; +                poke(*addr,b); +            }  	    (*addr)++;  	    (*len)--;  	    blen--;  	} +        SPEC_DEBUG("Finished block.  Remaining blen=%u len=%u\n", +                                (unsigned)blen, (unsigned)*len); +  	/* Get the checksum  	*/  	if (blen) | 
