8271 Question....

discussion of games, software, hardware & emulators relating to the Acorn Atom and Acorn System machines.
Post Reply
Prime
Posts: 2798
Joined: Sun May 31, 2009 11:52 pm
Contact:

8271 Question....

Post by Prime » Tue Aug 21, 2012 11:06 am

Hi all,

Trying to fix a bug in Atomulator, that may be related to the way it emulates the 8271.

Does the 8271 issue an interrupt after an invalid command...e.g. if i reset it by writing 01 and then 00 to the reset register and then send 00 to the command register the emulated 8271 generates an interrupt. Looking at the emulation code in Mess & BeebEM, I think that it shouldn't be doing this.

I have also had a look at the datasheet but cannot find conclusive evidence to suggest either behavior.

Cheers.

Phill.

User avatar
MartinB
Posts: 5251
Joined: Mon Mar 31, 2008 9:04 pm
Location: Obscurity
Contact:

Re: 8271 Question....

Post by MartinB » Tue Aug 21, 2012 7:06 pm

Hi Phill - no, not all commands generate an interrupt and for example, the reset sequence of 01,00 does not. However, command 0 does generate an interrupt and even if it were invalid, I think the result, an error, will be accompanied by an interrupt.

EDIT : Lol - I think I'd like to retract the above. Just had a play with the scope on a real 8271 Beeb and nope, it doesn't generate an interrupt unless there is data to return. An error, such as is caused by your invalid sequence above, doesn't generate an interrupt :wink:

Prime
Posts: 2798
Joined: Sun May 31, 2009 11:52 pm
Contact:

Re: 8271 Question....

Post by Prime » Tue Aug 21, 2012 11:39 pm

MartinB wrote: EDIT : Lol - I think I'd like to retract the above. Just had a play with the scope on a real 8271 Beeb and nope, it doesn't generate an interrupt unless there is data to return. An error, such as is caused by your invalid sequence above, doesn't generate an interrupt :wink:
Right, thanks Martin, that saved me having to do exactly that and pull my scope out and apply it to my Atom disk interface :)

So it looks like the 8271 emulation code in Atomulator is wrong in this respect, it always generates an interrupt on an invalid command. This probably also affects b-em, it's just that no-one has tried feeding it invalid commands.....

Cheers.

Phill.

Post Reply