When I did so, all I get during boot is "Launching init: gem ... error -33" and I get MiS, the FreeMiNT internal shell

What to do to start it?
Moderators: Mug UK, [ProToS], moondog/.tSCc., lp, Moderator Team
To my knowledge, this is just because the ROM desktop never leaves supervisor mode, effectively causing MiNT to stop multitasking (since it never does task switching in supervisor mode).BlankVector wrote:I love GEM=ROM, unfortunately there is a big drawback... The keyboard does not work anymore
I fully agree on this one. At least the kernel could display a message, informing the user. I personally would like to see this fixed in the kernel itself.mikro wrote:Damn it, this is ridiculous. Forcing user to install a dumb acc which can be easily simulated within the kernel. The saddest part of this is the fact that the ACC is not even a part of the freemint source tree, not even as a binary.
What do you mean "keyboard does not work anymore" ?BlankVector wrote:I love GEM=ROM, unfortunately there is a big drawback... The keyboard does not work anymore
I mean that when you press a key, it does not do the expected action. It is actually delayed until the AES allow multitask.jury wrote:What do you mean "keyboard does not work anymore" ?
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.
Jo Even Skarstein, 2017
*/
#include <tos.h>
#include <mint.h>
#include <aes.h>
void main(void)
{
short exit = false;
EVENT event = { MU_TIMER|MU_MESAG, // Types
0, 0, 0, // Button
0, 0, 0, 0, 0, // m1
0, 0, 0, 0, 0, // m2
20, 0, // Timer
0, 0, 0, 0, 0, 0, 0,
{0, 0, 0, 0, 0, 0, 0, 0}
};
short apid = appl_init();
menu_register(apid, " NoHog2");
while (!exit)
{
unsigned short e = EvntMulti(&event);
if (e & MU_MESAG)
{
switch (event.mgpbuf[0])
{
case AC_OPEN:
form_alert(0, "[1][ NoHog2 ][ Ok ]");
break;
case AC_CLOSE:
break;
case AP_TERM:
exit = true;
break;
default:
break;
}
}
if (e & MU_TIMER)
{
Syield();
}
}
appl_exit();
}
Well, this was just a quick hack. It doesn't even check if MiNT is running so it might cause problems if started under TOS. But if there is a need for it I could fix it up.mikro wrote:We could include this into the "tools" directory, where it had once resided.
Was this related to the singlemode changes you did years ago? I thought that had already made it into the main branch?helmut wrote:Just in case you didn't know: Keyboard works with GEM=ROM in my kernel since ages.
Thanks, will try it when I will find out why my network setup stopped working ( as this is the only way I can transfer files to Falcon )joska wrote:Here's a quick workaround. Run this accessory and the keyboard works fine. I could not get GEM=ROM to work on my Milan, but I tested this on my Mega and it worked fine.
As you can see, there certainly is. :-) It's really hard to explain to every new user that yeah, you kind of need this and it's like super simple to do but please, go and grab that 20 years old ACC because we don't have anything else.joska wrote:Well, this was just a quick hack. It doesn't even check if MiNT is running so it might cause problems if started under TOS. But if there is a need for it I could fix it up.
Why have you never provided a patch? What purpose it has to stay in your branch, to amuse yourself? :-)helmut wrote:Just in case you didn't know: Keyboard works with GEM=ROM in my kernel since ages.
I also looked at that long ago.helmut wrote:Just in case you didn't know: Keyboard works with GEM=ROM in my kernel since ages.
I fully agree on this one. Is the fix too complicated to add to the kernel trunk?BlankVector wrote: And I don't mention the fact that a BIOS feature (low-level keyboard handling) relies on an upper layer feature (MiNT's GEMDOS multitasking) is a complete nonsense.
Any process called GEM runs in single-task-mode (that would also affect N.AES, probably myAES, etc.). I didn't notice any regression, but I''m not a regular user of any of these. Maybe more, I don't remember.mikro wrote:Why have you never provided a patch? What purpose it has to stay in your branch, to amuse yourself?
I'll see what I can do. Unless you want to fix this in the kernel?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.
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.BlankVector wrote:I made quick test long ago (probably the same as Helmut fix): instead of delaying the keystroke, handle it immediately, like TOS. Then keyboard works like a charm with GEM=ROM. What needs to be proven is if there are really stack issues as I suspect.
Does that mean that multitasking is disabled when GEM=ROM?helmut wrote:Any process called GEM runs in single-task-mode (that would also affect N.AES, probably myAES, etc.).