joska wrote:helmut wrote:Any process called GEM runs in single-task-mode (that would also affect N.AES, probably myAES, etc.).
Does that mean that multitasking is disabled when GEM=ROM?
Isn't the GEM in ROM incapable of multitasking?
Moderators: Mug UK, moondog/.tSCc., lp, [ProToS], Moderator Team
joska wrote:helmut wrote:Any process called GEM runs in single-task-mode (that would also affect N.AES, probably myAES, etc.).
Does that mean that multitasking is disabled when GEM=ROM?
jfl wrote:Isn't the GEM in ROM incapable of multitasking?
joska wrote:helmut wrote:Any process called GEM runs in single-task-mode (that would also affect N.AES, probably myAES, etc.).
Does that mean that multitasking is disabled when GEM=ROM?
mikro wrote:Ideally, the ACC could check if the AES is the ROM one and if not, then exit else provide the yield functionality. This would be pretty awesome.
Code: Select all
/*
no_hog2.acc
Very simple accessory that just calls Syield every
20ms.
Purpose: Use it when using the ROM AES with MiNT to
allow multitasking (and keyboard) to work properly.
Jo Even Skarstein, 2017
*/
#include <mintbind.h>
#include <gem.h>
#include <mint/cookie.h>
#ifndef false
enum { false, true };
#endif
char alert_running[] = "[1][ NoHog2 ][ Ok ]";
char alert_no_mint[] = "[1][ NoHog2 only needed | with MiNT. ][ Ok ]";
char alert_mtask[] = "[1][ NoHog2 only needed | with ROM AES. ][ Ok ]";
int main(void)
{
long c;
short exit = false, apid, mint, mtask, e_type = MU_MESAG;
char *alert = alert_running;
apid = appl_init();
menu_register(apid, " NoHog2");
mtask = (aes_global[1] != 1);
mint = !Getcookie(C_MiNT, &c);
if (!mint)
alert = alert_no_mint;
if (mint && mtask)
alert = alert_mtask;
// Enable 20ms timer when running under MiNT without
// a multitasking AES.
if (mint && !mtask)
e_type |= MU_TIMER;
while (!exit)
{
static short msg[8], mx, my, bt, ks, kb, mc;
short e = evnt_multi( e_type,
0, 0, 0,
0, 0, 0, 0, 0,
0, 0, 0, 0, 0,
msg,
20,
&mx, &my, &bt, &ks, &kb, &mc);
if (e & MU_MESAG)
{
switch (msg[0])
{
case AC_OPEN:
form_alert(0, alert);
break;
case AP_TERM:
exit = true;
break;
default:
break;
}
}
if (e & MU_TIMER)
{
Syield();
}
}
appl_exit();
return 0;
}
joska wrote:... But I was quite disappointed to see that gcc generated a binary that was ten times bigger than the AHCC-compiled one...
joska wrote:Do you still have this patch? If so, I'd be interested in trying a patched kernel on Milan and Falcon/AB. The Milan kernel is especially interesting because keyboard handling on the Milan is different from the other kernels.
joska wrote:Please note that even with this fix, there is still a need for something like nohog.acc. Without this multitasking will not work correctly when using the ROM AES.
jfl wrote:Isn't the GEM in ROM incapable of multitasking?
joska wrote:mikro wrote:Ideally, the ACC could check if the AES is the ROM one and if not, then exit else provide the yield functionality. This would be pretty awesome.
Done. But I was quite disappointed to see that gcc generated a binary that was ten times bigger than the AHCC-compiled one.
[...]
Now I need to find out what a "pull request is" :D
mikro wrote:Thanks Jo, it wasn't that hard, was it.
mikro wrote:Apropo, the size: that size is that big even without using mintlib?
mikro wrote:You can take a look here: https://github.com/freemint/freemint/tr ... s/mintload ... it's basically a copy of xaloader skeleton, it doesn't use mintlib & co at all and its pretty slim.
mikro wrote:When you provide a Makefile (see my github comment)
BlankVector wrote:Anyway, when using GEM=ROM (I love that mode), I don't care much about preemptive multitasking. I just want to have the benefits of FreeMiNT drivers (i.e ext2 and FAT32 drivers) from the ROM desktop. They work fine even if preemptive multitasking is asleep.
simonsunnyboy wrote:Without accelerators, multitasking GEM with XaAES is barely usable on a F030 even with 16MB RAM.
joska wrote:mikro wrote:When you provide a Makefile (see my github comment)
Will not happen ;) I just spent an hour of my life trying to figure out the FreeMiNT makefile "system". That's an hour I'll never get back.
Feel free to add this acc to the FreeMiNT repository, but then someone else would have to create the makefile.
nohog2.c
mikro wrote:It took me 15 minutes.
mikro wrote:You could have asked, literally it's only about copying some existing project, changing TARGET, COBJS and SRCFILES and there you go.
Gaiyan wrote:Can someone give me a hint on why my keyboard won't work when booting to N.AES2? It works fine in XaAES. Is it related to what has been discussed here?
wongck wrote:Gaiyan wrote:Can someone give me a hint on why my keyboard won't work when booting to N.AES2? It works fine in XaAES. Is it related to what has been discussed here?
Go back to XaAES.
Edit the file called NAES.CNF and put gemcon to false.
Reboot back to NAES.
See if that works.
Faucon2001 wrote:-> wongck : Personally, I would stopped at the first sentence
Gaiyan wrote:wongck wrote:Gaiyan wrote:Can someone give me a hint on why my keyboard won't work when booting to N.AES2? It works fine in XaAES. Is it related to what has been discussed here?
Go back to XaAES.
Edit the file called NAES.CNF and put gemcon to false.
Reboot back to NAES.
See if that works.
That fixed it. Thanks!
BlankVector wrote:Anyway, when using GEM=ROM (I love that mode), I don't care much about preemptive multitasking. I just want to have the benefits of FreeMiNT drivers (i.e ext2 and FAT32 drivers) from the ROM desktop. They work fine even if preemptive multitasking is asleep.
tyk wrote:Is there any documentation how to make MetaDOS drivers?
Users browsing this forum: No registered users and 3 guests