Re: [hatari-devel] Emulation of the TT second MFP

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


Hi,

Interesting news. I just checked the behavior of ASV, which appears to get a
bit further in the boot process now. There is an exception, though, please
see the attached screenshot.

Best regards

Uwe

> Hi
> 
> at least, here it is, emulation of the TT's specific MFP :)
> 
> Previous MFP code has been cleaned up and modified to handle several MFP 
> objects.
> 
> Each MFP instance is stored using a MFP_STRUCT and there're now 2 MFP :
>   - pMFP_Main : this is the standard MFP that can be found on any 
> machine (ST, STE, TT, Falcon). It's located at address $FFFA01 - $FFFA2F
>   - pMFP_TT : this is the TT only MFP, it's located at address $FFFA81 - 
> $FFFAAF.
> 
> As the TT MFP can have 4 timers, cycInt.c has been modified to handle 4 
> additional internal timers (this makes quite a lot of timers to process 
> in the main cpu loop in the end, so in a 2nd phase I will look at 
> optimizing MFP code by using only 1 timer per MFP then dispatch it 
> between the 4 internal MFP timers)
> 
> For now, I tried to change as little code as possible, just to adapt all 
> the parts to the new MFP functions (basically adding a pMFP variable to 
> all function) and to ensure there's as litlle regression as possible at 
> start.
> The only part that required the TT MFP is in ncr5380.c to handle SCSI 
> and I updated it to use the TT MFP's GPIP register.
> 
> My test so far was to successfully boot with TOS 3.06 until I reach the 
> desktop. During the boot, TOS will start timer C and D on the TT MFP and 
> expects these timers to trigger an interrupt ; if not, TOS would wait 
> forever as a result of this failure.
> 
> Note that in the end, TOS will keep timer D started but disabled through 
> the mask register. So we have the same "issue" as with the main MFP 
> timer D where we added the "patch timer D" option to slow down this 
> useless timer (and reduce emulation cost).
> So when in TT mode, "patch timer D" option will now change main MFP but 
> also TT MFP.
> 
> Once this new code is confirmed to run SCSI/ncr5380 as before, I will 
> look into adding new missing parts :
> 
>   - handle timer A/timer B in event count mode on the TT MFP (timer A is 
> not connected, timer B is connected to the DE signal, as on the main MFP)
>   - add support for the UART on the TT MFP ? Is there any program that 
> makes use of it to test it ? This would imply to adapt rs232 code to 
> handle several serial ports too.
>   - connect more signals to the GPIP registers
>   - rewrite more internal MFP code to improve cycle accuracy
> 
> 
> Thomas, can you check the ncr5380 code still works with this TT MFP ?
> 
> Nicolas
> 
> 

Attachment: asv.png
Description: PNG image



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