Re: [hatari-devel] SCC register handling on TT

[ Thread Index | Date Index | More lists.tuxfamily.org/hatari-devel Archives ]


Am Sun, 27 Nov 2016 23:23:20 +0200
schrieb Eero Tamminen <oak@xxxxxxxxxxxxxx>:

> Hi,
> 
> On 11/27/2016 10:04 PM, Thomas Huth wrote:
> > Am Sun, 27 Nov 2016 19:51:13 +0200
> > schrieb Eero Tamminen <oak@xxxxxxxxxxxxxx>:  
> >> When looking at SCC register handling in relation to:
> >> http://www.atari-forum.com/viewtopic.php?f=51&t=29989&p=306208#p306208
> >>
> >> Hatari isn't yet emulating SCC, but I started to wonder
> >> about Hatari's handling of non-implemented SCC registers...
> >>
> >>  From what I see from ioMem*.c sources on SCC regs access:
> >> * ST & STE bus error  
> >>    -> corresponds to bus error tester results  
> >> * Deliberately voided for Falcon STE compat mode (ioMem.c)  
> >>    -> corresponds to bus error tester results  
> >> * Deliberately voided for normal Falcon mode (ioMemTabFalcon.c)  
> >>    -> corresponds to bus error tester results  
> >> * Bus error for TT  
> >>    -> does NOT correspond to bus error tester results  
> >> 	$FF8C20 - $FF8C80
> >> 	$FF8C90 - $FF8E01
> >>
> >> Is above interpretation right?  
> >
> > I think so, yes.
> >  
> >> Thomas, does above bus error test mean that $FF8C80
> >> generates bus error or not (i.e. is the output range
> >> inclusive or exclusive or range end)?  
> >
> > IIRC the right hand side of the entries in the bus error tester
> > output do _not_ generate a bus error anymore. So $FF8C80 should not
> > generate a bus error.
> >
> > The TT IO memory region has never been fixed for proper bus error
> > accuracy, mainly since quite a bit of emulation is still missing.
> >
> > For example, only disabling the bus errors in the SCC IO memory
> > region without providing real emulation is a kind of double-edged
> > sword - some programs might suddenly run, but others that use bus
> > errors for detecting the presence of the SCC might stop working,
> > because they suddenly think that the SCC is there and depend on the
> > right behavior of the registers which is not emulated yet.  
> 
> I noticed from freemint sources that its HW detection does use
> bus errors for this.
> 
> In the above linked thread, the bus error loop happens according
> to OL before _main, so it seems like some library initialization
> code is not doing things correctly.
> 
> In any case, I think TT & Falcon emulation should work the same
> way in this matter.  Both machines are supposed to have SCC, but
> Hatari doesn't emulate it for neither, so both should either
> ignore accesses or bus error on them.
>    -> Should I change TT or Falcon emulation?  

I'd say change the TT side. I guess it's more likely that programs work
that way than the other way round.

 Thomas



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/