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

[MiNT] Warning?



Hi,

Already some time ago I noticed some weird problems when introducing
patches to MiNT, like everything compiled OK and MiNT booted, and even
everything worked OK, but once I loaded Devpac and hit Alt/A to start the
compiler, the computer froze.

That was the time we (with Frank) resorted the cache flushing code.
Everything (including Devpac) worked fine until I changes the init_cache()
function; after that Devpac problems started to occur.

To be understood correctly: the init_cache() just initializes an internal,
not exported to anywhere else vector for cpush() to jump through. This
vector points to CPU dependent routine flushing the CPU cache and is
initialized at startup so that init_cache() is not called anymore later.

This was like I added a NOP before RTS in it, and kernel with such a
"change" froze when you tried to compile anything with Devpac. When you
removed the NOP and recompiled MiNT, everything started to work again.
Very weird, as you see and costed me quite a bit of nerves and some days
of investigation.

Since the actual changed code couldn't be related, I got an idea it could
be a gcc/gas problem. Hence I've installed gcc 2.8.1 with gas 2.9.1, then
problems eventually have gone away after recompiling MiNT.

But...

I came across exactly the same effect just yesterday. It started to seem,
that the "Devpac freez effect" is purely dependent on the actual size of
the MiNT kernel and its position in the memory, and/or, possibly, there's
some obscure conflict with an underlying TSR.

After some investigation, I seem to have caught the bad guy: it is
HSMODEM. Once I have installed FSERIAL - all problems gone.

HSMODEM may be "hit" by a Devpac call, because HSMODEM hooks up the system
traps. However, it is quite hard to trace down what's going on there,
since the computer actually halts (not even the mouse pointer moves).

Did anyone notice anything like this? It maybe a bug somewhere in MiNT
anyways, but for now it seems that usage of FSERIAL instead of HSMODEM may
be a good idea.

--
Konrad M.Kokoszkiewicz
|mail: draco@mi.com.pl                  | Atari Falcon030/TT030/65XE |
|http://www.obta.uw.edu.pl/~draco/
|http://draco.atari.org

** Ea natura multitudinis est,
** aut servit humiliter, aut superbe dominatur (Liv. XXIV,25)
*************************************************************
** U pospolstwa normalne jest, ze albo sluzy ono unizenie,
** albo bezczelnie sie panoszy.