Re: Bug in 1581 ???

From: Ruud_at_Baltissen.org
Date: Wed, 08 Feb 2012 17:46:46 +0100
Message-ID: <4F32A6F6.23351.386FB4@Ruud.Baltissen.org>
Hallo Gerrit,



> Which ROM version did you look at? There were 2 for the 1581,
> 318045-01 and 318045-02.

This part is the same for both versions. The main thing V2 does is 
adding a SEI somewhere. And the guy who did it it was very lazy: he 
disabled the checksum routine to save him the work of calculating a 
new check sum.

 
> so are you sure the WD177x is ever in the state necessary
> to hit this bug?

I'm not. But if the WD177x never comes in this state, then why is it 
being checked at all?
I just checked the datasheet and IMHO the checked byte means that 
"the computer did not respond to DRQ within one byte time". As the 
1581 doesn't use DRQ at all, this error could never occur. But then 
there also wouldn't any need to check it at all in the first place!
Just a very, very, wild guess: the code was written before the final 
design and stayed because nobody noticed or cared. PHP and PLP were 
added later by someone who didn't understand the code or indeed made 
an error. And being a piece of dead code now, it couldn't do any 
harm and therefore it went unnoticed.


And to quote SilverDream again:
> the guys had simply too much room in the 1581 ROM chip to care
> about couple bytes here or there. 

It doesn't do any harm but doesn't make sense as well:
> 		lda	#9
> 		sta	ContrStat
>
> 		lda	ContrStat
Why the last "LDA"?


--
    ___
   / __|__
  / /  |_/     Groetjes, Ruud Baltissen
  \ \__|_\
   \___|       http://Ruud.C64.org







       Message was sent through the cbm-hackers mailing list
Received on 2012-02-08 17:00:39

Archive generated by hypermail 2.2.0.