[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RESET vector in MiNT



Hi Konrad, this time it's especially for you :-)

MiNT hooks on reset vector, makes the magic values valid and so a small
function of MiNT is executed after reset. That function restores TRAP
and other system vectors to state that was there before MiNT started.

This routine causes MiNT on Afterburner to hang completely (I have to
turn my machine off, reset key doesn't help). That might be due to the
fact MiNT is in FastRAM, and there's no FastRAM after reset on AB040.

I am asking: why MiNT tries to restore system vectors after reset? I
believe this is the ROM TOS' task. If there were TOS versions that did
not restored system vectors on RESET (I can't imagine such TOS), it
might be possible to let the reset function optional for just these
versions of TOS.

But I believe all versions of TOS restore all system vectors on restart
so the routine (and reset vector itself) should not be used at all.

BTW, as I noticed that Falcon fixes might break things on other
computers, I would suggest at least:

if ( (MiNT is in FastRAM) && (this machine is not Atari TT030) )
{
	/* this is not proper TT-RAM, it might not be available after reset */
	do_not_install_reset_vector();
}
else {
	/* do what you did for ages */
}

Petr
--
E-mail: stehlik@cas3.zlin.vutbr.cz                        PARCP developer
   WWW: http://cas3.zlin.vutbr.cz/~stehlik/              MiNTOS/Linux user
mirror: http://users.zln.cz/~pstehlik/                 Atari 800XL emulation
mirror: http://www.stehlik.cyberstrider.org/              Atari Falcon040