Previous Thread
Next Thread
Print Thread
Page 2 of 2 1 2
Joined: Jan 2012
Posts: 881
Likes: 10
C
Senior Member
Offline
Senior Member
C
Joined: Jan 2012
Posts: 881
Likes: 10
I added a delay so that the current byte would finish before the write is ended and then the crc was written correctly. I still got an error though because the verify read was interrupted before the crc was read. Seems to me that if a read or write are interrupted it should complete the current sector like the 765 does. I have no machine with a wd1790 to try it on though.

Last edited by crazyc; 10/22/21 01:44 PM.
Joined: Mar 2001
Posts: 16,943
Likes: 69
R
Very Senior Member
Offline
Very Senior Member
R
Joined: Mar 2001
Posts: 16,943
Likes: 69
It does seem likely that it would wait for the end of the current sector, but a test on hardware would certainly be nice.

Joined: Nov 2003
Posts: 186
Likes: 1
P
PhillHS Offline OP
Senior Member
OP Offline
Senior Member
P
Joined: Nov 2003
Posts: 186
Likes: 1
Originally Posted by crazyc
I added a delay so that the current byte would finish before the write is ended and then the crc was written correctly. I still got an error though because the verify read was interrupted before the crc was read. Seems to me that if a read or write are interrupted it should complete the current sector like the 765 does. I have no machine with a wd1790 to try it on though.

would it be possible to see the code you added for that?

Well it would seem that the Nimbus relies on this behavior, and it does seem to work this way on the actual hardware, as I've not seen the same problem at all.

Cheers.

Phill.

Joined: Jan 2012
Posts: 881
Likes: 10
C
Senior Member
Offline
Senior Member
C
Joined: Jan 2012
Posts: 881
Likes: 10
Well, I reverted it but it sets a flag in interrupt_start if main_state is WRITE_SECTOR and cur_live.state is WRITE_BYTE. Then in live_run when cur_live.state is WRITE_BYTE_DONE it calls interrupt_start and returns.

Joined: Nov 2003
Posts: 186
Likes: 1
P
PhillHS Offline OP
Senior Member
OP Offline
Senior Member
P
Joined: Nov 2003
Posts: 186
Likes: 1
Originally Posted by crazyc
Well, I reverted it but it sets a flag in interrupt_start if main_state is WRITE_SECTOR and cur_live.state is WRITE_BYTE. Then in live_run when cur_live.state is WRITE_BYTE_DONE it calls interrupt_start and returns.
Cheers,

Implementing that deffo seems to fix the problems I was seeing, and it makes sense that it would work this way as the datasheet says that the only way of terminating a write multiple is by a foced interrupt.

Cheers.

Phill.

Page 2 of 2 1 2

Link Copied to Clipboard
Who's Online Now
2 members (Vas Crabb, Olivier Galibert), 22 guests, and 3 robots.
Key: Admin, Global Mod, Mod
ShoutChat
Comment Guidelines: Do post respectful and insightful comments. Don't flame, hate, spam.
Forum Statistics
Forums9
Topics9,131
Posts119,647
Members5,029
Most Online890
Jan 17th, 2020
Our Sponsor
These forums are sponsored by Superior Solitaire, an ad-free card game collection for macOS and iOS. Download it today!

Superior Solitaire
Forum hosted by www.retrogamesformac.com