|Re: [hatari-devel] GEMDOS HD emulation, Hatari cartridge program load code and TT-RAM|
[ Thread Index |
| More lists.tuxfamily.org/hatari-devel Archives
Am Wed, 15 Apr 2015 23:44:09 +0300
schrieb Eero Tamminen <oak@xxxxxxxxxxxxxx>:
> On sunnuntai 12 huhtikuu 2015, Thomas Huth wrote:
> > schrieb Eero Tamminen <oak@xxxxxxxxxxxxxx>:
> > > On keskiviikko 08 huhtikuu 2015, Eero Tamminen wrote:
> > > > On keskiviikko 08 huhtikuu 2015, Eero Tamminen wrote:
> > > > > Ps. I hadn't yet time to check whether things work better
> > > > > from disk image (no Hatari cartridge code involved, program
> > > > > is loaded completely by TOS).
> > > >
> > > > When using IDE disk image with Falcon emulation, program
> > > > is executed from TT-RAM. I.e. problem is Hatari cartridge
> > > > code used for loading program for GEMDOS HD emulation.
> > >
> > > I looked what the cartridge code does, and it just asks TOS
> > > to allocate/return pointer to new basepage + rest of memory
> > > with Pexec(PE_BASEPAGE, ...) call.
> > >
> > > I assume that it should be changed to check program header for
> > > PRGFLAGS (long @ offset 0x16) bits and depending on those:
> > > * If PF_TTRAMLOAD bit (1) is set, and there's "enough" TT-RAM:
> > > - shrink the memory returned by Pexec() call to basepage size
> > > - try Mxalloc(MX_PREFTTRAM) memory for program TEXT/BSS/DATA
> > The memory is allocated with Pexec5 ... so for supporting TT-RAM, I
> > think that should be Pexec7 instead.
> > Hmm, looking at the cart_asm.s code, this is slowly getting very
> > ugly, I guess the assembly logic has to be changed quite a bit for
> > this (the flags then have to be read-in before the pexec call, so
> > you also need a temporary buffer for this etc.).
> Good thing finding Pexec7, that simplifies things a bit.
I've just had a try and changed the cartridge code to support Pexec7,
too. Since I'm very short in time, I just did some quick regression
testing that normal (ST memory) program loading still works fine
(so there might even be new bugs in rare cases now - sorry!).
Could you please have a try whether TT memory loading now also works as